参考线平滑设定
from https://github.com/ApolloAuto/apollo/blob/master/docs/specs/reference_line_smoother_cn.md

二次规划(QP)+样条插值

  1. 目标函数
    1.1 分段寻路路径
    将寻路路径划分为 n 段,每段用2个多项式表示:

x=fi(t)=ai0+ai1∗t+ai2∗t2+ai3∗t3+ai4∗t4+ai5∗t5x = f_i(t) = a_{i0} + a_{i1} * t + a_{i2} * t^2 + a_{i3} * t^3 + a_{i4} * t^4 + a_{i5} * t^5 x=fi​(t)=ai0​+ai1​∗t+ai2​∗t2+ai3​∗t3+ai4​∗t4+ai5​∗t5
y=gi(t)=bi0+bi1∗t+bi2∗t2+bi3∗t3+bi4∗t4+bi5∗t5y = g_i(t) = b_{i0} + b_{i1} * t + b_{i2} * t^2 + b_{i3} * t^3 + b_{i4} * t^4 + b_{i5} * t^5 y=gi​(t)=bi0​+bi1​∗t+bi2​∗t2+bi3​∗t3+bi4​∗t4+bi5​∗t5
1.2 定义样条段优化目标函数

cost=∑i=1n(∫0ti(fi′′′)2(t)dt+∫0ti(gi′′′)2(t)dt)cost = \sum_{i=1}^{n} \Big( \int\limits_{0}^{t_i} (f_i''')^2(t) dt + \int\limits_{0}^{t_i} (g_i''')^2(t) dt \Big) cost=i=1∑n​(0∫ti​​(fi′′′​)2(t)dt+0∫ti​​(gi′′′​)2(t)dt)

1.3 将开销(cost)函数转换为QP公式
QP公式:

12⋅xT⋅H⋅x+fT⋅xs.t.LB≤x≤UBAeqx=beqAx≤b\frac{1}{2} \cdot x^T \cdot H \cdot x + f^T \cdot x \\ s.t. LB \leq x \leq UB \\ A_{eq}x = b_{eq} \\ Ax \leq b 21​⋅xT⋅H⋅x+fT⋅xs.t.LB≤x≤UBAeq​x=beq​Ax≤b
2 约束条件
2.1 平滑节点约束
该约束的目的是使样条的节点更加平滑。假设两个段segkseg_ksegk​ 和segk+1seg_{k+1}segk+1​互相连接,且segkseg_ksegk​的累计值 s 为sks_ksk​。计算约束的等式为:

fk(sk)=fk+1(s0)f_k(s_k) = f_{k+1} (s_0) fk​(sk​)=fk+1​(s0​)
同样地,该公式也适用于下述等式:

fk′(sk)=fk+1′(s0)fk′′(sk)=fk+1′′(s0)fk′′′(sk)=fk+1′′′(s0)gk(sk)=gk+1(s0)gk′(sk)=gk+1′(s0)gk′′(sk)=gk+1′′(s0)gk′′′(sk)=gk+1′′′(s0)f'_k(s_k) = f'_{k+1} (s_0) \\ f''_k(s_k) = f''_{k+1} (s_0) \\ f'''_k(s_k) = f'''_{k+1} (s_0) \\ g_k(s_k) = g_{k+1} (s_0) \\ g'_k(s_k) = g'_{k+1} (s_0) \\ g''_k(s_k) = g''_{k+1} (s_0) \\ g'''_k(s_k) = g'''_{k+1} (s_0) fk′​(sk​)=fk+1′​(s0​)fk′′​(sk​)=fk+1′′​(s0​)fk′′′​(sk​)=fk+1′′′​(s0​)gk​(sk​)=gk+1​(s0​)gk′​(sk​)=gk+1′​(s0​)gk′′​(sk​)=gk+1′′​(s0​)gk′′′​(sk​)=gk+1′′′​(s0​)
2.2 点采样边界约束
在路径上均匀的取样 m 个点并检查这些点的预定义边界。

fi(tl)−xl<boundarygi(tl)−yl<boundaryf_i(t_l) - x_l< boundary \\ g_i(t_l) - y_l< boundary fi​(tl​)−xl​<boundarygi​(tl​)−yl​<boundary

appollo-参考线平滑设定相关推荐

  1. Apollo星火计划学习笔记——参考线平滑算法解析及实现(以U型弯道场景仿真调试为例)

    文章目录 1. Apollo参考线介绍 1.1 参考线的作用 1.2 导航规划的路线 1.3 为什么需要重新生成参考线 1.4 ReferenceLine数据结构 1.5 ReferencePoint ...

  2. 2.参考线平滑算法解析及实现

    星火计划2.0基础课:https://apollo.baidu.com/community/online-course/2 星火计划2.0专项课:https://apollo.baidu.com/co ...

  3. 无人驾驶算法——Baidu Apollo代码解析之ReferenceLine Smoother参考线平滑

    无人驾驶算法--Baidu Apollo代码解析之ReferenceLine Smoother参考线平滑 Apollo 参考线平滑类 reference_line_provider.cc 代价函数 c ...

  4. 参考线平滑-QpSplineReferenceLineSmoother

    Apollo中提供了QpSplineReferenceLineSmoother,即分段五次多项式曲线平滑参考线方法.将其构造成二次规划问题形式,使用OSQP求解.OSQP求解的问题形式如下: m i ...

  5. Apollo planning之参考线平滑算法

    Apollo studio 官网:Apollo开发者社区 (baidu.com) 星火计划2.0基础课:Apollo星火计划2.0_Apollo精品课 (baidu.com) 星火计划2.0专项课:A ...

  6. 百度Apollo代码阅读:参考线平滑FemPosDeviationSmoother

    在Apollo 5.0中,新增加了FemPosDeviationSmoother参考线平滑方法.在reference_line_provider.cc中可以看到,Apollo主要的参考线平滑类有三个: ...

  7. Apollo 参考线平滑方法Fem Pos Deviation Smoother

    配置文件: 平滑器的配置文件 位置: modules/planning/conf/planning.conf –smoother_config_filename=/apollo/modules/pla ...

  8. Apollo:参考线ReferenceLine是如何定义的

    ReferenceLine 位于modules/planning/reference_line/reference_line.h 它是根据高清地图上的map_path_生成的,如下图: 默认情况下,只 ...

  9. Apollo:参考线

    Apollo项目的源码可以从github上获取:ApolloAuto/apollo. 本文中贴出的源码取自2019年2月7日的版本(版本:3.5) 概述 什么是参考线 就是高精地图所提供的道路的中心线 ...

最新文章

  1. 智能家居隐私问题再遭热议:涉案设备中的数据究竟受不受保护?
  2. php函数间参数传递(值传递/引用传递)
  3. python--练习--将字符串转成列表
  4. c语言读取一个图像文件格式,求指导,如何用c语言实现读取*.raw格式图像
  5. idea从git上拉取并管理项目
  6. IntelliJ IDEA mac快捷键
  7. 010-映射诊断环境
  8. oracle for循环_浅谈Oracle的执行计划
  9. 【设计模式】—— 适配器模式Adapter
  10. 【Microstation】不能从对话框中装载/创建类型为 ‘HTML‘,id =41510001 的对话框条目,该对话框为: “文本编辑器 - 字处理器“,GCSDIALOG 已装载。
  11. jetty java web_i-jetty 下的JavaWeb开发(一)
  12. Linux学习之VMware安装Linux
  13. node mysql做项目视频教程_2018最新 自学Node/Node.js/Nodejs视频教程 后端框架Express项目实战...
  14. 软件测试nextdata函数决策表,软件测试NextDate函数决策表测试法实验报告
  15. 传导、辐射和谐波总结,大家共同学习
  16. 将输入的字符串进行大写格式化
  17. 单片机编程软件很简单(20),快速学会keil单片机编程软件
  18. 计算机博士专业目录,tsinghua计算机博士专业目录
  19. 玉溪第一座智能变电站,造国际一流智能配电网,机器人来运维
  20. ubuntu输入法快捷键设置ctrl+shift

热门文章

  1. 全文搜索 full-text search
  2. ACM-ICPC 数论部分总结
  3. Windows下swig安装与配置
  4. java12安装教程(win10)
  5. 【深度学习】使用labelImg标注图像
  6. PHP 7.0+新特性
  7. Python 判断三位水仙花数
  8. Qt开发 VS2019 C2001 常量中有换行符
  9. Oracle日期函数months_between的用法
  10. 运算符之 --- 取余运算 %