APP下载

基于ROS的移动平台自主导航研究

2020-03-15张宇山王古超

关键词:位姿运动学上位

张 军,张宇山,王古超

(1.安徽理工大学机械工程学院,安徽 淮南 232001;2.安徽理工大学人工智能学院,安徽 淮南 232001)

随着中国制造2025的实施,人工智能也再次强势崛起;其基于数学理论的各种智能算法已经逐渐应用于工业、服务业等多个行业,以此来实现人类的各种感官功能,实现智能控制。为了简化机器人开发的流程,需要开发一款面向机器人系统的设计平台。ROS全称为Robot Operating System,是一款优秀的机器人操作系统,具有独特的分布式框架[1];运用基于点对点的进程设计,其每一个进程作为一个结点的形式存在,充当独立的功能,以此进行机器人软件的开发与设计。与此同时,ROS还具有极大的兼容性、丰富的可视化与仿真工具[2]等特点,为广大开发者提供了便利,使代码的编程变得更加容易,节省大量时间。如今其应用越来越广,例如室内导航、服务机器人,水上机器人等。

然而,在现有的自主导航系统[3-5]中 ,建图与导航基本上还无法实现深度融合,无法实现时间上的同步。必须在时间上顺次执行,才能够实现导航的功能。在实现导航功能之前,必须人为给系统以指令,以此来预先建立完整的栅格地图[6-7];接着,需要加载完整的地图;最后才能采用基于蒙特卡洛采样原理[8-9]的Acml算法来实现机器人的定位,才能实现机器人的自主导航。其智能化的自感知技术,解决了卡尔曼滤波算法[10-12]的高斯分布局限,但是并没有完全实现真正意义上的智能化,从而限制了机器人的适用性。现如今,对于解决“如何实现机器人在未知环境下真正的智能化与无人化的自主探索导航”问题已成为人工智能的又一个研究热点。本文将运用ROS开发平台搭建一整套智能化的自主探索导航系统。

1 Mecanum移动平台系统设计

此移动平台的整个控制系统采用“上位机+下位机”的模式进行布局;在硬件上,由麦克纳姆轮实现移动平台的全向移动,由微机处理器实现对移动平台运动的闭环控制,如下图的移动平台实物。

图1 移动平台实物

下位机由Stm32f103(ARM嵌入式框架)控制中心组成,上位机由树莓派3B处理中心构成系统的大脑。利用Stm32f103具有丰富的标准通信接口[13-14],实现对各种传感器数据的收集,如编码器与惯导模块。但是,其处理器的处理速度相对较慢,无法实现通信的实时性,并且高级语言编程困难,无法实现ROS的开发环境。为此,上位机采用树莓派,其强大的处理能力,可以运行Ubuntu系统实现ROS的实时通信,可以作为算法运行的硬件基础。本移动平台自主导航系统的硬件布局如图2所示。

图2 移动平台硬件布局

在硬件上,下位机的单片机主要负责对编码器与惯导模块的传感器数据收集,并且解析上位机的位姿数据,来驱动电机的精确运行。上位机负责对高维的大数据(激光雷达的数据)进行收集;高速运行复杂的自主导航算法;精确计算出移动平台的位姿数据;实现上下位机的位姿数据共享。

在软件算法方面,本系统采用多线程并行设计的理念,运行在时空上并行的节点slam_gmapping节点、move_base节点和my_robot节点,分别独立地实现建图、导航和驱动电机模块的功能。并且,通过话题(topic)的方式实现各个节点间数据共享的功能。

2 下位机设计

下位机要实现电机的动作,以及为上位机的开发提供底层数据信息。由图2来开发下位机,主要开发任务设计如下:

a)实现对编码器、IMU传感器的数据收集与反馈;

b)与上位机通信,实现数据交换;

c)解析上位机的速度位姿指令,并且驱动各自电机。

(1)Ros移植

本文利用rosserial API来包装标准ROS序列化消息,并且通过串口通信协议可以实现上下位机的通信。其特点是让Stm32f103单片机内部实现ROS系统内部结点的编程方式;这样可以采用更为便利的程序实现上下位机的无缝连接,并且采用与上位机相同编程方式,无需在上位机再次编程就可以实现结点的订阅与发布;这样便可以调用通用的API即可避免直接面对串口通信的编程,实现在单片机内部就可以实现ROS系统中结点的发布与订阅话题的任务。

(2)速度指令解析

实现对上位机的速度指令的解析需要分析底盘的运动学,运用刚体运动学知识建立移动平台重心的运动与各车轮转速的数学关系,以此实现移动平台的全方位运动。首先,以移动平台的质心为坐标原点,对移动平台建立如下图3的运动学模型。

图3 移动平台运动模型

逆运动学模型是在已知重心的速度v与角速度ωz的情况下,计算各轮的转速。依据刚体运动学理论,可以推导出逆运动学模型下的运动方程,如公式(1)所示。这样便可以由质心的运动参数计算出各个全向轮的实时转速,从而实现对上位机位姿数据的准确解析。

(1)

正运动学模型是在已知各轮的转速的情况下,计算重心的速度v与角速度ωz。可以由(1)式推导出正运动学模型的运动方程如下式(2)。

(2)

正运动学模型主要是在收集电机编码器数据的基础上,计算出移动底盘的里程计数据,并且以反馈控制的方式,实现对整个系统的闭环控制。

3 上位机设计

上位机的开发主要是实现:

a)对IMU模块的九轴传感器数据处理,实现多传感器数据融合,提高数据精度;

b)Gmapping功能包建图;

c)Navigation的Movebase导航;

d)PID参数调节

下位机目标是围绕导航与slam建图功能包,匹配各个数据类型输入与输出,完成自主导航系统的功能。

(1)IMU数据滤波与融合

由于编码器数据具有短距离定位精度高,但是累计误差无法消除。以此,随着时间的推移,数据会逐渐失准。九轴传感器的数据误差主要由传感器自身的零点漂移以及系统误差造成,具有误差较大且具有上限。采用数据融合算法[15]对两者数据再度处理。对IMU与编码器位姿数据的差值设定阈值,阈值之内的融合数据由两者的加权均值经卡尔曼滤波产生。阈值之外,编码器数据将严重失真,数据融合的结果由IMU数据经卡尔曼滤波产生。

(2)Slam建图

本文采用激光雷达采样深度信息作为观测数据,以Gmapping功能包为核心。将粒子滤波器用于解决机器人定位与建图问题的过程中,形成了Rao-Blackwellize粒子滤波(Rao-Blackwellized Particle Filter,RBPF)算法。与传统的基于EKF算法在处理非高斯分布的噪音以及算法的复杂度方面都做了改善,因此又称为FAST SLAM算法,通过运用FAST SLAM算法可以建立2D栅格地图。算法主要基于贝叶斯概率模型,利用特征估计的独立性假设,采用Rao-Blackwellise分解,得到机器人的路径与地图的联合后验概率分布。系统采用激光雷达搭配Gmapping算法,而舍弃相机传感器,其主要原因在于其数据量小的同时精度较高,且受环境因素影响较小。目前,此定位算法已经广泛使用于室内地图的构建。

(3)Navigation导航

导航功能包采用Movebase,运用传感器与里程计信息数据以及Gmapping地图的数据反馈进行导航。运用全局规划器进行路线最短设定,运用局部规划器进行避障,最终到达预设的目标位置,实现自主导航的功能。框架系统主要由全局规划与局部规划两部分来实现导航功能的。对于全局规划,一方面利用全局地图实现移动平台全局路径规划, 另一方面及时将全局路径分段发送给局部规划。局部规划则直接与底盘控制器相关,接收来自全局规划的路径,并进行局部避障,实现全局规划的分段路径;同时,将局部路径的实现转换为运动控制命令给底盘控制器,实现底盘的运动。

4 实验结果

本文采用rviz可视化界面,对如图4所示的室内环境进行自主导航导航实验。

图4 室内环境

地图最终上显示了一条从当前状态到目标状态的全局规划路径,以绿色曲线表示;一条局部规划路径,以红色曲线显示;机器人目标位姿以红色箭头显示,如图5所示。

图5 导航路径显示

随着时间的积累,需要不断采集实验的关键数据,来分析此系统的性能。实验的建图结果如图6所示,最终将建立室内完整的环境栅格地图;在实现自主导航实验之前,还需要对惯导单元进行纠偏,来消除其系统误差,惯导模块的校准结果如图7所示,最终可以将误差控制在合适的范围;采集电机的关键数据,绘制电机转速输出特性曲线如图8所示,其反映了电机转速随脉冲的变化曲线。可以看出,转速可以实时地跟随脉冲的变化;根据运动方程和观测方程在MATLAB中对算法进行仿真,并且收集数据如表1所示,数据反映了采样算法的精度。

图6 建图结果地图

图7 IMU校准结果

图8 电机转速响应波形

表1 FAST-SLAM仿真数据

以及各个方向的位姿估计误差统计如图9所示。

图9 位姿误差

随着时间的积累,发布不同的目标点数据,根据导航结果,收集静态地图与动态地图导航的统计数据,并且绘制于一张表格,以利于两种导航方式的性能对比,如表2所示。

表2 导航结果

实验结果分析如下:

根据图5,随着时间的推移,导航所形成的地图在不断的完善。同时,从列表2可以看出,在不考虑静态地图方法的前期建图过程的时间,在短距离导航方面,动态地图与静态地图方法实现导航的时间代价差在0.01s内。因此,动态导航的方法更加适用于室内机器人的智能导航,导航的速度也会随时间的积累而越来越快,误差也可以满足要求。

5 结论

围绕上位机的ROS系统进行完整的导航系统设计,并对设计系统的导航效果进行总体实验验证,结合导航数据与地图的分析,得出如下结论:

(1)导航的同时可以同步创建完整的2D栅格地图,通过时间的积累,地图逐步更新与增加,最终形成未知环境的完整地图。采用本框架结构实现了对机器人的室内自主导航,以及同步建图。

(2)随着时间的推移,地图的不断完善,移动平台的平均速度越来越大,自主导航速度不断加快,效果越来越明显。

(3)自主导航相对已知地图环境的导航来说,时间较长,但以时间的代价可以实现机器人智能化的提升。

猜你喜欢

位姿运动学上位
轿车前后悬架运动学仿真分析
基于位置依赖的密集融合的6D位姿估计方法
复合切割机器人的运动学分析与仿真研究
曲柄摇杆机构的动力学仿真
优化ORB 特征的视觉SLAM
特斯拉 风云之老阿姨上位
基于单目视觉的工件位姿六自由度测量方法研究
基于ZigBee和VC上位机的教室智能监测管理系统
基于运动学特征的新型滑板对速滑蹬冰动作模拟的有效性
“必修1”专题复习与训练