Robotics StackExchange | Archived questions

No tf data. Actual error: Fixed Frame [base_link] does not exist

Hi,

I try to make a URDF in ROS Melodic on Kubuntu 18.04. I made a small URDF with one link to test if it works, but I can't open it with RViz. I get a Global Status: Warning -> Fixed Frame -> No tf data. Actual error: Fixed Frame [base_link] does not exist

The onle link in my URDF is called "base_link" so I do not see where the problem is.

My URDF file looks like this:

<?xml version="1.0"?>
<robot name="tank_robot">

    <link name="base_link">
        <pose>0 0 0.1 0 0 0</pose>
        <visual>
            <geometry>
            <cylinder length="0.1" radius="0.2"/>
            </geometry>
            <origin xyz="0 0 0" rpy="0 0 0"/>
            <material name="black">
                <color rgba="0 0 0 1"/>
            </material>
        </visual>
    </link>
</robot>

The file is called "tank.urdf".

The launch file with which I open RViz and load the urdf looks like this:

  <launch>
      <arg
        name="model" />
      <arg
        name="gui"
        default="False" />
      <param
        name="robot_description"
        textfile="$(find tank_robot)/urdf/tank.urdf" />
      <param
        name="use_gui"
        value="$(arg gui)" />
      <node
        name="joint_state_publisher"
        pkg="joint_state_publisher"
        type="joint_state_publisher" />
      <node
        name="robot_state_publisher"
        pkg="robot_state_publisher"
        type="state_publisher" />
      <node
        name="rviz"
        pkg="rviz"
        type="rviz"
        args="-d $(find tank_robot)/rviz/urdf.rviz" />
  </launch>

Can someone help me to understand what is going wrong?

Asked by dave234 on 2019-06-15 03:29:20 UTC

Comments

<link name="base_link">
    <pose>0 0 0.1 0 0 0</pose>

I don't know about the rest, but pose is not a valid element in URDF. Are you mixing in SDF?

Is robot_state_publisher not complaining?

Asked by gvdhoorn on 2019-06-15 03:35:39 UTC

I saw the tag in an example URDF and I thought it was necessary. Without the tage, the result is still the same. And no, the robot_state_publisher is not complaining so far. How would I notice this?

Asked by dave234 on 2019-06-15 04:00:02 UTC

See urdf/XML/link, pose is not a valid child of link. It's not in URDF at all actually. It is in SDF (here).

robot_state_publisher is not complaining

then it's probably ignoring the unknown element.

Asked by gvdhoorn on 2019-06-15 04:09:48 UTC

Answers

Apparently, there is another bug I just find out about. I could not visualize my robot model, or any robot model.

Melodic seems to have a bug with RViz that can be fixed with the following line:

export LC_NUMERIC="en_US.UTF-8"

(I found this issue here: http://answers.ros.org/question/296227/robot-model-does-not-appear-in-rviz-melodic/)

Unfortunatewly this does not solve my problem with the missing tf data, but at least I can now see my robot-model.

In the end, I "solved" the issue by adding pore links and joints to the URDF file and the Error went away. So apparently you cannot have one single link in a URDF.

Asked by dave234 on 2019-06-15 17:07:42 UTC

Comments