How to get base_footprint from 3D base-Link?
Hi all,
I am using robotlocalization, which gives me a tf odom->baselink in 3D. For the purposes of mapping and navigation, I would like to create a frame basefootprint that preserves the x-y location of baselink 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!
Asked by Robocop87 on 2015-07-21 08:58:17 UTC
Answers
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.
Asked by Naman on 2015-07-21 09:06:04 UTC
Comments
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.
Asked by Robocop87 on 2015-07-21 09:17:52 UTC
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
Asked by Robocop87 on 2015-07-21 09:57:37 UTC
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?
Asked by Tom Moore on 2015-07-24 16:35:50 UTC
Comments