目次 日時・場所 †
課題:紙パック運搬ロボット †紙パックを所定の位置から所定の位置に運搬する。
ルール †
各係など †
結果 †今回のロボコンはどうしても抜けられない事情と被ってしまい、参加することが出来ませんでした。その代りに会を進行し、ロボコンを行ってくださったゼミ参加者のみなさん・チームのみなさん・先生、本当にありがとうございました。そしてとても大事な時に参加できず本当に申し訳ありませんでした。 当日のロボコンに至るまで、何度の試行錯誤し、最初にできたロボットの形態から最終的にはほとんど違う機構をもったロボットになりました。 まずタッチセンサーとアームの位置は、ロボットの真逆に接続されています。そうすることにより、タッチセンサーの誤動作を防ぐとともにアームの軽量化、重心やバランスなどの物理的な要素の改善がなされています。 大まかな形を把握するには下に掲載する写真を参考にしてください。 紙パックをつかむアームについては、力の出るウォームギアを用いて、滑らかな運用を可能にしている。ウォームギアは力を発生させるの時に予想以上の力を出すため、プログラム内で調整して動かしすぎないような工夫をする必要があった。 紙パックを探し、タッチセンサーに当てて反応させるところから、つかみ持ち上げるところまでのプログラムは、センサーに当たり反応を起こしたというところから本体を前後逆に回転させつかみあげるという動作で成り立っている。実際のプログラムを、部分的ではあるが掲載する。 プログラム †#define QUARTER_TURN_TIME 52 // 1/4回転 #define STAY_BACK_TIME 70 // 持ち上げる際に一度退く時間 #define APPROACH_BOX_TIME 110 // 箱に近づく時間 #define OPEN_SHUT_TIME 150 // アームを完全に開閉する時間 #define KEEP_PUT_TIME 150 // 箱を完全につまむまでの時間 #define RAISEUP_TIME 300 // アームを持ち上げる時間 task main () { // 初期化 SetPower(OUT_AC, 3); SetPower(OUT_B, 7); SetSensor(SENSOR_1, SENSOR_LIGHT); SetSensor(SENSOR_3, SENSOR_LIGHT); SetSensor(SENSOR_2, SENSOR_TOUCH); Off(OUT_ABC); // タッチセンサーが箱を感知するまで直進 until(SENSOR_2) { OnFwd(OUT_AC); } Off(OUT_AC); // その場で停止 //open arms. OnRev(OUT_B); Wait(OPEN_SHUT_TIME + KEEP_PUT_TIME + RAISEUP_TIME); Off(OUT_B); // 回転 SetPower(OUT_AC, 6); OnRev(OUT_AC); Wait(STAY_BACK_TIME); OnRev(OUT_A); OnFwd(OUT_C); Wait(QUARTER_TURN_TIME*2); OnRev(OUT_AC); Wait(APPROACH_BOX_TIME); Off(OUT_AC); SetPower(OUT_AC, 3); // 持ち上げ OnFwd(OUT_B); Wait(OPEN_SHUT_TIME + KEEP_PUT_TIME + RAISEUP_TIME); Off(OUT_B); } 感想 †今回は参加できなかったが製作は、忙しいながらもたくさん悩んで作ることが出来たと感じている。 実際に完全な動作を行い運用ができるものに仕上がったかというとそうではないが、何度も試行錯誤し、自分の中で作ることのできたイメージと能力の上では一番最良のものが出来たと思っている。 しかしまだまだ改良の余地はあるし、もっとプログラムの完成度を高くして確実な運用が可能になるようにする必要があるし、そういった確実な動きをするようなロボットを目指す必要があると思った。また、作っていく中で今までの中で一番製作時間をかけ、何度も組み替えてきたが全然足りないことを知った、もしほんとうに動くものを作るには、さらにたくさんの努力と経験の積み重ねをしなければいけないと思った。今後いろいろな言語を学んでいくことになると思うが、繰り返し書いて動かしてみるといった反復と、一度できたからここまででいいやという、そこで諦めてしまうようなものづくりをしないようにしたいと思った。 授業が終わってみて感じるのは、まだまだ積み重ねるべきことは多くさらに多くの挑戦をしたいという事だ。 |