1. はじめに
Gazeboは、ロボットの制御を3Dでシミュレーションできるツールです。AgileX社が公開している ugv_gazebo_sim には、各製品のGazeboでのシミュレーションパッケージが含まれています。
本稿では、LIMO を Gazebo上で動作させる方法をご案内します。
ugv_gazebo_sim: https://github.com/agilexrobotics/ugv_gazebo_sim
2. 環境
以下の環境にて、この手順が有効であることを確認しています。
OS: Windows 10 (64bit)
CPU: Intel(R) Core(TM) i7-6700HQ
メモリ容量: 16GB
WSL2: Ubuntu-20.04
ROS: Noetic
Gazebo: 11.11.0
3. 手順
3.1 ROSのインストール
本稿では、ROS Noetic を使用します。インストールの必要がある場合は、以前の記事の 3-3. ROS Noetic のインストール、3-4. ROS の環境設定をご参照ください。
3.2 必要なツールのインストール
ROSを使ったGazebo でのシミュレーションに必要なパッケージをインストールします。
$ sudo apt-get install ros-noetic-ros-control ros-noetic-ros-controllers ros-noetic-gazebo-ros ros-noetic-gazebo-ros-control ros-noetic-joint-state-publisher-gui
rqt_robot_steering は、スライドバーを使ってロボットの直進やステアリング動作を制御するためのROSツールです。
$ sudo apt-get install ros-noetic-rqt-robot-steering
telop-twist-keyboard は、キーボード操作でロボットを制御するためのパッケージです。
$ sudo apt-get install ros-noetic-teleop-twist-keyboard
3.3 パッケージのダウンロード
(1) ワークスペースの作成
$ mkdir -p ~/limo_ws/src
$ cd limo_ws
$ catkin init
(2) パッケージのクローン
$ cd src
$ git clone https://github.com/agilexrobotics/ugv_gazebo_sim.git
(3) 依存関係の確認・解決とビルド
$ cd limo_ws
$ rosdep install --from-paths src --ignore-src -r -y
$ catkin_make
$ source devel/setup.bash
3.4 実行
- RVizでLIMOのURDFファイルを視覚化する
$ roslaunch limo_description display_models.launch
- Gazebo でシミュレーションする
アッカーマン型
$ roslaunch limo_gazebo_sim limo_ackerman.launch
差動輪型
$ roslaunch limo_gazebo_sim limo_four_diff.launch
※ PC の動作が重く Gazebo がすぐに立ち上がらない場合は、ローンチファイル内の RViz の行をコメントアウトし、RViz の起動を無効化してください。
コントローラツール
Gazebo シミュレータを起動してから別ターミナルで以下のコマンドを打つと、LIMO を操作するツールが利用できます。
(1) スライドバーでの制御
$ rosrun rqt_robot_steering rqt_robot_steering
(2) キーボードでの制御
$ rosrun teleop_twist_keyboard teleop_twist_keyboard.py
RViz での画像表示
RViz では、シミュレータ上でカメラやセンサーから取得した ROS のデータを可視化することができます。Gazebo をローンチする際に Rviz を無効化した場合、$ rviz
と打って RViz を起動してください。
ここでは、LIMO の Image 型の ROS トピックのデータを表示させます。まず、Gazebo 上で LIMO の前に球体を配置します。そして、RViz の「Add」ボタンをクリックし、「Image」のディスプレイタイプを選択、「OK」を押してください。
「Image Topic」を選択すると、データを表示できます。