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

Revision history [back]

click to hide/show revision 1
initial version
<material> name="orange"> <color rgba="1.0 0.5 0.2 1"/> </material> 
         ^

You have a typo here inducing that your material isn't correctly defined. So when you use the material orange for the link imu_link you get an error and the link isn't created.

Note : When you have something wrong with an URDF file you can use tools like check_urdf that will tell you every mistakes/errors/typos.

<material> name="orange"> <color rgba="1.0 0.5 0.2 1"/> </material> ^

You have a typo here inducing that your material isn't correctly defined. So when you use the material orange for the link imu_link you get an error and the link isn't created.

Note : When you have something wrong with an URDF file you can use tools like check_urdf that will tell you every mistakes/errors/typos.


Edit : The frame odom is actually published by your nodelet ImuFilterNodelet. From the imu_filter_madgwick wiki :

~fixed_frame (string, default: odom)
The parent frame to be used in publish_tf.
~publish_tf (bool, default: true)
Whether to publish a TF transform that represents the orientation of the IMU, using the frame specified in fixed_frame as the parent frame and the frame given in the input imu message as the child frame.

Since you don't set those two parameters they are set to their default value, meaning that a frame odom is published and is set as the parent of the frame related to your imu messages (i.e. imu_link as defined when calling your other nodelet PhidgetsImuNodelet). So you end up with imu_link having odom as a parent from your nodelet AND base_link as a parent from the node robot_state_publisher, which explains why your tf tree is broken.

That being said, I'm not entirely sure about what you should do. You should see this discussion.

You'll probably have to change your URDF to set imu_link as the parent of base_link instead of its child and then change the tracking_frame param from cartographer to the base_link (you shouldn't have removed the cartographer params from your previous update, they are part of your issue. Can you add them back please ?).

I hope that will help you.