基于ROS和主动视觉感知的无人智能搬运车设计

2023-05-30 06:27黄画恒,李健方士闻徐一帆冯晨曦邓茹心薛万利
电脑知识与技术 2023年1期
关键词:路径规划智慧物流

黄画恒 ,李健 方士闻 徐一帆 冯晨曦 邓茹心 薛万利

摘要:该文以机器人操作系统(ROS) 作为整体框架展开设计一辆AGV智能搬运车(Automated Guided Vehicle) ,首先通过单片机编程实现搬运车的运动控制及硬件数据的传输,其次在jetson nano运算平台上通过集成传统视觉算法、同步定位与建图算法(SLAM) 及A*算法实现车辆对周围环境的感知和运输路线的路径规划,最后通过Visual Studio开发搬运车控制系统软件,在PC端上通过软件实现操纵员远程调度管理搬运车。该智能搬运车设计方案在以“智能物流”为主题的货物搬运挑战赛中完成了研究目标所设定的任务,证实了方案的可行性。

关键词: ROS;AGV;SLAM;路径规划;智慧物流

中图分类号:TP18        文献标识码:A

文章编号:1009-3044(2023)01-0010-03

1 研究现状

20世纪50年代,第一台AGV智能搬运车(Automated Guided Vehicle,装备有自动导航装置,能够沿规定的导航路径行驶的运输车)是由美国Barrett电子公司研发的[1],它的原理是在仓库中规划布置路线实现货物运输。到了20世纪60年代,AGV智能搬运车技术主要在欧洲得以推广和发展,AGV也首次引入了电磁感应技术,但是仍无法解决AGV车行走范围和轨迹受限的问题,并且维护成本高[2]。随着技术的不断发展,AGV搬运车开始装备激光雷达,通过激光雷达进行定位[3],实现了无轨道运输功能。

技术的发展使AGV智能搬运车的研发和应用得到进一步的提升。随着惯性技术的发展,AGV搬运车上开始安装惯导元件和编码器,通过硬件采集偏差信号,进行积分运算得到搬运车行驶的速度和角度信息,确定出搬运车的位置和方向[4],使得AGV搬运车的定位更为准确。但长时间使用编码器会产生累计误差造成定位精度下降。为解决精度的问题,随着机器学习等新技术发展,通过视觉定位导航的方案也被提出使用[5]。由趋势可见,采用多传感器融合的方法是未来AGV搬运车发展的趋势,发挥各传感器的长处,实现更精确的定位[6]。随着多传感融合导航技术的快速发展及复杂化,诞生了机器人操作系统ROS,ROS的应用使搬运车开发更为便捷[7]。随着ROS版本更新,使得搬运车导航系统的时效性得到增强[8],较好地解决包括与下位机通信在内的各系统间结合的问题,极大简化平台下的复杂任务创建与稳定行为控制,在一定程度上保障AGV车在货物搬运过程中的平稳有序。

2 研究目标

本研究的最终目标是通过软硬件层次的紧密配合,完成一套可以通过上位机远程调度并可以自行感知交通信息的车辆运输系统,用于货物运输领域(如图1所示)。

该研究的AGV智能搬运车系统的实现是以jeston nano为运算平台、STM32单片机为运动控制平台,配备了线性激光雷达、视觉摄像头、imu惯导元件、编码器等传感器。该智能搬运车系统以ROS作为基础框架,分为三个层次:运动控制层、ROS传输层、ROS决策层。在运动控制层中,通过底层单片机设计,实现无人智能搬运车的运动控制。在ROS传输层中,实现运算平台与硬件、PC端应用程序的数据传输,提供ROS决策层执行所需数据。在ROS决策层中整合主流视觉算法完成AGV的视觉感知。

最终操纵员可以通过PC端的调度软件,发送目标位置至搬运车,AGV智能搬运车能自主运行至目标位置。在车辆运行过程中实现交通信息识别、主动避障等环境感知功能。

3 主要研究内容

3.1 运动控制层

运动控制层主要负责控制车辆的行为(例如前行、转向、驻车等),并通过串口发送车体信息至运算平台上的ROS传输层。

搬运车采用前轮转向、后轮直流减速有刷电机差速控制的阿克曼运动方式,在运动控制层中采用STM32单片机完成底盘的运动控制。用A4950电机驱动模块驱动电机,采用脉冲宽度调制控制,通过改变占空比,进而得到不同的电机平均速度,从而达到调速的目。通过差速算法控制后轮转向电机和前轮舵机,实现车辆前行、转向、驻车等运动功能。

Stm32作为驱动板,用USB-mini接口与运算平台进行串口通信,接收其发出的控制指令,并从IMU和电机编码器上获取到的信息反馈给运算平台。

3.2 ROS传输层

ROS传输层主要功能为数据传输和处理,可分为四部分,分别是ROS系统和底层单片机控制的数据通信,激光雷达、摄像头等传感器与ROS系统的数据通信,远程调度软件与ROS系统的数据通信以及ROS系统内部的数据通信。

ROS和单片机的通信主要通过串口通信实现,ROS集成的串口模块收集从底盘传输的左右轮实时速度值及imu模块测量的数据,用航迹推演法将左右轮速度转化为机器人的x轴方向速度和机器人的旋转速度,然后发布/odom主题,好让ROS的相应package收到这个消息,进行机器人位置的估计。

传感器与ROS通信部分,使用USB数据线与工控机相连,通过在ROS系统中建立 ydlidar 雷达串口軟连接接收激光雷达上传的数据。

远程调度软件与ROS系统的通信主要在局域网内,通过UDP/IP进行软件与ROS系统之间的数据传输,将目的地位置数据上传至ROS系统中,提供路径规划所需数据。

视觉部分的通信主要为ROS内部的通信。当摄像头识别红绿灯等信息后,传输对应的字符串,对应搬运车的前进或停止控制指令。

ROS系统将各传感器传来的数据交给决策层,为执行决策层提供数据,在决策层中进行数据融合处理,转化为搬运车下一刻行驶的期望速度与转向角度,然后通过串口传给底层单片机,完成车辆的运动控制。

3.3 ROS决策层

ROS决策层主要功能为建立并执行ROS功能包,决策层的执行依赖于传输层传输的数据。以下为决策层所实现各部分的功能。

3.3.1 激光SLAM环境感知

SLAM(Simultaneous Localization And Mapping) ,即时定位与地图构建,用于车辆在环境中的自身定位及记录环境中特征的位置。

当搬运车需要实现导航时,可以参考一张全局性质的地图,然后根据地图来确定自身的位置、目的地位置,规划一条大致的路线。通过SLAM可以建出一张全局性质的地图。ROS中SLAM的实现方案较多,在该项目中的搬运车采用了gmapping算法进行建图。通过订阅传输层中用于雷达、底盘与里程计之间的坐标变换消息以及雷达消息,执行gmapping算法功能包,进而在ROS传输层中发布地图数据栅格数据。

rviz是ROS系统中三维可视化平台,能够实现ROS传输信息的图形化显示,如图2。在gmapping发布栅格数据后,操纵员可通过rviz订阅该数据,从而实现SLAM环境感知的实时可视化监测。

3.3.2 导航任务

导航任务基于SLAM建出的图,使车辆以最短或者最快路径到达目的地。它的实现涉及全局地图、自身定位、路径规划、运动控制、环境感知五点内容。导航任务整体框架如图3所示。

全局地图是指通过SLAM建出的地图。自身定位就是推算搬运车在全局地图里的位置,SLAM中也包含定位算法实现。搬运车按照规划的路线运动,通过定位判断搬运车的实际运动轨迹是否符合预期。在导航任务中采用ROS系统的amcl功能包,实现导航过

程中搬运车的定位。路径规划为自主导航的核心功能。方案采用ROS的导航功能包集navigation中提供的 move_base 功能包。在SLAM中建立好的地图中指定导航的目标位置goal和方向后,move_base包根据搬运车传输层的传感器信息,推算出的odometry信息,作出路径规划,输出前进速度和转向速度至运动控制层,控制机器人到达指定的目标位置。并且在搬运车运动过程中,连续反馈车体的自身姿态与目标点状态信息。

3.3.3 面向交通信息的计算机视觉感知

在车辆运行过程中通过图像处理识别红绿灯、车道线的交通信息,并将识别信息发至传输层。

在ROS框架中创建基于opencv开发的视觉感知功能包,当摄像头采集图像经过数据处理后,采用平台提供的api接口,检测出交通灯信息及车道线信息。

在检测交通灯信息部分,首先需要通过二维码定位交通灯区域,划定交通灯ROI,色域转换后通过阈值筛选,识别高亮的区域,其次通过面积筛选和开闭运算去除干扰点,得到亮灯部分的轮廓。最后通过轮廓中心点的相对ROI的位置判断交通灯的颜色,如图4所示。

在检测车道线部分,首先通过对摄像机标定畸变矫正并进行透视变换得到车道线的鸟瞰图,通过sobel算子对图像边缘特征进行提取,对边缘特征的角点进行提取,最后对角点进行膨胀操作还原车道线大体形状从而实现对车道线的识别,如图5所示。

视觉识别后的结果将通过ROS系统传送至传输层,转换为车辆行驶速度及偏向角度,通过串口通信发至底层单片机,完成车体遇红黄灯停止前行,绿灯前行,在车道线范围内行驶等感知反馈功能。

3.4 远程调度层

远程调度层主要为操作员提供便捷的方式远程监控车辆的运转状态,便于车辆的调度与管理。

远程调度层建立在上位机的Windows系统,使用Visual Studio作为开发工具,基于MFC库,开发应用程序界面。通过UDP/IP协议socket编程完成搬运车传输层与应用程序之间的数据通信、指令通信。操作员可从应用程序连接搬运车,获取搬运车的实时信息,并且通过应用程序发送目标位置goal指引车辆到达指定地点,实现远程与搬运车的交互功能,远程调度应用程序界面如图6所示。

4 结束语

该文构建一辆基于ROS和主动视觉感知的智能搬运车,以ROS作为基础框架,采用多传感器融合的方法,整合主流视觉算法完成AGV的视觉感知,并通过上位机远程调度、底层单片机控制,实现无人智能搬运车的自主运行。该设计研发将应用于智慧物流等产业发展方向,使货物搬运行业向“现代化、智慧化、绿色化”的发展方向持续迈进。

参考文献:

[1] 徐庆.基于嵌入式控制系统的AGV结构设计及控制方法研究[D].南京:南京航空航天大学,2018.

[2] 张世清.自动化工厂的多AGV系统路径规划及调度机制研究[D].西安:西京学院,2021.

[3] 暴海宁,宋科,黎原,等.激光导引AGV车载控制系统结构及其实现[J].起重运输机械,2016(5):71-74.

[4] 胡海东,赵清杰.机器人的惯性/视觉组合定位方法[C]//2009年中国智能自动化会议论文集(第七分册)[南京理工大学学报(增刊)].南京,2009:248-252.

[5] 储江伟,郭克友,王荣本,李斌,冯炎.自动导向车导向技术分析与评价[J].起重运输机械,2002(11):1-5.

[6] 张书亮.基于多传感器融合的室内移动机器人定位与导航研究[D].北京:中国科学院大学(中国科学院长春光学精密机械與物理研究所),2021.

[7] 朱建军,王明园,张博文.基于ROS的轮式机器人建模方法与仿真研究[J].吉林化工学院学报,2021,38(3):61-65.

[8] Macenski S,Martín F,White R,et al.The marathon 2:a navigation system[C]// IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS).Las Vegas,NV,USA.IEEE,2020:2718-27

【通联编辑:代影】

猜你喜欢
路径规划智慧物流
公铁联程运输和售票模式的研究和应用
面向小城镇连锁零售业的智慧物流配送模式研究
面向小城镇连锁零售业的智慧物流配送模式研究