ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | Q&A
Ask Your Question

husky urdf can't be customized

asked 2017-11-30 14:47:41 -0500

kimnguyen gravatar image

updated 2017-12-01 03:34:03 -0500

gvdhoorn gravatar image

I am working on husky A200 and follow the instruction from this manual to get Husky run outdoor with GPS . There are several files that need to modified because I use different GPS, and laser. The laser im using is LIDAR 3D velodyne.I am at the step to customize URDF to bring the robot model correct to what I have compare to the one that they have in the manual. I customized urdf.xacro file like this

<robot name="husky" xmlns:xacro="">

  <xacro:arg name="laser_enabled" default="$(optenv HUSKY_LMS1XX_ENABLED false)" />
  <xacro:arg name="ur5_enabled" default="$(optenv HUSKY_UR5_ENABLED false)" />
  <xacro:arg name="kinect_enabled" default="false" />

  <xacro:include filename="$(find husky_description)/urdf/husky.urdf.xacro" />
  <xacro:include filename="$(find husky_description)/urdf/decorations.urdf.xacro" />
  <xacro:husky_robot />

  <!-- Insert Customizations Below -->

  <link name="mesh_link">
        <mesh filename="package://husky_custom_description/meshes/wisu01_husky_arch.dae" />

  <joint name="mesh_joint" type="fixed">
    <parent link="top_plate_link" />
    <child link="mesh_link" />
    <origin xyz="-0.07 0.0 0.0" rpy="0 0 0" />

  <link name="velodyne"/>

  <joint name="arch_to_velodyne" type="fixed">
     <parent link="top_plate_link"/>
     <child link="velodyne"/>
     <origin xyz="0.0 0.0 0.68" rpy="0.0 0.0 0.0"/>


The wisu01_husky_arch.dae file was provided by clearpath together with my Husky, and when I launch the robot model without launching husky gps waypoint, it came up correctly. However, when I run in the waypoint_nav package, it appears the errors said:

Failed to find root link: Two root links found: [base_link] and [top_plate_link]

It seems to not be able to find base_link and top_plate_link in my husky_desktop, but I double check and they are there. This might because my knowledge about urdf still limit. Can anyone please point where I should go to check for this error? I have been google the familiar error and the answers are trivial.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2017-11-30 20:36:13 -0500

Airuno2L gravatar image

updated 2017-12-01 07:09:40 -0500

The problem is not that it can't find the base_link and top_plate_link, the problem is that there can be only one root link and it looks like you're making two root links (base_link and top_plate_link) so the URDF parser doesn't know which one you really want to be the root. URDF is a tree structure that can only have one root link (hint - it is always base_link).

It's hard to say how this mistake has been made or how to fix it without seeing all of the URDF files you're using. But taking a wild guess I would say you should be making a joint that has the top_plate_link as it's child link and the base_link as the parent link.

The root link is defined by being the only link that isn't in a joint as a child link. Your base_link should be the only link that is like that. If top_plate_link isn't in a joint as a child link somewhere, that's what is causing the problem.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2017-11-30 14:47:41 -0500

Seen: 791 times

Last updated: Dec 01 '17