Mobile control device

The mobile body control device optimizes AGV movement schedules using mixed integer programming to minimize evaluation values while avoiding collisions, addressing high computational loads and inefficiencies in centralized planning systems.

JP7600964B2Active Publication Date: 2024-12-17DENSO CORP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2021185008
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-11-12
Publication Date
2024-12-17
Estimated Expiration
2041-11-12

AI Technical Summary

Technical Problem

Existing centralized route planning systems for multiple automated guided vehicles (AGVs) face high computational loads and inefficiencies due to the need for repeated calculations to avoid collisions, leading to suboptimal movement schedules.

Method used

A mobile body control device that uses mixed integer programming to determine movement schedules for multiple AGVs, incorporating collision prohibition conditions to minimize evaluation values such as completion time, while avoiding collisions by ensuring that AGVs do not pass each other on divided routes, and allowing one AGV to occupy a route before others, thus optimizing overall efficiency.

Benefits of technology

This approach reduces repetitive calculations and enhances overall efficiency by minimizing collision-related delays, ensuring optimal movement schedules with reduced computational overhead.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007600964000001
    Figure 0007600964000001
  • Figure 0007600964000002
    Figure 0007600964000002
  • Figure 0007600964000003
    Figure 0007600964000003
Patent Text Reader

Abstract

To provide a mobile body control device capable of optimizing the whole efficiency while avoiding mobile bodies from interfering with each other.SOLUTION: In a movement control system 100, two mobile bodies cannot pass by each other on a route, therefor, when movement routes intersect, in order to avoid a collision between two AGVs 30, one AGV 30 must be waited, and then, the one AGV 30 must be moved after the other AGV 30 is moved, . Therefore, the movement control system calculates a conveyance schedule for minimizing an evaluation value while avoiding a collision between mobile bodies using collision prohibition conditions as constraints of a mixed integer programming problem. In a conveyance step, if one AGV 30 exists on a specific route, the other AGV 30 cannot enter the specific route. The conveyance schedule is determined by solving such a mixed integer programming problem, thereby, it is possible to optimize the whole efficiency while avoiding the AGVs 30 from interfering each other.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The disclosure in this specification relates to a mobile object control device for controlling the movement of a mobile object. [Background technology]

[0002] When controlling multiple moving objects, such as automated guided vehicles (AGVs), collisions between AGVs may occur if the movement schedules of each AGV are not set appropriately. Therefore, it is necessary to set a movement schedule that avoids collisions between AGVs. Conventionally, in order to set such a movement schedule, the problem has been dealt with as a planning problem of routes to multiple destinations, that is, as a problem of minimizing the length of a tour, as typified by the shortest route problem.

[0003] In addition, systems that control multiple AGVs are based on a centralized route planning system that uses one host computer to manage the positions of all AGVs and executes route planning while considering all AGVs simultaneously.For example, there is a centralized route planning method that expresses route candidates from the current location to the destination for multiple AGVs in a tree structure, registers and deletes the search tree while checking successively whether collisions occur between AGVs, and searches for the movements of all AGVs at once.

[0004] In such a centralized path planning method, when the number of AGVs to be route-planned increases, the number of possible route candidates becomes enormous, making it difficult to search for an optimal route in a short time. Therefore, in the distributed path planning device described in Patent Document 1, the AGVs communicate with each other and each AGV calculates its own path plan, distributing the calculation load. [Prior art documents] [Patent documents]

[0005] [Patent Document 1] JP 2004-280213 A Summary of the Invention [Problem to be solved by the invention]

[0006] In the device described in Patent Document 1, in order to avoid interference between AGVs, it is necessary to find all interferences on the route and repeat the calculation of the avoidance plan for each AGV. Although the load is distributed, there is a problem that the calculation for avoidance must be repeated, and the total calculation load is high. Furthermore, the finally obtained route plan, i.e., the movement schedule, prioritizes avoiding interference, so it may not be an efficient and optimal movement schedule.

[0007] Therefore, the disclosed object has been made in consideration of the above-mentioned problems, and aims to provide a mobile body control device that can optimize overall efficiency while avoiding interference between mobile bodies. [Means for solving the problem]

[0008] The present disclosure employs the following technical means to achieve the above-mentioned objectives.

[0009] The mobile body control device disclosed herein is a mobile body control device that controls the movement of multiple mobile bodies (30) moving on a route, the route being a route on which two mobile bodies cannot pass each other, and includes a setting unit (141) that sets a moving route connecting a starting point and a destination point of the multiple mobile bodies, and a moving process for moving along the moving route, a calculation unit (144) that uses the moving route and the moving process as input values ​​and calculates a moving schedule for the mobile bodies by solving a mixed integer programming problem whose objective is to minimize a predetermined evaluation value while satisfying constraint conditions, and a moving control unit (145) that controls the movement of each mobile body by the moving schedule, the constraint conditions being a collision prohibition condition that prohibits other mobile bodies from using a divided route that has not yet completed its movement until the moving body completes its movement to the next divided route, in a divided route obtained by dividing the route at least by a length greater than the moving bodies, and the setting unit sets the moving process so that, in a specific route where the moving routes of at least two moving bodies overlap and the moving directions of the moving bodies are opposed to each other, the use of the specific route where the moving body exists is prohibited when one moving body is present on the specific route.

[0010] According to such a mobile object control device, the route is such that two mobile objects cannot pass each other, so when the moving routes intersect, in order to avoid collision between the mobile objects, it is necessary to make one mobile object wait and move the other mobile object before moving the other mobile object. Therefore, a collision prohibition condition is used as a constraint condition for the mixed integer programming problem, and a moving schedule that minimizes the evaluation value while avoiding collision between the mobile objects is calculated. The evaluation value is, for example, the time until the movement of all the mobile objects is completed, the sum of the moving times of all the mobile objects, the sum of the waiting times of the mobile objects, etc. In addition, since the moving schedule is determined by solving the mixed integer programming problem, it is possible to suppress the repetition of calculations multiple times.

[0011] Furthermore, since the setting unit prohibits other moving bodies from using the specific route on which the moving body exists, when one moving body exists on the specific route, the other moving bodies cannot enter the specific route. For example, it is assumed that moving bodies are arranged on adjacent divided routes and exchange positions with each other. In this case, one moving body is arranged on one divided route before the movement and after the exchange movement, and two moving bodies are not arranged on one divided route, so there is no collision on paper. However, moving bodies that actually move on the divided route cannot pass each other on the route, so they cannot exchange positions without colliding. In this way, if there is only a collision prohibition condition, the positions of moving bodies existing on adjacent divided routes are allowed to exchange, but since the setting unit prohibits entry into the specific route, such exchange can be prevented. This makes it possible to further increase the overall efficiency while avoiding interference between moving bodies.

[0012] The reference symbols in parentheses for each of the above-mentioned means are examples showing the correspondence with the specific means described in the embodiments described later. [Brief description of the drawings]

[0013] [Figure 1] FIG. 1 is a block diagram showing the configuration of a mobility control system 100. [Diagram 2] 4 is a flowchart showing the processing of the AGV 30. [Diagram 3] 10 is a flowchart showing another process of the AGV 30. [Figure 4] 4 is a flowchart showing the processing of the detection device 50. [Diagram 5] 10 is a flowchart showing another process of the detection device 50. [Figure 6] 4 is a flowchart showing the process of a transport instruction device 60. [Figure 7] FIG. [Figure 8] A diagram explaining the formula. [Figure 9] 4 is a flowchart showing the processing of the server 40. [Figure 10]10 is a flowchart showing another process of the server 40. [Figure 11] FIG. 11 is a diagram for explaining a first calculation example. [Figure 12] FIG. 11 is a diagram showing the transport process of the first calculation example. [Figure 13] FIG. 13 is a diagram showing a transportation schedule for a first calculation example. [Figure 14] FIG. 11 is a diagram for explaining a second calculation example. [Figure 15] FIG. 11 is a diagram showing the transport process of the second calculation example. [Figure 16] FIG. 13 is a diagram showing a transportation schedule for a second calculation example. [Figure 17] FIG. 11 is a diagram for explaining a third calculation example. [Figure 18] FIG. 13 is a diagram showing the transport process of the third calculation example. [Figure 19] A figure showing a transportation schedule for the third calculation example. [Figure 20] 10 is a flowchart showing a process of a server 40 according to a second embodiment. [Figure 21] 10 is a flowchart showing a process of the server 40 according to the third embodiment. [Figure 22] 13 is a flowchart showing a process of a server 40 according to a fourth embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0014] Hereinafter, the embodiments for carrying out the present disclosure will be described using a plurality of embodiments with reference to the drawings. In each embodiment, the parts corresponding to the matters described in the preceding embodiment may be given the same reference numerals, or one character may be added to the preceding reference numerals, and duplicated explanations may be omitted. In addition, when a part of the configuration is described in each embodiment, the other parts of the configuration are the same as the embodiment described previously. It is possible to combine the parts specifically described in each embodiment, as long as there is no particular problem with the combination, and it is also possible to partially combine the embodiments.

[0015] (First embodiment) A first embodiment of the present disclosure will be described with reference to Fig. 1 to Fig. 19. A movement control system 100 of this embodiment controls the movement of multiple AGVs 30 that move on a route. As shown in Fig. 1, the movement control system 100 includes the AGVs 30, a server 40, a detection device 50, and a transport instruction device 60.

[0016] The AGV 30, the server 40, the detection device 50, and the transport instruction device 60 each have a control unit that executes a program stored in a storage medium and controls each unit. The control unit has at least one central processing unit (CPU) and a storage medium that stores programs and data. The control unit of each device is realized, for example, by a microcomputer equipped with a storage medium readable by a computer. The storage medium is a non-transient substantial storage medium that non-temporarily stores programs and data readable by a computer. The storage medium is realized by a semiconductor memory, a magnetic disk, or the like. Hereinafter, the respective control units may be referred to as the AGV 30, the server 40, the detection device 50, and the transport instruction device 60 instead of the control unit without explicitly stating the respective control units.

[0017] The AGV 30 is a mobile object that travels unmanned along a route using an electric motor as a drive source. The AGV 30 moves according to a movement schedule. The movement schedule is also called a transport schedule because the AGV 30 transports objects. The AGV 30 includes an AGV receiver 31, an AGV transmitter 32, a position detector 33, and an AGV controller 34.

[0018] The AGV transmitting unit 32 communicates with the server 40 and transmits predetermined information to the server 40. The AGV receiving unit 31 communicates with the server 40 and receives information from the server 40. The position detecting unit 33 acquires current position information of the AGV 30. The position information includes the current position and traveling direction of the AGV 30. The position detecting unit 33 periodically transmits the detected position information from the AGV transmitting unit 32 to the server 40.

[0019] The position detection unit 33 generates position information by composite positioning that combines information from a plurality of sensors. The position detection unit 33 includes, for example, a Global Navigation Satellite System (GNSS) receiver, an inertial sensor, a map database, and a locator ECU. The GNSS receiver receives positioning signals from a plurality of positioning satellites. The inertial sensor is a sensor that detects inertial forces acting on the AGV 30. The inertial sensor includes, for example, a gyro sensor and an acceleration sensor. The map database is stored in a non-volatile memory and includes link data and node data of the route. The locator ECU sequentially locates the current position of the AGV 30 by combining the positioning signals received by the GNSS receiver, the map data in the map database, and the measurement results of the inertial sensor. The current position is expressed, for example, in latitude and longitude coordinates.

[0020] The AGV control unit 34 controls the driving unit so that the AGV moves according to the transport schedule received by the AGV receiving unit 31. The transport schedule includes a travel route, departure times from each point, arrival times at each point, and stopping times at each point.

[0021] Next, the processing of the AGV 30 will be described with reference to the flowcharts of Figures 2 and 3. The flowcharts shown in Figures 2 and 3 are repeatedly executed in a short period of time when the AGV 30 is in a powered-on state.

[0022] First, the flow chart of Fig. 2 will be described. In step S1, when the AGV receiving unit 31 receives the transfer schedule, the process proceeds to step S2. In step S2, the driving unit is controlled to move according to the transfer schedule, and this flow ends. As a result, when the AGV 30 receives the transfer schedule, it moves according to the transfer schedule.

[0023] Next, the flow chart of Fig. 3 will be described. In step S1, the current position is detected by the position detection unit 33, and the process proceeds to step S2. In step S2, the AGV transmission unit 32 is controlled to transmit position information indicating the detected current position to the server 40, and this flow ends. As a result, the AGV 30 periodically transmits its current position to the server 40.

[0024] Next, the detection device 50 will be described. The detection device 50 is arranged on the route and monitors the state of the route and objects on the route. The objects on the route include the AGV 30 and other objects, such as people, moving on the route. The detection device 50 transmits the monitored monitoring information to the server 40. The detection device 50 also outputs instructions from the server 40. The instructions are, for example, instructions to permit or prohibit the movement of a person.

[0025] 1, the detection device 50 includes a periphery monitoring unit 51, a detection device receiving unit 52, a detection device transmitting unit 53, and an instruction unit 54. The detection device transmitting unit 53 communicates with the server 40 and transmits predetermined information to the server 40. The detection device receiving unit 52 communicates with the server 40 and receives information from the server 40. The periphery monitoring unit 51 is used to monitor the periphery of the detection device 50. The periphery monitoring unit 51 transmits detected monitoring information from the detection device transmitting unit 53 to the server 40.

[0026] The periphery monitoring unit 51 detects, as monitoring information, movement information of the AGV 30 moving along the route and moving objects other than the AGV 30. The movement information is the movement direction and movement speed. The moving object is, for example, a person. The periphery monitoring unit 51 also detects abnormalities on the route as monitoring information. The abnormalities on the route include the presence or absence of an obstacle on the route that impedes movement. The periphery monitoring unit 51 outputs abnormality information that detects abnormalities on the route.

[0027] The periphery monitoring unit 51 senses the surroundings. The periphery monitoring unit 51 is realized by, for example, an image sensor and an ultrasonic sonar. The image sensor is an imaging device that images the surroundings. The ultrasonic sonar is a sensor that detects the distance from the detection device 50 to a ranging point on an object by transmitting a search wave and receiving the reflected wave reflected by the object. The ranging point is a portion on the surface of the object where the search wave is reflected. The sensing range of the ultrasonic sonar is a predetermined range in the surroundings, for example, several meters.

[0028] The instruction unit 54 instructs a moving object, such as a person, located in the vicinity to move. The instruction unit 54 gives instructions by, for example, outputting a sound and displaying an image. The instruction unit 54 plays a role similar to a traffic light, for example, at an intersection where routes intersect. When the instruction unit 54 receives an instruction transmitted from the server 40 from the detection device receiving unit 52, it outputs the received instruction.

[0029] Next, the processing of the detection device 50 will be described with reference to the flowcharts of Figures 4 and 5. The flowcharts shown in Figures 4 and 5 are repeatedly executed in a short period of time when the detection device 50 is in a power-on state.

[0030] First, the flow chart of Fig. 4 will be described. In step S1, the periphery monitoring unit 51 judges whether or not a moving object, a moving object, or a path abnormality has been detected, and if so, proceeds to step S2, and if not, ends this flow. In step S2, the detection device transmission unit 53 is controlled to transmit the detected movement information or abnormality information to the server 40 as monitoring information, and then ends this flow. In this way, the detection device 50 periodically transmits the monitoring information to the server 40.

[0031] Next, the flow chart of Fig. 5 will be described. In step S1, when the detection device receiver 52 receives an instruction, the process proceeds to step S2. In step S2, the instruction unit 54 is controlled to output the received instruction, and this flow ends. This allows the detection device 50 to output the received instruction unit 54.

[0032] Next, the transport instruction device 60 will be described. The transport instruction device 60 accepts transport instructions for multiple AGVs 30 and transmits the transport instructions to the server 40. The transport instruction device 60 is, for example, an information terminal operated by an administrator. As shown in FIG. 1, the transport instruction device 60 includes an instruction monitoring unit 61, a transport receiving unit 62, a transport transmitting unit 63, and an input unit 64. The transport instruction device 60 is realized by, for example, a personal computer (abbreviated as PC) capable of communicating with the outside and a portable information terminal such as a smartphone.

[0033] The transportation transmitting unit 63 communicates with the server 40 and transmits predetermined information to the server 40. The transportation receiving unit 62 communicates with the server 40 and receives information from the server 40. The input unit 64 is operated by an administrator to input a transportation instruction. When a transportation instruction is input, the input unit 64 transmits the transportation instruction from the transportation transmitting unit 63 to the server 40.

[0034] The instruction monitoring unit 61 monitors transport instructions input from the input unit 64. When a new transport instruction different from a transport instruction currently being executed is input, the instruction monitoring unit 61 transmits the input transport instruction together with information indicating that the input transport instruction is a new transport instruction from the transport transmitting unit 63 to the server 40. In other words, the instruction monitoring unit 61 controls the transport transmitting unit 63 to transmit the updated transport instruction.

[0035] Next, the processing of the transport instruction device 60 will be described with reference to the flowchart of FIG. 6. The flowchart shown in FIG. 6 is executed repeatedly in a short time when the transport instruction device 60 is in a power-on state. In step S1, the presence or absence of a transport instruction is monitored, and the process proceeds to step S2. The presence or absence of a transport instruction is determined by the instruction monitoring unit 61. In step S3, it is determined whether or not a transport instruction has been received, and if a transport instruction has been received, the process proceeds to step S3, and if no transport instruction has been received, the process returns to step S1. Since a transport instruction has been received in step S3, the transport transmission unit 63 is controlled to transmit the transport instruction to the server 40, and this flow ends. As a result, when the transport instruction device 60 receives a new transport instruction, the new transport instruction is transmitted to the server 40.

[0036] Next, the server 40 will be described. The server 40 is a mobile object control device, and controls the movement of a plurality of AGVs 30 that move on a route. Specifically, the server 40 transmits a movement schedule to the AGVs 30 to control the movement of the AGVs 30. As shown in FIG. 1, the server 40 includes a storage unit 41, a server receiving unit 42, a server transmitting unit 43, and a server control unit 45.

[0037] The server transmitting unit 43 communicates with the AGV 30, the detection device 50, and the transport instruction device 60 to transmit predetermined information to each device. The server receiving unit 42 communicates with the AGV 30, the detection device 50, and the transport instruction device 60 to receive information from each device. The memory unit 41 stores information for managing the AGV 30. The memory unit 41 stores transport instructions transmitted from the transport instruction device 60.

[0038] The server control unit 45 is a control unit that reads necessary information from the storage unit 41 and controls the movement of the AGV 30. As shown in FIG. 1, the server control unit 45 includes, as functional blocks, a setting unit 141, a prediction unit 142, a determination unit 143, a calculation unit 144, and a movement control unit 145. The server control unit 45 also functions as an acquisition unit, and acquires position information and monitoring information via the server receiving unit 42. Thus, the server control unit 45 acquires the current position of the AGV 30, movement information of moving objects other than the AGV 30 that move along the route, and abnormalities in the route, i.e., non-movable parts of the route.

[0039] The setting unit 141 sets the movement routes connecting the departure points and destination points of the multiple AGVs 30, and the movement process for moving along the movement routes. If there are waypoints, the setting unit 141 sets the movement routes that pass through the waypoints. If there is an order to the waypoints, the setting unit 141 sets the movement routes taking into account the order of the waypoints. If there is an order of priority for the movements of the AGVs 30, the setting unit 141 sets the movement process taking into account the order of priority.

[0040] The moving process is also referred to as a transport process in this embodiment. The setting unit 141 sets the shortest route connecting the starting point and the end point as the moving route. The setting unit 141 also sets the moving route so that the overlapping of the moving routes of the multiple AGVs 30 is reduced. Therefore, for example, when there are multiple shortest routes, the moving route with the least overlapping is set. Also, it may be possible to set in advance whether to prioritize the shortest route or to prioritize not overlapping. For example, when there is only one shortest route and overlapping cannot be avoided, a route that is longer than the shortest route may be set if overlap avoidance is prioritized.

[0041] The calculation unit 144 inputs the movement route and the movement process, and calculates the movement schedule of the moving object by solving a mixed integer programming problem having the objective of minimizing a predetermined evaluation value while satisfying the constraint conditions.

[0042] Specifically, in this embodiment, a blocking job shop type scheduling problem is formulated so that multiple machines or equipment can be used simultaneously, and a scheduling problem is created in which the route to be used and the route to be used first are added to the process, making it possible to express zone control that avoids interference. This makes it possible to calculate a transportation schedule that optimizes overall efficiency while avoiding interference.

[0043] For example, if another AGV 30 exists on a divided route adjacent to the traveling direction, the AGV 30 is allowed to enter the adjacent divided route after the other AGV 30 has passed. This is generally called blocking job shop scheduling. This avoids collisions. Furthermore, in this embodiment, the location where the AGV 30 exists and the entrance / exit of the overlapping route are secured at the same time, and the other AGV 30 is prohibited from entering the overlapping route, thereby expressing zone control to avoid head-on collisions. For this purpose, the formulation of the blocking job shop type scheduling problem is expanded to the so-called simultaneous use of multiple machines. This makes it possible to calculate transportation scheduling without interference, and therefore no equipment is required to grasp the movement of the AGV 30.

[0044] The movement control unit 145 controls the movement of each AGV 30 according to the transport schedule. The movement control unit 145 controls the server transmission unit 43 to transmit the transport schedule to each AGV 30. The prediction unit 142 predicts the movement of people and the like other than the AGV 30 based on the monitoring information detected by the detection device 50. For example, it predicts in which direction on the route a detected person will proceed using the movement information. The determination unit 143 determines whether or not to recalculate the transport schedule when the transport schedule is updated or a new transport instruction is generated.

[0045] Next, the transport schedule will be described with reference to FIG. 7. FIG. 7 shows that delays and detours occur in the comparative example, while the optimal solution is found in the embodiment. The route is made up of multiple divided routes. For example, the route shown in FIG. 7 is made up of seven divided routes. Only one AGV 30 can be positioned on one divided route. Furthermore, two AGVs 30 cannot pass each other on a route. Therefore, even on a divided route, two AGVs 30 cannot pass each other.

[0046] The movement process indicates a divided route on which a certain AGV 30 is located at a certain time. For example, as shown in FIG. 7, at present, there are seven divided routes on the route, with the first AGV 30A located on the first divided route R1 and the second AGV 30B located on the sixth divided route R6. Then, as each AGV 30 moves, the divided route on which the AGV 30 is located changes. In the example shown in FIG. 7, the first AGV 30A starts on the first divided route R1 and arrives on the fifth divided route R5. The second AGV 30B starts on the sixth divided route R6 and arrives on the seventh divided route R7. In this case, the two movement routes intersect at the second divided route R2, so one of the AGVs 30 passes first and the other passes later.

[0047] In the first comparative example, the second AGV 30B passes through the second divided path R2 first, and then the first AGV 30A passes through the second divided path R2. This allows the second AGV 30B to complete its movement first, but by making the first AGV 30A wait, the overall transport time becomes longer.

[0048] In the second comparative example, the second AGV 30B is made to detour along the second divided route R2 instead of the shortest route, and the first AGV 30A and the second AGV 30B move simultaneously. This causes the second AGV 30B to take a long detour, making the entire movement inefficient.

[0049] In the first embodiment, the first AGV 30A passes through the second divided path R2 first, and then the second AGV 30B passes through the second divided path R2. By making the second AGV 30B wait and allowing the first AGV 30A to pass, efficient movement is achieved while avoiding collisions. In this manner, in this embodiment, the movement schedule is set to avoid collisions and shorten the time it takes for all movements to be completed.

[0050] Next, a specific method for calculating a transport schedule will be described with reference to FIG. 8. As described above, the calculation unit 144 inputs a movement route and a movement process, and calculates a movement schedule of a moving object by solving a mixed integer programming problem having an objective of minimizing a predetermined evaluation value while satisfying constraint conditions. A mixed integer programming problem is also called a mixed integer optimization problem, and is an integer programming problem in which variables that take integer values ​​and variables that take real values ​​are mixed. An integer programming problem is an optimization problem that includes integer variables. A scheduling problem is a problem of allocating a job schedule to resources such as people and machines. In this embodiment, the resource corresponds to a route, and the job corresponds to the movement of the AGV 30.

[0051] An optimization problem is a problem of mathematically finding the optimum one for a purpose from among candidates that satisfy a condition. An optimization problem is composed of three elements: decision variables, objective functions, and constraint conditions. A decision variable is an object of decision-making or control, and is something whose value is to be determined. In this embodiment, the decision variable corresponds to the transportation schedule. An objective function is a function for judging whether the decision variable is good or bad for the purpose. In this embodiment, it is a function whose objective is to minimize the makespan, that is, to finish the last job earlier.

[0052] A constraint condition is a condition that a candidate decision variable must satisfy. In this embodiment, the constraint condition includes a collision prohibition condition. The collision prohibition condition is a condition that permits the presence of one AGV 30 on a divided route obtained by dividing a route into a length at least greater than the length of the AGV 30, but prohibits the presence of two AGVs 30 on one divided route. In other words, the collision prohibition condition is a condition that prohibits another AGV 30 from using a divided route that has not yet completed its movement until the AGV 30 has completed its movement to the next divided route.

[0053] In addition, the transport process input to the optimization problem is set up so that, on a specific route where the movement routes of at least two AGVs 30 overlap and the movement directions of the AGVs 30 are opposed to each other, which may result in interference between the AGVs 30, when one AGV 30 is present on the specific route, the use of other AGVs 30 on the specific route where the AGV 30 is present is prohibited.

[0054] Furthermore, when one AGV 30 is present on a specific route, the setting unit 141 sets the movement process so as to prohibit other AGVs 30 from using the portion of the specific route on which the AGV 30 is present in the direction of movement of the moving body, and to permit use of the portion in the opposite direction to the direction of movement.

[0055] As shown in the rightmost column of Fig. 8, this embodiment uses the formula shown in blocking job shop scheduling. In contrast to the formulation of general job shop scheduling shown in the left column of Fig. 8, the formula shown in the right column of Fig. 8 is a formulation of blocking job shop scheduling.

[0056] Next, we will explain the formula of this embodiment shown on the right side of Figure 8. Information about jobs and processes is indicated by the subscripts of variables. For example, S α,i is a subscript indicating that it is the i-th task of job α. s indicates the start time of the job, p indicates the processing time of the job, and C max denotes the makespan of the schedule. R denotes the set of resources, P denotes the set of products, and Q α and Qβ denotes the set of jobs for product α and product β. M denotes a large positive number. And x α,i,β,j indicates an integer between 0 and 1, and J α,i and J. β,j The manufacturing procedure is shown below.

[0057] The objective function in equation (1) aims to minimize the makespan. And, C in equation (2) max represents the maximum completion time of the last job of each product. Equation (3) shows a non-negative constraint on the start time, and equation (4) shows that each job runs after the preceding job. Therefore, the start time of the next job,α,i+1,is the processing completion time S α,i +p α,i must be slower by the amount of manufacturing resources.

[0058] Equations (5) and (6) are collision prohibition conditions that prohibit a moving object from using the next divided route until the moving object has completed moving to the next divided route. x α,i,β,j represents a decision variable that takes the value 0 if the i-th task of job α is operated before the j-th job of product β.

[0059] Next, the processing of the server 40 will be described with reference to the flowcharts of Figures 9 and 10. The flowcharts shown in Figures 9 and 10 are repeatedly executed in a short period of time when the server 40 is in a powered-on state.

[0060] First, the flow chart of Fig. 9 will be described. In step S1, the transport process is acquired, and the process proceeds to step S2. In step S2, the calculation unit 144 calculates the transport schedule, and the process proceeds to step S3. In step S3, the server transmission unit 43 is controlled to transmit the transport schedule to the AGV 30, and this flow ends. In this way, the server control unit 45 calculates the transport schedule based on the transport process, and transmits the calculated transport schedule to the AGV 30.

[0061] Next, the flowchart in Fig. 10 will be described. In step S1, the server receiving unit 42 receives a transport instruction, and the process proceeds to step S2. In step S2, the judgment unit 143 judges whether or not the new transport instruction requires recalculation of the transport schedule. If recalculation is required in step S2, the process proceeds to step S3, and if not, the process ends. Recalculation is required when a new AGV 30 is added, or when a new transport destination is added. Recalculation is not required when, for example, the new transport instruction does not change the transport destination or transport route, but the transport amount has changed.

[0062] In step S3, the transport process in the new transport instruction is obtained, and the process proceeds to step S4. In step S4, the calculation unit 144 calculates the transport schedule, and the process proceeds to step S5. In step S5, the server transmission unit 43 is controlled to transmit the transport schedule to the AGV 30, and this flow ends. In this way, when recalculation is required due to the transport instruction, the server control unit 45 recalculates the transport schedule based on the new transport process, and transmits the recalculated transport schedule to the AGV 30.

[0063] Next, three calculation examples of the transport schedule will be described with reference to FIG. 11 to FIG. 19. First, the first calculation example will be described. As shown in FIG. 11, the route of the first calculation example has seven divided routes, and at the start, the first AGV 30A is located on the first divided route R1, and the second AGV 30B is located on the fifth divided route R5. The first AGV 30A starts on the first divided route R1 and arrives on the sixth divided route R6. The second AGV 30B starts on the fifth divided route R5 and arrives on the seventh divided route R7. In this case, the second divided route R2, the third divided route R3, and the fourth divided route R4 of the movement routes of the two AGVs 30 overlap to form a specific route. In the specific route, the movement directions of the AGVs 30 are opposed to each other, and therefore the AGVs 30 may interfere with each other. In this case, one of the AGVs 30 passes first along the specific route, and the other passes later.

[0064] FIG. 12 shows a conveyance process. In the conveyance process of the first AGV 30A, the first divided route R1 is the starting point, and then the first AGV 30A moves to the second divided route R2. In this case, since the second divided route R2 is a specific route, in order to prohibit other AGVs 30 from entering the specific route, not only the second divided route R2 but also the fourth divided route R4 is considered to be in use. In reality, only the second divided route R2 is used, but the fourth divided route R4 is considered to be in use virtually, and other AGVs 30 are prevented from entering the specific route. After that, when the first AGV 30A moves from the second divided route R2 to the third divided route R3, similarly, since the third divided route R3 is a specific route, in order to prohibit other AGVs 30 from entering the specific route, not only the third divided route R3 but also the fourth divided route R4 is considered to be in use.

[0065] After that, when the first AGV 30A moves from the third divided path R3 to the fourth divided path R4, the fourth divided path R4 is a specific path, but there is no specific path ahead in the moving direction, so only the fourth divided path R4, which is the current position, is considered to be in use. After that, the first AGV 30A moves from the fourth divided path R4 to the sixth divided path R6, and the movement of the first AGV 30A ends.

[0066] Similarly, in the transport process of the second AGV 30B, the fifth divided route R5 is the starting point, and then the second divided route R4 is moved to. In this case, since the fourth divided route R4 is a specific route, in order to prohibit other AGVs 30 from entering the specific route, not only the fourth divided route R4 but also the second divided route R2 is considered to be in use. In reality, only the fourth divided route R4 is used, but the second divided route R2 is considered to be in use virtually, and other AGVs 30 are prevented from entering the specific route. After that, when the second AGV 30B moves from the fourth divided route R4 to the third divided route R3, similarly, since the third divided route R3 is a specific route, in order to prohibit other AGVs 30 from entering the specific route, not only the third divided route R3 but also the second divided route R2 is considered to be in use.

[0067] After that, when the second AGV 30B moves from the third divided path R3 to the second divided path R2, the second divided path R2 is a specific path, but there is no specific path ahead in the moving direction, so only the second divided path R2, which is the current position, is considered to be in use. After that, the second AGV 30B moves from the second divided path R2 to the seventh divided path R7, and the movement of the second AGV 30B ends.

[0068] The transfer schedule is shown in Figure 13. The transfer schedule is calculated by inputting the transfer process in Figure 12 so that the makespan in the above formula (1) becomes the minimum value. The transfer schedule shown in Figure 13 shows the divided routes used by each AGV 30 at a certain time.

[0069] As shown in FIG. 13, at the first time t1, the first AGV 30A is located on the first divided path R1, and the second AGV 30B is located on the fifth divided path R5. Thereafter, at the second time t2, the first AGV 30A moves to the second divided path R2, and virtually uses the fourth divided path R4. At the second time t2, the second AGV 30B is not moving. Thereafter, at the third time t3, the first AGV 30A moves to the third divided path R3, and virtually uses the fourth divided path R4. At the third time t3, the second AGV 30B is not moving either. Thereafter, at the fourth time t4, the first AGV 30A moves to the fourth divided path R4. At the fourth time t4, the second AGV 30B is not moving either.

[0070] Then, at the fifth time t5, the first AGV 30A moves to the sixth divided path R6, and the movement of the first AGV 30A ends. At the fifth time t5, the second AGV 30B also moves from the fifth divided path R5 to the fourth divided path R4. Then, from the sixth time t6 to the eighth time t8, the second AGV 30B moves in sequence to the third divided path R3, the second divided path R2, and the seventh divided path R7, and the movement of the second AGV 30B ends.

[0071] In this way, in the first calculation example, there is a specific path in the movement path of the two AGVs 30, but by using the specific path in turn without interference, the movement can be completed without any unnecessary movement of the AGVs 30.

[0072] Next, the second calculation example will be described with reference to Figs. 14 to 16. As shown in Fig. 14, the route in the second calculation example has eight divided routes, and at the start, the first AGV 30A is located on the first divided route R1, and the second AGV 30B is located on the eighth divided route R8. The first AGV 30A starts from the first divided route R1, passes through the divided routes other than the eighth divided route R8, and returns to the starting point again. Therefore, the arrival point of the first AGV 30A is also the first divided route R1.

[0073] The second AGV 30B starts from the eighth divided route R8, passes through the divided routes other than the first divided route R1, and returns to the starting point. Therefore, the arrival point of the second AGV 30B is also the eighth divided route R8. In this case, the second divided route R2 to the sixth divided route R6 are overlapping specific routes among the movement routes of the two AGVs 30.

[0074] FIG. 15 shows a conveying process. In the conveying process of the first AGV 30A, the first divided path R1 is the starting point, and then the first divided path R2 is moved to the second divided path R2. In this case, since the second divided path R2 is a specific path, in order to prohibit other AGVs 30 from entering the specific path, not only the second divided path R2 but also the sixth divided path R6, which is the entrance to the specific path, is assumed to be in use. In reality, only the second divided path R2 is in use, but the sixth divided path R6 is assumed to be in use virtually, and other AGVs 30 are prevented from entering the specific path. After that, the first AGV 30A moves from the second divided path R2 to the third divided path R3, the fourth divided path R4, and the fifth divided path R5 in sequence, and during that time, the sixth divided path R6 is also assumed to be in use.

[0075] After that, when the first AGV 30A moves to the sixth divided path R6, since the sixth divided path R6 is a specific path, in order to prohibit other AGVs 30 from entering the specific path, not only the sixth divided path R6 but also the second divided path R2, which is the entrance / exit of the specific path located ahead in the traveling direction, is considered to be in use. After that, the first AGV 30A moves to the seventh divided path R7, and similarly the second divided path R2 is also considered to be in use. After that, the first AGV 30A moves in the order of the second divided path R2 and the first divided path R1, and the movement of the first AGV 30A ends.

[0076] Similarly, in the transportation process of the second AGV 30B, the eighth divided path R8 is the starting point, and then the second divided path R6 is moved to. In this case, since the sixth divided path R6 is a specific path, in order to prohibit other AGVs 30 from entering the specific path, not only the sixth divided path R6 but also the second divided path R2 is considered to be in use. In reality, only the sixth divided path R6 is used, but the second divided path R2 is considered to be in use virtually, and other AGVs 30 are prevented from entering the specific path. After that, the second AGV 30B moves from the sixth divided path R6 to the fifth divided path R5, the fourth divided path R4, and the third divided path R3 in sequence, and during that time, the second divided path R2 is also considered to be in use.

[0077] After that, when the second AGV 30B moves to the second divided path R2, since the second divided path R2 is a specific path, in order to prohibit other AGVs 30 from entering the specific path, not only the second divided path R2 but also the sixth divided path R6, which is the entrance / exit of the specific path located immediately ahead in the direction of travel, is considered to be in use. After that, the second AGV 30B moves to the seventh divided path R7, and similarly the sixth divided path R6 is also considered to be in use. After that, the second AGV 30B moves to the sixth divided path R6 and the eighth divided path R8 in that order, and the movement of the second AGV 30B ends.

[0078] The transfer schedule is shown in Figure 16. The transfer schedule is calculated by inputting the transfer process in Figure 15 so that the makespan in the above formula (1) becomes the minimum value. The transfer schedule shown in Figure 16 shows the divided routes used by each AGV 30 at a certain time.

[0079] As shown in FIG. 16, at the first time t1, the first AGV 30A is located on the first divided path R1, and the second AGV 30B is located on the eighth divided path R8. Thereafter, at the second time t2, the first AGV 30A moves to the second divided path R2 and virtually uses the sixth divided path R6. At the second time t2, the second AGV 30B is not moving. Thereafter, from the third time t3 to the sixth time t6, the first AGV 30A moves in sequence to the third divided path R3, the fourth divided path R4, the fifth divided path R5, and the sixth divided path R6. Then, at the sixth time t6, not only the sixth divided path R6 but also the second divided path R2 is virtually used. Thereafter, at the seventh time t7, it moves to the seventh divided path R7 and virtually uses the second divided path R2 as well. Thereafter, at eighth time t8 and ninth time t9, the first AGV 30A moves sequentially along the second divided path R2 and the first divided path R1, and the movement of the first AGV 30A ends.

[0080] At the ninth time t9, the second AGV 30B starts moving, moving to the sixth split path R6 and virtually using the second split path R2 as well. After that, from the tenth time t10 to the thirteenth time t13, the second AGV 30B moves in sequence along the fifth split path R5, the fourth split path R4, the third split path, and the second split path R2. Then, at the thirteenth time t13, not only the second split path R2 but also the sixth split path R6 is virtually used. After that, at the fourteenth time t14, it moves to the seventh split path R7 and virtually uses the sixth split path R6 as well. After that, at the fifteenth time t15 and the sixteenth time t16, it moves in sequence along the sixth split path R6 and the eighth split path R8, and the movement of the second AGV 30B ends.

[0081] Similarly, in the second calculation example, there is a specific path in the movement path of the two AGVs 30, but by using the specific path in turn without interference, the movement can be completed without any unnecessary movement of the AGVs 30.

[0082] Next, the third calculation example will be described with reference to Figs. 17 to 19. As shown in Fig. 17, the route of the third calculation example has ten divided routes, and at the start, the first AGV 30A is located on the first divided route R1, the second AGV 30B is located on the eighth divided route R8, and the third AGV 30C is located on the fifth divided route R5. The first AGV 30A starts from the first divided route R1, passes through the second divided route R2, the fourth divided route R4, the sixth divided route R6, the seventh divided route R7, and the ninth divided route R9 in sequence, and arrives at the tenth divided route R10. The second AGV 30B starts from the eighth divided route R8, passes through the ninth divided route R9, the seventh divided route R7, the sixth divided route R6, the fourth divided route R4, and the second divided route R2 in sequence, and arrives at the third divided route R3. The third AGV 30C starts from the fifth divided route R5, passes through the sixth divided route R6, the seventh divided route R7, and the ninth divided route R9 in this order, and arrives at the tenth divided route R10. In this case, among the movement routes of the three AGVs 30, the second divided route R2, the fourth divided route R4, the sixth divided route R6, the seventh divided route R7, and the ninth divided route R9 form a specific route that overlaps with each other.

[0083] FIG. 18 shows a conveying process. In the conveying process of the first AGV 30A, the first divided path R1 is the starting point, and then the first divided path R2 is moved to. In this case, since the second divided path R2 is a specific path, in order to prohibit other AGVs 30 from entering the specific path, not only the second divided path R2 but also the sixth divided path R6 and the ninth divided path R9 are assumed to be in use. In reality, only the second divided path R2 is in use, but the sixth divided path R6 and the ninth divided path R9 are assumed to be in use virtually, and other AGVs 30 are prevented from entering the specific path. After that, the first AGV 30A moves from the second divided path R2 to the fourth divided path R4, the sixth divided path R6, the seventh divided path R7, and the ninth divided path R9 in sequence, and the ninth divided path R9 is also assumed to be in use during that time. Also, the sixth divided path R6 is assumed to be in use until the first AGV 30A moves to the seventh divided path R7. Thereafter, the first AGV 30A moves to the tenth divided path R10, and the movement of the first AGV 30A ends.

[0084] In the transportation process of the second AGV 30B, the eighth divided path R8 is the starting point, and then the second divided path R9 is moved to the ninth divided path R9. In this case, since the ninth divided path R9 is a specific path, in order to prohibit other AGVs 30 from entering the specific path, not only the ninth divided path R9 but also the second divided path R2 and the sixth divided path R6 are assumed to be in use. In reality, only the ninth divided path R9 is in use, but the second divided path R2 and the sixth divided path R6 are assumed to be in use virtually, and other AGVs 30 are prevented from entering the specific path. After that, the second AGV 30B moves from the ninth divided path R9 to the seventh divided path R7, the sixth divided path R6, the fourth divided path R4, and the second divided path R2 in sequence, and the second divided path R2 is also assumed to be in use during that time. The sixth divided path R6 is also assumed to be in use until the second AGV 30B moves to the fourth divided path R4. Thereafter, the second AGV 30B moves to the third divided path R3, and the movement of the second AGV 30B ends.

[0085] In the transportation process of the third AGV 30C, the fifth divided path R5 is the starting point, and then the sixth divided path R6 is moved to. In this case, since the sixth divided path R6 is a specific path, in order to prohibit other AGVs 30 from entering the specific path, not only the sixth divided path R6 but also the ninth divided path R9 is considered to be in use. In reality, only the sixth divided path R6 is used, but the ninth divided path R9 is considered to be in use virtually, and other AGVs 30 are prevented from entering the specific path. After that, the third AGV 30C moves from the sixth divided path R6 to the seventh divided path R7 and the ninth divided path R9 in sequence, and during that time, the ninth divided path R9 is also considered to be in use. After that, the third AGV 30C moves to the tenth divided path R10, and the movement of the third AGV 30C ends.

[0086] The transfer schedule is shown in Figure 19. The transfer schedule is calculated by inputting the transfer process in Figure 19 so that the makespan in the above formula (1) becomes the minimum value. The transfer schedule shown in Figure 19 shows the divided routes used by each AGV 30 at a certain time.

[0087] As shown in FIG. 19, at the first time t1, the first AGV 30A is located on the first divided path R1, the second AGV 30B is located on the eighth divided path R8, and the third AGV 30C is located on the fifth divided path R5. Then, at the second time t2, the second AGV 30B moves to the ninth divided path R9, and virtually uses the second divided path R2 and the sixth divided path R6. At the second time t2, the first AGV 30A and the third AGV 30C are not moving. Then, at the third time t3, the fourth time t4, and the fifth time t5, the second AGV 30B moves in sequence to the seventh divided path R7, the sixth divided path R6, and the fourth divided path R4. Then, at the fifth time t5, the sixth divided path R6 is not being used, so the third AGV 30C starts moving, moves to the sixth divided path R6, and virtually uses the ninth divided path R9 as well.

[0088] Then, at the sixth time t6, the second AGV 30B moves to the second divided path R2. Then, at the sixth time t6 and the seventh time t7, the third AGV 30C moves to the seventh divided path R7 and the ninth divided path R9 in sequence. Then, at the eighth time t8, the second AGV 30B moves to the third divided path R3, and the movement of the second AGV 30B ends. Also, the third AGV 30C moves to the tenth divided path R10, and the movement of the third AGV 30C ends.

[0089] The first AGV 30A starts moving at the eighth time t8 and moves sequentially along the second divided path R2, the fourth divided path R4, the sixth divided path R6, the seventh divided path R7, the ninth divided path R9, and the tenth divided path R10 until the thirteenth time t13, at which point the first AGV 30A moves to the tenth divided path R10 and its movement ends.

[0090] Similarly, in the third calculation example, there is a specific route among the movement routes of the three AGVs 30, but by using the specific route in sequence without interference, the movement can be completed without any unnecessary movement of the AGVs 30.

[0091] As described above, in the movement control system 100 of this embodiment, the route does not allow two AGVs 30 to pass each other, so when the movement routes intersect, in order to avoid collisions between the AGVs 30, it is necessary to make one AGV 30 wait and move the other AGV 30 before moving the other AGV 30. Therefore, a collision prohibition condition is used as a constraint condition for the mixed integer programming problem to calculate a transportation schedule that minimizes the evaluation value while avoiding collisions between the moving bodies. The evaluation value is the time until the movement of all AGVs 30 is completed, the sum of the movement times of all AGVs 30, the sum of the waiting times of AGVs 30, etc., and in this embodiment, the makespan, that is, the time until the movement of all moving bodies is completed, is used as the evaluation value. In addition, since the transportation schedule is determined by solving the mixed integer programming problem, it is possible to suppress repeated calculations.

[0092] Furthermore, the setting unit 141 sets the transport process so that when one AGV 30 is present on the specific route, other AGVs 30 cannot enter the specific route. If there were only a collision prohibition condition, the positions of the AGVs 30 present on adjacent divided routes would be allowed to be swapped, but since the setting unit 141 prohibits entry into the specific route, such swapping can be prevented. This makes it possible to prevent interference between the AGVs 30 while further improving overall efficiency.

[0093] In this embodiment, when one AGV 30 is present on the specific route, the setting unit 141 sets the transport process so that the other AGVs 30 are prohibited from using the portion of the specific route in the direction of movement of the AGV 30 on which the AGV 30 is present, and are permitted to use the portion in the opposite direction to the direction of movement. This allows the specific route to be used more efficiently than if the entire specific route were prohibited from entry. Therefore, the specific route can be effectively utilized to improve efficiency while avoiding interference.

[0094] In this embodiment, when the moving path and the transport process are changed by the setting unit 141, the calculation unit 144 inputs the new moving path and the transport process and calculates the transport schedule. This makes it possible to calculate the transport schedule using new information. Therefore, it is possible to flexibly respond to changes in the transport process.

[0095] Second embodiment Next, a second embodiment of the present disclosure will be described with reference to FIG. 20. This embodiment is characterized in that the transport schedule is recalculated using position information of the AGV 30. FIG. 20 is a flowchart showing the processing of the server 40 in this embodiment. The flowchart shown in FIG. 20 is repeatedly executed in a short period of time when the server 40 is in a power-on state.

[0096] In step S1, the position information of each AGV 30 is acquired via the server receiving unit 42, and the process proceeds to step S2. In step S2, the position information is compared with the planned position on the transport schedule, and the deviation is calculated, and the process proceeds to step S3.

[0097] In step S3, it is determined whether the deviation is within an allowable range, and if it is within the allowable range, recalculation is not necessary and the flow ends. If the deviation is outside the allowable range, recalculation is necessary and the flow proceeds to step S4.

[0098] In step S4, the transport schedule is recalculated taking into account the current position, and the process proceeds to step S5. In step S5, the server transmission unit 43 is controlled to transmit the recalculated transport schedule to each AGV 30, and this flow ends.

[0099] In this way, the calculation unit 144 recalculates the transfer schedule when the difference between the current position of the AGV 30 and the planned position in the transfer schedule is greater than a predetermined value. This makes it possible to prevent interference of the AGV 30 caused by the deviation between the current position of the AGV 30 and the planned position.

[0100] Third embodiment Next, a third embodiment of the present disclosure will be described with reference to Fig. 21. This embodiment is characterized in that a transport schedule is recalculated using monitoring information from the detection device 50. Fig. 21 is a flowchart showing the processing of the server 40 in this embodiment. The flowchart shown in Fig. 21 is repeatedly executed in a short period of time when the server 40 is in a power-on state.

[0101] In step S1, monitoring information is acquired from the detection device 50 via the server receiver 42, and the process proceeds to step S2. In step S2, the monitoring information is used to predict the moving direction and moving speed of a moving object other than the AGV 30, such as a person, and the process proceeds to step S3.

[0102] In step S3, it is determined whether or not the transport schedule needs to be recalculated based on the moving object, and if recalculation is necessary, the flow proceeds to step S4, and if recalculation is not necessary, the flow ends. Recalculation is necessary when there is a risk of interference between the AGV 30 and the person due to the movement of the person.

[0103] In step S4, the transport schedule is recalculated taking into account the movement information of the person, and the process proceeds to step S5. In step S5, the server transmission unit 43 is controlled to transmit the recalculated transport schedule to each AGV 30, and the process proceeds to step S6. In step S6, the server control unit 45 is controlled to transmit an instruction to the detection device 50 for the operating object, and this flow ends.

[0104] In this way, the setting unit 141 predicts the movement of the action object from the movement information, and sets a movement route and movement process including the action object. The calculation unit 144 then inputs the new movement route and movement process to calculate a transport schedule. This makes it possible to prevent interference between the AGV 30 and the action object. The server control unit 45 also outputs instructions to the action object, so that, for example, the instruction unit 54 of the detection device 50 can instruct the action object to stop. This allows the action object, for example a person, to safely wait for the AGV 30 to pass, or to move ahead of the AGV 30, according to the instructions.

[0105] When an instruction is given to the moving object, the constraint conditions for calculating the transport schedule include a priority condition in which the priority of the movement of the AGV 30 and the moving object is set. For example, it is a condition as to whether the moving object or the movement of the AGV 30 is to be prioritized. The priority may vary depending on the conditions, or may be fixed in advance. For example, the priority may vary depending on the time of day. The priority may be set by making the person wait in order to realize the movement while preventing interference between the AGVs 30 and the person. The priority of the person who is a mixed moving object with the AGV 30 may be determined according to the transport amount or the congestion degree. Such priority and priority order are stored in the storage unit 41. Then, the schedule calculation according to the priority can be realized by adding a no-wait constraint condition that does not allow a waiting time in which the movement of the person is prioritized.

[0106] (Fourth embodiment) Next, a fourth embodiment of the present disclosure will be described with reference to Fig. 22. This embodiment is characterized in that a transport schedule is recalculated using monitoring information from the detection device 50. Fig. 22 is a flowchart showing the processing of the server 40 in this embodiment. The flowchart shown in Fig. 22 is repeatedly executed in a short period of time when the server 40 is in a power-on state.

[0107] In step S1, monitoring information is acquired from the detection device 50 via the server receiver 42, and the process proceeds to step S2. In step S2, the monitoring information is used to determine whether or not there is an abnormality in the route, and if there is an abnormality, the process proceeds to step S3, and if there is no abnormality, the process ends.

[0108] Route abnormalities include static abnormalities and dynamic abnormalities. Static abnormalities are abnormalities such as construction that are known in advance. Dynamic abnormalities include temporary stops caused by the automatic control of the AGV30, and temporary stops caused by physical problems such as load shifting.

[0109] In step S3, since there is an abnormality in the route, it is determined whether or not the transport schedule needs to be recalculated due to the abnormality. If recalculation is necessary, proceed to step S4, and if recalculation is not necessary, end this flow. Recalculation is necessary when an abnormality makes it impossible to transport via the route in the transport schedule.

[0110] In step S4, the transport process is reconfigured taking into account the route abnormality, and the process proceeds to step S5. In step S5, the transport schedule is recalculated taking into account the route abnormality, and the process proceeds to step S6. In step S6, the server transmission unit 43 is controlled to transmit the recalculated transport schedule to each AGV 30, and the process ends.

[0111] In this way, when there is a path abnormality, the setting unit 141 sets a movement path that avoids the non-movable portion, thereby making it possible to prevent the AGV 30 from moving along the path where there is an abnormality.

[0112] (Other embodiments) Although the preferred embodiments of the present disclosure have been described above, the present disclosure is not limited to the above-described embodiments and can be modified in various ways without departing from the spirit and scope of the present disclosure.

[0113] The structures of the above-described embodiments are merely examples, and the scope of the present disclosure is not limited to the scope of these descriptions. The scope of the present disclosure is defined by the claims, and includes all modifications within the meaning and scope of the claims.

[0114] In the above-described first embodiment, the moving object is realized by the AGV 30, but is not limited to the AGV 30. The moving object can be any moving object that would cause a collision or deadlock if it exists in the same position at the same time.

[0115] For example, the mobile object may be a transport robot in a closed space. The closed space is a space that defines an area where only the mobile object can exist and in which the mobile object travels. The mobile object may be, for example, a patrol robot, a surveillance robot, a guide robot, or a transport robot in a manufacturing site, a hospital, an airport, or a department store.

[0116] The moving body may be a mobility that is driven autonomously by a driver, such as a car, taxi, or bus that runs on a road. In that case, the functions realized by the server control unit 45, such as the calculation unit 144 and the setting unit 141, may be provided on the vehicle side, and the destination and route may be transmitted from the vehicle side to the server 40. The server control unit 45 and the AGV 30 may be configured to share the processing, for example, the server 40 may have the function of the calculation unit 144, and the AGV 30 may have the function of the setting unit 141, and the route may be determined by mutual communication. The moving body may be a mobility whose driving method is controlled, such as an automatic driving car. The moving body may be a train or an airplane. It can also be used for scheduling trains that run while sharing tracks, and airplanes that use while sharing runways. The moving body may be a gantry crane, an elevator for transporting luggage, and other things that move while occupying a route or space.

[0117] In the first embodiment described above, the route is fixed, but it does not have to be fixed. For example, the route does not have to be fixed in advance and may be changed along the way. Even if the route changes each time, it can be reflected in the process and the schedule calculation can be performed again. Also, a control method in which the route is changed each time may be used. Therefore, the moving body may be a moving body that calculates the route using a monitoring device, such as a trackless AGV.

[0118] The scheduling target may be the entire route, or only an intersection where routes intersect, or an entrance / exit of a specific route where routes overlap. Calculations may be performed each time by focusing on each intersection of routes. The results may also be applied to control of a transportation system or traffic lights. Furthermore, the setting unit 141 may set the transportation process so that when there is one AGV 30 on a specific route, the use of other AGVs 30 on the entire specific route is prohibited.

[0119] In the first embodiment described above, the transport schedule is determined by the formula shown in Fig. 8, but the formula is not limited to this. The formula of this embodiment shown in Fig. 8 is only an example, and the transport schedule may be calculated by other formulas.

[0120] In the first embodiment described above, the position detector 33 detects the position of the AGV 30 using a GNSS receiver, but the present invention is not limited to such a configuration. For example, an IoT router and an IoT tag that transmit and receive radio waves may be used, the IoT tag may be provided on the AGV 30, the IoT router may be provided at multiple fixed positions, and the position of the IoT tag, i.e., the position of the AGV 30, may be estimated based on the radio wave intensity for communicating with the IoT router.

[0121] The functions realized by the server control unit 45 in the first embodiment described above may be realized by hardware and software different from those described above, or a combination of these. The server control unit 45 may communicate with, for example, another control device, and the other control device may execute a part or all of the processing. When the server control unit 45 is realized by an electronic circuit, it may be realized by a digital circuit including a large number of logic circuits, or an analog circuit. [Explanation of symbols]

[0122] 30...AGV (mobile body) 31...AGV receiving unit 32...AGV transmitting unit 33: Position detection unit 34: AGV control unit 40: Server 41: Storage unit 42: Server receiving unit 43: Server transmitting unit 45: Server control unit (acquisition unit) 50: detection device; 51: surroundings monitoring unit; 52: receiving unit for detection device 53: Transmitter for detection device 54: Instruction unit 60: Transport instruction device 61: Instruction monitoring unit 62 ... receiver for conveyance 63 ... transmitter for conveyance 64 ... input section 100: movement control system 141: setting unit 142: prediction unit 143: judgment unit 144... Calculation unit 145... Movement control unit

Claims

1. A mobile object control device that controls the movement of a plurality of mobile objects (30) moving on a route, the route is a route in which the two moving bodies cannot pass each other, A setting unit (141) that sets a travel route connecting a starting point and a destination point of a plurality of the moving bodies and a travel process for traveling along the travel route; a calculation unit (144) that calculates a movement schedule of the moving object by solving a mixed integer programming problem having an objective of minimizing a predetermined evaluation value while satisfying a constraint condition, using the movement route and the movement process as input values; a movement control unit (145) that controls the movement of each of the moving bodies according to the movement schedule; The constraint conditions include a collision prohibition condition that prohibits another moving object from using a divided route obtained by dividing the route into divided routes at least at a length greater than that of the moving object until the moving object has completed moving to the next divided route, and The setting unit is a mobile body control device that sets the movement process so that, when one of the moving bodies is present on a specific route where the movement paths of at least two of the moving bodies overlap and the moving directions of the moving bodies are opposed, which may cause interference between the moving bodies, the setting unit prohibits the use of the other moving body on the specific route on which the moving body is present.

2. The mobile body control device according to claim 1, wherein the setting unit sets the movement process so that, when one of the moving bodies is present on the specific route, the setting unit prohibits other moving bodies from using the portion of the specific route on which the moving body is present in the direction of movement of the moving body, and allows the use of the portion in the opposite direction to the direction of movement of the moving body.

3. 3. The mobile body control device according to claim 1, wherein when the travel route and the travel process are changed by the setting unit, the calculation unit calculates the travel schedule using the new travel route and the travel process as input values.

4. Further comprising an acquisition unit (45) for acquiring a current position of the moving body, 4. The mobile object control device according to claim 1, wherein the calculation unit recalculates the movement schedule when a difference between a current position of the mobile object and a planned position in the movement schedule is greater than a predetermined value.

5. An acquisition unit (45) for acquiring movement information of an action object other than the moving body that moves along the route; An instruction unit (54) for instructing the operation object to move, the setting unit predicts a movement of the action object from the movement information, and sets the movement path and the movement process including the action object; the calculation unit calculates the movement schedule using the new movement route and the movement process as input values; 5. The mobile object control device according to claim 1, wherein the movement control section controls the instruction section to output an instruction to the operating object.

6. The mobile object control device according to claim 5 , wherein the constraint conditions include a priority condition in which a priority order is set for the movements of the mobile object and the movable object.

7. An acquisition unit (45) for acquiring an immovable portion of the route, 7. The mobile object control device according to claim 1, wherein the setting unit sets the movement route so as to avoid the non-movable portion.

Citation Information

Patent Citations

  • Distributed path planning device and method, and distributed path planning program

    JP2004280213A

  • Global multi-vehicle decision making system for connected and automated vehicles in dynamic environment

    WO2023007849A1