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

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

[复制链接]
9 s- J/ r2 Z @5 [+ z- m- q
2 U1 p1 [+ J% G7 ~; g( \+ c

作者:

9 J; q7 Z R' R4 m2 _0 D2 ?
4 b {2 G, b/ q# S9 X0 C- |$ O
1 |( q3 r* a6 S5 K% o6 u4 U

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

2 G& y0 g. ` N/ z4 E# B+ W
; Z7 i5 p2 e$ d
3 |6 F' u- `* ^( _( p5 Q' z T$ h

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

$ x1 Y; ~. o: j9 x
2 i7 Q/ }" ?2 b9 Y5 B0 w
. ]! W* ^9 Q- z. W6 `% p3 E) D

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

5 ?" \3 r* R) M! F6 e) l
- ?3 ]+ H6 P6 H+ m G
, y0 K2 ~9 O0 R: l2 ~

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

# R; ?/ h6 C$ R, w3 u, O* r
) }! _6 R6 G( K% ~6 e
7 K' [0 _9 k# c7 H- u4 t" A

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

1 h$ p8 H: }, y' Z, Q! @3 x# t* X
* j% g8 ?# l8 ~$ [7 O0 j( j: ]
% H8 N; X4 o6 t/ _
' H2 g! \. h- S3 a
4 G6 |" A4 x4 M7 Y4 z- h$ X
4 d/ H4 u2 ?/ Y7 V ^) T# ~" `3 M

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

6 ^, `4 X3 s( X: \2 R
8 ^0 O& }" \, f4 e7 X
+ o" K3 T) p5 Z" V

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

7 L7 w+ \. j D A, w
0 [# h! f7 \& o( t' R7 g
) {; L; Q2 P: v

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

5 v2 {1 v9 p [- j4 T9 b: x5 {, U
" r; X( B/ H8 W' l
b* V& R/ j$ f0 B& k

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

0 [5 W7 `7 b9 Z+ g m; k, p8 K
' f b# y, K6 h2 i0 ]9 ?3 O+ F
& M: }* I6 O0 C2 t% \
0 ^ {7 w6 P: ~1 s. O
: `) r5 y7 G0 P1 d1 N
" n! z. p$ F# W' }5 O

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

3 m, g2 h7 |1 D1 W) ]% ]) ^" m+ n
" s) ]; M O3 o" o2 _" _+ O, v/ z
; U h& b; M1 A6 ?- c. {- {% {; ?4 T

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

7 h* r: q8 F2 N7 h7 [
. G+ [1 |/ ]0 q6 e& X* S
; D8 h4 _8 O# q

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

1 J9 q6 N& M0 r5 S
6 s E- b! `/ ~6 w1 ]. V1 n0 v
5 b3 }2 L4 a% E# V& B& ?3 L' `
% f/ W+ z# ^# _- d; k- z
) g, y' K# L0 ?0 {1 a
: m' h' o n+ M/ p# G

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

- y& ]) i- x8 D5 t2 X/ Z
- h0 b9 N1 W3 H4 S/ d
& }$ O, H3 q5 a- `- a! |/ _

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

% }$ v/ u7 d7 D6 B
# J8 G3 D7 U* n7 W+ Q/ R
* }6 {4 Z% Q! V! }, I y6 \6 d
$ c0 y: z5 y: w# x: ^
/ _: I8 j' a* X2 d* T% l
! x6 W8 f! f& M( Z2 ]

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

( }5 t" v+ a( A5 b; [ k
$ s7 |9 z( {7 f
8 S$ ?, @; h3 q% o

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

3 G: p/ D% b( V' k9 ?' H. O
6 t) r) Y* ]1 \( s
# y* J" U3 ~& v* O1 |

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

/ v) M! q- O/ q3 R) g0 n
7 T6 T- I$ |8 W$ `
! b( F: |6 z5 w3 |

激光雷达

7 e* s) \7 l/ y* ~4 Q4 A' \7 F
' Z& p3 _6 h. c; w: q: r8 s$ z
/ n, Y3 T6 J0 q) T4 M. I

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

; |# @( f$ F% z
* J7 R5 y$ ]. D5 z& u" ?, A) e
! [% C2 k* s; Q# R6 F& \

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

$ Z2 M4 S0 _7 r( a! H# ?( S! w
1 X! p. r- Q, x% O) G @2 Q0 X3 y" u
) j" i( ^1 {' @8 z
' g+ ]7 _" j" F9 b
6 d2 S" |( X% V ~
/ Z, m# a8 _4 P4 i- p. U5 f+ [0 j

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

. ] q" ?4 G* o7 x y
- |5 W# z- ?& { j) H
5 A4 O2 _( O7 p4 H

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

1 h+ D; V' F6 n4 y$ a( F
: |, X) a' r3 l, M* [, z+ y
& l8 H/ {* y7 H/ i8 t5 U

视觉 SLAM

9 A y) c$ G7 _, I, T6 g E2 N, K) m
- A$ A7 ?; e2 H* e' e
% S. y$ P( a, J7 W$ `( ? v2 {

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

) D9 q( n1 J h5 i" l8 N
, ?& l8 I- N" ~" D% Y- c
* d; T. J) \) t) e, w% i4 \0 D4 i

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

! b: |: f9 c7 {5 z# Y( \: F
8 a+ Q7 T5 V- C0 D4 j: b
" p7 P* `% t" c" p# r

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

5 \8 f4 [1 H( I1 d, v( q* w
2 D& u1 U1 |, z: T, T. N7 q
8 l4 g- d H& A1 W8 u

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

1 Y I% p8 y6 n
; \* S7 Y' F/ u2 S5 G
: {5 n5 \2 b2 C% E* G+ c5 d6 Z
7 k( Y: I2 i( m! l7 |* ?
! a5 h# P q) I2 c5 @; D, h
9 G3 }6 @/ _, z4 R4 m3 V

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

% q5 b j5 ~5 K/ d( Z
2 b3 k/ m5 w m6 m/ v2 j2 P, c' @. s
8 \8 i3 w+ ^0 i

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

0 }3 }* o+ a0 s3 C
2 F: x' A9 x% b* J
1 P3 m! v$ y$ m

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

( n0 a6 j( H2 D1 f
4 O" Q* e8 x# U& Z" E9 ^: f
5 x9 K) v" O+ ^$ w) I

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

5 c" N3 e" G+ P! s7 B; ~
& ?" s ?- ~# C$ j8 d$ H- j; Z
5 j; X- s% x: e' M8 q# U" t& k

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

* c r( v# { C
; `4 r) x0 G) ^# [( c5 u) ?( @
0 o# Y+ j1 j, ^
3 \6 l4 N3 I/ }1 |
& g$ d. G2 @7 s$ G+ S$ u( i
! {6 X+ T7 \1 W" l

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

, F" {0 x. |* C {) s& ^5 Y' r6 i7 s
, y1 u4 d7 M I7 N1 g
' X7 r: t9 p; m% u

OD

. X( l' u7 P' I/ B
Y6 [ }; ]9 F- ~/ L
% [' k* x% b/ A' O a. j; N1 O
举报/反馈
! v* c2 v7 V% q5 c- k
. W# i9 G4 N4 Z1 t : L3 W x, s1 h ' N+ W! i9 t9 o/ Z/ ^+ ] q! R: O' W& s+ _2 A- y8 B 7 z2 ]1 c# o, m* G0 g {
回复

举报 使用道具

相关帖子

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