課題2:黒い線に沿って動くロボット

黒い線に沿って動くロボットを作成せよ。ただし、

三代目.jpg

(製作者:クノピー、ネタ切れ、たまちゃん)

ロボットの機構

光センサーを使うことでライントレースをさせると同時に、タッチセンサーを使うことで他のロボットに接触したときに停止するための機構を考える。

光センサーの取り付け

光センサーは対象の明暗を認識する。そこで、2つの光センサーをつかってロボットにコースを認識させる方法を考える。

 ・方法1:ロボットに「黒」を認識させる。(光量が一定以下になる)

   →両方のセンサーが反応したら直進。片方だけが反応したら、反応した側へ曲がる。

初代1.jpg
黒トレース.jpg

 ・方法2:ロボットに「白」を認識させる。(光量が一定以上になる)

   →両方のセンサーが反応したら直進。片方だけが反応したら、反応したのと逆側へ曲がる。

初代2.jpg
白トレース.jpg

 

これらのどちらか方法によってコースに沿ってロボットを動かすことができる。

コースを書く


タッチセンサーの取り付け

今回の課題では、他のロボに接触したら停止して、先にいたロボが通過するのを待ってから再びトレースを開始しなくてはならないので、前方での接触のみを感知するバンパーを取り付けることにした。しかし、相手の角度やタイミングによっては前方のみの接触センサーでは、感知できない可能性がある。そこで正面左右の三方向の接触を感知できる機構を考えた。

写真は左右の変位を前後の変位に変換する機構である。黄色いブロックが押し込まれることによりスライドし、前後の変位に変換される。

タッチセンサ2.jpg

時系列試行錯誤

・初代

一番はじめに作成した車型ロボットに光センサー(黒を認識させるタイプ)を取り付け、コースを走らせてみた。すると、難なくライントレースをすることに成功。そのため、タッチセンサーの作成に着手した。

初代1.jpg

・二代目

前回の講義の終わりに、先生が『速くかつ正確に』ということを言っていたので、ギヤ比やタイヤの大きさを変更することにより、スピードアップを試みた。しかし、スピードが上がりすぎたのと、タイヤの取り付け位置の関係で、カーブをトレースできなくなってしまた。

二代目1.jpg

・三代目

二代目の問題点は、タイヤがミニ四駆などのように固定されているため自力でのターンが出来づらいというところだった。本来なら車のように前輪の自由度が高くなければ、ターンというものはさせずらい。そこで二輪ならターンを邪魔する摩擦を生む前輪は存在しないので、二輪に改造。これにより悪くなったバランスを補助輪を付けることにより改善し完成型となった。またより敏感な白を認識する光センサーに換装されている。

三代目+説明.jpg

プログラム

#define THRESHOLD 40                  //閾値を設定
#define MOTOR OUT_A+OUT_C

苦労&工夫した点

・前回の反省から、改悪になってしまったときに元の状態に戻しやすいように心がけてみました。

・Wait中は他の動作ができないので、taskを2つに分けました。2つに分けることで、タッチセンサーが反応したら一端ライントレースを停止し、タッチセンサーの反応に対する動きを優先するようにしました。これによって、Waitを使用して進むプログラムになっている交差点でも衝突を感知することができます。

・コースの作成ですが、ただ単に「カーブが緩い」「垂直に交わる」というだけではなく、「交差点へのアプローチでロボットの向きを整えることのできる直線」が必要だという点で苦労しました。

・相手の角度やタイミングによっては前方のみの接触センサーでは感知できない場合がある。そこで一つの接触センサーで正面左右の三方向の接触を感知できる機構を造り上げたこと。

感想

(クノピー) どうも自分は思い込みで突っ走ってしまうところがあるようで、見当違いの改造をしていて、まったく状況に変化が現れないといったことも起きてしまいました。次の機会には先入観というものをぬぐう努力をしなければならないと思う。

(ネタ切れ) 今回はクノピー様にロボの組み立てを完全にお願いしてしまって非常に申し訳なかったです。苦労&工夫のほうでも書きましたが、プログラムの方はWait中に他の動作をすることができないことを考慮し、taskを分けました。とりあえず、作成したプログラムは、手元で動作の確認をした状態ではなんとか課題をこなせそうなので、あとはコース次第といったところでしょうか。

(たまちゃん)私はコース作りの担当でしたが、交差点を垂直に近づけ、さらにカーブのゆるいコースを考えるのが難しかったです。また、プログラミングでは様々な条件を考えて入力してやっと動くようになるのに、もっと複雑な動きをする既成のロボは一体どんなプログラミングになっているのか、考えただけで気が遠くなりました。

コメントをどうぞ


2007a/A9


添付ファイル: fileタッチセンサ2.jpg 302件 [詳細] file三代目+説明.jpg 306件 [詳細] file二代目1.jpg 355件 [詳細] file三代目+タッチセンサ.jpg 151件 [詳細] fileタッチセンサ.jpg 156件 [詳細] file三代目.jpg 349件 [詳細] file二代目.jpg 172件 [詳細] file初代2.jpg 326件 [詳細] file初代1.jpg 328件 [詳細] fileコース.jpg 337件 [詳細] file黒トレース.jpg 328件 [詳細] file白トレース.jpg 298件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-06-21 (木) 13:35:02