收藏本站 劰载中...网站公告 | 吾爱海洋论坛交流QQ群:835383472

机器人、无人车、无人机、AR都离不开它,什么东西这么管用?

[复制链接]
5 _. I; h4 G" v, I
3 ]8 ]5 d5 R- P b

作者:

0 F6 U6 `. a/ x' x2 B
2 j" F5 O. _/ C% {( A( F, f/ }
- a: x( P9 K* T: ?

当你身处一个陌生的地方,要准确找到目的地和路线,十有八九会打开手机上的地图 app,然后定位、输入目的地、规划路线、导航。

+ l; o: B3 `8 A2 |
. z, z% ]: j2 |2 c$ k5 ?
& ]& u( {* R9 u- }

机器人也一样。当它们身处未知环境时,一样要通过以上步骤才能做出正确的运动。只不过,机器人靠的不是手机地图 app,而是 SLAM 技术。

2 }6 T$ W! A! _1 ~ H+ w: o" X
- j8 s% U% D/ ?& M3 o4 @6 i9 H
. b+ S8 R w N/ {3 `

SLAM 全称 Simultaneous Localization and Mapping,中文名曰「同步定位与地图构建」,主要用于解决机器人在未知环境运动时的定位和地图构建问题。这更像一个概念,而不是某种算法。它本身包含许多步骤,其中的每一个步骤均可以使用不同的算法实现。

/ d, q0 Q* H8 r8 x: M
2 }$ p5 }- s# v7 W5 r1 A- F
1 a! I. [1 I/ O8 e" @$ {9 {& c

机器人、无人车、无人机、AR,无所不能的 SLAM

0 z4 D( l! j$ f/ v
3 f# E7 n0 H7 F/ _# M! j' j: q
; G$ e3 a0 i& A

两年前,SLAM 最流行的应用场景还只是我们家里的扫地机器人。近几年,随着无人机、无人驾驶、服务机器人、仓储机器人以及 AR 的兴起,SLAM 作为其中核心技术的一种,正变得越来越重要。

' q) j( S P$ K9 i8 e4 e8 Y0 j
6 e6 H, s7 K2 E8 I/ g3 [- {5 t& I: J
5 L: N0 L0 [* |; c, y. z
" H9 g, _" k" ~0 {' X) M2 J
7 k+ k5 v/ O9 `
4 o1 W& y m) q A( F! Z

曾引用 SLAM 技术发烧友 Guang Ling 的话,来强调 SLAM 技术的重要性:雷锋网过去一篇文章

2 p/ m: H$ M& ^ U3 P% d
/ ^( a" z% Y V2 U0 e, a
& ^. P( v4 T4 g1 K1 z4 A' A

一个机器人也好,无人汽车也好,其中最核心,最根本的问题有四个,定位技术、 跟踪技术、 路径规划技术(Path Planning), 还有就是控制技术(Controlling)。

' a. G: P* i, b/ e& D7 o) c
1 {. {$ d1 V* d* J `" k
2 W E7 t) f; j

而这四个问题中的前三个,SLAM 都扮演了最核心的功能。打个比方,若是手机离开了 wifi 和数据网络,就像无人车和机器人,离开了 SLAM 一样。

0 \3 Q) R9 O9 H4 K. n5 s- w
4 d: N9 E; m/ f
5 Z: \+ p5 |& h: Y2 m# g1 f

也许有读者好奇,为什么无人车也非常依赖 SLAM?因为无人车被看作移动机器人的一种,也需要首先解决定位、避障和导航的问题。目前用在无人驾驶汽车上的 SLAM 主要是基于激光雷达传感器,后面会详细提到。

3 j i; S' {3 b2 j) E
: D5 U- X6 q+ r e3 m
a( ^5 M7 R5 x$ n+ O* }" o
8 u% K* [# }% W* S+ C0 d
2 d! M! g* U) ^9 i
6 n& X/ p0 h* d' E$ B6 N I

天上飞的的无人机同样需要 SLAM 来「添翼」。SLAM 能让无人机知道障碍物在哪里,进而实现自动避障的功能。

5 j; y6 f' b; b" @& |
, |0 t; E! ^4 D9 c
' r6 i, j$ Q% L4 q

香港科技大学助理研究员徐枭涵曾在知乎上如此形容 SLAM 对无人机的重要性:

( Y w" m$ n$ }9 V' {+ O
. e* \4 C0 v$ R: ?9 T- y
* t) z. ?$ q4 e% t: ~/ |

所有的关于无人机的梦想都建立在 SLAM 之上,这是无人机能飞(具有定位,姿态确定以后)的时代以后,无人机最核心的技术。也是现代无人机和玩具的区别。

* n% \: w, C8 k% i
- Y' ~4 W6 l: n
" |/ q8 k m$ H# d: a0 S/ m1 k Q
+ @: Q% B$ N% Z
" ?. n. K( {$ M7 h% F
( A1 j' y0 Q9 @3 K* F5 z

无人车、无人机,都可以算作机器人的一种,依赖 SLAM 很好理解。但与机器人没什么关系的 AR 设备,其实也是 SLAM 的一个重要应用。

; U3 b- C8 o$ [1 l
2 w$ S, e* p- I4 F! Z/ c
' H, U( w) W8 p; X/ y$ F# S7 ?

如果没有 SLAM 加持,所有头戴眼镜就只是一个近眼投影设备。有了 SLAM,AR 眼镜才能知道自己的空间坐标和相对于室内各种障碍物的位置,同时识别出各种室内摆件的形状。这是 AR 设备人机交互的基础。

# F8 R! U+ {/ q9 B/ k& Q" @( k3 T
D c+ e3 ^, ?) E5 @: ?
; L6 `& s* a: }. C! r
1 C- H9 E3 v2 r2 H
" g9 A; J7 Z$ L5 C5 G3 _
: r* p3 X( ?: G2 T- w7 B

由于 AR 是将虚拟图像叠加在真实物体上,所以 SLAM 的应用讲究局部精度,要求避免出现漂移、抖动的现象,虚拟与真实才能完美地融合在一起。另外,AR 对帧率、硬件体积、计算量、功率、成本等问题都更敏感。

' Y8 q+ D! P9 F/ ?
+ [8 Y# c# V1 T3 Z
: X+ ~8 j0 P; Q8 n7 h' v$ K# ^

激光雷达、单目、双目、RGBD,SLAM 传感器的分类

7 v5 V; ]0 |0 [ J. |
4 e! T7 q8 S& O" M
, `* o/ U! U% I- c

实现 SLAM 的第一步,是选择传感器的形式和安装方式。传感器分为激光雷达和视觉两大类,视觉下面又分三小方向。

7 {; P, d/ L& n
% J: C2 g0 o5 k1 E& o& g4 X
. O' \0 c# O& i D% \$ q$ W- p

激光雷达

# _0 `' r' h1 j) u
5 x' P+ d! z/ ?
9 s7 }9 t. {1 U7 J

激光雷达能以很高精度测出机器人周围障碍点的角度和距离,而且速度快,计算量也不大,容易做成实时 SLAM。激光雷达一般用于扫描一个平面内的障碍物,适用于适用于平面运动的机器人(如无人车、扫地机器人)。

2 b8 D% N6 b* S2 t }1 Q' s
8 s, t9 A4 t% F! Y
* \ f" i; d( e Z9 W1 y

许多行业分析师认为,激光雷达是实现全自动驾驶的关键传感器,其产品被以 Google、百度为代表的企业认可。

4 E4 Q- B+ g) K4 _
) A( w$ _- ?( L3 z T( L; R
+ V3 g) C/ z9 m9 `1 Y
7 T3 J7 B; P+ M, O9 I* N
( T$ s" v, J, O! v! s3 O" v2 F
7 D% L w/ d; }+ D+ `$ C

不过,激光雷达制造成本高,价格十分昂贵,比如 Google 无人车目前使用的激光传感器单个定制成本在 8 万美元左右,百度采购一台激光雷达也要 70 万人民币。

+ Z4 |* B5 A3 g' O' Z
4 |# j6 L. _; w* V; b- F% y
o+ P$ m1 h1 p! k" Z3 Z

成本已然成为激光雷达普及最大的拦路虎。2016 年 8 月福特和百度一起投资了激光雷达厂商 Velodyne LiDAR 1.5 亿美元,目的就是帮助 Velodyne 降低激光传感器的成本。Velodyne 希望将激光雷达的价格降到 300 到 500 美元之间,以满足大众汽车市场。

) t: r# _" y+ U6 _6 f; G
/ v. D9 g9 Y, u/ M" a$ ~8 i
! r. d; E+ K+ x q' x: r

视觉 SLAM

9 m2 O8 r q+ N: s2 N
$ o1 x- P: R" I" F0 }& B& t! T
: N$ k8 Q+ X% W0 d* C* t

视觉 SLAM 是 21 世纪 SLAM 研究热点之一。CPU、GPU 处理速度的增长和硬件的提高,让许多以前被认为无法实时化的视觉算法,得以在 10 Hz 以上的速度运行。

, |. H+ R: k: ]/ S, U
8 x& b. f0 q3 k0 c0 C6 |9 o4 ^
# J9 a8 S4 A9 n

按照摄像头的数量和种类分,视觉 SLAM 分 3 个子方向:单目、双目(或多目)、RGBD。此外,还有鱼眼、全景等特殊摄像头,但是都属于少数。

6 B9 L$ C4 ?' L* }$ Q; P
0 `* I/ j: E: k+ u1 |! Z' q
9 a8 l$ r* m) P

单目相机 SLAM 只需要一个普通的 2D 摄像头,成本优势大。但普通 2D 摄像头没法获取深度信息,它捕获的仅仅是一张 2D 图像。深度信息缺失有什么影响?引用:知乎用户「半闲居士」的一个回答

! [1 G! S1 |& s
4 V3 E3 [8 |& W* s$ Y) H. ^
! d: T# l+ J. G; r; z* d* W* X: G

没有距离信息,我们不知道一个东西的远近——所以也不知道它的大小。它可能是一个近处但很小的东西,也可能是一个远处但很大的东西。只有一张图像时,你没法知道物体的实际大小(Scale)。

' i. _6 w, m- `9 l! X
$ I: N- h5 g4 v; Q0 R
# i+ o; E) n: I
% J3 w9 C- M$ l5 `/ M
+ x( r4 `. \% C8 q+ Y
+ O! Z( G3 h4 q5 L7 x0 Z# `

另一方面,单目相机也无法依靠一张图像获得图像中物体离自己的相对距离。

! K# c* e: y- j! }4 |% x, e
) I1 r4 p# }! M9 {% v4 T# [
- w( V# e" b) v% I0 x

但这两个问题都有对应的解决办法。比如,通过借助 GPU 和 IMU(Inertial Measurement Unit,惯性测量器件)确定物体的大小,依靠运动中的三角测量,来求解相机运动并估计像素的空间位置。

$ y; Y7 K# K* }5 J
" U. {9 s7 x( T0 S5 \
. _. f: G) N, ]+ O

双目 SLAM 消除了单目的很多麻烦。双目视觉和人眼类似,通过左右眼图像的差异来计算距离——也就是所谓的立体视觉(Stereo)。

2 }9 w+ ]& g1 ~8 ` l7 }- x
* i2 M; L$ ?6 g/ v
$ ^2 c1 z" R/ c5 x+ ?: _6 B

但双目 SLAM 的计算量非常大,通常需要用到可编程门阵列 FPGA。而且其其深度量程也受双目的基线与分辨率限制。

7 m- N8 O; B1 x T, q! m( t
; M" p- m) T+ j5 M; H( ^$ x& G
% Y G% o3 _& H4 O- a1 G, A

RGBD SLAM 的传感器是深度摄像头,能直接记录深度信息。深度摄像头通过把光投射到物体表面,再测量反射的信息来计算距离,具体原理有两种:结构光或 Time-of-Flight。它比传统相机能够提供更丰富的信息,也不必像单目或双目那样费时费力地计算深度。Kinect 就是一种比较常见的深度摄像头。不过,现在多数 RGBD 相机还存在测量范围窄、噪声大、视野小等诸多问题。

' c! w. j- o5 h y
% N3 l7 V: \2 P
5 E6 R" h# R' c6 x5 C! |
# M2 u. x( ~1 s T
% W+ a$ S7 z$ Z: y* F) @2 B! G
9 f8 P9 h: W6 n h3 P( g

总的来说,SLAM 的实现方法多种多样,应用场景也不断打开。但「由于产品和硬件高度差异化,而 SLAM 相关技术的整合和优化又很复杂,导致算法和软件高度碎片化,所以市场上目前还没有一套通用普适的解决方案,在短时间内也不会有」。

. N& D) N% C, F
. H$ i l6 a& U, C/ _! P5 T
: F$ a i# O6 E5 h4 n

OD

( w3 e* O* K( A& Y8 L
1 _) w, k) C0 P- P i
% p. b$ T/ X# {1 g% |; r
举报/反馈
& u; q- m8 i, Y$ S+ D1 ?
3 g9 `* I" V% M1 f1 J1 } / K/ u4 ^" K1 _! y! U- K. K7 u5 Y0 @/ y; O. y , t+ q( x% }+ s) O . Z; t$ d+ ?: n
回复

举报 使用道具

相关帖子

全部回帖
暂无回帖,快来参与回复吧
懒得打字?点击右侧快捷回复 【吾爱海洋论坛发文有奖】
您需要登录后才可以回帖 登录 | 立即注册
葛宝淼
活跃在2026-4-15
快速回复 返回顶部 返回列表