Motoman FS100 Support

1,026 views
Skip to first unread message

ted miller

unread,
Jun 14, 2013, 4:02:26 PM6/14/13
to swri-ros...@googlegroups.com
It's official, the Motoman FS100 driver has been released!  The source code is available on both the Google Code SVN repository and GitHub repo. 
 
Documentation is available on the ROS wiki:
 
Please note that this update also includes significant motion improvements over the previous implementation.  It allows for 100% speed, and will accurately follow a trajectory with specific velocity constraints.
 
Feel free to post any questions/comments.  We would be happy to provide support for any user who wants to port the motion driver back to the DX100 controller (there are some minor compatibility limitations).
 
-Ted
 
 
 
Ted Miller
Yaskawa America Inc.
Motoman Robotics Division
 
 

The information transmitted in this email is intended solely for the addressee and may contain confidential, proprietary and/or privileged material. Any unauthorized review, distribution or other use of this information is strictly prohibited. If you have received this email in error please contact the sender immediately and delete any and all copies of this message.

Shaun Edwards

unread,
Jun 15, 2013, 11:24:11 AM6/15/13
to swri-ros...@googlegroups.com
Thanks Ted,

For those who are interested, the performance of the new driver can be seen in this video: http://www.youtube.com/watch?feature=player_embedded&v=wt_cyo8si5g

The video shows continuous, accurate, and high speed motion that the new driver provides.  This is a significant increase in performance from the previous driver(written by myself ;).  We are very excited about the new applications that are enabled by this new level of control.

Several people deserve credit for this work, including Eric Marcil(Yaskawa), Ted Miller(Yaskawa), Eric Nieves(Yaskawa), and Jeremey Zoss(SwRI).  The success of this driver development is just one example of what can be achieved in an open source collaboration.

Thanks again,

Shaun


--
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/groups/opt_out.
 
 

shawn.s...@gmail.com

unread,
Jun 17, 2013, 10:42:24 AM6/17/13
to swri-ros...@googlegroups.com, ted.m...@motoman.com
Hi Ted,
What will it take to get this working on the DX100?  We are going to work with a dual armed SIA10D and cannot upgrade it to the FS100.
Also how will the larger payload robots be supported in the future giving that the FS100 is meant for small payloads.

Thanks,
Shawn

ted miller

unread,
Jun 17, 2013, 1:44:28 PM6/17/13
to shawn.s...@gmail.com, swri-ros...@googlegroups.com, eric marcil
A) The currently released implementation of the ROS-I driver has support for a single arm, by default.  There is another user who has been working on integration of the dual-arm SDA platform.  I believe he has been having success.  I've cc'ed Eric Marcil who should know more detail on the work they have done.
 
B) The core of the new motion driver on FS uses a MotoPlus API called mpExRcsIncrementMove.  This is what allows for the advanced motion control from an external source.
There is another API function on the DX100 that is almost identical, called mpMeiIncrementMove.  Even the arguments to this function are almost identical.
Key differences:
B1) Additional parameters must be setup on your DX controller to unlock the advanced motion controls, in addition to the standard ros/motoplus parameters.  (There is no additional charge for this)
 
B2) The argument/parameters for the DX function has support for up to 32 controls groups, as opposed to 4 on the FS.
 
B3) There is a robot job (INIT_ROS) which must be running for the controller to accept motion commands.  On the DX, this job would have to modified to include a SKILLSND command.  Then, the MotoPlus code would need to be modified so that the [bRobotJobReady] flag listens for the SKILLSND, instead of just an I/O bit.
 
B4) The DX function is linked to additional safety functions.  Even with the new control method, there will be a maximum speed-limit which is tied to the same speed-limit of playback while the pendant is in TEACH mode.  Depending on robot model, this is somewhere between 25-35% maximum speed.  I think (not sure) the control point is limited to 250 mm/sec while in teach.
So... you will be able to get better motion control with a controlled velocity, but you will not reach 100% velocity.
 
B5) The DX100 will require a specific controller-software version installed.  DS1.63.00-03 is that latest version that supports both the incrementMove function, and file creation/control (if you need that).  Otherwise, DS3.32.00-14 can be used to support the incrementMove function, but no file control.  If you have the MotoPlus Advanced SDK, you should have DS1.63-03 already installed.
 
C) Also, the next controller generation(s) will support larger manipulators and the advanced MotoPlus motion commands.
 
 
-Ted

 
 
Ted Miller
Yaskawa America Inc.
Motoman Robotics Division
 
 
>>> <shawn.s...@gmail.com> 6/17/2013 10:42 AM >>>
Hi Ted,

Libor Wagner

unread,
Jun 18, 2013, 6:11:28 AM6/18/13
to swri-ros...@googlegroups.com
Hi Ted and Shawn,

I have red through the "Motoplus-ROS Incremental Motion interface Engineering Design Specifications" I must say that this is a first proper ROS related documentation I have seen!

We would be also very interested in porting this driver to DX100. And extending it with the support for multiple control groups.

Ted,

is there some advantage of PVarQ approach over the incremental motion interface? Can you please send me a documentation of mpMeiIncrementMove function?

Shawn,

we have slightly different setup (DX100 and two MA1400 arms on rotating table) but we can move both arms simultaneously and synchronised. We are using the one long message for all axes approach (as discussed in the documentation mentioned above) and three PVarQs and three INFORM jobs synchronised by TSYNC command.

You may look in our code repository (http://clopema.felk.cvut.cz/gitweb/?p=ros_industrial.git).

Best Regards,
Libor Wagner

---
Libor Wagner
Researcher at CMP
http://cmp.felk.cvut.cz/~wagnelib/


On Monday, June 17, 2013 at 19:44, ted miller wrote:

> A) The currently released implementation of the ROS-I driver has support for a single arm, by default. There is another user who has been working on integration of the dual-arm SDA platform. I believe he has been having success. I've cc'ed Eric Marcil who should know more detail on the work they have done.
>
> B) The core of the new motion driver on FS uses a MotoPlus API called mpExRcsIncrementMove. This is what allows for the advanced motion control from an external source.
> There is another API function on the DX100 that is almost identical, called mpMeiIncrementMove. Even the arguments to this function are almost identical.
> Key differences:
> B1) Additional parameters must be setup on your DX controller to unlock the advanced motion controls, in addition to the standard ros/motoplus parameters. (There is no additional charge for this)
>
> B2) The argument/parameters for the DX function has support for up to 32 controls groups, as opposed to 4 on the FS.
>
> B3) There is a robot job (INIT_ROS) which must be running for the controller to accept motion commands. On the DX, this job would have to modified to include a SKILLSND command. Then, the MotoPlus code would need to be modified so that the [bRobotJobReady] flag listens for the SKILLSND, instead of just an I/O bit.
>
> B4) The DX function is linked to additional safety functions. Even with the new control method, there will be a maximum speed-limit which is tied to the same speed-limit of playback while the pendant is in TEACH mode. Depending on robot model, this is somewhere between 25-35% maximum speed. I think (not sure) the control point is limited to 250 mm/sec while in teach.
> So... you will be able to get better motion control with a controlled velocity, but you will not reach 100% velocity.
>
> B5) The DX100 will require a specific controller-software version installed. DS1.63.00-03 is that latest version that supports both the incrementMove function, and file creation/control (if you need that). Otherwise, DS3.32.00-14 can be used to support the incrementMove function, but no file control. If you have the MotoPlus Advanced SDK, you should have DS1.63-03 already installed.
>
> C) Also, the next controller generation(s) will support larger manipulators and the advanced MotoPlus motion commands.
>
>
> -Ted
>
> Ted Miller
> Yaskawa America Inc.
> Motoman Robotics Division
> ted.m...@motoman.com (mailto:ted.m...@motoman.com)
>
>
> > > > <shawn.s...@gmail.com (mailto:shawn.s...@gmail.com)> 6/17/2013 10:42 AM >>>
> > >
> >
>
> Hi Ted,
> What will it take to get this working on the DX100? We are going to work with a dual armed SIA10D and cannot upgrade it to the FS100.
> Also how will the larger payload robots be supported in the future giving that the FS100 is meant for small payloads.
>
> Thanks,
> Shawn
>
> On Friday, June 14, 2013 3:02:26 PM UTC-5, ted miller wrote:
> > It's official, the Motoman FS100 driver has been released! The source code is available on both the Google Code SVN repository and GitHub repo.
> > https://code.google.com/p/swri-ros-pkg/
> > https://github.com/ros-industrial/motoman
> >
> > Documentation is available on the ROS wiki:
> > http://www.ros.org/wiki/fs100
> > http://www.ros.org/wiki/Industrial/supported_hardware/hydro
> >
> > Please note that this update also includes significant motion improvements over the previous implementation. It allows for 100% speed, and will accurately follow a trajectory with specific velocity constraints.
> >
> > Feel free to post any questions/comments. We would be happy to provide support for any user who wants to port the motion driver back to the DX100 controller (there are some minor compatibility limitations).
> >
> > -Ted
> >
> >
> >
> > Ted Miller
> > Yaskawa America Inc.
> > Motoman Robotics Division
> > ted.m...@motoman.com (javascript:)
> >
> >
> >
> > The information transmitted in this email is intended solely for the addressee and may contain confidential, proprietary and/or privileged material. Any unauthorized review, distribution or other use of this information is strictly prohibited. If you have received this email in error please contact the sender immediately and delete any and all copies of this message.
> The information transmitted in this email is intended solely for the addressee and may contain confidential, proprietary and/or privileged material. Any unauthorized review, distribution or other use of this information is strictly prohibited. If you have received this email in error please contact the sender immediately and delete any and all copies of this message.
>
> --
> 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 (mailto:swri-ros-pkg-d...@googlegroups.com).

ted miller

unread,
Jun 18, 2013, 8:28:20 AM6/18/13
to swri-ros...@googlegroups.com
Credit goes to Eric Marcil (Yaskawa Motoman Canada) for the EDS document.  Don't ever let it be said that his attention to detail hasn't yielded positive results.
 
There is currently no advantage to the PVarQ over the incremental motion interface.  The PVarQ was developed prior to the incrementMove function being released.
 
-Ted

>>> Libor Wagner <wagn...@cmp.felk.cvut.cz> 6/18/2013 6:11 AM >>>
To unsubscribe from this group and stop receiving emails from it, send an email to swri-ros-pkg-d...@googlegroups.com.

Shawn Schaerer

unread,
Jun 19, 2013, 10:39:42 AM6/19/13
to swri-ros...@googlegroups.com, ted.m...@motoman.com
Hi Libor,

Thank you for the update.  Please keep me updated on the progress.
I am not ready to start integration yet.  Hopefully you will have this integrated back into the mainstack before we start :)

Shawn

Thomas Timm Andersen

unread,
Jul 5, 2013, 10:05:43 AM7/5/13
to swri-ros...@googlegroups.com

Thanks for the great work on the FS100 package. We just got a Motoman MH5L with a FS100 controller, and eager try get it to work with ROS, I tried it out, but something isn’t working right for me.

I don’t have the MotoPlus SDK docs, so I’m not sure if I installed and launched MotoRos correctly, but ROS is publishing the right joint_states, so it appears that at least something is working.

Nevertheless, when I try to move a joint using move_to_joint.py, the motion_streaming_interface reports some errors, and the robot arm stays still. The robot_state reports that the drives_powered is true, but motion_possible is false, both before and after trying to move the arm.

I’ve attahced the output from the console with logger level sat to debug and pasted the most relevant data below. I ran move_to_joint twice as it can be seen. The joint_states are still being published, so I guess the connection isn’t dropped. But maybe it just laches the joint values and the keeps sending those values – since the arm doesn’t move, it hard to see if the values change.

Any suggestion to get it to work is much appreciated.

[ INFO] [1373032172.795770738]: Receiving joint trajectory message
[DEBUG] [1373032172.795858568]: Current state is: 0
[DEBUG] [1373032172.796204321]: Executing MotionCtrl message load
[DEBUG] [1373032172.796279925]: Executing MotionCtrl command load
[DEBUG] [1373032172.796351630]: MotionCtrl data successfully loaded
[ERROR] [1373032172.796439546]: Socket sendBytes failed, rc: -1, errno: 32
[ERROR] [1373032172.796516509]: Failed to send MotionCtrl message
[ERROR] [1373032172.796581738]: Failed to send CHECK_MOTION_READY command
[DEBUG] [1373032172.796645046]: Executing MotionCtrl message load
[DEBUG] [1373032172.796693343]: Executing MotionCtrl command load
[DEBUG] [1373032172.796742787]: MotionCtrl data successfully loaded
[ WARN] [1373032172.796798271]: Not connected, bytes not sent
[ERROR] [1373032172.796852547]: Failed to send MotionCtrl message
[ERROR] [1373032172.796905109]: Failed to send TRAJ_MODE command
[ERROR] [1373032172.796955691]: Failed to initialize MotoRos motion.  Trajectory ABORTED.  Correct issue and re-send trajectory.
[ INFO] [1373032246.113812441]: Receiving joint trajectory message
[DEBUG] [1373032246.113898683]: Current state is: 0
[DEBUG] [1373032246.114040097]: Executing MotionCtrl message load
[DEBUG] [1373032246.114091241]: Executing MotionCtrl command load
[DEBUG] [1373032246.114140961]: MotionCtrl data successfully loaded
[ WARN] [1373032246.114207503]: Not connected, bytes not sent
[ERROR] [1373032246.114255177]: Failed to send MotionCtrl message
[ERROR] [1373032246.114303879]: Failed to send CHECK_MOTION_READY command
[DEBUG] [1373032246.114354391]: Executing MotionCtrl message load
[DEBUG] [1373032246.114401329]: Executing MotionCtrl command load
[DEBUG] [1373032246.114465801]: MotionCtrl data successfully loaded
[ WARN] [1373032246.114520388]: Not connected, bytes not sent
[ERROR] [1373032246.114566323]: Failed to send MotionCtrl message
[ERROR] [1373032246.114624444]: Failed to send TRAJ_MODE command
[ERROR] [1373032246.114676534]: Failed to initialize MotoRos motion.  Trajectory ABORTED.  Correct issue and re-send trajectory.

Best regards

Thomas Timm Andersen

PhD student

DTU Electrical Engineering

Technical University of Denmark

Description: Description: http://www.dtu.dk/images/DTU_email_logo_01.gif

Department of Electrical Engineering

Elektrovej

Building 326

DK - 2800 Kgs. Lyngby

Denmark

Direct +45 45253556

Mobile +45 20821983

tt...@elektro.dtu.dk

www.elektro.dtu.dk/

--

fs100 error log.txt

Zoss, Jeremy K.

unread,
Jul 5, 2013, 10:26:18 AM7/5/13
to swri-ros...@googlegroups.com

Thomas,

Great to hear that you’re trying to use the FS100 ROS interface!  The more users, the better.

The robot interfaces generally use two separate nodes for data communication with the robot.  One node listens to state data published from the robot, and the other node pushes down trajectory commands for the robot to execute.  Each of these nodes operates on a separate socket port.  The fact that you’re seeing published state data is a good start, but does not necessarily indicate that the motion-node is still functional.

The error messages that you posted indicate that the initial error is the socket error (“Socket sendBytes failes”), with an error code of 32.  On linux, error code 32 is EPIPE, indicating a “broken pipe”.   After the connection is broken, you’ll see that the first motion-control command fails (“Failed to send CHECK_MOTION_READY command”).  For the next motion-control command, the socket error is different (“Not connected, bytes not sent”), and the second command also fails (“Failed to send TRAJ_MODE command”).
 
So, the problem is that the motion-control socket is dying when you try to send the motion to the robot.  I don’t immediately see what the issue is here.  It might be helpful if you can also monitor what’s happening on the FS100 side of the connection.  You can telnet to the FS100 controller and see messages printed when the connection is established.  This might help figure out what connection issues you’re having.  I’m not sure if I’m allowed to share the specifics of the telnet connection to FS100, but you can contact your Motoman rep to find what user/password to use.

Good luck!
  Jeremy Zoss
  Southwest Research Institute

eric....@motoman.com

unread,
Jul 8, 2013, 8:59:39 AM7/8/13
to swri-ros...@googlegroups.com, tt...@elektro.dtu.dk
Hi Thomas,

My guess is that you are running out of threads on the Motion Server.  The MotoRos driver uses quite a few separate threads and it might exceed the default number of thread allocated for MotoPlus application.  It can be increased through the parameter setting.
In North America, when we get an order for MotoRos, we normally make those adjustments before sending the controller to the customer.  This release is fairly new, and I must admit that I haven't thought of notifying our European partners.  I'll try to take care of that this week.

In the mean time, if you can backup your parameter file (all.prm) and send it to me (please don't post it, I'll send you a separaete e-mail), I can confirm that this is the problem.  In the future, similar request should be sent to Motoman Customer Service (in North America: techs...@motoman.com).

The other frequent problem is that the controller need to be in "Remote" mode on the pendant and enable to receive "Remote Command".  The later step is often forgotten.  On the programming pendant, select "IN/OUT" --> PSEUDO INPUT SIG" than make sure that the input #82015 CMD REMOTE SEL is turned on.  If you need to turn it on, make sure your security level is set to "Management", then move the cursor in the circle beside the input and press INTERLOCK + SELECT to turn it on.

Eric Marcil

Yaskawa America Inc.

Motoman Robotics Division


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

Taylor Finley

unread,
Jul 11, 2013, 2:52:37 PM7/11/13
to swri-ros...@googlegroups.com
Hi everyone,
 
What version of ROS is recommended for the FS100? Groovy or Hydro? I have to ask because on the FS100 wiki page is shows only a Groovy tab, but then on the Supported Hardward page, the FS100 is list only on the Hydro tab. I know it's new, so I'm not complaining by all means, but I just wanted to clarify.
 
Cheers,
 
-Taylor

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/groups/opt_out.
 
 



--
Taylor

Zoss, Jeremy K.

unread,
Jul 11, 2013, 4:13:35 PM7/11/13
to swri-ros...@googlegroups.com

Good question.

 

The FS100 interface was developed under groovy.  But it was released after our “official” groovy release.  The FS100 package breaks a few things in the initial groovy release.  The general philosophy is not to break existing “stable” releases.  I’m not sure what the official stance is, but I kind of see the version-support as follows:

  - groovy: released, stable, missing some features required for FS100-compatibility.  Has debian packages.

  - groovy-devel: active development.  Will eventually be released as “hydro”.  Compatible with ROS groovy, but may break some of the stable interfaces in the ROS-I “groovy” release.  Available from source only.

  - hydro: not really released yet.  We’ll release this soon after ROS does its hydro release.

 

I may be off-base with the official policy, and I’m not really sure how these stages align with the current repository branches.  Part of the confusion is that things are currently in flux as we migrate to gitHub and re-evaluate the branch naming.  I’m sure someone will correct me if I’m totally wrong here.

 

Hope this helps,

  Jeremy Zoss

  Southwest Research Institute

 

Department of Electrical Engineering

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/groups/opt_out.
 
 

--
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/groups/opt_out.
 
 

Message has been deleted

Taylor Finley

unread,
Jan 10, 2014, 12:44:26 PM1/10/14
to swri-ros...@googlegroups.com, jerem...@swri.org
First off, thanks to the guys at Motoman. They have been very prompt and willing to help get me up and running with ROS.

Second, I am sooo close but am running into a communication error.

Here is some background before I post my error:  I was able to merge my parameter file (ALL.PRM), load the INIT_ROS program, and load the Moto+ application with the help from Motoman. I am running groovy and was able to compile the two groovy-devel motoman stacks from git. I am connected to the internet via wireless and am hard wired to a switch connected to the robot controller. I attempted to set a static IP of 10.0.0.25 but I'm not sure if I set it properly because when I did a ifconfig I got something like 10.42.0.1 (not exactly - didn't write it down). I determined the ip address by going to the System Info > Network Service window on the controller. It showed:

CONTROLLER NAME: MY-HOST
DEVICE NAME: ETHERNET
IP ADDRESS: 10.0.0.2
SUBNET MASK 255.255.255.0
DEFAULT GATEWAY: 0.0.0.0

I'm in Managment Mode and in the key is turned to REMOTE. I have confirmed that INIT_ROS is in the program list (I have not ran this manually). The Universal Outputs for ROS are labeled (889 etc.). The #82015 CMD REMOTE SEL is set to ON.

Ran this command: roslaunch motoman_driver robot_interface_streaming_fs100.launch robot_ip:=10.0.0.2

Eventually got this error:


[ERROR] [1389288965.756252176]: Failed to connect to server, rc: -1. Error: 'Connection timed out' (errno: 110)
[ERROR] [1389288965.820174140]: Failed to connect to server, rc: -1. Error: 'Connection timed out' (errno: 110)
[ERROR] [1389289028.860242758]: Failed to connect to server, rc: -1. Error: 'Connection timed out' (errno: 110)
[ERROR] [1389289028.860391483]: Failed to receive message length
[ERROR] [1389289028.860431292]: Failed to receive incoming message
[ERROR] [1389289028.988227686]: Failed to connect to server, rc: -1. Error: 'Connection timed out' (errno: 110)
[ERROR] [1389289029.238494414]: Timeout connecting to robot controller.  Send new motion command to retry.
[ERROR] [1389289096.956241883]: Failed to connect to server, rc: -1. Error: 'Connection timed out' (errno: 110)
[ERROR] [1389289096.956363223]: Failed to receive message length
[ERROR] [1389289096.956395827]: Failed to receive incoming message
[ERROR] [1389289165.052243873]: Failed to connect to server, rc: -1. Error: 'Connection timed out' (errno: 110)


Then I realized I could not set my IP address to something that the switch reserves, so I set it to 10.0.0.101 and it accepted it. When I did a ifonfig it showed a 10.0.0.101, so I thought I was home free. Then I tried the same command again:

roslaunch motoman_driver robot_interface_streaming_fs100.launch robot_ip:=10.0.0.2

Imediately got this error:

started core service [/rosout]
process[joint_state-2]: started with pid [4861]
[ERROR] [1389290347.990798505]: Failed to connect to server, rc: -1. Error: 'Connection refused' (errno: 111)
[ERROR] [1389290347.997775640]: Failed to connect to server, rc: -1. Error: 'Connection refused' (errno: 111)
[ERROR] [1389290347.997905575]: Failed to receive message length
[ERROR] [1389290347.997973210]: Failed to receive incoming message
process[motion_streaming_interface-3]: started with pid [4880]
[ERROR] [1389290348.086448210]: Failed to connect to server, rc: -1. Error: 'Connection refused' (errno: 111)
[ERROR] [1389290348.100415679]: Failed to connect to server, rc: -1. Error: 'Connection refused' (errno: 111)
process[joint_trajectory_action-4]: started with pid [4902]
[ERROR] [1389290348.350698160]: Timeout connecting to robot controller.  Send new motion command to retry.
[ERROR] [1389290352.998899810]: Failed to connect to server, rc: -1. Error: 'Connection refused' (errno: 111)
[ERROR] [1389290352.999004776]: Failed to receive message length

Can someone suggest some troubleshooting tips?

Thanks

Shaun Edwards

unread,
Jan 10, 2014, 2:34:04 PM1/10/14
to swri-ros...@googlegroups.com
Taylor,

Are you able to ping the controller using "ping 10.0.0.2" from your ROS PC?

Shaun


Taylor Finley

unread,
Jan 10, 2014, 4:59:04 PM1/10/14
to swri-ros...@googlegroups.com
Thanks, Shaun. It turns out it the MotoRos application was not running correctly. We think there was a conflict with another application I was running for 2d vision. I am able to get joint states without any errors. So good so far.
Reply all
Reply to author
Forward
0 new messages