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

[复制链接]
2 k0 r, h$ M/ F7 S' H) M
6 [5 i% n, g( D9 P

作者:

/ \" w! }. Y7 |. s1 a' ^5 }4 O
5 ?" [5 Y0 q) y2 L% b
5 E' h. E+ Q6 n8 v+ Y

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

, ]7 Z# C0 _ t1 T* B# f
9 l4 U: k% k2 k! a3 r9 P
& k9 F( c! v3 }( X! [

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

( B1 ?0 T4 W; W! O. _0 U, k1 k
3 Q7 N; [6 U+ V& ^6 D+ x
/ j; G2 O- d9 \( k3 M8 E. M

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

$ D( f9 d4 E$ A; _4 A" l8 p
, a' V: X9 l; `. V) p
" C4 I6 v; j; T9 O" x- O

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

2 P: J* g& P" u$ M
$ T. I' b+ B7 m3 o. K# h5 x9 n* ~
% ], p7 A/ }& a8 d* u

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

; x! N& a+ S: x' H9 C, J
8 `/ v. s- I/ k
U4 D4 l% C8 t; K, \6 G
/ U# k3 b' r; D8 g Z
" L, x. i7 _+ c F7 t- Y. m1 k
2 h6 T( h+ s# W1 ?( \4 ?9 K0 |

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

3 C6 K: e w2 U% Y* @# v" M3 y
1 _* V# {4 n2 t' q: a4 s. I; |
4 O; k! O" P; \" @- T V, T

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

! I+ V6 N3 h5 [ u; k5 D
+ H% ~ ?# n9 ], _$ b# h: `
0 X0 k4 b: V! S9 O1 y$ m* Q

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

+ g9 \6 W* Y% b5 f( Y4 W8 c Z& W$ w
' U2 [8 n0 v3 W% C B! N9 w# y
+ m/ v/ I# g" x

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

. y4 f3 @! l. G4 ^8 O: U
6 o1 k3 I) W9 Z+ f1 c
! w) Z) S0 U: v7 q: `" _
) @7 Z, `8 ^" O' y1 S; K4 m# b" b
2 w2 b& ~3 z( Y0 W+ L# e* C8 v
4 j6 O: L8 V6 ~+ C2 o* d/ y: K

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

8 e( y# v/ N& r- }1 p) k3 \
8 g" a' M* o( z3 }1 B3 @
: J5 Y" U) ], M( m# @- Z

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

: W* ]1 U4 d; U3 }1 f/ R: y' ? Y
j! {4 ~9 a- m6 k# i
6 p$ ~% X' T* Q0 I1 Y0 {

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

D2 a1 d# E' P$ m
& b5 N3 T& d+ C- G \
' y6 l( E E- c
- f, \. d( s0 A: C8 j7 B- S! L
: `3 x9 n' x# S2 t! c" I% r
, k" `( T7 `( O" ^

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

: w3 q Q; p' h& C1 n- Y* c6 i
7 ^1 f1 A8 A4 ]; i8 C
9 C4 \7 h% {9 r$ n1 `3 C2 |; q( f" d

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

) P @- B0 L: C" r4 v
# F( G% [! c9 j a$ y1 `) a! D+ K
+ W& }) S; \/ v
% \$ }4 u- o2 E6 V% t9 A& e
' I" B5 x* H' z' p2 Z$ p
0 E+ E1 C4 t: h- s X5 R; f

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

- b4 [% _ N& Y
* `% W& @2 v) W3 y& I$ \# q1 q3 S' q
' z% y g7 I$ T) `; u3 K5 {/ A

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

# R- d6 {7 D3 n
, I2 I+ @1 j/ P2 | L- z3 C
/ `; f$ i1 A! r: u8 {! B0 c

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

$ o( Y5 m% n* |% M9 j4 H1 S5 r' U
1 V4 h8 \/ l, M* @5 t4 S
; W0 ]7 ~6 m) O/ ~: n1 w

激光雷达

2 s/ r7 n+ F5 s/ M9 @
% D0 e# ^ K! M# n! J# J, J
. c& d% r$ i2 u9 _4 u. o

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

! _$ w9 {8 I2 G+ C
! w" Q7 z0 G( ]7 A! y0 L
7 }% X% N* Q3 U- x# i

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

. V6 P9 F; [+ c3 @. G# s2 H* I7 A
, ^5 a& w, K0 q) |
3 P8 a; g1 _2 v! g
9 b; B. g/ |8 e. R8 _3 ], K
% c5 ~2 m2 p7 c' g4 Z) V1 Y
5 Y" s4 ?% I3 t

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

% X) N' q, z# I1 ]6 u- t8 w8 |
1 r; O; y" [6 c7 |) T
' a2 G2 @' o0 U, B( g5 o* e) F

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

0 a$ H5 b( A! B- r
7 h2 Q2 }# I: p( A& N9 R5 g
* T: P2 k% o* `5 @

视觉 SLAM

# A/ u! L z0 C1 X
d# H8 W8 y0 o. j; _
. k3 a2 \* \& C+ V+ l# A

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

{: q+ e! [$ x9 u! U$ N, Y& ?
% E) [, {3 q; f9 i
6 A. e. \+ a9 k) s3 R% y, t4 V( [

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

* ?) V; d3 U7 P. _3 B
& s% K. ]( l2 T. I t7 h
5 H) n4 z2 D' \. M; J. D

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

" j& E. j& {# }/ b
# q5 |- o- B0 v" F, r! M) J$ [# w v
6 F* ], {/ l2 d8 ?

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

8 F. g4 D, j. ~8 p3 F9 r
" T2 e& a$ n# [4 v
* h, a# k" ~& t2 K0 R" j
/ u6 u* O1 i& K3 Y- `( U/ u* p
7 o( _! \$ L) T/ G: @8 a5 Q
7 r, V" d$ M; b

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

" K8 E9 y$ T6 g% A5 M
1 ^. C8 b3 |9 o7 |7 D+ D& D. {8 }
, d l* J, U; \' |

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

, F- j6 w) u" Q ~
/ Y! L# _+ }1 I5 @& d: h# }2 [8 g- |& I
+ v" l2 `' l7 f

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

2 D6 t. _- j5 `
' y/ \2 N3 w9 X7 T1 X8 L
) H* ~) |5 I6 A: L

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

9 t& c- d3 ?3 H+ U; ~
. K4 J! l! A0 d/ D1 v' r, C( U
X' a' @/ r+ p7 \

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

7 z& [' G3 W8 q
5 a- A. \* o6 E% q2 @$ L" p
4 E3 S4 L1 S4 m+ [
! Y2 w0 [+ z* o5 K
( R9 }% C0 E2 _' c& p
! G9 y" G. t, h. c' `% i! P" H

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

( b T3 n% ?+ m9 f
& R9 z. Z$ e' t8 R
A Z w; U2 q2 B6 {

OD

; d& ~" n7 R& c
* ~( ?1 m: W% R+ z( v
, `9 e& a: E' O- q& D% k
举报/反馈
- I- r B {- E6 ^2 V- V [
- h6 `9 G# ~5 M0 g 4 I: K1 B# V; x . P8 D$ l* G! ^5 }9 b 2 l0 o4 t7 H% ~ F2 i! x% G) V+ S2 }- F9 _- [" H8 J1 x7 O/ x6 @
回复

举报 使用道具

相关帖子

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