5.1.5 末端执行器控制
末端执行器控制目前支持:
灵巧手: 智元OmniHand 灵动款 2025
夹爪: 智元OmniPicker
手部控制特点
灵巧手模式: 支持多指协调控制,适合复杂操作
夹爪模式: 支持开合控制,适合简单抓取
状态监控: 实时监控手部状态和故障代码
类型查询: 支持动态查询当前手部类型
手部控制话题
话题名称 |
消息类型 |
描述 |
QoS |
频率 |
|---|---|---|---|---|
|
|
手部控制命令 |
- |
Hz |
HandCommandArrayros2-msg @ hal/msg/HandCommandArray.msg# 手部控制命令数组 MessageHeader header # 消息头 HandType left_hand_type # 左手类型 (1:灵巧手, 2:夹爪) HandCommand[] left_hands # 左手命令 HandType right_hand_type # 右手类型 (1:灵巧手, 2:夹爪) HandCommand[] right_hands # 右手命令
HandCommand[]长度与顺序说明:手类型
数组长度
顺序
补充信息
夹爪 OmniPicker
1
N/A
灵巧手 OmniHand
10
ThumbRoll,ThumbAbAd,ThumbMCP,IndexAbAd,IndexPIP,MiddlePIP,RingAbAd,RingPIP,PinkyAbAd,PinkyPIP目前暂时只支持全部关节同时配置,按主动轴索引顺序排列
HandCommandros2-msg @ hal/msg/HandCommand.msg# 手部控制命令 string name # 关节名称 float64 position # 位置 float64 velocity # 速度 float64 acceleration # 加速度 float64 deceleration # 减速度 float64 effort # 力矩
注意!该消息字段依具体手类型含义有较大差异:
夹爪 OmniPicker:
fieldname
范围
含义说明
position
0.0-1.0浮点数
线性映射夹爪张合行程, 1.0完全张开
velocity
0.0-1.0浮点数
线性映射夹爪运行速度, 1.0最快速度
acceleration
0.0-1.0浮点数
线性映射夹爪加速度, 1.0最大加速度
deceleration
0.0-1.0浮点数
线性映射夹爪减速度, 1.0最大减速度
effort
0.0-1.0浮点数
线性映射夹爪夹持力矩, 1.0最大力矩
灵巧手 OmniHand:
fieldname
范围
含义说明
position
相应主动轴活动范围, 单位弧度(rad)
详见灵巧手开发手册
velocity
N/A
未使用
acceleration
N/A
未使用
deceleration
N/A
未使用
effort
N/A
未使用
注意
开发者尝试自主控制手部前, 应确保机器人状态安全后, 禁止PC1上的原生运控模块aima em stop-app mc
手部应用场景如需原生运控模块保持走跑管理等, 可联系技术支持进行系统侧适配
手部状态信息话题
话题名称 |
消息类型 |
描述 |
QoS |
频率 |
|---|---|---|---|---|
|
|
手部状态信息 |
|
与控制同频率 |
HandStateArrayros2-msg @ hal/msg/HandStateArray.msg# 手部状态数组 MessageHeader header # 消息头 HandType left_hand_type # 左手类型 (1:灵巧手, 2:夹爪) HandState[] left_hands # 左手状态 HandType right_hand_type # 右手类型 (1:灵巧手, 2:夹爪) HandState[] right_hands # 右手状态
HandState[]长度与顺序说明:手类型
数组长度
顺序
补充信息
夹爪 OmniPicker
1
N/A
灵巧手 OmniHand 灵动款 2025
10
按主动轴索引顺序排列, 同前述
HandCommand[]HandStateros2-msg @ hal/msg/HandState.msg# 手部状态信息 string name # 关节名称 float64 position # 当前位置 float64 velocity # 当前速度 float64 effort # 当前力矩 int32 state # 状态 int32 faultcode # 故障代码
注意!该消息字段依具体手类型含义有较大差异:
夹爪 OmniPicker:
fieldname
范围
含义说明
position
0.0-1.0浮点数
当前行程,取值范围同前
velocity
0.0-1.0浮点数
当前速度,取值范围同前
effort
0.0-1.0浮点数
当前力矩,取值范围同前
state
0-已到达目标位置/1-夹爪移动中/2-夹爪堵转/3-物体掉落
状态
faultcode
0-无故障/1-过温警报/2-超速警报/3-初始化故障警报/4-超限检测警报
故障代码
灵巧手 OmniHand:
fieldname
范围
含义说明
position
弧度(rad)
当前位置
velocity
N/A
暂未使用
effort
N/A
当前电流(A), 待实现
state
N/A
暂未使用
faultcode
N/A
故障代码, 待适配
查询手部类型服务
服务名称 |
数据类型 |
描述 |
|---|---|---|
|
|
主动查询手部类型 |
GetHandTyperos2-srv @ hal/srv/GetHandType.srv# 获取手部类型 # 服务名称: /aimdk_5Fmsgs/srv/GetHandType # 请求 CommonRequest request # 通用请求 # 响应 CommonResponse response # 通用响应 HandType left_hands_type # 左手类型 (1:灵巧手, 2:夹爪) HandType right_hands_type # 右手类型 (1:灵巧手, 2:夹爪)
HandType定义同前, 0x0-无, 0x1-灵巧手, 0x2-夹爪, 0xFF-错误
编程示例
详细的编程示例和代码说明请参考:
安全注意事项
警告
手部组件自主控制需关闭原生运控, 请注意接管机器人的其他关节, 做好安全防护
请勿自行修改手部组件的配置, 特殊系统适配需求请联系技术支持