NHK2017を振り返る(制御班編)

NHK学生ロボコンが終わって早3週間。ロボコンの打ち上げも終わりました。4回生の先輩方はこれで引退です。やけに焼き肉の煙が目に染みる打ち上げでしたね・・・。

さて、ぼちぼちNHK学生ロボコン2017の振り返りをしようと、私(高橋)は制御班のみなさんに話を聞いて回りました。

NHK2016までは制御班が少人数しかいなかったロボハン。1人1台ロボットの制御をしていました。しかし、にわかに制御班の人数が増えた上に、NHK2017のロボットは1台のみというルールのため、今までとは違った開発スタイルを作らなきゃと、制御長の堀口くんは考えました。
まず、ロボットをモジュールに分けて、各モジュールをそれぞれの担当者に作ってもらいます。「情報管理用の‘マスタースレッド’を作って、それと通信するだけで各モジュールが動くようにしたかった。」とのことです。

各モジュールの担当者は、単射(ビーチボールを落とす用の、腕がぐるんと回ってソーサーを打ち出す機構のことをRobohanでは‘単射’と呼んでいる)が三好くん、足回りが田頭くん、ソーサー供給部分のサーボはささっきー、ミニパイ投げ(2mのスポット用重ね投げ機構で、厳しい減量を行った末、泣く泣くなくなったものの、2次審査まではあった)が木水くん、パイ投げ(重ね投げ機構のことをRobohanでは‘パイ投げ’と呼んでいる)が私でした。
いやぁ、春はロボットの取り合いでしたねぇ…。なんせ1台しかないから。
“マスターのGO指令がくるまで待機”とか、“マスターに準備OKサインを送る”とか書いたものです。

モジュールができたら、アセンブリ作業です。都留くんの出番です。
しかしながら、そんなにうまくはいきませんでした。
メインのLPCマイコンが落ちまくるのです!
都留くんは、メイン基盤をもう1枚追加し、LPCマイコン2個体制にしました。が、それでもだめ。
そこで、マスタースレッドはやめ、スレッド1本化しようという方針になりました。
でもまあ最終的には、メイン1で、足回りと単射のスレッド1つ、メイン2で、スレッド間通信を減らしたパイ投げスレッドとマスタースレッドを動かしていました。
アセンブリ担当の都留くんによると、
「現在も原因は明確には特定しきれていません。
最初、マルチスレッド方式でアセンブリをした際は、デッドロックが発生していたと考えていますが、その後安定化のためにスレッドを統一しても、まれに基盤の処理が止まることがあったため、他にも不明なバグがあると考えています」
とのことです。うん、むずかしい。
パイ投げをしていたマイコンは、マスタースレッドとの通信回数を減らせばおちなかったから、複数スレッドを同時に動かしても大丈夫なのではとか私は思っています。どのくらいマルチスレッディングしても大丈夫なのか、この課題はこれから三好くんが実験して解明するそうです。がんばって!

とまあ、1次審査後からの流れはこんなもんです。
次は4人のインタビューをまとめておきます。

まず1人目、アセンブリ作業、操縦、2次審査後からパイ投げの制御を担当した都留くん(3回生)。彼は去年も操縦をしていました。
――工夫した点は?
「去年の苦い経験も踏まえて、本番でできるだけリトライをしなくて済むように、あるボタンを押しながら〜することで…といった裏コマンドをいくつも用意して、全部の機構が手動でも動くようにしていました。」
――苦労した点は?
「課題と作業の両立に苦労しました。ロボコンをやる以上、勉強をある程度諦めている人が殆どかもしれませんが、僕は大学に入る前から行きたい研究室を決めていて、そこに入るためにも勉強を怠ることができなくて、結局徹夜続きの生活でした。」

「足回りのギアを速くしたのが勝利に繋がったのは間違いない。」と主張する都留くんでした。

ということで、2人目、足回りの制御担当の田頭くん(3回生)です。
――どんな制御をしましたか?
「PID制御と台形加速。」
――工夫した点は?
「自分以外の人もプログラムを変えやすいようにした点。」
――苦労した点は?
「PIDのパラメータ調整でしょ。」
――当初の目標は何ですか?
「はやく!」

「もっと頭のおかしいスピードがよかった…」とぼやく田頭くんでした。

3人目は三好くん。単射の制御を担当していました。出場メンバーにもなった期待の2回生です。
――どんな制御をしましたか?
「サーボで8m用にソーサーの位置を調整し、エンコーダで腕を回すスピードを調整してリミットスイッチで止まるようにしました。因みに、ポテンショは運搬中にずれるから、エンコーダとリミットスイッチに変えました。」
――工夫した点は?
「1つのwhileループで動くようにしたことと、操縦者のボタン操作を少なくしたことです。一応試合の状況に合わせて手動でも操縦できるコマンドも増やしましたけど。あと、エンコーダの値が、トルクがかかると回ってないのに増えていくという謎仕様だったため、それに対応したプログラムにしました。」
――苦労した点は?
「仰角調整するとき、上げるときと下げるときで出力の値が違ったり、目的の角度によって、PIDの値を変えたりしていたことです。」
――当初の目標は何ですか?
「直感的な操作で操縦できたらいいなぁ。」

ピットで先輩が戦略に関して喧嘩していたとか大変な目にあったそうな、期待の次期制御長三好くんでした。

最後のおまけの4人目勝田くん(2回生)です。彼はLRFを扱っていました。laser range finderの略ですね。スポットのポールを見て、自己位置推定しようと試みたのです。
――ずばり、成果は?
「壁を認識できるようになりました。」
――どうやって?
「ハフ変換を使って、壁状の点かそうでないかを判別しました。それによって、自分(LRFを積んだ機体)の壁に対する距離と角度がわかるようになりました。」
――ポールは認識できなかったのですか?
「円状のものを認識するのは難しかったです。センサとポールの距離が近いときはできました。」
――おお、すごい。
「自主研究でスラムできたら来年の機体には積みたい。」

「ハフ変換のプログラムは朝まで書いていた。」勝田くんでした。お疲れさまです。

ここまで読んでくださって、ありがとうございます。長かったですね。長かったです。疲れました。でも、ここに書いた以上のもっとたくさんのことをしました。このほかの人もいろいろ関わっています。インタビューではメモを取る手が痛くなるほど話を聞きました。書かないのが惜しいです。

というわけで知りたい方、詳しい話は本人たちに直接聞いてください。

ここまでのお付き合い、ありがとうございました。

ますます精進して参りますので、引き続き応援よろしくお願いいたします。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>