Interfacing Rtabmap and Robot_Localization
Hello,
I am working to use robot_localization to take in info from a piksi gps, rp 2d lidar, and UM7 IMU and to give me a good estimate of where I am in space. I want to report this to rtabmap so I can relate this position to the 3d environment of my robot. When I run rtabmap without robot_localization everying works, however when I run robot_localization alongside rtabmap the odom frame drifts like crazy. I didn't know if this was an issue that you have seen before or not. Let me know what you need from me!
Here is my Launch file folder: https://github.com/zastrix/ROS-Launch...
rtabmap Launch file called robo_loco.launch Robot Localization launch file called rgbd_mapping.launch
Thanks for all the help!
The "odom frame drifts", do you mean /map->/odom or /odom->/base_link? Also, is it the output of robot_localization that is drifting? An IMU would drift over time (even if not moving), did you try IMU+visual odometry alone with one robot_localization (without the one for map)?
The IMU information that we had set up for RL to input was incorrect. Now that we have our launch files fixed rtabmap is working. However the instance of RL that does the tf from map to odom is not performing the transform. Running diagnostics we get /odom/filtered: no events recorded
I also re submitted another question for this issue titled Robot_Localization not publishing transform to odom
I don't think the second robot_localization node should be used for /map -> /odom transform. This transform is generally published by a node after global localization or correcting the map (after a loop closure for example) at low frequency (e.g., amcl or rtabmap nodes).
Does rtabmap provide the transform from map to odom if we only use one instance of RL? The whole reason we are using RL is to have a better representation of where we are in space so if we don't NEED to do the sensor fusion in RL to get this accuracy then that would be great.
Another issue has arose as well. When we try to run the scan matching rtabmap crashes and we have no idea why.
Yes, rtabmap node doesn't require robot_localization. robot_localization would be used to do odometry fusion of multiple sources (IMU, visual odometry, wheel odometry, etc...), giving the filtered odometry topic to rtabmap. With
publish_tf=:true
, rtabmap publishes /map->/odom.For the crash, this may be related to this post