底层运动控制服务
约 1710 字大约 6 分钟
2025-01-27
提供机器人系统底层运动控制服务,通过 LowLevelMotionController 可以使用话题通信方式实现对机器人关节的指令控制和状态获取。
接口定义
LowLevelMotionController
是面向底层开发的运动控制器,支持对腿等运动部件的直接控制与状态订阅。
LowLevelMotionController
— 低级运动控制器
项目 | 内容 |
---|---|
类名 | LowLevelMotionController |
功能概述 | 底层关节级运动控制器,提供精确的关节控制 |
主要功能 | 关节状态订阅、关节命令发布、控制周期设置 |
使用场景 | 精确运动控制、自定义步态、研究开发 |
initialize
项目 | 内容 |
---|---|
方法名 | initialize |
方法声明 | bool initialize() |
功能概述 | 初始化控制器,建立底层连接。 |
返回值 | true 表示成功,false 表示失败。 |
备注 | 首次调用必须初始化。 |
shutdown
项目 | 内容 |
---|---|
方法名 | shutdown |
方法声明 | void shutdown() |
功能概述 | 关闭控制器,释放底层资源。 |
备注 | 配合 initialize 使用。 |
set_period_ms
项目 | 内容 |
---|---|
方法名 | set_period_ms |
方法声明 | void set_period_ms(int period_ms) |
功能概述 | 设置控制周期时间(毫秒)。 |
参数说明 | period_ms :周期时间,单位为毫秒。 |
备注 | 非阻塞接口,控制器内部使用的周期参数,控制关节指令的发送频率。 |
subscribe_leg_state
项目 | 内容 |
---|---|
方法名 | subscribe_leg_state |
方法声明 | void subscribe_leg_state(callback) |
功能概述 | 订阅下肢关节状态数据。 |
参数说明 | callback :回调函数,用于处理下肢关节状态的接收数据。函数签名:callback(data : LegState) -> None |
备注 | 非阻塞接口。 |
publish_leg_command
项目 | 内容 |
---|---|
方法名 | publish_leg_command |
方法声明 | Status publish_leg_command(LegJointCommand command) |
功能概述 | 发布下肢关节控制指令。 |
参数说明 | command :包含目标角度/速度等控制信息的下肢关节控制指令。 |
返回值 | Status::OK 表示成功,其他为失败。 |
备注 | 非阻塞接口。 |
enable_send_msg
项目 | 内容 |
---|---|
方法名 | enable_send_msg |
方法声明 | Status enable_send_msg(bool enable) |
功能概述 | LCM 通道开关。 |
参数说明 | enable :LCM 通道开关信息。 |
返回值 | Status::OK 表示成功,其他为失败。 |
备注 | 使用高层运动控制时,关闭 LCM 通道,使用底层运动控制时,打开 LCM 通道。 |
数据结构定义
SingleLegJointCommand
— 单腿关节命令结构体
字段名 | 类型 | 描述 |
---|---|---|
q_des | float | 期望关节角度 |
dq_des | float | 期望关节角速度 |
tau_des | float | 期望关节力矩 |
kp | float | 位置增益 |
kd | float | 速度增益 |
LegJointCommand
— 腿部关节命令结构体
字段名 | 类型 | 描述 |
---|---|---|
timestamp | int | 时间戳 |
cmd | List[SingleLegJointCommand] | 关节命令列表 |
SingleLegJointState
— 单腿关节状态结构体
字段名 | 类型 | 描述 |
---|---|---|
q | float | 关节角度 |
dq | float | 关节角速度 |
tau_est | float | 估计关节力矩 |
LegState
— 腿部状态结构体
字段名 | 类型 | 描述 |
---|---|---|
timestamp | int | 时间戳 |
state | List[SingleLegJointState] | 关节状态列表 |
URDF 参考
底层运动控制机器人状态介绍
机器人底层运动主要是开发关节的三环控制给开发人员进行机器人运动能力的二次开发,基本的控制状态切换机制: