核心
-
利用Bernstein polynomial轨迹表达式代替一般的polynomial轨迹表达式。
-
轨迹原始表达式
-
Bernstein polynomial轨迹表达式
-
其中,表示该段轨迹的序号,表示时间。
-
另外,原始表达式中为多项式的系数,没有实际的物理意义。而Bernstein polynomial轨迹表达式中的具有实际的物理意义,即控制点的坐标。
-
性质
-
Endpoint interpolation
在给出一系列控制点后,对应的Bezier曲线只保证穿过第一个和最后一个控制点,中间的其他控制点不要求穿过,但会对bezier曲线的形状产生影响。
-
Convex hull
生成的Bezier曲线一定不会超出由控制点形成的凸多边形的包围框。
-
Hodograph
的导数依然是一个Bezier曲线,且该曲线的控制点为。
-
Fixed time interval
Bezier曲线的时间永远定义在[0,1]区间内。
工作流程
-
求解飞行走廊
- 构建栅格地图(比较好的比如八叉树格式),存储和搜索效率较高。
- 在栅格地图中利用A*算法求解无碰撞路径。
- 对路径中经过的每个栅格进行膨胀,四个边向四周扩张,直到遇到障碍物停止,形成安全走廊。若相邻两个安全走廊是一样的,就合并为一个。
- 得到一串有序的安全走廊。
-
基于飞行走廊和Bernstein多项式的轨迹优化
- 起点状态和终点状态等式约束
- 相邻两段轨迹的连接点处的状态连续性约束
- 相邻两段轨迹的连接点需要处于对应的两个安全走廊的重叠区域内
- 满足动力学(速度、加速度)约束,只要保证的导数表达式和的控制点在、和、内。
扩展
-
基于B-spline的多项式表达,Bezier是一种特殊的B-spline。B-spline自动分段,不需要人为将完整轨迹分为N段,从而避免段与段之间的连续性分析。