Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

motoman industrial ROS streamer crashing when sending trajectory

We are attempting to command a Motoman MH50 robot with ROS industrial. We were able to command the robot to arbitrary positions with a (Windows) test GUI from Motoman, so it appears our low-level communications is working. However, the ROS interface from Linux is not working. When sending trajectory commands, the streamer crashes (and leaves no log messages).

Here is our process:

1) we start up the Motoman controller with the INIT_ROS job running.

2) we run a launch file to load the robot model:

$roslaunch motoman_mh50_support load_mh50.launch

link to the package containing this file

3) we run a launch file for the streamer:

$roslaunch motoman_mh50_support robot_interface_streaming_mh50.launch robot_ip:=192.168.1.31 controller:=dx200

We get errors saying

"[ERROR] [1530281183.991488318]: Failed to find topic_list parameter"

But we think this is a red herring.

So far (other than the topic_list error), all seems OK, and we can do

$rostopic echo joint_states.

However, we still can't get the streamer to accept trajectory commands. We tried:

rostopic pub /joint_path_command trajectory_msgs/JointTrajectory \
"{joint_names: ['joint_1_s', 'joint_2_l', 'joint_3_u', 'joint_4_r', 'joint_5_b', 'joint_6_t'], \
points: [ \
{time_from_start: {secs: 0.1}, \
positions: [0.0, 0.0, -8.751316272537224e-06, 0.0, -1.917476038215682e-05, 0.0],
velocities: [0,0,0,0,0,0]},\
{time_from_start: {secs: 1}, \
positions: [0, 0, 0, 0, 1, 0],
velocities: [0,0,0,0,0,0]}\
]}" -1

but the streamer crashes with the message:

[motion_streaming_interface-2] process has died [pid 18220, exit code -11, cmd /home/wyatt/ros_ws/devel/lib/motoman_driver/motion_streaming_interface __name:=motion_streaming_interface __log:=/home/wyatt/.ros/log/ca41b9da-7ba4-11e8-8b21-d4bed9452afe/motion_streaming_interface-2.log].
log file: /home/wyatt/.ros/log/ca41b9da-7ba4-11e8-8b21-d4bed9452afe/motion_streaming_interface-2*.log

unfortunately, the referenced log file is empty, so no clues there.

We also tried using the python program:

$rosrun motoman_driver move_to_joint.py "[0,0,0,0,0,0]"

link

We had to edit this to make the joint names consistent with the URDF, controller_joint_names parameter and the names echoed from /joint_states. We also created a new parameter, /joint_names, with the same joint names, since the python code seems to require this. Anyway, the python code runs, after these changes, and it publishes what seems to be a viable trajectory command, an echo of which is:

$rostopic echo /joint_path_command

output:

header: 
  seq: 1
  stamp: 
    secs: 0
    nsecs:         0
  frame_id: ''
joint_names: ['joint_1_s', 'joint_2_l', 'joint_3_u', 'joint_4_r', 'joint_5_b', 'joint_6_t']
points: 
  - 
    positions: [0.0, 0.0, -8.751316272537224e-06, 0.0, -1.917476038215682e-05, 0.0]
    velocities: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
    accelerations: []
    effort: []
    time_from_start: 
      secs: 0
      nsecs:         0
  - 
    positions: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
    velocities: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
    accelerations: []
    effort: []
    time_from_start: 
      secs: 10
      nsecs:         0

However, this causes streamer to crash with:

 [motion_streaming_interface-2] process has died [pid 21021, exit code -11, cmd /home/wyatt/ros_ws/devel/lib/motoman_driver/motion_streaming_interface __name:=motion_streaming_interface __log:=/home/wyatt/.ros/log/47b9f908-7bab-11e8-a2bb-03f9c8d8cfb7/motion_streaming_interface-2.log].
log file: /home/wyatt/.ros/log/47b9f908-7bab-11e8-a2bb-03f9c8d8cfb7/motion_streaming_interface-2*.log

Does anybody know why or what we can do?