2016年1月30日土曜日

今期を振り返って(2014-2015) ソフトウェア(+大会)編

4月

モータを回すプログラムを書いたものの,ハードトラブルで2週間程モーターを回せない日々が続きました.それ故,まともに2つのタイヤが回ったときはかなり興奮しました.次に台形加速するプログラムを書きはじめましたが,ワークショップに出ていないこともあり,いまいち台形加速のプログラムのイメージを描けないままに何日も過ぎていきました(ワークショップに出ることをお勧めします).なんとか,台形加速ができるようになったころには4月も終わりかけていたと思います.

5月

台形加速も一段落し,超信地旋回のプログラムを書き始めました.超信地旋回は台形加速の関数を利用するだけだったのですぐにできるようになりました.その後壁制御のプログラムを書き始めたのですがセンサー値の取り方によって値が大きく変わるため調整が難しく時間がかかりました.(この時点ではセンサー値の取り方に大きなバグが潜んでいました)

6月

理科大主催のプチ大会で何とかゴールできるようにと,左手法を書き始めました.左手法のアルゴリズムはすぐにできたのですが,それと走行用の関数を組み合わせることに苦労しました.なんとかプチ大会までには区画ごとに止まる左手法を完成させることができました.座標管理もこの頃に導入しました.

7月

6月の終わりごろから7月にかけては区画ごとに止まらない左手法の導入に取り組んでいました.加減速周辺のバグで区画がずれたり,ゴールで壁にぶち当たったりしてました.テスト前には区画ごとに止まらない左手法は導入できました.このころからクロソイド曲線の軌道をExcelで書いたりしてスラロームの準備をしていました.

8月

夏休みが始まり部室にちょくちょく顔を出しながらプログラムを書いていましたが進捗はあまり出ていませんでした.この頃DxLibを使ってスラロームの軌道シミュレータを作りました.

9月

夏合宿ではスラロームに取り組みました.90度曲がるつもりのプログラムがクロソイド曲線のような軌道になったりと中々上手くいきませんでした.原因は度数法と弧度法の変換ミスだったり,何故か自作シミュレータのパラメータを信じず適当に入れていた等のくだらない事でした.そんなこんなで何とかスラロームもできるようになりました.この後,足立法を入れるためにTera Termでマップを表示する機能だったり,壁情報を保存するプログラムを作りました.9月が終わるころには何とかだましだましの足立法ができるようになっていました.

10月

10月になり大会シーズンが始まりました.このころは足立法で歩数マップを展開するときの時間を考えたプログラムができておらず,探索中の直進のずれなどで悩んだりしていました.
-東日本地区大会-
足立法が何とかできる程度の段階でした.何とか完走させようと徹夜で大会用のプログラムを書いて挑みました.自分の番を待つ間,マウスを持ちながら座っていると徹夜の疲れからか寝てしまいマウスを落下させるというアホみたいなミスをしてしまいました.このときに電源スイッチがはじけ飛んでしまいました.幸いはんだごてを持っていらっしゃった団体の方に貸していただきその場しのぎの修理はできたのですが,落下時にコネクタが半差しになったことに気が付かなかったために,いざ走らせようとすると変な挙動をして止まってしまい未完走という苦い結果で終わってしまいました.
-東北地区大会-
東日本での失敗をバネに調整を重ねある程度走れるようになっていましたが,最短走行での大回りカーブに壁切れ判定を入れておらず調整も甘かった為,最短走行は中々安定しませんでした.大会前日に徹夜で壁切れ判定を導入し,何とか最短もそれなりに走れるようになりました.結果,全走行でリタイアすることなく,フレッシュマンクラス優勝することができました.

11月

 この頃には斜め入りの最短パス生成,探索シミュレーターなども出来上がり,ターンの調整にほとんどの時間を費やしていました.
-全日本学生大会- 
 学生大会の準備に追われあまり調整ができないままだったので(準備がなくても無理だった気がするが)難易度の高い迷路にやられ完走できませんでした.原因の大部分は調整の甘さだったと思います.また,調整の甘さをカバーする壁切れ補正などを入れていなかったのも大きかったですね.それまでのフレッシュマンクラスレベルの迷路であれば,なんだかんだで走れていたのでそれらの要素を軽んじていたのがいけなかったように思います.
-全日本大会-
シーズン最後の大会.フレッシュマンクラスはそこまで難易度の高い迷路ではなかったこともあり,一往復で最短経路を導出できたため,最短走行を4回する機会が得られました.最短1回目はMaxパラメータ(斜めなし)の一つ下のもので走行し無難にゴール,2回目はMaxパラメータ(斜めなし)でゴール,3回目は斜めありのMaxパラメータで走らせましたが,最初の斜めで引っかかりリタイア,最後の4回目は斜めありとなしで悩みましたが,「勝負したほうがいいのでは」との審査員の方からのアドバイスで斜めありMaxパラメータで走らせたところ運よくゴールできたためフレッシュマンクラス準優勝することができました.

今期を振り返って(2014-2015) ハードウェア編

10月

10月上旬あたりからどのような機体にするか具体的に考えはじめました.先輩方の機体をいろいろと見させていただきイメージが固まっていったように思います.結果として,発色の良いユニバーサル基板に大きなサイズがない,見た目がいいといった理由からモータをケーブルでまたいだ前後分離型にすることに決めました.ただ,どこから具体的な機体の設計を始めたらいいかはっきりとはわかっていませんでした.


11月

具体的な機体の設計はモーターを起点に始めればよいと分かってからはハードの設計は割とすぐに進みました.また,2D CADの扱いにも慣れ始め大分具体的な形が見えてきました.


12月

このころには,おそらく実体配線図を書いていたと思います.2D CADで実際のユニバーサル基板の外形,穴と同じになるように図を作って印刷し,手書きで素子を書きこみ,どう配置していくかを決めていきました.実体配線図が8割くらい出来上がった段階で基板に素子を実装し始めました.


1月

期末試験に恐れをなし,進捗ゼロでした.

2月

再試も終わりテスト勉強から解放され,再びハード製作に取り掛かりました.2月下旬にはハードは8割完成していました.


3月

ハードは下板を残すのみとなっていたのですが,kitmillで下板を削ろうとすると小さく出力されてしまうという現象がなかなか解決できず1,2週間ぐらい進捗がありませんでした(パラメータが正しく入力されていないことが原因でした).下板も3月の終わりにはでき,ハードウェアはめでたく完成となりました.



ソフトウェア編へつづく