joint_state_publisher dies on remote machine
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
Does a launch file with just the JSP (and required parameters) show the same problem?
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.
Here's the error from robot_state_publisher:
Is there anything in the log files? Sometimes those contain error messages that will tell you what went wrong.
Here's the error from robot_state_publisher:
I've added the errors from the log files in my last edit.