路径规划——软/硬约束下的轨迹优化

Minimum Snap是轨迹优化中的常用方法,其效果如下:
在这里插入图片描述
上图中红线为Minimum Snap优化生成的光滑轨迹,可以看出Minimum Snap有利于光滑曲线的生成。该算法虽然可以控制轨迹经过哪些路标点,但是没有考虑环境中的障碍物信息(如图中红色方块),不利于做避障。

软/硬约束

  • 硬约束
    在这里插入图片描述
    硬约束要求严格满足上述等式约束或不等式约束。
  • 软约束
    在这里插入图片描述
    软约束将约束加入在目标函数里,即加入惩罚项。

1.硬约束轨迹优化

1.1 Corridor-based 轨迹优化(基于走廊的)

论文名称:Online generation of collision-free trajectories for quadrotor flight in unknown cluttered environments

在这里插入图片描述
算法步骤如下:

  • 建立八叉树地图
  • 使用图搜索方法找到路径,路径经过的节点(即八叉树地图钟的格子)连接起来可以构成走廊,走廊内不包含任何障碍物
  • 将搜索到的走廊沿着坐标轴进行膨胀(路径中的每一个格子),并去掉重复部分
  • 生成轨迹

求解过程类似于Minimum Snap,利用微分平坦将无人机状态空间中的12个变量压缩为4个,并构建多项式轨迹:
在这里插入图片描述
定义目标函数(这里使用Mnimum jerk)
在这里插入图片描述
与minimum snap相比,目标函数的约束没有waypoint(中间节点)的约束,约束改为了走廊的可通行区域。

约束的构建
在这里插入图片描述
Instant linear约束

  • 起点与终点的约束
  • transition point约束(两端轨迹的连接点位于两个方块的交界内)
  • 连续性约束

Interval linear约束

  • 边界约束(使用启发式方法,进行后验检查,检查轨迹是否超出安全区域)
  • 动力学约束(速度、加速度在合理范围内)

关于边界约束和动力学约束

检查给定约束下轨迹(多项式)的极值,然后检查极值是否超过了边界,若超出边界,给定一个更严格的约束,如下图所示:
在这里插入图片描述
上述方法需要迭代求解,然而实际情况中可能出现没有解的情况。

总结
corridor-based 轨迹优化方法存在问题是无法施加全局的安全和动力学可行的约束,一般将这些约束施加在轨迹的若干给定点上,求解完毕后检查极值是否违反约束。若存在违反约束的情况,则给定额外的约束,迭代的求解问题。然而实际使用中需要多次迭代求解,没有解的情况下也需要进行多次迭代。

1.2 Bezier曲线优化

原理
原理是替换多项式的形式:
在这里插入图片描述
Bezier曲线与普通多项式存在一一映射关系,因此可以找到关系使得 p = M ∗ c p=M*c p=Mc
在这里插入图片描述
性质
注:Bezier的系数 c c c称为控制点,有实际的物理意义

  • 一个Bezier曲线一定起始于第一个控制点,终止于最后一个控制点,而不经过其他控制点,例如对于四阶的Bezier曲线
    在这里插入图片描述
  • 一段Bezier曲线一定被其所有控制点围成的凸包包围住
  • Hodograph :一段 n n n次的Bezier曲线 B ( t ) B(t) B(t)求导后的结果 B ′ ( t ) B^{'}(t) B(t)还是Bezier曲线,并且$ B ′ ( t ) B^{'}(t) B(t)的控制点可以写作 n ∗ ( c i + 1 − c i ) n*(c_{i+1}-c_{i}) n(ci+1ci)
  • Bezier曲线的t一定被定义在区间[0,1]

凸包性质的应用
在这里插入图片描述
对于一段轨迹而言,将控制点限制在corridor-based 轨迹优化方法的走廊内,意味着轨迹就被约束在走廊内。同样,轨迹的导数即速度可以利用凸包范围内进行限制,加速度同理。

目标函数的定义
在这里插入图片描述

  • 根据Bezier曲线的第一个性质,连续性约束只需要令两个轨迹相交的控制点相等就可以;
  • 安全性约束即避障可以使用凸包性质实现
  • 动力学约束可以使用凸包性质和Hodograph性质实现
    如上所示,使用Bazier曲线的约束条件仍然为线性等式约束和线性不等式约束,仍然为QP问题。

2.软约束轨迹优化

2.1 Distance-based轨迹优化 (基于距离的)

在这里插入图片描述
硬约束的轨迹优化借助可通行的区域进行轨迹优化,障碍物对可通行区域的影响是一致的,因此生成的轨迹可能离障碍物很近。
软约束的轨迹优化利用障碍物对轨迹形成推力,使其远离障碍物。对目标函数的设计具有较高的要求,它使得约束尽可能满足(无法保证一定满足),因此目标函数设计不好的情况下轨迹可能会撞到障碍物。

问题建模
利用微分平坦性将无人机参数空间进行压缩,并用多项式模拟轨迹
在这里插入图片描述
目标函数定义如下:
在这里插入图片描述
第一项为平滑项、第二项为碰撞项、第三项为动力学约束项。

  • 光滑项可以使用Minimum Snap的求解公式
    在这里插入图片描述
  • 碰撞项,惩罚距离最近的障碍物的距离(对曲线进行积分), c ( p ( t ) ) c(p(t)) c(p(t))为惩罚函数
    在这里插入图片描述
  • 动力学项,惩罚速度和加速度

得到的目标函数不是一个凸函数,需要通过一步步求导求解。光滑项求解见第1部分,碰撞项对自由变量 d p μ d_{p\mu} dpμ求导,得到:
在这里插入图片描述
上式中,F和G分别为
在这里插入图片描述
上式中, L d p L_{dp} Ldp为矩阵 M − 1 C M^{-1}C M1C的右半部分。 V m V_m Vm为位置参数到速度参数的映射矩阵。 T = [ T k 0 , T k 1 , … , T k n ] T=[T_k^0,T_k^1,\dots,T_k^n] T=[Tk0,Tk1,,Tkn]

二阶求导结果为:
在这里插入图片描述

数值优化

基于梯度的数值优化方法,通过 m i n i m i z e f ( x ) minimizef(x) minimizef(x)求得关于 x ( k ) x^{(k)} x(k)的数值序列使得 f ( x ( k ) ) f(x^{(k)}) f(x(k))逼近最优解,或者使 f ( x ) f(x) f(x)的导数为0。有以下求解方法:

  • 一阶法,即梯度下降,向导数的负方向搜索:
    在这里插入图片描述

  • 二阶法,牛顿法:
    在这里插入图片描述

  • LM法:
    在这里插入图片描述

遗传算法是一种基于生物进化理论的优化方法,在优化问题中广泛应用。扫地机器人路径规划作为一种优化问题,可以利用遗传算法来寻找最优路径。首先,我们需要定义适应度函数,该函数用来评估每条路径的优劣,例如路径长度、避开障碍物的能力等。然后,我们随机生成一组初始路径作为种群,再利用遗传算法的选择、交叉和变异操作来不断优化这些路径,直到达到一定迭代次数或者满足优化条件为止。 以下是一个简单的扫地机器人路径规划的遗传算法优化的MATLAB代码: ```matlab % 遗传算法参数设置 popSize = 50; % 种群大小 maxGen = 100; % 最大迭代次数 pc = 0.8; % 交叉概率 pm = 0.1; % 变异概率 % 初始化种群 population = initPopulation(popSize); for gen = 1:maxGen % 评估种群适应度 fitness = evaluateFitness(population); % 选择操作 selected = selection(population, fitness); % 交叉操作 offsprings = crossover(selected, pc); % 变异操作 offsprings = mutation(offsprings, pm); % 更新种群 population = updatePopulation(population, offsprings); end % 找到最优路径 bestPath = findBestPath(population, fitness); % 输出最优路径 disp(['最优路径为:', num2str(bestPath)]); ``` 以上就是一个基本的遗传算法优化扫地机器人路径规划的MATLAB代码,通过不断迭代和优化,最终可以得到最优的路径规划方案。这种方法可以有效解决扫地机器人在复杂环境中的路径规划问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

space_dandy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值