论文《基于现实迷宫地形的电脑鼠设计》深度分析——智能车驱动算法

news2024/11/18 5:13:42

论文概述

      《基于现实迷宫地形的电脑鼠设计》是由吴润强、庹忠曜、刘文杰、项璟晨、孙科学等人于2023年发表的一篇优秀期刊论文。其针对现阶段电脑鼠计算量庞大且不适用于现实迷宫地形的问题,特基于超声波测距与传统迷宫算法原理,设计出一款可在现实迷宫地形下自动寻找出口的电脑鼠。该电脑鼠适用于岔路数量与道路宽度不定、多死路弯道并且相对较大的迷宫地形,具有适应性强、计算量小、兼容性和可塑性强等优点,对于现实迷宫地形下的自动应用具有一定研究价值。

        关键词  电脑鼠;超声波测距;迷宫算法;自动应用

        该论文内容相对较多,特对其进行拆开分析,本文特围绕智能车驱动算法进行展开分析。

一、中线判断与中线对齐

        中线判断即根据超声波探测所得到的L与R,判断出道路的中心直线,记此线为中线。基于之间超声波探头位于电脑鼠最中部并且可用于其近似代表电脑鼠位置的理论,当超声波探头沿着中线前进时,可认为电脑鼠沿着中线前进,此时电脑鼠距离左右的障碍物均足够远,可保证其在行驶过程中不会与障碍物相撞。

        中线对齐即根据L、R与已知的两驱动轮间距D,计算出相关数据,判断出小车位于中线的左侧还是右侧。其中以小车位于中线右侧为例,先保持左驱动轮不动,右驱动轮向前行驶一定时间,致使车辆左进行偏转;再以相同的保持右驱动轮不动,驱动左驱动轮使车辆向右偏转相同角度,从而使得车辆中心恰好对齐中线位置,见图9。

b56e9d500bf24fa4850f31a51d2a22eb.png

图9 中线对齐示意图

1.理论分析

6008768f620c4de1bed89b209b14deb4.png

2.实际应用

3a448a487afe4d35a28f9b7e958832b5.png

二、转弯判断与车辆转向

        转弯判断与车辆转向均是基于超声波探测与迷宫算法下进行完成的,其具体流程图见图10。

9c6e6ba501be44e8a2d180ef86556551.png

图10 转弯判断流程图

        根据超声波测量的路口情况进行迷宫算法判断,若并不需要转弯则保持正常行驶,反之则将舵机转向需要转弯的方向,通过不断的超声波测距,根据是否有极大值的出现判断其是否到达路口。

        以图9的情况为例,电脑鼠前往右侧的路口,则将转向舵机向右旋转九十度。同时车辆保持匀速前进,在前进的过程中不断进行超声波测距,而当车辆行驶图中路口时,其测量的数据便存在了极大值。此时小车停止运动,对路口再次进行超声波测量,根据路口判断原理分析该路口是否为死路。

        为死路则将舵机转回前进方向,正常行驶;不为死路则停止右电机转动,单独工作左电机T时间,使小车向右旋转90度,进入新路口行驶。

        根据此时情况将90度公式(19)计算可得:

eq?T%3D%5Cfrac%7BD%7D%7B2*f*d%7D

        对于大多数迷宫而言,车辆转向所需要的时间为一个定值。

三、车辆掉头

        在智能的小车的避障研究中,若前方道路为死路则直接向后行驶或以一个轮胎为圆点旋转180度进行掉头。这不仅不适用我们的设计方案同时面对狭窄的现实道路时,也可能会出现车辆的掉头而使得车辆与障碍物相碰,见图11。

c68284e6887b44e4a26816670455017f.png

图11 掉头碰撞示意图

        为使电脑鼠可以在道路宽度小于2D的狭窄情况进行掉头,特基于上述的中线对齐、车辆转向理论与公式(21)对掉头驱动进行改进,其运动情况见图12。

75dbef988df740a6bc737bb10c5fc46e.png

图12 车辆掉头示意图

        当电脑鼠所前进的方向1为死路时,可先使其以L1为圆心,关闭左电机,单独工作右电机T时间,驱动右车轮从R1到达R2;同理以R2为圆心,关闭右电机,单独工作左电机T时间,驱动左车轮从L1到达L2。

        此时的前进方向便从方向1改为了方向2,且电脑鼠在转向过程中不会与障碍物发生碰撞,完成转向后依然对齐中线行驶,在保证安全行驶的同时节省了二次中线对齐的时间损耗。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2242599.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PG-DERN 解读:少样本学习、 双视角编码器、 关系图学习网络

本文提出了一种用于 分子属性预测 的 少样本学习(Few-shot Learning) 模型—— PG-DERN,该模型结合了 双视角编码器(Dual-view Encoder) 和 关系图学习网络(Relation Graph Learning Network) 双…

w039基于Web足球青训俱乐部管理后台系统开发

🙊作者简介:多年一线开发工作经验,原创团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹赠送计算机毕业设计600个选题excel文…

H3C NX30Pro刷机教程-2024-11-16

H3C NX30Pro刷机教程-2024-11-16 ref: http://www.ttcoder.cn/index.php/2024/11/03/h3c-nx30pro亲测无需分区备份 路由器-新机初始化设置路由器登录密码telnet进入路由器后台 刷机上传uboot到路由器后台在Windows环境下解压后的软件包中打开 tftpd64.exe在NX30Pro环境下通过以…

[2024最新] java八股文实用版(附带原理)---java集合篇

介绍一下常见的list实现类? ArrayList 线程不安全,内部是通过数组实现的,继承了AbstractList,实现了List,适合随机查找和遍历,不适合插入和删除。排列有序,可重复,当容量不够的时候…

python 异步编程之协程

最近在学习python的异步编程,这里就简单记录一下,免得日后忘记。 首先,python异步实现大概有三种方式,多进程,多线程和协程;多线程和多进程就不用多说了,基本上每种语言都会有多进行和多线程的…

20241112-Pycharm使用托管的Anaconda的Jupyter Notebook

Pycharm使用托管的Anaconda的Jupyter Notebook 要求 不要每次使用 Pycharm 运行 Jupyter 文件时都要手动打开 Anaconda 的 Jupyter Notebook 正文 pycharm中配置好会自动安装的,有的要自己配置 Pycharm中配置 文件 ——> 设置 ——> 语言和框架……&am…

Android 无签名系统 debug 版本APK push到设备引起的开机异常问题分析(zygote进程)

问题背景 前置操作: 替换原system/priv-app 目录下已有的应用包未未签名的debug版本,然后重启。 现象: 无法正常开机,卡在开机动画,并且pm没有起来,因为执行adb install 命令是返回“cmd: Cant find se…

【学习心得】数据分析三剑客跟学Gitee仓库

之前,自己在学习数据分析过程中的学习方法和思路,将那些摸索与实践中的心得体会分享出来,能够得到大家的喜欢、点赞我非常高兴,谢谢大家的支持!这些正面的反馈对我来说,不仅是莫大的鼓励,更是持…

Vue 批量注册组件实现动态组件技巧

介绍 Vue 动态组件的应用场景很多,可应用于动态页签,动态路由等场景,其核心原理是批量注册。在Vue2和Vue3中实现原理相同,只是语法略有差异。 Vue2 实现 基于 webpack require.context() 是webpack提供的一个自动导入的API 参数1:加载的文件目录 参数2&#xff…

AndroidStudio-Activity的生命周期

一、Avtivity的启动和结束 从当前页面跳到新页面,跳转代码如下: startActivity(new Intent(源页面.this,目标页面.class)); 从当前页面回到上一个页面,相当于关闭当前页面,返回代码如下: finis…

DB-GPT系列(四):DB-GPT六大基础应用场景part1

一、基础问答 进入DB-GPT后,再在线对话默认的基础功能就是对话功能。这里我们可以和使用通义千问、文心一言等在线大模型类似的方法, 来和DB-GPT进行对话。 但是值得注意的是,DB-GPT的输出结果是在内置提示词基础之上进行的回答&#xff0c…

对PolyMarket的突袭

一天清晨六点,美国联邦调查局的探员冲进了纽约市的一间公寓。这间公寓的主人是26岁的Shane Copeland,一个有着凌乱头发的年轻人,也是一个加密货币狂热者。他运营着一个名为PolyMarket的网站——一个允许用户YZ全球事件结果的平台,…

DB_redis数据一致性(三)

前言 以mysql_redis 为例 介绍 数据一致性 1:数据一致行(单进程/单线程) 这个没什么说的,都是串行 2:数据一致行(多进程/多线程) 读的逻辑,先读缓存,缓存没有的话,就读数据库,然后取出数据后…

Jdbc学习笔记(三)--PreparedStatement对象、sql攻击(安全问题)

目录 (一)使用PreparedStatement对象的原因: 使用Statement对象编写sql语句会遇到的问题 ​编辑 (二)sql攻击 1.什么是sql攻击 2.演示sql攻击 (三)防止SQL攻击 1.PreparedStatement是什么 …

对称加密算法DES的实现

一、实验目的 1、了解对称密码体制基本原理 2、掌握编程语言实现对称加密、解密 二、实验原理 DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位,产生最大 64 位的分组大小。这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密…

【Hadoop实训】Hive 数据操作②

延续上一篇文章,不懂的宝子们请看以下链接: 【Hadoop实训】Hive 数据操作①-CSDN博客 目录 一、Group by 语句 (1)、计算emp表每个部门的平均工资 (2)、计算emp表每个部门中每个岗位的最高工资 二、Having 语句 (1)、求每个部门的平均工资 (2)、求每个…

centos7 升级openssl 与升级openssh 安装卸载 telnet-server

前言: 服务器被安全扫描,扫出了漏洞需要修复,根据提示将openssh升级为9.8p1的版本,同时需要升级openssl,但是升级openssh可能会导致ssh连接失败,从而无法继续操作,特别是远程机房尤为危险&#…

Notepad++的完美替代

由于Notepad的作者曾发表过可能在开发者代码中植入恶意软件的言论,他备受指责。在此,我向大家推荐一个Notepad的完美替代品——NotepadNext和Notepad--。 1、NotepadNext NotepadNext的特点: 1、跨平台兼容性 NotepadNext基于Electron或Qt…

大语言模型LLM综述

一、LM主要发展阶段 1.1、统计语言模型SLM 基于统计学习方法,基本思想是基于马尔可夫假设HMM建立词概率预测模型。如n-gram语言模型 1.2、神经语言模型NLM 基于神经网络来做词的分布式表示。如word2vec模型 1.3、 预训练语言模型PLM 预训练一个网络模型来做词表…

腾讯IM web版本实现迅飞语音听写(流式版)

本文基于TUIKit Demo项目集成迅飞语音听写&#xff08;流式版&#xff09;功能&#xff1a; 主要代码&#xff1a; // \src\TUIKit\components\TUIChat\message-input\index.vue <template><!-- 录音按钮 --><div touchstart.stop"touchstart" />…