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

[复制链接]
7 p, i" ^8 f' t& n; d
% H" W: g2 {1 i; {

作者:

+ P+ `7 z: j; @, j$ V
% t! h. C/ Z1 w% O0 g5 L+ b) J7 W
) t" M, ?' `/ ^# G! B' O) x' U) M# J

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

! g( q& Z$ n& A; h
1 V6 E! F& h4 W# x& M1 I6 J& t! n
5 X! ^: l8 p8 `) t+ F: i

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

! w' r/ B4 s) n: T
! t) w2 z& A( {% i9 B
' u) A% [/ R' q$ ^$ P4 m; M

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

0 ]# {" x1 @2 S3 ~5 F8 P3 W
5 X& ]1 J. l& e4 O* T* H
+ B4 C+ \( ]4 ~

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

( Y! N1 x/ o0 W& p) g+ K% L! [
+ R8 u" A( n h* h" i8 P
: t' j) s! ?* Z* f8 S" p" Q! n

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

& a+ C. O. ^* j* R/ F6 _
6 p7 U! C0 w5 z( m7 w
$ X2 [* m$ o+ A& x' ^2 z) j
! l3 p5 `" H# m* N
. X/ @6 E, Z& y0 l" {: e8 p( t; J' [0 ?1 l% z
1 }* V D' M# z4 @2 M. {

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

; x+ E# M. g4 ^2 z# s
) W" o. m1 h* v% X9 z3 V: I8 B
$ _! @$ @0 Z5 t% C

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

1 \* t5 m; J O) ~2 O9 p
2 K/ o* A) {3 Q. P
' }. v' F$ ^# S7 u0 }# x6 M

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

; O+ i# z& a- ]2 Q2 K8 v' P2 S
: t0 \3 p5 e) i. u/ ~
# T9 _3 H, @2 J% L" U4 Q9 T

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

4 z! B4 i# }5 r, y1 j. Y* r
& R8 E9 i/ g2 j% d
0 l' Q6 O6 S6 |
$ R" t& ~# c9 ^, Q7 y: e9 H" ^9 g
8 w/ B P2 j5 |' p* i+ k2 |2 j
- L/ L+ H3 |7 L8 h) }8 y

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

6 o% w$ p+ B! f9 _$ `& q' ~$ Z
, M9 c0 l+ u% q) Y$ O) k! u& C+ M
7 T) r+ ^& |' S6 Q

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

T; G9 i# s' }; ]! ~- C* K
L. b/ p8 a1 l& d1 h0 N
. y" p( c" f4 i" X

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

/ B; S5 W4 H1 X6 S
/ U" J- b4 @! O7 E! {" @- Z5 K
: k% F" Z* f$ z' ]
+ ^% o/ S7 W2 f! u3 x
' k" v1 o' t1 ]' _ M; v
; ^9 n3 B) \9 c @! f7 B, l

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

8 J2 f2 T" l" Q: f! j2 s
5 m5 I8 W# G u0 T: u& k/ {
Z: _& _% q; x4 K! X; V

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

; ~( Q7 {+ j3 j9 N0 z9 j
& g% A' [( r K
* @- g6 W+ G( @1 S; J
- A1 z& n: ?& A3 B3 j! i
4 t. O! E4 R3 l0 m7 H3 O( z; Y
. h( u! E9 [" J9 G. Z k* R

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

, m* {, T# b0 _( ^
6 Q7 }) i4 X; U" m7 M
! v% K* z: o4 g5 y

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

4 i6 p' a# z4 T V; h- ?: I
2 i* A, R# o) e) {
! E. u: t. M+ z/ ^( a5 D0 G

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

{! s2 W/ m: @+ P6 V) L
. f$ C8 @+ c& M$ }% E
! h- ~' M$ J! G" M" Y- Y8 R

激光雷达

( D4 l$ u _3 q* Z9 p
/ {# r9 P- J" O5 G
' e$ `0 a4 ?( r. U1 Y1 F- _( G' U

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

5 j6 @, h& B* v& o
6 ^2 K+ k3 J* d9 e( O% [% N
6 N. s; W/ d0 @1 x# Q: x# Z9 ?

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

+ Y1 S6 t( ^& s1 J# g: x5 `
, W8 V F) h- u7 H' Q
" L4 O" n b. W, W6 B
7 d; k# ^3 w" U2 Y* h4 \
# D& F. c2 R# w2 n% n) D
* V& ^# U; Y* V2 k9 l0 k

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

9 {. B# g) Y8 q; K9 b" Y
. d4 t8 A U7 n% M l
3 H# t5 ~7 k0 s( @& y8 X' `% [

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

: I* Q& I3 `8 r1 l
/ f9 |. {/ C3 P6 i0 R/ t
2 m& C( {, Z; M1 d/ ^8 v; j

视觉 SLAM

0 @4 p" k) A. r; T- C) ^
/ T5 p' |$ F2 c; x R6 S
4 \/ K3 ?5 _ e

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

9 i8 b) T+ x* b) r9 b( b4 L. [
5 D. F9 B' i( d5 a
. G; z7 w8 b2 u' G7 P/ J+ h

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

) s3 S" G: c% a2 n
. I1 `( s3 e2 _" F: R4 P
+ [- T( i5 y( O# X' t& C1 I

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

5 C; {4 ]% n" h# C- b
" i, B1 e3 Y; w) l3 k
s# S8 s. ~3 L5 h) R2 V. S

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

) B4 o# p/ W7 F+ [* N! w
I& O p* |8 u2 L' b
. _+ V7 t8 I# N. P. x2 X" r
- P; w9 b3 p5 `
4 j4 ^ W" P* {* ^6 v3 l: G
( [8 Z- B- Q' w9 z' I

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

6 R k o0 H F; Y/ I
2 r" r: r: E2 R& q! a; b, u1 N. J" @
9 E+ C) G7 ^$ P! M6 S$ d0 e6 o

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

4 A; D3 |9 x: u' H8 B
! s) O2 l6 q/ J2 i
% B% n1 i5 ]" y6 R: B: @

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

) P; c5 }/ ]6 f; n+ e1 N
2 F6 s1 ~) F. {( X# }5 [4 X9 Z
4 P3 ?- x$ s: l) {; N( C4 I( e4 V

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

! Y: F) E3 F' R1 f3 {9 s- O R
, D, \" \( }4 h* y E" M% |
# D* m8 \1 u% |1 H! S9 \0 z5 _

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

9 R3 Q" g5 r2 D! ?0 {. b
% Q9 g$ ?9 J) D* U& F% }
# u; f4 V" s" @* ~6 `- J
1 T! j1 E) {# i e) z1 G
7 a1 v `9 b- Z. k7 U$ G# ?
N' z2 n+ `# S) ^0 V- o

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

( h! L" j$ ^- K0 P( m3 l
* K* F" U5 U9 w/ s( H$ P
, m9 g) V# B. e# h4 A

OD

, o2 v. Z2 m% L ?% Q0 d5 V+ y
" k" ~3 {) @" S) U- q5 p/ k
6 s: [3 F+ G/ ~* m, n/ B" p0 N6 i
举报/反馈
! u* {5 L; T/ e, p& n, W9 o- p$ x0 Y/ E0 n
& P2 \3 l5 B' c! f- M ' }; @7 ?! c5 A; g( C( s 6 n- Y) U7 L9 e! f , b$ ?% j& M; J& e c7 S% b % @' \! k+ P3 u; N

相关帖子

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