灵巧手及末端执行器接口
约 5284 字大约 18 分钟
开发者可通过标准的ROS2话题(Topic)、服务(Service)和动作(Action)机制,便捷地获取机器人状态、发送控制指令,实现复杂任务的编程与集成。
Topic:订阅式话题,接收方订阅某个消息,发送方根据订阅列表向接收方发送消息,主要用于中高频或持续的数据交互。
Service:问答式服务,通过请求实现数据获取或操作。用于低频或功能切换时的数据交互。
Action:持续式动作,用于长时间运行的任务,支持任务执行过程中的状态反馈和取消操作,适用于复杂动作控制和任务执行。
灵巧手及末端执行器接口用于操作末端执行器(灵巧手指节控制/二指夹爪开合力控)。
(1)灵巧手
真机
| Topic | /feedback/hand/left |
|---|---|
| 生效版本 | ≥V0.2 |
| 接入方式 | 订阅(subscribe) |
| 接口说明 | 实时获取左灵巧手的状态,包含位置、速度、电流、力等信息 |
| 接口参数 | header:标准消息头,包含时间戳(stamp)、坐标系(frame_id)等元信息 |
| string[] name:关节名称列表,默认 ["THUMBMCP","THUMBCMC", "INDEXMCP","MIDDLEMCP", "RINGMCP", "LITTLEMCP"],对应[拇指弯曲,拇指摆动,食指弯曲,中指弯曲,无名指弯曲,小指弯曲] | |
| float64[] position:手指位置状态,格式为[拇指摆动程度,拇指弯曲程度,食指弯曲程度,中指弯曲程度,无名指弯曲程度,小指弯曲程度],单位是百分比(%),取值范围是[0.0, 100.0] | |
| float64[] velocity:手指关节运动速度,格式为 [拇指运动速度,拇指摆动运动速度,食指运动速度,中指运动速度,无名指运动速度,小指运动速度],单位是%/s,取值范围是[0.0, 100.0] | |
| float64[] current:手指关节电机电流,格式为 [拇指弯曲电流,拇指摆动电流,食指弯曲电流,中指弯曲电流,无名指弯曲电流,小指弯曲电流],单位是百分比(%),取值范围是[0.0, 100.0] | |
| uint8[] state:手指关节电机状态,格式为 [拇指弯曲电机状态,拇指摆动电机状态,食指弯曲电机状态,中指弯曲电机状态,无名指弯曲电机状态,小指弯曲电机状态],取值范围是[0,1,2,3],0:IDLE(空闲 / 到位停止),1:RUNNING(运动中),2:STALL(堵转 / 保护停止),3:UNKNOWN(未连接) |
| Topic | /feedback/hand/right |
|---|---|
| 生效版本 | ≥V0.2 |
| 接入方式 | 订阅(subscribe) |
| 接口说明 | 实时获取右灵巧手的状态,包含位置、速度、电流、力等信息 |
| 接口参数 | header:标准消息头,包含时间戳(stamp)、坐标系(frame_id)等元信息 |
| string[] name:关节名称列表,默认 ["THUMBMCP","THUMBCMC", "INDEXMCP","MIDDLEMCP", "RINGMCP", "LITTLEMCP"],对应[拇指弯曲,拇指摆动,食指弯曲,中指弯曲,无名指弯曲,小指弯曲] | |
| float64[] position:手指位置状态,格式为[拇指摆动程度,拇指弯曲程度,食指弯曲程度,中指弯曲程度,无名指弯曲程度,小指弯曲程度],单位是百分比(%),取值范围是[0.0, 100.0] | |
| float64[] velocity:手指关节运动速度,格式为 [拇指运动速度,拇指摆动运动速度,食指运动速度,中指运动速度,无名指运动速度,小指运动速度],单位是%/s,取值范围是[0.0, 100.0] | |
| float64[] current:手指关节电机电流,格式为 [拇指弯曲电流,拇指摆动电流,食指弯曲电流,中指弯曲电流,无名指弯曲电流,小指弯曲电流],单位是百分比(%),取值范围是[0.0, 100.0] | |
| uint8[] state:手指关节电机状态,格式为 [拇指弯曲电机状态,拇指摆动电机状态,食指弯曲电机状态,中指弯曲电机状态,无名指弯曲电机状态,小指弯曲电机状态],取值范围是[0,1,2,3],0:IDLE(空闲 / 到位停止),1:RUNNING(运动中),2:STALL(堵转 / 保护停止),3:UNKNOWN(未连接) |
| Topic | /control/hand/left |
|---|---|
| 生效版本 | ≥V0.2 |
| 接入方式 | 发布(publish) |
| 接口说明 | 发布指令,控制左灵巧手的状态 |
| 接口参数 | header:标准消息头,包含时间戳(stamp)、坐标系(frame_id)等元信息 |
| string[] name{ //关节名称列表(控制时可自定义顺序),默认对应 6 个手指关节: “THUMBMCP”; //拇指弯曲 “THUMBCMC”; //拇指摆动 “INDEXMCP”; //食指弯曲 “MIDDLEMCP”; //中指弯曲 “RINGMCP”; //无名指弯曲 “LITTLEMCP”; //小指弯曲 }; | |
| uint8 mode{ //控制模式,枚举 0:POSITION; //位置控制 1:VELOCITY; //速度控制 2:CURRENT; // 电流控制 }; | |
float64[] value:格式为数组 [q1,q2,q3,q4,q5,q6],关节数量由name决定,与name一一对应,默认 6 个,含义由mode决定,单位为百分比(%)
|
| Topic | /control/hand/right |
|---|---|
| 生效版本 | ≥V0.2 |
| 接入方式 | 发布(publish) |
| 接口说明 | 发布指令,控制右灵巧手的状态 |
| 接口参数 | header:标准消息头,包含时间戳(stamp)、坐标系(frame_id)等元信息 |
| string[] name{ //关节名称列表(控制时可自定义顺序),默认对应 6 个手指关节: “THUMBMCP”; //拇指弯曲 “THUMBCMC”; //拇指摆动 “INDEXMCP”; //食指弯曲 “MIDDLEMCP”; //中指弯曲 “RINGMCP”; //无名指弯曲 “LITTLEMCP”; //小指弯曲 }; | |
| uint8 mode{ //控制模式,枚举 0:POSITION; //位置控制 1:VELOCITY; //速度控制 2:CURRENT; // 电流控制 }; | |
float64[] value:格式为数组 [q1,q2,q3,q4,q5,q6],关节数量由name决定,与name一一对应,默认 6 个,含义由mode决定,单位为百分比(%)
|
仿真环境
| Topic | /feedback_sim/hand/left |
|---|---|
| 生效版本 | ≥V0.2 |
| 接入方式 | 订阅(subscribe) |
| 接口说明 | 实时获取左灵巧手的状态,包含位置、速度、电流、力等信息 |
| 接口参数 | header:标准消息头,包含时间戳(stamp)、坐标系(frame_id)等元信息 |
| string[] name:关节名称列表,默认 ["THUMBMCP","THUMBCMC", "INDEXMCP","MIDDLEMCP", "RINGMCP", "LITTLEMCP"],对应[拇指弯曲,拇指摆动,食指弯曲,中指弯曲,无名指弯曲,小指弯曲] | |
| float64[] position:手指位置状态,格式为[拇指摆动程度,拇指弯曲程度,食指弯曲程度,中指弯曲程度,无名指弯曲程度,小指弯曲程度],单位是百分比(%),取值范围是[0.0, 100.0] | |
| float64[] velocity:手指关节运动速度,格式为 [拇指运动速度,拇指摆动运动速度,食指运动速度,中指运动速度,无名指运动速度,小指运动速度],单位是%/s,取值范围是[0.0, 100.0] | |
| float64[] current:手指关节电机电流,格式为 [拇指弯曲电流,拇指摆动电流,食指弯曲电流,中指弯曲电流,无名指弯曲电流,小指弯曲电流],单位是百分比(%),取值范围是[0.0, 100.0] | |
| uint8[] state:手指关节电机状态,格式为 [拇指弯曲电机状态,拇指摆动电机状态,食指弯曲电机状态,中指弯曲电机状态,无名指弯曲电机状态,小指弯曲电机状态],取值范围是[0,1,2,3],0:IDLE(空闲 / 到位停止),1:RUNNING(运动中),2:STALL(堵转 / 保护停止),3:UNKNOWN(未连接) |
| Topic | /feedback_sim/hand/right |
|---|---|
| 生效版本 | ≥V0.2 |
| 接入方式 | 订阅(subscribe) |
| 接口说明 | 实时获取右灵巧手的状态,包含位置、速度、电流、力等信息 |
| 接口参数 | header:标准消息头,包含时间戳(stamp)、坐标系(frame_id)等元信息 |
| string[] name:关节名称列表,默认 ["THUMBMCP","THUMBCMC", "INDEXMCP","MIDDLEMCP", "RINGMCP", "LITTLEMCP"],对应[拇指弯曲,拇指摆动,食指弯曲,中指弯曲,无名指弯曲,小指弯曲] | |
| float64[] position:手指位置状态,格式为[拇指摆动程度,拇指弯曲程度,食指弯曲程度,中指弯曲程度,无名指弯曲程度,小指弯曲程度],单位是百分比(%),取值范围是[0.0, 100.0] | |
| float64[] velocity:手指关节运动速度,格式为 [拇指运动速度,拇指摆动运动速度,食指运动速度,中指运动速度,无名指运动速度,小指运动速度],单位是%/s,取值范围是[0.0, 100.0] | |
| float64[] current:手指关节电机电流,格式为 [拇指弯曲电流,拇指摆动电流,食指弯曲电流,中指弯曲电流,无名指弯曲电流,小指弯曲电流],单位是百分比(%),取值范围是[0.0, 100.0] | |
| uint8[] state:手指关节电机状态,格式为 [拇指弯曲电机状态,拇指摆动电机状态,食指弯曲电机状态,中指弯曲电机状态,无名指弯曲电机状态,小指弯曲电机状态],取值范围是[0,1,2,3],0:IDLE(空闲 / 到位停止),1:RUNNING(运动中),2:STALL(堵转 / 保护停止),3:UNKNOWN(未连接) |
| Topic | /control_sim/hand/left |
|---|---|
| 生效版本 | ≥V0.2 |
| 接入方式 | 发布(publish) |
| 接口说明 | 发布指令,控制左灵巧手的状态 |
| 接口参数 | header:标准消息头,包含时间戳(stamp)、坐标系(frame_id)等元信息 |
| string[] name{ //关节名称列表(控制时可自定义顺序),默认对应 6 个手指关节: “THUMBMCP”; //拇指弯曲 “THUMBCMC”; //拇指摆动 “INDEXMCP”; //食指弯曲 “MIDDLEMCP”; //中指弯曲 “RINGMCP”; //无名指弯曲 “LITTLEMCP”; //小指弯曲 }; | |
| uint8 mode{ //控制模式,枚举 0:POSITION; //位置控制 1:VELOCITY; //速度控制 2:CURRENT; // 电流控制 }; | |
float64[] value:格式为数组 [q1,q2,q3,q4,q5,q6],关节数量由name决定,与name一一对应,默认 6 个,含义由mode决定,单位为百分比(%)
|
| Topic | /control_sim/hand/right |
|---|---|
| 生效版本 | ≥V0.2 |
| 接入方式 | 发布(publish) |
| 接口说明 | 发布指令,控制右灵巧手的状态 |
| 接口参数 | header:标准消息头,包含时间戳(stamp)、坐标系(frame_id)等元信息 |
| string[] name{ //关节名称列表(控制时可自定义顺序),默认对应 6 个手指关节: “THUMBMCP”; //拇指弯曲 “THUMBCMC”; //拇指摆动 “INDEXMCP”; //食指弯曲 “MIDDLEMCP”; //中指弯曲 “RINGMCP”; //无名指弯曲 “LITTLEMCP”; //小指弯曲 }; | |
| uint8 mode{ //控制模式,枚举 0:POSITION; //位置控制 1:VELOCITY; //速度控制 2:CURRENT; // 电流控制 }; | |
float64[] value:格式为数组 [q1,q2,q3,q4,q5,q6],关节数量由name决定,与name一一对应,默认 6 个,含义由mode决定,单位为百分比(%)
|
(2)二指夹爪
真机
| Topic | /feedback/gripper/left |
|---|---|
| 生效版本 | ≥V0.2 |
| 接入方式 | 订阅(subscribe) |
| 接口说明 | 实时获取左夹爪的状态 |
| 接口参数 | header:标准消息头,包含时间戳(stamp)、坐标系(frame_id)等元信息 |
| string[] name:关节名称列表,默认仅包含["FINGER"] | |
| float64[] position:夹爪闭合程度,单位是百分比(%),取值范围是[0.0, 100.0](0%= 完全张开,100%= 完全闭合) | |
| uint8[] state{ //夹爪电机的运行状态,枚举 0:IDLE; //空闲 、位置到位停止 1:RUNNING; // 运动中(展开 / 抓取) 2:STALL; // 堵转 / 保护停止 3:UNKNOWN; //未连接 } |
| Topic | /feedback/gripper/right |
|---|---|
| 生效版本 | ≥V0.2 |
| 接入方式 | 订阅(subscribe) |
| 接口说明 | 实时获取右夹爪的状态 |
| 接口参数 | header:标准消息头,包含时间戳(stamp)、坐标系(frame_id)等元信息 |
| string[] name:关节名称列表,默认仅包含["FINGER"] | |
| float64[] position:夹爪闭合程度,单位是百分比(%),取值范围是[0.0, 100.0](0%= 完全张开,100%= 完全闭合) | |
| uint8[] state{ //夹爪电机的运行状态,枚举 0:IDLE; //空闲 、位置到位停止 1:RUNNING; // 运动中(展开 / 抓取) 2:STALL; // 堵转 / 保护停止 3:UNKNOWN; //未连接 } |
| Topic | /control/gripper/left |
|---|---|
| 生效版本 | ≥V0.2 |
| 接入方式 | 发布(publish) |
| 接口说明 | 发布指令,切换左夹爪的状态 |
| 接口参数 | header:标准消息头,包含时间戳(stamp)、坐标系(frame_id)等元信息 |
| string[] name:关节名称列表,默认仅包含["FINGER"] | |
| float64[] position:夹爪闭合程度,单位是百分比(%),取值范围是[0.0, 100.0](0%= 完全张开,100%= 完全闭合) | |
| uint8[] state{ //夹爪电机的运行状态,枚举 0:IDLE; //空闲 、位置到位停止 1:RUNNING; // 运动中(展开 / 抓取) 2:STALL; // 堵转 / 保护停止 3:UNKNOWN; //未连接 } |
| Topic | /control/gripper/right |
|---|---|
| 生效版本 | ≥V0.2 |
| 接入方式 | 发布(publish) |
| 接口说明 | 发布指令,切换右夹爪的状态 |
| 接口参数 | header:标准消息头,包含时间戳(stamp)、坐标系(frame_id)等元信息 |
| string[] name:关节名称列表,默认仅包含["FINGER"] | |
| float64[] position:夹爪闭合程度,单位是百分比(%),取值范围是[0.0, 100.0](0%= 完全张开,100%= 完全闭合) | |
| uint8[] state{ //夹爪电机的运行状态,枚举 0:IDLE; //空闲 、位置到位停止 1:RUNNING; // 运动中(展开 / 抓取) 2:STALL; // 堵转 / 保护停止 3:UNKNOWN; //未连接 } |
仿真环境
| Topic | /feedback_sim/gripper/left |
|---|---|
| 生效版本 | ≥V0.2 |
| 接入方式 | 订阅(subscribe) |
| 接口说明 | 实时获取左夹爪的状态 |
| 接口参数 | header:标准消息头,包含时间戳(stamp)、坐标系(frame_id)等元信息 |
| string[] name:关节名称列表,默认仅包含["FINGER"] | |
| float64[] position:夹爪闭合程度,单位是百分比(%),取值范围是[0.0, 100.0](0%= 完全张开,100%= 完全闭合) | |
| uint8[] state{ //夹爪电机的运行状态,枚举 0:IDLE; //空闲 、位置到位停止 1:RUNNING; // 运动中(展开 / 抓取) 2:STALL; // 堵转 / 保护停止 3:UNKNOWN; //未连接 } |
| Topic | /feedback_sim/gripper/right |
|---|---|
| 生效版本 | ≥V0.2 |
| 接入方式 | 订阅(subscribe) |
| 接口说明 | 实时获取右夹爪的状态 |
| 接口参数 | header:标准消息头,包含时间戳(stamp)、坐标系(frame_id)等元信息 |
| string[] name:关节名称列表,默认仅包含["FINGER"] | |
| float64[] position:夹爪闭合程度,单位是百分比(%),取值范围是[0.0, 100.0](0%= 完全张开,100%= 完全闭合) | |
| uint8[] state{ //夹爪电机的运行状态,枚举 0:IDLE; //空闲 、位置到位停止 1:RUNNING; // 运动中(展开 / 抓取) 2:STALL; // 堵转 / 保护停止 3:UNKNOWN; //未连接 } |
| Topic | /control_sim/gripper/left |
|---|---|
| 生效版本 | ≥V0.2 |
| 接入方式 | 发布(publish) |
| 接口说明 | 发布指令,切换左夹爪的状态 |
| 接口参数 | header:标准消息头,包含时间戳(stamp)、坐标系(frame_id)等元信息 |
| string[] name:关节名称列表,默认仅包含["FINGER"] | |
| float64[] position:夹爪闭合程度,单位是百分比(%),取值范围是[0.0, 100.0](0%= 完全张开,100%= 完全闭合) | |
| uint8[] state{ //夹爪电机的运行状态,枚举 0:IDLE; //空闲 、位置到位停止 1:RUNNING; // 运动中(展开 / 抓取) 2:STALL; // 堵转 / 保护停止 3:UNKNOWN; //未连接 } |
| Topic | /control_sim/gripper/right |
|---|---|
| 生效版本 | ≥V0.2 |
| 接入方式 | 发布(publish) |
| 接口说明 | 发布指令,切换右夹爪的状态 |
| 接口参数 | header:标准消息头,包含时间戳(stamp)、坐标系(frame_id)等元信息 |
| string[] name:关节名称列表,默认仅包含["FINGER"] | |
| float64[] position:夹爪闭合程度,单位是百分比(%),取值范围是[0.0, 100.0](0%= 完全张开,100%= 完全闭合) | |
| uint8[] state{ //夹爪电机的运行状态,枚举 0:IDLE; //空闲 、位置到位停止 1:RUNNING; // 运动中(展开 / 抓取) 2:STALL; // 堵转 / 保护停止 3:UNKNOWN; //未连接 } |