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

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

[复制链接]
: \4 W4 k; o" y! L3 b1 a
D" K! @5 f# @$ H, p

作者:

& c* a' z, h/ C. R! o9 b' q
/ V: O) G& G6 ]+ c1 s
9 H! e/ G# M4 c

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

# I; s1 z7 k3 H9 J. w1 h
! p+ I5 p+ J E/ G2 |. H3 J9 j- K
* n# P! e. B$ Q# w' C) t

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

/ a* O5 M- f1 S' s- b
3 h) M- w+ h/ `. w7 @1 {
3 d& y' a, Q, r, @5 K% t

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

! q$ N% F- `4 H6 X. ]
3 U0 F& q+ ~6 f
. P. K5 N. k+ x* W# u0 r: s

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

% I4 q( x4 u/ v' H. L
3 A9 ]7 K& W! n! l+ h
4 {% L& ]9 N. f x

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

2 W* j; \. ]* [, B% |
, b r& z4 T% D( O3 y+ V1 w
M" ?- s! O! b5 C/ Z5 B' o" p
) l- N7 r3 S$ q/ g& j1 D
5 Y$ _( W! T/ t9 y
! {$ Z& p6 [/ O8 y" U

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

3 w& M( d1 a: P7 O* {. i2 X
: ^3 N5 a u. @6 Y/ q1 I) {
0 k6 I: z, ?5 W3 ~

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

& w' N& J+ o& K, w
& }, M; o9 a0 d- x' F
4 C- B, h8 d1 X6 C9 J

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

3 G. Y. N3 |' g# i' E
5 g+ X& Y4 I0 X" _1 s2 A4 O- i- n
& w- F; X, E0 f4 I5 }, _" B

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

6 f8 a; P" }2 W3 e' j( l
_: x( e0 Z1 H& [5 r( W0 N% @
/ }1 d9 Z5 k% q8 c- P; _
: x0 g% S* ~3 s# q: i
2 C+ }4 d$ m% y4 R$ p% D+ B) M
& M0 H% F# {/ r7 {, r% ^

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

% S; u- W [, I/ M( g0 M0 u
: H' B/ ^: K# U% V* h) ~. u) Z! v
0 a2 c& ~: b5 W8 i( u/ r# j$ R

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

! q, K; l% X6 h
$ J0 {, q7 ?& O+ b: x Q6 b
3 _. [2 o @# F

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

4 m- W" }" D1 `$ W/ J
; }' |2 k# _) f! T+ _: k7 N* |
2 @+ ?: T% q" I: J# W; ?
' B; E' P) E& E
% e" O3 d' d6 _" W* k ~
/ U4 ], O: q6 M

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

" m- ^$ W* x( Y" z# g
% T/ s2 H" G a5 K6 e7 f8 A
" o; L& s4 w# B. Z8 G

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

' y) f* _1 A% _: q$ c
2 N6 j7 P y7 w5 b& R
% G$ x' _) }2 h8 P5 [/ V; ^$ E
7 w, I9 e0 N7 [
$ R' t4 ]6 Q! i
! V. m5 \1 U% r! i0 Y5 X9 [

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

8 I/ A8 O; P6 p a3 D$ p1 b8 J- ~
I' D7 u" ]* r2 n
0 E. k, g" Z" v# C

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

0 m Q% S$ q$ e2 J4 w
# C( z, q% F/ ~0 e6 [( ^7 s
. \5 @# x h4 N: R0 O7 {

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

1 y# K1 B z* Q: ]+ O5 I
6 I. g8 Z# c3 x& x- {8 `3 S
) s1 R5 s' t$ j

激光雷达

! K$ ~3 E6 q/ G) }+ }" R
. A+ z+ ^; x. t( N! \
4 a, K$ q. s7 {0 n$ p% W4 A

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

1 u+ Y: e( S8 c% O/ U9 Z4 t6 C
# o& a. a* q6 I" Y% |
( D5 d+ O% f6 _- j# ?9 B. z

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

8 H4 Z; {, x1 b2 G$ e* _+ K5 ^
% k/ h# F" @- X4 u9 X: P: e- K
3 g" s4 } [, A% R
( y4 K5 T5 m# c. |$ t
' y! o# a7 P- X
6 N6 }, a' j' z0 P" M% B$ F

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

+ k$ U/ p: r( t5 M/ L8 R
) N$ Q7 ~( }7 R
7 H2 O( A2 q6 i# }2 v

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

% Q/ U/ v* C& V$ z5 h' S
. y' I0 K% [" c
+ ]$ n- V2 d' m: K+ Y

视觉 SLAM

3 t( F: i, f+ l! \9 N4 x
2 A) b( Q& ~, G8 ]% P( i; w
8 B2 Y' U( z0 I) u- F* c0 D/ r

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

' f; }0 r7 y1 m, z9 c" ?
6 I6 B8 `& k8 S( |% o
$ R3 _4 v* Z2 D- ~6 h+ B

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

: {6 e7 {* t* J( l, F& f/ q
, m9 @) r$ X& m3 S
; i1 B, S( i. q1 o. G

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

) }; ^, B6 @% T
. C( w! J9 Z7 G$ ]% }# u
) s1 \2 E4 q% h! X- |; ~7 D, k

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

9 P1 U( O! s* N6 m3 c$ U
' o- n" B3 G( d' m
. e6 G4 j/ o# b* ^. x
& y6 p, {5 t5 t" b
: n4 V* h3 b m2 x9 D7 k, U
5 Y7 T/ {& X. U4 H; t9 U' C

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

' f, `2 G. U* C w% y: o
- {; e& v0 e# Y: O( \& d
8 e* K5 `; A+ d7 c' R

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

, F# r. [# y: W5 r
) B* ^+ Z [5 j6 c1 ~3 e! X
; `$ V. u* B- ^/ j9 `8 A+ U

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

* N& U v: i+ |
) |5 i! g0 V |5 ~
9 Q# V2 U" L6 J( Y* y

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

/ f. I# K. r& L4 y2 n d1 C
, i# L; G6 C) L, L' z
/ c4 l1 C* \; Z6 p& o

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

" X. w* t" B. _) H( Z, y
+ l1 E: z# w+ C. }" z$ Z2 C) x
/ T. I3 ?) `5 q$ W
6 x: ]1 V) v6 M1 B- s
) [ p) q' H2 T( d7 x
" G/ \" w. R( h7 {6 \ n5 Y. ]: s

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

$ R8 @% d9 h/ D$ c3 g! y5 s3 V V8 s
' u' D0 l$ x; d* d
9 u" K" d8 x4 o" P

OD

) p! j# m6 }) q1 h0 ]
8 {0 @% }$ q: t) _
& T' {! M p$ `8 o% A4 n6 j
举报/反馈
$ r! A; J5 ^! E9 P; A
4 g5 A N7 D% s# |, [+ m. m # Q' o: {, M* b: v' k- z8 b 8 ~% S2 Q. F& I2 @) S) K m* n& ~$ e2 F8 d1 { - X& G t2 u, U1 @1 Y7 P+ x
回复

举报 使用道具

相关帖子

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