Powered By Blogger

2013年12月30日月曜日

Considering emitter's light process

   Here, I will write about the consideration to the previous experiment.

   The result was that Vector's diagonal receiver catches more light than experimental circuit's horizontal one. This means stronger reflected light comes from the front, though nothing reflects light. I wonder what the emitted light process is like.

   I completely forgot "diffuse reflection". Since maze wall is not mirror, light does not go like the picture below (sorry I'm not good at painting).


   In fact, light goes like this, I think. Here, diffuse reflection occurs and reflected light goes in all direction.


  Because of that light process, stronger reflected light comes from front than side. This explaines the experiment result. And parallel arrangement of IR emitter and receiver is the best, since receiver faces to the direction in that light comes.

2013年12月23日月曜日

非平行センサ試作テスト

前回 横壁センサのフォトトランジスタ(PT)はLEDに平行でなくてもいいのではないか、真横でもいいのでは、なんて書きましたが、今回試作してテストしてみました。
結論から言うと、平行なときより明らかに信号強度が下がり、問題外でした。
一応、何をしたのか紹介します。

下の写真左のようなLEDとPT、抵抗だけの簡単な回路をユニバーサル基板上に試作。テキトーです。
私のマウス「Vector」(写真左)と比較して、LEDはだいたい同じ配置で、PTだけはほぼ真横にしています。横壁のPTだけ調べたいので、前壁用のPTは付けていません。


これをブレッドボードに接続してテスト。Vectorと回路構成は同じです。ブレッドボードの接点抵抗が大きいですし、配線が長いですが。




実際にAD変換してみました。まず、周囲に何もない場合。直接PTに入って来る光量を調べています。
12bitAD変換値はおおよそ 試作:100、Vector:50 でした。


次に横壁から3cmくらい離れたところで実験。
AD変換値は試作:200、Vector:500 でした。



どうも直接光は増えて反射光は減るようで、あまり利点がなさそうだということで、これ以上のテストは中止。

やはり多くの人がやっていることには、それなりの理由があるということで。残念。

2013年12月16日月曜日

壁センサの発光素子と受光素子の光軸は平行であるべきか?

気になります。
前回に続き壁センサの話。
だいたいどのマウスの壁センサもLEDとフォトトラが平行に実装されてますよね。
例えば私のハーフマウス「Vector」だとこんな感じ。


自分としてはこれといった考えもなくみんな平行にしているからという理由で自分も平行にしてましたが、真横とか真正面にLEDを向けない限り壁から光が反射してくる方向はLEDに平行ではありません。

LEDを傾ける角度は横壁センサだと45°とか、ある程度経験的に決定された値を使うとして受光素子はその限りではないなと思うわけです。

横壁センサのLEDは45°に向けるけど対応するフォトトラは真横にしたりするとどうなるんですかね?

①横壁から光が反射してくる方向に向けることで信号強度が増える
②前壁から反射してくる方向に向けないことで干渉を防ぐ

あたりの効果があると思ってます。

そのうちテストしてみましょうかね。Vectorに使ってるLEDが在庫切れですが、、、

2013年12月13日金曜日

壁距離-センサAD変換値テーブルの作成(6次曲線近似)

全日本大会も終わりましたし、今年やったこと、来年に向けて検討していることについて小出しにしていこうと思います。

まず最初は壁センサのAD変換値から壁との距離をどのようにして推定するかということについて。
現在は測定した結果をそのまま6次関数で近似して使用していまして、これについて、自分の従来の方法とその問題点についても触れながら書こうと思います。

代表的な手法は壁との距離とセンサのAD変換値との関係を測定し、ある関数で近似して、1対1対応の表を作るというものでしょうか。
例えばこちらでは関数として対数関数を用いたものが紹介されてますし、自分もこれまではもっと単純化して距離の2乗に反比例すると仮定して以下のようなAD変換値と壁との距離の関係を求め、表にして使用していました。
これは左の横壁センサのものです。




しかしご覧の通り実験の測定値(赤い点)と近似関数(青線)との間に明確な違いがあり、これをこのまま横壁センサに適用すると迷路の中心を走れないため、近似関数に5mmくらいオフセットをかけて調整していました。


これでそこそこ走るようになりますが、オフセットの値はいくらにすべきか調整しないといけませんし、問題ないにしても実験値との誤差が大きくなんとなく気持ち悪いです。
そこで、実験結果をそのまま6次関数で近似するとそこそこきれいに一致しました。


ここで、AD変換値2500以上の値は関数に関係なく一定値にしています。あとで示しますが、6次くらいになると横軸両端の極端な値で変な挙動をするので。

ちなみに6次曲線近似は研究室で使用している「GP」というソフトを使いました。
フリーソフトですが、名前がありきたりなせいか、Windowsより年上の古いソフトなせいか簡単にインターネットで探せません。紹介できなくてすいません。
ちなみにGP上で近似した時のイメージはこんな感じ。赤線は近似関数の導関数を表わしており、値は縦軸の右側です。AD変換値2500以下の範囲では負であることから6次関数の単調減少性が確保されているのが分かります。
AD変換値2500以上のところの近似関数(青線)は単調減少性を示さず急激に増加していることから、一定値にさせているわけです。


こうして6次関数により単調性と実験値との一致ができるようになりました。
これにより、オフセット値の調整をしなくて済むようになりました。
さらに、一度設定をしてしまえば実験結果からより簡単に近似曲線が求められるため、少しだけ開発時間の短縮ができました。

ただ、残念ながら壁からの姿勢制御は壁の中央値と単調性があれば問題ない気がするので、わざわざここまでする必要があるかわかりません、、、