-
Notifications
You must be signed in to change notification settings - Fork 559
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
Fusing RGBD odometry and wheel odometry on ROS2 Humble #1174
Comments
Make sure TF for wheel odometry and visual odometry are not published, robot_localization will publish it. For VO, add
If you set
|
Hi matlabbe, Thank you very much for the response! It seems like I need to take more care in what messages to pass through TFs. I might not be able to disable the robot from publishing wheel odometry (I'm using turtlebot 4). In that case, is it possible to completely disable the usage of TF in rtabmap? If not then I'll need to find a workaround. |
Hi, sorry for the onslaught of questions. Is rtabmap-ros different from rtabmap standalone? The standalone version seems to only rely on the input from a rgbd/stereo camera, but the ros version seems to depend more on wheel odometry. |
We rely on TF to get more accurate odometry corresponding on input data stamps (image or lidar). If the odometry topic is linked to rtabmap node, then just the covariance is actually used from that topic. There is a way to ignore using TF if it doesn't exist, set To avoid publishing any TF, set For turtlebot4, I am currently working on an example with nav2 (replacing slam_toolbox), though I have still some issues I don't understand with the simulator before I officially release the example. You may try this:
If you don't have the lidar, you may do this instead:
I am not sure about the You can use rtabmap without wheel odometry in ROS, though most robots have already wheel odometry or something equivalent that is useful to use. When we set
Doing the second example above, the TF tree will look like this:
where vo->odom is the visual odometry correction of the wheel odometry. Rtabmap standalone doesn't have odometry input because it is mostly used as handled scanning and not on a robot. |
Hello!
I'm trying to do something like #398 where I want to fuse wheel odometry and rgbd odometry to get a more accurate odometry before feeding it to rtabmap.
However I can't seem to get these nodes to communicate with each other properly. Currently I am using this command to launch rtabmap (use_sim_time is true because I'm using ros2 bag playback on a separate development machine):
and the following for robot_localization (use_sim_time = True is injected into this launch script):
This is not currently working, and the mapping results are worse than if I only launched rtabmap without robot_localization. It seems like some transforms or topics are not properly configured, as
rqt_graph
gives meand
ros2 run tf2_tools view_frames
gives meIt seems like rtabmap is receiving something from robot_localization but not through the intended
/odometry/filered
topic.Given the above context, I had a few questions, and please feel free to just redirect me to another resource if it solves my problem and I just didn't find it earlier.
odom_topic
correct? What does this argument do?rgb_topic
,depth_topic
, etc all seems intuitive as those are just set to the topic name of where the data comes from. But forodom_topic
, it seems to affect the odom input topic, rgbd_odom output topic, and the frame_id of the output transform. Usingodom_topic:=/odom
messed up a lot of things whileodom_topic:=odom
seems fine. I don't quite understand how this argument works.odom->base_link
andvo->base_link
and separately publish odometry messages, and THEN we fuse them. However when I followed How to make rtabmap use both visual odometer and wheel odometer? #398 it (as expected) just publishedvo->odom->base_link
, and I couldn't figure out how the odometry messages were being passed between the nodes.Thank you very much for your time!
The text was updated successfully, but these errors were encountered: