(57)【要約】【課題】  仮想環境を作成するメモリ領域の容量が少なくて済み、また仮想移動体の動きの計算に小規模計算機程度の演算能力で済む、簡便な、自律走行を行なう移動体の走行経路を生成するためのシミュレーションシステムを提供する。【解決手段】  地図データがｘ−ｙ座標系のｘ軸とｙ軸に沿った碁盤様のセルについてのデータに変換されたｘ−ｙ座標系において、走行経路を辿る仮想移動体の時間経過ｔにおけるｘ座標ｘ（ｔ）、ｙ座標ｙ（ｔ）、移動体の前進方向ｋｗｈ（ｔ）及び移動体の前進方向を基準としたときの次回の移動方向ｋｒ（ｔ）から成る４要素で走行経路を表現する。仮想環境が簡素化した設計され、仮想移動体による学習について、行動時間（ｔ）と１行動で行なう基準行動が船舶の操舵を模した形で実現され、いずれも、メモリの容量や演算速度についてのシステムの負担を少なくすことができる。【選択図】        図２
2006326746.tif 000002
【特許請求の範囲】
【請求項１】
与えられた地図データに基づいて移動体の走行経路を作成するシミュレーションシステムにおいて、前記地図データをｘ−ｙ座標系のｘ軸とｙ軸に沿った碁盤様のセルについてのデータに変換し、前記地図データが作成される前記ｘ−ｙ座標系において、前記仮想移動体が辿る前記走行経路を、時間経過ｔにおける前記仮想移動体のｘ座標ｘ（ｔ）、ｙ座標ｙ（ｔ）、ワールド座標系における前記仮想移動体の前進方向ｋｗｈ（ｔ）及び前記仮想移動体の前進方向ｋｗｈ（ｔ）を基準としたときの次回の移動方向ｋｒ（ｔ）から成る４要素で表現することを特徴とする自律走行移動体のシミュレーションシステム。
【請求項２】
前記経過時間ｔは、前記仮想移動体が前記ワールド座標系において前記ｘ軸又は前記ｙ軸に沿って取る１セル毎の移動を単位行動として、前記単位行動の回数による１０進整数で表現されることを特徴とする請求項１に記載の自律走行移動体のシミュレーションシステム。
【請求項３】
前記仮想移動体の前記前進方向ｋｗｈ（ｔ）は、ｙ軸の＋向きを０として３６０°を８分割した８方向を時計周りに０〜７の整数で表現されることを特徴とする請求項１又は２に記載の自律走行移動体のシミュレーションシステム。
【請求項４】
前記仮想移動体の前進方向ｋｗｈ（ｔ）を基準としたときの次回の移動方向ｋｒ（ｔ）は、初期値を０方向とし、次回進行方向を３６０°を８分割した８方向を時計周りに０〜７の整数で表現されることを特徴とする請求項１〜３のいずれか１項に記載の自律走行移動体のシミュレーションシステム。
【請求項５】
前記仮想移動体の前記前進方向ｋｗｈ（ｔ）と前記前進方向ｋｗｈ（ｔ）を基準としたときの次回の移動方向ｋｒ（ｔ）は、４５°のステップ回転角のステップ数で表現される回転動作において、前記ステップ数＋向きが向きの上限７を越えたときに８を減算することで向きを０〜７の１桁の８進整数で表現されることを特徴とする請求項３又は４に記載の自律走行移動体のシミュレーションシステム。
【請求項６】
前記セルは、その属性が、行動可能且つ走行経路、行動可能又は行動不可に設定され、前記仮想移動体が一度走行した前記セルについては、行動可能且つ走行経路且つ１度走行済みであるとの属性に設定することを特徴とする請求項１〜５のいずれか１項に記載の自律走行移動体のシミュレーションシステム。
【請求項７】
前記走行経路は、前記仮想移動体の幅を考慮して、前記地図データに前記属性が行動不可であるとして含まれ得る障害物から一定距離離れて作成されることを特徴とする請求項６に記載の自律走行移動体のシミュレーションシステム。
【請求項８】
前記走行経路は、前記属性が行動不可であるとされる障害物セルをｘ座標又はｙ座標の軸線方向に移動しながら辿るとき、前記障害物セルから一定個数離れた前記属性が行動可能な前記セルを走行経路に指定し、その後、前記属性が行動不可である障害物セルをｘ座標又はｙ座標の軸線方向に移動しながら辿るとき、前記走行経路に指定された前記セルのうち、前記障害物セルから前記仮想移動体の幅を考慮した個数離れた前記セルについての前記走行経路の指定を解除することから成る請求項７に記載の自律走行移動体のシミュレーションシステム。
【請求項９】
前記仮想移動体の周囲に行動可能且つ走行経路であるとの前記属性を持つ前記セルが見いだせない袋小路に入った場合、前記行動可能且つ走行経路且つ１度走行済みであるとの前記属性に設定されている前記セルを前記走行経路に指定することを特徴とする請求項６に記載の自律走行移動体のシミュレーションシステム。
【請求項１０】
前記仮想移動体は、その正面の向きを変更することなく前記走行経路を後進することで前記袋小路を脱出することを特徴とする請求項９に記載の自律走行移動体のシミュレーションシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、自律走行を行なう移動体の走行経路を生成するためのシミュレーションシステムに関する。
【背景技術】
【０００２】
従来、自律走行を行なう移動体を仮想的に再現して走行シミュレーションを行うシミュレーションシステムとして、自立走行車にテレビカメラを搭載し、テレビカメラの撮影画像を数値処理し、予め学習させたニューラルネットワークによって演算して、自立走行車に備わる駆動手段を走行制御し、走行環境に適応した走行を行うものが提案されている（特許文献１参照）。このシミュレーションシステムでは、ニューラルネットワークは入力層、中間層及び出力層を有しており、予め、逆誤差伝播法によって学習させておいて、テレビカメラの撮影画像或いはその特徴量を入力して識別し、走行路の形状、交差点、障害物の存在等の状況を予め学習させておく方法が採用されている。
【特許文献１】特開平７−７８０２８号公報（段落［００１４］〜［００１５］、図３、図４）
【０００３】
従来のシミュレーションシステムにおいては、予め別システムで学習させた制御を移動体に搭載し、学習するためのシステムとして、別に大きなメモリ容量と高速な計算能力をもったシミュレーションシステムを必要としていた。
【０００４】
走行軌跡をトレースする手段として、本出願人による先願（特願２００４−１９５３３２号）において、光学式変位センサを提案している。この光学式変位センサによれば、走行床面上の模様等を所定の時間間隔で撮像し、時間前後の画像を比較することで、回転センサを設けることなく、移動車の移動量を検出可能にしている。
【０００５】
ニューラルネットワークを用いるシミュレーションは、地図データをそのまま仮想環境化し、実際の移動体に準じた仮想移動体を再現している。このシステムでは、仮想環境を作成するシステムのメモリ領域として大きな容量が必要であり、また仮想移動体の動きを計算するために高速な演算能力を必要とする。その結果、移動体にシミュレーションシステムを搭載し、移動体内システム又は携帯端末機器等で実現するためには、割り当てられるメモリ容量や計算能力に比べて、はるかに大きなメモリ容量と計算能力を必要としている。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
そこで、地図データを簡素に表現した座標系において、移動体の動きを時刻に応じた現在位置とその位置での移動方向に関する量を用いて、シミュレーションを簡素化する点で解決すべき課題がある。
【０００７】
この発明の目的は、自律走行を行なう移動体の走行経路を生成するためのシミュレーションシステムであって、仮想環境を作成するメモリ領域の容量が少なくて済み、また仮想移動体の動きの計算に小規模計算機程度の演算能力で済む、簡便なシミュレーションシステムを提供することである。
【課題を解決するための手段】
【０００８】
この発明による自律走行移動体のシミュレーションシステムは、与えられた地図データに基づいて移動体の走行経路を作成するシミュレーションシステムにおいて、地図データをｘ−ｙ座標系のｘ軸とｙ軸に沿った碁盤様のセルについてのデータに変換し、前記地図データが作成される前記ｘ−ｙ座標系において、前記仮想移動体が辿る前記走行経路を、時間経過ｔにおける前記仮想移動体のｘ座標ｘ（ｔ）、ｙ座標ｙ（ｔ）、ワールド座標系における前記仮想移動体の前進方向ｋｗｈ（ｔ）及び前記仮想移動体の前進方向ｋｗｈ（ｔ）を基準としたときの次回の移動方向ｋｒ（ｔ）から成る４要素で表現することを特徴としている。
【０００９】
この自律走行移動体のシミュレーションシステムによれば、地図データをｘ−ｙ座標系のｘ軸とｙ軸に沿った碁盤様のセルデータに変換することによって、簡素化した仮想環境が設計される。また、仮想移動体が辿る走行経路を上記の４要素で表現することによって、仮想移動体による学習については、行動単位時間（ｔ）と１行動で行なう基準行動が船舶の操舵を模した形で実現され、いずれも、メモリの容量や演算速度についてのシステムの負担を少なくすることが可能になる。
【００１０】
この自律走行移動体のシミュレーションシステムにおいて、経過時間ｔを、仮想移動体がワールド座標系においてｘ軸又はｙ軸に沿って取る１セル毎の移動を単位行動として、単位行動の回数による１０進整数で表現することができる。仮想移動体がワールド座標系においてｘ軸又はｙ軸に沿って取る１セル毎の移動を単位行動とし、その単位行動の整数倍である回数として、経過時間を定めることにより、１セル毎の移動が１経過時間の単位となり、速度にとらわれずに走行経路を極めて単純化して定めることができる。その結果、メモリの容量や演算速度についても、負担が一層軽減される。
【００１１】
この自律走行移動体のシミュレーションシステムにおいて、仮想移動体の前進方向ｋｗｈ（ｔ）を、ｙ軸の＋向きを０として３６０°を８分割した８方向を時計周りに０〜７の整数で表現することができる。仮想移動体の前進方向ｋｗｈ（ｔ）を、ｙ軸の＋向きを０として４５°毎に簡素化して定め、各方向を０〜７の整数で表現することで、メモリの容量や演算速度についても、負担が一層軽減される。
【００１２】
この自律走行移動体のシミュレーションシステムにおいて、仮想移動体の前進方向ｋｗｈ（ｔ）を基準としたときの次回の移動方向ｋｒ（ｔ）を、初期値を０方向とし、次回進行方向を３６０°を８分割した８方向を時計周りに０〜７の整数で表現することができる。仮想移動体の前進方向ｋｗｈ（ｔ）を基準としたときの次回の移動方向ｋｒ（ｔ）は、初期値を０方向とし次回進行方向を４５°毎に簡素化して定められ、各方向を０〜７の整数で表現することができる。その結果、メモリの容量や演算速度についても負担が一層軽減される。
【００１３】
この自律走行移動体のシミュレーションシステムにおいて、仮想移動体の前進方向ｋｗｈ（ｔ）と前進方向ｋｗｈ（ｔ）を基準としたときの次回の移動方向ｋｒ（ｔ）を、４５°のステップ回転角のステップ数で表現される回転動作において、前記ステップ数＋向きが向きの上限７を越えたときに８を減算することで向きを０〜７の１桁の８進整数で表現することができる。仮想移動体の前進方向ｋｗｈ（ｔ）と前進方向ｋｗｈ（ｔ）を基準としたときの次回の移動方向ｋｒ（ｔ）においては、４５°のステップ回転角のステップ数で表現され、ステップ数＋向きが向きの上限７を越えたときに８を減算することで向きを０〜７の１桁の８進整数で表現することができる。
【００１４】
また、この自律走行移動体のシミュレーションシステムにおいて、セルは、その属性が、行動可能且つ走行経路、行動可能又は行動不可に設定され、仮想移動体が一度走行したセルについては、行動可能且つ走行経路且つ１度走行済みであるとの属性に設定することができる。セルの属性としては、「行動可能且つ走行経路」は仮想移動体が行動可能であって且つ走行経路と指定される属性であり、「行動可能」は仮想移動体が行動可能であることのみの属性であり、「行動不可」は仮想移動体が障害物と干渉してしまうなど仮想移動体が行動できないという属性である。これらの属性が設定されれば、仮想移動体が次に取るべき行動を決めることができ、例えば、現在の仮想移動体が占めるセルの周囲に「行動可能且つ走行経路」の属性を持つセルが発見されれば、そのセルの方向に移動することができる。
【００１５】
この自律走行移動体のシミュレーションシステムにおいて、走行経路を、仮想移動体の幅を考慮して、地図データに属性が行動不可であるとして含まれ得る障害物から一定距離離れて作成することが好ましい。移動体にはそれ自身幅寸法があるので、障害物との干渉を回避するために障害物から離れて走行することになる。そこで、仮想移動体が辿るべき走行経路については、障害物から一定距離離れたものとして作成する。
【００１６】
走行経路を自動作成する上記自律走行移動体のシミュレーションシステムにおいて、走行経路は、属性が行動不可であるとされる障害物セルをｘ座標又はｙ座標の軸線方向に移動しながら辿るとき、障害物セルから一定個数離れた属性が行動可能なセルを走行経路に指定し、その後、属性が行動不可である障害物セルをｘ座標又はｙ座標の軸線方向に移動しながら辿るとき、走行経路に指定されたセルのうち、障害物セルから仮想移動体の幅を考慮した個数離れたセルについての走行経路の指定を解除することで定めることができる。障害物セルから一定個数離れた属性が行動可能なセルを走行経路に指定し、その後、走行経路に指定されたセルのうち、障害物セルから仮想移動体の幅を考慮した個数離れたセルについての走行経路の指定を解除することで、残った行動可能なセルを、幅を持つ仮想移動体の走行経路として定めることができる。
【００１７】
上記のような属性を設定する自律走行移動体のシミュレーションシステムにおいて、仮想移動体の周囲に行動可能且つ走行経路であるとの属性を持つセルが見いだせない袋小路に入った場合、行動可能且つ走行経路且つ１度走行済みであるとの属性に設定されているセルを走行経路に指定することができる。仮想移動体の周囲に行動可能且つ走行経路であるとの属性を持つセルが見いだせない場合には、仮想移動体は進むべき走行経路が発見できないので袋小路に入ったことになる。この場合、当該セルに移動してきた走行経路となっていたセルが「行動可能且つ走行経路且つ１度走行済み」との属性に設定されているので、その属性を持つセルを一つ見いだすことができる。そこで、その属性を持つセルを袋小路脱出のための走行経路に指定することができる。
【００１８】
袋小路脱出を行うこの自律走行移動体のシミュレーションシステムにおいて、仮想移動体は、その正面の向きを変更することなく走行経路を後進することで袋小路を脱出することが好ましい。袋小路脱出を行う場合には、仮想移動体は、向きを変えてから戻るという反転をすることなく、その袋小路に入って来た向きを維持したまま後退することで、素早く袋小路から抜け出すことができる。
【発明の効果】
【００１９】
この自律走行移動体のシミュレーションシステムによれば、複雑な走行環境情報としての地図データは、地図データから変換されたｘ−ｙ座標系のｘ軸とｙ軸に沿った碁盤様のセルについてのデータとして、簡素化した仮想環境が設計される。また、地図データの中での仮想移動体の複雑な走行行動は、時間経過ｔにおけるｘ座標ｘ（ｔ）、ｙ座標ｙ（ｔ）、移動体の前進方向ｋｗｈ（ｔ）及び前記移動体の前進方向ｋｗｈ（ｔ）を基準としたときの次回の移動方向ｋｒ（ｔ）から成る４要素によって非常に簡素に表現できる。更にまた、走行行動を作成するための仮想移動体の定義についても必要がない。このように、仮想環境、仮想移動体の走行行動及び仮想移動体の定義について、いずれも又トータルとしても非常に簡便なシミュレーションシステムを構築することができる。仮想移動体の行動を制御するのに必要なシステムは、小規模なマイコンシステム等にも容易に搭載可能であり、異なる走行環境情報の下での行動も、自己学習可能なシミュレーションシステムを構築することができる。更に、この発明によるシミュレーションシステムでは、メモリの容量や演算速度についてのシステムの負担を少なくすることができ、携帯端末等のパソコン程の汎用性と大容量のメモリや高速・大量の演算能力を持たない機器のアプリケーションとしても十分成立し得るシミュレーションシステムとなる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照して、この発明による自律走行移動体のシミュレーションシステムの実施例について説明する。図１はこの発明による自律走行移動体のシミュレーションシステムにおいて、自律走行移動体が走行する経路を形成するための障害物情報を含む地図データを座標上に示す図、図２は図１において自律走行移動体の走行経路が設定された地図データを座標上に示す図、図３及び図４は図２に示す走行経路に対応した自律走行移動体の各時刻における座標及び方向を表として示す図である。
【００２１】
図１に示す地図データにおいては、ｘ軸及びｙ軸の１×１の単位角は１０ｃｍ角に対応しており、壁及び障害物の情報はｘ−ｙ座標系においてセル（自然数同士の格子点）にプロットされた黒点として簡略化表示されている。ワールド座標系でもあるｘ−ｙ座標系において、基本的な走行空間は、ｘ＝１、ｘ＝１７、ｙ＝１、ｙ＝１９で表される壁の内部であり、この内部に３カ所の障害物が設定されている。図２に示すように、自律走行可能な仮想移動体（以下、簡素化のため、単に「移動体」と言う）の走行経路も、セルの交点を辿る経路（図では、セルにプロットされた黒点よりも大きい黒点として示す）として定められる。このように、障害物情報をもった地図上のセルの座標から定位置のセルを走行経路に指定することによって、走行経路を簡単に作成することができ、シミュレーションに必要なメモリが大容量化するのを回避することができる。
【００２２】
図２に示す走行経路は、図３及び図４に示す表に対応している。移動体は、壁や障害物から３０ｃｍ離れた位置を走行するものとする。このような設定は、移動体が自立走行可能な掃除機であるような場合には掃除機構の適切な作動にとって合理的な設定である。行動ルールのフォーマットとして、ワールド座標系での向きについては、図１及び図２で上（ｙ軸の正方向）を０とし、０から４５°毎に１を増加して７で時計回り方向に８方位で規定して表すことにする。即ち、移動体の前進方向を、一つの行動ルールとして規定する。例えば、図の上右下左は、それぞれ北東南西（方向の値として、０，２，４，６）と規定される。また、移動体の前進方向を基準として、次に移動体がどの方向の格子点に移動するかの方向を、もう一つの行動ルールとして、８方位で０から時計回りの方向で７までの方向に規定される。これらの行動ルールは、走行経路上の座標におけるパラメータとして扱うことができる。
【００２３】
時間ｔ＝０において、移動体の（ｘ，ｙ）座標位置は（４，４）であるとする。走行経路は、時間ｔ＝４まで０の方向を前進方向として直進するので、ｙ座標が１ずつ増加していくが、ワールド座標での移動体の前進方向ｋｗｈ（ｔ）は０の値を、前進方向ｋｗｈ（ｔ）を基準としたときの次回の移動方向ｋｒ（ｔ）も０の値を維持し、時間ｔ＝４に至って始めて２と表示される。即ち、ｔ＝５では移動体は（５，８）に居るべきであるので、時間ｔ＝４においては、移動体が到達したときの前進方向ｋｗｈ（４）は０であるが、次に進行すべき方向は９０°右折すべきであるので、次回の移動方向ｋｒ（４）＝２であることが示されている。なお、ｋｗｈ（ｔ）はワールド座標（ｘ−ｙ平面のような慣性座標系）において移動体が前進となる方向、例えば、東西南北のように表される方向であり、ｋｒ（ｔ）は、移動体に依存する方向（移動体に固定した移動座標系で見て次どの方向に進もうとするかの方向）であって、例えば、移動体に搭乗する人が居るとしてその者が前進方向を基準として見た前後左右のように表される方向である。
【００２４】
時間ｔ＝５では、移動体は東の向きで座標（５，８）に移動してくるので前進方向ｋｗｈ（５）は２と表示されている。時間ｔ＝６では、走行経路の座標は（５，９）であるので、移動体は時計方向に２７０°変更すべきである。したがって、前進方向ｋｗｈ（５）を基準としたときの次回の移動方向ｋｒ（５）は６と表示されている。次に、時間ｔ＝８までは、北に向かって直進するので、ｘ＝５を維持したままｙが１１まで増加していく。この間、前進方向ｋｗｈ（ｔ）及び前進方向ｋｗｈ（ｔ）を基準としたときの次回の移動方向ｋｒ（ｔ）は０のままである。時間ｔ＝８から時間ｔ＝９の間は、移動体は東に向かうので、時間ｔ＝８において次回に移動するときの前進方向を基準としたときの次回の移動方向ｋｒ（８）は２となる。以下、走行経路は、図４に示す時間ｔ＝１８における座標（１０，１６）まで、北と東の方向に交互に移動方向を変更する経路となっている。
【００２５】
時間ｔ＝１８の後、移動経路は、袋小路に入るので、引き返し経路となっている。即ち、時間ｔ＝１９〜２２の間は、移動体は左（西）側に面する状態を継続するので、移動体の前進方向ｋｗｈ（ｔ）は６となっている。時間ｔ＝１８において次回に移動するときの進行方向が左（西）側であるので、前進方向を基準としたときの次回の移動方向ｋｒ（１８）は６となる。時間ｔ＝２０では、真っ直ぐ又は左右に走行経路は無くそれらの方向に進めないので、時間ｔ＝２０に到着したままの向きで後退（０度回転で後退）する。従って、次回に移動するときの前進方向ｋｗｈ（２０）を基準としたときの次回の移動方向ｋｒ（２０）は４である。この状態は、座標（１０，１６）に至る時間ｔ＝２２まで継続する。座標（１０，１６）で移動体は自転して方向転換し、時間ｔ＝２２においては、右（東）に走行可能なセルが存在しているので、袋小路脱出モードではなく通常の走行モードに移行する。右（東）を向くので前進方向ｋｗｈ（２３）＝２となるが、前進方向を基準としたときの次回の移動方向は同じ方向となるので、ｋｒ（２３）＝０である。以下、同様にして、図２に示すように走行空間内を一巡する走行経路が設定されているが、ｔ＝２４以降の座標については表による説明を省略する。
【００２６】
図１に示すような壁や障害物が定められたときに、図２に図示され、図３及び図４に表として示されるような走行経路が走行空間として自動的に設定されて、シミュレーションを行うことができる。図５〜図１０は、地図データが変換されて形成されたｘ−ｙ座標系において障害物を認識して走路指定を行うフローチャートである。移動経路をたどる走行アルゴリズムの一例が図１１及び図１２にフローチャートとして示されており、簡単なシミュレーションで進むべき次セルの本体座標系での方向を作成することが可能である。本発明によれば、地図データを基準として一層正確に部屋の壁際、隅等の障害物を効果的に仮想行動を作成することが可能なシミュレーションとして機能する。
【００２７】
図５は、障害物の右側走路指定を行うフローチャートである。図５において、検索範囲を定めるｘｍａｘとｙｍａｘとが読み込まれるとともに、初期座標として（ｘ，ｙ）＝（０，０）が与えられる（ステップ１、「Ｓ１」と略す。以下、同じ）。図１によれば、この座標は壁の内部であるので走行不可であるが、フローチャートでは（ｘ，ｙ）＝＝２であることによる障害物確認があるか否かが判定される（Ｓ２）。ここで、記号「＝＝」は「等号」の意味であり、「１」は「行動可能且つ走行経路とすること」を、「０」は「行動可能であること」を、そして「２」は「行動不可」であり、「１１」は行動可能且つ走行経路且つ１度走行済み」であることを表す。座標（０，０）の場合では、この座標は移動体が行動不可であるから障害物が確認される。したがって、（０，０）＝＝２であるので、Ｓ２における障害物確認の判定は「あり」が選択される。この場合、次に、（ｘ＋３，ｙ）＝＝０であることによる障害物確認があるか否かが判断される（Ｓ３）。この判定は、直前の座標が障害物で行動不可の場合にはその座標の右に３セルのセルが障害物であるか否かを判断することである。ｘ＝０であるから、Ｓ３では座標（３，０）が行動可能か否かが判定される。この例では座標（３，０）は行動不可であるから、そのセルには障害物が確認されて「あり」となる。仮に、Ｓ３の判定が行動可能である旨の判定であれば、（ｘ＋３，ｙ）＝１を代入する。記号「＝」は代入であり、属性の「１」は上記の通りであり、当該セルは行動可能且つ走行経路とされる（Ｓ４）。
【００２８】
Ｓ３の判定が行動不可である場合には、更に、ｙ軸方向に＋１移動した座標（ｘ＋３，ｙ＋１）のセルの障害物確認が行われる（Ｓ５）。Ｓ５の判定で当該セルが障害物なく行動可能と判定されたときには、当該座標（ｘ＋３，ｙ＋１）のセルは行動可能且つ走行経路とされる（Ｓ６）。Ｓ５の判定で当該セルが障害物であり行動不可である場合には、ｘ座標にｘ＋１が代入され（Ｓ７）、更にＳ２に戻って、ｘ軸方向に＋１寄ったセルについて障害物確認の判定が行われる。なお、Ｓ２で当該座標のセルが行動可能であれば、Ｓ７へ移行してｘ軸方向に＋１寄ったセルについて障害物確認の判定が行われる。ｘが最大値ｘｍａｘを超えているか否かが判定され（Ｓ８）、Ｎｏの判定であればＳ２に戻って右側走路指定を継続するが、Ｙｅｓの判定であればｙの値を＋１増加してｙ軸方向に更新し、ｘには０を代入する（Ｓ９）。ｙの値を更新したとき、ｙの値がｙｍａｘを超えているか否かが判定され（Ｓ１０）、Ｎｏの判定であればＳ２に戻って右側走路指定のためのｘ軸方向の検索を行うが、Ｙｅｓの判定であれば右側走路指定のための検索が全走行範囲に渡って終了したので、右側走路指定のフローチャートを終了する。
【００２９】
図１に示す障害物情報によれば、ｙ＝０については、すべてのｘについての座標は行動不可であると判定される。ｙ＝１については、ｘ＝０のときに、ｙ軸方向に＋１移動した座標（３，２）のセルが行動可能と判定される。図５に示すフローチャートにおいてｘ軸方向の検索が終了したときには、図示していないが、ｙ＝ｙ＋１の代入が行われ、ｙ軸方向にも検索が拡大される。このようにして、（ｘ，ｙ）のすべてのセルについて行動可能であるか否かの検索が行われる。ここでは、移動体は１０ｃｍ角のセルが３個分の３０ｃｍの幅を持つものとして扱っており、３セル目の中心を走行するとしている。それゆえ、当該座標のセルが行動不可の場合に限って、３セル目右側のセル（ｙ軸方向に＋１のセルを含む）が行動可能か否かを判定し、３セル目右側のセルが行動可能であればそのセルを走路指定している。ｙ軸方向に＋１移動した座標についても判定をすることで、連続した走行経路が確保される。当該座標のセルが行動可能であれば、３セル目右側のセルが行動可能か否かについて判定がされることはなく、したがって、３セル目右側のセルが走路に指定されることもない。こうした判定によって、障害物の右側に最大３セル目までの行動可能なセルが走行経路と指定される。なお、この実施例では、移動体の幅がセルが３個分であるがゆえに３セル目右側のセルが行動可能か否かを判定しているが、移動体の幅、セルの幅及び移動体が障害物から離れて通る距離が異なれば、それらに応じて検索すべき右側セルのセル数は異なることは明らかである。
【００３０】
図５に示すフローチャートでは、上記のように、障害物の右側の１セル目及び２セル目のセルが走路として指定され得る。この走路は、幅３０ｃｍの移動体が障害物（壁）と干渉してしまう走路であり本来は走行不可能とすべきである。こうした右側の２セル目の不要走路を削除する処理のためのフローチャートが、図６に示されている。図６において、検索範囲を定めるｘｍａｘとｙｍａｘとが読み込まれるとともに、初期座標として（ｘ，ｙ）＝（０，０）が与えられる（Ｓ１１）。（ｘ，ｙ）＝＝２であるか否かによって障害物確認が判定される（Ｓ１２）。座標（０，０）は行動不可であるから障害物が確認され、（０，０）＝＝２であるので、Ｓ２における障害物確認の判定は「あり」が選択される。この場合、次に、（ｘ＋２，ｙ）＝＝１であることによる走路指定の確認が判断される（Ｓ１３）。この判定は、当該座標（ｘ，ｙ）が障害物で行動不可の場合にはその座標の右に２セル目のセルが走路指定されているか否かを判断することである。ｘ＝０であるから、Ｓ３では座標（２，０）が走路指定されているか否かが判定される。この例では、座標（２，０）は行動不可であるから障害物が確認されて「走路指定なし」となる。仮に、Ｓ３の判定が走路指定されているとの判定であれば、（ｘ＋２，ｙ）＝０を代入して、走路解除を行う（Ｓ１４）。Ｓ１３の判定が走路指定なしであれば、ｙ軸方向に＋更新して、座標（ｘ＋２，ｙ＋１）＝＝１であるか否かで走路指定の確認が判断される（Ｓ１５）。Ｓ１５の判定の処理は、Ｓ１３の判定と同様であり、走路指定なしであればｘ軸方向に＋１更新してＳ１２に戻る。ｘが最大値ｘｍａｘを超えているか否かが判定され（Ｓ１８）、Ｎｏの判定であればＳ１２に戻って２セル目のセルについて走路指定解除を継続するが、Ｙｅｓの判定であればｙの値を＋１増加してｙ軸方向に更新し、ｘには０を代入する（Ｓ１９）。ｙの値を更新したとき、ｙの値がｙｍａｘを超えているか否かが判定され（Ｓ２０）、Ｎｏの判定であればＳ１２に戻って走路指定解除のためのｘ軸方向の検索を行うが、Ｙｅｓの判定であれば走路指定解除のための検索が全走行範囲に渡って終了したので、走路指定解除のフローチャートを終了する。
【００３１】
図６と同様にして、右側の１セル目の不要走路を削除する処理のためのフローチャートが、図７に示されている。図７に示すフローチャートは、図６に示すフローチャートと比較して、Ｓ２３〜Ｓ２６の各ステップにおいて、ｘ座標が（ｘ＋１）に変更されていて、右に１セルのセルが不要走路であるにもかかわらず走路指定されているときは、ｙ座標がｙと（ｙ＋１）とについてその指定を解除する処理を行う。それ以外の点では異なるところがないので、再度の説明を省略する。
【００３２】
図８は、図５に示す図と同様、地図データが変換されて形成されたｘ−ｙ座標系において障害物を認識して障害物の前側走路指定を行うフローチャートである。図５に示すフローチャートと比較して座標のｘとｙとが入れ代わった状態にある。即ち、当初の座標（ｘ，ｙ）＝（０，０）から始めて、その座標が行動不可であって障害物が確認される場合に、ｙ軸方向（北方向）に３つ目のセルが障害物なしと判定されれば、その座標を行動可能であるとして走路指定し、その座標からｘ軸方向に１つ隣のセルについても同様の判定・指定を行う。このプロセスでは、障害物の前側（北側）の１セル及び２セルも走路に指定され得るが、この走路は幅３０ｃｍの移動体が障害物（壁）と干渉してしまう走路であり走行不可能である。こうした前側の２セル目及び１セル目の不要走路を削除する処理のためのフローチャートが、それぞれ図９と図１０とに示されている。図９と図１０のフローチャートは、図６及び図７に示すフローチャートと比較して、ｘ座標とｙ座標とを入れ換えたものに相当し、内容的には同様の処理をしているので、再度の説明を省略する。
【００３３】
更に、図示しないが、障害物の左（西）側走路指定及び後（南）側走路指定を行うフローチャートも同様にして定められる。前者の場合には、座標（ｘ，ｙ）が行動不可（障害物あり）の場合には、左側３つ目のセルの座標（ｘ−３，ｙ）とそのｙ軸方向隣の座標（ｘ−３，ｙ＋１）とが行動可能（障害物なし）かを判定することで走路指定され、後者の場合には、座標（ｘ，ｙ）が行動不可（障害物あり）の場合には、後側３つ目のセルの座標（ｘ，ｙ−３）とそのｘ軸方向隣の座標（ｘ＋１，ｙ−３）とが行動可能（障害物なし）かを判定することで走路指定される。更に、障害物の左側（西側）と前側（南側）との１セル及び２セルも走路に指定され得るので、それらの２セル及び１セルの不要走路を削除する処理のためのフローチャートも同様にして作成される。
【００３４】
次に、上記のようにして定められた走行経路について、原点をｘ＝４、ｙ＝４としたときｘ＝８、ｙ＝１２の座標点までの移動に伴う行動ルールが、図１１及び図１２のフローチャートに示されている。そのときの座標と方向にデータは、既に言及した図３及び図４に示されている。図１１に示すフローチャートによれば、先ず、当初座標ｘ（１）＝４、ｙ（１）＝４、ｉ＝１、優先フラグＫｆｌａｇ＝０、移動体のｘ−ｙ平面における向きｆ（１）＝０、移動体の動作ｋ（１）＝１でスタートする（ステップ１、「Ｓ６１」と略す。以下、同様）。ｉは、移動体の行動回数であって、時間ｔに相当する。優先フラグＫｆｌａｇは、条件の優先順位が上優先、即ち、フローの上流における判定が下流における判定よりも優先される約束になっているので、条件が下位のフローの部分で合致し上書きされることを防止するためのフラグである。Ｋｆｌａｇが０であることは下位のフローの条件で判定可能であることを示し、Ｋｆｌａｇが１であることはその条件の判定で確定に付き、下位のフローの部分での条件での判定は無効である（下位の優先順位の判定はスキップされる）ことを示す。上記の行動ルールを定めるアルゴリズムの優先順位は、左に通ったことのない道があるか（第１順位）、前方に通ったことのない道があるか（第２順位）、右方に通ったことのない道があるか（第３順位）、交差（一度通った道を跨ぐか；第４順位）、及び袋小路からの脱出（第５順位）である。なお、ｋ（ｉ）は移動体の行動回数ｉ回目の動作（具体的には進む「方向」）であり、ｆ（ｉ＋１）は、移動体のｉ回目の動作ｋ（ｉ）の結果、ワールド座標系（ｘ−ｙ平面）での移動体の向きを表している。
【００３５】
先ず、Ｓ６２で走路確認左方（ワールド座標において左方、以下同様）の判定が実行される。即ち、Ｋｆｌａｇ＝０、且つ（ｘ（ｉ）−１，ｙ（ｉ））＝＝１が成立するか否かが判定される。ｉ＝１においては、Ｓ６１からＫｆｌａｇ＝０であるが、（４−１，４）は当初座標のセル一つ左の座標であって、この座標の属性は行動可能ではあっても不要走行経路として走路指定が解除されているので、（ｘ（１）−１，ｙ（１））＝＝１は成立しない。したがって、Ｓ６２の判定はＮＯとされる。
【００３６】
次に、Ｓ６３で走路確認前方の判定が実行される。即ち、Ｋｆｌａｇ＝０、且つ（ｘ（ｉ），ｙ（ｉ）＋１）＝＝１が成立するか否かが判定される。ｉ＝１においては、Ｓ６１からＫｆｌａｇ＝０であり、且つ（４，４＋１）は、当初座標のセル一つ前方（北側）の座標であって、この座標の属性は行動可能ではあり且つ走行経路でもあるので、（ｘ（１），ｙ（１）＋１）＝＝１が成立する。したがって、Ｓ６３の判定はＹＥＳとされる。
【００３７】
仮にＳ６３の判定がＮＯの場合には、Ｓ６４において、座標（ｘ（ｉ）＋１，ｙ（ｉ））を用いて、走路確認右方の判定が実行され、更にＳ６４の判定がＮＯの場合にはＫｆｌａｇ＝０とされ、Ｓ６５において、座標（ｘ（ｉ），ｙ（ｉ）−１）を用いて、走路確認後方の判定が実行される。Ｓ６５の判定がＮＯの場合にはここでもＫｆｌａｇ＝０であり、次のＳ６５においてＫｆｌａｇ＝０であるか否かが判定される。Ｓ６５の判定がＹＥＳである場合には、周囲に走行経路が発見されないことになるので、袋小路に入ったと判定されて、後述するサブルーチン１での袋小路脱出処理に移行する。袋小路脱出処理がなされた後、処理はＳ６２に戻る。
【００３８】
仮にＳ６２の判定がＹＥＳの場合には、当該座標（ｉ＝１のときは当初座標）の左方が走行経路であることから、ｋ（ｉ）＝６、ｆ（ｉ＋１）＝ｆ（ｉ）＋６、優先フラグＫｆｌａｇ＝１となり、ｆ（ｉ＋１））≧８ならば、ｆ（ｉ＋１）＝ｆ（ｉ＋１）−８と定められる（Ｓ６７）。具体的には、このような状態は、時間ｔ＝１８〜ｔ＝１９や、始点に戻るときのｘ軸に平行な走行路で生じている。既に図１〜図４で説明したように、時間ｔ＝１８（ｉ＝１８）では、移動体は上（北）側を向いて座標（１０，１６）に到達しているので、移動体の向きｆ（１８）＝０を基準として次回の動作ｋ（１８）＝６とされる。ｆ（１８）＜８であるので、ｆ（１８）＝６のままである。即ち、ｋ（１）は左方の走行経路に向けてロボットの向きをワールド座標において前方から６単位（全周を８単位に分割して時計周りに６単位（２７０°の方向））の方向とし、左方へ進路を取る。１回目の移動体の動作によって得られるｘ−ｙ平面内での向きｆ（２）が、前回の向きｆ（１）に対して＋６と処理される。方向が単位数で数えて８を超えるときは、８を減算して、０〜７の値に書き換える。Ｓ６７の処理の後、フローはＳ６３に移行するが、優先フラグについてはＫｆｌａｇ＝１とされるので、走行方向が確定であり、以下の処理であるＳ６３〜Ｓ６６における条件は無効とされる。
【００３９】
当初座標（４，４）においては、Ｓ６２の判定がＮＯであってＳ６３の判定がＹＥＳであり、当該座標（ｉ＝１のときは当初座標）の前方が走行経路であることから、Ｓ６８へ移行し、方向について，ｋ（ｉ）＝０、ｆ（ｉ＋１）＝ｆ（ｉ）＋０、Ｋｆｌａｇ＝１とする。なお、ｆ（ｉ＋１）≧８ならば、ｆ（ｉ＋１）＝ｆ（ｉ＋１）−８とする。即ち、ｉ＝１のときは、ｋ（１）＝０であり、ワールド座標において、前方（北方）を向く。また、ｆ（２）＝ｆ（１）＋０＝０であるので、進行方向変化は０である。Ｓ６８の処理の後、フローはＳ６４に移行する。優先フラグについてはＫｆｌａｇ＝１とされるので、走行方向が確定であり、以下の処理であるＳ６５及びＳ６６における条件、即ち、判定や演算は無効とされる。
【００４０】
Ｓ６２及びＳ６３における判定がＮＯであるときＳ６４の判定が行われ、Ｓ６４の判定がＮＯの場合にはＳ６５の判定が更に行われる。Ｓ６４の判定がＹＥＳ（走路が右方に確認される）の場合又はＳ６５の判定がＹＥＳ（走路が後方に確認される）の場合には、それぞれ、Ｓ６９又はＳ７０において、ｉ回目の移動体の動作ｋ（ｉ）＝２、ｋ（ｉ）によって得られる移動体の向きｆ（ｉ＋１）＝ｆ（ｉ）＋２、又はｋ（ｉ）＝４、ｆ（ｉ＋１）＝ｆ（ｉ）＋４の処理が行われる。即ち、走路が右側にある場合には、前側（北側）に対して右側（時計方向に２単位）に変更し、走路が後側にある場合には、前側（北側）に対して方向を後側（時計方向に４単位）に変更する。いずれも、優先フラグＫｆｌａｇ＝１の設定と、ｆの値の正規化（８以上の場合、０〜７の値に置き換える）が行われる。
【００４１】
Ｓ６６の判定がＮＯの場合、即ち、Ｓ６２〜Ｓ６５の間でいずれかがＹＥＳになった場合には、Ｓ７１の処理が行われる。Ｓ７１においては、移動方向について、
ｋ（ｉ）＝０の場合には、移動体の移動方向は前側（ワールド座標でｙ軸の＋方向）であるので、ｘ（ｉ＋１）←ｘ（ｉ）、ｙ（ｉ＋１）←｛ｙ（ｉ）＋１｝、即ち、ｘ座標について変化はないがｙ座標が＋１になり、次のセルはｙ座標方向に＋１移動される。
ｋ（ｉ）＝２の場合には、移動体の移動方向は右側（ワールド座標でｘ軸の＋方向）であるので、ｘ（ｉ＋１）←｛ｘ（ｉ）＋１｝、ｙ（ｉ＋１）←ｙ（ｉ）、即ち、ｙ座標について変化はないがｘ座標が＋１になり、次のセルはｘ座標方向に＋１移動される。
ｋ（ｉ）＝４の場合には、移動体の移動方向は後側（ワールド座標でｙ軸の−方向）であるので、ｘ（ｉ＋１）←ｘ（ｉ）、ｙ（ｉ＋１）←｛ｙ（ｉ）−１｝、即ち、ｘ座標について変化はないがｙ座標が＋１になり、次のセルはｙ座標方向に−１移動される。
ｋ（ｉ）＝６の場合には、移動体の移動方向は後側（ワールド座標でｘ軸の−方向）であるので、ｘ（ｉ＋１）←｛ｘ（ｉ）−１｝、ｙ（ｉ＋１）←ｙ（ｉ）、即ち、ｙ座標について変化はないがｘ座標が−１になり、次のセルはｘ座標方向に−１移動される。
いずれの場合も、ｉ←｛ｉ＋１｝としてロボットの動作回数を更新し、優先フラグＫｆｌａｇ←０を代入し、（ｘ，ｙ）の属性として１１を代入する。１１は、座標（ｘ，ｙ）のセルは、行動可能であるとともに走行経路であり、されど、一度走行済みであることを示す。Ｓ７１の処理の後、Ｓ６２に戻り、次の行動に移行する。
【００４２】
Ｓ６６の判定において結果がＹＥＳである場合、即ち、優先フラグＫｆｌａｇの属性が０である場合には、いずれの方向にも走行経路が確認されず、袋小路に入ったことを示す。そこで、サブルーチン（ＳＵＢ）１では、周囲の四つの座標のセルが、走行経路であって既に一度走行済みのセルであったか否かを判定し、一度走行した経路を辿って逆戻りすることで、袋小路から脱出することを図る。一度走行した経路は、Ｓ７１において、座標（ｘ、ｙ）の属性が１１に指定されていることから判別できる。
【００４３】
サブルーチン（ＳＵＢ）１において、先ず、Ｓ７２で左側（西側）（ワールド座標において左方、以下同様）のセルが走行経路であって且つ一度走行済みか否かの判定が実行される。Ｓ７２では、Ｋｆｌａｇ＝０、且つ（ｘ（ｉ）−１，ｙ（ｉ））＝＝１１が成立するか否かが判定される。Ｓ７２の判定がＹｅｓのとき、即ち、左側（西側）が既に一度走行した走行通路であれば、それまで右（東）側を向いて走行してきた移動体がそのままの姿勢で左（西）側に後退するのであるから、移動体のｉ回目の動作ｋ（ｉ）＝６、当該動作によって得られる移動体の向きｆ（ｉ＋１）＝２、優先フラグＫｆｌａｇ＝１とされ、もし、ｆ（ｉ＋１）≧８ならば、ｆ（ｉ＋１）＝ｆ（ｉ＋１）−８とされる（Ｓ７７）。
【００４４】
Ｓ７２の判定がＮｏであれば、Ｓ７３に移行し、前（北）側のセルが走行経路であって且つ一度走行済みか否かの判定が実行される。即ち、Ｋｆｌａｇ＝０、且つ（ｘ（ｉ），ｙ（ｉ）＋１）＝＝１１が成立するか否かが判定される。Ｓ７３の判定がＹｅｓのとき、現在南側に向かって走行してきたのを反転して北側に移動して袋小路から脱出することになるので、ｋ（ｉ）＝０、ｆ（ｉ＋１）＝４、優先フラグＫｆｌａｇ＝１とされ、もし、ｆ（ｉ＋１）≧８ならば、ｆ（ｉ＋１）＝ｆ（ｉ＋１）−８とされる（Ｓ７７）。
【００４５】
Ｓ７２，Ｓ７３の判定がＮｏであれば、Ｓ７４に移行し、右（東）側のセルが走行経路であって且つ一度走行済みか否かの判定が実行される。即ち、Ｋｆｌａｇ＝０、且つ（ｘ（ｉ）＋１，ｙ（ｉ））＝＝１１が成立するか否かが判定される。Ｓ７４の判定がＹｅｓのとき、現在西側に向かって走行してきたのを反転して東側に移動して袋小路から脱出する。そのたため、ｋ（ｉ）＝２、ｆ（ｉ＋１）＝６、優先フラグＫｆｌａｇ＝１とされ、もし、ｆ（ｉ＋１）≧８ならば、ｆ（ｉ＋１）＝ｆ（ｉ＋１）−８とされる（Ｓ７７）。このケースは、時間ｔ＝２０で生じている。このとき、周囲には未走行の走行経路はなく、一度走行した走行経路が右（東）側に見いだし得る。時間ｔ＝２０では、移動体の前進方向ｋｗｈ（２０）は６の方向であり、前進方向ｋｗｈ（２０）を基準としたときの移動体が次のセルに移動しようとする移動方向ｋｒ（ｔ）は後退方向であって４である。そのため、移動方向は、前進方向ｋｗｈ（２０）に次回の移動方向ｋｒ（ｔ）を加算して（加算結果１０）、０〜８の値で表せば、２の方向となる。このとき、移動体の前進方向は６の方向を向いたままである。
【００４６】
Ｓ７２〜Ｓ７４の判定がＮｏであれば、Ｓ７５に移行し、後側（南側）のセルが走行経路であって且つ一度走行済みか否かの判定が実行される。即ち、Ｋｆｌａｇ＝０、且つ（ｘ（ｉ），ｙ（ｉ）−１）＝＝１１が成立するか否かが判定される。Ｓ７５の判定がＹｅｓのとき、現在北側に向かって走行してきたのを反転して南側に移動して袋小路から脱出するので、ｋ（ｉ）＝４、ｆ（ｉ＋１）＝０、優先フラグＫｆｌａｇ＝１とされる。もし、ｆ（ｉ＋１）≧８ならば、ｆ（ｉ＋１）＝ｆ（ｉ＋１）−８とされる（Ｓ７７）。
【００４７】
Ｓ７５の判定がＮｏであり、またＳ８０の処理が終了したときに、Ｋｆｌａｇ＝＝１  となっているか否かが判断される（Ｓ７６）。Ｓ７２〜Ｓ７４の判定のいずれかで、優先フラグＫｆｌａｇ＝１とされておれば、Ｓ８１の処理が行われる。即ち、基本的にはＳ７１と同じ処理が行われ、いずれの場合も、ｉ←｛ｉ＋１｝としてロボットの動作回数を更新し、優先フラグＫｆｌａｇ←０を代入し、（ｘ，ｙ）の属性として１２が代入される。Ｓ８１の処理の後、Ｓ６２に戻り、次の行動に移行する。
【００４８】
以上のように、本シミュレーションでは、パラメータである要素は、経過時間ｔを変数にもつ１次元ベクトル構造をもつので、交差及び引き返し動作が単純に定義可能である。また、一番外側の走行経路について説明したが、更にその内側の走行経路については、各種の求め方があるので、ここでは詳細には説明しない。壁のような障害物が有るわけではないので、既に走行した経路を一部重複して走行しても、ルートが単純化されるのであれば格別の問題はない。
【図面の簡単な説明】
【００４９】
【図１】この発明による自律走行移動体のシミュレーションシステムにおいて、自律走行移動体が走行する経路を形成するための障害物情報を含む地図データを座標上に示す図。
【図２】図１において自律走行移動体の走行経路が設定された地図データを座標上に示す図。
【図３】図２に示す走行経路に対応した自律走行移動体の時刻１２までの座標及び方向を表として示す図である。
【図４】図２に示す走行経路に対応した自律走行移動体の時刻１６〜２３の座標及び方向を表として示す図である。
【図５】地図データが変換されて形成されたｘ−ｙ座標系において障害物を認識して障害物の右側走路指定を行うフローチャート。
【図６】障害物の右側走路指定を行った後、右側の２セル目の不要走路を削除する処理のためのフローチャート。
【図７】障害物の右側走路指定を行った後、右側の１セル目の不要走路を削除する処理のためのフローチャートが、図７に示されている
【図８】地図データが変換されて形成されたｘ−ｙ座標系において障害物を認識して障害物の前側走路指定を行うフローチャート。
【図９】障害物の前側走路指定を行った後、前側の２セル目の不要走路を削除する処理のためのフローチャート。
【図１０】障害物の前側走路指定を行った後、前側の１セル目の不要走路を削除する処理のためのフローチャート。
【図１１】走行経路の移動に伴う行動ルールの一例を示すフローチャート。
【図１２】袋小路からの脱出に伴う行動ルールの一例を示すフローチャート。
【符号の説明】
【００５０】
ｔ            時間
ｘ（ｔ）      ｘ座標
ｙ（ｔ）      ｙ座標
ｋｗｈ（ｔ）  時間ｔで到達したセルにおける移動体の前進方向
ｋｒ（ｔ）    移動体の前進方向を基準とするときの移動体が次のセルに移動しようとする方向
ｋ（ｉ）      仮想移動体の行動回数ｉ回目の動作（具体的には進む「方向」）
ｆ（ｉ＋１）  ｉ回目の動作ｋ（ｉ）の結果、ワールド座標系（ｘ−ｙ平面）での移動車の向き
【図１】
2006326746.tif 000003
【図２】
2006326746.tif 000004
【図３】
2006326746.tif 000005
【図４】
2006326746.tif 000006
【図５】
2006326746.tif 000007
【図６】
2006326746.tif 000008
【図７】
2006326746.tif 000009
【図８】
2006326746.tif 000010
【図９】
2006326746.tif 000011
【図１０】
2006326746.tif 000012
【図１１】
2006326746.tif 000013
【図１２】
2006326746.tif 000014