深蓝学院:视觉SLAM学习记录1
程序员文章站
2022-03-16 18:04:58
...
最近在看深蓝学院上高翔博士的视觉SLAM课程,做点笔记总结一下学习过程,以方便之后的回顾。
1.预备知识
教材:《视觉slam十四讲》
参考书:
- multiple view geometry (细节较多,不适合初学者)
- state estimation for robotics (状态估计,内容深刻,公式较多)
只有亲自实现了算法,才能谈是否理解
计算机视觉的任务:
- 物体识别
- 物体检测
- 物体跟踪
- 语义分割
- …
SLAM是什么?
SLAM,即simultaneous location and mapping,中文为同时定位和地图构建,解决机器人“我在什么地方”、“周围是什么样子”、“我该怎么去另一个地方”这三个问题。
传感器
传感器是机器人认识世界的重要器官,依照传感器是外质还是内质,可以分为:
- 内质:IMU(惯性测量单元),LASER,Camera
- 外质:marker(二维码)、GPS(用于室外)、导轨
视觉slam主要使用camera作为机器人的传感器,它以一定的速率采集图像,形成视频,具有便宜、轻便和信息丰富的优点。但是有可能会丢失深度信息。
Camera可以分为单目(monocular,无深度信息)、双目(stereo,通过视差计算深度信息)和RGB-D(物理方法测量深度信息)。
视觉SLAM框架:
- 前端:visual odometry
- 后端:optimization
- 回环: loop closing
- 建图:mapping
- 记机器人在各时刻的状态为x1,…,xk,其中k是离散时间下标。在SLAM中,我们要估计机器人的位置,那么系统的状态就指的是机器人的位姿。用两个方程来描述状态估计问题:
- xk=f (xk-1,uk,wk )
- yk=g (xk,nk)
f ;运动方程
g:观测方程
w:输入噪声
u:输入指令
y:测量模型,观测数据
n:观测噪声
运动方程描述了从状态Xk-1如何运动到XK的,而观测方程描述了从Xk如何得到观察数据yk的