一起自学SLAM算法:第13章-机器人SLAM导航综合实战

连载文章,长期更新,欢迎关注:


写在前面

第1章-ROS入门必备知识

第2章-C++编程范式

第3章-OpenCV图像处理

第4章-机器人传感器

第5章-机器人主机

第6章-机器人底盘

第7章-SLAM中的数学基础

第8章-激光SLAM系统

第9章-视觉SLAM系统

第10章-其他SLAM系统

第11章-自主导航中的数学基础

第12章-典型自主导航系统

第13章-机器人SLAM导航综合实战

        13.1 运行机器人上的传感器

        13.2 运行SLAM构建地图

        13.3 运行自主导航

        13.4 基于自主导航的应用


通过第1~12章的学习,不难发现SLAM导航技术是一个跨学科且理论与实战紧密结合的复杂系统工程性学科。从第1~6章能看出SLAM导航技术涉及大量软硬件结合方面的知识,比如Linux与ROS编程、嵌入式软硬件开发、传感器驱动、多传感器数据融合等。从第7~10章可以看出SLAM技术涉及大量数学理论知识以及算法编程知识,数学理论方面包括概率、图论、状态估计、滤波、优化、机器学习等一系列基础理论知识,算法编程方面包括各种大型SLAM系统框架、计算机视觉算法、多传感器融合算法、深度神经网络等。从第11~12章可以看出导航技术同样涉及大量数学理论知识以及算法编程知识,数学理论方面包括环境感知、路径规划、运动控制等知识,算法编程方面包括各种大型导航系统框架、算法插件等知识。想要学好SLAM导航技术,需要在全面把握理论知识的基础上,将具体的SLAM及导航的实现算法在机器人本体上用起来。单纯地学习理论知识,或单纯地跑跑SLAM或导航算法,都无法达到融会贯通的效果,更不用说依据实际需求修改完善开源SLAM导航框架或编写自己的SLAM导航框架了。因此本章将以一个真实机器人为案例,教给大家开展SLAM导航的完整学习与研究流程,便于大家在学完本书全部内容后能继续进行SLAM导航方面的独立研究和开发。

在讨论接下来的内容之前,需要有一台机器人底盘。底盘是移动机器人的核心部件,也是很多商业机器人公司的核心技术所在。底盘的研发,涉及到电机控制系统、运动学模型软硬件、机械机构等交叉学科,开发难度还是很大的。如果是机器人的初学者,建议直接购买市场上成熟的底盘来学习,等掌握了底盘的软硬件各项功能和原理后,再根据自己的能力和需求设计自己的底盘。关于底盘选购请参考6.2节的内容,而如果自己搭建底盘的话可以参考6.3节的内容。

本章以如图13-1所示的xiihoo机器人为例,讨论传感器的使用、SLAM建图、自主导航、以及基于自主导航的应用等。该机器人上已经搭载了必备的传感器、开发环境、SLAM导航软件套件等,其中传感器包括带编码器的减速电机、电机控制板、激光雷达、IMU和相机,开发环境包括树莓派上的Ubuntu和ROS,SLAM导航软件套件包括驱动层(底盘的urdf模型、底盘的ROS驱动、雷达的ROS驱动、IMU的ROS驱动和相机的ROS驱动)、核心算法层(SLAM软件框架和导航软件框架)以及应用层(基于SLAM导航的应用)。

 图13-1  xiihoo机器人


13.1 运行机器人上的传感器

        13.1.1 运行底盘的ROS驱动

        13.1.2 运行激光雷达的ROS驱动

        13.1.3 运行IMU的ROS驱动

        13.1.4 运行相机的ROS驱动

        13.1.5 运行底盘的urdf模型

        13.1.6 传感器一键启动

13.2 运行SLAM构建地图

        13.2.1 运行激光SLAM建图

        13.2.2 运行视觉SLAM建图

        13.2.3 运行激光与视觉联合建图

13.3 运行自主导航

13.4 基于自主导航的应用


本章以一个真实机器人为案例,教给大家开展SLAM导航的完整学习与研究流程,便于大家在学完本书全部内容后能继续进行SLAM导航方面的独立研究和开发。本书正文部分到这里就全部结束了,希望大家能享受这段珍贵且漫长的学习之旅。

源码仓库

参考文献

【1】 张虎,机器人SLAM导航核心技术与实战[M]. 机械工业出版社,2022.

猜你喜欢

转载自blog.csdn.net/m0_68732180/article/details/128806899