从零开始Ubuntu16.04+ORBSLAM2+ROS实验实录(一):安装与配置

简介: 从零开始Ubuntu16.04+ORBSLAM2+ROS实验实录(一):安装与配置

1 Wins+Ubuntu双系统安装

2 配置ORBSLAM2

2.1 工具配置

2.2 安装Pangolin库

2.3 安装Opencv2.4.11

2.4 安装Eigen3

2.5 安装ORBSLAM2

3 安装与配置ROS

4 错误记录与解决方案

1 Wins+Ubuntu双系统安装

对于ORBSLAM这种对硬件要求较高的大型计算机视觉实验,不推荐在虚拟机上实现,建议安装双系统以集成对显卡、摄像头更好的支持,由于本文关注ORBSLAM,因此关于双系统详细的图文安装步骤请移步参考Linux不会装?Win10+Ubuntu双系统安装、配置、卸载保姆级图文避雷指南

2 配置ORBSLAM2

2.1 工具配置

 sudo apt-get install cmake       #安装CMake
 sudo apt-get install git     #安装Git
 sudo apt-get install gcc g++   #安装g++

2.2 安装Pangolin库

首先安装库依赖文件

sudo apt-get install libglew-dev   #安装Glew
sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev                  #安装Boost
sudo apt-get install libpython2.7-dev

接着下载、编译、安装Pangolin,为方便第三方库管理,在ORBSLAM2根目录下创建3rd/Pangolin/src

mkdir -p ~/Project/SLAM/ORBSLAM2/3rd/Pangolin/src
cd ~/Project/SLAM/ORBSLAM2/3rd/Pangolin/src
git clone https://github.com/stevenlovegrove/Pangolin.git
mkdir build
cd build
cmake -DCPP11_NO_BOOST=1 ..
# 这一步用虚拟机可能会卡死,需要根据自身硬件设备调整线程数
make -j4              
sudo make install     # 关键,用于安装

2.3 安装Opencv2.4.11

mkdir -p ~/Project/SLAM/ORBSLAM2/3rd/Opencv2/src
cd ~/Project/SLAM/ORBSLAM2/3rd/Opencv2/src

OpenCV官网下载OpenCV2.4.11然后解压到上述目录。

接着安装依赖

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

编译安装

mkdir build
cd build
sudo cmake .. -DCMAKE_BUILD_TYPE=Release -DCUDA_nppi_LIBRARY=true -DWITH_CUDA=OFF -DBUILD_TIFF=ON -DCMAKE_INSTALL_PREFIX=/usr/local/include/opencv2411
make 
sudo make install

2.4 安装Eigen3

安装

 sudo apt-get install libeigen3-dev

Eigen头文件的默认位usr/include/eigen3 中。

2.5 安装ORBSLAM2

ORBSLAM2依赖库g2o和DBoW2在这一步编译完成

cd ~/Project/SLAM/ORBSLAM2
git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
# 编译
chmod +x build.sh
./build.sh

到这里为止ORBSLAM项目编译完成,可以下载数据集进行测试,这里推荐几个数据集网站:

1.ORBSLAM2数据集序列(TUM)

2.ORBSLAM2数据集序列(EUROC)

3.ORBSLAM2数据集序列(KITTI)


解压在项目根目录的dataSet文件里,进入ORBSLAM2根目录进行测试


TUM数据集

./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml ~/Project/SLAM/ORBSLAM2/dataSet/rgbd_dataset_freiburg1_xyz

其中标签TUM1.yaml可以替换成其他,~/Project/Slam/ORBSLAM2/dataSet/rgbd_dataset_freiburg1_xyz是数据集序列所在路径,rgbd_dataset_freiburg1_xy是序列名称。

EuROC数据集

./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular/EuRoC.yaml ~/Project/SLAM/ORBSLAM2/dataSet/V2_01_easy/mav0/cam0/data ./Examples/Monocular/EuRoC_TimeStamps/V201.txt 

如果遇到加载动态库错误

ORB_SLAM2 libORB_SLAM2.so: cannot open shared object file: No such file or directory

执行下面语句

sudo cp lib/libORB_SLAM2.so /usr/lib
sudo cp Thirdparty/g2o/lib/libg2o.so /usr/lib
sudo cp Thirdparty/DBoW2/lib/libDBoW2.so /usr/lib

3 安装与配置ROS

ROS的安装与配置请参考

4 错误记录与解决方案

错误1:编译执行 ./build_ros.sh 时出现


CMakeLists.txt:4 (rosbuild_init)

– Configuring incomplete, errors occurred!

make: *** 没有指明目标并且找不到 makefile停止。


解决方案:此为ROS配置错误,需要修改

sudo gedit ~/.bashrc
# 增加
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/Project/SLAM/ORBSLAM2/ORB_SLAM2/Examples/ROS
source ~/.bashrc

错误2:error reading version line

解决方案:一般由rosbag包错误导致,重新下载ros_bag文件。


错误3:[FATAL] [1630244733.986587231]: Error opening file: rgbd_dataset_freiburg1_xyz.bag

解决方案:没有启动ros导致,在某个终端启动roscore即可解决。


相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
ROS入门实践
本课程将基于基础设施即代码 IaC 的理念,介绍阿里云自动化编排服务ROS的概念、功能和使用方式,并通过实际应用场景介绍如何借助ROS实现云资源的自动化部署,使得云上资源部署和运维工作更为高效。
目录
相关文章
|
3月前
|
人工智能 Ubuntu 前端开发
Dify部署全栈指南:AI从Ubuntu配置到HTTPS自动化的10倍秘籍
本文档介绍如何部署Dify后端服务及前端界面,涵盖系统环境要求、依赖安装、代码拉取、环境变量配置、服务启动、数据库管理及常见问题解决方案,适用于开发与生产环境部署。
853 1
|
4月前
|
Ubuntu Linux 网络安全
Linux服务器之Ubuntu的安装与配置
Ubuntu Desktop是目前最成功、最流行的图形界面的Linux发行版;而Ubuntu Server也在服务器端市场占据了较大的份额。今天为大家详细介绍了Ubuntu Server的安装与配置,希望对你能有所帮助。关于VMware、VirtualBox等虚拟化软件的使用,朱哥还会在后续的文章中为大家详细介绍,敬请关注!
|
3月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
301 18
|
3月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
389 17
|
3月前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
472 7
|
4月前
|
缓存 Ubuntu Docker
Ubuntu环境下删除Docker镜像与容器、配置静态IP地址教程。
如果遇见问题或者想回滚改动, 可以重启系统.
326 16
|
3月前
|
消息中间件 人工智能 运维
Ubuntu环境下的 RabbitMQ 安装与配置详细教程
本文聚焦在Ubuntu下RabbitMQ安装与配置教程,旨在帮助读者快速构建稳定可用的消息队列服务。
|
4月前
|
缓存 监控 Ubuntu
在Ubuntu 16.04上配置GitLab Runner以激活GitLab CI/CD流程
完成以上步骤后,每当代码被推送到远端仓库中相对应分支上时,GitLb CI / CD 流水线就会自动触发,并由之前注册好了 GitLb runner 的机器去完成定义好了 ` .gitlabcicd.yml ` 文件里面定义好各种任务(如编译测试部署等).
240 13
|
4月前
|
XML Ubuntu Java
如何在Ubuntu系统上安装和配置JMeter和Ant进行性能测试
进入包含 build.xml 的目录并执行:
255 13
|
5月前
|
Ubuntu 关系型数据库 MySQL
在Ubuntu上配置phpMyAdmin和WordPress环境的步骤
执行以上步骤后,你将成功配置Ubuntu系统上的phpMyAdmin和WordPress环境。需要注意的是,应该根据自己实际的环境如具体的Ubuntu版本、WordPress版本和个人的安全需求做适当调整。此配置指南假定你拥有一个干净的Ubuntu服务器环境,某些步骤比如MySQL的root密码已经设置好了。
190 14

推荐镜像

更多