【ros】6.ros激光雷达SLAM(建图定位)

news2024/7/6 19:25:28

百行业为先 ,万恶懒为首。——梁启超

文章目录

    • :smirk:1. 激光SLAM
    • :blush:2. 二维激光SLAM
    • :satisfied:3. 三维激光SLAM

😏1. 激光SLAM

SLAM(同步定位与地图构建)是一种机器人感知技术,用于在未知环境中同时确定机器人的位置并构建地图。

SLAM的基本步骤如下:

1. 数据收集:使用2D/3D激光雷达扫描环境并收集数据。
2. 坐标系设置:设置机器人和环境的坐标系,以使数据可以被准确地处理。
3. 特征提取:从收集的数据中提取关键特征,如环境中的墙壁、门、家具等,以便在地图中标记对象。
4. 运动估计:计算机器人在环境中的位置和方向,以便在地图中准确地放置机器人。
5. 地图构建:将收集的数据和特征存储在地图中,以便机器人在环境中导航。

SLAM可以应用于机器人领域,如自动导航系统、仓储物流、智能家居系统,甚至是无人机。它可以帮助机器人自主感知环境、绕过障碍物并完成任务。

😊2. 二维激光SLAM

最常见的二维激光SLAM的应用就是扫地机器人了。

ROS社区提供了多种2D SLAM算法,可直接使用或进行二次开发:

  1. gmapping:该功能包提供了一个基于粒子滤波器的SLAM算法,可以使用2D激光雷达构建环境地图。

apt安装:sudo apt-get install ros-melodic-slam-gmapping

  1. hector_slam:该功能包提供了一种基于反演测量束(raycasting)的SLAM算法,不需要里程计数据,直接使用2D激光雷达就可构建环境地图。

apt安装:sudo apt-get install ros-melodic-hector-slam

  1. cartographer:该功能包提供了一种高质量、实时的SLAM算法,可以使用2D激光雷达构建环境地图。

  2. laser_scan_matcher:该功能包提供了一个激光雷达数据匹配算法,可以用于机器人的定位、校正和导航。

  3. karto_slam:该功能包提供了一个基于图优化的SLAM算法,可以使用2D激光雷达构建环境地图。

  4. gridmap:该功能包提供了一种用于2D环境地图的数据结构和算法,可以方便地处理和分析2D地图。

😆3. 三维激光SLAM

目前大多数智能汽车使用的是三维激光雷达,3D SLAM也有许多开源算法,可直接使用或进行二次开发:

  1. OctoMap:该功能包提供了一种生成3D环境地图的算法,可以使用激光雷达等传感器。

  2. LOAM:该功能包提供了一个基于里程计的SLAM算法,可以使用Velodyne LiDAR等3D激光雷达,适用于室内和室外环境。

  3. LeGO-LOAM:该功能包是LOAM的改进版,可以更精确地定位和建立3D地图,适用于室内和室外环境。

源码:https://github.com/RobustFieldAutonomyLab/LeGO-LOAM
运行:roslaunch lego_loam run.launch

  1. RTAB-Map:该功能包提供了一种深度学习算法,可以使用激光雷达、RGB-D相机等传感器,建立3D环境地图。

  2. libpointmatcher:该功能包提供了标准化的点云处理算法库,可以用于点云匹配、滤波、注册和配准。

在这里插入图片描述

以上。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/449754.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java调用webservicer的方法

对于使用 Webservicer的方式,一般采用 Java API调用的方式。Webservicer是一个运行在浏览器中的客户端程序,它可以通过 Webservicer的接口来访问服务器上的服务。 使用 Java调用 Webservicer有两种方式: 下面是一个简单的例子: 2、…

零基础,零成本,部署一个属于你的大模型

前言 看了那么多chatGPT的文章,作为一名不精通算法的开发,也对大模型心痒痒。但想要部署自己的大模型,且不说没有算法相关的经验了,光是大模型占用的算力资源,手头的个人电脑其实也很难独立部署。就算使用算法压缩后的…

数据结构和算法学习记录——小习题-二叉树的遍历二叉搜索树

目录 二叉树的遍历 1-1 1-2 1-3 二叉搜索树 2-1 2-2 2-3 2-4 答案区 二叉树的遍历 1-1 假定只有四个结点A、B、C、D的二叉树,其前序遍历序列为ABCD,则下面哪个序列是不可能的中序遍历序列? .ABCD .ACDB .DCBA .DABC 1-2 对于…

最精简:windows环境安装tensorflow-gpu-2.10.1

Tensorflow 2.10是最后一个在本地windows上支持GPU的版本 1. 通过.whl文件方式安装2.创建anaconda虚拟环境3.安装对应的cuda与cudnn版本,local不必装cuda和cudnn4. 测试tensorflow gpu是否可用 1. 通过.whl文件方式安装 .whl文件的下载地址: tensorflow…

windows下使用vite创建vue项目

windows下使用vite创建vue项目 1 下载安装配置NodeJS1.1 下载1.2 安装1.3 配置1.4 npm镜像加速配置1.6 设置环境变量 2 Vite简单介绍3 Vite创建vue项目3.1 vite创建vue项目的命令3.2 vite创建vue项目步骤 1 下载安装配置NodeJS 1.1 下载 下载地址:https://nodejs.…

全注解下的SpringIoc 续2-bean的生命周期

spring中bean的生命周期 上一个小节梳理了一下Spring Boot的依赖注入的基本知识,今天来梳理一下spring中bean的生命周期。 下面,让我们一起看看bean在IOC容器中是怎么被创建和销毁的。 bean的生命周期大致分为四个部分: #mermaid-svg-GFXNEU…

数据分类分级 数据识别-识别日期类型数据

前面针对数据安全-数据分类分级方案设计做了分析讲解,具体内容可点击数据安全-数据分类分级方案设计,不再做赘述 上面图片是AI创作生成!如需咒语可私戳哦! 目录 前言需求日期格式代码日期类型数据对应正则表达式前言 要做数据分类分级,重要的是分类分级模版的合理性和数…

一致性 Hash 算法 及Java TreeMap 实现

1、一致性 Hash 算法原理 一致性 Hash 算法通过构建环状的 Hash 空间替线性 Hash 空间的方法解决了这个问题,整个 Hash 空间被构建成一个首位相接的环。 其具体的构造过程为: 先构造一个长度为 2^32 的一致性 Hash 环计算每个缓存服务器的 Hash 值&…

「C/C++」C++对已有的类进行扩充

博客主页:何曾参静谧的博客 文章专栏:「C/C」C/C学习 目录 相关术语一、 继承二、组合 相关术语 继承:继承父类后可以拥有父类对应的属性和方法。 组合:将类作为成员对象,基类可以直接调用派生类对应的属性和方法。 一…

MySQL_第08章_聚合函数

第08章_聚合函数 讲师:尚硅谷 - 宋红康(江湖人称:康师傅) 官网: http://www.atguigu.com 我们上一章讲到了 SQL 单行函数。实际上 SQL 函数还有一类,叫做聚合(或聚集、分组)函…

59 openEuler 22.03-LTS 搭建MySQL数据库服务器-软件介绍和配置环境

文章目录 59 openEuler 22.03-LTS 搭建MySQL数据库服务器-软件介绍和配置环境59.1 软件介绍59.2 配置环境59.2.1 关闭防火墙并取消开机自启动59.2.2 修改SELINUX为disabled59.2.3 创建组和用户59.2.4 创建数据盘59.2.4.1 方法一:在root权限下使用fdisk进行磁盘管理5…

JVM笔记 —— 垃圾回收(GC)详解

一、垃圾回收的分类 针对HotSpot JVM的实现,它里面的GC其实准确分类只有两大种: Partial GC:部分收集模式 Young GC:只收集年轻代的GCOld GC:只收集老年代的GC。只有CMS中有这个模式。Mixed GC:收集整个年轻代以及部分…

mybatis的基本使用和理解

mybatis的基本使用和理解 Lombok的使用(使用注解的方式将实体类中的get、set、构造函数代替) Lombok是一个Java库,能自动插入编辑器并且构建工具,简化Java开发。通过添加注解的方式,不需要为类编写getter或equals方法&#xff0…

Vue3 + TS4.8踩坑之配置husky问题env: sh\r: No such file or directory

一、基本情况: 硬件环境:MacOS 10.14.6 背景:用vue3官方npm init vuelatest初始化创建的vue3 ts4.8项目。 二、问题和解决方案: 问题1:git commit的时候提示:env: sh\r: No such file or directory 原…

0121 进程管理

1.在Linux中,每个执行的程序都称为一个进程。每一个进程都分配一个ID号(pid进程号) 2.每个进程都可能以两种方式存在,前台和后台。前台进程即用户当前屏幕上可进行的操作,后台进程即实际操作,由于屏幕上无…

Java中源文件声明规则,以及java包,import关键字的使用

Java中源文件声明规则,以及java包,import关键字的使用。 1. 源文件声明规则 当在一个源文件中定义多个类,并且还有import语句和package语句时,要特别注意以下规则: a. 一个源文件中只能有一个 public 类。 b. 一个源…

LC电路是如何产生振荡的

电容和电感是两个储能元件,当电源给电容充电完成后, 将开关切到电感,电电感两端的电压是一个正弦波,正弦波频率是: 这时我们称电感和电容产生了振荡。 当然由于电感和电容都是有损耗的,所以这种振荡会慢慢的衰减&…

【文献查找使用】

目录 知识框架No.1 中文文献一、查找、二、下载、三、引用、页码四、什么是DOI呢??? No.2 外文文献一、查找二、下载三、引用、页码 No.3 如何在不下载的情况下进行正确引用呢??一、谷歌学术进行查询二、上sci-hub网站…

使用python的cartopy库读取shapefile文件 .shp文件是乱码

文章目录 问题解决方法 问题 使用python的cartopy库读取shapefile文件即.shp文件乱码 我在使用python的cartopy库读取shapefile文件时出现了乱码 record的.attributes的[‘name’]都是乱码 from cartopy.io import shapereader shp_pathr/home/mw/project/北京市1.shp#文件路…

【Linux 裸机篇(六)】I.MX6U 主频和时钟配置

目录 一、时钟系统详解1. 系统时钟来源2. 7路 PLL 时钟源2.1 ARM_PLL (PLL1)2.2 528_PLL (PLL2)2.3 USB1_PLL (PLL3)2.4 USB2_PLL (PLL7)2.5 ENET_PLL (PLL6)2.6 VIDEO_PLL (PLL5)2.7 AUDIO_PLL (PLL4) 3. 时钟树简介4. 内核时钟设置5. PFD 时钟设置6. AHB、 IPG 和 PERCLK 根时…