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

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

[复制链接]
( k" V6 p2 n j, [1 u
4 d) K4 h- V2 i" H2 l( o

作者:

3 v( V. H6 f* \( M4 o) {' E1 r7 F
4 C9 R8 V# R8 S6 [0 T# l( X) ]
& f$ @ ? |9 R3 |$ j

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

! g( n2 j- E" Y/ y% \/ B
# |5 n: |8 Q4 s& h4 J, q2 k
) e7 _# t$ A) s3 E+ B; h. K. i

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

/ K, r% k% Z/ s
) F2 i" a$ S9 @3 ]; h
7 Q! r) ~5 R; q& l9 y9 ]( T* I2 z- e

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

& Y( j1 _5 K, A
% S* m" i q5 y1 j
& J4 @9 Z+ I7 a2 v

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

# V1 p+ y I* q
7 {4 ?: z/ t [8 Q6 i( y
% U/ s) A% d4 M2 f+ _7 ]& j0 I

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

$ ^4 S$ Z! y) L" {$ R
# _- R) @) D1 Q. _! ^
( c) \- S5 E/ `1 f" g( y( d
% Y. x# i' a+ v6 T9 \+ X
9 ]/ ^7 _+ O y9 f9 _& a. j( R/ X* z% z
4 _$ b- ~- E. f* `/ {+ l

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

; }0 e# N! x( N1 |7 R" D" J
+ O, S% W* p5 F- T! Z
4 u, I3 n2 C9 @* g7 L

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

7 `* H2 }1 f& }+ ^3 p' Y
3 r! Q8 ]; _0 \
! d7 ]2 l1 _! E& n7 @

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

9 C" N1 o- a/ O+ @; C* z% C
% a/ O: g. O. k) K# y
& Y' R% D8 p" Z9 R5 r

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

2 e2 {# K' y, G" [% c. M
( y; S1 o H5 ^3 t
# c! d4 x* ^; R2 N5 `! L' s
6 s; C) Q' I. ?1 a: E- Q( [
@! a/ U! K4 W" [' }! a: b. Y
2 Y8 g% t1 w: t) S

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

. a0 k- @' c$ ^2 }+ v
h+ i, e/ U) Z
" ]9 C m" e" y( x/ e" b4 G

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

9 s/ s! T5 G& V; ]! _& K2 K
/ S9 l* o6 i' p
! F6 C! @8 X9 C' C6 B

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

7 Z3 Z/ _, b/ f- `7 [" R
, w3 s5 q7 n# ^# }& N
: r8 u! t2 X8 i, P; J6 H; r* u* C
/ Z% L1 w! y" k: p, }; ?
0 x% `$ W* v: Q. v+ k a
/ e7 j% o0 Q4 t* s4 u1 {

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

5 U# h6 P# o2 n* `
# @/ y$ n2 o& s) e* W5 ?9 Y" X
4 r. L* [: p0 N5 ?' Q

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

o$ z2 O& X6 N/ B4 F; H% G
4 Y. @/ c# ~* l: H" d
' c" P; C- O1 k0 e& ^$ }
8 m8 w$ N @' G& V
j9 X5 `% G* v! l. M' x
+ S; R6 Z* l. i5 f: A5 K

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

0 W& ?! T0 u+ S& H1 K( U* h. m
$ N! _8 K' c$ T
& }. u' M% F& p2 ]4 z

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

2 F- k& u: F& Z* ^( [# T
* t" \+ x, c; f$ [2 ~ F! i @
4 K: P1 w' r O) w1 J1 _ K

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

6 A: M! N5 ~; K: L* }% w& J6 p
5 ~. ^6 {: z j' A
3 \/ m5 O! _! V7 M

激光雷达

7 }* V, `$ ~8 s/ d) F
& l; J, Z5 S3 M8 ^( H, e. W* q
) G& W- j$ p( Y" x8 C& z$ x. K

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

3 O7 E/ p5 |8 d$ N" V' ?
5 h. ~# `1 _& ~' P- J
+ [9 P: l( @- K9 D

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

& H- @3 M9 r4 v' {5 c# n/ j9 t
' s2 b- W$ `- k; b% S! L& W
8 Q4 ~( v+ ^; d4 S0 E3 F
' U1 T' H, A! G
( I1 `5 ]. e+ m* }$ Z4 z7 ? E
! x) A- y" h3 a

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

, [7 S5 h; p7 v" o
" A% }7 L" z a" z+ E
$ |1 X. i# s' n" q7 U+ C3 o- f4 z! \

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

' }) A6 }( S. Q0 w4 K8 u6 N
8 o R5 {' W' |6 o$ o2 e
6 |: m- n% P( |

视觉 SLAM

+ u2 d# O' U: `6 P8 z# r
7 K ]7 }/ U' ?
- [: F! e8 U2 F' X8 ?& ?

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

* G. K5 F! e* L" @0 I
% S2 d% Y% V0 {, [
! D1 X' n) V8 M1 l3 w( M) `+ X

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

' @6 R6 G# a2 X( n6 |; X
6 N/ q0 x5 S# x! Y3 j4 Q" ?
9 _3 g% o. o9 X" r* o2 q4 V9 T

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

% |9 ^' C7 G @) a# k/ T! k) c; \) Q
: \4 _( e2 @4 J5 e; Y) C4 \
9 H4 D5 ~7 A; O6 T. q- u' ?

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

- E3 J% d0 j: ]$ ^
7 O/ S# ^# B! J" o
( d! I' f1 T" F# \2 k1 s
5 ?- W7 y8 S& u: H( b1 l1 D
9 n) b( `: `+ j' ]5 D/ M( g
4 U* X; h4 h* W0 W

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

* A" m/ p+ o" t! [
. O2 o8 g$ R# @: |, p/ |4 n( n
P# d& J% M% `0 Y

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

9 |7 Q8 F( G5 E5 h+ b" s3 O
! m4 P& s7 w r q
. D( L" [' x$ R( m- W+ w

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

$ G$ a {/ r1 M" Q
" e$ ?4 }) X: C) q' |
* X: ?; L5 q# y) v

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

0 c) T3 ?/ T2 o5 U
6 |" i2 j" O7 C
6 }" A p# h- r+ z2 w2 i

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

6 L, Y F' h/ l1 e
, }- F6 {1 Q& u4 L, Z" f r7 W! N
1 U/ V% h# j7 H$ E; c" o4 g
+ z3 g# O. x( l: o" k9 B
5 h4 v' V- }3 R0 C
1 c8 Z6 J6 p- l! w" ?! M

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

: n4 k, ^- p7 @; S5 O4 s
' g& ?* P0 @" a# H; q' z7 B
( |. k; J) G6 b% B' b/ h

OD

' q" S! G. Y6 S% I [7 b" P, O
+ o9 K" y1 I& N# I" o
' f8 H; M3 p0 o+ A0 O" O
举报/反馈
6 c. L3 F, Y; B1 h1 J) M: a$ y4 u
, p, w$ V- V3 h" h/ Y) n W F* t( l , u$ j, |; v9 t9 I. y5 |" t6 ~) j2 r: I, S8 f 8 | p- v" r; o 1 V1 u7 _- g( Z) ?
回复

举报 使用道具

相关帖子

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