Tour route creation device

The travel route creation device optimizes circular routes for mobile objects through multiple target areas by calculating and modifying travel paths using simulated annealing, addressing the inefficiencies in existing navigation systems.

JP7722947B2Active Publication Date: 2025-08-13KUMAGAI GUMI CO LTD
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2022033089
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-03-04
Publication Date
2025-08-13
Estimated Expiration
2042-03-04

AI Technical Summary

Technical Problem

Existing methods do not effectively create circular routes for mobile objects to efficiently traverse multiple target areas, necessitating a device that can generate efficient travel routes for such movements.

Method used

A travel route creation device that recognizes position information of multiple target areas, creates travel loops, calculates travel costs, and modifies routes using simulated annealing to optimize the circular path, incorporating pattern modifications and inter-area route deletions based on cost comparisons and temperature conditions.

Benefits of technology

Enables the creation of efficient travel routes for mobile objects to traverse multiple target areas by optimizing travel costs and patterns, ensuring minimal energy expenditure and effective navigation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007722947000001
    Figure 0007722947000001
  • Figure 0007722947000002
    Figure 0007722947000002
  • Figure 0007722947000003
    Figure 0007722947000003
Patent Text Reader

Abstract

To provide a patrol route creation device capable of creating an efficient patrol route for making a movable body patrol a plurality of movement target areas.SOLUTION: A patrol route creation device comprises patrol loop creation means, movement cost calculation means, and patrol route creation means. The patrol loop creation means includes: first patrol loop creation means for creating a first patrol loop by setting patrol information for each movement target area; and patrol loop update means for creating a patrol loop obtained by changing the patrol information of the first patrol loop. The patrol route creation means includes determination means for determining which one of a current patrol loop created based on a current patrol loop and a previous patrol route created based on a previous patrol loop is left. The patrol information is combination information composed of information of a patrol pattern in the movement target area of oneself that is set for each of the movement target areas and information of the movement target area that is progressed next.SELECTED DRAWING: Figure 33
Need to check novelty before this filing date? Find Prior Art

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 movement target areas and creating a travel route for a mobile body to travel around the plurality of movement target areas, and includes: a travel loop creation means for creating a travel loop that goes around each of the movement target areas; a travel cost calculation means for calculating the travel cost when a mobile body travels along the route of the created travel loop; and a travel route creation means for deleting the inter-movement target area route with the highest travel cost from among the inter-movement target area routes that form the created travel loop, and creating a travel route that goes around each of the movement target areas, with the movement target area that connected the route end of the deleted inter-movement target area route as the start area of the travel route, and the movement target area that connected the route start end of the deleted inter-movement target area route as the goal area of the travel route. and a circular route creating means for creating a circular route, the circular loop creating means including an initial circular loop creating means for creating an initial circular loop by setting circular information for each movement target area, and a circular loop update means for creating a circular loop with changed circular information of the initial circular loop, the circular route creating means including a determination means for determining which of the current circular route to keep, the current circular route created based on the current circular loop created by the circular loop update means, or the previous circular route created based on the previous circular loop created by the circular loop update means, the circular information being combination information made up of information on a circular pattern within the current movement target area, which is set for each movement target area, and information on the next movement target area. The determination means is characterized in that if the movement cost of the current circular route is smaller than the movement cost of the previous circular route, the current circular route is retained, if the movement cost of the current circular route is larger than the movement cost of the previous circular route and a predetermined condition is met, the current circular route is retained, and if the predetermined condition is not met, the previous circular route is retained. The predetermined condition is characterized by the conditional expression R≦exp(−ΔC / T), where ΔC=|travel cost of the current tour route−travel cost of the previous tour route|, T=temperature, and R=random number. The cyclic loop creation means also includes a route modification processing means between movement target areas for modifying a route between the movement target areas of the cyclic loop, and the route modification processing means between movement target areas includes a first step of arbitrarily selecting a different first movement target area and a second movement target area from among the movement target areas of the cyclic loop, a second step of recording information of the next movement target area set as cyclic information of the second movement target area as pending information, a third step of searching for a movement target area having information of the next movement target area set as cyclic information of the second movement target area as cyclic information and determining whether or not the movement target area exists, and a fourth step of setting the second movement target area as information of the next movement target area to be set in the cyclic information of the first movement target area. The method is characterized by comprising a fifth step of inverting the circulating pattern set in the circulating information of the second movement target area if it is not the first time that the loop processing is being performed; a sixth step of changing the first movement target area to the second movement target area after the fourth step or the fifth step if the judgment result in the third step is yes, and changing the second movement target area to the movement target area searched in the third step, and then returning to the processing of the third step; and a seventh step of setting the pending information as the next movement target area in the circulating information of the second movement target area after the fourth step or the fifth step if the judgment result in the third step is no, and inverting the circulating pattern set in the circulating information of the second movement target area. The cyclic loop creation means also includes a cyclic pattern modification processing means for modifying the cyclic pattern within the movement target area of the cyclic loop, and the cyclic pattern modification processing means randomly selects one movement target area from each movement target area of the cyclic loop and modifies the information of the cyclic pattern, which is the cyclic information of the movement target area. The circular loop creation means is characterized in that it sequentially modifies the circular loop by alternately performing modification processing on the circular loop using the above-mentioned inter-movement target area route modification processing means and modification processing using the above-mentioned circular pattern modification processing means. 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] FIG. 10 is a diagram showing an example of a cyclic information array. [Figure 46]FIG. 10 is an explanatory diagram of the process of modifying an inter-area route. 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 for creating a planned zigzag movement route within a divided area (phase 10). The second movement efficiency calculation means executes phase 16 shown in step S270 of Fig. 23. That is, when moving along the second route for each divided area, the same movement cost calculation process as the movement cost calculation process (phase 11) shown in Fig. 22 is executed. The route selection means executes the route selection process (phase 17) shown in FIG. The inter-divided area planned travel route creating means executes the inter-divided area planned travel route creating process shown in FIGS. 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 or not (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). In step S81, if c=5, 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 sorted 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 body 1, such as the distance between the left and right tires of the moving body 1 and the upper limit of centrifugal force that can be applied. Therefore, the straight movement cost conversion constant Ks and the turning movement cost conversion constant Kc are set 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 travel route between divided areas (phase 18), a planned travel route between divided areas such as that shown in FIG. 12 is created. That is, for example, the end intersection coordinates of the a-th divided area are connected to the start intersection coordinates of the a+i-th divided area to generate a planned movement route I between 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 tour route creation device according to an embodiment of the present invention is a tour route creation device that recognizes the position information of a plurality of target areas to be moved and creates a tour route for a mobile body to tour the plurality of target areas to be moved, and this tour route creation device is a tour route creation device that recognizes the position information of a plurality of target areas to be moved and creates a tour route for a mobile body to tour the plurality of target areas to be moved, using an algorithm based on a technique called simulated annealing ("SA (Simulated Annealing)").

[0056] 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".

[0057] The circular route creation device according to the embodiment includes a circular loop creation means for creating a circular loop that goes around each area, a movement cost calculation means for calculating the movement cost when a mobile body travels along the route of the created circular loop, and a circular route creation means for deleting the inter-area route with the highest movement cost from among the inter-area routes that form the created circular loop, and creating a circular route that goes around each area, with the area that connected the end of the deleted inter-area route as the start area of the circular route and the area that connected the beginning of the deleted inter-area route as the goal area of the circular route. The travel cost calculation means calculates the travel cost of moving a mobile object along the circular loop created by the circular loop creation means, the travel cost of moving a mobile object along an inter-area route connecting the previous and next areas in the circular loop created by the circular loop creation means, and the travel cost of moving a mobile object along the circular route created by the circular route creation means.In other words, the travel cost calculation means is a means for calculating the travel cost of the route of the circular loop, such as the circular loop, the inter-area route connecting the previous and next areas of the circular loop, and the circular loop obtained by subtracting the travel cost of the inter-area route with the highest travel cost from the travel cost of the circular loop.Note that the travel cost is a travel cost that takes into account the total straight distance, total turning angle, and number of turns, as described in the above-mentioned prerequisite device. The cyclic loop creating means, when creating a cyclic loop by setting cyclic information to be described later for each area, includes 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 circuit route creating means includes a determining means for determining which circuit route to leave out of the current circuit route created based on the current circuit loop created by the circuit loop updating means and the previous circuit route created based on the previous circuit loop created by the circuit loop updating means. The determination means is configured to execute a process of retaining the current circular route if the travel cost of the current circular route is smaller than the travel cost of the previous circular route, retaining the current circular route if the travel cost of the current circular route is larger than the travel cost of the previous circular route and if a predetermined condition is met, retaining the previous circular route if the predetermined condition is not met.The final remaining circular route becomes the circular route determined by the SA process.

[0058] Each of the above-mentioned means is configured by a processing program that indicates the procedure of the processing that each means executes, and hardware resources such as a computer that realizes information processing according to the processing program. In other words, the route generation processing program that realizes the processing of the route generation device is a program that causes a computer to function as each of the above-mentioned means. The tour route creation device is configured by installing the above-mentioned tour route creation processing program in a computer such as a personal computer equipped with a display screen and display control means.

[0059] 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 when moving a mobile object along each of the patterns is calculated in advance by, for example, a travel cost calculation means and recorded in a database.

[0060] The patrol information is, for example, as shown in FIG. 45, combination information configured of information on the patrol pattern within each area set for each area and information on the area to proceed to next. 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.

[0061] 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] FIG. 33 shows an outline of the flow of a route creation process performed by the route creation device according to the embodiment, that is, a route creation process using SA (hereinafter referred to as SA process). That is, the SA processing 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). In other words, in the SA processing, each of the above-mentioned processes (initial circular loop creation processing, initial temperature setting processing, circular route cost calculation processing, modification acceptance determination processing, modification processing) is executed by a processing program that indicates the procedure for each of these processes, and a computer that realizes information processing using 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 flow of the SA process 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 compares the travel costs of the current and previous circular routes calculated by the travel cost calculation means as a solution, and if the travel cost of the current circular route is smaller than the travel cost of the previous circular route, the current circular route is recorded; if the travel cost of the current circular route is greater than the travel cost of the previous circular route, the current circular route is recorded if a predetermined conditional equation, for example, R≦exp(-ΔC / T) is satisfied; and if R≦exp(-ΔC / T) is not satisfied, the previous circular 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. Still, the "C1" on the right side in step S334 is the movement cost of the tour loop, and the "C1" on the left side in step S334 is the movement cost of the tour route. That is, in the process of FIG. 34 of SA, first, as shown in FIG. 44, one tour information array (information of the tour loop) is determined. In the process of FIG. 48 of GA described later, first, as shown in FIG. 44, only a plurality (for example, 20) of tour information arrays (information of the tour loop) are determined, and the information of the tour route has not been obtained yet in these processes. And in SA, in the process of FIG. 35, the information of the tour route (tour route) is sequentially obtained. That is, the tour route is determined by the optimal tour information array Gbest[1~amax][1~2], the maximum inter-area movement cost Cmax, and the travel start area number S, which are the information obtained in the process of FIG. 35, and the tour route can be displayed on the map on the screen. Also, the cost Cbest of the tour route can 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 in 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 movement 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 initialization state or whether C1 < Cbest (step S335). If the answer is Yes in step S335, this means that the current cost C1 is the smallest cost under the current circumstances, so the process proceeds to step S336, where the current cost C1 is set to Cbest, and the tour route created based on the current tour information array G[1~amax][1~2] is set to the optimal cost storage variable Cbest[1~amax][1~2]. Then, the process proceeds to step S337, where it is determined whether the comparison cost variable C2 is not initialized to "0" and whether C1>C2. If the answer is No in step S335, this means that the current Cbest, which is not currently in the initialized state, is the smallest cost, and the process proceeds to step S337. Step S337 is the first step for determining whether or not to accept the modification. In step S337, when determining the initial tour route, the comparison cost variable C2 is in the initialized state, so the process proceeds to step S340, where the modification is accepted and the cost of the comparison cost variable C2 is set to the cost of 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 of the embodiment, the tour route is updated using tour information, making it possible to create an efficient tour route for a mobile object to tour multiple areas. 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 add more variety to the modified (updated) circular loop, and it is possible to create a more efficient circular route.

[0078] Furthermore, by changing the setting of the initial temperature T and the temperature drop amount, it is possible to provide a tour route creation device that can realize a tour route creation process that meets requests such as shortening the time required to obtain a tour route or obtaining a more efficient tour route.

[0079] In addition, in the embodiment, the configuration is exemplified as including a determination means for determining which of the current circular route created based on the current circular loop created by the circular loop update means and the previous circular route created based on the previous circular loop created by the circular loop update means to keep, which determines whether the current circular route is kept if the travel cost of the current circular route is smaller than the travel cost of the previous circular route, and whether the current circular route is kept if the travel cost of the current circular route is greater than the travel cost of the previous circular route, and whether the current circular route is kept if a predetermined condition, R≦exp(−ΔC / T), is met, or whether the previous circular route is kept if the predetermined condition is not met. However, the determination means may be a determination means that keeps the current circular route if the travel cost of the current circular route is smaller than the travel cost of the previous circular route, and keeps the previous circular route if the travel cost of the current circular route is larger than the travel cost of the previous circular route.

[0080] 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.

[0081] 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.

[0082] 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.

[0083] 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.

[0084] 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]

[0085] 1. Mobile object.

Claims

1. A travel route creation device for recognizing position information of a plurality of target areas and creating a travel route for a mobile object to travel through the plurality of target areas, comprising: a cyclic loop creating means for creating a cyclic loop that goes around each of the movement target areas; a travel cost calculation means for calculating a travel cost when a mobile object travels along the route of the created circular loop; a circular route creation means for creating a circular route that goes around each of the movement target areas by deleting the route between the movement target areas that has the highest movement cost from among the routes between the movement target areas that form the created circular loop, and setting the movement target area to which the route end of the deleted route between the movement target areas is connected as the start area of the circular route, and setting the movement target area to which the route start point of the deleted route between the movement target areas is connected as the goal area of the circular route; The means for creating a circular loop is an initial cyclic loop creating means for creating an initial cyclic loop by setting cyclic information for each movement target area; a cyclic loop update means for creating a cyclic loop in which cyclic information of the initial cyclic loop is changed; The means of creating a tour route are: a determination means for determining which of the current circular route created based on the current circular loop created by the circular loop update means and the previous circular route created based on the previous circular loop created by the circular loop update means should be retained; A travel route creation device characterized in that the patrol information is combined information consisting of information on the patrol pattern within the own target travel area set for each target travel area and information on the next target travel area to proceed to.

2. The travel route creation device according to claim 1, characterized in that the determination means keeps the current travel route if the travel cost of the current travel route is smaller than the travel cost of the previous travel route, keeps the current travel route if the travel cost of the current travel route is larger than the travel cost of the previous travel route, and keeps the previous travel route if the predetermined condition is met, or does not meet the predetermined condition.

3. 3. The device for generating a travel route according to claim 2, wherein the predetermined condition is a conditional expression R≦exp(−ΔC / T). however, ΔC = | Travel cost of current tour route - Travel cost of previous tour route | T=temperature R = random number

4. The circular loop creation means includes a route modification processing means for modifying a route between the movement target areas of the circular loop; The inter-movement target area route modification processing means comprises: a first step of arbitrarily selecting a first movement target area and a second movement target area from among the movement target areas of the cyclic loop; a second step of recording information of the next moving target area set as patrol information of the second moving target area as pending information; a third step of searching for a movement target area having, as its circulating information, information on the next movement target area set as the circulating information of the second movement target area, and determining whether or not the movement target area exists; a fourth step of setting a second target area as information on a next area to be moved to, which is set in the patrol information of the first target area; a fifth step of reversing the circulating pattern set in the circulating information of the second movement target area when the processing of the fourth step is not performed for the first time; a sixth step of changing the first movement target area to a second movement target area after the fourth step or the fifth step if the determination result in the third step is yes, and then returning to the processing of the third step after changing the second movement target area to the movement target area found in the third step; A travel route creation device as described in any one of claims 1 to 3, characterized in that if the judgment result in the third step is negative, after the fourth step or after the fifth step, the pending information is set as the next travel target area in the travel information of the second travel target area, and the travel pattern set in the travel information of the second travel target area is reversed.

5. the cyclic loop creation means includes cyclic pattern modification processing means for modifying the cyclic pattern within the movement target area of the cyclic loop; The circular route creation device according to any one of claims 1 to 3, characterized in that the circular pattern modification processing means randomly selects one movement target area from each movement target area of the circular loop and modifies the circular pattern information, which is the circular information of that movement target area.

6. A circular route creation device characterized in that the circular loop creation means sequentially modifies the circular loop by alternately performing modification processing on the circular loop using the route modification processing means between movement target areas described in claim 4 and modification processing using the circular pattern modification processing means described in claim 5.

7. 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, 7. The device for creating a travel route according to claim 1, wherein the Y-direction travel patterns are 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

  • Patrol route selecting method

    JP2001091284A

  • Movement control method of moving body and movement control system of moving body

    JP2020154400A

  • Automatic travelling system

    JP2021015341A