欢迎关注微信公众号《不想做科学家的工程师不是好码农》

样条曲线的思想是把一个长线分成N段,每段用一个多项式去表示,本文为了简化公式书写,示例中均使用三次多项式表示,实际算法中阶数根据需求不同有不同定义。

各段多项式所描述的线段还要保证在衔接处相连。为了保证曲线整体平滑性,各衔接处的一阶导、二阶导也要连续。

下面讲解如何运用样条曲线平滑frenet下的离散路径。在frenet坐标系下,实际行驶的离散路径可以表示为g[s],s表示从起点开始沿参考线(通常为道路中心线)行驶的累积里程,g[s]表示在该里程s下路径距离参考线的距离。g[s]可以用常用的离散路径规划算法获得。本文讲解如何在已经获得离散路径g[s]的前提下,对离散路径g[s]进行平滑,获得连续的平滑路径f(x)。

令f(x)为样条曲线,由N段曲线相连构成,每段曲线的表达式为

假设离散路径g[s]在每段
内有M个离散点,
在这M个点的位置采样。如果我们想求得曲线f(x)离离散路径最近,则样条曲线的每段表达式的目标函数可以设置为

因为

为常量,不影响求最优解,将其去除。每段分段函数
的x都是从0开始的自变量,在采样点的取值即为在此采样段的距离,这样只要采样间隔确定,
就可以固定,进而
也可以固定,而
又是已知值。故目标函数可表示为关于样条函数各系数的表达式:

其中,X为

,C为

接下来构造约束方程。之前讲过,样条曲线各段多项式所描述的线段还要保证在衔接处相连,同时为了保证曲线整体平滑性,各衔接处的一阶导、二阶导、三阶导也要连续。约束等式如下:

因为通常平滑后的起点终点要和原离散路径保持一致,故还需加入起点终点约束:

平滑的过程中,还需保证平滑后的路径不超出一定范围,以及不和障碍物发生碰撞,所以还要添加各处边界约束,注意需要找出约束对应样条函数的自变量值x:

至此,基于样条曲线对离散路径进行平滑的模型建立完毕,求解出样条曲线各段表达式系数,即可把离散路径表示为连续路径。

自动驾驶算法工程师一枚

欢迎勾搭

样条曲线_Apollo规划算法基于样条曲线的平滑分析(一)相关推荐

  1. [运动规划算法]基于飞行走廊的轨迹优化

    文章目录 简介 一.介绍 二.原理 飞行走廊生成 三.项目演示 参考 简介 Btraj是一个在线的四旋翼无人机的运动规划框架,主要用于未知环境中的自主导航.基于机载状态估计和环境感知,采用基于快速行进 ...

  2. [运动规划算法]基于似然场的快速避障算法

    文章目录 一.简介 二.原理 1. 问题描述 2. 概率模型 3. 局部概率 4. 全局概率 5. 方法实现 三.项目演示 参考 一.简介 这是一种在复杂环境中实现快速自主飞行的规划方法.通常,在复杂 ...

  3. 【自动驾驶】基于采样的路径规划算法——PRM(含python实现)

    文章目录 参考资料 1. 基本概念 1.1 基于随机采样的路径规划算法 1.2 概率路图算法(Probabilistic Road Map, PRM) 1.3 PRM算法的优缺点 1.4 PRM算法伪 ...

  4. Field D*路径规划算法

    Field D*路径规划算法 1.栅格法路径规划存在的问题 2.Filed D*算法主要思想解析 3.Filed D*算法伪代码 4.算法优化 5.算法总结 参考文献 搜索算法其他文章 紧接着上一篇D ...

  5. 常用的路径规划算法浅析

    路径规划 所谓路径规划,也就是在起点和终点之间找到一条连续的运动轨迹,在尽可能优化路径的同时避开环境中的障碍物. 常用的路径规划算法有传统的基于图搜索算法.基于采样的路径规划算法,以及考虑动力学的路径 ...

  6. 机器人学习--路径规划算法

    参考网址:https://mp.weixin.qq.com/s?__biz=MzI5MDUyMDIxNA==&mid=2247520667&idx=3&sn=47ee67915 ...

  7. [运动规划算法]Fast-tracker分析

    标题:Fast-Tracker: A Robust Aerial System for Tracking Agile Target in Cluttered Environments 作者:Zhich ...

  8. 走好每一步,基于C实现机器人运动学建模与标定、运动规划、轨迹规划算法

    走好每一步,基于C实现机器人运动学建模与标定.运动规划.轨迹规划算法 废话 综述 一:C部分 初始C语言 Chapter2-4:基本数据类型 Chapter5-7:运算符.表达式.循环.分支与跳转 C ...

  9. 基于群智能的路径规划算法(三)------遗传算法

       本系列文章主要记录学习基于群智能的路径规划算法过程中的一些关键知识点,并按照理解对其进行描述和进行相关思考.    主要学习资料是来自 小黎的Ally 的 <第2期课程-基于群智能的三维路 ...

最新文章

  1. 201621123037 《Java程序设计》第10周学习总结
  2. tableau应用实战案例(五十)-销售业绩的tableau可视化案例
  3. 科大星云诗社动态20210123
  4. 通话录音_iOS14,通话录音终于来了!
  5. 戴尔服务器改win7系统,戴尔dell预装win10怎么改win7系统
  6. spring 整合mongodb报NoSuchMethodError错误
  7. python中str是什么函数_python str函数怎么用
  8. 使用visio 提示此UML形状所在的绘图页不是UML模型图的一部分 请问这个问题怎么解决?...
  9. 为何python不好找工作-谁说Python找工作难?人生苦短,Python工程师你们还好吗?...
  10. CodeForces - 721E
  11. API文档和代码片段管理器:​​​​Dash
  12. java Runtime
  13. CSS3+jquery实现图片万花筒3D旋转动画特效
  14. R语言之 as.formula()
  15. 不需要下载7-zip 解压 7z.001 7z.002 7z.003
  16. 成都二手房长啥样 —— 基于链家数据
  17. ISME:二型糖尿病患者中与牙周炎相关的龈下菌群
  18. BTS50010-1TAD总结特点
  19. Windows(Win7)下用Xming实现X11图形界面功能
  20. 三款常用接收机架构之间的PK

热门文章

  1. 前端vue项目开发流程
  2. install opencv from source
  3. 新版开发工具?全新智能设备?华为开发者大会2021(Together)来了!
  4. 6 岁就成“大厂团宠”,这门编程语言竟引 Linux、谷歌、亚马逊共“折腰” !
  5. 面试官:Object o = new Object() 占用了多少字节?
  6. 深度揭秘垃圾回收底层,这次让你彻底弄懂它
  7. BAT警示:没试过这个方法就别说会数据分析!!
  8. 以“智变”应万变,揭秘新华三六大数字化解决方案!
  9. 腾讯广告计算提速25%,腾讯云星星海SA2云服务器提供助力
  10. 数据分析师 vs 算法工程师,Python 出身的程序员如何抉择?