Size: 6132
Comment: Typo
|
Size: 6138
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 76: | Line 76: |
||HOME:ROS/ROS_common.sys|| ||NO||YES||NO|| ||HOME:ROS/ROS_socket.sys|| ||NO||YES||NO|| ||HOME:ROS/ROS_messages.sys|| ||NO||YES||NO|| ||HOME:ROS/ROS_stateServer.mod||ROS_!StateServer||NO||NO||NO|| ||HOME:ROS/ROS_motionServer.mod||ROS_!MotionServer||NO||NO||NO|| ||HOME:ROS/ROS_motion.mod||T_ROB1||NO||NO||NO|| |
||HOME:/ROS/ROS_common.sys|| ||NO||YES||NO|| ||HOME:/ROS/ROS_socket.sys|| ||NO||YES||NO|| ||HOME:/ROS/ROS_messages.sys|| ||NO||YES||NO|| ||HOME:/ROS/ROS_stateServer.mod||ROS_!StateServer||NO||NO||NO|| ||HOME:/ROS/ROS_motionServer.mod||ROS_!MotionServer||NO||NO||NO|| ||HOME:/ROS/ROS_motion.mod||T_ROB1||NO||NO||NO|| |
Note: This tutorial assumes basic familiarity with the ABB robot controller. Consult the manufacturer's documentation for further details on any of the steps listed in this tutorial. |
![]() |
Installing the ABB ROS Server
Description: This tutorial walks through the steps of installing the ROS server code on the ABB robot controller and configuring the required controller settings.Keywords: ABB, Industrial, IRC5
Tutorial Level: INTERMEDIATE
Next Tutorial: Next, you'll learn how to run and manage the ABB ROS Server Running the server
Contents
This tutorial has two parts: installing server code and configuring the controller with the appropriate tasks.
Prerequisites
The ABB ROS Server code is written in RAPID, using a socket interface and multiple parallel tasks. The code was originally tested on an IRC-5 controller, with an IRB-2400 robot, but other combinations should also work. The following controller options are required:
Multitasking (623-1) -- for parallel socket communications
Socket Messaging (672-1) -- for communications with a ROS PC
for recent RobotWare versions, this option is included with "PC Interface (616-1)"
RobotWare OS >= 5.13 -- for required socket options
earlier versions may work, but will require modifications to the RAPID code
Installing Server Code
All files in the abb_common/rapid directory should be copied to the robot controller. This tutorial assumes the files are copied to a "ROS" subdirectory under the system's HOME directory (e.g. /<system>/HOME/ROS/*).
See the manufacturer's documentation for file-transfer methods. RobotStudio Online and USB drives are often convenient methods to transfer files to the controller.
Configuring Controller Settings
The ROS Server code requires 3 tasks. Some modules are loaded to specific tasks, and others are shared between tasks, as described below:
File Overview
- Shared by all tasks
- ROS_common.sys -- Global variables and data types shared by all files
ROS_socket.sys -- Socket handling and simple_message implementation
- ROS_messages.sys -- Implementation of specific message types
- Specific task modules
- ROS_stateServer.mod -- Broadcast joint position and state data
- ROS_motionServer.mod -- Receive robot motion commands
- ROS_motion.mod -- Issues motion commands to the robot
Create Tasks
Browse to ABB -> Control Panel -> Configuration -> Topics -> Controller -> Task
- Create 3 tasks as follows:
Name
Type
Trust Level
Entry
Motion Task
ROS_StateServer
SEMISTATIC
NoSafety
main
NO
ROS_MotionServer
SEMISTATIC
SysStop
main
NO
T_ROB1
NORMAL
main
YES
It is easiest to wait until all configuration tasks are completed before rebooting the controller.
NOTES:
The T_ROB1 motion task probably already exists on your controller.
If T_ROB1 has existing motion-control modules, you may need to rename the main() routine in ROS_Motion.mod to ROS_main(). In this case, set the Entry point for T_ROB1 task to ROS_main().
For multi-robot controllers, specify the desired robot (e.g. rob1) for each task
SEMISTATIC tasks will auto-start when controller is booted. They are visible, but cannot be easily seen for troubleshooting. For debug or development purposes, it may be desired to set both ROS_*Server tasks to Type=NORMAL.
Load Modules to Tasks
Browse to ABB -> Control Panel -> Configuration -> Topics -> Controller -> Automatic Loading of Modules
- Add one entry for each server file as follows:
File
Task
Installed
All Tasks
Hidden
HOME:/ROS/ROS_common.sys
NO
YES
NO
HOME:/ROS/ROS_socket.sys
NO
YES
NO
HOME:/ROS/ROS_messages.sys
NO
YES
NO
HOME:/ROS/ROS_stateServer.mod
ROS_StateServer
NO
NO
NO
HOME:/ROS/ROS_motionServer.mod
ROS_MotionServer
NO
NO
NO
HOME:/ROS/ROS_motion.mod
T_ROB1
NO
NO
NO
After the last change, select YES to restart the controller and apply the changes.
Updating Software
To update robot-server files with new code versions, use the following procedure to ensure that the changes are actually applied:
- Copy the new/updated files onto the robot controller, as before.
Restart the controller using a P-Start
ABB -> Restart -> Advanced -> P-Start -> OK
NOTE: This will erase any existing modules that have been loaded to memory. This may cause compilation issues on restart. If this is a concern, try another method: Warm Start, manually reloading modules (may require setting SEMISTATIC tasks to NORMAL tasks), etc.
- After the controller reboots, the new changes should be active.