五次多项式进行路径规划的工程化实例应用及C++源码分析

一,根据已知约束条件求解五次多项式表达式

设5次曲线的方程表达式为:

y = c_{0}+c_{1}x+c_{2}x^{^{2}}+c_{3}x^{^{3}}+c_{4}x^{^{4}}+c_{5}x^{^{5}}

y^{,} = c_{1}+2c_{2}x+3c_{3}x^{^{2}}+4c_{4}x^{^{3}}+5c_{5}x^{^{4}}

y^{,,} = 2c_{2}+6c_{3}x+12c_{4}x^{^{2}}+20c_{5}x^{^{3}}

其中:

y^{,} =tan(r)

k=\frac{y^{,,}}{(1+y^{,2})^{3/2}}

其中,r是切线角,k是曲率。

 故上式可写为:

y = c_{0}+c_{1}x+c_{2}x^{^{2}}+c_{3}x^{^{3}}+c_{4}x^{^{4}}+c_{5}x^{^{5}}

y^{,} = c_{1}+2c_{2}x+3c_{3}x^{^{2}}+4c_{4}x^{^{3}}+5c_{5}x^{^{4}}=tan(r)

y^{,,} = 2c_{2}+6c_{3}x+12c_{4}x^{^{2}}+20c_{5}x^{^{3}}=k*(1+y^{,2})^{3/2}

对于五次多项式曲线,只要确定6个量,即可唯一确定曲线的表达式。故根据以下6个已知量:

1,起点和终点的坐标:(x_{s},y_{s}) ; (x_{e},y_{e})

2,起点和终点的方向角:(x_{s},tan(r_{s}));(x_{e},tan(r_{e}))

3,起点和终点的曲率:(x_{s},k_{s}*(1+y^{,2})^{3/2}) = (x_{s},k_{s}*(1+tan(r_{s})^{2})^{3/2})

(x_{e},k_{e}*(1+y^{,2})^{3/2}) = (x_{e},k_{e}*(1+tan(r_{e})^{2})^{3/2})

由上述6个已知量,可获得6个方程,从而求解出(c_{0},c_{1},c_{2},c_{3},c_{4},c_{5}),唯一确定了五次多项式的表达式。

二,离散化五次多项式的表达式

!!!特别特别特别重要的经验:实际工程应用中均是使用离散化点来近似逼近连续曲线,计算机无法表达连续的曲线,连续的曲线表达式主要应用在数学领域。

离散化方式:从起点开始,每次增加固定长度的弧长\triangle l来进行离散化。(不要取固定长度的\triangle x来进行离散化,容易造成离散点分布不均匀的问题,而取固定的弧长则避免了该问题)。

离散化过程举例:

步骤1,根据(x_{i},y_{i})点处的已知条件,求出\triangle x,从而确定x_{i+1}的值。

在任一点(x_{i},y_{i})处:

tan(r_{i}) = \frac{\triangle y}{\triangle x}

sin(r_{i}) = \frac{\triangle y}{\triangle l}

根据上式可得:\triangle x = \triangle l *cos(r_{i}) = \frac{\triangle l}{\sqrt{1+tan(r_{i})^{2}}},其中\triangle l是人为设计的值,故在任一点(x_{i},y_{i})处,可根据r_{i}的值求出\triangle x,从而确定x_{i+1}的值。 

步骤2,根据五次多项式的表达式,一旦确定x_{i+1},则可以根据表达式确定y_{i+1},r_{i+1},k_{i+1}

 循环步骤1,步骤2,直到求出的x_{i+1}大于终点的横坐标x_{end},则循环结束,至此离散化完成。

结果展示:

 源码下载处:

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值