DS-SLAM编译总结
程序员文章站
2022-03-16 17:47:52
...
编译
caffe-segnet-cudnn5编译
该库的编译与caffe一样,其中的Makefile.config文件和Makefile文件都需要进行配置
参考教程
caffe-segnet-cudnn5的编译安装,其需要cuda8.0和cudnn5,且需要gpu需要支持compute_20
在cuda9.0和cudnn7.0.5的环境下也可以成功编译,不过需要在Makefile.config中再做相关调整
首先将USE_CUDNN :=1注释掉
其次修改CUDA_ARCH的参数
CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \
-gencode arch=compute_20,code=sm_21 \
-gencode arch=compute_30,code=sm_30 \
-gencode arch=compute_35,code=sm_35 \
-gencode arch=compute_50,code=sm_50 \
-gencode arch=compute_50,code=compute_50
这里需要删除
-gencode arch=compute_20,code=sm_20 \
-gencode arch=compute_20,code=sm_21 \
注意,最后运行测试时
需要执行如下命令
sudo make runtest -j8
一定要加sudo,否则会报错,原因不知
OctoMap和RVIZ编译安装
需要在octomap_mapping/octomap_server/include/octomap_server目录下的OctomapServer.h文件中添加宏定义
#define COLOR_OCTOMAP_SERVER
先安装ros包
sudo apt-get install ros-kinetic-octomap ros-kinetic-octomap-mapping ros-kinetic-octomap-msgs ros-kinetic-octomap-ros ros-kinetic-octomap-rviz-plugins ros-kinetic-octomap-server
下载DS-slam所需要的OctoMap和RVIZ
在ros工作空间目录下输入
catkin_make
则编译安装成功
编译项目时出现orb词典错误
可使用该TemplatedVocabulary.h或者TemplatedVocabulary.h(高翔)替换第三方库中的DBoW2库中相对应的文件
因为DS-SLAM给的第三方库中的该文件下定义的类中没有对应的loadFromBinaryFile(strVocFile)成员函数
在bashrc下添加路径
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:PATH/DS-SLAM/Examples/ROS/ORB_SLAM2_PointMap_SegNetM
PATH需要修改为ROS工作空间src目录的路径
修改CMakeLists.txt
修改DS-SLAM路径下的CMakeLists.txt文件,需要将如下代码取消注释:
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib)
否则会出现编译时找不到相应库的情况
上一篇: CSS3关键帧动画小记
下一篇: CSS3动画