この記事は私が金沢工業大学ロボティクス学科で2020年度後学期に担当したロボットプログラミングⅡをROS2用に変更したものです。まずは、ROS2 Foxyをインストールして設定しましょう!作業時間はネットワーク環境によりますが、30分ほどで終わると思います。
環 境
- Ubuntu 20.04 (64bit x86)
- 本ページではIntelまたはAMDのCPU用のUbuntu20.04 (64bit x86)を対象とします。
参考サイト
- 次のサイトをもとにこの記事を作成しました。
準 備
- 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
- 次のようなエラーが出た場合
- エラー:4 http://packages.ros.org/ros2/ubuntu focal InRelease
公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY F42ED6FBAB17C654 - 次のコマンドで解決する。なお、以下のキー番号は上のNO_PUBKEYと同じにする。
- sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-keys F42ED6FBAB17C654
- エラー:4 http://packages.ros.org/ros2/ubuntu focal InRelease
- リポジトリの追加
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
- GPG公開鍵を利用するための設定
ROS2 のインストール
- リポジトリを更新したのでアップデートする。
$ sudo apt update
- インストールする。このインストールにより約3GBディスク容量が消費される。
$ sudo apt install ros-foxy-desktop
設 定
- 設定スクリプトの反映。sourceコマンドはファイルにあるコマンドを現在のシェルで実行するコマンド。
$ source /opt/ros/foxy/setup.bash
- 毎回、このコマンドを実行するのは面倒なので次のコマンドで~/.bashrcの最後の行に加える。
$ echo "source /opt/ros/foxy/setup.bash" >> ~/.bashrc
アプリのインストール
- Byobu。ROS2では多くの端末を開いて作業する必要があり、ノートPC画面の解像度が低いと作業効率が悪いので端末を分割表示するアプリByobuを使う。なお、Byobuは日本語の屏風が由来であり、内部でtmuxを使っているのでこれもインストールする。
$ sudo apt install tmux byobu
- Byobuの設定:次の記事の「少し幸せになる設定」を行い、マウスサポートをONにする。
- ROS2ではビルドシステムがcatkinからcolconに変わった。別途インストールする必要がある。
$ sudo apt install -y python3-colcon-common-extensions
- その他アプリのインストール
$ sudo apt install -y python3-argcomplete python3-pip
テスト
- ROS2がうまくインストールされたか、デモプログラムで確認する。まず、端末を開き、次のコマンドでByobuを起動する。
- $ byobu
- 起動したらShift+F2(シフトキーとF2キーを同時にを押す。そうすると下図のように端末が上下に分割される。
- Shift-↑(Shiftキーを押しながらUPキーを押す)キーを押すと分割された端末を移動できる.上領域に移動して次のコマンドを打ち込む。まず、設定スクリプト(/opt/ros/foxy/setup.bash)を反映して、C++で作成されたtalkerプログラムを実行する。
$ source /opt/ros/foxy/setup.bash
$ ros2 run demo_nodes_cpp talker
- 同様に、Shift-↓キーで端末の下領域に移動して次のコマンドを打ち込む。listenerはPythonで作成されている。
$ source /opt/ros/foxy/setup.bash
$ ros2 run demo_nodes_py listener
- うまく実行されると、下図のようにtalkerが送信した情報をlistenerが受信して端末に表示される。
終わり
コメント