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

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

[复制链接]
/ r' f7 M) y& J8 U
) o4 y1 E3 r8 j* o! V+ x/ O7 I+ z

作者:

- m/ d* m0 i; Z8 l! R7 q4 f1 y
0 J; j5 F0 d1 z, S t
- Z1 T8 t9 S' P8 P) z h9 `9 @

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

4 B! Y, r: Y% m$ z/ X; S3 V
. r9 b/ } V6 \' G1 f7 A" [$ `
# {. x6 z, O f1 V

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

9 T3 m# _. t8 f, }7 P' Y
1 z, [& o( r/ a+ D# z
: U* I0 {4 w, x. W' C

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

1 v+ b8 v* n8 a, `: t) u
# X0 h# F8 O7 [4 R& b1 M/ C/ G
6 n: B( `4 g& H, G( c

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

! Y- u" u8 M+ D; h7 _
% s3 l/ R* a2 f! J
+ H3 ?! `) Y/ |+ U# | i2 Z% ^

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

8 I# y7 g; I& k) E# r
1 V. s9 F4 {6 ?9 g- a6 h
2 d @* V: G! X" ~
: D; Z" [- P5 u: F8 Z
% P& i4 c+ a7 `! K7 u
0 c% ~4 B2 v, s

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

/ G& S0 z3 b) ~; f/ C
+ F! C$ F) W N( [5 o6 z
8 K0 j' S: D @+ T

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

5 i. D2 U- B5 K4 A
% }8 G6 }; M: V* D; q0 u% V' [; r
, ?0 \7 _' u9 Q

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

6 T! O$ b9 W9 |, O' g: y. O
" d6 i1 ^0 o9 E8 k7 `3 _
6 e s% H; g5 P/ Q) U2 R

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

# ]4 j3 g* y5 D+ V) w" |3 h' W4 m
4 E% P. S8 ^0 R
/ @8 S) t* c8 d) W
6 K" ~6 _0 C. |# m
7 G( F7 a' ~6 S4 R! \
1 O5 h" j- U: d8 k

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

7 n n' a; v. l' E. c+ K: M8 G' r
5 B9 t; e$ y% K
S4 k" D2 P" f2 L% e- C2 `; y D

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

$ {& T* |2 p! _$ Q
; c" B, ?( D) c% s
$ {* Z0 h" m. d

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

: l% `; G: A. c, U7 I# ^
0 w) P: Q; X( y
7 d7 O7 Z5 [% X9 A) y. u5 \. n1 @
4 m+ } w* G* a' Z
# K' e- \9 s7 s4 i/ i1 G3 c3 p0 V/ ?
8 h }* S7 Q v9 A' O9 ?3 C0 r

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

" \/ B; m% r: h9 t4 R. J# U% {
% t& q% U1 o% S8 p# u; n. S+ E2 v
: N% p3 a% K' G% Z

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

- X% ]/ c4 `. V# ^3 g/ \/ z
, S; S4 p: c* U5 `0 W
) H* ?7 Y4 `9 M# l% Y4 O1 i7 c
7 c* D3 a2 u4 b s& K
4 h+ \: a$ t. R+ r$ x- w
3 G3 }8 a* B# x

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

, k6 Y; @+ j6 s9 u
# _. ^& a% x; o/ E- F
" e) i8 _' b$ E$ s5 W" r' a

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

+ w h- D' n2 a) v$ ]& W: ^
6 h' `8 [2 g0 G$ X) U
1 j+ ~+ _- \( l0 ?0 b

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

2 p( u: g8 R: K2 O$ `
. ?* j( f1 \% l6 {8 A0 D0 f) _
; `) F) ?- ]" k/ B) x1 U/ z( {" e

激光雷达

7 _' k8 q0 S; Z/ I6 [) V' u* h
$ q4 [/ N& o9 H! v
* ]7 J6 D' q$ A8 K. ]( d1 t

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

/ s3 |- a5 Q! b; m3 H+ E% U$ v1 b
! F, ]( y) z3 X Q5 @' E
{% w5 b, V; H2 S" F, L0 z9 O% q1 `

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

! l, [& C1 ~( @3 E/ B6 g
6 \1 c+ L9 b/ Z T3 J, l& c
" l. D- [# e9 w- u
/ |7 l( c& R/ z! b! C
( T+ b! t: a% N) O: H: Z1 D
7 r) C8 P( G4 P4 I

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

1 F6 I7 J# R. j
. Y! E5 }2 x. }$ R ]8 D* w
, ~! \# K3 X$ k+ G: Y% x+ S

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

8 X0 p' B- ]9 f# s' a7 b/ ~
; X+ T3 H! m1 B! H2 Z1 F
! h- e' z2 c8 v- B4 N: q

视觉 SLAM

' W5 Z# g; b9 z9 i# H
! |% p- m g. B# a* v4 @
& c7 r y) M3 }1 B

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

7 A6 X3 o8 m9 B7 x! s# }
' D# f+ O5 M; g# j/ K; o* ?7 o
" m. t: g a- ]% u- A8 {

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

4 x9 t7 Y( a# J8 y4 Z( D
9 S0 `. k3 }5 v. t- \7 H+ v3 G6 P
" k, l8 r; g# r& p+ ?! N7 j

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

2 \3 j D& W$ Z7 L1 A% {5 O
& u! d" ^; }) J# i+ U# J
( x: X9 H# }# j. A' P: Z6 H) l

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

9 A$ s+ {( L: U2 S8 Q
, i# _9 L/ M; B
& I/ F5 S( H# Z9 d D. u
; ` E. \' w$ N, \
2 }; ~1 d4 Y) P9 [$ V& _* D7 l
/ B2 R* m$ U7 Y1 B3 N

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

0 O+ q4 D; E5 g" L! i
+ k: C& g4 l% b% B3 {
3 q" q+ N4 ]+ l" s

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

) Z$ o: B' c) Y# o6 N
5 E' E/ f; v* C! b6 @
7 J0 ^" n5 D7 J1 Z& K) l% X3 J2 W

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

5 b3 w. K) |* E$ u0 e$ Y
, j! P( ?1 R. C P% k' }6 q: x
& s' F6 e1 `) Y$ w9 v, T

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

$ a5 J l$ ?9 v# l; b) r$ T5 U3 Y
! _6 c0 G) w4 I1 Z7 |$ R' _
0 Z! {3 x$ z8 e2 F

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

! q# O6 O3 I8 B# t m
- Z1 z( V+ N. c/ k- r, v
" n, x0 ]5 C; s. z8 P0 t2 d! Q# y
" M) f( Z& Z1 H$ N. h
0 r' B' n' c- f4 \
# X. g. T/ |9 g4 p4 g

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

4 k U( l6 c% {: ?
$ b& W0 e( V u, ~
! q* O4 Q+ o' C3 p

OD

, L& @8 Q" Y$ J, K5 B" i
: N* K9 E$ n7 `+ @. z' P
9 ?1 i( g2 f" a. T5 w3 L
举报/反馈
9 E' K T+ S8 v; [9 ?6 Y
( J; Z; x3 m( t8 @+ j) E7 H1 R/ |* M9 C' _9 E/ V& F % ^# z# C/ I- o7 m3 X . k2 {, u$ f* \5 [# m : B( e" Q2 q8 ~6 [
回复

举报 使用道具

相关帖子

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