EGO-Planner、MINCO、minimum-snap 等规划器都不直接优化四个电机转速,也不直接优化滚转角、俯仰角和力矩,而是优化三维位置轨迹。这样做的依据是:四旋翼是微分平坦系统,它的全部状态和控制输入都能由位置、偏航角及其有限阶导数算出来。

下文先给出判断标准,再用质点、小车和四旋翼三个例子说明它的含义,最后讨论它对轨迹规划的意义和局限。

一、判断标准

考虑一般的动力系统

x˙=f(x,u),\dot{x}=f(x,u),

其中 xx 是状态(位置、速度、姿态、角速度等),uu 是控制输入(推力、力矩或加速度指令等)。

若系统有 mm 个独立控制输入,要证明它微分平坦,就要找到 mm 个相互独立的输出 y=[y1, y2, ⋯ , ym]Ty=[y_1,\ y_2,\ \cdots,\ y_m]^T,使全部状态和输入都能写成

x=Φ(y,y˙,y¨,⋯ ,y(r)),u=Ψ(y,y˙,y¨,⋯ ,y(s)),x=\Phi(y,\dot{y},\ddot{y},\cdots,y^{(r)}), \qquad u=\Psi(y,\dot{y},\ddot{y},\cdots,y^{(s)}),

其中 rr、ss 是有限整数。这组 yy 称为平坦输出。

判断的关键是能否找到这样一组平坦输出,与系统是否线性、是否完全驱动都无关。

二、“直接恢复”的含义

“由平坦输出直接恢复”指只用有限次代数运算、三角函数运算、求导和代入动力学方程,不需要对未知变量积分、求解新的微分方程,也不依赖系统过去的运动历史。

反例:若选某个变量 y(t)y(t) 作为候选平坦输出,恢复状态时却出现

x(t)=x(0)+∫0ty(τ) dτ,x(t)=x(0)+\int_0^t y(\tau)\,d\tau,

那么仅凭当前时刻的 y,y˙,y¨y,\dot{y},\ddot{y} 等导数无法确定 x(t)x(t),还需要初始值和历史积分。这样的 yy 通常不能作为平坦输出。换句话说,微分平坦性要求当前时刻的有限阶导数信息就足以恢复状态和输入。

三、最简单的例子:一维质点

一维质点模型为

x˙=v,v˙=u,\dot{x}=v,\qquad \dot{v}=u,

其中 xx 是位置,vv 是速度,uu 是加速度输入。选位置作为平坦输出 y=xy=x,立即得到

x=y,v=y˙,u=y¨.x=y,\qquad v=\dot{y},\qquad u=\ddot{y}.

只要规划一条足够光滑的位置曲线 y(t)y(t),速度和控制输入就都确定了,所以这个系统是微分平坦的。这也是轨迹规划常用多项式、B 样条或 MINCO 描述位置轨迹的原因:位置曲线一旦确定,各阶导数都可以直接算出。

四、非完整约束的小车也可能平坦

微分平坦性不要求系统能向任意方向运动。非完整约束小车只能前进、后退和转向,不能横向平移,简化模型为

x˙=vcos⁡θ,y˙=vsin⁡θ,θ˙=ω,\dot{x}=v\cos\theta,\qquad \dot{y}=v\sin\theta,\qquad \dot{\theta}=\omega,

其中 (x,y)(x,y) 是位置,θ\theta 是车头朝向,vv 是前进速度,ω\omega 是转向角速度。

选平面位置 yf=[x, y]Ty_f=[x,\ y]^T 作为平坦输出,由一阶导数得到朝向和速度,由一、二阶导数得到角速度:

θ=atan2(y˙,x˙),v=x˙2+y˙2,ω=x˙y¨−y˙x¨x˙2+y˙2.\theta=\mathrm{atan2}(\dot{y},\dot{x}),\qquad v=\sqrt{\dot{x}^2+\dot{y}^2},\qquad \omega=\frac{\dot{x}\ddot{y}-\dot{y}\ddot{x}}{\dot{x}^2+\dot{y}^2}.

给出平面内的运动轨迹,就能反推出车头方向和控制输入(下图左)。所以有运动约束、甚至欠驱动的系统,也可能是微分平坦的。

左图:小车沿一条平面曲线运动,每处的车头朝向都等于曲线的切线方向;右图:四旋翼的所需加速度加上重力加速度,得到推力方向,机体随之倾斜

五、四旋翼为什么是微分平坦的

理想四旋翼的平坦输出通常取

yf=[x, y, z, ψ]T,y_f=[x,\ y,\ z,\ \psi]^T,

其中 x,y,zx,y,z 是质心位置,ψ\psi 是偏航角(机头朝向)。

四个电机转速决定了四个独立输入:总推力 ff 与滚转、俯仰、偏航三个力矩 τx,τy,τz\tau_x,\tau_y,\tau_z,即 u=[f, τx, τy, τz]Tu=[f,\ \tau_x,\ \tau_y,\ \tau_z]^T。而四旋翼在三维空间中有六个自由度 x,y,z,ϕ,θ,ψx,y,z,\phi,\theta,\psi,因此是典型的欠驱动系统。平坦性的特殊之处在于,四个平坦输出就能描述它的完整运动。

1. 由加速度恢复推力

假设世界坐标系竖直向上为 e3=[0,0,1]Te_3=[0,0,1]^T,重力向下,总推力沿机体 zz 轴,暂时忽略空气阻力和电机动态。平移动力学为

mp¨=−mge3+fb3,m\ddot{p}=-mg e_3+f b_3,

其中 p=[x,y,z]Tp=[x,y,z]^T 是位置,mm 是质量,b3b_3 是机体 zz 轴在世界系下的方向。整理得到全文最关键的关系:

fb3=m(p¨+ge3)\boxed{f b_3=m(\ddot{p}+g e_3)}

给定位置轨迹 p(t)p(t),就能算出总推力大小和机体 zz 轴方向:

f=m∥p¨+ge3∥,b3=p¨+ge3∥p¨+ge3∥.f=m\left\|\ddot{p}+g e_3\right\|,\qquad b_3=\frac{\ddot{p}+g e_3}{\left\|\ddot{p}+g e_3\right\|}.

也就是说,位置的二阶导数决定了无人机朝哪里倾斜、需要多大推力(上图右)。悬停时 p¨=0\ddot{p}=0,机体 zz 轴竖直向上;向前加速就必须向前倾斜;快速爬升时总推力必须大于重力。

2. 偏航角补全姿态

b3b_3 只确定了机体怎样倾斜,无人机仍可以绕自身 zz 轴旋转:同样悬停在原地,机头可以朝东、朝西或缓慢转圈。因此还需要偏航角 ψ(t)\psi(t)。

先由偏航角定义期望水平朝向,再与 b3b_3 构造另外两个机体轴:

b1c=[cos⁡ψsin⁡ψ0],b2=b3×b1c∥b3×b1c∥,b1=b2×b3,b_{1c}= \begin{bmatrix} \cos\psi\\ \sin\psi\\ 0 \end{bmatrix}, \qquad b_2=\frac{b_3\times b_{1c}}{\left\|b_3\times b_{1c}\right\|}, \qquad b_1=b_2\times b_3,

姿态矩阵即为 R=[b1  b2  b3]R=[b_1\ \ b_2\ \ b_3]。加速度决定倾斜,偏航角决定机头朝向,二者合起来得到完整姿态。

3. 更高阶导数恢复角速度和力矩

姿态矩阵与机体角速度 ω\omega 满足

R˙=Rω^,ω^=RTR˙,\dot{R}=R\hat{\omega},\qquad \hat{\omega}=R^T\dot{R},

其中 ω^\hat{\omega} 是 ω\omega 对应的反对称矩阵。RR 由 p¨\ddot{p} 和 ψ\psi 构造,对它求导后,角速度由位置三阶导数 p(3)p^{(3)}(jerk)和 ψ˙\dot{\psi} 决定;再求一次导,角加速度 ω˙\dot{\omega} 由位置四阶导数 p(4)p^{(4)}(snap)和 ψ¨\ddot{\psi} 决定。最后由转动动力学

τ=Jω˙+ω×(Jω)\tau=J\dot{\omega}+\omega\times(J\omega)

算出控制力矩 τ=[τx, τy, τz]T\tau=[\tau_x,\ \tau_y,\ \tau_z]^T,其中 JJ 是转动惯量矩阵。

4. 完整的恢复链条

平坦输出及其导数 可以恢复的物理量
pp 位置
p˙\dot{p} 速度
p¨\ddot{p} 推力大小、推力方向、滚转和俯仰
ψ\psi 偏航方向、完整姿态
p(3),ψ˙p^{(3)},\dot{\psi} 角速度
p(4),ψ¨p^{(4)},\ddot{\psi} 角加速度、控制力矩

最后,总推力和三个力矩通过混控矩阵 AA 与四个旋翼的推力相联系:

[fτxτyτz]=A[f1f2f3f4].\begin{bmatrix} f\\ \tau_x\\ \tau_y\\ \tau_z \end{bmatrix} =A \begin{bmatrix} f_1\\ f_2\\ f_3\\ f_4 \end{bmatrix}.

只要 AA 可逆,就能算出每个旋翼的推力。

x, y, z, ψ 及其导数

位置、速度、姿态、角速度

总推力、力矩

四个旋翼的推力

x, y, z, ψ 及其导数

位置、速度、姿态、角速度

总推力、力矩

四个旋翼的推力

整个过程只涉及有限次求导和代数运算,不需要求解新的微分方程,这正是微分平坦性的定义。

六、为什么常常最小化 snap

经典的 minimum-snap 轨迹最小化位置四阶导数的平方积分:

J=∫0T∥p(4)(t)∥2dt.J=\int_0^T \left\|p^{(4)}(t)\right\|^2 dt.

由上一节可知,snap 与角加速度和控制力矩直接相关。压低 snap,姿态变化、力矩变化和电机指令都更平缓,轨迹也更容易被真实无人机跟踪。Mellinger 和 Kumar 的经典工作就是利用这一性质,在三维位置和偏航角空间中生成可跟踪的轨迹。具体计算见《Minimum Snap 轨迹》。

七、平坦不等于任意轨迹都能飞

理论上,任何足够光滑的 [x(t),y(t),z(t),ψ(t)][x(t),y(t),z(t),\psi(t)] 都能算出对应的状态和输入,但算出的量可能超出硬件能力:总推力超过电机上限、倾角过大、角速度或力矩过大、电机转速变化过快,或者轨迹本身穿过障碍物。

因此轨迹规划仍要加入动力学约束和环境约束,例如

∥p˙∥≤vmax⁡,∥p¨∥≤amax⁡,\left\|\dot{p}\right\|\le v_{\max},\qquad \left\|\ddot{p}\right\|\le a_{\max},

以及推力、姿态角、角速度、走廊安全距离等限制。微分平坦性解决的是“怎样从位置轨迹恢复完整的状态和控制指令”,并不保证轨迹满足硬件、控制和避障约束。

八、判断一个系统是否平坦的步骤

  1. 写出明确的动力学模型。 平坦性是针对特定数学模型而言的。以四旋翼为例,要说明是否考虑空气阻力、电机动态、桨叶模型、负载、机械臂、柔性绳索和执行器饱和;模型复杂程度不同,结论可能不同。

  2. 选择候选输出。 优先选择直接反映运动目标的变量,数量通常与独立输入数相同:

    系统 常见候选平坦输出
    一维质点 位置
    非完整约束小车 平面位置
    四旋翼 三维位置 + 偏航角
    机械臂 末端位姿或部分关节变量
  3. 逐层求导并代入动力学方程,检查能否依次恢复位置、速度、姿态、角速度、推力、力矩和其他状态与输入。

  4. 检查是否引入积分或额外的微分方程。 全部变量都能由有限次求导和代数运算得到,系统在该模型下就是平坦的;若必须依赖积分、初始条件或历史轨迹,可以换一组候选输出、对输入做动态扩展,或者接受该系统在当前模型下不平坦。

九、注意奇异状态

很多系统只在一定范围内有良好的平坦参数化。

  • 小车在 x˙=y˙=0\dot{x}=\dot{y}=0(速度为零)时,θ=atan2(y˙,x˙)\theta=\mathrm{atan2}(\dot{y},\dot{x}) 无法确定车头朝向;
  • 四旋翼在 p¨+ge3=0\ddot{p}+g e_3=0 时,推力方向 b3b_3 无定义;b3b_3 与期望水平朝向 b1cb_{1c} 发生退化关系时,姿态构造也会失效。

所以更准确的说法是:系统在避开奇异状态的局部区域内具有微分平坦性。

十、对 EGO-Planner 等规划器的意义

EGO-Planner、Fast-Planner、GCOPTER、MINCO 等框架通常不直接优化电机转速、控制力矩、完整姿态曲线或飞控底层的混控输入,而是优化三维位置曲线 p(t)p(t),并约束速度、加速度、光滑性和障碍物距离。

依据正是四旋翼的微分平坦性:规划器只需生成一条足够光滑、满足约束的位置轨迹,跟踪控制器就能根据期望的位置、速度和加速度计算期望推力与姿态。性能更高的控制器还会用 jerk 和 snap 构造前馈项,改善高速飞行时的跟踪效果。推力与姿态的具体算例见《从轨迹到推力与姿态》。

小结

  • 系统微分平坦的条件:存在一组平坦输出,使全部状态和控制输入都能由这些输出及其有限阶导数直接恢复,不需要积分或求解额外的微分方程。
  • 四旋翼的常用平坦输出是 [x, y, z, ψ]T[x,\ y,\ z,\ \psi]^T,核心关系是 fb3=m(p¨+ge3)f b_3=m(\ddot{p}+g e_3):加速度决定推力方向和大小,偏航角补全机头朝向,更高阶导数恢复角速度和力矩。
  • 四旋翼虽然欠驱动,但在常用模型下仍是微分平坦系统,这是无人机轨迹规划主要围绕位置曲线展开的理论基础。