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

tf tree setup

asked 2018-03-20 15:42:18 -0500

Stef_Boat gravatar image


I am new to ros and I want to use the robot_localization package to estimate the state of my real-life 2D robot and then use the navigation package to navigate the robot. My question is if the robot_localization package already provide a tf tree or do I have to set it up by myself? I am using Python to build my files. I already followed the TF-tutorials for Python but I am still confused how to set up the tree. I understand you have a broadcaster and a listener but how can I connect the frames provided by the robot_localization package? When launching "ekf_template.launch" and then doing "rosrun tf view_frames" i get "no tf data received". In the navigation package, there is a map provided by the map_server.

Kind regards, Stef

edit retag flag offensive close merge delete


You have multiple questions here. You should edit this question or break it into several different ones...

jayess gravatar image jayess  ( 2018-03-20 16:44:12 -0500 )edit

You "setup" the tf tree within the urdf of your robot specifying all its joints and links then the node robot_state_publisher and joint_state_publisher do the work. Check #q212525 for more details

Delb gravatar image Delb  ( 2018-03-21 04:33:04 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2018-04-13 06:11:33 -0500

Tom Moore gravatar image

The only transform that the state estimation nodes in r_l will produce will be from your world frame (e.g., odom) to your robot's body frame (e.g. base_link).

The state estimation nodes assume that you have provided a transform from any sensor data that you provide to one of those frames, or that your data is already in one of those frames. For example, if you fuse velocity data from wheel encoders, it needs to be in the base_link frame (your robot's body frame), or you need to provide a transform from your wheel encoder frame to the base_link frame.

If you have some kind of absolute pose measurement (from, say, overhead cameras that are localizing your robot), the output of that pose data needs to be in the odom frame, or you have to provide a transform from the camera pose data to the odom frame.

edit flag offensive delete link more

Question Tools



Asked: 2018-03-20 15:41:23 -0500

Seen: 2,058 times

Last updated: Apr 13 '18