AGV 导航方法总体设计与分析

导航方案设计 导航方法分为三个部分——路径规划、实时定位、轨迹纠正。

视觉定位模块

主要有三个工作任务:利用二维码定位对 AGV 初始位姿 进行矫正,保证 AGV 初始运动时其运动轨迹能够与道路平行;利用 ORBSLAM 定位能够实时的获得 AGV 在车库中的位姿;当 AGV 接近车位时,利 用二维码再次对 AGV 的位姿进行矫正,保证 AGV 能够准确的进入车位。定 位模块按照内容分一共分为两部分,二维码视觉定位和 ORB-SLAM 定位。 二维码视觉定位模块中,使用 ARToolKitPlus 库提供的二维码。在二维码识 别的过程中,利用模板匹配提高了 ID 识别的速度,在定位计算中利用 RPP 算法消除了局部最小值带来的错误解。ORB-SLAM 系统构建的是稀疏点云, 具有良好的实时性。在系统搭建的过程中使用跟踪法、局部地图、词袋法等, 多次优化保证了定位精度。同时系统加入了闭环检测,保证系统在大场景、 长时间建图定位的鲁棒性。

路径规划模块

为了提高定位模块的实时性,我们采用构建 ORB 特征的稀疏点云地图。 但稀疏点云地图不具备几个特征,不能像传统栅格地图可以进行路径规划。 为了解决这个问题,我们采用后台通信模式。后台根据施工图纸等信息建立 车库的全局栅格地图,在全局栅格地图中进行路径规划,将路径信息通过通 信的方式下发给定位导航层,对路径信息进行动作解析,得到相应的运动控 制命令。底层对运控命令的解析,得到电机转速从而实现动作反应。这种路 径规划模式存在一个新问题,全局地图要与 ORB 稀疏点云地图之间建立准 确的联系,确保定位信息、路径信息坐标系之间转换的正确性。所以在 AGV 执行导航任务前,借助二维码辅助信息完成建立坐标系关系的建立。对已知 世界坐标的二维码识别,获得 AGV 的初始位姿并对其进行矫正。确保 AGV 初始行走的初始轨迹平行坐标轴。在 SLAM 系统初始化完成时,通过记录当 帧中相机在二维码坐标系中的位姿,从而获得世界坐标系到稀疏点云坐标系 的变换矩阵。二维码在世界坐标系之中的姿态通过人工示教法获得。

轨迹纠正模块

将后台发过来的全局路径以坐标点对序列的形式下发过来,根据我们应用场景及相关算法 。对这些点对进行划分,将全局路径划分为各段直线的局部路径,并根据 局部路径信息进行动作解析得到速度控制命令。由于机械误差、路面不平等 多方面原因,小车不能严格的按我们预期的轨迹行进,会发生偏离。为了保 证 AGV 在运动过程中不偏离预期的轨迹路线,需要对轨迹进行纠正。利用 ORB-SLAM 视觉的实时定位信息与理想预期轨迹对比,根据理想位置和当前 位置可以得到 AGV 的轨迹偏离误差值,针对误差设计控制律使误差值收敛, 最终求解出小车的线速度和角速度使小车向理想轨迹靠拢。由于底层的一个 响应周期内可能完不成 AGV 轨迹跟踪控制预期的动作,在 AGV 运动的过程 中轨迹偏离误差值一直都存在并且随时间的成收敛趋势,所以理论上讲 AGV 在运动的过程中在不断逼近预期轨迹,其收敛效果与底层硬件反应,算法参数的选择有直接关系。在真实应用场景里,AGV 行进的路径都为直线,且在运动前通过二维码对 AGV 的姿态进行矫正,所以真实轨迹与理想轨迹之间 的误差值不会太大。

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

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

相关文章

WebSocket Day 01:入门案例

前言 欢迎来到WebSocket入门案例系列的第一天!在今天的博客中,我们将一起探索WebSocket的基础知识和使用方法。本系列将以一个简单的入门案例为基础,带领您逐步了解WebSocket的原理和用法。 一、什么是 WebSocket ? WebSocket是一种在Web应…

香港金融科技周VERTU CSO Sophie谈Web3.0的下一个风口 手机虚拟货币移动支付

10月31日,香港金融科技周正式拉开帷幕。这项香港金融科技界地年度盛事今年已经踏入了第八届,本届活动吸引超过数百位金融科技专业人士、创业者和行业领袖现场参与,线上参与观众超过10万人次。 在金融科技周的圆桌会议上,VERTU首席…

缓解缓存击穿的大杀器之---singleflight深入浅出

singleflight简单介绍 singlefight直译“单飞”,那顾名思义就是有一堆鸟,但是咱只让一只鸟单飞。。。😄 singleflight 提供了重复函数调用抑制机制,使用它可以避免同时进行相同的函数调用。第一个调用未完成时后续的重复调用会等…

【Unity细节】为什么UI移动了锚点,中心点和位置,运行的时候还是不在设置的位置当中

👨‍💻个人主页:元宇宙-秩沅 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 秩沅 原创 😶‍🌫️收录于专栏:unity细节和bug 😶‍🌫️优质专栏 ⭐【…

[MRCTF2020]你传你呢1

提示 只对php以及phtml文件之类的做了防护content-type.htaccess文件 这里就不整那么麻烦直接抓包测试 首先对后缀测试看过滤了哪些 (php php3 pht php5 phtml phps) 全部被ban了 到这里的后续思路通过上传一些配置文件把上传的图片都以php文件执行 尝试上传图片码, 直接上传成…

新大陆NVH200-AP(U)扫码枪在上位机软件开发中的应用

前言: 由于本次使用的是USB接口的扫码枪 1、先安装Nset软件,使用扫码枪扫描“启动设置条码”,然后扫描“USB CDC串口”条码 2、打开NSet软件,点击“刷新按钮” 就能找到扫码枪设备 3、设置条码后缀 点击“高级设置”,然后点击“数据编辑”,在“后缀”那里设置结束符…

逆向学习记录(2)windows常用基本操作及用环境变量配置上多个python版本

1、如何打开cmd 第一种方法:按下winr,运行cmd 第二种方法:进入一个目录,点击路径处(显示蓝色背景),然后直接键盘输入cmd,回车,运行cmd并直接进入此目录。 2、命令dir&am…

Oracle(12)Managing Indexes

目录 目标: 一、基础知识 1、Classification ofindexes 索引的分类 2、B-Tree vs Bitmap 3、Creating Indexes: Guidelines 创建索引:准则 4、Offline Index Rebuild 脱机索引重建 5、RebuildingIndexes 重建索引 6、Online Index Rebuild 在线索引重建 7…

第22期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区,集成了生成预训练 Transformer(GPT)、人工智能生成内容(AIGC)以及大型语言模型(LLM)等安全领域应用的知识。在这里,您可以…

前端下载后端文件流,文件可以下载,但是打不开,显示“文件已损坏”的问题分析与解决方案

目录 场景还原相关代码开发者工具 - 网络请求记录 问题排查定位改bug 总结 场景还原 我在前端使用axios接收后端xlsx表格文件流并下载,xlsx文件能够下载成功,但是打开却显示文件无法打开 相关代码 请求API封装:Content–Type以及responseType经核对均…

虚拟机Linux-Centos系统网络配置常用命令+Docker 的常用命令

目录 1、虚拟机Linux-Centos系统网络配置常用命令2、Docker 的常用命令2.1 安装docker步骤命令2.2 在docker容器中安装和运行mysql 2、dockerfile关键字区别(ADD/COPY,CMD/ENTRYPOINT) 1、虚拟机Linux-Centos系统网络配置常用命令 进入网络配置文件目录 cd /etc/sysconfig/ne…

【webrtc】 对视频质量的码率控制的测试与探索

目录 环境设置 transport-cc goog-remb (webrtc中的两种码率算法) 修改成remb算法 测试 效果 后续 可参考工程 环境设置 要到meshx上操作 telnet 112 然后执行factory_env show |grep meshx_ip 之后telnet meshx_ip 用户名admin 密码****.119 执行一下r…

Leetcode-88 合并两个有序数组

使用内置排序函数&#xff0c;时间复杂度On^2 class Solution {public void merge(int[] nums1, int m, int[] nums2, int n) {int j0,im;while(j<n){nums1[i]nums2[j];}Arrays.sort(nums1);} }新建一个临时数组用于放排序后的元素&#xff0c;再将临时数组赋值给nums1&…

【软件STM32cubeIDE下H73xx配置串口uart1+中断接收/DMA收发+HAL库+简单数据解析-基础样例】

#【软件STM32cubeIDE下H73xx配置串口uart1中断接收/DMA收发HAL库简单数据解析-基础样例】 1、前言2、实验器件3-1、普通收发中断接收实验第一步&#xff1a;代码调试-基本配置&#xff08;1&#xff09;基本配置&#xff08;3&#xff09;时钟配置&#xff08;4&#xff09;保存…

大神接力 | YOLOv4算法超详细解析(包括诞生背景+论文解析+技术原理等)

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。YOLOv4论文的发表背景是在原作者声名放弃更新YOLO算法后&#xff0c;俄罗斯的Alexey大神扛起了YOLOv4的大旗&#xff0c;因此&#xff0c;其诞生背景是为了进一步提高目标检测算法的性能和精度。本篇文章就简单讲述一下YOL…

Java 8 新特性 Stream 的使用场景(不定期更新)

方便在写代码的过程中直接使用&#xff0c;好记性不如好文章&#xff0c;直接 CV 改了直接用。提高 办&#xff08;摸&#xff09;公&#xff08;鱼&#xff09;效&#xff08;时&#xff09;率&#xff08;间&#xff09;&#xff0c; 不然就直接问 GPT 也不是说不行。 只符合…

Mysql学习文档笔记

文章目录 基础篇通用语法及分类DDL&#xff08;数据定义语言&#xff09;数据库操作注意事项 表操作 DML&#xff08;数据操作语言&#xff09;添加数据注意事项 更新和删除数据 DQL&#xff08;数据查询语言&#xff09;基础查询条件查询聚合查询&#xff08;聚合函数&#xf…

【C语法学习】18 - fread()函数

文章目录 1 函数原型2 参数3 返回值4 示例 1 函数原型 fread()&#xff1a;从与指定流stream相关联的二进制文件中读取数据块储存在str指向的内存空间中&#xff0c;函数原型如下&#xff1a; size_t fread(const void *ptr, size_t size, size_t count, FILE *stream)2 参数…

[动态规划] (七) 路径问题:LCR 166.剑指offer 47. 珠宝的最高价值

[动态规划] (七) 路径问题&#xff1a;LCR 166./剑指offer 47. 珠宝的最高价值 文章目录 [动态规划] (七) 路径问题&#xff1a;LCR 166./剑指offer 47. 珠宝的最高价值题目解析解题思路状态表示状态转移方程初始化和填表顺序 返回值代码实现总结 LCR 166. 珠宝的最高价值 题目…

python web框架 flask基础入门教程

python web框架 flask基础入门教程 今天我们写一个flask基础入门教程&#xff0c;当然也会覆盖很多重要的知识点&#xff0c;在这篇博客中&#xff0c;我们主要会讲解如下内容&#xff1a; 1、通过flask框架向web传输和接收参数 2、实现静态图片插入和图书上传 3、实现搭建…