Skip to content

控制机器人的常用接口

提供常见的控制机器人接口,包括移动到指定位置、IO 控制、控制程序运行、伺服上下电控制、紧急停止。

注意:

  • robot_type 默认值为 "C5A"
  • 可选值: C7AC12AC16A

机器人末端移动到指定位置

接口名称

  • 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 信号类型表

枚举描述
DI1信号类型
DO2数字输入
UI3数字输出
UO4专用输入
RI5专用输出
RO6手臂输入
GI7手臂输出
GO8组输入
TAI9手腕模拟输入
TDI10手腕数字输入
TDO11手腕数字输出
AI12模拟输入
AO13模拟输出

控制程序运行

注意:使用该功能前,请确保存在该程序

  • 接口名称: 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}"