Note: This tutorial assumes basic familiarity with the Motoman robot controller. Consult the manufacturer's documentation for further details on any of the steps listed in this tutorial.. |
Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags. |
Installing the Motoman ROS Server
Description: This tutorial walks through the steps of installing the ROS server code on the FS, DX, and YRC robot controllersKeywords: Motoman, FS100, DX100, DX200, YRC1000, YRC1000 micro, Industrial, motoman_driver
Tutorial Level: BEGINNER
Next Tutorial: Next, you'll learn how to interact with the Motoman controller using ROS nodes Using the Motoman ROS Interface
Contents
This information is for the ROS 1 interface. If you are looking for ROS 2 support, please visit Yaskawa-Global/motoros2.
Overview
The motoman driver ROS Server code (MotoROS) is written in MotoPlus, using a socket interface and multiple parallel tasks. Note: Dual-arm manipulators may require additional development on the ROS side to achieve coordinated motion control.
Please see the motoman_driver page for information on robot controller requirements.
Installing MotoPlus Code
The MotoPlus application resides on the robot controller and acts as the server for clients on the ROS PC. This application can be installed using the binaries linked in the Installation using Binaries section below (highly recommended) or by compiling the sources of the MotoROS application. Installation from source is only required if the default server implementation does not meet your needs. Source installations will require the MotoPlus SDK software (purchasable from Yaskawa Motoman).
If using Smart Pendant
Some YRC controllers may have a Smart Pendant which doesn’t support the management of MotoPlus Application (it's currently in development). On those systems, it is required to use the PC Software Pendant which is a version of the standard pendant that you can run on a Windows PC. To get a copy of the Software Pendant installer from the Smart Pendant:
- Connect a USB drive to the Smart Pendant
Select System Settings→General.
Down at the bottom of the screen in the Bundled Resources select the Documentation and the Software Pendant Application checkboxes and then press the Export... button.
- Connect the USB drive to a PC.
In the Pendant/Documentation folder, open the documentation-index.html file and then select the Instructions for Smart Pendant (YRC1000/YRC1000micro).
Refer to chapter 12 of the instruction manual (ie: Instructions for Smart Pendant (YRC1000/YRC1000micro)) for the installation and usage of the PC Software Pendant.
Start the PC Software Pendant in Maintenance mode and continue with the installation procedure explained below.
Installation using Binaries
This method of installing MotoROS is recommended for all users, unless you intend to develop MotoROS itself (ie: are looking to change the behaviour of MotoROS, not just use it).
For DX100 controllers, please see the motoman_driver page for additional prerequisites before proceeding.
Downloading a binary
The binary files are linked below. Different binaries are required for different robot controller models.
Locate the correct binary for your robot controller and download it to a location on your PC (fi the Downloads folder).
Controller |
MotoROS binary |
Version |
Minimum required system software |
FS100 |
v1.9.12 |
FS3.30.00-00 |
|
DX100 |
v1.9.12 |
DS4.12.00-14 (must end in -14) |
|
DX200 |
v1.9.12 |
DN2.21.00-00 |
|
YRC1000 |
v1.9.12 |
YAS1.11.00-00 for standard robot. YAS2.80.00-00 for HC robot |
|
YRC1000micro |
v1.9.12 |
Any software for standard robot. YBS2.30.00-00 for HC robot |
Note: these files can also be found on Github in the motoman_driver/MotoPlus/output directory.
Verifying integrity of the download
Check the integrity of the downloaded binary to avoid loading corrupted binaries onto the controller.
The example command below uses md5sum on Linux, but any utility which can calculate MD5 hashes could be used, on any OS.
To calculate the MD5 hash on Debian/Ubuntu for the FS100 binary linked above, run the following commands (on other OS, use the appropriate commands or tools instead):
For v1.9.12 of MotoROS for FS100 controllers, this command will return 43e3619608aaa9fd4f0315c5105a9df5.
If using this command for other versions of MotoROS and/or with binaries for other controller models, replace the filename with the correct one.
Compare the output of md5sum when run against the binary downloaded in the previous section (Downloading a binary) with the values listed in the following table. The values must match exactly.
Controller |
File |
Version |
MD5 hash |
FS100 |
MotoRosFS_1912.out |
v1.9.12 |
43e3619608aaa9fd4f0315c5105a9df5 |
DX100 |
MotoRosDX1_1912.out |
v1.9.12 |
baffdfed054d84dd6e4255207653ba75 |
DX200 |
MotoRosDX2_1912.out |
v1.9.12 |
327c76174dbd6dd6e5f26b852da64af2 |
YRC1000 |
MotoRosYRC1_1912.out |
v1.9.12 |
d3c59cfdd15379d21049095985d407b8 |
YRC1000micro |
MotoRosYRC1u_1912.out |
v1.9.12 |
4398ff3c566e95b31ba2f18c1f894fc4 |
If the hash matches, proceed with Loading the Binary File below.
These hashes are only correct for the filenames and versions listed in the Version and File columns of this table. The hashes will be different for other versions of MotoROS.
These hashes cannot be relied upon to verify the integrity of versions of MotoROS built from sources, as documented below.
Installation from Source
All files in the motoman/motoman_driver/MotoPlus directory should be downloaded to a development PC (Windows) with the MotoPlus SDK installed. Please read the MotoPlus documentation that is included with your SDK for instructions on compiling the source code.
Once compiled, continue with the next section to load the .out file on the controller.
Loading the Binary File
In all cases (ie: whether using pre-built binaries or a version compiled from source), the .out file should be placed on an external memory card; Compact Flash (CF) or USB. Now insert the memory card into the robot's programming pendant and refer to the following sections.
DX100
Turn on the robot controller while holding the {Main Menu} key on the keypad to enter Maintenance Mode. You may release the key when you see the logo appear on the screen.
Now in Maintenance Mode:
upgrade to MANAGEMENT security level by touching [System Info]→[Security] (default password is all 9's)
touch [MotoPlus APL]→[Device] to select either CF or USB memory type
touch [MotoPlus APL]→[Load (User App)] to select and load MotoRosXXXXX.out
touch [MotoPlus APL]→[File List] and verify that MotoROS was properly installed and no other MotoPlus applications are currently loaded on the controller
FS100, DX200, and YRC
If the controller is configured with the Functional Safety Unit (FSU), then SAVE DATA CRC CHECK FUNC (FSU) must be temporarily disabled during the installation procedure.
Turn on the robot controller to enter normal operation mode.
In normal operation mode:
upgrade to *SAFETY* security level by touching [System Info]→[Security] (default password is all 5's)
touch [Setup]→[Function Enable]
navigate to SAVE DATA CRC CHECK FUNC (FSU)
set this feature to INVALID
- turn off the robot controller
Turn on the robot controller while holding the {Main Menu} key on the keypad to enter Maintenance Mode. You may release the key when you see the logo appear on the screen.
Now in Maintenance Mode:
upgrade to MANAGEMENT security level by touching [System Info]→[Security] (default password is all 9's)
touch [System Info]→[Setup] and select OPTION FUNCTION
move to MotoPlus FUNC., set this to USED
move cursor down to MOTOMAN DRIVER and set to USED
touch [MotoPlus APL]→[Device] to select either CF or USB memory type
touch [MotoPlus APL]→[Load (User App)] to select and load MotoRosXXXXX.out
touch [MotoPlus APL]→[File List] and verify that MotoROS was properly installed and no other MotoPlus applications are currently loaded on the controller
DX200 and YRC only:
rotate the pendant key-switch (upper left of pendant) fully counter-clockwise into TEACH mode
- reboot the robot controller into regular mode
Within 30 seconds of fully booting up, you should get alarm 8001[10] Speed FB enabled, reboot now. Reboot again and there should be no alarms.
If you receive any errors or alarms after rebooting, please refer to the Troubleshooting page for information on how to remedy the issue.
If SAVE DATA CRC CHECK FUNC (FSU) was disabled at the start of this procedure, then it can now be reenabled.
upgrade to *SAFETY* security level by touching [System Info]→[Security] (default password is all 5's)
touch [Setup]→[Function Enable]
navigate to SAVE DATA CRC CHECK FUNC (FSU)
set this feature to VALID
Installing INFORM Code
The motoman driver specifies a required handshake between the native INFORM robot code and the MotoROS layer. The MotoROS code will automatically run an INFORM job called INIT_ROS at the start of a motion command, which will provide the required handshaking.
For Yaskawa Motoman technicians: Do not use the GitHub link below to obtain these files. Instead, download the files from the Sharepoint World Jobs List.
Load the correct INIT_ROS.JBI file from the appropriate directory in motoman/motoman_driver/Inform onto the robot controller. Be sure to load the file for the correct configuration of your controller (ie: single arm, dual arm, with base axis, etc). Copy the IONAME.DAT file found in the same directory as well.
Place this job file on an external memory card; Compact Flash (CF), SD, or USB. Insert the memory card into the robot's programming pendant. Turn on the robot controller and boot into normal operation mode.
Using the standard pendant (or PC Software Pendant):
upgrade to MANAGEMENT security level by touching [System Info]→[Security] (default password is all 9's)
touch [Ext Memory]→[Device] to select either CF or USB memory type
touch [Ext Memory]→[Load]→Job to select and load INIT_ROS.JBI
touch [Job]→[Select Job] to verify that INIT_ROS was properly installed
Using the Smart Pendant directly (without PC Software Pendant):
Touch [MENU]→[Utility]→[File Transfer].
Touch [To Controller].
If the file is not in the USB root, then touch [Change Folder] and navigate to the appropriate folder.
In the Job list, check the box in front of the INIT_ROS.JBI job and then touch the [COPY FILES TO CONTROLLER].
Answer [YES] to the File Transfer to Controller – Confirmation message.
Controller Configuration
Verify that the controller is enabled to receive remote commands in Remote mode:
Using standard pendant:
Rotate the pendant key-switch (upper left of pendant) fully counter-clockwise into TEACH mode.
Upgrade your Security Level to MANAGEMENT
Touching [System Info]→[Security].
- Default password is all 9's.
Using the pendant, select [In/OUT]→[PSEUDO INPUT SIG]
For DX100, DX200, and FS100, set input #82015 (CMD REMOTE SEL) to ON. The signal number is #87015 on YRC.
- Move the cursor to the circle beside the specified input
Press [INTERLOCK]+[SELECT] to turn on the input
Touch [Setup]→[Operate Cond]. Cursor down to the [Cycle Switch In xxxx Mode] fields. Change all of these to CYCLE.
Rotate the pendant key-switch (upper left of pendant) fully clockwise into REMOTE mode.
Using Smart Pendant:
Touch [MENU]→[System Settings]→[Classic Interface]. Start the Classic Interface and touch the Connect button.
Rotate the pendant key-switch (top of pendant) fully counter-clockwise for TEACH mode.
Touch [Setup]→[Operate Cond]. Cursor down to the [Cycle Switch In xxxx Mode] fields. Change all of these to CYCLE.
- Touch the power-symbol button in the top right to return back to the Smart Pendant interface.
Rotate the pendant key-switch (top of pendant) fully clockwise into REMOTE mode.
(CMD REMOTE SEL is already enabled with the Smart Pendant.)
Troubleshooting
Please refer to the Troubleshooting page for information on how to deal with common errors and problems.