2.2 3次样条曲线(Cubic Spline)

type
status
slug
date
summary
tags
category
password
icon
我自狂歌空度日, 飞扬跋扈为谁雄. — 亮剑 楚云飞
🏰代码及环境配置:请参考0.2 环境配置和代码运行 | 动手学运动规划!

上一节说到多项式曲线的缺点: 不管是多少阶的多项式, 能够表达的曲线始终是有限的. 那么有没有什么简单的办法能够克服这个缺陷呢? 插值样条就是一种简单有效的方法.

2.2.1 3次样条曲线定义

3次样条曲线(Cubic Spline), 是一种通过一系列三次多项式来逼近给定数据点集的方法。每个多项式定义在两个相邻的数据点之间,且满足在数据点处及其一阶导数和二阶导数都连续的条件。
简单的说, 它在每两个采样点之间, 构造了一个3次多项式. 这样只要采样点和点之间距离足够近, 理论上可以表达任何曲线.
notion image
我们先从1维的3次样条开始解释, 比如图上的这5个点, 我们在每两个点之间构造一个3次多项式.那么有如下定义:
是第j段样条的起点和终点, 是第j段样条的参数.
很好理解的是, 每段样条有起点和终点的这些约束:
以及第一个点和最后一个点, 我们给的2阶导约束:

2.2.2 3次样条曲线参数求解

带入方程求解样条曲线的参数, 求解:
求解:
将各个样条方程统一放到矩阵中, 求解线性方程组.
求解:
求解

2.2.3 基于3次样条曲线的参数方程

与上一节类似, 我们在x,y两个坐标分别用参数方程, 构造2维的3次样条曲线, 不再赘述.
参数方程下, 计算点的朝向角和曲率:
这样我们就可以在x,y坐标系下使用3次样条进行轨迹规划了.
下一节, 我们会解析和运行代码.
动手学运动规划(Motion Planning)动手学运动规划(Motion Planning)
Loading...
目录
文章列表