rl_sar
机器人强化学习仿真验证与实物部署统一框架,支持12种主流足式/人形机器人
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
机器人强化学习仿真验证与实物部署统一框架,支持12种主流足式/人形机器人
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
四足机器人在复杂地形上稳健行走、人形机器人流畅完成舞蹈动作——这些看似炫酷的能力背后,藏着 RL 研究者最头疼的问题:仿真与现实的 Gap(Sim-to-Real Transfer)。在仿真环境中训练好的策略,直接部署到真机上往往表现惨淡,要么摔倒、要么发抖、要么完全不动。rl_sar(Simulation and Real)就是来解决这个问题的——它不是一个玩具项目,而是真正支撑了 12 种商业机器人从仿真走向落地的生产级框架。
强化学习在机器人领域的应用,长期面临一个核心矛盾:训练效率和真实物理约束之间的冲突。在 GPU 集群上用 MuJoCo、IsaacGym 等仿真器训练策略,速度快、成本低、可并行,但仿真器的物理建模终究无法完美复现真实世界的摩擦力、关节柔性、地形不平整等细节。另一方面,在真实机器人上直接训练(Real-World RL),样本效率极低,机器人每摔倒一次就可能造成硬件损耗,成本高昂。 Sim-to-Real 迁移(也称域随机化 Domain Randomization)试图弥合这个 Gap:通过在仿真器中随机化物理参数(摩擦系数、质量分布、延迟等),让策略学会在不同条件下都能保持稳定,从而在迁移到真实机器人时具有更强的鲁棒性。 rl_sar 的作者 fan-ziqi(范子琦)是一位深耕机器人强化学习的研究者和工程师,项目于 2024 年发布,当前版本 4.0.0(Apache-2.0 许可证)。与同类开源项目相比,rl_sar 的最大特点是同时支持仿真和实物部署,而不是只提供训练代码。开发者可以从仿真验证出发,直接将同一套策略部署到宇树 Unitree 系列、FFTAI、Agibot、Deep Robotics 等主流机器人上,无需重写控制代码。
rl_sar 适配的机器人数量在同类开源项目中名列前茅,截至 v4.0.0 已支持 12 种商业机器人:
| 机器人型号 | 预训练策略 | 仿真支持 | 实物验证 |
|---|---|---|---|
| 宇树 A1(四足) | legged_gym | Gazebo | ✅ 已验证 |
| 宇树 Go2(四足) | himloco / robot_lab | Gazebo + MuJoCo | ✅ 已验证 |
| 宇树 Go2W(轮足) | robot_lab | Gazebo + MuJoCo | ✅ 已验证 |
| 宇树 B2/B2W(工业四足) | robot_lab | Gazebo + MuJoCo | ⚪ 硬件验证中 |
| 宇树 G1(人形) | robomimic / whole_body_tracking | Gazebo + MuJoCo | ✅ 已验证 |
| FFTAI GR1T1/GR1T2(人形) | legged_gym | Gazebo | ⚪ 硬件验证中 |
| 稚晖君 L4W4(四足) | legged_gym | Gazebo | ✅ 已验证 |
| Deep Robotics Lite3(四足) | himloco | Gazebo | ✅ 已验证 |
| Agibot D1(人形) | robot_lab | Gazebo + MuJoCo | ✅ 已验证 |
| DDTRobot Tita(人形) | robot_lab | Gazebo | ⚪ 硬件验证中 |
| 仿真层面支持 NVIDIA IsaacGym(高速物理仿真)和 IsaacSim(高保真物理仿真)两种后端,也支持开源的 Gazebo 和 MuJoCo。训练框架方面,若使用 IsaacLab(IsaacSim)训练策略,需配合作者的另一项目 robot_lab 管理配置文件。 |
rl_sar 的代码组织采用清晰的三层架构,从底向上依次是:
这是整个框架的基础,包含 RL 策略推理的核心组件:
rl_sdk.hpp,实现了"训练框架无关"的设计理念。策略网络加载后,输入观测(Observation)向量,输出动作(Action)向量。fsm_go2.hpp),管理机器人的运动状态切换(站立、行走向前、摔倒恢复等),保证控制逻辑的安全性。这一层区分了仿真环境和真实机器人的不同控制逻辑:
rl_real_go2.cpp),通过 LCM(Lightweight Communications and Marshalling)协议或直接串口/CAN 总线与机器人通信,接收电机状态、发送电机力矩指令。同一套策略网络在仿真层和实物层复用,保证了仿真-现实的一致性。封装了 ROS1 / ROS2 两种机器人中间件的控制接口,通过 package.ros1.xml 和 package.ros2.xml 兼容 rosbuild 和 ament 构建系统,支持 Noetic 和 Foxy/Humble 两个 ROS 版本。
从技术选型来看,rl_sar 是一套纯 C++ 的生产级项目:
build.sh 自动化处理依赖下载和编译。.pre-commit-config.yaml 规范化代码风格,包含 clang-format、clang-tidy 等检查项。作者维护了完整的单元测试(src/rl_sar/test)和集成测试,覆盖核心推理链路。文档质量极高——README 同时提供中英文版本,安装、配置、仿真、实物部署全流程均有详细说明。rl_sar 提供两种部署路径,难度差异显著:
项目提供了完整的 docker/Dockerfile(基于 ROS2 Humble)和 docker-compose.yml,支持 NVIDIA GPU 直通和纯 CPU 软件渲染两种模式。部署步骤:
git clone --recursive --depth 1 https://github.com/fan-ziqi/rl_sar.gitdocker compose up -d./cmake_build/build.sh(容器内已预装所有依赖)./cmake_build/bin/rl_sim_mujoco g1 scene_29dof
此路径屏蔽了所有系统依赖(ROS2、MuJoCo、Gazebo、各类系统库),适合快速验证策略效果,但需要 Docker + NVIDIA Container Toolkit 环境。需要手动安装 Ubuntu 系统依赖(cmake、libyaml-cpp-dev、libeigen3-dev 等数十个包),安装 ROS2 Humble,下载 MuJoCo 二进制文件和机器人 URDF 模型。此路径灵活性高,适合需要修改底层控制代码或对接自定义机器人的开发者。 两种路径的共同门槛:必须使用 NVIDIA GPU(推荐 RTX 2060 以上,8GB+ 显存),因为 MuJoCo 的 GPU 渲染和仿真加速依赖 CUDA。
rl_sar 并非银弹,使用前需了解以下限制:
parameter_blackboard)仅限 ROS2。rl_sar 在机器人 RL 开源生态中填补了一个关键空白:它不是又一个"提供预训练模型"的项目,而是一个工程化程度极高的部署框架。同类项目中,Stanford 的 LEGS Lab 方案依赖自家定制硬件,MIT 的 ompl 侧重规划而非学习,OpenAI 的 RoboSumo 停留在仿真环境。真正做到同时覆盖仿真验证→策略部署→实物控制全链路且支持 12 种商业机器人的开源项目,rl_sar 是目前功能最全面的选择之一。
从增长趋势看,随着 Figure、宇树、智元等具身智能公司的发展,机器人物理控制算法的工程化需求快速增长。rl_sar 作为"最后一公里"的部署工具,能够帮助研究团队将仿真中训练好的策略快速部署到真实机器人上验证,预计将在具身智能热潮中持续获得关注。