首页 > 其他分享 >规划类知识树

规划类知识树

时间:2023-02-20 16:58:11浏览次数:21  
标签:loss 轨迹 函数 代价 规划 知识 速度 优化

  1. 基于神经网络启发式函数的Hybrid A*

  2. openplanner(autoware + 静态存跟踪)

  3. fastplanner

  4. EM planner(appollo)

  5. ros_navigation功能包,astar+动态dwa/动态TEB

  6. luba(静态jps+静态存跟踪)

  7. lexicographic_planner

  8. 代价函数
    一般考虑路径长度、曲率平滑度、速度平滑度、车辆偏离车道中心线(目标位置距离)、与障碍物的距离、安全性、对车辆的压力等等
    L2 loss代价函数、L1 loss代价函数、Huber loss代价函数、Barrir loss代价函数、绝对值平方V型函数、二元一次抛物线函数、一元二次直线函数、TEB的五个目标函数
    比例分权方法求总的代价【本质用在最优控制中的多准则问题】,比例分权方法的一般套路如下:

9.工程常用方法:线性加权法–如上面的计算路径长度和路径平均曲率两个目标的代价线性加权法并没有用到优化的知识–从多选优
10.学术常用方法:利用了优化理论的NSGA、Pareto最前沿

  1. 梯度下降优化
    11.1 轨迹优化问题通常建模成一个带约束的二次规划(QP)问题来求解,优化函数可以是snap、jerk、acceleration或其他能够形成QP形式的函数
    将轨迹规划问题建模(fomulate)成一个约束优化问题,通过最优化的方法求解出目标轨迹参数 p

    做法:将优化问题中的f§函数和Aeq,beq,Aieq,bieq参数给列出来,然后丢到优化器中求解轨迹参数p

11.2 一般的约束条件

  • 希望设定起点和终点的位置、速度或加速度
  • 希望可以设定在途中机器人的最大速度、最大加速度
  • 希望相邻轨迹连接处平滑(位置连续、速度连续等)
  • 希望轨迹经过某些路径点
  • 希望轨迹在规定空间内(corridor)
  • 希望轨迹在可行通道corridor内

11.3 优化器:

  • NLopt:仅包含 不假定凸性的常规方法;如果您遇到了凸的问题,最好使用其他软件包,例如Stanford 的
    nlopt一般是用来解非线性优化问题的,一般是实现梯度下降的方法
    1. 处理基于约束的优化(等式、不等式、有界等不同的约束极值)、参数的优化的问题
    2. 对一个问题尝试不同的算法,调整一个参数就行
    3. 支持全局优化和局部优化
    4. 支持常见的需要导数和不需要导数的多种算法
  • Mosek【学术用】
  • OOQP【非常好但是优点老】
  • OSQP:OSQP 算法的核心是ADMM算法(交替方向乘子法)
  • GLPK
  1. frenet坐标系
    12.1 ST图(纵向速度规划)
    ST图可以帮助我们设计和选择速度曲线,“s”表示车辆的纵向位移,“t”表示时间,ST图上的曲线是对车辆运动的描述,因为它说明了车辆在不同时间的位置,由于速度是位置变化的速率,因此可以通过曲线的斜率从ST图上推断速度,斜坡越陡说明在短时间内有更大的移动对应更快的速度

    12.2 SL图(横向位移规划)
    SL图表示了车辆在不同的纵坐标上的横向位移,反映在不同纵向

    12.3 若在高速的场景中

标签:loss,轨迹,函数,代价,规划,知识,速度,优化
From: https://www.cnblogs.com/penuel/p/17137685.html

相关文章

  • css的z-index和微信小程序的API及React知识点
    变量的三个基本要素:类型+名称+值 devDependencies与dependencies区别:devDependencies里面的依赖只用于开发环境,不用于生产环境。而dependencies依赖的包不仅开发环......
  • 【软件设计师】知识点汇总
    正在施工!最新更新时间:2022-05-1015:51:40星期二符号说明:......
  • 线程的一些入门知识
    1.创建线程   A.继承Thread父类      重写run方法,在run方法中实现线程的任务            启动线程,调用start方法      B.实现接......
  • 【C/C++】知识点
    序链接备注1C语言0长度数组(可变数组/柔性数组)详解_CHENGJian的博客-CSDN博客_0数组 2     ......
  • 基础知识-数据包和帧
    什么是数据包和帧数据包和帧是小块数据,当它们组合在一起时,会形成更大的信息或消息。但是,它们在OSI模型中是两个不同的东西。帧位于第2层-数据链路层,这意味着没有IP......
  • Mybatis_缓存知识
    应用程序与数据库进行交互,相对耗时,通过缓存查询结果,可以在一定程度上减少此耗时。  在SQL映射文件中,一个select标签对应的一个statement对象。(以下session指的是SqlS......
  • 指针和字符串基础知识
    #include"stdafx.h"intmain(intargc,char*argv[]){//定义字符串的第一种方式,此种定义的字符可修改chara[]="it";a[0]='T';printf("%s\n",a);//定义字......
  • 指针和数组基础知识
    /*数组元素的访问方式1、数组名[下标]2、指针量名[下标]3、*(p+i)p+1,指针+1,则指针指向的地址加4*/#include"stdafx.h"voidchangeNum(int*array);intmain(intargc,char......
  • JavaScript知识汇总
    1JavaScript功能直接写入HTML输出流(在HTML输出中使用document.write,如在文档加载后使用该方法会覆盖整个文档)对事件进行响应(如鼠标事件、键盘事件等)改变HTML内......
  • HTML入门知识点
     一:HTML元素 <html><body><h1>我的第一个标题</h1><p>我的第一个段落。</p><ahref="http://www.w3school.com.cn">Thisisalin......