您现在的位置: 晨光科技 >> 文章 >> 专项研究 >> AGV >> AGV(下位)导向 >> 正文  
  激光SLAM简介           
激光SLAM简介
[ 作者:佚名    转贴自:https://zhuanlan.zhihu.com/p/379696400    点击数:41    更新时间:2023/6/26    文章录入:LA ]
[注:本站登载的某些文章并不代表本站支持或反对其观点或肯定其真实性]
激光SLAM简介

激光SLAM简介

小飞 小飞

1 SLAM概述

1.1 应用背景

目前SLAM技术应用的场景和行业十分广泛,如大家熟知的扫地机器人,无人机和现在火热的无人驾驶。同时一些AR, VR设备也都需要SLAM技术。

对于扫地机器人,无人机和无人驾驶,我们都将其规划为移动机器人应用范畴。这些移动机器人常常需要在陌生的环境中完成路径规划及控制行走。在这种情形下,就需要机器可以像人一样,首先对周围环境进行观察,构建出环境的地图,提取出地图中有用的地标。同时,借助这些地标与自己位置的关系,来进行定位,从而进一步完成控制和导航。

对于VR 和 AR 这方面应用,要么是需要将用户本身至于一个虚拟的三维场景中,要么是将虚拟的物体安置在现实的场景中。为了使这些交互具备“现实性”,也需要实时对环境进行地图构建,并确定自身位置。

为了更直观地理解这个构建地图,和定位的过程,可以看下波士顿机器狗的移动视频。

波士顿智能机器人自动导航能力测试成果_哔哩哔哩_bilibili​www.bilibili.com/video/BV1Vt4y1B7L2?from=search&seid=5078520210450114598

1.2 SLAM 技术框架

通过上面的应用背景描述,可以明确SLAM是一种涵盖了同时建图与定位的技术,即所谓的“Simultaneous Localization and Mapping".

以一个机器人为例,其具备一个初始位置,当向任意方向移动时,里程计会告诉它,距离初始位置移动的方向和距离,以此可以推测出它当前的位置。与此同时,其自带的camera,lidar等观测类传感器,基于当前位置不断对环境地标进行观测,通过已经观测过的地标修正自己的位置。由于里程计和传感器均存在误差,因此SLAM需要解决的问题是求取位置和周围地标最优解。常采用的框架流程为:

激光slam流程框架

为更好的解释其流程框架,我们用数学模型表示出SLAM需要解决的问题。

SLAM框架的数学模型

xpi'>x'>后面两个方程分别称为运动方程和观测方程, ui'>u

从优化角度解释SLAM

将得到的一系列误差加起来,将误差和作为目标函数,若目标函数为线性函数则可以基于最小二乘求解。但一般目标函数常常为非线性,则需要通过非线性优化方法得到其最小值。

最小二乘求解

通过上面的描述,滤波和图优化即为SLAM中后端优化的两类方法。

对于图优化来说,图中的结点有时候会存在冗余,即某一结点其实在历史中出现过,为了把图简化,因此需要回环检测,即判断当前结点是否在历史中出现过,也就是位置上是否形成闭环。如果形成闭环,则将当前位置匹配到搜索出的历史位置上。

回环检测

聊完了SLAM的流程框架,也就知道了学习SLAM所要掌握哪些知识和技术。其中前端里程计需要了解传感器模型,和计算机视觉算法。后端优化则需要了解几何学,图论和概率论等数学方法。当然代码编写能力是硬基础。

SLAM预备知识

1.3 SLAM的分类

行业中通常以所用的主要传感器类型进行SLAM分类,如以视觉传感器采集到图像为数据源进行的SLAM称为视觉SLAM(VSLAM); 以激光雷达传感器采集点云为数据源进行的SLAM称为激光SLAM(LSLAM);还有以毫米波雷达传感器为主的SLAM则为毫米波雷达SLAM。

基于不同传感器的SLAM

2 激光SLAM概述

SLAM 聊了这么多,激光SLAM的概念就不言而喻了。其基本框架流程依然是“前端-后端优化-回环检测”,后端优化中仍包括滤波和图优化两类方法。体现出激光SLAM特点的则是SLAM全程基于点云数据处理,那么我们首先需要了解激光雷达的运作原理。

2.1 激光雷达的工作原理

激光雷达通过发射激光,可以获取目标的真实三维坐标。目前常用的两种激光雷达类型为机械式激光雷达和固态式激光雷达。机械式激光雷达的工作原理和获取到的数据如下,通过同时发射多条激光束,再加上内部电机的旋转,基于TOF原理获取360°范围内的激光点。随着旋转频率的加快,单帧获取的点云数量将减少。

机械式激光雷达工作原理

固态激光雷达的工作原理为:通过控制内部两个棱镜的旋转,形成螺旋或花瓣式的激光点云,且对于静止目标,随着时间的累积,点云密度会逐渐变大,中心位置点云密度最大。

固态激光雷达工作原理

两类型激光雷达的对比如下:

类型 典型品牌 优势 劣势
机械式激光雷达 velodyne 禾赛 精度较高,视场大 价格贵,寿命短
固态激光雷达 livox 价格低廉,寿命长
分辨率高
精度较低,视场小

2.2 点云数据应用特点

点云数据表示的是无序离散空间点的集合,其包含了高精度的空间位置信息(x,y,z),除此之外常用的激光雷达传感器还包含了可以表示目标物体反射率的回光强度信息(intensity)。通过回光强度信息可以分辨出不同物体的类别。

道路点云(不同反射率的目标用不同颜色表示)

常用到的点云数据有如下几种存储格式:(1).txt 文本格式 (2).bin 二进制格式 (3).pcd pcl存储格式

(4).las 标准点云存储格式 (5).bag ros存储格式;这里推荐一款开源软件可以支持大部分格式点云数据的可视化及编辑处理:

CloudCompare - Open Source project​www.danielgm.net/cc/

2.3 点云数据的应用算法

点云数据处理中,常用到的处理算法有如下几种:

(1)点云配准(registration): 通过配准算法可以求出两帧点云的相对变换,从而将点云的坐标系统一化。常用的点云配准算法包括ICP和NDT方法;

点云配准算法

(2)点云滤波(去噪)(filtering): 将点云数据中存在的异常点(噪声点)进行过滤,以消除这些异常数据对后续处理的干扰。常用的滤波方法包括基于欧式距离的滤波方法和基于统计的滤波方法。

点云去噪

(3)点云采样(sampling):点云采样多指点云下采样,可以将点云数据按照一定规则稀疏化,减小数据量加快数据处理速度。常用的采用算法包括均匀采样,泊松采样等。

点云采样算法

(4) 点云索引(indexing):基于树的数据结构为点云数据建立索引,可以加快点云的检索。常用的建树方式包括八叉树索引和kd树索引。

点云索引建立

2.4 激光SLAM算法流程

参考本文第一部分,激光SLAM的算法流程同样分为:前端,后端优化,回环检测。在激光SLAM中,前端主要包括通过相邻帧点云配准进行位姿估计,也就是里程计推算。后端优化则和SLAM通用的方法一样,采用滤波或图优化的方法对位姿或和观测量进行优化。回环检测则主要采取scan to map的方式完成。

激光SLAM算法流程

2.4 激光SLAM常用算法框架及特点

激光SLAM算法 算法框架 特点
gmapping 后端采用粒子滤波 2D 依赖里程计
hector-slam scan-matching 2D 初值敏感
cartographer scan to submap 图优化
回环检测
2D/3D 引入submap
LOAM scan-to-scan
submap-to-map
3D 实时性好,匀速运动假设
无回环检测
LEGO-LOAM scan-to-scan 图优化
回环检测
3D LOAM + 图优化+回环检测
LIO-SAM imu+lidar 求取里程计
GPS因子辅助后端优化
3D LOAM + 融合imu和GPS约束

2.5 3D 激光SLAM特点与发展

首先看一下激光SLAM与视觉SLAM的对比

优势 劣势
激光SLAM 精度高,可靠性高 成本高,缺乏语义信息
视觉SLAM 成本低,具备语义信息 收环境干扰严重,精度有限

激光SLAM与视觉SLAM具备各自的优势和劣势,对于激光SLAM来说:激光雷达高精度的特性,被业界认为是不可或缺的;同时固态激光雷达的优化生产,使得激光雷达的成本不断变低,达到车规级标准。对于视觉SLAM来说:视觉相机可获取丰富的纹理信息,同时价格低廉,因此仍是使用者的首选(特斯拉,阿波罗);采用视觉图像求取深度信息依然具有很高的研究意义。

2.6 激光SLAM中的难点问题

由上述内容可知,激光SLAM发展至今已经出现许多成熟的开源方案;但由于实际环境的多变性与复杂性,还会造成激光SLAM的结果受到很大影响。本章节中列举了几种SLAM典型难题场景:

(1)含有大量动态物体的场景:由于周边物体的不断运动,造成这些目标上的点云也在前后帧发生了位姿变换,使得配准结果不准确。举个列子当自车静止不动,而周围车在不断运动,通过点云配准算法会估算出自车也在发生位姿变换。为解决该类问题常需要采用一定的方法识别并滤除掉周围的动态物体再进行后续里程计的估算,目前业内常采用一些深度学习方法滤除动态物体如point-pillar ,Lidar-MOS等;

动态物体滤除

(2)坡度或高度连续变化的场景:对于机械式激光雷达来说,其垂直分辨率有限,因此常造成激光雷达估计出的Z值不是很准确,当遇到高度或坡度连续变化的场景,Z误差的累积会造成定位和建图结果出现错误。解决此类问题常采用一些配准优化手段如添加地面约束或采用回环优化的来减少Z值的误差。

配准优化

(3)无GPS的弱纹理场景:隧道为典型的无GPS弱纹理场景,弱纹理的意思是结构纹理没有明显变化,比如当身处隧道中时,是没办法通过周围特征识别出自己到底处于哪个位置。对于激光雷达也一样,扫描得到的前后帧点云十分近似,因此没办法很好的估算出里程计;同时隧道内又无GPS信号,无法借助GPS的定位信息来完成定位估计。解决此类问题则需要通过多传感器融合的手段比如融合IMU或轮速计等数据源来完成前端里程计的估计。

融合IMU的前端里程计

3 ROS在SLAM中的应用

3.1 ROS 系统介绍

ROS(机器人操作系统,Robot Operation System), 是专为机器人软件开发所设计出来的一套电脑操作系统架构。它提供了一些机器人开发相关的服务:硬件抽象描述、底层驱动程序管理、共用功能的执行、程序间消息传递、程序发行包管理、它也提供一些工具和库用于获取、建立、编写和执行多机融合的程序。ROS 的首要设计目标是在机器人研发领域提高代码复用率。ROS是一种分布式处理框架。这使可执行文件能被单独设计,并且运行时松散耦合。这些过程可以封装到数据包(Packages)和 堆栈 (Stacks)中,以便共享和分发。

ROS系统介绍

其整体框架和运作流程如下:

ROS 框架图

(1)节点 node

代表单独的可执行程序,每个node独立的完成一项任务。

(2)消息 message

节点之间为了通信,可以将数据组织成message,ROS中已经为我们定义了许多message,如sensormsgs, nav_msgs, geometry_msgs. 每个message 中都具备不同的字段,如C++中封装的类或结构体,消息类型可以自定义。

(3)话题 topic

不同节点之间通过topic,来发布(publish)或 订阅 (subscribe)消息,来实现通信。

(4)服务 service

服务端在接受客户端请求时,才作出回应,不是周期性的。

3.2 ROS中的功能包与插件

ROS中自带了很多机器人相关的功能包和插件,如有SLAM算法相关的功能包,或者IMU滤波相关的功能包。

ROS中常用的插件:

(1)rosbag

可以存储多个topic的message,并可以回放。

rosbag的作用

(2)rviz

对于各类消息可视化显示

rviz作用

(3)tf 和 urdf

ROS中的tf是一个可以让用户随时记录多个坐标系的软件包。

URDF(Unified Robot Description Format)统一机器人描述格式,用于仿真描述。

tf与urdf

(4) Gazebo 仿真

ROS中的仿真工具

gazebo工具

(5)rqt_graph

ROS中的节点图查看命令

rqt_graph

3.3 ROS 在SLAM中的应用

(1)SLAM 相当于机器人的一部分

gamapping, hector-slam, cartographer 均作为ros中的一个功能包使用

(2) ROS 可以支持各类传感器数据,以及位姿和建图结果数据的发布和接收

geometry_msgs/Pose

sensor_msgs/PointCloud

sensor_msgs/imu

(3) SLAM中的前端和后端均可以作为一个node,支持各自运行并相互通信

ros在slam中的应用

4 KITTI数据集介绍

需要测试自己的SLAM算法在无人驾驶领域中的应用,如果自己没有传感器设备的话,那离不开采用公开的测试数据集KITTI。KITTI 采集了Velodyne-64线的激光雷达点云数据,相机的彩色图像以及真实的轨迹数据。同时提供了传感器之间的标定系数。

kitti数据集介绍
kitti数据集介绍

KITTI 官方网站上也包括了一些LSLAM算法和VSLAM算法在其上的测试精度对比和排名。

kitti排名

如对相关内容有兴趣,可进入下方链接了解具体课程内容:

https://lgo.xet.tech/s/1vCfxt​lgo.xet.tech/s/1vCfxt
  • 上一篇文章: AGV导向方法

  • 下一篇文章: AprilTag简介与简单实用(自用资料整理)
  •    
    [注:标题搜索比内容搜索快]
    发表评论】【告诉好友】【打印此文】【关闭窗口
     最新5篇热点文章
  • TEMP[126]

  • SAE001[93]

  • 高光谱成像基本原理[68]

  • 蒸汽火车解剖图[79]

  • 星球大战死星解剖图集 star wa…[86]

  •  
     最新5篇推荐文章
  • 外媒:正在唤醒中国的习近平[340]

  • 中国反伪科学运动背后的CIA黑手…[517]

  • [转载]袁隆平真言:中国最大的…[698]

  • 台专家:当年我们造IDF时 大陆…[591]

  • 旅日华人:中国严重误判日本民…[596]

  •  
     相 关 文 章
  • 牵引式agv直流伺服电机怎么选型…[38]

  • 激光导航AGV车结构设计概述[48]

  • AGV综合选型[317]

  • AGV/AMR锂电池选型指南![38]

  • 港口AGV进化史[56]


  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
        没有任何评论
    设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 | 
    版权所有 Copyright© 2003 晨光科技        站长:璀璨星辰        页面执行时间:320.31毫秒
    Powered by:MyPower Ver3.5