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

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

[复制链接]
0 o# K% f8 G8 q7 R! V& p
) H0 e3 U. U& k5 E4 o2 x) b

作者:

" d' [* \! O# n, r
$ Z: W0 a1 v. S* G6 F6 I
4 ?0 W) U2 N$ y- g+ s

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

0 Q/ c \: U O: J
+ |4 |5 ~/ O' y S) z
$ {- U7 A/ c& K! t* {

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

4 [+ i5 E- n) X& H; {3 C2 K
$ H; b2 Q- c. H2 L& z+ u
5 l' J8 _7 l1 N, v+ s

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

: F W" e3 Z# _ g( n/ v
- @1 U# d1 R1 G* O1 N& Y0 |3 A
2 y" i& g% v$ q

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

2 ?7 ~* A; U1 ~' T) }( F
/ \: y3 e% c- p0 t
/ w, L5 S, y; V

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

5 z# Q( k6 s- Q9 o5 I" b
_; `2 v7 v* q9 l7 {" F
* I% X3 |! }5 k/ T
9 t( Q# J: t$ S" D) \7 x: J
5 M: A) ^- L$ e2 z- z5 ?( A
B0 l1 H- O1 R# P! ]8 f4 Y; S6 T

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

4 q9 C f$ ^4 S5 R* C0 C
: F; ?; e" H% s$ w; n( ^( h8 G
* v5 R) p. M6 z7 B' S6 h) Y2 `! [

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

/ q. v, Z7 o' G+ g' g6 b0 T
& ]1 o- _5 U8 Y( Z9 ?! Z- }9 B! `
; i! C! X7 y2 l1 N) d+ X& I# C

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

: a. I, W7 [* b
: L, W A$ N* r9 B3 t
) N" x* v# P. y M% q7 [, g) V

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

) i7 [7 q" I9 e& i; n: d) {
% ^* W- a& k( Z. O. Q# H
; X0 [& b' [% C
+ u( i/ |8 E' ]) J! j7 n
( i6 n" Z; Z0 w+ E- p4 m
8 }: e# z, [' A+ u0 E/ L

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

1 b, S2 ^6 {' ?. a% }8 B6 ^
" U5 ^! I6 @! |8 M9 L+ U* M
1 U* e, Y* t, y: ^+ L

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

Z/ V0 k4 S$ ~# _8 j2 t- }
, m; G8 T% B% Z& [% s
* ~0 s T4 V- v& q/ p

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

4 C4 u! |' Y y! j: O) F+ @' s
* O; L) }1 B. U z6 \
9 N4 T& t' u7 d. C2 Z$ \
: q" N% b: e7 F: p( a
% R; `3 G5 g4 J3 y) h( L; z
. R3 K( F) s+ |

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

5 }- ]" U- a/ ?2 u6 |
+ I3 g% n4 R5 Q$ v6 M
6 @6 L$ T7 d/ S) E, Z0 U2 }

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

1 S) B+ Z1 b7 n
, [* d% M, s- d4 l. h U9 Z9 p0 M
1 X& V1 u. ~: K* X
: j; _! K/ n, h) Q/ G+ h4 i
9 \" M5 U# ~2 Q0 V& H7 m9 p1 x
0 n, L9 H7 L2 h; v" F9 m

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

& D- V0 s4 ^+ U: B) A; Y& l; Z2 t
! {/ j, {6 T& U" d2 O5 s4 d
, R5 C1 o8 d# g t

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

1 ^& g( V, y7 y0 H+ e. |
: y; k" k' w* m
3 }, |! \/ Z# A3 [- j" C

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

7 s1 V& y o- |4 v2 M* Y
# [/ h2 X) n1 y3 e6 p2 J1 H
6 w5 V* D2 p. G9 {. T

激光雷达

. S2 j8 A* ]- l/ `9 T
' x1 J3 W6 t7 V9 [
8 p6 `% v4 ]1 n9 A6 b% l. b, {

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

2 R, C8 Z& O [$ @7 N+ Z
6 z8 V0 b9 x% C: H+ A# n7 M
6 o3 m2 t$ M' D, G9 @; N$ k% B' U# X

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

5 N4 u; |) V: j$ G7 z2 w- G" A9 q
y: [& `& L8 M/ Q0 A! g
6 T& p, N+ j( e G p C2 I
3 E" m, w2 f3 K0 x) [- u
' d; `7 l5 a. ^
8 ]6 z7 u, D0 I0 J Q2 s1 o

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

( |6 \/ u2 M3 t7 b) o2 @% {; z
6 }3 ~5 w8 ^7 x% q$ L9 s a
# l9 N1 S" l" R3 C! ~

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

3 A% R. H g- q& n
- l3 t' V0 O6 Z3 I% h
; c8 Q' U" v: `# E! A; x; {

视觉 SLAM

( h& b5 h; u* C; Q3 z+ F
" W( {/ d+ ~/ ?! ~
$ H: k/ O% u C5 X. M( W U, P

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

1 d9 H7 b6 M" { W1 k% u# F% l% ?$ E& a
! u5 @7 W$ Y& @# ~1 z
; ^ w8 R! R& u k+ A) o

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

4 o! q0 v% K9 D: b2 m
4 m+ @" z! h& p
: O% ~% g6 P0 F! M3 J4 w

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

; b9 Y6 ?6 l) P1 @
( A M, g* Z, N
, z( ^) ]- @1 t* E' L! b

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

+ k& `& X- H; K2 y+ L$ I
* x' R, @, k8 A
8 O) u7 p& _3 |
& |" T) ?4 g |9 K' @' _: j2 t
9 E4 m; Z% M, C
. S8 T/ {9 b- L0 K

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

( P0 C0 v+ T8 m8 w' Z4 v
. M3 K# y* V! o0 G3 v. E" ]1 M
0 | b( h' e( V

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

3 s8 `9 f6 @ Z8 @1 N
' I/ L$ T+ x! F/ d( {* Z
: u, z1 e0 x3 B

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

6 `) a. Y' G0 [: r2 S% k
) k" h6 ]4 c% y% \
" G% ?3 a0 \6 A

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

; k" X" `( i3 a) p
( M. |. s# H2 V Q
+ B0 K* L( S8 x1 T

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

: r' Y6 R6 x E; x1 n4 C: W3 f
+ y, }+ v2 u0 c6 X8 l
/ r, g1 L8 \! }# f* j4 {
1 S3 S( j+ K3 ]+ K- E: C/ F8 \
7 D/ J. e$ L U, N5 D
" ^0 e% S L6 G' R

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

9 B! {/ z+ T# r4 |1 O: ]2 M) c8 C( ^
0 _1 l# z$ _& z) n) J2 }
! D8 R; l# y( ~( M

OD

, x5 t, y4 E- @% J6 p' N
: e$ c O O3 Y
, J6 s2 O5 }) O; O2 _
举报/反馈
) p7 U6 |3 x& d6 O1 @
" c$ ^# B0 \) O( J' m4 b: \. F % L0 e' s! f' X4 e ; _9 @' u0 d+ `, ` " I+ c; v4 B8 {& _9 A6 V0 u2 Q0 F) I( N2 O% ]
回复

举报 使用道具

相关帖子

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