热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【Autoware】OpenPlanner论文阅读参数介绍

文章目录前言参考与引用前部分5.2CostCalculation6BehaviourGenerationUsingStateMachine前言Autoware这边也匆忙正式结项了,




文章目录


  • 前言
    • 参考与引用

  • 前部分
  • 5.2 Cost Calculation
  • 6 Behaviour Generation Using State Machine


前言

Autoware这边也匆忙正式结项了,这OP也是最后一个flag… 在仿真里进行了测试,但是时间匆忙总觉得没有理解透,看了论文把主要和调参有关的提取出来了,因为是notion转markdown所以格式可能比较丑,介意的话,可以自行点击 notion外链: https://www.notion.so/kinzhang/Open-Planner-030ff7a9e7af4dca9c936ee274b3dd48

之前的一系列关于Autoware的总结:


  1. 【Autoware】Autoware安装教程
  2. 【Autoware】之ndt_mapping理论公式及代码对比
  3. 【Autoware】Ubuntu 18.04 ssdcaffe安装与Autoware 检测节点运行


b站的一系列操作视频:
  1. 【Autoware与Carla】OpenPlanner 仿真示意 无避障
  2. 【Autoware】建图ndt_mapping示意
  3. 【Autoware与Carla】OpenPlanner 仿真示意 带避障

至此Autoware的小部分探索可能到此结束了,有关几个问题的回复:


  • 为什么用Carla做仿真,不用lgsvl
    因为… 我对Carla比较熟
  • 后面还会发布有关Autoware的嘛?
    应该会 因为… 还有很多东西没总结,但是建议做的同学可以自行多看代码,真的是一个比较好的入门大礼包… 建图、定位、感知、规划一应俱全,就是调参可能有点费劲,如果是带着仿真,有时候和仿真的联合也需要考虑(比如carla的时间同步机制坑了我一上午 看现象以为是规划没跟上)

最后:包括这篇和前面的很多篇,可能都有遗留的一系列问题,欢迎大家评论区自行讨论… 如果有空/我知道的话 我也会尽量留言的,后面主要去准备毕业论文选题啥的去了… 探索其他cs285、carla系列、论文阅读应该还会继续的,以上,谢谢观看了;另外致谢Autoware的整个团队对于这个.ai系列的开源工作!TQL!!!


参考与引用


  1. Autoware Github地址: https://github.com/Autoware-AI
  2. OpenPlanner 论文地址: https://www.fujipress.jp/jrm/rb/robot002900040668/

前部分

关于此图片提到的,有在界面里进行设置:
请添加图片描述
在这里插入图片描述


The closest section to the vehicle is the car tip margin, which is the distance from the center of the robot to the point of lateral sampling, the length of which determines the smoothness of steering when switching between trajectories.



The next section is called the roll-in margin, which is the distance from the outer limit of the car tip margin to the point of parallel lateral sampling, the length of which is proportional to the vehicle’s velocity. The faster the vehicle is traveling, the longer this section should be to generate smooth change.



The section farthest from the vehicle is called the roll-out section, which runs from the outer limit of the roll-in zone to the end of the length of the local trajectory.


原始参数设置是在:op_trajectory_generator这个节点


  • 有待看具体的代码 看看单位是m嘛?如果是m会不会太长了一点

  • 下面这里最大规划距离maximum planning distance应该怎么确定?


    • 在common参数里有Path distance,确定一下是否是这个
  • 这里的垂直路径点是指?垂直于什么的?垂直区域的话就直接指向天了

    这里指出了横向距离是0,所以为啥还要写垂直路径点,直接longitudinal不就行了?

使用局部路径规划算法生出roll-outs的时候有三个步骤


  1. 利用现在的位置和最大规划距离从全局路径中提取interest区域

  2. sample 新的垂直路径点对应于全局路径中提取的区域,sample的点是从car-tip margin处出发的,但是横向的 lateral距离是0,然后再sample延伸到roll-in区域的边界,再根据有的路径计算roll_out density

  3. 使用conjugate gradient平滑每一个sampled的轨迹,conjugate gradient是一种非线性 non-linear iterative optimization technique 消除在sample过程中roll-outs之间的不连续的问题
    这同时也improve curvature使得转弯更顺滑

    然后trajectory vertices的密度【很好奇这里为什么不是waypoint density】是通过piece wise interpolation 计算得到的【但是没有看到哪里可以调整这个的地方】

    很多参数化的插值方法都对input noise非常敏感,从而影响到输出(比如cubic splines 在输入点距离较近时,输出会有随机的较大的震荡现象;所以这里使用的方法是结合piece wise interpolation和conjugate gradient smoothing去得到更为平滑的轨迹。因为我们输入了vectormap,结果的轨迹通常都满足了kinodynamic【但是如果vectormap的lane画的转弯半径小 那输出轨迹可能会不满足吗?】


5.2 Cost Calculation

这里主要讲的是避障,obstacle avoidance is the process of selecting the best possible trajectory from the roll-outs generated

输入:roll-outs的轨迹 和检测到的障碍物【会对障碍物在vectormap的某个区域有限制吗?】

输出:selected trajectory

示意图

所以我们需要additive cost function去评估每个轨迹,normalized cost measurements:


  • Priority cost:[后面写的是center cost] 每一个roll-out出来的轨迹都会计算一下到这条路中心线的距离作为cost值
  • Collision cost:
    1. 计算每个生成的路径与障碍物contour point的距离,因为最后的轨迹都是平行于中心轨迹的 所以我们不需要对roll-in的轨迹进行测试;测试使用"point inside a circle" 也就是每一个contour edge提高一个测试点,以此点最近的【论文里没说】waypoint作为中心,半径=半个车宽+detection margin error
    2. 在roll-in后计算轨迹与检测到的障碍物的距离【咦和上一点有什么区别嘛?】计算检测到的障碍物的contour point到中心轨迹的距离,使用从每个轨迹到中心轨迹的signed distance去得出collision cost【这里的sigened distance是啥】
  • Transition cost: constrains the vehicle from jumping roll-outs 这可以使得转弯更顺滑,计算方法就是normalized perpendicular distance between roll-outs and currently selected trajectory

关于输入的障碍物,Autoware的实现在core_perception包里,两种类型:bounding boxes 和cluster of point cloud


  • Bounding boxes的一直没有输出 建议再次检查一下原因 April 28, 2021

    直接拿了groud_truth来做的; July 3, 2021 后面做纯点云识别的时候,发现可能是点云的稀疏程度的原因,也就是Autoware本身拿的64线激光雷达,但是我们是16线的(Carla仿真当时用的也是16线的)

为了保证精度和performance


  • bounding boxes 可以提高检测障碍物的过程
  • Cluster 可以提高精度但是degrades performance drastically

所以trade-off是:使用小部分sample的contour point from cluster,然后每个障碍物最多用16个点来表示【咦咦咦咦!!】

题外话:如果是传统机器人方法是可以直接cluster of point cloud然后走到costmap再到global 是混合A*

这个max number of contour point也是可以调整的一个参数


Max number of contour point: increasing this number we can achieve finer representation, lead more accurate obstacle avoidance


在这里插入图片描述

比如这里是8个contour point来构成的【emmm 那为啥我没输出呢!→ 因为filter cluster最后出来只有两个点了】contour point的计算流程:


  1. 将xy平面分成n个区域
  2. 找到每个点距离中心点的距离和角度,使用角度来划分每个contour point属于哪个区域
  3. 然后选择最后的contour point 也就是每个部分离中心点最远的点,连起来

6 Behaviour Generation Using State Machine
  1. 当障碍物距离我们很近时,行为规划器会将我们的状态在swerve 和follow之间转换。然后counter and timer会帮助打破这个循环切换的模式
  2. 当交通灯从红到绿,而检测交通灯不那么可靠时,就需要多次接收signal来保证信号灯状态的可靠性并切换车辆状态,所以在初始化行为规划器的时候我们会设置minimum transition time,然后状态自身会运行除非是遇到了a set amount of time elapsed或是紧急情况

其中一些比较浅显的我就不列入表格中了,可以自行到各自代码的调用出查看 使用条件


参数解释
path density两个waypoint点之间的距离,如果是0.5的话 就是生成的点之间距离0.5m
Plan Distance局部规划的最远距离(默认是80m 但是 因为传感器的限制 其实40m 估计都足以)
Rollouts Number也就是第一部分提到的lattice分出来的支干有多少,在视频里我设置的是8,不然不好切换道路
Follow Distance跟随距离 但是我没用到 没感觉的一个参数(因为会超车)
Avoiding Distance躲避距离 用了 设的比较远(15-20m)这样可以早一点开始避障
Avoidance Limit
Lateral Safety横向安全距离 建议设大一点 比如1m-2m 不过不用太大了 不然开出车道外面去了
Longitudinal Safety纵向安全距离 没感觉的一个参数(因为会躲避)
Distance to closest lane也就是多近之内的waypoint算数
Prediction distance预测的距离 25m其实算远的了 一般看激光雷达的最远测距(但是我仿真直接用的直值)
Enable Particle Filter prediction开启粒子滤波预测?具体代码我没找对应(可以找一下)TODO (但是需要勾选)


推荐阅读
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 本文介绍了UVALive6575题目Odd and Even Zeroes的解法,使用了数位dp和找规律的方法。阶乘的定义和性质被介绍,并给出了一些例子。其中,部分阶乘的尾零个数为奇数,部分为偶数。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
author-avatar
好天气
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有