AGV小车经典算法设计及应用

2023-05-16

1. AGV小车的发展背景

在现代化工业的发展中,提倡高效,快速,可靠,提倡将人从简单的工作中解放出来。机器人逐渐替代了人出现在各个工作岗位上。机器人具有可编程、可协调作业和基于传感器控制等特点,自动导向小车(Automated Guided Vehicle 简称AGV)便是移动机器人的一种,是现代化工业物流系统中的重要设备,主要为储运各类物料,为系统柔性化、集成化、高效运行提供了重要保证。

                    AGV小车构成系统图

 

AGV小车有三个关键系统,运行系统、导引系统、控制系统,其它还包括有路线系统及安全保护系统等。本文着重介绍AGV小车的三个关键系统。

2.AGV小车运行系统

AGV小车运行系统是由车轮、减速器、制动器、电机及速度控制器等部分组成。AGV小车常设计成三种运动方式:只能向前;能向前与向后;能纵向、横向、斜向及回转全方位运动。本次研究的AGV小车是能够前进、后退及回转全方位运动。AGV小车能够进行回转运动需要有转向装置。转向装置的结构也有三种:

  1. 前轮转向后轮驱动三轮车型。 车的转向和驱动分别由两个不同的电动机带动,车体的前部为转向车轮,车体后部为驱动电机驱动的两个轮。其结构简单、成本低,但定位精度较低。

     

                     前轮转向后轮驱动三轮车型

  1. 差速转向式四轮车型。 车体的中部有两个驱动轮,由两个电机分别驱动。前后部各有一个转向轮(自由轮)。通过控制中部两个轮的速度比可实现车体的转向,并实现前后双向行驶和转向。这种方式结构简单,定位精度较高。

         

                      差速转向式四轮车型

  1. 全轮转向式四轮车型。 车体的前后部各有两个驱动和转向一体化车轮,每个车轮分别由各自的电动机驱动,可实现沿纵向、横向、斜向和回转方向任意路线行走,控制较复杂。

    

                        全轮转向式四轮车型  

从成本及系统应用考虑,本文着重介绍差速转向式四轮车型。两驱动车轮由两伺服驱动器控制,伺服驱动器通过改变两车轮的速度大小、方向,实现AGV小车的前进、后退、加减速及转向动作。

AGV小车通过伺服控制,很容易实现前进、后退及加减速,但如何通过改变两驱动轮的速度差,实现AGV小车的转向及纠偏?下面,我们首先了解一下差速转向式四轮车的运动模型。

                  AGV小车运动状态及偏差示意图

图中虚线表示的车体为初始位姿,实线表示的车体是在和初始时差为Δt时的位姿。AGV车子的左轮运行速度为Vr、右轮为Vl,AGV小车沿着A点作圆弧运动,转弯半径为d。可以得:

         ①

AGV小车运动偏移弧度为Δθ,容易得:

         ②

由式可得AGV小车运动偏移弧度Δθ与左右轮的速度关系式:

         ③

AGV小车在做圆弧运动时,在X轴上的变化量是ΔX,在Y轴上的变化量是ΔY,ΔX、ΔY与转弯半径d的关系为:

        ④       

        ⑤

将①式代入④⑤式,可以得出ΔX、ΔY与左右轮运行速度的关系式:

      ⑥

      ⑦

所以,通过改变Vr及Vl可以实现AGV小车纠偏,转向等运动控制。驱动轮的变速控制,有多种方法可选择,包括变频器控制、步进控制、伺服控制等。其中变频器控制及伺服控制除了有高精度的速度控制外,还能提供灵活的转矩控制。在AGV小车的运动模型中,其有干摩擦力矩、惯性转矩、粘性摩擦力矩、重力力矩、弹性力矩等。所以AGV小车在运行过程中,驱动器需要提供不同的力矩,AGV小车才能运行得更稳定。而伺服控制比变频器拥有更高的速度控制精度、更小的安装位置、更高的IP防护等级以及更好的停车制动功能。所以,伺服控制器作为AGV小车的运动控制系统使用是更为适合。

  1. AGV小车导引系统

AGV小车能自动运行,需要有导引装置。常用的导引方式分为两大类:车外预定路径和非预定路径方式。下面对两种方式分别作介绍。

1)车外预定路径导引方式是指在行驶的路径上设置导引用的信息媒介物,AGV通过检测出它的信息而得到导向的导引方式,如电磁导引、色带导引、磁带导引(又称磁性导引)等。

                            色带导引示意图

上图为光学导引示意图,这种导引方式是在地面上连续敷设一条带颜色的带子,在车辆的底部中央安装光源以及在两边安装相同的色标传感器(如欧姆龙产品E3X-DA□AN-S),它们同时检测色带反射回来的色度值,并将色度值转换成模拟量传送给AGV小车的中央控制系统--PLC。当AGV小车运行在正确的运行轨道上时,两放大器反馈给PLC模拟量的值相同,当AGV小车偏离轨道时,两放大器反馈给PLC的值便有差别,PLC根据两模拟量的差值便能判断出AGV小车偏离运行轨道的程度及方向,并通过控制运动控制器使AGV小车往正确的轨道运行。

色带导引灵活性较好,地面路线设置简单易行,但对色带的污染和机械磨损十分敏感,对环境要求高,导引可靠性较差,精度较低。在预定路径导引方式中,还有电磁导引等。电磁导引是较为传统的导引方式之一,目前仍被许多系统采用,它是在AGV的行驶路径上埋设磁条,并在磁条上加载导引频率。磁导航传感器通过检测磁条上的磁场,便能判断出AGV小车的运行是否偏离轨道。

                    磁导航传感器工作原理图

上图为磁导航传感器的工作原理图,磁导航传感器可安装在AGV小车的底部中央,距离磁条表面20-40mm,磁条宽度为30-50mm,厚度1mm。磁导航传感器内部每隔10mm排布一个采样点,共排布16个采样点,能够检测出磁条上方的磁场,每一个采样点都有一路对应输出。AGV运行时,磁导航传感器内部垂直于磁条上方的连续3-5个采样点会输出信号(如图中磁导航传感器上黄色条为检测到磁场信号的采样点,蓝色条为未能检测出磁场的采样点)。AGV小车的控制系统便能依靠16路通道中输出的3-5路信号,可以判断磁条相对于磁导航传感器的偏离位置,自动作出调整,确保沿磁条前行。

拥有了运行路径后,还需要在每个工位及节点设置位置标签,使AGV小车在运行到特定位置时,能做出加速、减速、停车、拐弯等动作。如在每个工位敷设不同颜色的色条,当色标传感器检测出到颜色信号时,小车控制系统便能掌握小车运行的位置。色条作为位置标签,使用简单、方便,但对外部环境要求较高,容易产生误检测,可靠性差。

AGV小车系统还可以使用RFID标签作为位置标签。RFID标签能存储大量的位置信息,并能多次读写,RFID标签的体积较小安装方便,抗干扰能力强。RFID读写器安装在AGV小车前方底部,对标签信息进行读取,并通过控制系统控制小车的下一步动作。

欧姆龙公司拥有成熟的RFID系列产品。RFID主推产品有V680系列,包括有读写器V680-CA5D01-V2,能读写ID标签,可通过RS232/485接口与PLC通讯;天线V680-HS63,天线的读写距离为7.0~30.0mm,ID标签V680-D2KF67M,使用FRAM用来作为存储器,不需要电池,外壳材质为填充树脂,形状为40×40×4.5mm。下图为AGV小车RFID系统工作原理图。

                 AGV小车RFID系统工作原理图

电磁导引引线隐蔽,不易污染和破损,便于控制,对声光无干扰,制造成本低。但所有车外预定路径导引方式都存在共同缺点是路径难以更改扩展,对复杂路径的局限性大。与车外预定路径导引相反,非预定路径导引方式没有固定路径,其自主性更高。

2)非预定路径导引方式是指AGV小车在运行中没有固定的路径,其通过激光、视觉、GPS等方式,掌握运行中所处的位置,并自主地决定行驶路径的导引方式。其中,较常用的是激光导引方式。

激光导引是在AGV行驶路径的周围安装位置精确的激光反射板,AGV通过激光扫描器发射激光束,同时采集由反射板反射的激光束,来确定其当前的位置和航向,并通过连续的三角几何运算来实现AGV的导引。

         

                   激光扫描器工作示意图

非预定路径导引方式优点是:AGV定位精确,地面无需其他定位设施,行驶路径灵活多变,适合多种现场环境。但它有一个很大的缺点是制造成本高,所以在本文不作重点讨论。

  1. AGV小车控制系统

AGV小车系统除了上文提及的运行系统及导引系统外,还需要有中央控制系统,它能采集导引系统返回的位置信息,通过运算转换,反作用于运行系统,使AGV小车能做出需要的动作。

欧姆龙CP1H系列PLC便可以作为AGV小车的中央控制器,它可以接收导引系统返回的模拟信号或开关量信号;它可以安装RS232、RS422/485接插件,通过串行通讯方式与RFID控制器通讯,采集ID标签的位置信息;它能输出控制伺服运行的脉冲信号或模拟量信号;CP1H的编程命令较简单,程序修改方便,而且还自带有AGV小车运行中需用到的PID等高级命令。所以CP1H非常适合用于AGV小车的中央控制器。

小结

AGV小车系统是一个较复杂、跨学科、多系统的运动控制课题,因为本人知识底子较浅,本文对AGV各系统的介绍都是很表面及简单,离实现AGV小车控制还有很远的距离。以后我还需要研究“如何通过模糊PID控制AGV小车两轮的速度差,使AGV小车的运行更稳定”、“AGV小车在各运行状态时的力矩情况”、“如何使用梯形图编写AGV小车运行程序”等课题,使AGV小车设计及应用更趋完善。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AGV小车经典算法设计及应用 的相关文章

  • linux下安装redis

    1 首先在服务上安装wget下载工具 yum install wget 2 下载redis安装包 wget http span class token operator span span class token operator span
  • cas 4.0单点登录服务端部署

    1 首先下载tocams和cas4 0服务端代码 cas4 0代码链接如下 xff1a https github com apereo cas releases tag v4 0 0 tomcat链接如下 xff1a 我这里用的是tomca
  • linux配置jdk1.8环境

    配置环境变量 vim span class token operator span etc span class token operator span profile 加入 根据自己jdk存放的路径 export JAVA HOME sp
  • Lock和Rlock

    Lock acquire blocking 获取一把锁 xff0c 阻塞的或者非阻塞的 当调用时blocking参数设置为True xff08 默认值 xff09 xff0c 将阻塞直至锁变成unblocked xff0c 然后设置它的状态
  • 酒店管理系统项目模板、毕业设计

    下载地址 xff1a 酒店管理系统模板 毕业设计 xff1b 附带项目sql Java文档类资源 CSDN下载 hotel db hotel sql ssm hotel out artifacts ssm hotel Web explode
  • 布谷鸟搜索算法

    布谷鸟搜索 xff08 Cuckoo Search xff0c 缩写 CS xff09 xff0c 也叫杜鹃搜索 xff0c 是由剑桥大学杨新社 xff08 音译自 xff1a Xin She Yang xff09 教授和S 戴布 xff0
  • 【IMX6ULL学习笔记之Linux系统移植05】——学习总结以及遇到的问题

    学习总结 此时Linux系统已经完毕 xff0c 此时的启动方式 xff0c U boot从内存卡启动 xff0c 然后通过bootcmd命令配合bootargs参数引导U boot从网络服务器 xff08 Ubuntu xff09 指定位
  • 各种dns:百度DNS/阿里DNS/114DNS/腾讯DNS/谷歌DNS/OpenDNS 对比评测

    不知道大家有没有过网络是正常的 xff0c QQ可以正常登录 游戏也可以正常玩 xff0c 但是网页无论如何都打不开 这就是电脑网络设置的DNS服务器有问题 xff0c 不是其故障就是不工作了 换了DNS服务器成功解决问题 下边给大家分享一
  • 【IMX6ULL学习笔记之Linux系统移植06】——笔记本安装Ubuntu系统开发

    背景 最近置办了一台台式机 xff0c 笔记本电脑性能看不上了 xff0c 就空置下来 xff0c 把笔记本安装成Ubuntu系统 xff0c 专门用来嵌入式学习 重新移植Linux系统 xff0c 再次学习 总结 U boot的seten
  • 【IMX6ULL学习笔记之驱动学习01】前言

    系统烧写 经过前面的移植 xff0c 现在我们已经移植好了Uboot和Linux Kernel xff0c 制作好了根文件系统 系统通过SD卡启动Uboot xff0c Uboot引导程序将Linux镜像文件 设备树文件和根文件系统从Ubu
  • 【IMX6ULL学习笔记之驱动学习02】LED字符设备驱动

    字符设备驱动开发 配置开发环境 新建一个VScode文档 xff0c 先配置开发环境 Ctrl span class token operator 43 span Shift span class token operator 43 spa
  • 第八章——常用数据排序算法之归并排序

    第八章 常用数据排序算法 概述 插入排序 选择排序和冒泡排序这些算法有一个共同的特点 xff0c 为了将N个无序数据进行排序最多需进行N 1轮处理 xff0c 每轮处理范围大小不同 xff08 2 N 1 xff09 xff0c 平均约N
  • ERROR:Did not find a cmdline Flattened Device Tree

    span class token operator 61 span span class token operator gt span bootz span class token number 80800000 span span cla
  • Linux中的英文简称的名字全称

    Linux中英文简称的全称 知道全称能更方便的记忆 ALSA xff08 Advanced Linux Sound Architecture xff09 高级Linux声音架构V4L2 xff08 Video for linux2 xff0
  • LeetCode_26

    删除有序数组中的重复项 给你一个 升序排列 的数组 nums xff0c 请你 原地 删除重复出现的元素 xff0c 使每个元素 只出现一次 xff0c 返回删除后数组的新长度 元素的 相对顺序 应该保持 一致 由于在某些语言中不能改变数组
  • 快乐的shell命令行

    快乐的shell命令行 PART1 基础 1 权限 超级用户权限 普通用户 2 复制粘贴 复制 xff1a 鼠标左键沿着文本拖动高亮的文本被复制到X管理的缓冲区 xff08 或者双击一个单词 xff09 粘贴 xff1a 鼠标中键 3 简单
  • Linux三剑客(grep、awk、sed)

    Linux三剑客 xff08 grep awk sed xff09 grep xff08 文本过滤工具 xff09 A 10显示匹配字符串后面10行内容 n显示匹配字符串在匹配文件中的行号 w整个字符串匹配 c显示匹配个数 C 10显示匹配
  • 查询Linux内核中的结构体/函数定义

    查询Linux内核中的结构体 函数定义 下载 安装Ctags 下载ctags源码https ctags sourceforge net 解压tar zxvf ctags 5 8 tar gz配置 configure编译make安装sudo
  • 新广告法违规词、敏感词在线检测工具

    新广告法的上线实行 xff0c 限制了很多的违规词 xff0c 敏感词的使用 xff0c 极限用语的处罚由原来的退一赔三变更为罚款二十万元起 如何确定广告中是否存在有敏感词呢 小龙经过多方努力 xff0c 终于开发出了新广告法违规词 敏感词
  • Linux应用学习——GDB调试

    GDB调试学习记录 常用操作 以client c为例 span class token macro property span class token directive hash span span class token directi

随机推荐

  • Linux学习笔记

    Linux学习笔记 Linux驱动 GPIO GIC中断 Cortex A7中断管理器GIC IIC设备框架 SPI设备框架 MISC驱动框架 Input设备框架 Platform设备框架 USB设备 Linux应用开发 Shell 快乐的
  • Cortex-A7中断控制器GIC

    Cortex A7中断控制器GIC 中断号 芯片内部的中断都会引起IRQ InterruptGIC将所有的中断源 最多1020个中断ID 分为三类 SPI SharedPeripheralInterrupt 共享中断 xff0c 外部中断都
  • Linux应用学习——多进程

    进程 当一个进程正常终止时可以通过int atexit void function void 注册进程终止处理函数 PART1 进程相关概念 进程是一个动态的过程 xff0c 而非一个静态的文件 xff0c 是程序的一次运行过程 xff0c
  • Linux应用学习——多线程

    多线程 PART1 线程相关概念 线程时参与系统调度的最小单位 被包含在进程之中 xff0c 是进程中的实际运行单位 一个进程可以创建多个线程 xff0c 多个线程实现并发运行 xff0c 每个线程执行不同的任务 线程时最基本的运行单位 x
  • Linux编程小工具

    编程小技巧 1 函数 结构体查询 需求背景 xff1a 安装了ctag安装使用ctag可以通过vim t 34 i2c client 34 来查询i2c client结构体的信息 不方便的地方 xff1a 需要进入指定的目录下才行 Git
  • Linux应用学习_网络开发

    Linux应用学习 网络开发 1 TCP套接字编程 1 1 套接字 1 1 1 通用套接字sockaddr span class token keyword struct span span class token class name s
  • Linux应用学习——高级I/O复用

    高级I O 阻塞I O 阻塞 xff0c 进入休眠状态 xff0c 让出CPU的使用权 xff0c 等待阻塞的条件为真普通文件一定是以非阻塞的方式进行I O操作文件默认是通过阻塞式操作的 fd span class token operat
  • 《从0到1大话操作系统》--(2)纸质内存中的数据结构

    你一定听过那句著名的等式 xff1a 程序 61 数据结构 43 算法 你可能不相信 xff0c 一个叫尼古拉斯 沃斯 xff08 Niklaus Wirth xff09 的瑞士计算机科学家 xff0c 凭这句话 xff0c 获得了图灵奖
  • 《从0到1大话操作系统》--(1)万物起源:编码

    古希腊毕达哥拉斯学派的世界观人为世界的本质是数 在计算机的世界中 xff0c 所有的一切也确实是数 万物起源 xff1a 编码 1 万物皆可编码2 ASCII编码3 互不兼容4 Unicode编码 1 万物皆可编码 曾经有一位懵懂的少年 x
  • 【安全】如何关闭Windows系统的137, 139, 445端口?

    4月14日晚 xff0c 一个叫Shadow Brokers的黑客组织泄露了一大波Windows的远程漏洞利用工具 xff0c 事件细节可以参照运维派前面的文章 Windows血崩 xff0c 一波大规模 0day 攻击泄漏 恩威科技 am
  • Linux中断、系统调用处理流程与进程切换

    1 中断与系统调用的过程 1 程序控制流 正常程序的控制流只有next xff08 执行下一条指令 xff09 和goto xff08 跳转到另一条指令执行 xff09 除了正常控制流之外 xff0c 还有异常控制流 xff0c 广义上异常
  • 开篇叙事

    开篇叙事 我为什么会在这儿我的主题我的经历 我为什么会在这儿 作为我第一次踏足CSDN xff0c 当然 xff0c 我说的是在CSDN上写博客 xff0c 我在CSDN上阅读博客已经有很长一段时间了 xff0c 这里有非常多的非常棒的博主
  • Redhat(红帽) Linux软件包管理rpm概述

    1 软件包管理的内涵 习惯了Windows上安装软件的方式 下载安装包 xff0c 双击运行 xff0c 点击几次下一步后 xff0c 软件就安装完了 我也是常年使用Windows xff0c 习惯了Windows的方式 xff0c 却从来
  • FreeRTOS(一):裸机系统与多任务系统

    裸机系统与多任务系统 3 1裸机系统3 1 1轮询系统3 1 2前后台系统 3 2多任务系统总结 3 1裸机系统 裸机 xff1a 英文名是Bare machine Bare metal xff0c 指没有配置操作系统和其他软件的电子计算机
  • FreeRTOS(二):数据结构—列表与列表项

    数据结构 列表与列表项 4 列表与列表项4 1链表4 1 1单向链表4 1 2双向链表4 1 3链表与数组的对比 4 2FreeRTOS中链表的实现4 2 1实现链表节点1 定义链表节点数据结构2 链表节点初始化 4 2 2实现链表根节点1
  • Cordova技术初次学习

    文章目录 前言一 Cordova 是什么 xff1f 二 关于Cordova环境搭建前提要求 xff1a 1 利用npm 安装2 创建应用3 添加平台4 运行 三 结语 前言 这是一篇关于Cordova入门学习的记录文章 一 Cordova
  • 修改datax,Java获取mongo,Document转换成json,遇到的类型问题,用JsonWriterSettings解决

    java numberlong 解决方法 在修改datax插件的时候遇到了问题 问题 xff1a 我们存在mongo中带有数据类型 xff0c 如图 我们直接将Document转json会带上类型 且在mongo java driver的j
  • VirtualBox 主机ping不通虚拟机的解决办法

    visualBox的主机是ping不通虚拟机的 但是虚拟机能ping通主机 要先进行以下配置 第一个网卡为NAT Network 在网络配置中 xff0c 新建一个网卡2为桥接网卡 新建共享文件夹 国外一个老哥说的 xff0c 不新建共享文
  • 基于python实现相关模板匹配跟踪之SSDA算法

    基于python实现相关模板匹配跟踪之SSDA算法 1 单张图片匹配 1 1代码 1 2 效果 2 视频跟踪 2 1代码 2 2 效果 2 3 优化思路 3 参考链接 相关模板匹配跟踪和质心跟踪都是传统算法 相较于AI算法 具有极快的处理速
  • AGV小车经典算法设计及应用

    1 AGV小车的发展背景 在现代化工业的发展中 xff0c 提倡高效 xff0c 快速 xff0c 可靠 xff0c 提倡将人从简单的工作中解放出来 机器人逐渐替代了人出现在各个工作岗位上 机器人具有可编程 可协调作业和基于传感器控制等特点