ROS的服务类移动机器人SLAM导航的研究
来源:用户上传
作者:赵梦成 黎昱宏 张宏宇
摘要:近年来,随着人工智能的迸发,计算机的各项技术的突破,硬件技术的发展。机器人行业也取得了新的进展。服务类移动机器人的研发也不限于实验室,慢慢走出实验室而开始商用。对于服务类移动机器人来说,SLAM(同时定位于地图构建)是关键技术,也是目前研究的主要方向和热门。
本文主要针对室内移动机器人的探究,使用ROS平台和Gazebo试验和仿真SLAM。一开始介绍本文的研究背景和近年来国内外的服务类移动机器人的现状。其次介绍了本文所用到的移动平台,和介绍ROS机器人操作系统。之后介绍SLAM的概率学模型,在概率学模型上添加地图。最后开始试验对SIAM的测试,在未知环境下实现了地图构建和导航。
关键词:移动机器人;机器人操作系统;SLAM;粒子
中图分类号:TP391 文献标识码:A
文章编号:1009-3044(2020)09-0274-03
1 引言
1.1 选题背景与意义
20世纪60年代,机器人都只是固定在基座上来进行已知工作中来运动。随着计算机性能的大幅度提升,尤其近年来人工智能和机器学习的大爆发。移动机器人从实验室的研究到实地场景应用再到机器人的大规模生产。
1.2 本文的研究内容与主要工作
这篇文章主要介绍了机器人移动底盘的物理学模型,SLAM在原理主要分析了滤波器的中的slam方法和优化导航包。最后在移动平台上实现激光雷达和摄像头的建图与导航,并且在ROS平台上进行仿真实验,Gazebo仿真。
2 基于ROS的移动机器人平台搭建
2.1 移动机器人平台搭建
本实验平台搭建是采用EAI公司的底盘。机器人下位机是二轮差分的机构,轮子是两个主轮和四个万向轮,可使整机转弯半径达到最小。移动平台实物如图1所示。
2.2 ROS系统的介绍
ROS是一个系统,它主要是一个开源的为机器人打造的一个平台。它可以为开发者提供一系列的工具和库,类似与一些传统的操作系统[2]。ROS在某一角度可以当作机器人的框架。
2.3 里程计模型
在ROS中,里程计是衡量机器人从初始位姿到终点位姿的一个标准,具体来说就是使用移动传感器获取数据[3][4]。底盘的运动学模型主要分为两种:两轮差分和三轮全向模型。
2.3.1 里程计信息
本文使用的EAI地盘就是采用两轮差速运动模型。运动模型如图2所示。底盘可以看作以O点做圆弧运动,V,ω为地盘中心点的线速度和角速度,VL,VR左右两轮的速度,d为轮子离地盘中心的距离。
小车的中心点是以半径为r做圆弧运动,因为整个小车是刚性物体,所以小车的左右两轮都是在做圆弧运动。即两轮的角速度是相等的,ωL=ωR。即可获得(1):
就能得出半径r。根据左右轮的角速度相等,就等于小车中心点的角度度。可以得出公式(2):
化简就可以得出小车中心点的角速度,同理能计算出小车中心点的线速度。
2.3.2 航迹推算
由两轮差速运动模型可以得出小车中心点的线速度和角速度。在当小车进行运动时从tl时刻运动到t2时刻,可以求解得出小车在这一过程中的运动学增量dx,dy,d0,且需要将车体坐标系转换成世界坐标系[5](3):
可以用向量[dx,dy,d0]T来表示t1时刻到t2时刻小车的位姿增量。由迭代关系我们就可以知道下一时刻的位姿可用上一时刻的位姿求解得。因为里程计测量会混入噪声则有(4):
2.4 线性最小二乘
给定线性方程组Ax=b,其中A为m*n矩阵,x为n的状态向量。A行作约束条件,列作未知数的维数。在实际情况中约束条件多过未知数的维数。就需要找到一个离真实解最接近的一个解[6][7]。
2.5.1 权重评估
在状态传播到当前时刻,机器人是无法知道实际位姿。因为粒子只能从预测分布进行采样,联合权重一起近似机器人的后验概率分布。权重就是用来评估机器人预测分布和实际分布的比值,比值越大,权重越小。权重的定义:
每次重采样后都要进行权重更新。在权重评估里竖条信号的高低表示权重的大小,根据图示分析,权重的大小是和后验概率密切相关,尽管密度函数g的密度很大。
2.5.2 重采样
到目前为止,新的粒子群是根据先验概率分布进行采样,并且用观测模型进行权重评估。粒子群进行重采样,以Wt的概率接受这个粒子,生成一个随机数。根据其落在区间决定接受粒子。重复多次。权重大的多复制几次,权重小的粒子就会被删除。整个粒子滤波的算法流程如下:
算法第一行函数参数是已知条件,位姿,t时刻的里程计数据和激光雷达数据。三至七行程序是粒子运动学传播。第五行观测数据进行权重评估。第六行由前面得到的两个数据放在一个数据集内。程序八到十一行对粒子进行重采样。
2.6 FASTSLAM的优化
算法流程为:我们已知条件为t-l时刻的粒子群,t时刻的观测数据,t-1时刻的里程计数据。求解t时刻的粒子分布。
3 试验分析
这章将介绍导航算法在机器人底盘上实现。对处理过的导航包进行真机试验和在ROS平台下进行仿真试验。
3.1 仿真对比
本次试验采样ROS中兼容的仿真软件Gazebo,来进行仿真。只改变优化前后的代码,比较试验结果来说明优化程度。
在试验的过程和试验结果中明显就能看出在想要时间下建图会出现双重图,而且在建图过程中粒子数比较多,建图过程中扫描的地图反应时间较长,通常在环境中走一圈地图没有建完。
对比于在相同环境相同时间,小车走的路线如图所示。
根据建图过程中和试验结果来看,优化后的建图明显比较完整,并且扫描的粒子数较为少,扫描出的地图比陕,基本小车走一圈就能够建立较为完整的地图。
参考文献:
[1]胡春旭.ROS机器人开发实践[M].北京:机械工业出版社,2018.
[2](西)恩里克·费尔南德斯(Enrique Fernandez),刘锦涛,张瑞雷等译.ROS机器人程序设计[M].北京:机械工业出版社,2016.
[3]卡梅伦·休斯(Cameron Hughes),特雷西·休斯(Tracey Hughes)著刘锦涛,李笔锋译.机器人编程实战[M].北京:机械工业出版社,2017.
[4]R.帕特里克.戈贝尔.ROS进阶实例[M].中山大学出版社, 2017.
[5]蔡芸,滕茹梅,服务机器人的应用与发展[Jl.科教导刊一电子版(上旬),2014(5):139.
[6]孫小凯基于RGB-D信息的物体定位与识别[D].浙江大学2014.
[7] JohnJ.Craig.机器人学导论[M].机械工业出版社,2006.
[8] Araya H,Kagoshima M.Semi-automatic control system for hy-draulic shoveI[J]. Automation in Construction, 2001, 10(4):477-486.
[9] Lowe D G.Distinctive image features from scale-invariant key-points[J].lnternational Journal of Computer Vision, 2004,60(2):1-110.
【通联编辑:梁书】
转载注明来源:https://www.xzbu.com/8/view-15209528.htm