## For instruction on writing tutorials ## http://www.ros.org/wiki/WritingTutorials #################################### ##FILL ME IN #################################### ## for a custom note with links: ## 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. ## for the canned note of "This tutorial assumes that you have completed the previous tutorials:" just add the links ## note.0= ## descriptive title for the tutorial ## title = Installing the Motoman ROS Server ## multi-line description to be displayed in search ## description = This tutorial walks through the steps of installing the ROS server code on the FS, DX, and YRC robot controllers ## the next tutorial description (optional) ## next = Next, you'll learn how to interact with the Motoman controller using ROS nodes ## links to next tutorial (optional) ## next.0.link=[[motoman_driver/Tutorials/Usage|Using the Motoman ROS Interface]] ## next.1.link= ## what level user is this tutorial for ## level= BeginnerCategory ## keywords = Motoman, FS100, DX100, DX200, YRC1000, YRC1000 micro, Industrial, motoman_driver #################################### <<IncludeCSTemplate(TutorialCSHeaderTemplate)>> <<TableOfContents(4)>> {{{#!wiki caution This information is for the '''ROS 1''' interface. If you are looking for ROS 2 support, please visit [[https://github.com/Yaskawa-Global/motoros2|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: 1. Connect a USB drive to the Smart Pendant 1. Select `System Settings`→`General`. 1. 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. 1. Connect the USB drive to a PC. 1. In the `Pendant/Documentation` folder, open the `documentation-index.html` file and then select the ''Instructions for Smart Pendant (YRC1000/YRC1000micro)''. 1. 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. 1. 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). {{{#!wiki caution For DX100 controllers, please see the [[motoman_driver#Requirements|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||[[https://github.com/ros-industrial/motoman/blob/kinetic-devel/motoman_driver/MotoPlus/output/FS100/MotoRosFS_/MotoRosFS_1912.out?raw=true|download]]||v1.9.12||`FS3.30.00-00`|| ||DX100||[[https://github.com/ros-industrial/motoman/blob/kinetic-devel/motoman_driver/MotoPlus/output/DX100/MotoRosDX1_/MotoRosDX1_1912.out?raw=true|download]]||v1.9.12||`DS4.12.00-14` (must end in `-14`)|| ||DX200||[[https://github.com/ros-industrial/motoman/blob/kinetic-devel/motoman_driver/MotoPlus/output/DX200/MotoRosDX2_/MotoRosDX2_1912.out?raw=true|download]]||v1.9.12||`DN2.21.00-00`|| ||YRC1000||[[https://github.com/ros-industrial/motoman/blob/kinetic-devel/motoman_driver/MotoPlus/output/YRC1000/MotoRosYRC1_/MotoRosYRC1_1912.out?raw=true|download]]||v1.9.12||`YAS1.11.00-00` for standard robot. `YAS2.80.00-00` for [[attachment:HC Notes.pdf|HC robot]]|| ||YRC1000micro||[[https://github.com/ros-industrial/motoman/blob/kinetic-devel/motoman_driver/MotoPlus/output/YRC1000u/MotoRosYRC1u_/MotoRosYRC1u_1912.out?raw=true|download]]||v1.9.12||Any software for standard robot. `YBS2.30.00-00` for [[attachment:HC Notes.pdf|HC robot]]|| <<BR>> Note: these files can also be found on Github in the [[https://github.com/ros-industrial/motoman/tree/kinetic-devel/motoman_driver/MotoPlus/output|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): {{{#!shell cd /path/to/where/the/binary/was/saved md5sum -b MotoRosFS_1912.out }}} 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`|| <<BR>> If the hash matches, proceed with ''Loading the Binary File'' below. {{{#!wiki caution 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. }}} {{{#!wiki caution 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: 1. upgrade to ''MANAGEMENT'' security level by touching `[System Info]`→`[Security]` (default password is all 9's) 1. touch `[MotoPlus APL]`→`[Device]` to select either CF or USB memory type 1. touch `[MotoPlus APL]`→`[Load (User App)]` to select and load `MotoRosXXXXX.out` 1. 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: 1. upgrade to *SAFETY* security level by touching `[System Info]`→`[Security]` (default password is all `5`'s) 1. touch `[Setup]`→`[Function Enable]` 1. navigate to `SAVE DATA CRC CHECK FUNC (FSU)` 1. set this feature to `INVALID` 1. 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: 1. upgrade to ''MANAGEMENT'' security level by touching `[System Info]`→`[Security]` (default password is all 9's) 1. touch `[System Info]`→`[Setup]` and select `OPTION FUNCTION` 1. move to `MotoPlus FUNC.`, set this to `USED` 1. move cursor down to `MOTOMAN DRIVER` and set to `USED` 1. touch `[MotoPlus APL]`→`[Device]` to select either CF or USB memory type 1. touch `[MotoPlus APL]`→`[Load (User App)]` to select and load `MotoRosXXXXX.out` 1. 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''':<<BR>> 1. rotate the pendant key-switch (upper left of pendant) fully counter-clockwise into `TEACH` mode 1. 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 [[motoman_driver/Troubleshooting|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. 1. upgrade to *SAFETY* security level by touching `[System Info]`→`[Security]` (default password is all `5`'s) 1. touch `[Setup]`→`[Function Enable]` 1. navigate to `SAVE DATA CRC CHECK FUNC (FSU)` 1. 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. {{{#!wiki caution '''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 [[https://github.com/ros-industrial/motoman/tree/kinetic-devel/motoman_driver/Inform|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''): 1. upgrade to ''MANAGEMENT'' security level by touching `[System Info]`→`[Security]` (default password is all 9's) 1. touch `[Ext Memory]`→`[Device]` to select either CF or USB memory type 1. touch `[Ext Memory]`→`[Load]`→`Job` to select and load `INIT_ROS.JBI` 1. touch `[Job]`→`[Select Job]` to verify that `INIT_ROS` was properly installed Using the Smart Pendant directly (without ''PC Software Pendant''): 1. Touch `[MENU]`→`[Utility]`→`[File Transfer]`. 1. Touch `[To Controller]`. 1. If the file is not in the USB root, then touch `[Change Folder]` and navigate to the appropriate folder. 1. In the Job list, check the box in front of the `INIT_ROS.JBI` job and then touch the `[COPY FILES TO CONTROLLER]`. 1. 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: === 1. Rotate the pendant key-switch (upper left of pendant) fully counter-clockwise into `TEACH` mode. 1. Upgrade your Security Level to ''MANAGEMENT'' 1. Touching `[System Info]`→`[Security]`. 1. Default password is all 9's. 1. Using the pendant, select `[In/OUT]`→`[PSEUDO INPUT SIG]` 1. For DX100, DX200, and FS100, set input `#82015` (`CMD REMOTE SEL`) to `ON`. The signal number is `#87015` on YRC. 1. Move the cursor to the circle beside the specified input 1. Press `[INTERLOCK]+[SELECT]` to turn on the input 1. Touch `[Setup]`→`[Operate Cond]`. Cursor down to the `[Cycle Switch In xxxx Mode]` fields. Change all of these to `CYCLE`. 1. Rotate the pendant key-switch (upper left of pendant) fully clockwise into `REMOTE` mode. === Using Smart Pendant: === 1. Touch `[MENU]`→`[System Settings]`→`[Classic Interface]`. Start the Classic Interface and touch the Connect button. 1. Rotate the pendant key-switch (top of pendant) fully counter-clockwise for `TEACH` mode. 1. Touch `[Setup]`→`[Operate Cond]`. Cursor down to the `[Cycle Switch In xxxx Mode]` fields. Change all of these to `CYCLE`. 1. Touch the power-symbol button in the top right to return back to the Smart Pendant interface. 1. 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 [[motoman_driver/Troubleshooting|Troubleshooting]] page for information on how to deal with common errors and problems. ## AUTOGENERATED DO NOT DELETE ## TutorialCategory ## FILL IN THE STACK TUTORIAL CATEGORY HERE