Tour route creation device
The travel route creation device optimizes circular routes for mobile objects by recognizing target areas, setting patterns, and calculating costs, addressing the inefficiencies in existing methods to enhance route planning efficiency.
Patent Information
- Application Number
- JP2022033088
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-03-04
- Publication Date
- 2026-01-20
- Estimated Expiration
- 2042-03-04
AI Technical Summary
Existing methods do not effectively create circular routes for mobile objects to efficiently traverse multiple target areas, lacking a systematic approach for optimizing travel paths.
A travel route creation device that recognizes target areas, sets travel patterns and orders, calculates movement costs, and selectively deletes high-cost routes to generate efficient circular routes, utilizing simulated annealing and genetic algorithms for route optimization.
Enables the creation of efficient travel routes that minimize movement costs by optimizing the order and pattern of traversing multiple target areas, enhancing route planning efficiency.
Smart Images

Figure 0007802434000001 
Figure 0007802434000002 
Figure 0007802434000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to a travel route creation device for creating a travel route for a mobile object to travel through a plurality of target travel areas. [Background technology]
[0002] The applicant has invented a mobile body movement control system, which includes a movement schedule information creation process that creates movement schedule information (planned movement route) for a mobile body that moves on a movement target surface (movement target area), and a movement control process that moves the mobile body based on the movement schedule information and controls the movement of the mobile body by comparing the movement schedule information with the actual movement information of the mobile body acquired by a movement information acquisition means (see Patent Document 1). [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Publication No. 2020-154400 Summary of the Invention [Problem to be solved by the invention]
[0004] 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 generation device capable of generating an efficient travel route for a mobile object to travel through a plurality of target travel areas. [Means for solving the problem]
[0005] The travel route creation device according to the present invention is a travel route creation device for recognizing position information of a plurality of target areas and creating a travel route for a mobile body to travel around the plurality of target areas, and is equipped with a travel pattern setting means for setting a travel pattern within each target area, and a travel order setting means for setting a travel order between each target area in order to create a travel route that travels around each target area. The circulating pattern setting means and the circulating order setting means include: a circulating loop creating means for creating a circulating loop that goes around each of the movement target areas; a movement cost calculating means for calculating the movement cost when a moving body moves along the route of the created circulating loop; and a circulating route creating means for deleting the inter-movement target area route with the highest movement cost from among the inter-movement target area routes that form the created circulating loop, and creating a circulating route that goes around each of the movement target areas, with the movement target area to which the route end of the deleted inter-movement target area route was connected as the start area of the circulating route, and the movement target area to which the route start end of the deleted inter-movement target area route was connected as the goal area of the circulating route. It is characterized by the fact that The circulating pattern setting means is characterized in that it selects and sets a circulating pattern within each movement target area from a plurality of predetermined circulating patterns. 。 Ma Furthermore, the circular loop creation means creates a circular loop by setting circular information for each target area of movement, and the circular information is a combination of information on the circular pattern within the target area of movement set for each target area of movement and information on the target area of movement to proceed to next. The cyclic loop creating means creates a cyclic loop by setting cyclic information for each area to be moved, and repeats the process of creating a cyclic loop by changing the cyclic information of the created cyclic loop. The circuit route creating means is characterized by comprising a determining means for determining which circuit route to keep between the current circuit route created based on the current circuit loop in which the circuit information of the circuit loop has been changed, and the previous circuit route created based on the previous circuit loop before the circuit information of the circuit loop was changed. The circuit route creating means is characterized by comprising a determining means for comparing the travel cost of a current circuit route created based on the current circuit loop in which the circuit information of the circuit loop has been changed with the travel cost of a previous circuit route created based on the previous circuit loop before the circuit information of the circuit loop was changed, and for leaving the circuit route with the smaller travel cost. The device also includes a display control means for displaying images of a plurality of target movement areas on the screen based on position information of the plurality of target movement areas, and the display control means has a function for displaying a cyclic pattern setting guide image on the screen for selecting a cyclic pattern for each of the target movement areas displayed on the screen from a plurality of predetermined cyclic patterns and instructing the cyclic pattern setting means to select the cyclic pattern for the specified target movement area via the cyclic pattern setting guide image, and the cyclic pattern setting means sets the specified cyclic pattern as the cyclic pattern within the specified target movement area when the cyclic pattern for the specified target movement area is specified via the cyclic pattern setting guide image. The system further comprises a display control means for displaying images of a plurality of target movement areas on the screen based on the position information of the plurality of target movement areas, and the display control means has a function for displaying a tour order setting guide image on the screen for instructing the tour order setting means on the tour order between the target movement areas displayed on the screen, and when the tour order between the target movement areas is specified via the tour order setting guide image, the tour order setting means sets the tour order between the target movement areas to the specified tour order. 。 Ma The present invention is also characterized by comprising a travel cost display means for displaying on the screen the travel cost of the mobile body when traveling along the created travel route. The movement target area is an area partitioned based on XY coordinate information, and the circulating pattern within the movement target area is an X-direction circulating pattern that zigzags along the X-axis, or a Y-direction circulating pattern that zigzags along the Y-axis. The X-direction circulating 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 circulating 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. [Brief explanation of the drawings]
[0006] [Figure 1] FIG. 10 is an explanatory diagram of the process of creating a movement target area and an obstacle area (phase 1). [Figure 2] An explanatory diagram of the obstacle grouping process (phase 2). [Figure 3] An explanatory diagram of obstacle angle recognition processing (phase 3). [Figure 4] FIG. 10 is an explanatory diagram of the obstacle boundary line creation process (phase 4). [Figure 5] FIG. 10 is an explanatory diagram of the division area classification process (phase 5). [Figure 6] FIG. 10 is an explanatory diagram of the division area classification process (phase 5). [Figure 7] FIG. 10 is an explanatory diagram of the divided region recognition process (phase 6). [Figure 8] FIG. 10 is an explanatory diagram of the divided region recognition process (phase 6). [Figure 9] An explanatory diagram of the equally spaced straight line path creation process (phase 7). [Figure 10] FIG. 10 is an explanatory diagram of the intersection coordinate extraction process (phase 8). [Figure 11] 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). [Figure 12] FIG. 10 is an explanatory diagram of the process of creating a zigzag movement route within a divided area (phase 10) and the process of creating a movement route between divided areas (phase 11). [Figure 13] 10 is a flowchart showing the procedure of the process (phase 1) for creating a movement target area and an obstacle area. [Figure 14] 10 is a flowchart showing the procedure of the obstacle grouping process (phase 2). [Figure 15] 10 is a flowchart showing the procedure of obstacle angle recognition processing (phase 3). [Figure 16] 10 is a flowchart showing the procedure of the obstacle boundary line creation process (phase 4). [Figure 17] 10 is a flowchart showing the procedure of the division area division process (phase 5). [Figure 18] 10 is a flowchart showing the procedure of a divided area recognition process (phase 6). [Figure 19] 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). [Figure 20] 10 is a flowchart showing the procedure of the area-by-area intersection coordinate extraction process (phase 9). [Figure 21] 10 is a flowchart showing the steps of a process (phase 10) for creating a planned zigzag movement route within a divided area. [Figure 22] 10 is a flowchart showing the procedure of the movement cost calculation process (phase 11). [Figure 23] 10 is a flowchart showing the procedure of another route creation processing (phases 12 to 16). [Figure 24] 10 is a flowchart showing the procedure of a route selection process (phase 17). [Figure 25] 10 is a flowchart showing the steps of a process (phase 18) for creating a planned movement route between divided areas. [Figure 26] FIG. 10 is an explanatory diagram of the divided region recognition process (phase 6). [Figure 27] FIG. 10 is an explanatory diagram of the divided region recognition process (phase 6). [Figure 28] FIG. 10 is an explanatory diagram of the divided region recognition process (phase 6). [Figure 29] 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). [Figure 30] An explanatory diagram of the process of creating a planned zigzag movement route within a divided area (phase 10). [Figure 31] FIG. 1 is a perspective view showing an example of a moving body. [Figure 32] FIG. 10 is a diagram illustrating a circulating pattern. [Figure 33] 10 is a schematic flowchart of SA processing. [Figure 34] 10 is a flowchart showing an initial cyclic loop creation process. [Figure 35] 10 is a flowchart showing an initial temperature setting process, a travel route cost calculation process, and a modification acceptance / non-acceptance determination process. [Figure 36] 10 is a flowchart showing processing for modifying an inter-area route and processing for modifying a tour pattern. [Figure 37] FIG. 10 is an explanatory diagram of the process of modifying an inter-area route. [Figure 38] FIG. 10 is an explanatory diagram of the process of modifying an inter-area route. [Figure 39] FIG. 10 is an explanatory diagram of the process of modifying an inter-area route. [Figure 40] FIG. 10 is an explanatory diagram of the process of modifying an inter-area route. [Figure 41] FIG. 10 is an explanatory diagram of the process of modifying an inter-area route. [Figure 42] FIG. 10 is an explanatory diagram of the process of modifying an inter-area route. [Figure 43] Conceptual diagram of simulated annealing (SA). [Figure 44] FIG. 10 is a diagram showing an initial cyclic information array and an initial cyclic loop. [Figure 45] An example of a cyclic information array is shown below. [Figure 46]FIG. 10 is an explanatory diagram of the process of modifying an inter-area route. [Figure 47] Schematic flowchart of the genetic algorithm (GA). [Figure 48] 10 is a flowchart showing an initial generation individual generation process. [Figure 49] 10 is a flowchart showing an individual evaluation process. [Figure 50] 10 is a flowchart showing a crossover process. [Figure 51] 1 is a flowchart showing a mutation process. [Figure 52] An illustration of an individual carrying lethal genetic information. [Figure 53] An illustration of an individual carrying lethal genetic information. [Figure 54] An explanatory diagram of basic crossover processing. [Figure 55] FIG. 10 is an explanatory diagram of exceptional crossover processing. [Figure 56] FIG. 10 is an explanatory diagram of exceptional crossover processing. [Figure 57] FIG. 10 is an explanatory diagram of exceptional crossover processing. [Figure 58] FIG. 4 is a diagram showing a processing selection screen set on the screen of a display means. [Figure 59] FIG. 4 is a diagram showing a processing selection screen set on the screen of a display means. [Figure 60] 10 is a flowchart showing a method of using the travel route generation device. [Figure 61] FIG. [Figure 62] 10 is a flowchart showing the process performed when the "Create Partition" button 30 is clicked. [Figure 63] 10 is a flowchart showing the process performed when the "Generate Tour Route" button 31 is clicked. [Figure 64] 3 is a processing flowchart when the "Advanced Settings" button 32 in [Plot / Patrol Route Generation] is clicked. [Figure 65] 10 is a flowchart showing the process when the "Restore Default" button 34 or the "Apply and Exit" button 35 is clicked. [Figure 66]This is the processing flowchart when you click the "Open new" button 1 in [Open map / route]. [Figure 67] Processing flowchart when "Open explored map" button 2 in [Open map / circuit route] is clicked. [Figure 68] Processing flowchart when you click the "Save with new construction name" button 3 in [Save map / patrol route]. [Figure 69] This is a flowchart of the process that occurs when you click the "Save" button 4 in [Save Map / Route]. [Figure 70] Processing flowchart when "Start searching for a new route" button 5 in [Search for a route using GA] is clicked. [Figure 71] This is the processing flowchart when you click the "Start search by making the already explored route one of the initial generation individuals" button 6 in [Search for a route using GA]. [Figure 72] Processing flowchart when the "Stop processing" button 7 in [Search for a tour route using GA] is clicked. [Figure 73] Processing flowchart when clicking the "Advanced Settings" button 8, "Restore Defaults" button 16, or "Apply and Exit" button 17 in [Search for Patrol Routes with GA]. [Figure 74] Processing flowchart when the "Start searching for a new route" button 9 in [Search for a route using SA] is clicked. [Figure 75] This is the processing flowchart when you click the "Start search by making the already explored route one of the initial generation individuals" button 10 in [Search for a route using GA]. [Figure 76] Processing flowchart when the "Stop processing" button 11 in [Search for patrol route with SA] is clicked. [Figure 77] Processing flowchart when the "Advanced Settings" button 12 in [Search for patrol routes with SA] is clicked. [Figure 78] 10 is a flowchart showing the process when the "Restore Default" button 21 and the "Exit with Reflection" button 22 are clicked. [Figure 79] 10 is a flowchart showing the process when the "Undo" button 23-1 and the "Redo" button 23-2 are clicked when manually setting a tour route. [Figure 80] 10 is a flowchart showing a process when any of the selection buttons 23-3 to 23-10 is clicked. [Figure 81] Processing flowchart when the "Set inter-area route" button 23-11, the "Delete inter-area route" button 23-12, the "Disable this area" button 23-13, or the "Enable this area" button 23-14 is clicked. [Figure 82] 10 is a flowchart showing the process performed when any of the rows 24 in the cost log display section C is clicked while being highlighted. [Figure 83] 10 is a flowchart showing the process performed when the "Display current tour route in animation" button 25 is clicked. [Figure 84] 10 is a flowchart showing the process performed when the "recalculate patrol route to avoid obstacles" button 26 is clicked. [Figure 85] 10 is a flowchart showing the process performed when the end button 29 is clicked. DETAILED DESCRIPTION OF THE INVENTION
[0007] Prerequisite technology First, before explaining an embodiment of the travel route creation device of the present invention, a travel planned 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.
[0008] 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, a second boundary line connecting the obstacle and the movement target area boundary line, and a third boundary line connecting the obstacle and 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 a 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 a 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 a 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 a 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 creation means includes an obstacle grouping means for grouping a plurality of obstacles present in the movement target area into groups of obstacles with similar X coordinate information and obstacles with similar Y coordinate information; an obstacle angle recognition means for recognizing the obstacle corners by assigning identification information to each of the plurality of corners of each obstacle; a first connection line creation 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, and a first connection line connecting a corner of one obstacle grouped as having similar Y coordinate information to a corner of another obstacle, second connection line creation 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 creation means for creating a third connection line connecting a corner of the obstacle not connected by the first connection line and 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.
[0009] The planned movement route creation device, which is the 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 processing procedures 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.
[0010] The movement target area creating means and obstacle area creating means described above execute the process (phase 1) of creating the movement target area and obstacle area 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. Furthermore, 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 that replaces 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 (phase 10) for creating a planned zigzag movement route within a divided area. 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. In addition, 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 creation means executes the processing of the route search algorithm part of Figure 25 as the planned detour movement route between divided areas creation process.
[0011] 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 creating device (see FIG. 31). The control means is mounted on the moving body 1, for example, as shown in FIG. Therefore, in this case, the moving body 1 is equipped with a control means 50 that creates a planned movement route for the moving body 1 and controls the movement of the moving 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 moving body 1 may be configured not by a computer mounted on the moving body 1, but by a computer such as a personal computer separate from the moving 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 moving body 1 will move 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 moving body 1, the control means of the moving body 1 can move the moving body 1 within a movable area within the target movement area based on the planned movement route.
[0012] 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 existing in the floor area as the target area A for movement are inputted into a computer in advance. Then, the computer converts the inputted XY coordinate information into XY coordinate information on a display screen D managed by the computer, and records the converted information in a 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 movement target area. Furthermore, 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).
[0013] 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) based on the reference point O on the display screen D. In addition, 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 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 movement target area A 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 graduation 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.
[0014] First, in the process of creating the movement target area and obstacle area (phase 1), the computer displays the movement target area A and multiple pillars B, B, etc. within the movement target area A on the display screen D, for example, as shown in Figure 1, in accordance with the procedures of the movement target area creation processing program and the obstacle area creation processing program. That is, as shown in Fig. 1, for example, the computer displays the movement target area A on the 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 multiple pillars B, B... that exist within the movement target area A. In this case, the movement target area boundary line C is created by connecting, for example, 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 by connecting, for example, the XY coordinate information of the corners of pillar B. Specifically, the computer performs a process (phase 1) for 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, a movement target area boundary line C is created on the display screen D by extracting data (XY coordinate values of the corners of the walls (boundaries)) from a file that records 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 (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 each corner with a straight line. Next, the pillar number control variable is initialized, i.e., the pillar number control variable n is set to 1 (step S2). The pillar number control variable is a variable for specifying the pillar 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... that exists 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 there is no file recording the XY coordinates of the corner of the nth pillar, it is recognized that all pillars B within the movement target area A are displayed on the display screen D, and the movement target area and obstacle area creation process (phase 1) is terminated, and the obstacle grouping process (phase 2) is advanced to. By the above-mentioned process of creating the target area and obstacle area (phase 1), for example, as shown in Figure 1, the display screen D displays the target area boundary C, which is the boundary of the target area A, and n pillars (intra-pillar areas (obstacle areas)) B, B... existing within the target area A (for example, as shown in Figure 1, pillars B(n) = B(1), B(2), B(3), B(4) are displayed). That is, a movement target area A and pillars (areas within the pillars (obstacle areas)) B, B . . . recognized by the computer are created.
[0015] In the obstacle grouping process (phase 2), the computer, following the procedures of the obstacle grouping process program, groups pillars B with similar X coordinate values and pillars B with similar Y coordinate values, using the center coordinate of pillar B as a reference, as shown in Figure 2. The grouping is performed by assigning numbers. Therefore, each pillar B, B, ... 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.
[0016] 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 process is performed. That is, 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 FIG. 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 FIG. 2) has already been assigned an X-axis direction group number gx. In the case of FIG. 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 pillar has not been assigned an X-axis group number gx, the n-th pillar is assigned an X-axis group number gx (step S15). The group number is recorded in a pillar group number record file that records the group number of each pillar. 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 Figure 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 Figure 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 Figure 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. In other words, in Figure 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 less than or equal to 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+pth column is less than or equal to the reference value E, the n+pth 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 the comparison process (steps S17 to S19) is performed between the n-th column and the next comparison target, the n+p-th column. Furthermore, 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 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 less than the reference value E, an X-axis group number will be assigned via step S22 before the process of assigning the X-axis 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 group number gx, and the same process as that for assigning the X-axis group number gx is performed for assigning the Y-axis 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).
[0017] 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 Figure 3, according to the procedures of the obstacle angle recognition process program. As shown in Figure 3, for example, numbers 1 to 4 are assigned to each corner of each column 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 circumference 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 considered to be corners, and numbers are assigned to the four corners.
[0018] That is, the computer performs obstacle angle recognition processing (phase 3) as shown in the flowchart of FIG. 15 in accordance with the procedure of the obstacle angle recognition processing program. In the obstacle angle recognition process (phase 3), first, a pillar number control variable initialization process is performed, that is, 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). In step S34, if it is determined that there is only one corner with the largest Y-axis coordinate value among the corners of the n-th pillar (No in step S34), the corner with the largest Y-axis coordinate value for the n-th pillar is assigned corner number 1 (step S35; see, for example, pillars B1 and B3 in FIG. 3), and then it is determined whether there are multiple corners with the largest X-axis coordinate value among the corners of the n-th pillar (step S37). The corner numbers are recorded in a pillar corner number record file that records the corner numbers of each pillar. 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 values for the nth column are compared, and the corner with the smallest X-axis coordinate value is assigned corner number 1 (step S36; see columns B2 and B4 in FIG. 3, for example). 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 values 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 values, 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 with the smallest Y-axis coordinate value among the corners of the nth column (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 columns B2 and B4 in FIG. 3, for example). In other words, corner number 3 is assigned to the corner with the largest X-axis coordinate value among the multiple corners with the smallest Y-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 column with the smallest X-axis coordinate value (No in step S43), corner number 4 is assigned to the corner of the nth column with the smallest X-axis coordinate value (step S44; see, for example, columns 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 n-th column (Yes in step S43), the corners with the smallest X-axis coordinate values for the n-th 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). In other words, among the multiple corners with the smallest X-axis coordinate values, corner number 4 is assigned to the corner with the smallest Y-axis coordinate value, and then the process returns to step S32. Then, in step S32, if it is determined that the value of n matches the number of pillars, it is recognized that numbers have been assigned to each corner of all pillars B, B, etc., and the obstacle angle recognition process (phase 3) is terminated, and the process proceeds to the obstacle boundary line creation process (phase 4).
[0019] 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 Figure 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, Figure 4 shows an example in which pillar B(4) numbered 3-1 and pillar B(3) numbered 3-3, which are in the same 3-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 are in the same 1-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 are in the same 3-group in the Y-axis direction, are connected by an inter-pillar boundary line M. In other words, for each pillar, the computer selects the pillar that is most suitable for connecting the boundary lines, and connects the pillars with boundaries. 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 created as a diagonal straight boundary line that intersects with the X-axis direction and the Y-axis direction, or a smoothly curved boundary line.
[0020] That is, the computer performs 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: 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, that is, s is set to Null (step S53). Furthermore, after setting n to n+1 (step S54), it is determined whether or not a boundary line is already 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 the n-th pillar does not have a boundary line connected 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 to be compared remain, 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 n-th 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 column is not in the positive X-axis direction as viewed from the nth column, the process returns to step S56. If it is determined in step S59 that the center of gravity of the (n+p)th column is in the positive X-axis direction as viewed from the nth column, 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 from the second corner of pillar B(1) to the right and connects to the fourth corner of pillar B(4)), and then the process returns to step S52. Then, in step S52, if it is determined 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 completed, 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 boundary line in the negative X-axis direction, the connection process to the boundary line in the positive Y-axis direction, and the connection process to the boundary line in the negative Y-axis direction are completed, the process proceeds to the next divided area division process (phase 5).
[0021] The obstacle boundary line creation process (phase 4) will be described in more detail below. 4 as an example, in step S58, column B(1) as the n=1th column and column B(2) as the n+p=2nd column do not have the same X-axis direction group number, so after step S57, column B(1) is compared with column B(3) as the n+p=3rd column in step S58. Columns B(1) and B(3) also do not have the same X-axis direction group number, so after 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 direction group number, so after steps S59 and S60, the distance L* between the centers of gravity of columns B(1) and B(4) is calculated in step S60, 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=5)th column, in step S58. Since columns B(1) and B(5) do not have the same X-axis direction 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 there is a column B(6) outside 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.
[0022] 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 pillar B and the movement target area boundary line C, or a boundary line Q (third boundary line) connecting pillar B and the inter-pillar boundary line M (first boundary line) or boundary line N (second boundary line), as shown in Figure 5, and divides the movement target area A into multiple divided areas E, E... (see Figure 6) which are multiple movable areas separated by boundaries C, M, N, Q. In other words, in the obstacle-to-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.
[0023] That is, the computer performs the divided area division process (phase 5) as 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 compare, so the pillar corner number management variable is initialized, i.e., the pillar corner number management variable c is set to 1 (step S73), and then the pillar number management 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 touches a wall, a pillar, or a boundary line (step S79; see, for example, pillar B(1), pillar B(2), and pillar B(3) in Figure 5). After that, the pillar corner number management 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, pillar B(1), pillar B(2), and pillar B(3) in FIG. 5). Then, proceed to step S80. Also, in step S77, if c=2, the boundary line N is extended in the positive X-axis direction from corner number 2 until it touches either 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, pillar B(1), pillar B(2), and pillar B(4) in FIG. 5). Then, the process proceeds to step S80. That is, after the process of extending the boundary line 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 the process for the next column to be compared. In step S81, if c=5 is not satisfied, the process returns to step S75, and the processes from step S75 to step S84 are performed. If it is determined in step S72 that the value of n matches the number of columns, the divided area classification process (phase 5) is terminated, and the process proceeds to the divided area recognition process (phase 6).
[0024] In the divided area recognition process (phase 6), the computer recognizes each of the multiple divided areas E, E... 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 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.
[0025] 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 each X and Y coordinate position 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 fill control variables are initialized, that is, the X-axis direction fill control variable fi is set to i, and the Y-axis direction fill control variable fj is set to j (step S95). Fill management refers to the management of the values of each XY coordinate position in a fill management file separate from the fill judgment and area number record array file, so that areas that already have area numbers assigned will not be filled when the fill process is performed for each area. That is, the values of each XY coordinate position in the fill judgment and area number record array file, Stack[i][j], are replaced with the values of each XY 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 XY coordinate position in areas that already have area numbers assigned, thereby speeding up the fill process. Next, it is determined whether fi>Xmax (step S97). If fi>Xmax is not true in step S97, it is determined whether Stack[fi][fj]=-1 is true (step S98). In step S98, if Stack[fi][fj]=-1 (YES in step S98), proceed to step S98A, and in the fill management variable temporary holding register, set mi to fi, set mj to fj, 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 coordinate, 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), the process proceeds to step S101, where it is determined whether or not the coordinate (fi-1,fj) exists, there is no wall, pillar, or boundary line between the coordinate (fi,fj) and the coordinate (fi,fj), and Stack[fi-1][fj] is 0. That is, 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), 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), proceed to step S102 to determine 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. That is, 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), set Stack[fi][fj+1] to -1 (step S106). Then, proceed 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), the process proceeds to step S103, where it is determined whether or not 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. That is, 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 it is determined in step S98 that Stack[fi][fj]=-1, fi is set to fi+1 (step S108), and the process returns to step S97. In step S97, if fi>Xmax, the process proceeds to step S109, where fi is set to 0 and fj is set to fj+1, and then it is determined whether fj>Ymax (step S110). In step S110, if fj>Ymax is not true, the process proceeds to step S98, and if fj>Ymax is true, the process proceeds to step S111. As a result of the above, the states shown in Figs. 8(c) to (f) and Figs. 23(c) and (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 Figure 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, and thus satisfy the column-inside-area condition, then the area is determined to be a column-inside area. In other words, an area where a=1 is not satisfied and does not satisfy the column-inside-area condition 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 met 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, set i to 0 and j to j+1 (step S117), and then determine whether j>Ymax (step S118). If j>Ymax is not the case, return to step S93; if j>Ymax is the case, end the divided area recognition process (phase 6). As a result, the division process (phase 1 to phase 6) of the movement target area A is completed, and the process then proceeds to the movement route creation process (phase 7 to phase 11).
[0026] 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 judgment 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, steps S92, S93, S94, and S95 are carried out, resulting in the state shown in FIG. 8(b) and FIG. 26(b). Then, steps S97 to S107A are performed, followed by the processes shown in FIGS. 8(c) to 8(f) and FIG. 26(c). 8(e)(f), the coordinate positions are returned to search. In other words, in this case, in order to perform processing by returning the coordinates in the negative direction in the X direction or the negative direction in the Y direction, the returned coordinate positions are temporarily stored as variables mi and mj in the fill management variable temporary storage register, and then 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, this shows an example in which numbers are assigned to each area in ascending order.
[0027] Next, in the process of creating a travel route (phase 7 to phase 11), first, the equally spaced straight line route creation process (phase 7) is performed. In the equally spaced straight line path creation process (phase 7), the computer sets multiple 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 the planned zigzag movement route within the divided area, which will be described later. Figure 9 shows an example in which multiple 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 a plurality of horizontal lines S, S... parallel to the X axis that divide the movement target area A at equal intervals along the Y axis.
[0028] 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... between the boundary lines C, M, N, Q that divide each area (the area outside the wall (the area outside the target area A), the area inside the pillar, and all divided areas), the boundary line of pillar B (obstacle area boundary line), and multiple straight lines S, S..., as shown in Figure 10.
[0029] That is, the computer performs the equally spaced straight line path creation processing (phase 7) and the intersection coordinate extraction processing (phase 8) as shown in the flowchart of FIG. 19, in accordance with the procedures of the equally spaced straight line path creation processing program and the intersection coordinate extraction processing program. First, the boundary line number management variable is initialized, that is, the boundary line number management variable m is set to 0 (step S121). Next, the smallest y coordinate value in the search range (the y coordinate of the lowest edge 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). In step S124, if it is determined that the mth boundary line has an intersection with the line S, the coordinates of the 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 they match. In step S127, if the value of m matches the total number of boundary lines, y is set to y+the distance between the lanes (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.
[0030] In step S122, the "search range" of 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 line of a planned movement route in Fig. 19, a process is repeated in which 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 coordinates of the intersections between the line S and each boundary line are recorded. Note that straight lines S are also set on the horizontal lines at the bottom and top end positions of the boundary line C of the movement target area. Furthermore, the "distance between lanes" 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 "distance between lanes" is determined in advance to an appropriate length (for example, 10 cm). Therefore, the coordinates of the intersections of each of the straight 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 numbers the intersections in ascending order of X and Y coordinates, and records the X and Y coordinates of each intersection (see the circled numbers indicating the intersection X and Y coordinates in FIG. 12).
[0031] In the area-by-area intersection coordinate extraction process (phase 9), the computer follows the procedures of the area-by-area intersection coordinate extraction process program to extract, for each area, the intersection coordinates G, G, etc. on the boundary lines C, M, N, Q that divide each area, and the boundary line of pillar B (obstacle area boundary line). FIG. 11 shows an example in which intersection coordinates G, G . . . on boundary lines C, N that define a divided area E assigned area number 6 are extracted.
[0032] The computer performs an 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 or not 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 exact same coordinates as the kth intersection have already been recorded in the intersection coordinate recording file for the ath area, the process proceeds to step S137. In step S135, if it is determined that the coordinates identical to the kth intersection are not recorded in the intersection coordinate recording file for the ath area, the kth intersection coordinates 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.
[0033] In the area-by-area intersection coordinate extraction process (phase 9), the intersection numbers and XY coordinates of the intersections are recorded in an area-by-area intersection coordinate recording file by determining which areas the intersections are adjacent to, for example, one by one, starting from the intersection with the smallest XY coordinate value. In other words, the intersection coordinates are extracted for each area and recorded in an area-by-area intersection coordinate recording file (see Figure 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 in order from the intersection 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 each area (steps S132 to S134), and an intersection coordinate recording file for each area is created (step S136). That is, in the area-by-area intersection coordinate extraction process (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 pillar B that divide each area (movement target area boundary lines, boundary lines, obstacle area boundary lines) 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 boundary lines and horizontal straight lines.
[0034] In the process of creating a planned zigzag movement route within a divided area (phase 10), the computer follows the steps of the process program for creating a planned zigzag movement route within a divided area to create a zigzag planned 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., and connecting the intersection coordinates G, G between adjacent straight lines S, S along the Y axis, as shown in Figure 12. 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 along the X-axis. Note that, in the equally spaced straight line route creation process, when a plurality of equally spaced vertical straight lines are set along the X-axis, 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 along the Y-axis. Furthermore, the intersections recorded in the intersection coordinate recording file for each area are recorded with their intersection numbers recorded at intervals. 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, 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 with intersection numbers 1, 2, 6, 7, 11, 12, 16, 17, and 18 are recorded in order, as shown in FIG. 26(a). However, if the intersections are traced in the recording order of FIG. 26(a), for example, a sawtooth route will result. Therefore, in the process of creating a planned zigzag movement route within a divided area (phase 10), as shown in Figure 26(b), the recording order of each intersection 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 that forms the zigzag path in the sorted intersection coordinate recording file for each area. 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 planned zigzag movement route within the divided area is created that follows the intersection coordinates in the order recorded in the sorted intersection coordinate recording file for each area (divided area).
[0035] 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 coordinates with the largest Y coordinate are 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 of the sorted intersection coordinate recording file for the a-th area (step S146). That is, if i is "1", the number and XY 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 a process of transferring the searched coordinate data to the ith position in the sorted intersection coordinate record file for the ath area (step S146). Also, 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. Here, for example, in area 2 of FIG. 12, first, in step S144, intersections numbered 16, 17, and 18 are found to have the largest Y coordinates, and then steps S145 and S154 are carried out to delete intersection number 17. Then, because j=1, the process proceeds to step S151 to find the X and Y coordinates of intersection number 16. After that, j is set to j+1 (step S152), and intersection number 16 and its X and Y coordinates are recorded in the very first recording area of the intersection coordinate recording file after sorting for area 2 (divided area) (see FIG. 29(b)). Then, in step S144, the intersection coordinates of number 11 and number 12 are searched for as the coordinates with the largest Y coordinates, and if it is determined in step S145 that there are two coordinates with the largest Y coordinates, then in this case, since j=2, 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 the intersection are recorded in the third recording area of the sorted intersection coordinate recording file of area 2 (divided area) (see Figure 29(b)). In other words, when there are multiple coordinates with the largest Y coordinate, the criteria 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, when a line is drawn from the (i-1)th coordinate to the i-th coordinate in the sorted intersection coordinate recording file for area, it is determined whether or not the line touches an exterior wall or a pillar (step S147). If there is no contact, i is updated to i+1 (step S147E), and it is determined whether or not 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, 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, when the route comes into contact with an exterior wall or a pillar as shown in FIG. 30(a), the route is corrected so as not to 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 Figure 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, 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 one by one. In other words, in steps S147C and S147D, the process is performed to determine 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 S142. That is, the sorting process for area a currently being processed ends, and the process moves on to sorting 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 planned zigzag movement route H within the divided area shown by the dotted line in area 2 of Figure 12). That is, in the process of creating a zigzag movement route within a divided area (phase 10), a zigzag movement planned 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, as shown in Fig. 12, for example. In addition, a planned movement start point (coordinate) Ns and a planned movement end point (coordinate) Ne (N is an integer from 2 to 19 excluding 7, 10, 12, 16, and 18) of each area (areas from 2 to 19 excluding pillar areas 7, 10, 12, 16, and 18) are determined, and a zigzag movement planned route H within the divided area (first route for each divided area) that connects these planned movement start points (coordinates) Ns and planned movement end points (coordinates) Ne is created. 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.
[0036] In the movement cost calculation process (phase 11), the computer calculates the movement cost of the planned zigzag movement routes (each first route) H, H... within each divided area created in phase 10, according to 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.
[0037] 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 of straight-line movement (step S204), and the cost Cs of 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 proceed to a turning action. The stopping time is considered to be constant regardless of the angle of turning. 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, the cost Cc for linear movement is calculated by multiplying θ by the turning movement cost conversion constant Kc (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 result of step S207 is No, 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 object 1, such as the distance between the left and right tires of the moving object 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 according to the difference in units obtained from the XY coordinate information, the individual differences (differences in performance) of the moving body 1, and the like.
[0038] The computer performs the alternative route creation process (phase 12 to phase 16) as shown in the flowchart of FIG. 23 in accordance with the procedure 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 called phase 12 (step S230). That is, phase 12 is a process in which the 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 movement direction of the straight line is set perpendicular to the X axis, and this 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 the 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. The above is called 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. The above is called 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 moves to route selection processing (phase 17).
[0039] 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 within the same divided area with the travel efficiency when traveling along a second route, and selects the route with the better travel efficiency from the first route and the second route as the planned travel route within the divided area.
[0040] The computer performs a 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 area sorted intersection coordinate record file created in phase 10 is activated for area number a (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 area sorted intersection coordinate record file created in phase 15 is activated for area number a (step S286). That is, in area (divided area) a, the second route is selected as the planned travel route within 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 has exceeded 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 ends and the process proceeds to the process of creating a planned inter-divided area travel route (phase 18).
[0041] In the planned inter-divided area movement route creation process (phase 18), the computer follows the steps of the intra-divided area zigzag movement route creation process program to generate a planned inter-divided area movement route, which is a planned movement route from the nth divided area E to the n+1th divided area E, as shown in Figure 12. First, through the inter-divided area straight line movement planned route creation process, a planned inter-divided area straight line movement 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 that 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 by a process for creating a detour route between divided areas that applies an arbitrary route search algorithm.
[0042] 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 inter-divided area planned travel route creation process program. 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 line connecting the last coordinate in the sorted intersection coordinate record file for the a-th 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 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 C1 around the position for which you want to find the cost, and add +1 to the smallest C1 (however, ignore C1 that has not changed since initialization). The calculated cost is assigned to 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+i)th 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 completion 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 coordinate that matches the coordinate position, the process moves to that coordinate position and sets an arrival flag for that coordinate position (step S171). Also, in step S170, if there are multiple coordinates that match, one of the coordinates with the same value is determined according to a predetermined priority, and then the process proceeds to step S174. The predetermined priority is as follows: the one with the shortest estimated distance to the goal > the one with the longest distance from the start > the one 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 with an reached flag set and the highest cost among the eight directions (up, down, left, right, and surrounding directions) from the current position (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. In step S173, if no corresponding coordinates are found, it is determined to be an error 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). Also, in step S173, if there are multiple coordinates that match, the robot moves to the coordinate with the same value that has the closest physical distance (Euclidean distance) to the start, and at this time, a route confirmation flag is set for the coordinate of the destination (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 recording 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 recording file as the route of movement after the a-th area search (planned inter-divided area movement route I) (step S175). Then, proceed to step S176. If the result in step S165 is No (if it is determined that the straight line does not come into contact with an exterior wall or 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, and 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.
[0043] According to the process of 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 coordinates of the end intersection of the a-th divided area and the coordinates of the start intersection of the a+i-th divided area are connected to generate a planned movement route I between the divided areas a and a+i. In Figure 12, arrow line 23 (I) is a planned inter-divided area travel route connecting planned end point (intersection coordinate) 2e of travel in divided area 2 and planned start point (intersection coordinate) 3s of travel in divided area 3, arrow line 34 (I) is a planned inter-divided area travel route connecting planned end point 3e of travel in divided area 3 and planned start point 4s of travel in divided area 4, arrow line 45 (I) is a planned inter-divided area travel route connecting planned end point 4e of travel in divided area 4 and planned start point 5s of travel in divided area 5, and arrow line 56 (I) is a planned inter-divided area travel route connecting planned end point 5e of travel in divided area 5 and planned start point 6s of travel in divided area 6. In addition, arrow line 68(I) is a planned inter-divided area travel route connecting planned end point 6e of travel in divided area 6 and planned start point 8s of travel in divided area 8, arrow line 89(I) is a planned inter-divided area travel route connecting planned end point 8e of travel in divided area 8 and planned start point 9s of travel in divided area 9, arrow line 911(I) is a planned inter-divided area travel route connecting planned end point 9e of travel in divided area 9 and planned start point 11s of travel in area 11, and straight line 1113(I) that bypasses pillar 12 is a planned inter-divided area travel route connecting planned end point 11e of travel in divided area 11 and planned start point 12s of travel in divided area 13, and is a planned inter-divided area travel route searched by 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 inter-divided area movement routes are the inter-divided area straight-line movement planned route I determined in step S178, and there are no inter-divided area detour movement planned routes determined in the inter-divided area detour movement planned route creation process. However, in an example in which it is determined that the inter-divided area straight-line movement planned route I determined in step S178 will come into contact with an exterior wall or a pillar, an inter-divided area detour movement planned route is created based on the inter-divided area detour movement planned route creation process instead of the inter-divided area straight-line movement planned route I. 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 inter-divided area detour movement planned route that bypasses pillar 16 is created based on the path search algorithm process.
[0044] Therefore, the moving object 1 can move between the divided areas by following the optimum planned movement route between the divided areas that has been created in advance, and the moving object can move between the divided areas efficiently.
[0045] According to the above-mentioned planned travel route creation device and planned travel route creation processing program, the route with the best travel efficiency is selected from the first route and the second route, so that it is possible to accurately create an efficient planned travel route for moving a moving body while avoiding obstacles within the target travel area, depending on the shape of each divided area.
[0046] 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.
[0047] 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 the 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), which is an invention by the present applicant, may be adopted.
[0048] The following describes an example of the moving body 1. In the following description, the directions of front, back, up, down, left, and right are 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.
[0049] 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. 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 moving body 1 based on the rotation amount of the rear wheels 22L and 22R.
[0050] The target T2 is configured by a reflecting prism that reflects the light emitted from the TS, etc. The target T2 is installed, for example, at a central position between the left and right sides on the front side of the upper surface of the base 10.
[0051] 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 above 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 in contact with the floor surface in opposite directions to each other. In this case, by rotating one rear wheel in a direction that moves the moving body 1 forward and rotating the other rear wheel in a direction that moves the moving body 1 backward, the left and right rear wheels 22L, 22R and the rolling body roll on the floor surface around the rotation center line of the moving body 1, so that the moving body 1 rotates smoothly left or right on the floor surface around the rotation center line. Therefore, the horizontal orientation of the moving body 1 is smoothly changed.
[0052] 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.
[0053] Furthermore, in the above-mentioned premise device, the area outside the movement target area A, i.e., the outside-wall area, is set to area 1, and 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, examples have been shown in which the area number management variable a is set to 1 to start processing, but since area 1 is not a divided area, in the variable initialization of each of these processes, the area number management variable a may be set to 2 and processing may start from area 2.
[0054] The above-mentioned planned travel route creation device, which is a prerequisite device for the traveling 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 from the divided area with the smallest number with a planned travel route between the divided areas. In other words, a traveling 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 travels 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.
[0055] Embodiment A travel route creation device according to an embodiment of the present invention is a travel route creation device that recognizes the positional information of a plurality of target areas and creates a travel route for a mobile body to travel around the plurality of target areas, and is configured to include a travel pattern setting means for setting a travel pattern within each target area, and a travel order setting means for setting the travel order between each target area in order to create a travel route that travels around each target area. That is, the circulation pattern setting means sets a circulation pattern within each movement target area for each movement target area. In addition, the patrol order setting means sets the route between the target areas to be moved (hereinafter referred to as the inter-area route) connecting the target areas to be moved before and after the patrol route to a route connecting the end point (exit) of the patrol pattern within the target area to be moved of the previous target area and the start point (entrance) of the patrol pattern within the target area to be moved of the next target area.
[0056] The circulation pattern setting means and circulation order setting means are configured by a processing program indicating the procedure of the processing executed by each means, and hardware resources such as a computer that realizes information processing according to the processing program. In other words, the tour route creation processing program that realizes the processing of the tour route creation device is a program that causes a computer to function as the tour pattern setting means and tour order setting means described above. 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.
[0057] 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 description, the "target areas to be moved" will be referred to as "areas".
[0058] 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, the predetermined plurality of cyclic patterns within an area are, for example, a Z pattern (first pattern) in which the movement start position (starting point (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 pattern includes 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 of 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.
[0059] The tour route creation device according to the embodiment has an automatic creation function (automatic tour route creation function) in which a computer creates a tour route by setting a tour pattern and a tour order, and a manual creation function (manual tour route creation function) in which a computer creates a tour route by setting a tour pattern and a tour order based on human instructions, and also has a selection means for allowing a human to select which of the automatic and manual creation functions to use to create the tour route.
[0060] The automatic generation function uses the simulated annealing algorithm (hereafter abbreviated as "SA (Simulated Annealing)") and the automatic generation function uses the genetic algorithm (hereafter abbreviated as "GA (genetic It is equipped with a IEEE 802.11n algorithm (abbreviated as "IEEE 802.11n algorithm").
[0061] First, SA will be described in detail. In the case of the automatic creation function using SA, the circular pattern setting means and the circular order setting means include, for example, 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 moves 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, when creating a cyclic loop by setting cyclic information for each area, comprises initial cyclic loop creating means for creating an initial cyclic loop based on the cyclic information, and cyclic loop updating means for creating a cyclic loop by changing the cyclic information of the initial cyclic loop. That is, the cyclic loop creating means is means for creating a cyclic loop by setting cyclic information for each area, and is configured to repeat the process of creating a cyclic loop by setting cyclic information for each area and creating a cyclic loop by changing the cyclic information of the created cyclic loop. The circular route creation means includes a determination means for determining which circular route to keep between the current circular route created based on the current circular loop (the current circular loop with the circular information of the circular loop changed) created by the circular loop update means and the previous circular route created based on the previous circular loop (the previous circular loop before the circular information of the circular loop was changed) created by the circular loop update means. The determination means is configured to execute a process of leaving the current circular route if the movement cost of the current circular route is smaller than the movement cost of the previous circular route, leaving the current circular route if the movement cost of the current circular route is larger than the movement cost of the previous circular route and if a predetermined condition is met, leaving the previous circular route if the predetermined condition is not met. The patrol information is, for example, as shown in FIG. 45, a combination of information on a patrol pattern set for each area within the area and information on the next area to proceed to. 45, 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, according to the patrol information for area 1, the patrol pattern within area 1 is set to M pattern (seventh pattern), 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, and the determination means determines whether or not to retain the circular route.
[0062] An outline of the processing flow by SA is shown in FIG. That is, the SA executes an initial cyclic loop creation process (step S301), an initial temperature setting process (step S302), a cyclic route cost calculation process (step S303), a modification acceptance determination process (step S304), and a modification process (steps S305, S306, S307, S308, and S309). That is, in the SA, the circulating pattern setting means and circulating order setting means described above perform an initial circulating loop creation process, an initial temperature setting process, a circulating route cost calculation process, an alteration acceptance determination process, and an alteration process. That is, each of these processes (initial circulating loop creation process, initial temperature setting process, circulating route cost calculation process, alteration acceptance determination process, and alteration process) 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. That is, the above-mentioned initial circular loop creation means executes the initial circular loop creation process and the initial temperature setting process, the circular loop update means executes the modification process, the travel cost calculation means executes the circular route cost calculation process, and the judgment means executes the modification acceptance judgment process.
[0063] The processing flow by the SA can be briefly explained as follows based on the flowchart of FIG. First, an initial cyclic loop (first cyclic loop) is created by an initial cyclic loop creation process (step S301). An initial temperature (e.g., 1500°C) is set in an initial temperature setting process (step S302). In the first step S303, the travel cost of the initial cyclic route created based on the initial cyclic loop is calculated and recorded in the recording means. Thereafter, the processes of steps S304 to S306 are not performed, and the process of step S307 is performed, and a cyclic loop with the initial cyclic loop updated is created. Then, a tour route is created based on the updated tour loop, and the travel cost of the tour route is calculated in a tour route cost calculation process (step S303) and recorded in a recording means. Thereafter, the processes of steps S304, S305, S306, S307, and S303, or steps S304, S305, S306, S308, S309, and S303 are performed. That is, the circular loop creation means and the circular route creation means sequentially update the circular loop and update the circular route, and each time the circular route is updated, the travel cost of the circular route is calculated and recorded in the recording means, and a process for determining whether or not to accept the modification determines which of the current circular route and the previous circular route to keep. The modification acceptance determination process executed by the above-mentioned determination means is a process that, for example, is based on a simulated annealing algorithm, and by comparing the travel costs of the current and previous tour routes calculated by the travel cost calculation means as a solution, if the travel cost of the current tour route is smaller than the travel cost of the previous tour route, the current tour route is recorded; if the travel cost of the current tour route is greater than the travel cost of the previous tour route, and if a predetermined conditional equation, for example, R≦exp(−ΔC / T) is satisfied, the current tour route is recorded; and if R≦exp(−ΔC / T) is not satisfied, the previous tour route is recorded. Here, ΔC = |travel cost of the current tour route - travel cost of the previous tour route|, T = temperature, and R = random number. After the process of determining whether or not the change is acceptable (step S304) is completed, the process proceeds to step S305, where a temperature determination process is performed. That is, it is determined whether or not the temperature T is 0°C. If the temperature is not 0°C, it is determined whether or not the previous change was a switch of routes between areas (step S306). If the previous modification was not an exchange of inter-area routes (No in step S306), a modification process is performed (step S307) to exchange two randomly selected inter-area routes. If the previous modification was a change in the route between areas (Yes in step S306), the temperature is lowered (step S308), and then a modification process (step S309) is performed to randomly change the patrol pattern within a randomly selected area. The above process is repeated until the temperature is determined to be 0°C in step S305, and ultimately, the tour route with the lowest travel cost recorded in the recording means (i.e., the tour route based on the optimal tour information array Gbest[1~amax][1~2]) is determined to be the tour route searched by SA. The initial cyclic loop creation process, the initial temperature setting process, the cyclic route cost calculation process, the modification acceptance determination process, and the modification process will be described in detail below.
[0064] First, the computer performs an initial cyclic loop creation process (phase 1) as shown in the flowchart of FIG. 34, in accordance with the procedure of the initial cyclic loop creation process program. First, the area number management variable a is initialized and the area number information amax is acquired (step S311). 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 "14", and in the case of FIG. 44(b) described later, the area number information amax is set to "6"). Then, the cyclic information array G[1 to amax][1 to 2] is initialized and made empty (step S312). Next, G[a][1] is set to a+1 (step S313), a Z pattern is set to G[a][2] (step S314), a is set to a+1 (step S315), and then it is determined whether the value of a is equal to amax (step S316). If the answer is No in step S316, the process returns to step S313. If the answer is Yes in step S326, proceed to step S318, set G[amax][1] to "1," and proceed to step S319, set G[amax][2] to "Z." That is, the area to proceed to next from the last area is set to 1 (step S318), and further set Z pattern as the cyclic pattern for the last area (step S319).
[0065] In the cyclic information array G[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] is information (cyclic information) of the number of the next area to proceed to from area [a], and G[a][2] is 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~amax][1~2] is a group of information recorded at the address G[1~amax][1~2], i.e., a combination of cyclic information as shown in Figures 44(a) and 45, and this cyclic information array forms a cyclic loop. For example, when the number of areas is six, the cycle information array based on the cycle information array G set in phase 1 becomes the initial cycle information array as shown in FIG. 44(a). That is, the initial cyclic information array G[1 to amax][1 to 2] shown in FIG. 44(a) is as follows: Area number 2 is recorded in address [1][1], which records the number of the area to move to next from area [1], and pattern Z is recorded in address [1][2], which records the cyclic pattern information within area [1]. In other words, "2-Z" is set as the cyclic information for area number 1. Additionally, area number 3 is recorded in address [2][1], which records the information on the number of the area to proceed to next from area [2], and pattern Z is recorded in address [2][2], which records the information on the cyclic pattern within area [2]. In other words, "3-Z" is set as the cyclic information for area number 2. In addition, area number 4 is recorded in address [3][1], which records the 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 the information on the cyclic pattern within area [3]. In other words, "4-Z" is set as the cyclic information for area number 3. Additionally, area number 5 is recorded in address [4][1], which records the information on the number of the area to proceed to next from area [4], and pattern Z is recorded in address [4][2], which records the information on the cyclic pattern within area [4]. In other words, "5-Z" is set as the cyclic information for area number 4. Additionally, area number 6 is recorded in address [5][1], which records the 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 the information on the cyclic pattern within area [5]. In other words, "6-Z" is set as the cyclic information for area number 5. Additionally, area number 1 is recorded in address [6][1], which records the information on the number of the area to proceed to next from area [6], and pattern Z is recorded in address [6][2], which records the 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 the initial cyclic loop shown in FIG. 44(b). In FIG. 44(b), p is a tour pattern and r is an inter-area route.
[0066] Next, the computer performs the initial temperature setting process, the tour route cost calculation process, and the modification acceptance determination process (phase 2) as shown in the flowchart of Figure 35, in accordance with the procedures of the initial temperature setting process program, the tour route cost calculation process program, and the modification acceptance determination process program. First, initialization is performed (steps S320 and S321). That is, in step S320, the comparative cost variable C2 is set to "0", the optimum cost storage variable Cbest is set to "0", and the initial temperature T is set to "1500° C." as the initial temperature setting process. Also, initialize the patrol information copy array, i.e., set Gcopy[1~amax][1~2] to [0,0,0,...]. Also, initialize the optimal patrol information array, i.e., set Gbest[1~amax][1~2] to [0,0,0,...]. Also, initialize the driving start area number recording variable, i.e., set S to 0. Next, in step S321, the cost variable C1 is set to "0", the area number management variable a is set to "1", the area full search completion flag f is set to "0", and the maximum inter-area movement cost storage variable Cmax is set to "0". Next, it is determined whether or not the area full search completion flag is set (f=1) (step S322). If the area full search complete flag is not set (No in step S322), the process proceeds to step S323, where the movement cost for the G[a][2] pattern in the a-th area is downloaded from the database and added to cost variable C1. Note that the movement cost for each patrol pattern (eight types of patrol patterns) in each area is calculated in advance and stored in the database. Then, the process proceeds to step S324, where it is determined whether the patrol information array G[a][1] indicates the first area. Here, if the patrol information array G[a][1] indicating the next area is "1" (i.e., the area number where processing started), this means that the search area has been patrolled. Therefore, if the result in step S324 is Yes, the process proceeds to step S325, where the area full search complete flag is set (f=1). Next, the process proceeds to step S326, where it is determined whether or not it is possible to move in a straight line from the a-th area (current area) to the first area without coming into contact with an obstacle. Also, if the answer is No in step S324, proceed to step S327 to determine whether it is possible to move in a straight line from the ath area (current area) to the G[a][1]th area (next area) without coming into contact with an obstacle. If the answer to step S327 is Yes, the travel cost Ctravel for traveling in a straight line from the finish point of the ath area to the start point of the G[a][1]th area is calculated (step S329), and then the process proceeds to step S330 to determine whether Ctravel > Cmax (maximum inter-area travel cost storage variable). If the answer is Yes in step S326, the process proceeds to step S329, where the travel cost Ctravel is calculated, and then the process proceeds to step S330. Also, if the answer is No in step S326 or No in step S327, i.e., if straight-line movement is not possible, proceed to step S328, where a route (inter-area route) from the finish point of the ath area to the start point of the G[a][1]th area is searched for using a route search algorithm (such as the A* algorithm described above), and the travel cost Ctravel of the searched route (inter-area route) is calculated, and then proceed to step S330. If the answer is No in step S330, the travel cost Ctravel from the goal point of the a-th area to the start point of the G[a][1]-th area is added to the cost variable C1 (step S332). If the answer is Yes in step S330, that is, if Ctravel is greater than Cmax, the Ctravel is set as the new Cmax (step S331), and then the process proceeds to step S332, where the current travel cost Ctravel is added to the cost variable C1. After step S332, the process proceeds to step S333, where a is set to the area number of G[a][1] (the number of the area to proceed to next), and then the process returns to step S322. If it is determined in step S322 that the area search complete flag is set (Yes in step S322), it is confirmed that a circular loop has been created. In this case, the process proceeds to step S334, where C1-Cmax is set as the cost C1. In other words, the cost excluding the highest travel cost between each area is set as cost C1. In other words, the total travel cost C1 of the circular route created based on the current travel information array (circular loop) is calculated. As described above, the travel route cost calculation process is performed, and then the process moves to the modification acceptance process. That is, in step S322, it is determined whether a circular loop has been created, and if a circular loop has been created, in step S334, the inter-area route of the circular loop with the highest travel cost is deleted, and a circular route is created. It should be noted that "C1" on the right side in step S334 is the travel cost of the circular loop, and "C1" on the left side in step S334 is the travel cost of the circular route. That is, in the SA processing shown in FIG. 34, first one cyclic information array (cyclic loop information) as shown in FIG. 44 is determined, and in the GA processing shown in FIG. 48 described later, first multiple (e.g. 20) cyclic information arrays (cyclic loop information) as shown in FIG. 44 are determined, but these processing steps do not yet obtain information on the cyclic route. Then, in the SA, information about the tour route (tour route) is sequentially obtained by the process in Fig. 35. That is, the tour route is determined by the information obtained by the process in Fig. 35, namely, the optimal tour information array Gbest[1~amax][1~2], the maximum inter-area travel cost Cmax, and the travel start area number S, and the tour route can be displayed on the map on the screen. In addition, the cost Cbest of the tour route can also be displayed on the screen. Then, at step S343 in FIG. 35, the temperature T becomes 0°C. At step S344, the information of the final tour route obtained by SA, that is, the route information recorded in the optimal tour information array Gbest[1~amax][1~2], the trajectory information of the inter-area route when moving based on this route information, and the travel start area number recorded in S are saved to a file. The content saved in this file is the final tour route obtained by SA. By displaying the information of this tour route and the travel cost Cbest of the tour route on the display screen D, the user can confirm the final tour route obtained by SA.
[0067] In the modification acceptance determination process, first, it is determined whether the optimal cost storage variable Cbest is in the initialized state or whether C1 < Cbest (step S335). If the answer is Yes in step S335, it means that the current cost C1 is the minimum cost at present. So, proceed to step S336, set the current cost C1 to Cbest, and set the tour route created based on the current tour information array G[1~amax][1~2] to the optimal cost storage variable Cbest[1~amax][1~2]. Then, proceed to step S337 and determine whether the comparison cost variable C2 is not in the initialized state "0" and whether C1 > C2. If the answer is No in step S335, it means that the current Cbest, which is not in the initialized state at present, is the minimum cost. So, proceed to step S337. Step S337 is the first determination step for accepting or not accepting the modification. In step S337, at the time of determining the initial tour route, since the comparison cost variable C2 is in the initialized state, proceed to step S340, accept the modification, and set the cost of the comparison cost variable C2 to the cost of the cost C1. If the answer to step S337 is Yes except when determining the initial tour route, this means that the current cost C1 is greater than the comparison cost variable C2 (i.e., the cost C1 at the time of the previous modification), and therefore accepting the current cost C1 would result in a deterioration. However, even if the modification is a deterioration, it is accepted if it satisfies certain conditions (steps S338, 339, 340). That is, if the answer is Yes in step S337, the process proceeds to step S338, where a random number R is generated and the cost difference ΔC, i.e., C1-C2, is calculated. Then, the process proceeds to step S339, where it is determined whether R≦exp(-ΔC / T). That is, step S339 is a second determination step for determining whether or not the deterioration is to be accepted as an alteration in the case of deterioration. That is, if the answer is Yes in step S339, the process proceeds to step S340 and the deterioration is accepted as a modification, but if the answer is No in step S339, the process proceeds to step S341 and the deterioration is not accepted as a modification, and the previous cyclic information copy array Gcopy[1~amax][1~2] is set as the cyclic information array G[1~amax][1~2]. In step S339, the higher the temperature T of the simulated annealing method, or the smaller ΔC (the smaller the degree of deterioration), the larger the value of the right-hand side exp(-ΔC / T), and the higher the probability that step S339 will result in No, and therefore the higher the probability that the deterioration will be accepted as a modification. If the answer is No in step S337, C1≦C2 and the modification is an improvement, so the process proceeds to step S340 and the modification is accepted. After step S340, the process proceeds to step S342, where the current state is copied. That is, the current cyclic information array G[1 to amax][1 to 2] is copied to the cyclic information copy array Gcopy[1 to amax][1 to 2]. In other words, if the travel cost of the current tour route is greater than the travel cost of the previous tour route, and R≦exp(−ΔC / T) is satisfied, the current tour route is recorded (step S342), and if R≦exp(−ΔC / T) is not satisfied, the previous tour route is recorded (step S341). Then, the process proceeds to step S343 to determine whether the temperature T=0 or not, and if the temperature T=0 is not reached, the process proceeds to step S345 to determine whether the most recent (previous) change was made to the inter-area route or the patrol pattern. If it is determined in step S345 that the most recent modification was made to an inter-area route, the process proceeds to step S346, where the temperature T is lowered, for example, by 1°C, i.e., the temperature T is set to T-1 (i.e., the temperature is lowered by 1°C), and then the process proceeds to modify the circulation pattern (phase 3-2). If it is determined in step S345 that the most recent change was made to the circulation pattern, or if it is determined that this is the first processing, the process proceeds to processing for changing the inter-area route (phase 3-1). As described above, the process of determining whether or not to accept the alteration is performed, and then the process moves to the alteration process (phase 3 (phase 3-1, phase 3-2)).
[0068] If it is determined in step S343 that the temperature T=0, the process proceeds to step S344, where the information on the tour route for which Cbest is recorded, i.e., the route information recorded in Gbest, the trajectory information of the route between areas when traveling based on this information, and the travel start area number recorded in S are saved in a file. In other words, the tour route with Cbest is determined as the final result, i.e., the optimal tour route determined by the processing by the SA. That is, when the temperature T becomes 0, the traveling route having the last remaining Cbest is determined as the traveling route obtained in the SA.
[0069] Next, we will outline the simulated annealing (SA) used in the modification acceptance judgment process. For example, suppose we want to find the maximum value of a graph like the one shown in Figure 43(a). First, a candidate solution is selected at random. Next, the neighborhood of the candidate solution is randomly searched. In this case, searching to the right on the horizontal axis will improve the solution. Therefore, as shown in Figure 43(b), it is acceptable for the candidate solution to move to the right. On the other hand, searching to the left will make the solution worse. Therefore, moving to the left is generally not acceptable. However, in this case, the solution will remain at the local solution shown in Figure 43(a), and the optimal solution will not be reached. Therefore, simulated annealing is a method that accepts the result with a certain probability, even if it is worsened. The probability of accepting a worsened solution is determined by the temperature T set in the algorithm. In other words, if the temperature T is high, there is a high probability that a worsened solution will be accepted, and conversely, if the temperature is low, a worsened solution will be less likely to be accepted (see Figure 43(c)). In other words, if the temperature is high, there is a higher chance that a global solution can be searched for without remaining in a local solution. The relationship between the temperature and the probability that a worsened solution will be accepted is often determined by the above-mentioned formula, exp(-ΔC / T). The temperature is set high in the initial state and is gradually lowered as the search progresses. The initial temperature and the pace at which the temperature is lowered are determined depending on the problem. In this way, SA is a method that introduces the concept of temperature to prevent falling into a local solution.
[0070] Next, the computer performs the modification process (phase 3) as shown in the flowchart of FIG. 36 in accordance with the procedure of the modification process program. First, the inter-area route modification process (phase 3-1) shown in the flowchart of FIG. 36(a) will be described. If it is determined in the above-mentioned step S345 that the most recent modification was made to the cyclic pattern, the cyclic information array G[1 to amax][1 to 2] in step S342 is carried over (step S350). Next, one value is randomly selected from among area numbers 1 to amax and assigned to P1 (step S351), and one value is randomly selected from among area numbers 1 to amax and assigned to P2 (step S352). Thereafter, the process proceeds to step S353, where it is determined whether P1 and P2 are the same, whether G[P2][1] and P1 are the same, and whether G[P1][1] and P2 are the same. Here, we will explain G[P2][1] and G[P1][1]. In step S350, for example, assume that the cyclic information array shown in FIG. 45 is inherited. In this case, a cyclic loop such as that shown in FIG. 37(a) is created based on the cyclic information array. Then, assume that area number 2 is selected as P1 in step S351. In this case, the next area number G[P1][1] determined by selecting P1 is 5, and the circulation pattern for area number 2 is "Z." In other words, P1 and P2 are variables that contain the area number where the swapping process will be performed, G[P1][1] and G[P2][1] are variables (arrays) that contain the number of the next area to move to from the P1 or P2 area, and G[P1][2] and G[P2][2] are variables (arrays) that contain the cyclic pattern of the P1 or P2 area. Also, Ptmp is a variable that holds the value used at the end of the swapping process, and m is a flag to escape the processing loop and a temporary variable that holds the area number. If the answer to step S353 is Yes, the randomly selected area numbers are the same, or the randomly selected area number is the same as the next area number from that area number, so the process returns to step S352 and P2 is selected again. If the answer is No in step S353, the process proceeds to step S354, where Ptmp is set to G[P2][1]. Next, proceed to step S355 to search for an area number a such that G[1~amax][1]=P2, and determine whether or not such an area number a has been found. In other words, determine whether or not there is still an area remaining in the tour information that has the area number P2 set as the next area to proceed to. If the answer is No in step S355, m is set to -1 (step S356). If the answer to step S355 is Yes, m is set to a (step S357). In other words, if there is another area whose next destination is the area assigned to P2, the number a of that other area is assigned to m. After step S356 or step S357, the process proceeds to step S358, where G[P1][1] is set to P2. Then, the process proceeds to step S359, and it is determined whether or not the process of the immediately preceding step S358 has been performed for the first time (step S359). If the answer to step S359 is YES, that is, if this is the first time the process of S358 is performed, the process proceeds to step S361, where it is determined whether m=-1. If the answer is No in step S359, that is, if this is not the first time that the process of S358 has been performed, the cyclic pattern set in G[P2][1] is reversed (step S360), and then the process proceeds to step S361. If No in step S361, the process proceeds to step S362, where P1 is set to P2 and P2 is set to m, and then the process returns to step S355. If the answer is Yes in step S361, proceed to step S363 to set G[P2][1] to Ptmp, then proceed to step S364 to reverse the cyclic pattern set in G[P2][2], and then proceed to step S380 in phase 2.
[0071] Next, the cyclic pattern modification process (phase 3-2) shown in the flowchart of FIG. 36(b) will be described. If it is determined in step S345 that the temperature T is not 0, the cyclic information array G[1 to amax][1 to 2] in step S342 is continued (step S370). Next, a value is randomly selected from area numbers 1 to amax and assigned to P (step S371), and any cyclic pattern other than the existing cyclic patterns is randomly assigned to G[P][2] (step S370), after which the process proceeds to step S380 of phase 2. In other words, if a cyclic pattern that is the same as the cyclic pattern already set in G[P][2] is randomly selected, it is reselected at random until a different cyclic pattern is found.
[0072] In other words, the cyclic loop creation means includes a cyclic pattern modification processing means that executes a cyclic pattern modification process that modifies the cyclic pattern within an area of the cyclic loop, and the cyclic pattern modification processing means is a means for randomly selecting one area from each area of the cyclic loop and modifying the information of the cyclic pattern, which is the cyclic information of that area.
[0073] After the inter-area route modification process or the tour pattern modification process, that is, after step S364 or step S372, the process proceeds to step S380 in phase 2. In step S380 of phase 2, the cyclic information array G[1 to amax][1 to 2] is inherited from phase 3. After that, the process proceeds to step S321.
[0074] Next, the inter-area route modification process (phase 3-1) shown in FIG. 36(a) will be described in more detail with reference to FIGS. For example, it is assumed that a tour route such as that shown in FIG. 37(a) is created as the previous tour route based on the tour information array shown in FIG. 45 and is carried over (step S350). Then, in step S351, "2" is selected as the area number for which the swapping process is to be performed and assigned to P1. In this case, as shown in Fig. 37(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 Fig. 45). Next, in step S352, "3" is selected as the area number for which the swapping process is to be performed and assigned to P2. In this case, as shown in Fig. 37(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 Fig. 45). Next, in step S354, Ptmp is set to 6 as the destination area G[P2][1] of area 3, which is P2. That is, Ptmp is set to "6" (see FIG. 37(c)). Then, in step S355, a search is performed 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 S357). In this case, area 4 exists as an area that has area 3 indicated by variable P2 as its destination (see FIG. 45), so m is set to "4" (see FIG. 38(a)). Next, in step S358, the destination area G[P1][1] of P1 "area 2" is set to P2. In this case, as shown in Figure 38(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 Figure 38(b)). Next, the process proceeds to step S359, and since this is the first time that step S358 has been performed, the process proceeds to step S361. In this case, m=4, not -1, so the process proceeds to step S362 (see FIG. 38(c)). In step S362, P1 is set to P2, and P2 is set to m. In this case, as shown in Fig. 39(a), P1 is set to "3" and P2 is set to "4". Then, the process returns to step S355 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 S357). In this case, area 5 exists as an area that has area 4 indicated by variable P2 as its destination (see FIG. 45), so m is set to "5" (see FIG. 39(b)). Then, proceeding to step S358, the destination area G[P1][1] of P1 "area 2" is set to P2. In this case, as shown in Figure 39(c), G[P1][1] is set to "4." In this case, since P1 is "3" and G[P1][1] is "4," the inter-area route connecting area 3 and area 5 is canceled, and instead, the end point of area 3 and the start point of area 4 are connected by an inter-area route (see Figure 39(c)). Thereafter, the process proceeds to step S359, and because the process of step S358 is not the first time, the process proceeds to step S360. In this case, the cyclic pattern of area 3, which is P1, is inverted. That is, as shown in FIG. 40(a), the cyclic pattern of area 3 is converted from the "S" pattern (see FIG. 39(c)) to the "S'" pattern (see FIG. 40(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. Also, 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. Also, 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 S361. In this case, m=5, and the process proceeds to step S362. In step S362, P1 is set to P2, and P2 is set to m. In this case, as shown in Fig. 40(b), P1 is set to "4" and P2 is set to "5". After that, the process returns to step S355 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 S357). In this case, as shown in FIG. 40(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 FIG. 38(b), has already been canceled), so the process proceeds to step S356 and m is set to -1. Then, the process proceeds to step S358, where the destination area G[P1][1] of P1 "area 4" is set to P2. In this case, as shown in FIG. 41(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. 41(a)). Thereafter, the process proceeds to step S359, and because the process of step S358 is not the first time, the process proceeds to step S360. In this case, the cyclic pattern of area 4, which is P1, is inverted. That is, as shown in FIG. 41(b), the cyclic pattern of area 4 is converted from the "M" pattern (see FIG. 41(a)) to the "M'" pattern (see FIG. 41(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 S361. In this case, m=-1, and the process proceeds to step S363. In step S363, G[P2][1] is set to Ptmp. In this case, as shown in Figure 41(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 S364, where the cyclic pattern of G[P2][2] is reversed. In this case, as shown in FIG. 42, G[P2][2] (= the cyclic pattern of area 5) is converted from the "Z" pattern (see FIG. 41(c)) 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 circular loop that loops through all areas is created, as shown in FIG. Thereafter, the process proceeds to step S380 in phase 2, and in step S334 a travel route is created in which the inter-area route with the highest travel cost has been deleted.
[0075] The contents of the modification process (phase 3) can be summarized as follows based on Figure 46. As shown in Figure 46(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 46(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 46(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 Figure 46(d), the process ends by setting a route 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.
[0076] In other words, to summarize the contents of the inter-area route modification process (phase 3-1), 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 to P1) to the next area and the inter-area route from the area selected the second time (the area set to P2) to the next area as the inter-area routes to be swapped; 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. In other words, the circular loop creation means includes inter-area route modification processing means for executing inter-area route modification processing (phase 3-1) for modifying the inter-area route of the circular loop, and the inter-area route modification processing means includes a first step (steps S351 and S352) of arbitrarily selecting a first area P1 and a second area P2 that are different from each other from among the areas of the circular loop, a second step (step S354) of recording information on the next area to be advanced set as the circular information of the second area P2 as reserved information Ptmp, a third step (step S355) of searching for an area that has the information on the next area to be advanced set as the circular information of the second area P2 as its circular information and determining whether or not the area exists, and a fourth step (step S358) of setting the second area P2 as the information on the next area to be advanced set in the circular information of the first area P1, and if the processing of the fourth step is performed for the first time, If the determination result in the third step is yes (m=a) (No in step S361), the process executes a sixth step (step S362) in which the first area P1 is changed to the second area P2 and the second area is changed to the area searched in the third step, after the fourth step or the fifth step, and the process returns to the third step; and if the determination result in the third step is no (m=-1) (Yes in step S361), the process executes a seventh step (steps S363, S364) in which the pending information Ptmp is set as the next area to proceed to in the circular information of the second area P2 and the circular pattern set in the circular information of the second area P2 is reversed.
[0077] As described above, according to the tour route creation device equipped with an automatic creation function using SA in 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. Furthermore, by performing modification processing on the circular loop using the inter-area route modification processing means, it is possible to add variety to the modified (updated) circular loop, thereby enabling the creation of efficient circular routes. Furthermore, by performing modification processing on the cyclic loop using the cyclic pattern modification processing means, it is possible to add variety to the modified (updated) cyclic loop, thereby enabling the creation of an efficient cyclic route. Furthermore, since the modification process by the inter-area route modification processing means and the modification process by the circular pattern modification processing means are performed alternately on the circular loop, it is possible to provide more variety to the modified (updated) circular loop, and it is possible to create a more efficient circular route.
[0078] Next, the GA will be explained. In the case of the automatic creation function using GA, as in the automatic creation function using SA, the circular pattern setting means and the circular order setting means include, for example, 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 moves 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 movement cost calculation means is the same as that explained in SA. 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. The later generation circular loop creating means extracts some early generation circular routes with small travel costs from among a 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 GA also uses the above-mentioned cyclic information, but in the GA, the cyclic information will be appropriately interpreted as genetic information in the following explanation. In the embodiment, the number of subsequent generations is plural, and the number of subsequent generations is arbitrarily determined in advance. In the embodiment, the number of generations is, for example, 100 or more. 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 to create the current next-generation circular route, and the final-generation next-generation circular route creation means determines the circular route with the smallest travel cost as the circular route from among the multiple circular routes created for the final generation. In other words, the final circular route becomes the circular route calculated by the GA.
[0079] An outline of the processing flow by GA is shown in FIG. That is, the GA executes an initial generation individual creation process (step S401) to create multiple individuals in the initial generation, an individual evaluation process (step S402), a generation confirmation process (step S403), a parent selection process (step S404) to select multiple individuals with excellent genetic information as parents, and a subsequent generation individual creation process (step S404) to create subsequent generation individuals using the genetic information of the parents. The processing flow of the GA 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, the cyclic pattern setting means and the cyclic order setting means randomly set, for each area, combination information made up 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), as shown in Fig. 45, to create individuals (initial cyclic information array) that will become cyclic loops. 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 processing by the GA is terminated.
[0080] That is, in the GA, the cyclic pattern setting means and cyclic order setting means perform the initial generation individual creation process, individual evaluation process, generation confirmation process, parent selection process, and subsequent generation individual creation process. That is, each of these processes is executed by a processing program indicating the procedure of 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 GA, the cyclic pattern setting means and cyclic order setting means described above perform the initial generation individual creation process, generation confirmation process, subsequent generation individual creation process, individual evaluation process, and excellent individual extraction process. That is, each of these processes (initial generation individual creation process, generation confirmation process, subsequent generation individual creation process, individual evaluation process, and excellent individual extraction process) 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.
[0081] First, the computer performs the initial generation individual creation process (phase 1) as shown in the flowchart of FIG. 48, in accordance with the procedure of the initial generation individual creation process program. In GA, 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. 44(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 management variable a is initialized, that is, the area number management 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~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~amax][1] (step S418). That is, if there are two or more areas in which information on the next area to proceed remains in the genetic information (cyclic information) in the genetic information array constituting one individual (Yes in step S418), steps S415 to S417 are repeated. If there is only one area in which information on the next area to proceed remains in the genetic information in the genetic information array constituting one individual (No in step S418), the genetic information array G[p][a][1] of that area is set to 1 (step S419), and a numerical value representing the cyclic pattern is randomly assigned to the genetic information array G[p][a][2] of that area (step S420). That is, the area number of the area to proceed to the end of that area is set to 1, and the cyclic pattern of that area is randomly set. Then, p is set to p+1 (step S421). That is, by repeating steps S413 to S421 multiple times, multiple individuals (for example, 20 individuals) of the initial generation are created. That is, the "initial generation individual creation loop" shown in FIG. 48 is executed.
[0082] The genetic information sequence G[1-20][1-amax][1-2] will be explained. [1-20] are variables for identifying individuals created in the initial-generation individual creation process, and [1-amax] is a variable for identifying the area. 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. 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].
[0083] In other words, SA generates only one initial cyclic loop specified by the cyclic information sequence and performs a modification process, whereas GA generates multiple initial cyclic loops (initial individuals) specified by the cyclic information sequence as initial generation individuals, and performs crossover and mutation processes to generate multiple individuals for each subsequent generation. Roughly speaking, SA generates one initial cyclic loop, performs modification processing, sequentially creates one cyclic loop, and evaluates it, while GA generates multiple initial cyclic loops, i.e., initial generation individuals, and when generating individuals of the next generation, excellent parent individuals are selected from the initial generation individuals and crossover processing and mutation processing are performed using those parent individuals to generate individuals of the next generation.Similarly, when generating individuals of the current successive generation, excellent parent individuals are selected from individuals of the previous successive generation and crossover processing and mutation processing are performed using those parent individuals to generate individuals of the current generation, and this process is repeated for a predetermined number of generations. In other words, the initial generation individual creation process is a process of creating multiple, for example 20, initial cyclic information arrays G[1~amax][1~2] of the initial cyclic information array G[1~amax][1~2] shown in Figure 44(a) described above and storing them as genetic information arrays G[1~20][1~amax][1~2], that is, a process of repeating the processes of steps S413 to S421 in Figure 48 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~amax][1~2] that remains at the end. The crossover process and mutation process will be described later.
[0084] Next, the computer performs the individual evaluation process (including generation confirmation process) (phase 2) as shown in the flowchart of FIG. 49, in accordance with the procedure of the individual evaluation process program (including generation confirmation process program). After the processing of phase 1, initialization processing is performed on the optimal cost variable and optimal genetic information storage array (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 (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), initialization processing is performed on the individual variable and cost management array (step S432). That is, the individual variable p is set to 1, and the cost management array C[1~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 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 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 or not the area full search completion flag is set (step S435), that is, it is determined whether or not the area full search completion flag f is 1. If the area full search completed 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 travel costs. That is, if the answer to step S437 is Yes, 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.
[0085] 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 travel 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 sequence 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 met (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.
[0086] 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~amax][1~2] is set to G[p][1~amax][1~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~amax][1~2] of the circular loop (individual) that was the source of the circular route with the travel cost C[i] is rewritten to the optimal genetic information storage array Gbest[1~amax][1~2]. That is, in step S449, the circular loop (individual) that was the source of 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, and when 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, 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, the 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 point, the traveling route with a travel cost calculated by subtracting Cmax from the travel cost of the traveling loop based on the genetic information (travel information) recorded in the optimal genetic information storage array Gbest[1~amax][1~2] is the traveling route created as a result of the search by the GA. That is, in step S453, the information on the traveling loop that recorded Gbest, i.e., the route information recorded in the optimal traveling information array Gbest[1~amax][1~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 traveling route determined by the GA, and the information on this traveling route and the traveling cost Cbest of the traveling route are displayed on the display screen D, allowing the user to confirm the final traveling route determined by the GA.
[0087] The computer performs crossover processing (phase 3-1) as a process for creating subsequent generation individuals, as shown in the flowchart of FIG. 50, 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 to 20][1 to amax][1 to 2] is inherited from phase 2 (step S461). The genetic information array G[5~20][1~amax][1~2] is initialized and made 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). Furthermore, the number of offspring individuals in the next generation is, for example, 20 (total number of offspring individuals in the next generation) minus 4 (parent individuals in the next generation) = 16. However, the crossover process creates 12 offspring individuals, and the mutation process (phase 3-2) described below creates 4 offspring individuals.
[0088] 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 may 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 as a combination of any of the parent individuals. 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 management variable is initialized, that is, the area number management 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, the 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, the 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 a=1 and the crossover process of the genetic information of the pth individual has been performed at least once. In other words, it is determined whether the genetic information of the pth individual has reached a state where it can go around the area and return, that is, whether the pth cyclic loop that goes around each area based on the genetic information has been created. If the determination in step S468 is No, the process proceeds to the crossover process. 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).
[0089] In the crossover process, the process first proceeds to process block B1, which prevents the inheritance of lethal genetic information. In processing block B1, first, it is determined whether or not two or more empty elements remain in the genetic information sequence 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~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~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 determination 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 in basic crossover processing block B2. That is, steps S480, S483, and S484 prevent the inheritance of lethal genetic information that leads to cecal stenosis or multiple loops. In other words, the crossover process ensures that a genetic information sequence that forms one loop is always created.
[0090] 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 inheritance is possible from both parents. 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 number, and it is determined whether the number is 51 or greater (step S485). Alternatively, the numerical values 1 and 0 may be prepared, and it may be determined whether the extracted number 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.
[0091] 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~amax][1~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~amax][1~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~amax][1] is randomly selected from area 2~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 (process B3).
[0092] 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 numbers, 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 the 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.
[0093] 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 for area a of parent P1 is 1 and the destination area for area a of parent P2 is 1, that is, if the destination areas for area a of parents P1 and P2 are both 1, or if the destination areas for area a of parent P1 are not both 1, then the patrol pattern G[p][a][1] for that child's area a is set to the patrol pattern for area a of parent P1 or the patrol pattern for area a of parent P2. Which patrol pattern is used is decided 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.
[0094] The flow of the crossover process in FIG. 50 will be explained. In creating a child individual, first, the process proceeds to step S468, step S469, step S470, step S471, and step S472. If step S472 returns Yes, the genetic information of area 1 of the child individual (circulation pattern of area 1, next destination area from area 1) is inherited from parent P1 or parent P2 via step S485 (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 of 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 54) and set as the next destination area G[p][a][1] (step S475 (exceptional crossover)), and the process proceeds to step S476, where the patrol 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 patrol pattern G[p][a][2], whose child's destination area is 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 lead to 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 circular routes with the lowest travel cost 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 50). 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) of Figure 50). In addition, as mentioned above, 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, S484 of processing B1 in Figure 50). 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 of the remaining area, which is the information of 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 50).
[0095] The computer follows the steps of the mutation processing program to perform the mutation processing (phase 3-2) as shown in the flowchart of Figure 51. Note that this mutation processing (phase 3-2) is basically the same as the inter-area route modification processing (phase 3-1) in the SA shown in the flowchart of Figure 36(a). 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, a copy is made of the individual that was determined to have the lowest movement cost in phase 2. That is, G[p][1~amax][1~2] is replaced with G[p-16][1~amax][1~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.
[0096] If the determination in step S504 is No, the same processing as the above-described inter-area route modification processing in the SA (phase 3-1) is performed (see FIG. 36(a)). If the determination in step S504 is Yes, the same process as the above-described process of modifying the cyclic pattern in SA (phase 3-2) is performed (see FIG. 36(b)). The mutation process shown in FIG. 51 is a process performed to prevent the loss of diversity, and is similar to the modification process in SA (see FIG. 36).
[0097] 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~amax][1~2] (i.e., G[1~4][1~amax][1~2]) of four individuals are inherited from the genetic information sequences G[1~20][1~amax][1~2] constituting a plurality of individuals. If the cyclic information sequence of one of these four genetic information sequences G[p-16][1~amax][1~2] is, for example, the cyclic information sequence shown in Figure 44(a), a cyclic loop such as that shown in Figure 44(b) is created by the cyclic information sequence, and a mutation process is performed on the cyclic information sequence.
[0098] That is, 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). Thereafter, 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 result of step S507 is No, 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 such that G[p][1-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 to step S509 is Yes, m is set to a (step S511). In other words, if there is another area whose next destination is the area assigned to P2, 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 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 inverted (step S515), and then the process proceeds to step S514. If 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 the 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 small 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 first area and a second area that are different 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 circulating pattern set in the circulating 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, S518) of setting the pending information as the next area to proceed to in the circulating information of the second area after the fourth step or the fifth step if the judgment result in the third step is no (Yes in step S514).
[0099] Next, the process of modifying the cyclic pattern when the determination in step S504 is Yes will be described. If the result of 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 the same cyclic pattern as the cyclic pattern already set in G[p][P][2] is randomly selected, a new cyclic pattern is randomly selected until a different cyclic pattern is selected. After that, in step S519, p is set to p+1, and then 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 multiple 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, which is the circular information for that area.
[0100] 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 judgment in step S431 is that it 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~amax][1~2] is set to 0, and the genetic information array G[5~20][1~amax][1~2] is inherited from phase 3, and then the process proceeds to step S433.
[0101] A supplementary explanation will be given for the processing block B1. Lethal genetic information refers to genetic information (circulating information) that results in the formation of individuals that cannot complete a full loop around the entire area, such as individuals with multiple loops or individuals with appendicitis.
[0102] For example, the individual shown in Figure 52 has two loops: 1-3-6-1 and 2-10-5-4-9-8-7. An individual with this kind of genetic information cannot achieve the original goal of visiting each area once. The individual shown in Figure 53 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.
[0103] 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 54 shows an example in which the genetic information gi of the child's area 1 is inherited from the genetic information 3-Z of parent 1. In this case, the adopted genetic information is (3-Z), so the operation area for the next crossover is area 3. Figure 54 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 parent 2. That is, in processing block B2 of Figure 50, 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). And if genetic information cannot be inherited from either parent 1 or parent 2, G[p][P][1], which is the area for the next crossover operation, is set randomly (step S475, processing block B4).
[0104] 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.
[0105] Pattern A Regarding the genetic information of the destination area number of one of the parents, if the genetic information of the area number of the parent has already been determined, it is prohibited to obtain genetic information from that parent (steps S470, S483, S471, S484). In Figure 55, 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).
[0106] 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 randomly selected from the free area (step S475). The genetic information for the cyclic pattern is inherited randomly from either parent. In Figure 56, the genetic information of this child itself 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 of the next area number is empty (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.
[0107] C pattern 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 57, 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, the genetic information for the next area number to proceed to is set to "1" in area 6, which is the crossover target area ca. In addition, the patrol pattern is selected randomly from the genetic information for this area held by the parent (in this example, it is determined to be S'). 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.
[0108] As described above, according to the tour route creation device equipped with an automatic creation function using GA in the embodiment, the tour route is updated using genetic information (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.
[0109] The automatic route creation function may be the following automatic route creation function. That is, a circular route creation device 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, comprising: a circular loop creation means for creating a circular loop that goes around each area; a travel cost calculation means for calculating the travel 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 travel 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 the creation device, the circular loop creation means may be configured to include an initial circular loop creation means for creating an initial circular loop by setting circular information for each area, and a circular loop update means for creating a circular loop with changed circular information of the initial circular loop, and the circular route creation means may be configured to include a 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 (the current circular loop with changed circular information of the circular loop) with the travel cost of a previous circular route created based on the previous circular loop created by the circular loop update means (the previous circular loop before the circular information of the circular loop was changed), and keeping the circular route with the lower 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.
[0110] Next, the manual route creation function will be described. That is, a tour route creation device with a tour route manual creation function includes a display control means for displaying images of a plurality of target areas on a screen based on the position information of the plurality of areas. The display control means has a function of displaying on the screen a circulating pattern setting guide image for selecting a circulating pattern for each area displayed on the screen from a plurality of predetermined circulating patterns and instructing the circulating pattern setting means to select the circulating pattern for that area, and the circulating pattern setting means has a function of setting the designated circulating pattern as the circulating pattern within the designated area when a worker or other person designates a circulating pattern for the designated area via the circulating pattern setting guide image. The display control means also has a function of displaying on the screen a tour order setting guide image for instructing the tour order setting means on the tour order between the areas displayed on the screen, and the tour order setting means has a function of setting the tour order between the areas to the specified tour order when a worker or other person specifies the tour order between the areas via the tour order setting guide image. The tour route creation device according to the embodiment is configured to include a selection means for allowing a worker or other person to select which of the above-mentioned tour route automatic creation functions using SA or GA, or the above-mentioned tour route manual creation function, to use to create the tour route. Furthermore, the travel route creation device according to the embodiment is configured to include a travel cost display means for displaying on the screen the travel cost of the mobile body when traveling along the created travel route.
[0111] For example, it has the function of displaying a map drawing field E and a tour route setting guide field RG (see Figures 58 and 59), which function as a tour pattern manual setting guide image and a tour order manual setting guide image, on a display screen D of a display means managed by a computer. It also includes a travel cost calculation means for calculating the travel cost of the mobile body when moving along the created travel route and displaying the calculated cost log display field C (see Figures 58 and 59) on the screen D.
[0112] That is, the tour route creation device of the embodiment is equipped with the above-mentioned automatic tour route creation processing function using SA, the automatic tour route creation processing function using GA, and the manual tour route creation processing function under human instruction, and is configured to be able to selectively instruct these processes via a processing selection screen (see Figures 58 and 59) set on the screen D of the display means.
[0113] How to use the tour route planning device will be explained with reference to FIG. First, if the worker wants to have the route creation device generate a new route rather than edit a route that has already been created by the route creation device (this device) (No in step S600), he or she clicks the "Open new" button 1 in [Open map / route] and selects the name of the construction project for which the route is to be created (step S601). If manual division of the area is desired (Yes in step S602), the operator creates areas by connecting pillars and walls with mouse clicks on the map drawing field E (step S603). If automatic partitioning is desired (No in step S602), the operator clicks the "Create partitions" button 30 (step S604), which causes the computer to generate partitions based on the processes shown in phases 1 to 6 of the base technology, for example. If the desired results are not obtained in manual partition creation (step S603) or computer-based partition creation (No in step S605), the manual partition creation process (step S603) is performed again, or the computer is instructed to perform the partition creation process (step S604).
[0114] Then, when the desired result is obtained by manually (manually) generating the section or by computer generating the section (Yes in step S605), the operator clicks the "Generate Tourist Route" button 31 (step S606). Note that once the "Generate Tourist Route" button 31 is clicked, the section cannot be edited. In other words, the "Generate Tourist Route" button 30 is deactivated. Therefore, if the operator wants to re-edit the section after clicking the "Generate Tourist Route" button 31, he or she clicks the "Open as New" button 1 and then generates the section. If the user wishes to set a tour route manually (Yes in step S607), the user clicks the mouse on the map drawing field E to create a tour route from the displayed tour route setting guide field RG (step S608), and then clicks the "Recalculate tour route to avoid obstacles" button 26 after creating the tour route (step S609). Clicking the "Recalculate tour route to avoid obstacles" button 26 displays the created tour route and the travel cost of the tour route in the map drawing field E, and records the travel cost. That is, the means for accepting a mouse click operation on the map drawing field E functions as a selection means for allowing a person to select the manual tour route creation function. If the desired results are obtained (Yes in step S610), and if the user wishes to save the work under a new name (Yes in step S611), the user clicks the "Save under new name" button 3, enters an arbitrary name for the work, and saves it (step S612). This causes the information about the created tour route to be saved with an arbitrary name for the work. Furthermore, if the user wishes to save the information about the created tour route with the construction name already assigned, he or she clicks "save as overwritten" (step S613).
[0115] If it is desired to set a tour route automatically (No in step S607), an instruction is issued to perform the process of automatically creating a tour route by SA or the process of automatically creating a tour route by GA. That is, for example, if a more efficient round route is desired, SA processing is instructed. Also, for example, if it is desired to obtain a tour route in a short time, GA processing is instructed.
[0116] When instructing GA processing (Yes in step S614), if one of the initial values is to be the tour route shown in the map drawing field E (Yes in step S615), click the "Start search by making the searched tour route one of the initial generation individuals" button 6 in [Search for tour route with GA] (step S616). In addition, the condition under which Yes can be selected in step S615 is that, at the time of judgment in step S615 in the route editing loop via step S623, the map drawing field E already shows a manually set route, or a route searched by GA, or a route searched by SA. When instructing GA processing (Yes in step S614), if one of the initial values is not to be the tour route shown in the map drawing field E (No in step S615), click the "Start searching for a new tour route" button 5 in [Search for a tour route with GA] (step S617). If you select "Start search by using an already explored route as one of the initial generation individuals," the GA will be performed using a route that has already been explored in the past by GA or SA, which increases the chances of finding a more efficient route.
[0117] When instructing SA processing (No in step S614), if you want to set the initial value to the tour route shown in the map drawing field E (Yes in step S618), click the "Start search using the searched tour route as the initial tour route" button 10 in [Search for tour route with SA] (step S619). In addition, the condition under which Yes can be selected in step S618 is that, at the time of judgment in step S618 in the route editing loop via step S623, the map drawing field E already shows a manually set route, a route searched by GA, or a route searched by SA. When instructing SA processing (No in step S614), if the initial value is not to be the tour route shown in the map drawing field E (No in step S618), click the "Start searching for a new tour route" button 9 in [Search for tour route with SA] (step S620). If you select "Start search using already searched route as initial route" (step S619), SA will be performed using a route that has already been searched in the past using GA or SA, which increases the chances of finding a more efficient route. That is, the means for accepting input of each button in the [Search for tour route with SA] column and each button in the [Search for tour route with GA] column functions as a selection means for allowing a person to select the tour route automatic creation function.
[0118] If the desired result is not obtained by the GA or SA processing (No in step S610) and the results of a previous search were better (Yes in step S621), click on the cost value that produced the desired result in the [Cost Log] display field C (step S622). When the cost value that produced the desired result is clicked in the [Cost Log] display field C, the tour route having that cost value is displayed in the map drawing field E. Then, the process proceeds to step S610. If the desired result is not obtained by the GA processing or SA processing (No in step S610) and the result of the previous search is not the desired result either (Yes in step S621), return to step S607 and re-create the tour route by manually resetting the tour route, or by resetting the conditions in GA, or by resetting the conditions in SA.
[0119] If you want to edit a tour route that has already been created with the tour route creation device (this device) (Yes in step S600), click the "Open searched map" button 2 under "Open map / tour route" and select the name of the construction project for which you want to edit the tour route. When you select the name of the construction project, the map and tour route for that construction project are displayed in the map drawing field E, and then the process that was performed immediately before the previous save is continued (step S624).
[0120] The manual (manual) creation process of lane markings will be described. When the tip of the mouse cursor coincides with the corner of a pillar B or a wall on the map displayed in the map drawing field E, clicking the mouse will enter manual division mode. In this mode, for example, as shown in Figure 61, you can manually create boundary lines M (Figures 61(a) and (b)) that connect to the corner of another pillar B, boundary lines N (Figure 61(c)) that connect the corner of pillar B to a wall (boundary line) C (see Figure 5), and boundary lines Q (see Figure 5) that connect the corner of pillar B to the inter-pillar boundary line M or boundary line N. In this manual process of creating lot lines, as shown in Figure 61(d), it is not possible to draw a boundary line that crosses over pillar B or boundary lines M, N, Q, and C. In other words, if the program detects that the tip of the mouse cursor has passed over the coordinates of boundary lines M, N, Q, and C, it will not display boundary lines M, N, Q, and C in the map drawing field E.
[0121] In the following, when explaining each button and each field displayed on the processing selection screen shown in FIG. 58, the symbols attached to each button and each field will be used as shown in FIG. As shown in FIGS. 58 and 59, V is a processing content log display field, and also has a function of displaying the processing content log display field V for verification.
[0122] In step S604, if the "Create Zone" button 30 of [Create Zone / Circuit Route] is clicked, the computer determines whether map information has already been input (step S630), as shown in FIG. 62. If it determines that map information has already been input (Yes in step S630), the computer erases the display of the zone dividing lines and the circular route in the map drawing field E (step S631), and executes automatic zone dividing processing by the automatic zone dividing program (step S632). Thereafter, the results of the automatic zone dividing processing are displayed in the map drawing field E (step S633). If it determines that map information has not been input (No in step S630), an error message is displayed (step S634). The user sees the error message and performs processing to have the computer load the map information.
[0123] Also, in step S606, when the "Generate Tourist Route" button 31 of [Create Zone / Tourist Route] is clicked, the computer determines whether map information has been entered and whether valid zoning has been performed (step S640), as shown in Fig. 63. If it determines that map information has been entered and valid zoning has been performed (Yes in step S640), it erases the display of the tour route in the map drawing field E (step S641), executes the automatic tour route generation program (step S642), and then displays the results of the automatic tour route generation in the map drawing field E (step S643). Then, it initializes the flag that manages whether the area is valid or invalid (step S644). If it is determined that map information has not been input (No in step S640), an error message is displayed (step S635). The user sees the error message and performs processing to load the map information into the computer.
[0124] Furthermore, when the "Advanced Settings" button 32 in [Segment / Travel Route Generation] is clicked, the computer displays a setting field (window) P as shown in FIG. The setting field P has a field for setting the lane distance Q of the patrol pattern within the area, a field for setting the cost R per 1 cm of straight movement when moving within the area, a field for setting the cost S per degree of turning when moving within the area, a field for setting the cost T per stop when moving within the area, a ``return to default'' button 34, and a ``reflect and exit'' button 35. The "lane-to-lane distance" refers to the distance between adjacent straight paths in a route pattern.
[0125] When the "Restore Defaults" button 34 is clicked, the computer displays the default values for Q, R, S, and T (step S646), as shown in Figure 65(a). The default values are, for example, Q=80, R=1, S=1, and T=500. Also, when the "Reflect and Exit" button 35 is clicked, the computer saves the set contents of Q, R, S, and T (step S647), as shown in Figure 65(b), and closes the window for setting column P (step S648).
[0126] Below, the steps will be explained in order according to the flow chart shown in FIG. In step S601, if the "Open New" button 1 of [Open Map / Patient Route] is clicked, the computer displays a folder selection field (not shown) on the screen O as shown in FIG. 66, and if the user selects a folder with a construction name (step S650), it determines whether or not the folder containing map information has been selected (step S651). If it is determined that a folder containing map information has been selected (Yes in step S651), the display of the cost log display field C and the display of the processing content log display field V are initialized (step S652), and then the map is displayed in the map drawing field E (step S653). If it is determined that a folder containing map information has not been selected (No in step S651), an error message is displayed (step S654).
[0127] In step S623, if the "Open searched map" button 2 of [Open map / tour route] is clicked, the computer displays a folder selection field (not shown) on the screen O as shown in FIG. 67, and if the user selects a folder with a construction name (step S660), it determines whether or not the folder containing map information has been selected (step S661). If it is determined that a folder containing map information has been selected (Yes in step S661), it is then determined whether a folder containing tour route information has been selected (step S662). If it is determined that a folder containing tour route information has been selected (Yes in step S662), the display of the cost log display field C and the display of the processing content log display field V are initialized (step S663), and then the map, section, and tour route are displayed in the map drawing field E (step S664). If it is determined that a folder containing tour route information has not been selected (No in step S662), the display of the cost log display column C and the display of the processing content log display column V are initialized (step S665), and then the map is displayed in the map drawing column E (step S666). If it is determined that a folder containing map information has not been selected (No in step S661), an error message is displayed (step S667).
[0128] In step S612, if the "Save with new project name" button 3 in "Save map / tour route" is clicked, the computer will confirm the selection of the storage location and the input of the project name (step S670), as shown in Figure 68, and create a folder with the input project name (step S671). Then, the map information, section information, tour pattern information, and tour route information displayed in the map drawing field E are saved in a folder with the name of the construction project (step S672).
[0129] In step S613, if the "Save overwrite" button 4 of "Save map and tour route" is clicked, the computer will save the section information and the tour route information displayed in the map drawing field E in the folder with the construction name selected when the folder was opened, as shown in Figure 69 (step S680).
[0130] In step S617, if the "Start searching for a new tour route" button 5 in [Search for a tour route using GA] is clicked, the computer determines whether the tour route of the map displayed in the map drawing field E has already been generated, as shown in Figure 70 (step S690). If the tour route of the map displayed in the map drawing field E has already been generated (Yes in step S690), all buttons except the "Stop processing" button 7 are made inactive (step S691), and a process is performed to search for the tour route of the map displayed in the map drawing field E using GA (if there is an invalidated area, that area is ignored) (step S692). Thereafter, it is determined whether the GA processing has ended (step S693), and if it is determined that the GA processing has ended (Yes in step S693), the row number in the cost log display field C is counted up to display the calculated movement cost of the final generation individuals (circulatory route candidate group) searched by the GA (step S694), and the genetic information sequence of the final generation individuals (circulatory loop candidate group) is temporarily saved (step S695) in a form linked to the cost display in the cost log display field C. Furthermore, the deactivated button is made active (step S696). If it is determined that the GA processing has not ended (No in step S693), it is determined whether a GA stop command has been input (step S698). If a GA stop command has been input, the program executing the GA is forcibly terminated (step S699), and the process proceeds to step S697. If a GA stop command has not been input, the process returns to step S693. If the result in step S690 is No, an error message is displayed (step S688).
[0131] In step S616, if the "Start search by using the searched route as one of the initial generation individuals" button 6 in [Search for a tour route using GA] is clicked, the computer determines whether the tour route of the map displayed in the map drawing field E has been generated and whether a tour route that can be completed in one go has been set, as shown in Figure 71 (step S700). Then, if the tour route of the map displayed in the map drawing field E has already been generated (Yes in step S700), all buttons except the "Stop processing" button 7 are made inactive (step S701), and a process of searching for a tour route using GA is performed with the tour route of the map displayed in the map drawing field E as one of the initial generation individuals (if there is an invalidated area, that area is ignored) (step S702). Thereafter, it is determined whether the GA processing has been completed (step S703), and if it is determined that the GA processing has been completed (Yes in step S703), the row number in the cost log display field C is counted up to display the calculated movement cost of the final generation individuals (circulatory route candidate group) searched by the GA (step S704), and the genetic information sequence of the final generation individuals (circulatory loop candidate group) is temporarily saved (step S705) in a form linked to the cost display in the cost log display field C. Furthermore, the deactivated button is made active (step S706). If it is determined that the GA processing is not complete (No in step S703), it is determined whether a GA stop command has been input (step S708). If a GA stop command has been input, the program executing the GA is forcibly terminated (step S709) and the process proceeds to step S706. If a GA stop command has not been input, the process returns to step S703. If the result in step S700 is No, an error message is displayed (step S709).
[0132] When the "Stop processing" button 7 in [Search for a patrol route using GA] is clicked, the computer determines whether the GA is running or not (step S710), as shown in FIG. 72, and if the GA is running, outputs a GA forced stop command (step S711), and if the GA is not running, displays an error message (step S7212).
[0133] Also, when the "Advanced Settings" button 8 in [Search for Tour Routes with GA] is clicked, the computer displays a setting field (window) A as shown in FIG. 73(a). The setting field A has a field for setting the total number of generations F, a field for setting the cost G per 1 cm of straight movement when moving between areas, a field for setting the cost H per degree of turning when moving between areas, a field for setting the cost I per stop when moving between areas, a ``return to default'' button 16, and a ``reflect and exit'' button 17. When the "restore default" button 16 is clicked, the computer displays the default values, for example, F=35, G=1, H=1, and I=1, as shown in FIG. 73(b) (step S714). Also, when the "Reflect and Exit" button 17 is clicked, the computer saves the set contents of F, 1, H, and I (step S715), as shown in Figure 73(c), and closes the window for setting column A (step S716).
[0134] In step S620, if the "Start searching for a new tour route" button 9 under "Search for a tour route using SA" is clicked, the computer determines whether the tour route of the map displayed in the map drawing field E has already been generated, as shown in FIG. 74 (step S720). If the circular route of the map displayed in the map drawing field E has already been generated (Yes in step S720), all buttons except the "Stop processing" button 11 are made inactive (step S721), and a process is performed to search for the circular route of the map displayed in the map drawing field E using SA (step S722). Thereafter, it is determined whether the SA processing has ended (step S723), and if it is determined that the SA processing has ended (Yes in step S723), the row number in the cost log display field C is counted up to display the calculated travel cost of the tour route searched by SA (step S724), and the tour route information (tour information array) of the tour route is temporarily saved (step S725) in a form linked to the cost display in the cost log display field C. Furthermore, the deactivated button is made active (step S726). If it is determined that the SA processing has not ended (No in step S723), it is determined whether or not an SA stop command has been input (step S728). If an SA stop command has been input, the program executing the SA is forcibly terminated (step S729), and the process proceeds to step S727. If an SA stop command has not been input, the process returns to step S723. If the result in step S720 is No, an error message is displayed (step S718).
[0135] In step S619, if the "Start search by using the searched route as one of the initial generation individuals" button 10 in [Search for a tour route using GA] is clicked, the computer determines whether the tour route of the map displayed in the map drawing field E has been generated and whether a tour route that can be completed in one go has been set, as shown in Figure 75 (step S730). If the tour route of the map displayed in the map drawing field E has already been generated (Yes in step S730), all buttons except the "Stop processing" button 11 are made inactive (step S731), and a process is performed to search for a tour route using GA, with the tour route of the map displayed in the map drawing field E as the initial tour route (step S732). Thereafter, it is determined whether the SA processing has ended (step S733), and if it is determined that the GA processing has ended (Yes in step S733), the row number in the cost log display field C is counted up to display the calculated travel cost of the tour route searched by SA (step S734), and the genetic information sequence of the tour route is temporarily saved in association with the cost display in the cost log display field C (step S735). Furthermore, the deactivated button is activated (step S736). If it is determined that the SA processing is not complete (No in step S733), it is determined whether an SA stop command has been input (step S738). If an SA stop command has been input, the program executing the GA is forcibly terminated (step S739), and the process proceeds to step S737. If a GA stop command has not been input, the process returns to step S733. If the result in step S730 is No, an error message is displayed (step S719).
[0136] When the "Stop processing" button 11 of [Search for a tour route using SA] is clicked, the computer determines whether the SA is running or not (step S740), as shown in FIG. 76, and if the SA is running, outputs a command to forcibly stop the SA (step S741), and if the SA is not running, displays an error message (step S742).
[0137] Also, when the "Advanced Settings" button 12 of "Search for Tour Routes with SA" is clicked, the computer displays a setting field (window) B as shown in FIG. The setting field B has a field for setting the initial temperature J, a field for setting the temperature drop amount K, a field for setting the cost L per 1 cm of straight movement when moving between areas, a field for setting the cost M per degree of turning when moving between areas, a field for setting the cost M per stop when moving between areas, a ``return to default'' button 21, and a ``reflect and exit'' button 22. When the "Restore Defaults" button 21 is clicked, the computer displays the default values, namely, J=1500, K=1, L=1, M=, N=1, as shown in FIG. 78(a) (step S744). If the "Reflect and Exit" button 22 is clicked, the computer determines whether the value of J is divisible by the value of K (step S745), as shown in Figure 78(b), and if it is divisible, it saves the set contents of J, K, L, M, and N (step S746) and closes the window for setting column B (step S747). If the answer is No in step S745, an error message is displayed (step S748).
[0138] In step S607, when manually setting a tour route (step S608), the area where the cursor is located is highlighted when the mouse cursor is moved to each area on the map in the map drawing field E. Then, as shown in Fig. 79(a), when any area is highlighted, the area is clicked (step S770), and the tour route setting guide field RG is displayed (step S771). That is, in step S608, the user can manually set a tour route using the map drawing field E, tour route setting guide field RG, etc., which function as a tour pattern manual setting guide image and a tour order manual setting guide image.
[0139] For example, as shown in FIG. 80, when one of the selection buttons 23-3 to 23-10 for specifying the eight types of tour patterns described above, which are displayed in the tour route setting guide field RG, is clicked (step S780), the selected tour pattern is placed in the highlighted area (step S781). Thereafter, the inter-area route leading to (the start point of) the highlighted area is updated (step S782), and the inter-area route leaving (the end point of) the highlighted area is updated (step S783).
[0140] As shown in Figure 81(a), when the "Set inter-area route" button 23-11 is clicked, it is determined whether the click was made while another (second) area was highlighted (step S790), and if the determination in step S790 is No, the process ends. If the determination in step S790 is Yes, the route information of the area having a route to the second highlighted area is initialized (step S791), and then the route to the second highlighted area is set in the first highlighted area (step S792). In other words, as shown in Figure 81(b), an inter-area route is set from the first highlighted area to the second highlighted area, and the inter-area route from the area where the inter-area route to the second highlighted area was originally set to the second highlighted area is deleted. In this case, the highlighting of the first selected area will not disappear. Also, the second highlighted area will be displayed in a different color, for example.
[0141] As shown in FIG. 81(c), when the "Delete inter-area route" button 23-12 is clicked, the inter-area route leaving the highlighted display area is initialized (deleted) (step S794). That is, as shown in FIG. 81(d), the inter-area route connecting the highlighted area to any area is initialized.
[0142] As shown in Figure 81(e), when the "Invalidate this area" button 23-13 is clicked, a flag indicating that the highlighted area number is invalid is set (step S796). The button 23-13 becomes inactive if the invalid flag is set. As shown in Figure 81(f), when the "Enable this area" button 23-14 is clicked, a flag indicating that the highlighted area number is invalid is turned off (step S798). The button 23-14 becomes inactive if the invalid flag is turned off.
[0143] As shown in Figure 79(b), clicking the "Undo" button 23-1 will cancel the previous work content (step S772), and as shown in Figure 79(c), clicking the "Redo" button 23-2 will return to the previous work content state (step S773).
[0144] As shown in Figure 82, when any line 24 in the cost log display column C is highlighted and clicked (step S800), the map, section, and tour route at the time of cost calculation under the mouse cursor (highlighted line) are displayed in the map drawing column E (step S801).
[0145] As shown in Figure 83, when button 25 ("Display current tour route in animation" button) is clicked, it is determined whether the tour route of the map displayed in the map drawing field E is a route that avoids obstacles (after using GA or SA) (step S810). If the determination in step S810 is Yes, all buttons are made inactive (step S811), and the animation drawing program is executed (step S812). Also, the inactive buttons are made active (step S813).
[0146] As shown in FIG. 84, when button 26 ("Recalculate tour route to avoid obstacles" button) is clicked, it is determined whether the tour route of the map displayed in the map drawing field E has already been generated and whether a tour route that can be completed in one go has been set (step S820). If the determination in step S820 is Yes, all buttons are made inactive (step S821), the map displayed in the map drawing field E is set to the initial state, the initial temperature is set to 0°C, and SA is executed (step S822). That is, by reusing the SA program, a route that avoids obstacles is searched for without changing the patrol route (see step S328 in FIG. 35). After SA is completed, the row number in the cost log display field C is counted up to display the calculated travel cost of the tour route searched by SA (step S823), and the tour route information (tour information array) of the tour route is temporarily saved (step S824) in a form linked to the cost display in the cost log display field C. Furthermore, the deactivated button is activated (step S825).
[0147] As shown in FIG. 85, when the end button 29 is clicked, the end process of the traveling route creation process program is executed (step S830).
[0148] The tour route creation device according to the embodiment is equipped with the automatic tour route creation process using the SA described above, the automatic tour route creation process using the GA, and the manual tour route creation process under human instruction, and is configured so that these processes can be selectively instructed via a process selection screen (see Figures 58 and 59) set on the screen D of the display means. This allows the tour route creation method to be selected depending on the situation, thereby providing a user-friendly tour route creation device.
[0149] In particular, the display control means has a function of displaying on the screen D a circular pattern setting guide image (circulation route setting guide field RG) for selecting a circular pattern for each area displayed on the screen D from a plurality of predetermined circular patterns and instructing the circular pattern setting means, and when a person specifies a circular pattern for a specified area via the circular pattern setting guide image, the circular pattern setting means sets the specified circular pattern as a circular pattern within the specified area, thereby providing a user-friendly circular route creation device that allows a person to freely set the circular pattern of an area. The display control means also has a function of displaying on the screen a tour order setting guide image (tour route setting guide field RG) for instructing the tour order setting means on the tour order between each area displayed on the screen D, and when a person specifies a tour order between areas via the tour order setting guide image, the tour order setting means sets the tour order between the areas to the specified tour order, thereby providing a user-friendly tour route creation device that allows a person to freely set a route between areas in a specified tour order. Furthermore, since the device is provided with a selection means for allowing a person to select which function to use to create a route, either the automatic route creation function using SA or GA or the manual route creation function, it becomes possible to use either the automatic route creation function or the manual route creation function depending on the situation, thereby providing a user-friendly route creation device.
[0150] Furthermore, by providing setting field A, the total number of generations F in the GA process can be freely set, and by providing setting field B, the initial temperature J and the temperature drop amount K in the SA process can be freely set, so that a circulating route creation device can be provided that can realize a circulating route creation process that meets requests such as shortening the time required to obtain a circulating route or obtaining a more efficient circulating route.
[0151] Furthermore, the selection means that allows a person to select which of the automatic route creation function and the manual route creation function to use to create a route may be configured to display a manual area creation button on the screen, so that the worker can click on the manual area creation button and then click on the map displayed in the map drawing field E to manually create an area. In addition, a manual tour route creation button may be displayed on the screen, and the operator may click the manual tour route creation button and then use the tour route setting guide field RG to manually create a tour route. With the above configuration, the operator can more clearly select whether to perform manual generation or to instruct automatic generation.
[0152] In addition, in the embodiment, eight types of circulation patterns are exemplified as circulation patterns within an area, but the circulation patterns may be, for example, only the first and second patterns, or only the third and fourth patterns, or only the fifth and sixth patterns, or only the seventh and eighth patterns.
[0153] Furthermore, in the embodiment, an example has been shown in which the floor surface inside a building is moved as an 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 that indicates the position of the area and the XY coordinate information that indicates the position of the obstacle need not be the XY coordinate information of the corners, but may be any XY coordinate information that allows the position of the area or the position of the obstacle to be confirmed.
[0154] Furthermore, the multiple areas (movement target areas) may be multiple areas adjacent to each other as shown in FIG. 12, or may be multiple areas spaced apart from each other as shown in FIG. 37 and the like.
[0155] 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 enabling efficient floor inspection. Furthermore, even when the mobile object 1 is made to visit a plurality of areas for purposes other than floor surface inspection, an efficient travel route for making the mobile object 1 visit a plurality of areas can be provided.
[0156] In addition, in the above example, a TS (total station) with an automatic tracking function is used as a movement information acquisition means for acquiring actual movement information of a moving body and transmitting it to the moving body in a moving body movement control system, but a means other than a TS, for example, a moving body self-position recognition system such as a GPS or a laser positioning system, may also be used as the movement information acquisition means. [Explanation of symbols]
[0157] 1. Mobile object.
Claims
1. 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 circulating pattern setting means for setting a circulating pattern within each movement target area; a travel order setting means for setting a travel order between each of the movement target areas in order to create a travel route that goes around each of the movement target areas; The circulation pattern setting means and the circulation order setting means are 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 by making the movement target area to which the route end of the deleted route between the movement target areas is connected the start area of the circular route, and by making the movement target area to which the route start end of the deleted route between the movement target areas is connected the goal area of the circular route.
2. 2. The travel route creation device according to claim 1, wherein the travel pattern setting means selects and sets a travel pattern within each target movement area from a plurality of predetermined travel patterns.
3. the circular loop creating means creates a circular loop by setting circular information for each movement target area; The travel route creation device according to claim 1 or 2, 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.
4. The means for creating a circular loop is 4. The device for creating a circular route according to claim 3, wherein the device creates a circular loop by setting circular information for each area to be moved, and repeats the process of creating a circular loop by changing the circular information of the created circular loop.
5. The means of creating a tour route are:
5. The circuit route creation device according to claim 4, further comprising a determination means for determining which of the circuit routes to keep: a current circuit route created based on a current circuit loop in which the circuit information of the circuit loop has been changed, and a previous circuit route created based on the previous circuit loop before the circuit information of the circuit loop was changed.
6. The means of creating a tour route are:
5. The circular route creation device according to claim 4, further comprising a determination means for comparing the travel cost of a current circular route created based on a current circular loop in which the circular information of the circular loop has been changed with the travel cost of a previous circular route created based on the previous circular loop before the circular information of the circular loop was changed, and for selecting the circular route with the lowest travel cost.
7. a display control means for displaying images of the plurality of target movement areas on a screen based on position information of the plurality of target movement areas; the display control means has a function of displaying on the screen a circulating pattern setting guide image for selecting a circulating pattern for each of the movement target areas displayed on the screen from a plurality of predetermined circulating patterns and instructing the circulating pattern setting means to select the circulating pattern; The travel route creation device according to any one of claims 1 to 3, characterized in that when a travel pattern for a specified target area of movement is specified via a travel pattern setting guide image, the travel pattern setting means sets the specified travel pattern as a travel pattern within the specified target area of movement.
8. a display control means for displaying images of the plurality of target movement areas on a screen based on position information of the plurality of target movement areas; the display control means has a function of displaying on the screen a tour order setting guide image for instructing the tour order setting means on the tour order among the movement target areas displayed on the screen; The travel route creation device according to any one of claims 1 to 3, characterized in that when a travel order between the movement target areas is specified via a travel order setting guide image, the travel order setting means sets the travel order between the movement target areas to the specified travel order.
9. 9. The travel route creation device according to claim 1, further comprising a travel cost display means for displaying on a screen the travel cost of a mobile body when traveling along the created travel route.
10. 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.
Citation Information
Patent Citations
Multi-region traversal path planning method for autonomous underwater vehicle
CN110941261A
Path planning method based on hybrid strategy, autonomous advancing equipment and robot
CN114690753A
Travel scheduling system and medium
JP1999257991A
Navigation system, route cost displaying method, and storage medium
JP2001324342A
Information processing method and information processing device
JP2019113347A