助力原地踏步(调整 PD 参数)
任务信息
任务值 (TID): 4117
任务描述:
- 机器人通过给定参数,生成原地踏步的关节运动轨迹序列,通过执行器跟踪该轨迹,实现助力原地踏步。
任务参数:
| 接口参数 | 类型 | 默认值 | 参数范围 | 描述 |
|---|---|---|---|---|
| 大腿长度 | float | 0.5 | [0.3, 0.6] | 机器人的大腿长度,单位为 m。 |
| 小腿长度 | float | 0.5 | [0.3, 0.6] | 机器人的小腿长度,单位为 m。 |
| 抬腿高度 | float | 0.1 | [0.1, 0.4] | 机器人每一步的抬腿高度,单位为 m。 |
| 步行周期 | float | 1.0 | [0.5, 4.0] | 原地踏步的单步周期,即完成一次完整踏步循环所需的时间,单位为 s。值越小踏步频率越高,值越大踏步越慢。 |
| 助力系数 | float | 0.5 | [0.0, 1.0] | 关节 PD 控制刚度的调节系数,取值范围 [0.0, 1.0]。系数越小,关节越柔顺,患者自主发力空间越大;系数越大,关节刚度越高,轨迹跟踪能力越强。 |
| 启动运动标志位 | bool | false | (true, false) | 是否启动运动,true 表示启动,false 表示不启动(如果已经启动,不会起作用) |
| 停止运动标志位 | bool | false | (true, false) | 是否停止运动,true 表示停止,false 表示继续行走。 |
助力系数说明:
助力系数通过对执行器的 PD 控制增益进行线性插值来调节关节刚度。计算公式如下:
- Kp = (200 − 100) × 助力系数 + 100,即 Kp ∈ [100, 200]
- Kd = (20 − 10) × 助力系数 + 10,即 Kd ∈ [10, 20]
关节输出力矩:τ = Kp × (θ_目标 − θ_实测) + Kd × (ω_目标 − ω_实测)
助力系数 Kp Kd 效果 0.0 100 10 关节最柔顺,对轨迹偏差修正力最弱,患者可主动对抗运动进行主动康复训练 0.5 150 15 中等刚度,适合有一定自主运动能力的患者 1.0 200 20 正常刚度,轨迹跟踪能力正常,适合需要完全被动引导的患者
模块信息
该任务暂无独立模块指令,不支持通过模块接口进行分关节控制。
接口信息
状态接口:
| 接口参数 | 接口映射关系 |
|---|---|
| 任务启动标志 | task.flag_task_start |
| 任务结束标志 | task.flag_task_finish |
| 运行比例 | rehab.motion_ratio |
| 参考轨迹位置 | rehab.reference_joint_position |
| 参考轨迹速度 | rehab.reference_joint_velocity |
| 参考轨迹位置最大值 | rehab.reference_joint_position_max |
| 参考轨迹位置最小值 | rehab.reference_joint_position_min |
指令接口:
- 大腿长度 在算法运算中只能输入一个值,因此取左右大腿长度的均值。因此,传参时传入两个,但是实际只会取均值去使用。
- 小腿长度 在算法运算中只能输入一个值,因此取左右小腿长度的均值。因此,传参时传入两个,但是实际只会取均值去使用。
| 接口参数 | 接口映射关系 |
|---|---|
| 大腿长度 | grx.virtual_user_upper_leg_length_left, grx.virtual_user_upper_leg_length_right, 取均值 |
| 小腿长度 | grx.virtual_user_lower_leg_length_left, grx.virtual_user_lower_leg_length_right, 取均值 |
| 抬腿高度 | grx.virtual_panel_command_param_1 |
| 步行周期 | grx.virtual_panel_command_param_2 |
| 助力系数 | grx.virtual_panel_command_param_3 |
| 启动运动标志位 | grx.virtual_panel_command_start |
| 停止运动标志位 | grx.virtual_panel_command_stop |
更新日志
fourier-grxv4.0.0 版本新增该功能。