本記事では、AWS RoboMakerでシミュレーションジョブが起動せず「失敗」と表記されてしまった場合のデバッグ方法について解説をします。

AWS RoboMakerの概要については下記記事を参考にしてください。 

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

シミュレーションジョブが失敗する

シミュレーションジョブの失敗

シミュレーションジョブを実行するとたまにステータスが「失敗」と表記されて起動しない時があります。

このようになってしまうと、今回のシミュレーションジョブは終了してしまうため、新しくbundleしたtarファイルをアップロードの上、シミュレーションジョブを新たに作成しなければいけなくなります。

CloudWatchのログを参照するCloudWatchログ

シミュレーションジョブのページ下部「設定」の「シミュレーションジョブポート」セクションにある「ログ」を選択すると、新しくタブが開き、CloudWatchの画面に飛ぶと思います。CloudWatchログ

すると、2つのLog streamが選択された状態になります。SimulationApplicationLogsがシミュレーションアプリケーションのログ、RobotApplicationLogsがロボットアプリケーションのログになります。

 通常、初回に/aws/robomaker/SimulationJobs という名前のLog groupsが生成され、その配下にシミュレーションジョブ毎に2つずつLog streamが生成される形となります。

それぞれのCloudWatchログを見ると何が原因で処理が落ちてしまったのかが分かるので修正をしていきましょう。

Aws robomakerRos

Related Posts

L293Dモータシールドを用いて4つのDCモータを1つの基盤で制御
L293Dモータシールドを用いて4つのDCモータを1つの基盤で制御
概要 DCモータをArduinoなどのマイコンで制御する場合、モータドライバやモータコントローラを使用します。 ただし、複数のDCモータを制御しようとすると、モータドライバ、電源、マイコン間の配線が増え、構成が複雑になりがちです。特に...
Read More
ROSのPythonで他のサービスが立ち上がるまで待つ方法
ROSのPythonで他のサービスが立ち上がるまで待つ方法
ROSでパッケージを作成する時に他のサービスが発行するトピックに依存している時など、他のサービスが立ち上がるまで待つ必要がある時があります。 その場合、wait_for_service()関数を使用することで実現できます。この関数は、...
Read More
ROSのLaserScanデータの一定角度の範囲を無視する方法
ROSのLaserScanデータの一定角度の範囲を無視する方法
ROSでLidarセンサーを使う時、ロボットの車体など一定角度の範囲に常に障害物があり、これを無視したい時があると思いますが、その方法を紹介します。 以下は、得られた/scan_rawトピックのデータの一定角度の範囲を無視して新しい/...
Read More