-
Notifications
You must be signed in to change notification settings - Fork 156
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
conflict odom frame when mapping #5
Comments
I think it happens because the mir also always public to default map inside the mir 100. Do you have any idea how i can dissable it please? I need to do the research purpose |
You can remove the map -> odom_comb TF frame by adding You can disable the |
Hi, it does not work when i try to remove the odom frame in the launch file as you Mention :( There is the translation and rotation from map->odom at the begining of mapping process ( it should be 000 000). |
Do you know how would i stop using the map frame from the mir and replace with my own map frame for mapping ( gmapping) and localization (amcl). I see that the map frame always from the mir |
You are right, removing the map frame doesn't work like that. I'll investigate this tomorrow or later this week. |
This is useful when running one's own SLAM / localization nodes. Fixes DFKI-NI#5.
I have created a pull request that adds the option of disabling the map: #6 To test it, please clone the pull request branch into your catkin workspace like this: git clone -b disable_map https://github.com/mintar/mir_robot.git Then build as normal and launch the driver as follows: roslaunch mir_driver mir.launch disable_map:=true Now, the map topic and map -> odom_comb TF transform should be gone. Please report back if it works. |
Hi, sorry for lat response. The mir robot in my working lab is not available until Saturday. I would report back to you asap. Thank you |
This is useful when running one's own SLAM / localization nodes. Fixes #5.
I just verified this on our own MiR robot and merged the PR. After building mir_robot from source, you can now run it like this: roslaunch mir_driver mir.launch disable_map:=true ... and both the |
You mean, the map frame is still published? That shouldn't happen. Are you sure that you're using the newest version from source? Better uninstall the binary version, so that you don't accidentally use it: sudo apt remove ros-kinetic-mir-robot
That shouldn't happen. Can you record and upload a rosbag with the following topics, while you're doing the mapping?
BTW: I've tested my software with version 1.9.13 of the MiR robot software, but you're using 2.x (as seen from your screenshots). So it's possible there are differences, but I believe they shouldn't be that big. |
The MiR package is installed only in the source, not in binary. And the /map is not published anymore but in /map_mir so there is not conflict with the /map that publishes gmapping.
Anyways, I still can find on RViz, so somehow saves the frame from the default /map from the mir.
Here is the rosbag |
A few comments:
Could you record a rosbag of the same topics as before while you're driving around, but:
|
Regarding the jumping frames: Are you perhaps running two instances of the robot_state_publisher? For example, are you running |
No, just
I managed to launch gmapping correctly even with this delay, there is no TF OLD data error with this difference. And since I have to synchronize manually, I cannot afford lower than 0.3 s of difference everytime I try to sync.. Is there any command to do it automatically?
|
I've just pushed a commit. Can you try if your problem is solved with the latest version of the software? Regarding gmapping: I've tried it with the /scan topic, and it indeed doesn't work; you'll have to use the f_scan or b_scan topic instead. |
Do you think it might be some problem regarding the TF of these sensors in the URDF file? Maybe a misalignment in the TF values is producing that problem.
Yes, problem solved. Thank you very much for the quick answers. |
No, that's not the problem. The TFs for the laser scanners don't come from the URDF, they come directly from the MiR, so they are using the calibrated values from the MiR. Also, I've looked at your rosbags, and there seems to be only a very minor misalignment, if at all. The timing offset is also not the problem; I've manually corrected this in the rosbag, and the problem remains. By looking closely at the rosbags, it seems that gmapping builds the initial map from the first laser scan it receives (let's say the front scanner) and then attempts too hard to match the second scan (from the back scanner) to features from the first scan. Because there is not enough overlap between the scan areas, gmapping found some false matches during this first alignment, which results in a misaligned map with duplicate walls. I guess gmapping is simply not meant to be used with data from two separate laser scanners. Better just use one.
Nice! I'll close this issue then. |
…space removed mobile_base_controller namespace
* initial commit: added restapi state of work * added mir_ready publisher * added reliable QOS for mir_bridge_ready topic * added mir_bridge_ready=false on crash/shutdown * attribute bugfix * added readiness polling and simplified ready publishing * uneccesary main->publish_mir_ready_state: button checks bridge alive * uneccesary main->publish_mir_ready_state: button checks bridge alive * changed mir_ready pub/sub to Trigger-service * possible bugfix * changed response to success=True always and message=True/False * Revert "changed response to success=True always and message=True/False" This reverts commit f31efb8. * added custom CheckReady srv-definition * find bug in service * renamed interface to match usb_pushbutton * fixed dependency * fixed another dependency * Revert "Merge pull request #2 from niemsoen/mir-bridge-as-service-server" This reverts commit cf0f5c1, reversing changes made to 39e025e. * Use std_srvs/Trigger as mir-ready-service Type * changed structure to service-client communication * fix for build error? * wrong directory name * added logging output * bugfix * better logging * added message to response of service call * bugfix * added auth as parameter * catch token not set * bugfix response * added check for error in setting as response to service call * better log * introduced parameters for hostname and auth-token * make sure api handle is setup at launch * better function names * file rename * launch of mir driver triggers launch of restapi_server * mir_bridge creates restapi_client node * import error in mir_bridge for MirRestAPIClient * include test client for rest api * add sleep for test call * working, launch file not needed * add client in mir_bridge.py * trying to fix import * Revert "trying to fix import" This reverts commit 1a97c70. * fix for import bug * fix message type error * try to fix connection refusal of rosbridge after restapi * try to replace sleep after setTime waiting for reboot * catch CannotSendRequest * replace print with logger * disable status call * try output of get status call * wait for restapi restart working * make waiting for availability more elegant * clean-up * removed unused imports * add potential fix * Call mir_restapi_server in tendobot_driver * Added api-call abstarction layer & tested api call while bridge connected (#5) * init (#6) Co-authored-by: Sönke Niemann <soenke.niemann@ipk.fraunhofer.de> * readme section: time sync in ros2 /w restapi * remove automatic time sync call at driver start * improved naming style in mir_restapi * catch case of no api token set, warn user * added more untested calls * added waiting condition for honking * failed try to find system time in restapi * added client for time sync * wait for service available * added requested changes Co-authored-by: relffok <57466265+relffok@users.noreply.github.com> Co-authored-by: soenke.niemann <s.niemann@campus.tu-berlin.de> Co-authored-by: Niemann <soenke.niemann@ipk.fraunhofer.de> Co-authored-by: Sönke Niemann <soenke.niemann@wtnet.de>
Hi, it is me again. I try to do the mapping by using the gmapping or hectormap for the exploration task. However, when i try to run mapping task, A strange things happen for the position of the robot regards to the map as in the picture belows:
Would you have any recommend steps that i could use the mapping by my own ros package please
The text was updated successfully, but these errors were encountered: