当前位置:首页 期刊杂志

基于机器视觉和激光雷达的智能物料运输车

时间:2024-05-04

凌洋铭 王如衡 龙飞 陈倩诒

(长沙理工大学 湖南省长沙市 410114)

1 引言

在当今大规模的现代工业中,人工搬运最为古老,应用最广泛的搬运方式。人工搬运的搬运方式简单,但因其作业时效率低下,很容易浪费大量人力、物力、财力,并且由于工厂内部复杂的环境以及人员变动,还仍然存在着较大的安全隐患。调查显示,25%的事故都和人工搬运有关。其中,严重事故更是在24%以上。而智能物料运输车能够很好地解决这类安全问题,使用安全、高效的智能物料运输车替代人工操作,大大地保障了工人的身体健康。同时其高精度定位以及稳定的定位系统能够很好地保障工作的顺利进行。

在“中国制造2025”的目标下,引进无人搬运AGV小车是提高企业核心竞争力的有效途径,是工业化深入推进的必然趋势。2021年度,中国市场企业整体销售工业应用移动机器人(AGV/AMR)72000台,较2020年增长75.61%,市场销售额达到126亿元(海外销售25亿元),同比增长64%。中国制造产业正在遭遇着产品需求多元化的巨大挑战。由规模化制造转为大批量定制,对生产工艺的通用性、精确度和安全性都提出了更加严苛的要求。顺应人类生产方式柔性化的发展趋势。随着人类消费升级的脚步,中国机器人行业或于未来二年迎来“黄金交叉点”。机器人及控制系统核心技术的不断发展,“手、眼、脚、脑”全面机器人生态系统将助力物流行业和制造企业智能化升级。

针对以上情况,本项目设计了一款能够同时满足室内外、高低温、雨雪天气等复杂环境下正常稳定使用的智能物料运输车,从而实现工厂无人化,极大程度降低的人力成本、提高工作的效率同时还保障了工人的安全,为企业的发展提供契机。

2 系统框架设计及工作原理

2.1 系统框架设计

本运输车采用机器视觉和激光雷达等前沿技术实现物料搬运的功能。当运输车正常运转时,激光雷达获取运输车当前的位置信息并构建栅格地图,同时计算出运输车此时的运动状态将数据实时发送给主控板,驱动运输车的运动。而经过校准后的IMU能够解算出运输车的姿态,再将数据过滤积分后获取位移量保证运输车按照特定的轨迹搬运货物。当摄像头识别到障碍物时运输车会重新规划一条路线来进行避让,实现运输货物的功能。可将运输车划分为驱动模块、电源模块、系统控制模块和车架控制模块。驱动模块用于收集IMU单元和直流电机的数据,别切控制直流无刷电机的运转。电源模块用于给整个系统供电。系统控制模块用于图像数据采集和激光雷达数据的处理。车架控制模块用感知货物的搬运完成状态和控制步进电机的运转。其系统的框架如图1所示。

图1:系统框架图

2.2 产品稳定驱动模块

本运输车的驱动板设计为双路工作,通过PWM进行驱动,一个驱动板控制两个电机驱动。运输车驱动板能够满足速度调节、方向控制和刹车控制等很多要求。小车驱动板上霍尔线序与小车步进电机上霍尔线序相连接,并能够根据实际的线序进行调节。在自动导航方面,采用基于ROS系统的SLAM算法让运输车在陌生的环境下进行建图,建图完成后,保存地图,在地图上设置起始点与终点让其进行自动导航。

3 系统运动控制算法

利用激光雷达所测得的数据,通过仿真软件RVIZ进行建图,SLAM算法辅助运输车执行路径规划、自主探索、导航等任务。在执行路径规划的算法中使用到的是A*算法,并通过激光雷达实时检测到的数据来进行动态规划路线。

3.1 SLAM算法

SLAM(Simultaneous Localization And Mapping)同 步定位和地图构建,主要用于解决移动机器人处于未知环境中时解决定位、地图构建问题。SLAM算法最早由Randall C.Smith等提出。SLAM算法包含多个部分,经典的框架由传感器数据、视觉里程计、后端、建图和闭环检测组成。如图2所示。

图2:SLAM算法经典框架

根据田等人对SLAM算法的分析与比较。Gmapping算法是一种基于粒子滤波的二维SLAM算法,也是目前应用最广泛的2D-SLAM算法.相比于传统的粒子滤波算法,Gmapping算法在RBPF(Rao-Blackwellized Particle Filters)算法基础上改进提议分布和选择性重采样,从而减少粒子个数和防止粒子退化。Gmapping算法适用与室内小场景且特征教少环境下的定位与建图,Gmapping算法容易实现、精度较高且计算量较小、相比于Hector,Gmapping对激光雷达频率要求低,鲁棒性更高,所以选择了Gmapping作为最终算法。Gmapping总体框架如图3所示。

图3:Gmapping总体框架

在构建地图完成后,即可打开地图在地图上设置目标点与起始点开始自动导航前往目的地。在自动导航上采用的是ROS中自带的导航框架move_base。

3.2 A*算法

A*(A-star)算法是一种静态路网中求解最短路最有效的直接搜索方法,也是许多其他问题的常用启发式算法。BFS(Best First Search)算法必能保证找到的路径是一条最短路径,相比于Dijkstra算法A*算法增加了一个启发函数,提高算法效率。A*算法将BFS算法和Dijkstra算法相结合,集合了两种算法的优点,既可以查找到最短路径,又有和BFS算法差不多的效率。其公式表示为:

公式(1)中,f(n)、g(n)和h(n)分别表示节点n的综合优先级、节点n距离起点的实际代价、节点n距离终点的估计代价,即为A*算法的启发函数。当启发函数h(n)≤节点n到终点的代价,A*算法保证可以找到最短距离,h(n)越小,算法遍历的节点越多,算法的效率越低,当h(n)=0时A*算法演变为Dijkstra算法。当启发函数h(n)≥节点n到终点的代价,A*算法效率提高但不能保证找到最短路径,当h(n)≫节点n到终点的代价,此时A*算法演变为BFS算法。因此通过调节启发函数可以控制A*算法的效率和准确度。

以栅格地图作为地图环境,,由于地图中存在障碍物,运输车不能全向移动,且采用欧式距离的搜索速度比曼哈顿搜索速度慢,故启发函数h(n)采用当前节点n到终点的曼哈顿距离,表示为:

公式(2)中(x,y)为当前节点坐标,(x,y)为终点节点坐标。但由于传统的A*算法规划路径转弯次数较多,不利于运输车的实际的运动,所以需要提高路径平滑性。可以在h(n)中引进转弯修正代价参数α,选取合适的参数α,即可保证运输车优先选择直行,同时也可以避免运输车出现绕行现象。同于由于通过A*算法规划出来的路径存在拐点并且与运输车在工厂内实际的行驶过程存在着较大差异,同时运输车也不可能在遇到直角弯时原地停下再旋转90°的弯,这样不仅操作性不强,同时也是一项十分危险的操作。所以在运输车在工厂内实际的行驶过程中我们更希望运输车的行驶路线更加顺滑,运输车可以非常平稳且连贯的到达终点。

实现路线平滑的过程的本质上是保持上述公式(3)、(4)的距离最小,公式(3)中,x、y分别表示原路径规划的节点和平滑后路径规划的节点。公式(3)表示平滑后路径规划的节点y与原路径规划的节点x的偏离程度。公式(4)表示平滑后路径规划的两个节点之间的距离。最小化目标可表示为:

通过采用梯度下降算法,进行多次迭代,调整y使得目标函数取得最小值。可以通过调节α和β的参数达到不同的平滑程度,使运输车的行驶路线较为顺滑。

3.3 机器视觉算法

为保证运输车可以能够顺利的完成运输工作,需要通过轮廓特征和特征匹配,让运输车获取待运输货物的相关信息,进行行人识别、目标识别,实现货物搬运的功能。

3.2.1 行人识别

行人识别模块主要是利用Opencv中已经训练好训练集,在此基础上加以分类,来实现对行人的分类。该模块主要包含了选择合适的分类器、选择如何输入图像、检测结果显示。具体功能介绍如下:Opencv中的级联分类器包含了两个分类器:训练分类器和检测分类器。我们选择使用检测分类器,根据Opencv中已经训练好的HOG训练集,从工业相机视频流中提炼出行人的特征,进而去判断是否为行人。

当采用HOG训练对图像进行处理后,会将图像中有行人的部分用边框框起来,用于显示此处有行人,并根据显示屏幕的大小去适应显示图像的大小。

3.2.1 货物识别

要辨识物体的条件首先要掌握其特征,所以我们需要提取物品的特征点。SIFT(Scale-invariant feature transform)算法是由David Lowe于1999年提出的图像局部特征的算法。SIFT在尺度、方向具有不变性,可以在图像中检测出关键点,是一种很好的描述图像特征的描述子。通过SIFT算法实现对物体的角点检测。

根据郭等人对边缘检测算法的特点,检测效果优劣的分析。相比与其他边缘检测算法,canny边缘检测是目前为止边缘检测算法中检测性能较好的算法,该算法通过计算信号函数的极大值来判定图像边缘像素点,得到最优化逼近算子。并且可以根据图像的边缘特点设置canny算子的参数以检测各种边缘,因而canny算法的适用场合十分的广泛。

当识别到货物时,我们需要精准的获取到货物距离叉车的距离与角度,因此我们选择了单目测距算法:单目测距中主要运用到知识就是世界坐标系、像素坐标系、图像坐标系、相机坐标系之间的转换关系以及相似三角形法。单目视觉测距是利用摄像机获得到的图片得出深度信息,常用来进行定位。因为单目视觉结构简单,运算速度快,所以适应于类似AGV等移动平台的视觉应用。

4 项目测试

本项目所设计制作的智能运输车能够有效的实现导航,货物识别,货物叉取,运送货物等功能。运输车的系统功能流程图如图4所示。

图4:系统功能流程图

(1)当运输车到达陌生环境之后,通过slam算法构建栅格地图。并在地图上标记好运输车的起始坐标和运送货物的坐标后,运输车开始进行导航。

(2)运输车通过A*算法规划出一条全局路线,并计算出车子运动的状态,将速度信息实时发送给底盘节点,驱动车子前进。

(3)到达货物存放的地点后,控制权交给视觉模块开始识别货物。

(4)运输车开始检测运输车货叉的位置,货叉自动回到下限位后,驱动车子前进,将货物插到货叉之上,然后规划出返回路线,运输车自主导航回去。

(5)回到起始点后,和叉取货物时以相同的操作控制运输车卸载货物。

同时运输车能够实现“公交车”和“出租车”模式转换,通过多点导航实现搬运车的流水线运输,以此代表公交车模式,出租车模式则采用对点运输的方法,实现货物的灵活性准确性的点对点模式。

5 结语

本运输车可以做到在无人工干预的情况下,采用SLAM算法、激光雷达、机器视觉等前沿技术,成功实现了精确定位、路线规划、智能避障、货物定位和精准叉取等功能;采用目前主流的技术平台:ROS系统,可便捷获取很多开源资源,降低开发成本,提高系统稳定性;在硬件电路设计时,充分考虑了电气隔离与电磁抗干扰设计,使各个模块之间不会相互影响;真正按照实际荷载应用要求进行结构和能源设计,率先实现功能从实验室向产品化过渡。该方案还成功实现了室内及室外自动导航,与电梯通讯,自动识别和定位物料并准确运送,智能识别物料超限和自动避让行人和障碍等功能。

无人运输车在不断优化视觉识别技术和控制技术后在物流行业和高危环境作业具有良好的发展前景。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!