苦行記録

有益な情報は特にありません.

斜めの壁制御、完全に理解した

ほんとぉ?

 いままで斜め最短ができないのは、ターンのズレを補正する斜めの壁制御が不完全だったことが原因かと思います。

そこで、いままであれこれやった斜めの壁制御についてまとめたいと思います。

といっても、理論的に考えることのできる脳ではないので、ざっくりとした書き方になりますがご了承ください。

 

斜めの制御 [Mice Wiki]を参考に前センサだけで制御

→前センサの角度が浅すぎて壁や柱にかなり近づいたときしか補正がかからない

 

・半区画先を見る横センサだけで制御

→姿勢を少しでも崩すと真ん中に戻りきらない、壁や柱に寄りすぎると制御がかかりすぎる

 

・センサ値ー壁からの距離の関数を用いてセンサからの値を線形化したものを用いて横センサだけで制御

閾値の調整やPゲインの調整をどう頑張っても壁や柱に寄りすぎたときの制御量が小さいため避けきれない

→制御のかかるタイミングが短い、寄りすぎてると判断したときには手遅れ

 

・横センサ同様に線形化したものを用いて前センサ+横センサで制御

→寄りすぎる前に前センサで補正、寄りすぎなくても横センサで補正

→成功

 

 

ということで、斜めではセンサ値を線形化した前センサと横センサを用いて補正するとうまくいきました。

ただ、自分の場合は前センサと横センサを使うのは斜め直進をするときだけで、各ターンの直線区間や壁切れを読むときは横センサのみを使うようにしています。

閾値の調整がうまくいってるのか、斜め直進時の速度は直進時の速度と変わらずに走れるようになりました。

気合で調整頑張りましょう。

以上、雑な斜めの壁制御の説明でした。

中部地区大会2018

名古屋工学院専門学校で開かれた中部地区大会に参加してきました。

またしても斜め最短で完走できませんでした。

 

大会前日

お金がない貧乏学生なので遠征をするときの交通手段はいつもバスで、今回も高速バスで名古屋に行こうとしました。

が、バスタ新宿でバスを待ってると、WMMCのぱわぷろさんに偶然遭遇し、さらに偶然同じバスに乗ることが判明しました。 

 座席もめっちゃ近くて運命感じました。

 

その後、無事に会場に着き、試走会。

クラシックの迷路は1ヶ月前の東北地区大会の迷路が組まれていました。

バッテリーが十分にある状態では往復で斜め最短ができたので満足して、明日の迷路を祈って会場を去りました。

 

懇親会に参加してもよかったのですが、遠征する際は遠征先の地元の美味しい食べ物を食べたいという願望が常にあるので、今回の夕食は、矢場とん 矢場町本店で、味噌カツと どて煮です。

f:id:nout:20181105092629j:plain

美味しいんですが、味がとにかく濃くて、ご飯をおかわりしているうちにお腹いっぱいになりました。

 

そして、本日の宿はこちら!

...というのは冗談で、ここはカプセルホテル内にあるレストランです。

今回とったカプセルホテルなんですが、色々とモヤモヤしてます。

クソ広くて種類が多い大浴場があるのが地下4階、ゲームセンターと称したスロットと競馬ゲームだけのこの世の終わりみたいな空間、2階から5階は降りることができず6,7階がカプセル、受付近くのソファに禁煙の文字があるのに、ソファの裏は壁一枚挟んで喫煙スペース、etc...

カプセル内は普通だったので、満足です。

 

大会当日

自分の出走は午後からだったので、午前中は色々見てました。

ハーフでは宇宙人頂上決戦が繰り広げられていてアツかったです。

 

午前の出走が終わり、昼食は他サークルの方たちと一緒に駅近くの定食屋に行きました。

券売機で食券を購入するタイプの店で、定食のボタンを押した後に、お釣りを出そうとして取り消しのボタンを押したところ、その斜め右上にあったボタンの「レモンサワー」の食券が出てきました。←は?


券売機の取り消しボタンとレモンサワーのボタンが内部で短絡していたってぼくは信じてます。

どなたか名古屋に行った際は検証してみてください。

それと、レモンサワーは普通に美味しかったです。

 

そうして自分の出走を迎えたんですが、

 飲酒運転をしたせいか、中盤の斜め直進で姿勢を崩し、出口でターンの内側の壁と柱にぶつかり、斜め最短できませんでした。

 

競技終了後に何回か走らせたところ、酔いが覚めたのか何故か完走するようになったので、出走前に酒を飲むもんじゃないなと思いました。

 

大会後はいつも通り、夜行バスに乗るまで時間があったので、名古屋駅世界の山ちゃんに行きました。

名古屋といえば手羽先のイメージがあったので、食べてみたんですが、胡椒が辛すぎました。

 名古屋の方は味が濃いのが好きなんですかね...

ですが、酒が進んだので良しとします。

 

とりあえず今回食べたかったものは食べることができたので、来年はひつまぶしを食べたいと思います。

 

まとめ

中部地区大会は宇宙人だらけで、トップ争いのドラマがすべての競技で見られたのでとても面白かったです。

 

最後に、

 

飲酒運転はしてはいけない(戒め)

東北地区大会2018

山形県長井市で行われた東北地区大会に参加してきました。

 

大会前日

行きはバスで行こうとしたのですが、探すのが遅かったため、試走会には間に合わない時間に着くバスに乗りました。

台風25号が接近しており、運休になるのが怖かったのですが、無事に山形駅に着きました。

が、山形の交通の便を舐めていたため、1時間ほど待ったバスで、さらに1時間半もかけて長井市になんとかたどり着きました。

なんやかんやで会場近くのラーメン屋で山形らしく、馬肉チャーシューメン↓を食べたりしていたら、会場に着いた頃には20時を回っていました。

↓味付けが昔ながらの優しい味で美味しかったです。

f:id:nout:20181007191707j:plain

そうです、東京から大会の会場まで実に10時間もかかっていたんですね。

びっくりしました。

 そして、いよいよ噂の東北地区大会名物の「精神と時の部屋」を目撃しました。

規 定 外 の 段 差

滑 り ま く る 路 面

ガ バ ガ バ な 柱

って感じのクラシック迷路とすごくまともなハーフ迷路の2つでデバッグ作業を開始しました。

 

大会当日

0時を過ぎても、引き続き、精神と時の部屋で作業をしていたんですが、クラシックもハーフも安定せず、2時を過ぎた辺りから部屋の隅に倒れる方が増え、作業をしている方の顔が暗くなり、作業をする方が減っていきました。

まさに地獄です。

結局、自分は朝5時まで作業をし、精神と時の部屋の隣の就寝部屋(安置所)に特攻し、死んだように眠りにつきました。

 その後、8時半になり、絶望の起床とともに寝ぼけながらエントリーをし大会はスタートしました。

結果を申し上げますと、クラシックはハーフの出走の関係で早めの出走でしたが、斜め最短がキマらずに虚無になり、ハーフは凶悪な会場の光環境にやられて一度も完走できずに虚無になりました。

 精神と時の部屋で作業しなくても結果は変わらなかったんじゃねぇかな…

大会後は表彰と交流会だったんですが、表彰の副賞が豪華なのはもちろんのこと、交流会もかなり豪華で、タダで芋煮や馬肉の肉団子などがお腹いっぱい食べれました。

f:id:nout:20181007213603j:plain

芋煮が最高に美味しく、それだけで大会に来てよかったなと思いました。

2x2のビンゴは一つも開くことはなかったんですが…どうして…

 大会後はI.Sysの方に車で帰りのバスの停車駅まで送っていただき、駅近くの漫画喫茶でこの記事を書いています。大変ありがとうございました。

 

大会の感想

東北地区大会は自分が参加した大会のなかで一番豪華な気がします。

精神と時の部屋が用意されていたり、大会後にタダで美味しいご飯が食べれたりと至れり尽くせりです。

他の所属の方と夜遅くまで作業をするのも、大会というよりは合宿のような感じでまた楽しかったです。

ただ、会場の照明が凶悪でセンサ値が飽和したりと環境はかなり苦しかったので、どうにか対策を考えないといけないなと思いました。

 

次は中部地区大会で、それまでにいい加減斜め最短できるマンになれるように頑張りたいと思います。

斜め直進のバグ取りと斜め直進時の壁制御を見直さなければ…

全日本学生大会2018

はじめに

浅草で行われた全日本学生大会に参加してきました。

クラシックのみ参加で、結果は最短キマらず、探索成功しただけでした。

 

敗因

当日はこのような経路を通りました。

f:id:nout:20181001085636j:plain

探索アルゴリズムを往復足立法をやめ、ゴールまで足立法、ゴール後はゴール近辺の未知区画を優先的に探索し、ほぼ全面を探索する、全面探索もどき(全面探索と呼ぶには不完全なもの)で探索しました。

その結果、南回りの長い直線を見つけることができ、直線優先で最短経路を算出した結果、上のような経路が出ました。

ただ、直線優先の経路導出もまだ不完全で、南の直線が損した経路が出ています。

1走目に探索が成功し、あと4走とも出た経路で最短走行したんですが、東の直線の出口で全部引っかかって完走できませんでした。

まだ直進安定性がイマイチだったので、壁切れを読む区間に突入する際(直進の減速と定速の間)に姿勢が崩れて、壁切れを読み間違えた可能性が高いです。

クラシックは2面で競技をやっていたので、競技終了後にもうひとつの面で走らせたところ、一発で同じ経路で完走したため、壁や柱が汚れていた可能性もありましたが、目視では確認できなかったため、埃や環境光など微妙な差があったのかなと思います。

最短経路導出は直線優先のほかに歩数最短も走行時に選択できるようにはしていたので、再現性が確認できた時点で、経路を変えて走らせるべきだったなと思いました。

大会で学ぶことは多いですね。

 

さいごに

懇親会にも参加したんですが、工芸大のからくり工房の方に組織の動かし方を聞けてとてもためになりました。

I.Sysの方ともお話できて、まさか懇親会終わったあとにあんなことになるとは思いませんでした。

次は一週間後に東北地区大会に出場しますが、それまでにハーフを動かせるようにしつつクラシックも安定性を高めて、もっと他の所属の方とも交流できたらいいなと思います。

また、全日本学生大会を運営してくださった方々、台風が迫るなか、めちゃくちゃ早い大会の運営をありがとうございました。

大会後は浅草で観光しました。

 競技も大事だが美味しいものを食べるのも同じぐらい楽しみになっている気がする...

関西地区大会2018

はじめに

関西地区大会に参加してきました。初遠征かつ初一人旅です。

クラシック、ハーフ共に完走しました。

f:id:nout:20180919100725j:plain

さて、完走した感想()ですが、クラシックは1走目で探索するも最初のスラロームで段差にタイヤが食い込み、リタイア。2走目に往復探索が成功し、3走目に吸引ありで小回りターンのみの最短が成功。4走目、5走目で斜め走行をするも失敗。

後に斜め走行できなかった原因が最短パスの生成が間違っており、11区画直進が省かれていたことが判明。

競技終了後に吸引なしのパラメータで走らすも、ゴール直前の段差でクラッシュ。

吸引ありのパラメータは斜め直進時に姿勢が崩れてクラッシュ。

最短パスが出ていても斜め最短ができていたかどうかは微妙です。

結局、上位陣に抜かれて4位で2ポイントゲットしました。

 

ハーフは前日の試走会でなぜか完走した(それまでは不安定で探索できなかった)が、1走、2走は壁の読み間違いや、姿勢が崩れたことで完走できず、3走目で片道探索が成功。4走、5走で小回りターンのみの最短走行をしようとしたが、長めの直進で距離がズレて姿勢が崩れてクラッシュ。

常に不安定な走行でしたが、微妙に探索が早かったため、運良く6位で2ポイントゲットしました。

 

今回の大会ですが、クラシックのほうで、自分も含め、迷路の段差に苦しめられている方が多かったです。

特に車高が低いマウスが段差の影響をかなり受けていました。

路面が滑りやすかったのも要因だと考えられます。

しかし、段差は1mm未満で大会の規定内だったため、今回の大会は、理想状態ではない迷路でも完走できる力が問われていたようです。

何はともあれ完走できたので、この調子で、次は学生大会に向けて頑張りたいと思います。

 

飯 

せっかく関西来たからうまい飯を食うぞって言って豪遊しました。

・串かつ/だるま

串かつといえば「だるま」らしいので突撃しました。

1串100円ちょっとからで、色々飲み食いして2000円でした。

串以上におかわり自由のキャベツを無限に食べていました。

 

・日替わり御膳/魚河岸 宮武

京都の丹波口駅から徒歩10分ほどの店です。

12時に行くと店先で10人ぐらいが待っていました。

自分は1人でカウンター席だったので5分ぐらい待つと入れました。

日替わり御膳はご飯のおかわりが1回できて税別で800円でしたが、全体的にボリュームがあったため、ご飯のおかわりをせずに満腹になりました。

刺し身が新鮮で美味しかったです。

受付の方が優しい方だったので、また行きたいです。

その他に、たこ焼き、ちりとり鍋などを食べましたがどれも美味しかったです。

遠征先で美味しいものを食べるのは最高ですね。 

 

 聖地巡礼

大会と並んで今回の遠征でやりたかったことが、聖地巡礼です。

ゆずソフトから「サノバウィッチ」「千恋*万花」の2作の美少女ゲームについて大阪、京都を歩きました。

 

・サノバウィッチ

どうやら年内にSteamで配信されるらしいっすよ。

綾地寧々√は最後にやりましょう。

 

<通学路>

京都の修学院駅という無人駅から徒歩で10分ぐらいの、府道104号線と修学院離宮道の間です。

意外と車の行き来がありました。

f:id:nout:20180919105313j:plain

f:id:nout:20180919105436j:plain

<めぐるロード>

因幡めぐる√でよく登場する遠回りをする通学路です。

先程の通学路から10分ほど小道を歩くとあります。

ガッツリ住宅街でした。

親 の 顔 よ り 見 た 背 景

f:id:nout:20180919110508j:plain

f:id:nout:20180919110701j:plain

<ショッピングモール>

大阪駅前にあるグランフロント大阪です。

この中にも聖地があります。

f:id:nout:20180919111200j:plain

f:id:nout:20180919111316j:plain

ショピングモール内>

グランフロント大阪4Fです。

画像には写ってないんですが手前の左側に若干ガラス張りのレストランっぽいものがあるんでチキって堂々と撮れませんでした。

ここも死ぬほど見た背景なのでテンション上がりました。

f:id:nout:20180919111659j:plain

f:id:nout:20180919111738j:plain

<カフェ通り>

グランフロント大阪の近くです。

これマジ?ゲームの背景に比べて撮った写真の角度が違い過ぎるだろ・・・

f:id:nout:20180919112357j:plain

f:id:nout:20180919112459j:plain

 

・千恋*万花

サノバウィッチの次にリリースされたゲームです。

 

花見小路通

祇園四条駅から徒歩5分です。

普段は観光客が多いらしいですが、雨のせいか全然いませんでした。

f:id:nout:20180919113611j:plain

f:id:nout:20180919113726j:plain

白川南通

花見小路通から徒歩5分です。

天気のいい日に行きたかったですね。

f:id:nout:20180919114259j:plain

f:id:nout:20180919114357j:plain

今回の聖地巡礼は以上です。

駅から遠い箇所は行っていないので来年あたりにまた挑戦してみたいと思います。

 

さいごに

今回が一人で初遠征でしたが無事に大会に出場することができ、やらかしたこともあまりなかったので、全国どこでも行けそうな気がします。

学生大会の次は東北地区大会に出場する予定なので、何を食べるか楽しみです。

迷路シミュレータの進捗①

はじめに

そろそろ迷路探索アルゴリズムや最短経路導出に手をつけたくなり、迷路シミュレータの製作をし始めました。

現時点では、迷路データの作成と迷路探索をすることができます。

 

詳細

シミュレータの作成にはProcessingを使用しています。

シミュレータの作成にはDXライブラリが簡単だという情報を耳にしましたが、既に作りかけだったのでこのまま作ることにしました。

youtu.be

ネズミのほうのマウスで画像検索しても良さげなものがなかったのでパソコンのほうのマウスがシミュレータ上では走ります。

動画の迷路は2016年の全日本大会のマイクロマウスクラシックサイズ エキスパートクラスの決勝の迷路です。

単なる足立法ですが、振り回されてほぼ全面を探索するようです。

表示されている数字は歩数マップの数字です。

重み付けを一切していません。

 

迷路データの作成はこんな感じです。

f:id:nout:20180908105724j:plain

壁を置きたい区画にマウスカーソルを合わせて、「W」「A」「S」「D」キーでそれぞれ上左下右に壁を置きます。

隣の区画の壁情報も同時に更新されます。

 

今後

最短経路の導出にはダイクストラ法を用いようと思い、勉強中です。

探索も賢くなりたいものです。

東日本地区大会2018

はじめに
東日本地区大会に参加してきました。
クラシックマウス競技とマイクロマウス競技にエントリーしていましたが、マイクロマウス競技は棄権して(詳細は後述)、クラシックマウス競技のみ出場しました。

大会結果


↑これで不幸にも黒塗りの高級マウスに追突しても安心

足立法の往復探索走行が成功し、小回りターンのみの最短走行が成功し、運良く5位でした。全日本大会出場権と3ポイントゲットです。
直進速度を全然上げることができず、吸引してターン速度を上げてゴリ押しました。
斜め走行をやる雰囲気が出ていたように感じましたが、小回りのみだったので見ていた方はあまり面白くなかったかと思います。
足回りをどうにかして学生大会ぐらいには斜め走行を披露したいなと思います。


以下、長文
前回のブログ更新から大会前日まで
最近、クラシックマウスのDetonatorのマイナーチェンジをしたDetonator re:chargeを調整していましたが、ギアをアクリル製にしたせいで壁にクラッシュするとギアが「ッパーン!」って簡単に割れます。
こうなることは分かっていたんですが、フェールセーフもあるし、そう簡単に割れないやろ、それより噛み合わせサイコーって言って、既に3個割りました。
やっぱ既製品ギアと既製品ホイールの組合せに戻すかーって思って、一部、歯が若干潰れていたギア(このせいで噛み合わせが悪かった)をホイールから外そうとしたらホイールの軸が割れて再度はめることができなくなりました。
予備のホイールはないため、前輪2輪だけ既製品ギア+既製品ホイールのものに戻し、後輪2輪はいつ割れてもおかしくないもののまま、ヒヤヒヤしながら大会当日も調整していました。
斜め走行でコケると走行不可になる可能性があったため、前日に小回りターンの速度を上げて、大会では小回りターンのみの最短走行をすることにしました。

また、探索、最短共に壁切れ補正と前壁補正を入れました。
探索が今まで不安定で、壁を読み間違えてコケて、最短までできずに5走走り終えてしまうことが多々あったためです。
壁切れ補正は左右それぞれで壁あり→壁なし、壁なし→壁ありで補正距離を分け、センサ値の変化量が一定量以上で壁切れを判定するようにしています。
柱を判定するのにも壁を判定するのと同じ閾値にしていますが、柱を読めなかったということは今のところありません。
前壁補正はスラロームの後距離に対して入れています。
一区画先に壁を置いたときのセンサ値を記録しておき、スラロームを終えるときに前壁があった場合、一区画先のセンサ値以上になった瞬間に後距離の走行を終わらせる(スラロームを終わらせる)というように実装しました。
ただ、自分のマウスは前を向くセンサが2つあり、2つとも一区画先のセンサ値になったときに補正とすると、前壁に対して機体の進行方向が直交、もしくは直交ではなく、一区画よりも近づいたときにしか前壁補正が発動しません。
そこで、2つのセンサのどちらかが一区画先のセンサ値以上になったら補正というようにしました。
そうすることでスラローム後の機体の姿勢が多少崩れていても前壁補正がかけられます。
しかし、前壁補正のタイミングがズレて後距離が足りなくなって姿勢を崩すことも多々あるのでまだ不完全です。
そうして、芝浦工大での試走会ではゴールまで遠回りをさせられるようなクソ迷路でもある程度走るようになっていました。

クラシックはそんな感じで進捗があったんですが、ハーフをやる気が起きず、1週間前まで放置していました。
やる気が起きない原因として、センサ値のブレがあったからです。
ハーフマウスを作ったときは、LEDの発光時間が適切な時間より短かったことや、熱収縮チューブでの外光の遮断が不完全だったことでセンサ値のブレが+-30ぐらいで、ああそんなもんかみたいに適当に納得しながらマウス合宿や理科大プチコンでは奇跡的に走らせていたんですが、ある日、LEDの発光時間が短いことに気づいて長くしたらセンサ値のブレが+-80ぐらいになって、は?ってなって放置していました。
外光の遮断が不完全でもあったため、熱収縮でさらに覆った結果、センサ値が全然上がらなくなって、LEDの発光時間が今までの短いだと壁が読めなくなりました。
そのため、ブレをどうにかすることから今回は取り掛かったんですが、とりあえずバッテリー電圧を読んだところ、既に電圧値の時点でブレていました。
なんで今まで気づかなかったんでしょうね。
そこで電源を疑い、色々やった結果、どうも、MIC5219のBYP端子につけてる470pFのコンデンサのせいで発振してたらしく、外すとブレが収まりました。
これでセンサ値のブレが解決したわけですが、調整していると突然、レギュレータがはんだクラックを頻繁に起こすようになり、治ったと思ったら右前と左横を照らす赤外線LEDが点灯しなくなる(右前と左横のLEDは直列されていて、後日、右前のLEDが死んでいたことが判明)などの立て続けのハードトラブルに襲われ、その日は大会前日で、活動できる時間はあと1時間ほどだったので、ついにハーフは諦めることにしました。

最後に
大会直前になってハードトラブルが頻発するのはなんででしょうね。
その場で焦らずに早急に解決する力が欲しいなと思いました。
ともあれ、人生初の公式の大会で探索も最短も成功し、5走きっちり走れたのは嬉しいことです。
この約束も守れたので、この調子で平成最後の大会を楽しみたいと思います。