hey guys,
im trying to run the rgbd dataset freiburg2 (both with loop and without), but the output is odometry:Could not get transform from camera_link to /openni_rgb_optical_frame [...] this is my launch file: <launch> <include file="$(find rtabmap_ros)/launch/rtabmap.launch"> <arg name="frame_id" value="camera_link" /> <arg name="rgb_topic" default="/camera/rgb/image_color" /> <arg name="depth_topic" default="/camera/depth/image" /> <arg name="camera_info_topic" default="/camera/rgb/camera_info" /> <arg name="visual_odometry" default="true"/> <!-- Launch rtabmap visual odometry node --> <arg name="odom_topic" default="/odom"/> <!-- Odometry topic used if visual_odometry is false --> <arg name="odom_args" default="--delete_db_on_start"/> <arg name="subscribe_scan" default="false"/> <arg name="cfg" default="$(find rtabmap_ros)/launch/config/config.ini" /> </include> <node name="rtabmap_relay" type="relay" pkg="topic_tools" args="/rtabmap/proj_map /map" /> <node pkg="nodelet" type="nodelet" name="pcl_manager" args="manager" output="screen" /> <!-- Run a VoxelGrid filter to clean NaNs and downsample the data --> <node pkg="nodelet" type="nodelet" name="voxel_grid" args="load pcl/VoxelGrid pcl_manager" output="screen"> <remap from="~input" to="/xtion/depth/points" /> <rosparam> filter_field_name: z filter_limit_min: -10 filter_limit_max: 10 filter_limit_negative: False leaf_size: 0.05 </rosparam> </node> <node pkg="nodelet" type="nodelet" name="obstacles_detection" args="load rtabmap_ros/obstacles_detection pcl_manager" output="screen"> <remap from="cloud" to="/voxel_grid/output"/> <remap from="obstacles" to="/obstacles_cloud"/> <remap from="ground" to="/ground_cloud"/> <param name="frame_id" type="string" value="base_link"/> <param name="map_frame_id" type="string" value="map"/> <param name="wait_for_transform" type="bool" value="true"/> <param name="min_cluster_size" type="int" value="20"/> <param name="max_obstacles_height" type="double" value="0.4"/> </node> </launch> I'm launching it with this param: roslaunch rtabmap_ros launch.launchwith use_sim_time enabled. And I'm playing the bag with: rosbag play --clock ros.bag greets Tobias |
Administrator
|
Hi,
with rgbd datasets, I don't think the frame on the kinect is called /camera_link, but /kinect. Launch the rosbag alone and call "$ rosrun tf view_frames" to see the frames in the bag. You can also look at the launch file rgbdslam_datasets.launch. There is an hack to avoid removing /world -> /kinect TF from the bag, because you cannot have /odom -> /kinect and /world->/kinect at the same time (two parents for the same frame). If you want to remove /world frame from the bag, take a look at this script: filterBagTF.py. cheers |
Hey,
playing back the dataset with the rgbdslam_dataset.launch is working, but the problem is, when I export the data (export poses => RGBD-SLAM format) and try to evaluate it with the online tool (http://vision.in.tum.de/data/datasets/rgbd-dataset/online_evaluation), it haves very bad values. compared_pose_pairs 72 pairs absolute_translational_error.rmse 428337.945816 m absolute_translational_error.mean 398677.004400 m absolute_translational_error.median 425686.234756 m absolute_translational_error.std 156620.694636 m absolute_translational_error.min 83678.944986 m absolute_translational_error.max 699703.705033 m Sometimes while running rtabmap_ros i got this errors: TF of received depth image 0 at time 1311878199.398346s is not set, aborting rtabmap update. and this kind of warnings: tabmapviz: Could not get transform from kinect to /openni_rgb_optical_frame after 0,200000 seconds (for stamp=1311878199,998073) odometry: Could not get transform from kinect to /openni_rgb_optical_frame Running the filterBagTF.py makes it only worse :/ greets Tobias |
Administrator
|
Hi,
Make sure you are comparing the same datasets with the evaluation tool. Is the 3D map looks okay visually? The error should be under 10 cm. This could be a problem with the exportation format too. Which dataset are you testing? Make sure you decompressed the rosbag before playing it: $ rosbag decompress rgbd_dataset_freiburg2_XXXXXX.bag cheers |
in rtabmapviz it looks good, but rviz just visualize crap :/ I test different datasets. The screenshot is from the dataset freiburg1/360, but I tested some freiburg2 datasets and there was the problem too. yes its decompressed. greets tobi |
Administrator
|
This post was updated on .
The freiburg1/360 dataset is one of the most challenging, the camera moves very fast. With the rosbag, it is difficult to have a good synchronization between RGB and depth images. If you want to do more exhaustive tests, I recommend to use pre-synchronized images (from the tgz archives) with the standalone (see How to process RGBD-SLAM datasets with RTAB-Map?).
I ran the same rosbag multiple times, and each time the results are quite different because of the synchronization and which images are processed. Here is an example of bad synchronization between two consecutive frames used for odometry: Note how the second one has a very bad rgb/depth synchronization, this can make odometry shifts about 10/20 cm. However, I can have a map correctly displayed in rtabmapviz and rviz: $ rosbag decompress rgbd_dataset_freiburg1_360.bag $ roslaunch rtabmap_ros rgbdslam_datasets.launch rtabmapviz:=true $ rosbag play --clock rgbd_dataset_freiburg1_360.bag The poses exported from rtabmapviz (File->Export poses... -> RGBD-SLAM format): 1305031790.645155 -0.343754 -0.364465 1.520876 -0.152806 0.746242 -0.435483 -0.479716 1305031791.681062 -0.489066 -0.429993 1.731693 0.277468 0.715050 -0.444804 -0.462454 1305031792.781106 -0.547994 -0.338703 1.746497 0.366295 0.687000 -0.395597 -0.487197 1305031793.813185 -0.624488 -0.515565 1.436496 -0.227049 -0.777891 -0.001652 0.585945 1305031794.813463 -0.689133 -0.486064 1.590621 -0.469149 -0.615728 0.061101 0.630116 1305031795.913138 -0.664798 -0.258711 1.744098 -0.726552 -0.273406 0.034423 0.629433 1305031797.013555 -0.780664 -0.314836 1.412518 0.614433 0.522508 0.365098 -0.464931 1305031798.081417 -0.791858 -0.166777 1.494092 0.708265 0.326164 0.381841 -0.496160 1305031799.116275 -0.672839 -0.324445 1.689322 -0.738972 0.179924 -0.305905 0.572686 1305031800.117205 -0.579520 -0.211797 1.529653 0.774450 0.008478 0.499419 -0.388248 1305031801.118492 -0.642472 -0.084841 1.395963 0.754323 -0.032479 0.621447 -0.209155 1305031802.184646 -0.548433 -0.195836 1.755300 0.602313 -0.439215 0.485341 -0.456897 1305031803.289513 -0.486772 -0.116576 1.440019 0.635023 -0.355196 0.684253 -0.048779 1305031804.322186 -0.398425 -0.144230 1.257772 0.701626 -0.230764 0.634481 0.227820 1305031805.349450 -0.508673 -0.065775 1.654372 0.363012 -0.592048 0.715658 -0.074401 1305031806.428086 -0.381247 -0.229966 1.471137 0.418412 -0.576510 0.677969 0.181455 1305031807.525569 -0.312786 -0.285302 1.338971 -0.338869 0.628510 -0.572237 -0.403346 1305031808.624717 -0.545290 -0.132775 1.621892 0.124374 0.706355 -0.691035 -0.089803 1305031809.631035 -0.507893 -0.255180 1.606622 0.066572 0.743997 -0.531508 -0.399420 1305031810.729616 -0.541461 -0.325086 1.431674 0.072475 -0.745308 0.283653 0.599002 1305031811.733435 -0.614307 -0.160498 1.697273 -0.403533 -0.634539 0.401909 0.522485 1305031812.734013 -0.634263 0.063414 1.966631 -0.542523 -0.541832 0.363119 0.529369 1305031813.833945 -0.782118 -0.067796 1.582316 -0.254703 -0.740278 -0.007043 0.622145 1305031814.934189 -0.758911 0.041827 1.724696 -0.552167 -0.525063 -0.098601 0.640077 Then with the online evaluation tool: compared_pose_pairs 24 pairs absolute_translational_error.rmse 0.128259 m absolute_translational_error.mean 0.112524 m absolute_translational_error.median 0.097172 m absolute_translational_error.std 0.061553 m absolute_translational_error.min 0.032262 m absolute_translational_error.max 0.311338 m Note that if you want more pairs to compare, you can activate "Rtabmap/CreateIntermediateNodes" (Preferences (advanced)->RTAB-Map settings->"Create intermediate nodes...") before processing and call "Edit->Download Graph-only" in rtabmapviz before exporting the poses. You can set the parameter in the launch file as well: <node name="rtabmap" pkg="rtabmap_ros" type="rtabmap" output="screen" args="--delete_db_on_start"> [...] <param name="Rtabmap/CreateIntermediateNodes" type="string" value="true"/> </node> Resulting poses.txt and evaluation: compared_pose_pairs 213 pairs absolute_translational_error.rmse 0.126808 m absolute_translational_error.mean 0.112584 m absolute_translational_error.median 0.102012 m absolute_translational_error.std 0.058354 m absolute_translational_error.min 0.013106 m absolute_translational_error.max 0.263355 m cheers, Mathieu |
This post was updated on .
thanks. I tested it, but still the same error :/ Now the visualization in rviz looks okay, but if I want to test it with the online benchmark the result is still very bad. compared_pose_pairs 20 pairs absolute_translational_error.rmse 302476.900904 m absolute_translational_error.mean 275122.521301 m absolute_translational_error.median 240601.753608 m absolute_translational_error.std 125697.549113 m absolute_translational_error.min 136725.546756 m absolute_translational_error.max 539335.074042 mwith this.poses.xml: 1305031790,640468 -0,412797 -0,602280 1,521039 0,243428 -0,693553 0,442304 0,513901 1305031791,677621 -0,523372 -0,512569 1,673850 0,239670 0,678641 -0,482061 -0,499622 1305031792,677662 -0,520415 -0,328600 1,797385 -0,362610 -0,638198 0,447750 0,510624 1305031793,677435 -0,651312 -0,499135 1,504836 -0,234307 -0,726256 0,076476 0,641719 1305031794,776816 -0,698768 -0,507391 1,614438 -0,441412 -0,592918 0,089916 0,667472 1305031795,781187 -0,582204 -0,274142 1,766570 -0,723450 -0,197357 0,140016 0,646581 1305031796,877643 -0,801406 -0,340654 1,447000 -0,664301 -0,451439 -0,281122 0,525241 1305031797,981971 -0,797451 -0,213649 1,446352 -0,717800 -0,343501 -0,333899 0,505255 1305031799,016423 -0,650931 -0,316169 1,695823 -0,775911 0,199702 -0,244677 0,546090 1305031800,085033 -0,555946 -0,202153 1,545614 0,811850 -0,030274 0,433086 -0,390409 1305031801,085709 -0,633980 -0,036753 1,400057 0,805592 -0,013321 0,561191 -0,189493 1305031802,219780 -0,527873 -0,134743 1,750655 0,635314 -0,477948 0,449380 -0,407431 1305031803,317616 -0,499800 -0,010848 1,468707 0,683243 -0,340023 0,646011 0,015269 1305031804,388583 -0,427831 -0,039057 1,296027 0,731536 -0,220946 0,591935 0,256224 1305031805,426082 -0,515662 0,083551 1,720226 0,375520 -0,594135 0,711096 -0,018213 1305031806,428086 -0,438794 -0,043483 1,636025 0,439813 -0,543120 0,661166 0,272846 1305031811,698740 -0,634946 -0,243488 1,722393 -0,348482 -0,617905 0,410412 0,572988 1305031812,698746 -0,540168 -0,068528 1,829159 -0,532964 -0,495606 0,410345 0,549492 1305031813,799441 -0,745697 -0,158945 1,427679 -0,283872 -0,693969 0,033625 0,660827 1305031814,801939 -0,740433 -0,062214 1,507082 -0,551537 -0,519021 -0,062080 0,650053 and i will upload the rtabmap.db : http://www.file-upload.net/download-11883366/rtabmap.db.html greets tobi |
Administrator
|
Hi,
What is the language on your machine? The poses are exported with "commas" instead of "dots". Replace "commas" by "dots" and you have: 1305031790.640468 -0.412909 -0.602373 1.521413 0.243055 -0.692999 0.442828 0.514373 1305031791.677621 -0.523375 -0.512368 1.674131 0.240016 0.678025 -0.482727 -0.499649 1305031792.677662 -0.520315 -0.328174 1.797327 -0.362974 -0.637602 0.448418 0.510523 1305031793.677435 -0.651511 -0.499550 1.504319 -0.234935 -0.725963 0.077215 0.641733 1305031794.776816 -0.698897 -0.507591 1.613967 -0.442052 -0.592593 0.090592 0.667245 1305031795.781187 -0.582211 -0.274063 1.765576 -0.724033 -0.196977 0.140406 0.645958 1305031796.877643 -0.801626 -0.341164 1.446277 -0.664917 -0.451504 -0.280502 0.524736 1305031797.981971 -0.797659 -0.214161 1.445382 -0.718409 -0.343620 -0.333364 0.504661 1305031799.016423 -0.650987 -0.316219 1.694954 -0.776502 0.199684 -0.244646 0.545269 1305031800.085033 -0.556088 -0.202501 1.544466 0.812362 -0.030027 0.432873 -0.389599 1305031801.085709 -0.634199 -0.037371 1.398643 0.805954 -0.012886 0.560954 -0.188688 1305031802.219780 -0.527876 -0.134700 1.749360 0.635824 -0.477682 0.449653 -0.406645 1305031803.317616 -0.499972 -0.011349 1.467156 0.683420 -0.339434 0.646115 0.016066 1305031804.388583 -0.428118 -0.039896 1.294485 0.731470 -0.220334 0.591897 0.257026 1305031805.426082 -0.515662 0.083534 1.718504 0.375737 -0.593478 0.711544 -0.017625 1305031806.428086 -0.438861 -0.043669 1.634497 0.439737 -0.542421 0.661530 0.273477 1305031811.698740 -0.634030 -0.242022 1.729032 -0.348477 -0.617809 0.410483 0.573045 1305031812.698746 -0.539380 -0.066773 1.835493 -0.533040 -0.495335 0.410433 0.549596 1305031813.799441 -0.745720 -0.158841 1.428336 -0.284399 -0.693723 0.034137 0.660833 1305031814.801939 -0.740390 -0.061998 1.507599 -0.552067 -0.518820 -0.061613 0.649809 compared_pose_pairs 20 pairs absolute_translational_error.rmse 0.118638 m absolute_translational_error.mean 0.112165 m absolute_translational_error.median 0.114454 m absolute_translational_error.std 0.038652 m absolute_translational_error.min 0.021304 m absolute_translational_error.max 0.177531 m Not sure if your problems with RVIZ were still related, some number conversions may fail. You may try to change locale before starting the nodes: $ export LANG="en_US.UTF-8" I opened an issue to see if there is something that can be done on rtabmap side. cheers |
thanks this was the problem.
greets tobi |
In reply to this post by matlabbe
I am one time using kinect as frame_id and another time base_link but both are getting tf errors what to do? I am not following your script part as I have /world-->/kinect and /odom-->/base_link as two different frames and I am using subscribe_scan as true. |
Free forum by Nabble | Edit this page |