视觉SLAM实践(1)——环境搭建

本文介绍了一种基于《视觉SLAM十四讲》的学习实践过程,包括如何通过CMake搭建SLAM项目的开发环境,并实现了简单的SLAM功能。此外,还详细记录了OpenCV的安装步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为准备IMAV Indoor赛任务,近日决定开始学习视觉slam,为飞机提供室内定位信息。

本文为高翔新书《视觉SLAM十四讲》读书笔记,用作梳理思路。

(1)终端环境下建立库,并使用库函数

目录:slam/test/helloSLAM.cpp
     slam/test/libHelloSLAM.cpp
     slam/test/CMakeLists.txt
其中,libHelloSLAM为库,helloSLAM为使用库函数的源码

//slam/test/helloSLAM.cpp
#include <iostream>
#include "libHelloSLAM.h" 
using namespace std; 
int main( int argc, char** argv )
{
    printHello();
    return 0;
}
//libHelloSLAM.c
#include <iostream>
using namespace std;

void printHello()
{
    cout<<"Hello SLAM"<<endl;
}

//libHelloSLAM.h
#ifndef LIBHELLOSLAM_H_
#define LIBHELLOSLAM_H_
void printHello();
#endif

最重要的就是使用cmake来制作工程,将库与调用库函数的源码建立连接。在cmake中的注释不是//,而是#

当仅有几个源文件需要编译时,用g++就很方便。但一般的工程项目中,有大量文件需要编译,且其中的依赖关系较为复杂,用cmake来管理更为高效。

#slam/test/helloSLAM.cpp
# 声明要求的 cmake 最低版本
cmake_minimum_required( VERSION 2.8 )
# 声明一个 cmake 工程
project( HelloSLAM )
# 设置编译模式
set( CMAKE_BUILD_TYPE "Debug" )
# 添加一个可执行程序
# 语法:add_executable( 程序名 源代码文件 )
add_executable( helloSLAM helloSLAM.cpp )
# 添加一个库
add_library( hello libHelloSLAM.cpp )
# 共享库
add_library( hello_shared SHARED libHelloSLAM.cpp )
# 将库文件链接到可执行程序上
target_link_libraries( helloSLAM hello_shared )

在编译后cmake会生成不少中间文件,所以我们在编译前统一建立一个文件夹,在该文件夹中进行编译,将中间文件和源码分开。

mkdir build
cd build
cmake..
make

(2)IDE环境下建立库,并使用库函数

高翔书中使用的是Kdevelop,这个软件比较蛋疼的是使用Eigen库时不提时成员运算,还各种显示错误。。。

好处就是可以debug

如果需要debug,需要先在cmake文件中加入

set( CMAKE_BUILD_TYPE "Debug" )

1.载入工程:Project->Open/Import Project...

选择写好的CMakeLists文件即可。

2.如果不需要debug,之间build就行

 需要debug的话,要先配置一下运行:Run->Configure Launches...

进入Launch Configurations界面后,点击add New->Compiled Binary(二进制文件)

设置好后,添加断点,debug即可,F10单步运行,F11单步跟进,F12单步跳出


OpenCV安装

https://opencv.org/releases.html

由于OpenCV最新的版本3.4.1还没有编译好的库文件,所以要从上面网站中下源代码进行安装

首先安装OpenCV依赖项

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

然后进入OpenCV源文件中的build文件夹,像普通Cmake工程文件一样编译

cd build
cmake ..
make//编译
sudo make install//安装OpenCV

编译时间大概十多分钟,默认储存目录在/usr/local/lib下


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值