文章目录
1、相机速度
普通相机能以30张图片每秒钟的速度采集图像,高速相机更快。
2、单目相机的尺度不确定性
首先,单目相机能够得到单张的相片,但是我们从单张之中是无法得到其
深
度
距
离
\color{red}{深度距离}
深度距离的;
因此,我们对单目相机进行了移动,造成双目相机的效果,在图像运用上出现了视差,此时,可以得到其距离信息;
但,该值仍旧是一个
相
对
值
\color{red}{相对值}
相对值,原因是:如果把相机的运动和场景大小同时放大两倍,其在相机中的图像是一样的,
真
实
尺
度
(
实
际
物
体
的
大
小
)
\color{red}{真实尺度(实际物体的大小)}
真实尺度(实际物体的大小)缺失了。
书中的一句话:平移之后才能确定深度,以及无法确定真实尺度。
我的理解是:通过平移得到类似双目相机的效果,由于视差的出现可以得到深度,但此时的深度是具有不确定性的,因为尺度未知。所谓的确定深度指的是能够通过数学计算获取深度信息。
3、双目测距原理
双目相机其实是通过两个单目相机组成,但 相 机 间 的 距 离 ( 基 线 ) \color{red}{相机间的距离(基线)} 相机间的距离(基线)已知,基线越大,能够测量的深度范围越远.
缺点:
计算量大,配置与标定复杂,视差的计算消耗资源 ( ? ? ? 不 是 已 知 吗 ) \color{red}{(???不是已知吗)} (???不是已知吗),需要GPU和FPGA加速。
大多数立体匹配算法计算出来的视差都是一些离散的特定整数值,可满足一般应用的精度要求。
但 在 一 些 精 度 要 求 比 较 高 的 场 合 , 如 精 确 的 三 维 重 构 中 , 就 需 要 在 初 始 视 差 获 取 后 采 用 一 些 措 施 对 视 差 进 行 细 化 , 如 匹 配 代 价 的 曲 线 拟 合 、 图 像 滤 波 、 图 像 分 割 等 。 \color{red}{但在一些精度要求比较高的场合,如精确的三维重构中,就需要在初始视差获取后采用一些措施对视差进行细化,如匹配代价的曲线拟合、图像滤波、图像分割等。} 但在一些精度要求比较高的场合,如精确的三维重构中,就需要在初始视差获取后采用一些措施对视差进行细化,如匹配代价的曲线拟合、图像滤波、图像分割等。
4、深度相机测距原理(RGBD相机)
红外结构光测量
time-of-flight飞行时间测量法
k
i
n
e
c
t
,
x
t
i
o
n
.
p
r
o
.
l
i
v
e
,
r
e
a
l
s
e
n
s
e
\color{red}{kinect , xtion.pro.live , realsense}
kinect,xtion.pro.live,realsense
5、为什么单目通过移动还不知道真实深度,而双目可以?
这是由于双目中的视差是已知的,因此能得到尺度信息,
但是单目相机中两张图的距离是未知的。我们无法说两张图片之间的位置信息。(顶多也是大概,且需人为测量,每次)
6、SLAM 框架
传感器数据:在这里主要是视觉,相机图像的读取和预处理。机器人中码盘和惯性传感器
VO视觉里程计:估算相邻图像帧间的相机运动,以及局部地图的样子。存在误差
后端优化:接收前端信息以及回环检测的信息,优化后得到全局一致的轨迹和地图。
回环检测:
建图:建立与任务对应的地图。
7、 SLAM数学描述
运
动
方
程
\color{red}{运动方程}
运动方程:
其中,
x
k
x_k
xk表示的是k时刻的位置,
u
k
u_k
uk表示的是
运
动
传
感
器
\color{red}{运动传感器}
运动传感器输入,
w
k
w_k
wk表示的是噪声。
观
测
方
程
\color{red}{观测方程}
观测方程:
其中,
y
j
y_j
yj表示的是在某位置看到的路标,
z
k
z_k
zk
,
_,
,
j
_j
j表示的是观测数据,v表示观测噪声。
当
观
测
到
多
个
路
标
时
,
可
产
生
多
个
观
测
方
程
。
\color{red}{当观测到多个路标时,可产生多个观测方程。}
当观测到多个路标时,可产生多个观测方程。
例
子
一
:
\color{red}{例子一:}
例子一:
8、编程基础
(1)当前目录下,在功能包下cmake,在通过make命令编译
(2) 使用build文件夹
(3)使用库
。。。。。