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

2023-05-16

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


写在前面

第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导航方面的独立研究和开发。本书正文部分到这里就全部结束了,希望大家能享受这段珍贵且漫长的学习之旅。

源码仓库

  • Github下载:github.com/xiihoo/Books_Robot_SLAM_Navigation

  • Gitee下载(国内访问速度快):gitee.com/xiihoo-robot/Books_Robot_SLAM_Navigation

参考文献

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • linux CTRL+C停止线程后释放资源

    如果按ctrl 43 c时未做一些处理 xff0c 可能会造成一些资源未释放 xff0c 比如网络端口被占用 捕获ctrl 43 c需要使用c库的signal函数 xff0c 具体代码如下 xff1a include include lt
  • 【githubgirl】开源的画板与笔记工具,可用于日常文字记录和头脑风暴等场景,也可绘制草图或图标

    分享一个比较实用的 Python 翻译工具库 xff1a Translators 该库集成了谷歌 必应 有道 百度等多个翻译平台 API xff0c 支持上百种语言翻译 xff0c 使用便捷 xff0c 配置灵活 GitHub xff1a
  • ROS-自主导航与定位

    文章目录 1 xff0c 引言2 xff0c 全球导航卫星系统GNSS3 xff0c 惯性传感器4 xff0c GNSS和IMU融合形式1 xff09 融合形式 xff1a 松耦合2 xff09 融合形式 xff1a 紧耦合 5 xff0c
  • python 爬虫遇到验证码如何解决

    1 安装对应的库 安装tesseract https digi bib uni mannheim de tesseract 其中文件名中带有dev的为开发版本 xff0c 不带dev的为稳定版本 xff0c 可以选择下载不带dev的版本 x
  • Vector CANdb++的下载安装

    1 下载安装包 xff1a https download csdn net download m0 68158707 87657730 spm 61 1001 2014 3001 5501 2 解压缩后可得到如图两个文件 xff1a 将dl
  • 数据结构之顺序栈的操作(C语言附详细代码与解释)

    目录 一 xff0c seq stack h头文件代码 xff1a 二 xff0c seq stack c文件内 1 创建空栈 2 入栈 3 出栈 4 栈的清空和销毁 三 xff0c 详细代码 数据结构中的栈 xff0c 有顺序栈与链式栈两
  • 数据结构之链式队列的实现操作(C语言附详细代码与关键代码详解)

    目录 一 xff0c 关于链式队列程序编写的简要说明 二 xff0c linkqueue h头文件 三 xff0c 关键函数代码与详解 1 创建空的链式队列 2 入队 3 出队 4 销毁链式队列 四 xff0c linkqueue c文件详
  • 数据结构之二叉树(C语言附详细代码)

    目录 一 xff0c 树和二叉树 1 树 定义 关于树的一些概念 2 二叉树 定义 特殊的二叉树 二叉树的性质 二叉树的存储结构 顺序结构 只适用于完全二叉树 二叉树的遍历 二 xff0c 二叉树操作代码 1 头文件 2 函数代码 创建二叉
  • 共享内存(进程间的通信方式)

    目录 1 共享内存的特点 2 函数接口 3 有关共享内存的系统命令 1 共享内存的特点 xff08 1 xff09 共享内存是一种最高效的进程间的通信方式 xff0c 进程可以直接读写内存 xff0c 而进程之间不需要通过任何数据的拷贝 x
  • Linux-C语言编写-TCP服务端接收消息流程(含代码)简介(1)

    目录 服务端 第一步socket 第二步struct sockaddr in 第三步 可以与第二步合为一个步骤 bind 第四步listen 第五步accept 第六步recv 第七步close 详细代码 服务端 第一步socket 1 操
  • Linux-C语言编写-TCP客户端发送消息流程(含代码)简介(2)

    目录 第一步socket 第二步struct sockaddr in 第三步connect 第四步send 第五步close 详细代码 第一步socket 1 操作 xff1a 创建流式套接字 xff1b 2 所用函数 xff1a sock
  • 基于Linux下的Nand (Nor) Flash读写速度测试

    https blog csdn net qq 39721016 article details 117993088 基于Linux下的Nand xff08 Nor xff09 Flash读写速度测试 1 打开内核测试模块2 编译内核 xff
  • 关于结构体赋值的一个小知识点

    一 xff0c 如果结构体中定义了一个字符数组的成员变量 xff0c struct test int num char ch 32 TEST 当我们需要给字符数组赋值时 xff0c 我们可能会选择下列某种方式进行初始化 xff1a 1 可以
  • lighttpd服务器搭建教程

    目录 一 xff0c 下载安装 二 xff0c 配置服务器 1 创建目录以及移动文件位置 2 修改配置文件 三 xff0c 运行测试 四 xff0c 常见错误 环境 xff1a linux虚拟机 xff1b 一 xff0c 下载安装 1 下
  • 牛客中C++/C语言的一道练习题详解

    解题思路及涉及知识点 xff1a 先简单判断一下 xff0c 程序最终是要打印k的值 xff1b k的值由两次循环中的fun函数的返回值决定 xff1b fun函数中 xff0c 变量c是静态的 xff1b fun函数中第三行代码a 61
  • QT基本组件与常用类

    目录 一 设计师 Designer xff08 掌握 xff09 二 布局 Layout 2 1 布局的基本使用 xff08 掌握 xff09 2 2 布局属性 xff08 掌握 xff09 2 3 伸展器 xff08 掌握 xff09 2
  • QT多窗口编程与文件IO编程

    目录 一 消息对话框 QMessageBox xff08 掌握 xff09 二 常用窗口类 xff08 掌握 xff09 三 主窗口类 QMainWindow xff08 重点 xff09 四 parent参数 xff08 掌握 xff09
  • QT数据库-网络编程-打包

    目录 一 讲解之前 二 数据库基本操作 三 模糊查询 二 编程之前 三 通信结构 一 设置应用图标 xff08 熟悉 xff09 二 Debug和Release模式 xff08 掌握 xff09 三 动态链接库 xff08 掌握 xff09
  • Visual Studio 2022 的安装和创建C++项目

    下面我们来讲一下如何下载安装VS 2022并且创建C 43 43 项目 1 下载 首先 xff0c 我们来到VS的微软官网下载地址 xff1a https visualstudio microsoft com zh hans vs 然后点击
  • 一起自学SLAM算法:写在前面

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 1 1 ROS简介 1 2 ROS开发环境搭建 1 3 ROS系统架构 1 4 ROS调试工具 1 5 ROS节点通信 1 6 ROS其

随机推荐

  • 一起自学SLAM算法:第1章-ROS入门必备知识

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 1 1 ROS简介 1 2 ROS开发环境搭建 1 3 ROS系统架构 1 4 ROS调试工具 1 5 ROS节点通信 1 6 ROS其
  • 一起自学SLAM算法:1.3 ROS系统架构

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 1 1 ROS简介 1 2 ROS开发环境搭建 1 3 ROS系统架构 1 4 ROS调试工具 1 5 ROS节点通信 1 6 ROS其
  • 关于NAND FLASH调试的一点总结

    https www freesion com article 5033494883 很久没接触过 nandflash 驱动 xff0c 最近工作又摸了 xff0c 于是顺便整理总结一下 nandflash 在我看来算是比较落后的存储设备 x
  • 一起自学SLAM算法:1.6 ROS其他重要概念

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 1 1 ROS简介 1 2 ROS开发环境搭建 1 3 ROS系统架构 1 4 ROS调试工具 1 5 ROS节点通信 1 6 ROS其
  • 一起自学SLAM算法:1.7 ROS2.0展望

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 1 1 ROS简介 1 2 ROS开发环境搭建 1 3 ROS系统架构 1 4 ROS调试工具 1 5 ROS节点通信 1 6 ROS其
  • 一起自学SLAM算法:第2章-C++编程范式

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 第2章 C 43 43 编程范式 2 1 C 43 43 工程组织结构 2 2 C 43 43 代码编译方法 2 3 C 43 43 编
  • 一起自学SLAM算法:第3章-OpenCV图像处理

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 第2章 C 43 43 编程范式 第3章 OpenCV图像处理 3 1 认识图像数据 3 2 图像滤波 3 3 图像变换 3 4 图像特
  • 一起自学SLAM算法:第5章-机器人主机

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 第2章 C 43 43 编程范式 第3章 OpenCV图像处理 第4章 机器人传感器 第5章 机器人主机 5 1 X86与ARM主机对比
  • 一起自学SLAM算法:第6章-机器人底盘

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 第2章 C 43 43 编程范式 第3章 OpenCV图像处理 第4章 机器人传感器 第5章 机器人主机 第6章 机器人底盘 6 1 底
  • 一起自学SLAM算法:第7章-SLAM中的数学基础

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 第2章 C 43 43 编程范式 第3章 OpenCV图像处理 第4章 机器人传感器 第5章 机器人主机 第6章 机器人底盘 第7章 S
  • 一起自学SLAM算法:第8章-激光SLAM系统

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 第2章 C 43 43 编程范式 第3章 OpenCV图像处理 第4章 机器人传感器 第5章 机器人主机 第6章 机器人底盘 第7章 S
  • 一起自学SLAM算法:8.1 Gmapping算法

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 第2章 C 43 43 编程范式 第3章 OpenCV图像处理 第4章 机器人传感器 第5章 机器人主机 第6章 机器人底盘 第7章 S
  • 一起自学SLAM算法:8.2 Cartographer算法

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 第2章 C 43 43 编程范式 第3章 OpenCV图像处理 第4章 机器人传感器 第5章 机器人主机 第6章 机器人底盘 第7章 S
  • Git - - subtree与submodule

    https www cnblogs com anliven p 13681894 html 目录 1 仓库共用 子仓库 子项目 2 submodule 与 subtree 对比 2 1 git submodule2 2 git subtre
  • 一起自学SLAM算法:第9章-视觉SLAM系统

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 第2章 C 43 43 编程范式 第3章 OpenCV图像处理 第4章 机器人传感器 第5章 机器人主机 第6章 机器人底盘 第7章 S
  • 一起自学SLAM算法:第10章-其他SLAM系统

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 第2章 C 43 43 编程范式 第3章 OpenCV图像处理 第4章 机器人传感器 第5章 机器人主机 第6章 机器人底盘 第7章 S
  • 一起自学SLAM算法:第11章-自主导航中的数学基础

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 第2章 C 43 43 编程范式 第3章 OpenCV图像处理 第4章 机器人传感器 第5章 机器人主机 第6章 机器人底盘 第7章 S
  • 一起自学SLAM算法:11.5 强化学习与自主导航

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 第2章 C 43 43 编程范式 第3章 OpenCV图像处理 第4章 机器人传感器 第5章 机器人主机 第6章 机器人底盘 第7章 S
  • 一起自学SLAM算法:第12章-典型自主导航系统

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 第2章 C 43 43 编程范式 第3章 OpenCV图像处理 第4章 机器人传感器 第5章 机器人主机 第6章 机器人底盘 第7章 S
  • 一起自学SLAM算法:第13章-机器人SLAM导航综合实战

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 第2章 C 43 43 编程范式 第3章 OpenCV图像处理 第4章 机器人传感器 第5章 机器人主机 第6章 机器人底盘 第7章 S