介绍在ABB机器人控制器上安装ROS服务器代码并配置所需控制器设置的步骤。包含两部分:安装服务器代码和使用适当的任务配置控制器。
1.先决条件
ABB ROS服务器代码使用套接字接口和多个并行任务以RAPID编写。该代码最初是在带有IRB-2400机器人的IRC-5控制器上测试的,但其他组合也应该有效。需要以下控制器选项:
- 623-1:多任务处理
- 672-1:套接字消息传递(在最近的RobotWare版本中,此选项包含在616-1:PC接口中)
由于使用了某些套接字选项,因此需要RobotWare OS版本5.13或更高版本。早期版本可能有效,但需要修改RAPID代码。
2.安装服务器代码
应将abb_common / rapid(Hydro和旧版)或abb_driver / rapid(Indigo和更高版本)目录中的所有文件复制到机器人控制器。本教程假定文件被复制到系统HOME目录下的“ ROS ”子目录(例如/ / HOME / ROS / *)。
有关文件传输方法,请参阅制造商的文档。RobotStudio Online和USB驱动器通常是将文件传输到控制器的便捷方法。
3.配置控制器设置
ROS服务器代码需要3个任务。某些模块加载到特定任务,其他模块在任务之间共享,如下所述:
3.1文件概述
-
由所有任务共享
ROS_common.sys - 所有文件共享的全局变量和数据类型
ROS_socket.sys - 套接字处理和simple_message实现
ROS_messages.sys - 特定消息类型的实现 -
具体任务模块
ROS_stateServer.mod - 广播联合位置和状态数据
ROS_motionServer.mod - 接收机器人动作命令
ROS_motion.mod - 向机器人发出动作命令
3.2创建任务
- 浏览到ABB - >控制面板 - >配置 - >主题 - >控制器 - >任务(在RobotStudio 6中,可以在Controller选项卡 - > Configuration Editor - > Controller - > Task下找到,然后右键单击New Task)
- 创建3个任务如下:
Name | Type | Trust Level | Entry | Motion Task |
---|---|---|---|---|
ROS_StateServer | SEMISTATIC | NoSafety | main | NO |
ROS_MotionServer | SEMISTATIC | SysStop | main | NO |
T_ROB1 | NORMAL | main | YES |
在重新启动控制器之前,最简单的方法是等待所有配置任务完成。 |
---|
注意:
- T_ROB1运动任务可能已存在于您的控制器上。
- 如果T_ROB1具有现有的运动控制模块,则可能需要将ROS_Motion.mod中的main()例程重命名为ROS_main()。在这种情况下,将T_ROB1任务的入口点设置为ROS_main()。
- 对于多机器人控制器,请为每个任务指定所需的机器人(例如rob1)
- SEMISTATIC任务将在控制器启动时自动启动。它们是可见的,但不容易看到故障排除。出于调试或开发目的,可能需要将ROS_ * Server任务设置为Type = NORMAL。
3.3创建信号
- 浏览到ABB - >控制面板 - >配置 - >主题 - > I / O - >信号(在RobotStudio 6中,可在Controller选项卡 - > Configuration Editor - > I / O System - > Signal下找到,然后右键单击New Signal)
- 创建4个信号如下:
Name | Type of Signal |
---|---|
signalExecutionError | Digital Output |
signalMotionPossible | Digital Output |
signalMotorOn | Digital Output |
signalRobotActive | Digital Output |
signalRobotEStop | Digital Output |
signalRobotNotMoving | Digital Output |
signalRosMotionTaskExecuting | Digital Output |
在重新启动控制器之前,最简单的方法是等待所有配置任务完成。 |
---|
3.4将信号绑定到系统输出
- 浏览到ABB - >控制面板 - >配置 - >主题 - > I / O - >系统输出(在RobotStudio 6中,可以在Controller选项卡 - > Configuration Editor - > I / O System - > System Output下找到,然后右键单击New System Output)
- 为信号添加一个条目,如下所示:
Signal Name | Status | Arg 1 | Arg 2 | Arg 3 | Arg 4 |
---|---|---|---|---|---|
signalExecutionError | Execution Error | N/A | T_ROB1 | N/A | N/A |
signalMotionPossible | Runchain OK | N/A | N/A | N/A | N/A |
signalMotorOn | Motors On State | N/A | N/A | N/A | N/A |
signalRobotActive | Mechanical Unit Active | ROB_1 | N/A | N/A | N/A |
signalRobotEStop | Emergency Stop | N/A | N/A | N/A | N/A |
signalRobotNotMoving | Mechanical Unit Not Moving | ROB_1 | N/A | N/A | N/A |
signalRosMotionTaskExecuting | Task Executing | N/A | T_ROB1 | N/A | N/A |
3.5将模块加载到任务
- 浏览到ABB - >控制面板 - >配置 - >主题 - >控制器 - >模块的自动加载(在RobotStudio 6中,可以在Controller选项卡 - > Configuration Editor - > Controller - > Automatic Loading of Modules下找到,然后右键单击New Automatic Loading of Modules)
- 为每个服务器文件添加一个条目,如下所示:
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 |
- 在最后一次更改后,选择“YES”以重新启动控制器并应用更改。
3.6更新软件
要使用新代码版本更新机械手 - 服务器文件,请使用以下过程确保实际应用更改:
-
像以前一样将新的/更新的文件复制到机器人控制器上。
-
使用P-Start重新启动控制器
▪ ABB - >重启 - >高级 - > P-Start - >确定
▪ 注意:这将擦除已加载到内存的任何现有模块。这可能会导致重新启动时出现编译问题。如果这是一个问题,请尝试另一种方法:热启动,手动重新加载模块(可能需要将SEMISTATIC任务设置为NORMAL任务)等。 -
控制器重新启动后,新的更改应该是活动的。