ROS学习笔记(16):夹缝循迹
0.前言
在笔记的第15期对巡墙驾驶的原理进行了简单讲解,而这期我们来讲一下夹缝循迹,也常被叫follow the gap,也更新一些概念。

1.探索式路径规划与避障
1.概念
无预先建图的路径规划叫探索式路径规划,例如巡墙循迹和夹缝循迹,在使用slam技术进行建图前我们往往需要探索式路径规划来进行全局探索来完成建图。
2.巡墙循迹和夹缝循迹的差别
1.巡墙循迹
第15期我们重点讲了巡墙循迹的运行原理,可能有些眼尖的同学会思考一个关键问题——如果我的道路中间出现了障碍物该怎么办?很显然在现实生活中路道中间出现障碍物是时有发生的,但巡墙循迹并没有考虑到这个问题的出现。(这里建议去仔细思考一下巡墙循迹的原理)
ROS学习笔记(15)小车巡墙循迹-CSDN博客
在道路均匀顺滑的情况下巡墙循迹是真的很好用,只是这种算法泛用性太低了。任何产品需要考虑泛用性的问题。

2.夹缝循迹
夹缝循迹考虑到了道路不顺滑有障碍物在道路中间的情况。夹缝循迹采用了局部避障(反应式避障,无任何预先建图)。
3.夹缝循迹原理
1.获取雷达与障碍物关系
构建一张图来表示雷达弧度和障碍物距离的关系
图片1
注释:图中y轴是障碍物和雷达间的距离,x轴为雷达扫描的弧度,当得出弧度与距离的关系时我们就可以得知在那个方向上有障碍物、距离多远,这就为我们的避障提供了感知基础。
提示:雷达的运行本质上还是通过光的反射来进行,因此雷达有一个巨大的弊端-——对透光物体的感知极易失效。(这里也还是泛用性的问题,未来的某个环节我们还会加入视觉,将视觉和雷达进行联合运作来提高泛用性。)
2.车体问题
当我们得出了雷达与障碍物间的关系后,我们的到了几个避障的方向。
图片2
但是还有一个问题需要我们去解决——夹缝的大小是否支持我们通过,小车和机器人本身是具有体积的,不是每一个夹缝都能通过。因此我们需要动态的去判断夹缝大小与机器人本身大小间的关系(这里依然是使用三角公式进行简单的判断——如下图3)来帮助判断能否通过。
图3
注释:a和b是超出我们的设定的距离阈值值
3.全向式运动问题与解决思路
在运动当中有两个类型:全向运动和非全向式运动。
1.全向式运动
全向式运动就是能无需调整姿态进行运动,典型例子是麦克纳姆轮(又称全向轮,可左右平移)。
图4
2.非全向式运动
非全向式运动是需要调整姿态进行运动,典型例子是阿克曼小车(有舵机转向结构,转向需前进一段距离。)
图5
3.全向式运动问题
图6
如图6显示阿克曼小车与物体间的关系,我们提到阿克曼小车需要进行前进来调整小车,如果此时已跳跃距离(BC距离)的中点为转向目标点就可能导致小车碰撞到物1。
4.解决思路
使用膨胀法进行处理。
图7
1.膨胀处理(也称安全气泡处理)
如图7所示小车的半径为,两物体半径分别为
和
,现实生活中我们无法忽视小车的体积进行任意穿梭,而当我们对物体的半径进行膨胀处理(物体半径膨胀一个
)后就可将小车近似一个点,此时可以穿梭了。(但我更推荐膨胀多一点,且动态调整,当距离越近时膨胀半径就越大)
2.思路
图8
图8我们在阶跃点进行了碰撞处理后再次给出中点计算得到转向弧度。(但我更推荐对离小车最近且低于阈值的点进行膨胀处理。)
课本上也有另一种安全气泡:
4.最佳问题(贪心问题)
我们希望小车能越快越好(这是对性能的表现),但不是任何时候我们都应该全速行驶,这压力太大了。这时候我们就进行分段处理,每个阶段设置一个速度和一个安全气泡,这样就能保证速度和安全的平衡。
图9
5.直角问题和缓解思路
1.直角问题
图10
在遇到直角和一些特殊情况时会有b>a,小车向b方向进转向调整(正确方向应该是a),这就可能导致混乱(转向角和速度太大时可能会导致掉头)。
2.缓解思路
这个问题我还不知道如何完美解决,但使用中心点是可以缓解的。
相关文章:
ROS学习笔记(16):夹缝循迹
0.前言 在笔记的第15期对巡墙驾驶的原理进行了简单讲解,而这期我们来讲一下夹缝循迹,也常被叫follow the gap,也更新一些概念。 1.探索式路径规划与避障 1.概念 无预先建图的路径规划叫探索式路径规划,例如巡墙循迹和夹缝循迹&…...
【MySQL精通之路】SQL语句(3)-锁和事务语句
目录 1.START TRANSACTION、COMMIT和ROLLBACK语句 2.无法回滚的语句 3.导致隐含COMMIT的语句 4.SAVEPOINT、ROLLBACK TO SAVEPOINT和RELEASE SAVEPOINT语句 5.LOCK INSTANCE FOR BACKUP和UNLOCK INSTANCE语句 6.LOCK TABLE和UNLOCK TABLES语句 6.1 表锁获取 6.2 表锁释放…...
211大学计算机专业不考408,新增的交叉专业却考408!南京农业大学计算机考研考情分析!
南京农业大学信息科技学院可追溯至1981年成立的计算中心和1985年筹建的农业图书情报专业。1987年设立了农业图书情报系,1993 年农业图书情报系更名为信息管理系,本科专业名称也于1999年更名为信息管理与信息系统专业。1994年计算中心开始招收计算机应用专…...
利用java8 的 CompletableFuture 优化 Flink 程序,性能提升 50%
你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益: 了解大厂经验拥有和大厂相匹配的技术等 希望看什么,评论或者私信告诉我! 文章目录 一…...
香橙派 AIpro综合体验及AI样例运行
香橙派 AIpro综合体验及AI样例运行 环境: 香橙派版本: AIpro(8TOPSINT8) OS : Ubuntu 22.04.3 LTS(GNU/Linux 5.10.0 aarch64) (2024-03-18) 远程服务端1:OpenSSH 8.9p1 远程服务端2:TightVNC Server 1.3.10 远程客户端…...
通过域名接口申请免费的ssl多域名证书
来此加密已顺利接入阿里云的域名接口,用户只需一键调用,便可轻松完成域名验证,从而更高效地申请证书。接下来,让我们详细解读一下整个操作过程。 来此加密官网 免费申请SSL证书 免费SSL多域名证书,泛域名证书。 首先&a…...
【JAVA WEB实用与优化技巧】如何自己封装一个自定义UI的Swagger组件,包含Swagger如何处理JWT无状态鉴权自动TOKEN获取
目录 一、Swagger 简介1. 什么是 Swagger?2. 如何使用 Swagger3. Springboot 中swagger的使用示例1. maven 引入安装2. java配置 二、Swagger UI存在的缺点1.不够方便直观2.请求的参数没有缓存3.不够美观4.如果是JWT 无状态登录,Swagger使用起来就没有那…...
理解大语言模型(二)——从零开始实现GPT-2
相关说明 这篇文章的大部分内容参考自我的新书《解构大语言模型:从线性回归到通用人工智能》,欢迎有兴趣的读者多多支持。 本文涉及到的代码链接如下:regression2chatgpt/ch11_llm/char_gpt.ipynb1 本文将讨论如何利用PyTorch从零开始搭建G…...
SSH远程登录时常见问题解决
SSH时出现WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 问题解决——SSH时出现WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 翻译过来就是 警告:远程主机标识已更改! 此报错是由于远程的…...
工业级3D开发引擎HOOPS:创新与效率的融合!
在当今这个技术日新月异的时代,3D技术已成为推动各行各业发展的重要力量。从工程设计到游戏开发,从虚拟现实到增强现实,3D技术的应用无处不在,它极大地丰富了我们的生活和工作。而在这样的背景下,HOOPS作为一个强大的3…...
IDEA创建Spring Boot项目
1 打开新建项目界面 如图1,打开IDEA,点击菜单栏的File->New->Project,打开新建项目界面。 图1 新建项目 2 填写项目信息 在新建项目界面点击左侧工具栏的Spring Initializr选项,进行Spring Boot项目信息的填写ÿ…...
mysql实战——xtrabackup全量备份/增量备份及恢复
一、测试前准备 mysql数据库 端口3306数据文件目录 /data/mysql/3306/data 安装目录/usr/lcoal/mysql配置文件/etc/my.cnf 创建数据库 testXtra 创建备份目录 备份目录/data/backup/备份恢复数据文件目录/data/mysql/3307/data备份恢复配置文件/etc/my_3307.cnf 二、开始…...
探索演进:了解IPv4和IPv6之间的区别
探索演进:了解IPv4和IPv6之间的区别 在广阔的互联网领域中,设备之间的通信依赖于一组独特的协议来促进连接。前景协议中,IPv4(Internet 协议版本 4)和 IPv6(Internet 协议版本 6)是数字基础设施…...
Python 实现Word (DOC或DOCX)与TXT文本格式互转
目录 引言 安装Python库 使用Python将Word转换为TXT文本格式 使用Python将TXT文本格式转换为Word 引言 Word文档和TXT文本文件是日常工作和生活中两种常见的文件格式,各有其特点和优势。Word文档能够保留丰富的格式设置,如字体、段落、表格、图片等…...
anaconda install on CentOS 7
参考: CentOS 7安装conda并配置环境 CentOS 7安装conda并配置环境_centos conda-CSDN博客...
git管理Codeup云效平台
HTTPS方式实现Git命令 1.进入项目路径,如 cd demo,与此同时,在Codeup平台创建一个空仓库repo,获取空仓库的https协议地址,例如 https://codeup.aliyun.com/xxxx/xxxx/xxx.git。 2.在demo项目下执行 git init命令初始化…...
Pycharm最新安装教程(最新更新时间2024年5月27日)
ps:本教程Pycharm安装,最新更新时间:2024年5月27日,公众号持续更新关注公众号防失联哦 Pycharm 再次更新了一个小版本。又回到老话题,2023.3.2这个版本是否还能安装,笔者也亲测了一下。还是沿用本站之前的…...
医院门诊互联电子病历|基于SSM+vue的医院门诊互联电子病历管理信息系统的设计与实现(源码+数据库+文档)
医院门诊互联电子病历管理信息系统 目录 基于SSM+vue的医院门诊互联电子病历管理信息系统的设计与实现 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2后台登录模块 5.2.1管理员功能 5.2.2用户功能 5.2.3医生功能 四、数据库设计 五、核心代码…...
H3CNE-8-ARP工作原理
ARP:Address Resolution Protocol 通过目的IP地址请求对方的MAC地址的过程。 数据链路层在进行数据封装时,需要目的MAC地址。 arp -a 查看 arp -d * 清空 主机A发送一个数据包给主机C之前,首先要获取C的MAC地址 数据封装...
上交提出TrustGAIN,提出6G网络中可信AIGC新模式!
月16日至18日,2024全球6G技术大会在南京召开。会上,全球移动通信标准制定组织3GPP(第三代合作伙伴计划)的3位联席主席分享了3GPP6G标准时间表: 2024年9月,启动6G业务需求研究; 2025年6月&…...
解决Claude Code在辅助大赛题目生成时token不足与封号风险
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 解决Claude Code在辅助大赛题目生成时token不足与封号风险 许多技术大赛、编程竞赛的出题者,在日常工作中会依赖Claude…...
沐曦股份曦云C系列GPU完成腾讯混元翻译模型Hy-MT2 Day 0 深度适配
5月21日,腾讯混元翻译模型Hy-MT2正式开源,包含3个尺寸的模型Hy-MT2-1.8B、Hy-MT2-7B、Hy-MT2-30B-A3B。沐曦股份曦云C系列GPU凭借全栈自研技术优势,率先实现对三个模型的Day 0深度适配。此次腾讯混元宣布开源的三个模型均重点支持33个语种互译…...
ADAS系统设计全解析:从传感器融合到域控制器实战
1. 项目概述与行业背景最近几年,但凡和汽车沾点边的行业,都绕不开“智能化”这三个字。作为一名在汽车电子和嵌入式系统领域摸爬滚打了十多年的工程师,我亲眼见证了从简单的倒车雷达,到如今能自动跟车、紧急刹车的ADAS系统&#x…...
5个维度深度解析洛雪音乐音源:从技术实现到高效部署的完整指南
5个维度深度解析洛雪音乐音源:从技术实现到高效部署的完整指南 【免费下载链接】lxmusic- lxmusic(洛雪音乐)全网最新最全音源 项目地址: https://gitcode.com/gh_mirrors/lx/lxmusic- 洛雪音乐音源项目作为开源音乐资源聚合解决方案,通过JavaScr…...
第七章 指令微调学习(五)Extracting and saving responses
第七章 指令微调学习(五) 7.7 Extracting and saving responses 在对指令数据集的训练部分完成LLM的微调后,现在评估其在保留测试集上的性能。首先,我们提取测试集中每个输入对应的模型生成响应并进行人工分析;随后通过…...
8051单片机中断向量号计算与配置详解
1. C51中断向量号计算方法解析在8051单片机开发中,中断处理是最核心的功能之一。作为一名长期使用Keil C51工具链的嵌入式开发者,我经常遇到新手询问如何正确计算中断向量号的问题。这个看似简单的数字背后,其实隐藏着8051架构的设计哲学。1.…...
ESP32音频录制系统:构建智能声音采集的完整解决方案
ESP32音频录制系统:构建智能声音采集的完整解决方案 【免费下载链接】esp32_SoundRecorder ESP32 Sound recorder with simple code in arduino-esp32. (I2S interface) 项目地址: https://gitcode.com/gh_mirrors/es/esp32_SoundRecorder 在物联网和嵌入式系…...
3步掌握Windows字体优化:Better ClearType Tuner完整使用指南
3步掌握Windows字体优化:Better ClearType Tuner完整使用指南 【免费下载链接】BetterClearTypeTuner A better way to configure ClearType font smoothing on Windows 10. 项目地址: https://gitcode.com/gh_mirrors/be/BetterClearTypeTuner 你是否曾经在…...
接口测试入门:从Postman到Python自动化实战指南
1. 别再被“接口测试”四个字吓退——它其实比你想象中更像点外卖很多人第一次听说“接口测试”,脑子里立刻浮现出一串密密麻麻的HTTP请求、满屏curl命令、Postman里层层嵌套的JSON Body,还有动不动就报错的401、500、404……然后默默关掉网页࿰…...
谷歌 AI Studio 一下午开发三款应用,游戏体验却差强人意?
谷歌 AI Studio 助力开发应用 昨天,我开发出了自己的第一款 Android 应用程序,紧接着又做了两个,一个下午就完成了三款应用。其中一款应用,我在网页浏览器里输入 148 个单词后,十分钟后手机上就有了新应用。开启手机 U…...

