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

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

[复制链接]
% K; T1 _0 Y i0 t+ T
' N$ ]8 \. _0 `: h: C( S0 z

作者:

, R# z2 k+ [: A) q
% z+ X4 f( r' d8 u: A# {
8 O. `# J$ g m4 {

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

/ W+ s% e) r$ V+ _, E& ~1 y
% `; w# k( R5 `
, [0 T3 p* F" q% y, n+ A# J

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

2 m; X' S7 J3 i8 C
F% Q1 m; d; F: z4 b) c
; l" w* H- M4 b- \( h

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

7 A2 [% A Y, p6 x$ C* B
! j- }& m, D, O8 Y
( g5 K7 x) e% v! i3 M

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

3 i1 a& m# `! l
3 f9 R6 `; |' `. ~) Y& B4 Z! W& U- A
7 y/ |1 |. ~/ H# z$ |' \

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

; K7 q( ?1 ]/ b3 n, ]* }" A
# M6 _9 ]* A0 H' Y2 s H: y
, z9 w0 i3 U# z* J4 J4 s2 Y
3 b; P3 N; @( V8 J& u. _ V
" i9 j9 |* c9 }' g' c
; B3 P: G8 ?/ q+ i$ I& @

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

\" i8 \1 U, [- ?9 t% Q
6 }' j4 g3 f5 t5 B
* U- ?! P/ E/ \" G' h

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

( c ^1 j+ M- F# x( o V
/ S! G" ^+ E$ W! n% H( ^2 U
" K2 K: d/ Z! y

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

" J! U. x( Q! G r
" C& x& s! B% X7 t
# o9 P/ b- e: `

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

2 b- l" v& z6 r" V( Y7 g
7 R# |! Q: q5 r
: q3 ]" u5 c% v0 l i
: R* D4 T; s3 Z
8 ]) I" R* C7 E/ p/ x
+ H$ x/ C2 Y+ F4 \7 \* l

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

5 r9 X& V6 Q5 ^# Q9 q0 O* G
& @5 `3 C" Z/ v2 L4 M6 R
! ]) p j0 \5 L; k

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

8 R- x( ~# K5 b0 b. V' W6 K
1 {/ y6 n& `# X K/ B& \) q
1 j( v9 `% b( u1 N

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

6 X7 E5 ?0 [ X) E) k/ l
! Y2 Q: c( K: ]0 ~7 u0 R- j
6 a' M% X, n& `& I, f1 c; J
$ o0 e0 o/ \7 X7 j0 O8 r' Z
. K s7 w/ c' `8 F% g: {
' G2 \+ q' }! }1 l8 l

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

; M( z1 ?$ F+ G: t: G; Z% k
w, u6 U# c i& `
8 N* ^+ h/ u: d3 F5 _/ w

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

0 w" D8 e9 x s7 L* @! i. ^, {
6 V( I8 R/ p: R) x
, n* D; o. K$ Q, o, D
1 D3 b% t4 b: Z0 V2 _2 j
& t. U; X# v! O; N
4 C2 x4 x" E: \ ^

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

# P5 D5 M8 t! z9 z* e1 c
- @7 [( m( D7 _: |" a9 E* u) M
+ }* N- _5 W) N0 z4 A- C

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

# ?. I# |4 j3 `8 r' f( `
8 L( L2 ^0 b" z) C, v
% e2 A% G/ W+ K/ T/ a, S: s

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

) Q5 f, X- e+ Q
, U/ ]5 J4 G9 H
- n; M2 }3 N9 r' j7 ^- H

激光雷达

- \* J, Y+ r0 l" t1 X
1 G; `+ s R1 D. [# {
. e1 h0 e3 B" O; ~# V. G9 @! b

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

0 P: n2 G2 S) _) o& p
# W- U( C6 l- p4 q2 w" U
! E! v5 T- e2 U( `

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

1 y6 R- {1 Z3 N! h' [0 b' f
; |7 O! m& c7 b; p
" V0 G! o% ]4 Z2 y
8 ^! ~8 I5 Y. m( ]2 K. r4 ?3 y: j; e4 E
% x+ ~! w7 I2 B1 C+ K
% Q! _1 h9 k5 N9 H2 B

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

" K. X( ]) |# x3 O7 W
7 ]# ]* F; m0 Q3 H& g: ?2 } C0 a
' g: T% } e+ z1 o

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

- p1 ]3 B( k- _- Y( m) {/ c8 D( ?
6 l) k' V' s2 U2 D- N3 s7 ?$ S
% x" L5 U( ]6 C

视觉 SLAM

$ F7 M C: @. X
; W9 h" q# k7 z; b: n
7 w( w. h$ O X2 n& Q

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

" l4 {. r0 o/ l
0 A, u1 l! i' w. U2 A% Z+ \/ O
. T- F* F$ o9 A7 ] P! ]* |, A

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

+ b* B: ]# w& w! J f
* _) O9 I! B/ f
D) d4 r) T& g( [' L

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

; Z( |' T, m7 \" v
$ W. O6 d: f. m7 J$ v n- Y9 w- `
# Y; J2 `1 v, D5 P5 j

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

$ e3 z1 `$ j) c3 K& {$ k
2 d ]' }4 I/ ^# M# f9 W/ n3 n
& K- C% c+ E; Y& E" g
q1 [" } m2 `- l1 M8 P1 I1 z
- |+ m4 t, ^, P6 _3 P2 U) j
6 \$ W: j( H- W6 h' N7 b, S

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

3 d0 H+ @) I p4 R3 ^
0 _8 J* D9 V' ?# O7 Q/ m T5 z7 @
! W5 S4 n: T1 ~8 p) U

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

8 Y0 @$ O) c7 K7 ]$ ^
4 r9 H3 m! A, B; F* K; L% ]
1 W8 A' s9 a2 h1 l

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

, u# N" o' p( e+ t( O
$ P$ E) O& _* F# { m0 ?3 w5 B1 _
; V0 `# S2 B9 b q

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

9 |8 j P$ O% [" b7 n8 J) [8 \
: e; [) Z b! q# X d: y7 ?. z
2 ~; y: e/ J# r8 Q% o. S0 A

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

Q5 @; g- Z* e8 a1 l: `- L
& y/ b& V- b z3 `7 R
" L3 A' l& f, j' l3 O( p
. n+ p g- ~4 h4 m* ?
+ r8 a* u( R" _
" ?( U1 f8 O' [$ j2 k" e7 M0 j1 Z

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

. T: _& }9 e, |( r' a! j! E, f% @
+ S' {6 G, y e0 x
% X: A/ Y7 C" N: W6 m0 w" O

OD

8 N3 u g q- w+ ^# _. d9 ]
' R2 K9 s5 o( \( N
, S" Y; v0 ^; Y/ T4 v
举报/反馈
. e+ q2 U* ^# T$ T" v
" D) U! X1 F( Z: Z - U9 Z1 M& q3 d6 w6 u( V2 T' K 3 v! z' S9 {, I " x( f V. c$ n: A5 L# X" o0 t 0 q$ f) T- G4 N/ ]
回复

举报 使用道具

相关帖子

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