1. AGV小车的发展背景

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

AGV小车构成系统图

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

2.AGV小车运行系统

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

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

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

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

差速转向式四轮车型

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

全轮转向式四轮车型

从成本及系统应用考虑,本文着重介绍差速转向式四轮车型。两驱动车轮由两伺服驱动器控制,伺服驱动器通过改变两车轮的速度大小、方向,实现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小车的运动控制系统使用是更为适合。

3.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定位精确,地面无需其他定位设施,行驶路径灵活多变,适合多种现场环境。但它有一个很大的缺点是制造成本高,所以在本文不作重点讨论。

4.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小车设计及应用更趋完善。

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

  1. 剑指offer系列——二维数组中,每行从左到右递增,每列从上到下递增,设计算法找其中的一个数

    题目:二维数组中,每行从左到右递增,每列从上到下递增,设计一个算法,找其中的一个数 分析: 二维数组这里把它看作一个矩形结构,如图所示: 1 2 8 2 4 9 12 4 7 10 13 6 8 11 ...

  2. 交互设计算法基础(1) - Binary Search

    int binary_search(int[] list, int item) { int low = 0; int high = list.length-1; while (low <= hi ...

  3. 设计算法,求AB两个整数集合的交集

    [本文链接] http://www.cnblogs.com/hellogiser/p/ab-set-intersection.html [分析] 思路1:排序法 对集合A和集合B进行排序(升序,用快排 ...

  4. 交互设计算法基础(4) - Hash Table

    import java.util.Map; // Note the HashMap's "key" is a String and "value" is an ...

  5. 交互设计算法基础(3) - Quick Sort

    int pivotIndex, pivot, swapIndex; void swap(int[] arr, int x, int y) { int temp = arr[x]; arr[x] = a ...

  6. 交互设计算法基础(2) - Selection Sort

    int[] selection_sort(int[] arr) { int i, j, min, temp, len=arr.length; for (i=0; i<len-1; i++) { ...

  7. 最大子段和的DP算法设计及其效率测试

    表情包形象取自番剧<猫咪日常> 那我也整一个 曾几何时,笔者是个对算法这个概念漠不关心的人,由衷地感觉它就是一种和奥数一样华而不实的存在,即便不使用任何算法的思想我一样能写出能跑的程序 直 ...

  8. C#算法设计之知识储备

    前言 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/669 访问. 算法的讨论具有一定的规则,其中也包含一些不成文的约定 ...

  9. 算法设计手冊(第2版)读书笔记, Springer - The Algorithm Design Manual, 2ed Steven S.Skiena 2008

    The Algorithm Design Manual, 2ed 跳转至: 导航. 搜索 Springer - The Algorithm Design Manual, 2ed Steven S.Sk ...

随机推荐

  1. javascript ActiveXObject FileSystemObject 对象,创建、复制、删除、读取文件等

    Javascript是网页制作中离不开的脚本语言,依靠它,一个网页的内容才生动活泼.富有朝气.但也许你还没有发现并应用它的一些更高级的功能吧?比如,对文件和文件夹进行读.写和删除,就象在VB.VC等高 ...

  2. SpringMvc获取上下文

    import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.spri ...

  3. 魔板 Magic Squares(广搜,状态转化)

    题目背景 在成功地发明了魔方之后,鲁比克先生发明了它的二维版本,称作魔板.这是一张有8个大小相同的格子的魔板: 1 2 3 4 8 7 6 5 题目描述 我们知道魔板的每一个方格都有一种颜色.这8种颜 ...

  4. Execution default-cli of goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.2:generate failed: Exception getting JDBC Driver: com.mysql.jdbc.Driver (mybatis逆向工程)

    springboot整合mybatis时出现的问题 解决方法:在pom.xml中plugin中加入单独依赖Mysql驱动包,问题便可解决 <plugin> <groupId>o ...

  5. Vue使用json-server来进行后端数据模拟

    正开发过程中 前后端分离或者不分离 ,接口多半是之后与页面的开发 ,所以建立rest的APL的接口 给前端提供虚拟的数据是非常必要的 所以这里我使用了json-server作为工具,支持CORS和JS ...

  6. Windows环境下安装redis及PHP Redis扩展

    附带管理工具安装教程 安装环境 WNMP环境 参考教程:WIN10下WNMP开发环境部署 安装windows的redis服务 安装包下载 选择msi安装包下载并安装,下载可能会有点慢,请自行使用梯子. ...

  7. 用友二次开发之科脉TOT3凭证接口

    按客户的要求,根据科脉导出的数据,开发一个工具,将凭证导入T3 这个科目导出的凭证格式. 选择账套登陆,你没看错,这个是我开发的登陆界面. 选择接口文件. 软件自动进数据分类,你可以看到数据了.但只是 ...

  8. 廖老师的Python教程——安装Python

    因为Python是跨平台的,它可以运行在Windows.Mac和各种Linux/Unix系统上.在Windows上写Python程序,放到Linux上也是能够运行的. 要开始学习Python编程,首先 ...

  9. python七类之字符串

    字符串 一.关键字:str 字符串是不可变的可迭代的数据类型 二.方法: name = 'alex uwu sir' .title #标题 使首字母大写​​ 只要有特殊字符隔开,才能分别认为是多个单词 ...

  10. PHP环境搭建-记录

    转于 http://jingyan.baidu.com/article/fcb5aff797ec41edaa4a71c4.html php5.5 做了大量的更新,在与apache搭配的时候如何选择也很 ...