当前位置: 首页 > news >正文

自动驾驶轨迹规划之碰撞检测(三)

欢迎大家关注我的B站:

偷吃薯片的Zheng同学的个人空间-偷吃薯片的Zheng同学个人主页-哔哩哔哩视频 (bilibili.com)

目录

1.基于圆覆盖

2.BVH

3.MATLAB自动驾驶工具箱 

4 ROS内置的模型


自动驾驶轨迹规划之碰撞检测(一)-CSDN博客

自动驾驶轨迹规划之碰撞检测(二)-CSDN博客

大家可以先阅读前两篇关于碰撞检测算法的介绍 

1.基于圆覆盖

圆的性质是圆心到圆周各点等距,这非常适合碰撞检测,如果两个物体能近似为圆,那么两个物体之间是否碰撞,则可以利用两个圆心之间的距离是否大于半径之和就可以判断,但是大部分物体若用圆去近似将产生较大的冗余部分,因此针对汽车,一篇2010年的IEEE IV提出通过多个圆去覆盖车辆,这个方法极大地提高了自动驾驶汽车碰撞检测的计算速度,也是现在广泛使用的方法

但是这个方法仍旧会产生冗余,并且改变覆盖圆的个数难以解决这个问题,因为横向和纵向上的冗余是此消彼长的关系,并且我个人认为汽车最容易发生碰撞的位置其实是汽车的四个角落,但是这种方法在那个地方没有安全距离,如果在圆的半径上补充安全距离,会导致其他地方的冗余距离更大,因此这个方法对于非常狭窄的空间还是不适用的

2.BVH

BVH为层次包围盒,通过递归地形式将碰撞检测的任务分解,当大包围盒之间有碰撞,则检测子包围盒之间有没有碰撞,这能够同时提升碰撞检测的精度和速度,但是基于BVH的碰撞检测取决于待检测物体的形状,每个基元都应该预先计算并存储在阵列中。

BVH的一个较好应用可以看这个视频,这篇论文实现了同时提升自动驾驶汽车碰撞检测的精度和速度,能够良好地应用于狭窄的自主泊车中

ITSC2023 | 碰撞检测 | 一种在狭窄空间内自动驾驶汽车自主泊车时的快速准确的碰撞检测方法

3.MATLAB自动驾驶工具箱 

在MATLAB中也实现了基于圆覆盖的碰撞检测算法,同时碰撞检测通过栅格地图实现,详细内容可以参考官方给出的自动驾驶工具箱的相关文档

Costmap representing planning space around vehicle - MATLAB - MathWorks 中国

4 ROS内置的模型

对于ROS中的碰撞检测,很多参加智能车或电赛的同学可能比较熟悉,但其实也存在不少误区,有时候不是调参调不出来,而是没有真正理解这些参数的意义

robot_radius:设置机器人的半径,单位是米。如果你的机器人不是圆形的那就需要使用footprint这个参数,该参数是一个列表,其中的每一个坐标代表机器人上的一点,设置机器人的中心为[0,0],根据机器人不同的形状,找到机器人各凸出的坐标点即可,具体可参考下图来设置:

inflation_layer:膨胀层,用于在障碍物外标记一层危险区域,在路径规划时需要避开该危险区域

  • 当你选用了footprint,那么膨胀层就没有意义了,因为只有你是圆形的,障碍物才能进行有意义的闵可夫斯基和运算
  • 同时footprint是利用多边形计算代价,在耗算力,如果为了节省算力,可以用圆,冗余的部分当做缓冲就行
  • 如果你发现怎么调膨胀距离都会碰,因为膨胀层仅在圆形时有效,因此为了使用有安全距离的footprint,必须直接扩大footprint

通过下图来认识下为何要设置膨胀层以及意义:

虽然我提到footprint情况下膨胀层没用,但是对于全局路径规划,ROS中默认机器人为质点,这时候膨胀层非常有用,假如你全局路径规划贴边走,那么对于实际机器人完全是碰撞的,这时候就需要膨胀障碍物了

相关文章:

自动驾驶轨迹规划之碰撞检测(三)

欢迎大家关注我的B站: 偷吃薯片的Zheng同学的个人空间-偷吃薯片的Zheng同学个人主页-哔哩哔哩视频 (bilibili.com) 目录 1.基于圆覆盖 2.BVH 3.MATLAB自动驾驶工具箱 4 ROS内置的模型 自动驾驶轨迹规划之碰撞检测(一)-CSDN博客 自动驾…...

如何用pandas处理财报数据删除金融行业数据

要删除财报数据中的金融行业数据,您可以按照以下步骤使用pandas进行处理: 导入pandas库: import pandas as pd读取财报数据文件: df pd.read_csv(财报数据.csv)查看数据中的行业分类列: print(df[行业分类])确定金…...

oracle 19c容器数据库data dump数据泵传输数据(4)---网络传输

Transporting a Database Over the Network: Example 这个的方式导入可以不需要传输dmp文件,我原本是想从11g导入到pdb2的,但是因为版本的原因,就直接实验从pdb1导入到pdb2吧。 这种方式和前面完全传输的方式类似,不需要事先在目…...

IP 网络分为接入网、城域网和骨干网

根据前述的IP 网络设计思想,结合算力网络对 正网络的需求分析,卫网络的具体实现可以从架构设计利网络技术两个方面进行总体设计。 首先从架构设计上考虑,架构应尽量简化,做到“以简应繁”。因此,整体网络架构不宜设计…...

web3.0基本概念简析

web3.0概念简析 web3.0的发展史 web1.0 仅用于展示,无法进行点赞评论等交互 web2.0 不仅可以展示,还可以上传视频、图片等,用户可以参与创作内容并获取收益。但还是中心化的模型 缺点 1 机械化的人机验证 2 账户安全无法保证 多年未登陆…...

Linux/Traceback

Enumeration nmap 使用nmap初步扫描发现只开放了22和80端口&#xff0c;端口详细扫描情况如下 先看看web是什么样子的&#xff0c;打开网站发现有一条留言&#xff0c;显示该站点已经被黑了&#xff0c; 并且留下了后门 查看源代码&#xff0c;可以看到下面的注释 <!--So…...

陶瓷碗口缺口检测-图像分割

图像分割 由于对碗口进行缺口检测&#xff0c;因此只需要碗口的边界信息。得到陶瓷碗区域填充后的图像&#xff0c;对图像进行边缘检测。这是属于图像分割中的内容&#xff0c;在图像的边缘中&#xff0c;可以利用导数算子对数字图像求差分&#xff0c;将边缘提取出来。 本案…...

2023年第十四届蓝桥杯软件赛省赛总评

报名明年4月蓝桥杯软件赛的同学们&#xff0c;如果你是大一零基础&#xff0c;目前懵懂中&#xff0c;不知该怎么办&#xff0c;可以看看本博客系列&#xff1a;备赛20周合集 20周的完整安排请点击&#xff1a;20周计划 每周发1个博客&#xff0c;共20周。 在QQ群上交流答疑&am…...

Redis面试大全

1、什么是Redis? Redis是完全开源免费的&#xff0c;遵守BSD协议&#xff0c;是一个高性能的key-value数据库。 Redis与其他key-value缓存产品有以下三个特点&#xff1a; Redis支持数据的持久化&#xff0c;可以将内存中的数据保存在磁盘中&#xff0c;重启的时候可以再次…...

MFC为资源对话框添加消息处理函数和初始化控件

现在我VC6新建了一个对话框工程&#xff1b;又在资源添加了一个新的对话框&#xff0c;并为新的对话框添加了名为CTestDlg的类&#xff1b; 在主对话框的cpp文件包含#include "TestDlg.h"&#xff1b; 在主对话框的cpp文件的OnInitDialog()成员函数中&#xff0c;添…...

7.6 MySQL基本函数的使用(❤❤❤)

7.6 MySQL基本函数的使用 1. 提要2. 数字函数3. 字符函数3.1 替换字符3.2 左填充字符及截取字符串 4. 日期函数4.1 日期函数4.2 表达式占位符4.3 日期偏移计算4.4 日期间隔 5. 条件函数5.1 IF语句5.2 case...when语句 1. 提要 2. 数字函数 3. 字符函数 3.1 替换字符 -- INSERT…...

《Redis:NoSQL演进之路与Redis深度实践解析》

文章目录 关于NoSQL为什么引入NoSQL1、单机MySQL单机年代的数据库瓶颈 2、Memcached&#xff08;缓存&#xff09; MySQL 垂直拆分 &#xff08;读写分离&#xff09;3、分库分表水平拆分MySQL集群4、如今的网络架构5、总结 NoSQL的定义NoSQL的分类 Redis入门Redis能干嘛&…...

npm依赖库备份

常用命令 设置默认使用本地缓存安装Nodejs时会自动安装npm&#xff0c;但是局路径是C:\Users\Caffrey\AppData\Roaming\npm默认的缓存路径是C:\Users\Caffrey\AppData\Roaming\npm-cache&#xff1b;查看npm的prefix和cache路径配置信息设置路径 设置默认使用本地缓存 npm con…...

Python进程池multiprocessing.Pool

环境&#xff1a; 鲲鹏920:192核心 内存&#xff1a;756G python&#xff1a;3.9 python单进程的耗时 在做单纯的cpu计算的场景&#xff0c;使用单进程核多进程的耗时做如下测试&#xff1a; 单进程情况下cpu的占用了如下&#xff0c;占用一半的核心数&#xff1a; 每一步…...

[leetcode~数位动态规划] 2719. 统计整数数目 hard

给你两个数字字符串 num1 和 num2 &#xff0c;以及两个整数 max_sum 和 min_sum 。如果一个整数 x 满足以下条件&#xff0c;我们称它是一个好整数&#xff1a; num1 < x < num2 min_sum < digit_sum(x) < max_sum. 请你返回好整数的数目。答案可能很大&#xff…...

【Vue3】2-13 : 章节总结

本书目录&#xff1a;点击进入 一、总结内容 二、习题 2.1 【选择题】以下Vue指令中&#xff0c;哪些指令具备简写方式&#xff1f; 2.2 【编程题】以下Vue指令中&#xff0c;哪些指令具备简写方式&#xff1f; &#xff1e; 效果 &#xff1e; 代码 一、总结内容 了解核…...

前端学习路径

菜鸟感觉很多人不太知道菜鸟写的博客是一个可以跟着学习、一起深入理解的过程&#xff0c;其中包括了菜鸟从刚开始学习到后面重新学习&#xff0c;再到后面进入学框架等一系列学习过程、知识和感悟&#xff0c;所以菜鸟把自己的博客整理成一个目录提取出来&#xff0c;好让读者…...

算法--插值法

插值法是一种数学方法&#xff0c;主要用于通过已知的离散数据来估算未知值。常见的插值法有线性插值、最近邻插值、双线性插值和双三次插值。以下是其基本原理和应用&#xff1a; 线性插值&#xff1a;假设在两个已知数据点之间&#xff0c;数据的变化是线性的&#xff0c;因…...

uniapp写微信小程序实现电子签名

写电子签名一定要注意的是一切全部按照手机上的适配来&#xff0c;为啥这么说呢&#xff0c;因为你在微信开发者工具中调试的时候认为是好的&#xff0c;正常的非常nice,当你发布版本的时候你会发现问题出来了。我下边的写法你可以直接用很简单。就是要记住canvas的几个属性和用…...

使用 Categraf 采集 Nginx 指标

1. 前言 工作中需要监控 Nginx 的指标&#xff0c;选用的指标采集器是 Categraf&#xff0c;特此记录下&#xff0c;以备后用。 此文档并未详细记录详细的操作细节&#xff0c;只记录了大概的操作步骤&#xff0c;仅供参考。 2. 采集基础指标 2.1. 暴露 Nginx 自带的指标采…...

如何查阅与分析Taotoken平台提供的详细用量账单

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 如何查阅与分析Taotoken平台提供的详细用量账单 对于使用大模型API的开发者与团队而言&#xff0c;清晰、准确地掌握资源消耗与成本…...

从BMP文件头到像素遍历:手把手教你用C语言和VS2022读取图片的RGB数据

从BMP文件头到像素遍历&#xff1a;手把手教你用C语言和VS2022读取图片的RGB数据 在数字图像处理领域&#xff0c;理解图像数据的底层存储结构是开发者必须掌握的核心技能。BMP作为Windows系统中最基础的位图格式&#xff0c;其简单的文件结构使其成为学习图像处理的理想起点。…...

智慧树自动刷课插件:3分钟完成安装的终极学习效率工具

智慧树自动刷课插件&#xff1a;3分钟完成安装的终极学习效率工具 【免费下载链接】zhihuishu 智慧树刷课插件&#xff0c;自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 还在为智慧树平台繁琐的视频学习而烦恼吗&#xff1f…...

如何让直播输入可视化:input-overlay终极指南

如何让直播输入可视化&#xff1a;input-overlay终极指南 【免费下载链接】input-overlay Show keyboard, gamepad and mouse input on stream 项目地址: https://gitcode.com/gh_mirrors/in/input-overlay 想象一下&#xff0c;当你在直播中展示行云流水的操作时&#…...

如何高效管理中文文献:Zotero茉莉花插件完整使用指南

如何高效管理中文文献&#xff1a;Zotero茉莉花插件完整使用指南 【免费下载链接】jasminum A Zotero add-on to retrive CNKI meta data. 一个简单的Zotero 插件&#xff0c;用于识别中文元数据 项目地址: https://gitcode.com/gh_mirrors/ja/jasminum 还在为Zotero处理…...

QuickLook.Plugin.FolderViewer:如何用空格键实现Windows文件夹零秒预览?

QuickLook.Plugin.FolderViewer&#xff1a;如何用空格键实现Windows文件夹零秒预览&#xff1f; 【免费下载链接】QuickLook.Plugin.FolderViewer Folder viewer plugin for QuickLook 项目地址: https://gitcode.com/gh_mirrors/qu/QuickLook.Plugin.FolderViewer 在W…...

盒子不同定位的解说!

目录 一、相对定位 二、绝对定位 三、固定定位 一、相对定位 【概念】&#xff1a;简单来说&#xff0c;就是让一个元素相对于它自己原本应该在的位置进行移动。 【核心特点】&#xff1a;1.不脱离文档流&#xff1a;这是相对定位最关键的特点。元素虽然移动了&#xff0c…...

chatgpt-web-midjourney-proxy的TypeScript类型系统:类型安全的AI应用开发

chatgpt-web-midjourney-proxy的TypeScript类型系统&#xff1a;类型安全的AI应用开发 在当今AI技术快速发展的时代&#xff0c;如何构建稳定可靠的AI应用成为开发者面临的重要挑战。chatgpt-web-midjourney-proxy项目通过精心设计的TypeScript类型系统&#xff0c;为开发者提供…...

别再死记硬背UML关系了!用4+1视图帮你理清类图、时序图到底画给谁看

别再死记硬背UML关系了&#xff01;用41视图帮你理清类图、时序图到底画给谁看 在软件工程领域&#xff0c;UML&#xff08;统一建模语言&#xff09;是每个开发者都绕不开的话题。但有多少人真正理解这些图形的实际应用场景&#xff1f;我们常常看到这样的现象&#xff1a;团队…...

废物利用实战:把吃灰的中兴B860AV1.1-T刷成Armbian服务器,跑Docker、挂小雅

旧机顶盒重生计划&#xff1a;中兴B860AV1.1-T改造家庭服务器全指南 当家里闲置的机顶盒积满灰尘时&#xff0c;大多数人会选择丢弃或闲置。但你可能不知道&#xff0c;这些被淘汰的设备往往隐藏着惊人的潜力——只需简单改造&#xff0c;就能变身为一台7x24小时运行的低功耗家…...