
做了六七年机器人研发从四足机器人到双臂协作臂都摸过一遍这几年最大的感受是开源算法已经不是有没有的问题而是怎么选、怎么组合的问题。尤其足式运动 双臂操作 具身智能这条线几乎覆盖了人形机器人和通用操作机器人的全部技术栈。很多刚入门的朋友拿着一个机械臂或者一台四足机器人面对GitHub上海量的仓库第一反应不是兴奋是懵到底该从哪个项目入手哪些算法是真的能跑的哪些只是论文附带的玩具代码这篇东西我不打算写成一份干巴巴的链接清单而是结合我实际跑过的项目、踩过的坑把这三条技术主线上的开源算法按能落地的优先级盘一遍顺带把SLAM导航、仿真环境、工具链这些配套内容也聊透。如果你正准备做人形机器人、复合机器人或者仿生机器人的研发这份梳理应该能帮你少走几个月弯路。1. 足式运动开源算法从仿真训练到真机部署的全链路选择足式运动是近五年开源进展最迅猛的方向没有之一。2018年你还得自己从零手写MPC控制器现在从强化学习训练到真机部署基本都有现成货架。1.1 强化学习训练框架怎么选足式运动的核心难点在腿部动力学控制和稳定性。目前主流方案基本都转向了强化学习加仿真训练再用Sim-to-Real迁移到真机。我实际重度使用过的有三个框架legged_gym、RSL-RL和unitree_rl_gym。legged_gym是ETH的经典作品基于Legged Robots的RL训练环境底层用rsl_rl算法库。优点很明显环境封装干净支持URDF直接导入Reward项配置全部集中在legged_robot_config.py里改起来非常顺手。缺点是对新手的门槛高你需要理解observation和privileged observation的区别这直接决定了后面蒸馏策略能不能收敛。RSL-RL是跟legged_gym配套的PPO实现去年开始已经被很多团队拿去给人形机器人做步态训练。训练速度上单张4090跑四足机器人大概两小时能出一个能走的策略这是我实测过的数据。unitree_rl_gym是宇树基于上述框架改的版本好处是内置了Go2、B2、A1的URDF和默认参数拿过来直接可以训对刚入门的朋友非常友好。它的Reward项去掉了不少跟宇树电机特性强绑定的项通用性更好。我的观点是新手选unitree_rl_gym起步跑通了再回头看legged_gym的源码理解每一行Reward的意义。直接硬啃legged_gym容易在配置文件和训练参数上卡一两个星期。1.2 部署层传统控制依然是压舱石RL训练出来的策略在仿真里再好到了真机上都会遇到一个尴尬问题不知道该把电流给到哪个电机。这时候低层的力控和状态估计就至关重要。真正上过真机的人都知道足式机器人日常维护至少一半时间在跟状态估计作斗争。mit_controller是MIT Cheetah系列开源的经典MPCWBC控制方案四足用纯几何算法解算腿部雅可比代码风格非常硬核适合想深挖算法原理的人。另一种现代路线是直接用Crocoddyl做求解器——这是一个基于微分动态规划的接触一致性优化库功能上比传统OSQP求解器灵活太多。我在调双臂和下肢协同的时候就是用它求解全身动力学比单独整WBC省事不少。唯一的问题是依赖项多编译时间占了半天这块需要有点耐心。控制器方案适用场景上手难度真机可靠性MIT Controller纯四足、单刚体动力学假设高极高Crocoddyl WBC人形、带臂协同极高高RL策略直接部署训练充分、域随机化到位中中上简易PD步态规划教学演示、快速轮足切换低中1.3 Sim-to-Real的坑域随机化不是玄学从仿真到真机最大的坎是电机响应延迟和关节限位。很多人在legged_gym里调好的策略上真机第一步就摔回看日志发现是力矩饱和把关节打出了限位。域随机化里最有效的几项按重要性排序关节摩擦和阻尼系数扰动默认区间建议±50%不然真机上的齿轮摩擦会吃掉大量控制精度质心位置和质量的随机化机器人带电池和不带电池完全是两台机器外部推力扰动这个能显著提升策略的抗干扰能力电机力矩延迟模拟真实通信板载周期下的执行延迟这些参数在legged_gym的domain_rand.py里都有对应项。建议真机调参之前先把这三项做扎实别急着上机省下来的调试时间足够你把策略再训三轮。2. 双臂操作开源算法难点不在单臂在协同和避碰双臂操作是人形机器人落地最有想象力的方向。但做了几个双臂项目后我的结论很直接双臂不是两个单臂共用一套代码而是需要一套全新的规划和协同逻辑。2.1 运动规划MoveIt之外的进阶选择单臂规划用MoveIt已经很成熟但双臂场景下它的表现比较吃力。原因在于MoveIt基于采样的规划器在构型空间膨胀到十几维双臂自由度加起来哪怕每臂6关节状态空间至少12维时搜索效率和成功率下降得厉害。我在双臂场景下实测下来TRAC-IK比默认的KDL-IK求解成功率高出不少尤其在接近奇异位形时TRAC-IK的数值稳定性更好。更重要的是TRAC-IK允许你把双臂当成一个整体求逆解而不是先解左臂再解右臂这能天然规避大部分自碰撞问题。如果要做动态避碰推荐看FCL柔性碰撞检测库——很多做的好的团队都用它做在线碰撞检测配合OMPL的RRT-Connect能够实现双臂在狭小空间内的实时避让。2.2 柔顺控制和力控判断一个团队靠不靠谱的分水岭操作到头就看力控。抓鸡蛋、拧螺丝、擦桌子实验室里能跑的绝大部分所谓智能操作在力控面前都会被揭穿——要么末端力反馈忽大忽小要么一接触就振荡。开源社区里libfranka是Franka Emika的官方库里面包含了完整的关节阻抗控制接口和笛卡尔阻抗控制API。虽然只是一条基础路径但它的示例代码把力和位置的混合控制讲明白了值得逐行读。更进阶的力控方案是直接绕开机械臂厂商的SDK用外部关节力矩传感器自行闭环这属于硬核玩家的玩法了。配合eigen和pinocchio做动力学建模能够实现真正意义上的零力示教。这个路径坑非常深但一旦跑通在精密装配场景的竞争力会非常明显。2.3 抓取和操作学习型方法进入可用期抓取方向值得关注的几个项目GraspNet通用物体抓取检测1B数据集模型直接给出抓取位姿效果稳定适合仿真转真机Contact-GraspNet带接触约束的抓取方法在杂乱场景下6D抓取位姿精度更高RLBench针对单臂和双臂的RL训练环境自带上百个任务适合做操作技能学习robosuite伯克利的操作仿真库支持双臂学习型操作研究的主流选择在我实际测试中GraspNet在真实深度相机的点云上稳定抓取圆柱和长方体物体的成功率大约能达到80%以上但抓透明物体就废了这在工业场景里是个硬伤。配合一个简单的高度启发式判定至少能保证它不会把抓取位姿出到桌子下面去。3. 具身智能开源算法VLA模型和大脑基础设施具身智能是这两年最热的方向热词榜上长期霸屏但真正落地到具体项目你会发现算法模型反而好拿数据才是最大瓶颈。3.1 开源VLA模型选型从RT-2到π0视觉-语言-动作VLA模型已经完成了从论文到开源demo的过渡。目前开源生态里可用度比较高的几个OpenVLA基于LLaMA架构7B参数量能直接接收语言指令和视觉输入输出动作token支持真机部署。工程化程度高有配套的openvla-deploy代码但需要一张至少24GB显存的显卡供电RT-2开源子集Google的方案工业化程度高但当前开源版本更多是展示架构思路直接迁移到自己机器人上需要做大量适配π0Physical Intelligence2024年底开源将VLA与流匹配结合在双臂插线、叠毛巾这类精细操作上效果明显是目前双臂具身操作里我最推荐的基线GR00T系列英伟达的机器人基础模型主打仿真训练与真机迁移体系有配套的Isaac框架跟NVIDIA家的硬件和仿真器适配度非常高3.2 数据从哪来遥操作和仿真数据合成训练VLA模型单纯跑仿真不行真机数据不行——问题是数据量需求太大了OpenVLA论文里预训练用了差不多160万条机器人轨迹。这对绝大多数团队不现实。开源社区里缓解数据压力有几个被验证过的路径遥操作数据采集用ALOHA双遥操作臂配合ARX等低成本遥控臂两个小时能采集50到80条有效轨迹是目前数据采集性价比最高的方式仿真数据合成英伟达的Isaac Lab配合RoboMIND数据集把仿真环境中的大量任务数据蒸馏成真机策略这个路径已经有不少落地案例跨机器人迁移Open X-Embodiment数据集支持了不同机器人形态的动作对齐在你自己的机器上采集几千条数据后可以基于预训练模型微调把数据需求压缩到几百条级别3.3 具身智能的落地评估仿真刷榜不等于真的会干活这里必须泼一盆冷水具身智能开源源码很多但真正等于能干的机器人的项目很少。你从GitHub拉一个VLA模型下来它可能只会在固定场景、固定光照、固定物体位姿下干活换个背景灯就卡死或乱抓。我个人的实操经验是想评估一个具身智能项目靠不靠谱看三个指标能接受多少种语言指令还是只能听懂固定几组关键词对物体大小、颜色、位姿的泛化能力同一物体换个颜色或角度还能不能操作失败后的恢复策略抓取失败了模型是重新规划还是直接报错退出卡在第三项的项目目前开源生态里一大堆。这并不意味着模型不好而是环境感知和短期记忆模块没有真正打通。4. SLAM、地图构建与导航让机器人走出实验室的前提足式运动、双臂操作解决的是手和脚的问题但要真正把机器人放进办公楼、工厂或者仓库SLAM和导航这套基础设施是绕不开的。4.1 SLAM开源方案对比现在的SLAM生态已经非常成熟了。从激光到视觉从单线到多线方案传感器特点适用场景GMapping2D激光经典中的经典粒子滤波小场景精度高室内扫地机、教学演示Cartographer2D/3D激光图优化回环检测强大面积室内、仓库LIO-SAM / FAST-LIO23D激光IMU紧耦合LiDAR-IMU实时性强室外、复杂地形ORB-SLAM3单目/双目/RGB-D视觉SLAM标杆支持单目初始化无激光雷达的低成本方案VINS-Fusion相机IMU视觉惯性融合鲁棒性好无人机、手持设备四足或人形机器人如果只在室内走Cartographer其实是最稳的选择如果要在室外跑或者场地有坡度FAST-LIO2的鲁棒性要明显高于纯激光方案。4.2 导航避障与路径规划ROS1时代人手一份的Move Base到ROS2时代升级为Nav2。这个东西的完善程度非常高从代价地图到全局规划器、局部规划器、恢复行为都已经模块化到极其清晰。但要注意Nav2给轮式机器人调完参数不代表能给双足或四足直接用。足式机器人的代价地图需要结合步态规划腿部摆动时的高线速度对局部规划器的采样频率要求完全不同。我见过不少团队把人形机器人的导航方案直接套Nav2的轮式参数结果走一个走廊都会撞墙。如果你做的是轮式底盘机械臂的复合机器人Nav2绝对是第一选择如果你做人形那么导航层最好还是自己写简化的路径点跟踪器把更多的计算资源留给步态控制器。4.3 定位与重定位机器人回充和长期运行的关键SLAM建图只是起点长期运行中的重定位才是工厂级部署的拦路虎。开源里AMCL自适应蒙特卡洛定位是2D激光定位的标配对单线雷达的鲁棒性很好。但一旦环境发生明显的结构改动AMCL的粒子分布会散掉造成定位丢失。针对3D传感器推荐的路线是hdl_localization配合点云地图做全局匹配受环境光照影响小精度高实际测试在复杂的车间环境中一次性定位成功概率能到95%以上。但这里有个反直觉的坑定位点云地图的精度反而比建图时更重要如果建图时地面点滤得不干净后期定位的整体误差可能直接飘出10厘米以上。5. 仿真平台和开发工具链决定项目进度的隐藏因素做机器人研发代码能力决定项目下限仿真工具链决定项目的排错效率。这点在我同时跑过四足和双臂项目之后感触特别深。5.1 主流物理仿真器的真实差异MuJoCo是目前足式RL训练的事实标准速度快接触模型好自带URDF兼容层融合能力很强。PyBullet胜在Python生态完整数值精度稍弱但对于机械臂操作任务够用。Isaac Lab和Isaac Sim绑定NVIDIA显卡支持GPU并行特别适合批量训练和仿真到真机的域随机化实验。我的选型建议足式运动优先MuJoCo速度快到一定程度训练效率翻倍双臂操作coppeliaSim或Isaac Sim都行CoppeliaSim胜在免写Python代码、拖拽配置就能看仿真效果统一平台直接把时间投在Isaac Lab上虽然学习曲线陡但它是目前唯一一个把仿真、训练、部署做成完整闭环的工具5.2 ROS2迁移目前是必经之路提到工具链绕不开ROS2。从ROS1向ROS2的迁移基本完成了绝大多数开源项目已经默认基于ROS2 Humble或Jazzy版本开发。ros2_control框架已经能很好衔接硬件层配套的MoveIt2也已经稳定可用。但有一件事必须在项目早期就顶层设计好DDS通信中间件的选型。ROS2默认用Fast DDS生产环境有人换成了Cyclone DDS或Zenoh。不同中间件在高频率的消息传输上表现差异巨大——四足机器人如果关节指令频率要到1000Hz默认的DDS默认配置大概率撑不住丢包。把这个优化提前到架构设计阶段比后面上线了再到处查丢包靠谱得多。5.3 调试效率工具这个部分经常被忽略。做机器人三年我的经验是调试效率决定项目推进速度。值得投入使用的工具Foxglove Studio可视化日志回放工具比rqt快、好看支持ROS2原生topicPlotJuggler快速画数据曲线调PID和调步态参数的必备工具Docker把ROS2环境、依赖版本全部容器化避免我机器上跑得好好的这种经典问题realsense-viewer视觉传感器的快速标定和验证比写Python脚本快十倍6. 开源算法选型的系统工程建议与学习路线聊完了三条技术主线和配套工具最后落到一个很现实的问题这些仓库这么多到底该往哪个方向投时间6.1 选型的三条铁律第一优先选社区活跃、更新频繁的项目。一个仓库如果最近半年没有commit大概率依赖包已经和当前的主流版本冲突了你拉下来光解决编译问题就得一周。第二优先选文档和示例代码完整的项目。很多论文附带的仓库只有训练代码没有部署代码、没有真机示例这种项目下载下来大概率是收藏夹吃灰。第三优先选能够拆开用的项目。比如只取legged_gym的reward设计思路不整个搬过来只用OpenVLA的视觉编码器部分不硬套它的动作头。模块化利用开源项目比死磕某个仓库的全套代码更高效。我自己做双臂项目时就从π0里拆过流匹配模块用来替代自己写的动作生成器节省了至少两周时间。6.2 给你一条可复现的学习路线如果你是从零开始我按目前行业公认的路径给你一个实际操作建议注意这条路我已经带过三批实习生走过效果比较稳定先花一个月把ROS2基础吃透重点掌握ros2_control和TF树不懂TF树的人后面搞足式或双臂都会很痛苦再用unitree_rl_gym训练一个四足机器人行走策略目标是能够在仿真里走稳然后移植到真机这个阶段你会第一次真正理解Sim-to-Real的痛点然后转机械臂用MoveIt2加GraspNet做一个看见物体-规划抓取-机械臂抓取的闭环demo注意这里必须引入力控否则做完还是在仿真表演完成了前面几步之后回到具身智能用OpenVLA或π0的预训练权重在你自己采集的少量真机数据上微调你会体验到具身智能真正落地是什么感觉6.3 最后补几个容易踩的客观条件坑这些坑不是算法本身造成的但会让你的项目直接卡住显卡不够别硬训VLAOpenVLA微调至少需要单张A10080G或两张4090同时跑LoRA方案普通工作站建议从参数更小的模型开始比如6B甚至3B级别的轻量化VLA版权和许可证要提前看很多高校开源项目是GPL协议商用需谨慎而legged_gym、rsl_rl用的BSD协议则宽松很多真机调试必买保险电机、关节模组、末端执行器都有可能在你跑第一个步态时烧掉所有开源算法都不对硬件损耗负责做机器人研发这几年我越来越觉得这个行业的特点就是一个能落地的产品背后是无数个刚好能跑的开源项目加上你自己填上的最后一公里工程化。别指望有一个仓库能够全包也别因为某些开源代码粗糙就否定它的价值。把上面这些项目的核心思路拆开消化掉把它们好的部分搬进自己的系统里这才是开源算法真正值钱的地方。