Hi,
The problem is a typo in the launch file making the node not subscribing to scan:
...
[ INFO] [1556637243.446678168]: Setup rgbd3 callback
[ INFO] [1556637243.460488756]:
/rtabmap/rtabmap subscribed to (approx sync):
/odometry/filtered,
/left_front/rgbd_image,
/right_front/rgbd_image,
/top_front/rgbd_image
[ INFO] [1556637243.469096558]: rtabmap 0.19.2 started...
...
Also the frame_id is not correct, it should be the base frame of the robot. Change all
<param name="suscribe_scan" type="bool" value="true"/>
<param name="frame_id" type="string" value="front_link"/>
by
<param name="subscribe_scan" type="bool" value="true"/>
<param name="frame_id" type="string" value="base_link"/>
So you get on launch:
...
[ INFO] [1556638018.308607568]: Setup rgbd3 callback
[ INFO] [1556638018.332895398]:
/rtabmap/rtabmap subscribed to (approx sync):
/odometry/filtered,
/left_front/rgbd_image,
/right_front/rgbd_image,
/top_front/rgbd_image,
/scan
[ INFO] [1556638018.346058442]: rtabmap 0.19.2 started...
...
Other notes:
1) "rtabmap_args" argument is not used anywhere, you may add it to args="$(arg rtabmap_args)" of rtabmap node.
2) do you use robot_localization package? set "two_d_mode" because the input odometry poses are not 2D, causing occupancy grids not correctly generated.
3) you may have to update the TF between cameras / lidar and the base as the walls seen by the left camera doesn't match the lidar scan. Also, you may offset in Z the whole robot so that the ground in the clouds match the xy plane. We can do it by adding a TF frame base_footprint -> base_link, modify odometry node's base frame id to base_footprint instead of base_link then on rtabmap side:
<param name="frame_id" type="string" value="base_footprint"/>
with
<node pkg="tf" type="static_transform_publisher" name="footprint_to_base" args="0 0 0.4 0 0 0 base_footprint base_link 100"/>
cheers,
Mathieu