衝突回避アルゴリズム
- 自身の視野範囲(速度ベクトルに依存)内に存在するノード群を見つける.
- 見つけたノード群の中から自身の行動に影響を与える(そのまま同じ行動を続けると
ぶつかるような)ノードをその速度ベクトルを用いて選別する(以降,選別されたノード群を対象ノード
と表記する).
- 自身の位置,速度ベクトルと対象ノードの位置,速度ベクトルから,
対象ノードにぶつからない(一定間隔(30cm)以上距離を空けて避ける)
ような速度ベクトルを求める([1]の衝突回避アルゴリズムを応用).
- 全ての対象ノードに対して3.を実行し,それらの候補速度ベクトルの
中から最も外側(両端)の2つのうち,元の速度ベクトルに近いものを自身の
速度ベクトルとして選ぶ.
3.で求めた速度ベクトルと元の速度ベクトルとの内積が負(2ベクトルの角度が90°よりも大)
の場合,速度を下げて再び1.から実行する.それでも内積が負にならない速度ベクトルが
見つからない場合,自身の速度ベクトルを(0.0, 0.0)にする.
[1]岡田公孝, 和田剛, 高橋幸雄, "個人行動をベースにした歩行モデルと歩行流シミュレーション",
日本オペレーションズ・リサーチ学会, 春季研究発表会, 2003.