Robotics StackExchange | Archived questions

odom to base-footprint

I am using turtlebot3 burger. When i see tf tree, i see base footprint no matter i am using basefootprint in movebase or not. How can i bypass this and have only one transform from odom to baselink? I want my robot to have only this tree . Odom-->baselink-->wheels

Any suggestions?

Asked by Ahmed1212 on 2019-10-10 07:08:45 UTC

Comments

base_footprint is probably coming from your URDF, you can take a look here for understanding relation between base_link and base_footprint. You will have to modify your xacro if you want to get rid of footprint.

Asked by Choco93 on 2019-10-10 08:01:41 UTC

How can i get rid of it? Can you help ?

Asked by Ahmed1212 on 2019-10-10 10:13:38 UTC

As you can see here, base_footprint is a virtual link, you remove this link and add 0.1 to z-origin for base_link.

Asked by Choco93 on 2019-10-11 02:03:06 UTC

So I have removed this code, but still I see base_footprint frame. In my local and glaobal costmap param, I have adom and base_link for files, also for localization node, it is odom and base_link, but I still see base_footprint in tf tree published by turtlebot3_core. What should I do?

 <link name="base_footprint"/>

  <joint name="base_joint" type="fixed">
    <parent link="base_footprint"/>
    <child link="base_link"/>
    <origin xyz="0.0 0.0 0.010" rpy="0 0 0"/>
  </joint>

Asked by Ahmed1212 on 2019-10-11 10:16:31 UTC

Generally speaking is not a good idea to get rid of the base_footprint frame. It provides a stable 2D planar representation of your robot, thus the movement of the system must be supervised from that point.

There is no logic or explanation to not have base_footprint frame, it helps to understand the behavior of the movements, avoid obstacles etc.

Having this said, if you want to get rid of the base_footprint frame, you not only have to remove the link and joint in the urdf but also the parameters for the navigation stack. In the local and global costmaps it is parametrized the robot_base_frame as the base_foot_print, so you should change that parameter to whatever frame you want to navigate in.

Asked by Weasfas on 2019-10-16 05:51:01 UTC

Answers

TL;DR In order to remove base_footprint you need to modify and reflash OpenCR code.

Long explanation:

You still seeing base_footprint because OpenCR is publishing transformation between odom and base_footprint. That's why even if you will remove the frame from URDF you are still seeing base_footprint frame.

I guess that right now base_footprint frame (with parent odom) is disconnected from your TF tree, as you removed base_footprint from your URDF. It happens because there is no connection between base_footprint that is published by OpenCR and base_link from your URDF.

Here is the code for TB3 Burger: https://github.com/ROBOTIS-GIT/OpenCR/tree/master/arduino/opencr_arduino/opencr/libraries/turtlebot3/examples/turtlebot3_burger/turtlebot3_core

Asked by zentala on 2020-05-26 18:25:33 UTC

Comments