转载自公众号:敢敢AUTOHUB
0. 引言
四足机器人领域正在经历一场深刻的技术变革。从波士顿动力的Spot到MIT的Cheetah,这些曾经只存在于实验室的高端技术,如今通过开源社区的力量,正在变得触手可及。GitHub上已经汇聚了数十个成熟的四足机器人项目,它们不仅提供了完整的源代码,更重要的是展示了不同技术路线的实现细节和工程权衡。
本文基于对GitHub上超过20个主流四足机器人项目的深度调研,从运动学控制、全栈工程、优化算法、强化学习、硬件本体五大技术流派出发,系统梳理当前开源四足机器人的技术全景。我们不仅会介绍每个项目的核心特性,更会深入分析其技术内核、适用场景以及存在的问题,帮助开发者和研究者快速建立完整的知识体系。
1. 极简主义流派 - 运动学与状态机控制
1.1 技术特征与适用场景
极简主义流派的核心理念是用最少的计算资源实现稳定的四足运动。这类项目通常运行在微控制器(MCU)级别的硬件上,不依赖复杂的动力学模型,而是通过精心设计的逆运动学(Inverse Kinematics, IK)和步态状态机来实现控制。这种方法的优势在于算法简单、实时性好、成本低廉,非常适合教育场景和快速原型开发。
然而,这种方法也存在明显的局限性。由于缺乏对机器人动力学的建模,系统对外部扰动的抗干扰能力较弱,在复杂地形上的适应性有限。此外,步态参数通常需要人工调试,难以自动适应不同的运动速度和负载条件。尽管如此,对于初学者而言,这类项目仍然是理解四足机器人基本原理的最佳起点。
1.2 Stanford Pupper:教科书级的分层控制架构
项目地址: https://github.com/stanfordroboticsclub/StanfordQuadruped
Stanford Pupper(stanfordroboticsclub/StanfordQuadruped)是斯坦福机器人俱乐部开发的开源四足机器人项目,在GitHub上获得了1676个星标和653个分支。该项目最大的价值在于其清晰的分层控制架构,将复杂的四足控制问题分解为三个独立的层次:步态调度层、轨迹生成层和逆运动学层。
步态调度层负责决定每条腿的相位关系。在经典的Trot步态(对角小跑) 中,对角线上的两条腿同步摆动,而另外两条腿保持支撑。通过简单的相位计算,系统可以生成平滑的步态切换。轨迹生成层则负责计算每条腿的足端轨迹,通常采用贝塞尔曲线或简单的摆线轨迹。最底层的逆运动学层将足端位置转换为关节角度,这是整个控制链路的基础。
项目的源码结构非常清晰,核心控制逻辑集中在几个关键的Python类中。TrotGait类展示了如何通过相位偏移实现对角步态,而IK求解器则提供了针对12自由度四足机器人的解析解。值得注意的是,该项目证明了一个重要的工程事实:在准确的运动学模型基础上,简单的PD控制器就足以支撑稳定的动态行走,无需复杂的力控制或动力学补偿。
1.3 Petoi OpenCat:嵌入式系统的工程典范
项目地址: https://github.com/PetoiCamp/OpenCat-Quadruped-Robot
Petoi OpenCat(PetoiCamp/OpenCat-Quadruped-Robot)是GitHub上最受欢迎的四足机器人项目之一,拥有4713个星标。与学术导向的Stanford Pupper不同,OpenCat更关注产品化和用户体验,其设计理念是打造一个可编程的机器人宠物平台,适用于STEM教育和创客应用。
OpenCat的核心是一个技能状态机系统。项目定义了大量的Skill结构体,每个技能本质上是一组预设的关节角度序列或特定的振荡器参数。例如,"休息"技能会将所有关节移动到预定义的休息姿态,而"后空翻"技能则是一个精心编排的动作序列。这种设计完美契合资源受限的Arduino环境,展示了如何在8位或32位微控制器上实现复杂的可编程行为。
项目的另一个亮点是其模块化的硬件设计。OpenCat支持多种机械本体,从小型的Nybble到中型的Bittle,都可以使用相同的控制框架。这种灵活性来自于其参数化的运动学模型,用户只需修改配置文件中的连杆长度参数,就可以适配不同的机械结构。对于想要学习嵌入式机器人开发的工程师来说,OpenCat提供了从硬件设计到固件开发的完整参考。
2. ROS生态流派 - 全栈工程化实践
2.1 ROS架构的优势与复杂性
机器人操作系统(Robot Operating System, ROS) 已经成为机器人研究和开发的事实标准。ROS提供了一套完整的工具链,包括硬件抽象、设备驱动、消息传递、包管理、可视化工具等。对于四足机器人这样的复杂系统,ROS的模块化架构可以将感知、规划、控制等子系统解耦,大大降低了系统集成的复杂度。
然而,ROS也带来了额外的学习成本和系统开销。开发者需要理解节点、话题、服务、参数服务器等核心概念,还需要掌握坐标变换(TF)、URDF建模、launch文件配置等技能。此外,ROS的消息传递机制会引入一定的延迟,对于需要高频率控制的四足机器人来说,需要仔细设计控制架构以保证实时性。
2.2 SpotMicro:开源界的"波士顿动力"
项目地址: https://github.com/mike4192/spotMicro
SpotMicro(mike4192/spotMicro)是一个雄心勃勃的项目,目标是复刻波士顿动力Spot Mini的形态和运动能力。该项目在GitHub上获得了2043个星标和484个分支,是DIY四足机器人社区的明星项目。SpotMicro的最大价值在于其完整的ROS集成,展示了如何构建一个具有自主导航能力的四足机器人系统。
项目的核心是spot_micro_motion_cmd节点,这是一个典型的ROS控制节点。它订阅高层的速度指令(/cmd_vel话题),将线速度和角速度转换为步态参数和足端轨迹,然后通过逆运动学计算关节角度,最后发布到电机控制器。这个过程清晰地展示了从任务空间到关节空间的完整映射链路。
SpotMicro的另一个重要特性是其完善的坐标变换树(TF Tree)。项目定义了世界坐标系、机身坐标系、每条腿的基座坐标系、以及足端坐标系之间的变换关系。通过ROS的TF库,系统可以自动处理不同坐标系之间的转换,这对于实现身体姿态控制和地形适应至关重要。对于想要深入理解机器人运动学的开发者来说,研究SpotMicro的TF配置是一个绝佳的学习机会。
2.3 Mini Pupper:拥抱ROS2的新一代平台
项目地址: https://github.com/mangdangroboticsclub/mini_pupper
Mini Pupper(mangdangroboticsclub/mini_pupper)是Stanford Pupper的商业化升级版本,也是少数几个完全基于ROS2构建的开源四足机器人项目。虽然该项目的GitHub星标数(36个)相对较少,但其技术架构代表了四足机器人开发的未来方向。ROS2相比ROS1在实时性、安全性、跨平台支持等方面都有显著提升,更适合商业化产品开发。
Mini Pupper的一个突出特性是其完整的自主导航能力。项目集成了ROS2的Navigation2框架,支持SLAM建图、路径规划、动态避障等功能。通过分析其launch文件,可以看到系统同时运行了多个节点:视觉SLAM节点负责构建环境地图,全局规划器计算从当前位置到目标点的路径,局部规划器根据实时传感器数据调整轨迹,而运动控制器则将规划结果转换为足端轨迹。
这种多节点协同工作的架构展示了ROS2的强大之处。每个节点都是独立的进程,通过DDS(Data Distribution Service)中间件进行通信。这种设计不仅提高了系统的模块化程度,还支持分布式部署——例如,可以将计算密集的SLAM算法运行在远程服务器上,而将实时控制保留在机器人本地。对于想要构建具有高级自主能力的四足机器人的团队来说,Mini Pupper提供了一个完整的参考架构。
3. 优化控制流派 - MPC与全身控制
3.1 从运动学到动力学的跨越
前面介绍的项目主要基于运动学控制,即直接指定关节角度或足端位置。这种方法简单直观,但无法精确控制机器人与环境的交互力,在动态运动和复杂地形上表现有限。优化控制流派则从动力学角度出发,将四足机器人控制问题建模为一个优化问题:在满足动力学约束、摩擦锥约束、关节限位等条件下,找到最优的足端力和关节力矩,使机器人能够跟踪期望的运动轨迹。
这种方法的理论基础是模型预测控制(Model Predictive Control, MPC)和全身控制(Whole Body Control, WBC)。MPC在每个控制周期内求解一个有限时域的优化问题,预测未来一段时间内的最优控制序列,然后执行第一步的控制指令。WBC则将控制任务分解为多个优先级层次,例如保持身体平衡是最高优先级,跟踪足端轨迹是次优先级,通过层次化的二次规划求解器来协调这些任务。
3.2 legged_control:基于OCS2的MPC控制框架
项目地址: https://github.com/qiayuanl/legged_control
legged_control是国内开发者基于OCS2(Optimal Control for Switched Systems)和ros-control实现的开源四足机器人MPC控制框架,在Gazebo仿真环境中运行。这是一个非常成熟的ROS1项目,展示了如何将学术界的优化控制算法应用到实际的机器人系统中。
OCS2框架是苏黎世联邦理工学院开发的优化控制库,专门针对切换系统(Switched Systems) 设计。四足机器人是典型的切换系统——在不同的步态相位中,接触状态会发生切换(某些腿着地,某些腿摆动)。OCS2提供了高效的求解器,可以处理这种混合动力学系统的优化问题。
项目的控制架构包含:
状态估计器:融合IMU、关节编码器、足端接触传感器的数据,估计机器人的身体位置、速度、姿态。使用扩展卡尔曼滤波(EKF)或互补滤波器实现。
MPC规划器:基于单刚体动力学模型(SRBD),预测未来0.5-1秒内的机器人运动,优化足端力分配。求解器使用序列二次规划(SQP)或内点法。
WBC执行器:将MPC输出的期望足端力转换为关节力矩,同时考虑关节限位、力矩限制等约束。
步态调度器:管理不同步态模式(站立、行走、小跑、跳跃)的切换,为MPC提供接触序列信息。
⚠️ 环境要求: 该项目基于ROS1 Noetic,仅支持Ubuntu 20.04系统。在Ubuntu 22.04上运行会遇到依赖问题,不建议轻易尝试。这是ROS1项目的通病,也是为什么社区正在向ROS2迁移的原因之一。
3.2 CHAMP:MIT Cheetah算法的工程化实现
项目地址:https://github.com/chvmp/champ
CHAMP(chvmp/champ)是GitHub上最成熟的开源四足机器人控制框架之一,拥有2196个星标和428个分支。该项目基于MIT Cheetah的控制算法,实现了完整的MPC控制器和ROS集成。CHAMP的核心价值在于将学术论文中的算法转化为可实际部署的工程代码,并提供了丰富的配置工具和仿真环境。
CHAMP的MPC实现采用了单刚体模型(Single Rigid Body Dynamics, SRBD)。这是一个关键的简化假设:将整个机器人视为一个刚体,忽略腿部的质量和惯性。虽然这个假设在理论上并不完全准确,但在实践中已经足够好,可以显著降低优化问题的复杂度。基于SRBD模型,系统可以预测机器人在不同足端力作用下的运动状态,然后通过求解一个凸二次规划问题来找到最优的足端力分配。
项目中最值得深入研究的是convex_mpc模块。该模块将MPC问题建模为一个标准的QP问题,包含了多个约束条件。其中最重要的是摩擦锥约束:足端力必须在摩擦锥范围内,否则会导致打滑。通过将摩擦锥线性化为多个不等式约束,优化器可以自动确保生成的足端力是可实现的。这解释了为什么MPC控制的机器人在湿滑地面上的表现明显优于简单的运动学控制——优化器会主动避免产生过大的切向力。
CHAMP还提供了一个图形化的配置工具champ_setup_assistant,用户可以通过简单的界面输入机器人的URDF模型和基本参数,工具会自动生成完整的ROS包。这大大降低了将CHAMP应用到新机器人平台的门槛。项目还包含了多个预配置的机器人模型,包括ANYmal、MIT Mini Cheetah、Spot等,开发者可以直接在仿真环境中测试这些模型。
3.3 全身控制(WBC)的层次化任务管理
全身控制是另一个重要的优化控制方法,特别适合处理多任务协调问题。在四足机器人中,我们通常需要同时完成多个控制目标:保持身体姿态、跟踪足端轨迹、最小化关节力矩、避免关节限位等。这些目标之间可能存在冲突,例如在某些极端姿态下,可能无法同时满足所有约束。WBC通过引入任务优先级来解决这个问题。
WBC的基本思想是将控制任务组织成一个优先级队列。最高优先级的任务(如保持平衡)必须严格满足,而低优先级的任务(如跟踪期望轨迹)则在不违反高优先级约束的前提下尽可能满足。数学上,这可以通过层次化二次规划(Hierarchical Quadratic Programming) 来实现。系统首先求解最高优先级任务的最优解,然后在该解的零空间中求解次优先级任务,依此类推。
项目地址: https://github.com/iit-DLSLab/Quadruped-PyMPC
虽然原文提到了TopHillRobotics的WBC实现,但该项目在GitHub上的活跃度较低。更好的参考是iit-DLSLab的Quadruped-PyMPC项目(446个星标),该项目提供了基于Python的MPC和WBC实现,代码结构清晰,适合学习。项目使用acados作为优化求解器,这是一个专门为实时优化控制设计的高性能库,可以在毫秒级时间内求解复杂的非线性MPC问题。
4. 强化学习流派 - 从仿真到现实的跨越
4.1 数据驱动控制的范式转变
强化学习(Reinforcement Learning, RL) 代表了四足机器人控制的另一个技术方向。与传统的基于模型的控制方法不同,RL不需要显式地建立机器人的动力学模型,而是通过大量的试错学习来发现最优的控制策略。这种方法的优势在于可以自动发现复杂的运动模式,甚至可能超越人类工程师手工设计的控制器。
然而,RL也面临着巨大的挑战。最大的问题是样本效率:训练一个有效的RL策略可能需要数百万次的交互,这在真实机器人上是不可行的。因此,几乎所有的四足机器人RL项目都采用仿真到现实(Sim-to-Real) 的策略:在物理仿真器中训练策略,然后迁移到真实机器人上。这个过程中的关键技术是域随机化(Domain Randomization)和域适应(Domain Adaptation)。
4.2 Spot Mini Mini:域随机化的实践指南
项目地址: https://github.com/OpenQuadruped/spot_mini_mini
Spot Mini Mini(OpenQuadruped/spot_mini_mini)是一个专注于RL训练的四足机器人项目,拥有919个星标和191个分支。该项目的核心贡献是展示了如何通过域随机化来提高RL策略的鲁棒性。域随机化的基本思想是在训练过程中引入大量的随机扰动,迫使神经网络学习到更本质、更鲁棒的特征。
项目在PyBullet仿真环境中实现了全面的随机化策略。物理参数方面,系统会随机改变机器人的质量、质心位置、连杆长度、摩擦系数等。动力学参数方面,会随机添加电机延迟、齿轮间隙、关节阻尼等。传感器方面,会在IMU读数、关节编码器读数中添加噪声和偏置。环境方面,会随机生成不同的地形、坡度、障碍物等。
这种 "刻意制造混乱"的训练策略 看似反直觉,但效果显著。通过在各种极端条件下训练,神经网络被迫学习到 对参数变化不敏感的控制策略。当这样的策略部署到真实机器人上时,即使存在建模误差和未知扰动,也能保持良好的性能。项目的实验结果表明,经过域随机化训练的策略可以在从未见过的地形上稳定行走,甚至可以应对突然的推搡和负载变化。
4.3 REX-Gym:奖励函数的艺术
项目地址: https://github.com/nicrusso7/rex-gym
REX-Gym(nicrusso7/rex-gym)是一个基于OpenAI Gym的四足机器人RL训练环境,拥有1089个星标。该项目的价值在于提供了多个精心设计的训练任务和奖励函数,展示了如何通过调整奖励函数来塑造机器人的行为。在RL中,奖励函数的设计往往比算法选择更重要,一个好的奖励函数可以大大加速训练过程并提高最终性能。
REX-Gym定义了多个训练任务,每个任务都有不同的奖励函数。例如,在基本行走任务中,奖励函数包含以下几项:前进速度奖励(鼓励机器人向前移动)、能量惩罚(鼓励节能的步态)、足端冲击力惩罚(鼓励轻柔的着地)、身体姿态偏差惩罚(保持身体水平)、关节速度惩罚(避免剧烈的关节运动)等。通过调整这些项的权重,可以得到不同风格的运动策略。
项目还展示了一个重要的工程技巧:课程学习(Curriculum Learning)。在训练初期,系统会降低任务难度,例如使用平坦地形、降低目标速度等。随着训练的进行,逐步增加难度,引入更复杂的地形和更高的速度要求。这种渐进式的训练策略可以显著提高训练的稳定性和最终性能,避免策略陷入局部最优。
4.4 Isaac Gym/Isaac Lab:GPU加速的大规模并行仿真
项目地址: https://github.com/isaac-sim/IsaacLab
NVIDIA的Isaac Gym和Isaac Lab正在彻底改变四足机器人的强化学习训练范式。传统的物理仿真器(如PyBullet、MuJoCo)在CPU上串行执行,即使使用多进程并行,训练数千个机器人实例仍然需要大量时间。Isaac Gym通过GPU加速的并行物理仿真,可以在单张GPU上同时运行数千甚至上万个机器人实例,将训练速度提升数百倍。
Isaac Lab(原名Isaac Gym Envs)是基于Isaac Sim构建的模块化机器人学习框架,提供了丰富的四足机器人训练环境。项目包含了Anymal、Unitree Go1/A1等多个主流四足机器人的完整模型和训练脚本。其核心优势在于:极致的并行化(在RTX 4090上可同时运行16384个机器人实例,单次迭代仅需几毫秒)、高保真物理(基于PhysX 5引擎,支持精确的接触动力学和摩擦模型)、端到端GPU流水线(从物理仿真、神经网络推理到梯度计算全部在GPU上完成,避免CPU-GPU数据传输瓶颈)、灵活的任务定义(支持地形课程学习、多模态感知、分层控制等复杂训练场景)。
项目地址: https://github.com/leggedrobotics/legged_gym
苏黎世联邦理工学院(ETH Zurich)的Legged Gym项目(1800+星标) 是Isaac Gym在学术界最成功的应用之一。该项目实现了论文"Learning to Walk in Minutes Using Massively Parallel Deep Reinforcement Learning"中的算法,展示了如何在5-20分钟内训练出能够在复杂地形上行走的四足机器人策略。
Legged Gym的训练流程包含几个关键技术:特权学习(Privileged Learning),在仿真中使用"作弊"信息(如精确的地形高度图、摩擦系数)训练教师策略,然后通过蒸馏将知识转移到只使用本体感觉的学生策略;自适应课程学习,根据策略表现动态调整地形难度,避免过早暴露于过难任务;历史信息编码,使用循环神经网络或Transformer编码历史观测,隐式估计外部扰动和地形特征;Sim-to-Real优化,精心设计的观测噪声、动作平滑、延迟模拟等技术,确保策略能够零样本迁移到真实机器人。该项目已成功部署到ANYmal、Unitree Go1等多个真实机器人平台,展示了在碎石、楼梯、雪地等复杂地形上的鲁棒行走能力。
4.5 rl-mpc-locomotion:MPC与强化学习的深度融合
项目地址: https://github.com/silvery107/rl-mpc-locomotion
rl-mpc-locomotion项目(946个星标) 代表了四足机器人控制的一个重要趋势:将传统优化控制与深度强化学习相结合。该项目提供了一个完整的教学框架,特别适合初学者系统性地理解四足机器人的全流程开发。
项目最大的亮点是其配套的教学PPT(UG-Thesis-EN),这份材料以教科书般的清晰度梳理了四足机器人的核心知识体系:
运动学与动力学基础:从最基本的连杆坐标系定义开始,详细推导了正运动学、逆运动学、雅可比矩阵的计算方法。特别是对单刚体动力学模型(SRBD) 的推导,清晰展示了如何将复杂的多体系统简化为可计算的优化问题。
模型预测控制(MPC)实现:项目实现了基于凸优化的MPC控制器,将机器人的运动控制问题转化为二次规划(QP)问题。通过预测未来一段时间内的机器人状态,优化器可以计算出最优的足端力分配,同时满足摩擦锥约束、关节限位等物理约束。
全身控制(WBC)层次化任务:在MPC生成期望的足端力后,WBC负责将其转换为关节力矩指令。项目展示了如何通过优先级加权来协调多个控制目标,例如保持身体姿态的优先级高于跟踪足端轨迹。
强化学习策略优化:项目的创新之处在于使用PPO算法来学习MPC的权重参数。传统的MPC需要手工调整大量的权重参数(如姿态误差权重、能量消耗权重等),而RL可以通过与环境交互自动发现最优的参数组合。这种分层控制架构(RL作为高层策略,MPC作为低层执行器)兼具了学习方法的适应性和优化方法的可解释性。
Isaac Gym仿真集成:项目基于Isaac Gym实现了高效的并行训练,可以同时运行数千个机器人实例。仿真环境包含了多种地形类型(平地、斜坡、楼梯、随机障碍物),支持课程学习和域随机化。
4.6 ABS:具备避障与目标追踪的高速四足
项目地址: https://github.com/LeCAR-Lab/ABS
ABS项目(Agile But Safe) 是卡内基梅隆大学(CMU)和苏黎世联邦理工学院(ETH)联合开发的研究项目,展示了高速运动与安全避障的结合。该项目的机器人不仅能够以3-4 m/s的速度奔跑,还能实时检测障碍物并规划安全路径,同时追踪移动目标。
项目的核心创新在于分层感知-规划-控制架构:
视觉感知层:使用深度相机(RealSense D435i)获取RGB-D图像,通过轻量级的卷积神经网络实时提取障碍物信息。网络输出的不是精确的3D点云,而是局部占据栅格地图,大大降低了后续规划的计算复杂度。
路径规划层:基于Model Predictive Path Integral (MPPI) 算法,在考虑机器人动力学约束的前提下,采样数千条候选轨迹,评估每条轨迹的安全性和目标接近度,选择最优轨迹执行。MPPI的优势在于可以处理非凸的代价函数(如避障约束),且计算效率高。
运动控制层:使用基于强化学习训练的低层控制器,将规划层输出的期望速度和转向角转换为关节力矩。控制器在Isaac Gym中训练,使用了legged_gym和rsl_rl框架,这两个框架已经成为四足机器人强化学习的事实标准。
项目基于legged_gym和rsl_rl实现,这意味着它继承了这两个框架的所有优势:简单的环境定义接口、高效的并行训练、丰富的预训练模型。对于想要在四足机器人上实现高级自主能力(如导航、避障、目标追踪)的研究者,ABS提供了一个完整的参考实现。
5. 轮足混合机器人 - 速度与适应性的平衡
5.1 轮足机器人的设计哲学
轮足混合机器人代表了四足机器人的一个重要演进方向。通过在足端安装驱动轮,机器人可以在轮式滚动和腿式行走之间灵活切换,兼具轮式机器人的高速高效和腿式机器人的地形适应能力。这种设计在物流配送、巡检、搜救等场景中展现出巨大潜力。
5.2 rl_sar:国产轮足机器人的强化学习实践
项目地址: https://github.com/fan-ziqi/rl_sar
rl_sar项目(1230个星标) 是国内开发者贡献的优秀开源项目,实现了基于强化学习的轮足机器人控制。项目支持宇树科技的Go2、B2、Aliengo等多个轮足平台,提供了从仿真训练到实物部署的完整工具链。
轮足机器人的控制挑战在于需要协调腿部姿态控制和轮速控制两个子系统。rl_sar采用了分层控制架构:
高层策略网络:输入IMU数据、关节状态、目标速度,输出期望的腿部姿态和轮速。网络结构采用多层感知机(MLP),包含历史信息编码模块,可以隐式估计地形特征和外部扰动。
低层PD控制器:跟踪高层指令,输出关节力矩。PD参数经过精心调优,在保证跟踪精度的同时避免高频振荡。
轮腿协同优化:通过奖励函数设计,鼓励机器人在平坦地形使用轮式模式(高效),在复杂地形切换到腿式模式(鲁棒)。奖励函数包含速度跟踪项、能量消耗项、姿态稳定项等多个分量,权重通过实验调优。
项目的训练环境基于Isaac Gym,支持大规模并行训练。通过域随机化(随机化机器人质量、摩擦系数、电机参数等),训练出的策略可以直接部署到真实机器人,无需额外的微调。这种零样本迁移(Zero-shot Transfer) 能力是现代强化学习方法的重要优势。
5.3 Wheel-Legged-Gym:南科大的轮足训练框架
项目地址: https://github.com/clearlab-sustech/Wheel-Legged-Gym
Wheel-Legged-Gym是南方科技大学开源的轮足机器人训练框架,基于legged_gym和rsl_rl构建。项目的最大优势是简单易上手,提供了清晰的代码结构和详细的文档,非常适合初学者入门轮足机器人的强化学习训练。
项目包含了完整的训练流程:环境配置、奖励函数设计、网络结构定义、训练脚本、评估工具。通过修改配置文件,用户可以快速调整机器人参数、地形类型、训练超参数等。项目还提供了预训练模型,可以直接在仿真中测试效果。
5.4 legged-robots-manipulation:B2W轮足操作项目
项目地址: https://github.com/aCodeDog/legged-robots-manipulation
这是一个比较少见的基于宇树B2W(Unitree B2W) 开源的轮足项目,B2W是宇树科技推出的具备机械臂的轮足机器人平台。项目不仅实现了移动控制,还探索了移动操作(Mobile Manipulation) 的可能性——机器人可以在移动过程中使用机械臂抓取物体。
项目同样基于legged_gym和rsl_rl实现,展示了如何将腿部控制和机械臂控制集成到统一的强化学习框架中。这种全身协调控制是未来服务机器人的重要研究方向。
5.5 其他轮足开源项目
Micro-Wheeled_leg-Robot (github.com/MuShibo/Micro-Wheeled_leg-Robot):微型轮足机器人,适合桌面级开发和教学•
Ascend Quadruped (github.com/DRCL-USC/Ascend_Quadruped):南加州大学开发的低成本轮足平台,完整开源机械和电路设计•
Wheeled Biped (github.com/Derek-TH-Wang/wheeled_bipedal_robot):双足轮式机器人,展示了轮腿结合的另一种形态
6. 研究级硬件流派 - 开源本体设计
6.1 从算法到硬件的完整闭环
前面介绍的项目主要关注控制算法,通常假设硬件平台已经存在。然而,对于想要深入理解四足机器人的研究者来说,硬件设计同样重要。机械结构、驱动系统、传感器配置等硬件因素会直接影响控制算法的性能。研究级硬件流派的项目不仅开源算法,更彻底开源了机械设计、电路设计、驱动固件等全部内容,旨在打造可完全复现的科研平台。
这类项目的代表是来自欧洲顶尖研究机构的开源机器人平台。它们通常采用高性能的准直驱或直驱电机,配备高精度的力矩传感器和编码器,可以实现精确的力控制和阻抗控制。虽然成本较高(通常在数万元级别),但提供了接近商业机器人的性能,是开展前沿研究的理想平台。
6.2 Solo:马普所的准直驱驱动单元
项目地址: https://github.com/open-dynamic-robot-initiative/open_robot_actuator_hardware
Solo项目(open-dynamic-robot-initiative/open_robot_actuator_hardware)来自德国马克斯·普朗克智能系统研究所,是开源机器人硬件领域的标杆项目,拥有1371个星标。该项目的核心是一套完整的准直驱驱动单元设计,包括定制的无刷电机、行星减速器、双编码器系统、以及配套的电机驱动板。
准直驱(Quasi-Direct Drive) 是介于传统高减速比驱动和纯直驱之间的一种方案。传统的机器人关节通常使用高减速比(如100:1) 的减速器,可以提供大扭矩但牺牲了力控性能和动态响应。纯直驱则完全去除减速器,可以实现优秀的力控但需要非常大的电机。准直驱采用低减速比(如6:1或9:1),在扭矩、速度、力控性能之间取得了良好的平衡。
Solo项目开源了完整的硬件设计文件,包括电机的3D模型、减速器的机械图纸、驱动板的PCB设计和固件代码。驱动板采用FOC(Field-Oriented Control)算法,可以实现精确的电流环控制。系统配备了两个编码器:一个在电机侧测量电机转角,一个在输出侧测量关节角度。通过比较两个编码器的读数,可以估算出减速器的弹性变形,进而推算出输出扭矩。这种**"串联弹性驱动器"的设计**使得系统可以在没有专门力矩传感器的情况下实现力控制。
6.3 OpenQuadruped:3D打印的民主化方案
项目地址:https://github.com/adham-elarabawy/open-quadruped
OpenQuadruped(adham-elarabawy/open-quadruped)代表了另一个方向:通过3D打印技术降低硬件门槛。该项目拥有462个星标,其设计目标是让个人开发者可以用桌面级3D打印机和常见的舵机制作一个功能完整的四足机器人。
项目的机械设计经过精心优化,所有零件都可以在标准的FDM 3D打印机上打印,无需支撑或复杂的后处理。连杆采用了加强筋设计以提高刚度,关节采用了滚珠轴承以减少摩擦。虽然使用的是普通的数字舵机而非高性能的无刷电机,但通过合理的机械设计和运动学优化,系统仍然可以实现稳定的行走和小跑步态。
OpenQuadruped的另一个亮点是其贝塞尔曲线步态生成器。与传统的摆线或多项式轨迹不同,贝塞尔曲线提供了更直观的轨迹调整方式。通过调整12个控制点(每条腿3个自由度,每个自由度4个控制点),可以生成各种风格的步态。项目还提供了一个图形化的调试工具,用户可以实时调整贝塞尔曲线参数并观察机器人的运动效果。
7. 技术趋势与未来方向
7.1 发现的关键问题与挑战
通过对GitHub上主流四足机器人项目的深度分析,我们发现了几个普遍存在的问题。首先是文档质量参差不齐。虽然大多数项目提供了基本的安装说明,但对于核心算法的详细解释往往不足。许多项目缺少完整的API文档和代码注释,增加了学习成本。其次是硬件依赖性强。大多数项目都是针对特定的硬件平台开发的,移植到其他平台需要大量的适配工作。
另一个重要问题是仿真与现实的差距。虽然所有的RL项目都强调Sim-to-Real,但实际的迁移效果往往不如论文中描述的那么理想。物理仿真器(如PyBullet、Gazebo)在接触动力学、摩擦模型等方面与真实世界存在显著差异,导致在仿真中表现良好的策略在真实机器人上可能失效。这需要更多的工程努力来缩小仿真与现实的差距。
7.2 技术融合的新趋势
当前四足机器人领域正在出现一些有趣的技术融合趋势。一个方向是将传统的优化控制与深度学习结合。例如,使用神经网络来学习复杂的地形特征,然后将这些信息输入到MPC控制器中。另一个方向是端到端的学习控制,直接从传感器输入到电机指令,完全绕过传统的感知-规划-控制流程。
项目地址: https://github.com/google-deepmind/barkour_robot
Google DeepMind的Barkour项目(336个星标) 展示了这种端到端学习的潜力。该项目训练了一个可以完成复杂敏捷动作的四足机器人,包括跳跃、翻滚、精确着陆等。关键技术是使用大规模的分布式训练和精心设计的奖励函数。虽然该项目的完整代码尚未开源,但其论文和演示视频已经引起了广泛关注。
7.3 新型轮足结构创新:从五连杆到可重构设计
项目地址: https://github.com/ZhichengSong6/FLORES
FLORES项目(25个星标) 代表了轮足机器人机械结构设计的最新探索。该项目提出了一种可重构的轮腿机器人,通过创新的机械设计实现了增强的转向能力和地形适应性。与传统的固定结构轮足机器人不同,FLORES采用了模块化的腿部设计,可以根据任务需求动态调整腿部构型。
项目的核心创新在于自适应转向机制。传统轮足机器人在转向时需要协调腿部姿态和轮速,容易产生滑移和能量损耗。FLORES通过主动转向关节和智能轮向控制,实现了类似汽车的阿克曼转向,大幅提升了转向精度和效率。在高速运动时,机器人可以像轮式车辆一样流畅转弯;在复杂地形中,又能切换到腿式模式进行精确操控。
项目地址: https://github.com/Skythinker616/foc-wheel-legged-robot
FOC轮腿机器人项目(1557个星标) 是国内轮足机器人开源社区的明星项目。该项目提供了完整的开源资料,包括机械设计、电子设计、算法仿真和软件开发,是学习轮足机器人的绝佳起点。项目采用了新型的五连杆结构,相比传统的四连杆设计,五连杆提供了更大的工作空间和更灵活的运动能力。
项目的一大亮点是FOC(磁场定向控制)电机驱动。传统的有刷电机或简单的无刷电机控制难以提供轮足机器人所需的精确力矩控制。FOC算法通过矢量控制实现了对电机转矩和转速的解耦控制,使得机器人可以实现力控模式,这对于轮腿协调和地形适应至关重要。项目完整开源了基于STM32的FOC驱动板设计和控制算法,为开发者提供了从底层硬件到上层控制的完整学习路径。
7.4 双轮足
项目地址: https://github.com/Albusgive/wheel_legged_genesis
Wheel Legged Genesis项目(340个星标) 展示了基于Genesis物理引擎的轮足机器人强化学习训练。Genesis是一个新兴的高性能物理仿真器,相比Isaac Gym提供了更灵活的API和更好的可视化效果。该项目实现了轮足机器人的端到端强化学习训练,从零开始学习轮腿协调控制策略。
项目的训练流程包含了多阶段课程学习:第一阶段学习基础的平衡和直线运动,第二阶段引入转向和速度变化,第三阶段加入复杂地形和障碍物。通过这种渐进式训练,机器人可以在2-3小时内学会在各种地形上稳定运动。项目还实现了Sim-to-Real迁移,训练的策略可以直接部署到真实的轮足机器人上,展示了在平地、斜坡、台阶等场景下的鲁棒性能。
项目地址: https://github.com/jaykorea/Isaac-RL-Two-wheel-Legged-Bot
Isaac-RL-Two-wheel-Legged-Bot项目(287个星标) 探索了双轮腿式机器人这一独特形态。与四足轮腿机器人不同,双轮腿机器人只有两条腿,每条腿末端安装一个驱动轮,类似于人类骑自行车的姿态。这种设计在狭窄空间导航和高速运动方面具有独特优势。
双轮腿机器人的控制难度远高于四足,因为它需要同时解决动态平衡和运动控制两个问题。项目基于Isaac Lab框架,使用深度强化学习训练平衡控制策略。训练过程中引入了对抗性扰动(随机推力、地面倾斜、质量变化),使得机器人学会了在各种干扰下保持平衡。项目展示了机器人在原地平衡、前进后退、转向、越障等复杂任务中的表现,为双足和轮式机器人的融合提供了新思路。
轮足机器人资源汇总:
LocoLeggedWheel (github.com/zhaozijie2022/LocoLeggedWheel, 115星标):基于NVIDIA Isaac Lab的轮腿机器人运动控制,强调Sim-to-Real迁移•
WheelLeggedRobotSimulation (github.com/Rengar-Yang/WheelLeggedRobotSimulation, 73星标):轮腿机器人仿真文件集合,支持多种仿真器•
Venus-1 Four-link (github.com/track-tech/Venus-1__Four-link-wheel-legged-robot, 60星标):启明-1四连杆轮腿机器人,完整的机械和控制开源•
awesome-wheeled-legged (github.com/XinLang2019/awesome-wheeled-legged, 29星标):轮足机器人资源大全,汇总了开源代码、学术论文和商业产品
8. 结论
四足机器人技术正在经历一个激动人心的发展阶段。开源社区的贡献使得这项曾经只属于顶尖实验室的技术变得触手可及。从几百元的Arduino方案到数万元的研究级平台,从简单的运动学控制到复杂的强化学习,开发者现在有了前所未有的选择空间。
然而,我们也必须认识到,构建一个真正实用的四足机器人仍然是一个巨大的挑战。它需要机械设计、电子工程、控制理论、计算机视觉、人工智能等多个领域的知识。没有任何一个开源项目可以提供完美的解决方案,每个项目都有其优势和局限性。
对于开发者而言,最重要的是理解不同技术路线的本质和权衡。运动学控制简单但性能有限,优化控制强大但计算复杂,强化学习灵活但训练困难。选择哪种方法取决于具体的应用场景、硬件平台、开发资源等因素。通过深入研究这些开源项目的源码,理解其设计思想和实现细节,我们可以站在巨人的肩膀上,推动四足机器人技术向前发展。
附录:项目资源汇总
极简主义流派
Stanford Pupper: github.com/stanfordroboticsclub/StanfordQuadruped (1676 stars)•
OpenCat: github.com/PetoiCamp/OpenCat-Quadruped-Robot (4713 stars)•
Stanford Doggo: github.com/Nate711/StanfordDoggoProject (2508 stars)
ROS生态流派
SpotMicro: github.com/mike4192/spotMicro (2043 stars)•
Mini Pupper: github.com/mangdangroboticsclub/mini_pupper (36 stars)•
QuadrupedRobot: github.com/mangdangroboticsclub/QuadrupedRobot (1088 stars)
优化控制流派
CHAMP: github.com/chvmp/champ (2196 stars)•
Quadruped-PyMPC: github.com/iit-DLSLab/Quadruped-PyMPC (446 stars)•
TOWR: github.com/ethz-adrl/towr (1049 stars)•
DIAL-MPC: github.com/LeCAR-Lab/dial-mpc (952 stars)
强化学习流派
Spot Mini Mini: github.com/OpenQuadruped/spot_mini_mini (919 stars)•
REX-Gym: github.com/nicrusso7/rex-gym (1089 stars)•
rl_sar: github.com/fan-ziqi/rl_sar (1230 stars)•
rl-mpc-locomotion: github.com/silvery107/rl-mpc-locomotion (946 stars)
研究级硬件流派
Solo (Open Robot Actuator): github.com/open-dynamic-robot-initiative/open_robot_actuator_hardware (1371 stars)•
OpenQuadruped: github.com/adham-elarabawy/open-quadruped (462 stars)•
moteus: github.com/mjbots/moteus (1137 stars)
其他重要项目
Barkour Robot: github.com/google-deepmind/barkour_robot (336 stars)•
Sesame Robot: github.com/dorianborian/sesame-robot (1309 stars)•
py-apple-quadruped: github.com/ToanTech/py-apple-quadruped-robot (1224 stars)
62