Unityでマイクロマウスをシミュレートしたい

この記事は慶應ロ技研 Advent Calender の8日目です
7日目:AndroidとArduinoUnoの通信仕方|9日目:コンパイルエラーを出したくない(C言語)
「数学1Bの単位落としちゃった!!!!!!!!!!!!!!」とバスの中で叫ぶことが現実になりそうで怯えておりますishtarmk2です。さっさと成人してセイクで優勝して忘れたいところですね。

さて今回はマイクロマウスというロボコンの話です。大雑把にいうとマウスと呼ばれる自動制御の非常に小さいロボットで正方形のマスで区切られた正方形の迷路を探索し予めインプットされたゴールを目指すという趣旨の競技です。重要なのは1試合につき2回走るという点で、2回目の走行時には1回目に取得したデータを保持することが可能なので、1回目で迷路を舐め回すかのように探索して、そのデータをもとに2回目で最速で走り抜けるのが王道戦略となっています。さらなる詳細は公式で。まあ動画を見ていただくのが一番早いでしょう。

さて現在我々は来年11月の大会に向けてマウスを製作するためチームを結成し、マウスの設計を行っている最中です。私は探索プログラムの担当となりました。さてアルゴリズムの記述自体は時間さえあれば可能なのですが、実際に走らせてみてどれくらいのタイムが叩き出せるのかはマウスがないとわかりません。さらに言うと1週目の探索によって最短に近い経路を数パターン見つけたとしてもその時点では情熱思想理念頭脳気品優雅さ勤勉さそして何よりも速さが足りないわけです。
hayasanonasa
その中から最速で走れるルートを選択して2週目に最速で走ってやる必要があります。例えばジグザグの経路をジグザグに走行するより斜め45度に直進する方が速かったりします。
maus_naname
まあつまり2周ぶんのアルゴリズムを作って試す必要があるわけです。さらに言うと試走のためには迷路が要ります。アールティというショップで売っているのですがこれが如何せん高い。
expensivemeiro
自作路線というのもアリですがそもそも実際の走行のみに頼っていると山奥の矢上サティアンキャンパスまで出向かないことにはアルゴリズムのテストができません。つまり金もねえ時間もねぇ迷路もねえ土地もねえロ技犬毎日ぐーるぐるの吉幾三状態なので東大へ出るだPC上でシミュレートしてやりたいわけです。現在そのツールとしてunityというゲームエンジンに目を付けています。

unitii

実はこの手のシミュレータというのは1つ既製品があるのですが何故unityなのかというとまず単に別のサークルで使い慣れてるからというのが1つ。既製品の方はVisualBasicで書かなきゃならないらしく一度も書いたことのNASAってわけで開発環境もないしunityで作ってしまった方が早そうなわけです。2つ目の理由は物理的なシミュレーションもunityならできるという点。unityは3Dゲームのエンジンで色々力学的な処理をやってくれるのでその辺が非常に楽です。最後に上の画像にもあるようにゲームのパッケージとしてビルドする前なら簡単に一時停止してその都度状態を手軽に確認できるという点です。例えば黒塗りの壁に追突してしまった時など示談の条件原因を素早く特定できます。
kuronuri
ぶっちゃけまだ構想段階なので完成したらまた記事を書こうと思います。

あとがき

アドベントカレンダー8日目とありますが投稿日を見ていただくとわかる通り現在12月9日です。8日目の担当者が書けないことが7日に発覚し急遽2つ目の記事を書くことになったはいいものの数学の中間だのに追われていたせいというのもあり帰宅したとたん強烈な眠みに襲われ気付いたら8日が消えていました。ご迷惑及びご心配おかけしたことをここにお詫び申し上げます。以降の記事にもご期待ください。
23_02_kw1f0

広告

Unityでマイクロマウスをシミュレートしたい」への2件のフィードバック

  1. ピンバック: コンパイルエラーを出したくない(C言語) | 慶應義塾大学ロボット技術研究会

  2. ピンバック: コンパイルエラーを出したくない(C言語) | 慶應義塾大学ロボット技術研究会

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中