†まず、課題やロボットが具体的に明らかになる前に、決めていたことがある。それは、作動速度は遅くても、正確に動作するロボットを作ろうということである。今回の課題3は...課題2で使用した紙を使用し2つを上下逆になるように組み合わせてフィールドとする。生協のお弁当の四角いプラ容器2つをそれぞれ円内に置き、片方に玉を2個入れる。残りの2個の玉は課題2と同じ位置に置く。それらの玉を、空の容器の方に入れる。†ラインをたどってボール間を移動、その合間にボールの補足、解放をしてミッションを達成する。†2台連携ではタイミングよく連携を取れるかどうかにおいて不確定かと感じたので、一体型にし、代わりにスペック向上を目指した。†ロボットはAの四角い枠に入らなくてはいけないので、できるだけコンパクトになるようにした。その際、課題1で作成したロボットの『移動用モーターを上から吊り下げる』というアイデアを参考にした。分担をしてパーツごとで組むことにした。それを持ち寄って、互いに改良していけば更に高度なものができ、効率化にも繋がると考えたためである。†その『持ち寄り』の先で、完成後も新たに変更した点についてである。先述の通り、コンパクト型にするために課題1でのロボットを参考にこの構造をとった。そのほかにも、横置き型のモーター配置で設計したところ、全体に不安定なロボットになってしまい、その改善という理由がある。†クレーン先のアームはクレーンゲームのように緻密な操作でなくても、確実に細くできるものとしなくてはならない。したがって、背後に壁を設けたり、前後の補足範囲を広くしたり、逆にプラ容器に収まるように横幅を極限まで削ったりした。当初は同じものをアームじゅうにつたわせて、シンプルな構造にしていたが、若干ガクガクしたりで不安定だったため、ギアが最も噛む構造を探して新しい組み合わせに変更した。両側からギアで挟むことで、アームの連動性も上がった。†クレーンをもちあげるのはたった一つのモーターなので、速さよりも圧倒的にパワーが必要となった。比重の大きいギアを採用した。課題2と同様、色覚センサーの位置にこだわった。作成したプログラムの都合上、ラインの横幅よりも少しだけ短いくらいの横幅がちょうど良い。前後関係も、前回同様、移動のモーターよりわずかに前方というふうにした。†プログラムの組みやすさを考えると以下の通りとなった。確実にボールを捉えることができ安定して走破できるための工夫を凝らした。二台はbluetoothで連携している。ラグの考慮として、short_break(小休憩)などを使ってつりあいをとる。効率にも目を向けて、作業中も注釈文やビープ音を使って修正箇所を発見しやすくした。黒いラインを辿ることのみの移動とし全ての行程を確実なものにした。†SLAVEのなす操作は、ボールをホールド、リリースしたり、クレーンを上昇・下降したりと理論上は単純なものばかりである。17あとは受け取った番号に合わせて動作するのみである。(センサーなしの制御となるので、ここの調整に時間を割かれた。//小休憩(ラジコンの課題の時これがなければカクカクした動作となり、ちょっとずつしか動かないということで入れた。//色覚センサー黒のしきい値。逆回転の右回転がパワー100なのかは今考えると不明。(ミスかもしれない)それぞれの動作のパワーの大きさは、内側に行く動きの大きさに比例させた。このことでタイマーを使う時に違和感がなくなる。break(小休憩)とbrake(ブレーキ)は綴りが似ているが意味は異なる。その意味に合わせて合わせて使い分けた。交差点や曲がり角など、色覚センサーで調整がつきにくいところを原始的に動作の時間調整だけで解決できるようにカスタマイズしたものである。defineで使ったものを2重に定義するというかたちになるが、defineのほうはライントレースのif文内でも使っているので仕方がない。色覚センサーが二つになったので、正確に、ラインの端ではなく中央を走ることができるようになった。しきい値を使った方法もあり得るのだが、研究した結果、シンプルで美しい、『左右比較型』を基本形とすることにした。左右を比べて、値が小さい方に動けば、黒色を辿ることができるだろうというアイデアである。//followtimeの関数付きサブルーチンなので汎用性が高い。//関数followtimeよりも『実行時の時刻-t0』が小さいときのみ繰り返す。}交差点の識別こちらもサブルーチンは上で紹介したが、もう一度示す。//ある条件(下で説明する)を満たしている間繰り返す。}ある条件について意味的には、左右両方黒とならない。論理積でなく論理和を用いた。高校数学�で習うことだが、ド・モルガンの定理:「”条件A”または”条件B”の否定」は「”条件Aの否定”かつ”条件Bの否定”」等しいという定理があった。ここではSENSOR_1もSENSOR_2も”黒でない”という否定の条件の積集合を取りたいので、論理和を用いた。下準備は整ったので、予定したコースに従っていく。//リリース2球目終了。急ピッチで仕上げたので2台での連携でもっと発展的なことができた、もしくはプログラムを洗練させることができたという思いもあります。ある程度のものは完成しうれしいです。チームメイト3人の協力で、特に私以外の2人の力が大きくて、今回のロボットを制作出来ました。個人的にはロボコンで1位をとれたのは副産物程度にしか思っていません。皆さんの協力だけでなく、説明のなかにも、『課題1』、『課題2』という言葉が使われていますがこれまで頑張ってきた部分をたくさん応用できたこともとてもよかったです。達成感がものすごくて、充実した前期を過ごすことができたと感じました。ありがとうございました。