ubuntu16.04 编译运行 multimot_track(踩坑级)

1.环境依赖:(环境依赖按照ORB-SLAM2执行,基本SLAM环境搭建流程)

2.OpenCV安装(版本>2.7),我安装了openCV-3.4.13(contrib)

注:后面编译安装DBoW2要求openCV版本

3.创建ROS工作空间

4.Multimot_Tracking 下载编译安装

(1)源码下载GitHub - halajun/multimot_track: A Multi-motion Visual Odometry System for Dynamic Environments

(2)解压,并将其放到catkin_ws/src下(即创建的工作空间下)

(3)编译安装:(一步一步编译,不要直接按照README操作)

打开build.sh;

①编译DBoW2:

cd Thirdparty/DBoW2 ​ 
mkdir build ​ 
cd build ​ 
cmake .. -DCMAKE_BUILD_TYPE=Release ​ 
make -j

注:如果OpenCV版本没有达到要求,会报错

②编译g2o:

1)添加C++11标准

cd ../../g2o   #进入g2o目录

sudo gedit CMakeLists.txt

CMakeLists.txt文件中添加

SET(CMAKE_CXX_FLAGS "-std=c++11") # Add c++11 functionality

2)编译

mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j

注:常见Error

make过程中:

Error1: ‘XXX’ was not declared in this scope

解决办法:在g2o目录下CMakeLists.txt文件中

sudo gedit CMakeLists.txt

添加

#include <cstdlib>

保存退出;

Error2:‘unordered_map’ in namespace ‘std’ does not name a template type

typedef std::unordered_map<int, Vertex*> VertexIDMap;

解决办法:在对应.cpp或者.h文件(报错处)添加头文件,

#include <unordered_map>

保存退出;

解决上述报错后,重启终端,进入build目录内清除上次编译,

rm -rf *

再次进行编译。

③ 解压ORB词典:

cd Vocabulary 
tar -xf ORBvoc.txt.tar.gz 
cd ..

④multimot_track编译安装:

mkdir build 
cd build 
cmake .. -DCMAKE_BUILD_TYPE=Release 
make -j

注:Error集锦

Error1:cmake时,提示image.cpp找不到

原因:作者提供的源码就写错了

解决办法:

进入multimot_track/src/flow,

讲该目录下的 lmage.cpp 改成 image.cpp

Error2: make 过程中,找不到Opengv下某个文件

未安装Opengv依赖库

解决办法:http://t.csdn.cn/SMv7x

git clone https://github.com/laurentkneip/opengv ​ 
cd opengv ​ 
mkdir build && cd build && cmake-gui .. ​ 
make -j8 ​ 
sudo make install

Error3:Linux系统识别不了libDBoW2.dylib文件

原因:作者在Mac上运行,(文件在Thirdparty/DBoW2/lib下)

解决办法:

修改multimot_track目录下CMakeLists.txt:

${PROJECT_SOURCE_DIR}/Thirdparty/DBoW2/lib/libDBoW2.dylib
${PROJECT_SOURCE_DIR}/Thirdparty/g2o/lib/libg2o.dylib

修改为:

${PROJECT_SOURCE_DIR}/Thirdparty/DBoW2/lib/libDBoW2.so ​ 
${PROJECT_SOURCE_DIR}/Thirdparty/g2o/lib/libg2o.so

保存退出;

解决上述报错后,重启终端,进入build文件清除上次编译,

rm -rf *

再次进行编译。

编译完成后参照README运行demo

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值