ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
To me, it looks like the issue is that your joint_state_publisher is crashing due to a malformed robot URDF. See the following snippet from your error log:
xml.parsers.expat.ExpatError: unbound prefix: line 3, column 4
[joint_state_publisher-3] process has died
I was unable to review your URDF (your links don't have the correct share-permissions set), but I'd check there first. I'm surprised that the Setup Assistant and rviz were able to run if the URDF is bad, though...
You can double-check whether the joint_state_publisher is running or not by using rostopic list
. You can also validate your URDF as shown here:
rosrun urdf check_urdf myrobot.urdf (for fuerte)
rosrun urdfdom check_urdf myrobot.urdf (for groovy)
2 | Added specific fixes after reviewing URDF file. |
To me, it looks like the issue is that your joint_state_publisher is crashing due to a malformed robot URDF. See the following snippet from your error log:
xml.parsers.expat.ExpatError: unbound prefix: line 3, column 4
[joint_state_publisher-3] process has died
I was unable to review your able to reproduce the error using the tx60l.urdf
supplied in your links. The issue here is with the <gazebo>
section in your URDF. The joint_state_publisher uses a python minidom XML parser, which is more picky about XML syntax than the TinyXML C++ parser used in much of the rest of ROS (including the check_urdf test you ran earlier). Even though the TinyXML parser can handle your URDF, the minidom parser requires a little bit more help...
To fix the error, you have two options:
<gazebo>
section from your URDF<gazebo>
section inside the <robot>
sectionxmlns
qualifiers to the robot tag as shown:<robot name="TX60L">
xmlns:controller="http://playerstage.sourceforge.net/gazebo/xmlschema/#controller"
xmlns:interface="http://playerstage.sourceforge.net/gazebo/xmlschema/#interface">
<gazebo>
...
</gazebo>
<link name="base_link">
...
</robot>
Using these changes, I was able to get the joint_state_publisher to run without errors. I expect this will also fix the issue you were able to run if the URDF is bad, though...having with missing interactive markers.
You can double-check whether the joint_state_publisher is running or not by using rostopic list
. You can also validate your URDF as shown here:
rosrun urdf check_urdf myrobot.urdf (for fuerte)
rosrun urdfdom check_urdf myrobot.urdf (for groovy)