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

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

[复制链接]
! p, k# u# w' l* G9 W# _& {/ u% G( r
! ]& m4 H h- T! E- v

作者:

, [$ i! \# ^5 T; l6 E% ^
4 Z+ I. a8 a& y) T; F9 B
1 M: K* N# O' H6 N* C8 F2 x) Q

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

, C' U" E- k. c7 V& c$ g" X' y ~
$ N2 L v x2 c( ~2 L5 L
+ e! ^# [% U4 z

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

6 l* i8 f: A: p8 M# B( I5 q6 C
+ _6 g) [: e. U; y- z$ k, ?4 q H
9 E- ~; l' K3 b. ]

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

; @% ^7 S+ C* W) ^6 M: e- z% \/ k$ i! @
) p5 W+ F* J, w5 ]6 S
" c7 T0 `7 d5 ~1 o

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

1 u% L3 [ A& A, g* O0 L
* K. K$ v! g Q8 Z: F, r
. f4 P6 O/ V# J7 k

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

" ]: f! k x$ | f+ T+ l
. S2 p% Q' O' S( Y$ c" ^
! Q" }3 b, g- _) O6 \6 z
3 M: k. o; t3 ]
( z) o* R/ c* G$ ^4 ^5 C
% {8 `9 t! V" q; p; f- A

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

( R7 X* V0 d7 M, W8 X2 Q6 j
/ g; Y+ ? X' i+ ]* ^$ v5 Q
' `2 n% D. {" U5 A

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

! j9 L% U/ l+ M5 h3 R" K9 ]# N8 \
; o, h" J p8 a' J8 o4 d! P
* Y* q. K' J" |/ [+ F

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

0 h& t( R5 M9 S, S; |0 N
5 @7 v8 s! y5 @- A4 X& t
) I+ S/ f, M2 Y) F7 ~

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

8 g, ]0 R* S* m+ H
' _2 ^4 M( J/ H2 y/ ]2 C
, G& }+ U+ W% |* c* [" m' @
( @& _/ M6 T: U' @! n# l
3 C/ F2 b) f+ t! b
5 R- T9 p2 A% g. x8 N" I

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

! f" Z% }, B. v& ~# V8 A
- S) h( k2 l7 j Y) l3 M. B" O
! K2 p5 w( X$ O8 @4 }

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

- C \' ~- ]2 A4 Q3 d
( ]( }; z$ }% D2 S9 K
- l6 r7 V, t. O5 i/ N6 N: l

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

4 Q: J( s- O, s- f* ]9 E" ^+ e5 b
9 z/ {( A m2 m) U3 K2 z& R
5 l$ o1 U' @$ A# a5 z: d8 G4 {5 P) e
7 ]; F% G" p" v) b2 \
7 s+ U. l& f' B7 s6 x
2 @5 _) t) V3 [& t

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

- T* H, N1 P- c' j/ ?7 j5 V
' s, Z5 J1 X8 q; G
9 {+ u3 G8 t; u- |9 E0 @

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

, n0 _7 I; H4 I6 [; Y! }; x
9 a' g" S l+ k; L) q# h
0 k- k. z: x& w0 L, P5 `
) Q% M) Y) f; |& J" t
5 x! _# p8 Z9 V% V) X' R( c
( x8 o$ I$ e( R. j9 w4 T

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

3 `( l0 k% A8 y' H0 Q& B
( w5 `1 c) y+ h+ v" z
; C7 M6 s: S; Y' B9 j' w( m& x

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

$ i8 T* J7 X; i+ X I7 w
7 O% J( E& m0 `7 C
" y8 ^ w+ h$ @! O( r9 u0 h# c

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

) E! F, V& ^# q$ Y6 ?8 d
7 `- z8 z* [& ~, j% ^6 s$ l
4 S2 I" n2 v" r% n: H3 Z

激光雷达

8 h d# j& g Z; d6 G: f5 t* q
: m0 K4 i4 k2 f" H" m. ?
9 L& [, V& P& h) ]0 C

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

) O+ F$ {3 E4 h+ q8 ]8 W/ V9 u
9 A& Q( i# T# c* {
4 p$ c' c" k! O3 k

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

% L& X) F1 U o p7 B' {
9 T5 a2 t7 p6 k. C- \
+ _8 H) _' {, I+ y5 a; y
3 k! o @ r3 V8 r, B
$ X+ z& H& r9 X6 U# v. u
- S r7 _- w7 y& d2 Y* ]: u9 J

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

! a/ N* m( B$ c8 w1 t- k v
. z8 P7 M5 o9 }4 M8 u3 [$ F
* Q9 f- J9 z6 X3 @6 i1 Y

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

, @( z& ~) d6 Z8 y. d, h. T3 x
( O% n5 T z* z# w
! s: ]! `8 E5 Q5 u4 E2 e6 h

视觉 SLAM

" ~2 G( i' I" m$ O z; w
+ P) k2 @- u" L) d9 _1 T4 X
) C: @& \' g0 u( o. y! n- I

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

) Y6 t; }( b M8 T0 I0 D
$ R# I# T/ l* O" {8 i; p& R
- ?1 w6 Z$ g2 B2 J" N6 N

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

7 s# f! L) M* [2 V' X9 w4 z L% F
3 p+ U. H D9 E p& I. L* S- @/ B
5 b8 |2 t% }' X1 S) |5 B: r7 p

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

, I$ ~: t7 Z% Z1 U( n
! s4 w$ ^( h2 A, N: `& q
1 v9 ~7 ]9 h8 W9 k, g

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

/ i' ]0 Y T" j! a7 z
i/ b9 H. q0 J, \
: G6 D- b8 Y; q4 e$ F
X Z' m2 Y& q9 j# R+ ]
' K, B4 r) M, d# I/ R
* E# |4 V: @1 |, ]

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

" E% f' f! q# J
7 d7 A7 \3 D1 b& Z
( J3 H6 A6 O0 u5 E2 | S6 l" d

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

0 l. N3 s% {0 _
' X$ V" _6 ?9 R+ ?/ q2 g! I5 E. V
6 B3 u) v' }. q

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

! t6 m e' e: B- m, @+ Z ]
( d+ h: _7 V3 A- f
/ a! T5 a) l+ \$ |7 z, |

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

- E7 @/ W, E0 Z+ x4 N3 l) V
1 ?, }* ]! k1 j$ n8 _8 l
+ n$ i" O; i& R. ?+ O9 O

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

0 p% h, a" ?. q& X9 `8 z: ^
1 D2 q+ o2 D. Y" Z7 ^7 m
5 |2 D; r7 X1 D. h* r
' A; A2 \1 N: `2 @
6 n1 e# @5 [0 A4 m% S
. c+ D. O; f: y3 h; e/ ^- ^

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

; d1 H3 Y* @# h; c# f# V* [
, M6 S! H/ Q8 h
. ~3 r/ s6 S1 l' `

OD

4 c* H/ L! y( b, |7 d3 D
9 h; h; q' }7 r' g, G1 S0 O
& T) l# f: w# j# y7 I2 e& \
举报/反馈
# d1 N/ X a. _
! V, M$ C/ g- `7 H 9 P/ I( H" A3 }* J: q, J o2 K' ]* U, N- b# z' T+ _6 t - Q/ X0 a* M# B8 P% D; w 0 }6 x4 D J/ R# I% r
回复

举报 使用道具

相关帖子

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