GitHub
TRO
Arxiv
YouTube
Bilibili
ROS
此论文以OBCA为基础,具体解释请参考OBCA
3. 问题陈述
3.1 障碍物模型
障碍物可以看成凸机,用锥不等式表示
Om={o∈ROm∣Dmo⪯Ombm}
其中m代表障碍物的序号
3.2 机器人模型
可以将机器人本体看成一个紧凑的凸集,初始状态用锥不等式表示,对初始状态进行旋转和平移便可以得到不同时刻的占用空间表示
C={z∈Rnr∣Gz⪯Krh}Zt(st)={Rt(st)z+p(st)∣z∈C}
其中nr表示机器人工作空间的维度
3.3 避碰
机器人和障碍物的最小距离表示为
dist(Zt(st),O)=min{∥e∥2∣(Zt(st)+e)∩O=∅}
结合机器人模型和障碍物模型,可以得到
dist(Zt(st),O)=z,omin s.t. ∥R(st)z+p(st)−o∥2Do⪯Omb,Gz⪯Krh
3.4 问题表述
MPC的目标是在满足约束的情况下最小化凸且光滑的成本函数。路径跟踪的目标是让机器人尽量以期望速度沿着期望轨迹运动
C0({st,ut})=h=0∑N(∥Q∘(st−st♢)∥22+∥P∘(vt−vt♢)∥22)
其中{Q,P}是权重系数,分别影响机器人尽量沿期望轨迹和尽量保持期望速度
MPC优化问题可以表述为
P0:{st,ut}min s.t. C0({st,ut})st+1=Atst+Btut+ct,umin⪯ut⪯umax,amin⪯ut+1−ut⪯amax,dist(Zt(st),Om)≥dsafe
3.5 目前的挑战
- 最后一项距离约束是碰撞避免的充分条件,但不是必要条件,因此在实现过程中很容易出现无解的情况
- 障碍物数量可能很大,那么计算量会很大
4. RDA无碰撞运动规划器
4.1 l1正则化
为了解决第一个挑战,将dsafe被替换为向量变量 d=[d1,⋯,dN]⊤∈RN。每个dt由dmax上界和dmin下界限制。此外还需要修改优化的目标函数,否则可能会导致所有dt全取为下界以满足约束。因此,在目标函数上增加了l1正则化,即C1(d)=−η∥d∥1=−η∑t=0Ndt,其中η为正的权重系数。这样便可以在满足无碰撞约束的前提下尽可能增大dt
l1的限定区域是包含凸点的即四个顶点,最优解更容易落在凸点上,此时部分分量最小,部分分量最大,所以最终的d更加容易变得稀疏。因为MPC在远时刻处预测的误差较大,因此更容易触发碰撞,为了满足约束很可能会导致dt较低。所以最终的结果很可能:近时刻生成较大的dt,而在远时刻生成较小的dt。注意这只是倾向性结果,并非必然结果,有可能障碍物很少,dt全取为最大值
4.2 通过交替方向乘子法实现并行计算
令y=Rz+p−o,无碰撞约束的拉格朗日对偶问题可以写为
=λ,μ,ξmaxy,o,zmin ∥y∥2+λ⊤(Do−b)+μ⊤(Gz−h)+ξ⊤(Rz+p−o−y)λ,μ,ξmax ymin (∥y∥−ξ⊤y)+omin (λ⊤Do−ξ⊤o)+zmin (μ⊤Gz−ξ⊤Rz)−λ⊤b−μ⊤h+ξ⊤p
为了保证内层的极小化结果是有限的,需要令∥ξ∥∗≤1,ξ−D⊤λ=0,G⊤μ−R⊤ξ=0,因此可以将ξ=D⊤λ代入原式
因为O和C具有非空相对内部,具有强对偶性。因此原问题与对偶问题等价
dist(Zt(st),Om)=λt,m,μt,mmax s.t. λt,m⊤Dmpt(st)−λt,m⊤bm−μt,m⊤hm∥Dm⊤λt,m∥∗≤1,μt,m⊤G+λt,m⊤DmRt(st)=0,λt,m⪰Om∗0,μt,m⪰Kr∗0
其中t代表时刻,m代表障碍物的序号。因此
dist(Zt(st),Om)≥dt⇔∃μt,m⪰Kr∗0,λt,m⪰Om∗0:λt,m⊤Dmpt(st)−λt,m⊤bm−μt,m⊤hm≥dt,∥Dm⊤λt,m∥∗≤1,μt,m⊤G+λt,m⊤DmRt(st)=0
具备避障功能的模型预测控制可以改写为
{st,ut,dt}{λt,m,μt,m,zt,m}min s.t. C0({st,ut})+C1(d)st+1=Atst+Btut+ct,umin⪯ut⪯umax,amin⪯at⪯amax,dt∈[dmin,dmax],zt,m≥0,∥Dm⊤λt,m∥∗≤1,λt,m⪰Om∗0,μt,m⪰Kr∗0,Ht,m(st,λt,m,μt,m)=0,It,m(st,λt,m,μt,m,dt,zt,m)=0
其中
Ht,m(st,λt,m,μt,m)=μt,m⊤G+λt,m⊤DmRt(st)It,m(st,λt,m,μt,m,dt,zt,m)=λt,m⊤Dmpt(st)−λt,m⊤bm−μt,m⊤hm−dt−zt,m
为了将距离的不等式转换为等式,新加入了变量zt,m,即⋯≥dt⇔∃zt,m≥0:⋯−dt−zt,m=0