RTABMap rgbd_odometry getting lost
Hello,
I am trying to use the rgbd_odometry to publish Odom information to the Gmapping package. I have an aero board and use the R200 camera, so I can just rely on visual odometry to run the Gmapping. Also I am using the depthimage_to_laserscan package.
For some reason the rgbd_odometry gets lost very fast, even if I move slow and away from the first scan. If I move away from the first scan it says
No transform from Transform [sender=unknown_publisher]
For frame [/camera_depth_frame]: No transform to fixed frame [map]. TF error: [Lookup would require extrapolation into the future. Requested time 1518552116.724870413 but the latest data is at time 1518552116.058380480, when looking up transform from frame [camera_depth_frame]
In the rgbd_odometry tab:
[ WARN] (2018-02-13 15:50:17.789) OdometryF2M.cpp:372::computeTransform() Registration failed: "Not enough 3D features in images (old=2000, new=10, min=20)"
[ INFO] [1518547817.791709400]: Odom: quality=0, std dev=0.000000m|0.000000rad, update time=0.090951s
Below is my launch file:
<?xml version="1.0"?>
<!-- Bring up RealSense-based laser scan using nodelets
For historical reasons, assumes a R200. For a ZR300 camera
use scan_zr300.launch.
-->
<launch>
<!-- "camera" should uniquely identify the device.
All topics are pushed down into the "camera" namespace,
and it is prepended to tf frame ids.
-->
<param name="robot_description" command="$(find xacro)/xacro --inorder '$(find realsense_ros_camera)/urdf/test_r200_camera.urdf.xacro'" />
<node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher" />
<node pkg="tf" type="static_transform_publisher" name="base_link_2_camera_link" args="0 0 0 0 0 0 /base_link /camera_link 100"/>
<arg name="manager" value="nodelet_manager"/>
<!-- Worker threads for the nodelet manager -->
<arg name="num_worker_threads" default="4" />
<arg name="output" default="screen"/>
<arg name="camera" default="camera"/>
<arg name="camera_type" default="R200"/>
<arg name="serial_no" default="" />
<arg name="usb_port_id" default="" /> <!-- USB "Bus#-Port#" -->
<arg name="publish_tf" default="true"/> <!-- coming from URDF already -->
<!-- Factory-calibrated depth registration -->
<arg name="depth_registration" default="false"/>
<!-- Laserscan topic -->
<arg name="scan_topic" default="scan"/>
<!-- Processing Modules and Parameters -->
<arg name="rgb_processing" default="true"/>
<arg name="ir_processing" default="true"/>
<arg name="depth_processing" default="true"/>
<arg name="depth_registered_processing" default="true"/>
<arg name="disparity_processing" default="true"/>
<arg name="disparity_registered_processing" default="true"/>
<!-- pick depth mode -->
<arg if="$(arg depth_registration)" name="depth" value="depth_registered" />
<arg unless="$(arg depth_registration)" name="depth" value="depth" />
<!-- other camera parameters -->
<arg name="mode" default="manual" />
<arg name="enable_depth" default="true" />
<arg name="enable_ir" default="true" />
<arg name="enable_ir2" default="true" />
<arg name="enable_color" default="true" />
<arg name="enable_pointcloud" default="true" />
<arg name="enable_tf" default="false" />
<!-- lower value of depth resolution improves (reduces) min range -->
<arg name="depth_width" default="640" />
<arg name="depth_height" default="480" />
<!-- lower camera resolution for enhanced performance -->
<arg name="color_width" default="640" />
<arg name="color_height" default="480" />
<arg name="depth_fps" default="30" />
<arg name="color_fps" default="30" />
<!-- set up as camera driver parameters -->
<param name="$(arg camera)/driver/mode" type="str"
value="$(arg mode)" />
<param name="$(arg camera)/driver/enable_depth" type="bool"
value="$(arg enable_depth)" />
<param name="$(arg camera)/driver/enable_ir" type="bool"
value="$(arg enable_ir)" />
<param name="$(arg camera)/driver ...
see https://github.com/introlab/rtabmap_r...