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

在这里插入图片描述

…详情请参照古月居

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐