ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Hi this is definitely possible.

RTABMAP Recommended robot configuration: 
A 2D laser which outputs sensor_msgs/LaserScan messages.

Odometry (IMU, wheel encoders, ...) which outputs nav_msgs/Odometry message.

A calibrated Kinect-like sensor compatible with openni_launch, openni2_launch or freenect_launch ros packages.

You can take a look at RTABMAP RGBD + Odometry where they specify how this is done using roslaunch configs.

The crucial part of this config is this:

<node name="rtabmap" pkg="rtabmap_ros" type="rtabmap" output="screen" args="--delete_db_on_start">
      <param name="frame_id" type="string" value="base_link"/>

      <param name="subscribe_depth" type="bool" value="false"/>
      <param name="subscribe_rgbd" type="bool" value="true"/>

      <remap from="odom" to="/base_controller/odom"/>

      <remap from="rgbd_image" to="rgbd_image"/>

where /base_controller/odom is the wheel enconder based external odometry.

However do take note that the merging/fusion of acceleration sensors and wheel encoder odometry has to be done before passing it RTABMAP since RTABMAP is only expecting 1 external odometry source from the robot. You can implement your own simple fusion methods or use packages like robot_localization to help fuse the data using Extended Kalman Filters over the covariances of the input streams.

Hope that clears your doubts.