视觉slam14讲学习笔记:第一讲:预备知识

第一讲:预备知识

稠密重建:RGB-D相机
SLAM应用:手持设备定位,自动驾驶定位,AR
精度:5cm(跟相机硬件相关)

SLAM:Simultaneous Localization and Mapping(同时定位和地图构建)
相互关联:精确的定位需要精确的地图
精确的地图来自准确的定位

传感器:机器人感知外界环境的手段

		种类:
				内质的:感受机器人本体信息imu 激光 相机
				外质的:安装于环境中的 二维码 GPS 导轨

相机

	分类:
	单目相机 Monocular
	双目相机 Stereo
	深度相机 	RGB-D
	其他 全景 Event Camera
	特点:
	以二维投影形式记录了三维世界的信息,该过程丢掉了一个维度:距离

视觉SLAM框架

	前端:Visual Odometry 估计相邻时刻的相机运动
				特征点法 直接法
	后端:Optimization 从带有噪声的数据中估计最优轨迹与地图
				最大后验概率估计 滤波器 图优化
			
	回环:Loop Closing 检测相机是否到达过之前的位置,判断之前位置的差异,计算图像间相似性
				词袋模型
	建图:Mapping	导航 规划 通讯 交互 可视化
				度量地图 拓扑地图
				稀疏地图 稠密地图			

整体SLAM流程

视觉SLAM的数学描述

数学描述

Linux下C++编程

1.直接创建main.cpp文件,使用g++命令编译,最后运行输出文件即可
madir C++Study
cd C++Study
touch main.cpp
sudo gedit main.cpp
#写入程序到main.cpp中
g++ main.cpp
./aout
2.使用CMakeLists.txt管理C++依赖
project(helloSLAM)   #声明一个工程,工程名为helloSLAM
add_executable(sayHello main.cpp)     #添加一个可执行文件,将main.cpp编译成sayHello可执行文件
camke . #对当前目录下编译
make  #实际对工程进行编译

#使编译出来目录整洁
mkdir build
cd build
cmake ..
make
3.编译库文件
mkdir src include #src放置源文件  include放置头文件
touch include/Hello.h src/Hello.cpp
sudo gedit include/Hello.h
sudo gedit src/Hello.cpp
#写入函数和声明到Hello.cpp和Hello.h文件中
sudo gedit main.cpp
#在main文件中调用写好的头文件和函数
sudo gedit CMakeLists.txt
#在CMakeLists.txt中加入 
include_directories("include") #将include文件夹作为引用头文件的位置
add_library(libHello src/Hello.cpp) #将src/Hello.c编译成libHello库文件
target_link_libraries(sayHello libHello) #调用库,sayHello 调用libHello库

4.在IDE中写程序
sudo apt-get install kdevelop #安装kdevelop 
https://blog.csdn.net/qq_34432731/article/details/82431470  #安装CLION
cmake_minimum_required(VERSION 2.8) #指定CMAKE版本
set(CMAKE_BUILD_TYPE Debug)  #指定编译的模式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值