高専ロボコン鈴鹿Bの反省

## あなたは誰？
3年I科、Bチームの制御班でロボットのマイコン間通信などを担当。

# 高専ロボコンとは
>アイデア対決・全国高等専門学校ロボットコンテスト（高専ロボコン）は、1988年から始まった、若い人たちに既成概念にとらわれず「自らの頭で考え、自らの手でロボットを作る」ことの面白さを体験してもらい、発想する事の大切さ、物作りの素晴らしさを共有してもらう全国規模の教育イベントです。
全国の高専学生が、毎年異なる競技課題に対し、アイデアを駆使してロボットを製作し、競技を通じてその成果を競うもので、発想力と独創力を合言葉に毎年開催され、2022年で35年目を迎えます。
[高専ロボコン](https://official-robocon.com/kosen/ "robokon kosen")より

## 2022高専ロボコン
今年のテーマは __ミラクル☆フライ~空へ舞い上がれ!~__ です。
簡単にルールを説明すると、ロボットで紙飛行機を飛ばし決められたゾーンに乗せ得点を2チームで競い合うというものです。乗せるゾーンは5種類あり、それぞれに得点や制限が設定されています。

## 鈴鹿高専の結果
鈴鹿高専はAチームとBチームの2チームが出場し、Aチームが優勝・全国大会出場、Bチームが2回戦敗退でした。
以下は大会のライブ映像です。(YouTubeリンク)
[高専ロボコン2022東海北陸地区大会](https://youtu.be/WxHT983mPVg)
[Bチーム1回戦](https://youtu.be/WxHT983mPVg?t=5730)
[Bチーム2回戦](https://youtu.be/WxHT983mPVg?t=11294)
[Aチーム1回戦](https://youtu.be/WxHT983mPVg?t=3900)
[Aチーム2回戦](https://youtu.be/WxHT983mPVg?t=11807)
[Aチーム3回戦](https://youtu.be/WxHT983mPVg?t=15474)
[Aチーム決勝戦](https://youtu.be/WxHT983mPVg?t=17561)

## 反省
この記事を読んでいる方には申し訳ないのですが、タイトル通り早速反省点を書いていこうと思います。

__過剰な制御班__
鈴鹿高専ロボコンプロジェクトでは、ロボットのプログラムを書く人を制御班、回路を作る人を回路班、ロボットを設計する人を設計班、ロボットを作る人を加工班と呼ぶのですが,Bチームは今年設計(加工)班が3人、回路班が2人、制御班が3人の8人チームでした。
制御班は3年生の私と2年生の2人の合計3人だったのですがが、はっきり言って出来上がったプログラムは私1人で書き上げることが可能なものでした。
実際今年のロボットの足回りは全く同じではないですが似たようなものを動かした経験はありました。射出機構は程よい感じにモーターを動かせばよく、やったことがないのはマイコン間の通信くらいでした。
結局大会でロボットが動かなかったくせに何を言ってるんだと言われてしまうと何も言い返せないのですが、言い訳をすると大会で動かなかった理由は大会直前に我々の紙飛行機の形が変わったからだと思います。
結局実働は2人だったので上級生として2人の後輩をうまく使えたらよかったなと思っています。

__度重なる仕様変更__
ロボットを作っている途中でより良いものにするために仕様が変更されることはもちろん良いことです。ですが今回は射出機構に変更が加わったのでそれによるコントローラー周りの仕様変更が多かったです。
簡単に説明すると装填部分が大きく回転して1発ずつ装填するものが、大量に積まれた紙飛行機を吸引する仕組みに変わり装填部分を上下させる必要が出てきて、コントローラのスイッチを複数個組み合わせて装填部分を指定するようになり操作が複雑になってしまいました。
それ以外にも設計班とのコミュニケーションがうまく取れていなかったため2台の射出機構を独立させて動かすということが伝わっておらず射出機構ごとの操作で制御が大変なことになっていました。
ここのロボコンでは電気と機械で壁があるように感じるのでそれをなくして情報伝達を密にして行ければよかったなと思っています。

__管理できないスケジュール__
ロボコンが始まって約2ヶ月間スケジュール管理することなく制作が進んでいました。もちろんそれによって起こることは自分以外の状況を知らないという事態でした。これを見かねたプロジェクトリーダーがスケジュール管理役として入ってくれたのですが待っていたのはスケジュール通り進まないということです。いくら予定を立ててもそれ通りに進まなければ何の意味もありません。
今回大きく響いたと思うのはロボット全体の仕上がりがとても遅かったことです。ロボット全体が出来上がらなければ本番を意識した練習もできません。その練習ができないと治すべきところも見つかりません。これは電気も機械も同じです。
まずは自分の力を把握して見積もりをうまくできるようになればいいなと思います。

__終わらないデバッグ__
ロボット制作で最後に行うことはアクチュエータを動作させる信号の値を調整することです。少しの値の変化が大きな結果をもたらします。でもこれをするためにはロボットが正しく動かなければいけません。その前に立ちはだかるのがデバッグをすることです。1発で動くロボットを作ることができればいいのですが、私にはそんなことはできません。
今回もデバッグに大量の時間を取られたので、解説が面倒なのでどんなバグかは説明しませんが原因は多種多様です。コードが間違えていることもあれば回路で線を繋ぎ間違えていることもあるし、無理のある設計ということもあります。前者二つはまだ自力で解決できるものです。回路であれば素子が壊れているのは気付きにくいですが配線を間違えているのは自分で確認をして気付きましょう。コードは想定通りの動きをしなければオシロスコープで出てくる波形を読んでもいいですし、マイコンについていたりするLEDで状態の確認をしてもいいですが、私のおすすめとしてはコードを見直しましょう。経験的にコードを読み直していると無理のある条件分岐や、意味のない一文があったり必要なコードがなかったりします。ラバーダック・デバックおすすめですよ。
後者は設計をしている人だけだと気づかないところに問題があることが多いです。設計途中でもいいので制御班に「こんなスピードでこんな動きをさせたい」と聞くとできそうか出来なさそうかくらいは答えられますし、制御班側でもプログラム設計が捗ります。あとは回路班に配線に無理があるかどうかや基盤を置く場所を教えてあげてください。いつも困ってます。
度重なる仕様変更と同じですがコミュニケーションをもっと取れると良いロボットを作りやすいと思います。

## 最後に
Bチームの制御の1人としてこの記事を書きましたが一番伝えたいことは __頼むから諦めないでほしい__ ということです。大会直前までロボットと向き合っているとメンタルが死にます。そんな状態でチームメンバーが諦めはじめると、元々なくなっているやる気が無に帰します。フリでもいいからやる気を出してくれれば空元気で乗り切ります。
まあ簡単にいうとコミュニケーションを大切にしましょう。多少白熱して言い合えるくらいがちょうどいいんじゃないでしょうか。ちゃんと謝り合うことができればの話ですがね。
Bチームメンバーには感謝を、前プロジェクトリーダーには労いを、新プロジェクトリーダーには激励の意を込めてこの記事を終わります。
ロボコンメンバー以外に参考になるような要素はあまりないかもしれませんが、やはり楽しんで何かを制作できるといいですね。
部内以外に向けた記事を初めて書いたので、読みにくかったりわかりにくいところがあったかもしれませんがここまでお読みいただきありがとうございました。