APP下载

基于ROS的室内导航配送机器人设计

2022-08-29张学峰王仕仪刘傲任彬郁洋

现代信息科技 2022年12期
关键词:上位激光雷达障碍物

张学峰,王仕仪,刘傲,任彬,郁洋

(石家庄铁道大学 机械工程学院,河北 石家庄 050043)

0 引 言

根据相关调查,传统工作模式下,仓库中工人有60%~70%的时间都花费在取货上,人力劳动的高成本和低效率阻碍着物流行业的发展。随着电商、快递行业的迅速发展,机器人在物流配送方面发挥着越来越重要的作 用。据艾媒网发布的《2020—2021年中国快递物流行业核心数据分析》,2020年中国快递服务企业业务量以31.2%的增速增长至833.6 亿件,较之上年提高5.4 个百分点,面对如此庞大的物流量,传统AGV 搬运机器人因受限于固定的工作路径而无法在复杂情况下高效率地完成货物搬运任务,如电磁感应引导式AGV 需要依赖预先设定的行驶路径且保证行驶路径中无障碍物才能顺利完成搬运任务,对于不同的搬运任务需要反复规划 路径,在复杂场景下的人机交互体验欠佳,难以匹配用 户需求。而一些利用红外线检测障碍物的搬运车会受光线、颜色、温度等因素的影响,导致检测结果 不够准确。智能物流机器人具有交互性强、灵活度高、高效智能的优点,比传统搬运机器人更能胜任这一工作,由于配送场景复杂多变,往往要求机器人及时做出正确决策并立即执行,这需要配送机器人具备高度的智能化和较强的自主学习能力。在环境改造方面,智能物流机器人可以免去人们的铺线、粘贴地标等工作,任务路线需要改变时,只需重新构建地图即可 完成任务调度。

近年来,一些国内外学者在智能导航定位机器人的研究上取得一定成果,如Arun Raghe sh J T 等研究出一种基于声源定位的导航机器人,通过采集三角形区域内机器人产生的声音信息并加以处理来获得机 器人的位置。文献[9]介绍一种基于INS/GPS/EC 组合导航系统的水下机器人,相较于经典卡尔曼滤波算法和联邦卡尔曼滤波算法在定位精度上有较大的提升。 M.Utsav 等提出一种利用触觉传感器对环境进行二维地形映射的方法。以上方法都可以实现机器人的定位功能,但同时也存在不足,例如声源距离采集装置太近会影响采集的精准度,无线电、磁场会对GPS 定位精度产生一定影响。

针对传统搬运机器人交互性差、灵活度低、面对复杂环境无法自主决策的问题,本文设计一款基于ROS 系统具有定位及导航功能的室内配送机器人。该机器人通过SSH 远程控制命令与上位机通信,系统可以实时获取机器人的运动状态并将信息返回给上位机进行处理,从而实现机器人的定位和导航功能,并且当机器人发生故障时能够及时做出调整,实现人机交互。

1 机器人总体设计

机器人控制系统主要由三部分构成,分别是人机交互层、应用层和驱动层,如图1所示。

图1 机器人整体系统架构

人机交互层主要负责机器人配送地点的确定、机器人移动路线的图形化显示;应用层负责接收来自上位机的命令,实现机器人定位、导航及自主避障等功能,同时将机器人配送信息显示在液晶屏幕上;驱动层负责执行来自应用层的命令,并将IMU 及编码器信息反馈给应用层,实现机器人的闭环控制。

1.1 机械结构设计

机器人长0.43 m,宽0.32 m,高0.92 m,整体结构由20×20 mm 铝方管和5 mm 厚的亚克力板拼接而成,底盘采用麦克纳姆全向底盘,机器人整体三维建模如图2所示。

图2 机器人整体结构

机器人由两大部分构成,分别是置物区和运动区。为提高配送效率,置物区由上下两个托盘构成,用于放置不同类别的物品,托盘由两个T 形托架固定,防止托盘在移动过程中由于惯性而被甩出。T 形托架由连接件固定在皮带上,皮带由MG42S1 步进电机和一个辅助轮联合驱动,采用皮带传动能够保证托盘运动过程中的平稳性,降低机器人因自身震动而对其整体运行的影响。在步进电机和辅助轮的固定外壳上安装用于托盘定位的限位开关,当托盘触碰到限位开关时,从控制器控制步进电机暂停,从而固定托盘伸出和收回的位置,如图3所示。

图3 置物区结构设计

针对室内运输环境复杂、地面平坦的特点,对机器人底盘运动的灵活性和平稳性有严格的要求,因此在机器人移动解决方案中在运动区采用麦克纳姆矢量底盘。

1.2 机器人硬件系统设计

机器人硬件系统主要分为上位机和下位机两部分,如图4所示。

图4 机器人硬件系统设计

上位机负责接收下位机发送过来的信息,经过处理后将执行指令发送给下位机来控制运动单元去执行相应操作。下位机通过执行上位机发来的指令来控制机器人的移动和托盘的伸缩,并将机器人的位姿信息以里程计的形式反馈给上位机,同时将信息显示在液晶屏幕上。上位机与下位机通过SSH 远程连接,接入同一ROS_MASTER 实现数据传输。下位机主机采用树莓派4B,激光雷达采用思岚科技的RPLIDAR A3,具有16 000 次每秒的扫描速度、25 米的测距范围,符合室内实时建图与自主避障所需的硬件要求。树莓派通过SSH 与上位机相连,利用上位机较强的计算能力来缓解其自身的计算压力,为数据的传输腾出更多的系统资源,有助于机器人更快地对周围环境做出反应。

下位机主控制器采用ARM Cortex ™-M3 内核的STM32F103RCT6 开发芯片,机器人采用四个MG540 直流减速电机作为底盘的动力驱动装置,同时安装四个带AB 相的霍尔编码器记录每个轮子的脉冲值,进而得到每个轮子的转速。IMU 惯性测量单元采用6 轴运动处理组件MPU6050陀螺仪获取yaw 轴(偏航角)数据,与四个编码器获取数据计算得到的角度值做融合位姿估计,并与通过编码器获取的速度合成里程计信息反馈到上位机。Arduino Mega2560 作为从控制器,通过TB6560 步进电机驱动板控制两个MG42S1步进电机驱动托盘的运动实现拖盘的伸缩,配合限位开关实现托盘的定位,同时安装有一个近红外传感器,与激光雷达进行数据融合,提高避障精度。

1.3 机器人软件系统设计

机器人软件系统设计主要包括SLAM 建图、机器人导航算法和里程计实现三部分,其中SLAM 建图和机器人导航都是以自身定位为基础,而里程计和激光雷达反馈信息的快慢则是决定机器人定位准确与否的关键。为了使里程计和激光雷达数据能够快速传输到上位机进行处理,本文通过移植ROS 系统的roslib 功能包到STM32 嵌入式端,将STM32 变成ROS 网络的一个节点。基于ROS 自身分布式网络特点进行话题通信,保障了数据通信的准确性,同时也大大简化了通信模式,提高了数据传输速度。机器人导航配送流程图如图5所示。

图5 机器人运行流程图

机器人导航时,首先通过Ubuntu 上位机确定机器人的目标位置,通过处理激光雷达和下位机反馈的里程计信息获得二维点云地图,再经过SLAM 算法处理得到栅格化地图;然后上位机根据自身位置和目标位置以及所建的地图开始路径规划,根据是否遇到障碍物自行决定是否更新局部路径规划,到达目的地后结束导航,伸出托盘完成配送过程,否则将继续如上步骤,直至到达目标地点。

2 导航系统设计

2.1 SLAM 建图与导航算法设计

机器人导航配送的基础是建立一个准确的地图,树莓派通过获取2D 激光雷达点云数据和下位机发送的里程计数据,利用Gmapping建图算法构建栅格地图,同时利用laser_scan_matcher 功能包对激光雷达数据进行扫描匹配,优化局部地图和机器人位姿。导航算法的步骤包括自身定位与路径规划。自身定位需要凭借里程计数据和激光雷达实时数据,其中里程计数据用于全局定位,激光雷达数据用于局部定位。机器人定位使用AMCL 自适应蒙特卡洛算法,这是一种根据已知地图进行粒子估计的概率定位算法,通过对粒子的随机采样和粒子滤波估计机器人的位姿。路径规划包括局部路径规划(local_planner)和全局路径规划(global_planner),二者都集成于move_base 功能包中,global_planner 确定机器人在全局代价地图(global_costmap)中的规划路径,local_planner 确定机器人在局部代价地图(local_costmap)中的路径规划,导航框架如图6所示。

图6 move_base 导航框架

2.2 里程计数据处理

里程计的作用是通过估计物体位置随时间变化,进而估计物体相对于初始位置的移动距离,从而实现概率定位,里程计是激光雷达建图和定位的基础,如图7所示为里程计模型。

图7 里程计模型

对于里程计的计算,首先要测得轮子行走1 米时编码器对应的脉冲值,STM32 以Δ为周期从霍尔编码器中获取原始脉冲数据,以Δ为周期测得轮子行走的距离Δx为:

轮子的速度为:

当采样频率很快(即Δ取值很小)时,假设机器人右前、左前、左后、右后轮子的速度分别为、、、,解得机器人vvω为:

假设当前为时刻,机器人位姿为(xyθ),经过Δ时间后,机器人位姿为(x+Δ,y+Δ,θ+Δ),机器人自身采用右手坐标系(xy),全局地图坐标系如图7中(,)所示。

+Δ时刻机器人在全局坐标系中的对应位姿为:

为了方便与ROS 进行里程计通信,还需要对求得的结果做四元数变换,公式为:

其中,为roll 横滚角,为pitch 俯仰角,为yaw 偏航角。由于机器人在地面工作,pitch 和roll 为0,v也为0,yaw 值为θ,和方向上的坐标为xy,将以上数据通过/odom 话题发布给树莓派,完成里程计数据的反馈。

3 实验验证

3.1 仿真实验

3.1.1 仿真环境搭建

为验证机器人SLAM 建图和导航算法的可行性,本文采用Gazebo 与Rviz 联合仿真平台进行实验,Gazebo 是Ubuntu 系统下一款功能强大的免费开源机器人仿真软件,具有强大的物理引擎,能够在复杂情况下精确模拟机器人的运动形式,提供仿真数据。Rviz 是ROS 系统中的可视化工具,能够将仿真结果以3D 和数据形式展现出来,用于显示仿真结果。

3.1.2 导航算法验证

在Ubuntu 上位机上运行导航算法,结果如图8所示。橙色线条代表机器人的运动轨迹,机器人周围的矩形方框代表机器人的局部代价地图(local_costmap),由图8可知机器人可以很好地实现地图构建、路径规划和自主避障功能,充分证明了机器人导航算法的可行性。

图8 Gazebo 和Rviz 联合仿真结果

3.2 机器人实际导航实验

为测试机器人实际场景中的工作能力,通过人为控制实际场地的障碍物摆放来测试机器人能否完成精确的导航避障功能。为测试机器人的建图和导航功能,选择室内场地进行实验,如图9所示。

图9 无障碍物的实验环境

机器人的起始点为A 点,目标点为B 点,目标点的位置由实验者在上位机的Rviz 可视化工具中确定,无障碍物的情况下机器人从起始点到达目标点的过程如图10 所示,机器人可以对室内实验场地进行一个较为准确的地图构建。

图10 无障碍物情况下机器人运动过程图

由图10(a)-(d)机器人运动过程可以看出,机器人的运动轨迹近似一条从起始点到目标点的直线,同时在运动过程中,机器人也在不断地调整自身位姿,对比图10(a)和图10(b)可知,机器人在行至1/4 路程时,对初始规划的路径做出优化,其重新规划出的路径更接近目标点,同时雷达扫描的点云地图也与实际地图相吻合,从而证明了SLAM 建图算法的合理性。在图9的场地基础上,在机器人行进的轨道上加入两个障碍物,用于测定机器人导航过程中对障碍物的规划处理,实验场地如图11 所示。

图11 设置障碍物的实验环境

实验操作与无障碍导航实验保持一致,实验结果如图12 所示。由图12(a)-(d)机器人运动过程可以看出,机器人在运行过程中能够实现自主避障,且避开障碍物的转弯半径较大,能够保证机器人自身不与障碍物接触,提高了配送过程中的安全性。同时,机器人能够在避开障碍物的基础上,按照规划的路径准确到达目标点,进一步验证了导航算法的可行性。

图12 有障碍物情况 下机器人运动过程图

4 结 论

本文设计一款基于ROS 系统的室内定位及导航配送机器人。该机器人利用激光雷达数据实现SLAM 建图、路径规划和自主避障的功能,能够在复杂的室内环境下完成导航配送任务。相较于传统磁引导搬运机器人,本文设计的机器人能更好地适应复杂的搬运环境,灵活高效地完成不同的配送任务,提高了人机交互性。对于更加复杂的室外环境,会存在由于路面不平而导致里程计信息丢失的问题,会对机器人的定位和导航功能产生一定的影响,因此需要对室外复杂环境进行进一步的实验。

猜你喜欢

上位激光雷达障碍物
激光雷达实时提取甘蔗垄间导航线
法雷奥第二代SCALA?激光雷达
融合激光雷达与超声波数据的障碍物检测方法
Ouster发布首款全固态数字激光雷达
高低翻越
一场史无前例的乐队真人秀
赶飞机
月亮为什么会有圆缺
基础油“上位”
基于VC的PLC数据采集管理系统