【SLAM】视觉SLAM从入门到放弃学习笔记(1)

1、各类相机的区别是什么?
单目:无深度 深度需要其他手段估计
双目:通过视差计算深度
RGB-D:通过物理方法测量深度

2、视觉SLAM框架的什么样的?
前端:视觉里程计,估计邻近时刻的相机运动,最简化-两个图像的相对运动,特征点法和直接法;
后端:从带有噪声的数据中估计最优轨迹与地图,最大后验概率估计,滤波器,图优化;
回环检测:检测相机是否达到过之前的位置,判断与之前位置的差异,计算图形间相似性,词袋模型;
建图:导航、规划、通讯、交互、可视化,度量地图,拓扑地图,稀疏地图,稠密地图。
在这里插入图片描述
3、SLAM问题的数学描述
在这里插入图片描述
公式解读可参考:《视觉SLAM十四讲》(第二版)公式引出、推导和理解 1

4、linux下的c++基础

//创建一个main.cpp文件,输出最基本的“Hello Slam”语句
touch main.cpp
vim main.cpp
i
#include <iostream>
using namespace std;
int main (int argc,char** argv)
{
	cout<<"Hello Slam"<<endl;
	return 0;
}
#esc#
:wq
cat main.cpp
g++ main.cpp
ls
./a.out

在这里插入图片描述

在这里插入图片描述

//调用cmake管理工程
sudo apt install cmake
touch CMakeLists.txt
vim CMakeLists.txt
i
project(helloslam)//新建一个helloslam工程
add_executable(sayHello main.cpp)//把main.cpp编译成sayHello
#esc#
:wq
cmake .
make
./sayHello

在这里插入图片描述
在这里插入图片描述

//生成库文件
mkdir include src
touch include/Hello.h src/Hello.c
vim include/Hello.h
i
#pragma once
void SayHello();
#esc#
:wq
vim src/Hello.cpp
i
#include "Hello.h"
#include <iostream>
using namespace std;
void SayHello(){
cout<<"Hello Slam"<<endl;
}
#esc#
:wq
touch main.cpp
vim main.cpp
i
#include "Hello.h"
using namespace std;
int main (int argc,char** argv)
{
	SayHello();
	return 0;
}
#esc#
:wq
touch CMakeLists.txt
vim CMakelists.txt
i
project(helloslam)
include_directories("include")
add_library(libHello src/Hello.cpp)
add_executable(sayHello main.cpp)
target_link_libraries(sayHello libHello)
#esc#
:wq
mkdir build
cd build/
cmake ..
make
./sayHello

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落体偏东

原创动力来自大佬们的鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值