Ubuntu 20.04 ORB-SLAM2 安装错误解决

1.pangolin版本错误,导致出现找不到eigen3

解决方法是安装v5版本的pangolin或者安装pangolin的release版本,更稳定一些

2.还是有一些slot等等的东西不在命名空间内,老错误了,c++版本的问题,详见ORB-slam3编译错误

3.

value type问题,loopclosing.h

typedef map<KeyFrame*,g2o::Sim3,std::less<KeyFrame*>,
        Eigen::aligned_allocator<std::pair<const KeyFrame*, g2o::Sim3> > > KeyFrameAndPose;

改成

typedef map<KeyFrame*,g2o::Sim3,std::less<KeyFrame*>,
        Eigen::aligned_allocator<std::pair<KeyFrame *const, g2o::Sim3> > > KeyFrameAndPose;

即可

4.5.usleep没有定义

在对应文件里面加入

#include<unistd.h>

即可

6.opencv版本问题,使用opencv4会报错,安装opencv3即可

7.ORBslam2编译好之后,即可编译dxslam了

8.eigen

<think>好的,我现在需要帮助用户在Ubuntu 20.04安装和配置ORB-SLAM2。首先,我得回忆一下ORB-SLAM2安装步骤,以及可能遇到的问题。用户提到的是ORB-SLAM2,但参考引用里提到了ORB-SLAM3,不过应该步骤类似,不过需要注意版本差异。 首先,安装依赖项。通常ORB-SLAM2需要一些库,比如Pangolin、OpenCV、Eigen等。用户提到Ubuntu 20.04对应的ROS版本是Noetic,所以可能需要安装ROS Noetic。但ORB-SLAM2可能主要依赖ROS,但也有非ROS版本。需要确认用户是否需要ROS支持。 根据引用[2],安装ROS可以使用小鱼老师的一键脚本,这可能简化ROS的安装。所以建议用户先安装ROS Noetic,使用提到的命令:wget http://fishros.com/install -O fishros && bash fishros。这可能比手动安装更可靠,避免配置错误。 接下来,安装ORB-SLAM2需要的依赖。比如Pangolin,可能需要从源码编译。记得Pangolin的安装需要先安装一些依赖,比如libglew-dev、cmake等。用户可能需要运行sudo apt-get安装这些工具。 然后,OpenCV的安装Ubuntu 20.04可能自带OpenCV,但ORB-SLAM2可能需要特定版本,比如OpenCV 3或4。需要查看ORB-SLAM2的官方文档,确认兼容性。如果默认安装的版本不兼容,可能需要手动编译OpenCV。 Eigen库通常可以通过apt安装,比如sudo apt-get install libeigen3-dev。但需要注意版本是否满足要求。 接下来,下载ORB-SLAM2的源码。用户可能需要从GitHub克隆仓库,比如https://github.com/raulmur/ORB_SLAM2。但要注意,ORB-SLAM2可能对Ubuntu 20.04的支持存在问题,因为Ubuntu 20.04的默认GCC版本较高,可能会有兼容性问题。例如,C++标准可能默认是C++14或更高,而ORB-SLAM2可能需要调整编译选项。 在编译过程中,可能会遇到一些错误。比如,某些头文件找不到,或者C++11特性的问题。可能需要修改CMakeLists.txt中的编译标志,添加-std=c++11,或者解决OpenCV版本不匹配的问题。 如果用户需要ROS支持,还需要在ORB_SLAM2的代码中进行ROS相关的配置,比如在Examples/ROS/ORB_SLAM2目录下编译。这时候需要设置ROS_PACKAGE_PATH环境变量,并确保ROS的依赖项已经安装,如cv_bridge等。引用[3]提到在ROS下运行ORB-SLAM3的例子,可能对于ORB-SLAM2也有类似的步骤,需要修改路径。 此外,用户需要注意ORB-SLAM2的第三方依赖,如DBoW2和g2o,这些通常包含在源码的Thirdparty目录中,可能需要单独编译,或者安装。 可能的错误处理:比如在编译时出现对‘cv::imshow’未定义的引用,可能是因为OpenCV的链接问题,需要确保CMake正确找到OpenCV库,并在链接时包含必要的库文件。 最后,测试安装是否成功,运行数据集示例,比如TUM数据集,确保ORB-SLAM2能够正常运行。 总结步骤大致是:安装依赖库,安装ROS(如果需要),下载并编译ORB-SLAM2,处理可能的编译错误,配置环境变量,测试运行。 需要将这些步骤详细地分步解释,确保用户能一步步跟随操作。同时,提醒用户注意版本兼容性问题,如OpenCV版本、GCC版本,以及可能需要修改源码的地方。</think>在Ubuntu 20.04安装和配置ORB-SLAM2的步骤如下: --- ### 一、安装依赖项 1. **基础工具安装** 确保系统已更新并安装编译工具: ```bash sudo apt update sudo apt install git cmake g++ python3-dev libeigen3-dev libblas-dev liblapack-dev ``` 2. **安装OpenCV(推荐4.2+)** Ubuntu 20.04默认包含OpenCV 4.2,可通过以下命令安装: ```bash sudo apt install libopencv-dev ``` 若需手动编译特定版本,参考[OpenCV官方文档](https://docs.opencv.org/)。 3. **安装Pangolin(可视化库)** ```bash sudo apt install libglm-dev libglew-dev git clone https://github.com/stevenlovegrove/Pangolin.git cd Pangolin && mkdir build && cd build cmake .. && make -j4 sudo make install ``` 4. **安装ROS(可选,如需ROS支持)** 使用小鱼老师一键脚本简化安装[^2]: ```bash wget http://fishros.com/install -O fishros && bash fishros ``` 选择`1-安装ROS`,根据提示安装ROS Noetic。 --- ### 二、下载并编译ORB-SLAM2 1. **克隆源码** ```bash git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2 cd ORB_SLAM2 ``` 2. **编译第三方依赖** ```bash chmod +x build.sh ./build.sh ``` 3. **编译ROS模块(如需ROS支持)** ```bash export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/path/to/ORB_SLAM2/Examples/ROS chmod +x build_ros.sh ./build_ros.sh ``` 若报错`cv_bridge`未找到,安装ROS依赖: ```bash sudo apt install ros-noetic-cv-bridge ros-noetic-tf ``` --- ### 三、解决常见编译问题 - **C++11标准问题** 在`CMakeLists.txt`中添加: ```cmake set(CMAKE_CXX_STANDARD 11) ``` - **OpenCV版本冲突** 若提示`找不到OpenCV`,在`CMakeLists.txt`中指定路径: ```cmake find_package(OpenCV 4 REQUIRED) ``` - **Eigen3路径问题** 创建符号链接: ```bash sudo ln -s /usr/include/eigen3/Eigen /usr/include/Eigen ``` --- ### 四、测试运行 1. **下载TUM数据集** ```bash wget https://vision.in.tum.de/rgbd/dataset/freiburg1/rgbd_dataset_freiburg1_xyz.tgz tar -xvf rgbd_dataset_freiburg1_xyz.tgz ``` 2. **运行单目示例** ```bash ./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml /path/to/dataset ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值