4

オブジェクトがAに配置されており、 Bに移動しようとしています。配列Cの回避される点の距離D内で移動しない移動ベクトルを計算したいと思います。

したがって、移動ベクトル(BA)を正規化し、オブジェクトの速度を掛けると、C内の任意のポイントのD内に移動する場合、ベクトルは回転しないように回転します。

これは2次元です。また、この操作に名前が付いている場合は、何と呼ぶか​​わからなかったので、コメントするか、この質問を自分で編集してください。

また、私の最初の本能は、アクティブエリアをノードに分割してA *を実行することでしたが、これに対して数学的アプローチを試してみたいと思います。群れを使ったいくつかの実験で、それができるという印象を受けます。

更新(コメントから):この画像は私が望む解決策に非常に近いです:

道

左の地点からスタートすると、ゴール(もう一方の地点)に向かって右に曲がり始め、右側の壁を検出したので、曲がるのをやめて前進します。壁がなくなったので、再びゴールに向かって曲がり始めることができます。これによりオブジェクトがまったく到達しない可能性があることはわかっていますが、私が何を意味するかを知っている場合は、必ずしも解決策ではなく、動作を定義したいと思います。

Update2:アクティブエリアをノードのセットに変換すると、非効率になる可能性があります。A *およびその他のヒューリスティックグラフ走査アルゴリズムは、低次元の問題に最適です。しかし、私が移動したいエリアは無限のサイズであり、そこに散らばっている障害物はほんの一握りです。ノード自体、またはむしろ潜在的な位置は、無限に小さいです。もちろん、これはある種の四分木で最適化することもできますが、何らかの方法で回転および補間された単純な運動ベクトルでもこれを解決できると感じています。

4

4 に答える 4

3

これはモーションプランニングとパスファインディングと呼ばれます(前述のとおり)

多くのアルゴリズムがありますが、あなたの説明から、可視性グラフは良い出発点かもしれません. ポイントA、B、およびCの各ポイントの周りのポリゴンを含むグラフがあります(各ポイントから接線を計算することにより、円で行うこともできます)。ポイント間の潜在的なパスとしてエッジを計算します。これは、それをよりよく説明するスライドショーです。

次に、ビジビリティ グラフの上に、A* (ヒューリスティック検索) のような検索アルゴリズムを適用して、グラフを通る最適なパスを見つけます。

ただし、何を求めているかを考慮する必要があります。上記のアプローチは、すべてのコーナーに非常に接近することによって最短経路を見つけますが、他のアルゴリズムが最適性の考えにより適している場合があります。

于 2009-07-07T14:43:22.727 に答える
2

また、回答でリンクしたページには、一般的なステアリング動作に関するかなり良い議論があります。

特に、封じ込めについては彼のページを参照し、良い例についてはパス フォローイングを参照してください。

自律キャラクターの操縦行動

于 2009-07-08T21:38:23.083 に答える
0

潜在的なフィールドの使用を検討できます。これにより、障害物の「端にぶつかる」ことを回避できます。

ただし、A* アルゴリズムと同様に、これには状態空間を量子化する必要があるため、必要な精度によっては非常に計算量が多くなる可能性があることに注意してください。

于 2009-07-07T16:17:20.360 に答える
0

このページで群れのルーチンの非常に詳細な説明を見つけました。

すべての障害物に対して分離規則を使用し、(群れの仲間がいないため) ゴール位置にのみ整列し、(同じ理由で) 結束規則を無視します。

それが望ましい効果をもたらすかどうかは疑問です。

于 2009-07-07T16:33:44.913 に答える