概述
1. 不安装到ROS下使用Sophus依赖库
在工作空间内建立thirdparty文件夹,并下载Sophus源码到该文件夹下, 如果是sophus-22.04.1等版本需要先下载fmt:
https://github.com/fmtlib/fmt/tree/8.1.1
下载最新版本的,同样下载到thirdparty文件夹下,编译:
cd fmt
mkdir build
cd build
make -j8
修改方法:
1.更改sophus下面的common.h文件,下面的代码:
//#include <fmt/format.h>
//#include <fmt/ostream.h>//更改前
#include </home/test/depend/fmt-8.1.1/include/fmt/format.h>
#include </home/test/depend/fmt-8.1.1/include/fmt/ostream.h>//更改后
2.更改CMakeList.txt文件,加入fmt语句如下:
target_link_libraries(kitti_filtering_node ${catkin_LIBRARIES} ${ALL_TARGET_LIBRARIES} fmt)
2. 不安装到ROS下使用Opencv依赖库
安装r3live时,需要大于3.3版本的opencv,但是电脑里安装的是3.1版本的opencv,又不想重新安装,于是乎选择了以下方法,同样是建立thirdparty,如图:
下载opencv,哪个版本都行,已经成功过的是3.4.16,然后解压,放到thirdparty里面,按照如下步骤编译:
cd opencv
mkdir build
cd build
make -j8
同样是找到CMakeList.txt文件添加:
set(OpenCV_DIR "/home/test/r3live_ws/src/r3live/r3live/thirdparty/opencv-3.4.16/build")
紧接着去编译r3live即可,编译步骤参照:r3live安装编译及问题解决办法
3. 鱼香ROS一键安装程序包依赖
参照:ros安装(一键最简安装,吹爆鱼香ROS,请叫我鱼吹)
1.改变rosdep参数:
wget http://fishros.com/install -O fishros && . fishros
执行3就行
进入到程序的工作空间,执行以下命令即可安装所有与ros相关的依赖:
rosdepc install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO
3. 第三方库g2o问题
error: ‘G2O_DEFAULT_TYPES_DIR_’ was not declared in this scope
104 | typesPath = G2O_DEFAULT_TYPES_DIR_;
在CMakeLists.txt中添加
file(GLOB_RECURSE THIRD_PARTY_SRCS "third_party/*.cpp")
list(REMOVE_ITEM ALL_SRCS ${THIRD_PARTY_SRCS})
4. 第三方库文件结构建立
4.1文件夹结构
包含一个cmake文件,一个third_party文件
4.2CMakeLists.txt文件中的关于第三方库
set(ALL_TARGET_LIBRARIES "")
include(cmake/glog.cmake)
include(cmake/YAML.cmake)
include(cmake/geographic.cmake)
include(cmake/protobuf.cmake)
include(cmake/PCL.cmake)
include(cmake/sophus.cmake)
include(cmake/g2o.cmake)
include(cmake/ceres.cmake)
include_directories(include ${catkin_INCLUDE_DIRS})
include(cmake/global_defination.cmake)
catkin_package()
file(GLOB_RECURSE ALL_SRCS "*.cpp")
file(GLOB_RECURSE NODE_SRCS "src/apps/*_node.cpp")
file(GLOB_RECURSE THIRD_PARTY_SRCS "third_party/*.cpp")
list(REMOVE_ITEM ALL_SRCS ${NODE_SRCS})
list(REMOVE_ITEM ALL_SRCS ${THIRD_PARTY_SRCS})
add_executable(data_pretreat_node src/apps/data_pretreat_node.cpp ${ALL_SRCS})
add_dependencies(data_pretreat_node ${catkin_EXPORTED_TARGETS})
target_link_libraries(data_pretreat_node ${catkin_LIBRARIES} ${ALL_TARGET_LIBRARIES} fmt)
add_executable(lio_matching_node src/apps/lio_matching_node.cpp ${ALL_SRCS})
add_dependencies(lio_matching_node ${catkin_EXPORTED_TARGETS} ${PROJECT_NAME}_generate_messages_cpp)
target_link_libraries(lio_matching_node ${catkin_LIBRARIES} ${ALL_TARGET_LIBRARIES} fmt)
add_executable(sliding_window_node src/apps/sliding_window_node.cpp ${ALL_SRCS})
add_dependencies(sliding_window_node ${catkin_EXPORTED_TARGETS} ${PROJECT_NAME}_generate_messages_cpp)
target_link_libraries(sliding_window_node ${catkin_LIBRARIES} ${ALL_TARGET_LIBRARIES} fmt)
4.3 cmake文件夹的文件
4.4 third_party文件夹下的文件
最后
以上就是可爱唇膏为你收集整理的Ubuntu下多版本sophus、opencv使用的全部内容,希望文章能够帮你解决Ubuntu下多版本sophus、opencv使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复