ソナークロストークの対処方法


10

私たちのロボットには、次のような12個のソナーセンサーの円形配列があります。

ここに画像の説明を入力してください

ソナーセンサー自体はかなり良いです。ノイズに対処するためにローパスフィルターを使用しており、測定値はかなり正確に見えます。しかし、ロボットが壁のような平面に出くわすと、奇妙なことが起こります。ソナーには、壁を示すような読み取り値は表示されませんが、曲面のように見えます。

以下のプロットは、ロボットが壁に面しているときに作成されました。赤い直線と比較して、青い線で曲線を確認してください。赤い線はカメラを使用して壁を検出することによって作成され、青い線はフィルター処理されたソナーの読み取り値を示しています。

ここに画像の説明を入力してください

このエラーは、1つのソナーセンサーのパルスが壁で斜めに跳ね返り、別のセンサーによって受信されるクロストークが原因であると考えられます。これは系統的なエラーであるため、ノイズの場合のように実際に対処することはできません。それを修正するための解決策はありますか?


関連:「複数の超音波距離計の質問」。自分の答えをそこからここにコピーして貼り付けますか?
David Cary

回答:


10

これは一般的な問題であり、非常に多くの問題の1つです。音響センシングは複雑な研究​​分野であり、その重要な部分は、音波の送信と受信の間に音波がたどった経路の推測に費やされています。お気づきのように、まっすぐに戻って戻ってきたと仮定すると、実際には奇妙な結果になります。

実際にそれを解決するには、各センサーに固有の周波数やトーン長を配置するシステムを使用する必要があります。これは、極端な場合、たとえば、 周波数ホッピング疑似ランダムパルス幅変調により、移動ロボットのソナーセンサーのクロストークを排除できます。

コンセプトがかなり単純なローテクソリューションもあります。単純にクロストークを検出したい場合は、すべてのセンサーのパルスが発火する間に1つのセンサーのパルスを発射するだけです。他のセンサーで戻りパルスを検出すると、クロストークの状況にあることがわかります。

実際には、これはかなり無駄です。これにより、取得できるサンプル数が実質的に半分になることに注意してください。したがって、センサーをグループに分割することにより、実装を改善できます。グループの各メンバーは、クロストークを受信しないように他のメンバーから十分離れています。このアプローチの最も堅牢なバージョンは、グループ自体を疑似ランダムにすることです。これにより、時間の経過とともにエラーが平均化されるだけでなく、個々のセンサーベースでのクロストークの検出が容易になります。

あなたの特定のケースでは、範囲に対してより正確な値を返すことを示したカメラセンサーの追加の利点があります。個別の(場合によっては競合する可能性のある)測定値を1つのより正確な見積もりに組み合わせる戦略は、それ自体非常に広いトピック(フュージョンと呼ばれます。例1例2)ですが、ここで行っていることと非常に関連があります。


5

Maxbotix MB1200 XL-MaxSonar-EZ0などの一部のセンサーにはデイジーチェーンシステムが組み込まれており、測定が完了すると、1つのセンサーが次のセンサーをトリガーします。このようにして、N個のセンサーを使用して、一度に1つだけが起動するようにできますが、最初のセンサーが戻りを収集するとすぐに次のセンサーが起動します。このソリューションはシンプルですが、単位時間あたりに取得するデータの量が明らかに大幅に減少します。イアンのソリューションは最適にはるかに近いです。


4

1台のロボットで複数の超音波センサーを使用することは可能ですか?はい:「複数のソナーセンサーを使用します」

すでに理解しているように、1つのセンサーが別のセンサーから送信されたpingのエコーを受信することがよくあります。クロスセンシティビティを処理する方法はいくつかあります。大まかに単純なものから順に説明します。

  • 次のトランスデューサーにpingする前に現在のトランスデューサーからの「ゴーストエコー」が停止するのを待っている間、他のすべてのトランスデューサーを無視して、一度に1つのトランスデューサーのみをpingします。これは、単一のトランスデューサを機械的に回転させるよりもはるかに高速です。ロボットがほぼ音速で物事にぶつからない限り、これはおそらく十分高速です。
  • センサーごとに比較的狭いビーム角度のトランスミッターまたはレシーバー(または両方)を使用し、あるセンサーから次のセンサーへの角度を大きくして、あるセンサーが別のセンサーからのエコーを聞くことができないようにします(トランスデューサーの前にあるものが奇妙な横方向の反射を引き起こさない限り) )—ビーム角度とほぼ同じ角度のセンサー。悲しいかな、これはトランスデューサーの間に「盲点」を残し、そこではどのトランスデューサーからもオブジェクトを見ることができません。
  • いくつかの組み合わせ—たとえば、1つのセンサーから別のセンサーに角度を増加させて、1つのセンサーが2つの隣接センサー(ビーム角度の約半分)からのエコーのみを聞くようにします。次に、偶数トランスデューサー(奇数トランスデューサーを無視)へのpingと奇数トランスデューサー(偶数トランスデューサーを無視)へのpingを交互に実行します。
  • 各トランスデューサーは異なる周波数で動作します。残念ながら、すべての低コストの超音波トランスデューサーは、いくつかの例外を除いて、40 kHzで共振するように調整されています。さまざまな信号を聞く場合、これらのトランスデューサは、40 kHzから数kHz以内の信号のみを「聞く」ことができます。バランスをとる必要があります(a)40 kHz用に設計されたトランスデューサーで使用する40 kHzから離れるほど感度が低下するため、40 kHzに「比較的近い」周波数が必要です。(a)すべての周波数が接近しているほど、それらを区別することが難しくなります。そのため、「比較的遠く離れた」周波数のセットが必要です。妥協があるかどうかはわかりません。そうでない場合は、(c)他の周波数に調整されたより高価なセンサーを使用することで立ち往生しています。特定の周波数に調整されていない「広帯域」センサー
  • さまざまな送信タイミングを使用して、ゴーストエコーを除外します。左から送信し、2 ms遅延させ(エコーを停止させるのに十分ではありません)、次に右から送信します...エコーが停止した後、左から送信し、3 ms遅延してから送信します。権利。どちらの場合も、正しい受信者が5ミリ秒後にエコーを返す場合は、それが本物のエコーであると確信できます。右側のレシーバーが最初に5ミリ秒遅れて、2回目に6ミリ秒遅れてエコーが返る場合、それはおそらく左側のレシーバーからのゴーストです。(同時に同じ周波数を使用する多くの送信機を分離するための、はるかに高度な「スペクトル拡散」技術があります。)
  • すべての受信機からの信号を結合します。すべての方向にpingする1つの中央送信機があり(または、同等にすべての方向に送信機が向けられており、同時にすべてにpingする場合)、最初に返されるエコーが最初に左の受信機に到達し、次に右に到達する場合エコーが聞こえます)、最も近い障害物は右側よりも左側に近いことがわかります。(すべての受信機からの信号を組み合わせるより洗練された「フェーズドアレイ」技術と、すべての送信機の送信時間をわずかに調整するさらに高度な「ビームフォーミング」技術があります。)

PS:「赤外線vs.超音波—知っておくべきこと」を見たことはありますか?

(はい、私は以前に「複数の超音波距離計の質問」でこれを述べました。)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.