創造工学を想像してみよう
Zoomに嫌われています、かげろんです。
ゆるい勉強会@Webで発表しようとしたら家の回線かPCか何かしらに阻まれてマイクが言うことを聞いてくれませんでした。
ということで今回発表しようとしたことを展開してブログに残しておきます。
What is 創造工学?
画像の通りです。
読むの面倒なのでまとめると、
1.チーム作って
2.ロボット作って
3.陣取りゲームして
4.結果をプレゼンする
これを半期(授業15回×4時限)で行います。
律儀にシラバス読んだ方はお疲れ様です。
チーム分け
まずチーム分けです。
これは担任の一存でチーム分け方法が決定し、勝手に割り振られます。
そりゃロボット作るんですからロボコンのメンバーとか組込み最強マンとか欲しいですよね。
僕たちのチームは元ロボコン1人が加わり「なんとかなるだろ!」という気持ちでチームが決定しました。
ロボット製作しなければならないんですけど僕工作機械使うの下手くそなんですよ。やばいですね。
機体班、回路班、制御班の3つに分けて製作を進めるのですがクラスの中ではプログラミングをしているほうな僕は当然のように制御班になりました。
回路もよく分からないのでまあそれはよかったんですけど、組込み全く分からないんですよね。まあほとんどの人がそうだったのでセンスで製作されていきます。
ロボット製作
ロボットを制作するにあたりいくつかルールがあります。
・縦280×横280×高さ200[mm]内に収める
・スタート後、400×400[mm]まで変形可能
・缶を上面に取り付けられる構造
・3Dプリンタによる部品を使用
・5[V]と7.2[V]の電源2つで自律走行
これを達成できるロボットでないと失格ということになるんですかね。少なくとも評価が下がります。
我々のロボットのコンセプトは
荒野を駆け抜ける
テキサストラック
ということで、
・オムニホイールによる素早い走行
・機体を小型化して捕捉されにくくする
・モータを前に置いてFF駆動
という構想を元に製作をしました。
が、そううまくはいかず、
・オムニホイールは製作技術と制御の難しさから断念
・小型化を目指すも結果的に大きくなるが安定
・FF駆動はRR駆動に変更されたが競技会前日にFF駆動に戻る
と全然違うものになってしまいました。まあ仕方ないです。
しかし他チームにない個性的なポイントもあり、
・防衛時に腕(タコ糸)を振りまして展開し、圧倒的防衛性能を実現
・右左折時に素早く旋回してコーナーで差をつける
以上の機能が実装されました。
制御班について
制御班はBeagleBone Black(BBB)を用いて走行、センシングの制御をします。
BBBの仕様としては、
RAM:512MB
ROM:2GB or 6GB
SDカード使用可能
aruduino等使用不可
であり、SDブートをしないのであればC言語とPythonのみ使えるらしいです。
僕が実装した最終的な機能は、
・フォトリフレクタ8個で構成されるライントレーサを用いて白線に沿って走行
・素早い右左折
・スイッチによって攻防切替
の3つです。
具体的なソースコードについてはGitHubに上げているんですけどとても汚くて見せられないので頑張って探してください。
制御実装で困った点
製作する上で3つの問題点が発生しました。
1.プログラムが書けない
2.見通しを立てられない
3.破壊
1.プログラムが書けない
我々、システム制御工学科は名前の通り情報系の印象を持ちがちですが実際はこの創造工学に表れているようにロボット工学科です。
プログラムに夢を持って入学した人もいたようですが、入ってからやっている人が多いわけでもなく、私はたまたまやっていたので制御班になったわけです。
制御班にはもう1人メンバーがいたんですけど「プログラムは分からないから任せる」ということで相談もしづらい環境になりました。
しかし、競技会直前の制御の調整では一転、他の班のメンバーから「こうしたほうがいいんじゃない?」と同じことを何度も何度も口を出されてとてもイライラしました。
今となっては大人気ないというか、切羽詰まっていたんだなとは思いますが、あの時の自分にとっては間違いないストレスの一端でした。
2.見通しが立てられない
ロボット作成上他の班に進捗が依存しており、回路が完成しないと動作確認ができず、機体が完成しないと走行テストができません。
つまり、ロボットの全体が完成しないとまともに調整ができないというわけです。
我々の班は様々な設計変更が発生したこともあり、計画の遅れを感じました。
が、機体班曰く「計画通り」らしく、そう言われるとそうかとしか言えず機体が製作されました。
機体班の比重が大きく、結果的にロマン設計が詰まった機体になってしまい、メンテナンス性が悪い上に調整の時間が少なくなりました。
3.破壊
制御班の全てが詰まったBeagleBone Black、それを破壊しました。5台も。
原因としては、
・動作時にテスターを使用してしまってショート
・基板の設計・はんだ付けミス
・エンドミルのせいか基盤にバリが発生し、基盤に触れるとショート
しかも前日に1台、当日の朝に1台破壊し、当然先生にも呆れられました。本当に申し訳ありませんでした。
競技会
ここまでの数々の苦難を乗り越え競技会です。
競技会のルールは、
・攻防各3分間で陣取りor妨害
・相手と接触すると競技終了
・防衛側で1分間発進できないとペナルティ
・多くのポイントを獲得したほうが勝利
となります。
この競技会は授業14回目で行われるのでそれまでの13回分で製作しなければなりません。
では実際13回分の授業の時間は、45分授業×4時限×13週分=約40時間となります。数字だけじゃよく分かりませんがよく考えてみてください。週5勤務8時間労働の1週間分の時間ですね。
これは残業しないと完成して調整はできないですよ。どうなってるんですか。
しかもこれ残業も評価の一部らしく最終報告書に「どの程度授業時間外に実施したか」を記述しなければならないらしく、当然のようにされていました。
「高専は自由」というのは本当ですが、課題等とは別にこの巨大なタスクの圧をかけられるのは相当なストレスでした。
ここまで残業の愚痴でしたが実際の競技結果は5チーム中4位となりました。
こうなった要因としては、
・競技会当日の朝にBBBを破壊してしまう
・試合途中でモータドライバICが壊れて1試合放棄
・調整が甘く予想だにしない挙動による引き分け
・製作中の喧嘩(当人は自覚無し)
が挙げられます。
しかし最大の原因は僕が他のメンバーに相談をしなかったことにあると思います。
「お互い任せるよ」という空気の中相談をしなかったため、僕個人の偏った思考のみでプログラムが構築され、問題点を洗い出すことも難しい状況になっていました。
来年以降にやる人に向けて
制御班を最優先
全ての動作は制御班にかかっています。
調整は満足することがあってもそれで勝てるかはまた別の話であり、終わりはありません。
制御班が制御しやすく、なおかつ調整の時間が十分に取れるように製作を進めてください。
「計画通り」だと遅れている
我々の班は機体班の「計画と同じぐらいに進んでいる」という言葉に疑問を持ちながらもそのままにして制作を進めていました。
実際には調整の時間が短いという事態になっているため、立てた計画よりもかなり進んでいるぐらいに製作してください。
残業は必然
評価の対象らしいです。
それにしても機体班は前半に、制御班は後半に、回路班はたまにぐらいの残業をせざるを得なくなります。
感想
組込みとチーム開発を体験できることができました。
正直やりたくなかったんですけど体験してみると結構楽しいものですね。
チーム開発はまたやってみたいんですけど、正直ロボット製作はもう二度とやりたくないです。
遺言
皆で仲良く作ろう!!
次回は受験の感想か僕の大好きなカードゲームの話をしようかと思います。