本节学习的是具身场景中的强化学习方法。教程中的多机器人搬运家具案例 CooHOI 属于深度强化学习任务,它原本依赖 Isaac Gym 平台运行。
倒立摆控制
由于我本地安装了 MuJoCo / Gymnasium / LeRobot,我选择先跑通一个轻量例子。
本次使用的环境是:
Gymnasium + MuJoCo + PyTorch CUDA
实验任务为 `InvertedPendulum-v4`,即 MuJoCo 中的倒立摆控制任务。智能体需要根据当前状态观测,输出连续控制动作,使摆杆尽可能保持直立。算法使用 PPO,即近端策略优化算法。
强化学习流程可以概括为:
环境给出观测 obs
策略网络根据 obs 输出动作 action
MuJoCo 环境执行 action
环境返回 reward、next_obs、done
PPO 根据采集到的轨迹更新策略网络
重复训练,提升累计奖励
随机策略只能短暂维持倒立摆稳定,而经过 PPO 训练后,策略获得了更高的平均回报。
仿真环境负责提供可交互的物理世界,感知信息对应状态观测,算法负责根据奖励信号优化策略。具身智能中的强化学习,本质上就是让智能体在仿真或真实环境中不断试错,通过奖励反馈学习更好的动作决策。
多机器人搬运家具强化学习笔记
本节教程介绍的是 CooHOI:一个多智能体协作搬运物体的强化学习项目。它对应论文 CooHOI: Learning Cooperative Human-Object Interaction with Manipulated Object Dynamics,主要目标是让两个类人机器人协作搬运家具或箱体。
该任务原本运行在 NVIDIA Isaac Gym平台上,由于 Isaac Gym 配置要求较高,需要 Linux、Python 3.8、CUDA、GPU 和 Isaac Gym Preview 4,本次暂未复现,只对方法流程进行了学习和梳理。
CooHOI 的核心思路是两阶段训练:
第一阶段:训练单智能体搬运技能
第二阶段:将单智能体技能迁移到双智能体协作搬运任务
第一阶段中,使用 AMP 方法训练单个人形机器人,使其学会自然地搬动物体。AMP 可以利用人类动作数据,让机器人的动作更接近真实人类运动。
第二阶段中,将已经训练好的单智能体策略作为初始化,再训练两个机器人协同搬运同一个物体。两个智能体不只是各自行动,还需要通过物体的运动状态间接协调,比如物体的位置、姿态、受力变化等都可以作为反馈信号。
该任务中的强化学习闭环可以理解为:
机器人观察自身状态和物体状态
策略网络输出动作
仿真环境更新机器人和物体的动力学状态
系统根据搬运效果、稳定性、动作质量给予奖励
策略根据奖励不断优化
智能体不只做静态识别,还在物理环境中通过动作影响世界,并根据反馈学习更好的决策。多机器人搬运家具相比单机器人任务更复杂,因为它还涉及多智能体协作、隐式通信、物体动力学反馈和策略迁移。
本节虽然没有完整复现 CooHOI,但理解了其基本结构:Isaac Gym 提供仿真环境,AMP/PPO 类算法负责策略训练,物体动力学作为反馈和协作信号,最终实现多机器人协同搬运。
动力学信号的计算很有意思, CooHOI 里,机器人和物体都不是简单动画,而是有物理属性的刚体/多刚体系统。Isaac Gym 会根据这些信息计算运动结果:
机器人关节力矩 / 目标关节动作 物体质量、惯量、碰撞体、摩擦系数 机器人与物体的接触 重力 地面接触 时间步长