AGV二维码导航
Automated Guided Vehicle
一、工作原理理解
1.传感器读取到二维码时,输出传感器中心与二维码中心的距离和偏转角度
2.(1)通过控制根据二维码传感器的扫描获取到地面铺设的二维码图像坐标系中的位置,把采集到的二维码图像的位置坐标信息传送给AGV控制器
(2)控制器计算图像传感器提供的坐标数据,确定图像在地图上的位置;调度系统发送给AGV小车导航路径指令
(3)AGV小车根据接收到的路径指令,建立局部导航坐标系并计算初始位置
(4)AGV控制器通过编码器信息反馈量控制轮子转动圈数,使得AGV小车依次行驶至导航路径指令序列中的每个二维码图像标签,以完成导航路径指令
(5)到达目的地时扫描目的地二维码确认到达
3.软件系统以算法为主体——控制决策(控制命令)——反馈信息(里程数据)形成完整的闭环控制
4.AGV导航系统结构
(1)感知环境,路径规划,自主导航,自主避障,电量管理
主要包括对二维码图像进行识别处理,AGV位姿状态计算,自主避障处理,任务分配及路径规划等
- 感知是通过自身传感器去接收环境的数据并传递AGV的在线状态
- 定位是通过周围环境识别当前的位置信息
- 认知是收集处理周围环境信息后作出的决策
(2)还包括交互控制和外部接口
-
交互控制: 主要是数据通信接口模块,实现AGV与各应用模块、AGV与上层控制管理系统之间的数据交互,同时提供接口调用,便于系统各功能模块之间的密切配合,实现信息交互
-
外部接口: 数据库,用于保存或变更物流仓库的坐标数据,实现仓库地图的位置布局及二维码设计等,并储存规划路径
企业资源计划实现物流订单输入和分拣管理
仓库管理系统存储当前库存等信息
(3)流程图
(4)流程概述
- 对激光导航扫描获取的物流仓库地图进行编辑导入,并对仓库系统进行环境建模及电子地图设计
- 根据入/出库的情况进行路径规划
- 同时利用二维码导航扫描规划路径上的二维码标签位置信息,并确认到达目的地】、
(5)导航系统平台功能模块
(1)用户管理模块:在登录界面正确输入用户名和密码
(2)运行窗口主界面:设置通信模块按钮、地图构建模块按钮和导航追踪按钮,可随时设置通信模式,并根据订单任务进行导航及路径追踪
(3)通信模块:主要设置AGV通信方式的相关参数,即无线网络的访问类型和连接方式,串口通信的端口号及波特率。完成设置后,即可实现通信,同时显示上机位软件与AGV的通信状态。
(4)地图构建模块: 该导航系统平台应用于不同的仓库地图时
- 首先需要导入地图并进行编辑。打开地图构建模块,获取仓库环境障碍物信息并对其进行环境建模和分区管理。
设置二维码标签尺寸大小、间隔和形式,并在路径点上显示出。
- 保存并备份电子地图,之后登录时可直接调用
(5)订单任务下发后
- 可根据地图中的特征点以及AGV小车的目的地规划出形式路线,然后使用二维码传感器扫描AGV预定行驶路径上包含位置位置信息的二维码标签。
- 点击运行界面主窗口上的导航追踪按钮,输入AGV的起始点及目标点坐标,可实现AGV路径导航。
- 同时添加二维码信息记录,可随时查看AGV运行情况,并确认到达目的地位置。
5.包含有当前位置信息的二维码标签依次张贴在地面上,装有传感器的AGV经过二维码,对其包含的信息进行读取、处理,从而获得当前位置坐标,以指引AGV沿预设路径行驶,并在到达目的地时扫描目的地二维码确认到达,从而实现定位导航
二、二维码之间的空白区域纠偏
航迹推算
三、减小推算误差
1.缩短二维码之间的距离
2.增加惯性导航(pixhawk、crazypony等)
四、轨迹规划
1.Frenet坐标系 笛卡尔坐标系
2.轨迹规划
(1)路径规划: 采用 状态晶格,然后采用非线性规划进行优化
(2)速度规划: A*搜索,Dijkstra(搜索无关节点,效率较低),在此基础上通过二次规划优化
D*算法,State Lattice算法
PRM算法
RRT算法
曲线插值类算法
直线圆弧算法
回旋曲线算法
多项式曲线算法
3.原地转向问题
(1)圆弧曲线
(2)回旋曲线
4.坐标系
(1) AGV前进方向为X轴正方向,面向AGV前方时左侧为Y轴正方向,与地面垂直为Z轴正方向
(2)将AGV看成在二维平面运动的刚体
5.避障算法
(1)Bug算法
(2)势场法
(3)向量场直方图
(4)神经网络
(5)模糊逻辑
五、二维码处理
1.预处理
(1)图像灰度化: 降低图像维度并且减少数据量加快后期运算速度
-
均值法: Gray = (R + G + B) / 3
-
最大值法: Gray = Max(R, G, B)
-
加权平均值法(better): (W® * R + W(G) * G + W(B) * B) / (W® + W(G) + W(B))
W® W(G) W(B)分别表示R, G, B的权重,取 0.299, 0.587, 0.114时灰度化效果最好
(2)图像滤波: 降低 主要噪声对图像的不良影响
- 中值滤波(better)
- 均值滤波: 二维码边缘信息被弱化,影响二维码细节表达
(3)图像二值化: 减少照明不均匀对图像产生的影响同时减少数据量提高后期运算速度
- 全局阈值(若使用加权平均值处理,得到的灰度直方图波峰波谷较明显,better): 对图像全局采用一样的阈值进行分类处理,但灰度直方图的波峰波谷不明显时效果不好
- 局部阈值: 在计算时分区,每个区域使用自己的阈值进行二值化处理,确定阈值时会通过对该区域和相邻区域的对比选取相应的阈值。但噪声比较大的时候效果不好
- 自适应阈值: 依图像每个局部特征选择针对性的二值化算法,最终结果更接近原始图像,对原始图像破坏最小。但是运算速度慢
2.二维码图像提取
(1)二维码定位: 减少复杂背景的影响以加快后期运算
- 当直线水平穿过二维码的其中一个探测图形,根据灰度值直线被分为5段,长度比为1:1:3:1:1 ;在畸变的情况下,一条直线水平穿过位置探测图形,5个线段比例也是1:1:3:1:1,只是长度有所不同,比例相同;直线竖直穿过同理。
-
算法实现流程:从水平和竖直两个方向扫描含有二维码的二值图,并根据灰度值不同,将扫描的线段分割成很多个小线段。
在这些连续线段中长度比大约为1:1:3:1:1,且灰度值是0和255交替的线段。
通过从上到下和从左到右的扫描寻找出全部符合这一长度比例的线段合集组成的区域,找到同时包含两个包含上述区域的所有矩形区域,矩形区域中心点可以倍认为是位置探测图形的中心点
(2)二维码畸变矫正: 对产生畸变的二维码进行矫正
- 对于二维码图像的几何畸变,使用空间变换对二维码进行畸变矫正操作。由于二维码的边缘轮廓始终是一个四边形 ,故矫正成矩形时只需要将原图像中的四个顶点设置为畸变控制点。针对二维码的结构组成特征,需要通过反复的形态学操作消除二维码符号中的非联通区域,然后利用边缘检测算法寻找出二维码的边缘,根据二维码边缘拟合得到的四个边缘所在的直线。这四条直线的四个交点即为四边形的顶点,将其视为二维码畸变矫正的畸变控制点。
- 边缘检测算法:
3.二维码译码
六、基于二维码标签的EKF-SLAM定位系统
1.EKF-SLAM算法
(1)检测到新的路标特征时,系统状态向量需要增加新的维度;匹配到已经检测过的路标特征,则更新已检测过的路标特征。系统每次收集采集到的路标特征信息,小车的航向角度信息和里程信息进行迭代更新,从而估计出小车的最优状态
(2)构建过程
- 预测过程:根据小车的运动模型
- 观测过程:设定EKF-SLAM的观测模型Z(k)为2维向量,由landmark相对传感器的距离和方向角组成
- 更新过程:当小车检测到新的landmark时,需要计算新landmark在世界坐标系下的坐标,增加EKF-SLAM系统状态向量的维数,并保存新landmark的坐标信息,方便后续的定位中,再次检测到相同的landmark进行路标标签的匹配定位
2.二维码标签的定位识别
(1)采用PnP算法计算二维码路标在相机坐标系下的坐标(先进行相机标定,确定相机的畸变系数),进一步求出二维码相对相机的距离和方位角。
(2)用途: 将二维码标签定位符作为EKF-SLAM系统中的landmark
(3)过程: 利用PnP算法计算二维码定位符点在相机坐标系下的坐标,需要已知二维码定位符点在世界坐标系下的坐标。当无人小车第一次建图时,小车需要自动计算二维码定位符点的世界坐标,才能在后续二维码标签的识别过程中利用PnP算法计算二维码标签定位符点在相机坐标系下的坐标。
(4)二维码世界坐标的求解过程:
- 建立二维码检测初始坐标系
- 检测第一个二维码标签
- 检测第二个二维码标签
七、激光导航构建地图及环境建模
八、分区化地图
1.停靠区:AGV在无任务执行或任务空档期时停靠,不允许AGV在停靠区以外的区域长时间停放,避免造成大面积阻塞情况
2.补货区和分拣区:AGV将货物送到指定货架,分拣后也将其依次送出。根据AGV停靠的位置就近调度,一个指令对应调度一台AGV。AGV只在货物出入库时才在补货区和分拣区短暂停留
3.货架区: 货架严格放置在货架区,并按规则依次排列。并与上层管控系统及时进行信息交互,防止信息错误存储
4.充电区: 电量低于一定范围的AGV自动到此进行充电。当充电阻塞,充电量超过80%的AGV可从充电站调出并执行任务。
九、二维码导航实现
1.根据地图建立地图坐标系,分为局部坐标系和全局坐标系,二者相互关联,能够更准确地反应当前位置坐标。
(1)局部坐标系: 指相对相对虚拟控制平台软件窗口的位置坐标
(2)全局坐标系: 指的是真实仓库环境对应的实际坐标
2.二维码定位方案
(1)QR技术将定位信息存入二维码图像中,将二维码图像作为地表按照一定排列方式贴在机器人行走路径上。AGV上的二维码传感器扫描二维码获取坐标信息,将信息发送至AGV的控制核心模块,从而进一步控制AGV下一步运行。该过程包含了二维码标签信息的读取,AGV与二维码的间距测量以及对AGV运动状态的确定
(2)在编码过程中,可以通过编码来包含全局环境下的二维码位置坐标信息。当AGV扫描二维码时,可以解析出其中的信息以获取当前的全局位置。
3.二维码标签设计: 二维码标签存储的信息为所处位置信息
4.二维码间隔选取:0.5m, 1m, 2m分别测试
5.二维码标签形式:标签编号为0000 0000 到 9999 9999
采用3x3,4x4或5x5的二维码标签
正中心二维码编号05 0008 0012,若上一个扫描的二维码编号为02 0008 0011,则下一个扫描的二维码编号为08 0008 0012
6.二维码偏差参数计算
二维码传感器扫描到二维码图像后,通过识别读取二维码标签的位置信息以完成AGV的定位,然后根据二维码特征点坐标确定偏差参数,得到AGV的位置和方向
十、紧急避障处理
1.静态障碍物: AGV路径规划时直接设定避开
2.动态障碍物:AGV自动减速或紧急停止
建立物理模型得类似下图的表
参考文献
[1]尚明超.基于二维码和角点标签的无人小车室内定位算法研究实现[D].西南交通大学,2017.
[2]黎译繁.基于二维码识别的快递分拣系统[D].西安科技大学,2019.
[3]方婧.应用激光陀螺仪和二维码的AGV导航系统研究[D].武汉工程大学,2018.