7

AI チャレンジに参加するためのコードを書いています。AI チャレンジの主な目的は、シミュレートされたロボットを使用して、迷路を通って目的のゾーンまでナビゲートすることです。オプションの二次的な目的は、未知の場所にある迷路に配置された充電器を見つけることです。これはすべて 2D グリッドで行われます。

私のプログラムは、充電器からの距離測定値を取得するメソッドを呼び出すことができます。したがって、三辺測量を使用すると、このメソッドを呼び出して、AI の現在の位置と、充電器がそのポイントから離れている距離を 3 回記録することで、充電器の位置を特定できるはずです。

ウィキペディアhttp://en.wikipedia.org/wiki/Trilaterationでこの三辺測量の例を見つけましたが、これは 3D 空間に適用されます。私は2D空間のみを扱っています。また、ウィキペディアに示されている式の使用方法もわかりません。数値が差し込まれた実際の例をウェブで検索し、最終的な座標に煮詰めることは、Google検索ではほとんどありません。

私は数学専攻ではありません。私は、AI の問題を探求する愛好家にすぎません。

数学は私の得意分野ではないので、問題を計算する方法の説明と段階的な例が必要です。以下はサンプルデータです。

  • ポイント 1: x=39、y=28、距離=8
  • ポイント 2: x=13、y=39、距離=11
  • ポイント 3: x=16、y=40、距離=8

私のサンプルデータを使用した例は大歓迎です。これに対するプログラミングは、数学に頭を悩ませることができれば、非常に簡単です。

4

1 に答える 1

13

ウィキペディアの三辺測量の記事で説明されているように、e x、i、e y、d、j、x、yを連続して計算することで (x,y) 座標を計算します。ベクトル表記に精通している必要があります。たとえば、e x = (P2 - P1) / ‖P2 - P1‖ は次のことを意味します。

  • e x,x = (P2 x - P1 x ) / sqrt((P2 x - P1 x ) 2 + (P2 y - P1 y ) 2 )
  • e x,y = (P2 y - P1 y ) / sqrt((P2 x - P1 x ) 2 + (P2 y - P1 y ) 2 )

あなたのデータは:

  • P1 = (39, 28); r 1 = 8
  • P2 = (13, 39); r 2 = 11
  • P3 = (16, 40); r 3 = 8

計算手順は次のとおりです。

  1. e x = (P2 - P1) / ‖P2 - P1‖</li>
  2. i = e x (P3 - P1)
  3. e y = (P3 - P1 - i · e x ) / ‖P3 - P1 - i · e x ‖</li>
  4. d = ‖P2 - P1‖</li>
  5. j = ey (P3 - P1)
  6. x = (r 1 2 - r 2 2 + d 2 ) / 2d
  7. y = (r 1 2 - r 3 2 + i 2 + j 2 ) / 2j - ix / j
于 2012-03-17T22:31:57.470 に答える