视觉slam第二讲笔记:初识slam和编译

视觉SLAM第二讲笔记

slam: Simultaneous Localization and Mapping:同时定位与地图构建

slam框架:

  • 传感器信息读取:相机图像信息的读取和预处理
  • 视觉里程计VO:估算相邻图像间相继的运动和局部地图的样子
  • 后端优化:接收不同时刻VO测量的相机位姿和回环检测信息并优化,得到全局一致的轨迹和地图
  • 回环检测:判断是否到达过先前的位置
  • 建图:建立地图
传感器数据
前端视觉里程计
后端非线性优化
建图
回环检测

SLAM问题描述

  • 运动:从 k − 1 k-1 k1 时刻到 k k k 时刻,机器人的位置 x x x 如何变化,
    x k = f ( x k − 1 , u k , w k ) x_{k}=f(x_{k-1},u_{k},w_{k}) xk=f(xk1,uk,wk)
    其中, u k u_{k} uk:传感器读数, w k w_{k} wk:噪声,则
  • 观测 k k k 时刻 x k x_{k} xk 位置处检测到路标 y j y_{j} yj
    z k , j = h ( y j , x k , v k , j ) z_{k,j}=h(y_{j},x_{k},v_{k,j}) zk,j=h(yj,xk,vk,j)
    其中, z k , j z_{k,j} zk,j:观测数据, v k , j v_{k,j} vk,j: 观测噪声

编程工具

1. g++

源:hello.cpp --> 编译:g++ hello.cpp --> 执行:./a.out

2.cmake

创建工程执行编译

首先,创建 CMakeLists.txt,内容如下:

cmake_minimum_required( VERSION 2.8)
project( projectname)
add_executable(projectname helloSLAM)

然后,创建build目录, 将Cmake文件、cpp文件、build目录放在同一文件夹下,

mkdir build
cd build
cmake ..
make
./projectname
生成库

创建库文件libfile.cpp–>创建头文件libfile.h–>调用库hello.cpp—>修改CMakeLists.txt->在build下编译

#include <iostream>
using namespace std;
void printHello()
{
   cout << "Hello World"<<endl;
}
#ifndef LIBFILE_H_
#define LIBFILE_H_
void printHello();
#endif
#include "libfile.h"
int main(int argc,char ** argv)
{
	printHello();
	return 0;
}
cmake_minimum_required( VERSION 2.8)
project( projectname )
add_library( libname SHARED libfile.cpp )
add_executable( projectname hello.cpp )
target_link_libraries( projectname libname )

3.IDE:CLION

CLION断点调试

[1]: Xiang Gao, Tao Zhang, Yi Liu, Qinrui Yan, 14 Lectures on Visual SLAM: From Theory to Practice, Publishing House of Electronics Industry, 2017.

强烈安利《视觉slam十四讲》,这是极好的一本书
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值