运动方程和观测方程:Xk代表相机的本时刻的运动和上一次运动之间的关系;Zkj表示的是第k时刻相机和第j个物体之间的距离信息。具体两个方程的解释可以查看:通俗易通解释SLAM问题的数学描述:运动方程和观测方程_梧桐雪的博客-CSDN博客_观测方程
在创建好的main.cpp中输入自己的c++程序,然后生成a.out可执行文件
cmake之前的文章:【cmake】_echo_gou的博客-CSDN博客
之前的网站:从零开始详细介绍CMake_哔哩哔哩_bilibili
touch CMakeLists.txt
输入:
project(helloSLAM)
add_executable(sayhello main.cpp)
然后在命令行输入:
cmake .
make
./执行文件的名称 这里是sayhello
或者创建build文件夹:
这样进行就是在build里面生成中间文件
hello.h文件:
#pragma once //保证只编译一遍
void sayhello(); //包含函数的声明
hello.cpp文件:
#include "hello.h"
#include
using namespace std;
void sayhello(){
cout<<"hello"<
cmakelists文件:
project(helloSLAM)
include_directories("include") #因为要在hello.cpp中include.h文件 所以要加上这一行
add_library(libhello src/hello.cpp) #生成一个库文件
add_executable(sayhello main.cpp)
target_link_libraries(sayhello libhello) #sayhello调用了libhello这个库
这里我们只关心源文件(.c文件),没有关心头文件,因为头文件会自动帮你处理
然后在build文件夹中打开命令行即可:
cmake ..
make
我们可以看到cmakelists中的add_library语句生成了对应的库文件liblibhello.a :
注意下图中的最下方的蓝条中的各种信息,之前就是没有配置GCC。配置好GCC后就可以点击播按钮来运行程序了或者c+f5?
后面通过高翔的助教黑熊的一个个视频知道了如何去建立:
1首先创建CMakeLists文件和.cpp可执行文件
2c+s+p快捷键调出,选择Cmake:Configure
3然后选择对应的GCC版本,我这里是GCC 7.5.0
4选择好之后就会给你自动编译,点击运行即可(注意每次修改代码之后记得Ctrl+S保存),运行是最下面的播放按钮。
下载slam代码:
git clone https://github.com/raulmur/ORB_SLAM2
ORB-SLAM2 初体验 —— 配置安装 - MingruiYu - 博客园
Pangolin:
ORB_SLAM2之Pangolin的安装与问题处理 - 走看看
第三方库的安装:Pangolin
出现的问题:
ORB-SLAM2配置过程与/usr/bin/ld: 找不到 -lEigen3::Eigen的解决方法_Quentin_HIT的博客-CSDN博客_卸载pangolin
include eigen的时候报错:ubuntu16.04+eigen3安装 - 灰色的石头 - 博客园
error: usleep is not declared this scope
。google后发现,在raulmur/ORB_SLAM2的Issues中,有很多人都遇到了这个问题(Issues/337)。其解决方法很简单,参照Acerlon的回答,只需在/include/System.h文件中添加头文件#include
即可。
最后编译成功了,但是执行可执行文件的时候出现
我是将vovabulary中的ORBvoc.txt移动到了test当中然后修改了myslam.cpp中对应的路径即可。(这里的ORBvoc暂时还不知道是什么文件)
其他人的作业:
深蓝学院-视觉SLAM十四讲-第一章作业_hello689的博客-CSDN博客_视觉slam十四讲作业
师兄给的链接:
【SLAM环境配置】基于Ubuntu18.04的ORB-SLAM2环境配置全套方案记录_Robot_Tiger_的博客-CSDN博