Search code examples
ros

Why is RVIZ telling me that there is "No transfrom from [velodyne] to [base_link]" even though I have such a joint defined in my URDF?


RVIZ is telling me that there is "No transfrom from [velodyne] to [base_link]". I have a joint between these two objects defined in my URDF file:

<robot name="jackal">
  <material name="orange">
    <color rgba="1.0 0.5 0.2 1" />
  </material>
  <material name="gray">
    <color rgba="0.2 0.2 0.2 1" />
  </material>


  <link name="velodyne">
    <visual>
      <origin xyz="0.0 0.0 0.0" />
      <geometry>
        <cylinder length="0.07" radius="0.05" />
      </geometry>
      <material name="gray" />
    </visual>
  </link>

  
  <link name="base_link" />



  <joint name="velodyne_to_base" type="fixed">
    <parent link="base_link" />
    <child link="velodyne" />
    <origin xyz="0.0 0.0 0.0" />
  </joint>

  
</robot>

Why am I getting this error even though I am defining such a joint?


Solution

  • This was caused by inconsistencies between the "frame_id" property of the Velodyne launch file and the names used in the URDF file. The link name in the urdf file must match the frame ID of the corresponding sensor.