GAAS installlation on Ubuntu 18.04

GAAS installlation on Ubuntu 18.04

GAAS 安装教程: document

GAAS 中的安装教程中提到的 ROS-Kinetic (LTS 版)并不是最新的版本,在 ROS官网 上说明有两种 LTS 版本,其中一种版本是 Kinetic,另外一种是 Melodic 版本,这两种版本都是 LTS版的。

一开始不知道这个 Kinetc 是什么意思,完全按照 GAAS 上面的教程安装,一直提示找不到 ros-kinetic-* 相关的包。其实这就是个版本代号,类似 Ubuntu 18.04 代号 bionic,我们在 bionic 这个版本上就要安装 Melodic 版本。

安装 ROS

在 Ubuntu 18.04 上,我们跟着 ROS 官方教程 进行安装(以下为官网步骤的翻译):

  1. 设置 sources.list,以便可以从 packages.ros.org 下载已经编译好的二进制文件:
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
  1. 设置密钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
  1. 安装

首先更新仓库索引:

sudo apt update

Desktop-Full 安装:

sudo apt install ros-melodic-desktop-full
  1. 初始化 rosdep

在使用 ROS 前,需要初始化 rosdep.

sudo rosdep init
rosdep update
  1. 设置环境变量

将 melodic 的环境变量导入到当前的 bash 环境中,并且每次打开新的终端时自动加载 melodic 的环境变量:

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
  1. 构建软件包所需的依赖

前面几步设置好了运行 ROS 包的必要环境,要创建并管理自己的 ROS 工作环境,还有一些工具和依赖需要安装。

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

还有一些依赖项,在 GAAS 教程中提到的,也需要安装:

pip install pandas jinja2 pyserial cerberus pyulog numpy toml  pyquaternion
sudo apt install -y ninja-build exiftool python-argparse python-empy python-toml python-numpy python-yaml python-dev python-pip ninja-build protobuf-compiler libeigen3-dev genromfs

如果你发现有些软件安装了,但是在后面运行 gazebo 时候又提示没有找到相应软件,可能需要换一种方式安装:比如我用 pip 安装了 empy,但是构建时提示我无法 import em,package not found,换用 python -m pip install empy,之后就正常了。

后面会用到 gazebo 相关的包,这里进行安装:

sudo apt install ros-melodic-gazebo-*

这一步很关键,如果不安装 gazebo 插件,那么后面运行 gazebo_ros 的一些命令的时候会提示一些依赖项或者资源无法找到,比如我这个:

至此,ROS 的基本环境已经搭建好了。

可以在终端中测试:roscore,正常的话这个命令应该输出如下内容:

创建 catkin 工作目录:

mkdir -p ~/catkin_ws/src

一切正常后,使用 apt 安装 MAVROS,这是一个基于 MAVLink 的通讯节点:

sudo apt install ros-melodic-mavros ros-melodic-mavros-extras
wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
chmod +x ./install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh

PX4 固件

GAAS 给出的教程使用的是 PX4 v1.8.0:

cd ~/catkin_ws/src

git clone https://github.com/PX4/Firmware.git  # 后面需要用到 v1.8.0 标签,因此此处 clone 的时候不要添加 --depth 1 选项

cd Firmware

git checkout v1.8.0

然后我们就可以使用 make 命令构建 gazebo 示例了,在此之前,先更新所有的 submodules,尽管 make 命令在执行过程中会自动检查并更新子模块,但如果受网速限制,git 更新速度较慢,我们可以使用 proxychains 进行代理更新,如果设置了正确的代理,这样会快很多:

git submodule update --init --recursive
# proxychains git submodules update --init --recursive 

如果你访问 github 的速度够快,可以忽略掉这条指令。否则建议手动更新子模块,如果你用 proxychains 代理 make 命令,最后生成 demo 示例时可能会出现无法打开 gazebo demo 的问题。

最后,运行 make 命令:

make posix_sitl_default gazebo

运行 Gazebo 模拟器

最后可以看一看 Gazebo 的运行效果:

roslaunch px4 posix_sitl.launch

接下来就可以继续研究 GAAS 的软件了。
这篇教程是我这两天的安装体验的总结。按照官网给出的教程一步步来就没有问题。另外说一个 ubuntu 上可能比较常见的问题:循环依赖。在安装 python-ros* 的某个软件时,提示我 A 软件依赖 B,但是 B 不会安装,我想要卸载掉 A,又提示 C 依赖于 A,用 apt remove A; apt remove C 会一直循环提示,最后又提示到 A 缺少依赖,解决方法就是将 A 和依赖于 A 的一起删除:apt remove A C

教程列表

  1. GAAS document
  2. PX4 开发指南
  3. ROS Wiki
posted @ 2019-09-15 15:38  brifuture  阅读(994)  评论(3编辑  收藏  举报