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

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

[复制链接]
; l5 U8 K% I6 p; X; M$ L
, O9 Z ]# R5 t' S

作者:

7 A2 b& Z& b8 ]7 P' f/ [
9 |& ]0 ^+ ?( @8 ~7 [& g+ i
& H" O7 o3 a8 x- }) o7 g

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

9 ]7 G9 x: Z3 `
; V' K/ G. C$ y
2 h8 C& t6 J( s4 Z. L+ c$ \

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

4 S8 v* T2 i/ p. ^
( |" Z8 O( u3 {! G9 g
+ V, }5 u! H, |; d

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

( t. g6 m# P8 w/ X
/ ^8 R+ @% o k
! T: h& T, A. E% g; m

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

& R& Q0 _. y) }, M
( M* r* l B' g6 t, y
c" A) H3 m; `" h

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

" O5 E" ?* F) P, W/ X8 B
+ k7 ?& _- [( f! e& a* y, u
5 O/ M5 M( O: ^) F" ?+ x1 _
+ v! u* m$ |! E8 ?# E! t W, ?
" j% Q/ P# t, S! n B3 l1 r
1 {' l, w0 ]3 `5 b

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

/ u$ G' i4 d4 s1 j% R: J) \
) }2 q; X' P: Z
|* K! R8 C8 C" L# z: C7 H

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

% I% Z4 G. R: p5 G. R
$ P. M$ O z7 p' L
; g& S5 B* U5 V

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

+ A/ N0 v G6 a, \8 o
% W! o/ Z, }9 a; z8 q3 ]. Q( y
: P$ M5 p+ V0 u Z% f& M: l, D

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

' L/ v( J; |% S4 k. x' m% q: @
: n- p& b8 O0 ^- v9 M
8 T, X) W0 ~: t1 f6 w# g, r
8 \) E' W9 _# k1 G7 }& ^" y2 ]
4 p1 u1 f5 v1 {" T; V- n
! C; D7 `( w: R+ O0 W: W" o) c

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

- E( E6 I, }& i& c2 M X
+ f: a2 F0 y/ C/ c( g3 z ^ F
* x3 f7 ?+ L/ Z4 S) Y, h% {$ j; D. x

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

9 c5 j# n# P' Z
5 m9 r1 Y+ A' {) E% U. q6 l) y
9 A2 m$ U1 O; b$ A: e+ p& G

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

+ x# H' g. y( r2 ?
( F% o- F4 I# d9 Y
2 V& X6 @. v' [) n1 _
) h$ E9 X3 P: t: v0 |' Z! {
8 ]! D: _ p8 N
# [4 b# P% I+ A. T7 k# i7 \+ @

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

" U" j8 X# J& T8 M
! G3 T9 B, I6 B" \
9 _( n3 h9 S' F; [0 A

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

; C, ~! |1 p+ A! c
; |7 Q; A+ `. N
. O: j* X0 B8 d9 ^8 ?5 d5 J
8 G! l D% S& c' K0 u. L; j
$ ^9 @/ B' a! a1 T2 p2 z
6 I. [; L# R$ h6 d$ w: y

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

: F$ g9 P1 Y! y' B& w/ e- N
4 F: D9 z& O! {
1 [$ X# p9 r( {

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

! O3 ~7 ^1 e9 n9 q, N$ v8 z
0 }& A$ H& y/ h& d
5 L9 A% X4 `/ r. b

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

! U' S7 { C* u5 s1 u& v- M
3 X. B' Y2 Y; o% t1 n0 B
! f3 B. R/ m1 Y- Q7 F |+ E

激光雷达

r( a) e# Q' ^) L( z1 s
z0 l6 F! k, ?- V* o
: W$ Y& \4 ^& a+ m

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

4 ~, l7 _) N4 ^ Q A1 N
0 p/ A! j- v, Z- C1 @ k
$ W+ |3 V: i4 z s$ m

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

4 ^6 _! X1 Z5 @
9 [. q( l; q$ W1 t# {2 |7 X( \
6 J; @1 P% @5 C b0 y
, q L7 G# E) K# u
! p* W: V" ]# t6 t/ n
/ a0 d: u( Q7 h1 v; o; z0 H

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

8 t! o/ t- A: y" ^
9 }/ A5 L2 l: W: l
- L: ?& }9 m! x0 h

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

2 l! _- x: P& f# g; p7 t, P% g
( l# s0 U6 s( V0 e4 ]* [
' r/ A/ W0 G2 p( Q

视觉 SLAM

6 |; I9 d9 \" C* u( `1 O7 |5 ]
, @2 Q6 N0 p; \* y! l9 e; y9 t
/ Z! @7 j" C2 `# ?+ L

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

* A$ j( i' m& }, z+ {0 l& F$ _
% }2 x8 f1 o& D0 Z1 R. `. `
) M& [" x% P+ d5 w5 _5 W' E

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

8 H j) ~+ T' j! w
+ D% k) |' D2 x) M8 L* x$ h, y
8 s6 Z' R; c% f3 ~

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

" F2 \0 n: K- z) I# R$ P
6 F1 j& u& w/ T* a+ _3 W4 n
# L( ^6 ]9 Q, \" L$ T

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

* f* A/ w& U& M+ ` L
" n; p+ z5 B4 X+ v8 \% W3 b
. p& |: b; I) ^. I3 N5 x4 v$ b" H+ p/ D: |
+ T& ?5 |" U/ P2 q$ |1 {5 I, |0 m
5 B4 c, t; `6 W- W+ L a
7 N5 G3 m% c# O

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

; G" E; p& S& e/ A9 ?
) B6 n! u% V* a4 p" v6 l! L
9 W. @0 H8 f0 F" `" n/ O

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

! |( X' t7 `/ g# H4 a
$ `* Z( @! y$ B
# D- |% `4 y$ R* Z" ~) }5 b

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

. C. G( {, X, {* l R0 U. Q
) {% m5 }; D" c2 `8 L6 Y4 [1 U
& `3 t3 {% B2 G; @' ^. y

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

* `, P* D: u. `% n9 ?
/ ?7 V: I! g8 L% d; v2 S4 L
* _+ \2 W4 k6 G$ ^* N' j

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

! K+ I9 t" |& v' y- _
4 Q6 e" z- j0 G8 e* a4 C# `
/ g) C7 h+ Z1 I# x1 w5 Z q" V7 Y
7 q( e# V% E) S, S; O
d8 ?( f. f8 W
2 {- h, ^( {7 t7 ^, z, Z% A. }

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

3 e; _7 |4 c* H
& ~- D6 @/ N' r
, k; ]3 P/ _( ~/ e2 y2 S# {# I

OD

B" N/ x( _* _) V
3 P# h8 A/ |: X) x. D! j: {
1 m2 a$ r" j1 R2 v; @4 ~( O
举报/反馈
- _/ C" G; m( z& K" }: @
; }9 H/ X6 a4 ` $ |% |5 x. z0 {7 v3 B/ ~6 b- `- X" z+ S$ ]0 b+ g4 A " s, d9 ?3 h" M) ]. a; ^! }# h7 J1 v4 V7 n# @1 w) }
回复

举报 使用道具

相关帖子

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