论文部分内容阅读
自动导引车(Automated Guided Vehicl,AGV)是一种能够按照规定路径自动行驶的车辆,当前被广泛应用在工业制造、物流运输、家庭服务领域。随着生产力发展和生活水平提高,AGV的应用前景越来越被看好,这也要求AGV在环境感知、路径规划、运动控制三大核心技术上要进一步发展。环境感知技术是实现AGV自主导航能力的前提,它可以帮助AGV探测外界环境信息,确定自身的相对位置。路径规划是AGV自主导航的关键,它需要AGV获得自身和导航目标在地图上的位置信息。而SLAM(Simultaneous Localization and Mapping,SLAM),即同时定位和建图技术可以用来处理环境感知问题,帮助AGV实现定位或者建图功能,从而为下一步的路径规划打下基础。在运动控制之前,我们需要了解AGV要控制哪些对象,例如在不同转向形式下,AGV的控制对象也就不一样。当前市场上的AGV转向方式多样,两轮差速转向、四轮差速转向、阿克曼转向是三种最常见的转向形式。其中被广泛应用的激光SLAM算法就是在两轮差速转向的基础上设计的,而SLAM的众多参数一般是在这种转向方式上,基于经验或者为了方便设置的,其参数存在优化的空间,同时SLAM的后端优化算法也还有改进空间。因此本论文首先探讨四轮差速转向和阿克曼转向在路径控制上的优劣,然后在转向方式为四轮差速转向时,对SLAM的参数和后端进行优化,从而减小SLAM的定位误差,改善建图效果。本文首先对四轮差速转向和阿克曼转向分别进行运动学建模,得到四轮差速转向AGV和阿克曼转向AGV的转向曲率公式。然后分析了SLAM的基本原理,通过算例,对滤波类SLAM中的粒子滤波和扩展卡尔曼滤波的定位精度进行了比较,结果显示粒子滤波定位表现优于扩展卡尔曼滤波方法。接下来基于机器人操作系统(Robot Operating System,ROS)构建了仿真平台,利用三维建模软件搭建了一种同时具备四轮差速转向和阿克曼转向的AGV模型,将其导入建立的仿真平台。通过仿真比较了不同转向方式的AGV路径精度,比较了基于粒子滤波的SLAM算法和基于图优化的SLAM算法建图效果。通过计算选择电机和激光雷达,设计并搭建一款AGV,利用实物测试了AGV自主导航功能和SLAM算法。最后利用仿真平台提供数据集,完成对SLAM参数的优化,利用列文伯格-马夸尔特法(Levenberg-Marquardt,LM)方法对Karto SLAM的后端进行了改进。