Bezier Curve Optimization

核心

  • 利用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段,从而避免段与段之间的连续性分析。

Search

    欢迎添加我的微信

    闷骚的程序员

    Table of Contents