1.本课题的研究内容、重点及难点 | ||||||||||||||||||||
研究内容: 机器人在室内环境或缺少全局位置信号(GPS等)的情况下,以机器人搭载的内部传感器和外部传感器数据为输入条件,系统地解决机器人自主定位与地图创建的问题,为机器人以后切实能够在废墟环境内部自主运行做理论性的尝试和前期的探索。 具体要求如下: (1) 通过对移动机器人控制系统的功能要求分析,确定系统的总体设计方案; (2) 可围绕室内环境中的定位与地图创建问题,机器人同步定位与地图创建(Simultaneous localization and mapping, SLAM)领域的混合地图表达方法、数据关联问题、局部地图表示方法以及SLAM算法在室内环境下的适应性问题等进行系统设计; (3) 进行实验调试,证明所提方法的有效性。 研究重点: (1) 如何采集实际环境中的各类型原始数据; (2) 如何估算不同时刻间移动目标相对位置; (3) 如何构建地图。 研究难点: (1) 如何优化里程计带来的累计误差; (2) 如何消除空间累计误差。 | ||||||||||||||||||||
2.准备情况(已查阅的参考文献或进行的调研) | ||||||||||||||||||||
已查阅的参考文献: [1] 田野, 陈宏巍, 王法, 等. 室内移动机器人的SLAM算法综述[J]. 计算机科学, 2021, 48(3): 223-234. [2] 张为心. 基于激光雷达的室内移动机器人SLAM及路径规划研究[D]. 桂林: 桂林理工大学, 2021. [3] 卢彩霞. 无人驾驶应用环境下基于激光雷达的3D SLAM研究[D]. 北京: 北京交通大学, 2019. [4] Giorgio Grisetti, Cyrill Stachniss, Wolfram Burgard. Improved Techniques for Grid Mapping With Rao-Blackwellized Particle Filters[J]. IEEE Transactions on Robotics: A publication of the IEEE Robotics and Automation Society, 2007, 23(1): 34-46. [5] Lenac Kruno, Kitanov Andrej, Cupec Robert, et al. Fast planar surface 3D SLAM using LIDAR[J]. Robotics and Autonomous Systems, 2017, 9(2): 197-220. [6] Pierzchal, Marek, Giguere, et al. Mapping forests using an unmanned ground vehicle with 3D Li DAR and graph-SLAM[J]. Computers and Electronics in Agriculture, 2018, 14(5): 217-225. [7] Smith, Randall, Self, et al. Estimating Uncertain Spatial Relationships in Robotics[J]. Robotics & Automation, 2013, 37(3): 16-33. [8] 朱友帅. 基于ROS的服务机器人同步定位与地图构建研究[D]. 镇江: 江苏科技大学, 2019. [9] Imone Ceriani, Daniele Marzorati, Matteo Matteucci, et al. Single and Multi Camera Simultaneous Localization and Mapping Using the Extended Kalman Filter On the Different Parameterizations for 3D Point Features[J]. Journal of mathematical modelling and algorithms in operations research, 2014, 13(1): 23-57. [10] 沈斯杰, 田昕, 魏国亮, 等. 基于2D激光雷达的SLAM算法研究综述[J]. 计算机技术与发展, 2022, 32(1): 13-18. [11] 阮毅, 杨影, 陈伯时. 电力拖动自动控制系统-运动控制系统[M]. 北京: 机械工业出版社, 2016. [12] Tadeusz Michalowski. Applications of MATLAB in science and engineering[M]. Rijeka: InTechOpen contributors, 2011. [13] Toshiba Corporation. TB6612FNG motor driver datasheet[M]. Tokyo: Toshiba Corporation, 2011. [14] 刘火良, 杨森. STM32库开发实战指南[M]. 北京: 机械工业出版社, 2017. [15] 陈孟元. 移动机器人SLAM目标跟踪及路径规划[M]. 北京: 北京航空航天大学出版社, 2018. [16] 郭帅. 基于混合地图表示的SLAM算法研究[D]. 沈阳: 中国科学院沈阳自动化研究所, 2012. [17] Jiachen Ma, Qi Zhang, Liyong Ma. A novel robust approach for SLAM of mobile robot[J]. Journal of Central South University, 2014, 21(6): 2208-2215. [18] 陶辉, 吴怀宇, 程磊, 等. 基于特征地图的移动机器人EKF-SLAM和Fast-SLAM算法自主导航研究[J]. 北京联合大学学报(自然科学版), 2010, 24(2): 18-24. [19] 陈世明, 郑丽楠, 吴龙龙, 等. 面向3维空间的移动机器人快速自适应SLAM算法[J]. 信息与控制, 2012, 41(4): 419-424. [20] 张文玲, 朱明清, 陈宗海. 基于强跟踪UKF的自适应SLAM算法[J]. 机器人, 2010, 32(2): 190-195. [21] 周旭. 基于改进粒子滤波的SLAM算法研究[D]. 南京: 南京理工大学, 2014. [22] 陶辉, 吴怀宇, 程磊, 等. 轮式移动机器人FastSLAM算法研究[J]. 哈尔滨理工大学学报, 2011, 16(1): 42-47. [23] 郭利进, 王化祥, 孟庆浩, 等. 移动机器人在大尺度未知环境下的自主导航方法-改进的FastSLAM算法[J]. 高技术通讯, 2008, 18(4): 375-381. 调研情况: 机器人在现实生活的应用过程中,无论是室内室外的导航服务、汽车的无人驾驶以及虚拟现实的模拟都需要通过自身搭载的各类传感器采集环境中的距离、图像等多种信息,然后估计自身主体的位姿同时构建环境地图,这就是同时定位与地图构建技术(SLAM)。现今的SLAM技术较为繁多,但使用过程中都有一定的局限性[1]。 例如通过无线信号进行定位的SLAM技术只能在事先搭建的环境中使用;使用GPS定位的SLAM技术显然无法在室内环境中正常工作,并且成本较高。而在SLAM技术发展的30多年以来,基于激光雷达的SLAM技术研究热度却从未降低。作为主流的SLAM技术,其有着其他技术无法比拟的优点,例如:其通过激光反射的原理,能够完成对障碍物信息的准确判断,不受光线的影响,在黑暗的环境下正常进行工作;可以搭载其他传感器共同感知处理信息,构建更为精确的环境地图[2]。 激光SLAM技术主要依靠搭载的2D或3D激光雷达、IMU、里程计等传感器完成建图任务。最早的基于激光雷达的SLAM算法是由Smith于1988年提出的EKF-SLAM算法,使用了最大似然算法进行数据关联,但计算复杂、鲁棒性差,构建的地图无法用于机器人导航任务[2]。2002年Montemerlo等人提出了FastSLAM算法,灵活地将SLAM问题分割为定位和地图构建两个问题,并且能够使用栅格地图[3]。在此基础上,Grisetti等人提出Gmapping算法,改善了采样粒子数过大的问题,对位姿进行了扫描匹配,实现了较好的建图效果,是目前使用最为广泛的2D激光SLAM算法。之后激光SLAM算法研究进入了飞速发展的鲁棒性时代。Lenac等[4]提出一种基于3D姿态的快速SLAM,使用了360°激光雷达能够更好的估计车辆轨迹。Pierzchala等[5]针对森林技术,提出了基于graph-SLAM的同时定位和映射算法的局部图。 | ||||||||||||||||||||
3、实施方案、进度实施计划 | ||||||||||||||||||||
SLAM算法的选用: 在机器人领域,SLAM技术是极其重要的研究热点。如何进行机器人的定位和路径规划,都需要以SLAM技术为前提[6],所以它也是整个机器人导航系统的关键[7]。早期时候,基于滤波的激光雷达SLAM算法常应用于解决移动机器人SLAM问题[8]。随着近些年来计算机和传感器技术的高速发展,它们的性能方面有了极大的提升,所以在这种环境下,基于图优化的激光雷达SLAM算法崭露头角,渐渐成为发展的新方向。但基于滤波的SLAM算法在实际应用中仍然有着非常好的效果,占据着重要的基础地位。其中的拓展卡尔曼滤波(EKF)和粒子滤波(PF)在早些年被主要集中研究,但EKF算法不适用于非线性系统,特别是在环境特征数目较大时计算复杂度过高[9];基于PF的RBPF算法同样因过多的采样粒子难以在较为复杂的场景中完成建图。针对这一系列难题,Gmapping算法优化了粒子分布、完善了采样过程,同时添加了里程计和传感器的观测信息来获取更加精确地估计,有效地提高了算法运算效率,在室内移动机器人建图过程中被广泛使用。 目前,主流的激光SLAM算法的优缺点分析如表1所示。 表1 激光SLAM算法的优缺点分析[10] file:///C:/Users/HUANGZ~1/AppData/Local/Temp/ksohtml12324/wps1.jpg Gmapping算法原理: Gmapping算法是由Grisetti、Stachniss等人最早提出,其主要基于Rao-Blackwellized粒子滤波器原理,同时融合了扩展卡尔曼滤波器思想的二维激光SLAM算法,是目前室内机器人领域广泛使用的一种激光SLAM算法[2]。该算法将SLAM问题分成机器人位姿估计和环境地图构建两个问题,利用粒子滤波和扩展卡尔曼估计机器人位姿与构建地图[11]。 如图1所示为Gmapping算法整体框架。Gmapping算法在进行同时定位和地图构建时,除了接收处理激光传感器的外部环境信息的同时还要接收处理机器人的里程计信息。最终将这两种信息数据处理整合,同样构建出栅格地图[12]。 file:///C:/Users/HUANGZ~1/AppData/Local/Temp/ksohtml12324/wps2.png 图1 Gmapping 算法总体框架图 基于ROS搭建仿真实验平台: ROS旨在提供一个统一的、开源的编程框架,被用于在各种现实世界和模拟环境中控制机器人[13]。机器人包含很多重要的专业技术,并且要想使其成为大众产品,仍然存在很多技术局限,因此,需要企业、专家和用户一起努力。而ROS正是提供学者们一起协作和开发的平台,它降低了机器人入门的技术门槛、促进了技术的传播和使用,社区中的每个人都能做出自己的贡献。其中有导航、SLAM、3D物体识别、多关节手臂的运动控制和机器学习等优秀的开源资源供学者们一起学习[14]。 Gazebo是一款3D的物理仿真器,支持机器人开发中所需要的机器人、传感器和环境模型,同时内部搭载的物理引擎可以得到较好的仿真效果[15]。此外,Gazebo在ROS中有特定的接口,其中包含了ROS和Gazebo需要的所有控制,因此Gazebo和ROS非常兼容,这样有利于在缺乏硬件平台的情况下,可以先对功能进行仿真验证。不仅如此,若在机器人模型上添加有激光雷达和摄像头等传感器,可以用过Rviz显示对应传感器的深度信息或者是点云信息。在本文后面的SLAM仿真研究中,Gmapping节点发布的栅格地图,可以通过Rviz订阅显示[16]。因此,本设计选择它们为仿真软件并进行相应的工作。 移动机器人设计方案: 一个完备的室内移动机器人需要能够完成自主导航的基本任务要求,基于这一实际的功能需求,移动机器人的系统设计必须包括检测机构、控制机构和执行机构这三个主要部分[17]。如图1所示为设计的移动机器人的系统框架图。其中检测机构主要由激光雷达、IMU、里程计等组成,通过这些功能齐全的外部和内部传感器实时接收外界环境信息[18];控制机构作为移动机器人的核心需要处理检测机构获得的数据信息,主要有主控制模块“树莓派”和底盘控制器STM32组成[14];执行机构则受控于控制机构,按照其发布的控制指令完成机器人的定向运动,主要由电机驱动器和电机组成[11];为了能够监控移动机器人运动过程中的实时数据和运动情况,增加监控机构,由连接主控模块的PC主机来完成监控任务[19]。 file:///C:/Users/HUANGZ~1/AppData/Local/Temp/ksohtml12324/wps3.jpg 图2 移动机器人系统框架图 移动机器人在执行自主导航任务时需要先验的环境地图信息和运动路径线路作为前提条件,本设计方案中其具体内容步骤如图2所示[20]。由检测机构中的激光雷达、IMU、里程计等传感器实现对环境障碍物信息和机器人自身位姿及运动信息的采集,并将采集到的信息传输到控制机构中[21];控制机构中的STM32底层控制器首先对接收的各个传感器信息进行融合处理并传送给主控模块“树莓派”,通过主控模块“树莓派”中已经编写好的SLAM算法实现移动机器人的位姿定位和局部地图的构建[22];当移动机器人遍历整个环境时,全局地图不断更新完善直至构建完整[23]。 file:///C:/Users/HUANGZ~1/AppData/Local/Temp/ksohtml12324/wps4.jpg 图3 移动机器人地图构建步骤图 进度计划:
(4)设计图纸及样机; (5)程序源码。 |
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |