LeggedLab
Reward
任务达成奖励 (Task Tracking)
这部分奖励通过指数函数(exp)计算,目的是让机器人精准地遵循给定的速度指令。
- xy轴线速度跟踪 (
track_lin_vel_xy_exp): 鼓励机器人按指令的前后左右速度移动。 - z轴角速度跟踪 (
track_ang_vel_z_exp): 鼓励机器人按指令的转向速度旋转。
步态与接触约束 (Gait & Contact)
这是人形机器人最关键的部分,用于塑造其走路的姿态(步态)。
- 空载时间 (
feet_air_time): 正向奖励。鼓励机器人在行走时有明显的“腾空阶段”,防止拖着脚走。 - 飞行惩罚 (
fly): 负向奖励。虽然鼓励腾空,但如果两只脚同时离地太久(变成跳跃或摔倒),会受到惩罚。 - 足底滑动惩罚 (
feet_slide): 惩罚脚掌在接触地面时的水平位移,减少“溜冰”现象。 - 不必要接触 (
undesired_contacts): 惩罚除脚踝以外的身体部位(如膝盖、躯干)碰到地面。 - 脚部过近 (
feet_too_near): 惩罚两脚靠得太近,防止左右脚发生碰撞。 - 绊倒惩罚 (
feet_stumble): 惩罚脚部侧面撞击障碍物。 - 触地力惩罚 (
feet_force): 防止脚掌落地力量过大(重踏),保护硬件。
姿态平稳与能量消耗 (Smoothness & Energy)
这部分主要是为了让动作看起来更“像人”,并减少硬件损耗。
- 身体定向 (
body_orientation_l2&flat_orientation_l2): 强制躯干(Torso)保持垂直,防止过度前倾或后仰。 - 线/角速度平稳 (
lin_vel_z_l2,ang_vel_xy_l2): 惩罚 z 轴(垂直方向)的剧烈晃动和 xy 平面的剧烈翻滚。 - 能量与功耗 (
energy): 惩罚过大的电机转矩和电流消耗。 - 动作变化率 (
action_rate_l2): 惩罚相邻帧动作输出的剧烈变化,使动作更平滑。 - 关节加速度 (
dof_acc_l2): 减少关节的剧烈震动。
关节位置约束 (Joint Configuration)
- 限位惩罚 (
dof_pos_limits): 关节接近物理极限位置时给予惩罚。 - 关节偏差惩罚 (
joint_deviation_…): 分别针对髋部、手臂和腿部。这会给机器人一个“默认姿态”的拉力,防止它在行走时出现奇怪的手臂摆动或极端的关节弯曲。