ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

Issues with TF understanding/navigation stack

asked 2011-05-29 09:19:00 -0500

D_mangus gravatar image

Hello, My name is Drew and i'v just started work in the robotics field, as well as with ROS so my understanding of even some more general things could be lacking if not totally missing. I'm looking for more information concerning the TF tree between the Navigation stack, hokuyo_node, and my odometry. I'v muddled through all the Q&A's i could find relating the subjects at hand but to no avail. So to the point.

I have set up my robot so far to have odometry information via an arduino using ardros as a base. It sends odometry information as well as receives twist commands for my motor controller. I'v also got a hokuyo_node and publishing its scans. I'v also been through the entire navigation stack tutorial many many times and i do believe i'v got all of the costmap, amcl, and other properties for my robot set up ok. My issue is when i try to run the stack it errors out and says

"Waiting on transform from base_link to /map to become available before running costmap, tf error: Frame id /map does not exist!"

now this i'v tracked down to be associated with the amcl node publishing this transform which leads me to believe that the hokuyo_node isnt doing whats needed so the amcl node isnt functioning properly. My main question is how to perform the TF from base_link -> base_laser because im am confused on the subject. i'v read about the transform publisher in the navigation stack setup but i'v also read that the hokuyo_node does the posting by itself. So im not overly sure exactly how to clear up this issue.

Thanks ahead of time, and if you need any more information I can try my best to get it ASAP.

edit retag flag offensive close merge delete

Comments

hi. i like to use ardros package as my base controller but i dont know its repository to install. can i ask u to help me??? many tanks:))

mohammad gravatar image mohammad  ( 2014-08-07 14:42:36 -0500 )edit

2 Answers

Sort by » oldest newest most voted
3

answered 2011-05-29 10:12:04 -0500

Some debugging steps which might be helpful to pinpoint where the system breaks:

  1. Verify your laser data: Start rviz, add a LaserScan display type, and set the "fixed frame" to base_laser (or whatever the frame of your laser is). Are you seeing data?
  2. Verify your odometry: Set the "fixed frame" in rviz to odom, and add a "tf" display type. Is the base_link frame moving as you would expect, reported by your odometry?
  3. Debug your tf tree. You can do that by running

    rosrun tf tf_monitor

Or even better, start rviz, and add a "tf" display type.

This is what your tree should look like:

  • map->odom (published by amcl or gmapping)
  • odom->base_link (published by robot_pose_ekf)
  • base_link->base_laser (static, published by static tf published in one of your launch files)

If any of these are missing, you need to address that specific node.

edit flag offensive delete link more

Comments

I did indeed verify my laser data as well as odometry data using rviz, and debugging the TF tree is where i was having issues. Do i need a node that subscribes to the /scan topic and the publishes transforms, or will the <node pkg="tf" type="static_transform_publisher" name="base_link_to_base_laser" args="1 0 0 0 0 0 base_link base_laser 100" /> be ok? cause i do believe it is an issue with the amcl not starting properly as far as the link from map->odom not being published
D_mangus gravatar image D_mangus  ( 2011-05-29 10:26:48 -0500 )edit
The static tf looks ok. Are you sure the laser is publishing in the "laser" frame? The default for hokuyo is "laser". Also can you edit your original Q to include the output of tf_monitor?
Ivan Dryanovski gravatar image Ivan Dryanovski  ( 2011-05-29 10:30:53 -0500 )edit
I will when i get back to the lab, I do not currently have access at the moment. I posted this in hopes that it would be looked at by monday. Thank you for the insight i will post more when i get a hold of the system and can perform more diagnostics.
D_mangus gravatar image D_mangus  ( 2011-05-29 10:38:07 -0500 )edit
I actually found part of the issue that i was getting thanks to your post :) the <node pkg="tf" type="static_transform_publisher" name="base_link_to_base_laser" args="1 0 0 0 0 0 base_link base_laser 100" /> needed to have /laser instead of base_laser to actually recognize the hokuyo_node output.
D_mangus gravatar image D_mangus  ( 2011-05-31 10:58:37 -0500 )edit
Also since it started to actually print out that information, the map->odom error was fixed. It seems that it isnt localizing properly now, but thats value issues i do believe so it will take a bit more tinkering. Thanks greatly for the help, and very interesting work on the 6D Kinect stuff.
D_mangus gravatar image D_mangus  ( 2011-05-31 11:00:28 -0500 )edit
0

answered 2012-05-09 14:40:28 -0500

Droter gravatar image

Hi,

I am having the same issue with a laser. I can see the data stream if I connect directly but not through rviz. When I run rvix there are no items listed in the tree.

I ran rosrun tf tfmonitor and this is what I get: RESULTS: for all Frames

Frames:

All Broadcasters:

Thanks in advance,

Matt

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2011-05-29 09:19:00 -0500

Seen: 3,315 times

Last updated: May 09 '12