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

How to get base_footprint from 3D base-Link?

asked 2015-07-21 08:58:17 -0500

Robocop87 gravatar image

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?

Thanks for your help!

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2015-07-21 09:06:04 -0500

Naman gravatar image

updated 2015-07-21 09:47:58 -0500

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.

edit flag offensive delete link 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.

Robocop87 gravatar image Robocop87  ( 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

Robocop87 gravatar image Robocop87  ( 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?

Tom Moore gravatar image Tom Moore  ( 2015-07-24 16:35:50 -0500 )edit

Question Tools

1 follower


Asked: 2015-07-21 08:58:17 -0500

Seen: 1,022 times

Last updated: Jul 21 '15