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

joint_state_publisher dies on remote machine

asked 2018-06-29 15:33:49 -0600

kemfic gravatar image

updated 2018-06-30 13:18:18 -0600

I've been trying to run robot_state_publisher and joint_state_publisher on a remote TX1 running Ubuntu 16.04 and ROS Kinetic. When running the node from a local launch file (manually ssh into the remote machine and run launch file), everything runs fine. However, when I try to run a launch file from my local machine, I get this error in my terminal:

[192.168.1.237-0]: [robot_state_publisher-28] process has died [pid 26798, exit code 255, cmd /opt/ros/kinetic/lib/robot_state_publisher/state_publisher __name:=robot_state_publisher log:=/home/nvidia/.ros/log/038bfbd8-7afb-11e8-b9f2-ac220b57ae89/robot_state_publisher-28.log]. 

log file:
 /home/nvidia/.ros/log/038bfbd8-7afb-11e8-b9f2-ac220b57ae89/robot_state_publisher-28*.log
 [192.168.1.237-0]:  [joint_state_publisher-27] process has died [pid 26780, exit code 1, cmd /opt/ros/kinetic/lib/joint_state_publisher/joint_state_publisher __name:=joint_state_publisher log:=/home/nvidia/.ros/log/038bfbd8-7afb-11e8-b9f2-ac220b57ae89/joint_state_publisher-27.log].

log file:
/home/nvidia/.ros/log/038bfbd8-7afb-11e8-b9f2-ac220b57ae89/joint_state_publisher-27*.log

How can I fix this? Here's my launch file:

<launch>

    <!-- ROS parameters -->
    <!-- remote machine (wheatley) -->


    <group>
        <machine name="wheatley" address="192.168.1.237" env-loader="/home/nvidia/catkin_ws/devel/env.sh" user="nvidia" password="nvidia" default="true" />
        <include file="freenect.launch"/>
                    <arg name="depth_registration" value="true" />
                    <arg name="publish_tf" value="false" />
        <include file="mpu_9250.launch" />

        <arg name="model" default="wheatley.urdf"/>

        <param name="robot_description" command="$(find xacro)/xacro --inorder $(arg model)"/>


        <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" />
                <param name="use_gui" value="false" />
        <node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher" />
            <param name="use_gui" value="false" />


            <!-- IMU frame: just over the RGB camera -->
            <!--node pkg="tf" type="static_transform_publisher" name="rgb_to_imu_tf" args="0 0.0 0 0.0 0.0 0.0 /sensor_link /imu_link 50" /-->

            <arg name="pi/2" value="1.5707963267948966" />
            <arg name="optical_rotate" value="0 0 0 0 0 0" />
            <node pkg="tf" type="static_transform_publisher" name="optical_rotation" args="$(arg optical_rotate) /sensor_link /camera_link 50" /> 

        <include file="rtabmap.launch">
            <arg name="rtabmap_args" value="--delete_db_on_start"/>
        </include>
    </group>

</launch>

Here are the outputs in from the log files:

joint_state_publisher:

    Traceback (most recent call last):
  File "/home/nvidia/catkin_ws/src/joint_state_publisher/joint_state_publisher/joint_state_publisher", line 474, in <module>
    jsp = JointStatePublisher()
  File "/home/nvidia/catkin_ws/src/joint_state_publisher/joint_state_publisher/joint_state_publisher", line 149, in __init__
    robot = xml.dom.minidom.parseString(description)
  File "/usr/lib/python2.7/xml/dom/minidom.py", line 1928, in parseString
    return expatbuilder.parseString(string)
  File "/usr/lib/python2.7/xml/dom/expatbuilder.py", line 940, in parseString
    return builder.parseString(string)
  File "/usr/lib/python2.7/xml/dom/expatbuilder.py", line 223, in parseString
    parser.Parse(string, True)
TypeError: Parse() argument 1 must be string or read-only buffer, not None

robot_state_publisher:

[ERROR] [1530379066.805335879]: Could not find parameter robot_description on parameter server
edit retag flag offensive close merge delete

Comments

1

Does a launch file with just the JSP (and required parameters) show the same problem?

gvdhoorn gravatar image gvdhoorn  ( 2018-06-30 01:15:31 -0600 )edit

I tried the test launch files provided by the JSP package. When I ssh into the robot manually, then run the launch file, it runs perfectly fine. But when I remotely launch (include the robot via the <machine> tag in the launch file), the process dies on the robot. See the edit for the error message.

kemfic gravatar image kemfic  ( 2018-06-30 12:03:50 -0600 )edit

Here's the error from robot_state_publisher:

kemfic gravatar image kemfic  ( 2018-06-30 12:25:47 -0600 )edit
1

Is there anything in the log files? Sometimes those contain error messages that will tell you what went wrong.

ahendrix gravatar image ahendrix  ( 2018-06-30 12:59:52 -0600 )edit

Here's the error from robot_state_publisher:

Could not find parameter robot_description on parameter server
kemfic gravatar image kemfic  ( 2018-06-30 13:15:28 -0600 )edit

I've added the errors from the log files in my last edit.

kemfic gravatar image kemfic  ( 2018-06-30 13:16:44 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2019-08-09 11:02:53 -0600

ct2034 gravatar image

the file wheatley.urdf needs to be in the folder where you launch the file. But it is generally more advisable to avoid that and use $(find package_name)/path/to/urdf or something similar to reference the file.

edit flag offensive delete link more

Question Tools

2 followers

Stats

Asked: 2018-06-29 15:30:44 -0600

Seen: 885 times

Last updated: Aug 09 '19