障害物回避のアルゴリズムについて
Posted: 2013年2月08日(金) 17:33
http://www.atmarkit.co.jp/fdotnet/terra ... 06_02.html
こちらのサイト様を参考に障害物回避のプログラムを組んでみたのですが、上下に動いたまま一向に移動しなくなる状況が発生してしまったため質問致した次第です。
言葉では説明し辛いのでこちらの画像を参照して欲しいのですが、
緑が目的地
赤が一番近い障害物
紺色の円が最初に確定した経由点
水色が他の障害物領域に経由点が入っていたために移動していった最終地点の経由点
をそれぞれ示しています。
http://iup.2ch-library.com/i/i0849009-1360310909.png
こちらは下に移動
目的地がサイト様内で示されている①のエリア内にあるため、目的地側に紺色経由点が2つ出来ています。
この経由点は他の障害物領域内にありますので、領域内を移動した最終地点が水色となり、上の水色の方が近いため、下の水色経由点は切り捨てて、上の水色経由点で再帰処理を行います。
http://iup.2ch-library.com/i/i0849010-1360310909.png
問題はこちらの上に移動
こちらでは障害物から見た目的地が②のエリアにあるため、最初の経由点は斜めに二つ出来ます。
これらを障害物領域によって移動させると水色の地点となり、近い経由点である下の水色を採用して再帰処理を施してしまいます。
これによって延々と上下移動してしまうバグが発生してしまいました。
こういった特定の状況を除くと概ね想定通りの動きをしてくれてはいるのですが、上記の不具合はどのように修正していけば宜しいものでしょうか?
こちらのサイト様を参考に障害物回避のプログラムを組んでみたのですが、上下に動いたまま一向に移動しなくなる状況が発生してしまったため質問致した次第です。
言葉では説明し辛いのでこちらの画像を参照して欲しいのですが、
緑が目的地
赤が一番近い障害物
紺色の円が最初に確定した経由点
水色が他の障害物領域に経由点が入っていたために移動していった最終地点の経由点
をそれぞれ示しています。
http://iup.2ch-library.com/i/i0849009-1360310909.png
こちらは下に移動
目的地がサイト様内で示されている①のエリア内にあるため、目的地側に紺色経由点が2つ出来ています。
この経由点は他の障害物領域内にありますので、領域内を移動した最終地点が水色となり、上の水色の方が近いため、下の水色経由点は切り捨てて、上の水色経由点で再帰処理を行います。
http://iup.2ch-library.com/i/i0849010-1360310909.png
問題はこちらの上に移動
こちらでは障害物から見た目的地が②のエリアにあるため、最初の経由点は斜めに二つ出来ます。
これらを障害物領域によって移動させると水色の地点となり、近い経由点である下の水色を採用して再帰処理を施してしまいます。
これによって延々と上下移動してしまうバグが発生してしまいました。
こういった特定の状況を除くと概ね想定通りの動きをしてくれてはいるのですが、上記の不具合はどのように修正していけば宜しいものでしょうか?