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

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

[复制链接]
; @ m! |5 t; T% I P
* x" ~7 W, G1 m6 [

作者:

- h+ P7 z8 P" Z, N& M( W" `
1 B6 h. Q# `+ `3 h& D# }! G/ r3 S
4 ~6 g+ m1 @" L$ W

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

/ _% q1 Q$ g) N' b" A! U, D
# q' n" l# m0 \
5 v* l/ V( J* g" Y

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

: h5 G+ a# G$ P: y: ?
9 \7 ^: M* k9 I/ h% B
( e( [$ `$ A& {4 @$ v5 f

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

4 F$ r$ g Q5 l
& t. j* y, m1 b
+ ^9 C/ M+ m4 ^; h8 |

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

2 S" V. Y) t# R" Q# m8 m, B
. F2 v8 ^0 m9 r4 |! U% I# R' |
% _. M* l* D4 c* R# L. d

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

4 ?9 A$ {- @4 R" l, _9 ~& u
# a9 b3 \% n5 M# ^$ a+ `3 E
9 |9 z6 T- K5 @2 o
' M5 G0 f+ y8 P F% S* i# b
; o$ i4 m7 z( K2 ~4 U! _: q
6 V! Y) j! t. \2 v

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

2 V" ?+ P l) J
$ y9 M; z) n& B1 b7 R, D
- L* h& K1 X- k/ _' k9 ?

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

5 M4 z: Y7 b, E8 k- w$ U7 O
6 j( d, A$ A/ t7 W, u3 n' M6 X5 }# z
* z3 `( {+ p! d

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

( d( X3 F K0 c& u) O, v" ^
8 o9 c. x U. S" v l$ C
2 _1 {/ L# S. W# ]. I" X3 V

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

% f" M$ ~5 o$ M
9 Q( G2 V# `+ `* _) H
/ |+ H: R) |( @) K
2 o4 E; b! u5 B
7 y* R: S( |3 b0 D( k$ \. a
y/ _ F' x' K. b$ \) O

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

" R2 g' P2 E2 Y+ J
$ }- I3 i/ c/ N: Q
' m" y* p0 c( k; \) R) A

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

7 t: p) l8 k3 i) V: j( C6 m0 B
7 q; N1 K; F' G; L6 H
# {$ W" A7 I5 m) ~8 ^

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

; ^. z9 F" f" | l
3 Y* H" g- {+ I" A0 c
" s# \; H% V& ]. Y+ j
0 g3 x: _( F$ F1 A' x
/ @/ l! `- t; k6 A* r8 I, d8 \& o
4 Y% i+ k/ p' [+ _% x6 X9 h2 |( l- j

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

5 N! F6 o. A2 `: a4 t& {
, n7 l3 a0 i& ?$ _# c. S
% \* X, M* R8 F4 c

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

$ X4 F+ U8 q: D* k J3 `8 d3 E' o
7 o* S# @' c0 g1 a+ j6 b" |
. Q' V8 f5 l, p( i1 R
f7 L% E$ A1 p7 }* I2 Q* P
' C6 ~% W4 B; m1 P
c! l, q& w) \% R0 L- O% g9 n

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

2 m- l2 i* ~7 c& d9 x+ g
! f5 Y- m# V) V- Q
& q$ L6 N3 L" B: Y! X# G6 ?6 E8 ?

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

" O/ n) G e+ f% b& G' j1 D) b
( d! _: C# M1 O" ^
v( o" J5 b9 A( X, Z5 A

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

8 Y7 G1 S& k$ |) o
+ d, K, T3 K% _0 ?# g
( E3 Z& {& z* z0 r/ @

激光雷达

* b# f( X z/ D$ I
% t; P9 W: G3 _0 Z0 ~6 e& m
3 `$ F3 c) Q. U8 d* f5 c! o

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

# s3 l- y; C2 Z4 n- X4 `
- H9 I4 V& p, D
2 N1 G5 a/ o: {$ I

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

4 |) D/ M* ?2 e4 g
: L+ s3 k" O, y( T
9 h4 K1 \0 _1 V0 B
$ D, b, j/ A) W: y' H; `9 O `
3 W4 K. `: h+ G7 Y2 h/ T
! R: Y/ O+ k( N* z* [7 d6 B( W

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

. x7 ?9 z3 P) ]& [5 G7 C3 M
0 M- c- _/ f; d6 o( b8 a! q
t! ~# q( \% f9 A t! T7 u

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

7 M4 B9 i+ y! B+ b$ g+ e5 a0 t% i1 T
q% @& R6 |4 O* D% B
8 P. j( h4 g$ a0 W$ L5 U1 O2 R

视觉 SLAM

: w/ R" \9 \9 ~: @# t" |% c
0 \& z0 E' b6 b7 n# U
2 e A+ k# t8 Z/ }2 i4 z c5 ~

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

/ P4 k) U+ \! Y( f8 a
2 S/ m0 \/ w4 |$ {; O' S
' ^! M( M# d; Z! ~* o

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

0 p5 e# J6 N( D; Q: v" \4 E* o
6 S$ E" T- [' V U' c! {- \
9 S' e& |2 q2 e B" X2 I4 E$ m$ f

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

4 w) w+ E: r: T' X- ~9 n2 ^( {
; T& y4 _% Y' }+ R3 x$ D% ~
/ d0 G; @, h- ?) Y$ }

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

8 U6 b8 Q: E1 S$ _* s0 H
3 s3 f% h$ `9 u& v/ P
0 k# p! \5 o. ?, C* `' ^
% R7 ^) M. Y0 n% H4 x
# W& u. ~9 ]% L
) a Q; g2 ]' O9 j/ O

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

5 o2 I6 c7 C3 ^* L7 t! b
' o" ]0 j7 u+ O! g7 X
; E2 {0 w0 f. W s

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

- [; `$ M5 h0 l* g9 E- ]
2 `9 K$ _! H# I$ ^' V# r' [
" C, s* T5 a+ U1 n; w2 r. s2 ?% i

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

F3 N/ n5 V. L! b
2 S* T7 U7 S ~- r7 |
3 d! A/ r' m- o( o

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

2 r1 F' \4 I0 [/ N5 ~
+ l% J! a( }+ X; v' |
# E% \% w0 X6 d1 ]( C7 ~

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

5 S0 F, e7 I$ [) H
" w3 q5 ?3 A- O" E$ V+ o/ Y& d
$ e& | k/ L6 P
3 x5 F) X8 h% p$ V6 }$ k
( u: [3 Y, `! q. o7 b1 x4 F
7 S2 C1 j% D" d4 q" X; ?0 u

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

8 j/ A1 K& d+ d0 g- M( X0 c7 O
5 R# c2 K4 u; u8 ]
3 n, I R- E/ |$ a. `

OD

% m0 N% f+ W' P8 z/ y7 K' x. N
. E7 b% J5 [9 Y1 J
2 c7 X2 l4 W. M& P& R' T
举报/反馈
0 T% ] Q" M* \- r9 o/ I& }
7 G- _$ |5 }; @# T! w/ o; R' M, B ! j2 T3 |* Q0 ]5 p# Q9 Z" ~& R' L& v 5 J: ?8 c( P+ W! Q ) t! D V" `( U
回复

举报 使用道具

相关帖子

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