ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
Thanks to the information you've provided now I can help you solve your problem.
The ekf_localization_node
that you run provides the transformation between odom
and base
, the static_transform_publisher
instance also broadcasts transformation between imu
and base
. So this will be the result:
odom
-> base
, imu
-> base
while the correct tf tree must be like this:
odom
-> base
-> imu
Your base frame has two parents which is clearly not possible. Each frame can only have one parent.
In your case, you are running static_transform_publisher
with wrong input parameters.
<node pkg="tf" type="static_transform_publisher" name="imu_to_robot_base" args="0 0 0 0 0 0 $(arg imu_frame_id) base 100" />
Just switch the parent and child frame in the input arguments and your problem should be solved. The result must be like this:
<node pkg="tf" type="static_transform_publisher" name="imu_to_robot_base" args="0 0 0 0 0 0 base $(arg imu_frame_id) 100" />