地面に巻いた水をすくえるかってんだ。その結果大前提として「ライントレースに光センサーを費やす以上、コップ回収には光センサーは使用不可」またコードの調子が悪く、「タッチセンサーも使用が厳しい」という結論。「動きの正確さ及び確実性が必要」ということになった、なんてこったい。いう前置きはここまでにして。「コップを横向きにひっくり返して重ねていく」「『運ぶ』のではなく『引きずっていく』」という発想である。コップ回収にセンサー利用が0である以上コップの初期位置に頼ることにした。コップ見つけるセンサー持てないんだもんね。†1.モーターから、一番小さいギア→一番大きいギアの順に伝達。これによって多少「馬力向上」と「回転速度低下」が実現される。2.このタイヤと平行なモーターの回転運動をを棒の回転運動に変換する。理屈上はモーター自体タイヤと垂直でも良いはずだが、RIS上のコードの断線が怖すぎて回避。あと時間がなかったのとわかりやすさも優先された。(※1)+α.この当たりは「補強(A)」や「先端の動作で必要(B)」な部分。(A)は丁度光センサー設置のブロックの穴にハマった上にはめると強度が上がったので活用。(B)は後述(☆1)。...そういえば光センサーの記述してない。前回の課題にてこの位置にしたから、というわけだけでは実はなかった。数値変えればどうにでもなるし。ライントレースうまく行くとわかっている位置としてかなりポイントは確かに高かったけども。1つめに、前方であること。アームに比較的近いところであること。2つめに、コップを引きずる上で邪魔にならないこと。3つめに、正確なライントレースを求めるために、「あまり車体を振らないようにする=センサーが回転中心から遠すぎない」こと。(回転中心から遠いと、一瞬車体が曲がった時の円周が大きくなり、理想のグレーゾーンを超えて曲がりやすく、理想のグレーゾーンに留まりにくいことが課題2での結論。設置点Aはバンパー(後述(☆2))の「わかりやすさ」を優先したことにより断念。(物理的に無理)設置点Bはバンパーと紙コップの位置的な相性から「ここは空いている方が確実性があがる」という結論に至る。(たぶん後述(☆2))そして設置点C。繰り返しの試行の結果「いうほどアームの影は影響してこない。走らせたらうまくライントレースしたから問題ない。作戦上のバンパーの有り方の形状>>>>>>>>>>>>>>バンパーの構造>>>>アームの影。ここが先述(※1)によって親指上向きにした右ねじの方向へ回っていると歯車1は反時計回り、歯車2は時計回りに回転し、アームは閉じていく。このアームが閉じ切った(紙コップをつかむ/つかみ損ねてシュールにも閉じ切る)とき、この歯車1/2の回転は阻止され、動かなくなる。すると、このアームには右ねじの方向の回転力が依然加わるために、この回転軸を中心にしてアーム軸の反対側(右側)にアームがひっくり返る。この運動を十分な高さで、コップの初期状態を広い口を上向きに設置して行えば、アームの反対側(右側)に伏せた状態で詰まれていくことを狙っている。逆にアームを初期状態に戻すとき、「コップが進むだけで入ってくれるように」アームを開いた状態にする必要がある。そのときはこの、(棒が伸びている部分)が「アーム回転軸がこれ以上右ねじの反対方向に回転しない状態」を作り出し、それによってアーム回転軸の回転が歯車1/2に伝達するようになっている(完全に逆操作)。この棒(=ストッパー)はアームが水平に開く状態を維持するのにも一役買っている。正味軽くて固定されていればなんでもよかったが軽さもコンパクトさも良好であり、アームの運動に阻害せず、かつ「アームが水平である」「アームを開く」のに欠かせない部分となった。これは(☆1)の延長にあるものであり、固定のためのパーツ増量を活かした部分である。アームの軸回転が戻っている途中にアームが開きそうにも思うが、「完全に開いた状態を『確実に』つくる」にはこのワンクッション(?)がかなり確実性を上げる。歯車2についている(この部分)は「アームが開ききった状態」を確定するもので、開きすぎて変なところで引っかかることを防ぎ、また、アームの閉じる時間をプログラミングした時に最大値が制限されるので安定しやすい等のメリットがある。運ぶ(笑)ためのバンパー(仮称)である。バンパーの役割はない。仕組みはGIFアニメにて。光センサーが真ん中の位置であると、以下のようになり、ライントレース程度の左折にも耐えられない可能性があったために光センサーはバンパー内に設置しなかった。本体は特にゴツさを極力削ったつもりである。光センサーは先述したので省略。†まず、先生に教授いただいた方法を試してみた。女子二人で活動する、というのはつまり「いうほど幼少の頃そういうので遊んでないから知識がない」ことに直結していたので、「とりあえずやってみよう」という調子になるのはいたって自然である。教えていただいた機構は以下の通り。→つまりアームの方が重くてバランスが持っていかれる→補強用ブロックも足りないのでは?・歯車とブロックの融合したごついモーターをRisの近くに設置できるのかというのは共通認識レベルで考えた。それらを解決できる方法があったのかもしれないが、その場では「応用的なアームを考えよう」という発想に至った。・重くても、動かなければ重心は安定している・軽ければ、動いても重心は安定しやすいのどちらかにしようと意見をまとめた。最初に考えたのは「エレベーター方式」である。「持ち上げる」という動作に対し連想するものにエレベーターは必ず関わる上に、初めに見た過去のロボコンの印象から浮かんだ発想だったと思う。・構造が複雑化=センサーなしでできると思えない+一台分では部品が足りない・紙コップは寸胴ではないので、両側からの押し上げ式の持ち上げは難しいのではないか・箱型(よくあるエレベーター)であれば「持ち上げる」動作と、ロボコンの規定上、「ロボットから離脱させる動作」が必要=モーターが一つ足らないのではであるために断念。本当に一台分でやらされたの糞だなあいつらどうさせようとしてたんだ当日手ぶらで来たしとなれば、と「軽量化」に着手。そこで浮かんだのが、「ブロックと歯車で回転運動を伝達する」のではなく、「棒一本での回転運動の伝達」である。見本(歯車連結)と見比べながら試作。実際にモーターに接続するであろう向きまで考えて(あっモーターの向きこの時の名残かもしれない)いざ手で歯車を回してシミュレーション。その結果がこうである。求めていた「タイヤと平行な向きの、上昇する回転運動」ではなく、「棒自体の回転運動」が永遠になされることが判明。確かに「棒の回転運動」を止める仕組みがないもんなァ...棒の回転運動を止めるとアームの先端のつかむ動きもできないので、棒自体を固定する選択肢はない。なんというか、素晴らしい言い方をすれば「ひらめき」、しょうもない言い方と言えば「偶然の産物」ともいうもので、これ、ある程度の高さがあったらこう...かぽって...お椀伏せる方式で...うん。いう「理想の動きをしてくれなかったことによるやけくそ逆転の発想」が結果運用されることになった。使ったことのない部品を組み合わせながら「いかにして固定させるか」が課題となっていた。棒をできるだけ使い軽量化を狙う。左側に伸びているのは(☆1)のため。アームの右側が直線的なのは「高さを下げないため」である。今回の作戦では回転させたときに高さが足りないと空振りをして終わってしまう。そのため、「高さ」は重要な要素であった。<高さが足りないとどうなるか><直線的でなかったらどうなるか>また、直線的の方が紙コップが直進した時に入ってきやすいのではないか、との考えもあった。同時にそれだと「つかむ」要素が薄れつかみ損ねかねないので、タイヤやひっそりとゴムを付けることでゴムの力で持ち上げることを考えた。†アーム接地部分をブロックを敷き詰めることにより底上げ。(高さのため)(一層分)下への設置だけでなく、横向きへ伸ばした棒+ブロックで接地することにより、アームの棒自体の補強となった(一点支持から二点支持)。ちなみにこれは(☆1)の一部。・ライントレース程度の左折に耐える・コップをひっくり返すとき狙いのところにコップを都合のよいところに置く・最後コップが離脱する事である。左折に耐えるためにAの部分は短すぎず、また、コップが離脱するためにBの空間を開けたかったためにAの部分は長すぎてもいけなかった。Cの折れの位置はアームの長さに合わせ、アームが回転した時の着地点にコップが来るようになるようになっている。「すでに獲得しているコップをバンパーの中で左上に寄せて」とは、の上方に寄せることである。今見たら自分でも見にくくて震えてる...~「書き換えてみたプログラム」は運転してません(解体してしまった)。理論上は行けるはず...。やって理論上に泣いてきたけどな!HAHAHA!!!!控えめに言って汚すぎて説明できないです(おい)ミスしたところを指摘し修正添えます。それでたぶんゲームにはなります。インライン関数を本質的に理解してないんですが、サブルーチン同様に使えるのであれば、もっときれいに描けた。サブルーチン8つの壁...。いうことで、サブルーチンとインライン関数が同じように使えると仮定し、少し書き直したものをつかって後ほど改めて説明しようと思います。間違いがあるかもしれませんがそっちの方が意図が分かりやすいと思います。!!やはり!!!走らせてないプログラムだけ載せて「そもそも動きません」なんて致命的なミスがあったらやはり悲しいので大会のものも載せます。前回同様のものが多い。//大きいギアを一枚しか噛ませられなかったので、回転を極力遅くしたかった。go_follow()//サブルーチン8個までということで無理やり統合。//タイマーをリセットする。//動く/とまるを瞬時に繰り返すことで、結果的に速度を落としたような動きを作る。OnRev(OUT_AC);//少し下がる(回転したりした時に他のコップに当たらないように。Off(OUT_B);//勢いが付きすぎると二個目以降はまだいいが、一個目が吹っ飛ぶ。Wait(5);//ここで一回勢いを殺すことで、一回目もちゃんと着地させる。}尚、全体的に速度/勢いを殺す動きをさせているが、勢いを殺し過ぎると二個目以降がコップにハマらなかったり浅いハマりで不安になることが多々。※のRepeatの数の比は重要。前の※が大きいとハメる予定のコップが勢い良すぎて吹っ飛び、後ろの※が大きいとハメ途中でハメられる予定のコップが逃げる。☆についてこれの「上方に寄せる」ということ。これでコップが落ち着く地点にアームの長さが調整されている。正しくは交差点感知するライントレースを最初はぶち込む。統合したやつのサブルーチンしか用意してなかったのでまあ。サブルーチンのみ使用の状況下ではあの長いのを突っ込むしかない。/*これ、書き直した方で言及してる(&color(#c70067){関連1};)ですわ。最初自分でもなんだこれって思った。}控えめに言って汚すぎて説明できない(おい)インライン関数を本質的に理解してないんですが、サブルーチン同様に使えるのであれば、もっときれいに描けた。サブルーチン8つの壁...。いうことで、サブルーチンとインライン関数が同じように使えると仮定し、少し書き直したものをつかって改めて説明しようと思います。0;この辺がどうなるのか根本的に理解してない気がする。//大きいギアを一枚しか噛ませられなかったので、回転を極力遅くしたかった。//なお、1にすると今度は勢いがなさ過ぎてコップの収まりが浅く、抜けることが多かった。go_follow()//三秒間交差点ない前提でライントレースをする。//タイマーをリセットする。