ROS2-foxyとGazeboのインストール

ROS2
スポンサーリンク
スポンサーリンク

はじめに

 ROS2-Foxyのインストール方法を記載します。こちらの内容でほとんど完結すると思われます。
ROS2 Documentationだけでは不足する内容が多くあるので、備忘録も兼ねて記事にしました。
SLAM式AGV、4軸ロボット動作計画を作成するにあたって必要な追加パッケージも記載しておきます。

前提条件

こちらのページではROS2-Foxyインストールを参考にROS2-Foxyをインストールします。
Gazeboに関しては、Gazeboインストールを参考にインストールします。

前提条件

  • WSL2をインストール済 ( Ubuntu20.04 LTS でも問題ありません )

ROS2-Foxyのインストール

ROS2-Foxyのリポジトリをaptに登録し、ソースリストに追加します

sudo apt update
sudo apt upgrade
sudo apt install curl gnupg2 lsb-release nano python3-dev python3-setuptools python3-pip
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-Foxyをインストールします (環境によっては10分以上かかります)

sudo apt update
sudo apt upgrade
sudo apt install ros-foxy-desktop

これでROS2-Foxyのインストールは完了です。

このままではROS2-Foxyを起動できないので、設定をしていきます。

cd ~/
nano .bashrc

nanoエディタでホームディレクトリの.bashrcファイルを開きます。
.bashrcの最下部に以下の行を追加します。

source /opt/ros/foxy/setup.bash

追加したら、ctrl + x → y で保存して終了します。
これで、ROS2-Foxyの設定は完了です。

次に、テストをします。ターミナルを一度閉じて再度開いてください。
テストコードは下記です。

ros2 run demo_nodes_cpp talker

別のターミナルを開き、以下を実行します。

ros2 run demo_nodes_py listener

ターミナルの2つともに動きがあれば、正常に動作しています。

Gazeboのインストール

続いて、こちらに基づいてGazeboをインストールしていきますが、注意点があります。

  • aptリポジトリには古いgazebo9が登録されています

gazebo9ではプラグインの導入でエラーが出ることもあるため、最新 (2022/10/09) のGazebo11をインストールします。

まずは、aptにGazeboのソースを追加し、キーを登録します。

sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -

aptリポジトリを更新して、Gazebo11をインストールします。

sudo apt update
sudo apt install gazebo11
source ~/.bashrc

これでGazebo11のインストールは完了です。
念のため、起動を確認しておきましょう。(初回は起動に時間がかかります)

gazebo
gazebo
gazebo

これでGazeboのインストールは完了です。

続いて、Gazeboのパスを設定します。
初期設定のままでは、Gazebo上で作成したモデルを別のシミュレーション環境へ移設することができません。~/.bashrcへ記載していきます。

cd ~/
pwd
/home/user/      ←これをコピーします
nano ~/.bashrc

上記のコマンドにより.bashrcが開かれるので、最下部に下記コードを追加します。

export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:/home/user/.gazebo/models

再度ターミナルを開くか、ターミナル上で source ~/.bashrc を実行すれば完了です。

追加パッケージのインストール

ROS2-FoxyとGazeboのインストールが終わりました。

しかし、このままでは まともに動きません。

追加パッケージをインストールしていきます。※随時更新

sudo apt -y install python3-colcon-common-extensions
sudo apt -y install ros-foxy-navigation2 ros-foxy-nav2-bringup ros-foxy-turtlebot3*
sudo apt -y install ros-foxy-v4l2-camera
sudo apt -y install ros-foxy-controller-manager
sudo apt -y install ros-foxy-cv-bridge
sudo apt -y install ros-foxy-diff-drive-controller
sudo apt -y install ros-foxy-effort-controllers
sudo apt -y install ros-foxy-gazebo-ros2-control
sudo apt -y install ros-foxy-joint-state-publisher ros-foxy-joint-state-publisher-gui
sudo apt -y install ros-foxy-joint-trajectory-controller
sudo apt -y install ros-foxy-joint-state-broadcaster
sudo apt -y install ros-foxy-joint-state-controller
sudo apt -y install ros-foxy-ros2-controllers
sudo apt -y install ros-foxy-tf2 ros-foxy-tf2-tools
sudo apt -y install ros-foxy-xacro
sudo apt -y install ros-foxy-slam-toolbox
sudo apt -y install ros-foxy-robot-localization
python3 -m pip install setuptools==58.2.0

ここまでやれば、6軸ロボットの動作シミュレーションやSLAM式AGVを構築できます。
ROS2のドキュメントでは、上記の追加パッケージについて言及されていないものもあります。

おわりに

ROS2自体はPub/Sub通信を容易にするためのものです。
Gazeboとやり取りをするためにはGazebo用のプラグインを記述する必要があります。
とは言っても、テンプレートをそのまま使用できるようなプラグインもあります。

次回Navigation2のドキュメントを基に、URDFやGazeboプラグインについて解説をしていきます。

タイトルとURLをコピーしました