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

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

 

はじめに ロボットの開発で良く用いられるプラットフォームとしてはROSが挙げられると思います。しかしながら、複数人で開発をする場合に環境を合わせるのが大変、ライブラリインストールを失敗してOSを初期化せざるを得なかった、マシンスペックを柔軟に変えて試したい、など様々な課題も上がってくるかと思います。 もし、上記のような課題を抱えている場合はAWS RoboMakerを使った、クラウドでのロボットアプリケーション開発をおすすめします。 本記事ではAWS RoboMakerの概要と、大まかな開発の流れを紹介し、具体的なイメージをもっていただくことを目的としています。 AWS RoboMakerとは AWS RoboMaker 公式ページ

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

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

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

このようになってしまうと、今回のシミュレーションジョブは終了してしまうため、新しく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モータを制御する際にモータコントローラを使用すると思いますが、複数のモータを制御する際は配線が複雑になってしまいがちです。   RoboStation https://rb-station.com/blogs/arti...
Read More
Arduinoのrosserialで「Unable to sync with device」というエラーが出た場合の対処
Arduinoのrosserialで「Unable to sync with device」というエラーが出た場合の対処
概要 ArduinoでROSのトピックを受信して動作をさせたいときに、使うのがrosserialです。 rosserial_arduino このrosserial_arduinoを用いてArduinoと繋げてROSトピックを投げ...
Read More
Arduinoのコードでキュー(Queue)を使う
Arduinoのコードでキュー(Queue)を使う
概要 Arduinoのコードを書く際に、処理をキューイングして順番に処理をしていきたい時がありました。Arduinoにはarrayはありますが、FIFO(後述)型のキューはデフォルトでは無いため、外部ライブラリをインクルードする必要が...
Read More