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
。