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

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

[复制链接]
3 w6 E* b2 T. F+ C% ~7 n
7 g9 ~/ }3 U9 E% ?

作者:

; s4 K* n6 U+ N) ~) Q5 Z
% P5 G5 n5 ]+ H# z
c; m) R# u; T; f/ Q

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

! v- C7 u0 v x# H! C0 S. e
+ j1 o0 K: k% Z9 L: w0 ?& n
: F3 \$ Z3 g3 @4 F1 D7 d" G

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

# @( \ k7 n; r/ @; J
) b" k! ~4 p6 o4 n
2 [; W+ z, }5 k# z

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

- z* h- b) F6 Y# r
' S3 ^9 |0 t; u
: t7 a" Y0 ` U% A3 \

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

) Q f. ?# l) p7 i
2 ]* e9 E2 z5 x5 {
( ?' G" f3 J! c4 ~, N6 Q

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

5 @* @; d8 P( P) R
1 z8 H9 `6 c, X- l2 r, z8 ^) \
' S+ x( V# D3 D- J, o
7 O$ B& p8 J" K, P
$ C0 [9 ~. E- a5 Y9 w, o# o! g
/ I- g3 X1 y/ R

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

: ]2 p5 I" ?6 Q) Q
1 I) ` k6 P- G' v
s, l9 T% q$ C0 f# v

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

t# g0 d9 e; d9 N; R/ ~" ]
8 g) X7 M: W4 s7 A# M- [/ |, M; R3 C3 r
0 ]* ^1 Z, ~$ I" B

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

- X7 O+ d* ^; E+ \ o* h4 i' j
: z' H# [4 B$ n4 S6 ^+ v
& k% j3 {3 [0 v

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

" g, n2 h$ O# ^; L) E% s/ C9 l7 t+ M" O
( R* y1 U# k9 W% S( R9 l
0 P( ~, ]- [# W7 |6 ~9 Q
; D9 \+ k% ]7 o/ b3 I) X/ ~4 W* T! d
- w. w5 S8 Q3 N/ y+ g1 v
. e) n( F7 ?$ C& H6 D1 s" O. H4 t

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

4 X; s+ {$ R# a h8 B
4 h- [; Q* j; h4 S, A5 f1 S3 D
" _# u; N4 B. n- _8 `$ h

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

2 T" I8 D [6 B: r) f
0 g& |4 R# l1 r
: S l9 W) g/ M# y/ d& Y) G

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

6 s2 K3 W9 x( a6 e% C! f0 N3 h
! Z. B' c* x; ?* N% Q
! T8 K3 n( L) g' y c) t3 O
8 a0 O$ G% o/ h
: b* l) f) p* C1 B
5 M( I. P$ O( T s" ~

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

: j; ^) U5 {1 J& P# G
$ @1 g( D( ^( N) d% \+ w+ ?5 }& p
' [; Y! B1 f8 [8 ~

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

' {6 T% A# T* H0 I# p
" _0 ~! z5 [* r% Q2 v. t( }) w
' E. U/ @, c. O1 o. a5 j
8 _6 _) ^7 U. U5 k6 Y3 u
) f+ z, \7 n& W' L @( l/ l
( s+ O# I; r( P

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

) P/ V4 ^/ b- T
+ `, Z2 m2 v h* v7 z' n
* F' B9 b R6 P& F. \+ u

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

5 n! Q0 i b4 m( Q- Z% G9 k
, c) K/ U% }9 f
4 p0 K- H5 F0 T D& G& m

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

8 N; T3 c( K% J: k
( D4 P# P9 B$ N
! @, u" o; ?2 n% p6 B; g9 H! K

激光雷达

5 L+ t5 `. P# o
' V* z% d5 \# c& d
9 Z7 l( l: C0 Z& E6 g& N* W: {

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

7 {3 ~; G3 u% d; m! b b
# b8 Z: q+ J7 O9 Y# x
) U/ w9 E4 _; B* H) U; V. j/ d

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

! m; z; O4 {0 B$ v. } j& f7 e
" ?! x f0 F/ Z$ B- o/ ~' z$ n; p4 D: f
( `+ R& ]5 D0 {' B/ f1 r
' E. E! \7 B+ ] i2 f) o
8 Z3 k( ~3 f, r
8 p$ L$ _* o& C! w

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

i6 M% i& _ h m2 T
3 Z) o: c2 }" m# y
* z% E8 r9 e5 ~* S( W \4 G+ Z

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

% N7 s- H9 m" \* b0 I* F: {
) p/ K2 e0 f9 B6 F0 z3 W" Y
5 ?& k: A1 R; V/ V; Y( N

视觉 SLAM

- @6 r* e1 q4 j: i4 i" h
( C# N6 A5 h+ d, m: e! ?0 |
0 {3 O/ a: w R5 J

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

/ h/ I8 l/ C# r& c' i) {9 a
: f' i6 t5 M' n7 ?; Q: i
8 V7 e) R9 @$ {3 [# B' _% X

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

& ~, k; a$ K6 g
3 `* G5 l, f1 \* X, m
& t4 g$ C, N' z4 t) e2 L

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

9 w. l$ L r9 v4 O; k6 y
5 X: i, R2 T2 R( V/ i5 f
4 `& F% \" _4 b* C

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

/ I& ]7 R) a/ W( C
+ V" S. }# s7 v( I* @" C
7 ?& A! }; v# g+ a: O; f
; g+ v/ v4 `3 W: m, r
; c- S. j/ D& j3 A, b3 E6 b
6 A1 i5 Z6 _9 M) A( o% a

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

, k& M) F% i. s& X; l
# |5 ]! A& B5 M( x; L' v
) P3 d. g# d' C; Q

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

) i4 J$ f% V$ {* V6 k5 [7 A
5 z: B& M% n, T" h3 U! `
+ S9 f! C8 t5 P6 s- W( Q; J

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

/ D8 n% I! |2 d! [
2 h; b3 u. J5 d& h( i
. U/ L& a: u8 I4 U# K" k- G9 v, m

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

3 l( [1 f9 q* ?# ?. X% ~
; w+ E& F2 q/ C# c- }; u3 T1 m
0 y2 U& S8 x- m: s: p0 B6 ^

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

, Z% r3 _4 r6 c: C
' Q6 p' o F. j7 O; I7 K
2 }5 H! _" E ~/ g
! F, |1 B8 k+ x j; k9 u
y: s0 b e: H/ D8 x4 C6 u( b( w
0 m* {& _8 S* p

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

3 i$ d( }0 P1 ` H m$ O% y; \
2 f. `% z" ~% u
3 |% h) u* T( b! {1 q3 X+ C

OD

: O' P# M6 v0 B' f+ W2 E( v! D. D; ?
$ Q8 S1 Z1 A. e6 W( S1 P7 m8 j* m8 |- V
4 D8 B# r: B8 J/ A
举报/反馈
4 d" D& u7 t& b: c+ g
2 Q1 |& b' y! W4 P h/ J / M/ z- |! ~8 y7 b* \7 ^, I6 ?5 m4 ^0 a) p8 _ 4 `6 C9 F8 D, l ( m, h- G N( `" T0 s; U! p1 O
回复

举报 使用道具

相关帖子

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