论文部分内容阅读
近年来,同步定位和建图(SLAM)是一个热点和难点,是传感器技术、概率学、机器人运动学等学科结合起来产生并发展的机器人学中的一个基本的和重要的问题。SLAM问题的主要研究内容是机器人如何利用传感器感知环境信息,并构建地图描述未知环境,进而利用环境信息校正位姿实现自身精确定位。对于服务机器人,GPS、COMPASS等卫星定位系统的精度难以满足室内等环境下的导航定位要求,而机器人自身的惯性导航系统由于存在随机误差和系统误差,长时间的运行往往造成过大的位姿漂移而定位出错,机器人无法利用自身的惯性导航系统感知“真实”位姿,如同被“绑架”一般。SLAM的关键之处在于利用环境信息来估计机器人的“真实”位姿,将机器人从“绑架”状态中解救出来,实现更精确的定位。同时,机器人位姿的精确定位,也改善了所构建的地图对未知环境的精确描述。论文的主要研究内容如下:本文提出了从激光扫描的数据中提取出拓扑特征:直线和角点的方法。角点特征本质上也是直线段特征,用以实现结构化地图环境中移动机器人的定位需求。本文首先需要用激光传感器对地图环境进行扫描,并将扫描到的数据以点的形式作为环境地图的信息加以保存,然后在这些点中用迭代直线提取的方法进行最小二乘法拟合并提取出直线段。除了直线特征外,常见的有很多两面墙产生的角类结构,通过角点特征建图可以解决很多场景下移动机器人的SLAM任务。该方法首先需要提取特征点,接着对直线段提取,然后通过求直线交点的方式找到角点,最后对距离和角度对角点进行匹配,为机器人定位建图的前期数据作了准备工作。本文提取检测出的角点特征,将其作为扩展卡尔曼滤波(EKF)的同步定位与建图算法的地标,运用EKF-SLAM的方法进行机器人的同步定位和建图任务。EKF-SLAM首先需要对机器人的运动采用高斯噪声假设,使得后验误差的不确定性总和相对较小,然后将地图角点的地标信息和机器人的实时位姿用同一个状态矢量进行描述,使用自带的惯性导航对机器人的位姿进行预估计,通过EKF的方法对此状态矢量进行状态更新同时更新位姿与地标间的协方差矩阵。机器人确定自己处于环境地图的位置同时沿着运动路径估计该地图。实验结果显示,此方法能够较好的应用在以角点为基本特征的地图中,并且对机器人的位置参数具有较好的鲁棒性。最终可以得到机器人的位姿和以角点特征为基本特征表示的环境地图。由于在每个周期内提取出的直线段都比较短,直线段匹配操作是在细小的特征间进行的,直线地图中大量存在的短小的直线段。若是直线段特征全部存入机器人的矢量特征中,作为直线EKF-SLAM的地标会大大影响算法的效率。本文在直线观测模型观测到直线的前提下,引入了马哈拉诺比斯距离进一步对匹配过后的直线进行筛选,提出了一种将直线转化为Hough域内的点的方法,并在直线提取匹配关联的基础上对直线特征进行筛选从而减少特征的个数,降低了EKF算法的复杂程度。由于基于直线特征的EKF-SLAM算法直线地标特征数量较多并且生成的地图特征更为完整。在与角点特征同样的运动模型下对基于直线特征的机器人的EKF-SLAM的各项参数推导及应用。建图过程中,本文针对两种常见的直线结构,提出了特征合并的方法,更进一步优化了地图,最后实现了基于直线的机器人同步定位与建图任务。本文利用C++编程语言分别将角点和直线作为地图特征实现了EKF-SLAM的算法编程,并在MobileSim软件中使用PDX3机器人作为实验对象,进行实验验证较好的完成了实验任务。