首页 > 其他分享 >【ROS2机器人入门到实战】SLAM技术概述

【ROS2机器人入门到实战】SLAM技术概述

时间:2023-09-07 16:35:30浏览次数:57  
标签:github 入门 机器人 建图 SLAM 传感器 感知 ROS2


10.3 SLAM技术概述

写在前面

  1. 当前平台文章汇总地址:ROS2机器人从入门到实战
  2. 获取完整教程及配套资料代码,请关注公众号<鱼香ROS>获取
  3. 教程配套机器人开发平台:两驱版| 四驱版
  4. 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn

小伙伴们好,上一节我们搭建好了Gazebo中的仿真环境,本节课我们一起来了解一下SLAM技术。

第一节中我们知道,要解决机器人自主导航问题就需要有感知(建图和定位)参与,通过感知输出机器人当前环境的地图信息和位置。而本节要讲的SLAM就是解决地图和定位问题的。

1. SLAM是什么

SLAM是同步定位与地图构建(Simultaneous Localization And Mapping)的缩写。

先通过一个视频直观了解一下

视频中随着机器人的移动,机器人的传感器获取到了环境信息,然后完成对博物馆地图的构建。

有小伙伴可能会问,只看到建图没看到定位呀。细心观察可以发现建图的过程中,其实一直都在计算机器人的位置。

2. SLAM如何解决建图定位问题

机器人通过自身传感器数据处理进行位置估计,同时通过不断移动完成对整个未知环境的地图构建。这就是SLAM解决的问题。

那又是如何解决的呢?SLAM实现的方案很多,但是几个比较关键的技术如下:

  1. 传感器感知
    通过各类传感器实现对环境的感知,比如通过激光雷达获取环境的深度信息。同时可以通过传感器融合来提高位置估计的精度,比如融合轮式里程计、IMU、雷达、深度相机数据等。
  2. 视觉/激光里程计
    基本原理是通过前后数据之间对比得出机器人位置的变化。
  3. 回环检测
    判断机器人是否到达之前到过的位置,可以解决位置估计误差问题,建图时可以纠正地图误差。

经典视觉SLAM结构

【ROS2机器人入门到实战】SLAM技术概述_github

3.SLAM算法分类

从算法的对数据的处理方式上看,目前常用的SLAM开源算法可以分为两类

1.基于滤波,比如扩展卡尔曼滤波(EKF: Extended Kalman Filter)、粒子滤波(PF: Particle Filter)等。

ROS中的gmapping、hector_slam算法都是基于滤波实现的。

2.基于图优化,先通过传感器进行构图,然后对图进行优化。

目前比较主流的是图优化的方法,Cartographer就是基于图优化实现的。图优化相对于滤波,不用实时的进行计算,效率更高,消耗的资源更少,所以在实际场景中使用的更多。

4.SLAM开源库

4.1. Cartographer

github地址:https://github.com/cartographer-project/cartographer

Cartographer是一个可跨多个平台和传感器配置以2D和3D形式提供实时同时定位和建图(SLAM)的系统。

4.2. ORB_SLAM2(纯视觉)

github地址:https://github.com/raulmur/ORB_SLAM2

ORB-SLAM2是用于单目,双目和RGB-D相机的实时SLAM库,用于计算相机轨迹和稀疏3D重建

4.3 VINS

github地址:https://github.com/HKUST-Aerial-Robotics/VINS-Mono

VINS-Mono是单目视觉惯性系统的实时SLAM框架。它使用基于优化的滑动窗口配方来提供高精度的视觉惯性测距。

5.总结

本节课我们简单介绍了下感知部分的技术担当SLAM,并对常用的开源库进行介绍,下一节我们就对其中的Cartograpger开源库进行介绍和安装。

标签:github,入门,机器人,建图,SLAM,传感器,感知,ROS2
From: https://blog.51cto.com/u_15473553/7398514

相关文章

  • 【ROS2机器人入门到实战】Gazebo仿真环境搭建
    7.Gazebo仿真环境搭建写在前面当前平台文章汇总地址:ROS2机器人从入门到实战获取完整教程及配套资料代码,请关注公众号<鱼香ROS>获取教程配套机器人开发平台:两驱版|四驱版为方便交流,搭建了机器人技术问答社区:地址fishros.org.cn本节我们要在Gazebo中建立一个测试的环境,其实也很简单......
  • 【ROS2机器人入门到实战】使用Nav2导航API进行导航
    4.使用Nav2导航API进行导航写在前面当前平台文章汇总地址:ROS2机器人从入门到实战获取完整教程及配套资料代码,请关注公众号<鱼香ROS>获取教程配套机器人开发平台:两驱版|四驱版为方便交流,搭建了机器人技术问答社区:地址fishros.org.cnNav2的API其实是Nav2提供的一个Python库,通过该库......
  • 【ROS2机器人入门到实战】电机控制之正反转实验
    3.电机控制之正反转实验写在前面当前平台文章汇总地址:ROS2机器人从入门到实战获取完整教程及配套资料代码,请关注公众号<鱼香ROS>获取教程配套机器人开发平台:两驱版|四驱版为方便交流,搭建了机器人技术问答社区:地址fishros.org.cn你好,我是小鱼。前面说到通过控制对应的IO电平变换即......
  • 七天入门Python(一)
    七天入门Python(一)大家好,我是Antvictor,一个励志要成为架构师的程序员。闲话少说,接下来请和我一起进入《七天入门Python》,首先是Python安装。Python安装从Python官网找到Download下载对应的安装包,python3.6及以上即可。Python官网会根据系统默认展示对应系统的最新版本安装包,下载成......
  • 【ROS2机器人入门到实战】I2C通信实验-点亮OLED
    6.I2C通信实验-点亮OLED写在前面当前平台文章汇总地址:ROS2机器人从入门到实战获取完整教程及配套资料代码,请关注公众号<鱼香ROS>获取教程配套机器人开发平台:两驱版|四驱版为方便交流,搭建了机器人技术问答社区:地址fishros.org.cn你好,我是爱吃鱼香ROS的小鱼。本节我们就尝试直接使......
  • 写了一本适合本科生的机器学习书:《机器学习入门基础(微课版)》
    各位读者朋友们,今天我要给大家推荐一本非常实用的机器学习入门基础图书——《机器学习入门基础(微课版)》。这本书是由黄海广老师倾心打造,适合只有本科三年级数学水平以上的初学者入门,这本书已经被很多学校定为本科生教材。背景介绍本书的作者黄海广老师是一名大学教师,翻译和整理过很......
  • 速腾RS16的ROS2驱动
    文章目录本机软硬件环境ROS2驱动下载ROS2编译设置固定IP编辑配置文件测试参考本机软硬件环境ROS2-foxyubuntu20.04速腾RS16ROS2驱动下载mkdirlaser_ws&&cdlaser_ws/mkdirsrc&&cdsrc/gitclonehttps://github.com/RoboSense-LiDAR/rslidar_msg.gitgitclonehttps://g......
  • JavaScript入门---计算机基础
         编程语言通过翻译器翻译成机器语言让机器执行 标记被动,编程有逻辑是主动。二。计算机基础硬件:输入设备、输出设备、cpu(处理数据与运算)、硬盘、内存 软件:系统软件,应用软件包含于sys软件2.1数据存储计算机内部由01表示数据硬盘内存都是保存二进制数......
  • 【ROS2机器人入门到实战】FishBot建图与导航实现
    第17章FishBot建图与导航实现写在前面当前平台文章汇总地址:ROS2机器人从入门到实战获取完整教程及配套资料代码,请关注公众号<鱼香ROS>获取教程配套机器人开发平台:两驱版|四驱版为方便交流,搭建了机器人技术问答社区:地址fishros.org.cn大家好,我是小鱼。本章我们主要学习FishBot......
  • 【ROS2机器人入门到实战】脉冲测量与校准实验
    8.脉冲测量与校准实验写在前面当前平台文章汇总地址:ROS2机器人从入门到实战获取完整教程及配套资料代码,请关注公众号<鱼香ROS>获取教程配套机器人开发平台:两驱版|四驱版为方便交流,搭建了机器人技术问答社区:地址fishros.org.cn你好,我是小鱼,有了上节的理论,这一节我们编写代码来尝试......