腰部关节
1.waist_front - 腰部前倾
方法: ctrl.waist_front(spd, acc, dec)
C++ 签名: bool waist_front(std::int32_t spd, std::uint32_t acc, std::uint32_t dec);
参数:
spd:速度值,int32_t类型,建议约 300acc:加速度值,uint32_t类型,建议约 50dec:减速度值,uint32_t类型,建议约 50
返回值:
bool:操作结果true:指令发送成功false:指令发送失败
使用示例:
2.waist_back - 腰部后倾
方法: ctrl.waist_back(spd, acc, dec)
C++ 签名: bool waist_back(std::int32_t spd, std::uint32_t acc, std::uint32_t dec);
参数:
spd:速度值,int32_t类型,建议约 300acc:加速度值,uint32_t类型,建议约 50dec:减速度值,uint32_t类型,建议约 50
返回值:
bool:操作结果true:指令发送成功false:指令发送失败
使用示例:
3.waist_set_pos - 腰部位置控制
方法: ctrl.waist_set_pos(spd, acc, dec, pos_deg)
C++ 签名: bool waist_set_pos(std::uint32_t spd, std::uint32_t acc, std::uint32_t dec, float pos_deg);
参数:
spd:速度值,uint32_t类型,建议约 300acc:加速度值,uint32_t类型,建议约 50dec:减速度值,uint32_t类型,建议约 50pos_deg:目标角度,float类型,范围 0° ~ 35°
返回值:
bool:操作结果true:指令发送成功false:指令发送失败
使用示例:
4.waist_stop - 腰部停止
方法: ctrl.waist_stop()
C++ 签名: bool waist_stop();
参数:
- 无
返回值:
bool:操作结果true:指令发送成功false:指令发送失败
使用示例:
5.waist_get_current_pos - 获取腰部当前位置(同步读取)
方法: state.waist_get_current_pos(angle_deg)
C++ 签名: bool waist_get_current_pos(float &angle_deg) const;
参数:
angle_deg:出参,float &类型,返回当前腰部角度,单位:度 (°),范围约 0° ~ 35°
返回值:
bool:表示是否已有有效缓存数据true:已有数据,angle_deg有效false:尚无数据,angle_deg不可信(对应 Python 版可能返回 0)
使用示例:
6.waist_sub_current_pos - 订阅腰部位置(异步回调)
方法: state.waist_sub_current_pos(cb)
C++ 签名: SubscriptionId waist_sub_current_pos(WaistDegCallback cb); // cb: void(float deg)
参数:
cb:回调函数,std::function<void(float)>类型,deg为float,单位:度 (°)。回调在线程池中执行。
返回值:
SubscriptionId:订阅ID,类型为uint64_t。可用于后续取消订阅;空回调返回0(失败)
使用示例:
建议:
- 订阅的回调在线程池中执行,注意线程安全
- 无需接收位置更新时及时取消订阅,避免不必要的回调
- 可与
waist_get_current_pos同步读取配合使用
