软约束和硬约束的轨迹优化
左边是软约束,右边是硬约束
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------分界线
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
基于“走廊”的轨迹优化
这个走廊是指,用bounding box组合成的一个通道,每个bounding box都不包括障碍物但是都包括几乎全部的空闲区域,如下图所示(黄色部分)
然后生成连续的分段多项式轨迹
根据之前的基于A*轨迹生成的方法,要使得分段多项式轨迹的链接点在每对bounding box 的重叠处,但是这也无法保证某段轨迹会一直在安全区域内。所以需要在每次生成轨迹后,再进行检验,然后加入新的约束,保证轨迹在安全的区域内。(检查轨迹点的极值是否在yb在)
这就需要一个求多项式root 的方法,对于高阶的多项式求root,不好求,可以用matlab中提示的方法,将:
多项式求root 转换成 求伴随矩阵特征值的问题。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------分界线
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Bezier Curve Optimization
用Bezier多项式去替代之前的多项式,这样的优势是:保证了一定能取到一个解,而不是通过反复迭代才能判断是否有解。
这就是Bezier曲线
曲线有多少个控制点,Bezier多项式就有多少阶
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------分界线
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
硬约束容易使机器人碰到障碍物,并且这个方法对噪声很明显
不能用凸优化,只能用非线性优化的方法
关键公式入下
学到一个有用的:
非线性优化问题的解决库:ceres 和 nlopt!!!!!!!!!
十四讲中有ceres的介绍