RCJ(RoboCupJunior )の Rescue Simulation(Webots-Erebus)についての情報です。
この Erebus の最新版は、Ver.21.2.3.です。
https://erebus.rcj.cloud/
この画面の左の「Download」で入手できます。
しかし、ここで入手したモジュールを展開して実行してもエラーで実行できません。
適当なフィールドを指定して起動すると・・・
右下に赤い文字で、エラーが表示されます。
もちろんこのままでは、ロボットも動きません。(動かせません)
で・・・この解消方法を伺ったので書いておきます。
\Erebus-v21_2_3\game\controllers に robot1Controller というディレクトリがあります。
この robot1Controller をディレクトごと複写します。(コピーして、そのままペーストする)
複写したディレクトリを robot0Controller という名前にします。(← 記述間違いがあったので訂正しました)
これで、controllers の下は robot0Controller と robot1Controller の2つになりました。
(robot0Controller と robot1Controller のディレクトリの中には .gitkeep というファイルがあるはずです)
さて、これで、もう一度、適当なフィールドを指定して起動してみます。
はい、エラーが消えました。
ロボットもちゃんと動きます。
この新しい版数のプラットフォームがリリースされてから2週間以上経過しているのに、何も文句が上がっていないのは・・・(全世界で)Rescue Simulation をやっているチームは殆ど居ないってこと!?(笑)
逆に、これをリリースする方は、ちゃんと動作テストをしたのかなぁ・・・
これについては、近々に対応されると考えます。(また、新しい版数になる・・・?)
ついでにもう一つ・・・
HPにあるサンプルプログラムをダウンロードします。
https://erebus.rcj.cloud/docs/tutorials/navigate-the-maze/
ここの、Exemplar code のところにある Python をクリック
すると、sample.py というファイルが落ちてきます。
この sample.py を実行すると・・・
これまた、エラーで実行できません。
う~ん、ここもチェック不足ですか・・・!?
エラーの内容は
Warning: "leftDist" device not found.
ということで、device の名前が間違っているようです。
sample.py の中身をみてみると・・・ モーターやセンサーのデバイス名が、軒並み合っていません。(おそらく名称が古い!)
私の想像だと・・・プラットフォームのバージョンアップを繰り返す中で、標準のデバイス名が変更されたのに、サンプルプログラムを変更しなかったので不整合が生じた・・・ということだろうと思ってます。
こちらは・・・対応されるのかなぁ・・・
これが正解か分かりませんが・・・
left wheel motor --> wheel1 motor
right wheel motor --> wheel2 motor
leftDist --> ps5
frontDist --> ps0
rightDist --> ps2
camera --> camera_right
color --> colour_sensor
この変更で、少なくともエラーは出なくなります。