Posted by
Megacephalo on
URL: http://official-rtab-map-forum.206.s1.nabble.com/rgbd-odometry-does-not-pose-anythintg-tp1239p1244.html
Hi,
Thanks for replying so fast! I modified to add some more parameters you indicated in your reply. I double check if the node gets every topic it needs as follows:
Node [/rgbd_odometry]
Publications:
* /rgbd_odom [nav_msgs/Odometry]
* /tf [tf/tfMessage]
* /rosout [rosgraph_msgs/Log]
* /odom_local_map [sensor_msgs/PointCloud2]
* /odom_last_frame [sensor_msgs/PointCloud2]
* /odom_info [rtabmap_ros/OdomInfo]
Subscriptions:
* /camera/rgb/image_raw [sensor_msgs/Image]
* /tf [tf/tfMessage]
* /camera/rgb/camera_info [sensor_msgs/CameraInfo]
* /tf_static [tf2_msgs/TFMessage]
* /camera/depth/image_raw [sensor_msgs/Image]
* /clock [rosgraph_msgs/Clock]
and set output="screen". From the warnings it seems that the odometry is working, but the warnings appear in between the infos, like these lines that I extracted:
[ INFO] [1461744454.319656827, 792.447000000]: Odom: quality=0, std dev=0.000000m, update time=0.029590s
[ WARN] (2016-04-27 16:07:34.391) OdometryBOW.cpp:318::computeTransform() Local map too small!? (3 < 20)
[ INFO] [1461744454.392321245, 792.497000000]: Odom: quality=0, std dev=0.000000m, update time=0.027326s
[ WARN] (2016-04-27 16:07:34.453) OdometryBOW.cpp:318::computeTransform() Local map too small!? (3 < 20)
[ INFO] [1461744454.453368104, 792.537000000]: Odom: quality=0, std dev=0.000000m, update time=0.017773s
well, at least it is much better of detecting something 3<20 rather than 0<20 as before. I thought this may due to a lack of minimum required number of features, since the simulated environment is kind of featuresless, as shown in the picture below

So I added the following parameters
<node pkg="rtabmap_ros" type="rgbd_odometry" name="rgbd_odometry" output="screen">
<remap from="rgb/image" to="/camera/rgb/image_raw"/>
<remap from="depth/image" to="/camera/depth/image_raw"/>
<remap from="rgb/camera_info" to="/camera/rgb/camera_info"/>
<remap from="/odom" to="/rgbd_odom"/>
<remap from="scan" to="/beebot/laser/scan" />
< param name="frame_id" type="string" value="camera_link"/>
< param name="subscribe_depth" type="bool" value="true"/>
< param name="Odom/Holonomic" type="bool" value="false" />
< param name="Odom/MaxFeatures" type="int" value="0" />
< param name="Odom/ParticleSize" type="int" value="5000" />
< param name="RGBD/PoseScanMatching" type="string" value="true" />
</node>
and thus I get the following kind of messsages:
[ INFO] [1461746823.867357842, 1087.660000000]: Odom: quality=0, std dev=0.000000m, update time=0.027174s
[ WARN] (2016-04-27 16:47:03.924) OdometryBOW.cpp:318::computeTransform() Local map too small!? (11 < 20)
[ INFO] [1461746823.924531255, 1087.696000000]: Odom: quality=0, std dev=0.000000m, update time=0.024988s
[ WARN] (2016-04-27 16:47:03.986) OdometryBOW.cpp:318::computeTransform() Local map too small!? (11 < 20)
[ INFO] [1461746823.986350252, 1087.733000000]: Odom: quality=0, std dev=0.000000m, update time=0.024611s
[ WARN] (2016-04-27 16:47:04.082) OdometryBOW.cpp:318::computeTransform() Local map too small!? (11 < 20)
[ INFO] [1461746824.082515543, 1087.778000000]: Odom: quality=0, std dev=0.000000m, update time=0.036423s
At this point, rgbd_odometry still cannot publish any odometry messages. Why is that ? Thank you so much !
Cheers !