0

現在の情報をトークンに書き込むIRセンサーがあり、それをC#アプリケーションで解釈します。それはすべて良いことです-そこには問題はありません、ここに私のコードがあります:

SetLabelText(tokens [1],label_sensorValue);
sensorreading = Int32.Parse(tokens[0]);
sensordistance = (mathfunctionhere);

素晴らしい。したがって、IRセンサーが物体から離れるほど、センサーの読み取り値は低くなります(反射されてセンサーが受け取る光が少なくなるため)。

私の問題は、その長さを解釈することです。先に進んで、オブジェクトが5インチ離れているときの値として「110」、次にオブジェクトが6インチ離れているときの値として「70」と言うことができます。ここで、これらの定数を使用して、任意の長さのオブジェクトの距離を計算できるようにしたいと思います。

何か案は?

4

5 に答える 5

5

さて、私が最初にすることは、固定距離、つまり1インチ、1フィート、2フィート、5フィートなどでデータを取得することです。次に、Excelなどのプログラムでそのデータをプロットし、関数を導き出すことができます。コードでその関数を使用し、さまざまな距離でテストを開始します。

さて、それはそれほど単純ではないかもしれません。測定しようとしているオブジェクトの反射特性は、他の要因と同様に、測定値を変更します。私はあなたの要件が何であるかわからないので、私がより具体的なアドバイスをするのは難しいです。

于 2009-10-30T01:00:33.173 に答える
3

それは数学の質問というよりも物理の質問です!

センサーの製造元からの情報にも頼ることができない限り、さまざまな実験からの記録を使用してテーブルを作成するというEdSwangrenの提案が道のりです。

デバイスの本質的な精度忠実度は別として、非常に多くの要因が有効なエネルギー量(または返されるものと測定されるもの)を妨げる可能性があります。この特定のデバイス、または同様のアイテム、および/または実際の物理的効果/寸法の基本を読むことで、キャリブレーションの追加のアイデアが得られる場合があります。

測定値を距離(およびおそらく追加の基準温度、反射率...)に関連付けるテーブルができたら、それは真の数学の問題になります。たとえば、次のようになります。

  • 目標とする精度の統計的関連性を確認する
  • 離散テーブルを使用して実際の読み取り値を推定します(OPによる元の質問のようです)
  • 回帰関数を見つけて、テーブルアプローチを廃止します(コメントで示唆されているように、これが簡単であるとは思えません。
于 2009-10-30T02:54:53.730 に答える
2

反射IRは、オブジェクトの検出によく使用されます。ただし、ターゲットの形状、角度、反射特性が常に同じであるとは限らない場合、反射IRの強度を測定することは、距離を推定するための信頼できる方法ではありません。

何か案は?

異なるセンシング方法。このような視差センサーはどうですか:http://www.acroname.com/robotics/info/articles/sharp/sharp.html

于 2010-05-07T19:36:21.083 に答える
0

光源からのエネルギーは1/r 2として低下します(比較的小さい光源の場合)。これを超えて、他のすべてが一定に保たれている場合、唯一の問題はセンサーの非線形性である可能性があります。

これをデータで確認するには、E xr 2 = constを期待します。これは、データに大まかに当てはまります 。110x
5 2 = 2750、および
70 x 6 2 = 2520
なので、これらは10%以内であり、かなり近いように見えます。したがって、基本的なルールが適用されるように見えます。

非線形センサーが一般的であるため、使用する全範囲でこれを確認する必要があります。しかし、線形センサーの場合、人々が言及している他の問題(反射面など)は問題になりません。これは、光の透過と反射の場合、すべてが(ほぼ)線形であり、したがって1回のキャリブレーションで本質的に補正されるためです。絶え間ない。光源の角度や吸収材などは、変わらない限り関係ありません。

関心のある範囲の極値を含むいくつかのポイントをテストし、それが1 / r 2のルールに従っている場合は、問題ありません。次に、もちろん、constが何であるかを計算し、r = sqrt(const / E)とします。

于 2009-10-30T06:22:54.630 に答える
0

tom10によって提案された平方関数についてもう少し詳しく説明します...

デバイスの機能は正方形の曲線であると想定しています。

distance = A + B * reading + C * reading^2

次に、読み取り値を距離に変換するためにA、B、およびCを見つける必要があるため、必要なのは一種の回帰分析です。正方形の曲線は正確に3つのポイントで定義されるため、3つのポイント(r1..r3)で測定し、距離(d1..d3)に注意してください。

これで、3つの未知数を持つ3つの方程式ができました。これは、どのような方法でも解くことができます。

A + r1 * B + r1^2 * C = d1
A + r2 * B + r2^2 * C = d2
A + r3 * B + r3^2 * C = d3

「検量線」となるA、B、Cを一度解くと、上記の最初の式を使用して未知の距離を計算できるようになります。もちろん、ハードウェアを変更する場合は、デバイスのバリエーションの制限内でギアを再調整する必要があります。

4番目の測定を行い、上記のすべての方程式を変数Dで展開することにより、このメカニズムを3次曲線およびさらに高次の曲線に拡張できます。

A + rx*B + rx^2*C + rx^3*D + ....

などですが、精度はそれほど向上しません。rx^3以降の係数Dは非常に小さいことがわかります。

お役に立てれば

頑張ってMikeD

于 2009-10-30T17:51:06.610 に答える