梁明亮 张凯 王云飞
郑州铁路职业技术学院 河南 郑州 451460
本论文对巡逻机器人的全向运动底盘进行设计,有效解决在现场测试中容易遇到的转向困难、碰撞等问题。算法上,克服传统RBPF-SLAM算法中存在的粒子退化现象,采用马尔可夫链-(MCMC)运动步进,提高粒子的多样性。建议分布的计算中,增加激光雷达的观测模式,以改善地图构建的准确性[1]。
本文巡逻机器人的全向移动底盘数学模型如图1所示。
图1 全向底盘数学模型示意图
该巡逻机器人采用麦克纳姆全向移动底盘,全向运动平台能够实现平移、转动等多种功能,其灵活性、可操作性强,能够实现全方位的运动。
该系统主要硬件:麦克纳姆轮底盘,STM32,树莓派4B,多种环境传感器。作为一台计算机,它能对整个巡逻机器人进行全面的控制,达到多种巡逻目的。与大部分机械手控制器相比,浆果派4B性能要好得多[2]。环境感应器能够更精确地感受到室内的环境,并能与果子派连接,进行信息的传输。环境传感器包括摄像头、温度、烟雾、激光雷达等。
利用激光雷达对巡逻机器人进行探测,获得探测到的目标和周边环境的准确位置。利用该数据,机器人能够实现自动驾驶。激光雷达连接着树莓派,把外界情况传送到浆果派上。巡逻机器人在巡游时,利用摄影机进行监视。相机连接着树莓馅饼,能将所拍录像实时上传。机器人采用STM32运动控制器,将4台直流电动机与之相连。在STM32的运动控制器上安装IMU的加速度陀螺,把采集到数据传给树莓派。
机器人软件架构如图2所示。
图2 机器人软件架构示意图
针对全方向巡逻机器人的软件结构,提出一种基于ROS开放源码机器人系统。ROS是一款灵活开放的开放源码操作系统,可为用户提供各种不同功能。在ROS中,一个应用由一个结点来代表一个应用,它由一个预先定义好的消息、服务或者行动来将该通信信息从该传输节点向该接收节点传递。采用点到点方式,可减轻计算机工作负荷,同时由于节点间的松散耦合,使ROS程序更灵活和易于更改。ROS系统功能,可分为可视层、节点层、驱动层和信息层4个层次[3]。可视化层能够对巡逻机器人的全部情况进行直观观察和控制。例如:开启摄像机拍摄的视频处理节点;利用SLAM的建图节点,完成了地图生成的功能;通过对底盘的控制节点的启动,可以对机械手进行手动控制等。节点级是将SLAM的建图、视频处理和导航功能模块化,编写和设计成ROS节点。在每个节点上,巡逻机器人都可以完成各自任务。该驱动层包括各个功能模块,用以对传感器的工作进行控制。传感器获得的数据是信息层次的。在此基础上,通过USB、Wi-Fi、局域网等技术实现数据传输,并将机器人收集到的各种环境信息传送给树莓派。树莓派对所收到的环境资讯进行处理,最终完成相关作业。同时,在可视层中,可以显示出所处理的结果。
传统SLAM算法是根据激光雷达观测到的信号z1:t=z1、z2,...,zt以及里程计中的控制信息u1:t-1=u1、u2,...,ut-1。SLAM算法在求解后验概率分布时,因扩展的状态空间维度,使其运算量很大。而RBPF-SLAM算法在取样时降低状态空间的维数,使运算变得简单。由RBPF粒子滤波得到的公式是:
RBPF算法利用粒子的形式表达了位置的概率分布(每个粒子中含有一个机器人的位置),并与观察模型相结合,对地图进行更新。
传统RBPF-SLAM方法,采用对较低权值和较大拷贝权值方法,导致粒子匮乏。MCMC再取样技术能较好地还原粒子多样性,能很好地解决粒子匮乏问题。为提高粒子多样性,采用MCMC的移位步骤。MCMC基本思想:当粒子的分布符合重要函数时,可以利用马尔科夫链变换核与后验概率密度函数则可使用一个马尔科夫链转换核和后验概率密度函数p(xkz1:k)使式(2)左右相等。
这样,新的粒子就会更贴近实际靶面。MCMC传递过程,实质是通过对有限混合分布进行取样,以提高粒子的多样性。MCMC的传输算法包括Gibbs采样、metropolis Hastings等,利用metropolis Hastings算法来完成MCMC的传输。按照以下方式,在重新取样后执行此操作。①在区间【0,1】中,随机生成一个随机数v,该随机数服从于平均分配。②从重要性函数中采样产生备用粒子 。③若v<min{1,α}为准。此刻,否则,就拒绝在这里,α为接受比率,计算公式如下:
在提出分配方案时,只使用机器人的里程计信息。方法虽方便,但巡逻机器人在行进时会出现打滑等问题,加上里程计的精度不高,距离测量数据偏差比激光雷达要大得多。运动模式的似然区比观察模式L(i)要大得多,粒子的后验概率值更高,因此其权重也更高。仅利用里程计的运动模式来求出RBPF的建议分配是不合适的。针对以上问题,我们在建议的分布中增加了由激光雷达获取的观测资料,并尽可能地在似然函数的可行区域中取样。优化后的建议分配的抽样结果如下:
通过公式(4),可使粒子的加权变化最小。利用激光雷达和增加观测资料,优化后的建议分布能较容易地求得似然函数的峰。
本文采用自制全方向巡逻机器人进行室内环境下SLAM建图算法的实验,地点为室内机房和走廊。这种巡逻机器人以麦克纳姆轮为基础,装备有SilanA3激光雷达,里程表,Vizum双目摄像机,惯性测量装置,树莓派4B。操作系统是以Ubuntu16.04为基础的ROS操作系统。利用无线网络连接到一台手提电脑,由电脑控制它的动作。将已建好的地图显示在ROS系统的RVIZ可视化接口上。用网格类型来表达地图。通过将RBPF-SLAM算法与改进后的方法相结合,对改进后的RBPFSLAM进行了仿真实验。在实验期间,控制机器人围绕着机房和走廊,以0.3m/s的速度进行运动,绘制出地图。在机房右侧,是一条走廊,里面有三台电脑和一张桌子。图3为由RBPFSLAM优化算法构成图,可看出构建的网格图具有更高精度、更清晰轮廓和更好效果。最优RBPF-SLAM则采用MCMC的运动步态,加入激光雷达观察模式,以提高所提出的分布精度,构建出较高精度的地图。
图3 优化RBPF-SLAM算法构建的地图
针对巡逻机器人全向运动定位问题,改进后的RBPFSLAM算法在建图过程中的错误得到很大程度的降低,并在建图中的应用得到明显的改善,为机器人相关领域的研究和工业应用提供了有益的技术方案。