RTABMap rgbd_odometry getting lost
Hello,
I am trying to use the rgbdodometry 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 depthimageto_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/enable_ir2" type="bool"
value="$(arg enable_ir2)" />
<param name="$(arg camera)/driver/enable_color" type="bool"
value="$(arg enable_color)" />
<param name="$(arg camera)/driver/enable_pointcloud" type="bool"
value="$(arg enable_pointcloud)" />
<param name="$(arg camera)/driver/enable_tf" type="bool"
value="$(arg enable_tf)" />
<param name="$(arg camera)/driver/depth_width" type="int"
value="$(arg depth_width)" />
<param name="$(arg camera)/driver/depth_height" type="int"
value="$(arg depth_height)" />
<param name="$(arg camera)/driver/color_width" type="int"
value="$(arg color_width)" />
<param name="$(arg camera)/driver/color_height" type="int"
value="$(arg color_height)" />
<param name="$(arg camera)/driver/depth_fps" type="int"
value="$(arg depth_fps)" />
<param name="$(arg camera)/driver/color_fps" type="int"
value="$(arg color_fps)" />
<group ns="$(arg camera)">
<!-- Start nodelet manager -->
<node pkg="nodelet"
type="nodelet"
name="$(arg manager)"
args="manager"
output="$(arg output)">
<!-- Remapping for perceiving markers -->
<remap from="/camera/depth/image_raw" to="/depth/image" />
<remap from="/camera/color/camera_info" to="/rgb/camera_info" />
<remap from="/camera/color/image_raw" to="/rgb/image" />
</node>
<!-- Start RealSense nodelet -->
<include file="$(find realsense_camera)/launch/includes/nodelet.launch.xml">
<arg name="manager" value="$(arg manager)" />
<arg name="camera" value="$(arg camera)" />
<arg name="camera_type" value="$(arg camera_type)" />
<arg name="serial_no" value="$(arg serial_no)" />
<arg name="usb_port_id" value="$(arg usb_port_id)" />
</include>
<!-- Start depth image to laserscan conversion nodelet. -->
<node pkg="nodelet"
type="nodelet"
name="depthimage_to_laserscan"
args="load depthimage_to_laserscan/DepthImageToLaserScanNodelet $(arg manager)">
<param name="scan_height" value="10"/>
<param name="output_frame_id" value="/$(arg camera)_depth_frame"/>
<param name="range_min" value="0.30"/>
<remap from="image" to="/camera/depth/image_raw"/>
<remap from="scan" to="$(arg scan_topic)"/>
</node>
</group>
<!-- Run RGBD_Odometry -->
<node pkg="rtabmap_ros" type="rgbd_odometry" name="rgbd_odometry">
<param name="Odom/ResetCountdown" type="string" value="10"/>
</node>
</launch>
Asked by Andreluizfc on 2018-02-13 15:39:34 UTC
Comments
see https://github.com/introlab/rtabmap_ros/issues/219
Asked by matlabbe on 2018-02-13 22:16:37 UTC