RTAB SLAM map improvement using wheel odom

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

RTAB SLAM map improvement using wheel odom

AOS_robot
This post was updated on .
Hello,
I have built a map using RGBD Xtion and visual odom. I have been using rtabmap.launch, as I couldn't get the launch files from http://wiki.ros.org/rtabmap_ros/Tutorials/SetupOnYourRobot working in my case. The robot can now localise reasonably well when moved around the the room. I want to improve the map using my wheel odometry, publishing in rostotopic as "odom" because when the robot is turned sharply it loses odometry.
I want to edit rtabmap.launch to use the wheel odometry but I have been unsuccessful so far with every config that I have attempted (I am learning the ropes still with ROS launch files).
The second question I have is, does setting  <arg name="odom_sensor_sync"         default="false"/> to true allow the visual and wheel odometry to be integrated and used simultaneously. Ideally I would have both be using both odometry information to improve the accuracy.
Any help is greatly appreciated!!
Reply | Threaded
Open this post in threaded view
|

Re: RTAB SLAM map improvement using wheel odom

matlabbe
Administrator
Hi,

If you use rtabmap.launch, use it like this to disable visual odometry:
roslaunch rtabmap_ros rtabmap.launch visual_odometry:=false odom_topic:=/my_wheel_odom_topic ...

It is possible to feed wheel odometry as guess to visual odometry to make it a little more robust (if wheel odometry is relatively accurate on short periods). To do so, we can launch rtabmap.launch like this:
roslaunch rtabmap_ros rtabmap.launch odom_guess_frame_id:=odom vo_frame_id:=vo_odom ...
where "odom" is the odometry TF frame of your wheel odometry and "vo_odom" is th eTF frame of visual odometry. Your TF tree will look like this:
/map -> /vo_odom -> /odom -> /base_link ...

You can also enable auto reset of odometry when it gets lost, to do so:
roslaunch rtabmap_ros rtabmap.launch odom_guess_frame_id:=odom vo_frame_id:=vo_odom args:="--Odom/ResetCountdown 1" ...

cheers,
Mathieu