路径规划——曲线拟合详解(二):贝塞尔曲线、B样条曲线与QP优化( Fast-Planner算法核心部分)

1. 贝塞尔曲线

(1). 贝塞尔曲线的作用

贝塞尔曲线的作用是给定控制点,通过控制点生成对应的曲线进行轨迹拟合,输入为点,输出为受到控制点约束而产生的轨迹。

(2). 贝塞尔曲线的数学表达式

假设给定N个控制点,得到的为N-1阶的贝塞尔曲线,具体如下所示:

综上,可以推导出N+1个点所控制的N阶贝塞尔曲线表达式:

n阶贝塞尔曲线求导后仍然是n-1阶贝塞尔曲线,控制点为原控制点的组合

(3). 伯恩斯坦基多项式 

可以看作是二项式展开!!!

n阶伯恩斯坦基多项式求导后仍然是n-1伯恩斯坦基函数

(4). 贝塞尔曲线的性质

(5). 贝塞尔曲线的缺点

 2、B样条曲线

下面这个博主视频给我启发很大 

详解样条曲线(上)(包含贝塞尔曲线)-CSDN博客

(1). B样条曲线的优点

和Bezier曲线一样也是通过逼近一组控制点来产生曲线,但是B样条多项式的次数可独立于控制点数目(有一定限制),且允许局部控制曲线或曲面。

(2). B样条曲线的数学表达式

假设有N个控制点:

这些控制点用于定义样条曲线的走向、界限分为,则k阶B样条的定义为:

(3). B样条曲线的递推式 

(4). B样条曲线的性质

B样条多项式的次数可独立于控制点的数目(有一定限制),且允许局部控制曲线和曲面生成曲线,本质上是找一组基,各个点是坐标,线性组合。或者理解为在控制点前添加一个权重,然后累加即可。

3、B样条的导数

先讲clamped B样条

既然B样条是贝塞尔曲线的扩展,那么必然要继承贝塞尔曲线一些优良的性质。贝塞尔曲线的导数还是贝塞尔, B样条的导数还是B样条。

接下来看推导公式:

B样条公式

基函数求导

基函数求导为低一阶的基函数求导

最终的基函数求导

因此,可知,B样条的导数还是B样条, 依然保留B样条的优良特性。

控制点减1,阶数减1,那么节点数目必然是减2. 对于clamped B样条,只要是去除第一个和最后一个节点就ok了,因此clamped B样条的求导还是clamped B样条,这个性质使其方便计算,应用广泛。

4. B样条曲线的应用(Fast-Planner算法)

笔者之前已经深入总结了Fast-Planner算法原理、代码、仿真配置、真机测试的过程,笔记在下面,大家点击跳转即可,吃透Fast-Planner算法基本算是熟练掌握搜索、优化的过程了,希望对大家有所帮助!

(1). Fast算法原理与关键代码

路规算法详细解读(一)—— FAST-Planner重要部分代码解读_fast planner解析-CSDN博客文章浏览阅读1.5k次,点赞7次,收藏26次。由于最近的研究需要,需要对Fast-planner和Ego-planner的代码了解,所以写出这篇代码解读文章,本文持续更新。废话不多说了,上干货!本文基于以下大佬的代码解析基础上去阅读、理解、总结而成。三大主要部分。_fast planner解析https://blog.csdn.net/weixin_43793717/article/details/134360566?spm=1001.2014.3001.5502

(2). Fast算法仿真配置与真机测试

深入解读Fast-Planner算法看这一篇就够!(含Ubuntu20.04 + Ros noetic 环境下 Fast-planner 算法仿真环境的配置与真机效果演示。)_fast planner算法-CSDN博客文章浏览阅读3.6k次,点赞11次,收藏65次。学习Fast-Planner必读文章,本文包含了论文解读、仿真环境配置、真机测试的详细步骤与问题解答,此文是笔者对于Fast-Planner算法理解的叙述与仿真的记录,所有内容皆是原创,假设论文解读已超过万字,所有内容都是笔者一个一个敲出来的,希望对大家理解Fast-Planner算法能够有所帮助。_fast planner算法https://blog.csdn.net/weixin_43793717/article/details/131072185?spm=1001.2014.3001.5501

总结

至此,路径规划——曲线拟合详解结束,到目前为止我们总结了搜索方法、曲线拟合,其实路径规划的核心思想真正意义上来说是优化问题的求解,具体的优化问题解决方法可以跳转到笔者深蓝学院数值优化课程的学习笔记(含有深蓝学院课程PPT),不收费了,大家自取就好。希望笔者的努力能够给入门的朋友带来帮助,如果在看的过程中有什么问题可以留言给笔者,笔者都是手敲内容难免有错,还望大家多多担待~

### 如何在 LaTeX 中调整表格大小 #### 使用 `resizebox` 命令缩放表格 为了使表格适应页面宽度,可以使用 `\resizebox` 命令。此命令源自 `graphicx` 宏包,因此需先加载该宏包: ```tex \usepackage{graphicx} ``` 接着,在定义表格时应用 `\resizebox` 来指定新的尺寸。下面是一个例子,其中 `{0.8\textwidth}` 参数表示将表格按比例缩小到文本宽度的 80%[^1]。 ```tex \begin{table}[htbp] \centering \resizebox{0.8\textwidth}{!}{ \begin{tabular}{|c|c|c|} \hline Column A & Column B & Column C \\ \hline Data 1 & Data 2 & Data 3 \\ Data 4 & Data 5 & Data 6 \\ \hline \end{tabular} } \caption{Example of resized table} \label{tab:resized_table} \end{table} ``` #### 调整字体大小和行距 除了改变整个表格的比例外,还可以通过设置不同的字体大小以及增加或减少行间距来优化布局效果。例如,可以通过更改 `\arraystretch` 的值来调节行高,并利用诸如 `\small`, `\footnotesize` 等命令减小文字字号[^2]。 ```tex \renewcommand{\arraystretch}{1.2} % Adjust row height \begin{table}[htbp] \centering \small % Change font size to small \begin{tabular}{|l|r|} ... \end{tabular} \caption{Table with adjusted text and line spacing} \label{tab:text_line_spacing} \end{table} ``` #### 控制列宽边距 对于特别宽广的数据集,可能还需要考虑手动设定每列表项之间的最小间隔距离 (`\tabcolsep`) 或者采用多栏模式下的跨页表(`longtable`)环境[^4]。 ```tex \setlength\tabcolsep{5pt} % Set column separation space ... \begin{longtable}{p{3cm}|p{7cm}} ... % Long table spanning multiple pages \end{longtable} ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值