ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
![]() | 1 | initial version |
Hi,
You should use TF /map -> /base_link
(or /camera_link
depending of your camera frame id). When reseting odometry, it restarts to pose (0,0). The poses from /rtabmap/odom
are in /odom
frame, not /map
frame. What you want are the coordinates in /map frame (including localization):
$ rosrun tf tf_echo /map /base_link
cheers
![]() | 2 | No.2 Revision |
Hi,
You should use TF /map ->
(or /base_link/camera_link
depending of your camera frame id). . When reseting odometry, it restarts to pose (0,0). The poses from /rtabmap/odom
are in /odom
frame, not /map
frame. What you want are the coordinates in /map /map
frame (including localization):
$ rosrun tf tf_echo /map /base_link
/camera_link
EDIT
The $ rosrun tf tf_echo /map /camera_link
should have worked, but it seems you have a problem with the clock. Your requested time is 1459949359.363947774 (06 Apr 2016 13:29:19 GMT) and the earliest TF frame is 1460911947.649899845 (17 Apr 2016 16:52:27 GMT). Do you use a rosbag? If so, don't forget to set use_sim_time to true
and do $ rosbag play --clock my_bag.bag
.
The output of $ rosrun tf tf_echo /map /odom
is ok, in your case it may be Identity transform (0 everywhere) as no loop closures (or relocalization) were detected yet. For example, if the robot didn't close a loop yet (odometry not yet corrected), /map -> /odom
will be Identity.
Note that you can show up /TF in RVIZ to help visualize the transforms (set general option "Fixed Frame" to /map
). You can see also the TF tree with:
$ rosrun tf view_frames
$ evince frames.pdf
cheers