ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | Q&A answers.ros.org

# How to get base_footprint from 3D base-Link?

Hi all,

I am using robot_localization, which gives me a tf odom->base_link in 3D. For the purposes of mapping and navigation, I would like to create a frame base_footprint that preserves the x-y location of base_link and the yaw.

I looked around but I couldn't find a package that does this. I assume this has to be a standard thing since so many robots use base_footprint. Am I missing something? Do I need to make a node to just do this?

edit retag close merge delete

Sort by » oldest newest most voted

Hi,
base_footprint is located at ground level directly below base_link or base_footprint is the projection of base_link on the ground. You can use this information to find base_footprint from base_link.

Update: I dont think you need to write a new node for it. You can use static_transform_publisher to publish the transform between base_link and base_footprint.
Example :

<node pkg="tf" type="static_transform_publisher" name="base_link_footprint" args="0 0 z 0.0 0.0 0.0 /base_footprint /base_link 100" />


where base_footprint is z below base_link. You can put this directly in any launch file or modify accordingly to run it from the terminal.

Hope it helps.

more

Right, thats what I was getting at in my question. My point was, is there a standard package that already exists that strips the other 3D parts out, or do I need to write my own node to do it. Obviously its not too much trouble to write my own, but if one exists I'd like to use it.

( 2015-07-21 09:17:52 -0500 )edit

Thank you for your suggestion! Unfortunately this does not take into account any 3D rotations experienced by base_link. The tf would need to cancel out pitch and roll as well as the z coordinate

( 2015-07-21 09:57:37 -0500 )edit

I think tf should handle the case you want. Based on the answer above, the base_footprint location, once transformed to the odom frame, would provide the location that is z meters away from the "bottom" of your robot, and will account for the robot's rotation. Perhaps you can clarify?

( 2015-07-24 16:35:50 -0500 )edit