黒い線に沿って動くロボットを作成せよ。速さと正確さを追求すること。交差点で優先側を走っていない場合には、一時停止すること。前方にあるもう一台のロボットに接触した場合には停止して相手のロボットが行き過ぎる、あるいは距離が離れるのを待つこと。光センサーを使うことでライントレースをさせると同時に、タッチセンサーを使うことで他のロボットに接触したときに停止するための機構を考える。光センサーは対象の明暗を認識する。そこで、2つの光センサーをつかってロボットにコースを認識させる方法を考える。・方法1:ロボットに「黒」を認識させる。(光量が一定以下になる)→両方のセンサーが反応したら直進。片方だけが反応したら、反応した側へ曲がる。・方法2:ロボットに「白」を認識させる。(光量が一定以上になる)→両方のセンサーが反応したら直進。片方だけが反応したら、反応したのと逆側へ曲がる。これらのどちらか方法によってコースに沿ってロボットを動かすことができる。交差点で優先側ではないコースでは、コースのない交差点をロボが通過しなくてはならないので、交差点の手前から通過点であらたにコースにのるまでの間、ロボに直進をさせる。通過したロボが再びコースにのれるようにするためには、本体の向きがすでに交差点を通過した地点のほうに向いていなければならない。→交差点に向かうすぐ手前にカーブがあると、通過後に再びコースに戻ることが難しくなってしまう。急なカーブはセンサーが反応しづらいので、緩やかなカーブと直線でコースを作成。今回の課題では、他のロボに接触したら停止して、先にいたロボが通過するのを待ってから再びトレースを開始しなくてはならないので、前方での接触のみを感知するバンパーを取り付けることにした。相手の角度やタイミングによっては前方のみの接触センサーでは、感知できない可能性がある。そこで正面左右の三方向の接触を感知できる機構を考えた。写真は左右の変位を前後の変位に変換する機構である。はじめに作成した車型ロボットに光センサー(黒を認識させるタイプ)を取り付け、コースを走らせてみた。すると、難なくライントレースをすることに成功。そのため、タッチセンサーの作成に着手した。前回の講義の終わりに、先生が『速くかつ正確に』ということを言っていたので、ギヤ比やタイヤの大きさを変更することにより、スピードアップを試みた。問題点は、タイヤがミニ四駆などのように固定されているため自力でのターンが出来づらいというところだった。本来なら車のように前輪の自由度が高くなければ、ターンというものはさせずらい。そこで二輪ならターンを邪魔する摩擦を生む前輪は存在しないので、二輪に改造。これにより悪くなったバランスを補助輪を付けることにより改善し完成型となった。敏感な白を認識する光センサーに換装されている。・前回の反省から、改悪になってしまったときに元の状態に戻しやすいように心がけてみました。・Wait中は他の動作ができないので、taskを2つに分けました。2つに分けることで、タッチセンサーが反応したら一端ライントレースを停止し、タッチセンサーの反応に対する動きを優先するようにしました。これによって、Waitを使用して進むプログラムになっている交差点でも衝突を感知することができます。・コースの作成ですが、ただ単に「カーブが緩い」「垂直に交わる」というだけではなく、「交差点へのアプローチでロボットの向きを整えることのできる直線」が必要だという点で苦労しました。・相手の角度やタイミングによっては前方のみの接触センサーでは感知できない場合がある。そこで一つの接触センサーで正面左右の三方向の接触を感知できる機構を造り上げたこと。自分は思い込みで突っ走ってしまうところがあるようで、見当違いの改造をしていて、まったく状況に変化が現れないといったことも起きてしまいました。次の機会には先入観というものをぬぐう努力をしなければならないと思う。今回はクノピー様にロボの組み立てを完全にお願いしてしまって非常に申し訳なかったです。苦労&工夫のほうでも書きましたが、プログラムの方はWait中に他の動作をすることができないことを考慮し、taskを分けました。作成したプログラムは、手元で動作の確認をした状態ではなんとか課題をこなせそうなので、あとはコース次第といったところでしょうか。(たまちゃん)私はコース作りの担当でしたが、交差点を垂直に近づけ、さらにカーブのゆるいコースを考えるのが難しかったです。プログラミングでは様々な条件を考えて入力してやっと動くようになるのに、もっと複雑な動きをする既成のロボは一体どんなプログラミングになっているのか、考えただけで気が遠くなりました。書いてありますが、もう少し詳しく書いてください。10:24:06光センサー・タッチセンサーのギミックがきちんと図示されており、わかりやすかった。