シミュレータstageのセットアップ
Categories:
目的
本講義で使用するロシミュレータstageをインストールします. なお,既に他の講義にてROS2をインストールしていることを前提としています. インストールしていない場合には,こちらのページを参考にROS2をインストールしてください.
ロボットシミュレータSTAGE
ロボティクス演習では,ロボットシミュレータとしてturtlesimを使用しています. 本シミュレータはシンプルであるため,ROS2の勉強には最適ですが,センサーが搭載されていないことからセンシングを伴うロボットの制御には利用できません. そこで,本講義ではセンサが搭載されたstageを利用します. ROS2に対応したstageのオープンソースソフトウェアを利用させていただきます.
環境作成と動作確認
stageのセットアップ
stageを使用するためおワークスペースを作成し,そこにgithubよりリポジトリをクローンします. 下記の手順で環境を作成してください.
|
|
stageシミュレータ用ではありませんが,キーボード操作によりロボットを動かすパッケージもインストールしましょう.
|
|
stageの動作確認
stageシミュレータの動作確認を行います.
stageはアンダーレイ環境ではなく,オーバーレイ環境下で動作するため,
ターミナルを起動するたびにsource
コマンドでsetup.bash
を実行してください.
stageシミュレーターを起動するためには,引数でworldファイルを指定する必要があります. 今回はworldファイルとしてcaveを指定します.
|
|
正常に起動すると下記のような画面が表示されます.
赤色の四角はロボット,緑色の四角は移動可能な障害物,黒色は固定された障害物です. また,ロボットの前方は,扇の形で色が濃くなっていますが,これはLiDARで測定している範囲を表しています.
worldファイルの種類
stageシミュレーターでは幾つかのworldファイルが用意されています. それぞれ,ロボットの台数やLiDAR,カメラの有無,環境マップが異なります.
ファイル名 | ロボットの台数 | LiDAR | カメラ(カラー,距離) | 環境マップ |
---|---|---|---|---|
cave.world | 1 | あり | なし | cave |
cave_seven_robots.world | 7 | あり | なし | cave |
cave_three_robots.world | 3 | あり | 2台のみあり | cave |
hallway.world | 3 | あり | なし | hallway |
lines.world | 1 | あり | なし | line |
willow-four-erratics-multisensor.world | 4 | あり | あり | willow-full |
先ほど起動したシミュレータを終了し,別のworldファイルを引数として指定してみましょう.
ここではworld
ファイルにwillow-four-erratics-multisensor
を指定して実行します.
|
|
上記を実行すると下記のようなウィンドウが起動します.
ロボットが画面外にいるので,ドラッグして視点を移動し,ロボットを探しましょう. ロボットはcaveと少し違いがありますが,赤い矩形で表示されています.
rviz2によるデータの可視化
可視化ツールであるrvizにより,ロボットやセンサ情報を可視化しましょう. worldファイルにcaveを指定して改めてstageシミュレーターを起動します. stageの情報を読み込みながらrvizを起動する際には,下記のコマンドを実行します.
|
|
上記を実行するとrvizが起動します. 初期の状態では,rvizの真ん中のエリアにロボットの3次元位置,姿勢を表す赤緑青色の軸, LiDARで取得した点群データが赤色の点で表示されます.
シミュレータとrvizの視点を揃えると,LiDARで正確に点群データを取得できていることが確認できます.
キーボードによるロボットの操作
キーボードを用いてロボットを操作しましょう.
stage用のパッケージが用意されている訳ではないため,汎用性の高いteleop_twist_keyboard
パッケージを利用します.
下記のコマンドを実行しましょう.
|
|
表示のように,i
で前進,k
で後退,j
とl
でそれぞれ左,右回転となります.