Communication issue between ROS and Motoman Dx200 controlling two robots.

301 views
Skip to first unread message

and...@lonsberryeng.com

unread,
Sep 26, 2017, 5:45:02 PM9/26/17
to swri-ros-pkg-dev
Hi,

My name is Andrew Lonsberry, and I currently have a MA1440 robotic arm with a MH185 external axis that are both connected to a dx200 controller. My goal is to be able to run through the tutorial for using the motoman DX / ROS interface as described here. Currently, we fail at step two of this tutorial. We first tried to get this working by following the installation instructions available on the ros wiki, and we believe we got that to work. All of the files we used were sourced from the ros-industrial/motoman repository on github, from the kinetic-devel branch.

After completing these installation steps, we tried to go through that usage tutorial. Upon running the command:

    roslaunch motoman_driver robot_interface_streaming_dx200.launch

the output was always a couple of lines of:

    [ERROR] ...: Failed to find topic_list parameter

Followed by:

    [ERROR] ...: Message callback for message type: 2017, not executed

this second error message would repeat rapidly until we killed the process.

We managed to speak with Ted at Motoman, who advised us that message type 2017 likely meant that there was an issue due to the fact that we had multiple robots connected to the controller. He recommended that we switch to the robot_multigroup_interface_streaming_dx200.launch file, and he also made up some new INFORM code for us to use. I started over from the installation instruction step for loading the inform code, but instead loaded in the three files that Ted sent us, which I have attached.

Upon running the new launch file with the new inform codes, the error messages we got were exactly the same as before, with the addition of a message that stated:

    Client [/motion_streaming_interface] wants topic /joint_path_command to have datatype/md5sum [trajectory_msgs/JointTrajectory/....], but our version has [
motoman_msgs/DynamicJointTrajectory/...]

Can anyone offer advice on what we ought to be running differently? I should also note that in both of the setups we have tried, running a rostopic echo /joint_states did give us information about the robot joint states. However, what we got were messages that alternated between having six real joint values, and having just one real one followed by five zero values. For both messages, we would get the name filed to have the names of the six joints for the ma1440 robot, but it is our belief that the one with five zeros corresponded to the other, one degree of freedom bot.

Thanks,

Andrew
single_arm_with_ext_axis.zip

G.A. vd. Hoorn - 3ME

unread,
Sep 27, 2017, 3:34:36 AM9/27/17
to swri-ros...@googlegroups.com
Hi Andrew,


there are some issues with the ROS side of MotoROS and setups that have
> 1 (but < 4) groups.

Jonathan Meyer recently opened a PR to address these. See [1].

In my experience separate tasks are not always needed, but I trust that
Ted has verified that it is for your specific setup.

The error messages that you include are the result of the ROS nodes not
finding the configuration that they require and then failing to properly
interpret the data that is sent by the controller. Those will be solved
by the changes in [1].


Gijs

[1] https://github.com/ros-industrial/motoman/pull/179

Andy Lonsberry

unread,
Sep 27, 2017, 1:16:18 PM9/27/17
to swri-ros-pkg-dev
Hi Gijs,

I did a git checkout of your pull request 179. I double checked that the changes to the files on github were indeed reflected locally for me. After doing this though and running robot_multigroup_interface_
streaming_dx200.launch robot_ip:=192.168.1.31, I am still getting the exact same errors.

Any additional help would be greatly appreciated.

Thanks,

Andrew

G.A. vd. Hoorn - 3ME

unread,
Sep 27, 2017, 2:00:28 PM9/27/17
to swri-ros...@googlegroups.com
On 27-9-2017 19:16, Andy Lonsberry wrote:
> Hi Gijs,
>
> I did a git checkout of your pull request 179. I double checked that the
> changes to the files on github were indeed reflected locally for me. After
> doing this though and running robot_multigroup_interface_
> streaming_dx200.launch robot_ip:=192.168.1.31, I am still getting the exact
> same errors.
>
> Any additional help would be greatly appreciated.

Just making sure: you did build the workspace?


Gijs

Andy Lonsberry

unread,
Sep 27, 2017, 2:04:45 PM9/27/17
to swri-ros-pkg-dev
Yeah I deleted the devel and build folders just as a precaution and completely rebuilt my entire workspace.

Andrew

G.A. vd. Hoorn - 3ME

unread,
Sep 27, 2017, 2:29:41 PM9/27/17
to swri-ros...@googlegroups.com
On 27-9-2017 20:04, Andy Lonsberry wrote:
> Yeah I deleted the devel and build folders just as a precaution and
> completely rebuilt my entire workspace.

Can you somehow make your MoveIt configuration available somewhere?

I suspect you don't have the parameters configured that the nodes need
to correctly initialise the multi-group code paths.

Andy Lonsberry

unread,
Sep 27, 2017, 3:01:10 PM9/27/17
to swri-ros-pkg-dev
I can zip the entire config folder and attach it if that would help. Just to clarify I am getting these errors as soon as I run roslaunch motoman_driver robot_multigroup_interface_streaming_dx200 launch file. I am a little confused because I didn't think my moveit config would be getting utilized at this point just by running that roslaunch file.

G.A. vd. Hoorn - 3ME

unread,
Sep 27, 2017, 3:11:39 PM9/27/17
to swri-ros...@googlegroups.com
On 27-9-2017 21:01, Andy Lonsberry wrote:
> I can zip the entire config folder and attach it if that would help. Just
> to clarify I am getting these errors as soon as I run roslaunch
> motoman_driver robot_multigroup_interface_streaming_dx200 launch file. I am
> a little confused because I didn't think my moveit config would be getting
> utilized at this point just by running that roslaunch file.

I wrote MoveIt config, but it really doesn't matter where you put the
configuration file(s).

There must be a file that sets the 'topic_list' parameter. See [1] for a
reference.

If you don't have that, the nodes will start up in single-group mode,
which leads to the error messages you quote (2017 is the decimal ID of
the MSG_MOTO_JOINT_FEEDBACK_EX msg, which isn't deserialised by the
single-group code path).

I believe there is a small mistake in the tutorial though: group nrs are
zero-indexed. So the first group would be 0, not 1.


Gijs

[1]
http://wiki.ros.org/motoman_driver/Tutorials/Creating%20a%20Dual-Arm%20System

G.A. vd. Hoorn - 3ME

unread,
Sep 27, 2017, 3:15:38 PM9/27/17
to swri-ros...@googlegroups.com
On 27-9-2017 21:11, G.A. vd. Hoorn - 3ME wrote:
> On 27-9-2017 21:01, Andy Lonsberry wrote:
>> I can zip the entire config folder and attach it if that would help. Just
>> to clarify I am getting these errors as soon as I run roslaunch
>> motoman_driver robot_multigroup_interface_streaming_dx200 launch file.
>> I am a little confused because I didn't think my moveit config would be
>> getting utilized at this point just by running that roslaunch file.
>
> I wrote MoveIt config, but it really doesn't matter where you put the
> configuration file(s).
>
> There must be a file that sets the 'topic_list' parameter. See [1] for a
> reference.

And some people put that in the MoveIt configuration for your setup, as
it's specific to a certain work cell, which typically also gets it's own
MoveIt configuration.

That way you have all the configuration files to get the driver (and
MoveIt) to work with your setup in one place.


> If you don't have that, the nodes will start up in single-group mode,
> which leads to the error messages you quote (2017 is the decimal ID of
> the MSG_MOTO_JOINT_FEEDBACK_EX msg, which isn't deserialised by the
> single-group code path).
>
> I believe there is a small mistake in the tutorial though: group nrs are
> zero-indexed. So the first group would be 0, not 1.

See [2] for an example of a config file for a setup with 2 groups:
single robot + a rail.


Gijs

> [1] http://wiki.ros.org/motoman_driver/Tutorials/Creating%20a%20Dual-Arm%20System

[2]
https://github.com/gavanderhoorn/motoman/blob/64ed06066d75bd574fec6ce788ba2181a9ad7fda/motoman_sda10f_support/config/sda10f_motion_interface.yaml

Andy Lonsberry

unread,
Sep 27, 2017, 4:29:42 PM9/27/17
to swri-ros-pkg-dev
Hi Gijs,

Thanks so much for the help, I was able to get it running without any error messages!

Thanks,

Andrew

ted.m...@gmail.com

unread,
Sep 27, 2017, 4:44:21 PM9/27/17
to swri-ros-pkg-dev
In regard to the separate tasks in Inform...

It's not required for the DX200.  You could do the same thing with a single R1+S1 job.
However on the DX100 the tasks are required, due to the SKILLSND command.  So, I just went that direction on DX200 to be consistent. Plus, I think this way is more obvious in showing that you can't just use the R1 only job.  (Personal preference.)

Anyway... when Andrew confirms that these jobs ok for motion on all axes, I will submit these to Github.

-Ted


On Wednesday, September 27, 2017 at 3:34:36 AM UTC-4, gavanderhoorn wrote:

Andy Lonsberry

unread,
Oct 4, 2017, 12:11:06 PM10/4/17
to swri-ros-pkg-dev
Hi,

Everything seems to be very close to fully working but we can't seem to get the robots to physically move. We are able to call the service robot_enable and we can hear the servos turn on and the brake release. Also when sending trajectory messages, if we monitor the topic joint_path_command we can see that it is publishing the right information about the group_number, num_joints, positions, and velocities. 

We do receive an error message

[ERROR] [1507132256.247685698]: Controller is taking too long to execute trajectory (the expected upper bound for the trajectory execution was 6.817186 seconds). Stopping trajectory.

I am also attaching my rqt_graph incase I am missing a connection somewhere that would be causing the system not to fully send the trajectory messages to the controller.

Any help would be greatly appreciated.

Thanks,

Andrew
rosgraph_10_4_17.png

Shaun Edwards

unread,
Oct 4, 2017, 1:47:56 PM10/4/17
to swri-ros-pkg-dev
It's hard to tell, but your MoveGroup should be connected to you JointTrajectoryAction.

--
You received this message because you are subscribed to the Google Groups "swri-ros-pkg-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to swri-ros-pkg-d...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
Shaun Edwards

Andy Lonsberry

unread,
Oct 4, 2017, 2:19:25 PM10/4/17
to swri-ros...@googlegroups.com
Hi Shaun,

So the move_group is connected to the dx200/dx200_r1_controller/joint_trajectory_action, which is connected to the joint_trajectory_action node, which is connected to the dx200/dx200_r1_controller/joint_path_command node, which is publishing joint trajectories correctly with the right group and etc. Also that node is then connected to the motion_streaming_interface.

Thanks,

Andrew

To unsubscribe from this group and stop receiving emails from it, send an email to swri-ros-pkg-dev+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.
--
Shaun Edwards

--
You received this message because you are subscribed to a topic in the Google Groups "swri-ros-pkg-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/swri-ros-pkg-dev/SituD2Bmo6Y/unsubscribe.
To unsubscribe from this group and all its topics, send an email to swri-ros-pkg-dev+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--

Andrew Lonsberry 

www.lonsberryengineering.com

Ph.:  330.604.2425 

ted.m...@gmail.com

unread,
Oct 5, 2017, 5:02:41 PM10/5/17
to swri-ros-pkg-dev
Your trust was misplaced...

It turns out that using separate tasks interferes with the motion API in MotoPlus for DX200.  I had to create a single R1+S1 job and remove the PSTART's.  So, no one should use the jobs that attached to this thread.

I will update the R1+S1 job on Github with my next PR.

-Ted


On Wednesday, September 27, 2017 at 3:34:36 AM UTC-4, gavanderhoorn wrote:

G.A. vd. Hoorn - 3ME

unread,
Oct 6, 2017, 4:32:04 AM10/6/17
to swri-ros...@googlegroups.com
On 5-10-2017 23:00, ted.m...@gmail.com wrote:
> Your trust was misplaced...
>
> It turns out that using separate tasks interferes with the motion API in
> MotoPlus for DX200. I had to create a single R1+S1 job and remove the
> PSTART's. So, no one should use the jobs that attached to this thread.
>
> I will update the R1+S1 job on Github with my next PR.

Thanks for reporting back about this.

Are separate tasks still needed for DX100 setups?


Gijs

ted.m...@gmail.com

unread,
Oct 6, 2017, 8:37:28 AM10/6/17
to swri-ros-pkg-dev

> Are separate tasks still needed for DX100 setups? 

Yes.  The DX100 controller uses a different API for motion control.

-Ted


On Friday, October 6, 2017 at 4:32:04 AM UTC-4, gavanderhoorn wrote:

gmatt...@gmail.com

unread,
Oct 6, 2017, 9:31:59 AM10/6/17
to swri-ros-pkg-dev
I'm working with Andy on this and I just wanted to report back that everything is working as expected now. Thank you all for your help. In the process of getting the new job file, we also debugged a lot of other problems we had on our side. So, if anybody has any questions regarding using ROS to control a ma1400 and positioner, feel free to contact us.

Best,
Matt

G.A. vd. Hoorn - 3ME

unread,
Oct 6, 2017, 9:36:56 AM10/6/17
to swri-ros...@googlegroups.com
On 10/06/2017 03:12 PM, gmatt...@gmail.com wrote:
> I'm working with Andy on this and I just wanted to report back that
> everything is working as expected now. Thank you all for your help. In the
> process of getting the new job file, we also debugged a lot of other
> problems we had on our side. So, if anybody has any questions regarding
> using ROS to control a ma1400 and positioner, feel free to contact us.

I don't have any problems, but I would be interested in a summary of
things you've had to figure out / debug.

If anything, we can try to capture some of that and perhaps update or
add documentation.


Gijs
Reply all
Reply to author
Forward
0 new messages