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 官方教程 进行安装(以下为官网步骤的翻译):
- 设置 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'
- 设置密钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
- 安装
首先更新仓库索引:
sudo apt update
Desktop-Full 安装:
sudo apt install ros-melodic-desktop-full
- 初始化 rosdep
在使用 ROS 前,需要初始化 rosdep.
sudo rosdep init
rosdep update
- 设置环境变量
将 melodic 的环境变量导入到当前的 bash 环境中,并且每次打开新的终端时自动加载 melodic 的环境变量:
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
- 构建软件包所需的依赖
前面几步设置好了运行 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
。
教程列表
本博客由 BriFuture 原创,并在个人博客(WordPress构建) BriFuture's Blog 上发布。欢迎访问。
欢迎遵照 CC-BY-NC-SA 协议规定转载,请在正文中标注并保留本人信息。