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

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

[复制链接]
3 g# `! y3 n3 K J' A- h
6 M9 X% g3 v9 g$ T1 `; d0 G

作者:

' J0 @( Z, a+ ]3 Y% C" G/ P+ b% ^
) q+ j# O- y# f- I$ T1 X
7 [2 g9 G: P G5 ^$ x+ J% c

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

0 X% l5 X: @8 z7 c* [/ q ^3 q8 b8 P
4 e# N1 \# M5 q5 l9 J
8 Y' L( c7 i; |9 B7 V

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

6 E; w. Q4 L K0 k
% B& S* e; M9 v! R/ S" X
4 c/ I& R. A4 t& `& X- f+ K

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

' f/ a0 ~1 {* y3 o2 e( a
) ^. l Q0 {) J# I$ F
; m8 x/ V% M# Y

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

1 E8 [$ ?6 E" v
. H( t: |8 a) h4 k+ L5 {
7 ]4 w( O* n& Y% S

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

! `7 d4 n T7 g3 X
$ ]( Q* u1 R+ Y: I
$ A9 K( t: A* {8 V1 @
+ C$ A% d1 ?+ a
, N. d- ]$ m1 y+ |: g
b5 Z5 e% X% e. k* X& j6 L* u

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

; z' k- J4 Q/ u; h' h
* f% i# B/ k- ^% U' p' E8 |2 E6 z
# R" w( F6 ~" d7 [- T! b" B1 _% g' y& Z

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

) X- Y5 b5 o z/ R Q$ |. ~
5 }. H1 b4 E% N
* K: Z; S( c% r: Q5 x8 Z5 t

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

( C/ D5 p1 E& L$ L" z' r8 P/ R. W r
4 b' Y* C9 U% T# J* l; ?+ k3 H
' j! J1 U; x- p2 D5 ?0 C. l

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

4 T- A, U- q' k! G
9 `' I' B0 B7 H
& B) T/ X7 X; I
* `1 s' L4 `5 x2 B; \
5 d" Y5 p( X- X* V* A
/ U" f6 k! ]" `" H6 a* Z2 v

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

6 c6 y5 j, Y1 y4 C
6 A2 _' P: {/ c; v$ d+ q$ S% @
v7 i& ~1 V4 c0 R% r) g$ s

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

/ a7 m+ y2 \. T5 R. f7 I
- V+ F( w! R; _/ F+ p& |; I
: k4 j6 }9 C/ l, b+ H3 e

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

' l {" P% ^+ B7 {, [
8 A% s1 v8 F. I% |# W
8 ]" o, T$ B9 t. D: o; E6 X4 I0 I
* w4 X& `7 n: Z4 e0 Y" a+ Z& d) Q
" p3 R% y7 _6 H8 D8 N
* Q7 ] a/ D/ {2 W. N" y, _

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

6 r4 X( ?- p6 [ a% T; E
* B3 [6 C3 r5 b/ o% l) [3 {
( A6 {9 u2 C7 j$ C( C) N5 h& a

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

0 b* |: O$ w6 B; r
5 a! Z. q B) w* i7 W3 A! r
9 r" |5 _; ^, D7 J' x7 t
5 L* \. I) v& @# n5 \5 K! j
/ F' s% F/ a/ @* F: N; q- j+ H7 c3 _
( f* _9 ^6 Z1 V, y) E1 t9 c: u

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

" \# P" q! ^5 k$ {3 }
3 }2 t$ }$ x3 S8 U; L
3 A3 D M0 a7 @5 x) c4 |* }

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

5 D3 h8 O) T: F6 P. ^' ]* J7 i
7 T& f+ l: ]" \3 V
+ c9 a; G& D" g% e! Q0 Z# U

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

, G! j: ~7 H( R+ @
" \9 M+ u3 c, L- x, i9 N
, Z2 M, A2 T' c! x7 Y. B

激光雷达

; v5 _( C- C6 f, n) _4 G# V7 [6 J
) n* E+ L1 J/ e- U2 W9 L
9 [% a/ L* u6 f3 H5 w! T

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

% h$ R1 G3 s4 A' ?) I
" I9 M( |: y# N& B6 d9 L: d
+ o# \* u7 r o+ y1 c

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

( K- L; ], n. R) t) J; g0 e' g8 i
2 ]- H* G3 e: P2 v
3 ?5 ]2 v6 U6 W, d9 c
; Y, F. c7 ?( Q% U7 X: o
: @! z! d! ^$ y# Z, `2 z1 T. T& w
2 S$ G0 V9 X1 a8 R c6 r6 ~/ H

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

& T$ j* y5 }9 Z2 }' S3 e$ S
' [9 p; Q' S, V
# M2 l! ?% D4 h _2 s

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

* s$ u9 u9 E# D2 |
. _- s2 [6 s4 Q3 ^
4 V8 ]* F+ s# @; O

视觉 SLAM

: b8 j4 X5 [: f6 H6 _
$ x" K8 N ^2 T3 p
0 |+ v1 B8 z% N, k7 }, l( ^& I$ z

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

6 n2 i3 t! b. W
- K3 f4 D2 q0 y$ R7 {
3 f5 C: Z% q7 w- k

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

3 {- e6 k/ _2 ?
1 V$ M: w9 u- T6 d: N
* w h. u, Z; ?/ }5 m# @5 s6 P

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

( c4 T* [% U e7 Z m8 _' }' n
9 Y9 d4 m2 @6 [+ [
7 D" s7 v8 ]8 D8 D% A( b

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

- g0 ?( m( u% L# |, \
0 D* H3 E$ ?$ n& ?
; S/ A9 |: ]' ]7 i
$ Y2 W' N; s; W! G
% ]% ~3 t- c, @/ F# |
( y) Y* d8 D" ]+ r1 A

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

* C/ M9 ?- L' n& r& V
5 l/ r) n$ R2 x4 N6 f
8 r2 o3 p( S4 ^: `8 m

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

! ~- Z! O# e/ F% s+ B
# g! f8 r2 X* x; s1 v
" P2 J, L! Z1 k$ z

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

% [; l4 ]. a% H
0 u* ~* ]6 ~6 v$ ~0 k
' C% ^! s6 h% X7 H' o

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

! d$ Y- n$ U( k' ]
3 c j/ T# J! F8 {. Z# U
' _/ d j2 i0 A

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

6 F! z& M1 W9 x+ Z
7 w! `4 n# W& `: l! f
# U6 `% f8 w& B% f0 O# ?
1 s. J& s6 }0 _3 q- \
! |! f6 j7 k0 ^8 }- v
) w+ L! M8 W: W4 k( i4 Z

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

; ]8 N4 n/ p: M
; P- x ~4 c& b) c# M% H; `
% e7 y: h+ K) E9 X4 n

OD

! {3 U* i5 I: m" T6 ?4 C
8 N w: U6 y. t0 O3 w
?% g* N: J u4 E0 n3 Q
举报/反馈
7 P- |/ C* g7 K0 X5 H2 Y
( V+ m9 J/ t* x& P( m$ c) q7 B. m1 u! Y% Q- y * t+ z- x. \) P7 g0 c% |% V6 m+ M8 p N! U9 m 3 J' |) r3 b* E+ A
回复

举报 使用道具

相关帖子

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