🤖

ROS2プログラミング入門 #1 環境構築

2022/05/03に公開

これから何回かに分けて、ROS2プログラミングを学んで理解できたことを紹介していきます。

この記事では、主にROS2プログラミングの環境構築について紹介します。

ディストリビューションの選択

最初はROS2のディストリビューションを選ぶところからスタートです。

まず、公式サイト ROS Documentation で現在アクティブなディストリビューションを確認すると、次のものがアクティブになっていました。

  • Rolling Ridley
  • Humble Hawksbill
  • Galactic Geochelone
  • Foxy Fitzroy

一体どれを選べば良いのか迷いますけれど、ここでは「リリース済みで、なるべくサポート期間が長いもの」という基準で選ぶことにします。

サポート期間に関して、Foxy Fitzroyの List of Distributions に次のような表がありました。

ROS2 List of Distributions
ROS2のディストリビューション(EOLが来ているものは省略)

このうち緑色のものが現在サポートされているディストリビューションです。

表からGalactic Geocheloneは2022年11月に、Foxy Fitzroyは2023年5月に、それぞれEOLが来るということが見て取れます。したがって、より長くサポートされるのは Foxy Fitzroy です。

というわけで、ディストリビューションはFoxy Fitzroyを選択しました。

ROS2のインストール

Foxy Fitzroyの Installation を見ると、次のプラットフォームに対応しています。

  • Ubuntu Linux - Focal Fossa (20.04)
    • Debian packages
    • "fat" archive
  • macOS Mojave (10.14)
  • Windows (VS 2019)

説明に Installing from Debian packages is the recommended method. とあり、私のパソコンがUbuntu 20.04でもあるので、Debian packagesをインストールすることにしました。

さらに Installing ROS 2 via Debian Packages に沿ってインストールを進めます。

ROS2のリポジトリをセットアップ

apt でインストールできるようにROS2のリポジトリをセットアップします。

まず次のコマンドでGPGキーを取り込んで

sudo apt update && sudo apt install curl gnupg2 lsb-release
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key  -o /usr/share/keyrings/ros-archive-keyring.gpg

それからリポジトリを追加します。

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

ROS2のパッケージをインストール

リポジトリが追加できたらROS2のパッケージをインストールします。

sudo apt update
sudo apt install ros-foxy-desktop

パッケージは ros-foxy-desktopros-foxy-ros-base の2種類から選べるようです。

ここでは Desktop Install (Recommended): ROS, RViz, demos, tutorials. と推奨されていたので ros-foxy-desktop をインストールしました。

動作確認

ROS2が正しくインストールされたことを確認するために、ターミナルを2つ起動してデモのプログラムを実行します。

まず一方のターミナルで次のコマンドを

source /opt/ros/foxy/setup.bash
ros2 run demo_nodes_cpp talker

続けてもう一方のターミナルで次のコマンドを実行します。

source /opt/ros/foxy/setup.bash
ros2 run demo_nodes_py listener

それぞれのターミナルで次のような表示が確認できればOKだと思います。

talkerを実行した様子
talkerを実行した様子

listenerを実行した様子
listenerを実行した様子

おわりに

ROS2プログラミングの環境構築について紹介しました。どなたかのお役に立てば幸いです。

Discussion