文章目录
依赖及ORB-SLAM3下载
参考下面博主安装
https://blog.csdn.net/holly_Z_P_F/article/details/118031317
报错解决
各种类似于下面的报错
/usr/local/include/sigslot/signal.hpp:109:79: error: ‘decay_t’ is not
a member of ‘std’; did you mea
最后编译ORB-SLAM3报错为
CMakeFiles/ORB_SLAM3.dir/build.make: Tracking.cc.o] 错误 1
解决方法
== 打开ORB_SLAM3主文件下的CMakeLists.txt==
在
cmake_minimum_required(VERSION 2.8) project(ORB_SLAM3) 下添加set(CMAKE_CXX_STANDARD 14)
报错2
CMake Error at CMakeLists.txt:91 (ADD_LIBRARY): Cannot find source
file:g2o/stuff/timeutil.cpp
Tried extensions .c .C .c++ .cc .cpp .cxx .cu .m .M .mm .h .hh .h++
.hm .hpp .hxx .in .txxCMake Error at CMakeLists.txt:91 (ADD_LIBRARY): No SOURCES given to
target: g2o
解决
XTDrone中缺少g2o/stuff/timeutil.h和g2o/stuff/timeutil.cpp。
需要自己官网下载ORB_SLAM3,从中复制粘贴到XTDrone中
下载地址(git%20clone%20https://github.com/UZ-SLAMLab/ORB_SLAM3.git%20ORB_SLAM3)
报错3
Could not find a configuration file for package “OpenCV” that is
compatible with requested version “3.2”.The following configuration files were considered but not accepted:
/usr/local/lib/cmake/opencv4/OpenCVConfig.cmake, version: 4.5.0 /usr/lib/x86_64-linux-gnu/cmake/opencv4/OpenCVConfig.cmake, version: 4.2.0 /lib/x86_64-linux-gnu/cmake/opencv4/OpenCVConfig.cmake, version: 4.2.0
CMake Error at CMakeLists.txt:35 (message): OpenCV >= 3.2 not found.
解决
在ORB_SLAM3下的CMakeLists.txt中修改find_package(OpenCV 3.2)为find_package(OpenCV 4.5.0)
报错4 编译 ORB SLAM2 找不到 libDBoW2.so / libg2o.so
解决
XTDrone中ORB_SLAM3/Thirdparty/DBoW2中缺少lib文件夹
需要自己官网下载ORB_SLAM3,从中复制粘贴到XTDrone中
下载地址(git%20clone%20https://github.com/UZ-SLAMLab/ORB_SLAM3.git%20ORB_SLAM3)
报错五 No module named rospkg
[rosbuild] Building package ORB_SLAM3
[rosbuild] Error from syntax check of ORB_SLAM3/manifest.xml
Traceback (most recent call last):
File “”, line 1, in
File “/opt/ros/noetic/lib/python3/dist-packages/roslib/init.py”, line 50, in
from roslib.launcher import load_manifest # noqa: F401
File “/opt/ros/noetic/lib/python3/dist-packages/roslib/launcher.py”, line 42, in
import rospkg
ImportError: No module named rospkg
CMake Error at /opt/ros/noetic/share/ros/core/rosbuild/private.cmake:77 (message):
[rosbuild] Syntax check of ORB_SLAM3/manifest.xml failed; aborting
Call Stack (most recent call first):
/opt/ros/noetic/share/ros/core/rosbuild/public.cmake:174 (_rosbuild_check_manifest)
CMakeLists.txt:4 (rosbuild_init)
解决
- 查看已安装的python版本
ls /usr/bin/python*
- 查看系统中是否有python配置选项
sudo update-alternatives --list python
没有添加过配置选项的话会显示update-alternatives错误
配置过的话会显示下图的内容
- 第1步中看到了系统有python2和python3两个版本,下面配置python选项
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 2
- python版本切换
先来查看下目前使用的python版本
python --version
发现是pyhon2
下面来切换python版本
sudo update-alternatives --config python
根据提示选择 python3
最后验证下
警告
/usr/bin/ld: warning: libopencv_imgcodecs.so.4.2, needed by /opt/ros/noetic/lib/libcv_bridge.so, may conflict with libopencv_imgcodecs.so.4.5
/usr/bin/ld: warning: libopencv_imgproc.so.4.2, needed by /opt/ros/noetic/lib/libcv_bridge.so, may conflict with libopencv_imgproc.so.4.5
/usr/bin/ld: warning: libopencv_core.so.4.2, needed by /opt/ros/noetic/lib/libcv_bridge.so, may conflict with libopencv_core.so.4.5
/usr/bin/ld: warning: libopencv_imgcodecs.so.4.2, needed by /opt/ros/noetic/lib/libcv_bridge.so, may conflict with libopencv_imgcodecs.so.4.5
解决
将ORB_SLAM3/Examples/ROS/ORB_SLAM3中的find_package(OpenCV 4.5 QUIET)
改成find_package(OpenCV 4.2QUIET)
解决完之后运行scripts下.sh文件出现如下报错
Input sensor was set to: Stereo
Failed to open settings file at: /home/khs/catkin_ws/src/ORB_SLAM3/Examples_old/Stereo/px4_sitl.yaml
解决
需要的注意的是需要改scripts/下的.sh文件下的路径
Ubuntu20.04下运行VINS系列:VINS-Mono、VINS-Fusion
参考下面博客:https://blog.csdn.net/zardforever123/article/details/129042974