2.4 3次螺旋线(Cubic Spiral Curve)

type
status
slug
date
summary
tags
category
password
icon
应是天仙狂醉,乱把白云揉碎。— 唐 李白
🏰代码及环境配置:请参考0.2 环境配置和代码运行 | 动手学运动规划!

之前介绍的曲线形式, 都是基于参数方程构造的. 这种方法有一个共同的缺点: 对于曲线上的弧长, 曲率, 计算比较困难.
正如上式, 他们需要1阶,2阶导数才能得到曲率信息, 需要做大量的求根运算才能得到弧长. 这毫无疑问需要较大的计算资源. 那么如果某些情况下, 我们会大量的用到曲率和弧长, 有没有办法能够方便的得到呢?
notion image

2.4.1 3次螺旋线定义

3次螺旋线就是这样一种方法, 它是由一个曲率关于弧长的多项式定义的.
是参数, 这样我们可以直接使用弧长s简单的计算曲率.
但是对应的, 计算x, y会变的很麻烦, 需要使用积分. (这就是人生啊~)
假设我们有一个用3次螺旋线表达的曲线, 它的始末状态分别是.
notion image
曲率=切向角的变化率/弧长的变化率. 因此从起始点开始对曲率进行积分可以得到切向角. 很容易可以得到切向角的表达式
接下来我们再计算x,y, 需要通过积分得到:
这样我们有了的完整表达, 但是似乎没有解决问题, 因为积分运算岂不是更复杂?
是的, 我们很难去算这个积分, 但是我们可以求积分的近似值.

2.4.2 辛普森法则(Simpson's Rule)

辛普森法则(Simpson's Rule)是一种数值积分方法,用于近似计算定积分的值。它是基于插值多项式的数值积分方法中的一种,特别地,它使用了二次多项式(抛物线)来逼近被积函数在小区间上的行为。下图的蓝线是原曲线, 红线是逼近的曲线.
notion image
该法则通过将积分区间[a,b]等分为n个小区间(n为偶数),然后在每个小区间内选取三个点(例如,第i个小区间的点),利用这三个点构造一条抛物线,以此抛物线的积分值来近似表示该小区间内被积函数的积分值。最终,将所有小区间的积分值相加,得到整个积分区间的近似积分值。
notion image
这个动图能够更加直观的解释这个过程, 每3个点构造一个二次多项式, 然后对二次多形式积分.
表示采样点的间距, 可以明显看出来采样点越密集, 整体误差越小. 当然相对的, 计算量越大.
辛普森法则的计算公式有多种形式,其中较为常见的是辛普森1/3法则和辛普森3/8法则。我们使用辛普森1/3法则:
代表在区间内切割成多少份. 我们设定, 将辛普森法则应用到的积分中, 得到积分的近似解.
这样, 我们就得到了最终的表达式.
下一节, 我们会解析和运行代码.

参考链接

动手学运动规划(Motion Planning)动手学运动规划(Motion Planning)
Loading...
目录
文章列表