server模块
下载Covins
创建自己的工作目录
按照readme.md 安装
参考:https://blog.csdn.net/qq_42614598/article/details/121321960
注意
covins配置好了对应的eigen和opencv版本,所以需要下载他所提供的引导文件
eigen_catkin
https://github.com/ethz-asl/eigen_catkin
opencv_catkin
https://github.com/ethz-asl/opencv3_catkin
下载完成之后放到工作目录下就好
还有很多catkin需要添加,按照上面的样子添加进去就好
对于手动安装的eigen 找不到/usr/include/eigen3的问题
参考:https://blog.csdn.net/dddxxxx/article/details/118337592
需要添加一条软连接sudo ln -s /usr/local/include/eigen3 /usr/include/eigen3
在log中的找不到opengv的报错
[ 97%] [32m[1mLinking CXX executable /home/sysu/Desktop/JZ/ws/covins_WS/devel/lib/covins_backend/covins_backend_node[0m
/usr/bin/ld: /home/sysu/Desktop/JZ/ws/covins_WS/devel/lib/libcovins_backend.so: undefined reference to `typeinfo for opengv::sac_problems::absolute_pose::AbsolutePoseSacProblem'
/usr/bin/ld: /home/sysu/Desktop/JZ/ws/covins_WS/devel/lib/libcovins_backend.so: undefined reference to `opengv::sac_problems::absolute_pose::AbsolutePoseSacProblem::computeModelCoefficients(std::vector<int, std::allocator<int> > const&, Eigen::Matrix<double, 3, 4, 0, 3, 4>&) const'
/usr/bin/ld: /home/sysu/Desktop/JZ/ws/covins_WS/devel/lib/libcovins_backend.so: undefined reference to `opengv::sac_problems::absolute_pose::AbsolutePoseSacProblem::optimizeModelCoefficients(std::vector<int, std::allocator<int> > const&, Eigen::Matrix<double, 3, 4, 0, 3, 4> const&, Eigen::Matrix<double, 3, 4, 0, 3, 4>&)'
/usr/bin/ld: /home/sysu/Desktop/JZ/ws/covins_WS/devel/lib/libcovins_backend.so: undefined reference to `vtable for opengv::sac_problems::absolute_pose::AbsolutePoseSacProblem'
/usr/bin/ld: /home/sysu/Desktop/JZ/ws/covins_WS/devel/lib/libcovins_backend.so: undefined reference to `opengv::sac_problems::absolute_pose::AbsolutePoseSacProblem::getSampleSize() const'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/covins_backend_node.dir/build.make:387: /home/sysu/Desktop/JZ/ws/covins_WS/devel/lib/covins_backend/covins_backend_node] Error 1
make[1]: *** [CMakeFiles/Makefile2:597: CMakeFiles/covins_backend_node.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
是由于backend中的matcher用到了opengv但是没有引用而导致的:
我们可以在covins_backend中的CMakeLists.txt中添加 :
find_package(opengv REQUIRED)
还有就是在backend库链接动态库时候添加上opengv
target_link_libraries(covins_backend covins_base ${PROJECT_SOURCE_DIR}/thirdparty/DBoW2/lib/libDBoW2.so opengv) #注意在matcher里面用到了opengv的库,但是没有链接上他
find_package(opengv REQUIRED)
if (opengv_FOUND)
add_executable(main_opengv_demo main.cpp)
target_link_libraries(main_opengv_demo opengv)
endif (opengv_FOUND)
front_end模块
需要分别先安装 模块 缺少什么模块就安装什么模块
同一台设备的话,在原有的基础上catkin build ORB_SLAM3
就好了
boost的安装
可以参考这篇文章:https://blog.csdn.net/qq_44447544/article/details/122623300
如果在没有找到对应的boost-python时候,在此文章中也介绍了,需要在./bootstrap.sh 后面加上–with-python=python3的配置
遇到 找不到boost_python3Config.cmake 问题
参考这个链接:https://blog.csdn.net/qq_39779233/article/details/128699472
安装缺少rosdep的问题
https://blog.csdn.net/weixin_53660567/article/details/120607176?spm=1001.2014.3001.5501
找不到DBoW2和g2o的动态库问题
为什么会不编译g2o 和 DBoW2呢?
由于使用catkin build ORB_SLAM3
来编译,使用的是/Example/ROS/orb_slam3
里面的CMakeList.txt来编译的。在这个CMakeLists.txt里面是缺少了编译这两个第三方库的命令的,所以要在链接动态库之前添加下面两条命令。
add_subdirectory(${PROJECT_SOURCE_DIR}/../../../Thirdparty/g2o g2o_binary_dir)
add_subdirectory(${PROJECT_SOURCE_DIR}/../../../Thirdparty/DBoW2 hello_binary_dir)
为什么需要添加binary_dir呢?这里链接里面说了:https://zhuanlan.zhihu.com/p/85980099
对于opencv3和opencv4冲突的问题
参考下面这个链接:https://blog.csdn.net/qq_41873057/article/details/129943471
启动运行与配置
与官方文档相同,修改相关文档的路径。
需要注意的是rviz,虽然config里面配置了marker和pointcloud,但是不知道为什么打开并没有配置,还是需要自己手动添加。我的启动所用到的命令如下:
效果![请添加图片描述](https://i-blog.csdnimg.cn/blog_migrate/ecfbbd18b35642cacc4667bc0d2b6fb7.png)
想进一步安装ROS 板的ORBSLAM放在实机上面运行一下
catkin build ORB_SLAM3
但是遇到了下面的问题,一直没有解决:
方法:
这个是由于存在多个版本的boost所引起的。定向删除很难,使用locate 定位删除所有boost的库。
结合sudo apt list | grep boost
查看apt安装的boost库,然后将其删除。
等到locate boost
找不到到相关的boost库为止。
然后使用 sudo apt install ros-noetoc-desktop-full
安装,会将boost 全部安装回来的。
https://blog.csdn.net/sunweiliang/article/details/118424464
cv_bridge 版本
需要 1.13.0版本的cv_bridge ,因为后面的都需要opencv4以上的包
git clone -b 1.13.0 https://github.com/ros-perception/vision_opencv.git
终于成功了,泪目。。