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

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

[复制链接]
; H$ X: }, D- |2 c) S3 t
" Y; ~/ m2 m8 q# G X

作者:

! \, R$ N+ l) o7 e2 ?& h' y' b
C' w/ y* g2 J2 B1 G! p( [2 `
. V3 o+ k8 G! f+ M9 B8 z

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

5 z f/ x3 q( Y! \( N4 z' c
4 K) H+ o/ e. x- m# ]
, R( i2 [) J9 w& w

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

; c3 F' b1 \4 P7 m. c _$ @
d# W3 G w! t& l9 K5 i) _' |
7 @9 i0 z$ t& |& @+ e

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

& e' h9 u" I! M1 W! I3 _$ c( Q7 d
- X* H: c! s* h
# R M! ^1 u6 V3 P

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

6 E* E# Q$ L/ s$ [4 ]
* `5 ?: B, r0 t# l) `9 U
$ A* n# |" K: m) {5 Q& E

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

6 U5 F8 k. R$ _ T D
2 s$ C' i+ Z3 M. b7 I( \; e+ {
6 b3 Y2 A, d1 f; `. B5 J
$ t# I1 X$ O6 ?$ n4 W. L
* h3 d' L! c& h' L; g8 C$ t8 x
9 ?9 t, o( Z# R8 T

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

. @" ?5 Y. ` m, n* q
# m4 P7 H4 U4 V" o' G9 B8 H
1 Z* g1 w& t4 ~* q8 Z! n u. I* D

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

# N( s: |1 |9 c% A, w4 E
4 I6 k! }8 p. n1 ]1 g: A( U
3 C* v9 }) \9 v2 Q) `

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

6 }( D! [- ?; U7 ~" k/ E. U
$ X5 \( o5 k& I D. M
& |9 I8 l1 Y/ i, b

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

0 c' i' {& b' ~( b" r6 r
5 H: s$ g/ b/ p9 ?4 }
9 e! D- u5 Z: P% M% S
7 r5 K& V4 }% D* ]" P& R
, t! j+ l* m+ p Q! Z: {* c
% L( g# l/ g! H( d/ w/ ~

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

0 \7 j2 v! b' E8 c/ t
! V$ }3 F$ |8 c' V3 x
- F9 c1 x- S3 T! y: {

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

! l; A/ J5 S( R, E/ ]$ e C$ | d
6 H5 N( ^0 z' R4 ]4 ]! O; X: o
2 c, X; b- t) L$ C" {

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

$ _- R! E0 y% G" c7 ], k
- n* t* |9 r/ |
+ `* C+ p+ j B' _" }: O1 x
5 `* O2 \% E7 }5 r. A; K) M
+ p' ?7 h; ?9 s8 [2 q2 F, C
# f7 V6 L# Y0 v g; o2 _

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

6 n. l! w! j b7 ]
: Q5 Y3 [7 M" o) R
3 E- Q( D) I1 Y) v

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

9 L0 G& z" d5 d5 _) l. @ ?
8 \& U; i( c! O& G* Y
$ B, r4 |! j# L, O/ J
! R3 H$ ~% b0 o! {
2 B% L; G1 u+ X) v
+ q3 }: ?; f. ^* t$ @/ x

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

4 a* {* }; s* Y2 Z9 p. w
# w3 I* u+ h) h; J8 W
+ x0 e$ l3 i1 j( W6 s! \. Z

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

: k; T; P8 C/ t& a3 l3 ^' k
8 `% z: V7 h. e4 s$ q% t0 U
: Y& X- R! b }0 @0 |

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

; f( j; D$ M% R. L5 B% @! `
, X1 y% l" G- P, G9 F* [, ?
" n, K7 x+ s* Y% u/ v

激光雷达

5 X( \, x# N) R1 N, g2 _. {
8 W, B$ E7 g8 ~- x( j
$ e, I4 l( h5 P

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

7 d7 i& M# M$ L0 q: U) {$ S
! o5 _' \, h, j9 g/ _0 C8 O+ l, Q
' C# U9 O5 u: `* h P4 t

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

9 \! m( m( L3 F* E: z
& e. P( A- {' o
3 x S# H. k: e5 ]
3 I; X4 A7 {! e: [6 c) F4 S! ^
. }+ j+ |0 n+ g8 r
9 U! w: T. _7 K# ?1 s3 f: [

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

& Z9 Z, T' o' @8 f
+ M9 P! C8 o5 g2 C! }5 o
3 l9 C( l3 e: u: z+ E" ^7 n6 W

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

, L' ^0 y% W, r/ D, c" w" |. k
8 o; @# U: i( A: H9 d( D: U* `( B
( o, g6 Z1 r1 [: J. E) ]

视觉 SLAM

# I* v8 U$ s: A- q6 { A
# ^0 C3 J- Q3 {% k* O
) {# j& ]" K: T# p+ g4 b

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

/ U0 Z( c1 Y2 A& g) _
4 v& \$ E. W- I( P0 n( }) t s
( N- t" {8 h# Z1 y' i1 d

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

1 f, Y& x, c! V9 G/ r0 M
4 b' V% l, ]- S9 Y; O1 t! Q$ n
6 y$ z5 F3 |3 w

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

# j/ n) d+ w. ~/ _# I" z6 A
, T+ [" n4 M: i& u) K: X* x
. y, |# }4 a' A; ~- o

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

! F" N& i% B( n
* P& ?% B/ y( ^/ p
& y' |. o% t+ ]4 y E# R" B# S9 a
9 S' }8 B) \9 n6 w
4 z2 D: h+ N4 j2 _
8 @& I: z% l. O: b& R" f

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

9 h: b% R. V5 Z
# Q. y2 \1 L" a5 a) R: o- a
* _ X1 O# a8 i: D) k; z j

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

- L5 R, x$ l: W0 ]/ l+ z2 C8 w
+ t; P2 z% A$ r1 b
' ?1 t3 q5 Q' N. p8 C

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

' x! A) F# {$ ~" ]( U8 V) ^
) m9 }, ^- @ g. c1 T
: u, @* _, c( \6 S' n4 U' S7 `4 V

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

% x6 E+ {3 O( n9 @" T, p
& a# G2 I6 I+ [1 k [6 E* [ |
$ Y* i& [. ^2 E: b

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

# D% |0 H7 z( X# ]% x* w
) g6 g% J4 o+ p$ D# t% u. u
* h8 X4 s! P' I8 _. d
7 e8 R* b6 Y7 [/ {% h
q2 b" H' @& `2 h7 r8 D) D
5 D! O+ l2 {; \: S

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

* `9 y$ z* @5 z
: L; w. M- h5 y. \9 R7 z
, R/ c- L9 F0 U! {

OD

' }; r, U9 q: Z; f2 I+ A
1 _; f, a0 V- c
) V% q" y7 I; s/ Q& @
举报/反馈
2 L3 ~4 k2 c: L. v
4 }( U: A9 I$ s 6 N/ u v% ]0 o2 l. T+ v ' ^# r- T6 p3 a2 ~ 9 a! b. D+ d7 D2 q" T4 y* g2 c- y( M" Y
回复

举报 使用道具

相关帖子

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