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

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

[复制链接]
- W" G! S2 G7 g$ z
. B l- h" d% x% `

作者:

& L0 d* J; C- W( a
% I: x, X- J) Z" A; p4 n! e6 X5 K6 l
m* R& d% z3 u8 b+ y

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

' Z: E+ R; g4 R$ d! @
8 V9 R9 Q9 C) Q3 l; J
- E7 P N! g" W+ p

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

; Q3 j; O" a. c, c+ f- G
7 f$ w) ^$ k, D- k
6 V6 s& F$ w0 R, `. |2 Z p1 `1 b) P" I

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

& ^/ f: r/ t9 W5 E& J" ^) q% K
% D8 M; H F9 d# n4 d( C- A9 f
! _! R6 c8 |0 r4 ~

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

2 p' ?0 u9 o" p+ t
% G# d y3 C6 b+ u+ u
, V$ @4 g o0 z( o8 Z

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

1 ^: @- b3 P& N* B; f
& l1 O( v3 G$ [: I% @+ ]. |
! P2 ~; d4 z9 M) O4 C" F, c
2 w8 _0 b. L4 e b0 ~: b
% E0 n" @% x: |$ d4 t# _( t
" S# s2 K2 P i( Y) f

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

+ _3 r+ P) t" k; `7 o3 e
; \% R" Z7 Z p7 R, b7 X7 _2 V3 P
2 Z! P r' Q, a$ F) R! \

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

0 {' o" U6 I+ k- Z2 S3 V6 Q& z$ b/ i
. ]& }: t" b5 B2 W; F1 r4 n5 Q
; W3 d h: x/ C1 M, V2 l

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

1 ?. O4 _8 E0 P" @# S" L
/ _3 J3 l) g8 Z
7 ]9 n2 J* K8 C1 o8 g* j

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

$ M2 {4 K6 J, g2 p) a+ i
& k! v, C$ H k# O5 j( c# O% Y% Q* J
0 ^# a, W' K( `0 H7 w' v& _
7 V8 p d% T: Y( Q( u# m
" r4 E @" O: O5 Q0 z+ c
( x7 T% k, ^8 k! [: Z, q0 h; C

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

- E( k6 T' J9 y+ s- I f! \
) z5 s, F! C- k" {. g
5 `4 u& N( K+ x- G! r4 }# B

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

2 l0 J4 e. e {$ H7 _/ e
+ {& [$ H# S4 c' t$ R; H! [ I
6 Y- v( V( o0 E9 n3 S/ I" y3 g/ }. \/ p

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

- x: w# ~$ J$ O/ N9 L
4 a# _ Q3 A# C& R* M
. K/ e1 p- c( f* A2 R2 x+ d" T
* o. f: g$ k% B( W( X8 H
# i0 z2 `7 `9 a
1 O, t a4 o; }9 [5 D

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

" o& w# i# ^% |9 D$ V" m
% q' `7 Y6 O4 _* \: u
- x% L6 y% o' j8 a) {) N

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

( ?- j w* X& q! v4 r
) e$ U' D6 [! h# l4 w7 a- A$ H7 K
6 C0 }! y A$ @/ z, h' D+ @( ]
- |- V! I4 ^6 Q- t- p
" B5 d+ g% ]5 ~. n3 v
. h+ [6 C% g% y: j- b8 N; l

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

: H+ `: g. U2 y; G, I
9 ]3 Y+ C3 q$ F9 i, A. q- r
]7 n5 u1 q" c5 T& n

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

) Y; k; r, e- y
; {* ]/ d; {$ T% S3 ? ?1 `
. d# \: G$ F" Q, n

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

; s6 M5 e) j+ e
1 _& K* ?, o B$ b9 m3 J
; i' F8 O" Q) L C, L3 X- F

激光雷达

y' O; V. V4 T2 a( ?
9 |& _' f/ w- r5 P4 o
0 s0 V/ Z: o6 B6 j; c

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

4 g! H3 M. b. U& o
) y$ o) h x; `7 S- H& \
/ `5 n2 C2 F+ Y+ w$ m" T

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

' g9 u7 l3 U& |" T
. q7 ^5 U) Z) B. d. r2 h* w
: w9 [! w* F$ h* z2 p
( O$ Z) ~/ K) s3 D$ K _! _, Q
+ I; v, i5 T/ ^; ~$ q. h1 h
. P3 \9 i- Q! c. N% y5 h$ O. T

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

2 e6 ^9 s5 {% a8 d$ ~( K# F
7 y& X: R9 }2 O2 R" a y; x S
, L2 t- x3 t2 T6 c, \

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

3 p, I3 C+ }2 x _# R3 m+ U
' T- Y( P7 j! ]) Q, ? C; N
- D7 E# b; }/ m V9 v. _

视觉 SLAM

/ p/ V, A4 h: l* A
0 ? y* @6 |+ i k* b, S
% h8 @1 i( b. N/ H5 T; F

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

' _ P. t0 L+ N
6 S- }# a* k' _7 G. h [6 C9 E
% y- c+ J2 S1 r/ B

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

: n6 l$ e" U7 G" @2 Q
m9 E6 G$ A- b d B4 j# R
' Z; n; V& u# P; m

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

+ [7 E& \% v5 i p' |) E
; q% J1 M! o, q' W
8 Q6 `2 m$ A$ f5 t" a2 Y

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

* T. `5 Y! s7 L, o& ~
. o) S# F* Y9 v: W9 }2 |5 Z
! \9 x0 `; i( X% J1 s6 N: f: w
7 h$ ]% }2 O0 u9 \) ^
' a! e2 Q( g0 f0 L8 B5 n
, a4 I) X* O7 b5 ~0 u2 Z. _2 a

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

8 f0 c: J# h8 Q+ L% S" b
, m" ~* Y0 q2 [2 a8 d3 C
- S1 m* R! R6 s _2 L0 _

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

$ {7 N4 i. P, j- {8 m' J6 j- q
) Z8 t, x0 G* d) B1 d
4 x. t; A3 h7 Y; M, d5 ^

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

: X2 w0 X2 Y( H% e
. Z' ?4 F- Q: {) L( f2 o- f
9 i" D$ k! n9 k* ]1 t

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

# T8 `& j" q0 h' F
& W# O; x$ {8 R. V" R( o
/ T8 S R8 p ]3 `* g

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

; m' T, g7 P5 l9 ?4 ~1 ]$ l
) d h& W; c2 u9 n& L2 p/ l* O
, _: v" X: p# x( u( A( a
# | ] h% S8 d) n- [8 `2 n
) w6 @. _, k; N. b
F0 q1 l8 c. A$ t4 U

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

! f0 C! }9 G6 l( I
/ @1 ~) b- Q9 N% E7 C+ v# ]! [. h
& B( A* o8 E" V$ H

OD

: V( C7 Y+ M3 d' k6 q
4 O" }' x6 ~+ B: X1 N! y" ]4 Z
5 i9 `# |# @7 _0 t6 g& c2 U; R7 k
举报/反馈
# S* v! s: _# h6 g4 C
8 r5 ~! c0 l6 K/ e& Z! [7 ^) N; A4 z4 w& [% z U 2 ~4 x1 {( S& R$ b) j) O1 f 8 _8 Y; J s8 t7 a% l! [( K7 O% a# X2 g2 O6 D6 x! d
回复

举报 使用道具

相关帖子

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