今回の課題の目的は課題2で使用した紙(下の図)を使用し、ピンポン玉と紙コップを別々に回収して所定の場所に運ぶ。黄色い円に紙コップを通常の向きに置き、障害物とする。課題の基本得点の計算方法やルールは課題3(ロボコン)のところに見てください。今回では2台のロボット(MasterとSlave)を作った。Masterの方はA地点からスタートし、左側の紙コップを取る目的とする。Slaveの方はD地点からスタートし、右側の紙コップを取る目的とする。詳しくはプログラムのところに説明する。2台のロボットは同じ構造になっているので1台だけの構造を説明する。ロボットの構造では上の図のように2つの部分(車体の部分とアームの部分)によって説明していく。上の図のようにロボットの車体の部分は課題2のように作った。詳しくは課題2(tono)のところに見てください。2つモータを左側と右側に付けてタイヤ—を回す。LineTraceを正確に動くため光センサーをつける場所はできるだけ床に近いである。ケーブル線を邪魔にならないように車体の中にしっかり絞っていた。†ロボットのアームでは今回の課題の一番重要なものである。ロボット全体のところのように1つのモータだけを使って紙コップを掴む動作や上げる動作をする。そのことは先生の指導と2016a/課題3(ngtrz)のものを参考にしてロボットのアームの部分を作った。紙コップとピンポン玉を探し取りにいくまでの動作をできるようにアームの下で超音波センサーを付けた。紙コップを掴む構造をわかりやすく説明できるため、上の図のように番号の順番に沿って説明していく。前後・左右の方向については図の右下に従う。1から2モータが前の方向に回ると隣の黒い歯車も同様にまわる。そのため、歯車灰色の歯車が右の方向に回る。2から3灰色の歯車が右の方向に回ると歯車の真ん中の穴にあるウォームギアも右の方向に回転する。3から4ウォームギアが右の方向に回転すると両隣の灰色の歯車が回転する。(左側の歯車は左へ、右側の歯車は右へ)4から5この仕組みは長い黒い棒の部品を使って下の歯車に動きを伝える。紙コップを掴んでから紙コップを持ち上げることを行う。上の左側の図のようにアームが完全に紙コップを掴むとモータの隣の黒い歯車(No.1)しか回らない。(No.2からNo.5の部品は回らないこと)そのため、上の右側の図のように紙コップが上げられるようになった。モータの回力が重力より大きくなければならない、そうしないと紙コップが落としてしまうからである。プログラムのときこのことも考える必要がある。†ロボットのピンポン玉を運ぶ動作は最初に部品No.1とNo.2を垂直にした。その結果、ピンポン玉を運ぶことはできたがピンポン玉を目的に入れることはできなかった。部品No.1とNo.2を上の図のように斜めをするとピンポン玉を目的に入れることはできるようになった。紙コップの高さが割り箸の高さより高いからと途中でピンポン玉が円の外に出さない。超音波センサーは縦をつけた方がいいといわれた。今回の課題では私たちが超音波センサーを最後に付けた残ったスペースのせいでよこになってしまった。上の図のように改善前のときかなり後ろのところに付けたからセンサーがうまく働かなかった。そのため、改善後のとき付けるところをちょっと前にすると改善前よりセンサーがうまく働いた。私たちのロボットの構造がかなり大きいのでせいでスタート線に越えてしまった。それはルール違反だから、上の図のようにスタンドをつける。このスタンドが動きときに邪魔になることはなかった。上の図のように2つのロボット(LeftRobotとRightRobot)をコースの中で移動する。Traceプログラムで移動しながら左側の紙コップを取る。そのとき、紙コップを探して、紙コップの手前までに進むプログラムを使う。RightRobotもLeftRobotと同じように行う。次、RightRobotとLeftRobotはX点でピンポン玉を置くSubを使ってピンポン玉を置く。そのあと、図のように青いところで紙コップを重ねる。ロボットを2つ連携して通信する。最後に重ねられた紙コップをYで置く。そのときは1つのロボットで紙コップ置くプログラムを使って行う。今回の課題ではまだ課題2のコースを使っている。プログラムがグループの中で一番優秀のでrikoの課題2のプログラムを利用した。Sub関数などはrikoのLineTraceと全く同じものを扱っていたから課題2(riko)または課題3(riko)のところを見てください。代わりにsubを使った。速度を遅くして30にする。//現在の方向を中心にang度の範囲で探し、障害物までの距離を返す。紙コップを重ねるプログラムをわかりやすく説明できるため、上の図のように番号の順番に沿って説明していく。1から2Master側が紙コップを持って、Slave側はMaster側から離れる。次、超音波センサーを邪魔にならないようにSlave側一回アームを閉める。Master側も超音波センサーの邪魔にならないようにアームを持ち上げる。2から3Slave側が紙コップを掴む。Master側はアームを持ち上げる状態でSlave側に近づく。3から4Master側は紙コップをSlave側にかぶせる。Slave側はアームを開き、紙コップを離す。4から5Slave側が離れる。最後にMasterがアームを広げ、紙コップを離すと紙コップを重なることができる。†LeftRobot(Slave側)のプログラムは以下のようなものである。番号順番については紙コップを重ねる順番のところに見てください。counterのところはarsoが担当したので詳しくはarsoのコップ関連プログラムのところに見てください。†RightRobot(Master側)のプログラムは以下のようなものである。番号順番については紙コップを重ねる順番のところに見てください。全体プログラムは以下のようなものである。移動順番についてはコース移動説明のところに見てください。全体プログラムは以下のようなものである。移動順番についてはコース移動説明のところに見てください。発表のとき、1回目LeftRobotが1個ピンポン玉をX地点に入れたので2点を取った。2回目はRightRobotが2個ピンポン玉をX地点に入れたが、地点の障害物のを動かしたから減点されて4点であった。技術点としては平均8.8点となり、全体合計は12.8点。順位は9チーム中6位という結果になった。詳しくはロボコン結果のところに見てください。超音波センサーではロボットの説明で述べた通り、横方向にした。その結果、超音波センサーが読み取れないときもあった。今回の課題では超音波センサー結構大事なところであり、失敗した原因と考えられる。各プログラムは起動できたが最後にプログラムを合わせてコースに移動すると失敗確率が多かった。一つ一つのプログラムを作ってからロボットをコースに移動させたよかったと思う。発表のときもあったが、機体が長くなってしまったことで障害物にぶつかってしまった。最後に、この授業を取ってプログラム入門を触ることができた。プログラムの一ヶ所間違いたら起動できないことや人間はどうやってロボットを動かせるなどがわかった。わたしは今物理コースの学生からきっとロボティクスゼミでやったことを使う機会があると思う。