时间:2024-08-31
顾皞伟,黄家才,李毅搏,张 铎,陈 田,吕思男,唐 安,汤文俊,汪 涛
(南京工程学院工业中心、创新创业学院, 江苏 南京 211167)
随着传感器技术与电子信息技术的飞速发展,移动机器人发展迅速、应用广泛,市场上出现了多种移动机器人产品,如扫地机器人、送餐机器人、服务机器人等.自主导航功能是移动机器人的核心功能[1],而传感器则是导航系统中的重要组成部分.文献[2]提出一种基于机器人操作系统(ROS)的移动机器人导航控制系统,该控制系统集成化程度高、可移植性好,但仅采用编码器作为传感器来获取机器人的位置信息,在地面打滑的情况下,由编码器推算出的里程计数值将极不准确,导航精度将会大大降低;文献[3]提出一种基于激光的同步定位与建图(SLAM)移动机器人室内巡检技术,该技术精度高、稳定性好,但采用单一激光雷达传感器进行环境感知,在遇到玻璃等透明物体时,激光雷达将会失效,安全性低.本文设计一种基于多传感器感知的移动机器人导航系统,系统具有两轮差速轮式底盘,配以激光雷达、惯性传感器(IMU)、超声波雷达和编码器多个传感器,可有效克服因地面打滑而出现的里程失准问题,实现导航过程中的精准定位;通过超声波雷达补偿激光雷达的方法,实现对透明物体的实时检测,提高机器人的安全性与可靠性;利用SLAM算法[4]、定位算法[5]与路径规划算法[6]实现移动机器人的自动导航功能.
系统的硬件设计架构如图1所示,以工控机为核心控制器实时接收IMU、激光雷达和超声波雷达所采集的环境信息,利用这些信息对周围环境进行建模;在该模型的基础上进行最优路径规划计算,然后将计算结果以速度指令的形式发送给下位机,下位机运动控制器控制移动机器人按照预设轨迹移动,从而实现移动机器人的自主导航功能;工控机与运动控制器采用串口通信,移动机器人自带电机驱动器,通过控制器局域网络(CAN)指令与电机驱动器通信,控制移动机器人运动,各类传感器与工控机采用串口通信.
图1 系统硬件架构图
控制系统的软件主要分为两部分:1) 基于ROS系统的上位机决策层;2) 基于STM32设计的下位机运动控制器.
上位机决策层负责采集传感器信息,利用多传感器信息做出科学决策.上位机采用Cartographer建图算法[7]、A*的改进路径规划算法[8]和基于蒙特卡洛的AMCL定位算法[9]为核心设计上位机软件架构,见图2.Cartographer算法利用激光雷达实时获取环境中障碍物的信息,依靠里程计、惯导元件与激光雷达实现联合定位,从而构建完整、精确的室内地图,并在已有室内地图的基础上进行路径规划和实时定位.A*算法既能根据定位信息进行全局路径规划,也能根据雷达信息进行局部路径规划,不论是何种规划方法,最终上位机都会以速度指令的形式发送给下位机.基于自适应蒙特卡洛的AMCL定位算法可实时获取里程计、IMU和激光雷达的信息来实现移动机器人的即时定位.
图2 上位机软件架构图
基于STM32的下位机运动控制器软件流程如图3所示,通过串口实现和上位机的通信,在实时接收上位机下发速度指令的同时上传移动机器人实际速度,实际速度指的是移动机器人前进的线速度与转弯的角速度,最终都转化成左右两轮的转速指令下发给电机驱动器,通过CAN指令下发左右两轮速度,同时通过外加的轮式编码器实时读取两轮的实际转速,再通过航迹推演将两轮转速转化成移动机器人的线速度和角速度,通过串口将移动机器人实时的线速度和角速度上传至上位机.
图3 下位机软件流程图
移动机器人在导航的过程中极其依赖外部传感器信息,传感器的好坏直接决定导航的可靠性与稳定性,因此要保证传感器信息精确而全面.单一的传感器鲁棒性差,原理上也存在缺陷,通过多个传感器相互配合,可全面、准确地获取环境信息.激光雷达传感器虽然精度极高,但不能检测透明物体;超声波传感器虽然精度低,但不受物体透明度影响;编码器虽然能精确地测量移动机器人两轮转速,但移动机器人在旋转运动过程中轮胎极易打滑,在旋转过程中两轮转速并不能推算出真实的机器人旋转速度,而IMU则可以弥补这一不足.因此,多个传感器相互补偿,能极大地提高导航的稳定性.
在机器人行驶过程中,机器人的旋转角速度由两轮差速计算得到,但机器人在转弯时轮胎极易打滑,由两轮差速计算得到的旋转角度往往与真实旋转角度相差较大.IMU主要是由加速度计、陀螺仪组成的测量装置,陀螺仪利用内部的电容变化得到角速度,通过对角速度积分得到旋转角度,该角度不会因为轮胎打滑而发生改变.
本文所选用的移动机器人是两轮差速移动机器人,该类移动机器人是通过控制左右两轮的电机转速来实现移动机器人的运动控制.IMU修正里程计时需建立移动机器人的前进速度、转向角速度与左轮速度、右轮速度之间的转换关系.图4为移动机器人底盘在两个相邻时刻的位姿,图4中:θ1为两相邻时刻移动机器人绕圆弧运动的角度;θ3为两相邻时刻移动机器人航向角(朝向角head)的变化量;l为左右轮之间的间距;d为右轮比左轮多走的距离;r为移动机器人圆弧运动的半径.假设移动机器人前进的线速度为v、角速度为w、左轮速度为vl、右轮速度为vr.
图4 航迹推演模型
根据航迹推演算法,移动机器人前进的线速度为:
v=(vr+vl)/2
(1)
移动机器人的的前进速度等于左右两轮速度的平均值,由图4可见,移动机器人从第一时刻到达第二时刻的航向角变化量为θ3,利用图中的几何关系得到θ1=θ2=θ3.
移动机器人航向角决定其运动轨迹圆心旋转角度,移动机器人偏转角度为:
θ3=θ1=d/l=(vr-vl)Δt/l
(2)
角速度为:
w=θ3/Δt=(vr-vl)/l
(3)
通过式(1)至式(3),能够利用编码器推算出里程信息.
编码器在单位时间t0内采集一次两轮速度,通过式(1)计算出机器人的线速度为vx,机器人的角速度为vθ,则单位时间内x方向的位移为:
Dx=vxcosθt0
(4)
y方向的位移为:
Dy=vxsinθt0
(5)
旋转角度为:
Dθ=vθt0
(6)
里程信息可表示为:
Xt=Xt-1+Dx,Yt=Yt-1+Dy,θt=θt-1+Dθ
(7)
将IMU模块测量出的机器人旋转角速度vθ代入式(6),即可实现IMU对里程计的修正.
激光雷达精度高、抗干扰性好,但是不能检测玻璃等透明物体,而在移动机器人实际导航过程中,玻璃等透明物体很常见.利用超声波的物理特性能有效检测出透明物体,提高系统的安全性.为此,本文对激光雷达和超声波雷达进行联合标定,将两者数据转化到同一坐标系下,实现超声波雷达对激光雷达的数据补偿.
按照图5所示方法安装激光雷达与超声波雷达,设置激光雷达起始扫描角度为0°,结束扫描角度为360°,设置激光雷达的分辨率为720,即绕激光雷达中心旋转360°有720帧激光数据,每帧激光的间隔为0.5°,将超声波雷达安装在激光雷达正下方,超声波的朝向与激光雷达正前方角度一致,超声波雷达的探测角度为正前方50°区域,探测距离为3 m.
图5 激光雷达与超声波雷达安装示意图
在ROS平台,将激光雷达数据存储在Range[i]数组中,i为激光帧的个数,数组中每一个元素都代表其所对应的激光帧长度,即激光雷达到物体的距离.激光雷达测距长度设定为6 m,雷达补偿软件流程如图6所示.
图6 激光雷达与超声波雷达融合软件流程图
激光雷达和超声波雷达同时工作,当超声波雷达检测区域内没有障碍物时,不进行数据补偿,直接将激光雷达数据发布给上位机.当超声波雷达检测区域内存在障碍物则执行数据补偿,将超声波数据转化成激光数据并与激光雷达原始数据进行拼接.激光雷达数据包括距离数据与角度数据,超声波雷达仅能获取距离数据,当超声波检测到障碍物时,假设超声波的波束角为激光雷达的检测角度,超声波所测距离d为该检测角度内第一帧激光帧的长度.设任意一帧激光与初始位置的夹角为α,则第i帧激光的长度为:
li=d/cosα
(8)
激光帧与初始位置夹角为:
α=0.5i
(9)
将li插入Range[i]雷达数组中,即可实现对激光雷达数据的补偿.
本文通过Matlab和ROS平台进行试验与仿真,ROS系统既可使用自带的仿真软件,也可通过rosbag功能采集数据输入到Matlab内进行仿真.仿真和试验包括两轮差速模型仿真、IMU修正里程计试验、超声波雷达补偿激光雷达试验和导航试验.
图7 两轮差速模型仿真结果
为了验证IMU修正里程计后的改进效果,采集多组修正前与修正后的机器人实际旋转角度数据进行对比分析(见表1).
表1 IMU修正里程计试验 rad
表1中误差1代表仅仅依靠编码器作为里程计测量出的旋转角度与实际角度之间的误差,误差2代表IMU修正里程计后测量出的旋转角度与实际角度之间的误差.误差1的平均值为0.309 rad,误差2的平均值为0.091 rad,说明IMU修正里程计后大大提高了机器人旋转运动的测量精度,从而提高了移动机器人导航时的定位精度.
激光雷达的检测范围为6 m,超声波雷达的检测范围为3 m,当机器人正前方3 m内出现玻璃等透明障碍物时,补偿算法开始工作.将超声波雷达数据转化成激光雷达数据格式,与原始的激光雷达数据进行拼接,图8为雷达补偿前后的试验图.
(a) 融合前
(b) 融合后
由图8可见,补偿前的激光雷达可以探测6 m范围内的障碍物,但对于透明物体则难以检测,通过超声波雷达补偿激光雷达数据后,能检测到激光雷达正前方3 m内的透明物体,移动机器人能实现安全有效的避障导航.
本文基于ROS系统设计移动机器人导航系统,利用开源的SLAM算法建立实验室内的二维栅格地图,在室内地图的基础上进行路径规划,移动机器人成功地从起点运动到目标点,实现了自动导航.在自动导航过程中利用IMU修正里程计信息,解决了轮胎打滑而使里程失准的问题,并且在终点处利用超声波雷达补偿激光雷达的方法检测到了预设的透明物体障碍物,图9为移动机器人走过的路径和实时检测到的障碍物,结果表明试验成功.
图9 移动机器人导航试验结果
本项目在ROS平台下,设计了导航系统的软硬件框架,利用激光雷达、IMU、超声波雷达、编码器多个传感器来获取环境与姿态信息,通过多传感器互补,有效解决了移动机器人因为路面打滑而定位失准、透明物体难以规避等问题,实现了移动机器人从起点到目标点的自主导航.通过试验测试,验证了该系统切实可行.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!