头部关节
1.head_pos - 头部角度控制
方法: ctrl.head_pos(head_type, pos_deg)
参数:
head_type:头部类型,HeadType枚举HeadType.kLower:下头(yaw),水平旋转HeadType.kUpper:上头(pitch),俯仰
pos_deg:目标角度,float类型,单位:度 (°)。正值 = 前/上,负值 = 后/下。内部自动限幅:HeadType.kLower(yaw):-45° ~ +45°HeadType.kUpper(pitch):-15° ~ +25°
返回值:
bool:操作结果True:指令发送成功False:指令发送失败
使用示例:
注意: 限幅范围由机型 robot_profile 的 head_upper_range / head_lower_range 配置决定,上表为默认机型范围;输入超限值会被自动钳位。
2.head_stop - 头部停止
方法: ctrl.head_stop(head_type)
参数:
head_type:头部类型,HeadType枚举HeadType.kLower:停止下头(yaw)HeadType.kUpper:停止上头(pitch)
返回值:
bool:操作结果True:指令发送成功False:指令发送失败
使用示例:
3.head_get_current_pos - 获取头部当前位置(同步读取)
方法: state.head_get_current_pos(head_type)
参数:
head_type:头部类型,HeadType枚举HeadType.kLower:读取下头(yaw)当前位置HeadType.kUpper:读取上头(pitch)当前位置
返回值:
float | None:当前头部角度,单位:度 (°)。尚无数据时可能返回None,收到订阅数据后返回缓存值
使用示例:
4.head_sub_current_pos - 订阅头部位置(异步回调)
方法: state.head_sub_current_pos(callback)
参数:
callback:回调函数,签名callback(head_type, deg)head_type:HeadType类型,标识是下头还是上头deg:float类型,角度值,单位:度 (°)
返回值:
SubscriptionId:订阅ID,类型为int。可用于后续取消订阅;空回调返回0
使用示例:
建议:
- 回调在线程池中执行,注意线程安全
- 无需接收位置更新时及时取消订阅,避免不必要的回调
- 可与
head_get_current_pos同步读取配合使用
