Jetson TX2(Ubuntu16.04)安装ROS和ORB-SLAM2

文章目录

  • 1 前言
  • 2 安装ROS
    • 2.1 准备工作
    • 2.2 ROS Kinetic Kame 的安装和配置
    • 2.3 配置环境
    • 2.4 测试
  • 3 配置ORB-SLAM2运行环境
    • 3.1 创建ROS工作空间
    • 3.2 安装Pangolin
  • 4 安装ORB-SLAM2

1 前言

这几天新开的一个项目,要在TX2上安装ORB-SLAM2,emmmmm之前没接触过啊,怎么办呢……
找了很久的文章,终于在两篇前辈的文章的指导下安装成功了,于是记录一下安装过程中的一些问题和修改方法。让后人踩着我过这个大坑。
前辈的文章:

https://blog.csdn.net/radiantjeral/article/details/82193370 Ubuntu16.04下配置ORB-SLAM2
https://blog.csdn.net/weixin_38593194/article/details/87795893 Jetson TX2 运行ORB-SLAM2 ros Kinect V1

2 安装ROS

2.1 准备工作

(1)安装工具
在tx2上缺少很多工具,后续的安装工作需要这些东西,所以就去乖乖♂下好,不然到时候还要重新下载。需要下载的有:vim、cmake、git、gcc、g++。

sudo apt-get install vim git cmake -y
sudo apt-get install gcc g++ -y

(2)更新镜像源
由于ARM源下载过慢,等待时间都可以打好多把游戏了,所以可以换做中科大的源或者清华镜像源(清华镜像源在下文给出)。

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vim /etc/apt/sources.list

在最后加上:

deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main restricted universe multiverse 
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main restricted universe multiverse 
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main restricted universe multiverse 
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main restricted universe multiverse 
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main restricted universe multiverse 
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main restricted universe multiverse

2.2 ROS Kinetic Kame 的安装和配置

(1)设置计算机以接受packages.ros.org中的软件
添加ROS官方软件源:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 0xB01FA116

(2)设置密钥

sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

Jetson TX2(Ubuntu16.04)安装ROS和ORB-SLAM2_第1张图片
(3)安装
先要更新Debian源,当然可能会报错找不到等等,我觉得可以忽视不管(就是没管直接跳过去了)

sudo apt-get update

Jetson TX2(Ubuntu16.04)安装ROS和ORB-SLAM2_第2张图片
安装出错
Jetson TX2(Ubuntu16.04)安装ROS和ORB-SLAM2_第3张图片](https://img-blog.csdnimg.cn/20190618042044868.png)
ROS官网上提供了四个版本去安装,我们这里直接下载完整版。

sudo apt-get install ros-kinetic-desktop-full

安装ros
其他版本指令为:

#粘贴时请忽略#后面的字,否则会嘿嘿嘿
sudo apt-get install ros-kinetic-desktop  #desktop-桌面版,
sudo apt-get install ros-kinetic-ros-base #base-基础版
sudo apt-get install ros-kinetic-PACKAGE  #PACKAGE-包名,自定义版

之后漫长的等待,而且还要时刻祈祷不要出现ERROR和WARNNING(WARNNING其实还好,ERROR很明显,在前面会出现E:后面会加上错误信息。)

如果没有报错,安装好就可以往下走啦。
Jetson TX2(Ubuntu16.04)安装ROS和ORB-SLAM2_第4张图片

2.3 配置环境

(1)添加ros功能包:

sudo apt-get install python-rosdep
sudo apt-get install ros-kinetic-slam-gmapping
sudo apt-get install python-rosinstall

(2)初始化ros:

sudo rosdep init
rosdep update

这里要注意(敲黑板!!!)
ROS对Python支持并不是很好。Python飞速发展的今天,他也只能支持Python2.7版本,Python3是不支持的。如果系统默认Python是Python3的话,rosdep init会疯狂报错,报的我是一脸懵逼,两脸对视懵逼。幸亏以前玩树莓派时候安装OpenCV时,知道Python2和Python3的语法不同,看了看错误的意思是没有这个module,大概率怀疑Python版本不对,查看Python版本指令:

Python --version

看了看果然他喵的上一个操作的人安装别的库的时候把默认改成了Python3.5……emmmmmmm查了好多资料原来就是Python版本不对。
那就要给切换回来,这里提供一个简便方法:

sudo update-alternatives --config python

之后弹出界面选择对应Python版本的数字输入回车就好。
这里还有一个坑,那就是没有sudo就会疯狂报错……
切换回Python2后再初始化就会过了。

(3)添加启动项

echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc 
source ~/.bashrc

(4)安装其他依赖包

sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential

2.4 测试

(1)新开一个终端,输入roscore初始化环境

roscore

Jetson TX2(Ubuntu16.04)安装ROS和ORB-SLAM2_第5张图片
(2)再打开一个终端,输入指令:

rosrun turtlesim turtlesim_node

会弹出一只可爱的乌龟
(3)再打开一个终端,输入指令:

rosrun turtlesim turtle_teleop_key

之后用上下左右键控制乌龟的方向,如果可以就证明ROS已经安装完成啦!

3 配置ORB-SLAM2运行环境

3.1 创建ROS工作空间

mkdir -p ~/slam/src
cd ~/slam/src
catkin_init_workspace
cd ..
catkin_make
echo "source ~/slam/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

Jetson TX2(Ubuntu16.04)安装ROS和ORB-SLAM2_第6张图片
Jetson TX2(Ubuntu16.04)安装ROS和ORB-SLAM2_第7张图片
创建工作空间

3.2 安装Pangolin

(1)安装依赖库

sudo apt-get install libglew-dev libpython2.7-dev libboost-dev libboost-thread-dev libboost-filesystem-dev -y

这里我好像忘记了有个依赖库不对,之后找了一句自动安装就完成的话……emmmm可能也会成功。

(2)进入~/slam/src
下载Pangolin,编译安装配置环境。

cd ~/slam/src
git clone https://github.com/stevenlovegrove/Pangolin

Jetson TX2(Ubuntu16.04)安装ROS和ORB-SLAM2_第8张图片

cd Pangolin
mkdir build
cd build
cmake ..
make -j4
sudo make install

Jetson TX2(Ubuntu16.04)安装ROS和ORB-SLAM2_第9张图片
Jetson TX2(Ubuntu16.04)安装ROS和ORB-SLAM2_第10张图片
这里的make后面不要用make -j,别问为什么,我的TX2还卡着呢!

(3)安装OpenCV,TX2不需要安装,刷机自带。

(4)安装Eigen3
打开目录~/SLAM/src,下载Eigen3并解压。

wget https://bitbucket.org/eigen/eigen/get/3.2.10.tar.bz2
tar -xjf 3.2.10.tar.bz2

重命名后,编译安装Eigen3.

mv eigen-eigen-b9cd8366d4e8/ eigen-3.2.10

Jetson TX2(Ubuntu16.04)安装ROS和ORB-SLAM2_第11张图片

cd eigen-3.2.10/
mkdir build
cd build
cmake ..
make
sudo make install

Jetson TX2(Ubuntu16.04)安装ROS和ORB-SLAM2_第12张图片
Jetson TX2(Ubuntu16.04)安装ROS和ORB-SLAM2_第13张图片

4 安装ORB-SLAM2

安装ORB-SLAM2要安装在/slam/src/目录下。

cd slam/src
git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
cd ORB_SLAM2

下载ORB-SLAM2
之后用vim修改一下build.sh,将最后一行make -j改为make -j4。

vim build.sh

执行build.sh这个文件。

Jetson TX2(Ubuntu16.04)安装ROS和ORB-SLAM2_第14张图片

./build.sh

等待漫长的编译,如果不报错的话,就可以准备实例跑ORB-SLAM2啦。
Jetson TX2(Ubuntu16.04)安装ROS和ORB-SLAM2_第15张图片

你可能感兴趣的:(ORB-SLAM2)