ORBSLAM2实验记录(2)——语义地图数据集配置

写在前面

        本文对ORBSLAM2_SSD_Semantic进行了配置并且跑通了数据集,其中对使用RGBD摄像头rgbd_my.cc编译未通过,仅出现一个函数未解决的情况,这里给出详细的配置过程,按照此过程可以容易的完成数据集程序rgbd_tum.cc的编译,跑通数据集。

 

实验环境     

电脑配置:

Processor:AMD Ryzen 7 4800H

Graphics:NVIDIA GEFORCE GTX 1650Ti

Memory: 16GB

OS Details: Ubuntu 16.04 LTS 64-bit

 

依赖配置:

基础的orbslam的各种依赖

ncnn库

vulkan库

camport库

等等

详细依赖在配置过程中提供

 

源码下载

首先克隆源码

git clone https://github.com/Ewenwan/ORB_SLAM2_SSD_Semantic.git

完成源码下载后,我们可以看到

在ORB_SLAM2_SSD_Semantic文件目录下有一个perfect文件夹

进入文件夹双击打开即为我们要编译的程序目录

首先进行编译

# 编译
        mkdir build
	cd build
	cmake ..
	make

下面针对出现的问题,来找对应的修改方法

Eigen3问题

Could not find a configuration file for package "Eigen3" that is compatible with requested version "3.1.0".

修改perfect文件夹下的CMakeLists.txt

将51行作出如下修改

find_package(Eigen3 3.1.0 REQUIRED)
//修改为
find_package(Eigen3 REQUIRED)

找不到第三方库问题

DBOW2和g2o

cmake成功后,如果找不到第三方库,出现error DBOW2 g2o问题

我们打开CmakeList.txt

发现120行和121行程序是要去Thirdparty下的两个文件夹去找静态库链接文件

我们打开,惊奇的发现,这俩文件夹里都是空的。。。

于是我们拿之前配置好的ORB_SLAM2里的两个文件夹拷贝过来(记得分别建立build文件夹对这两个进行编译),然后再进行编译

ncnn

如果选择自行下载可以使用

cmake成功后,如果找不到第三方库,出现error ncnn问题

同理,这个时候要去配置ncnn库

本人参考如下文章

Ubuntu16.04---腾讯NCNN框架入门到应用_ruyiweicas的博客-CSDN博客

首先git一下ncnn库到之前到perfect/Thirdparty下

git clone https://github.com/Tencent/ncnn.git

当你git下来后,会发现在glslang文件夹下并没有文件存在,我们再返回到ncnn的github网页中,点击glslang文件夹跳转到新的页面,把内容git到ncnn文件夹里的glslang文件夹中

cd ncnn
git clone https://github.com/KhronosGroup/glslang.git

准备好之后,再进行编译

net.h:No such file or directory

将ORB_SLAM2_SSD_Semantic/realtime_dect_loc/include/ncnn中的所有文件拷贝到Thirdparty下的ncnn文件夹中即可

./ty/common/common.hpp: No such file or directory compilation terminated.

代码里面没找到这个common.hpp文件

将ORB_SLAM2_SSD_Semantic/realtime_dect_loc/include中的ty文件夹,拷贝到ORB_SLAM2_SSD_Semantic/perfect/Examples/RGB-D中

再编译即可

如果出现

undefined reference to symbol '_ZN5boost6system15system_categoryEv'

参考我的这篇文章中解决boost的方法,这里我还在原目录中添加了lib文件夹,加入了关于boost的静态链接库等,修改了CMakeList文件,相关修改粘贴在下方

#boost
find_package(Boost COMPONENTS system)

#包含库文件
include_directories(
${PROJECT_SOURCE_DIR}
${PROJECT_SOURCE_DIR}/include
${EIGEN3_INCLUDE_DIR}
${Pangolin_INCLUDE_DIRS}# 可视化gui
-lboost_system
${PCL_INCLUDE_DIRS}#点云库
${Boost_LIBRARIES}


# 自建库生成路径
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib)
set(LIBS 
${OpenCV_LIBS} 
${EIGEN3_LIBS}
${Pangolin_LIBRARIES}
${Boost_LIBRARIES}
${PROJECT_SOURCE_DIR}/../lib/libboost_filesystem.so
${PROJECT_SOURCE_DIR}/../lib/libboost_system.so

-lboost_system
)


set(NCNN_TARGET_LIB ncnn) # ncnn 库
# 连接库文件
target_link_libraries(
${PROJECT_NAME}
${LIBS}
${OpenCV_LIBS}
${EIGEN3_LIBS}
${Pangolin_LIBRARIES}
${PROJECT_SOURCE_DIR}/Thirdparty/DBoW2/lib/libDBoW2.so
${PROJECT_SOURCE_DIR}/Thirdparty/g2o/lib/libg2o.so
${PCL_LIBRARIES}
${Boost_FILESYSTEM_LIBRARY}
${OCTOMAP_LIBRARIES} # octomap
-lboost_system
${NCNN_TARGET_LIB}
-fopenmp
)

 

 

-lncnn -ltycam

如果出现-lXXX 的问题就是在usr/local 和usr/lib 下没有找到静态库

进入ncnn,文件夹,进行编译

cd ncnn
mkdir build
cmake ..
make -j32

如果出现avx512相关的错误,那么需要进一步修改CMakeLists

修改位于ncnn里面的CMakeLists

搜索AVX,将从378行开始的,关于AVX的(或者只看AVX512)的option(NCNN_FMA "optimize x86 platform with fma extension" ON)中的ON更改为OFF,此时删除掉build中的文件,重新cmake

编译完成后进入ncnn/build/src中可以看到链接库libncnn.a

cd ncnn/build/src
sudo cp -n libncnn.a /usr/include
sudo cp -n libncnn.a /usr/lib

同理-ltycam库需要我们去下载camport3

git clone https://github.com/percipioxyz/camport3.git
cd camport3/lib/linux/lib_x64

将里面的两个文件拷贝到上述两个文件夹内

sudo cp -n libtycam.so /usr/include
sudo cp -n libtycam.so /usr/lib
sudo cp -n libtycam.so.3.6.9 /usr/include
sudo cp -n libtycam.so.3.6.9 /usr/lib

TYRegisterWorldToColor2

这个问题是我配置的最后一步,导致我无法将rgbd_my成功编译,如果去掉这个函数就能够正常编译,因此等一个大佬指点一下,谢谢了

rgbd_tum.cc

编译这个首先修改perfect文件夹下的CMakeLists

将第153行处修改

add_executable(rgbd_ty
Examples/RGB-D/my_rgbd.cc)
target_link_libraries(rgbd_ty 
${PROJECT_NAME} 
${TY_TARGET_LIB}
)

//===========修改为============
add_executable(rgbd_tum
Examples/RGB-D/rgbd_tum.cc)
target_link_libraries(rgbd_tum
${PROJECT_NAME} 
${TY_TARGET_LIB}
)

然后编译即可得到tum程序

运行

具体操作跟上一篇实验内容相同,以下仅放效果图

316ac789ef994eeea994d0aa7af63c0d.png

 附:其余可能出现的问题

ubuntu下 vulkan + ncnn环境搭建 - 灰信网(软件开发博客聚合)

图漾深度相机初步使用流程_Ketone Olefine的博客-CSDN博客_图漾深度相机

Ubuntu16.04 编译时出现fatal error: vulkan/vulkan.h没有文件_Alpha-Go的博客-CSDN博客

 

 

  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

圆圈圆圆圆

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值