ROS 2 セットアップマニュアル

PC 環境構築編 (ROS 2 Foxy)

に公開

3分 前に更新

Tags:  ROSRobot

ラボのためのメモを兼ねたガイドです。開発に便利なツールのインストールまでセットアップします。なお、ROS 2 foxy は 2023/05 に LTS から外れ、サポートが終了します。

[Warn]
時々みかける source /opt/ros/.../setup.bash. /opt/ros/.../setup.bash などは、 開いているターミナルを、その ROS ディストリビューション (バージョン) 用にセットアップ (source) するというものです。トラブルの元となるので ~/.bashrc などから消しておきましましょう。



1. ROS 2 Foxy

source コマンドにさえ気をつければ、複数のディストリビューションを共存させられます。direnv を活用して bashrc などには直接書き込まないようにすれば、安心して環境を維持できます。間もなく Foxy も EOL を迎えますが、Ubuntu 20.04 系を使用し apt でサクッと済ませましょう。

1-0. ROS のインストール準備

ターミナル (アプリ一覧から端末を探すか、ショートカット Ctrl + Alt + T で起動できる)を開きます。

1-1. ROS のインストール準備

Locale を設定をします。locale と入力して UTF-8 に (日本語なら ja_JP.UTF-8 で)
Ubuntu であれば、基本的にインストール時点で UTF-8 になっています。

$ sudo locale-gen en_US.UTF-8 && export LANG=en_US.UTF-8 


1-2. ROS の鍵を入手

$ sudo curl -sSL https://github.com/ros/rosdistro/raw/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg


1-3. ROS をパッケージリストに追加

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


1-4. ROS 2 Foxy / 関連パッケージのインストール

$ sudo apt update && sudo apt upgrade -y && sudo apt install ros-dev-tools ros-foxy-desktop


1-5. rosdep の初期化

sudo rosdep init && rosdep update


1-6. Colcon のコマンド補完などを設定

Bash (デフォルトのまま) の場合は ~/.bashrc に二行を書き足してください。ターミナルを開きなおすなどして変更を読み込むと、colcon に Tab 補完を有効化・colcon_cd コマンドの有効化ができます。

. /usr/share/colcon_argcomplete/hook/colcon-argcomplete.bash
. /usr/share/colcon_cd/function/colcon_cd.sh


1-7. インストールを確認

ターミナルを二個立ち上げて次を実行し、 listener で talker 側と同じメッセージを表示できるか確認します。

[Note] ここでの `. /opt/ros/foxy/...` は、 そのターミナルを ROS 2 Foxy 用にセットアップ (source) するという意味です。特に開発をする PC 側ではトラブルの元となるので ~/.bashrc などで読まれていたら消しておきましましょう。

# Terminal 1
$ . /opt/ros/foxy/setup.bash && ros2 run demo_node_cpp talker

# Terminal 2
$ . /opt/ros/foxy/setup.bash && ros2 run demo_node_py listener



2. Gazebo

Gazebo は ROS と合わせてよく使用されるシミュレータです。リリースに大きな変更があり、Foxy では Gazebo11 (Classic Gazebo)(Ignition) Gazebo の二種類が使用できます。まだ Ignition 版へ対応しているパッケージは少ないので、ここでは両方ともインストールしておきます。

$ sudo apt install ros-foxy-gazebo-ros-pkgs  ros-foxy-ros-gz


3. direnv の設定

ROS では環境変数や、ソースするかどうかが非常に重要になってきます。direnv を使って簡単に環境設定をしましょう。

3-1. インストール

$ sudo apt install direnv


3-2. direnv を有効化する

次の一行を ~/.bashrc などに記載します。

eval "$(direnv hook bash)"


4. VSCode

Vi でも良いけど、VSCode も一応入れておきます。

4-1. VSCode の鍵を入手

$ curl -sSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor | sudo tee /usr/share/keyrings/packages.microsoft.gpg > /dev/null 


4-2. VSCode をパッケージリストに追加

$ echo "[arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main | sudo tee /etc/apt/sources.list.d/vscode.list > /dev/null


4-3. VSCode をインストール

$ sudo apt install apt-transport-https && sudo apt update && sudo apt install code


5. Ccache

Ccache はキャッシュにより、2回目以降のビルドを高速化してくれるツール。ROS でなくてもあると嬉しいので入れておきます。

5-1. Ccache インストール

sudo apt install ccache -y


5-2. 有効化

次の設定を ~/.bashrc などに追記します。

# Ccache の設定
export USE_CCACHE=1
export PATH="/usr/lib/ccache:${PATH}"
export CC='/usr/lib/cc'
export CXX='/usr/lib/c++'


6. FileZilla

FileZilla は FTP (SFTPも) を GUI で行える無料ツール。PC で修正してロボットにファイル転送をすることは多々あるので、CLI に慣れていない人には特におすすめです。

$ sudo apt install filezilla


以上で最低限の準備は完了です。