大実験その15,16

大実験もついに終わってしまいました。
その空虚感からかブログに状況を載せなかったので、一度に載せておきます。
【第15回】
残り2回ということもあって、だいぶ大詰めになってきた。
今回の目標は、いかにライントレースをするかだ。きちんとコースを走りきることは出来るが、まだどうもライン上をサイン関数的に走っている気がするし、第一スピードが出ない。まだ、一周19秒程度。

そこで、先日来のイノシシモードにおける指令値を上げてみたがあまり効果がない。そのため、デバッグの手段の一つである、「Htermとの通信」でH8が今どの状態にいるかをチェック。(200msに一回だが…)
そのとき、われわれは大きな事を発見した。
な、ななななななんと、折角実装してうまくいったと思っていたイノシシモードに状態が遷移していないのだ。じゃぁ、今までの直線で「速くなったような気がしていた」この気分はいったい何だったのだ。

まぁ、コレに気付く前に、カーブでの仕様を変えていたのも原因だったのかもしれない。
カーブでは以前は右に曲がりたいときは、左の車輪の回転数は指令値より上げて、右の車輪の回転数は指令値よりも下げるというようにして、カーブを実装していた。
しかし、この方法だとカーブでのスピードは良いが、直線で余り機体ほどスピードが出ないので、仕様を変えた。それは、曲がりたい方の車輪のみ回転数を下げるという物だ。実際コレを実装すると、直線でのスピードは指令値と等しくなるので、速くなった。
これが良くなかったのかもしれない。これのせいか、イノシシモードはお釈迦になってしまったのだ。

そこで、イノシシモードを外すなどソースコードのスリム化を図ったところ、今までこういう事もあるんじゃないかなとどんどん増やしてきたif文がばっさり消えて、ソースコードが最大値の2/3以下になってしまった。いったい今までの数日間の苦労は何だったんだ。新カーブを実装しただけで最速16秒台まであがってしまったのに…。
まぁ、いいや速くなったし…。

また、これ以上スピードを上げたいという気持ちと、コントロールを良くしたいという気持ちがあって、完成モーメントを減らすべく車体をニッパで切って減らした。すると、減らしすぎてH8を車体に載せるためのねじを留めるスペースまで削ってしまい、載せるのがとても大変だった。ハァ。

【第16回】
今回は、大実験の最終日。泣いても笑っても5時にはT本研から助教授が、タイムアタックを見に来るらしい。そこで、ROM化出来るところからROM化する練習。
我が班は、スリムなソースになったためROM化するのがとても簡単ですぐに出来た。
ROM化したときは、車体の載せた電池を用いて走っていた物だからH8マイコン用の9V電池がすぐ消耗してしまい、センシングの値がうまくとれなかったりと色々不都合が起きてしまったが、電池を交換した結果すぐうまくいくようになった。やはり、人間であれマイコンであれ、おまんまは大切である。

まぁ、実験のメンバが以前からよく言っていたことがある。我が班では「火曜サスペンス劇場」のように、毎回クリティカルな問題がおこると。今回は、RAMのままの時ふと気を抜いた瞬間、ライントレースロボットがものすごいスピードを出して床につっこんでいった。3人とも本気で油断していた。そのため、センシングした信号をマイコンに送るための導線が切れてうまくセンシングが出来ていなかった。それが、本番直前におこった物だからさぁ大変。しかし、かなり焦りつつも一応人前で走らせられる形にした。

さぁ、本番が来た。2番手での出走。しかし、1stラップでいきなり回転を始めてしまう。そこで、もう一度チャンスをいただいて走り始めた結果一周16秒程度で走った。まぁ、練習の時と変わらない。
他の班が遅かったから、一応4班中トップを取ることが出来たが、僕らの目標が助手の先生のマシンのスピードを超えることだったので、それがかなわず残念だった。

さて、これからが大変だ。1/21のプレゼンにむけて色々資料をまとめたり、練習をしなければならない。