稠密重建: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的数学描述 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) #指定编译的模式



