控制机器人的常用接口
提供常见的控制机器人接口,包括移动到指定位置、IO 控制、控制程序运行、伺服上下电控制、紧急停止。
注意:
robot_type默认值为"C5A"。- 可选值:
C7A、C12A、C16A。
机器人末端移动到指定位置
接口名称
gbt_interface/action/MoveToPose
使用方法
启动服务:
bash
ros2 launch gbt_driver gbt_service_server.launch.py robot_type:=<机器人型号>模拟发送目标位置请求:
bash
ros2 action send_goal /gbt_driver/move_to_pose gbt_interface/action/MoveToPose "{ x: 400.0, y: -200.0, z: 500.0, a: 100.0, b: 30.0, c: 110, vel: 1, acc: 1 }"IO 读写
注意:使用该功能前,请确保已经设置 I/O 映射
- 接口名称:
gbt_interface/srv/IO - 启动服务:
bash
ros2 launch gbt_driver gbt_service_server.launch.py robot_type:=<机器人型号>- 设置 IO 端口状态:
bash
ros2 service call /gbt_driver/service_server/io gbt_interface/srv/IO "{signal_type: 2, signal_port: 1, signal_value: 1, command: set}"- 获取 IO 端口状态:
bash
ros2 service call /gbt_driver/service_server/io gbt_interface/srv/IO "{signal_type: 2, signal_port: 1, command: get}"IO 信号类型表
| 枚举 | 值 | 描述 |
|---|---|---|
| DI | 1 | 信号类型 |
| DO | 2 | 数字输入 |
| UI | 3 | 数字输出 |
| UO | 4 | 专用输入 |
| RI | 5 | 专用输出 |
| RO | 6 | 手臂输入 |
| GI | 7 | 手臂输出 |
| GO | 8 | 组输入 |
| TAI | 9 | 手腕模拟输入 |
| TDI | 10 | 手腕数字输入 |
| TDO | 11 | 手腕数字输出 |
| AI | 12 | 模拟输入 |
| AO | 13 | 模拟输出 |
控制程序运行
注意:使用该功能前,请确保存在该程序
- 接口名称:
gbt_interface/srv/ProgramControl - 启动服务:
bash
ros2 launch gbt_driver gbt_service_server.launch.py robot_type:=<机器人型号>- 启动程序:
bash
ros2 service call /gbt_driver/service_server/program_control gbt_interface/srv/ProgramControl "{command: 'start', program_name: 'test'}"如果需要暂停、恢复或者停止程序,请将 command 参数替换为下面选项:
pause: 暂停程序,resume: 恢复程序,stop: 停止程序,
伺服上下电控制
- 接口名称:
gbt_interface/srv/Servo - 启动服务:
bash
ros2 launch gbt_driver gbt_service_server.launch.py robot_type:=<机器人型号>- 控制伺服电机上电:
bash
ros2 service call /gbt_driver/service_server/servo_power gbt_interface/srv/Servo "{servo_on: true}"如果需要控制伺服电机下电,请将 servo_on 参数替换为 false 。
紧急停止
- 接口名称:
gbt_interface/srv/EmergencyStop - 接口说明:该接口用于控制机械臂的紧急停止状态
- 启动服务:bash
ros2 launch gbt_driver gbt_service_server.launch.py robot_type:=<机器人型号> - 接口使用示例:bash
ros2 service call /gbt_driver/service_server/emergency_stop gbt_interface/srv/EmergencyStop "{}"
LED 开关
- 接口名称:
gbt_interface/srv/LED - 接口说明:该接口用于控制机械臂的 LED 灯状态
- 启动服务:bash
ros2 launch gbt_driver gbt_service_server.launch.py robot_type:=<机器人型号> - 接口使用示例:bash
ros2 service call /gbt_driver/service_server/led gbt_interface/srv/LED "{led_on: true}"