【机器人学习】小白学习第17讲:移动机器人
🦉 猫头鹰都在卷机械臂逆解了,你确定不关注一下?
【机器人学习】小白学习第17讲:移动机器人 Mobile Robots
一句话核心:轮子只能"滚着走、原地转",不能横着平移——这种约束的是速度而不是位置的限制叫非完整约束,它把移动机器人的建模、规划和控制全部改写了一遍。
- 本讲目标:理解非完整约束的本质,掌握独轮车/自行车运动学模型,知道它从哪来、又会带来什么麻烦
一、为什么需要这个
小讲 1:轮子不许横着走——非完整约束的两句话直觉
轮子给机器人套上了速度约束
前面几讲讲的都是机械臂:底座固定、编码器直接读出每个关节的位置。轮子机器人完全不是这么回事。轮子是移动机器人最常用的行走机构,而**纯滚动(无滑动)**这件事本身就给机器人套上了运动学约束。
不能横着平移,却照样能停进车位(小声:虽然前司某车确实可以横着停车)
开头那句话是最好的引子:**每个司机都知道,汽车不可能一下子横着平移;但只要有地方倒腾,侧方位停车位照样能进去。**这两句话合在一起就是非完整约束的全部直觉:
- 局部能力下降:每一瞬间,能选的速度方向变少了(少一维)。在任意位形上,轮子的速度必须沿着它自己的朝向,侧向分量为零。
- 全局能力不变:位形空间照样全可达,只是去不了的地方得"绕"过去,多打几把方向盘。

图 1 “汽车不能横着平移"与"照样能停进车位”。左图:每一瞬时只有 2 个自由度(前进 v、转向 ω),侧向速度被纯滚动约束禁止;右图:三段机动(转向 → 滚动 → 回正)合成的净位移恰好落在侧向
模型变成 q̇ = G(q)u:输入比状态少
这一节的结果是:用来描述时刻允许运动的模型,不再是q̇ = u那么简单,而是q̇ = G(q) u;(输入比状态少,且矩阵 G 依赖位形 q。)后面所有的规划和控制,都围着这个形式转。
停下来想一想:非完整约束让每一瞬间能选的速度方向少了几维?位形空间本身又少了几维?
二、核心概念
小讲 2:完整约束与非完整约束的分界,以及可积性判据
1. 完整约束 vs 非完整约束
完整约束(holonomic,可积):能写成只含位置的等式hi(q) = 0,共 k 个。它的作用是把可达空间压到n − k维的一个"面"上,于是可以把 k 个坐标用另外 n−k 个表示出来、直接消掉。(机械臂的转动副/移动副就是这种;关节变量就是那套"压缩过的坐标"。)
运动学约束(kinematic):写成 Pfaffian 形式、对速度线性:AT(q) q̇ = 0。
完整约束一定能导出运动学约束(求导即可),但反过来不一定。若一组 Pfaffian 约束不可积,就叫非完整(nonholonomic)约束。它的后果完全不同:
- 每一瞬间允许的速度落在
n − k维子空间里 → 自由度确实降了; - 但一个广义坐标也省不掉,哪怕局部也省不掉→ 位形仍可以用原来的 n 个数描述。
可积性判据:若存在积分因子 γ(q) ≠ 0 使γ a(q)是某个标量函数 h 的梯度,则可积;等价地要求
∂(γak)/∂qj=∂(γaj)/∂qk,j,k=1,…,n,j≠k \partial (\gamma a_{k})/ \partial q_{j} = \partial (\gamma a_{j})/ \partial q_{k}\text{,} j,k = 1, \dots ,n\text{,}j \neq k ∂(γak)/∂qj=∂(γaj)/∂qk,j,k=1,…,n,j=k
例 11.3 拿滚动圆盘的约束ẋ sin θ − ẏ cos θ = 0代进去,解出唯一的 γ = 0,于是判定它非完整。式(11.9)还有一个立刻能用的推论:系数为常数的 Pfaffian 约束一定是完整的。
2. 运动学模型与"可控 ⟺ 非完整"
取AT(q)零空间的一组基 {g1,…,gm},允许的轨迹就是
q˙=∑gj(q)uj=G(q)u,m=n−k \dot{q} = \sum g_{j}(q) u_{j} = G(q) u\text{,} m = n - k q˙=∑gj(q)uj=G(q)u,m=n−k
它没有漂移项(输入为零则 q̇ = 0),因此叫driftless 系统。输入 u 往往有物理意义(速度),而不是力/力矩,所以叫"运动学模型"。
最漂亮的一条结论:看(11.10)可不可控,就能反过来判定约束是完整还是非完整。
- 可控 ⟹ 任意两个位形之间都能找到一条满足约束的轨迹 ⟹ 约束(完全)非完整;
- 不可控 ⟹ 可达空间只剩 ν < n 维 ⟹ 约束部分/完全可积。
怎么查可控?看可达秩条件dim ΔA(q) = n。这里的秘密武器是李括号 [g1, g2]:(先做一段 g1、再 g2、反向 g1、反向 g2,净位移就落在 [g1,g2] 方向上。这正是"打方向盘来回几次,车就横移了一点"的数学。)能用几个输入向量场和它们的李括号张满 n 维,系统就可控。需要的括号层数叫非完整度 κ。
小讲 3:独轮车与自行车模型、链式形式与平坦输出规划
3. 独轮车与自行车(–11.2.2)
独轮车(unicycle)q = [x, y, θ]T:(x, y) 是轮子触地点,θ 是朝向。纯滚动约束ẋ sin θ − ẏ cos θ = 0,通过接触点且垂直于航向的那条直线叫零运动线。运动学模型:
x˙=vcosθ,y˙=vsinθ,θ˙=ω \dot{x} = v \cos \theta\text{,} \dot{y} = v \sin \theta\text{,} \dot{\theta} = \omega x˙=vcosθ,y˙=vsinθ,θ˙=ω
两个输入:v驱动速度(轮速×半径),ω转向速度。它的李括号 [g1, g2] = [sin θ, −cos θ, 0]T恰好指向侧向,与前两个向量场线性无关 ⟹dim ΔA = 3,可控、非完整度 κ = 2。
差速驱动(两个固定轮,最常见的小车)与独轮车运动学等价,只需换算:v = r(ωR + ωL)/2,ω = r(ωR − ωL)/d。
自行车(bicycle)q = [x, y, θ, φ]T,多了前轮转角 φ。前后轮各有一个滚动约束,两条零运动线交于瞬时转动中心 C,车身每一点瞬时都在绕 C 画圆弧。前轮驱动时θ̇ = (sin φ / ℓ) v;后轮驱动时θ̇ = (tan φ / ℓ) v——注意后者在 φ = ±π/2 处失效(前轮打横,机械上卡死)。自行车要算到三层李括号,非完整度 κ = 3。三轮车、轿车都属于这一类。

图 2 独轮车位形 (x, y, θ) 与速度输入 (v, ω)(对应)。红色虚线是通过接触点的零运动线:轮子在这一瞬间绝不允许沿这条方向移动
4. 链式形式(Chained Form,)
把运动学模型化成某种"标准样子",规划和控制就有了通用套路。两输入的**(2, n) 链式形式**是:
z˙1=v1,z˙2=v2,z˙3=z2v1,…,z˙n=zn−1v1 \dot{z}_{1} = v_{1}\text{,} \dot{z}_{2} = v_{2}\text{,} \dot{z}_{3} = z_{2} v_{1}\text{,} \dots \text{,} \dot{z}_{n} = z_{n-1} v_{1} z˙1=v1,z˙2=v2,z˙3=z2v1,…,z˙n=zn−1v1
它像一列"倒下的多米诺":第一个状态被积分一次传给第三个、再传给第四个……正因为这个结构,它对某些输入可以闭式积分(比如 v1取常数、v2取多项式),规划就变成了"解一个线性方程组"。
独轮车用坐标变换z1 = θ、z2 = x cos θ + y sin θ、z3 = x sin θ − y cos θ就能化成 (2,3) 链式形式。(z2、z3是位置在一个"跟着车头走"的动坐标系里的分量。)还指出:对无漂移系统,微分平坦性 ⟺ 能化成链式形式,两者是一枚硬币的两面。
5. 规划:路径 + 时间律、平坦输出、最优轨迹
和机械臂一样,轨迹 =几何路径 q(s)+时间律 s(t)。但非完整系统多一道要求:路径上每一点的切向量都得满足约束A(q) q′ = 0,也就是说路径的切线必须和车头一致——所以切线不连续的折线路径是不允许的,除非车停下来原地转向再走。
平坦输出(flat outputs)是这里最好用的东西:独轮车和自行车的笛卡儿坐标 (x, y) 就是平坦输出。给定一条 (x(s), y(s)),朝向和输入全都能代数地算出来:
θ=Atan2(y′,x′)+kπ,vˉ=±x′2+y′2,ωˉ=(y′′x′−x′′y′)/(x′2+y′2)(−11.47) \theta = Atan2(y', x') + k\pi\text{,} \bar{v} = \pm \sqrt{x'^{2} + y'^{2}}\text{,} \bar{\omega} = (y''x' - x''y')/(x'^{2} + y'^{2})\text{(}-11.47\text{)} θ=Atan2(y′,x′)+kπ,vˉ=±x′2+y′2,ωˉ=(y′′x′−x′′y′)/(x′2+y′2)(−11.47)
也就是说:只要随手写一条插值 x(s)、y(s) 的曲线(比如三次多项式),并且把两端的切线方向按起止朝向对齐,剩下的 θ、v、ω 自动算出来,而且天然满足非完整约束。这是非完整规划最重要的一条捷径。
但有坑:这条捷径要求 x′、y′ 不同时为零,所以原地纯转向(路径退化成一点)它做不出来;ẋd → 0时后面的跟踪控制器也会发散。
最优轨迹:最有名的是时间最优。Pontryagin 极小值原理推出"充分族"——最优解一定由两种基本弧拼成:圆弧(v = ±vmax、ω = ±ωmax,半径恒为 vmax/ωmax)和直线段(ω = 0)。共 9 组、48 种序列,这就是著名的Reeds–Shepp 曲线。
小讲 4:跟踪与镇定的差别,以及动力学模型与里程计
6. 运动控制:跟踪 ≠ 镇定
通常假定下层已有轮速控制回路(很多移动机器人根本不给你直接指令力矩的接口),所以高层就在运动学模型上设计速度指令 v、ω。两类基本任务:
- 轨迹跟踪(trajectory tracking):追一条随时间变化的参考轨迹 (xd(t), yd(t))。工业上最重要,因为轨迹是事先规划好的,跟着走最不容易撞。
- 位姿镇定(posture regulation):开到某个给定位姿 qd。不用预先规划,但接近过程走什么路线由不得你。
停下来想一想
为什么"停到一点"这么难?这是 Brockett 定理的直接后果:对
q̇ = G(q)u这类输入少于状态、且输入向量场线性无关的无漂移系统,不存在连续的、只依赖状态的静态反馈能把系统渐近镇定。所以位姿镇定必须用时变的或不连续的反馈律——给的不连续方案就是把问题搬到极坐标 (ρ, γ, δ) 里做。反过来说,跟踪问题不存在这个障碍,光滑反馈有的是。
跟踪做得最顺的一条路子是近似线性化:把误差动力学在参考轨迹附近线性化,然后用教科书式的线性反馈。
7. 动力学模型与里程计定位(、)
动力学:和机械臂一样由拉格朗日方程出发,但多了一项约束反力A(q)λ(λ 是拉格朗日乘子,就是那个"不让你侧滑"的力)。左乘GT(q)可把 λ 消掉,得到降阶模型
M(q)v˙+m(q,v)=GT(q)S(q)τ,M(q)=GT(q)B(q)G(q) M(q) \dot{v} + m(q, v) = G^{T}(q) S(q) \tau\text{,} M(q) = G^{T}(q) B(q) G(q) M(q)v˙+m(q,v)=GT(q)S(q)τ,M(q)=GT(q)B(q)G(q)
再用 τ = (GTS)−1(M a + m) 可以通过反馈部分线性化成q̇ = G(q)v, v̇ = a,于是控制问题又被推回到运动学层。代价是:要知道精确的动态参数,还要能测到完整的 q 和 q̇。
里程计(odometry):移动机器人没有"直接读出位置"的编码器,只有量轮子转角的增量式编码器,只能往前推。一个采样周期内若 v、ω 恒定,车走的是一段圆弧 R = v/ω。三种递推:
- 欧拉法(11.83):
xk+1 = xk + vkTs cos θk,误差来自"假设整个周期内朝向不变",Ts越小越准。 - 二阶龙格–库塔(11.84):用周期内朝向的平均值,明显改善。
- 精确积分(11.85):借链式形式可得闭式
xk+1 = xk + (vk/ωk)(sin θk+1 − sin θk)。
实际用编码器读数更好:差速驱动有Δs = (r/2)(ΔφR + ΔφL)、Δθ = (r/d)(ΔφR − ΔφL)(之后)。但无论哪种积分,里程计都会随时间漂移:打滑、轮径标定误差、(用近似方法时)数值误差都会累积,而且它给出的估计永远不可能比初始值 q0更准。所以长距离导航必须有主动定位(外部传感器 + 地图,用 EKF 或粒子滤波修正)。
停下来想一想:把滚动圆盘的约束
ẋ sin θ − ẏ cos θ = 0代进可积性判据(11.9),解出的积分因子 γ 等于几?独轮车的李括号 [g1, g2] 指向哪个方向?
三、关键公式
小讲 5:三类公式——约束对照、独轮车模型与跟踪误差动力学
1. 两类约束的对照
完整(可积):hi(q)=0,i=1,…,k<n ⟹ 可达空间降到n−k维,坐标可消去运动学(Pfaffian):aiT(q)q˙=0,即AT(q)q˙=0 ⟹ 只约束速度非完整(不可积):⟨g1,…,gm,[g1,g2],…⟩张满n维 ⟺ 系统可控 ⟺ 位形全可达 \begin{aligned} \text{完整(可积):} h_{i}(q) = 0\text{,} i = 1, \dots ,k < n \implies \text{可达空间降到} n-k \text{维,坐标可消去} \\ \text{运动学(}Pfaffian\text{):} a_{i}^{T}(q) \dot{q} = 0\text{,} \text{即} A^{T}(q) \dot{q} = 0 \implies \text{只约束速度} \\ \text{非完整(不可积):} ⟨g_{1}, \dots ,g_{m}, [g_{1},g_{2}], \dots ⟩ \text{张满} n \text{维} \iff \text{系统可控} \iff \text{位形全可达} \end{aligned} 完整(可积):hi(q)=0,i=1,…,k<n⟹可达空间降到n−k维,坐标可消去运动学(Pfaffian):aiT(q)q˙=0,即AT(q)q˙=0⟹只约束速度非完整(不可积):⟨g1,…,gm,[g1,g2],…⟩张满n维⟺系统可控⟺位形全可达
| 完整约束 | 非完整约束 | |
|---|---|---|
| 写了谁 | 位置 h(q)=0 | 速度 AT(q)q̇=0 |
| 可积吗 | 是 | 否 |
| 位形空间 | 被压到 n−k 维子流形 | 仍是 n 维,全可达 |
| 瞬时自由度 | n − k | n − k |
| 举例 | 机械臂的转动副、保持末端位姿不动的冗余机械臂 | 轮子纯滚动、自由漂浮的空间机械臂(角动量守恒) |
**直觉:**完整约束是"墙",把你关在一个低维房间里;非完整约束是"单行道",你哪儿都能去,但不能横穿。
2. 独轮车模型
[x˙,y˙,θ˙]T=[cosθ,sinθ,0]Tv+[0,0,1]Tω [ \dot{x} , \dot{y} , \dot{\theta} ]^{T} = [ \cos \theta , \sin \theta , 0 ]^{T} v + [ 0 , 0 , 1 ]^{T} \omega [x˙,y˙,θ˙]T=[cosθ,sinθ,0]Tv+[0,0,1]Tω
| 符号 | 含义 |
|---|---|
| x, y | 接触点(或轮子中心)在世界系中的坐标 |
| θ | 航向角,相对 x 轴 |
| v | 驱动速度 = 轮绕自身轴的角速度 × 半径 r |
| ω | 转向速度 = 轮绕竖直轴的角速度 |
**直觉:**三个状态、两个输入——输入比状态少,这就是 Brockett 那条限制的根源。
3. 轨迹跟踪的误差动力学与线性反馈
KaTeX parse error: Undefined control sequence: \zetaa at position 388: …{1} = k_{3} = 2\̲z̲e̲t̲a̲a̲\text{,} k_{2} …
直觉:这正是你在《自动控制原理》二阶系统那一章背过的东西——一个负实根加一对主导共轭复根,ζ 是阻尼比、a 是自然频率。代价是闭环矩阵的 K 里含 ωd(t)、vd(t),是时变的:只有参考轨迹是圆或直线(vd、ωd为常数)时才严格稳定;另外 vd→ 0 时 k2发散,所以这套方案只适用于持续运动的参考轨迹。
还给了两种更强的方案:非线性控制器(–11.72,用 Lyapunov + Barbalat 引理证全局收敛,可以跟踪"会停下来"的轨迹)和输入/输出线性化(把车身前方距离接触点 b 处的点 B 当作被控输出)。
停下来想一想:轨迹跟踪的线性增益 k2在 vd→ 0 时会变成什么样?为什么这套方案只适用于持续运动的参考轨迹?
小讲 6:两张图读非完整约束——瞬时禁止与多步可达
停下来想一想:图 1 右半部分三段机动合成的净位移指向哪个方向,它对应的是哪个数学对象?图 2 里那条红色虚线零运动线,禁止的是哪个速度分量?
四、例题 / 动手
例 1 差速驱动小车:左右轮转速 → 走的圆弧
某差速小车轮半径 r = 0.1 m,两轮间距 d = 0.5 m。右轮 ωR= 2 rad/s,左轮 ωL= 1 rad/s。
**第 1 步:**换算成独轮车的输入:
v=r(ωR+ωL)/2=0.1×3/2=0.15m/sω=r(ωR−ωL)/d=0.1×1/0.5=0.2rad/s \begin{aligned} v = r(\omega_{R} + \omega_{L})/2 = 0.1 \times 3 / 2 = 0.15 m/s \\ \omega = r(\omega_{R} - \omega_{L})/d = 0.1 \times 1 / 0.5 = 0.2 rad/s \end{aligned} v=r(ωR+ωL)/2=0.1×3/2=0.15m/sω=r(ωR−ωL)/d=0.1×1/0.5=0.2rad/s
**第 2 步:**由运动学模型知道它将沿着一段圆弧走,半径
R=v/ω=0.15/0.2=0.75m R = v/\omega = 0.15 / 0.2 = 0.75 m R=v/ω=0.15/0.2=0.75m
第 3 步:让它走 T = 2 s(期间 v、ω 恒定),转过的角度 Δθ = ωT = 0.4 rad,弧长 Δs = vT = 0.3 m。若初始 θ0= 0,用精确公式(11.85)算终点:
x1=x0+(v/ω)(sinθ1−sinθ0)=0+0.75×sin0.4=0.2921my1=y0−(v/ω)(cosθ1−cosθ0)=0−0.75×(cos0.4−1)=0.0592m \begin{aligned} x_{1} = x_{0} + (v/\omega)(\sin \theta_{1} - \sin \theta_{0}) = 0 + 0.75 \times \sin 0.4 = 0.2921 m \\ y_{1} = y_{0} - (v/\omega)(\cos \theta_{1} - \cos \theta_{0}) = 0 - 0.75 \times (\cos 0.4 - 1) = 0.0592 m \end{aligned} x1=x0+(v/ω)(sinθ1−sinθ0)=0+0.75×sin0.4=0.2921my1=y0−(v/ω)(cosθ1−cosθ0)=0−0.75×(cos0.4−1)=0.0592m
对照欧拉法会给出 x = Δs cos θ0= 0.3、y = 0 —— 差约 8 mm,这就是"假设周期内朝向不变"付出的代价。
动手建议:把这三条递推写成 20 行 Python,让采样周期 Ts从 0.5 s 缩到 0.01 s,画出终端位置误差随 Ts的变化,你会亲眼看到数值积分误差是一阶/二阶收敛的。
例 2 为什么"不许横着走"却照样能停车:手算李括号
独轮车两个输入向量场:
g1=[cosθ,sinθ,0]⊤(走)g2=[0,0,1]⊤(转) \begin{aligned} g_{1} = [ \cos \theta , \sin \theta , 0 ]^{\top} \text{(走)} \\ g_{2} = [ 0 , 0 , 1 ]^{\top} \text{(转)} \end{aligned} g1=[cosθ,sinθ,0]⊤(走)g2=[0,0,1]⊤(转)
算它们的李括号[g1, g2] = (∂g2/∂q) g1 − (∂g1/∂q) g2:
∂g1/∂q⋅g2=[−sinθ,cosθ,0]⊤⋅1,∂g2/∂q=0 ⟹ [g1,g2]=[sinθ,−cosθ,0]⊤ \begin{aligned} \partial g_{1}/ \partial q \cdot g_{2} = [ -\sin \theta , \cos \theta , 0 ]^{\top} \cdot 1\text{,} \partial g_{2}/ \partial q = 0 \\ \implies [g_{1}, g_{2}] = [ \sin \theta , -\cos \theta , 0 ]^{\top} \end{aligned} ∂g1/∂q⋅g2=[−sinθ,cosθ,0]⊤⋅1,∂g2/∂q=0⟹[g1,g2]=[sinθ,−cosθ,0]⊤
当 θ = 0 时它是 [0, −1, 0]T,即纯侧向。它和 g1、g2线性无关 ⟹ dim ΔA= 3 ⟹可控 ⟹ 约束非完整 ⟹ 侧方位一定停得进去,需要的李括号层数是 2,这就是"非完整度 κ = 2"的含义。自行车要算到第 3 层(κ = 3),所以它的机动比独轮车更"绕"。
停下来想一想:例 1 里欧拉法与精确积分算出的终点差了多少,误差来自哪个假设?例 2 里 κ = 2 说的是要算到第几层李括号?
五、常见误区
非完整约束减的是速度维数,不是位形维数
常见误区
误区 1:“非完整约束和完整约束一样,可以把一个坐标消掉。”
不行。完整约束把可达位形压到 n−k 维,可以换坐标;非完整约束只把每一瞬时的允许速度压到 n−k 维,位形空间一个维度都不减——哪怕局部也不减。所以 q 还得老老实实用 n 个数,还得按
q̇ = G(q)u这种"输入比状态少"的模型来分析。
限制的是一步到位,不是能不能到
常见误区
误区 2:“不能横着平移,说明侧向的位置不可达。”
正好相反。回头看图 1 右半部分:先转向 → 再滚动 → 再回正,三步做下来净位移正是侧向的,中途没有一秒钟违反过滚动约束。非完整约束限制的只是"一步到位",不是"能不能到"。
点镇定被 Brockett 条件结构性挡住
常见误区
误区 3:“点镇定无非是 PID 换个数的问题。”
对非完整系统这件事是结构上不可行的。Brockett 必要条件直接否定:对
q̇ = G(q)u这种输入少于状态、输入向量场线性无关的无漂移系统,不存在连续、时不变的静态状态反馈能做到渐近镇定。给的可行方法是时变反馈或不连续反馈(如极坐标方案 11.81–11.82)。反过来,跟踪一条持续运动的参考轨迹是完全可以的。
里程计漂移的根源不是积分公式不好
常见误区
误区 4:“里程计误差主要是数值积分误差,换个好点的积分公式就行了。”
不是。说得很清楚:误差来自打滑、运动学参数标定误差(比如轮半径不准、左右轮距不对),这些是"输入本身就不准",再好的积分公式也救不回来,而且误差随路径长度单调累积(漂移)。另外,推出来的估计永远不可能比初始估计 q0更准。所以长时间、长距离导航一定要用主动定位:外部传感器 + 地图 + EKF/粒子滤波去修正。
停下来想一想:为什么
q̇ = G(q)u这类系统不存在连续、时不变的静态反馈镇定律?里程计推出来的位姿为什么不可能比初始估计 q0更准?
六、本讲小结
停下来想一想:为什么说非完整约束限制的是速度而不是位置?长距离导航为什么不能只靠里程计?
要点回顾
- 轮式机器人的核心是纯滚动非完整约束:约束的是速度不是位置,所以位形空间全可达,只是每个瞬间少一个自由度。
- 完整 ⟺ 可积(用积分因子 γ 与判断);非完整 ⟺ 运动学模型(11.10)可控,用李括号和可达秩条件
dim ΔA = n判定。 - 独轮车
ẋ = v cos θ, ẏ = v sin θ, θ̇ = ω:3 状态 2 输入,κ = 2;自行车4 状态 2 输入,κ = 3。差速驱动、同步驱动都与独轮车运动学等价。 - 链式形式是非完整系统的"万能标准型",可闭式积分,便于规划;对无漂移系统,它与微分平坦性等价。独轮车和自行车的平坦输出就是**(x, y)**——这是规划的一条大捷径。
- 轨迹跟踪与位姿镇定是两回事:跟踪可以靠光滑反馈(近似线性化甚至输入/输出线性化),镇定被 Brockett 条件挡住,只能用时变或不连续反馈。
- 里程计靠积分推位姿,误差随时间漂移;长距离必须上主动定位。
一句话总结:非完整约束让移动机器人每一时刻只有"前进"和"转向"两个选择,却照样哪儿都去——整套新工具(李括号、链式形式、平坦输出、时变反馈)都是围着这句话长的。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)