Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7722948B2 - Tour route creation device - Google Patents
[go: Go Back, main page]

JP7722948B2 - Tour route creation device - Google Patents

Tour route creation device

Info

Publication number
JP7722948B2
JP7722948B2 JP2022033100A JP2022033100A JP7722948B2 JP 7722948 B2 JP7722948 B2 JP 7722948B2 JP 2022033100 A JP2022033100 A JP 2022033100A JP 2022033100 A JP2022033100 A JP 2022033100A JP 7722948 B2 JP7722948 B2 JP 7722948B2
Authority
JP
Japan
Prior art keywords
area
route
information
movement
travel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022033100A
Other languages
Japanese (ja)
Other versions
JP2023128625A (en
Inventor
淳輝 冨樫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kumagai Gumi Co Ltd
Original Assignee
Kumagai Gumi Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kumagai Gumi Co Ltd filed Critical Kumagai Gumi Co Ltd
Priority to JP2022033100A priority Critical patent/JP7722948B2/en
Publication of JP2023128625A publication Critical patent/JP2023128625A/en
Application granted granted Critical
Publication of JP7722948B2 publication Critical patent/JP7722948B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Navigation (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Description

本発明は、複数の移動対象領域を移動体に巡回させる巡回ルートを作成するための巡回ルート作成装置に関する。 The present invention relates to a travel route creation device for creating a travel route for a mobile object to travel through multiple target areas.

本出願人による発明である移動体の移動制御システムとして、移動対象面(移動対象領域)上を移動させる移動体の移動予定情報(移動予定ルート)を作成する移動予定情報作成処理と、移動体を移動予定情報に基づいて移動させるとともに、移動情報取得手段により取得された移動体の実際の移動情報と移動予定情報とを比較して移動体の移動を制御する移動制御処理と、を備えた移動体の移動制御システムが開示されている(特許文献1参照)。 The applicant has invented a mobile object movement control system that includes a movement schedule information creation process that creates movement schedule information (planned movement route) for a mobile object that moves on a movement target surface (movement target area), and a movement control process that moves the mobile object based on the movement schedule information and controls the movement of the mobile object by comparing the movement schedule information with the actual movement information of the mobile object acquired by a movement information acquisition means (see Patent Document 1).

特開2020-154400号公報Japanese Patent Application Laid-Open No. 2020-154400

上述した移動体の移動制御方法では、移動対象領域が複数ある場合において、移動体を当該複数の移動対象領域間で効率的に巡回させるための巡回ルートを作成することについては開示されておらず、当該巡回ルートを作成するための巡回ルート作成装置の開発が望まれているという課題があった。
本発明は、上記課題に鑑み、複数の移動対象領域を移動体に巡回させるための効率的な巡回ルートを作成可能な巡回ルート作成装置を提供するものである。
The above-mentioned method for controlling the movement of a moving body does not disclose how to create a circular route for efficiently moving the moving body between multiple target areas when there are multiple target areas for movement, and there was a problem in that there was a need to develop a circular route creation device for creating such a circular route.
In view of the above-mentioned problems, the present invention provides a travel route creation device capable of creating an efficient travel route for a mobile object to travel through a plurality of target travel areas.

本発明に係る巡回ルート作成装置は、複数の移動対象領域の位置情報を認識して当該複数の移動対象領域を移動体に巡回させる巡回ルートを作成するための巡回ルート作成装置であって、各移動対象領域を一巡する巡回ループを作成する巡回ループ作成手段と、作成された巡回ループの経路を移動体で移動させる場合の移動コストを算出する移動コスト算出手段と、作成された巡回ループを形成する移動対象領域間ルートのうち最も移動コストの大きい移動対象領域間ルートを削除して、削除した移動対象領域間ルートのルート終端が繋がれていた移動対象領域を巡回ルートのスタート領域とし、かつ、削除した移動対象領域間ルートのルート始端が繋がれていた移動対象領域を巡回ルートのゴール領域とした各移動対象領域を一巡する巡回ルートを作成する巡回ルート作成手段とを備え、巡回ループ作成手段は、移動対象領域毎に巡回情報を設定することにより巡回ループを作成する初期世代巡回ループ作成手段と、後世代巡回ループ作成手段とを備え、巡回ルート作成手段は、初期世代巡回ルート作成手段と、後世代巡回ルート作成手段とを備え、初期世代巡回ループ作成手段は、複数の巡回ループを作成し、初期世代巡回ルート作成手段は、初期世代巡回ループ作成手段により作成された複数の初期世代巡回ループ毎に、各移動対象領域毎の巡回情報を変更して、複数の初期世代巡回ルートを作成し、後世代巡回ループ作成手段は、複数の初期世代巡回ルートのうち、移動コストの小さい初期世代巡回ルートをいくつか抽出し、この抽出された初期世代巡回ルートの巡回情報を使用して後世代巡回ループを作成し、後世代巡回ルート作成手段は、後世代巡回ループ作成手段により作成された後世代巡回ループ毎に、各移動対象領域毎の巡回情報を変更して、後世代巡回ルートを作成し、巡回情報は、各移動対象領域毎に設定される自己の移動対象領域内の巡回パターンの情報と次に進む移動対象領域の情報とで構成された組み合わせ情報であることを特徴とする。
また、後世代の世代数は複数であり、今回の後世代巡回ルート作成手段は、前回の後世代巡回ループ作成手段により作成された前回の後世代巡回ループ毎に、各移動対象領域毎の巡回情報を変更して、今回の後世代巡回ルートを作成し、最終世代の後世代巡回ルート作成手段は、最終世代として作成した複数の巡回ルートのうち、移動コストが最小である巡回ルートを巡回ルートとして決定することを特徴とする。
また、今回の後世代巡回ルート作成手段は、前回の後世代巡回ループ作成手段により作成された前回の複数の後世代巡回ループの中から移動コストの小さい巡回ルートの1つ以上を親と定義し、当該親の巡回ルートの巡回情報を引き継ぐことにより、今回の後世代巡回ルートを作成することを特徴とする。
また、今回の後世代巡回ルート作成手段は、今回の後世代巡回ルートを作成する段階において、まだ巡回情報が設定されていない移動対象領域が2つ以上残っていて、かつ、まだ巡回情報が設定されていない移動対象領域に設定する巡回情報である次に進む移動対象領域の情報を親から引き継ぐことができない場合には、まだ巡回情報が設定されていない移動対象領域に設定する次に進む移動対象領域を、まだ巡回情報として設定されていない移動対象領域の中から任意に選択することを特徴とする。
また、まだ巡回情報が設定されていない移動対象領域に設定する巡回情報である次に進む移動対象領域の情報を親から引き継ぐことができない場合とは、まだ巡回情報が設定されていない移動対象領域に引き継がせるようとする親の巡回情報である次に進む移動対象領域の情報が、今回の後世代巡回ルートを作成する際に巡回情報を一番最初に設定した移動対象領域である場合、及び、まだ巡回情報が設定されていない移動対象領域に引き継がせるようとする親の巡回情報である次に進む移動対象領域の情報が、今回の後世代巡回ルートの作成において既に使用されている場合であることを特徴とする。
また、今回の後世代巡回ルート作成手段は、今回の後世代巡回ルートを作成する段階において、まだ巡回情報が設定されていない移動対象領域が1つしか残っていないと判定した場合に、当該1つ残った移動対象領域の巡回情報である次に進む移動対象領域の情報を、今回の後世代巡回ルートを作成する際に巡回情報を一番最初に設定した移動対象領域とすることを特徴とする。
また、今回の後世代巡回ルート作成手段は、前回の後世代巡回ルート作成手段により作成された前回の複数の後世代巡回ルートの中から移動コストの小さい巡回ルートを抽出して、当該抽出された巡回ルートを作成する元となった巡回ループの移動対象領域間のルートを変更する移動対象領域間ルート改変処理手段を備え、移動対象領域間ルート改変処理手段は、巡回ループの各移動対象領域のうちから異なる任意の第1の移動対象領域と第2の移動対象領域とを任意に選択する第1ステップと、第2の移動対象領域の巡回情報として設定されている次に進む移動対象領域の情報を保留情報として記録しておく第2ステップと、第2の移動対象領域の巡回情報として設定されている次に進む移動対象領域の情報を巡回情報として持っている移動対象領域を探索して当該移動対象領域の有無を判定する第3ステップと、第1の移動対象領域の巡回情報に設定する次に進むエリアの情報として、第2の移動対象領域を設定する第4ステップと、第4ステップの処理を行うのが初めてではない場合に、第2の移動対象領域の巡回情報に設定されている巡回パターンを反転させる第5ステップと、第3ステップでの判定結果が有であった場合、第4ステップの後、又は、第5ステップの後において、第1の移動対象領域を第2の移動対象領域に変更するとともに、第2の移動対象領域を第3ステップで探索された移動対象領域に変更した後に、第3ステップの処理に戻る第6ステップと、第3ステップでの判定結果が無であった場合、第4ステップの後、又は、第5ステップの後において、保留情報を第2の移動対象領域の巡回情報としての次に進む移動対象領域として設定するとともに、第2の移動対象領域の巡回情報に設定されている巡回パターンを反転させる第7ステップとを備えたことを特徴とする。
また、今回の後世代巡回ルート作成手段は、前回の後世代巡回ルート作成手段により作成された前回の複数の後世代巡回ルートの中から移動コストの小さい巡回ルートを抽出して、当該抽出された巡回ルートを作成する元となった巡回ループの移動対象領域内の巡回パターンを変更する巡回パターン改変処理手段を備え、巡回パターン改変処理手段は、巡回ループの各移動対象領域から無作為に1つの移動対象領域を選んで、当該移動対象領域の巡回情報である巡回パターンの情報を変更することを特徴とする。
また、本発明に係る巡回ルート作成装置は、複数の移動対象領域の位置情報を認識して当該複数の移動対象領域を移動体に巡回させる巡回ルートを作成するための巡回ルート作成装置であって、各移動対象領域を一巡する巡回ループを作成する巡回ループ作成手段と、作成された巡回ループの経路を移動体で移動させる場合の移動コストを算出する移動コスト算出手段と、作成された巡回ループを形成する移動対象領域間ルートのうち最も移動コストの大きい移動対象領域間ルートを削除して、削除した移動対象領域間ルートのルート終端が繋がれていた移動対象領域を巡回ルートのスタート領域とし、かつ、削除した移動対象領域間ルートのルート始端が繋がれていた移動対象領域を巡回ルートのゴール領域とした各移動対象領域を一巡する巡回ルートを作成する巡回ルート作成手段とを備え、巡回ループ作成手段は、移動対象領域毎に巡回情報を設定することにより最初の巡回ループを作成する最初の巡回ループ作成手段と、最初の巡回ループの巡回情報を変更した巡回ループを作成する巡回ループ更新手段とを備え、巡回ルート作成手段は、巡回ループ更新手段により作成された今回の巡回ループに基づいて作成された今回の巡回ルートの移動コストと、巡回ループ更新手段により作成された前回の巡回ループに基づいて作成された前回の巡回ルートの移動コストとを比較して、移動コストの小さい巡回ルートを残す判定手段を備え、巡回情報は、各移動対象領域毎に設定される自己の移動対象領域内の巡回パターンの情報と次に進む移動対象領域の情報とで構成された組み合わせ情報であることを特徴とする。
また、移動対象領域は、XY座標情報に基づいて区画された領域であり、移動対象領域内の巡回パターンは、X軸に沿ってジグザグに進むX方向巡回パターン、又は、Y軸に沿って進むジグザグなY方向巡回パターンであり、X方向巡回パターンは、移動開始位置をX座標最小値Y座標最大値の位置とする第1パターン、移動開始位置をX座標最小値Y座標最小値の位置とする第2パターン、移動開始位置をX座標最大値Y座標最大値の位置とする第3パターン、移動開始位置をX座標最大値Y座標最小値の位置とする第4パターンであり、Y方向巡回パターンは、移動開始位置をX座標最小値Y座標最大値の位置とする第5パターン、移動開始位置をX座標最大値Y座標最大値の位置とする第6パターン、移動開始位置をX座標最小値Y座標最小値の位置とする第7パターン、移動開始位置をX座標最大値Y座標最小値の位置とする第8パターンであることを特徴とする。
本発明によれば、複数の移動対象領域を移動体に巡回させるための効率的な巡回ルートを作成可能な巡回ルート作成装置を提供できるようになる。
The traveling route creation device according to the present invention is a traveling route creation device for recognizing position information of a plurality of movement target areas and creating a traveling route for a mobile body to travel around the plurality of movement target areas, and comprises: a traveling loop creation means for creating a traveling loop that goes around each of the movement target areas; a movement cost calculation means for calculating the movement cost when the mobile body moves along the route of the created traveling loop; and a traveling route creation means for deleting the route between the movement target areas that forms the created traveling loop and creating a traveling route that goes around each of the movement target areas, with the traveling target area to which the route end of the deleted route between the movement target areas was connected as the start area of the traveling route and the traveling target area to which the route start end of the deleted route between the movement target areas was connected as the goal area of the traveling route, and the traveling loop creation means for creating a traveling loop by setting traveling information for each of the movement target areas and a subsequent generation traveling route creation means for creating a traveling route by setting traveling information for each of the movement target areas. and a loop creation means, wherein the circulatory route creation means comprises an initial generation circulatory route creation means and a later generation circulatory route creation means, wherein the initial generation circulatory loop creation means creates a plurality of circulatory loops, wherein the initial generation circulatory route creation means changes the circulatory information for each movement target area for each of the plurality of initial generation circulatory loops created by the initial generation circulatory loop creation means to create a plurality of initial generation circulatory routes, wherein the later generation circulatory loop creation means extracts some initial generation circulatory routes with low movement costs from the plurality of initial generation circulatory routes and creates a later generation circulatory loop using the circulatory information of the extracted initial generation circulatory routes, and wherein the later generation circulatory route creation means changes the circulatory information for each movement target area for each later generation circulatory loop created by the later generation circulatory loop creation means to create a later generation circulatory route, and the circulatory information is combined information made up of information on the circulatory pattern within the own movement target area set for each movement target area and information on the next movement target area to move to.
Further, the number of generations of the subsequent generation is plural, and the current subsequent generation circular route creation means changes the circular information for each movement target area for each previous subsequent generation circular loop created by the previous subsequent generation circular loop creation means to create the current subsequent generation circular route, and the subsequent generation circular route creation means of the final generation determines the circular route with the smallest movement cost as the circular route from among the multiple circular routes created as the final generation.
The current next-generation circular route creation means defines one or more circular routes with small travel costs from among the previous plurality of next-generation circular loops created by the previous next-generation circular loop creation means as parents, and creates the current next-generation circular route by inheriting the circular information of the parent circular route.
Furthermore, the current next generation patrol route creation means is characterized in that, if, at the stage of creating the current next generation patrol route, there remain two or more movement target areas for which patrol information has not yet been set and the information of the next movement target area, which is the patrol information to be set for the movement target area for which patrol information has not yet been set, cannot be inherited from the parent, the current next generation patrol route creation means arbitrarily selects the next movement target area to be set for the movement target area for which patrol information has not yet been set from among the movement target areas for which patrol information has not yet been set.
In addition, cases where the information of the next moving target area, which is the patrol information to be set for a moving target area for which patrol information has not yet been set, cannot be inherited from the parent are characterized by cases where the information of the next moving target area, which is the patrol information of the parent that is to be inherited by a moving target area for which patrol information has not yet been set, is the moving target area for which patrol information was first set when creating the current next-generation patrol route, and cases where the information of the next moving target area, which is the patrol information of the parent that is to be inherited by a moving target area for which patrol information has not yet been set, has already been used in creating the current next-generation patrol route.
Furthermore, when the current next-generation circular route creation means determines that there is only one remaining target area for which no circular information has yet been set at the stage of creating the current next-generation circular route, it sets the information of the next target area for which circular information is set, which is the circular information of the one remaining target area for which circular information has first been set, as the target area for which circular information has first been set when creating the current next-generation circular route.
The current next-generation circulatory route creation means also includes a movement target area inter-route modification processing means for extracting a circulatory route with a small movement cost from among the previous plurality of next-generation circulatory routes created by the previous next-generation circulatory route creation means, and modifying the route between the movement target areas of the circulatory loop that was the basis for creating the extracted circulatory route, and the movement target area inter-route modification processing means includes a first step of arbitrarily selecting a different first movement target area and a second movement target area from among the movement target areas of the circulatory loop, a second step of recording information of the next movement target area that is set as circulatory information of the second movement target area as reserved information, a third step of searching for a movement target area that has information of the next movement target area that is set as circulatory information of the second movement target area as circulatory information, and determining whether or not the movement target area exists, and a third step of determining whether or not the movement target area exists based on the circulatory information of the first movement target area. The method is characterized by comprising a fourth step of setting a second target area for movement as information on the next area to be set; a fifth step of inverting the circulating pattern set in the circulating information of the second target area for movement if the processing of the fourth step is not the first time; a sixth step of changing the first target area for movement to the second target area for movement after the fourth step or the fifth step if the judgment result in the third step is positive, changing the second target area for movement to the target area searched in the third step, and then returning to the processing of the third step; and a seventh step of setting the pending information as the next target area for movement as the circulating information of the second target area for movement after the fourth step or the fifth step if the judgment result in the third step is negative, and inverting the circulating pattern set in the circulating information of the second target area for movement.
The current next-generation circular route creation means also includes a circular pattern modification processing means that extracts a circular route with a low travel cost from the previous plurality of next-generation circular routes created by the previous next-generation circular route creation means, and modifies the circular pattern within the movement target area of the circular loop that was the basis for creating the extracted circular route, and the circular pattern modification processing means randomly selects one movement target area from each movement target area of the circular loop, and modifies the information of the circular pattern, which is the circular information of the movement target area.
Furthermore, a travel route creation device according to the present invention is a travel route creation device for recognizing position information of a plurality of movement target areas and creating a travel route for a mobile body to travel around the plurality of movement target areas, and includes: a travel loop creation means for creating a travel loop that goes around each of the movement target areas; a travel cost calculation means for calculating the travel cost when a mobile body travels along the route of the created travel loop; and a travel route that goes around each of the movement target areas by deleting the inter-movement target area route with the highest travel cost from among the inter-movement target area routes that form the created travel loop, and creating a travel route that goes around each of the movement target areas, with the movement target area that connected the route end of the deleted inter-movement target area route as the start area of the travel route, and the movement target area that connected the route start end of the deleted inter-movement target area route as the goal area of the travel route. and a circular route creating means for creating a circular loop by setting circular information for each movement target area, the circular loop creating means comprising initial circular loop creating means for creating an initial circular loop by setting circular information for each movement target area, and circular loop updating means for creating a circular loop by changing the circular information of the initial circular loop, the circular route creating means comprising determination means for comparing the movement cost of a current circular route created based on the current circular loop created by the circular loop updating means with the movement cost of a previous circular route created based on the previous circular loop created by the circular loop updating means, and leaving the circular route with the smaller movement cost, and the circular information is combined information made up of information on a circular pattern within the current movement target area, which is set for each movement target area, and information on the next movement target area.
The movement target area is an area partitioned based on XY coordinate information, and the cyclic pattern within the movement target area is an X-direction cyclic pattern that zigzags along the X-axis, or a Y-direction cyclic pattern that zigzags along the Y-axis. The X-direction cyclic pattern is a first pattern in which the movement start position is the position of the minimum X-coordinate and the maximum Y-coordinate, a second pattern in which the movement start position is the position of the minimum X-coordinate and the minimum Y-coordinate, a third pattern in which the movement start position is the position of the maximum X-coordinate and the maximum Y-coordinate, and a fourth pattern in which the movement start position is the position of the maximum X-coordinate and the minimum Y-coordinate. The Y-direction cyclic pattern is a fifth pattern in which the movement start position is the position of the minimum X-coordinate and the maximum Y-coordinate, a sixth pattern in which the movement start position is the position of the maximum X-coordinate and the maximum Y-coordinate, a seventh pattern in which the movement start position is the position of the minimum X-coordinate and the minimum Y-coordinate, and an eighth pattern in which the movement start position is the position of the maximum X-coordinate and the minimum Y-coordinate.
According to the present invention, it is possible to provide a travel route creation device that can create an efficient travel route for a mobile object to travel through a plurality of target travel areas.

移動対象領域及び障害物領域の作成処理(phase1)の説明図。FIG. 10 is an explanatory diagram of the process of creating a movement target area and an obstacle area (phase 1). 障害物グループ分け処理(phase2)の説明図。FIG. 10 is an explanatory diagram of the obstacle grouping process (phase 2). 障害物角認識処理(phase3)の説明図。FIG. 10 is an explanatory diagram of obstacle angle recognition processing (phase 3). 障害物間境界線作成処理(phase4)の説明図。FIG. 10 is an explanatory diagram of the obstacle boundary line creation process (phase 4). 分割領域区分け処理(phase5)の説明図。FIG. 10 is an explanatory diagram of the division area division process (phase 5). 分割領域区分け処理(phase5)の説明図。FIG. 10 is an explanatory diagram of the division area division process (phase 5). 分割領域認識処理(phase6)の説明図。FIG. 10 is an explanatory diagram of the divided area recognition process (phase 6). 分割領域認識処理(phase6)の説明図。FIG. 10 is an explanatory diagram of the divided area recognition process (phase 6). 等間隔直線経路作成処理(phase7)の説明図。FIG. 10 is an explanatory diagram of the equally spaced straight line path creation process (phase 7). 交点座標抽出処理(phase8)の説明図。FIG. 10 is an explanatory diagram of the intersection coordinate extraction process (phase 8). エリア毎交点座標抽出処理(phase9)及び分割領域内ジグザグ移動予定ルート作成処理(phase10)の説明図。10 is an explanatory diagram of the process of extracting intersection coordinates for each area (phase 9) and the process of creating a planned zigzag movement route within a divided area (phase 10). FIG. 分割領域内ジグザグ移動予定ルート作成処理(phase10)及び分割領域間移動予定ルート作成処理(phase11)の説明図。10 is an explanatory diagram of a process for creating a zigzag movement route within a divided area (phase 10) and a process for creating a movement route between divided areas (phase 11). FIG. 移動対象領域及び障害物領域の作成処理(phase1)の手順を示すフローチャート。10 is a flowchart showing the procedure of a process (phase 1) for creating a movement target area and an obstacle area. 障害物グループ分け処理(phase2)の手順を示すフローチャート。10 is a flowchart showing the procedure of obstacle grouping processing (phase 2). 障害物角認識処理(phase3)の手順を示すフローチャート。10 is a flowchart showing the procedure of obstacle angle recognition processing (phase 3). 障害物間境界線作成処理(phase4)の手順を示すフローチャート。10 is a flowchart showing the procedure of an obstacle boundary line creation process (phase 4); 分割領域区分け処理(phase5)の手順を示すフローチャート。10 is a flowchart showing the procedure of the division area division process (phase 5). 分割領域認識処理(phase6)の手順を示すフローチャート。10 is a flowchart showing the procedure of a divided area recognition process (phase 6). 等間隔直線経路作成処理(phase7)及び交点座標抽出処理(phase8)の手順を示すフローチャート。10 is a flowchart showing the procedure of the equally spaced straight line path creation process (phase 7) and the intersection coordinate extraction process (phase 8). エリア毎交点座標抽出処理(phase9)の手順を示すフローチャート。10 is a flowchart showing the procedure of the area-by-area intersection coordinate extraction process (phase 9); 分割領域内ジグザグ移動予定ルート作成処理(phase10)の手順を示すフローチャート。10 is a flowchart showing the steps of a process (phase 10) for creating a planned zigzag movement route within a divided area. 移動コスト計算処理(phase11)の手順を示すフローチャート。11 is a flowchart showing the procedure of a movement cost calculation process (phase 11). 別ルート作成処理(phase12~16)の手順を示すフローチャート。10 is a flowchart showing the procedure of another route creation processing (phases 12 to 16). ルート選択処理(phase17)の手順を示すフローチャート。10 is a flowchart showing the procedure of a route selection process (phase 17). 分割領域間移動予定ルート作成処理(phase18)の手順を示すフローチャート。10 is a flowchart showing the steps of a process (phase 18) for creating a planned travel route between divided areas. 分割領域認識処理(phase6)の説明図。FIG. 10 is an explanatory diagram of the divided area recognition process (phase 6). 分割領域認識処理(phase6)の説明図。FIG. 10 is an explanatory diagram of the divided area recognition process (phase 6). 分割領域認識処理(phase6)の説明図。FIG. 10 is an explanatory diagram of the divided area recognition process (phase 6). エリア毎交点座標抽出処理(phase9)及び分割領域内ジグザグ移動予定ルート作成処理(phase10)の説明図。10 is an explanatory diagram of the process of extracting intersection coordinates for each area (phase 9) and the process of creating a planned zigzag movement route within a divided area (phase 10). FIG. 分割領域内ジグザグ移動予定ルート作成処理(phase10)の説明図。FIG. 10 is an explanatory diagram of the process of creating a planned zigzag movement route within a divided area (phase 10). 移動体の一例を示す斜視図。FIG. 1 is a perspective view showing an example of a moving body. 巡回パターンを例示した図。FIG. 10 is a diagram illustrating a circulating pattern. GA処理の概略フローチャート。1 is a schematic flowchart of a GA process. 初期世代個体作成処理を示すフローチャート。10 is a flowchart showing a process for creating an initial generation individual. 個体評価処理を示すフローチャート。10 is a flowchart showing an individual evaluation process. 交叉処理を示すフローチャート。10 is a flowchart showing a crossover process. 突然変異処理を示すフローチャート。1 is a flowchart showing a mutation process. 初期巡回情報配列及び初期巡回ループを示す図。FIG. 10 is a diagram showing an initial cyclic information array and an initial cyclic loop. 巡回情報配列の一例を示す。An example of a cyclic information array is shown below. 致死的遺伝情報を持つ個体の説明図。An illustration of an individual carrying lethal genetic information. 致死的遺伝情報を持つ個体の説明図。An illustration of an individual carrying lethal genetic information. 基本の交叉処理の説明図。An explanatory diagram of basic crossover processing. 例外的交叉処理の説明図。FIG. 10 is an explanatory diagram of exceptional crossover processing. 例外的交叉処理の説明図。FIG. 10 is an explanatory diagram of exceptional crossover processing. 例外的交叉処理の説明図。FIG. 10 is an explanatory diagram of exceptional crossover processing. 突然変異処理の説明図。An illustration of the mutation process. 突然変異処理の説明図。An illustration of the mutation process. 突然変異処理の説明図。An illustration of the mutation process. 突然変異処理の説明図。An illustration of the mutation process. 突然変異処理の説明図。An illustration of the mutation process. 突然変異処理の説明図。An illustration of the mutation process. 突然変異処理の説明図。An illustration of the mutation process.

前提技術
まず、本発明に係る巡回ルート作成装置の実施形態を説明する前に、本発明に係る巡回ルート作成装置の前提装置(前提技術)となる移動予定ルート作成装置を、段落0007乃至段落0053、図1乃至図31に基づいて説明する。
本発明に係る巡回ルート作成装置の前提装置となる移動予定ルート作成装置は、移動体を移動対象領域内の障害物を避けて移動させるための移動体の移動予定ルート、即ち、当該移動対象領域内を移動させる移動体の障害物回避移動予定ルートを作成する装置である。
当該移動体の移動予定ルート作成装置は、移動対象領域作成手段と、障害物領域作成手段と、移動可能領域分割手段と、分割領域内移動予定ルート作成手段と、分割領域間移動予定ルート作成手段とを備える。
即ち、移動対象領域作成手段は、移動対象領域の位置を示す移動対象領域のXY座標情報(即ち、移動対象領域の平面座標情報)に基づいて移動対象領域を区画する移動対象領域境界線で囲まれた移動対象領域を作成する手段である。
障害物領域作成手段は、移動対象領域内の障害物の位置を示すXY座標情報に基づいて移動対象領域内に存在する障害物を区画する障害物領域境界線で囲まれた障害物領域を作成する手段である。
移動可能領域分割手段は、移動対象領域の位置を示すXY座標情報及び移動対象領域内の障害物の位置を示すXY座標情報を利用して障害物を避けた移動可能領域内を複数の分割領域に分割する手段である。
分割領域内移動予定ルート作成手段は、複数の各分割領域内での移動体の移動予定ルートを作成する手段である。
分割領域間移動予定ルート作成手段は、分割領域間での移動体の移動予定ルートを作成する手段である。
Prerequisite Technology First, before explaining an embodiment of the travel route creation device of the present invention, a planned travel route creation device, which is a prerequisite device (prerequisite technology) for the travel route creation device of the present invention, will be explained based on paragraphs 0007 to 0053 and Figures 1 to 31.
The planned movement route creation device, which is the prerequisite device for the patrol route creation device of the present invention, is a device that creates a planned movement route for a moving body to move while avoiding obstacles within a target movement area, i.e., a planned obstacle-avoiding movement route for a moving body moving within the target movement area.
The planned movement route creation device for a moving body includes a movement target area creation means, an obstacle area creation means, a movable area division means, an intra-divided area planned movement route creation means, and an inter-divided area planned movement route creation means.
In other words, the movement target area creation means is a means for creating a movement target area surrounded by a movement target area boundary line that divides the movement target area based on the XY coordinate information of the movement target area (i.e., the planar coordinate information of the movement target area) that indicates the position of the movement target area.
The obstacle area creation means is means for creating an obstacle area surrounded by obstacle area boundaries that demarcate obstacles present within the movement target area based on XY coordinate information indicating the position of the obstacle within the movement target area.
The movable area dividing means is a means for dividing the movable area into a plurality of divided areas by using XY coordinate information indicating the position of the target area of movement and XY coordinate information indicating the position of obstacles within the target area of movement.
The intra-divided area planned movement route creation means is means for creating a planned movement route of the mobile object within each of the plurality of divided areas.
The inter-divided area planned movement route creation means is means for creating a planned movement route of a moving object between divided areas.

そして、移動可能領域分割手段は、分割領域作成手段と、分割領域認識手段とを備える。
当該分割領域作成手段は、障害物同士を繋ぐ第1の境界線、障害物と移動対象領域境界線とを繋ぐ第2の境界線、障害物と第1の境界線又は第2の境界線とを繋ぐ第3の境界線を作成して、移動対象領域内をこれら境界線で区画することにより、これら境界線、障害物領域境界線、移動対象領域境界線で形成された分割領域境界線で囲まれた分割領域を作成する手段である。
分割領域認識手段は、複数の各分割領域及び各障害物領域にそれぞれ識別情報を付与して複数の各分割領域を認識する手段である。
また、分割領域内移動予定ルート作成手段は、横直線作成手段と、縦直線作成手段と、第1の交点認識手段と、第2の交点認識手段と、第1のルート作成手段と、第2のルート作成手段と、第1の移動効率算出手段と、ルート選択手段とを備える。
横直線作成手段は、移動対象領域をY軸に沿って等間隔に区切るX軸と平行な複数の横直線を作成する手段である。
縦直線作成手段は、移動対象領域をX軸に沿って等間隔に区切るY軸と平行な複数の縦直線を作成する手段である。
第1の交点認識手段は、分割領域境界線と横直線との交点を認識する手段である。
第2の交点認識手段は、分割領域境界線と縦直線との交点を認識する手段である。
第1のルート作成手段は、各分割領域境界線上の交点を横直線で繋いで形成されたY軸に沿って進む分割領域毎のジグザグな第1のルートを作成する手段である。
第2のルート作成手段は、各分割領域境界線上の交点を縦直線で繋いで形成されたX軸に沿って進む分割領域毎のジグザグな第2のルートを作成する手段である。
第1の移動効率算出手段は、分割領域毎の第1のルートに沿って移動する場合の移動効率を算出する手段である。
第2の移動効率算出手段は、分割領域毎の第2のルートに沿って移動する場合の移動効率を算出する手段である。
ルート選択手段は、同じ分割領域内を第1のルートに沿って移動する場合の移動効率と第2のルートに沿って移動する場合の移動効率とを比較して、第1のルート及び第2のルートのうち移動効率の良いルートを当該分割領域内での移動予定ルートとして選択する手段である。
そして、上記分割領域作成手段は、より具体的には、移動対象領域内に存在する複数の障害物を、X座標情報の近いもの同士、Y座標情報の近いもの同士に、グループ分けする障害物グループ分け手段と、各障害物の複数の角にそれぞれ識別情報を付与して障害物の角を認識する障害物角認識手段と、X座標情報の近いもの同士としてグループ分けされた一方の障害物の角と他方の障害物の角とを接続する第1の接続線、及び、Y座標情報の近いもの同士としてグループ分けされた一方の障害物の角と他方の障害物の角とを接続する第1の接続線を作成する第1の接続線作成手段と、障害物のうち第1の接続線が接続されていない角と移動対象領域境界線とを接続する第2の接続線を作成する第2の接続線作成手段と、障害物のうち第1の接続線及び第2の接続線が接続されていない角と既に作成した第1の接続線又は第2の接続線とを接続する第3の接続線を作成する第3の接続線作成手段とを備えた構成とした。
また、上記分割領域間移動予定ルート作成手段は、より具体的には、一方の分割領域の分割領域内移動予定ルートの終点と他方の分割領域の分割領域内移動予定ルートの始点とを直線で繋いだ分割領域間移動予定ルートを作成する分割領域間直線移動予定ルート作成手段と、分割領域間直線移動予定ルート作成手段で作成した分割領域間直線移動予定ルートと移動対象領域境界線又は障害物領域境界線とが接触した場合に、移動対象領域境界線又は障害物領域境界線と接触しない分割領域間移動予定ルートである分割領域間迂回移動予定ルートを作成する分割領域間迂回移動予定ルート作成手段とを備えた構成とした。
The movable area dividing means includes a divided area creating means and a divided area recognizing means.
The divided area creation means creates a first boundary line connecting obstacles to each other, a second boundary line connecting the obstacle to the movement target area boundary line, and a third boundary line connecting the obstacle to the first boundary line or the second boundary line, and by dividing the movement target area with these boundary lines, creates a divided area surrounded by divided area boundary lines formed by these boundary lines, the obstacle area boundary line, and the movement target area boundary line.
The divided area recognition means is means for recognizing each of the plurality of divided areas by assigning identification information to each of the plurality of divided areas and each of the obstacle areas.
In addition, the planned movement route creation means within the divided area includes a horizontal line creation means, a vertical line creation means, a first intersection recognition means, a second intersection recognition means, a first route creation means, a second route creation means, a first movement efficiency calculation means, and a route selection means.
The horizontal line creating means is means for creating a plurality of horizontal lines parallel to the X axis that divide the movement target area at equal intervals along the Y axis.
The vertical line creating means is means for creating a plurality of vertical lines parallel to the Y axis that divide the movement target area at equal intervals along the X axis.
The first intersection recognition means is a means for recognizing an intersection between a divided area boundary line and a horizontal line.
The second intersection recognition means is a means for recognizing an intersection between a divided area boundary line and a vertical line.
The first route creation means is means for creating a zigzag first route for each divided area that proceeds along the Y axis formed by connecting intersections on the boundaries of each divided area with horizontal straight lines.
The second route creation means is means for creating a zigzag second route for each divided area that proceeds along the X axis formed by connecting the intersections on the boundaries of each divided area with vertical straight lines.
The first movement efficiency calculation means is means for calculating the movement efficiency when moving along the first route for each divided area.
The second movement efficiency calculation means is means for calculating the movement efficiency when moving along the second route for each divided area.
The route selection means is means for comparing the travel efficiency when traveling along a first route and the travel efficiency when traveling along a second route within the same divided area, and selecting the route with the better travel efficiency from the first route and the second route as the planned travel route within the divided area.
More specifically, the divided area creating means includes obstacle grouping means for grouping a plurality of obstacles present within the movement target area into groups of obstacles with similar X coordinate information and obstacles with similar Y coordinate information; obstacle angle recognizing means for recognizing the obstacle corners by assigning identification information to each of a plurality of corners of each obstacle; first connection line creating means for creating a first connection line connecting a corner of one obstacle grouped as having similar X coordinate information to a corner of another obstacle grouped as having similar Y coordinate information, and a first connection line connecting a corner of one obstacle grouped as having similar Y coordinate information to a corner of another obstacle grouped as having similar Y coordinate information; second connection line creating means for creating a second connection line connecting a corner of the obstacle not connected by the first connection line to the movement target area boundary line; and third connection line creating means for creating a third connection line connecting a corner of the obstacle not connected by the first connection line or the second connection line that has already been created.
More specifically, the inter-divided area planned movement route creation means is configured to include an inter-divided area straight line planned movement route creation means for creating an inter-divided area planned movement route that connects the end point of the planned movement route within one divided area with the start point of the planned movement route within the divided area of the other divided area with a straight line, and an inter-divided area detour planned movement route creation means for creating an inter-divided area detour planned movement route that is an inter-divided area planned movement route that does not come into contact with the movement target area boundary line or obstacle area boundary line when the inter-divided area straight line planned movement route created by the inter-divided area straight line planned movement route creation means comes into contact with the movement target area boundary line or obstacle area boundary line.

本発明による巡回ルート作成装置の前提装置となる移動予定ルート作成装置を構成する、移動対象領域作成手段、障害物領域作成手段、障害物グループ分け手段、障害物角認識手段、第1の接続線作成手段、第2の接続線作成手段、第3の接続線作成手段、分割領域認識手段、横直線作成手段、縦直線作成手段、第1の交点認識手段、第2の交点認識手段、第1のルート作成手段、第2のルート作成手段、第1の移動効率算出手段、第2の移動効率算出手段、ルート選択手段、分割領域間移動予定ルート作成手段は、制御手段により実現され、当該各手段を実行する制御手段は、各手段が実行する処理の手順を示す処理プログラムと、当該処理プログラムによる情報処理を実現するコンピュータ等のハードウエア資源とにより構成される。
換言すれば、前提装置の移動予定ルート作成処理プログラムは、コンピュータを、上述した移動対象領域作成手段、障害物領域作成手段、障害物グループ分け手段、障害物角認識手段、第1の接続線作成手段、第2の接続線作成手段、第3の接続線作成手段、分割領域認識手段、横直線作成手段、縦直線作成手段、第1の交点認識手段、第2の交点認識手段、第1のルート作成手段、第2のルート作成手段、第1の移動効率算出手段、第2の移動効率算出手段、ルート選択手段、分割領域間移動予定ルート作成手段として機能させるプログラムである。
The planned movement route creation device, which is a prerequisite device for the travel route creation device according to the present invention, including the movement target area creation means, obstacle area creation means, obstacle grouping means, obstacle angle recognition means, first connecting line creation means, second connecting line creation means, third connecting line creation means, divided area recognition means, horizontal line creation means, vertical line creation means, first intersection recognition means, second intersection recognition means, first route creation means, second route creation means, first movement efficiency calculation means, second movement efficiency calculation means, route selection means, and inter-divided area planned movement route creation means, are realized by control means, and the control means that executes each of the means is composed of a processing program that indicates the procedure of the processing executed by each means, and hardware resources such as a computer that realizes information processing by the processing program.
In other words, the planned movement route creation processing program of the premise device is a program that causes the computer to function as the above-mentioned movement target area creation means, obstacle area creation means, obstacle grouping means, obstacle angle recognition means, first connecting line creation means, second connecting line creation means, third connecting line creation means, divided area recognition means, horizontal line creation means, vertical line creation means, first intersection recognition means, second intersection recognition means, first route creation means, second route creation means, first movement efficiency calculation means, second movement efficiency calculation means, route selection means, and planned movement route creation means between divided areas.

上述した移動対象領域作成手段及び障害物領域作成手段により、図1,図13に示した移動対象領域及び障害物領域の作成処理(phase1)が実行される。
障害物グループ分け手段により、図2,図14に示した障害物グループ分け処理(phase2)が実行される。
障害物角認識手段により、図3,図15に示した障害物角認識処理(phase3)が実行される。
第1の接続線作成手段により、図4,図16に示した障害物間境界線作成処理(phase4)が実行される。
第2の接続線作成手段及び第3の接続線作成手段により、図5,図6,図17に示した分割領域区分け処理(phase5)が実行される。
分割領域認識手段により、図7,図8,図18,図26乃至図28に示した分割領域認識処理(phase6)が実行される。
また、横直線作成手段により、図9,図19に示した等間隔直線経路作成処理(phase7)が実行される。
第1の交点認識手段により、図10,図19に示した交点座標抽出処理(phase8)、及び、図11,図20,図29に示したエリア毎交点座標抽出処理(phase9)が実行される。
第1のルート作成手段により、図12,図21,図29,図30に示した分割領域内ジグザグ移動予定ルート作成処理(phase10)が実行される。
第1の移動効率算出手段により、分割領域毎の第1のルートに沿って移動する場合の図22に示した移動コスト計算処理(phase11)が実行される。
縦直線作成手段により、等間隔直線経路作成処理(phase7)を置き換えた処理である図23のステップS230に示したphase12が実行される。
第2の交点認識手段により、交点座標抽出処理(phase8)を置き換えた処理である図23のステップS240に示したphase13、及び、エリア毎交点座標抽出処理(phase9)と同じ処理である図23のステップS250に示したphase14が実行される。
第2のルート作成手段により、分割領域内ジグザグ移動予定ルート作成処理(phase10)を置き換えた処理である図23のステップS260に示したphase15が実行される。
第2の移動効率算出手段により、図23のステップS270に示したphase16が実行される。つまり、分割領域毎の第2のルートに沿って移動する場合において、図22に示した移動コスト計算処理(phase11)と同じ移動コスト計算処理が実行される。
ルート選択手段により、図24に示したルート選択処理(phase17)が実行される。
分割領域間移動予定ルート作成手段により、図12,図25に示した分割領域間移動予定ルート作成処理が実行される。
尚、分割領域間移動予定ルート作成手段の分割領域間直線移動予定ルート作成手段によって、分割領域間直線移動予定ルート作成処理(図25の経路探索アルゴリズム部分以外の部分)が実行されるとともに、分割領域間移動予定ルート作成手段の分割領域間迂回移動予定ルート作成手段によって、分割領域間迂回移動予定ルート作成処理としての図25の経路探索アルゴリズム部分の処理が実行される。
The above-mentioned movement target area creating means and obstacle area creating means execute the movement target area and obstacle area creating process (phase 1) shown in FIGS.
The obstacle grouping means executes the obstacle grouping process (phase 2) shown in FIGS.
The obstacle angle recognition means executes the obstacle angle recognition process (phase 3) shown in FIGS.
The first connection line creating means executes the obstacle boundary line creating process (phase 4) shown in FIGS.
The second connection line creating means and the third connection line creating means execute the division area dividing process (phase 5) shown in FIGS.
The divided area recognition means executes the divided area recognition process (phase 6) shown in FIGS.
Further, the horizontal straight line creating means executes the equally spaced straight line path creating process (phase 7) shown in FIGS.
The first intersection recognition means executes the intersection coordinate extraction process (phase 8) shown in FIGS. 10 and 19, and the area-specific intersection coordinate extraction process (phase 9) shown in FIGS.
The first route creation means executes the process (phase 10) of creating a planned zigzag movement route within a divided area shown in FIGS.
The first movement efficiency calculation means executes the movement cost calculation process (phase 11) shown in FIG. 22 when moving along the first route for each divided area.
The vertical straight line creating means executes phase 12 shown in step S230 of FIG. 23, which is a process replacing the equally spaced straight line path creating process (phase 7).
The second intersection recognition means executes phase 13 shown in step S240 of FIG. 23, which is a process replacing the intersection coordinate extraction process (phase 8), and phase 14 shown in step S250 of FIG. 23, which is the same process as the intersection coordinate extraction process for each area (phase 9).
The second route creation means executes phase 15 shown in step S260 in FIG. 23, which is a process replacing the process for creating a planned zigzag movement route within a divided area (phase 10).
The second movement efficiency calculation means executes phase 16 shown in step S270 of Fig. 23. That is, when moving along the second route for each divided area, the same movement cost calculation process as the movement cost calculation process (phase 11) shown in Fig. 22 is executed.
The route selection means executes the route selection process (phase 17) shown in FIG.
The inter-divided area planned travel route creating means executes the inter-divided area planned travel route creating process shown in FIGS.
The planned straight-line movement route between divided areas creation means of the planned movement route between divided areas creation means executes the planned straight-line movement route between divided areas creation process (the part other than the route search algorithm part of Figure 25), and the planned detour movement route between divided areas creation means of the planned movement route between divided areas creates the route search algorithm part of Figure 25 as the planned detour movement route between divided areas creation process.

移動体は、移動予定ルート作成装置により作成された移動予定ルートに基づいて、移動対象領域内の移動対象面である例えば床面を移動することができるように構成された移動体1である(図31参照)。
制御手段は、例えば図31に示すように、移動体1に搭載されている。
従って、この場合、移動体1の移動予定ルートを作成するとともに、当該作成された移動予定ルート(移動予定情報(XY座標情報))に基づいて移動体1の移動制御を行う制御手段50を備えた移動体1となる。
尚、移動体1の移動予定ルートを作成する制御手段は、移動体1に搭載されたコンピュータではなく、移動体1とは別個のパーソナルコンピュータ等のコンピュータと、当該コンピュータにより処理される上述した処理プログラムとにより構成されてもよい。この場合、当該コンピュータに、後述するように、移動体1を移動させる移動対象領域のXY座標情報と当該移動対象領域内の障害物のXY座標情報とを入力して、移動対象領域及び障害物を認識させて、移動予定ルートを作成させる。そして、当該作成された移動予定ルートを移動体1の制御手段に入力することによって、当該移動体1の制御手段が、当該移動予定ルートに基づいて移動体1を移動対象領域内の移動可能領域内で移動させることができるようになる。
The moving body is a moving body 1 configured to be able to move on a target surface, such as a floor surface, within a target movement area based on a planned movement route created by a planned movement route creation device (see Figure 31).
The control means is mounted on the moving body 1, for example, as shown in FIG.
Therefore, in this case, the mobile body 1 is equipped with a control means 50 that creates a planned movement route for the mobile body 1 and controls the movement of the mobile body 1 based on the created planned movement route (planned movement information (XY coordinate information)).
The control means for creating the planned movement route of the mobile body 1 may be configured not by a computer mounted on the mobile body 1, but by a computer such as a personal computer separate from the mobile body 1, and the above-mentioned processing program executed by the computer. In this case, as will be described later, the computer is input with XY coordinate information of the target movement area through which the mobile body 1 will be moved and XY coordinate information of obstacles within the target movement area, causing the computer to recognize the target movement area and obstacles and create a planned movement route. Then, by inputting the created planned movement route into the control means of the mobile body 1, the control means of the mobile body 1 can move the mobile body 1 within a movable area within the target movement area based on the planned movement route.

移動予定ルート作成処理においては、まず、例えば屋内における移動対象領域Aとしての例えば床面領域と壁との境界位置における壁の角のXY座標情報、及び、当該移動対象領域Aとしての床面領域内に存在する障害物Bとしての柱(以下、柱Bという)の角のXY座標情報を、コンピュータに予め入力しておく。これにより、コンピュータは、入力されたXY座標情報を、当該コンピュータが管理する表示画面D上でのXY座標情報に変換して、記憶手段に記録する。
即ち、予めコンピュータに、移動対象領域Aの位置を示す移動対象領域のXY座標情報として、床面領域と壁との境界位置における壁の角のXY座標情報と、柱(障害物)Bの位置を示すXY座標情報として、柱Bの角のXY座標情報とを入力しておく。
尚、コンピュータは、当該移動対象領域A及び柱(障害物)Bを認識して例えば表示画面Dに表示し(図1参照)、最終的には、作成した移動予定ルートを認識して例えば表示画面Dに表示する(図12参照)。
In the planned movement route creation process, first, for example, XY coordinate information of a corner of a wall at the boundary position between a floor area and a wall as a target area A for movement indoors, and XY coordinate information of a corner of a pillar (hereinafter referred to as pillar B) as an obstacle B present in the floor area as the target area A for movement are input into a computer in advance. Then, the computer converts the input XY coordinate information into XY coordinate information on a display screen D managed by the computer and records the converted information in storage means.
That is, the XY coordinate information of the corner of the wall at the boundary position between the floor area and the wall is input to the computer in advance as the XY coordinate information of the movement target area A indicating the position of the movement target area, and the XY coordinate information of the corner of pillar B is input to the computer in advance as the XY coordinate information of the movement target area A indicating the position of the pillar (obstacle) B.
The computer recognizes the target movement area A and the pillar (obstacle) B and displays them, for example, on a display screen D (see Figure 1), and finally recognizes the planned movement route that has been created and displays it, for example, on a display screen D (see Figure 12).

尚、上述したXY座標情報は、移動対象領域Aでの実際のXY座標情報、及び、表示画面Dを制御するコンピュータが当該実際のXY座標情報に基づいて表示画面D上で管理するXY座標情報である。
コンピュータが表示画面D上で管理する、X軸方向の最小間隔、及び、Y軸方向の最小間隔は、コンピュータが搭載するXY座標間隔設定プログラムに基づいて、実際の移動対象領域A上における一定の間隔に設定できるようになっている。
例えば、コンピュータが表示画面D上で管理するX軸方向の最小間隔及びY軸方向の最小間隔が、実際の10cmに対応するように設定される。この場合、例えば実際の移動対象領域Aの外に設定された基準点OからX軸方向の正方向に10cm離れた位置a、当該位置aからY軸方向の正方向に10cm離れた位置bは、コンピュータによって、表示画面D上における基準点Oを基準としたXY座標値、a=(1,0),b=(1,1)として記録されて管理されることになる。
また、実際の移動対象領域Aを区画する壁の角のXY座標情報、実際の各柱B,B…の各角のXY座標情報は、例えば、実際の移動対象領域Aの外に設定された基準点Oから、壁の各角の位置までの距離、当該基準点Oから各柱B,B…の各角の位置までの距離を、測距計などの測定手段を用いて測定した測定値を入力したり、あるいは、設計図等から入力することにより、記憶手段に記録される。
例えば、図1に示すように、移動対象領域Aの一番左下の角から左斜め下の位置を基準点Oに決めた場合を例にして説明する。
この場合、測定した当該基準点Oから各角までの距離をコンピュータに入力することで、当該コンピュータが、XY座標間隔設定プログラムに基づいて、例えば距離10cmを表示画面DのXY座標軸上の一目盛に換算したXY座標値としてファイルに記録する。
例えば、ある角が、当該基準点OからX軸方向の正方向に100cm、基準点OからY軸方向の正方向に100cm離れた位置にあれば、当該角のXY座標値は(10,10)として記録される。尚、例えば、ある角が、当該基準点OからX軸方向の正方向に94cm、当該原点からY軸方向の正方向に96cm離れた位置にあれば、例えば四捨五入されて、当該角のXY座標値は(9,10)として記録される。
The above-mentioned XY coordinate information is the actual XY coordinate information in the movement target area A, and the XY coordinate information managed on the display screen D by the computer controlling the display screen D based on the actual XY coordinate information.
The minimum spacing in the X-axis direction and the minimum spacing in the Y-axis direction managed by the computer on the display screen D can be set to a fixed spacing on the actual movement target area A based on the XY coordinate spacing setting program installed in the computer.
For example, the minimum interval in the X-axis direction and the minimum interval in the Y-axis direction managed by the computer on the display screen D are set to correspond to an actual 10 cm. In this case, for example, a position a that is 10 cm away in the positive direction of the X-axis direction from a reference point O set outside the actual movement target area A, and a position b that is 10 cm away in the positive direction of the Y-axis direction from position a are recorded and managed by the computer as XY coordinate values a = (1, 0), b = (1, 1) with reference to the reference point O on the display screen D.
Furthermore, the XY coordinate information of the corners of the walls that define the actual area A to be moved and the XY coordinate information of each corner of each actual pillar B, B... are recorded in the memory means by inputting, for example, the distance from a reference point O set outside the actual area A to the position of each corner of the wall, and the distance from the reference point O to the position of each corner of each pillar B, B... measured using a measuring means such as a rangefinder, or by inputting the values from a blueprint or the like.
For example, as shown in FIG. 1, a case will be described in which the position diagonally downward to the left from the bottom left corner of the area A to be moved is determined as the reference point O.
In this case, the measured distance from the reference point O to each corner is input into a computer, and the computer records in a file, based on an XY coordinate interval setting program, a distance of, for example, 10 cm, as an XY coordinate value converted into one scale on the XY coordinate axes of the display screen D.
For example, if a certain corner is located 100 cm in the positive X-axis direction from the reference point O and 100 cm in the positive Y-axis direction from the reference point O, the XY coordinate values of the corner will be recorded as (10, 10). Note that if a certain corner is located 94 cm in the positive X-axis direction from the reference point O and 96 cm in the positive Y-axis direction from the origin, the XY coordinate values of the corner will be recorded as (9, 10), for example, after rounding.

最初に、移動対象領域及び障害物領域の作成処理(phase1)では、コンピュータが、移動対象領域作成処理プログラム及び障害物領域作成処理プログラムの手順に従って、例えば図1に示すように、当該移動対象領域A及び移動対象領域A内の複数の柱B,B…を表示画面Dに表示する。
即ち、コンピュータが、例えば図1に示すように、表示画面Dに、移動対象領域A内と移動対象領域A外との境界線、即ち、移動対象領域境界線Cを作成することによって移動対象領域Aを表示するとともに、当該移動対象領域A内に存在する複数の柱B,B…を表示する。この場合、移動対象領域境界線Cは、例えば移動対象領域Aとしての床面領域と壁との境界位置における壁の角のXY座標情報を繋いで作成され、柱Bの境界線(障害物領域境界線)は、例えば柱Bの角のXY座標情報を繋いで作成される。
具体的には、コンピュータは、移動対象領域作成処理プログラム及び障害物領域作成処理プログラムの手順に従って、図13のフローチャートに示すような移動対象領域及び障害物領域の作成処理(phase1)を行う。
まず、移動対象領域Aの位置を示すXY座標情報、例えば移動対象領域Aを区切る壁(境界)の角のXY平面座標を記録したファイルからデータ(壁(境界)の角のXY座標値)を取り出すことにより、表示画面Dに移動対象領域境界線Cを作成する(ステップS1)。即ち、表示画面D上に、移動対象領域Aを区切る壁(境界)のすべての角を表示するとともに、各角を直線で繋ぐことにより、表示画面Dに移動対象領域境界線Cを表示する。
次に、柱本数管理変数初期化、即ち、柱本数管理変数nを1に設定する(ステップS2)。尚、柱本数管理変数とは、調べる対象となる柱を指定するための変数であり、記憶手段に逐次記録されて管理される。
そして、障害物として例えば柱Bの位置を示すXY座標情報、n番目の柱Bの角のXY座標を記録したファイルが存在するか否かを判定する(ステップS3)。
即ち、移動対象領域及び障害物領域の作成処理では、コンピュータが、移動対象領域Aの角、例えば移動対象領域Aとなる床面領域と壁との境界位置における壁の角のXY座標を記録した壁角座標記録ファイル、床面領域内に存在する各柱B,B…の角のXY座標を記録した柱角座標記録ファイル、柱本数管理変数レジスタのような記憶手段を使用して処理を行う。
次に、ステップS3において、n番目の柱の角のXY座標を記録したファイルが存在すると判定された場合、n番目の柱の角のXY座標を記録したファイルからデータを取り出して表示画面Dにn番目の柱を表示した(ステップS4)後、柱本数管理変数nをn+1に更新して(ステップS5)、ステップS3に戻る。
ステップS3において、n番目の柱の角のXY座標を記録したファイルが存在しないと判定された場合、移動対象領域A内のすべての柱Bが表示画面Dに表示されたことを認識して、移動対象領域及び障害物領域の作成処理(phase1)を終了し、障害物グループ分け処理(phase2)に進む。
以上の移動対象領域及び障害物領域の作成処理(phase1)により、例えば図1に示すように、表示画面Dに、移動対象領域Aの境界となる移動対象領域境界線Cと、移動対象領域A内に存在するn個の柱(柱内領域(障害物領域))B,B…が表示される(例えば図1に示すように、B(n)=B(1),B(2),B(3),B(4)の柱が表示される)。
つまり、コンピュータに認識された移動対象領域A及び柱(柱内領域(障害物領域))B,B…が作成されることになる。
First, in the process of creating a movement target area and an obstacle area (phase 1), the computer displays the movement target area A and a plurality of pillars B, B, etc. within the movement target area A on a display screen D, for example, as shown in FIG. 1 , in accordance with the procedures of the movement target area creation processing program and the obstacle area creation processing program.
1 , the computer displays the movement target area A on a display screen D by creating a boundary line between the inside and outside of the movement target area A, i.e., a movement target area boundary line C, and also displays a plurality of pillars B, B, ... that exist within the movement target area A. In this case, the movement target area boundary line C is created, for example, by connecting the XY coordinate information of the corners of the wall at the boundary position between the floor area as the movement target area A and the wall, and the boundary line of pillar B (obstacle area boundary line) is created, for example, by connecting the XY coordinate information of the corners of pillar B.
Specifically, the computer performs a process (phase 1) of creating a movement target area and an obstacle area as shown in the flowchart of FIG. 13, in accordance with the procedures of a movement target area creation process program and an obstacle area creation process program.
First, data (XY coordinate values of the corners of the walls (boundaries)) is extracted from a file recording XY coordinate information indicating the position of the movement target area A, for example, the XY plane coordinates of the corners of the walls (boundaries) that separate the movement target area A, thereby creating a movement target area boundary line C on the display screen D (step S1). That is, all corners of the walls (boundaries) that separate the movement target area A are displayed on the display screen D, and the movement target area boundary line C is displayed on the display screen D by connecting the corners with straight lines.
Next, the column number control variable is initialized, i.e., the column number control variable n is set to 1 (step S2). The column number control variable is a variable for specifying the column to be checked, and is sequentially recorded and managed in the storage means.
Then, it is determined whether or not there exists a file recording XY coordinate information indicating the position of an obstacle, for example, a pillar B, and the XY coordinates of the corner of the n-th pillar B (step S3).
That is, in the process of creating the movement target area and obstacle area, the computer performs the process using storage means such as a wall angle coordinate recording file that records the XY coordinates of the corners of the movement target area A, for example, the corners of the wall at the boundary position between the floor area that becomes the movement target area A and the wall, a pillar angle coordinate recording file that records the XY coordinates of the corners of each pillar B, B, etc. that exist within the floor area, and a pillar number management variable register.
Next, in step S3, if it is determined that a file recording the XY coordinates of the corner of the nth pillar exists, data is extracted from the file recording the XY coordinates of the corner of the nth pillar and the nth pillar is displayed on the display screen D (step S4), after which the pillar number management variable n is updated to n+1 (step S5) and the process returns to step S3.
If it is determined in step S3 that a file recording the XY coordinates of the corner of the nth pillar does not exist, it is recognized that all pillars B within the movement target area A are displayed on the display screen D, the movement target area and obstacle area creation process (phase 1) is terminated, and the process proceeds to obstacle grouping process (phase 2).
By the above-described process of creating the movement target area and obstacle area (phase 1), for example, as shown in FIG. 1, a movement target area boundary line C that forms the boundary of the movement target area A, and n pillars (pillar interior areas (obstacle areas)) B, B... existing within the movement target area A are displayed on the display screen D (for example, as shown in FIG. 1, pillars B(n) = B(1), B(2), B(3), B(4) are displayed).
That is, a movement target area A and pillars (intra-pillar areas (obstacle areas)) B, B . . . recognized by the computer are created.

障害物グループ分け処理(phase2)では、コンピュータが、障害物グループ分け処理プログラムの手順に従って、図2に示すように、柱Bの中心座標を基準として、X座標値が近い柱B同士、Y座標値が近い柱B同士をそれぞれグルーピングする。グルーピングは番号を割り振ることで行う。従って、各柱B,B…には、X軸方向の番号及びY軸方向の番号がそれぞれ割り付けられることになる。即ち、図2の最も左側の柱B(1)の番号は1-1となり、図2の最も右側の柱B(5)の番号は4-3となる。例えば、図2の最も右側の柱B(5)の番号4-3の意味は、当該柱B(5)は、X軸方向の4番目のグループに属し、かつ、Y軸方向の3番目のグループに属しているということを意味する。 In the obstacle grouping process (phase 2), the computer follows the procedures of the obstacle grouping process program and groups pillars B with similar X coordinate values and pillars B with similar Y coordinate values, using the center coordinate of pillar B as the reference, as shown in Figure 2. Grouping is performed by assigning numbers. Therefore, each pillar B, B, etc. is assigned a number in the X-axis direction and a number in the Y-axis direction. That is, the number 1-1 is assigned to the leftmost pillar B (1) in Figure 2, and the number 4-3 is assigned to the rightmost pillar B (5) in Figure 2. For example, the number 4-3 assigned to the rightmost pillar B (5) in Figure 2 means that pillar B (5) belongs to the fourth group in the X-axis direction and the third group in the Y-axis direction.

即ち、コンピュータは、障害物グループ分け処理プログラムの手順に従って、図14のフローチャートに示すような障害物グループ分け処理(phase2)を行う。
障害物グループ分け処理(phase2)では、まず、変数初期化処理を行う。即ち、柱本数管理変数nを0、比較対象管理変数pを0、グループ番号変数gxを1に設定する。(ステップS11)。
即ち、障害物グループ分け処理では、コンピュータが、柱本数管理変数レジスタ、比較対象管理変数レジスタ、グループ番号変数レジスタ、柱グループ番号記録ファイルのような記憶手段を使用して処理を行う。
次に、柱本数管理変数nの値と柱の本数が一致しているか否かを判定する(ステップS12)。
ステップS12において、nの値と柱の本数が一致していないと判定された場合、グループ化未処理の柱が存在していると認識して、柱本数管理変数nをn+1に設定してグループ化対象の柱を更新し(ステップS13)、n番(例えば図2の柱Bのカッコ内の番号)目の柱に既にX軸方向グループ番号gxが付与されているか否かを判定する(ステップS14)。例えば、n=1(1番目)の柱(例えば図2の柱B(1))に既にX軸方向グループ番号gxが付与されているか否かを判定する。尚、図2の場合、柱の本数が「5」であり、nの値の最大値は「5」である。
ステップS14において、n番目の柱にX軸方向グループ番号gxが付与されていないと判定された場合、n番目の柱にX軸方向グループ番号gxを付与する(ステップS15)。グループ番号は、各柱のグループ番号を記録する柱グループ番号記録ファイルに記録される。
その後、n+pの値と柱の本数が一致しているか否かを判定する(ステップS16)。
尚、比較対象管理変数pとは、比較対象となる柱のことであり、例えば、図2の柱B(1)の比較対象となる柱は、図2の柱B(2),柱B(3),柱B(4),柱B(5)であり、この場合、例えば、図2の柱B(2)のpの値は1,柱B(3)のpの値は2,柱B(4)のpの値は3,柱B(5)のpの値は4となる。従って、図2の場合、1番目の柱B(1)では比較対象となる柱の数pの最大値は4であり、2番目の柱B(2)では比較対象となる柱の数pの最大値は3であり、3番目の柱B(3)では比較対象となる柱の数pの最大値は2であり、4番目の柱B(4)では比較対象となる柱の数pの最大値は1となるので、n+pの値の最大値と柱の本数とが一致する。即ち、図2の場合、柱の本数が「5」であり、n+pの値の最大値も「5」である。
ステップS16において、n+pの値と柱の本数が一致していないと判定された場合、比較対象となる柱が残っていると認識して、pをp+1に設定して比較対象となる柱を更新し(ステップS17)、n番目の柱の中心座標(以下、「柱の重心」という)とn+p番目の柱の重心のX座標の差exを計算した(ステップS18)後、差exの絶対値が基準値E以下か否かを判定する(ステップS19)。
ステップS19において、差exの絶対値が基準値E以下であると判定された場合、n+p番目の柱に既にX軸方向グループ番号gxが付与されているか否かを判定する(ステップS20)。
ステップS20において、n+p番目の柱に既にX軸方向グループ番号gxが付与されていると判定された場合、ステップS16に戻って、n番目の柱と次の比較対象であるn+p番目の柱との比較処理(ステップS17~ステップS19)を行う。
ステップS20において、n+p番目の柱にX軸方向グループ番号gxが付与されていないと判定された場合、n+p番目の柱にX軸方向グループ番号gxを付与した(ステップS21)後、ステップS16に戻って、n番目の柱と次の比較対象であるn+p番目の柱との比較処理(ステップS17~ステップS19)を行う。
即ち、n番目の柱の重心とn+p番目の柱の重心のX座標の差exの絶対値が基準値E以下であれば、n+p番目の柱には、n番目の柱に付与されているX軸方向グループ番号gxと同じ番号が付与される。
また、ステップS19において、差exの絶対値が基準値E以下でない場合(ステップS19でNo)は、ステップS16に戻って、n番目の柱と次の比較対象であるn+p番目の柱との比較処理(ステップS17~ステップS19)を行う。
また、ステップS16において、n+pの値と柱の本数が一致していると判定された場合、gxをgx+1に設定するとともに、pを0に設定して(ステップS22)、ステップS12に戻る。つまり、比較対象であるn+p番目の柱に対するX軸方向グループ番号を更新してn番目の柱との比較処理に進む。
尚、ステップS19において、重心のX座標の差exの絶対値が基準値E以下でないと判定されたn+p番目の柱には、X軸方向グループ番号の付与処理が終了するまでには、ステップS22を経て、X軸方向グループ番号が付与されることになる。
ステップS14において、n番目の柱に既にX軸方向グループ番号gxが付与されていると判定された場合、ステップS12に戻る。
また、ステップS12において、nの値と柱の本数が一致していると判定された場合、すべての柱にX軸方向グループ番号gxが付与されたことを認識し、Y軸方向グループ番号gyの付与について、X軸方向グループ番号gxの付与と同様の処理を行う(ステップS23)ことによって、障害物グループ分け処理(phase2)を終了し、次の処理である、障害物角認識処理(phase3)に進む。
That is, the computer performs the obstacle grouping process (phase 2) as shown in the flowchart of FIG. 14 in accordance with the procedure of the obstacle grouping process program.
In the obstacle grouping process (phase 2), first, variable initialization is performed: the pillar number management variable n is set to 0, the comparison object management variable p is set to 0, and the group number variable gx is set to 1 (step S11).
That is, in the obstacle grouping process, the computer performs the process using storage means such as a pole number control variable register, a comparison object control variable register, a group number variable register, and a pole group number recording file.
Next, it is determined whether the value of the pillar number control variable n matches the number of pillars (step S12).
If it is determined in step S12 that the value of n does not match the number of columns, it is recognized that there are columns that have not yet been grouped, and the column number control variable n is set to n+1 to update the columns to be grouped (step S13). It is then determined whether the nth column (e.g., the number in parentheses of column B in Figure 2) has already been assigned an X-axis direction group number gx (step S14). For example, it is determined whether the n=1 (first) column (e.g., column B(1) in Figure 2) has already been assigned an X-axis direction group number gx. In the case of Figure 2, the number of columns is "5," and the maximum value of n is "5."
If it is determined in step S14 that the n-th column has not been assigned an X-axis group number gx, the n-th column is assigned an X-axis group number gx (step S15). The group number is recorded in a column group number record file that records the group number of each column.
Thereafter, it is determined whether the value of n+p matches the number of columns (step S16).
The comparison control variable p refers to the column to be compared. For example, the columns to be compared with column B(1) in FIG. 2 are columns B(2), B(3), B(4), and B(5). In this case, for example, the value of p for column B(2) in FIG. 2 is 1, the value of p for column B(3) is 2, the value of p for column B(4) is 3, and the value of p for column B(5) is 4. Therefore, in the case of FIG. 2, the maximum value of the number of columns to be compared, p, for the first column B(1) is 4; the maximum value of the number of columns to be compared, p, for the second column B(2) is 3; the maximum value of the number of columns to be compared, p, for the third column B(3) is 2; and the maximum value of the number of columns to be compared, p, for the fourth column B(4) is 1. Therefore, the maximum value of n+p matches the number of columns. That is, in the case of FIG. 2, the number of columns is 5, and the maximum value of n+p is also 5.
If it is determined in step S16 that the value of n+p does not match the number of pillars, it is recognized that there are pillars remaining to be compared, and the pillars to be compared are updated by setting p to p+1 (step S17). The difference ex between the central coordinate of the nth pillar (hereinafter referred to as the "centre of gravity of the pillar") and the X coordinate of the centre of gravity of the n+pth pillar is calculated (step S18), and then it is determined whether the absolute value of the difference ex is equal to or less than a reference value E (step S19).
If it is determined in step S19 that the absolute value of the difference ex is equal to or less than the reference value E, it is determined whether or not the X-axis direction group number gx has already been assigned to the (n+p)th column (step S20).
If it is determined in step S20 that the (n+p)th column has already been assigned the X-axis group number gx, the process returns to step S16 and a comparison process (steps S17 to S19) is performed between the nth column and the next column to be compared, the (n+p)th column.
If it is determined in step S20 that the (n+p)th column has not been assigned the X-axis group number gx, the (n+p)th column is assigned the X-axis group number gx (step S21), and then the process returns to step S16 to compare the nth column with the next comparison target, the (n+p)th column (steps S17 to S19).
In other words, if the absolute value of the difference ex in the X coordinate between the center of gravity of the nth column and the center of gravity of the (n+p)th column is less than or equal to the reference value E, the (n+p)th column is assigned the same X-axis group number gx as that assigned to the nth column.
Also, in step S19, if the absolute value of the difference ex is not equal to or less than the reference value E (No in step S19), the process returns to step S16 and performs a comparison process (steps S17 to S19) between the nth column and the next comparison target, the n+pth column.
If it is determined in step S16 that the value of n+p matches the number of columns, gx is set to gx+1, p is set to 0 (step S22), and the process returns to step S12. That is, the X-axis direction group number for the (n+p)th column to be compared is updated, and the process proceeds to the comparison with the nth column.
In addition, for the (n+p)th column for which it is determined in step S19 that the absolute value of the difference ex of the X coordinate of the center of gravity is not equal to or less than the reference value E, an X-axis direction group number will be assigned via step S22 before the process of assigning the X-axis direction group number is completed.
If it is determined in step S14 that the n-th column has already been assigned the X-axis direction group number gx, the process returns to step S12.
Furthermore, if it is determined in step S12 that the value of n matches the number of pillars, it is recognized that all pillars have been assigned the X-axis direction group number gx, and the same process as that for assigning the X-axis direction group number gx is performed for assigning the Y-axis direction group number gy (step S23), thereby terminating the obstacle grouping process (phase 2) and proceeding to the next process, the obstacle angle recognition process (phase 3).

障害物角認識処理(phase3)では、コンピュータが、障害物角認識処理プログラムの手順に従って、例えば図3に示すように、断面正方形状の柱B1、断面長方形状の柱B2、断面円形状の柱B3、断面L字形状の柱B4等の柱Bの角に番号を付けて柱Bの角を認識する。
尚、例えば図3に示すように、各柱B,B…の各角部に1~4までの番号を1つずつ付けていくが、断面円形状の柱B3(丸柱)のように角部が無い場合は、丸柱の外周円においてX軸に平行で丸柱の中心座標を通過する直線とY軸に平行で丸柱の中心座標を通過する直線とに交差する4点を角と見做して当該4つの角にそれぞれ番号を付与する。
In the obstacle angle recognition process (phase 3), the computer recognizes the corners of pillars B by assigning numbers to the corners of pillars B, such as pillar B1 with a square cross section, pillar B2 with a rectangular cross section, pillar B3 with a circular cross section, and pillar B4 with an L-shaped cross section, as shown in FIG. 3, in accordance with the procedures of the obstacle angle recognition process program.
As shown in FIG. 3, for example, numbers 1 to 4 are assigned to the corners of each of the columns B, B.... However, in the case of a column B3 (round column) with a circular cross section that has no corners, the four points on the outer periphery of the round column where a line parallel to the X axis passing through the center coordinates of the round column and a line parallel to the Y axis passing through the center coordinates of the round column intersect are regarded as corners, and numbers are assigned to the four corners, respectively.

即ち、コンピュータは、障害物角認識処理プログラムの手順に従って、図15のフローチャートに示すような障害物角認識処理(phase3)を行う。
障害物角認識処理(phase3)においては、まず、柱本数管理変数初期化処理を行う。即ち、柱本数管理変数nを0に設定する(ステップS31)。
次に、nの値と柱の本数が一致しているか否かを判定する(ステップS32)。
ステップS32において、nの値と柱の本数が一致していないと判定された場合、番号付け未処理の柱が存在していることを認識して、nをn+1に更新した(ステップS33)後、n番目の柱の角のうち、最もY軸座標の値が大きい角が複数あるか否かを判定する(ステップS34)。
ステップS34において、n番目の柱の角のうち、最もY軸座標の値が大きい角が1つであると判定された場合(ステップS34でNo)、n番目の柱について、最もY軸座標の値が大きい角に角番号1を付与し(ステップS35、例えば図3の柱B1、柱B3参照)、その後、n番目の柱の角のうち、最もX軸座標の値が大きい角が複数あるか否かを判定する(ステップS37)。尚、角番号は、各柱の角番号を記録する柱角番号記録ファイルに記録される。
即ち、障害物角認識処理では、コンピュータが、柱本数管理変数レジスタ、柱角座標記録ファイル、柱角番号記録ファイルのような記憶手段を使用して処理を行う。
ステップS34において、n番目の柱の角のうち、最もY軸座標の値が大きい角が複数あると判定された場合(ステップS34でYes)、n番目の柱について、最もY軸座標の値が大きい角同士を比較し、最もX軸座標の値が小さい角に角番号1を付与する(ステップS36、例えば図3の柱B2、柱B4参照)。つまり、最もY軸座標の値が大きい複数の角のうちX軸座標の値が小さい方の角に角番号1を付与し、その後、ステップS37に進む。
ステップS37において、n番目の柱の角のうち、最もX軸座標の値が大きい角が1つであると判定された場合(ステップS37でNo)、n番目の柱について、最もX軸座標の値が大きい角に角番号2を付与し(ステップS38、例えば図3の柱B1、柱B3参照)、その後、n番目の柱の角のうち、最もY軸座標の値が小さい角が複数あるか否かを判定する(ステップS40)。
ステップS37において、n番目の柱の角のうち、最もX軸座標の値が大きい角が複数あると判定された場合(ステップS37でYes)、n番目の柱について、最もX軸座標の値が大きい角同士を比較し、最もY軸座標の値が大きい角に角番号2を付与する(ステップS39、例えば図3の柱B2、柱B4参照)。つまり、最もX軸座標の値が大きい複数の角のうちY軸座標の値が大きい方の角に角番号2を付与し、その後、ステップS40に進む。
ステップS40において、n番目の柱の角のうち、最もY軸座標の値が小さい角が1つであると判定された場合(ステップS40でNo)、n番目の柱について、最もY軸座標の値が小さい角に角番号3を付与し(ステップS41、例えば図3の柱B1、柱B3参照)、その後、n番目の柱の角のうち、最もX軸座標の値が小さい角が複数あるか否かを判定する(ステップS43)。
ステップS40において、n番目の柱の角のうち、最もY軸座標の値が小さい角が複数あると判定された場合(ステップS39でYes)、n番目の柱について、最もY軸座標の値が小さい角同士を比較し、最もX軸座標の値が大きい角に角番号3を付与する(ステップS42、例えば図3の柱B2、柱B4参照)。つまり、最もY軸座標の値が小さい複数の角のうちX軸座標の値が大きい方の角に角番号3を付与し、その後、ステップS43に進む。
ステップS43において、n番目の柱の角のうち、最もX軸座標の値が小さい角が1つであると判定された場合(ステップS43でNo)、n番目の柱について、最もX軸座標の値が小さい角に角番号4を付与し(ステップS44、例えば図3の柱B1、柱B3参照)、その後、ステップS32に戻る。
ステップS43において、n番目の柱の角のうち、最もX軸座標の値が小さい角が複数あると判定された場合(ステップS43でYes)、n番目の柱について、最もX軸座標の値が小さい角同士を比較し、最もY軸座標の値が小さい角に角番号4を付与する(ステップS45、例えば図3の柱B2、柱B4参照)。つまり、最もX軸座標の値が小さい複数の角のうちY軸座標の値が小さい方の角に角番号4を付与し、その後、ステップS32に戻る。
そして、ステップS32において、nの値と柱の本数が一致していると判定された場合、すべての柱B,B…の各角に番号が付与されたことを認識して、障害物角認識処理(phase3)を終了し、障害物間境界線作成処理(phase4)に進む。
That is, the computer performs the obstacle angle recognition process (phase 3) as shown in the flowchart of FIG. 15 in accordance with the procedure of the obstacle angle recognition process program.
In the obstacle angle recognition process (phase 3), first, a pillar number control variable initialization process is performed, i.e., the pillar number control variable n is set to 0 (step S31).
Next, it is determined whether the value of n matches the number of columns (step S32).
If it is determined in step S32 that the value of n does not match the number of columns, it is recognized that there are columns that have not yet been numbered, and n is updated to n+1 (step S33). After that, it is determined whether there are multiple corners of the nth column that have the largest Y-axis coordinate value (step S34).
If it is determined in step S34 that there is only one corner of the n-th column with the largest Y-axis coordinate value (No in step S34), the corner with the largest Y-axis coordinate value for the n-th column is assigned corner number 1 (step S35; see, for example, columns B1 and B3 in FIG. 3), and then it is determined whether there are multiple corners with the largest X-axis coordinate value for the n-th column (step S37). The corner numbers are recorded in a column corner number record file that records the corner numbers of each column.
That is, in the obstacle angle recognition process, the computer performs the process using storage means such as a pole number management variable register, a pole angle coordinate recording file, and a pole angle number recording file.
In step S34, if it is determined that there are multiple corners with the largest Y-axis coordinate value among the corners of the nth column (Yes in step S34), the corners with the largest Y-axis coordinate value for the nth column are compared, and the corner with the smallest X-axis coordinate value is assigned corner number 1 (step S36; see, for example, columns B2 and B4 in FIG. 3). In other words, the corner with the smallest X-axis coordinate value among the multiple corners with the largest Y-axis coordinate value is assigned corner number 1, and then the process proceeds to step S37.
In step S37, if it is determined that there is one corner of the nth column with the largest X-axis coordinate value (No in step S37), corner number 2 is assigned to the corner of the nth column with the largest X-axis coordinate value (step S38; see, for example, columns B1 and B3 in Figure 3), and then it is determined whether there are multiple corners of the nth column with the smallest Y-axis coordinate values (step S40).
In step S37, if it is determined that there are multiple corners with the largest X-axis coordinate value among the corners of the nth column (Yes in step S37), the corners with the largest X-axis coordinate value for the nth column are compared, and the corner with the largest Y-axis coordinate value is assigned corner number 2 (step S39; see, for example, columns B2 and B4 in FIG. 3 ). That is, among the multiple corners with the largest X-axis coordinate value, corner number 2 is assigned to the corner with the largest Y-axis coordinate value, and then the process proceeds to step S40.
In step S40, if it is determined that there is one corner of the nth column with the smallest Y-axis coordinate value (No in step S40), corner number 3 is assigned to the corner of the nth column with the smallest Y-axis coordinate value (step S41, see, for example, columns B1 and B3 in Figure 3), and then it is determined whether there are multiple corners of the nth column with the smallest X-axis coordinate values (step S43).
In step S40, if it is determined that there are multiple corners of the nth column with the smallest Y-axis coordinate value (Yes in step S39), the corners with the smallest Y-axis coordinate value for the nth column are compared, and the corner with the largest X-axis coordinate value is assigned corner number 3 (step S42; see, for example, columns B2 and B4 in FIG. 3). That is, among the multiple corners with the smallest Y-axis coordinate value, corner number 3 is assigned to the corner with the largest X-axis coordinate value, and then the process proceeds to step S43.
In step S43, if it is determined that there is one corner of the nth pillar with the smallest X-axis coordinate value (No in step S43), corner number 4 is assigned to the corner of the nth pillar with the smallest X-axis coordinate value (step S44; see, for example, pillars B1 and B3 in Figure 3), and then the process returns to step S32.
In step S43, if it is determined that there are multiple corners with the smallest X-axis coordinate value among the corners of the nth column (Yes in step S43), the corners with the smallest X-axis coordinate value for the nth column are compared, and the corner with the smallest Y-axis coordinate value is assigned corner number 4 (step S45; see, for example, columns B2 and B4 in FIG. 3 ). That is, among the multiple corners with the smallest X-axis coordinate value, corner number 4 is assigned to the corner with the smallest Y-axis coordinate value, and then the process returns to step S32.
If it is determined in step S32 that the value of n matches the number of pillars, it is recognized that numbers have been assigned to the corners of all pillars B, B, etc., and the obstacle corner recognition process (phase 3) is terminated, and the process proceeds to the obstacle boundary line creation process (phase 4).

第1の接続線作成手段による障害物間境界線作成処理(phase4)では、コンピュータが、障害物間境界線作成処理プログラムの手順に従って、図4に示すように、柱B,B間の境界線、即ち、柱間境界線(障害物間境界線(第1の境界線))を作成する。例えば、同じグループ番号を持ち、かつ最も近い柱B,B同士の間に柱間境界線を作る。即ち、図4においては、X軸方向の同じ3グループである番号3-1の柱B(4)と番号3-3の柱B(3)とが柱間境界線Mで繋がれ、Y軸方向の同じ1グループである番号1-1の柱B(1)と番号3-1の柱B(4)とが柱間境界線Mで繋がれ、Y軸方向の同じ3グループである番号3-3の柱B(3)と番号4-3の柱B(5)とが柱間境界線Mで繋がれた例を示している。つまり、各柱毎に、境界線を繋ぐのに最適な柱を選択して、柱同士を境界線で繋ぐようにしている。
尚、図4においては、柱間境界線Mとして、X軸方向に沿ったクランク状の境界線、あるいは、Y軸方向に沿ったクランク状の境界線を作成した例を示したが、柱間境界線Mは、X軸方向及びY軸方向と交差する斜め直線状の境界線や、なめらかな曲線状の境界線を作成してもよい。
In the obstacle-to-obstacle boundary line creation process (phase 4) by the first connection line creation means, the computer creates a boundary line between pillars B, B, i.e., an inter-pillar boundary line (inter-obstacle boundary line (first boundary line)), as shown in FIG. 4, in accordance with the procedures of the obstacle-to-obstacle boundary line creation process program. For example, an inter-pillar boundary line is created between pillars B, B that have the same group number and are closest to each other. That is, FIG. 4 shows an example in which pillar B(4) numbered 3-1 and pillar B(3) numbered 3-3, which belong to the same 3rd group in the X-axis direction, are connected by an inter-pillar boundary line M, pillar B(1) numbered 1-1 and pillar B(4) numbered 3-1, which belong to the same 1st group in the Y-axis direction, are connected by an inter-pillar boundary line M, and pillar B(3) numbered 3-3 and pillar B(5) numbered 4-3, which belong to the same 3rd group in the Y-axis direction, are connected by an inter-pillar boundary line M. In other words, for each pillar, the optimal pillar for connecting the boundary lines is selected, and the pillars are connected by a boundary line.
In addition, in Figure 4, an example is shown in which a crank-shaped boundary line along the X-axis direction or a crank-shaped boundary line along the Y-axis direction is created as the inter-column boundary line M, but the inter-column boundary line M may also be a diagonal straight boundary line that intersects with the X-axis direction and the Y-axis direction, or a smoothly curved boundary line.

即ち、コンピュータは、障害物間境界線作成処理プログラムの手順に従って、図16のフローチャートに示すような障害物間境界線作成処理(phase4)を行う。
まず、変数初期化処理を行う。即ち、柱本数管理変数nを0、比較対象管理変数pを0に設定する(ステップS51)。
次に、nの値と柱の本数が一致しているか否かを判定する(ステップS52)。
ステップS52において、nの値と柱の本数が一致していなければ(ステップS52でNo)、接続先候補登録変数sの初期化、即ち、sをNull(無)に設定(ステップS53)する。さらに、nをn+1に設定した(ステップS54)後、n番目の柱について、正のX軸方向に既に境界線が接続されているか否かを判定する(ステップS55)。
即ち、障害物間境界線作成処理では、コンピュータが、上述した柱本数管理変数レジスタ、比較対象管理変数レジスタ、接続先候補登録変数レジスタ、柱角座標記録ファイル、柱角番号記録ファイルのような記憶手段を使用して処理を行う。
尚、接続先候補登録変数sとは、接続候補を一時的に記録する変数のことである。
ステップS55において、n番目の柱について、正のX軸方向に境界線が接続されていなければ(ステップS55でNo)、n+pの値と柱の本数が一致しているか否かを判定する(ステップS56)。
ステップS56において、n+pの値と柱の本数が一致していなければ(ステップS56でNo)、比較対象となる柱が残っているということなので、pをp+1に更新した(ステップS57)後、n番目の柱のX軸方向グループ番号とn+p番目の柱のX軸方向グループ番号とが同一か否かを判定する(ステップS58)。
ステップS58において、n番目の柱のX軸方向グループ番号とn+p番目の柱のX軸方向グループ番号とが同一であると判定された場合、n+p番目の柱の重心(中心座標)はn番目の柱から見て正のX軸方向にあるか否かを判定する(ステップS59)。
ステップS58において、n番目の柱のX軸方向グループ番号とn+p番目の柱のX軸方向グループ番号とが同一ではないと判定された場合、ステップS56に戻る。
ステップS59において、n+p番目の柱の重心がn番目の柱から見て正のX軸方向にないと判定された場合、ステップS56に戻る。
ステップS59において、n+p番目の柱の重心がn番目の柱から見て正のX軸方向にあると判定された場合、s=Nullであるか否かを判定する(ステップS60)。
ステップS60において、s=Nullであれば、n番目の柱とn+p番目の柱の重心間の距離L*を計算した(ステップS61)後、n+pを接続先候補変数sに代入し(ステップS62)、ステップS56に戻る。
ステップS60において、s=Nullでなければ、n番目の柱とn+p番目の柱の重心間の距離Lを計算した(ステップS63)後、L*>Lであるか否かを判定する(ステップS64)。
ステップS64において、L*>Lであれば、L*にLを代入し(ステップS65)、n+pを接続先候補変数sに代入した(ステップS66)後に、ステップS56に戻る。
ステップS64において、L*>Lでなければ、ステップS56に戻る。
ステップS56において、n+pの値と柱の本数が一致していると判定された場合、s=Nullであるか否かを判定し(ステップS67)、s=Nullであれば、ステップS52に戻り、s=Nullでなければ、n番目の柱の2番角とs番目の柱の4番角の間に境界線M(例えば図4において柱B(1)の2番角から右方向に延長して柱B(4)の4番角に繋がる境界線M)を引き、その後、ステップS52に戻る。
そして、ステップS52において、nの値と柱の本数が一致していると判定された場合、正のX軸方向境界線への接続処理が終了し、その後、負のX軸方向境界線への接続処理、正のY軸方向境界線への接続処理、負のY軸方向境界線への接続処理のそれぞれについて、正のX軸方向境界線への接続処理と同様の処理で行う(ただし、X軸方向の境界線の接続は角番号2と角番号4とで行い、Y軸方向の境界線の接続は角番号1と角番号3とで行う)(ステップS69)。
そして、当該負のX軸方向境界線への接続処理、正のY軸方向境界線への接続処理、負のY軸方向境界線への接続処理が終了したら、次の分割領域区分け処理(phase5)に進む。
That is, the computer executes the obstacle boundary line creation process (phase 4) shown in the flowchart of FIG. 16 in accordance with the procedure of the obstacle boundary line creation process program.
First, variable initialization processing is performed, that is, the column number management variable n is set to 0 and the comparison target management variable p is set to 0 (step S51).
Next, it is determined whether the value of n matches the number of columns (step S52).
In step S52, if the value of n does not match the number of columns (No in step S52), the connection candidate registration variable s is initialized, i.e., s is set to Null (step S53). Furthermore, n is set to n+1 (step S54), and then it is determined whether or not a boundary line has already been connected to the nth column in the positive X-axis direction (step S55).
That is, in the obstacle-to-obstacle boundary line creation process, the computer performs the process using storage means such as the above-mentioned pillar number management variable register, comparison target management variable register, connection destination candidate registration variable register, pillar corner coordinate recording file, and pillar corner number recording file.
The connection candidate registration variable s is a variable that temporarily records connection candidates.
In step S55, if no boundary line is connected to the nth pillar in the positive X-axis direction (No in step S55), it is determined whether the value of n+p matches the number of pillars (step S56).
In step S56, if the value of n+p does not match the number of pillars (No in step S56), this means that pillars remain to be compared, so p is updated to p+1 (step S57), and then it is determined whether the X-axis direction group number of the nth pillar and the X-axis direction group number of the n+pth pillar are the same (step S58).
If it is determined in step S58 that the X-axis direction group number of the nth column and the X-axis direction group number of the (n+p)th column are the same, it is determined whether the center of gravity (central coordinates) of the (n+p)th column is in the positive X-axis direction as viewed from the nth column (step S59).
If it is determined in step S58 that the X-axis direction group number of the nth column and the X-axis direction group number of the (n+p)th column are not the same, the process returns to step S56.
If it is determined in step S59 that the center of gravity of the (n+p)th pillar is not in the positive X-axis direction as viewed from the nth pillar, the process returns to step S56.
If it is determined in step S59 that the center of gravity of the (n+p)th pillar is in the positive X-axis direction as viewed from the nth pillar, it is determined whether s=Null (step S60).
In step S60, if s = Null, the distance L* between the centers of gravity of the nth pillar and the (n+p)th pillar is calculated (step S61), and then n+p is substituted for the connection destination candidate variable s (step S62), and the process returns to step S56.
In step S60, if s=Null is not satisfied, the distance L between the centers of gravity of the nth pillar and the (n+p)th pillar is calculated (step S63), and then it is determined whether L*>L (step S64).
If L*>L in step S64, L is substituted for L* (step S65), n+p is substituted for the connection destination candidate variable s (step S66), and then the process returns to step S56.
If L*>L is not satisfied in step S64, the process returns to step S56.
If it is determined in step S56 that the value of n+p matches the number of pillars, it is determined whether s=Null (step S67). If s=Null, the process returns to step S52. If s=Null, the process returns to step S52. If not, the process draws a boundary line M between the second corner of the nth pillar and the fourth corner of the sth pillar (for example, in FIG. 4, the boundary line M extends rightward from the second corner of pillar B(1) to connect to the fourth corner of pillar B(4)), and then the process returns to step S52.
If it is determined in step S52 that the value of n matches the number of pillars, the process of connecting to the boundary line in the positive X-axis direction is terminated, and then the process of connecting to the boundary line in the negative X-axis direction, the process of connecting to the boundary line in the positive Y-axis direction, and the process of connecting to the boundary line in the negative Y-axis direction are each performed in the same manner as the process of connecting to the boundary line in the positive X-axis direction (however, the connection to the boundary line in the X-axis direction is performed using corner number 2 and corner number 4, and the connection to the boundary line in the Y-axis direction is performed using corner number 1 and corner number 3) (step S69).
Then, when the connection process to the negative X-axis direction boundary line, the connection process to the positive Y-axis direction boundary line, and the connection process to the negative Y-axis direction boundary line are completed, the process proceeds to the next divided area division process (phase 5).

以下、障害物間境界線作成処理(phase4)について、さらに具体的に説明する。
図4の柱を例にして説明すると、ステップS58で、n=1番目の柱としての柱B(1)とn+p=2番目の柱としての柱B(2)は、X軸方向グループ番号が同じではないので、ステップS57を経て、ステップS58で、柱B(1)とn+p=3番目の柱としての柱B(3)とが比較される。柱B(1)とB(3)もX軸方向グループ番号が同じではないので、さらに、ステップS57を経て、ステップS58で、柱B(1)とn+p=4番目の柱としての柱B(4)とが比較される。柱B(1)とB(4)は、X軸方向グループ番号が同じであり、ステップS59、ステップS60を経て、ステップS60において、柱B(1)とB(4)の重心間の距離L*が計算された後、柱B(4)の番号、n+p=「4」が、接続先候補変数sとして記憶される。その後、ステップS57を経て、ステップS58で、柱B(1)とn+p=5番目の柱としての柱B(5)とが比較される。柱B(1)とB(5)もX軸方向グループ番号が同じではないので、ステップS57に戻って、ステップS67を経て、ステップS68において、柱B(1)の2番角とB(4)の4番角とが境界線で繋がれる。
尚、図4の例では、X軸方向グループ番号が同じ柱が3つ以上存在しないが、例えば、図4において、柱B(1)及びB(4)とX軸方向グループ番号が同じ図外の柱B(6)が存在した場合には、ステップS63において、柱B(1)と当該柱B(6)の重心間の距離Lが計算される。その後、ステップS64において、柱B(1)と柱B(6)の重心間の距離Lが柱B(1)とB(4)の重心間の距離L*よりも小さければ、柱B(6)の番号、n+p=「6」が、接続先候補変数sとして記憶され、ステップS67を経て、ステップS68において、柱B(1)の2番角と柱B(6)の4番角とが境界線で繋がれることになる。
The obstacle boundary line creation process (phase 4) will now be described in more detail.
4 as an example, in step S58, column B(1) as the n=1th column and column B(2) as the n+p=2th column do not have the same X-axis group number, so in step S57, column B(1) is compared with column B(3) as the n+p=3th column in step S58. Columns B(1) and B(3) also do not have the same X-axis group number, so in step S57, column B(1) is compared with column B(4) as the n+p=4th column in step S58. Columns B(1) and B(4) have the same X-axis group number, so in step S59 and step S60, the distance L* between the centers of gravity of columns B(1) and B(4) is calculated, and then the number of column B(4), n+p=4, is stored as the connection destination candidate variable s. After that, in step S57, column B(1) is compared with column B(5), which is the (n+p)th column, in step S58. Since columns B(1) and B(5) do not have the same X-axis group number, the process returns to step S57, and in step S67, in step S68, the second corner of column B(1) and the fourth corner of column B(4) are connected by a boundary line.
4, there are no more than three columns with the same X-axis group number. However, if, for example, there is a column B(6) not shown in the figure that has the same X-axis group number as columns B(1) and B(4), then in step S63, the distance L between the centers of gravity of column B(1) and column B(6) is calculated. Then, in step S64, if the distance L between the centers of gravity of columns B(1) and B(6) is smaller than the distance L* between the centers of gravity of columns B(1) and B(4), the number of column B(6), n+p=6, is stored as the connection destination candidate variable s. Then, in step S67, the second corner of column B(1) and the fourth corner of column B(6) are connected by a boundary line in step S68.

第2の接続線作成手段及び第3の接続線作成手段による分割領域区分け処理(phase5)では、コンピュータが、分割領域区分け処理プログラムの手順に従って、図5に示すように、柱Bと移動対象領域境界線Cとを繋ぐ境界線N(第2の境界線)、又は、柱Bと柱間境界線M(第1の境界線)又は境界線N(第2の境界線)とを繋ぐ境界線Q(第3の境界線)を作成して、移動対象領域Aを境界線C,M,N,Qで区画された複数の移動可能領域となる複数の分割領域E,E…(図6参照)に区分けする。
つまり、障害物間境界線作成処理(phase4)において、柱間境界線Mで繋がれなかった柱Bの角部と移動対象領域境界線Cとを繋ぐ境界線N(第2の境界線)、又は、柱間境界線M(第1の境界線)で繋がれなかった柱Bの角部と柱間境界線M(第1の境界線)又は境界線N(第2の境界線)とを繋ぐ境界線Q(第3の境界線)を作成する。
これにより、移動対象領域Aが、境界線C,M,N,Qで区画された複数の移動可能領域となる複数の分割領域E,E…(図6参照)に区分けされることになる。
In the divided area division process (phase 5) using the second connection line creation means and the third connection line creation means, the computer follows the procedures of the divided area division process program to create a boundary line N (second boundary line) connecting the pillar B and the movement target area boundary line C, or a boundary line Q (third boundary line) connecting the pillar B and the inter-pillar boundary line M (first boundary line) or the boundary line N (second boundary line), as shown in Figure 5, and divides the movement target area A into a plurality of divided areas E, E... (see Figure 6) which are a plurality of movable areas separated by boundaries C, M, N, Q.
In other words, in the obstacle boundary line creation process (phase 4), a boundary line N (second boundary line) is created that connects the corner of pillar B that was not connected by pillar-to-pillar boundary line M to the movement target area boundary line C, or a boundary line Q (third boundary line) that connects the corner of pillar B that was not connected by pillar-to-pillar boundary line M (first boundary line) to the pillar-to-pillar boundary line M (first boundary line) or boundary line N (second boundary line).
As a result, the movement target area A is divided into a plurality of divided areas E, E . . . (see FIG. 6) which are a plurality of movable areas partitioned by boundary lines C, M, N, and Q.

即ち、コンピュータは、分割領域区分け処理プログラムの手順に従って、図17のフローチャートに示すような分割領域区分け処理(phase5)を行う。
分割領域区分け処理(phase5)では、まず、変数初期化処理を行う。即ち、柱本数管理変数nを0に設定する(ステップS71)。
次に、nの値と柱の本数が一致しているか否かを判定する(ステップS72)。
ステップS72において、nの値と柱の本数が一致していなければ、比較対象となる柱が残っているということなので、柱角番号管理変数初期化、即ち、柱角番号管理変数cを1に設定し(ステップS73)、さらに、柱本数管理変数nをn+1に更新し(ステップS74)、n番目の柱の角番号cの角について、既に境界線が接続されているか否かを判定する(ステップS75)。
即ち、分割領域区分け処理では、コンピュータが、柱本数管理変数レジスタ、柱角番号管理変数レジスタ、柱角座標記録ファイル、柱角番号記録ファイルのような記憶手段を使用して処理を行う。
ステップS75において、n番目の柱の角番号cの角に境界線が接続されていなければ、c=1であるか否かを判定する(ステップS76)。
ステップS76において、c=1でなければ、c=2であるか否かを判定する(ステップS77)。
ステップS77において、c=2でなければ、c=3であるか否かを判定する(ステップS78)。
ステップS78において、c=3でなければ、角番号4から壁、柱、境界線のいずれかに接触するまで負のX軸方向に境界線Nを伸ばす(ステップS79、例えば図5の柱B(1)、柱B(2)、柱B(3)参照)。その後、柱角番号管理変数cをc+1に更新し(ステップS80)、c=5であるか否かを判定する(ステップS81)。
ステップS76において、c=1であれば、角番号1から壁、柱、境界線のいずれかに接触するまで正のY軸方向に境界線Nを伸ばす(ステップS82、例えば図5の柱B(1)、柱B(2)、柱B(3)参照)。その後、ステップS80に進む。
また、ステップS77において、c=2であれば、角番号2から壁、柱、境界線のいずれかに接触するまで正のX軸方向に境界線Nを伸ばす(ステップS83、例えば図5の柱B(2)、柱B(4)参照)。その後、ステップS80に進む。
また、ステップS78において、c=3であれば、角番号3から壁、柱、境界線のいずれかに接触するまで負のY軸方向に境界線Nを伸ばす(ステップS84、例えば図5の柱B(1)、柱B(2)、柱B(4)参照)。その後、ステップS80に進む。
即ち、各角番号から境界線を伸ばす処理が終了した(ステップS82,ステップS83,ステップS84,ステップS79)後は、柱角番号管理変数cをc+1に更新し(ステップS80)、c=5であるか否かを判定する(ステップS81)。
ステップS81において、c=5であれば、ステップS72に戻り、次の比較対象となる柱への処理に移行する。
ステップS81において、c=5でなければ、ステップS75に戻り、ステップS75~ステップS84までの処理を行う。
そして、ステップS72において、nの値と柱の本数が一致していれば、分割領域区分け処理(phase5)を終了し、分割領域認識処理(phase6)に進む。
That is, the computer performs the divided area division process (phase 5) shown in the flowchart of FIG. 17 in accordance with the procedure of the divided area division process program.
In the division area division process (phase 5), first, a variable initialization process is performed, that is, the column number management variable n is set to 0 (step S71).
Next, it is determined whether the value of n matches the number of columns (step S72).
In step S72, if the value of n does not match the number of pillars, it means that there are pillars remaining to be compared, so the pillar corner number control variable is initialized, i.e., the pillar corner number control variable c is set to 1 (step S73), and further, the pillar number control variable n is updated to n+1 (step S74), and it is determined whether or not a boundary line has already been connected for the corner of the nth pillar with corner number c (step S75).
That is, in the division area division process, the computer performs the process using storage means such as a column number management variable register, a column corner number management variable register, a column corner coordinate recording file, and a column corner number recording file.
In step S75, if no boundary line is connected to the corner with corner number c of the n-th pillar, it is determined whether c=1 (step S76).
If c is not 1 in step S76, it is determined whether c is 2 (step S77).
If c is not 2 in step S77, it is determined whether c is 3 (step S78).
In step S78, if c=3 is not satisfied, the boundary line N is extended in the negative X-axis direction from corner number 4 until it contacts either a wall, a pillar, or a boundary line (step S79; see, for example, pillar B(1), pillar B(2), and pillar B(3) in FIG. 5). After that, the pillar corner number control variable c is updated to c+1 (step S80), and it is determined whether c=5 is satisfied (step S81).
In step S76, if c=1, extend boundary line N in the positive Y-axis direction from corner number 1 until it touches a wall, a pillar, or a boundary line (step S82; see, for example, pillars B(1), B(2), and B(3) in FIG. 5). Then, proceed to step S80.
If c=2 in step S77, the boundary line N is extended in the positive X-axis direction from corner number 2 until it touches a wall, a pillar, or a boundary line (step S83; see, for example, pillar B(2) and pillar B(4) in FIG. 5). Then, the process proceeds to step S80.
Also, in step S78, if c=3, the boundary line N is extended in the negative Y-axis direction from corner number 3 until it touches a wall, a pillar, or a boundary line (step S84; see, for example, pillars B(1), B(2), and B(4) in FIG. 5). Then, the process proceeds to step S80.
That is, after the process of extending boundary lines from each corner number is completed (steps S82, S83, S84, S79), the column corner number management variable c is updated to c+1 (step S80), and it is determined whether c=5 (step S81).
If c=5 in step S81, the process returns to step S72 and moves to processing of the next pillar to be compared.
If c=5 is not satisfied in step S81, the process returns to step S75, and the processes from step S75 to step S84 are repeated.
If the value of n matches the number of columns in step S72, the divided area classification process (phase 5) is terminated and the process proceeds to the divided area recognition process (phase 6).

分割領域認識処理(phase6)では、コンピュータが、分割領域認識処理プログラムの手順に従って、移動対象領域Aにおいて線で区切られた複数の各エリア(壁外領域(移動対象領域A外領域)、柱B内領域(障害物領域)、分割領域のすべて)にそれぞれ識別情報としての番号を所定の順番で付与することにより、複数の各分割領域E,E…を認識する。
当該分割領域認識処理(phase6)は、例えば、図8,図23~図25に示すような、塗りつぶし処理にてエリアを抽出していき、抽出したエリア毎に個別のエリア番号を付けた後、各分割領域E,E…を認識する処理である。
In the divided area recognition process (phase 6), the computer recognizes each of the multiple divided areas E, E, etc. by assigning numbers as identification information in a predetermined order to each of the multiple areas separated by lines in the movement target area A (areas outside the wall (areas outside the movement target area A), areas inside the pillar B (obstacle areas), and all of the divided areas) in accordance with the procedures of the divided area recognition process program.
The divided area recognition process (phase 6) is a process in which areas are extracted using a filling process, as shown in Figures 8 and 23 to 25, an individual area number is assigned to each extracted area, and then each divided area E, E, etc. is recognized.

コンピュータは、分割領域認識処理プログラムの手順に従って、図18のフローチャートに示すような分割領域認識処理(phase6)を行う。
分割領域認識処理では、コンピュータが、塗りつぶし判定兼エリア番号記録配列ファイル、X軸方向探索管理変数レジスタ、Y軸方向探索管理変数レジスタ、エリア番号管理変数レジスタ、X軸方向塗りつぶし管理変数レジスタ、Y軸方向塗りつぶし管理変数レジスタ、塗りつぶし管理ファイル、塗りつぶし管理変数一時保留レジスタのような記憶手段を使用し、これら記憶手段に記憶される値を参照しながら処理を行う。
まず、変数初期化を行う。即ち、塗りつぶし判定兼エリア番号記録配列Stack[Xmax][Ymax]を[0,0,0,・・・・]に、X軸方向探索管理変数iを0に、Y軸方向探索管理変数jを0に、エリア番号管理変数aを1に設定する(ステップS91)。つまり、X軸方向探索管理変数レジスタを0に、Y軸方向探索管理変数レジスタを0にして、塗りつぶし判定兼エリア番号記録配列ファイルにおける各XY座標位置の値を全部0に維持するとともに、エリア番号管理変数レジスタを1に設定して、移動対象領域Aの外側の領域を「1」に塗りつぶす処理から行う。
初めに、i>Xmaxであるか否かを判定し(ステップS92)、i>Xmaxでなければ、Stack[i][j]=0であるか否かを判定する(ステップS93)。
ステップS93において、Stack[i][j]=0であれば、Stack[i][j]を-1にする(ステップS94)ことにより、例えば、図8(b),(f)、図23(b),(d)、図24(b),(d),(f)、図25(b)の状態となる。
その後、塗りつぶし管理変数初期化、即ち、X軸方向塗りつぶし管理変数fiをiに、Y軸方向塗りつぶし管理変数fjをjに設定する(ステップS95)。
塗りつぶし管理とは、エリア毎に塗りつぶし処理を行う場合において、既にエリア番号が付けられたエリアの塗りつぶし処理を行わないために、各XY座標位置の値の管理を、塗りつぶし判定兼エリア番号記録配列ファイルとは別の塗りつぶし管理ファイルで行うようにしている。即ち、塗りつぶし判定兼エリア番号記録配列ファイルでの各XY座標位置の値であるStack[i][j]を、塗りつぶし管理ファイルでの各XY座標位置の値であるStack[fi][fj]に置き換えて管理する(例えば、図23(d)参照)ことにより、既にエリア番号が付けられたエリアの各XY座標位置の値の探索を行わないようにして、塗りつぶし処理の処理スピードを速くできるようにしている。
次に、fi>Xmaxであるか否かを判定する(ステップS97)。
ステップS97において、fi>Xmaxでなければ、Stack[fi][fj]=-1であるか否かを判定する(ステップS98)。
ステップS98において、Stack[fi][fj]=-1であれば(ステップS98でYES)、ステップS98Aに進んで、塗りつぶし管理変数一時保留レジスタにおいて、miをfiに設定し、mjをfjに設定してから、Stack[fi][fj]をaに設定する(ステップS99)。
そして、座標(fi+1,fj)が存在し、かつ座標(fi,fj)との間に壁、柱、境界線が通っておらず、かつStack[fi+1][fj]が0であるか否かを判定する(ステップS100)。つまり、a(最初は「1」)に設定された座標[fi][fj]と当該座標[fi][fj]のX軸方向+側の座標(fi+1,fj)との間に壁、柱、境界線が無く、かつ、座標(fi+1,fj)が0であれば(ステップS100でYesの場合)、Stack[fi+1][fj]を-1に設定する(ステップS104)。その後、ステップS101に進む。
ステップS100でNoの場合、即ち、(fi,fj)と(fi+1,fj)との間に壁、柱、境界線が通っていた場合、ステップS101に進んで、座標(fi-1,fj)が存在し、かつ座標(fi,fj)との間に壁、柱、境界線が通っておらず、かつStack[fi-1][fj]が0であるか否かを判定する。つまり、a(最初は「1」)に設定された座標[fi][fj]と当該座標[fi][fj]のX軸方向-側の座標(fi-1,fj)との間に壁、柱、境界線が無く、かつ、座標(fi-1,fj)が0であれば(ステップS101でYesの場合)、Stack[fi-1][fj]を-1に設定する(ステップS105)。その後、ステップS105Aに進んで、miをfi-1に設定(ただし、fi=0のときを除く)した後、ステップS102に進む。
ステップS101でNoの場合、即ち、(fi,fj)と(fi-1,fj)との間に壁、柱、境界線が通っていた場合、ステップS102に進んで、座標(fi,fj+1)が存在し、かつ座標(fi,fj)との間に壁、柱、境界線が通っておらず、かつStack[fi][fj+1]が0であるか否かを判定する。つまり、a(最初は「1」)に設定された座標[fi][fj]と当該座標[fi][fj]のY軸方向+側の座標(fi,fj+1)との間に壁、柱、境界線が無く、かつ、座標(fi,fj+1)が0であれば(ステップS102でYesの場合)、Stack[fi][fj+1]を-1に設定する(ステップS106)。その後、ステップS103に進む。
ステップS102でNoの場合、即ち、(fi,fj)と(fi,fj+1)との間に壁、柱、境界線が通っていた場合、ステップS103に進んで、座標(fi,fj-1)が存在し、かつ座標(fi,fj)との間に壁、柱、境界線が通っておらず、かつStack[fi][fj-1]が0であるか否かを判定する。つまり、a(最初は「1」)に設定された座標[fi][fj]と当該座標[fi][fj]のY軸方向-側の座標(fi,fj-1)との間に壁、柱、境界線が無く、かつ、座標(fi,fj-1)が0であれば(ステップS103でYesの場合)、Stack[fi][fj-1]を-1に設定する(ステップS107)。その後、ステップS107Aに進んで、mjをfj-1に設定(ただし、fi=0のときを除く)した後、ステップS103Aに進んで、fiをmiに、fjをmjに設定する。
ステップS103でNoの場合、即ち、(fi,fj)と(fi,fj-1)との間に壁、柱、境界線が通っていた場合も、ステップS103Aに進んで、fiをmiに、fjをmjに設定する。
ステップS103Aの処理後、ステップS97に戻る。
また、ステップS98において、Stack[fi][fj]=-1でなければ、fiをfi+1に設定して(ステップS108)、ステップS97に戻る。
ステップS97において、fi>Xmaxであれば、ステップS109に進んで、fiを0に、fjをfj+1に設定した後、fj>Ymaxであるか否かを判定する(ステップS110)。
ステップS110において、fj>Ymaxでなければ、ステップS98に進み、fj>Ymaxであれば、ステップS111に進む。
以上により、例えば、図8(c)~(f)、図23(c),(d)の状態となる。
ステップS111においては、a=1であるか否かを判定し、a=1でなければ、ステップS112に進んで、a番目の区画の4方向が柱(座標が解っている)と接しており、かつ接触している柱の番号nが全て同じであるか否かを判定する。
ステップS111においては、a=1であれば、a=1番目の区画を壁外であると判定し(ステップS115)、その後、ステップS112に進む。
ステップS112でNoであれば、aをa+1に設定し(ステップS113)、iをi+1に設定して(ステップS114)、ステップS92に戻る。
ステップS112でYesの場合、a番目の区画は、柱内であると判定し(ステップS116)、その後、ステップS113に進む。
即ち、領域の境界線の四方(図6の上下左右)が柱Bの境界線と一致し、柱Bの境界線が同じ番号の柱Bの境界線であるという柱内領域条件を満たすとコンピュータが判定した場合は、当該領域が柱内領域であると判定する。つまり、a=1ではなく、かつ、柱内領域条件を満たさない領域が、分割領域であると認識される。
換言すれば、ステップS110において、fj>Ymaxであると判定された場合、1つのエリアの塗りつぶし処理が終了し、ステップS111,112でNoであれば、その塗りつぶした領域が分割領域であり、当該分割領域に番号aが付与されて認識されることになる。
また、ステップS93において、Stack[i][j]=0でなければ、iをi+1に設定して(ステップS114)、ステップS92に戻る。
また、ステップS92において、i>Xmaxであれば、iを0、jをj+1に設定し(ステップS117)、その後、j>Ymaxであるか否かを判定し(ステップS118)、j>Ymaxでなければ、ステップS93に戻り、j>Ymaxであれば、分割領域認識処理(phase6)を終了する。
以上により、移動対象領域Aの分割処理(phase1~phase6)が終了し、続いて、移動ルートの作成処理(phase7~phase11)に進む。
The computer performs the divided area recognition process (phase 6) as shown in the flowchart of FIG. 18 in accordance with the procedure of the divided area recognition process program.
In the divided area recognition process, the computer uses storage means such as a fill determination and area number recording array file, an X-axis search management variable register, a Y-axis search management variable register, an area number management variable register, an X-axis fill management variable register, a Y-axis fill management variable register, a fill management file, and a fill management variable temporary holding register, and performs the process while referring to the values stored in these storage means.
First, variables are initialized. That is, the fill judgment and area number record array Stack[Xmax][Ymax] is set to [0,0,0,...], the X-axis direction search management variable i is set to 0, the Y-axis direction search management variable j is set to 0, and the area number management variable a is set to 1 (step S91). That is, the X-axis direction search management variable register and the Y-axis direction search management variable register are set to 0, and all values of the X and Y coordinate positions in the fill judgment and area number record array file are maintained at 0, and the area number management variable register is set to 1, so that the area outside the movement target area A is filled with "1".
First, it is determined whether i>Xmax holds (step S92), and if i>Xmax does not hold, it is determined whether Stack[i][j]=0 holds (step S93).
In step S93, if Stack[i][j]=0, Stack[i][j] is set to -1 (step S94), resulting in the states shown in, for example, Figures 8(b), (f), 23(b), (d), 24(b), (d), (f), and 25(b).
Thereafter, the filling control variables are initialized, that is, the X-axis direction filling control variable fi is set to i and the Y-axis direction filling control variable fj is set to j (step S95).
Fill management refers to the management of the values of each X and Y coordinate position in a fill management file separate from the fill determination and area number record array file, so that areas that have already been assigned area numbers are not filled when the fill process is performed for each area. That is, the values of each X and Y coordinate position in the fill determination and area number record array file, Stack[i][j], are replaced with the values of each X and Y coordinate position in the fill management file, Stack[fi][fj] (see, for example, Figure 23(d)). This prevents the search for the values of each X and Y coordinate position of areas that have already been assigned area numbers, thereby speeding up the fill process.
Next, it is determined whether fi>Xmax (step S97).
If fi>Xmax is not satisfied in step S97, it is determined whether Stack[fi][fj]=-1 is satisfied (step S98).
In step S98, if Stack[fi][fj] = -1 (YES in step S98), proceed to step S98A, set mi to fi and mj to fj in the fill management variable temporary holding register, and then set Stack[fi][fj] to a (step S99).
Then, it is determined whether the coordinate (fi+1, fj) exists, there is no wall, pillar, or boundary line between the coordinate (fi, fj) and the point, and Stack[fi+1][fj] is 0 (step S100). In other words, if there is no wall, pillar, or boundary line between the coordinate [fi][fj] set to a (initially "1") and the coordinate (fi+1, fj) on the positive side of the X-axis direction of the coordinate [fi][fj], and the coordinate (fi+1, fj) is 0 (Yes in step S100), Stack[fi+1][fj] is set to -1 (step S104). Then, proceed to step S101.
If the answer is No in step S100, that is, if a wall, pillar, or boundary line passes between (fi, fj) and (fi+1, fj), proceed to step S101 to determine whether or not the coordinate (fi-1, fj) exists, no wall, pillar, or boundary line passes between the coordinate (fi, fj) and the coordinate (fi, fj), and Stack[fi-1][fj] is 0. In other words, if there is no wall, pillar, or boundary line between the coordinate [fi][fj] set to a (initially "1") and the coordinate (fi-1, fj) on the negative side of the X-axis direction of the coordinate [fi][fj], and the coordinate (fi-1, fj) is 0 (if the answer is Yes in step S101), then Stack[fi-1][fj] is set to -1 (step S105). Thereafter, the process proceeds to step S105A, where mi is set to fi-1 (except when fi=0), and then the process proceeds to step S102.
If the answer is No in step S101, that is, if a wall, pillar, or boundary line passes between (fi, fj) and (fi-1, fj), the process proceeds to step S102, where it is determined whether the coordinate (fi, fj+1) exists, there is no wall, pillar, or boundary line between the coordinate (fi, fj) and the coordinate (fi, fj), and Stack[fi][fj+1] is 0. In other words, if there is no wall, pillar, or boundary line between the coordinate [fi][fj] set to a (initially "1") and the coordinate (fi, fj+1) on the positive side of the Y-axis direction of the coordinate [fi][fj], and the coordinate (fi, fj+1) is 0 (if the answer is Yes in step S102), Stack[fi][fj+1] is set to -1 (step S106). Then, the process proceeds to step S103.
If the answer is No in step S102, that is, if a wall, pillar, or boundary line passes between (fi, fj) and (fi, fj+1), proceed to step S103 to determine whether or not the coordinate (fi, fj-1) exists, no wall, pillar, or boundary line passes between the coordinate (fi, fj) and the coordinate (fi, fj), and Stack[fi][fj-1] is 0. In other words, if there is no wall, pillar, or boundary line between the coordinate [fi][fj] set to a (initially "1") and the coordinate (fi, fj-1) on the negative side of the Y-axis direction of the coordinate [fi][fj], and the coordinate (fi, fj-1) is 0 (if the answer is Yes in step S103), Stack[fi][fj-1] is set to -1 (step S107). Thereafter, the process proceeds to step S107A, where mj is set to fj-1 (except when fi=0), and then the process proceeds to step S103A, where fi is set to mi and fj is set to mj.
If the answer to step S103 is No, that is, if a wall, pillar, or boundary line passes between (fi, fj) and (fi, fj-1), the process also proceeds to step S103A, where fi is set to mi and fj is set to mj.
After the processing of step S103A, the process returns to step S97.
If Stack[fi][fj]=-1 is not satisfied in step S98, fi is set to fi+1 (step S108), and the process returns to step S97.
If fi>Xmax in step S97, the process proceeds to step S109, where fi is set to 0 and fj is set to fj+1, and it is then determined whether fj>Ymax (step S110).
In step S110, if fj>Ymax is not satisfied, the process proceeds to step S98, and if fj>Ymax is satisfied, the process proceeds to step S111.
As a result of the above, the states shown in FIGS. 8(c) to 8(f) and 23(c) and 23(d) are obtained, for example.
In step S111, it is determined whether a = 1, and if a = 1 is not true, the process proceeds to step S112 to determine whether the four directions of the a-th section are in contact with pillars (whose coordinates are known) and whether the numbers n of the pillars in contact are all the same.
In step S111, if a=1, it is determined that the a=1st section is outside the wall (step S115), and then the process proceeds to step S112.
If the answer is No in step S112, a is set to a+1 (step S113), i is set to i+1 (step S114), and the process returns to step S92.
If the answer is Yes in step S112, it is determined that the a-th section is inside a pillar (step S116), and then the process proceeds to step S113.
That is, if the computer determines that the four sides of the boundary line of an area (top, bottom, left, and right in FIG. 6) match the boundary lines of column B and that the boundary lines of column B are the boundary lines of column B with the same number, the area is determined to be an area inside a column. In other words, an area where a=1 is not satisfied and does not satisfy the condition for an area inside a column is recognized as a divided area.
In other words, if it is determined in step S110 that fj > Ymax, the filling process for one area is completed, and if the answer is No in steps S111 and S112, the filled area is a divided area, and the divided area is assigned the number a and recognized.
If Stack[i][j]=0 is not satisfied in step S93, i is set to i+1 (step S114), and the process returns to step S92.
Also, in step S92, if i > Xmax, i is set to 0 and j is set to j + 1 (step S117), and then it is determined whether j > Ymax (step S118). If j > Ymax is not true, the process returns to step S93; if j > Ymax is true, the divided area recognition process (phase 6) is terminated.
This completes the process of dividing the movement target area A (phases 1 to 6), and the process then moves on to the process of creating a movement route (phases 7 to 11).

分割領域認識処理(phase6)を、上述したステップSと図8,図26~図28とを参照しながら説明する。
尚、図8では、2つのエリアを塗りつぶし処理にて抽出し、抽出したエリア毎に個別の番号を付けた例を示している。
図26~図28では、複数のエリアを塗りつぶし処理にて抽出し、抽出したエリア毎に個別の番号を昇順に付けた例を示している。
まず、ステップS91では、図8(a),図26(a)に示すように、塗りつぶし判定兼エリア番号記録配列ファイル、即ち、移動対象領域A全体と移動対象領域Aの周辺を含む領域全体の各XY座標位置を示すXY座標マトリクスStack[Xmax][Ymax]の値を全部0にする。
そして、ステップS92,93,94,95を経て、図8(b),図26(b)に示す状態となる。
そして、ステップS97~S107Aを経て、図8(c)~(f),図26(c)に示す処理が行われる。
尚、ステップS105A、ステップS107Aは、図8(e)(f)に示すような凹部がある場合に座標位置を戻して検索する処理である。つまり、この場合、X方向における-方向やY方向における-方向に座標を戻して処理を行うために、当該戻した座標位置を、塗りつぶし管理変数一時保留レジスタに変数mi,mjとして一時的に保留して処理を行うようにしている。
そして、任意のエリアの座標すべてに番号aが付けられた後(ステップS110でYESの場合)、そのエリアが、壁外領域(移動対象領域A外領域)か、柱内領域が、分割領域かの判定が行われ(ステップS111,112)、その後、次のエリアの番号が更新されて(ステップS113)、次のエリアの塗りつぶし処理に移行していく(図8(f),(g)、図26(d)、図27(a)~(f)、図28(a)~(d)参照)。
ステップS113でエリア毎に昇順で番号が付けられる。尚、図26~図28においては、エリアaに番号1が付与され、エリアbに番号2が付与され、エリアcに番号3が付与され、エリアdに番号4が付与され、エリアeに番号5が付与され、エリアfに番号6が付与された例を示している。つまり、各エリア毎に昇順で番号が付けられた例を示している。
The divided area recognition process (phase 6) will be described with reference to the above-mentioned step S and FIGS.
In addition, FIG. 8 shows an example in which two areas are extracted by painting and each extracted area is assigned an individual number.
26 to 28 show examples in which a plurality of areas are extracted by painting, and each extracted area is assigned an individual number in ascending order.
First, in step S91, as shown in Figures 8(a) and 26(a), the values of the fill-in determination and area number recording array file, i.e., the XY coordinate matrix Stack[Xmax][Ymax] indicating each XY coordinate position of the entire area to be moved A and the entire area including the periphery of the area to be moved A, are all set to 0.
Then, through steps S92, S93, S94, and S95, the state shown in FIG. 8(b) and FIG. 26(b) is reached.
Then, through steps S97 to S107A, the processes shown in FIGS. 8(c) to 8(f) and FIG. 26(c) are carried out.
8(e) and 8(f), steps S105A and S107A are processes for returning the coordinate position and searching when there is a recess as shown in Fig. 8(e) and (f). That is, in this case, in order to perform processing by returning the coordinate in the negative X direction or the negative Y direction, the returned coordinate position is temporarily stored as variables mi and mj in the fill management variable temporary storage register, and processing is performed.
Then, after the number a is assigned to all coordinates of any area (if YES in step S110), it is determined whether the area is an area outside the wall (area outside the area A to be moved) or an area inside the pillar, which is a divided area (steps S111, S112), and then the number of the next area is updated (step S113), and the process proceeds to fill in the next area (see Figures 8(f), (g), Figure 26(d), Figures 27(a) to (f), Figures 28(a) to (d)).
In step S113, numbers are assigned to each area in ascending order. Note that Figures 26 to 28 show an example in which area a is assigned number 1, area b is assigned number 2, area c is assigned number 3, area d is assigned number 4, area e is assigned number 5, and area f is assigned number 6. In other words, these show an example in which numbers are assigned to each area in ascending order.

次に、移動ルートの作成処理(phase7~phase11)においては、まず、等間隔直線経路作成処理(phase7)が行われる。
等間隔直線経路作成処理(phase7)では、コンピュータが、等間隔直線経路作成処理プログラムの手順に従って、移動対象領域A内に、Y軸方向に沿った間隔が等間隔の複数の横直線S,S…を設定して、後述する分割領域内ジグザグ移動予定ルートの元となる等間隔直線経路を作成する。図9では、移動対象領域A内に、Y軸方向に沿った間隔が等間隔の複数の横直線S,S…を設定した例を示している。
即ち、等間隔直線経路作成処理(phase7)を実行する手段は、移動対象領域AをY軸に沿って等間隔に区切るX軸と平行な複数の横直線S,S…を作成する横直線作成手段として機能する。
Next, in the process of creating a travel route (phases 7 to 11), first, the process of creating an equally spaced straight line route (phase 7) is performed.
In the equally spaced straight line path creation process (phase 7), the computer sets a plurality of horizontal straight lines S, S... at equal intervals along the Y-axis direction within the movement target area A in accordance with the procedures of the equally spaced straight line path creation process program, and creates an equally spaced straight line path that will serve as the basis for a planned zigzag movement route within the divided area, which will be described later. Figure 9 shows an example in which a plurality of horizontal straight lines S, S... at equal intervals along the Y-axis direction are set within the movement target area A.
That is, the means for executing the equally spaced straight line path creation process (phase 7) functions as a horizontal line creation means for creating multiple horizontal lines S, S... parallel to the X axis that divide the movement target area A at equal intervals along the Y axis.

次に、交点座標抽出処理(phase8)では、コンピュータが、交点座標抽出処理プログラムの手順に従って、図10に示すように、各エリア(壁外領域(移動対象領域A外領域)、柱内領域、分割領域のすべて)を区画する境界線C,M,N,Q,柱Bの境界線(障害物領域境界線)と複数の直線S,S…との交点座標G,G…を抽出する。 Next, in the intersection coordinate extraction process (phase 8), the computer follows the steps of the intersection coordinate extraction process program to extract the intersection coordinates G, G... of the boundary lines C, M, N, Q, and boundary line of pillar B (obstacle area boundary line) that divide each area (outside the wall area (area outside the target area A), inside the pillar area, and all divided areas) with multiple straight lines S, S..., as shown in Figure 10.

即ち、コンピュータは、等間隔直線経路作成処理プログラム及び交点座標抽出処理プログラムの手順に従って、図19のフローチャートに示すような等間隔直線経路作成処理(phase7)及び交点座標抽出処理(phase8)を行う。
まず、境界線本数管理変数初期化、即ち、境界線本数管理変数mを0に設定する(ステップS121)。
次に、探索範囲の最も小さなy座標の値(外壁の最も下端のy座標)を特定し、その値をyに設定する(ステップS122)。
そして、X軸に平行で切片がyである直線Sを定義する(ステップS123)。
次に、m番目の境界線(壁、柱の外周を含む)は直線Sと交点を持つか否かを判定する(ステップS124)。
ステップS124において、m番目の境界線が直線Sとの交点を持つと判定された場合、その交点の座標を交点座標記録ファイルに記録し(ステップS125)、その後、mをm+1とし(ステップS126)、mの値が境界線の総本数と一致したか否かを判定する(ステップS127)。
ステップS124において、m番目の境界線が直線Sとの交点を持たないと判定された場合、ステップS126に進む。
ステップS127において、mの値が境界線の総本数と一致しなければ、一致するまで、ステップS124~ステップS126の処理を繰り返す。
ステップS127において、mの値が境界線の総本数と一致すれば、yをy+レーン間距離に設定し(ステップS128)、yの値が探索範囲の上限を超えたか否かを判定する(ステップS129)。
ステップS129において、yの値が探索範囲の上限を超えていなければ、超えるまで、ステップS123~ステップS128の処理を繰り返す、
ステップS129において、yの値が探索範囲の上限を超えた場合には、交点抽出処理を終了して、エリア毎交点座標抽出処理(phase9)に移行する。
即ち、等間隔直線経路作成処理及び交点座標抽出処理では、コンピュータが、境界線本数管理変数レジスタ、各直線Sのy座標記録ファイル、交点座標記録ファイルのような記憶手段を使用しながら処理を行う。
That is, the computer performs the equally spaced straight line path creation process (phase 7) and the intersection coordinate extraction process (phase 8) as shown in the flowchart of FIG. 19 in accordance with the procedures of the equally spaced straight line path creation process program and the intersection coordinate extraction process program.
First, the boundary line number control variable m is initialized, that is, the boundary line number control variable m is set to 0 (step S121).
Next, the smallest y coordinate value in the search range (the y coordinate of the lowest end of the exterior wall) is identified, and this value is set as y (step S122).
Then, a straight line S that is parallel to the X axis and has an intercept of y is defined (step S123).
Next, it is determined whether the m-th boundary line (including the peripheries of the walls and pillars) has an intersection with the line S (step S124).
If it is determined in step S124 that the mth boundary line has an intersection with the line S, the coordinates of that intersection are recorded in the intersection coordinate recording file (step S125), and then m is set to m+1 (step S126), and it is determined whether the value of m matches the total number of boundary lines (step S127).
If it is determined in step S124 that the m-th boundary line does not have an intersection with the line S, the process proceeds to step S126.
In step S127, if the value of m does not match the total number of boundary lines, the processes of steps S124 to S126 are repeated until the value of m matches the total number of boundary lines.
In step S127, if the value of m matches the total number of boundary lines, y is set to y+the lane distance (step S128), and it is determined whether the value of y exceeds the upper limit of the search range (step S129).
In step S129, if the value of y does not exceed the upper limit of the search range, the processes of steps S123 to S128 are repeated until it does.
In step S129, if the value of y exceeds the upper limit of the search range, the intersection extraction process is terminated and the process proceeds to the intersection coordinate extraction process for each area (phase 9).
That is, in the equally spaced straight line path creation process and intersection coordinate extraction process, the computer performs the process using storage means such as a boundary line number management variable register, a y coordinate recording file for each straight line S, and an intersection coordinate recording file.

尚、ステップS122における、y←探索範囲…の「探索範囲」とは、Cで囲まれた移動対象領域Aのことである。
また、ステップS123での「直線Sを定義」とは、例えば図9に示した直線Sのことである。従って、図19の移動予定ルート候補線作成処理では、図9の下から上に向けて順番に直線Sを1本ずつ引いていって、直線Sを引く毎に、当該直線Sと各境界線との交点座標を記録するという処理を繰り返している。尚、移動対象領域境界線Cの下端位置及び上端位置の水平線上にも直線Sが設定される。
また、ステップS128での「レーン間距離」とは、上下方向(Y軸方向)に隣り合う直線S,S間の距離のことであり、この「レーン間距離」の値(長さ)は予め適当な長さ(例えば、10cm)に決めておく。
従って、分割領域内ジグザグ移動予定ルートの元となる各直線S,S…とすべての境界線との交点の座標がすべて交点座標記録ファイルに記録される。
この場合、例えば、交点座標記録ファイルには、XY座標が小さい順に交点に番号が付けられて、各交点のX座標及びY座標が記録される(図12の交点XY座標を指した○数字参照)。
In step S122, the "search range" in y←search range . . . refers to the movement target area A surrounded by C.
Furthermore, "define straight line S" in step S123 refers to, for example, the straight line S shown in Fig. 9. Therefore, in the process of creating a candidate planned movement route in Fig. 19, straight lines S are drawn one by one in order from bottom to top in Fig. 9, and each time a straight line S is drawn, the process of recording the coordinates of the intersections between the straight line S and each boundary line is repeated. Note that straight lines S are also set on the horizontal lines at the bottom and top end positions of the movement target area boundary line C.
Furthermore, the "lane distance" in step S128 refers to the distance between adjacent straight lines S, S in the vertical direction (Y-axis direction), and the value (length) of this "lane distance" is determined in advance to an appropriate length (for example, 10 cm).
Therefore, the coordinates of the intersections of each of the lines S, S . . . that form the basis of the planned zigzag movement route within the divided area with all of the boundary lines are all recorded in the intersection coordinate recording file.
In this case, for example, the intersection coordinate recording file records the X and Y coordinates of each intersection, with the intersections numbered in ascending order of X and Y coordinates (see the circled numbers indicating the X and Y coordinates of the intersections in FIG. 12).

エリア毎交点座標抽出処理(phase9)では、コンピュータが、エリア毎交点座標抽出処理プログラムの手順に従って、各エリア毎に、各エリアを区画する境界線C,M,N,Q,柱Bの境界線(障害物領域境界線)上の交点座標G,G…を抽出する。
図11では、エリア番号6が付与された分割領域Eを区画する境界線C,N上の交点座標G,G…を抽出した例を示している。
In the area-by-area intersection coordinate extraction process (phase 9), the computer extracts, for each area, the intersection coordinates G, G... on the boundary lines C, M, N, Q that divide each area and the boundary line of pillar B (obstacle area boundary line) in accordance with the procedures of the area-by-area intersection coordinate extraction process program.
FIG. 11 shows an example in which coordinates G, G . . . of intersections on boundary lines C, N that define a divided area E assigned area number 6 are extracted.

コンピュータは、エリア毎交点座標抽出処理プログラムの手順に従って、図20のフローチャートに示すようなエリア毎交点座標抽出処理(phase9)を行う。
まず、変数初期化を行う。即ち、交点数管理変数kを0、エリア番号管理変数aを1に設定する(ステップS131)。
次に、kの値が、交点座標抽出処理において交点座標記録ファイルに記録された交点数を超えたか否かを判定する(ステップS132)。
ステップS132において、kの値が、交点座標記録ファイルに記録された交点数を超えていないと判定された場合には、エリアaのaの値がエリア数を超えたか否かを判定する(ステップS133)。
ステップS133において、aの値がエリア数を超えていない場合には、k番目の交点がエリアaに隣接しているか否かを判定する(ステップS134)。
ステップS134において、k番目の交点がエリアaに隣接していると判定された場合には、a番目のエリア用の交点座標記録ファイルにすでにk番目の交点と全く同じ座標が代入されているか否かを判定する(ステップS135)。
ステップS134において、k番目の交点がエリアaに隣接していないと判定された場合には、kをk+1に設定し(ステップS137)、その後、ステップS132に戻る。
ステップS135において、a番目のエリア用の交点座標記録ファイルにすでにk番目の交点と全く同じ座標が記録されていると判定された場合、ステップS137に進む。
ステップS135において、a番目のエリア用の交点座標記録ファイルにk番目の交点と全く同じ座標が記録されていないと判定された場合、a番目のエリア用の交点座標記録ファイルにk番目の交点座標を記録し(ステップS136)、その後、ステップS137に進む。
ステップS132において、kの値が交点数を超えたと判定された場合には、kを0に、aをa+1に設定し(ステップS138)し、その後、ステップS133に進む。
ステップS133において、aの値がエリア数を超えたと判定された場合には、エリア毎交点座標抽出処理(phase9)を終了して、分割領域内ジグザグ移動予定ルート作成処理(phase10)に移行する。
即ち、エリア毎交点座標抽出処理では、コンピュータが、交点数管理変数レジスタ、エリア番号管理変数レジスタ、交点座標記録ファイル、エリア毎の交点座標記録ファイルのような記憶手段を使用しながら処理を行う。
The computer performs the area-by-area intersection coordinate extraction process (phase 9) as shown in the flowchart of FIG. 20 in accordance with the procedure of the area-by-area intersection coordinate extraction process program.
First, variables are initialized: the intersection number management variable k is set to 0, and the area number management variable a is set to 1 (step S131).
Next, it is determined whether the value of k exceeds the number of intersections recorded in the intersection coordinate recording file in the intersection coordinate extraction process (step S132).
If it is determined in step S132 that the value of k does not exceed the number of intersections recorded in the intersection coordinate recording file, it is determined whether the value of a of area a exceeds the number of areas (step S133).
In step S133, if the value of a does not exceed the number of areas, it is determined whether the k-th intersection is adjacent to area a (step S134).
If it is determined in step S134 that the kth intersection is adjacent to area a, it is determined whether the exact same coordinates as those of the kth intersection have already been assigned to the intersection coordinate recording file for area a (step S135).
If it is determined in step S134 that the k-th intersection is not adjacent to area a, k is set to k+1 (step S137), and then the process returns to step S132.
If it is determined in step S135 that the coordinates identical to those of the kth intersection have already been recorded in the intersection coordinate recording file for the ath area, the process proceeds to step S137.
If it is determined in step S135 that the coordinates identical to the kth intersection are not recorded in the intersection coordinate recording file for the ath area, the coordinates of the kth intersection are recorded in the intersection coordinate recording file for the ath area (step S136), and then the process proceeds to step S137.
If it is determined in step S132 that the value of k exceeds the number of intersections, k is set to 0 and a is set to a+1 (step S138), and then the process proceeds to step S133.
If it is determined in step S133 that the value of a exceeds the number of areas, the process of extracting intersection coordinates for each area (phase 9) is terminated, and the process proceeds to the process of creating a planned zigzag movement route within the divided area (phase 10).
That is, in the area-by-area intersection coordinate extraction process, the computer performs the process using storage means such as an intersection number management variable register, an area number management variable register, an intersection coordinate recording file, and an intersection coordinate recording file for each area.

エリア毎交点座標抽出処理(phase9)では、例えばXY座標値の小さい交点から順番に1つずつどのエリアに隣接しているのかを判定していくことにより、エリア毎に交点の番号と交点のXY座標とがエリア毎の交点座標記録ファイルに記録される。つまり、エリア毎に交点座標が抽出されて、エリア毎の交点座標記録ファイルに記録される(図29(a)参照)。
まず初めに、ステップS131において、交点数管理変数kが0、エリア番号管理変数aが1に設定されるので、エリアa=1、即ち、移動対象領域Aを囲む境界線Cと交わる交点を所定の順番(例えば、XY座標が最小である交点をk=1とし、X座標、Y座標の小さい交点から順番にkの値を+1していく。)で記録していく。そして、各エリア毎に、交点座標抽出処理において交点座標記録ファイルに記録された交点の座標が各エリアに隣接しているか否かを調べていく(ステップS132~S134)ことにより、各エリア毎の交点座標記録ファイルを作成する(ステップS136)。
つまり、エリア毎交点座標抽出処理(phase9)では、各エリアと各交点との対応付け(ステップS136)を行っているものである。
即ち、各エリアを区画する線上と直線Sとの交点座標を、エリア毎の交点座標として抽出して記録している。
以上のように、交点座標抽出処理(phase8)、及び、エリア毎交点座標抽出処理(phase9)を実行する手段は、各エリアを区画する境界線C,M,N,Q,柱Bの境界線(移動対象領域境界線、境界線、障害物領域境界線)と各横直線S,S…との交点を認識する第1の交点認識手段として機能する。即ち、分割領域境界線と横直線との交点を認識する第1の交点認識手段として機能する。
In the area-by-area intersection coordinate extraction process (phase 9), the intersection numbers and X and Y coordinates of each area are recorded in an area-by-area intersection coordinate recording file by determining which area each intersection is adjacent to, for example, starting with the intersection with the smallest X and Y coordinate values. In other words, the intersection coordinates are extracted for each area and recorded in the area-by-area intersection coordinate recording file (see FIG. 29(a)).
First, in step S131, the intersection number management variable k is set to 0 and the area number management variable a is set to 1, so area a=1, i.e., the intersections that intersect with the boundary line C surrounding the movement target area A, are recorded in a predetermined order (for example, the intersection with the smallest X and Y coordinates is set to k=1, and the value of k is increased by 1 for intersections with the smallest X and Y coordinates). Then, for each area, it is checked whether the coordinates of the intersections recorded in the intersection coordinate recording file in the intersection coordinate extraction process are adjacent to the area (steps S132 to S134), and an intersection coordinate recording file for each area is created (step S136).
That is, in the process of extracting intersection coordinates for each area (phase 9), each area is associated with each intersection (step S136).
That is, the coordinates of the intersection between the line dividing each area and the straight line S are extracted and recorded as the coordinates of the intersection for each area.
As described above, the means for executing the intersection coordinate extraction process (phase 8) and the area-specific intersection coordinate extraction process (phase 9) functions as a first intersection recognition means for recognizing the intersections between the boundaries C, M, N, Q and the boundaries of the pillar B that divide each area (movement target area boundaries, boundaries, obstacle area boundaries) and each horizontal straight line S, S.... In other words, it functions as a first intersection recognition means for recognizing the intersections between the divided area boundaries and horizontal straight lines.

分割領域内ジグザグ移動予定ルート作成処理(phase10)では、コンピュータが、分割領域内ジグザグ移動予定ルート作成処理プログラムの手順に従って、図12に示すように、各分割領域E,E…毎に、X軸に沿って直線S上で隣り合う座標G,G同士を繋げるとともに、Y軸に沿って隣り合う直線S,S間の交点座標G,G同士を繋げることによって、各分割領域E,E…内でのジグザグな分割領域内ジグザグ移動予定ルートHを作成する。
ジグザグな分割領域内ジグザグ移動予定ルートHとは、X軸方向の一方方向に進んだ後X軸方向の一方方向とは反対の他方方向に折り返す経路が繰り返されるルートのことである。尚、等間隔直線経路作成処理において、X軸方向に沿った間隔が等間隔の複数の縦直線が設定される場合には、Y軸方向の一方方向に進んだ後Y軸方向の一方方向とは反対の他方方向に折り返す経路が繰り返される分割領域内ジグザグ移動予定ルートが作成されることになる。
また、エリア毎の交点座標記録ファイルに記録されている交点は、交点の番号が飛び飛びの状態で記録される。例えば、図12において、XY座標値の小さい交点から順番に交点の番号が付けられて1つずつどのエリアに隣接しているのかを判定していく場合、交点の番号は、図12の○内の番号のように付与される。例えば、図12の番号2が付与されたエリア(分割領域)の交点座標記録ファイルには、図26(a)に示すように、交点の番号が1,2,6,7,11,12,16,17,18の交点が順番に記録される。しかしながら、例えば図26(a)の記録順に交点を辿った場合、のこぎり状のルートとなってしまう。そこで、分割領域内ジグザグ移動予定ルート作成処理(phase10)では、図26(b)に示すように、エリア毎のソート後交点座標記録ファイルに、各交点のXY座標がジグザグ経路を形成するルートの始点から終点の位置まで順番に並ぶように、各交点の記録順を並び変えるようにしている。例えば、図29(b)に示すように、図12の番号2が付与されたエリア(分割領域)のソート後交点座標記録ファイルには、各交点は、交点の番号16,18,12,11,6,7,2,1の順番で記録される。従って、分割領域においては、エリア(分割領域)毎のソート後交点座標記録ファイルに記録された順番で交点座標を辿る分割領域内ジグザグ移動予定ルートが作成されることになる。
In the process for creating a planned zigzag movement route within a divided area (phase 10), the computer follows the steps of the process for creating a planned zigzag movement route within a divided area program, and creates a zigzag planned zigzag movement route H within each divided area E, E, etc. by connecting adjacent coordinates G, G on a straight line S along the X axis for each divided area E, E, etc., as shown in Figure 12, and connecting intersection coordinates G, G between adjacent straight lines S, S along the Y axis.
The zigzag planned movement route H within the divided area is a route that repeatedly moves in one direction along the X-axis and then turns back in the opposite direction to the one direction along the X-axis. Note that, when a plurality of vertical straight lines that are equally spaced along the X-axis are set in the equally spaced straight line route creation process, a planned zigzag movement route within the divided area is created that repeatedly moves in one direction along the Y-axis and then turns back in the opposite direction to the one direction along the Y-axis.
Furthermore, the intersections recorded in the intersection coordinate recording file for each area are recorded with their intersection numbers recorded in a discontinuous manner. For example, in FIG. 12 , when the intersections are numbered in order from the intersection with the smallest XY coordinate value and the area to which each intersection is adjacent is determined one by one, the intersection numbers are assigned as shown in the circles in FIG. 12 . For example, in the intersection coordinate recording file for the area (divided region) numbered 2 in FIG. 12 , the intersections numbered 1, 2, 6, 7, 11, 12, 16, 17, and 18 are recorded in order, as shown in FIG. 26( a). However, if the intersections were traced in the order in which they were recorded in FIG. 26( a), a sawtooth-shaped route would result. Therefore, in the process for creating a zigzag movement planned route within a divided area (phase 10), the order in which the intersections are recorded is rearranged so that the X and Y coordinates of each intersection are arranged in order from the start point to the end point of the route forming the zigzag path in the sorted intersection coordinate recording file for each area, as shown in Figure 26(b). For example, as shown in Figure 29(b), in the sorted intersection coordinate recording file for the area (divided area) assigned number 2 in Figure 12, the intersections are recorded in the order of intersection numbers 16, 18, 12, 11, 6, 7, 2, and 1. Therefore, in the divided area, a zigzag movement planned route within the divided area is created that traces the intersection coordinates in the order in which they are recorded in the sorted intersection coordinate recording file for each area (divided area).

コンピュータは、分割領域内ジグザグ移動予定ルート作成処理プログラムの手順に従って、図21のフローチャートに示すような分割領域内ジグザグ移動予定ルート作成処理(phase10)を行う。
まず、変数初期化を行う。即ち、エリア番号管理変数aを1に、ソート管理変数iを1に、ソート基準変更変数jを1に設定する(ステップS141)。
尚、ソート管理変数iとは、ソートによって順番を入れ換えた数値を配列のどこにいれるかを管理する変数であり、ソート基準変更変数jとは、ルートがのこぎり状ではなくジグザグな矩形波状のルートになるようにするために並べ替えの基準を変更する際の管理変数である。
分割領域内ジグザグ移動予定ルート作成処理では、コンピュータが、エリア番号管理変数レジスタ、ソート管理変数レジスタ、ソート基準変更変数レジスタ、エリア毎の交点座標記録ファイル、エリア毎のソート後交点座標記録ファイルのような記憶手段を使用しながら処理を行う。
次に、aの値がエリア数の上限を超えている否かを判定する(ステップS142)。
ステップS142において、aの値がエリア数の上限を超えていないと判定された場合、a番目のエリアは有効なエリアか、即ち、壁外、あるいは、柱内部ではないか否かを判定する(ステップS143)。
ステップS143において、a番目のエリアが有効なエリアであると判定された場合、このa番目のエリア用の交点座標記録ファイルの中でY座標が最も大きい交点座標を検索する(ステップS144)。
そして、ステップS145において、Y座標が最も大きい交点座標が複数あったか否かを判定する。
ステップS145において、Y座標が最も大きい交点座標が1個だけあったと判定された場合、ステップS144で検索された座標データを、a番目のエリア用のソート後交点座標記録ファイルのi番目に移し変える(ステップS146)。つまり、iが「1」であれば、Y座標が最も大きい交点座標を有した交点の番号とXY座標値とを、a番目のエリア用のソート後交点座標記録ファイルの一番最初の記録領域に記録する。即ち、Y座標が最も大きい交点の記録順を1番目にする。
尚、ステップS146では、a番目のエリア用の交点座標記録ファイルに記録されていたi番目のデータをa番目のエリア用のソート後交点座標記録ファイルのi番目に移し変えるので、このi番目のデータはa番目のエリア用の交点座標記録ファイルから削除される。
従って、次回のステップS144では、i番目のデータが除かれたa番目のエリア用の交点座標記録ファイルのデータの中で、Y座標が最も大きい座標を検索する。
尚、エリア用の交点座標記録ファイルからデータを削除せずに、エリア用の交点座標記録ファイルをコピーした処理用記録ファイルを用いて処理を行い、当該処理用記録ファイルのデータを削除するようにしてもよい。
また、ステップS145において、各分割領域での移動開始位置候補となる交点座標を抽出し、その後のステップにおいて、ソート後交点座標記録ファイルの1番目に記録される交点座標を、各分割領域での移動開始位置となる交点座標に決めて、各分割領域において、移動開始位置となる交点座標から移動終了位置となる交点座標まで直線Sを辿って交点座標位置で進路を変えるジグザグ経路を作成するものである。
ステップS145において、Y座標が最も大きい座標が2個あったと判定された場合、ソート基準変更変数jの値が奇数か否かを判定し(ステップS150)、jの値が奇数であると判定された場合には、Y座標が最も大きくかつX座標が最も小さい座標を検索し(ステップS151)、その後、jをj+1に設定する(ステップS152)。そして、検索された座標データを、a番目のエリア用のソート後交点座標記録ファイルのi番目に移し変える処理(ステップS146)に進む。
また、ステップS150において、jの値が偶数であると判定された場合には、Y座標が最も大きくかつX座標が最も大きい座標を検索し(ステップS153)、その後、jをj+1に設定した(ステップS152)後、ステップS146に進む。
また、ステップS145において、Y座標が最も大きい座標が3個以上あったと判定された場合は、Y座標が最も大きくかつX座標が最も小さい座標と、Y座標が最も大きくかつX座標が最も小さい座標以外の座標(中間の交点座標)を削除する(ステップS154)。その後、ステップS145において、Y座標が最も大きい座標が2個あったと判定された場合と同じ処理が行われて、ステップS146に進む。
ここで、例えば、図12のエリア2では、最初、ステップS144において、交点の番号16、番号17、番号18のY座標が最も大きい座標として検索され、ステップS145,S154を経て、交点番号17が削除される。そして、j=1なので、ステップS151に進んで、番号16の交点のXY座標が検索される。その後、jがj+1に設定され(ステップS152)、エリア2(分割領域)のソート後交点座標記録ファイルの一番最初の記録領域に、交点の番号16とそのXY座標とが記録される(図29(b)参照)。その後、ステップS144において、番号11の交点座標と番号12の交点座標とがY座標が最も大きい座標であるとして検索され、ステップS145において、Y座標が最も大きい座標が2個あったと判定された場合、この際には、j=2なので、ステップS153に進んで、Y座標が最も大きくかつX座標が最も大きい座標を有した番号12の交点座標が検索されて、エリア2(分割領域)のソート後交点座標記録ファイルの3番目の記録領域に、交点の番号12と当該交点のXY座標とが記録される(図29(b)参照)。
即ち、Y座標が最も大きい座標が複数あった場合に、X座標が最も小さい座標を検索するか、X座標が最も大きい座標を検索するかという基準を、jの値に基づいて、切り替えることにより、ルートがのこぎり状ではなくジグザグな矩形波状のルートとなるように工夫している。
ステップS146の後、エリア用のソート後交点座標記録ファイルのi-1番目の座標からi番目の座標を直線で結んだとき、外壁や柱と接触するか否かを判定する(ステップS147)。接触しなければ、iをi+1に更新して(ステップS147E)、a番目のエリア用の交点座標記録ファイルに座標データが残っているか否かを判定する(ステップS148)。
ステップS147において、直線が外壁や柱と接触すると判定された場合、エリア用のソート後交点座標記録ファイルのi番目の座標データをi+1番目に移動させた後、i番目の領域にi+1番目のX座標とi+1番目のY座標を書き込む(ステップS147A)。その後、iをi+2に更新して(ステップS147B)、ステップS148に進む。
即ち、ステップS147A,S147Bでは、図30(a)に示すように、ルートが外壁や柱と接触する場合、図30(b)に示すように、ルートが外壁や柱と接触しないように修正している。
次に、ステップS148において、a番目のエリア用の交点座標記録ファイルに座標データが残っていると判定された場合は、ステップS144に戻る。
ステップS148において、a番目のエリア用の交点座標記録ファイルに座標データが残っていないと判定された場合は、ステップS147Cに進んで、a番目のエリア用のソート後交点座標記録ファイルの1番目と2番目のY座標の値が同一か否かを判定する。
ステップS147Cにおいて、1番目と2番目のY座標の値が同一ではないと判定された場合、1番目に記録された座標情報を消去し、i番目の座標情報をi-1番目に移し替える(ステップS147D)。
即ち、図12に示すように、例えば3番エリアや11番エリアにおいては、ソート後交点座標記録ファイルの1番目のY座標と2番目のY座標の値は同一ではないため、2番目の交点座標位置(交点3s,11s)を始点とし、ソート後交点座標記録ファイルの3番目以降の交点座標の記録順を1つずつ繰り上げていく。
つまり、ステップS147C,S147Dでは、各分割領域での移動開始位置となる交点座標と次の交点座標とを繋ぐルート(経路)がX軸と平行なルートとなるように、各分割領域での移動開始位置となる交点座標を決める処理を行っている。
ステップS147Cにおいて、1番目と2番目のY座標の値が同一であると判定された場合、ステップS149に進んで、aをa+1に、iを1に、jを1に設定し、S142に戻る。即ち、現在処理中のエリアaのソート処理を終了し、次のエリアのソート処理に移行する。
ステップS143において、a番目のエリアが有効なエリアではないと判定された場合、ステップS149に進んで、aをa+1に、iを1に、jを1に設定し、ステップS142に戻る。即ち、次のエリアのソート処理に移行する。
ステップS142において、aの値がエリア数の上限を超えていると判定された場合には、分割領域内ジグザグ移動予定ルート作成処理(phase10)を終了し、移動コスト計算処理(phase11)に移行する。
即ち、a番目のエリア用のソート後交点座標記録ファイルに記録された交点座標を記録順に辿るルートが分割領域内ジグザグ移動予定ルートとして作成されることになる(図26(b)、図12のエリア2において点線で示した分割領域内ジグザグ移動予定ルートH参照)。
つまり、分割領域内ジグザグ移動予定ルート作成処理(phase10)においては、例えば図12に示すように、エリア2内における移動開始予定地点(座標)2sと移動終了予定地点(座標)2eとを繋ぐジグザグな分割領域内ジグザグ移動予定ルートHが作成される。また、各エリア(2~19までの柱領域7,10,12,16,18を除いたエリア)の移動開始予定地点(座標)Ns及び移動終了予定地点(座標)Ne(Nは2~19までの7,10,12,16,18を除いた整数)が決まり、これら移動開始予定地点(座標)Nsと移動終了予定地点(座標)Neとを繋ぐジグザグな分割領域内ジグザグ移動予定ルート(分割領域毎の第1のルート)Hが作成される。
以上のように、分割領域内ジグザグ移動予定ルート作成処理(phase10)を実行する手段は、各分割領域境界線上の交点を横直線で繋いで形成されたY軸に沿って進む分割領域毎のジグザグな第1のルートを作成する第1のルート作成手段として機能する。
The computer performs a process (phase 10) for creating a planned zigzag movement route within a divided area as shown in the flowchart of FIG. 21, in accordance with the procedure of a program for creating a planned zigzag movement route within a divided area.
First, variables are initialized: the area number management variable a is set to 1, the sort management variable i is set to 1, and the sort criterion change variable j is set to 1 (step S141).
The sort control variable i is a variable that controls where in the array the numbers whose order has been rearranged by sorting are placed, and the sort criterion change variable j is a control variable that is used when changing the sorting criteria so that the root becomes a zigzag rectangular wave root rather than a sawtooth root.
In the process of creating a planned zigzag movement route within a divided area, the computer performs the process using storage means such as an area number management variable register, a sorting management variable register, a sorting criteria change variable register, an intersection coordinate recording file for each area, and an intersection coordinate recording file after sorting for each area.
Next, it is determined whether the value of a exceeds the upper limit of the number of areas (step S142).
If it is determined in step S142 that the value of a does not exceed the upper limit of the number of areas, it is determined whether the a-th area is a valid area, that is, whether it is outside a wall or inside a pillar (step S143).
If it is determined in step S143 that the a-th area is a valid area, the intersection coordinate with the largest Y coordinate is searched for in the intersection coordinate recording file for this a-th area (step S144).
Then, in step S145, it is determined whether there are multiple intersection coordinates with the largest Y coordinate.
If it is determined in step S145 that there is only one intersection coordinate with the largest Y coordinate, the coordinate data found in step S144 is moved to the i-th position in the sorted intersection coordinate recording file for the a-th area (step S146). That is, if i is "1", the number and X and Y coordinate values of the intersection having the intersection coordinate with the largest Y coordinate are recorded in the first recording area of the sorted intersection coordinate recording file for the a-th area. That is, the intersection with the largest Y coordinate is recorded first.
In step S146, the i-th data recorded in the intersection coordinate recording file for the a-th area is moved to the i-th data in the sorted intersection coordinate recording file for the a-th area, and this i-th data is deleted from the intersection coordinate recording file for the a-th area.
Therefore, in the next step S144, the coordinate with the largest Y coordinate is searched for among the data in the intersection coordinate recording file for the a-th area from which the i-th data has been removed.
It is also possible to perform processing using a processing record file that is a copy of the area intersection coordinate record file, without deleting the data from the area intersection coordinate record file, and then delete the data from the processing record file.
In addition, in step S145, intersection coordinates that are candidates for the start position of movement in each divided area are extracted, and in the subsequent step, the intersection coordinates recorded first in the sorted intersection coordinate recording file are determined to be the intersection coordinates that will be the start position of movement in each divided area, and a zigzag path is created in each divided area by tracing a straight line S from the intersection coordinates that will be the start position of movement to the intersection coordinates that will be the end position of movement, changing course at the intersection coordinate position.
If it is determined in step S145 that there are two coordinates with the largest Y coordinate, it is determined whether the value of the sorting criterion change variable j is odd (step S150), and if it is determined that the value of j is odd, the coordinate with the largest Y coordinate and the smallest X coordinate is searched for (step S151), and then j is set to j+1 (step S152).Then, the process proceeds to the process of transferring the searched coordinate data to the ith position in the sorted intersection coordinate record file for the ath area (step S146).
If it is determined in step S150 that the value of j is an even number, the coordinate with the largest Y coordinate and the largest X coordinate is searched for (step S153), and then j is set to j+1 (step S152), after which the process proceeds to step S146.
If it is determined in step S145 that there are three or more coordinates with the largest Y coordinate, the coordinate with the largest Y coordinate and the smallest X coordinate and the coordinate with the largest Y coordinate and the smallest X coordinate (intermediate intersection coordinates) are deleted (step S154). After that, the same process as when it is determined in step S145 that there are two coordinates with the largest Y coordinate is performed, and the process proceeds to step S146.
For example, in area 2 of Figure 12, first in step S144, intersections 16, 17, and 18 are found to have the largest Y coordinates, and then steps S145 and S154 are carried out to delete intersection 17. Then, because j = 1, the process proceeds to step S151 to search for the X and Y coordinates of intersection 16. Then j is set to j + 1 (step S152), and intersection 16 and its X and Y coordinates are recorded in the first recording area of the sorted intersection coordinate recording file for area 2 (divided area) (see Figure 29(b)). Then, in step S144, the intersection coordinates of numbers 11 and 12 are searched for as the coordinates with the largest Y coordinates. If it is determined in step S145 that there are two coordinates with the largest Y coordinates, then, since j=2 in this case, the process proceeds to step S153, where the intersection coordinates of number 12, which have the largest Y coordinate and the largest X coordinate, are searched for, and intersection number 12 and the X and Y coordinates of that intersection are recorded in the third recording area of the sorted intersection coordinate recording file for area 2 (divided area) (see Figure 29 (b)).
That is, when there are multiple coordinates with the largest Y coordinate, the criterion for searching for the coordinate with the smallest X coordinate or the coordinate with the largest X coordinate is switched based on the value of j, so that the route becomes a zigzag rectangular wave route rather than a sawtooth route.
After step S146, it is determined whether a line connecting the (i-1)th coordinate to the i-th coordinate in the sorted intersection coordinate recording file for the area will contact an exterior wall or a pillar (step S147). If no contact is found, i is updated to i+1 (step S147E), and it is determined whether coordinate data remains in the intersection coordinate recording file for the a-th area (step S148).
If it is determined in step S147 that the line contacts an exterior wall or a pillar, the i-th coordinate data in the sorted intersection coordinate record file for area is moved to the i+1th coordinate data, and then the i+1th X coordinate and the i+1th Y coordinate are written to the i-th region (step S147A). Then, i is updated to i+2 (step S147B), and the process proceeds to step S148.
That is, in steps S147A and S147B, if the route comes into contact with an exterior wall or a pillar as shown in FIG. 30(a), the route is corrected so that it does not come into contact with the exterior wall or the pillar as shown in FIG. 30(b).
Next, in step S148, if it is determined that coordinate data remains in the intersection coordinate recording file for the a-th area, the process returns to step S144.
If it is determined in step S148 that no coordinate data remains in the intersection coordinate recording file for the ath area, the process proceeds to step S147C to determine whether the first and second Y coordinate values in the sorted intersection coordinate recording file for the ath area are the same.
If it is determined in step S147C that the first and second Y coordinate values are not the same, the first recorded coordinate information is erased and the i-th coordinate information is moved to the i-1th coordinate information (step S147D).
That is, as shown in FIG. 12, for example, in areas 3 and 11, the values of the first Y coordinate and the second Y coordinate in the sorted intersection coordinate recording file are not the same, so the second intersection coordinate position (intersections 3s and 11s) is used as the starting point, and the recording order of the third and subsequent intersection coordinates in the sorted intersection coordinate recording file is moved up by one.
In other words, in steps S147C and S147D, the process determines the intersection coordinates that will be the start position of movement in each divided area so that the route (path) connecting the intersection coordinates that will be the start position of movement in each divided area to the next intersection coordinates is a route parallel to the X-axis.
If it is determined in step S147C that the first and second Y coordinate values are the same, the process proceeds to step S149, where a is set to a+1, i to 1, and j to 1, and the process returns to step S142. That is, the sorting process for area a currently being processed ends, and the process moves on to the sorting process for the next area.
If it is determined in step S143 that the a-th area is not a valid area, the process proceeds to step S149, where a is set to a+1, i to 1, and j to 1, and the process returns to step S142. That is, the process proceeds to sorting the next area.
If it is determined in step S142 that the value of a exceeds the upper limit of the number of areas, the process of creating a planned zigzag movement route within a divided area (phase 10) is terminated, and the process proceeds to the movement cost calculation process (phase 11).
In other words, a route that follows the intersection coordinates recorded in the sorted intersection coordinate recording file for area a in the order of recording will be created as the planned zigzag movement route within the divided area (see Figure 26 (b) and the planned zigzag movement route H within the divided area shown by the dotted line in area 2 of Figure 12).
12, for example, a zigzag planned movement route H within the divided area is created that connects a planned movement start point (coordinate) 2s and a planned movement end point (coordinate) 2e within area 2. In addition, a planned movement start point (coordinate) Ns and a planned movement end point (coordinate) Ne (N is an integer excluding 7, 10, 12, 16, and 18 from 2 to 19) for each area (areas excluding pillar areas 7, 10, 12, 16, and 18 from 2 to 19) are determined, and a zigzag planned zigzag movement route H within the divided area (first route for each divided area) is created that connects the planned movement start point (coordinate) Ns and the planned movement end point (coordinate) Ne.
As described above, the means for executing the process for creating a planned zigzag movement route within a divided area (phase 10) functions as a first route creation means for creating a first zigzag route for each divided area that moves along the Y axis formed by connecting the intersections on the boundary lines of each divided area with horizontal straight lines.

移動コスト計算処理(phase11)では、コンピュータが、移動コスト計算処理プログラムの手順に従って、phase10で作成された各分割領域内ジグザグ移動予定ルート(各第1のルート)H,H…の移動コストを計算する。つまり、各分割領域内ジグザグ移動予定ルートH,H…毎に、直進距離の合計、旋回角度の合計、旋回回数を考慮して移動コストを計算する。 In the movement cost calculation process (phase 11), the computer calculates the movement costs of the planned zigzag movement routes (each first route) H, H... within each divided area created in phase 10, in accordance with the procedures of the movement cost calculation process program. In other words, for each planned zigzag movement route H, H... within each divided area, the movement cost is calculated taking into account the total straight distance, total turning angle, and number of turns.

コンピュータは、移動コスト計算処理プログラムの手順に従って、図22のフローチャートに示すような、移動コスト計算処理(phase11)を行う。
まず、エリア(分割領域)番号、及び、総コスト配列ファイルの初期化を行う。即ち、エリア番号管理変数aを1に設定するとともに、エリア毎の総コスト配列ファイルの総コスト配列CtHorizontal[amax]を[0,0,0,・・・・]に設定する(ステップS201)。また、ソート後交点座標管理変数iを1に設定する(ステップS202)。
移動コスト計算処理では、コンピュータが、エリア番号管理変数レジスタ、エリア毎のソート後交点座標記録ファイル、エリア毎の総コスト配列ファイルのような記憶手段を使用しながら処理を行う。
尚、総コスト配列ファイルとは、各エリアの走行ルートのコストを記憶しておくファイルのことであり、総コスト配列CtHorizontalとは、エリア毎の第1のルートの総コスト(移動効率評価値)のことである。また、ソート後交点座標管理変数とは、エリアの走行ルートの何番目の曲がり角(交点)かを管理する変数である。
次に、a番目のエリア用のソート後交点座標記録ファイルのi番目の座標からi+1番目の座標間の距離Lを計算する(ステップS203)。
そして、距離Lと直進移動コスト変換定数Ksを積算して直線移動時のコストCsを計算し(ステップS204)、直線移動時のコストCsを総コスト配列CtHorizontal[a]に足し加えた(ステップS205)後、iをi+1に設定し(ステップS206)、a番目のエリア用のソート後交点座標記録ファイルにi番目の座標データがあるか否かを判定する(ステップS207)
ステップS207でYesの場合、総コスト配列CtHorizontal[a]に停止に要するコストCstop(定数)を加える(ステップS208)。つまり、旋回行動に移るには一旦停止する必要がある。停止は、旋回の角度によらず一定であると考えられる。よって、ここで定数コストを加える。具体的な値は移動体1の停止性能(加速性能)に依存する。
次に、a番目のエリア用のソート後座標記録領域のi-1番目の座標からi番目の座標を向くベクトルとi番目の座標からi+1番目の座標を向くベクトルとの成す角θを計算する(ステップS209)。
そして、θと旋回移動コスト変換定数Kcを積算して直線移動時のコストCcを計算して(ステップS210)、直線移動時のコストCcを総コスト配列CtHorizontal[a]に足し加え(ステップS211)、その後、ステップS203に戻る。
ステップS207でNoの場合、aをa+1に設定し(ステップS212)、その後、
aの値がエリア数の上限amaxを超えたか否かを判定する(ステップS213)。
ステップS213でNoの場合、ステップS202に戻り、ステップS213でYesの場合、移動コスト計算処理(phase11)を終了して、別ルート作成処理(phase12~phase16)に移行する。
尚、直進移動コスト変換定数Ks、旋回移動コスト変換定数Kcは、XY座標情報で得られる長さ、角度の単位を無次元量化するための定数である。
また、移動体1の左右のタイヤ間の距離や、かけられる遠心力の上限等により、移動体1の個体差によっても、直進性能、旋回性能が違ってくる。
従って、XY座標情報で得られる単位の違い、移動体1の個体差(性能の違い)等に応じて、直進移動コスト変換定数Ks、旋回移動コスト変換定数Kcを設定することになる。
The computer performs the movement cost calculation process (phase 11) as shown in the flowchart of FIG. 22 in accordance with the procedure of the movement cost calculation process program.
First, the area (division area) number and total cost array file are initialized. That is, the area number management variable a is set to 1, and the total cost array CtHorizontal[amax] in the total cost array file for each area is set to [0,0,0,...] (step S201). Also, the post-sort intersection coordinate management variable i is set to 1 (step S202).
In the movement cost calculation process, the computer performs the process using storage means such as an area number management variable register, a sorted intersection coordinate recording file for each area, and a total cost array file for each area.
The total cost array file is a file that stores the cost of the travel route in each area, and the total cost array CtHorizontal is the total cost (travel efficiency evaluation value) of the first route for each area. The post-sort intersection coordinate management variable is a variable that manages the number of the corner (intersection) on the travel route in the area.
Next, the distance L between the i-th coordinate and the (i+1)-th coordinate in the sorted intersection coordinate recording file for the a-th area is calculated (step S203).
Then, the distance L is multiplied by the straight-line movement cost conversion constant Ks to calculate the cost Cs for straight-line movement (step S204), and the cost Cs for straight-line movement is added to the total cost array CtHorizontal[a] (step S205). After that, i is set to i+1 (step S206), and it is determined whether the i-th coordinate data is present in the sorted intersection coordinate record file for the a-th area (step S207).
If the answer is Yes in step S207, the cost Cstop (constant) required for stopping is added to the total cost array CtHorizontal[a] (step S208). In other words, a temporary stop is required to transition to a turning action. The stopping time is considered to be constant regardless of the turning angle. Therefore, a constant cost is added here. The specific value depends on the stopping performance (acceleration performance) of the moving object 1.
Next, the angle θ formed by the vector pointing from the (i-1)th coordinate to the i-th coordinate in the sorted coordinate recording area for the a-th area and the vector pointing from the i-th coordinate to the (i+1)th coordinate is calculated (step S209).
Then, θ and the turning movement cost conversion constant Kc are multiplied to calculate the cost Cc for linear movement (step S210), and the cost Cc for linear movement is added to the total cost array CtHorizontal[a] (step S211), after which the process returns to step S203.
If the answer is No in step S207, set a to a+1 (step S212), and then
It is determined whether the value of a exceeds the upper limit amax of the number of areas (step S213).
If the answer is No in step S213, the process returns to step S202, and if the answer is Yes in step S213, the movement cost calculation process (phase 11) is terminated and the process proceeds to the alternative route creation process (phases 12 to 16).
The straight movement cost conversion constant Ks and the turning movement cost conversion constant Kc are constants for converting the units of length and angle obtained from the XY coordinate information into dimensionless quantities.
Furthermore, the straight-line running performance and cornering performance will differ depending on the individual moving body 1, such as the distance between the left and right tires of the moving body 1 and the upper limit of centrifugal force that can be applied.
Therefore, the straight movement cost conversion constant Ks and the turning movement cost conversion constant Kc are set depending on the difference in units obtained from the XY coordinate information, the individual differences (differences in performance) of the moving body 1, and the like.

コンピュータは、別ルート作成処理プログラムの手順に従って、図23のフローチャートに示すような、別ルート作成処理(phase12~phase16)を行う。
最初に、等間隔直線経路作成処理(phase7)の処理で定義されるX軸と平行な直線S,S…をX軸に垂直なもの、即ち、Y軸と平行な直線に置き換えて実行して、これをphase12とする(ステップS230)。
即ち、phase12は、縦直線作成手段によって、移動対象領域をX軸に沿って等間隔に区切るY軸と平行な複数の縦直線を作成する処理である。
次に、交点座標抽出処理(phase8)の処理で、直線の移動方向をX軸に垂直にしたうえで実行して、これをphase13とする(ステップS240)とする。
さらに、エリア毎交点座標抽出処理(phase9)をそのまま実行して、これをphase14とする(ステップS250)とする。
即ち、phase13,14は、第2の交点認識手段によって、分割領域境界線と縦直線との交点を認識する処理である。
次に、分割領域内ジグザグ移動予定ルート作成処理(phase10)の処理で条件分岐の処理部分のX軸座標をY軸座標に、Y軸座標をX軸座標に置き換えて実行する。このとき、phase10の場合とは別の記録ファイルに結果を保存する。以上をphase15とする(ステップS260)。
即ち、phase15は、第2のルート作成手段によって、各分割領域境界線上の交点を縦直線で繋いで形成されたX軸に沿って進む分割領域毎のジグザグな第2のルートを作成する処理である。
最後に、移動コスト計算処理(phase11)での総コスト配列CtHorizontalを総コスト配列CtVerticalに置き換えて処理を実行する。このとき、phase11の場合とは別の記録ファイルに結果を保存する。以上をphase16とする(ステップS270)。
即ち、phase16は、第2の移動効率算出手段によって、分割領域毎の第2のルートに沿って移動する場合の移動効率を算出する処理である。
そして、ルート選択処理(phase17)に移行する。
The computer performs the alternative route creation process (phases 12 to 16) as shown in the flowchart of FIG. 23 in accordance with the procedures of the alternative route creation process program.
First, the straight lines S, S... parallel to the X axis defined in the equally spaced straight line path creation process (phase 7) are replaced with straight lines perpendicular to the X axis, i.e., parallel to the Y axis, and this is phase 12 (step S230).
That is, phase 12 is a process in which a vertical line creating means creates a plurality of vertical lines parallel to the Y axis that divide the movement target area at equal intervals along the X axis.
Next, in the intersection coordinate extraction process (phase 8), the moving direction of the straight line is set perpendicular to the X axis, and this is executed, which is set as phase 13 (step S240).
Furthermore, the process of extracting intersection coordinates for each area (phase 9) is executed as is, and this is set as phase 14 (step S250).
That is, phases 13 and 14 are processes in which the second intersection recognition means recognizes the intersections between the divided area boundary lines and vertical lines.
Next, in the process of creating a planned zigzag movement route within the divided area (phase 10), the X-axis coordinates of the conditional branch processing part are replaced with Y-axis coordinates, and the Y-axis coordinates are replaced with X-axis coordinates. At this time, the results are saved in a recording file separate from that for phase 10. This is phase 15 (step S260).
That is, phase 15 is a process in which the second route creation means creates a zigzag second route for each divided area that proceeds along the X axis formed by connecting the intersections on the boundaries of each divided area with vertical lines.
Finally, the total cost array CtHorizontal in the movement cost calculation process (phase 11) is replaced with the total cost array CtVertical, and the process is executed. At this time, the results are saved in a record file separate from that in phase 11. This is referred to as phase 16 (step S270).
That is, phase 16 is a process in which the second movement efficiency calculation means calculates the movement efficiency when moving along the second route for each divided area.
Then, the process proceeds to the route selection process (phase 17).

ルート選択処理(phase17)では、コンピュータが、ルート選択処理プログラムの手順に従って、同じ分割領域内を第1のルートに沿って移動する場合の移動効率と第2のルートに沿って移動する場合の移動効率とを比較して、第1のルート及び第2のルートのうち移動効率の良いルートを当該分割領域内での移動予定ルートとして選択する。 In the route selection process (phase 17), the computer follows the procedures of the route selection process program to compare the travel efficiency when traveling along a first route and a second route within the same divided area, and selects the route with the better travel efficiency from the first route and the second route as the planned travel route within that divided area.

コンピュータは、ルート選択処理プログラムの手順に従って、図24のフローチャートに示すような、ルート選択処理(phase17)を行う。
まず、変数初期化を行う。即ち、エリア番号管理変数aを1に設定する(ステップS281)。
ルート選択処理では、コンピュータが、エリア番号管理変数レジスタ、エリア毎の第1のルートの総コストCtHorizontal[a]を記録するファイル、エリア毎の第2のルートの総コストCtVertical[a]を記録するファイルのような記憶手段を使用しながら処理を行う。
次に、エリアaにおける、水平方向移動時(第1のルート選択時)の総コストCtHorizontal[a]と垂直方向移動時(第2のルート選択時)の総コストCtVertical[a]とを比較する(ステップS282)。
ステップS282において、総コストCtHorizontal[a]の方がコストが低いと判定された場合は、エリア番号aではphase10で作成したエリア用ソート後交点座標記録ファイルをアクティブにする(ステップS283)。つまり、当該エリア(分割領域)aにおいては、第1のルートを当該エリア(分割領域)内aでの移動予定ルートとして選択する。
ステップS282において、総コストCtVertical[a]の方がコストが低い、又は、総コストCtVertical[a]のコストと総コストCtHorizontal[a]のコストとが同値と判定された場合は、エリア番号aではphase15で作成したエリア用ソート後交点座標記録ファイルをアクティブにする(ステップS286)。つまり、当該エリア(分割領域)aにおいては、第2のルートを当該エリア(分割領域)内aでの移動予定ルートとして選択する。
ステップS283の後、又は、ステップS286の後、aをa+1に設定し(ステップS284)、aの値がエリア数の上限amaxを超えたか否かを判定する(ステップS284)。
ステップS284でNoであれば、ステップS282に戻り、ステップS284でYesであれば、ルート選択処理を終了して、分割領域間移動予定ルート作成処理(phase18)に移行する。
The computer performs the route selection process (phase 17) as shown in the flowchart of FIG. 24 in accordance with the procedure of the route selection process program.
First, variables are initialized, that is, the area number management variable a is set to 1 (step S281).
In the route selection process, the computer performs the process using storage means such as an area number management variable register, a file that records the total cost CtHorizontal[a] of the first route for each area, and a file that records the total cost CtVertical[a] of the second route for each area.
Next, the total cost CtHorizontal[a] of horizontal movement (when the first route is selected) in area a is compared with the total cost CtVertical[a] of vertical movement (when the second route is selected) (step S282).
If it is determined in step S282 that the total cost CtHorizontal[a] is lower, the sorted intersection coordinate record file for area number a created in phase 10 is activated (step S283). That is, in the area (divided area) a, the first route is selected as the planned travel route within the area (divided area) a.
In step S282, if it is determined that the total cost CtVertical[a] is lower, or that the total cost CtVertical[a] and the total cost CtHorizontal[a] are equal, the sorted intersection coordinate record file for area number a created in phase 15 is activated (step S286). That is, in the area (divided area) a, the second route is selected as the planned travel route within the area (divided area) a.
After step S283 or step S286, a is set to a+1 (step S284), and it is determined whether the value of a exceeds the upper limit amax of the number of areas (step S284).
If the answer is No in step S284, the process returns to step S282, and if the answer is Yes in step S284, the route selection process is terminated and the process proceeds to the process of creating a planned travel route between divided areas (phase 18).

分割領域間移動予定ルート作成処理(phase18)では、コンピュータが、分割領域内ジグザグ移動予定ルート作成処理プログラムの手順に従って、図12に示すように、n番目の分割領域Eからn+1番目の分割領域Eへの移動予定ルートである分割領域間移動予定ルートを生成する。まず、分割領域間直線移動予定ルート作成処理により、前の分割領域(エリア)の移動終了予定地点(座標)2eと後の分割領域(エリア)の移動開始予定地点(座標)2sとを一直線で結ぶ分割領域間直線移動予定ルートIを作成する。
つまり、n番目の分割領域毎のソート後交点座標記録ファイルの最後に記録された交点の座標位置とn+1番目の分割領域毎のソート後交点座標記録ファイルの最初に記録された交点の座標位置とを一直線で結ぶ分割領域間直線移動予定ルートIを作成する。
ただし、移動終了予定地点(座標)2eと移動開始予定地点(座標)2sとを一直線で結んだ場合に、柱Bと接触(衝突)してしまう場合には、任意の経路探索アルゴリズムを応用した分割領域間迂回移動予定ルート作成処理によって、迂回経路を生成する。
In the inter-divided area planned movement route creation process (phase 18), the computer follows the procedures of the intra-divided area zigzag movement planned route creation process program to generate an inter-divided area planned movement route, which is a planned movement route from the nth divided area E to the (n+1)th divided area E, as shown in Fig. 12. First, by the inter-divided area straight line movement planned route creation process, an inter-divided area straight line movement planned route I is created that connects the planned movement end point (coordinate) 2e of the previous divided area (area) with the planned movement start point (coordinate) 2s of the next divided area (area) in a straight line.
In other words, a planned straight-line movement route I between divided areas is created, which connects the coordinate position of the intersection recorded at the end of the sorted intersection coordinate recording file for each nth divided area with the coordinate position of the intersection recorded at the beginning of the sorted intersection coordinate recording file for each n+1th divided area.
However, if a straight line connecting the planned end point (coordinate) 2e and the planned start point (coordinate) 2s of the movement would result in contact (collision) with pillar B, a detour route is generated using a process for creating a detour route between divided areas that applies an arbitrary route search algorithm.

コンピュータは、分割領域間移動予定ルート作成処理プログラムの手順に従って、図25のフローチャートに示すような分割領域間移動予定ルート作成処理(phase18)を行う。
まず、変数初期化を行う。即ち、エリア番号管理変数aを1に、移動先エリア管理変数iを1に設定する(ステップS161)。
分割領域間移動予定ルート作成処理では、コンピュータが、エリア番号管理変数レジスタ、移動先エリア管理変数レジスタ、エリア毎のソート後交点座標記録ファイル、経路探索コスト計算配列ファイル、エリア毎の経路記録ファイルのような記憶手段を使用しながら処理を行う。
次に、aの値がエリア数の上限を超えているか否かを判定し(ステップS162)、上限を超えていなければ、a番目のエリアは有効なエリアか否かを判定し(ステップS163)、a番目のエリアが有効なエリアであれば、a+i番目のエリアは有効なエリアか否かを判定する(ステップS164)。
ステップS164において、a+i番目のエリアが有効なエリアであると判定された場合、a番目のエリア用のソート後交点座標記録ファイルの最後の座標とa+i番目のエリア用のソート後交点座標記録ファイルの最初の座標を直線で結んだとき、外壁や柱と接触するか否かを判定する(ステップS165)。即ち、番号の小さいエリアの移動終了予定地点eと番号の大きいエリアの移動開始予定地点sとを直線で結んだとき、外壁や柱と接触するか否かを判定する。
ステップS165において、Yesの場合(直線が外壁や柱と接触すると判定された場合)、経路探索アルゴリズム処理に移行する。
経路探索アルゴリズム処理では、まず、a番目のエリア用のソート後交点座標記録ファイルの最後の座標、即ち、a番目の分割領域の移動終了予定地点eとなる交点座標の位置(経路探索アルゴリズムにおけるスタート地点)を現在位置とする(ステップS166)。
次に、経路探索アルゴリズムのコスト計算配列初期化を行う。つまり、コストC1[Xmax][Ymax]←[0,0,0,・・・・]、コストC2[Xmax][Ymax]←[0,0,0,・・・・]を行う(ステップS167)。
まず、現在位置から見て上下左右周囲8方向とスタート地点間の距離を計算する。例えば、コストを求めたい位置の周辺のC1を調べ、最も小さいC1に+1する(ただし、初期化時から変化してないC1は無視する)。計算されたコストはその位置に相当する配列番号のC1に代入する(ステップS168A)。
次に、現在位置から見て上下左右周囲8方向からa+i番目のエリア用のソート後交点座標記録ファイルの最初の交点座標(経路探索アルゴリズムにおけるゴール地点)までの推定距離を計算する。例えば、コストを求めたい位置とゴールとの直線距離を計算し、その計算されたコストはその位置に相当する配列番号のC2に代入する(ステップS168B)。
現在位置から見て上下左右周囲8方向それぞれについて、計算済みフラグを立てる(ステップS169)。
コスト計算済みフラグが立っている座標のうち、外壁や柱がなく、かつ最も総コスト(C1[*][**]+C2[*][**])が低い場所(座標)があるか否かを判定する(ステップS170)。
ステップS170において、該当する座標を発見できなかった場合は、エラーと判定して終了する。
ステップS170において、該当する座標が1箇所だけあった場合、当該座標位置へ移動し、その座標に到達済みフラグを立てる(ステップS171)。
また、ステップS170において、該当する座標が複数あった場合、同値の座標のうち、所定の優先順位で一か所を決めた後、ステップに進む。所定の優先順位は、ゴールまでの推定距離が小さい方>スタートからの距離が大きい方>最も原点座標に近い方とする(ステップS174)。その後、ステップS171に進む。
そして、a+i番目のエリア用のソート後交点座標記録ファイルの最初の座標に到達したか否かを判定する(ステップS172)。
a+i番目のエリア用のソート後交点座標記録ファイルの最初の座標に到達したと判定された場合(ステップS172でYES)、現在位置から見て上下左右周囲8方向のうち、到達済みフラグが立っており、かつ最も高いコストの場所があるか否かを判定する(ステップS173)。即ち、ステップS173においては、スタート地点に戻るような処理を行って、移動軌跡の履歴を探索するものである。
ステップS173において、該当する座標を発見できなかった場合は、エラーと判定して終了する。
ステップS173において、該当する座標が1箇所だけあった場合、最もコストが高い方へ移動する。このとき移動先の座標に経路確定フラグを立てる(ステップS173A)。
そして、a番目のソート後交点座標記録ファイルの最後の座標に到達したか否かを判定する(ステップS174)。
また、ステップS173において、該当する座標が複数あった場合、同値の座標のうち、スタートまでの物理的距離(ユークリッド距離)が最も近い方へ移動し、このとき移動先の座標に経路確定フラグを立てる(ステップS173B)。その後、ステップS174に進む。
ステップS174において、a番目のエリア用のソート後交点座標記録ファイルの最後の座標に到達したと判定された場合(ステップS174でYES)、記録された移動右軌跡を逆転させて、これをa番目のエリア探索後の移動の経路(分割領域間移動予定ルートI)として経路記録ファイルに登録する(ステップS175)。その後、ステップS176に進む。
ステップS165において、Noの場合(直線が外壁や柱と接触しないと判定された場合)は、a番目のエリア用のソート後交点座標記録ファイルの最後の座標からa+i番目のエリア用のソート後交点座標記録ファイルの最初の座標を結ぶ直線をa番目のエリア探索後の移動の経路として経路記録ファイルに登録し(ステップS178)、その後、ステップS176に進んで、aをa+iに、iを1に更新した後、ステップS162に戻る。
ステップS163において、a番目のエリアは有効なエリアではないと判定された場合には、ステップS176に進んで、aをa+iに、iを1に更新し、ステップS162に戻る。
ステップS164において、a+i番目のエリアは有効なエリアではないと判定された場合、iをi+1に設定した(ステップS179)後、a+iの値がエリア数の上限を超えているか否かを判定する(ステップS180)。ステップS180において、a+iの値がエリア数の上限を超えていないと判定された場合は、ステップS164に戻り、ステップS180において、a+iの値がエリア数の上限を超えていると判定された場合は、分割領域間移動予定ルート作成処理(phase11)を終了する。
ステップS162において、aの値がエリア数の上限を超えていると判定された場合には、分割領域間移動予定ルート作成処理(phase11)を終了する。
The computer performs the planned inter-divided area travel route creation process (phase 18) as shown in the flowchart of FIG. 25, in accordance with the procedure of the program for the process of creating a planned inter-divided area travel route.
First, variables are initialized: the area number management variable a is set to 1, and the destination area management variable i is set to 1 (step S161).
In the process of creating a planned route for travel between divided areas, the computer performs the process using storage means such as an area number management variable register, a destination area management variable register, a sorted intersection coordinate recording file for each area, a route search cost calculation array file, and a route recording file for each area.
Next, it is determined whether the value of a exceeds the upper limit of the number of areas (step S162), and if it does not exceed the upper limit, it is determined whether the a-th area is a valid area (step S163), and if the a-th area is a valid area, it is determined whether the (a+i)-th area is a valid area (step S164).
If it is determined in step S164 that the (a+i)th area is a valid area, it is determined whether a straight line connecting the last coordinate in the sorted intersection coordinate record file for the ath area and the first coordinate in the sorted intersection coordinate record file for the (a+i)th area will contact an exterior wall or a pillar (step S165). That is, it is determined whether a straight line connecting the planned movement end point e of the smaller-numbered area and the planned movement start point s of the larger-numbered area will contact an exterior wall or a pillar.
If the answer is Yes in step S165 (if it is determined that the straight line comes into contact with an exterior wall or a pillar), the process proceeds to path search algorithm processing.
In the route search algorithm processing, first, the last coordinate in the sorted intersection coordinate recording file for the a-th area, i.e., the intersection coordinate position that is the planned end point e of movement for the a-th divided area (the starting point in the route search algorithm), is set as the current position (step S166).
Next, the cost calculation arrays for the path search algorithm are initialized: cost C1[Xmax][Ymax]←[0,0,0,...], cost C2[Xmax][Ymax]←[0,0,0,...] (step S167).
First, calculate the distance between the current position and the starting point in the eight directions (up, down, left, right, and so on). For example, look at the C1s around the position for which you want to find the cost, and add +1 to the smallest C1 (however, ignore C1s that have not changed since initialization). The calculated cost is assigned to the C1 of the array element number corresponding to that position (step S168A).
Next, the estimated distance from the current position to the first intersection coordinate (the goal point in the path search algorithm) in the sorted intersection coordinate record file for the a+ith area is calculated from the eight directions above, below, left, and right as viewed from the current position. For example, the straight-line distance between the position for which the cost is to be calculated and the goal is calculated, and the calculated cost is assigned to C2 of the array element number corresponding to that position (step S168B).
A calculation completion flag is set for each of the eight directions, up, down, left, right and around the current position (step S169).
Among the coordinates for which the cost calculation flag is set, it is determined whether there is a location (coordinate) that has no exterior walls or pillars and has the lowest total cost (C1[*][**] + C2[*][**]) (step S170).
If no corresponding coordinates are found in step S170, an error is determined and the process ends.
In step S170, if there is only one corresponding coordinate, the process moves to that coordinate position and sets an arrival flag for that coordinate (step S171).
If there are multiple coordinates that match in step S170, one of the coordinates with the same value is selected based on a predetermined priority order, and then the process proceeds to step S174. The predetermined priority order is: shortest estimated distance to the goal > longest distance from the start > closest to the origin coordinates (step S174). Then, the process proceeds to step S171.
Then, it is determined whether or not the first coordinate of the sorted intersection coordinate recording file for the (a+i)th area has been reached (step S172).
If it is determined that the first coordinate in the sorted intersection coordinate record file for the a+ith area has been reached (YES in step S172), it is determined whether there is a location in the eight directions (up, down, left, right, and around) from the current position where the reached flag is set and the highest cost is present (step S173). That is, in step S173, a process is performed to return to the start point, and the history of the movement trajectory is searched.
If no corresponding coordinates are found in step S173, an error is determined and the process ends.
In step S173, if there is only one corresponding coordinate, the process moves to the coordinate with the highest cost, and a route confirmation flag is set for the destination coordinate (step S173A).
Then, it is determined whether or not the last coordinate of the a-th sorted intersection coordinate recording file has been reached (step S174).
If there are multiple coordinates that match in step S173, the robot moves to the coordinate with the same value that has the closest physical distance (Euclidean distance) to the start, and a route confirmation flag is set for the destination coordinate (step S173B).Then, the process proceeds to step S174.
In step S174, if it is determined that the last coordinate in the sorted intersection coordinate record file for the a-th area has been reached (YES in step S174), the recorded right movement trajectory is reversed and this is registered in the route record file as the route of movement after the a-th area search (planned inter-divided area movement route I) (step S175).Then, the process proceeds to step S176.
If the answer is No in step S165 (if it is determined that the straight line does not come into contact with an exterior wall or a pillar), a straight line connecting the last coordinate in the sorted intersection coordinate recording file for the a-th area to the first coordinate in the sorted intersection coordinate recording file for the (a+i)-th area is registered in the route recording file as the route for movement after searching the a-th area (step S178), and then the process proceeds to step S176, where a is updated to a+i and i to 1, and then the process returns to step S162.
If it is determined in step S163 that the a-th area is not a valid area, the process proceeds to step S176, where a is updated to a+i and i to 1, and the process returns to step S162.
If it is determined in step S164 that the a+i-th area is not a valid area, i is set to i+1 (step S179), and then it is determined whether the value of a+i exceeds the upper limit of the number of areas (step S180). If it is determined in step S180 that the value of a+i does not exceed the upper limit of the number of areas, the process returns to step S164. If it is determined in step S180 that the value of a+i exceeds the upper limit of the number of areas, the process of creating a planned inter-divided area travel route (phase 11) is terminated.
If it is determined in step S162 that the value of a exceeds the upper limit of the number of areas, the process of creating a planned inter-divided area travel route (phase 11) is terminated.

分割領域間移動予定ルート作成処理(phase18)によれば、例えば図12に示すような分割領域間移動予定ルートが作成される。
即ち、例えばa番目の分割領域の終点交点座標とa+i番目の分割領域の開始交点座標とを結び、分割領域aと分割領域a+i間の移動予定ルートIを生成する
図12において、矢印直線23(I)は分割領域2の移動終了予定地点(交点座標)2eと分割領域3の移動開始予定地点(交点座標)3sとを繋ぐ分割領域間移動予定ルート、矢印直線34(I)は分割領域3の移動終了予定地点3eと分割領域4の移動開始予定地点4sとを繋ぐ分割領域間移動予定ルート、矢印直線45(I)は分割領域4の移動終了予定地点4eと分割領域5の移動開始予定地点5sとを繋ぐ分割領域間移動予定ルート、矢印直線56(I)は分割領域5の移動終了予定地点5eと分割領域6の移動開始予定地点6sとを繋ぐ分割領域間移動予定ルートである。
また、矢印直線68(I)は分割領域6の移動終了予定地点6eと分割領域8の移動開始予定地点8sとを繋ぐ分割領域間移動予定ルートであり、矢印直線89(I)は分割領域8の移動終了予定地点8eと分割領域9の移動開始予定地点9sとを繋ぐ分割領域間移動予定ルート、矢印直線911(I)は分割領域9の移動終了予定地点9eと領域11の移動開始予定地点11sとを繋ぐ分割領域間移動予定ルート、柱12を迂回する直線1113(I)は分割領域11の移動終了予定地点11eと分割領域13の移動開始予定地点12sとを繋ぐ分割領域間移動予定ルートであり、経路探索アルゴリズム処理により探索された分割領域間移動予定ルートである。
また、矢印直線1314(I)は分割領域13の移動終了予定地点13eと分割領域14の移動開始予定地点14sとを繋ぐ分割領域間移動予定ルート、矢印直線1415(I)は分割領域14の移動終了予定地点14eと分割領域15の移動開始予定地点15sとを繋ぐ分割領域間移動予定ルート、矢印直線1517(I)は分割領域15の移動終了予定地点15eと分割領域17の移動開始予定地点17sとを繋ぐ分割領域間移動予定ルート、矢印直線1719(I)は分割領域17の移動終了予定地点17eと分割領域19の移動開始予定地点19sとを繋ぐ分割領域間移動予定ルートである。
尚、図12の例では、すべての分割領域間移動予定ルートが、ステップS178により決められた分割領域間直線移動予定ルートIとなり、分割領域間迂回移動予定ルート作成処理により決められた分割領域間迂回移動予定ルートは無いが、ステップS178により決められた分割領域間直線移動予定ルートIが外壁や柱と接触すると判定される例においては、分割領域間直線移動予定ルートIの代わりに、分割領域間迂回移動予定ルート作成処理に基づいて分割領域間迂回移動予定ルートが作成されることになる。例えば、仮に、図12において、柱16がもっと大きな柱である場合には、矢印直線1415(I)が柱16と接触する可能性があり、この場合は、経路探索アルゴリズム処理に基づいて、柱16を迂回する分割領域間迂回移動予定ルートが作成されることになる。
According to the process for creating a planned movement route between divided areas (phase 18), a planned movement route between divided areas such as that shown in FIG. 12 is created.
That is, for example, the end intersection coordinates of the a-th divided area are connected to the start intersection coordinates of the a+i-th divided area to generate a planned movement route I between divided area a and divided area a+i. In FIG. 12 , arrow line 23 (I) is a planned movement route between divided areas connecting the planned movement end point (intersection coordinates) 2e in divided area 2 and the planned movement start point (intersection coordinates) 3s in divided area 3, arrow line 34 (I) is a planned movement route between divided areas connecting the planned movement end point 3e in divided area 3 and the planned movement start point 4s in divided area 4, arrow line 45 (I) is a planned movement route between divided areas connecting the planned movement end point 4e in divided area 4 and the planned movement start point 5s in divided area 5, and arrow line 56 (I) is a planned movement route between divided areas connecting the planned movement end point 5e in divided area 5 and the planned movement start point 6s in divided area 6.
In addition, arrow line 68 (I) is a planned route of movement between divided areas connecting planned end point 6e of movement in divided area 6 and planned start point 8s of movement in divided area 8, arrow line 89 (I) is a planned route of movement between divided areas connecting planned end point 8e of movement in divided area 8 and planned start point 9s of movement in divided area 9, arrow line 911 (I) is a planned route of movement between divided areas connecting planned end point 9e of movement in divided area 9 and planned start point 11s of movement in area 11, and straight line 1113 (I) that bypasses pillar 12 is a planned route of movement between divided areas connecting planned end point 11e of movement in divided area 11 and planned start point 12s of movement in divided area 13, and is a planned route of movement between divided areas searched for by the route search algorithm processing.
In addition, arrow line 1314 (I) is a planned inter-divided area travel route connecting planned end point 13e of travel in divided area 13 and planned start point 14s of travel in divided area 14, arrow line 1415 (I) is a planned inter-divided area travel route connecting planned end point 14e of travel in divided area 14 and planned start point 15s of travel in divided area 15, arrow line 1517 (I) is a planned inter-divided area travel route connecting planned end point 15e of travel in divided area 15 and planned start point 17s of travel in divided area 17, and arrow line 1719 (I) is a planned inter-divided area travel route connecting planned end point 17e of travel in divided area 17 and planned start point 19s of travel in divided area 19.
12, all planned routes of movement between divided areas are planned straight-line movement routes I between divided areas determined in step S178, and there are no planned detour movement routes between divided areas determined in the process of creating a detour movement route between divided areas. However, in an example in which it is determined that the planned straight-line movement route I between divided areas determined in step S178 will come into contact with an exterior wall or a pillar, a planned detour movement route between divided areas is created based on the process of creating a detour movement route between divided areas instead of the planned straight-line movement route I between divided areas. For example, if pillar 16 in FIG. 12 is a larger pillar, there is a possibility that arrow line 1415(I) will come into contact with pillar 16. In this case, a planned detour movement route between divided areas that bypasses pillar 16 is created based on the path search algorithm process.

従って、移動体1は、予め作成された最適な分割領域間移動予定ルートを辿って分割領域間を移動できるようになり、移動体に、分割領域間の移動を効率的に行わせることができるようになる。 As a result, the mobile object 1 can move between divided areas by following a pre-created optimal planned route between divided areas, allowing the mobile object to move between divided areas efficiently.

上述した移動予定ルート作成装置、及び、移動予定ルート作成処理プログラムによれば、第1のルート及び第2のルートのうち移動効率の良いルートを選択するようにしたので、各分割領域の形状に応じて、移動対象領域内の障害物を避けて移動体を移動させるための効率的な移動予定ルートを的確に作成できるようになる。 The planned travel route creation device and planned travel route creation processing program described above select the route with the best travel efficiency from the first route and the second route, making it possible to accurately create an efficient planned travel route for moving a moving object while avoiding obstacles within the target travel area, depending on the shape of each divided area.

そして、上述した移動体の移動予定ルート作成装置により作成された移動予定ルート(移動予定情報)に基づいて移動体1が移動対象領域A内の柱(障害物)Bを避けて移動対象領域A内を効率的に自走できるようになる。 Then, based on the planned movement route (planned movement information) created by the above-mentioned planned movement route creation device for the moving body, the moving body 1 can efficiently move independently within the target movement area A while avoiding pillars (obstacles) B within the target movement area A.

即ち、図31に示すように、移動体1の制御手段50が、移動予定ルート(移動予定情報)に基づいて移動体1の移動を制御するとともに、移動情報取得手段としての例えば自動追尾型のトータルステーション(以下、TSと言う)等により取得される移動体1の実際の移動情報(移動体の逐次位置情報)と移動予定ルート(移動予定情報)とを用いて移動体1の移動を制御する移動体1の移動制御システムを構築できるようになる。
尚、当該移動体1の移動制御方法としては、例えば、本出願人による発明である特許文献1(特開2020-154400号公報)に開示された移動制御方法を採用すればよい。
That is, as shown in Figure 31, a control means 50 of the moving body 1 controls the movement of the moving body 1 based on the planned movement route (planned movement information), and a movement control system for the moving body 1 can be constructed that controls the movement of the moving body 1 using actual movement information of the moving body 1 (sequential position information of the moving body) and the planned movement route (planned movement information) acquired by, for example, an automatic tracking total station (hereinafter referred to as TS) as a movement information acquisition means.
As a method for controlling the movement of the moving body 1, for example, the movement control method disclosed in Patent Document 1 (JP 2020-154400 A), an invention by the present applicant, may be adopted.

移動体1の一例について説明する。尚、以下の説明においては、前、後、上、下、左、右は、図31に示した方向と定義して説明する。
図31に示すように、移動体1は、基体10と、基体10の下側に設けられた移動手段20と、基体10の表面側に設けられたTSの視準となるプリズム等のターゲットT2と、基体10に設けられて移動体1の前側を昇降させる昇降装置40と、制御手段50と、床面を撮影するための図外の撮像手段(カメラ)とを備えている。
尚、撮像手段は、例えば、基体10の下面(床面と対向する下面)側において、移動体1の左右幅間に亘って延長するように設けられており、移動体1が床面上を移動した場合に、移動体1の下面の左右幅間に対向する床面を撮影できるように構成されている。
An example of the moving body 1 will be described below. In the following description, the directions of front, rear, up, down, left, and right will be defined as those shown in FIG.
As shown in Figure 31, the mobile body 1 comprises a base 10, a moving means 20 provided on the underside of the base 10, a target T2 such as a prism provided on the surface side of the base 10 for collimating the TS, an elevating device 40 provided on the base 10 for raising and lowering the front side of the mobile body 1, a control means 50, and an imaging means (camera) not shown for photographing the floor surface.
Furthermore, the imaging means is provided, for example, on the underside of the base 10 (the underside facing the floor surface) so as to extend across the left and right width of the moving body 1, and is configured so as to be able to capture an image of the floor surface facing across the left and right width of the underside of the moving body 1 when the moving body 1 moves on the floor surface.

移動手段20は、例えば、基体10の前側下部に設けられた左右の前側車輪21L,21Rと、基体10の後側下部に設けられた左右の後側車輪22L,22Rと、後側車輪22L,22Rの駆動源としてのモータ23L,23Rと、図外の駆動制御回路とを備える。
尚、モータ23L,23Rの各モータ軸には、それぞれ、後側車輪22L,22Rの回転量に基づいて移動体1の移動距離(移動量)を検出するための移動量検出手段としてのエンコーダ25L,25Rが取付けられている。
The moving means 20 includes, for example, left and right front wheels 21L, 21R provided on the front lower part of the base 10, left and right rear wheels 22L, 22R provided on the rear lower part of the base 10, motors 23L, 23R as drive sources for the rear wheels 22L, 22R, and a drive control circuit not shown.
In addition, encoders 25L and 25R are attached to the motor shafts of the motors 23L and 23R, respectively, as movement amount detection means for detecting the movement distance (movement amount) of the mobile body 1 based on the rotation amount of the rear wheels 22L and 22R.

ターゲットT2は、TSから発射される光を反射させる反射プリズム等で構成される。当該ターゲットT2は、例えば、基体10の上面の前側における左右間の中央位置に設置される。 Target T2 is composed of a reflecting prism or the like that reflects the light emitted from TS. Target T2 is installed, for example, at a central position between the left and right sides on the front side of the top surface of base 10.

制御手段50は、移動体1の移動方向(進行方向)を変更する際、昇降装置40の図外のリニアアクチュエータのロッドを縮退状態から伸長させて図外の転動体を床面に押し付けることにより基体10の前側を上方に移動させて移動体1の前側車輪21L,21Rを床面から浮かせた状態で、左右の後側車輪22L,22Rのモータ23L,23Rを制御して床面に接触している左右の後側車輪22L,22Rを互いに反対方向に回転させる。
この場合、移動体1を前進させる回転方向に一方の後側車輪を回転させるとともに、移動体1を後進させる回転方向に他方の後側車輪を回転させることによって、移動体1の回転中心線を回転中心として、左右の後側車輪22L,22Rと転動体とが床面上を転動するので、床面上において、移動体1が回転中心線を回転中心として左方向又は右方向にスムーズに回転する。よって、移動体1の水平方向の向きがスムーズに変更されるようになる。
When changing the direction of movement (direction of travel) of the moving body 1, the control means 50 extends the rod of the linear actuator (not shown) of the lifting device 40 from a retracted state and presses the rolling body (not shown) against the floor surface, thereby moving the front side of the base body 10 upward and lifting the front wheels 21L, 21R of the moving body 1 off the floor surface, and then controls the motors 23L, 23R of the left and right rear wheels 22L, 22R to rotate the left and right rear wheels 22L, 22R that are in contact with the floor surface in opposite directions to each other.
In this case, by rotating one rear wheel in the direction of rotation that moves the mobile unit 1 forward and rotating the other rear wheel in the direction of rotation that moves the mobile unit 1 backward, the left and right rear wheels 22L, 22R and the rolling elements roll on the floor surface around the rotation center line of the mobile unit 1, so that the mobile unit 1 rotates smoothly left or right on the floor surface around the rotation center line. Thus, the horizontal orientation of the mobile unit 1 can be smoothly changed.

尚、移動体1として、撮像手段(カメラ)を搭載して床面を撮影する撮像手段搭載移動体を例示したが、移動体は、例えば掃除機を搭載して床面を掃除する掃除機搭載移動体等の特定処理機能搭載移動体、又は、特定処理機能を搭載しない移動体であってもよい。 Note that, although the mobile body 1 is exemplified as a mobile body equipped with an imaging means (camera) that captures images of the floor surface, the mobile body may also be a mobile body equipped with a specific processing function, such as a mobile body equipped with a vacuum cleaner that cleans the floor surface, or a mobile body that does not have a specific processing function.

また、上述した前提装置では、移動対象領域Aの外側のエリア、即ち、壁外領域をエリア1に設定したために、図20のエリア毎交点座標抽出処理(phase9)のステップS131の変数初期化、図21の分割領域内ジグザグ移動予定ルート作成処理(phase10)のステップS141の変数初期化、図22の移動コスト処理(phase11)のステップS201の変数初期化、図24のルート選択処理(phase17)のステップS281の変数初期化、図25の分割領域間移動予定ルート作成処理(phase18)のステップS161の変数初期化において、エリア番号管理変数aを1に設定して処理を開始する例を示したが、エリア1は分割された領域ではないので、これら各処理の変数初期化において、エリア番号管理変数aを2に設定して、エリア2から処理を開始するようにしてもよい。 In addition, in the above-mentioned prerequisite device, the area outside the movement target area A, i.e., the outside-wall area, is set to Area 1. Therefore, in the variable initialization of step S131 of the area-by-area intersection coordinate extraction process (phase 9) in Figure 20, the variable initialization of step S141 of the process for creating a planned zigzag movement route within a divided area (phase 10) in Figure 21, the variable initialization of step S201 of the movement cost process (phase 11) in Figure 22, the variable initialization of step S281 of the route selection process (phase 17) in Figure 24, and the variable initialization of step S161 of the process for creating a planned movement route between divided areas (phase 18) in Figure 25, the area number management variable a is set to 1 to start processing. However, because Area 1 is not a divided area, the area number management variable a may be set to 2 in the variable initialization of each of these processes, and processing may start from Area 2.

本発明に係る巡回ルート作成装置の前提装置となる上述した移動予定ルート作成装置では、各分割領域(各移動対象領域)に所定の規則でエリア番号を付けて、一番小さい番号の分割領域(移動対象領域)から昇順に分割領域間を分割領域間移動予定ルートで繋げて作成された移動予定ルートを作成するようにしている。つまり、各分割領域を巡回する巡回ルートを作成するようにしている。
しかしながら、当該移動予定ルート作成装置では、一番小さい番号の分割領域から順番に、一番近い番号が付与された2つの分割領域同士を分割領域間移動予定ルートで繋げるようにしているだけであり、各分割領域を巡回する巡回ルートが、効率的な巡回ルートであるかどうかについての評価を行っていない。
そこで、本発明では、以下に示すように、複数の移動対象領域を移動体に巡回させるための効率的な巡回ルートを作成可能な巡回ルート作成装置を実現した。
The above-mentioned planned travel route creation device, which is a prerequisite device for the travel route creation device according to the present invention, assigns an area number to each divided area (each target travel area) according to a predetermined rule, and creates a planned travel route by connecting the divided areas (target travel area) in ascending order, starting with the divided area with the smallest number, with a planned travel route between the divided areas. In other words, a travel route that travels around each divided area is created.
However, this planned travel route creation device simply connects two divided areas with the closest numbers, starting with the divided area with the smallest number, with a planned travel route between divided areas, and does not evaluate whether the route that goes around each divided area is an efficient route.
Therefore, in the present invention, as will be described below, a travel route creation device is realized that can create an efficient travel route for a mobile object to travel through a plurality of target travel areas.

実施形態
本発明の実施形態に係る巡回ルート作成装置は、複数の移動対象領域の位置情報を認識して当該複数の移動対象領域を移動体に巡回させる巡回ルートを作成する巡回ルート作成装置であり、当該巡回ルート作成装置は、複数の移動対象領域の位置情報を認識して当該複数の移動対象領域を移動体に巡回させる巡回ルートを、遺伝的アルゴリズム(GA(genetic algorithm))を利用して作成する巡回ルート作成装置とした。
Embodiment A tour route creation device according to an embodiment of the present invention is a tour route creation device that recognizes the position information of a plurality of target areas and creates a tour route for a mobile body to tour the plurality of target areas.The tour route creation device is a tour route creation device that recognizes the position information of a plurality of target areas and creates a tour route for a mobile body to tour the plurality of target areas using a genetic algorithm (GA).

尚、本発明において、複数の移動対象領域は、各自独立した複数の移動対象領域、あるいは、上述したような複数の分割領域等であり、以下、「移動対象領域」を「エリア」と呼称して説明する。 In the present invention, the multiple target areas to be moved are multiple independent target areas to be moved, or multiple divided areas as described above, and in the following explanation, the "target areas to be moved" will be referred to as "areas."

実施形態に係る巡回ルート作成装置は、各エリアを一巡する巡回ループを作成する巡回ループ作成手段と、作成された巡回ループの経路を移動体で移動させる場合の移動コストを算出する移動コスト算出手段と、作成された巡回ループを形成するエリア間ルートのうち最も移動コストの大きいエリア間ルートを削除して、削除したエリア間ルートのルート終端が繋がれていたエリアを巡回ルートのスタート領域とし、かつ、削除したエリア間ルートのルート始端が繋がれていたエリアを巡回ルートのゴール領域とした各エリアを一巡する巡回ルートを作成する巡回ルート作成手段とを備える。
移動コスト算出手段は、巡回ループ作成手段により作成された巡回ループを移動体で移動させる場合の移動コストや、巡回ループ作成手段により作成された巡回ループにおいて前後のエリア間を繋ぐエリア間ルートを移動体で移動させる場合の移動コストや、巡回ルート作成手段により作成された巡回ルートを移動体で移動させる場合の移動コストを算出する。即ち、移動コスト算出手段は、巡回ループ、巡回ループの前後のエリア間を繋ぐエリア間ルート、移動コストが最も大きいエリア間ルートの移動コストを巡回ループの移動コストから除いた巡回ループ等の、巡回ループの経路の移動コストを算出する手段である。尚、移動コストは、上述した前提装置で説明した、直進距離の合計、旋回角度の合計、旋回回数を考慮した移動コストである。
巡回ループ作成手段は、エリア毎に巡回情報を設定することにより巡回ループを作成する初期世代巡回ループ作成手段と、後世代巡回ループ作成手段とを備える。
巡回ルート作成手段は、初期世代巡回ルート作成手段と、後世代巡回ルート作成手段とを備える。
初期世代巡回ループ作成手段は、複数の巡回ループを作成する。
初期世代巡回ルート作成手段は、初期世代巡回ループ作成手段により作成された複数の初期世代巡回ループ毎に、各エリア毎の巡回情報を変更して、複数の初期世代巡回ルートを作成する。
また、後世代巡回ループ作成手段は、複数の初期世代巡回ルートのうち、移動コストの小さい初期世代巡回ルートをいくつか抽出し、この抽出された初期世代巡回ルートの巡回情報を使用して後世代巡回ループを作成する。
そして、後世代巡回ルート作成手段は、後世代巡回ループ作成手段により作成された後世代巡回ループ毎に、各エリア毎の巡回情報を変更して、後世代巡回ルートを作成する。
尚、後世代の世代数は複数とし、今回の後世代巡回ルート作成手段は、前回の後世代巡回ループ作成手段により作成された前回の後世代巡回ループ毎に、各エリア毎の巡回情報を変更して、今回の後世代巡回ルートを作成する。
また、最終世代の後世代巡回ルート作成手段は、最終世代として作成した複数の巡回ルートのうち、移動コストが最小である巡回ルートを巡回ルートとして決定するようにしている。そして、当該最終の巡回ルートが、GA処理により求められた巡回ルートとなる。
The circular route creation device according to the embodiment includes a circular loop creation means for creating a circular loop that goes around each area, a movement cost calculation means for calculating the movement cost when a mobile body travels along the route of the created circular loop, and a circular route creation means for deleting the inter-area route with the highest movement cost from among the inter-area routes that form the created circular loop, and creating a circular route that goes around each area, with the area that connected the end of the deleted inter-area route as the start area of the circular route and the area that connected the beginning of the deleted inter-area route as the goal area of the circular route.
The travel cost calculation means calculates the travel cost of moving a mobile object along the circular loop created by the circular loop creation means, the travel cost of moving a mobile object along an inter-area route connecting the previous and next areas in the circular loop created by the circular loop creation means, and the travel cost of moving a mobile object along the circular route created by the circular route creation means.In other words, the travel cost calculation means is a means for calculating the travel cost of the route of the circular loop, such as the circular loop, the inter-area route connecting the previous and next areas of the circular loop, and the circular loop obtained by subtracting the travel cost of the inter-area route with the highest travel cost from the travel cost of the circular loop.Note that the travel cost is a travel cost that takes into account the total straight distance, total turning angle, and number of turns, as described in the above-mentioned prerequisite device.
The cyclic loop creating means includes an initial generation cyclic loop creating means for creating a cyclic loop by setting cyclic information for each area, and a later generation cyclic loop creating means.
The tour route creating means includes an initial generation tour route creating means and a later generation tour route creating means.
The initial generation cyclic loop creating means creates a plurality of cyclic loops.
The initial generation circulating route creating means changes the circulating information for each area for each of the initial generation circulating loops created by the initial generation circulating loop creating means, and creates a plurality of initial generation circulating routes.
Further, the later generation circular loop creating means extracts some early generation circular routes with small travel costs from among the plurality of early generation circular routes, and creates a later generation circular loop using the circular information of the extracted early generation circular routes.
The next-generation circular route creating means changes the circular information for each area for each next-generation circular loop created by the next-generation circular loop creating means, and creates a next-generation circular route.
The number of the next generation is plural, and the current next generation circular route creation means changes the circular information for each area for each previous next generation circular loop created by the previous next generation circular loop creation means, and creates the current next generation circular route.
The next-generation tour route creation means for the final generation determines the tour route with the smallest travel cost from among the multiple tour routes created for the final generation. The final tour route becomes the tour route calculated by the GA process.

上述した各手段は、各手段が実行する処理の手順を示す処理プログラムと、当該処理プログラムによる情報処理を実現するコンピュータ等のハードウエア資源とにより構成される。
換言すれば、巡回ルート作成装置の処理を実現する巡回ルート作成処理プログラムは、コンピュータを、上述した各手段として機能させるプログラムである。
巡回ルート作成装置は、例えば表示画面及び表示制御手段を備えたパーソナルコンピュータ等のコンピュータに、上述した巡回ルート作成処理プログラムがインストールされて構成されている。
Each of the above-mentioned means is configured by a processing program that indicates the procedure of the processing that each means executes, and hardware resources such as a computer that realizes information processing according to the processing program.
In other words, the route generation processing program that realizes the processing of the route generation device is a program that causes a computer to function as each of the above-mentioned means.
The tour route creation device is configured by installing the above-mentioned tour route creation processing program in a computer such as a personal computer equipped with a display screen and display control means.

エリアは、上述したように、XY座標情報に基づいて区画された領域である。
また、エリア内の予め決められた巡回パターンは、例えばX軸に沿ってジグザグに進むX方向巡回パターン、又は、Y軸に沿って進むジグザグなY方向巡回パターンである。
エリア内の予め決められた所定の複数の巡回パターンは、例えば図32に示すように、X方向巡回パターンにおいては、移動開始位置(始端(入口))をX座標最小値Y座標最大値の位置とするZパターン(第1パターン)、移動開始位置をX座標最小値Y座標最小値の位置とするZ’パターン(第2パターン)、移動開始位置をX座標最大値Y座標最大値の位置とするSパターン(第3パターン)、移動開始位置をX座標最大値Y座標最小値の位置とするS’パターン(第4パターン)である。
また、Y方向巡回パターンにおいては、移動開始位置をX座標最小値Y座標最大値の位置とするWパターン(第5パターン)、移動開始位置をX座標最大値Y座標最大値の位置とするW’パターン(第6パターン)、移動開始位置をX座標最小値Y座標最小値の位置とするMパターン(第7パターン))、移動開始位置をX座標最大値Y座標最小値の位置とするM’パターン(第8パターン)である。
尚、各エリアにおいて、当該複数の巡回パターンの各パターンを設定した場合において、当該各パターン上を移動体で移動させる場合の移動コストは、例えば、予め移動コスト算出手段により算出されてデータベースに記録されている。
As described above, an area is a region partitioned based on XY coordinate information.
Furthermore, the predetermined circulation pattern within the area is, for example, an X-direction circulation pattern that moves zigzag along the X-axis, or a Y-direction circulation pattern that moves zigzag along the Y-axis.
As shown in FIG. 32, for example, the plurality of predetermined cyclic patterns within an area are, in an X-direction cyclic pattern, a Z pattern (first pattern) in which the movement start position (starting end (entrance)) is the position of the minimum X coordinate and the maximum Y coordinate, a Z' pattern (second pattern) in which the movement start position is the position of the minimum X coordinate and the minimum Y coordinate, an S pattern (third pattern) in which the movement start position is the position of the maximum X coordinate and the maximum Y coordinate, and an S' pattern (fourth pattern) in which the movement start position is the position of the maximum X coordinate and the minimum Y coordinate.
In addition, the Y-direction cyclic patterns include a W pattern (fifth pattern) in which the start position of movement is the position of the minimum X coordinate and the maximum Y coordinate; a W' pattern (sixth pattern) in which the start position of movement is the position of the maximum X coordinate and the maximum Y coordinate; an M pattern (seventh pattern) in which the start position of movement is the position of the minimum X coordinate and the minimum Y coordinate; and an M' pattern (eighth pattern) in which the start position of movement is the position of the maximum X coordinate and the minimum Y coordinate.
Furthermore, when each of the multiple patrol patterns is set in each area, the travel cost when moving a mobile object along each of the patterns is calculated in advance by, for example, a travel cost calculation means and recorded in a database.

巡回情報は、例えば図39に示すような、各エリア毎に設定される自己のエリア内の巡回パターンの情報と次に進むエリアの情報とで構成された組み合わせ情報である。
図39に示した例では、エリア1の巡回情報は、「2-M」であり、この「M」がエリア1(自己)のエリア内の巡回パターンの情報であり、「2」が次に進むエリアの情報である。つまり、当該エリア1の巡回情報によって、エリア1内の巡回パターンは、Mパターン(第7パターン)が設定され、エリア1の次に進むエリアが2であるので、エリア1の巡回パターンであるMパターンの終点(出口)とエリア2の巡回パターンであるZパターンの始点(入口)とを結ぶルートがエリア間ルートとして設定されることになる。
つまり、巡回ループは、巡回情報に基づいて作成され、巡回ループのエリア間ルートのうち最も移動コストの大きいエリア間ルートが削除されて巡回ルートが作成される。
The patrol information is, for example, as shown in FIG. 39, combination information configured of information on a patrol pattern within the area set for each area and information on the area to proceed to next.
39, the patrol information for area 1 is "2-M," where "M" is information about the patrol pattern within area 1 (self), and "2" is information about the next area to proceed to. That is, the patrol pattern within area 1 is set to M pattern (seventh pattern) based on the patrol information for area 1, and the area to proceed to after area 1 is 2, so a route connecting the end point (exit) of M pattern, which is the patrol pattern for area 1, and the start point (entrance) of Z pattern, which is the patrol pattern for area 2, is set as the inter-area route.
That is, the circular loop is created based on the circular information, and the inter-area route with the highest travel cost is deleted from among the inter-area routes of the circular loop to create the circular route.

実施形態に係る巡回ルート作成装置による巡回ルート作成処理、即ち、遺伝的アルゴリズム(GA)を利用した巡回ルート作成処理(以下、GA処理という)の流れの概略を図33に示す。
尚、GA処理では、上述した巡回情報を遺伝情報と適宜読み替えて説明する。
また、実施形態においては、後世代の世代数は、例えば100以上としている。
即ち、GA処理では、図33に示すように、初期世代の複数の個体を作成する初期世代個体作成処理(ステップS401)、個体評価処理(ステップS402)、世代確認処理(ステップS403)、優秀な遺伝情報を持つ個体を複数体だけ親として選出する親選出処理(ステップS404)、親の遺伝情報を用いた後世代個体を作成する後世代個体作成処理(ステップS404)を実行する。
また、GA処理の流れを図33に基づいて簡単に説明すると、以下のようになる。
まず、初期世代個体作成処理(ステップS401)により、複数の個体、即ち、複数の巡回ループを作成する。この場合、各エリア毎に、図38(a)に示すような、各エリア毎に設定される自己のエリア内の巡回パターンの情報と次に進むエリアの情報とで構成された組み合わせ情報、即ち、遺伝情報(巡回情報)をランダムに設定することにより、巡回ループとなる個体(初期巡回情報配列)を作成する。
個体評価処理(ステップS402)においては、各個体である各巡回ルートを評価する。即ち、巡回ループにおいて移動コストが一番大きい最大エリア間ルートを削除した巡回ルートを作成し、当該巡回ルートの移動コストを計算する。
世代確認処理(ステップS403)では、今回の世代が事前に決めた世代数に到達したか否かを確認する。
今回の世代が事前に決めた世代数(例えば100以上)に到達していなければ(ステップS403でNoの場合)、今回の世代(初期世代、又は、後世代)の個体の中から移動コストの優秀な個体を複数体(例えば4体)だけ親として選出する(ステップS404)。
今回の世代の個体の中から選出された優秀な個体を親として、当該親の遺伝情報を用いた後世代の個体を作成する(ステップS405)。
その後、ステップ402~ステップ405を繰り返して、ステップS403での判断がYesとなった場合には、GA処理を終了する。
FIG. 33 shows an outline of the flow of a route creation process by the route creation device according to the embodiment, that is, a route creation process using a genetic algorithm (GA) (hereinafter referred to as GA process).
In the GA processing, the above-mentioned cyclic information will be appropriately replaced with genetic information for explanation.
In the embodiment, the number of subsequent generations is set to, for example, 100 or more.
That is, as shown in FIG. 33, the GA process executes an initial generation individual creation process (step S401) for creating multiple individuals of the initial generation, an individual evaluation process (step S402), a generation confirmation process (step S403), a parent selection process (step S404) for selecting multiple individuals with excellent genetic information as parents, and a subsequent generation individual creation process (step S404) for creating subsequent generation individuals using the genetic information of the parents.
The flow of the GA process can be briefly explained as follows based on FIG.
First, a plurality of individuals, i.e., a plurality of cyclic loops, are created by the initial generation individual creation process (step S401). In this case, for each area, as shown in Fig. 38(a), combination information consisting of information on the cyclic pattern within the area itself and information on the area to proceed to next, i.e., genetic information (cyclic information), is randomly set to create individuals that will become cyclic loops (initial cyclic information array).
In the individual evaluation process (step S402), each individual travel route is evaluated. That is, a travel route is created by deleting the maximum inter-area route with the highest travel cost in the travel loop, and the travel cost of the travel route is calculated.
In the generation confirmation process (step S403), it is confirmed whether the current generation has reached a predetermined number of generations.
If the current generation has not reached a predetermined number of generations (for example, 100 or more) (No in step S403), multiple individuals (for example, four individuals) with excellent movement costs are selected as parents from the individuals of the current generation (initial generation or later generation) (step S404).
An excellent individual selected from the individuals of the current generation is used as a parent to create an individual of the next generation using the genetic information of that parent (step S405).
Thereafter, steps 402 to 405 are repeated, and if the determination in step S403 is Yes, the GA process is terminated.

即ち、GA処理では、初期世代個体作成処理、個体評価処理、世代確認処理、親選出処理、後世代個体作成処理を行う。つまり、これら各処理の手順を示す処理プログラムと、当該処理プログラムによる情報処理を実現するコンピュータとにより、これら各処理が実行される。
以下、初期世代個体作成処理、個体評価処理、世代確認処理、親選出処理、後世代個体作成処理の内容を詳細に説明する。
つまり、GA処理では、上述した巡回パターン設定手段及び巡回順設定手段が、初期世代個体作成処理、世代確認処理、後世代個体作成処理、個体評価処理、優秀個体抽出処理を行う。つまり、これら各処理(初期世代個体作成処理、世代確認処理、後世代個体作成処理、個体評価処理、優秀個体抽出処理)の手順を示す処理プログラムと、当該処理プログラムによる情報処理を実現するコンピュータとにより、これら各処理が実行される。
That is, the GA process involves the creation of initial-generation individuals, the evaluation of individuals, the generation confirmation process, the parent selection process, and the creation of subsequent-generation individuals. That is, each of these processes is executed by a processing program that indicates the procedure for each of these processes and a computer that realizes information processing by the processing program.
The following will explain in detail the contents of the initial generation individual creation process, individual evaluation process, generation confirmation process, parent selection process, and subsequent generation individual creation process.
That is, in the GA processing, the cyclic pattern setting means and cyclic order setting means perform the initial generation individual creation processing, generation confirmation processing, subsequent generation individual creation processing, individual evaluation processing, and excellent individual extraction processing. That is, each of these processes (initial generation individual creation processing, generation confirmation processing, subsequent generation individual creation processing, individual evaluation processing, and excellent individual extraction processing) is executed by a processing program indicating the procedure for each of these processes, and a computer that realizes information processing by the processing program.

まず、コンピュータが、初期世代個体作成処理プログラムの手順に従って、図34のフローチャートに示すような、初期世代個体作成処理(phase1)を行う。
尚、GA処理において、「個体」とは、巡回ループ、又は、巡回ルートのことである。
まず、個体識別変数pの初期化処理とエリア個数情報amaxの取得処理を行う(ステップS411)。つまり、エリア番号管理変数aを1に設定するとともに、エリア個数情報amaxをエリアの個数に設定する(例えば、上述した前提技術の場合(図12の複数の分割領域の場合)、個数情報amaxは「16」に設定され、図38(a)の場合、個数情報amaxは「6」に設定される)。
そして、遺伝情報配列G[1~20][1~amax][1~2]を初期化して、空にする(ステップS412)。
次に、初期世代個体の作成ループに入る(ステップS413)。例えば、初期世代個体を20個作成する。つまり、p<=20(即ち、p≦20)である。
まず、エリア番号管理変数aの初期化処理、即ち、エリア番号管理変数aを1に設定する(ステップS414)。
そして、遺伝情報配列G[p][a][1]に、エリア2~amaxの間でかつ遺伝情報配列G[p][1~amax][1]に未だに含まれていない値をランダムに代入する(ステップS415)とともに、遺伝情報配列G[p][a][2]に、巡回パターンを表す数値をランダムに代入する(ステップS416)。
その後、aをG[p][a][1]に設定する(ステップS417)。
そして、遺伝情報配列G[p][1~amax][1]の中に空の要素が2個以上残っているか否かを判定する(ステップS418)。つまり、1つの個体を構成する遺伝情報配列中の遺伝情報(巡回情報)の中で次に進むエリアの情報が設定されていない領域が2つ以上残っていれば(ステップS418でYes)、ステップS415~ステップS417を繰り返して、1つの個体を構成する遺伝情報配列中の遺伝情報の中で次に進むエリアの情報が設定されていないエリアが1つであれば(ステップS418でNo)、そのエリアの遺伝情報配列G[p][a][1]を1に設定する(ステップS419)とともに、そのエリアの遺伝情報配列G[p][a][2]に、巡回パターンを表す数値をランダムに代入する(ステップS420)。つまり、そのエリアの最後に進むエリアのエリア番号を1に設定するとともに、そのエリアの巡回パターンをランダムに設定する。
そして、pをp+1に設定する(ステップS421)。
つまり、ステップS413~ステップS421を複数回数繰り返すことにより、初期世代の個体を複数個(例えば20個)作成する。
即ち、図34に示した「初期世代個体作成ループ」の処理を行う。
First, the computer performs the initial generation individual creation process (phase 1) as shown in the flowchart of FIG. 34, in accordance with the procedure of the initial generation individual creation process program.
In the GA process, an "individual" refers to a cyclic loop or a cyclic route.
First, the individual identification variable p is initialized and the area number information amax is acquired (step S411). That is, the area number management variable a is set to 1, and the area number information amax is set to the number of areas (for example, in the case of the above-mentioned base technology (the case of multiple divided areas in FIG. 12), the number information amax is set to "16", and in the case of FIG. 38(a), the number information amax is set to "6").
Then, the genetic information array G[1 to 20][1 to amax][1 to 2] is initialized to be empty (step S412).
Next, a loop for creating initial generation individuals is entered (step S413). For example, 20 initial generation individuals are created. That is, p<=20 (i.e., p≦20).
First, the area number control variable a is initialized, that is, the area number control variable a is set to 1 (step S414).
Then, a value between areas 2 and amax and not yet included in the genetic information array G[p][1 to amax][1] is randomly assigned to the genetic information array G[p][a][1] (step S415), and a numerical value representing the cyclic pattern is randomly assigned to the genetic information array G[p][a][2] (step S416).
Then, a is set to G[p][a][1] (step S417).
Then, it is determined whether two or more empty elements remain in the genetic information array G[p][1 to amax][1] (step S418). That is, if there are two or more areas in the genetic information (cyclic information) of a single individual for which no information about the next area has been set (Yes in step S418), steps S415 to S417 are repeated. If there is only one area in the genetic information of a single individual for which no information about the next area has been set (No in step S418), the genetic information array G[p][a][1] for that area is set to 1 (step S419), and a value representing the cyclic pattern is randomly assigned to the genetic information array G[p][a][2] for that area (step S420). That is, the area number of the area to be advanced to last is set to 1, and the cyclic pattern for that area is randomly set.
Then, p is set to p+1 (step S421).
That is, steps S413 to S421 are repeated a number of times to create a number of individuals (for example, 20 individuals) of the initial generation.
That is, the "initial generation individual creation loop" shown in FIG. 34 is executed.

遺伝情報配列G[1~20][1~amax][1~2]について説明する。
[1~20]は初期世代個体作成処理で作成する個体を識別するための変数、[1~amax]はエリアを識別するための変数であり、G[p][a][1]には、初期世代のp番目の個体のa番目のエリアが次に進むエリアの情報が設定される。また、G[p][a][2]には、初期世代のp番目の個体のa番目のエリアのエリア内移動ルートパタンの情報が設定される。即ち、作成する個体(巡回ループ)を構成する各エリア毎の巡回情報(遺伝情報)が設定される記録領域が構築されており、当該記録領域に複数個の個体を形成する複数個の巡回情報配列が、遺伝情報配列G[1~pmax][1~amax][1~2]という形で記録される。例えば、初期世代の個体数が20個であれば、当該20の個体を形成する20個の巡回情報配列が、遺伝情報配列G[1~20][1~amax][1~2]という形で記録される。
The genetic information sequence G[1-20][1-amax][1-2] will be explained.
[1-20] are variables for identifying individuals to be created in the initial-generation individual creation process, and [1-amax] are variables for identifying areas. G[p][a][1] is set with information about the area to which the a-th area of the p-th individual of the initial generation will next advance. Furthermore, G[p][a][2] is set with information about the intra-area movement route pattern of the a-th area of the p-th individual of the initial generation. That is, a recording area is constructed in which cyclic information (genetic information) for each area constituting the individuals (cyclic loops) to be created is set, and multiple cyclic information sequences forming multiple individuals are recorded in the recording area in the form of a genetic information array G[1-pmax][1-amax][1-2]. For example, if the number of individuals in the initial generation is 20, the 20 cyclic information sequences forming the 20 individuals are recorded in the form of a genetic information array G[1-20][1-amax][1-2].

尚、遺伝情報配列G[1~20][1~amax][1~2]における、[1~amax]は各エリアの番号であり、G[a][1]は、エリアaから次に進むエリアの情報が記録される記憶領域のアドレス、G[a][2]は、エリアa内の巡回パターンの情報が記録される記憶領域のアドレスである。
即ち、[a]はエリアの番号を示す情報、G[a][1]には、エリア[a]から次に進むエリアの番号の情報(遺伝情報(巡回情報))が記録され、G[a][2]には、エリア[a]内の巡回パターンの情報(遺伝情報(巡回情報))が記録される。
従って、以下、G[a][1]は、エリア[a]から次に進むエリアの番号の情報を意味し、G[a][2]は、エリア[a]内の巡回パターンの情報を意味するものとする。
つまり、個体毎の巡回情報配列G[1~amax][1~2]は、G[1~amax][1~2]というアドレスに記録された情報群、即ち、図38(a)に示すような遺伝情報の組み合わせのことであり、当該巡回情報配列により、各初期世代個体の巡回ループが形成される。
例えば、エリアの個数が6個の場合、phase1で設定された遺伝情報配列Gを構成する各巡回情報配列は、図38(a)に示すような初期巡回情報配列になる。
つまり、図38(a)に示す初期巡回情報配列G[1~amax][1~2]は、以下の通りである。
エリア[1]から次に進むエリアの番号の情報が記録されるアドレス[1][1]にエリア番号2が記録されて、エリア[1]内の巡回パターンの情報が記録されるアドレス[1][2]にはZパターンが記録される。つまり、エリア番号1の巡回情報として「2-Z」が設定される。
また、エリア[2]から次に進むエリアの番号の情報が記録されるアドレス[2][1]にエリア番号3が記録されて、エリア[2]内の巡回パターンの情報が記録されるアドレス[2][2]にはZパターンが記録される。つまり、エリア番号2の巡回情報として「3-Z」が設定される。
また、エリア[3]から次に進むエリアの番号の情報が記録されるアドレス[3][1]にエリア番号4が記録されて、エリア[3]内の巡回パターンの情報が記録されるアドレス[3][2]にはZパターンが記録される。つまり、エリア番号3の巡回情報として「4-Z」が設定される。
また、エリア[4]から次に進むエリアの番号の情報が記録されるアドレス[4][1]にエリア番号5が記録されて、エリア[4]内の巡回パターンの情報が記録されるアドレス[4][2]にはZパターンが記録される。つまり、エリア番号4の巡回情報として「5-Z」が設定される。
また、エリア[5]から次に進むエリアの番号の情報が記録されるアドレス[5][1]にエリア番号6が記録されて、エリア[5]内の巡回パターンの情報が記録されるアドレス[5][2]にはZパターンが記録される。つまり、エリア番号5の巡回情報として「6-Z」が設定される。
また、エリア[6]から次に進むエリアの番号の情報が記録されるアドレス[6][1]にエリア番号1が記録されて、エリア[6]内の巡回パターンの情報が記録されるアドレス[6][2]にはZパターンが記録される。つまり、エリア番号6の巡回情報として「1-Z」が設定される。
当該初期巡回情報配列に基づいて作成される初期巡回ループは、図38(b)に示すような初期巡回ループになる。
尚、図38(b)において、pは巡回パターン、rはエリア間ルートである。
In the genetic information array G[1-20][1-amax][1-2], [1-amax] is the number of each area, G[a][1] is the address of the memory area where information on the next area from area a is recorded, and G[a][2] is the address of the memory area where information on the cyclic pattern within area a is recorded.
That is, [a] is information indicating the area number, G[a][1] records information (genetic information (cyclic information)) of the area number to proceed to next from area [a], and G[a][2] records information (genetic information (cyclic information)) of the cyclic pattern within area [a].
Therefore, hereinafter, G[a][1] means information on the number of the next area to proceed from area [a], and G[a][2] means information on the cyclic pattern within area [a].
In other words, the cyclic information array G[1 to amax][1 to 2] for each individual is a group of information recorded at the address G[1 to amax][1 to 2], i.e., a combination of genetic information as shown in Figure 38(a), and this cyclic information array forms a cyclic loop for each initial generation individual.
For example, when the number of areas is six, each of the cyclic information sequences constituting the genetic information sequence G set in phase 1 becomes an initial cyclic information sequence as shown in FIG. 38(a).
That is, the initial cyclic information array G[1 to amax][1 to 2] shown in FIG. 38(a) is as follows:
Area number 2 is recorded in address [1][1], which records information about the number of the area to proceed to next from area [1], and pattern Z is recorded in address [1][2], which records information about the cyclic pattern within area [1]. In other words, "2-Z" is set as the cyclic information for area number 1.
Furthermore, area number 3 is recorded in address [2][1], which records information on the number of the area to proceed to next from area [2], and Z pattern is recorded in address [2][2], which records information on the cyclic pattern within area [2]. In other words, "3-Z" is set as the cyclic information for area number 2.
Furthermore, area number 4 is recorded in address [3][1], which records information on the number of the area to proceed to next from area [3], and pattern Z is recorded in address [3][2], which records information on the cyclic pattern within area [3]. In other words, "4-Z" is set as the cyclic information for area number 3.
Furthermore, area number 5 is recorded in address [4][1], which records information on the number of the area to proceed to next from area [4], and Z pattern is recorded in address [4][2], which records information on the cyclic pattern within area [4]. In other words, "5-Z" is set as the cyclic information for area number 4.
Furthermore, area number 6 is recorded in address [5][1], which records information on the number of the area to proceed to next from area [5], and pattern Z is recorded in address [5][2], which records information on the cyclic pattern within area [5]. In other words, "6-Z" is set as the cyclic information for area number 5.
Furthermore, area number 1 is recorded in address [6][1], which records information on the number of the area to proceed to next from area [6], and Z pattern is recorded in address [6][2], which records information on the cyclic pattern within area [6]. In other words, "1-Z" is set as the cyclic information for area number 6.
The initial cyclic loop created based on the initial cyclic information array is an initial cyclic loop as shown in FIG.
In FIG. 38(b), p is a pat- tern and r is an inter-area route.

即ち、GA処理では、巡回情報配列で特定される初期の巡回ループ(初期個体)を初期世代個体として複数個生成し、かつ、後世代毎に複数個の個体を生成するに当たって、交叉処理や突然変異処理を行う。
大まかにいえば、GA処理では、複数の初期巡回ループ、即ち、初期世代個体を生成して、次の世代の個体を生成する際には、初期世代個体の中から優秀な親個体を選出し、当該親個体を用いた交叉処理や突然変異処理を行うことで次の世代個体を生成していく。そして、以降、同様に、今回の後世代の個体を生成する際には、前回の後世代の個体の中から優秀な親個体を選出し、当該親個体を用いた交叉処理や突然変異処理を行うことで今回の世代個体を生成していくことを、あらかじめ決められた世代数だけ繰り返すものである。
即ち、初期世代個体作成処理は、上述した図38(a)に示す初期巡回情報配列G[1~amax][1~2]を、複数個、例えば20個の初期巡回情報配列G[1~amax][1~2]を作成して、遺伝情報配列G[1~20][1~amax][1~2]として保管する処理、つまり、図34のステップS413~ステップS421の処理を20回繰り返して、20個の初期世代個体を生成(作成)する処理である。
また、あらかじめ決められた世代数の処理が終了した時点で最終的に残った最適遺伝情報保存配列Gbest[1~amax][1~2]による巡回ループに基づく巡回ルートが求められることになる。
尚、交叉処理、突然変異処理については、後述する。
That is, in the GA process, a plurality of initial cyclic loops (initial individuals) specified by the cyclic information sequence are generated as initial generation individuals, and crossover and mutation processes are performed to generate a plurality of individuals for each subsequent generation.
Roughly speaking, GA processing involves multiple initial cyclic loops, i.e., generating initial generation individuals, and then generating next generation individuals by selecting excellent parent individuals from the initial generation individuals and performing crossover and mutation processes using the parent individuals. Similarly, when generating the current generation of individuals, excellent parent individuals are selected from the previous generation of individuals and performing crossover and mutation processes using the parent individuals to generate the current generation of individuals, and this process is repeated a predetermined number of generations.
That is, the initial generation individual creation process is a process of creating multiple, for example 20, initial cyclic information arrays G[1 to amax][1 to 2] of the initial cyclic information array G[1 to amax][1 to 2] shown in Figure 38(a) described above, and storing them as genetic information arrays G[1 to 20][1 to amax][1 to 2], that is, a process of repeating the processes of steps S413 to S421 in Figure 34 20 times to generate (create) 20 initial generation individuals.
Furthermore, when the processing for a predetermined number of generations is completed, a circulating route is determined based on a circulating loop of the optimal genetic information storing sequence Gbest[1 to amax][1 to 2] that remains at the end.
The crossover process and mutation process will be described later.

次に、コンピュータが、個体評価処理プログラム(世代確認処理プログラムを含む)の手順に従って、図35のフローチャートに示すような、個体評価処理(世代確認処理を含む)(phase2)を行う。
phase1の処理後、最適コスト変数及び最適遺伝情報保存配列の初期化処理を行う(ステップS430)。つまり、最適コスト変数Cbestを0にするとともに、最適遺伝情報保存配列Gbest[1~amax][1~2]を空にする。
次に、評価する個体は何世代目かを判定する(ステップS431)。つまり、世代確認処理を行う。
評価する個体が1世代(初期世代)の個体であれば、個体別変数及びコスト管理配列の初期化処理を行う(ステップS432)。つまり、個体別変数pを1にするとともに、コスト管理配列C[1~amax]を0にする。
そして、個体評価ループに入る(ステップS433)。例えば、初期世代個体である20個の個体を評価する個体評価ループに入る。
まず、エリア番号管理変数a、エリア一周探索済みフラグf、エリア間移動時最大コスト管理変数Cmaxの初期化を行う(ステップS434)。つまり、エリア番号管理変数aを1に、エリア一周探索済みフラグfを0に、エリア間移動時最大コスト管理変数Cmaxを0に設定する。
次に、エリア一周探索済みフラグは立っているか否かを判定する(ステップS435)。つまり、エリア一周探索済みフラグfが1か否かを判定する。
エリア一周探索済みフラグfが1でなければ(ステップS435でNo)、a番目のエリアを遺伝情報配列G[p][a][2]で指定された巡回パターンで巡った際の移動コストをデータベースよりダウンロードして、移動コストC[p]に加算する(ステップS436)。
次に、遺伝情報配列G[p][a][2]が処理を開始した1番目のエリアを指示しているか否かを判定する(ステップS437)。
その後、エリア間ルートの作成処理及び移動コスト計算処理に移行する。
また、ステップS437でNoの場合、その後、ステップS440経由で、エリア間ルートの作成処理及び移動コスト計算処理に移行する。
即ち、ステップS437でYesの場合、つまり、G[p][a][2]の値(次に進むエリアの番号)が処理を開始したエリア番号の場合、探索領域(各エリア)を一周したということになるので、エリア一周探索済みフラグfを1にした後に、a番目のエリアから1番目のエリアへ直線で移動できるか否かを判定し(ステップS439)、エリア間ルートの作成処理及び移動コスト計算処理に移行する。
Next, the computer performs the individual evaluation process (including generation confirmation process) (phase 2) as shown in the flowchart of FIG. 35, in accordance with the procedure of the individual evaluation process program (including generation confirmation process program).
After the processing of phase 1, the optimal cost variable and the optimal genetic information storage array are initialized (step S430). That is, the optimal cost variable Cbest is set to 0, and the optimal genetic information storage array Gbest[1 to amax][1 to 2] is made empty.
Next, it is determined which generation the individual to be evaluated is from (step S431). That is, a generation confirmation process is performed.
If the individual to be evaluated is an individual from the first generation (initial generation), the individual variables and cost management array are initialized (step S432). That is, the individual variable p is set to 1, and the cost management array C[1 to amax] is set to 0.
Then, the process enters into an individual evaluation loop (step S433), for example, in which 20 individuals that are initial generation individuals are evaluated.
First, the area number management variable a, the area full-circle search completion flag f, and the inter-area movement maximum cost management variable Cmax are initialized (step S434). That is, the area number management variable a is set to 1, the area full-circle search completion flag f is set to 0, and the inter-area movement maximum cost management variable Cmax is set to 0.
Next, it is determined whether the area full search completion flag is set (step S435), that is, whether the area full search completion flag f is 1 or not.
If the area full search completion flag f is not 1 (No in step S435), the travel cost for traveling around the ath area using the travel pattern specified by the genetic information array G[p][a][2] is downloaded from the database and added to the travel cost C[p] (step S436).
Next, it is determined whether the genetic information sequence G[p][a][2] indicates the first area where processing has started (step S437).
Thereafter, the process proceeds to the process of creating an inter-area route and calculating travel costs.
If the answer is No in step S437, the process then proceeds to step S440 to create an inter-area route and calculate a travel cost.
That is, if the answer is Yes in step S437, that is, if the value of G[p][a][2] (the number of the next area to proceed to) is the area number where processing began, then the search area (each area) has been circumnavigated, and after setting the area circumnavigation completed flag f to 1, it is determined whether it is possible to move in a straight line from the ath area to the first area (step S439), and the process proceeds to the creation of an inter-area route and the calculation of travel costs.

ステップS437でNoの場合、a番目のエリアから遺伝情報配列[p][a][2]に設定されたエリアへ直線で移動できるか否かを判定する(ステップS440)。直線で移動できる場合(ステップS440でYes)、a番目のエリアのゴール地点から遺伝情報配列G[i][a][1]番目のエリアのスタート地点へ直線で移動した場合の移動コストCtravelを計算する(ステップS441)。
また、直線で移動できない場合(ステップS440でNo)、a番目のエリアのゴール地点から遺伝情報配列G[p][a][1]番目のエリアのスタート地点への経路を経路探索アルゴリズム(例えば、前提技術で説明したA*アルゴリズム等)を用いて計算し、その経路に基づいて当該経路の移動コストCtravelを計算する(ステップS442)。
ステップS441又はステップS442の後に、Ctravel>Cmaxか否かを判定する(ステップS443)。
Ctravel>Cmaxでなければ(ステップS443でNo)、a番目のエリアのゴール地点からG[p][a][1]番目のエリアのスタート地点への移動コストを移動コストC[p]に加算して(ステップS444)、その後、G[p][a][1]をaに設定する(ステップS446)。
Ctravel>Cmaxであれば(ステップS443でYes)、CmaxをCtravelにするとともに、G[p][a][1]に設定されたエリアの番号を走行開始エリア番号Sに設定し(ステップS445)、その後、ステップS444に進む。
つまり、ステップS443の判断後のCmaxに残っている移動コストを持つエリア間ルートが、個体(巡回ループ)の最大エリア間ルートとなる。
尚、ステップS439での判断でYesの場合は、ステップS442に進み、ステップS439での判断でNoの場合は、ステップS441に進む。
以上のように、エリア間ルートの作成処理及び移動コスト計算処理を行った後、ステップS435に戻る。
If the answer is No in step S437, it is determined whether it is possible to move in a straight line from the a-th area to the area set in the genetic information array [p][a][2] (step S440). If it is possible to move in a straight line (Yes in step S440), the movement cost Ctravel for moving in a straight line from the finish point in the a-th area to the start point in the genetic information array G[i][a][1] is calculated (step S441).
Furthermore, if it is not possible to move in a straight line (No in step S440), a route from the finish point in the ath area to the start point in the genetic information array G[p][a][1]th area is calculated using a route search algorithm (for example, the A* algorithm described in the prerequisite technology), and the travel cost Ctravel of that route is calculated based on that route (step S442).
After step S441 or step S442, it is determined whether Ctravel>Cmax (step S443).
If Ctravel > Cmax is not satisfied (No in step S443), the travel cost from the goal point of the ath area to the start point of the G[p][a][1]th area is added to the travel cost C[p] (step S444), and then G[p][a][1] is set to a (step S446).
If Ctravel > Cmax (Yes in step S443), Cmax is set to Ctravel, and the area number set in G[p][a][1] is set as the travel start area number S (step S445), and then the process proceeds to step S444.
That is, the inter-area route having a travel cost remaining in Cmax after the determination in step S443 becomes the maximum inter-area route of the individual (circulating loop).
If the determination in step S439 is Yes, the process proceeds to step S442, and if the determination in step S439 is No, the process proceeds to step S441.
After the inter-area route creation process and travel cost calculation process have been performed as described above, the process returns to step S435.

エリア一周探索済みフラグfが1であれば(ステップS435でYes)、C[i]←C[i]-Cmaxに設定し(ステップS447)、その後、Cbestが初期状態であるか否か、又は、最適移動コストCbest>C[i]であるか否かを判定する(ステップS448)。尚、ステップS447での右側のC[i]は巡回ループの移動コストであり、ステップS447での左側のC[i]は巡回ルートの移動コストとなる。
Cbestが初期状態であるか、又は、最適コスト変数Cbest>C[i]である場合(ステップS448でYes)、巡回ルートの移動コストC[i]を最適コスト変数Cbestに設定するとともに、最適遺伝情報保存配列Gbest[1~amax][1~2]をG[p][1~amax][1~2]に設定した後、pをp+1に設定する(ステップS450)。
即ち、ステップS447~ステップS449において、C[i]は、作成された各個体(巡回ループ)に基づいて作成された巡回ルートの移動コストである。
今回作成した巡回ルートの移動コストC[i]が、今までに作成した巡回ルートの最適移動コストCbestよりも小さい場合には、ステップS449において、移動コストC[i]を最適移動コストCbestに書き換えて、当該移動コストC[i]を持つ巡回ルートの元となった巡回ループ(個体)の遺伝情報保存配列であるG[p][1~amax][1~2]を最適遺伝情報保存配列Gbest[1~amax][1~2]に書き換える更新処理をおこなっている。即ち、ステップS449において、各世代毎の最適巡回ループ(移動コストが最も小さい巡回ループ)の元となる巡回ループ(個体)を記録している。
Cbestが初期状態でなく、又は、最適コスト変数Cbest>C[i]でもない場合(ステップS448でNo)は、ステップS450に進んで、次の個体pの評価に移行する。
ステップS433からステップS450の処理を繰り返して、世代のすべての個体、例えば、世代毎の20個の個体のエリア間ルートの作成処理及び移動コスト計算処理が終了したら、当該世代が最終世代か否かを判定する(ステップS451)。
最終世代でなければ(ステップS451でNo)、例えば世代毎の20個作成される個体(巡回ループ)の各移動コストC[1~20]の中からコストの低い順に4個体をソートし、各移動コストC[1~4]、及び、遺伝情報配列G[1~4][1~2]にその個体の情報を移し替える(ステップS452)。即ち、当該コストの低い4個体を、後世代の個体を作成するための親として選出し、当該各親の移動コストC[1~4]、及び、各遺伝情報配列G[1~4][1~2]を記録にしておく。
最終世代であれば(ステップS451でYes)、GAを終了する。この終了時点で、最適遺伝情報保存配列Gbest[1~amax][1~2]に記録されている遺伝情報(巡回情報)に基づく巡回ループの移動コストからCmaxを引いた移動コストを持つ巡回ルートが、GAによる探索結果で作成された巡回ルートとなる。即ち、ステップS453において、Gbestを記録した巡回ループの情報、即ち、最適巡回情報配列Gbest[1~amax][1~2]に記録されているルート情報と、このルート情報を基に移動したときのエリア間ルートの軌跡情報と、Sに記録されている走行開始エリア番号をファイルに保存する。このファイルに保存された内容が、GAにより求まった最終の巡回ルートであり、この巡回ルートの情報と巡回ルートの移動コストCbestとが表示画面D上に表示されることにより、使用者は、GAにより求まった最終の巡回ルートを確認できる。
If the area full search completion flag f is 1 (Yes in step S435), C[i] is set to C[i] - Cmax (step S447), and then it is determined whether Cbest is in the initial state or whether the optimal travel cost Cbest > C[i] (step S448). Note that C[i] on the right in step S447 is the travel cost of the circular loop, and C[i] on the left in step S447 is the travel cost of the circular route.
If Cbest is in the initial state or the optimal cost variable Cbest>C[i] (Yes in step S448), the travel cost C[i] of the travel route is set to the optimal cost variable Cbest, and the optimal genetic information storage array Gbest[1 to amax][1 to 2] is set to G[p][1 to amax][1 to 2], and then p is set to p+1 (step S450).
That is, in steps S447 to S449, C[i] is the travel cost of the tour route created based on each individual (tour loop) created.
If the travel cost C[i] of the newly created circular route is smaller than the optimal travel cost Cbest of the circular routes created so far, in step S449, the travel cost C[i] is rewritten to the optimal travel cost Cbest, and an update process is performed in which the genetic information storage array G[p][1 to amax][1 to 2] of the circular loop (individual) that was the basis for the circular route with the travel cost C[i] is rewritten to the optimal genetic information storage array Gbest[1 to amax][1 to 2]. That is, in step S449, the circular loop (individual) that was the basis for the optimal circular loop (circular loop with the smallest travel cost) for each generation is recorded.
If Cbest is not in the initial state or the optimal cost variable Cbest>C[i] is not satisfied (No in step S448), the process proceeds to step S450 to move on to the evaluation of the next individual p.
The processes from step S433 to step S450 are repeated until the process of creating inter-area routes and calculating travel costs for all individuals in a generation, for example, 20 individuals per generation, is completed. Then, it is determined whether the generation is the final generation (step S451).
If it is not the final generation (No in step S451), for example, four individuals are sorted in ascending order of cost from the movement costs C[1-20] of the 20 individuals (cyclic loops) created for each generation, and the information of those individuals is transferred to their respective movement costs C[1-4] and genetic information arrays G[1-4][1-2] (step S452). That is, the four individuals with the lowest costs are selected as parents for creating individuals of the next generation, and the movement costs C[1-4] and genetic information arrays G[1-4][1-2] of those parents are recorded.
If it is the final generation (Yes in step S451), the GA is terminated. At this termination point, the circular route having a travel cost calculated by subtracting Cmax from the travel cost of the circular loop based on the genetic information (circulation information) recorded in the optimal genetic information storage array Gbest[1 to amax][1 to 2] is the circular route created as a result of the search by the GA. That is, in step S453, the information on the circular loop that recorded Gbest, i.e., the route information recorded in the optimal circular information array Gbest[1 to amax][1 to 2], the trajectory information of the inter-area route when traveling based on this route information, and the travel start area number recorded in S are saved in a file. The content saved in this file is the final circular route determined by the GA, and the information on this circular route and the travel cost Cbest of the circular route are displayed on the display screen D, allowing the user to confirm the final circular route determined by the GA.

コンピュータは、交叉処理プログラムの手順に従って、図36のフローチャートに示すような、後世代個体作成処理としての交叉処理(phase3-1)を行う。
まず、個体識別変数の初期化をする。即ち、個体識別変数pを5に設定する(ステップS460)。
遺伝情報配列G[1~20][1~amax][1~2]をphase2から引き継ぐ(ステップS461)。
遺伝情報配列G[5~20][1~amax][1~2]を初期化し空にする(ステップS462)。つまり、phase2から引き継いだ例えば20個体のうち、移動コストが大きい例えば16個体の情報を無くす(前世代の16個体を死滅させる)。
次に、交叉処理によって、子を例えば12個体作るループに入る。ここで、p<=16(即ちp≦16)である(ステップS463)。
尚、後世代の子個体は、例えば後世代個体総数20-後世代親個体4=16個体であるが、交叉処理では、12個の子個体を作成し、後述する突然変異処理(phase3-2)にて、4個の子個体を作成する。
The computer performs crossover processing (phase 3-1) as a process for creating successive generation individuals, as shown in the flowchart of FIG. 36, in accordance with the procedure of the crossover processing program.
First, the individual identification variable is initialized, that is, the individual identification variable p is set to 5 (step S460).
The genetic information sequence G[1-20][1-amax][1-2] is inherited from phase 2 (step S461).
The genetic information array G[5-20][1-amax][1-2] is initialized to empty (step S462). That is, of the 20 individuals inherited from phase 2, for example, information on 16 individuals with high migration costs is deleted (the 16 individuals of the previous generation are killed).
Next, a loop is entered in which, for example, 12 offspring are created by crossover processing, where p<=16 (i.e., p≦16) (step S463).
The number of offspring individuals in the next generation is, for example, 20 (total number of offspring individuals in the next generation) - 4 (parent individuals in the next generation), or 16. In the crossover process, 12 offspring individuals are created, and in the mutation process (phase 3-2) described below, 4 offspring individuals are created.

4つの親個体から2個体を選ぶ。選び方は予め決められた手順で行う(ステップS464)。4つの親個体から2個体をランダムに選んでもよいが、同じ親個体を選んでしまうことなどがあり、多様性が出にくい可能性がある。そこで、例えば、4つの親個体から2個体を選ぶ組み合わせ求め、この組み合わせの内、いずれかの親個体の組み合わせを1つ選ぶ。ここでは、12個の子個体を作成するため、親個体の組み合わせを12回求める。
選ばれた親個体のうち一方の親個体の遺伝情報を配列P1[1~amax][1~2]にコピーするとともに、他方の親個体の遺伝情報を配列P2[1~amax][1~2]にコピーする(ステップS465)。
そして、エリア番号管理変数の初期化、即ち、エリア番号管理変数aを1に設定する(ステップS466)。
また、親P1からの遺伝可否判断フラグの初期化、即ち、フラグf1を0にするとともに、親P2からの遺伝可否判断フラグの初期化、即ち、フラグf2を0にする(ステップS467)。
以上により交叉処理に移るための事前処理が終わり、次に、ステップS468に進んで、a=1かつp番目の個体の遺伝情報交叉処理を1回以上行ったか否かを判定する。つまり、p番目の個体の遺伝情報がエリアを一周して戻ってこられる状態になったか否か、即ち、遺伝情報に基づいて各エリアを一巡するp番目の巡回ループが作成されたか否かを判定し、当該ステップS468での判断がNoである場合、交叉処理に移行する
尚、交叉処理とは、子個体(後世代巡回ループ)を作る際に、親個体の巡回情報を引き継ぐ処理(後述の処理B2)、又は、親個体の巡回情報を引き継げない場合にランダムに巡回情報を設定する処理(後述の処理B4,B3)のことをいう。
Two individuals are selected from four parent individuals. The selection method is performed according to a predetermined procedure (step S464). Two individuals can be selected randomly from the four parent individuals, but there is a possibility that the same parent individual will be selected, making it difficult to achieve diversity. Therefore, for example, combinations of two individuals are selected from the four parent individuals, and one of these combinations is selected from any of the parent individual combinations. Here, to create 12 child individuals, 12 combinations of parent individuals are obtained.
The genetic information of one of the selected parent individuals is copied to array P1[1 to amax][1 to 2], and the genetic information of the other parent individual is copied to array P2[1 to amax][1 to 2] (step S465).
Then, the area number control variable is initialized, that is, the area number control variable a is set to 1 (step S466).
Also, the flag for determining whether or not the inheritance from the parent P1 is to be initialized, that is, flag f1 is set to 0, and the flag for determining whether or not the inheritance from the parent P2 is to be initialized, that is, flag f2 is set to 0 (step S467).
This completes the pre-processing for moving on to the crossover process, and then the process proceeds to step S468, where it is determined whether or not the crossover process for the genetic information of the pth individual where a=1 has been performed one or more times. That is, it is determined whether or not the genetic information of the pth individual has reached a state where it can go around the area and return, that is, whether or not the pth cyclic loop that goes around each area has been created based on the genetic information. If the determination in step S468 is No, the process proceeds to the crossover process. Note that the crossover process refers to the process of inheriting the cyclic information of the parent individual when creating a child individual (subsequent generation cyclic loop) (process B2 described below), or the process of randomly setting the cyclic information when the cyclic information of the parent individual cannot be inherited (processes B4 and B3 described below).

交叉処理では、まず、致死的遺伝情報の遺伝を防ぐ処理ブロックB1に移行する。
処理ブロックB1では、まず、遺伝情報配列G[p][1~amax][1~2]の中に空の要素が2個以上残っているか否かを判定する(ステップS469)。
ステップS469での判断がYesである場合、P1[a][1]=1であるか、若しくは、今回作成しようとしているG[p][1~amax][1](各エリアに設定される遺伝情報である行先エリアの情報)に既にP1[a][1]と同じ値が記録されているか否かを判定する(ステップS470)。
ステップS470での判断がNoである場合、P2[a][1]=1であるか、若しくは、今回作成しようとしているG[p][1~amax][2](各エリアに設定される遺伝情報である巡回パターンの情報)に既にP2[a][1]と同じ値が記録されているか否かを判定する(ステップS471)。
ステップS471での判断がNoである場合は、基本的な交叉処理ブロックB2に移行する。
ステップS470での判断がYesである場合、遺伝情報として同じ情報が設定されることを回避するために、親P1からの遺伝は不可と判断し、フラグf1に1を設定した後、ステップS471に進む。
ステップS471での判断がYesである場合、遺伝情報として同じ情報が設定されることを回避するために、親P2からの遺伝は不可と判断し、フラグf2に1を設定した後、基本的な交叉処理ブロックB2のステップS472に進む。
即ち、ステップS480、ステップS483、ステップS484によって、盲腸線をもたらす致死的遺伝情報や複数ループをもたらす致死的遺伝情報が遺伝されないようにしている。換言すれば、交叉処理において、必ず1つのループを形成する遺伝情報配列が作成されるようにしている。
In the crossover process, the process first proceeds to process block B1, which prevents the inheritance of lethal genetic information.
In processing block B1, it is first determined whether or not two or more empty elements remain in the genetic information array G[p][1 to amax][1 to 2] (step S469).
If the determination in step S469 is Yes, it is determined whether P1[a][1] = 1 or whether the same value as P1[a][1] is already recorded in G[p][1 to amax][1] (destination area information, which is genetic information set for each area) that is being created (step S470).
If the determination in step S470 is No, it is determined whether P2[a][1] = 1 or whether the same value as P2[a][1] is already recorded in G[p][1 to amax][2] (information on the cyclic pattern, which is genetic information set in each area) that is being created (step S471).
If the determination in step S471 is No, the process proceeds to basic crossover processing block B2.
If the determination in step S470 is Yes, in order to avoid setting the same information as genetic information, it is determined that inheritance from parent P1 is not possible, flag f1 is set to 1, and then the process proceeds to step S471.
If the judgment in step S471 is Yes, in order to avoid setting the same information as genetic information, it is determined that inheritance from parent P2 is not possible, flag f2 is set to 1, and then the process proceeds to step S472 of basic crossover processing block B2.
That is, steps S480, S483, and S484 prevent the inheritance of lethal genetic information that leads to cecal gland formation or multiple loops. In other words, the crossover process ensures that a genetic information sequence that always forms one loop is created.

基本的な交叉処理ブロックB2では、まず、ステップS472において、フラグf1=0でかつフラグf2=0か否かを判定する。即ち、どちらの親からも遺伝可能か否かを判定する。
ステップS472での判断がNoである場合は、フラグf1=1でかつフラグf2=0か否かを判定する。即ち、親P1だけ遺伝不可能か否かを判定する(ステップS473)。
ステップS473での判断がNoである場合は、フラグf1=0でかつフラグf2=1か否かを判定する。即ち、親P2だけ遺伝不可能か否かを判定する(ステップS474)。
基本的な交叉処理ブロックB2において、ステップS472での判断がYesである場合は、1~100までの数値を用意してその中から1つ抜き出してその数値が51以上の数値であるか否かを判定する(ステップS485)。尚、数値1及び0を用意し、抽出した数値が1であるか否かを判定してもよい。
即ち、ステップS472での判断がYesである場合は、親P1又は親P2のいずれからでも遺伝可能であるので、どちらの親から遺伝させるかを、ステップS485でランダムに選択している。
ステップS485での判断がYesである場合は、親P1から遺伝情報を引き継ぐ。即ち、G[p][a][1]をP1[a][1]に、G[p][a][2]をP1[a][2]に置き換える(ステップS486)。その後、aをG[p][a][1]に置き換えて(ステップS478)、ステップS467に戻る。
ステップS485での判断がNoである場合は、親P2から遺伝情報を引き継ぐ。即ち、G[p][a][1]をP2[a][1]に、G[p][a][2]をP2[a][3]に置き換える(ステップS487)。その後、aをG[p][a][1]に置き換えて(ステップS478)、ステップS467に戻る。
In the basic crossover processing block B2, first, in step S472, it is determined whether flag f1 = 0 and flag f2 = 0. In other words, it is determined whether the trait can be inherited from either parent.
If the determination in step S472 is No, it is determined whether flag f1 = 1 and flag f2 = 0. That is, it is determined whether only parent P1 is inheritable (step S473).
If the determination in step S473 is No, it is determined whether flag f1 = 0 and flag f2 = 1. That is, it is determined whether only parent P2 is inheritable (step S474).
In the basic crossover processing block B2, if the determination in step S472 is Yes, numerical values from 1 to 100 are prepared, one is extracted from the prepared values, and it is determined whether the extracted numerical value is 51 or greater (step S485). It is also possible to prepare the numerical values 1 and 0, and determine whether the extracted numerical value is 1.
That is, if the determination in step S472 is Yes, inheritance is possible from either parent P1 or parent P2, and the parent from which inheritance is to be made is selected randomly in step S485.
If the determination in step S485 is Yes, genetic information is inherited from parent P1. That is, G[p][a][1] is replaced with P1[a][1], and G[p][a][2] is replaced with P1[a][2] (step S486). Then, a is replaced with G[p][a][1] (step S478), and the process returns to step S467.
If the determination in step S485 is No, genetic information is inherited from parent P2. That is, G[p][a][1] is replaced with P2[a][1], and G[p][a][2] is replaced with P2[a][3] (step S487). Then, a is replaced with G[p][a][1] (step S478), and the process returns to step S467.

ステップS469での判断がNoである場合、即ち、遺伝情報配列G[p][1~amax][1~2]の中に空の要素が1個しか残っていない場合、盲腸線や複数ループとならないように、その1個の空のエリアの行先エリアG[p][a][1]を1にして(ステップS480)、1つのループを形成する遺伝情報配列G[p][1~amax][1~2]を作成し、その1個の空のエリアの巡回パターンG[p][a][2]を親P1又は親P2から遺伝させる(処理B3)。
また、ステップS474での判断がNoである場合は、フラグf1=1でかつフラグf2=1であり、親P1、親P2のいずれからも遺伝不可能であるので、今、交叉処理を行っているエリアの行先エリアG[p][a][1]を、既に設定されているエリア以外にエリアにランダムに設定する(処理B4)。
即ち、ステップS474での判断がNoである場合は、ステップS475に進み、エリア2~amaxの中から、G[p][1~amax][1]に既に存在する値以外を無作為に選んで、G[p][a][1]に代入し(ステップS475)、その後、処理ブロックB3のステップS476に移行して、今、交叉処理を行っているエリアの巡回パターンG[p][a][2]を、親P1又は親P2から遺伝させる(処理B3)。
If the determination in step S469 is No, that is, if there is only one empty element remaining in the genetic information array G[p][1 to amax][1 to 2], the destination area G[p][a][1] of that one empty area is set to 1 (step S480) to prevent a dead end or multiple loops, and a genetic information array G[p][1 to amax][1 to 2] that forms one loop is created, and the cyclic pattern G[p][a][2] of that one empty area is inherited from parent P1 or parent P2 (process B3).
Also, if the judgment in step S474 is No, flag f1 = 1 and flag f2 = 1, and inheritance is not possible from either parent P1 or parent P2, so the destination area G[p][a][1] of the area currently undergoing crossover processing is randomly set to an area other than the areas already set (process B4).
That is, if the judgment in step S474 is No, proceed to step S475, where a value other than the value already existing in G[p][1 to amax][1] is randomly selected from areas 2 to amax and assigned to G[p][a][1] (step S475), and then proceed to step S476 in processing block B3, where the cyclic pattern G[p][a][2] of the area currently undergoing crossover processing is inherited from parent P1 or parent P2 (processing B3).

処理ブロックB4(ステップS475)から例外的な交叉処理ブロックB3に移行する場合は、まず、ステップS476に進んで、1~100までの数値を用意してその中から1つ抜き出してその数値が51以上の数値であるか否かを判定する。尚、数値1及び0を用意し、抽出した数値が1であるか否かを判定してもよい。
ステップS476での判断がNoである場合、親P1から巡回パターンの遺伝情報を引き継ぐ。即ち、G[p][a][2]をP1[a][2]に置き換える(ステップS477)。その後、aをG[p][a][1]に置き換えて(ステップS478)、ステップS467に戻る。
ステップS476での判断がYesである場合、親P2から巡回パターンの遺伝情報を引き継ぐ。即ち、G[p][a][2]をP2[a][2]に置き換える(ステップS479)。その後、aをG[p][a][1]に置き換えて(ステップS478)、ステップS467に戻る。
When moving from processing block B4 (step S475) to exceptional crossover processing block B3, first proceed to step S476, prepare numbers from 1 to 100, extract one from the number, and determine whether the number is equal to or greater than 51. Alternatively, prepare the numbers 1 and 0, and determine whether the extracted number is 1.
If the determination in step S476 is No, the genetic information of the cyclic pattern is inherited from the parent P1. That is, G[p][a][2] is replaced with P1[a][2] (step S477). Then, a is replaced with G[p][a][1] (step S478), and the process returns to step S467.
If the determination in step S476 is Yes, the genetic information of the cyclic pattern is inherited from parent P2. That is, G[p][a][2] is replaced with P2[a][2] (step S479). Then, a is replaced with G[p][a][1] (step S478), and the process returns to step S467.

ステップS480を経て、処理ブロックB1から例外的交叉処理ブロックB3に移行する場合は、まず、ステップS481に進んで、P1[a][1]=1、かつ、P2[a][1]=1、又は、P1[a][1]≠1、かつ、P2[a][1]≠1であるか否かを判定する。
即ち、親P1のエリアaの行先エリアが1で、かつ、親P2のエリアaの行先エリアが1であること、つまり、親P1,P2のエリアaの行先エリアが共に1である場合や、親P1のエリアaの行先エリアが共に1でない場合には、その子のエリアaの巡回パターンG[p][a][1]を、親P1のエリアaの巡回パターン、又は、親P2のエリアaの巡回パターンに設定する。どちらの巡回パターンとするかは、ステップS476にてランダムに決める。
ステップS481での判断がNoである場合、P1[a][1]=1であるか否かを判定し(ステップS482)、P1[a][1]=1である場合はステップS477に進み、P1[a][1]=1でない場合はステップS479に進む。
ステップS481での判断がYesである場合は、ステップS476に進む。
また、ステップS468での判断がYesである場合は、pをp+1にした後、Phase3-2へ移行する。
When moving from processing block B1 to exceptional crossover processing block B3 via step S480, first proceed to step S481 to determine whether P1[a][1] = 1 and P2[a][1] = 1, or whether P1[a][1] ≠ 1 and P2[a][1] ≠ 1.
That is, if the destination area of area a of parent P1 is 1 and the destination area of area a of parent P2 is 1, that is, if the destination areas of areas a of parents P1 and P2 are both 1, or if the destination areas of area a of parent P1 are not both 1, then the patrol pattern G[p][a][1] of the child's area a is set to the patrol pattern of area a of parent P1 or the patrol pattern of area a of parent P2. Which patrol pattern is used is determined randomly in step S476.
If the determination in step S481 is No, it is determined whether P1[a][1] = 1 (step S482), and if P1[a][1] = 1, proceed to step S477, and if P1[a][1] = 1 is not, proceed to step S479.
If the determination in step S481 is Yes, the process proceeds to step S476.
If the determination in step S468 is Yes, p is set to p+1, and then the process proceeds to Phase 3-2.

図36の交叉処理の流れを説明する。
子個体の作成において、最初は、ステップS468、ステップS469、ステップS470、ステップS471、ステップS472と進んで、ステップS472でYesとなり、ステップS485を経て、子個体のエリア1の遺伝情報(エリア1の巡回パターン、エリア1から次の行先エリア)が、親P1又は親P2から引き継がれる(基本交叉(ステップS486又はステップS487))。そして、エリア番号管理変数aが、子個体のエリア1の遺伝情報である次の行先エリアG[p][a][1]に設定される(ステップS478)。
また、ステップS469でYesであり、ステップS474まで進んで、親P1又は親P2のどちらからも遺伝情報を引き継げない場合(ステップS474でNo)には、エリア2~amax(図42ではamax=10)の中から、未だ行先エリアとして設定されていないエリアがランダムに選ばれて次の行先エリアG[p][a][1]に設定される(ステップS475(例外的交叉))とともに、ステップS476に進んで、エリアaの巡回パターン[p][a][2]が、親P1又は親P2から引き継がれる(ステップS477又はステップS479(例外的交叉))。
また、ステップS469での判断がNoである場合、即ち、遺伝情報配列G[p][1~amax][1~2]の中に空の要素が1個しか残っていない場合、G[p][a][1]を1にして(ステップS480)、複数ループをもたらす致死的遺伝情報が生じないようにしている。その後、その子の行先エリアを1としたエリアの巡回パターンG[p][a][2]を親P1又は親P2から遺伝させる(処理ブロックB3)。
また、ステップS470,ステップS483,ステップS471,ステップS484の処理により、盲腸線をもたらす致死的遺伝情報が生じないようにしている。
即ち、今回の後世代巡回ルート作成手段は、巡回ループが複数ループを形成しないように、又は、巡回ループが盲腸線を形成したりしないように、巡回ループを作成する際に巡回情報を設定するものである。
つまり、今回の後世代巡回ルート作成手段は、前回の後世代巡回ループ作成手段により作成された前回の複数の後世代巡回ループの中から移動コストの小さい巡回ルートの1つ以上を親と定義し、当該親の巡回ルートの巡回情報を引き継ぐことにより、今回の後世代巡回ルートを作成する(図36の処理B1~処理B4参照)。
また、今回の後世代巡回ルート作成手段は、今回の後世代巡回ルートを作成する段階において、まだ巡回情報が設定されていないエリアが2つ以上残っていて、かつ、まだ巡回情報が設定されていないエリアに設定する巡回情報である次に進むエリアの情報を親から引き継ぐことができない場合には、まだ巡回情報が設定されていないエリアに設定する次に進むエリアを、まだ巡回情報として設定されていないエリアの中から任意に選択する(図36の処理B4(ステップS475)参照)。
尚、上述した、まだ巡回情報が設定されていないエリアに設定する巡回情報である次に進むエリアの情報を親から引き継ぐことができない場合とは、まだ巡回情報が設定されていないエリアに引き継がせるようとする親の巡回情報である次に進むエリアの情報が、今回の後世代巡回ルートを作成する際に巡回情報を一番最初に設定したエリアである場合、及び、まだ巡回情報が設定されていないエリアに引き継がせるようとする親の巡回情報である次に進むエリアの情報が、今回の後世代巡回ルートの作成において既に使用されている場合である(図36の処理B1のステップS470,S483、S471,S484参照)。
また、今回の後世代巡回ルート作成手段は、今回の後世代巡回ルートを作成する段階において、まだ巡回情報が設定されていないエリアが1つしか残っていないと判定した場合に、当該1つ残ったエリアの巡回情報である次に進むエリアの情報を、今世代の巡回ルートを作成する際に巡回情報を一番最初に設定したエリアとする(図36の処理B1のステップS469,S480参照)。
The flow of the crossover process in FIG. 36 will be described.
In creating a child individual, first, the process proceeds to steps S468, S469, S470, S471, and S472, and if step S472 returns Yes, then step S485 is passed on to the child individual's genetic information for area 1 (area 1 circulation pattern, next destination area from area 1) from parent P1 or parent P2 (basic crossover (step S486 or step S487)). Then, the area number management variable a is set to the next destination area G[p][a][1], which is the genetic information for area 1 of the child individual (step S478).
Also, if the answer is Yes in step S469 and the process proceeds to step S474, and genetic information cannot be inherited from either parent P1 or parent P2 (No in step S474), an area that has not yet been set as a destination area is randomly selected from areas 2 to amax (amax = 10 in Figure 42) and set as the next destination area G[p][a][1] (step S475 (exceptional crossover)), and the process proceeds to step S476, where the circulation pattern [p][a][2] of area a is inherited from parent P1 or parent P2 (step S477 or step S479 (exceptional crossover)).
If the determination in step S469 is No, that is, if only one empty element remains in the genetic information array G[p][1-amax][1-2], G[p][a][1] is set to 1 (step S480) to prevent the occurrence of lethal genetic information that would lead to multiple loops. After that, the area circulation pattern G[p][a][2] with the child's destination area set to 1 is inherited from parent P1 or parent P2 (processing block B3).
Furthermore, the processes in steps S470, S483, S471, and S484 are performed to prevent the generation of lethal genetic information that would cause cecal flare-ups.
In other words, the new generation circular route creation means sets the circular information when creating a circular loop so that the circular loop does not form multiple loops or so that the circular loop does not form a dead end line.
In other words, the current next-generation circular route creation means defines one or more of the circular routes with the lowest travel costs from among the previous multiple next-generation circular loops created by the previous next-generation circular loop creation means as parents, and creates the current next-generation circular route by inheriting the circular information of the parent circular route (see processes B1 to B4 in Figure 36).
Furthermore, if, at the stage of creating the current next-generation circular route, there remain two or more areas for which circular information has not yet been set, and the information for the next area to be set, which is the circular information to be set for the areas for which circular information has not yet been set, cannot be inherited from the parent, the current next-generation circular route creation means arbitrarily selects the next area to be set for the areas for which circular information has not yet been set from among the areas for which circular information has not yet been set (see process B4 (step S475) in Figure 36).
In addition, the above-mentioned cases where the information of the next area to proceed, which is the patrol information to be set for an area for which patrol information has not yet been set, cannot be inherited from the parent are when the information of the next area to proceed, which is the patrol information of the parent that is to be inherited for an area for which patrol information has not yet been set, is the area for which patrol information was first set when creating the current next-generation patrol route, and when the information of the next area to proceed, which is the patrol information of the parent that is to be inherited for an area for which patrol information has not yet been set, has already been used in creating the current next-generation patrol route (see steps S470, S483, S471, and S484 of processing B1 in Figure 36).
Furthermore, when the current next-generation circular route creation means determines that there is only one area remaining for which no circular information has yet been set at the stage of creating the current next-generation circular route, it sets the circular information for that remaining area, which is the information for the next area to proceed to, as the area for which circular information was first set when creating the current generation circular route (see steps S469 and S480 of processing B1 in Figure 36).

処理ブロックB1について説明を補足する。
尚、致死的遺伝情報とは、エリア全体を1巡できないような個体、例えばループを複数持つ個体や盲腸線を持つ個体等を形成してしまう遺伝情報(巡回情報)のことをいう。
A supplementary explanation will be given for the processing block B1.
Here, lethal genetic information refers to genetic information (circulating information) that results in the formation of individuals that cannot complete a full circuit of the entire area, such as individuals with multiple loops or individuals with appendicitis.

例えば、図40に示す個体は、1-3-6-1というループと2-10-5-4-9-8-7という2つのループを持つ。このような遺伝情報を持つ個体では、各エリアを一巡したいというそもそもの目的を達成できない。
図41に示す個体は、次に進むエリアを7とする遺伝情報(7-Z,7-Z’)が同じ個体内に2つ存在している。加えて、次に進むエリアを7とする遺伝情報が存在していない。つまり、6-4-9-8-7-2-10-5-1-3-7に戻るとなり、7-2-10-5-1-3のループから7-8-9-4-6のルートが盲腸線化している個体である。このような遺伝情報を持つ個体でも、各エリアを一巡したいというそもそもの目的を達成できない。
For example, the individual shown in Figure 40 has two loops: 1-3-6-1 and 2-10-5-4-9-8-7. An individual with such genetic information cannot achieve the original goal of traveling around each area.
The individual shown in Figure 41 has two pieces of genetic information (7-Z, 7-Z') that specify that the next area to go to is 7. In addition, there is no genetic information that specifies that the next area to go to is 7. In other words, the individual returns to 6-4-9-8-7-2-10-5-1-3-7, and the route from the 7-2-10-5-1-3 loop to 7-8-9-4-6 becomes a dead-end line. Even an individual with this kind of genetic information cannot achieve the original goal of going around each area once.

基本的な交叉処理ブロックB2について説明を補足する。
基本的な交叉処理では、次の交叉の操作は採用した遺伝情報中の「次に進むエリア」に記された領域(エリア番号)で行う。
図42では、子のエリア1の遺伝情報giを、親1の遺伝情報3-Zから遺伝させた例である。この場合、採用した遺伝情報は(3-Z)なので、次の交叉の操作領域はエリア3となる。そして、図42では、子のエリア3の遺伝情報giを、親2の遺伝情報4-Z’から遺伝させた例を示している。
即ち、図36の処理ブロックB2では、親1又は親2の何れかから遺伝情報を遺伝させた場合には、次の交叉の操作を行うエリアaを、遺伝した遺伝情報中の「次に進むエリア」であるG[p][P][1]に設定する(ステップS478)。
そして、親1又は親2の何れからも遺伝情報を遺伝させることができない場合には、
次の交叉の操作を行うエリアであるG[p][P][1]をランダムに設定する(ステップS475、処理ブロックB4)。
A supplementary explanation will be given of the basic crossover processing block B2.
In basic crossover processing, the next crossover operation is performed in the area (area number) specified in the "next area" in the adopted genetic information.
Figure 42 shows an example in which the genetic information gi of the child's area 1 is inherited from the genetic information 3-Z of the parent 1. In this case, the adopted genetic information is (3-Z), so the operation area for the next crossover is area 3. Figure 42 also shows an example in which the genetic information gi of the child's area 3 is inherited from the genetic information 4-Z' of the parent 2.
That is, in processing block B2 of Figure 36, when genetic information is inherited from either parent 1 or parent 2, area a where the next crossover operation will be performed is set to G[p][P][1], which is the "next area to proceed to" in the inherited genetic information (step S478).
If genetic information cannot be inherited from either parent 1 or parent 2,
G[p][P][1], which is the area where the next crossover operation will be performed, is set randomly (step S475, processing block B4).

例外的な交叉処理ブロックB3,B4について説明を補足する。
通常の交叉では致死的遺伝情報が生じる可能性がある場合に、それを回避するために、下記のルールに基づく処理を行う。
The exceptional crossover processing blocks B3 and B4 will now be explained in more detail.
In cases where normal crossover may result in lethal genetic information, processing is performed based on the following rules to avoid this.

・Aパターン
いずれか一方の親の移動先エリア番号の遺伝情報について、既に自身のそのエリア番号の部分の遺伝情報が確定されているならそちらの親から遺伝情報を採ってくることを禁止する(ステップS470,ステップS483、ステップS471,ステップS484)。
図43において、子のエリア8の遺伝情報を交叉する場合、親2のエリア8の遺伝情報を採ってくると、当該遺伝情報の行先エリアである「9」は、子のエリア4の遺伝情報における行先エリアとして既に確定している(ステップS471)。よって、この交叉対象エリアcaであるエリア8の遺伝情報を、親2から遺伝情報から採ってくることを禁止する(ステップS484)。もし、交叉対象エリアcaであるエリア8の遺伝情報として、親2から遺伝情報を採ってくると、この子は複数ループを持たらす致死的遺伝情報を持つ個体となってしまう。従って、この場合、この子のエリア8の遺伝情報は親1からの遺伝情報7-Z’を遺伝させる(ステップS474,ステップS486)。
Pattern A: If the genetic information for the destination area number of one of the parents has already been determined, it is prohibited to obtain genetic information from that parent (steps S470, S483, S471, S484).
In Figure 43, when crossing the genetic information of child area 8, if the genetic information of area 8 of parent 2 is taken, the destination area of that genetic information, "9," has already been determined as the destination area in the genetic information of child area 4 (step S471). Therefore, the genetic information of area 8, which is the crossover target area ca, is prohibited from being taken from the genetic information of parent 2 (step S484). If genetic information from parent 2 were taken as the genetic information of area 8, which is the crossover target area ca, the child would become an individual with lethal genetic information that would result in multiple loops. Therefore, in this case, the genetic information of area 8 of this child is inherited as genetic information 7-Z' from parent 1 (steps S474 and S486).

・Bパターン
両方の親共に移動先エリア番号の遺伝情報について、既に自身のそのエリア番号の部分の遺伝情報が確定されているなら次に進むエリア番号の遺伝情報については親から遺伝することを禁止し(ステップS474でNo)、空き領域のエリア番号からランダムに選択する(ステップS475)。巡回パターンの遺伝情報については、何れかの親からランダムに遺伝させる。
図44においては、この子自身はエリア2もエリア8も、対応する場所の遺伝情報が既に確定している。よってこの交叉対象エリアcaであるエリア7の行先エリアは、次に進むエリア番号の遺伝情報が空き状態eaとなっている領域の番号の中からランダムに選ぶ(この例では3のみが該当するので3で確定)。
巡回パターンは親が持つこの領域の遺伝情報からランダムに選ぶ(この例ではZかS)。
つまりこの状況では、この子の交叉対象エリアcaであるエリア7において3-Zか3-Sの遺伝情報を持つことになる。
Pattern B: If both parents have already determined the genetic information for the destination area number, the genetic information for the next area number is prohibited from being inherited from the parents (No in step S474), and an area number is selected at random from the free area (step S475). The genetic information for the cyclic pattern is inherited at random from either parent.
In Figure 44, the genetic information for this child has already been determined for the corresponding locations in both area 2 and area 8. Therefore, the destination area for area 7, which is the crossover target area ca, is selected at random from the numbers of the areas where the genetic information for the next area number is in the empty state ea (in this example, only 3 applies, so 3 is determined).
The rotation pattern is chosen randomly from the genetic information in this region possessed by the parents (in this example, Z or S).
In other words, in this situation, the child will have genetic information of 3-Z or 3-S in area 7, which is the crossover target area ca.

・Cパターン
交叉対象エリアcaにおいて、両方の親共に移動先エリア番号の遺伝情報について、既に自身のそのエリア番号の部分の遺伝情報が確定され、かつ、空き領域が存在しないなら、親から遺伝することを禁止し、1を選択させる。巡回パターンの遺伝情報については、何れかの親からランダムに遺伝させる。
図45においては、この子自身はエリア4もエリア7も、対応する場所の遺伝情報が既に確定している。加えて空き状態となっている領域も存在しない。この状況においては、交叉対象エリアcaであるエリア6に、次に進むエリア番号の遺伝情報として「1」を設定する。また、巡回パターンは親が持つこの領域の遺伝情報からランダムに選ぶ(この例ではS’で確定)。つまりこの状況では、この子の交叉対象エリアcaであるエリア6においては、1-S’の遺伝情報が設定される。
Pattern C: In the crossover target area ca, if both parents have already determined the genetic information for the area number of the destination area and there is no free space, inheritance from the parents is prohibited and 1 is selected. The genetic information for the cyclic pattern is inherited randomly from one of the parents.
In Figure 45, the genetic information for the corresponding locations of area 4 and area 7 of this child itself has already been determined. In addition, there are no vacant areas. In this situation, "1" is set as the genetic information for the next area number in area 6, which is the crossover target area ca. The cyclic pattern is also selected randomly from the genetic information for this area held by the parent (determined as S' in this example). In other words, in this situation, the genetic information of 1-S' is set in area 6, which is the crossover target area ca of this child.

次に、コンピュータは、突然変異処理プログラムの手順に従って、図37のフローチャートに示すような、突然変異処理(phase3-2)を行う。尚、当該突然変異処理は、多様性を失わせないために行う処理である。
まず、個体識別変数の初期化を行う。即ち、個体識別変数pを17に設定する(ステップS500)。
そして、遺伝情報配列G[1~20][1~amax][1~2]をphase3-1から引き継ぐ(ステップS501)。
次に、突然変異を4個体作るループに入る。ここで、p<=20である(ステップS502)。
まず、phase2で移動コストが低いとされた個体のコピーを作る。即ち、G[p][1~amax][1~2]をG[p-16][1~amax][1~2]に置き換える(ステップS503)。即ち、p=20の場合、4つの個体のコピー(クローン)を作る。
次に、1~100までの数値を用意してその中から1つ抜き出してその数値が51以上の数値であるか否かを判定する(ステップS504)。尚、数値1及び0を用意し、抽出した数値が1であるか否かを判定してもよい。
Next, the computer performs mutation processing (phase 3-2) according to the procedure of the mutation processing program, as shown in the flowchart of Fig. 37. Note that this mutation processing is performed to prevent the loss of diversity.
First, the individual identification variable is initialized, that is, the individual identification variable p is set to 17 (step S500).
Then, the genetic information sequence G[1 to 20][1 to amax][1 to 2] is inherited from phase 3-1 (step S501).
Next, a loop is entered in which four mutations are generated, where p<=20 (step S502).
First, copies are made of individuals that were determined to have low movement costs in phase 2. That is, G[p][1 to amax][1 to 2] is replaced with G[p-16][1 to amax][1 to 2] (step S503). That is, when p = 20, copies (clones) of four individuals are made.
Next, numerical values from 1 to 100 are prepared, one is extracted from the number, and it is determined whether the number is 51 or greater (step S504). It is also possible to prepare the numerical values 1 and 0, and determine whether the extracted number is 1.

ここで、G[p][P2][1]、G[p][P1][1]について説明する。
ステップS501において、複数の個体を構成する遺伝情報配列G[1~20][1~amax][1~2]の中から4個体の遺伝情報配列G[p-16][1~amax][1~2](即ち、G[1~4][1~amax][1~2])を引き継いだとする。この4個体の遺伝情報配列G[p-16][1~amax][1~2]のうちの1個体の巡回情報配列が例えば図38(a)に示す巡回情報配列である場合、当該巡回情報配列によって、図38(b)に示すような巡回ループが作成され、当該巡回情報配列に突然変異処理が施される。
Here, G[p][P2][1] and G[p][P1][1] will be explained.
In step S501, it is assumed that genetic information sequences G[p-16][1 to amax][1 to 2] (i.e., G[1 to 4][1 to amax][1 to 2]) of four individuals are inherited from the genetic information sequences G[1 to 20][1 to amax][1 to 2] that make up a plurality of individuals. If the cyclic information sequence of one of these four genetic information sequences G[p-16][1 to amax][1 to 2] is the cyclic information sequence shown in Figure 38(a), for example, a cyclic loop such as that shown in Figure 38(b) is created by the cyclic information sequence, and mutation processing is performed on the cyclic information sequence.

ステップS504での判断がNoである場合、エリア番号1~amaxの中から値を無作為に1つ選んで、P1に代入する(ステップS505)とともに、エリア番号1~amaxの中から値を無作為に1つ選んで、P2に代入する(ステップS506)。
その後、ステップS507に進んで、P1とP2とが同じか否か、G[p][P2][1]とP1とが同じか否か、若しくは、G[p][P1][1]とP2とが同じか否かを判定する。
当該ステップS507でYesの場合は、ステップS506に戻って、P2を選び直す。
ステップS507でNoの場合は、ステップS508に進んで、PtmpをG[p][P2][1]に設定する。
次に、ステップS509に進んで、G[p][1~amax][1]=P2となるようなエリア番号aを探索し、このようなエリア番号aを発見できたか否かを判定する。
ステップS509でNoの場合は、mを-1に設定する(ステップS510)。
ステップS509でYesの場合は、mをaに設定する(ステップS511)。つまり、P2に代入されているエリアを次の移動先としている別のエリアが存在していれば、その別のエリアの番号aをmに代入する。
ステップS510の後、又は、ステップS511の後は、ステップS512に進んで、G[p][P1][1]をP2に設定する。
そして、この処理ブロックを取るのは1回目か否かを判定する(ステップS513)。
ステップS513でYesの場合、ステップS514に進んで、m=-1か否かを判定する。
ステップS513でNoの場合、G[p][P2][1]に設定されている巡回パターンを反転させ(ステップS515)、その後、ステップS514に進む。
ステップS514でNoの場合、ステップS516に進んで、P1をP2に設定するとともに、P2をmに設定した後、ステップS509に戻る。
ステップS514でYesの場合、ステップS517に進んで、G[p][P2][1]をPtmpに設定した後、ステップS518に進んで、G[p][P2][2]に設定されている巡回パターンを反転させ、その後、pをp+1にし(ステップS519)、P=20がクリアしていれば、その後、phase2のステップS431に進む。
即ち、ステップS504での判断がNoである場合、GAでのエリア間ルートの改変処理を行う。
つまり、今回の後世代巡回ルート作成手段は、前回の後世代巡回ルート作成手段により作成された前回の複数の後世代巡回ルートの中から移動コストの小さい巡回ルートを抽出して、当該抽出された巡回ルートを作成する元となった巡回ループのエリア間のルートを変更するエリア間ルート改変処理手段を備え、エリア間ルート改変処理手段は、上述した巡回ループの各エリアのうちから異なる任意の第1のエリアと第2のエリアとを任意に選択する第1ステップ(ステップS505,ステップS506)と、第2のエリアの巡回情報として設定されている次に進むエリアの情報を保留情報として記録しておく第2ステップ(ステップS508)と、第2のエリアの巡回情報として設定されている次に進むエリアの情報を巡回情報として持っているエリアを探索して当該エリアの有無を判定する第3ステップ(ステップS509)と、第1のエリアの巡回情報に設定する次に進むエリアの情報として、第2のエリアを設定する第4ステップ(ステップS512)と、第4ステップの処理を行うのが初めてではない場合に、第2のエリアの巡回情報に設定されている巡回パターンを反転させる第5ステップ(ステップS515)と、第3ステップでの判定結果が有であった場合(ステップS514でNo)、第4ステップの後、又は、第5ステップの後において、第1のエリアを第2のエリアに変更するとともに、第2のエリアを第3ステップで探索されたエリアに変更した後に、第3ステップの処理に戻る第6ステップ(ステップS516)と、第3ステップでの判定結果が無であった場合(ステップS514でYes)、第4ステップの後、又は、第5ステップの後において、保留情報を第2のエリアの巡回情報としての次に進むエリアとして設定するとともに、第2のエリアの巡回情報に設定されている巡回パターンを反転させる第7ステップ(ステップS517,ステップS518)とを備えた構成とした。
If the determination in step S504 is No, one value is randomly selected from area numbers 1 to amax and assigned to P1 (step S505), and one value is randomly selected from area numbers 1 to amax and assigned to P2 (step S506).
Then, the process proceeds to step S507, where it is determined whether P1 and P2 are the same, whether G[p][P2][1] and P1 are the same, or whether G[p][P1][1] and P2 are the same.
If the answer is Yes in step S507, the process returns to step S506 and P2 is selected again.
If the answer is No in step S507, the process proceeds to step S508, where Ptmp is set to G[p][P2][1].
Next, the process proceeds to step S509, where an area number a that satisfies G[p][1 to amax][1]=P2 is searched for, and it is determined whether or not such an area number a has been found.
If the answer is No in step S509, m is set to -1 (step S510).
If the answer is Yes in step S509, m is set to a (step S511). In other words, if there is another area that has the area assigned to P2 as the next destination, the number a of that other area is assigned to m.
After step S510 or step S511, the process proceeds to step S512, where G[p][P1][1] is set to P2.
Then, it is determined whether this processing block is being taken for the first time (step S513).
If the answer is Yes in step S513, the process proceeds to step S514, where it is determined whether m=-1.
If the answer is No in step S513, the cyclic pattern set in G[p][P2][1] is reversed (step S515), and then the process proceeds to step S514.
If the answer is No in step S514, the process proceeds to step S516, where P1 is set to P2 and P2 is set to m, and then the process returns to step S509.
If the answer is Yes in step S514, proceed to step S517, set G[p][P2][1] to Ptmp, then proceed to step S518, invert the cyclic pattern set in G[p][P2][2], then set p to p+1 (step S519), and if P=20 is cleared, proceed to step S431 of phase 2.
That is, if the determination in step S504 is No, the inter-area route is modified in GA.
That is, the current next-generation circular route creation means comprises inter-area route modification processing means for extracting a circular route with a low travel cost from among the previous plurality of next-generation circular routes created by the previous next-generation circular route creation means, and modifying the route between the areas of the circular loop that was the basis for creating the extracted circular route, and the inter-area route modification processing means includes a first step (steps S505 and S506) of arbitrarily selecting a different first area and a different second area from each area of the above-mentioned circular loop, a second step (step S508) of recording information of the next area to be advanced to that is set as the circular information of the second area as reserved information, a third step (step S509) of searching for an area that has information of the next area to be advanced to that is set as the circular information of the second area as circular information, and determining whether or not said area exists, and a third step (step S509) of selecting the second area as the information of the next area to be advanced to that is set as the circular information of the first area. The method includes a fourth step (step S512) of setting an area, a fifth step (step S515) of reversing the cyclic pattern set in the cyclic information of the second area if this is not the first time that the processing of the fourth step is being performed, a sixth step (step S516) of changing the first area to the second area and changing the second area to the area searched in the third step after the fourth step or the fifth step if the judgment result in the third step is yes (No in step S514), and then returning to the processing of the third step, and a seventh step (steps S517 and S518) of setting the pending information as the next area to be advanced in the cyclic information of the second area and reversing the cyclic pattern set in the cyclic information of the second area if the judgment result in the third step is no (Yes in step S514) after the fourth step or the fifth step.

次に、ステップS504での判断がYesである場合の、巡回パターンの改変処理について説明する。
ステップS504においてYesと判定された場合は、エリア番号1~amaxの中から値を無作為に1つ選んで、P1に代入する(ステップS520)とともに、G[p][P][2]に既存の巡回パターン以外の巡回パターンの何れかを無作為に代入する(ステップS521)。つまり、既にG[p][P][2]に設定されている巡回パターンと同じ巡回パターンが無作為に選択された場合は、異なる巡回パターンが出るまで無作為に選び直される。
その後、ステップS519において、pをp+1にした後、phase2のステップS431に進む。
即ち、今回の後世代巡回ルート作成手段は、前回の後世代巡回ルート作成手段により作成された前回の複数の後世代巡回ルートの中から移動コストの小さい巡回ルートを抽出して、当該抽出された巡回ルートを作成する元となった巡回ループのエリア内の巡回パターンを変更する巡回パターン改変処理手段を備え、巡回パターン改変処理手段は、上述した巡回ループの各エリアから無作為に1つのエリアを選んで、当該エリアの巡回情報である巡回パターンの情報を変更する構成とした。
Next, the process of modifying the cyclic pattern when the determination in step S504 is Yes will be described.
If the determination in step S504 is Yes, one value is randomly selected from area numbers 1 to amax and assigned to P1 (step S520), and any cyclic pattern other than the existing cyclic patterns is randomly assigned to G[p][P][2] (step S521). In other words, if a cyclic pattern that is the same as the cyclic pattern already set in G[p][P][2] is randomly selected, reselections are made at random until a different cyclic pattern is found.
Thereafter, in step S519, p is set to p+1, and the process proceeds to step S431 in phase 2.
That is, the current next-generation circular route creation means is equipped with a circular pattern modification processing means that extracts a circular route with a low travel cost from the previous plurality of next-generation circular routes created by the previous next-generation circular route creation means, and modifies the circular pattern within the area of the circular loop that was the basis for creating the extracted circular route, and the circular pattern modification processing means is configured to randomly select one area from each area of the above-mentioned circular loop, and modify the circular pattern information that is the circular information for that area.

そして、ステップS431では、何世代目の処理であるかを判定する。
ステップS431の判断において「1世代(初期世代)である」と判定された場合、ステップS432に進む。
また、ステップS431の判断において「その他の世代(1世代以外)と判定された場合、ステップS453で、個体識別変数の初期化、即ち、pを例えば5に、コスト管理配列の初期化、即ち、C[1~amax][1~2]を0に、遺伝情報配列G[5~20][1~amax][1~2]をphase3から引き継いだ後に、ステップS433に進む。
Then, in step S431, it is determined which generation the process is for.
If it is determined in step S431 that the data is "first generation (initial generation)", the process proceeds to step S432.
Furthermore, if the determination in step S431 is "another generation (other than the first generation)," then in step S453, the individual identification variable is initialized, i.e., p is set to, for example, 5, the cost management array is initialized, i.e., C[1 to amax][1 to 2] is set to 0, and the genetic information array G[5 to 20][1 to amax][1 to 2] is inherited from phase 3, and then the process proceeds to step S433.

次に、図37の突然変異処理(phase3-2)におけるエリア間ルート改変処理(ステップS500~ステップS519)について、図46~図51に基づいてより具体的に説明する。
例えば、図39に示した巡回情報配列に基づいて図46(a)に示すような巡回ループが作られたとする(ステップS503)。
そして、ステップS505で、入れ替え処理が行われるエリア番号として「2」が選択されてP1に代入されたとする。この場合、図46(a)に示すように、変数の状態は、G[P1][1](エリア2から次に進むエリア)は「5」、G[P1][2](エリア2内の巡回パターン)は「Z」である(図39参照)。
次に、ステップS506で、入れ替え処理が行われるエリア番号として「3」が選択されてP2に代入されたとする。この場合、図46(b)に示すように、変数の状態は、G[P2][1](エリア3から次に進むエリア)は「6」、G[P2][2](エリア3内の巡回パターン)は「S」である(図39参照)。
次に、ステップS508で、Ptmpに、P2であるエリア3の行先エリアG[P2][1]として6を設定する。つまり、Ptmpを「6」にする(図46(c)参照)。
そして、ステップS509で、変数P2が示すエリアを移動先としているエリアが存在しているか検索する。存在していたらそのエリア番号をmに入れる(ステップS510)。この場合、変数P2が示すエリア3を移動先としているエリアはエリア4が存在する(図39参照)ので、mを「4」にする(図47(a)参照)。
次に、ステップS512で、P1「エリア2」の行先エリアG[P1][1]をP2にする。この場合、図47(b)に示すように、G[P1][1]が「3」に設定される。この場合、P1が「2」、G[P1][1]が「3」なので、エリア2とエリア5とを繋ぐエリア間ルートが解除され、その代わりに、エリア2の終点とエリア3の始点とがエリア間ルートで繋がれる(図47(b)参照)。
次に、ステップS513に進み、ステップS512の処理は初めてなので、ステップS514に進む。この場合、m=4であり、-1ではないので、ステップS516に進む。
ステップS516では、P1をP2に設定するとともに、P2をmに設定する。この場合、図48(a)に示すように、P1に「3」が設定され、P2に「4」が設定される。
その後、ステップS509に戻って、変数P2が示すエリアを移動先としているエリアが存在しているか検索する。存在していたらそのエリア番号をmに入れる(ステップS510)。この場合、変数P2が示すエリア4を移動先としているエリアはエリア5が存在する(図39参照)ので、mを「5」にする(図48(b)参照)。
そして、ステップS512に進み、P1「エリア2」の行先エリアG[P1][1]をP2にする。この場合、図48(c)に示すように、G[P1][1]が「4」に設定される。この場合、P1が「3」、G[P1][1]が「4」なので、エリア3とエリア5とを繋ぐエリア間ルートが解除され、その代わりに、エリア3の終点とエリア4の始点とがエリア間ルートで繋がれる(図48(c)参照)。
その後、ステップS513に進み、ステップS512の処理は初めてではないので、ステップS515に進む。この場合、P1であるエリア3の巡回パターンを反転する。つまり、図49(a)に示すように、エリア3の巡回パターンが、「S」パターン(図39参照)から「S’」パターンに変換される(図49(a)参照)。この場合、P1が「3」、G[P1][1]が「4」なので、巡回パターンが変更したエリア3の終点とエリア4の始点とがエリア間ルートで繋ぎ直される。また、P2が「4」、G[P2][1]が「3」なので、エリア4の終点と巡回パターンが変更したエリア3の始点とがエリア間ルートで繋ぎ直される。また、巡回パターンが変更したエリア3の始点とエリア2の終点とがエリア間ルートで繋ぎ直される。
その後、ステップS514に進む。この場合、m=5であり、ステップS516に進む。
ステップS516では、P1をP2に設定するとともに、P2をmに設定する。この場合、図49(b)に示すように、P1に「4」が設定され、P2に「5」が設定される。
その後、ステップS509に戻って、変数P2が示すエリアを移動先としているエリアが存在しているか検索する。存在していたらそのエリア番号をmに入れる(ステップS510)。この場合、図49(c)に示すように、変数P2が示すエリア5を移動先としているエリアは存在しない(図47(b)において、エリア2とエリア2の行先であったエリア5とのエリア間ルートは既に解除されている)ので、ステップS511に進んで、mが-1に設定される。
そして、ステップS512に進んで、P1「エリア4」の行先エリアG[P1][1]をP2にする。この場合、図50(a)に示すように、G[P1][1]が「5」に設定される。この場合、P1が「4」、G[P1][1]が「5」なので、エリア4とエリア3とを繋ぐエリア間ルートが解除され、その代わりに、エリア4の終点とエリア5の始点とがエリア間ルートで繋がれる(図50(a)参照)。
その後、ステップS513に進み、ステップS512の処理は初めてではないので、ステップS515に進む。この場合、P1であるエリア4の巡回パターンを反転する。つまり、図50(b)に示すように、エリア4の巡回パターンが「M」パターン(図39参照)から「M’」パターンに変換される(図50(b)参照)。この場合、P1が「4」、G[P1][1]が「5」なので、巡回パターンが変更したエリア4の終点とエリア5の始点とがエリア間ルートで繋ぎ直される。また、P2が「5」、G[P2][1]が「4」なので、エリア5の終点と巡回パターンが変更したエリア4の始点とがエリア間ルートで繋ぎ直される。また、エリア3の終点とエリア4の始点とがエリア間ルートで繋ぎ直される。
その後、ステップS514に進む。この場合、m=-1であり、ステップS517に進む。
ステップS517では、G[P2][1]をPtmpに設定する。この場合、図50(c)に示すように、G[P2][1]が6に設定され、P2=5なので、エリア5の行先がエリア6に変更されて、エリア5の終点とエリア6の始点とがエリア間ルートで繋がれる。
そして、最後に、ステップS518に進み、ステップS518では、G[P2][2]の巡回パターンを逆転させる。この場合、図51に示すように、G[P2][2](=エリア5の巡回パターン)が「Z」パターン(図39参照)から「Z’」パターンに変換される。この場合、P1が「4」、G[P1][1]が「5」なので、エリア4の終点と巡回パターンが変更したエリア5の始点とがエリア間ルートで繋がれる。また、P2が「5」、G[P2][1]が「6」なので、巡回パターンが変更したエリア5の終点とエリア6の始点とがエリア間ルートで繋がれる。
以上により、図51に示すような、全エリアをループする巡回ループが作成される。
その後、phase2のステップS431に進み、ステップS447で最も移動コストが高いエリア間ルートを削除した巡回ルートが作成されることになる。
Next, the inter-area route modification process (steps S500 to S519) in the mutation process (phase 3-2) of FIG. 37 will be described in more detail with reference to FIGS.
For example, it is assumed that a cyclic loop as shown in FIG. 46(a) is created based on the cyclic information array shown in FIG. 39 (step S503).
Then, in step S505, "2" is selected as the area number for the swapping process and assigned to P1. In this case, as shown in Figure 46(a), the state of the variables is "5" for G[P1][1] (the area to proceed to next from area 2) and "Z" for G[P1][2] (the cyclic pattern within area 2) (see Figure 39).
Next, in step S506, "3" is selected as the area number for the swapping process and assigned to P2. In this case, as shown in Figure 46(b), the state of the variables is "6" for G[P2][1] (the area to proceed to next from area 3), and "S" for G[P2][2] (the cyclic pattern within area 3) (see Figure 39).
Next, in step S508, Ptmp is set to 6 as the destination area G[P2][1] of area 3, which is P2. In other words, Ptmp is set to "6" (see FIG. 46(c)).
Then, in step S509, a search is made to see if there is an area that has the area indicated by variable P2 as its destination. If there is, the area number is entered into m (step S510). In this case, area 4 exists as an area that has area 3 indicated by variable P2 as its destination (see FIG. 39), so m is set to "4" (see FIG. 47(a)).
Next, in step S512, the destination area G[P1][1] of P1 "area 2" is set to P2. In this case, as shown in FIG. 47(b), G[P1][1] is set to "3." In this case, since P1 is "2" and G[P1][1] is "3," the inter-area route connecting area 2 and area 5 is canceled, and instead, the end point of area 2 and the start point of area 3 are connected by an inter-area route (see FIG. 47(b)).
Next, the process proceeds to step S513, and since this is the first time that step S512 has been performed, the process proceeds to step S514. In this case, m=4, not -1, so the process proceeds to step S516.
In step S516, P1 is set to P2, and P2 is set to m. In this case, as shown in Figure 48(a), P1 is set to "3" and P2 is set to "4".
Then, the process returns to step S509 to search for an area that has the area indicated by variable P2 as its destination. If an area exists, the area number is entered into m (step S510). In this case, area 5 exists as an area that has area 4 indicated by variable P2 as its destination (see FIG. 39), so m is set to "5" (see FIG. 48(b)).
Then, proceeding to step S512, the destination area G[P1][1] of P1 "area 2" is set to P2. In this case, as shown in Figure 48(c), G[P1][1] is set to "4". In this case, P1 is "3" and G[P1][1] is "4", so the inter-area route connecting area 3 and area 5 is cancelled, and instead, the end point of area 3 and the start point of area 4 are connected by an inter-area route (see Figure 48(c)).
Thereafter, the process proceeds to step S513, and since the process of step S512 is not the first time, the process proceeds to step S515. In this case, the cyclic pattern of area 3, which is P1, is inverted. That is, as shown in FIG. 49(a), the cyclic pattern of area 3 is converted from the "S" pattern (see FIG. 39) to the "S'" pattern (see FIG. 49(a)). In this case, since P1 is "3" and G[P1][1] is "4", the end point of area 3, whose cyclic pattern has been changed, and the start point of area 4 are reconnected by an inter-area route. Furthermore, since P2 is "4" and G[P2][1] is "3", the end point of area 4 and the start point of area 3, whose cyclic pattern has been changed, are reconnected by an inter-area route. Furthermore, the start point of area 3, whose cyclic pattern has been changed, and the end point of area 2 are reconnected by an inter-area route.
Then, the process proceeds to step S514. In this case, m=5, and the process proceeds to step S516.
In step S516, P1 is set to P2, and P2 is set to m. In this case, as shown in Figure 49(b), P1 is set to "4" and P2 is set to "5".
After that, the process returns to step S509 to search for an area that has the area indicated by variable P2 as its destination. If an area exists, the area number is entered into m (step S510). In this case, as shown in Figure 49(c), there is no area that has area 5 indicated by variable P2 as its destination (the inter-area route between area 2 and area 5, which was area 2's destination in Figure 47(b), has already been canceled), so the process proceeds to step S511 and m is set to -1.
Then, the process proceeds to step S512, where the destination area G[P1][1] of P1 "area 4" is set to P2. In this case, as shown in FIG. 50(a), G[P1][1] is set to "5." In this case, since P1 is "4" and G[P1][1] is "5," the inter-area route connecting area 4 and area 3 is canceled, and instead, the end point of area 4 and the start point of area 5 are connected by an inter-area route (see FIG. 50(a)).
Thereafter, the process proceeds to step S513, and since the process of step S512 is not the first time, the process proceeds to step S515. In this case, the cyclic pattern of area 4, which is P1, is inverted. That is, as shown in FIG. 50(b), the cyclic pattern of area 4 is converted from the "M" pattern (see FIG. 39) to the "M'" pattern (see FIG. 50(b)). In this case, since P1 is "4" and G[P1][1] is "5", the end point of area 4, whose cyclic pattern has been changed, and the start point of area 5 are reconnected by an inter-area route. Also, since P2 is "5" and G[P2][1] is "4", the end point of area 5 and the start point of area 4, whose cyclic pattern has been changed, are reconnected by an inter-area route. Also, the end point of area 3 and the start point of area 4 are reconnected by an inter-area route.
Then, the process proceeds to step S514. In this case, m=-1, and the process proceeds to step S517.
In step S517, G[P2][1] is set to Ptmp. In this case, as shown in Figure 50(c), G[P2][1] is set to 6 and P2 = 5, so the destination of area 5 is changed to area 6, and the end point of area 5 and the start point of area 6 are connected by an inter-area route.
Finally, the process proceeds to step S518, where the cyclic pattern of G[P2][2] is reversed. In this case, as shown in FIG. 51, G[P2][2] (= the cyclic pattern of area 5) is converted from the "Z" pattern (see FIG. 39) to the "Z'" pattern. In this case, because P1 is "4" and G[P1][1] is "5," the end point of area 4 and the start point of area 5, whose cyclic pattern has been changed, are connected by an inter-area route. Also, because P2 is "5" and G[P2][1] is "6," the end point of area 5, whose cyclic pattern has been changed, and the start point of area 6 are connected by an inter-area route.
As a result of the above, a cyclic loop that loops through all areas is created, as shown in FIG.
Thereafter, the process proceeds to step S431 of phase 2, and in step S447 a circular route is created from which the inter-area route with the highest travel cost has been deleted.

突然変異処理(phase3-2)におけるエリア間ルート改変処理(ステップS500~ステップS519)の内容を、図52に基づいてまとめると以下のようになる。
図52(a)に示すように、1回目にランダムに選ばれたエリア(P1に設定されたエリア)が2、2回目にランダムに選ばれたエリア(P2に設定されたエリア)が3であったとする。この場合、入れ替え対象となるエリア間ルートは、それぞれのエリアから次のエリアに向かっているエリア間ルートになる。即ち、エリア2からエリア5に向かうエリア間ルート、及び、エリア3からエリア6に向かうエリア間ルートとなる。
そして、図52(b)に示すように、1回目に選ばれたエリア2の行先を2回目に選んばれたエリア3に変更する。つまり、エリア2の行先をエリア5からエリア3に変更する。これにより、エリア2とエリア3とがエリア間ルートで繋がれて、エリア2とエリア5とを繋いでいたエリア間ルートが消滅する。
次に、図52(c)に示すように、1回目に選んだエリア2の元々の行先であるエリア5から2回目に選んだエリア3へと至る道中のエリア5,4,3の巡回パターン及びエリア間ルートを反転させる。このとき、一つのエリアの行先エリアは1つしか指定できないために、2回目に選ばれたエリア3から次のエリア6へと向かう元々のエリア間ルートは消滅する。
最後に、図52(d)に示すように、1回目に選んだエリア2の元々の行先のエリア5から2回目に選んだエリア3の元々の行先エリア6へ向かうルートを設定して処理が終了する。
The contents of the inter-area route modification process (steps S500 to S519) in the mutation process (phase 3-2) can be summarized as follows based on FIG.
As shown in Figure 52(a), suppose the area selected at random the first time (the area set as P1) is 2, and the area selected at random the second time (the area set as P2) is 3. In this case, the inter-area routes to be swapped are the inter-area routes from each area to the next area. That is, the inter-area route from area 2 to area 5 and the inter-area route from area 3 to area 6.
Then, as shown in Figure 52(b), the destination of Area 2, which was selected the first time, is changed to Area 3, which was selected the second time. In other words, the destination of Area 2 is changed from Area 5 to Area 3. As a result, Area 2 and Area 3 are connected by an inter-area route, and the inter-area route connecting Area 2 and Area 5 disappears.
Next, as shown in Figure 52(c), the tour pattern and inter-area route of areas 5, 4, and 3 on the way from area 5, the original destination of area 2 selected the first time, to area 3 selected the second time, are reversed. In this case, since only one destination area can be specified for one area, the original inter-area route from area 3 selected the second time to the next area 6 disappears.
Finally, as shown in FIG. 52(d), a route is set from area 5, the original destination of area 2 selected the first time, to area 6, the original destination of area 3 selected the second time, and the process ends.

即ち、突然変異処理(phase3-2)でのエリア間ルート改変処理(ステップS500~ステップS519)の内容を要約すると、1回目に選ばれたエリア(P1に設定されたエリア)から次のエリアへ向かうエリア間ルート、及び、2回目に選ばれたエリア(P2に設定されたエリア)から次のエリアへ向かうエリア間ルートを、入れ替え対象のエリア間ルートとする処理ステップと、1回目に選ばれたエリアの行先を2回目に選ばれたエリアに変更するとともに、1回目に選ばれたエリアと当該エリアの元々の行先であったエリアとを繋いでいたエリア間ルートを消滅させる処理ステップと、1回目に選んだエリアの元々の行先であるエリアから2回目に選んだエリアへと至る道中のエリアの巡回パターン及びエリア間ルートを反転させるとともに、2回目に選ばれたエリアと当該エリアの元々の行先であったエリアとを繋いでいたエリア間ルートを消滅させる処理ステップと、1回目に選んだエリアの元々の行先のエリアから2回目に選んだエリアの元々の行先のエリアへと向かうルートを設定する処理ステップとを備えた処理である。 In other words, to summarize the contents of the inter-area route modification process (steps S500 to S519) in the mutation process (phase 3-2), the process comprises the following steps: a processing step of setting the inter-area route from the area selected the first time (the area set as P1) to the next area and the inter-area route from the area selected the second time (the area set as P2) to the next area as the inter-area routes to be replaced; a processing step of changing the destination of the area selected the first time to the area selected the second time, and eliminating the inter-area route connecting the area selected the first time with the area that was originally the destination of that area; a processing step of reversing the area tour pattern and inter-area route on the way from the area that was the original destination of the area selected the first time to the area selected the second time, and eliminating the inter-area route connecting the area selected the second time with the area that was originally the destination of that area; and a processing step of setting a route from the original destination area of the area selected the first time to the original destination area of the area selected the second time.

以上説明したように、実施形態に係る巡回ルート作成装置によれば、巡回情報を用いて、巡回ルートを更新するようにしたので、複数のエリアを移動体に巡回させるための効率的な巡回ルートを作成できるようになった。
また、巡回ループに対して、交叉処理、突然変異処理を行うことで、後世代で作成される巡回ループに多様性を持たせることができるようになり、効率的な巡回ルートを作成できるようになった。
As described above, according to the tour route creation device of the embodiment, the tour route is updated using tour information, making it possible to create an efficient tour route for a mobile object to tour multiple areas.
In addition, by performing crossover and mutation processes on the circular loops, it is possible to add diversity to the circular loops created in subsequent generations, making it possible to create efficient circular routes.

尚、以下のような構成を備えた巡回ルート作成装置としてもよい。
即ち、複数のエリアの位置情報を認識して当該複数のエリアを移動体に巡回させる巡回ルートを作成するための巡回ルート作成装置であって、各エリアを一巡する巡回ループを作成する巡回ループ作成手段と、作成された巡回ループの経路を移動体で移動させる場合の移動コストを算出する移動コスト算出手段と、作成された巡回ループを形成するエリア間ルートのうち最も移動コストの大きいエリア間ルートを削除して、削除したエリア間ルートのルート終端が繋がれていたエリアを巡回ルートのスタート領域とし、かつ、削除したエリア間ルートのルート始端が繋がれていたエリアを巡回ルートのゴール領域とした各エリアを一巡する巡回ルートを作成する巡回ルート作成手段とを備えた巡回ルート作成装置において、巡回ループ作成手段は、エリア毎に巡回情報を設定することにより最初の巡回ループを作成する最初の巡回ループ作成手段と、最初の巡回ループの巡回情報を変更した巡回ループを作成する巡回ループ更新手段とを備えた構成とし、巡回ルート作成手段は、巡回ループ更新手段により作成された今回の巡回ループに基づいて作成された今回の巡回ルートの移動コストと、巡回ループ更新手段により作成された前回の巡回ループに基づいて作成された前回の巡回ルートの移動コストとを比較して、移動コストの小さい巡回ルートを残す判定手段を備えた構成としてもよい。
当該巡回ルート作成装置によれば、上述した巡回情報を用いて、巡回ループを更新し、順次、移動コストの小さい巡回ルートを残していけるので、複数のエリアを移動体に巡回させるための効率的な巡回ルートを作成できるようになる。
The route creation device may have the following configuration.
That is, the circular route creation device is for recognizing position information of a plurality of areas and creating a circular route for a mobile body to travel around the plurality of areas, and includes a circular loop creation means for creating a circular loop that goes around each area, a movement cost calculation means for calculating the movement cost when a mobile body travels along the route of the created circular loop, and a circular route creation means for deleting the inter-area route with the highest movement cost from among the inter-area routes that form the created circular loop, and creating a circular route that goes around each area, with the area that connected the end of the deleted inter-area route as the start area of the circular route and the area that connected the start end of the deleted inter-area route as the goal area of the circular route. In a circular route creation device having a circular route creation means for creating a circular route, the circular loop creation means may be configured to include initial circular loop creation means for creating an initial circular loop by setting circular information for each area, and circular loop update means for creating a circular loop by changing the circular information of the initial circular loop, and the circular route creation means may be configured to include determination means for comparing the travel cost of a current circular route created based on the current circular loop created by the circular loop update means with the travel cost of a previous circular route created based on the previous circular loop created by the circular loop update means, and for keeping the circular route with the smaller travel cost.
According to the tour route creation device, the tour information described above is used to update the tour loop, and tour routes with lower travel costs are successively retained, making it possible to create efficient tour routes for a mobile object to tour multiple areas.

また、実施形態に係る巡回ルート作成装置によれば、後世代巡回ルート作成手段が、突然変異処理におけるエリア間ルート改変処理(ステップS500~ステップS519)を行うことにより、改変(更新)される巡回ループに多様性を持たせることができるようになり、効率的な巡回ルートを作成できるようになった。
また、後世代巡回ルート作成手段が、突然変異処理としての巡回パターン改変処理(ステップS520,S521)を行うことにより、改変(更新)される巡回ループに多様性を持たせることができるようになり、効率的な巡回ルートを作成できるようになった。
Furthermore, according to the circular route creation device of the embodiment, the next generation circular route creation means performs an inter-area route modification process (steps S500 to S519) in the mutation process, thereby making it possible to add diversity to the modified (updated) circular loop, thereby making it possible to create an efficient circular route.
Furthermore, by the next generation circular route creation means performing a circular pattern modification process (steps S520, S521) as a mutation process, it is possible to add diversity to the modified (updated) circular loop, thereby enabling the creation of efficient circular routes.

また、世代数を変更することにより、巡回ルートを得るまでに要する時間を短縮したい、あるいは、より効率的な巡回ルートを得たい等の要望に合わせた巡回ルート作成処理を実現可能な巡回ルート作成装置を提供できる。 In addition, by changing the number of generations, it is possible to provide a tour route creation device that can realize a tour route creation process that meets requests such as shortening the time required to obtain a tour route or obtaining a more efficient tour route.

また、実施形態では、エリア内の巡回パターンとして、8種類の巡回パターンを例示したが、巡回パターンは、例えば、第1パターン及び第2パターンのみ、あるいは、第3パターン及び第4パターンのみ、第5パターン及び第6パターンのみ、第7パターン及び第8パターンのみを、使用するようにしてもよい。 In addition, in the embodiment, eight types of patrol patterns within an area are exemplified, but it is also possible to use, for example, only the first and second patterns, only the third and fourth patterns, only the fifth and sixth patterns, or only the seventh and eighth patterns.

また、実施形態では、エリア(移動対象領域)として、建物内の床面を移動させる例を示したが、エリアは、建物外の道路や空き地等の面であってもよい。
また、障害物Bは、柱以外の障害物、例えば間仕切り壁、固定設備、重量物等であってもかまわない。
また、エリアの位置を示すエリアのXY座標情報や障害物の位置を示すXY座標情報は、角のXY座標情報でなく、エリアの位置や障害物の位置を確認できるXY座標情報であればよい。
Furthermore, in the embodiment, an example has been shown in which the floor surface within a building is moved as the area (movement target region), but the area may also be a surface such as a road or vacant lot outside the building.
Furthermore, obstacle B may be an obstacle other than a pillar, such as a partition wall, fixed equipment, or heavy object.
Furthermore, the XY coordinate information of the area indicating the position of the area and the XY coordinate information of the obstacle indicating the position of the obstacle do not have to be the XY coordinate information of the corners, but may be any XY coordinate information that can confirm the position of the area or the position of the obstacle.

また、複数のエリア(移動対象領域)は、図12に示したように、各々隣接した複数のエリアであってもよいし、図37等に示したように、各々離間した複数のエリアであってもよい。 Furthermore, the multiple areas (movement target areas) may be multiple adjacent areas as shown in Figure 12, or multiple areas spaced apart from each other as shown in Figure 37, etc.

実施形態に係る巡回ルート作成装置によれば、例えば撮像手段(カメラ)を搭載して床面を撮影する移動体1を用いて床面検査を行う場合において、複数のエリアを移動体1に巡回させるための効率的な巡回ルートを提供できるようになるため、効率的な床面検査を行うことが可能となる。
尚、床面検査以外の目的で複数のエリアを移動体1に巡回させる場合であっても、複数のエリアを移動体1に巡回させるための効率的な巡回ルートを提供できるようになる。
According to the patrol route creation device of the embodiment, for example, when a floor inspection is performed using a mobile body 1 equipped with an imaging means (camera) to photograph the floor surface, an efficient patrol route can be provided for the mobile body 1 to patrol multiple areas, thereby making it possible to perform an efficient floor inspection.
Furthermore, even when the mobile body 1 is made to patrol a plurality of areas for purposes other than floor surface inspection, an efficient patrol route can be provided for the mobile body 1 to patrol a plurality of areas.

また、上記では、移動体の移動制御システムにおいて、移動体の実際の移動情報を取得して移動体に送信する移動情報取得手段として、自動追尾機能を備えたTS(トータルステーション)を用いた例を示したが、移動情報取得手段としては、TS以外の手段、例えば、GPS、レーザ測位システム等の移動体自己位置認識システムを用いてもよい。 In addition, in the above example, a TS (total station) with an automatic tracking function was used as the movement information acquisition means for acquiring actual movement information of a mobile object and transmitting it to the mobile object in the mobile object movement control system. However, the movement information acquisition means may also be means other than a TS, such as a mobile object self-positioning system such as a GPS or laser positioning system.

1 移動体。 1. Moving object.

Claims (10)

複数の移動対象領域の位置情報を認識して当該複数の移動対象領域を移動体に巡回させる巡回ルートを作成するための巡回ルート作成装置であって、
各移動対象領域を一巡する巡回ループを作成する巡回ループ作成手段と、
作成された巡回ループの経路を移動体で移動させる場合の移動コストを算出する移動コスト算出手段と、
作成された巡回ループを形成する移動対象領域間ルートのうち最も移動コストの大きい移動対象領域間ルートを削除して、削除した移動対象領域間ルートのルート終端が繋がれていた移動対象領域を巡回ルートのスタート領域とし、かつ、削除した移動対象領域間ルートのルート始端が繋がれていた移動対象領域を巡回ルートのゴール領域とした各移動対象領域を一巡する巡回ルートを作成する巡回ルート作成手段とを備え、
巡回ループ作成手段は、移動対象領域毎に巡回情報を設定することにより巡回ループを作成する初期世代巡回ループ作成手段と、後世代巡回ループ作成手段とを備え、
巡回ルート作成手段は、初期世代巡回ルート作成手段と、後世代巡回ルート作成手段とを備え、
初期世代巡回ループ作成手段は、複数の巡回ループを作成し、
初期世代巡回ルート作成手段は、初期世代巡回ループ作成手段により作成された複数の初期世代巡回ループ毎に、各移動対象領域毎の巡回情報を変更して、複数の初期世代巡回ルートを作成し、
後世代巡回ループ作成手段は、複数の初期世代巡回ルートのうち、移動コストの小さい初期世代巡回ルートをいくつか抽出し、この抽出された初期世代巡回ルートの巡回情報を使用して後世代巡回ループを作成し、
後世代巡回ルート作成手段は、後世代巡回ループ作成手段により作成された後世代巡回ループ毎に、各移動対象領域毎の巡回情報を変更して、後世代巡回ルートを作成し、
巡回情報は、各移動対象領域毎に設定される自己の移動対象領域内の巡回パターンの情報と次に進む移動対象領域の情報とで構成された組み合わせ情報であることを特徴とする巡回ルート作成装置。
A travel route creation device for recognizing position information of a plurality of target areas for movement and creating a travel route for a mobile object to travel through the plurality of target areas for movement, comprising:
a cyclic loop creating means for creating a cyclic loop that goes around each of the movement target areas;
a travel cost calculation means for calculating a travel cost when a mobile object travels along the route of the created circular loop;
a circular route creation means for creating a circular route that goes around each of the movement target areas by deleting the route between the movement target areas that has the highest movement cost from among the routes between the movement target areas that form the created circular loop, and setting the movement target area to which the route end of the deleted route between the movement target areas is connected as the start area of the circular route, and setting the movement target area to which the route start point of the deleted route between the movement target areas is connected as the goal area of the circular route;
the cyclic loop creating means comprises an initial generation cyclic loop creating means and a subsequent generation cyclic loop creating means for creating a cyclic loop by setting cyclic information for each movement target area;
the tour route creation means includes an initial generation tour route creation means and a later generation tour route creation means;
The initial generation cyclic loop creating means creates a plurality of cyclic loops;
the initial generation circulatory route creation means changes the circulatory information for each movement target area for each of the initial generation circulatory loops created by the initial generation circulatory loop creation means, thereby creating a plurality of initial generation circulatory routes;
the later-generation tour loop creation means extracts some initial-generation tour routes with low travel costs from among the plurality of initial-generation tour routes, and creates a later-generation tour loop using tour information of the extracted initial-generation tour routes;
the next-generation circular route creation means changes the circular information for each movement target area for each next-generation circular loop created by the next-generation circular loop creation means to create a next-generation circular route;
A travel route creation device characterized in that the patrol information is combined information consisting of information on the patrol pattern within the own target travel area set for each target travel area and information on the next target travel area to proceed to.
後世代の世代数は複数であり、
今回の後世代巡回ルート作成手段は、前回の後世代巡回ループ作成手段により作成された前回の後世代巡回ループ毎に、各移動対象領域毎の巡回情報を変更して、今回の後世代巡回ルートを作成し、
最終世代の後世代巡回ルート作成手段は、最終世代として作成した複数の巡回ルートのうち、移動コストが最小である巡回ルートを巡回ルートとして決定することを特徴とする請求項1に記載の巡回ルート作成装置。
The number of generations in the subsequent generations is multiple,
the current next-generation circulatory route creation means changes the circulatory information for each movement target area for each previous next-generation circulatory loop created by the previous next-generation circulatory loop creation means, and creates the current next-generation circulatory route;
2. The tour route creation device according to claim 1, wherein the subsequent-generation tour route creation means determines, as the tour route, one of the plurality of tour routes created as the final generation that has the smallest travel cost.
今回の後世代巡回ルート作成手段は、前回の後世代巡回ループ作成手段により作成された前回の複数の後世代巡回ループの中から移動コストの小さい巡回ルートの1つ以上を親と定義し、当該親の巡回ルートの巡回情報を引き継ぐことにより、今回の後世代巡回ルートを作成することを特徴とする請求項2に記載の巡回ルート作成装置。 The route creation device of claim 2, characterized in that the current next-generation route creation means defines one or more routes with the lowest travel cost from among the previous multiple next-generation loops created by the previous next-generation loop creation means as parents, and creates the current next-generation route by inheriting the route information of the parent route. 今回の後世代巡回ルート作成手段は、今回の後世代巡回ルートを作成する段階において、まだ巡回情報が設定されていない移動対象領域が2つ以上残っていて、かつ、まだ巡回情報が設定されていない移動対象領域に設定する巡回情報である次に進む移動対象領域の情報を親から引き継ぐことができない場合には、まだ巡回情報が設定されていない移動対象領域に設定する次に進む移動対象領域を、まだ巡回情報として設定されていない移動対象領域の中から任意に選択することを特徴とする請求項3に記載の巡回ルート作成装置。 The tour route creation device of claim 3, characterized in that, if, at the stage of creating the current next-generation tour route, there remain two or more movement target areas for which tour information has not yet been set, and the information for the next movement target area, which is the tour information to be set for the movement target area for which tour information has not yet been set, cannot be inherited from the parent, the current next-generation tour route creation means arbitrarily selects the next movement target area to be set for the movement target area for which tour information has not yet been set from among the movement target areas for which tour information has not yet been set. まだ巡回情報が設定されていない移動対象領域に設定する巡回情報である次に進む移動対象領域の情報を親から引き継ぐことができない場合とは、まだ巡回情報が設定されていない移動対象領域に引き継がせるようとする親の巡回情報である次に進む移動対象領域の情報が、今回の後世代巡回ルートを作成する際に巡回情報を一番最初に設定した移動対象領域である場合、及び、まだ巡回情報が設定されていない移動対象領域に引き継がせるようとする親の巡回情報である次に進む移動対象領域の情報が、今回の後世代巡回ルートの作成において既に使用されている場合であることを特徴とする請求項4に記載の巡回ルート作成装置。 The travel route creation device described in claim 4, characterized in that the information of the next target area, which is the travel information to be set for a travel target area for which no travel information has yet been set, cannot be inherited from the parent when the information of the next target area, which is the parent travel information to be inherited by a travel target area for which no travel information has yet been set, is the travel target area for which travel information was first set when creating the current next-generation travel route, and when the information of the next target area, which is the parent travel information to be inherited by a travel target area for which no travel information has yet been set, has already been used in creating the current next-generation travel route. 今回の後世代巡回ルート作成手段は、今回の後世代巡回ルートを作成する段階において、まだ巡回情報が設定されていない移動対象領域が1つしか残っていないと判定した場合に、当該1つ残った移動対象領域の巡回情報である次に進む移動対象領域の情報を、今回の後世代巡回ルートを作成する際に巡回情報を一番最初に設定した移動対象領域とすることを特徴とする請求項3に記載の巡回ルート作成装置。 The tour route creation device of claim 3, characterized in that, when the current next-generation tour route creation means determines that there is only one remaining target area for which tour information has not yet been set during the stage of creating the current next-generation tour route, the information on the next target area for which tour information has been set, which is the tour information for that remaining target area, is set as the target area for which tour information was first set when creating the current next-generation tour route. 今回の後世代巡回ルート作成手段は、前回の後世代巡回ルート作成手段により作成された前回の複数の後世代巡回ルートの中から移動コストの小さい巡回ルートを抽出して、当該抽出された巡回ルートを作成する元となった巡回ループの移動対象領域間のルートを変更する移動対象領域間ルート改変処理手段を備え、
移動対象領域間ルート改変処理手段は、
巡回ループの各移動対象領域のうちから異なる任意の第1の移動対象領域と第2の移動対象領域とを任意に選択する第1ステップと、
第2の移動対象領域の巡回情報として設定されている次に進む移動対象領域の情報を保留情報として記録しておく第2ステップと、
第2の移動対象領域の巡回情報として設定されている次に進む移動対象領域の情報を巡回情報として持っている移動対象領域を探索して当該移動対象領域の有無を判定する第3ステップと、
第1の移動対象領域の巡回情報に設定する次に進むエリアの情報として、第2の移動対象領域を設定する第4ステップと、
第4ステップの処理を行うのが初めてではない場合に、第2の移動対象領域の巡回情報に設定されている巡回パターンを反転させる第5ステップと、
第3ステップでの判定結果が有であった場合、第4ステップの後、又は、第5ステップの後において、第1の移動対象領域を第2の移動対象領域に変更するとともに、第2の移動対象領域を第3ステップで探索された移動対象領域に変更した後に、第3ステップの処理に戻る第6ステップと、
第3ステップでの判定結果が無であった場合、第4ステップの後、又は、第5ステップの後において、保留情報を第2の移動対象領域の巡回情報としての次に進む移動対象領域として設定するとともに、第2の移動対象領域の巡回情報に設定されている巡回パターンを反転させる第7ステップとを備えたことを特徴とする請求項2乃至請求項6のいずれか一項に記載の巡回ルート作成装置。
the current next-generation circular route creation means comprises a movement target area inter-route modification processing means for extracting a circular route with a low movement cost from the previous plurality of next-generation circular routes created by the previous next-generation circular route creation means, and modifying the route between the movement target areas of the circular loop that was the basis for creating the extracted circular route;
The inter-movement target area route modification processing means comprises:
a first step of arbitrarily selecting a first movement target area and a second movement target area from among the movement target areas of the cyclic loop;
a second step of recording information of the next moving target area set as patrol information of the second moving target area as pending information;
a third step of searching for a movement target area having, as its circulating information, information on the next movement target area set as the circulating information of the second movement target area, and determining whether or not the movement target area exists;
a fourth step of setting a second target area as information on a next area to be moved to, which is set in the patrol information of the first target area;
a fifth step of reversing the circulating pattern set in the circulating information of the second movement target area when the processing of the fourth step is not performed for the first time;
a sixth step of changing the first movement target area to a second movement target area after the fourth step or the fifth step if the determination result in the third step is yes, and then returning to the processing of the third step after changing the second movement target area to the movement target area found in the third step;
A travel route creation device as described in any one of claims 2 to 6, characterized in that if the judgment result in the third step is negative, after the fourth step or after the fifth step, the pending information is set as the next travel target area in the travel information of the second travel target area, and the travel pattern set in the travel information of the second travel target area is reversed.
今回の後世代巡回ルート作成手段は、前回の後世代巡回ルート作成手段により作成された前回の複数の後世代巡回ルートの中から移動コストの小さい巡回ルートを抽出して、当該抽出された巡回ルートを作成する元となった巡回ループの移動対象領域内の巡回パターンを変更する巡回パターン改変処理手段を備え、巡回パターン改変処理手段は、巡回ループの各移動対象領域から無作為に1つの移動対象領域を選んで、当該移動対象領域の巡回情報である巡回パターンの情報を変更することを特徴とする請求項2乃至請求項6のいずれか一項に記載の巡回ルート作成装置。 The circular route creation device of any one of claims 2 to 6, characterized in that the current next-generation circular route creation means includes a circular pattern modification processing means that extracts a circular route with a low travel cost from the previous multiple next-generation circular routes created by the previous next-generation circular route creation means and modifies the circular pattern within the movement target area of the circular loop that was the basis for creating the extracted circular route, and the circular pattern modification processing means randomly selects one movement target area from each movement target area of the circular loop and modifies the circular pattern information, which is the circular information of that movement target area. 複数の移動対象領域の位置情報を認識して当該複数の移動対象領域を移動体に巡回させる巡回ルートを作成するための巡回ルート作成装置であって、
各移動対象領域を一巡する巡回ループを作成する巡回ループ作成手段と、
作成された巡回ループの経路を移動体で移動させる場合の移動コストを算出する移動コスト算出手段と、
作成された巡回ループを形成する移動対象領域間ルートのうち最も移動コストの大きい移動対象領域間ルートを削除して、削除した移動対象領域間ルートのルート終端が繋がれていた移動対象領域を巡回ルートのスタート領域とし、かつ、削除した移動対象領域間ルートのルート始端が繋がれていた移動対象領域を巡回ルートのゴール領域とした各移動対象領域を一巡する巡回ルートを作成する巡回ルート作成手段とを備え、
巡回ループ作成手段は、
移動対象領域毎に巡回情報を設定することにより最初の巡回ループを作成する最初の巡回ループ作成手段と、
最初の巡回ループの巡回情報を変更した巡回ループを作成する巡回ループ更新手段とを備え、
巡回ルート作成手段は、
巡回ループ更新手段により作成された今回の巡回ループに基づいて作成された今回の巡回ルートの移動コストと、巡回ループ更新手段により作成された前回の巡回ループに基づいて作成された前回の巡回ルートの移動コストとを比較して、移動コストの小さい巡回ルートを残す判定手段を備え、
巡回情報は、各移動対象領域毎に設定される自己の移動対象領域内の巡回パターンの情報と次に進む移動対象領域の情報とで構成された組み合わせ情報であることを特徴とする巡回ルート作成装置。
A travel route creation device for recognizing position information of a plurality of target areas for movement and creating a travel route for a mobile object to travel through the plurality of target areas for movement, comprising:
a cyclic loop creating means for creating a cyclic loop that goes around each of the movement target areas;
a travel cost calculation means for calculating a travel cost when a mobile object travels along the route of the created circular loop;
a circular route creation means for creating a circular route that goes around each of the movement target areas by deleting the route between the movement target areas that has the highest movement cost from among the routes between the movement target areas that form the created circular loop, and setting the movement target area to which the route end of the deleted route between the movement target areas is connected as the start area of the circular route, and setting the movement target area to which the route start point of the deleted route between the movement target areas is connected as the goal area of the circular route;
The means for creating a circular loop is
an initial cyclic loop creating means for creating an initial cyclic loop by setting cyclic information for each movement target area;
a cyclic loop update means for creating a cyclic loop in which cyclic information of the initial cyclic loop is changed;
The means of creating a tour route are:
a determining means for comparing a travel cost of a current circular route created based on a current circular loop created by the circular loop update means with a travel cost of a previous circular route created based on a previous circular loop created by the circular loop update means, and selecting a circular route with a smaller travel cost;
A travel route creation device characterized in that the patrol information is combined information consisting of information on the patrol pattern within the own target travel area set for each target travel area and information on the next target travel area to proceed to.
移動対象領域は、XY座標情報に基づいて区画された領域であり、
移動対象領域内の巡回パターンは、X軸に沿ってジグザグに進むX方向巡回パターン、又は、Y軸に沿って進むジグザグなY方向巡回パターンであり、
X方向巡回パターンは、移動開始位置をX座標最小値Y座標最大値の位置とする第1パターン、移動開始位置をX座標最小値Y座標最小値の位置とする第2パターン、移動開始位置をX座標最大値Y座標最大値の位置とする第3パターン、移動開始位置をX座標最大値Y座標最小値の位置とする第4パターンであり、
Y方向巡回パターンは、移動開始位置をX座標最小値Y座標最大値の位置とする第5パターン、移動開始位置をX座標最大値Y座標最大値の位置とする第6パターン、移動開始位置をX座標最小値Y座標最小値の位置とする第7パターン、移動開始位置をX座標最大値Y座標最小値の位置とする第8パターンであることを特徴とする請求項1乃至請求項9のいずれか一項に記載の巡回ルート作成装置。
The movement target area is an area partitioned based on XY coordinate information,
The cyclic pattern within the movement target area is an X-direction cyclic pattern that moves zigzag along the X-axis, or a Y-direction cyclic pattern that moves zigzag along the Y-axis,
The X-direction cyclic patterns are a first pattern in which the movement start position is the position of the minimum X coordinate value and the maximum Y coordinate value, a second pattern in which the movement start position is the position of the minimum X coordinate value and the minimum Y coordinate value, a third pattern in which the movement start position is the position of the maximum X coordinate value and the maximum Y coordinate value, and a fourth pattern in which the movement start position is the position of the maximum X coordinate value and the minimum Y coordinate value,
10. The device for creating a travel route according to claim 1, wherein the Y-direction travel pattern is a fifth pattern in which the start position of the travel is a position with a minimum X coordinate and a maximum Y coordinate; a sixth pattern in which the start position of the travel is a position with a maximum X coordinate and a maximum Y coordinate; a seventh pattern in which the start position of the travel is a position with a minimum X coordinate and a minimum Y coordinate; and an eighth pattern in which the start position of the travel is a position with a maximum X coordinate and a minimum Y coordinate.
JP2022033100A 2022-03-04 2022-03-04 Tour route creation device Active JP7722948B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022033100A JP7722948B2 (en) 2022-03-04 2022-03-04 Tour route creation device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022033100A JP7722948B2 (en) 2022-03-04 2022-03-04 Tour route creation device

Publications (2)

Publication Number Publication Date
JP2023128625A JP2023128625A (en) 2023-09-14
JP7722948B2 true JP7722948B2 (en) 2025-08-13

Family

ID=87972225

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022033100A Active JP7722948B2 (en) 2022-03-04 2022-03-04 Tour route creation device

Country Status (1)

Country Link
JP (1) JP7722948B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117824665B (en) * 2024-03-05 2024-05-14 安徽领云物联科技有限公司 Routing inspection robot route planning system based on GIS

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110941261A (en) 2019-10-19 2020-03-31 中国海洋大学 A multi-region traversal path planning method for autonomous underwater vehicle
US20200173789A1 (en) 2018-12-04 2020-06-04 TerriTool, LLC Systems and methods of routing optimization
CN114690753A (en) 2020-12-25 2022-07-01 科沃斯商用机器人有限公司 Hybrid strategy-based path planning method, autonomous traveling equipment and robot

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4421052B2 (en) * 1999-07-19 2010-02-24 パナソニック株式会社 Map data management method, route search device, and recording medium
JP6601947B2 (en) * 2014-08-25 2019-11-06 国立大学法人 鹿児島大学 Navigation system, navigation method and program
JP7356829B2 (en) * 2019-07-10 2023-10-05 ヤンマーパワーテクノロジー株式会社 automatic driving system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200173789A1 (en) 2018-12-04 2020-06-04 TerriTool, LLC Systems and methods of routing optimization
CN110941261A (en) 2019-10-19 2020-03-31 中国海洋大学 A multi-region traversal path planning method for autonomous underwater vehicle
CN114690753A (en) 2020-12-25 2022-07-01 科沃斯商用机器人有限公司 Hybrid strategy-based path planning method, autonomous traveling equipment and robot

Also Published As

Publication number Publication date
JP2023128625A (en) 2023-09-14

Similar Documents

Publication Publication Date Title
CN106371445B (en) A planning and control method of unmanned vehicle based on topology map
CN104142971B (en) For constructing the method and apparatus for being used for the map of mobile robot
CN110135644B (en) Robot path planning method for target search
CN109189074B (en) Indoor autonomous mapping method for storage environment
CN109163722B (en) Humanoid robot path planning method and device
CN114740898B (en) Three-dimensional track planning method based on free space and A-algorithm
JP7722948B2 (en) Tour route creation device
CN110909961A (en) BIM-based indoor route query method and device
JP7722947B2 (en) Tour route creation device
CN111427341B (en) A shortest expected time target search method for robots based on probability map
CN118500375A (en) A mobile robot autonomous exploration and mapping method for indoor unknown environments
CN119374605A (en) AGV path planning method based on improving ant colony algorithm based on constructing time cost function
CN115014328A (en) Dynamic loading method, device, equipment and medium for grid map
JP7802434B2 (en) Tour route creation device
CN107037826A (en) Unmanned plane detection mission distribution method and device
JP7577010B2 (en) Planned travel route creation device for a mobile object, and planned travel route creation program for a mobile object
JP7598788B2 (en) Planned travel route creation device for a mobile object, and planned travel route creation program for a mobile object
CN119573760A (en) A global path planning method for inspection robots based on three-dimensional grid maps
JP2024142775A (en) Tour route creation device
CN113469472B (en) Multi-microscope fixed-point photographing path optimization method
JP2024126102A (en) Travel route creation device, travel route creation device, and travel route creation processing program
JP2024126104A (en) Travel route creation device, travel route creation device, and travel route creation processing program
CN113160562B (en) Partial observation intersection autonomous merging method based on particle attention depth Q learning
CN113673782A (en) Multi-microscope scanning photographing path optimization method and device
CN114779786A (en) Path planning method, system and device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20241205

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20250722

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20250729

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250731

R150 Certificate of patent or registration of utility model

Ref document number: 7722948

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150