激光slam综述_SLAM是什么

激光slam综述_SLAM是什么什么是slam技术 slam(SimultaneousLocalizationandMapping)叫即时定位与建图,它主要的作用是让机器人在未知的环境中,完成定位(Localization),建图(Mapping)和路径规划(Navigation)。激光slam简要介绍  主流的slam技术应用有两种,分别是激光slam(基于激光雷达lidar来建图导航)和视觉sla…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

什么是slam 技术

  slam (Simultaneous Localization and Mapping)叫即时定位与建图,它主要的作用是让机器人在未知的环境中,完成定位(Localization),建图(Mapping)和路径规划(Navigation)。

激光slam简要介绍

   主流的slam技术应用有两种,分别是激光slam(基于激光雷达lidar 来建图导航)和视觉slam(vslam,基于单/双目摄像头视觉建图导航),在此主要先介绍激光slam,它有分为基于滤波的 filter-based 的SLAM,和基于图优化Graph-based的SLAM

基于滤波框架slam:     

      卡尔曼滤波  : EKF UKF  EIF  等

      粒子滤波:   PF  RBPF   FASTSAM 1.0   2.0  MCL

基于图优化框架slam:   

       Graph-slam   工具: g20

(1)基于Graph-based的代表是cartographer,karto_slam,可以修复 t 时刻之前的误差分为两部分Front-end ,和Back-end。

(2)基于(粒子滤波)PF的代表gmapping,只能估计X(t)当前时刻的位姿,不能修复之前时刻产生的误差。在大面积的情况下,就无法建图了。

slam算法实现的几个要点

1. 地图表示问题,比如dense和sparse都是它的不同表达方式,这个需要根据实际场景需求去抉择

(A)覆盖珊格地图 和点云地图

2. 信息感知问题,需要考虑如何全面的感知这个环境,RGBD摄像头FOV通常比较小,但激光雷达比较大

   (A)主要使用传感器惯性测量单元——陀螺仪(Imu)测角度,轮子编码器测里程计odom,及激光雷达

3. 数据关联问题,不同的sensor的数据类型、时间戳、坐标系表达方式各有不同,需要统一处理

4. 定位与构图问题,就是指怎么实现位姿估计和建模,这里面涉及到很多数学问题,物理模型建立,状态估计和优化

5.回环检测问题

(A)分支定界Branch and Bound&lazy Decison(延迟决策) ,代表:cartographer

(B)Scan-to-Map

6.探索问题(exploration)

7.绑架问题(kidnapping)

8.帧间匹配算法

    (A)PI-ICP

    (B)CSM(Correlation Scan Match)

    (C)梯度优化的方法:Hector—SLAM

    (D)CSM+梯度优化:cartographer

2Dslam 技术发展

  激光slam综述_SLAM是什么

(A)EKF-SLAM构建的是feature 地图,而不是grid栅格地图,所以无法用于导航,只能用于定位。

(B)gmapping是Grid版本的FastSLAM,加入了scan-match。

(C)在Optimal RBPF在gmapping上做了优化,是MRPT上的一个开源算法。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/172350.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • es6类型转换_单片机ad转换原理

    es6类型转换_单片机ad转换原理babelES6转换ES5实现原理

    2022年9月24日
    3
  • c语言字符数组的初始化的三种方式_字符数组用16进制初始化

    c语言字符数组的初始化的三种方式_字符数组用16进制初始化1、字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。charstr[10]={‘I’,”,’a’,’m’,”,‘h’,’a’,’p’,’p’,’y’};即把10个字符分别赋给str[0]到str[9]10个元素如果花括号中提供的字符个数大于数组长度,则按语法错误处理;若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空

    2022年10月8日
    4
  • RRC信令过程概述

    RRC信令过程概述1RRC 协议功能为 NAS 层提供连接管理 消息传递等服务 对接入网的底层协议实体提供参数配置的功能 负责 UE 移动性管理相关的测量 控制等功能 2 nbsp RRC 状态 RRC IDLE nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp PLMN 选择 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp NAS 配置的 DRX 过程 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 系统信息广播和寻呼 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 邻小区测量 nbsp nbsp nbsp nbsp

    2025年9月18日
    4
  • Oracle 中的视图理解

    Oracle 中的视图理解

    2021年8月19日
    69
  • sqlserver日期格式化年月_calendar格式化日期

    sqlserver日期格式化年月_calendar格式化日期SQLServer日期格式化SelectCONVERT(varchar(100),GETDATE(),0):0516200610:57AMSelectCONVERT(varchar(100),GETDATE(),1):05/16/06SelectCONVERT(varchar(100),GETDATE(),2):06.05.16SelectCONVE…

    2022年10月21日
    5
  • Python简介

    引言python是什么?python是编程语言,即python是语言语言有英语、法语、葡萄牙语等,但凡是语言,都是用来沟通的介质。程序员编程的本质就是让计算机去工作,而编程语言就是程序员与计算

    2022年3月29日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号