Hi, I am trying to use RTAB-Map on my clearpath Jackal robot (am reading its topics through the same wifi). I am not using OpenNI because my robot and ASUS Xtion rgbd camera have already been set up to publish the camera topics (as shown in the picture where I type in rostopic list):
Whenever I run roslaunch rtabmap_ros rgbd_mapping.launch rtabmap_args:="--delete_db_on_start", it takes long for my RTAB to open up, and when it does run, I get the following on the Progress dialog of the RTAB GUI when I click on the Download all clouds button (looks like a refresh button) and I select any of the Options: 17:42:11 Downloading the map (global=false ,optimized=true)... 17:42:14 Downloading the map... done. 17:42:14 [ERROR] Map received with code error 1! Meanwhile, the terminal keeps displaying: [ WARN] [1464793454.065524286]: TF_OLD_DATA ignoring data from the past for frame camera_rgb_frame at time 1.46479e+09 according to authority unknown_publisher Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained Anyone know how I might be able to fix this? Thanks for the help! :) |
Administrator
|
Hi,
Is RTAB-Map running on the same computer as the camera/robot? Normally, it should not take too long to open rtabmapviz, unless there is a lag when reading the rosparam server (which could happen on WIFI). If you are starting RTAB-Map on another computer than the camera (and a WIFI connection is between them), you cannot start rgbd_mapping.launch "as is" because it will subscribe to raw RGB/depth images (which require a lot of bandwidth!). For remote mapping, see this tutorial: http://wiki.ros.org/rtabmap_ros/Tutorials/RemoteMapping The "[ERROR] Map received with code error 1!" can be caused by rtabmapviz not able to call /rtabmap/get_map service (because connection problem) or that rtabmap node is died. Look in the terminal where rtabmap is started for possible errors. When rtabmap is running, it should show a status message each second on the terminal. Your TF error seems a problem of synchronization of TF between the computers (is the clock synchronized between the computers?). cheers |
Hi,
No RTAB-Map is being run on a different computer than the robot. And yes, the RTAB-Map takes a long time to work because it keeps saying "setting parameter: PARAMETERNAME" for a bunch of parameters, and each parameter setting takes around a minute. Thank you very much for the help, I will check out the remote mapping tutorial and let you know if it fixes the issue. So just to clarify, rtabmap is usually loaded and run in the robot computer? Best, Gabriel |
In reply to this post by Gabe
Hey,
So i just tried the remote mapping method (http://wiki.ros.org/rtabmap_ros/Tutorials/RemoteMapping) and I try to do the first step where we create the freenect_throttle.launch file (i named it notfreenect_throttle.launch because I am not using freenect, my camera topics are already being published, as seen from the picture), and I make the following modifications to the launch file they tell us to copy: - I remove the <include file="$(find freenect_launch)/launch/freenect.launch"> |
In reply to this post by Gabe
Hi,
So i've been trying to get this to work, and I've got it down to just one last error when trying to run my roslaunch notfreenect_throttle.launch rate:=5 , the file created according to these guidelines: http://wiki.ros.org/rtabmap_ros/Tutorials/RemoteMapping. This is the error I get: [FATAL] [1464861932.248119604]: Service call failed!
|
Administrator
|
Hi Gabriel,
RTAB-Map can be launched on the robot or a remote computer. There is indeed more steps when launching form a remote computer to get the data with low bandwidth. Depending on your WIFI reliability and speed (and if you want to do visual odometry on the remote computer), you may increase "rate" below to 10. I recommend though to use odometry from your robot if it has it already (see section Advanced in the tutorial). Try to launch the nodelet in its own standalone nodelet manager (not sure if camera_nodelet_manager exists on your robot): <launch> <arg name="rate" default="5"/> <arg name="decimation" default="1"/> <!-- Reduce the image size, e.g., 2 means "width/2 x height/2". <group ns="camera"> <node pkg="nodelet" type="nodelet" name="data_throttle" args="standalone rtabmap_ros/data_throttle" output="screen"> <param name="rate" type="double" value="$(arg rate)"/> <param name="decimation" type="int" value="$(arg decimation)"/> <remap from="rgb/image_in" to="rgb/image_rect_color"/> <remap from="depth/image_in" to="depth_registered/image_raw"/> <remap from="rgb/camera_info_in" to="rgb/camera_info"/> <remap from="rgb/image_out" to="data_throttled_image"/> <remap from="depth/image_out" to="data_throttled_image_depth"/> <remap from="rgb/camera_info_out" to="data_throttled_camera_info"/> </node> </group> </launch>You can then verify that throttled topics are published using this: $ rostopic hz /camera/data_throttled_image $ rostopic hz /camera/data_throttled_image_depth $ rostopic hz /camera/data_throttled_camera_info cheers |
Hi Matlabbe,
Thanks so much for all the help. I copied your launch file onto my notfreenect_throttle.launch, and i ran roslaunch notfreenect_throttle.launch rate:=5, but I still get the same error. When i type rostopic list, I do have a camera/camera_nodelet_manager/bond topic already running, maybe that could be the reason for the problem? Also, on the Robot, I am able to run rtabmap but i get errors. This is what happens when i try to run the following code: roslaunch rtabmap_ros rgbd_mapping.launch _image_transport:=compressed rtabmaprviz:=false rviz:=true odom:=/odometry/filtered rgb/image:=/camera/rgb/image_rect?color depth_image:=/camera/depth_registered/image_raw rgb/camera_info:=/camera/rgb/camera_info queue_size:=10 RGBD/AngularUpdate:=0.01 RGBD/LinearUpdate:=0.01 Rtabmap/TimeThr:=700 Mem/RehearsalSimilarity:=0.45 RGBD/OptimizeFromGraphEnd:=true
|
Administrator
|
Hi,
the code above should not use the camera_nodelet_manager: See nodelet documentation for more info:http://wiki.ros.org/nodelet/Tutorials/Running%20a%20nodelet If you see odometry info printing, it is a good sign that the mapping is working. However for rviz and rtabmapviz, you cannot launch them from ssh without a X server running. For visualization on the remote computer, either 1- launch rgbd_mapping.launch in a ssh session with X server running ($ ssh -X robot@192.168.0.2) or 2- launch rgbd_mapping.launch with "rtabmapviz:=false rviz:=false" from ssh and launch rviz directly ($rosrun rviz rviz) on the remote computer cheers |
Free forum by Nabble | Edit this page |