在开始详细介绍轮足机器人运动库的编写之前,我们需要先搞清楚轮足机器人是如何“站稳”的。这其中的奥秘就来自于倒立摆平衡控制。
2.1 什么是倒立摆?

倒立摆是一种非常经典的控制模型,它一般由与地面接触的一个轮子(或者是带轮子的车体)与一根与之连接的硬质杆件,能以此点为轴心使摆杆能在垂直的平面上自由地摆动。
在我们的常识和科学实证中,这样的系统,没有外力控制是无法平衡的。但往往我们需要利用这样的系统去实现一些工程,特别是需要轮式底盘的移动机器人领域。由此,我们需要引入倒立摆的平衡控制问题。直观地来说,倒立摆的控制目标就是让它“立正站稳”;严谨地来说,倒立摆的控制问题就是使摆杆尽快地达到一个平衡的位置,并且使之没有大的振荡和过大的角度和速度。
我们的轮足机器人XGO-Rider就可以简化为一个倒立摆模型来研究。控制倒立摆平衡,往往需要对其进行受力分析和运动学分析,从而设计合适的控制器,应用到代码中去。
代码主要应用了一阶倒立摆的研究结论,小伙伴们感兴趣可以自行搜索深入的理论分析~
相关参考:
[1] 灯哥开源.【手把手教做轮足机器人】6_运动学逆解【原理+代码】EB/OL[2025-11-21].
[2] 陈阳,王洪玺,张兰勇. 轮腿式平衡机器人控制[J]. 信息与控制,2023,52(5):648-659.
[3] 余坼操,马心知,朱学军,等.双腿轮式机器人运动控制研究[J].工程科学与技术,2024,56(5):156–167 DOI: 10.12454/j.jsuese.202300854.
2.2 PID控制原理简介
PID控制器是一种常用的反馈控制器,由比例(P)、积分(I)和微分(D)三部分组成。它通过计算当前误差值,并根据误差值调整控制输入,从而实现对系统的精确控制。
- 比例控制(P):根据当前误差值调整控制输入,误差值越大,调整力度越大。
- 积分控制(I):考虑过去的误差值,消除系统的稳态误差。
- 微分控制(D):预测未来的误差变化趋势,提前调整控制输入,减少系统的振荡。
在MATLAB中实现了一个简单的PID控制器,我们可以直观地看到它的效果:

可以这样理解,P(现在)、I(过去)、D(未来)三者分别着眼于误差的不同时间维度,它们相互配合、取长补短,共同构成了一个能够“总结过去、把握现在、预测未来”的智能控制器,从而在各种复杂和动态的系统中实现快速、精准且稳定的控制效果。
2.3 PID控制系统组成
在XGO-Rider的开源代码中,我们主要采用了角度环和速度环来实现直立和稳定,滚转环实现转向移动。角度环主要起到了直立环的作用,也就是让机器人保持直立状态,这是平衡的关键;利用速度环控制机器人的移动速度和方向,根据速度误差调整目标角度。双环配合,既保持平衡,又控制速度。在此基础上,滚转环通过改变左右舵机位置,实现左右高差从而使得机器人能够转向移动。
我们将在后续的章节中详细讲解角度环和速度环的示例代码。如对PID的详细原理以及更高级的实现,请参考相关书籍并自行查阅代码~
