论文部分内容阅读
摘要:近年来,智能机器人技术在无人驾驶汽车、无人机、扫地机器人等领域被广泛应用,移动机器人SLAM和导航技术作为智能机器人的重要研究方向,其关键技术包含定位、地图构建和路径规划。我们在选择SLAM算法的种类时,会考虑当下技术比较成熟的激光SLAM,项目使用的激光雷达为成本较低的单线激光雷达,驱动采用STM32开发板,主控则是树莓派4B,以基于粒子滤波算法为理论依据,在ROS操作系统环境下实现小车对其所处场景中的实时定位与地图构建。
关键词:SLAM算法;激光雷达;粒子滤波;实时定位与地图构建
1引言
SLAM全称Simultaneous localization and mapping,是即时定位与建图的缩写,主要用于解决机器人在未知環境运动时的定位与地图构建问题。对于市面上的激光雷达,主要用于环境探测和地图构建。
目前,SLAM技术被广泛运用于机器人、无人机、无人驾驶、AR、VR等领域,依靠传感器可实现机器的自主定位、建图、路径规划等功能。由于传感器不同,SLAM的实现方式也有所不同,按传感器来分,SLAM主要包括激光SLAM和视觉SLAM两大类。其中,激光SLAM比视觉SLAM起步早,在理论、技术和产品落地上都相对成熟。基于视觉的SLAM方案目前主要有两种实现路径,一种是基于RGBD的深度摄像机,比如Kinect;还有一种就是基于单目、双目或者鱼眼摄像头的。视觉SLAM目前尚处于进一步研发和应用场景拓展、产品逐渐落地阶段。
2激光SLAM和视觉SLAM的比较
2.1发展背景
移动机器人(AGV)是工业机器人的一种。它由计算机控制,具有移动、自动导航、多传感器控制、网络交互等功能,在实际生产中最主要的用途是搬运,可以说只要有搬运需求的地方,就有移动机器人的应用可能。
近年来,移动机器人技术在世界范围内得到快速发展。人们致力于把移动机器人应用于各种场景中,从室内外搬运机器人,到服务型机器人,再到工业机器人等,移动机器人的运用都得到了巨大突破。
在移动机器人研究中一个最关键的技术就是即时定位和建图,也就是所谓的SLAM技术。SLAM它试图解决这样的问题:一个机器人在未知的环境中运动,如何通过对环境的观测确定自身的运动轨迹,同时构建出环境的地图。
SLAM技术正是为了实现这个目标涉及到的诸多技术的总和。由于其重要的理论与应用价值,被很多学者认为是实现真正全自主移动机器人的关键。
2.2激光SLAM和视觉SLAM的区别
激光SLAM:早在2005年的时候,激光SLAM就已经被研究得比较透彻,框架也已初步确定。激光SLAM,是目前最稳定、最主流的定位导航方法。
视觉SLAM:随着计算机视觉的迅速发展,视觉SLAM因为信息量大,适用范围广等优点受到广泛关注。
(1)基于深度摄像机的视觉SLAM,跟激光SLAM类似,通过收集到的点云数据,能直接计算障碍物距离;
(2)基于单目、鱼眼相机的视觉SLAM方案,利用多帧图像来估计自身的位姿变化,再通过累计位姿变化来计算距离物体的距离,并进行定位与地图构建;但视觉SLAM目前尚处于进一步研发和应用场景拓展、产品逐渐落地阶段。
激光SLAM构建的地图精度高,不存在累积误差,求能直接用于定位导航,但也有一定局限性,比如在又长又直、两侧是墙壁的长廊或是动态变化大的环境中,单纯依靠激光SLAM容易发生定位丢失的情况。
视觉SLAM构建的地图精度较低,存在一定的累计误差,且不能直接用于定位导航。
激光SLAM是目前比较成熟的定位导航方案,而视觉SLAM是未来研究的一个主流方向,并且在未来多传感器的融合也将是一种必然的趋势,发挥优势结合的作用才能真正地为市场打造最优SLAM方案。受此影响,加上经费和技术的有限,团队更青睐于激光SLAM。
3激光雷达选型
激光雷达分为单线和多线两大类,针对这两类Lidar所使用的算法也不尽相同。
单线雷达一般应用在平面运动场景,2D Lidar SLAM是单线雷达建构二维地图的SLAM算法,SLAM算法有:gmapping, hector, karto, cartographer。通常数据和运动都限制在2D平面内且运动平面与激光扫描平面平行。多线雷达应用于三维运动场景,3D Lidar SLAM则是主要针对多线雷达的,比较出名的有LOAM, LeGO-LOAM, LOAM-livox等。
单线激光雷达是指激光源发出的线束是单线的雷达,目前主要应用于机器人领域,以服务机器人居多,可以帮助机器人规避障碍物,其扫描速度快、分辨率强、可靠性高, 相比多线激光雷达,单线激光雷达在角频率及灵敏度上反应更快捷,所以,在测试周围障碍物的距离和精度上都更加精准。但单线雷达只能平面式扫描,不能测量物体高度,当前主要应用于我们常见的扫地机器人、送餐机器人及酒店等服务机器人身上。
多线激光雷达是指同时发射及接收多束激光的激光旋转测距雷达,市场上目前有4线、8线、16 线、32 线、 64 线和128线之分,多线激光雷达可以识别物体的高度信息并获取周围环境的3D扫描图,主要应用于无人驾驶领域。其中有两个核心的作用:
(1)3D建模及环境感知:通过多线激光雷达可以扫描到汽车周围环境的3D模型,运用相关算法对比上一帧及下一帧环境的变化,能较为容易地检测出周围的车辆及行人。
(2)SLAM定位加强:同步建图(SLAM)是其另一大特性,通过实时得到的全局地图与高精度地图中的特征物进行比对,能加强车辆的定位精度并实现自主导航。
4利用SLAM自动巡航原理
机器人底层控制部分及底盘底层控制器采用STM32芯片作为处理单元,接受控制信号控制机器人移动,获取IMU单元所测得的底盘机器人的位姿。STM32通过TTL-USB转接线接入树莓派USB接口,与树莓派通讯。并通过这样的方式将位姿信号传送给作为机器人上层控制器的树莓派。底盘部分包括两个编码电机驱动的车轮,电机驱动板等。通过对两个车轮的差速控制实现转向,前进等移动。核心控制部件采用树莓派4B作为核心控制部件,用以获取机器人的位姿信息,获取来自单线激光雷达RP-lidar的点云信息。此外,无人值守智能安保机器人还采用基于粒子滤波算法的激光SLAM。
底盘机器人建图实验PC机通过虚拟机终端窗口的ssh命令与树莓派建立通讯。
启动设置好的bringup.launch文件,实验时机器人移动,本团队在实验过程中发现单独使用树莓派上的终端打开bringup.launch文件和teleop_twist_keyboard.pyPython文件也可以是机器人移动。完成对其所在环境的扫描获取点云信息,实时的结合惯性测量单元获取的位姿信息,构建场景地图。使用ROS下的Rviz软件显示建图过程,建图结果由PC机Ubuntu操作系统终端输入指令获得并保存。
在完成场景地图构建后,需要在所构建的地图基础上进行基于地图的位置和路径规划来实现机器人AGV的导航。机器人AGV运动过程中,通过里程计信息结合激光传感器获取的激光数据与地图进行匹配,不断地实时获取AGV在地图中的精确位姿,同时,根据当前位置与任务目的地进行路径规划(动态路线或者固定路线,且每次的路线都略微不同),根据规划得到的轨迹给机器人AGV发送控制指令,使机器人AGV实现自动行驶。
总结
本项目在基于SLAM算法实现无人值守智能安保机器人时考虑使用激光SLAM这个成熟的定位导航方案,并且在基于粒子滤波的激光SLAM构建出精确的场景图,使机器人更好的自动巡航,能更好更容易地满足以服务为主体的机器人设计。另外,在经历本次项目研究以后获得很多学习知识的经验和教训,对未来的成长有着不小的作用。
天津市高等学校大学生创新创业训练计划项目,AI上平安-无人值守智能安保机器人,项目编号:202013898009。
参考文献
[1]吴建明.激光SLAM与视觉SLAM的特点.计算机视觉与自动驾驶[J]博客园,2020-04-18
[2]赵华东 张耀辉 吴畏.智能车激光SLAM的研究与实现[M]汽车实用技术.2020,45(23)
[3]nickchao的IT.SLAM导航技术原理[M]工业机器人AGV,2018-06-07
北京科技大学天津学院 天津宝坻 301830
关键词:SLAM算法;激光雷达;粒子滤波;实时定位与地图构建
1引言
SLAM全称Simultaneous localization and mapping,是即时定位与建图的缩写,主要用于解决机器人在未知環境运动时的定位与地图构建问题。对于市面上的激光雷达,主要用于环境探测和地图构建。
目前,SLAM技术被广泛运用于机器人、无人机、无人驾驶、AR、VR等领域,依靠传感器可实现机器的自主定位、建图、路径规划等功能。由于传感器不同,SLAM的实现方式也有所不同,按传感器来分,SLAM主要包括激光SLAM和视觉SLAM两大类。其中,激光SLAM比视觉SLAM起步早,在理论、技术和产品落地上都相对成熟。基于视觉的SLAM方案目前主要有两种实现路径,一种是基于RGBD的深度摄像机,比如Kinect;还有一种就是基于单目、双目或者鱼眼摄像头的。视觉SLAM目前尚处于进一步研发和应用场景拓展、产品逐渐落地阶段。
2激光SLAM和视觉SLAM的比较
2.1发展背景
移动机器人(AGV)是工业机器人的一种。它由计算机控制,具有移动、自动导航、多传感器控制、网络交互等功能,在实际生产中最主要的用途是搬运,可以说只要有搬运需求的地方,就有移动机器人的应用可能。
近年来,移动机器人技术在世界范围内得到快速发展。人们致力于把移动机器人应用于各种场景中,从室内外搬运机器人,到服务型机器人,再到工业机器人等,移动机器人的运用都得到了巨大突破。
在移动机器人研究中一个最关键的技术就是即时定位和建图,也就是所谓的SLAM技术。SLAM它试图解决这样的问题:一个机器人在未知的环境中运动,如何通过对环境的观测确定自身的运动轨迹,同时构建出环境的地图。
SLAM技术正是为了实现这个目标涉及到的诸多技术的总和。由于其重要的理论与应用价值,被很多学者认为是实现真正全自主移动机器人的关键。
2.2激光SLAM和视觉SLAM的区别
激光SLAM:早在2005年的时候,激光SLAM就已经被研究得比较透彻,框架也已初步确定。激光SLAM,是目前最稳定、最主流的定位导航方法。
视觉SLAM:随着计算机视觉的迅速发展,视觉SLAM因为信息量大,适用范围广等优点受到广泛关注。
(1)基于深度摄像机的视觉SLAM,跟激光SLAM类似,通过收集到的点云数据,能直接计算障碍物距离;
(2)基于单目、鱼眼相机的视觉SLAM方案,利用多帧图像来估计自身的位姿变化,再通过累计位姿变化来计算距离物体的距离,并进行定位与地图构建;但视觉SLAM目前尚处于进一步研发和应用场景拓展、产品逐渐落地阶段。
激光SLAM构建的地图精度高,不存在累积误差,求能直接用于定位导航,但也有一定局限性,比如在又长又直、两侧是墙壁的长廊或是动态变化大的环境中,单纯依靠激光SLAM容易发生定位丢失的情况。
视觉SLAM构建的地图精度较低,存在一定的累计误差,且不能直接用于定位导航。
激光SLAM是目前比较成熟的定位导航方案,而视觉SLAM是未来研究的一个主流方向,并且在未来多传感器的融合也将是一种必然的趋势,发挥优势结合的作用才能真正地为市场打造最优SLAM方案。受此影响,加上经费和技术的有限,团队更青睐于激光SLAM。
3激光雷达选型
激光雷达分为单线和多线两大类,针对这两类Lidar所使用的算法也不尽相同。
单线雷达一般应用在平面运动场景,2D Lidar SLAM是单线雷达建构二维地图的SLAM算法,SLAM算法有:gmapping, hector, karto, cartographer。通常数据和运动都限制在2D平面内且运动平面与激光扫描平面平行。多线雷达应用于三维运动场景,3D Lidar SLAM则是主要针对多线雷达的,比较出名的有LOAM, LeGO-LOAM, LOAM-livox等。
单线激光雷达是指激光源发出的线束是单线的雷达,目前主要应用于机器人领域,以服务机器人居多,可以帮助机器人规避障碍物,其扫描速度快、分辨率强、可靠性高, 相比多线激光雷达,单线激光雷达在角频率及灵敏度上反应更快捷,所以,在测试周围障碍物的距离和精度上都更加精准。但单线雷达只能平面式扫描,不能测量物体高度,当前主要应用于我们常见的扫地机器人、送餐机器人及酒店等服务机器人身上。
多线激光雷达是指同时发射及接收多束激光的激光旋转测距雷达,市场上目前有4线、8线、16 线、32 线、 64 线和128线之分,多线激光雷达可以识别物体的高度信息并获取周围环境的3D扫描图,主要应用于无人驾驶领域。其中有两个核心的作用:
(1)3D建模及环境感知:通过多线激光雷达可以扫描到汽车周围环境的3D模型,运用相关算法对比上一帧及下一帧环境的变化,能较为容易地检测出周围的车辆及行人。
(2)SLAM定位加强:同步建图(SLAM)是其另一大特性,通过实时得到的全局地图与高精度地图中的特征物进行比对,能加强车辆的定位精度并实现自主导航。
4利用SLAM自动巡航原理
机器人底层控制部分及底盘底层控制器采用STM32芯片作为处理单元,接受控制信号控制机器人移动,获取IMU单元所测得的底盘机器人的位姿。STM32通过TTL-USB转接线接入树莓派USB接口,与树莓派通讯。并通过这样的方式将位姿信号传送给作为机器人上层控制器的树莓派。底盘部分包括两个编码电机驱动的车轮,电机驱动板等。通过对两个车轮的差速控制实现转向,前进等移动。核心控制部件采用树莓派4B作为核心控制部件,用以获取机器人的位姿信息,获取来自单线激光雷达RP-lidar的点云信息。此外,无人值守智能安保机器人还采用基于粒子滤波算法的激光SLAM。
底盘机器人建图实验PC机通过虚拟机终端窗口的ssh命令与树莓派建立通讯。
启动设置好的bringup.launch文件,实验时机器人移动,本团队在实验过程中发现单独使用树莓派上的终端打开bringup.launch文件和teleop_twist_keyboard.pyPython文件也可以是机器人移动。完成对其所在环境的扫描获取点云信息,实时的结合惯性测量单元获取的位姿信息,构建场景地图。使用ROS下的Rviz软件显示建图过程,建图结果由PC机Ubuntu操作系统终端输入指令获得并保存。
在完成场景地图构建后,需要在所构建的地图基础上进行基于地图的位置和路径规划来实现机器人AGV的导航。机器人AGV运动过程中,通过里程计信息结合激光传感器获取的激光数据与地图进行匹配,不断地实时获取AGV在地图中的精确位姿,同时,根据当前位置与任务目的地进行路径规划(动态路线或者固定路线,且每次的路线都略微不同),根据规划得到的轨迹给机器人AGV发送控制指令,使机器人AGV实现自动行驶。
总结
本项目在基于SLAM算法实现无人值守智能安保机器人时考虑使用激光SLAM这个成熟的定位导航方案,并且在基于粒子滤波的激光SLAM构建出精确的场景图,使机器人更好的自动巡航,能更好更容易地满足以服务为主体的机器人设计。另外,在经历本次项目研究以后获得很多学习知识的经验和教训,对未来的成长有着不小的作用。
天津市高等学校大学生创新创业训练计划项目,AI上平安-无人值守智能安保机器人,项目编号:202013898009。
参考文献
[1]吴建明.激光SLAM与视觉SLAM的特点.计算机视觉与自动驾驶[J]博客园,2020-04-18
[2]赵华东 张耀辉 吴畏.智能车激光SLAM的研究与实现[M]汽车实用技术.2020,45(23)
[3]nickchao的IT.SLAM导航技术原理[M]工业机器人AGV,2018-06-07
北京科技大学天津学院 天津宝坻 301830