AWS RoboMakerでのワールド生成

AWS RoboMakerは、ROSのロボットアプリケーションの開発をクラウド上で行うことができる、AWSのサービスです。詳しくは下記の記事をご覧ください。

https://rb-station.com/blogs/article/aws-robomaker-cloud-robot

本記事では、AWS RoboMakerにおいて、ワールドを生成し、シミュレーションジョブで使用するまでの流れを解説します。

ワールドテンプレートの作成

まず、ワールドを生成するための設定が入ったテンプレートを精製する必要があります。AWS RoboMakerのコンソール画面のサイドバーにて「ワールドテンプレート」を選択後、「テンプレートを作成」ボタンを押してワールドテンプレートを作成します。

ワールドテンプレートの生成

「テンプレートを作成」ボタンを押下すると、テンプレート作成画面が表示されます。初めは、AWS側で用意されているサンプルテンプレートを使って生成する形が良いかと思います。サンプルテンプレートの「参照して選択」を選択しましょう。

ワールドテンプレート作成画面

AWSが用意しているサンプルテンプレートがいくつか表示されますので、今回はベッドルームを選択します。

テンプレート選択

部屋を作成

「部屋」を選んで、新しい部屋を作りましょう。1つの部屋、1つの廊下、1つのバスルームの3つを作っていきます。サイドバーの「部屋」から「部屋を追加」ボタンを押して、新しく部屋を作っていきます。

まず、部屋を繋ぐ廊下を作りたいので、ルームタイプを「廊下」として、サイズを3x1としました。

ルーム

お風呂も作りましょう。ルームタイプをバスルームにします。

これで部屋が3つできました。

部屋を3つ作成する

部屋同士の接続を作る

作成した3つの部屋を繋ぐ設定を作っていきます。「接続を追加」ボタンで部屋同士を繋ぐことができます。今回は寝室⇆廊下⇆バスルームと接続をしたかったので、それぞれの2つの接続を追加しました。

接続タイプの「玄関口」はいわゆる玄関というよりはドアが設置されるようなつなぎ口になるイメージです。

接続

家具の設定

 サイドバーの「家具」から、部屋に設置する家具の設定を行うことができます。バスルームだけ設置する家具を変えたかったので設定をしてみます。「追加  カスタム家具」ボタンで家具の設定をしていきます。

フィルタータイプで「ルーム名別」を選択した上で、先程作成した部屋のBath Roomを選択し、家具タイプにバスとシャワーを追加しました。これにより、風呂桶とシャワーのみが家具として設置される形となります。

家具の設置

ワールドの生成

ワールドテンプレートが作成できたらそのテンプレートを元にワールドを生成します。「ワールドを生成」ボタンを押した後、フロアプラン(部屋の配置パターン)と内部バリエーション(部屋内に設置されるオブジェクトのパターン)について設定をします。

 ワールドを生成

 その後、「ワールドを生成」ボタンを押すと、生成ジョブが起動するのでしばらくすると、ワールドが生成されます。生成ジョブの一覧で、ステータスが実行中から完了済みになるとワールドが生成されています。

生成ジョブ

サイドバーでワールドを選択すると、生成したワールドの一覧を見ることができます。

ワールド

これが今回生成されたワールドです。寝室、廊下、バスルームが接続されていることがわかると思います。

寝室のベッドが邪魔で部屋の中に入れなそうですが・・

生成されたマップ

シミュレーションジョブで生成したワールドを使用

 AWS RoboMakerが提供しているサンプルプロジェクトのHelloWorldアプリケーションを用いている場合は、シミュレーションジョブを起動する際に「シミュレーションアプリケーション設定」の起動ファイルをworldforge_world.launchにしましょう。

このlaunchファイルの中身としては、launch_world.launchを起動しており、これがシミュレーションアプリケーションで設定したワールドを呼び出す設定となっています。

 

  <include file="$(find aws_robomaker_worldforge_worlds)/launch/launch_world.launch">
    <arg name="gui" default="$(arg gui)"/>
  </include>

 

その後、シミュレーションジョブの「WorldForge からワールドをインポート 」セクションにて、先ほど生成したワールドを選択します。

ワールドを選択

シミュレーションジョブを起動すると、先ほど作成したワールドが正常に読み込まれているのがわかります。

gazebo 

 

Aws robomaker

Related Posts

TB6600を使ってステッピングモータをArduinoで動作させる
TB6600を使ってステッピングモータをArduinoで動作させる
概要 TB6600はステッピングモータを制御することができる、ステッピングモータコントローラです。TB6600を用いることで、ステッピングモータの回転速度や回転の粒度、方向などをマイコンから制御できるようになります。本記事ではTB66...
Read More
ACアダプターから得られた電源を回路に組み込む
ACアダプターから得られた電源を回路に組み込む
概要 コンセントから得られる交流の電源を、ACアダプターでDC電源に変換をした上で電子回路に導入したいときの方法について解説をします。 ネジ端子 ACアダプターの端子を+と-に分けてくれるネジ端子がありますので、これを用いることでDC...
Read More
WindowsでArduino Uno互換ボードに書き込む時にシリアルポートが選択できない時の対処法
WindowsでArduino Uno互換ボードに書き込む時にシリアルポートが選択できない時の対処法
概要 Arduino Uno R3の互換ボードを用いる時、WindowsでArduino IDEを開き、シリアルポートを繋げようとした際にグレーアウトされてしまって選択することができない場合があるので、解決方法について解説をします。 ...
Read More