ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
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.