Control device, mobile body, control system, and control method
Patent Information
- Application Number
- PCT/JP2026/005741
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2025-02-28
- Filing Date
- 2026-02-17
- Publication Date
- 2026-09-03
Smart Images

Figure JP2026005741_03092026_PF_FP_ABST
Abstract
Description
Control device, mobile object, control system, and control method
[0001] The present invention relates to the technology of a control device for controlling a mobile object, a mobile object, a control system, and a control method.
[0002] In the logistics industry where labor shortage is serious, autonomous mobile technology has attracted expectations. Autonomous driving technology is used not only for trucks that collect and deliver goods on public roads, but also for forklifts used to collect and store goods in factories and warehouses, and transport robots called AGV and AMR. Furthermore, autonomous driving technology is also used for inter-process transport vehicles and the like. AGV is an abbreviation for Automatic Guided Vehicle, and AMR is an abbreviation for Autonomous Mobile Robot. The development of such autonomous driving technology covers a wide range of fields.
[0003] Except for fully automated warehouses and the like, autonomous mobile objects are used in environments where people (mainly pedestrians), other vehicles (for example, forklifts operated by workers) and the like coexist. A fully automated warehouse refers to a warehouse composed entirely of mobile objects that all move autonomously. For this reason, autonomous mobile objects need to determine a travel route and travel so as not to collide with pedestrians and other vehicles.
[0004] Generally, when a mobile object autonomously travels in an environment where people and other vehicles coexist, the mobile object calculates a destination and a travel route to the destination, and is controlled to follow the calculated travel route. At this time, based on the acquired positions and speeds of pedestrians, other vehicles and the like, a travel route is generated so as to satisfy the condition of not colliding with them.
[0005] Pedestrians and other vehicles can move freely in various directions. Therefore, it is difficult to predict their future positions. When generating a travel route for an autonomous mobile object to move to a destination, recalculation needs to be performed many times during the travel of the autonomous mobile object in order to generate a travel route that can avoid collisions with other objects.
[0006] To address these challenges, Patent Document 1 discloses a method for controlling the movement of multiple vehicles, comprising the steps of: obtaining constraints for the movement of the multiple vehicles and a calculation period for calculating the movement paths of the vehicles; obtaining the position of each of the multiple vehicles; identifying a target position for each vehicle; calculating the movement paths for the multiple vehicles for a certain number of look-ahead steps based on the position of each of the multiple vehicles, the target position, and the constraints; and determining the driving conditions for the vehicles from the present time to a unit of time later based on the movement paths, and controlling the movement of the vehicles, wherein the step of calculating the movement paths performs an optimization calculation based on an evaluation function whose evaluation increases as the deviation between the vehicle and the target position for each look-ahead step decreases, and the constraints, and calculates the movement paths of the vehicles.
[0007] Japanese Patent Publication No. 2021-077090
[0008] Patent Document 1 describes "obtaining a calculation period for calculating the movement path, determining the driving conditions from the present time to a unit time later based on the movement path, and controlling the vehicle." Generally, as the number of obstacles around a moving object increases, or as the surrounding environment becomes more complex, the number of conditions (constraints) that must be considered when calculating the movement path increases. As a result, the time required to generate the movement path increases. In such cases, it is possible that the generation of the movement path will not be completed within a predetermined control period determined by the specifications of the driving device of the moving object. As a result, the autonomous moving object may stop unintentionally or collide with other objects. Patent Document 1 does not take such phenomena into consideration.
[0009] In light of this background, the present invention was made, and its objective is to improve the operability of a mobile body.
[0010] To solve the aforementioned problems, the present invention provides a control device for controlling a mobile body, comprising: an environmental information acquisition unit for acquiring environmental information about the surrounding environment of the mobile body; a movement path generation unit for generating a movement path for the mobile body; and a control unit for controlling the drive device of the mobile body based on the movement path generated by the movement path generation unit; further comprising: a generation interval setting unit for setting a generation interval, which is the time interval between processes in which the movement path generation unit generates the movement path; and an occupied area setting unit for setting an occupied area of the mobile body, wherein the generation interval setting unit sets the generation interval based on a movement path generation time, which is the time required for the movement path generation unit to generate the movement path, and the control cycle of the mobile body, and the movement path generation unit generates a movement path for the mobile body based on the environmental information and the occupied area. Other solutions will be described as appropriate in the embodiments.
[0011] According to the present invention, the operability of a mobile body can be improved.
[0012] This is a functional block diagram of the mobile body according to this embodiment. This is a diagram showing an example of the work area in this embodiment. This is a diagram showing the hardware configuration of the mobile body. This is a diagram showing the state information of the mobile body. This is a diagram showing an example of the data format of environmental information related to the mobile body in this embodiment. This is a diagram (1) showing an example of the data format of environmental information related to obstacles in this embodiment. This is a diagram (2) showing an example of the data format of environmental information related to obstacles in this embodiment. This is a diagram (3) showing an example of the data format of environmental information related to obstacles in this embodiment. This is a diagram (1) explaining the relationship between the movement path generation time and drive control. This is a diagram (2) explaining the relationship between the movement path generation time and drive control. This is a diagram (3) explaining the relationship between the movement path generation time and drive control. This is a diagram (4) explaining the relationship between the movement path generation time and drive control. This is a diagram showing an example of a generation interval setting method. This is a diagram showing an example of a threshold setting method related to generation interval setting. This is a diagram showing an example of a threshold setting method related to generation interval setting based on computation load. This is a diagram showing an example of a generation interval setting method based on computation load. This is a diagram (1) for explaining the change of generation interval in the first embodiment. This is a diagram (2) for explaining the change of generation interval in the first embodiment. This is a diagram (1) showing an example of changing the occupied area. This is a diagram (2) showing an example of changing the occupied area. This is a diagram (3) showing an example of changing the occupied area. This is a diagram (1) showing a specific example of expanding the occupied area. This is a diagram (2) showing a specific example of expanding the occupied area. This is a diagram (3) showing a specific example of expanding the occupied area. This is a diagram showing an example of the operation of the mobile body before changing the occupied area. This is a diagram showing an example of the operation of the mobile body after changing the occupied area. This is a diagram showing the positional relationship between the vehicle and an obstacle at a certain time. This is a diagram showing the positional relationship between the mobile body and the cargo rack at a certain time. This is a flowchart showing the procedure of the control method according to this embodiment. This is a diagram (1) showing an example of the processing of the generation interval setting unit in the second embodiment. This is a diagram (2) showing an example of the processing of the generation interval setting unit in the second embodiment. This is a functional block diagram of the mobile body according to the third embodiment. This is a diagram showing an example of the threshold setting method performed by the generation interval setting unit in the third embodiment. This is a functional block diagram of the control system. This is a diagram showing the hardware configuration of the management device.
[0013] Next, embodiments for carrying out the present invention will be described in detail with reference to the drawings as appropriate.
[0014] [First Embodiment] First, the first embodiment of the present invention will be described with reference to Figures 1 to 17.
[0015] <Functional block diagram of mobile body 1> Figure 1 is a functional block diagram of mobile body 1 according to this embodiment.
[0016] In this embodiment, the mobile object 1 to be controlled is an autonomous vehicle or robot. A mobile object 1 other than the mobile object 1 to be controlled refers to a pedestrian, another vehicle, or a manned vehicle 2 (see Figure 2). Furthermore, the mobile object 1 to be controlled may be a vehicle traveling on a public road, or a vehicle (forklift) or robot autonomously traveling within a warehouse Wa (see Figure 2). Hereafter, a mobile object 1 that travels autonomously and is the subject of control in this embodiment will simply be referred to as mobile object 1.
[0017] Furthermore, the mobile object 1 under focus may be referred to as "our vehicle," and other mobile objects 1 may be referred to as "other vehicles," as appropriate.
[0018] As shown in Figure 1, the mobile body 1 is composed of a control device 100, a state recognition device 11, an environmental information acquisition device 12, a communication device 15, and a drive device 13 such as an actuator.
[0019] The control device 100 that controls the mobile body 1 is a calculator that calculates the movement path r (see Figure 11A, etc.) of the mobile body 1 to the target point Xr (see Figure 14A, etc.) through a process described later.
[0020] The control device 100 is composed of an environmental information acquisition unit 101, a generation interval setting unit 102, an occupied area setting unit 103, a movement path generation unit 104, and a control unit 105.
[0021] The environmental information acquisition unit 101 acquires environmental information 12A around the moving body 1. The generation interval setting unit 102 sets the generation interval 400 (see Figures 6A and 6D), which is the time interval between the processes in which the moving path generation unit 104 generates the moving path r, based on the environmental information 12A. The generation interval setting unit 102 sets the generation interval 400 based on the moving path generation time 520 (see Figure 6A) and the control cycle 510 of the moving body 1 (see Figures 6A and 6D). In this case, the generation interval setting unit 102 uses the moving path generation time 520 from when the moving path r was generated in a time prior to the present. The moving path generation time 520 is the calculation time required for the moving path generation unit 104 to generate the moving path r. The control cycle 510 is the time from the start time of the drive device control process to the start time of the next drive device control process.
[0022] The occupied area setting unit 103 sets the occupied area 300 (see Figure 5A, etc.) of the moving body 1. The occupied area 300 is an area that is set so that no objects exist inside the movement path r when the movement path r is generated.
[0023] The movement path generation unit 104 generates a movement path r for the mobile body 1. The control unit 105 controls the drive device 13 of the mobile body 1 based on the movement path r generated by the movement path generation unit 104. The movement path generation unit 104 generates the movement path r for the mobile body 1 based on environmental information 12A and the occupied area 300.
[0024] The control device 100 generates a travel path r to the target point Xr based on information obtained from the communication device 15, the environmental information acquisition device 12, and the state recognition device 11, and drives the mobile body 13 to move it. These processes are calculated by the control device 100 mounted on the mobile body 1.
[0025] The environmental information acquisition device 12 is a device that acquires environmental information 12A such as the position, speed, and attitude of obstacle B (see Figure 2). Environmental information 12A is information about objects present around the vehicle. As the environmental information acquisition device 12, for example, sensors such as LiDAR (Light Detection and Ranging) or cameras can be used. Obstacle B is something that hinders the movement of the mobile body 1. Note that the environmental information acquisition device 12 does not necessarily have to be installed on the mobile body 1. For example, if an infrastructure sensor 4 (see Figure 2) is installed in a warehouse Wa, information may be acquired from the infrastructure sensor 4 via the communication device 15. The infrastructure sensor 4 is, for example, a surveillance camera installed in warehouse Wa. Then, information about objects may be extracted from the information acquired by the infrastructure sensor 4, and the extracted information about objects may be used as environmental information 12A.
[0026] The state recognition device 11 is a device that acquires state information 11A such as the position, orientation, and speed of the moving object 1 (the vehicle). For example, an IMU (Internal Measurement Unit), an encoder, etc., can be used as the state recognition device 11. Alternatively, a GNSS (Global Navigation Satellite System) receiver, etc., may be used as the state recognition device 11. In addition, instead of equipment that measures the position and orientation of the moving object 1, a LiDAR or camera, etc., may be used as the state recognition device 11. In this case, SLAM (Simultaneous Localization and Mapping) technology using LiDAR or a camera may be used. The position and orientation of the vehicle on the map may be calculated using SLAM technology, and the calculated position and orientation of the vehicle may be used.
[0027] The drive unit 13 is a device that converts the speed and direction commands of the moving body 1 into the output of the drive wheels, and this includes a control microcontroller, etc.
[0028] The communication device 15 enables wireless communication such as Bluetooth®, Wi-Fi®, and mobile phone lines. The communication device 15 communicates with a server (not shown). If infrastructure sensors 4, such as surveillance cameras, are installed in the work area W (see Figure 2), the information acquired by the infrastructure sensors 4 is collected by the server. The information collected by the server is then input to the control device 100 via the communication device 15. In addition, the position and orientation information of the vehicle collected by the state recognition device 11 is sent to the server via the communication device 15. This makes it possible to share the position information of each mobile unit 1 among the mobile units 1.
[0029] The control device 100 generates a movement path r for the mobile body 1 within the work area W (for example, a warehouse Wa or a parking lot) and controls the mobile body 1 to follow this movement path r. Specifically, the movement path r is information related to the movement path r, and is time-series information regarding the coordinates (coordinates of the destination), attitude, speed, etc., for the movement of the mobile body 1. Thus, the movement path r includes, for example, the coordinates of the destination of the mobile body 1, the attitude of the mobile body 1 when it moves, the speed at which the mobile body 1 moves, etc.
[0030] <Work Area W> Figure 2 shows an example of the work area W in this embodiment.
[0031] The work area W is the area in which the mobile unit 1 moves.
[0032] In this embodiment, the work area W is assumed to be a warehouse Wa where multiple mobile units 1, workers Pa to Pc, and manned vehicles 2a and 2b are mixed together. In warehouse Wa, fixed shelves, which are cargo racks 3a to 3i, are installed in a regular arrangement. In the example shown in Figure 2, two mobile units 1a and 1b, three workers Pa to Pc, and two manned vehicles 2a and 2b are mixed together. Workers Pa to Pc, manned vehicles 2a and 2b, and cargo racks 3a to 3i are obstacles B. Also, if one vehicle is mobile unit 1a, then another vehicle, mobile unit 1b, becomes an obstacle B.
[0033] As shown in Figure 2, if workers P or manned vehicles 2 are present in addition to the mobile body 1, the surrounding environment of the mobile body 1 can become more complex than in a fully autonomous, unmanned warehouse Wa (work area W). Factors that can complicate the surrounding environment include unexpected movements by workers P or manned vehicles 2. As a result, the generation time for the movement path r (see Figure 11A, etc.) may be longer than expected. Incidentally, a fully autonomous, unmanned warehouse Wa means a warehouse Wa in which only the mobile body 1 moves around. Furthermore, this embodiment is not limited to warehouse Wa, but can be used in various areas such as construction sites where an autonomously moving mobile body 1 exists, or theme parks.
[0034] Furthermore, infrastructure sensors 4 may be installed in warehouse Wa as shown in Figure 2. As mentioned above, surveillance cameras and the like can be used as infrastructure sensors 4. In the example shown in Figure 2, four infrastructure sensors 4a to 4d (surveillance cameras) are installed. Note that infrastructure sensors 4a to 4d are optional.
[0035] <Hardware Configuration Diagram> Figure 3 shows the hardware configuration of the mobile unit 1. In Figure 3, components similar to those in Figure 1 are denoted by the same reference numerals and their explanations are omitted.
[0036] As shown in Figure 3, the mobile unit 1 includes a communication device 15, an environmental information acquisition device 12, a state recognition device 11, a drive device 13, and a control device 100. Since the details of these are explained in Figure 1, their explanation in Figure 3 is omitted.
[0037] In the control device 100, the ROM 111, RAM 112, and CPU 113 are connected to each other via a bus 115. ROM 111 stands for Read Only Memory, RAM 112 stands for Random Access Memory, and CPU 113 stands for Central Processing Unit.
[0038] Furthermore, the ROM 111, RAM 112, and CPU 113 are connected to the communication device 15, environmental information acquisition device 12, state recognition device 11, and drive device 13 via I / O (Input / Output) 114 and bus 115.
[0039] When the program stored in the ROM 111 is executed by the CPU 113, the environmental information acquiring unit 101 to the control unit 105 shown in FIG. 1 are embodied.
[0040] Note that a GPU (Graphic Processing Unit) or the like may be used instead of the CPU 113. Further, instead of the RAM 112, an HDD (Hard Disk Drive), an SSD (Solid State Drive) or the like may be used. And instead of the ROM 111, a volatile storage medium such as a memory may be used.
[0041] <Status Information 11A> FIG. 4 is a diagram showing the status information 11A of the moving body 1.
[0042] As shown in FIG. 4, it is premised that the moving body 1 in the present embodiment travels with wheels 122.
[0043] The status information 11A of the moving body 1 is constituted by information on the position and orientation of the moving body 1. As shown in FIG. 4, the position of the moving body 1 is represented by the coordinates (center position 201) of the center of the main body 121 of the moving body 1. The orientation of the moving body 1 is represented by an angle 202 between the traveling direction of the moving body 1 and, for example, the X-axis. In FIG. 4, the coordinates indicated by the X-axis and the Y-axis are coordinates set for the warehouse Wa.
[0044] Hereinafter, the processing contents of the environmental information acquiring unit 101 to the control unit 105 will be described in detail. Reference is made to FIG. 1 as appropriate.
[0045] <Environmental Information Acquiring Unit 101> First, the processing performed by the environmental information acquiring unit 101 will be described with reference to FIGS. 5A to 5D.
[0046] The environmental information acquiring unit 101 acquires environmental information 12A relating to the moving body 1 around the own vehicle, the worker P, the manned vehicle 2, and the warehouse Wa from the communication device 15 or the environmental information acquiring device 12.
[0047] FIGS. 5A to 5D are diagrams showing an example of the data format of the environmental information 12A relating to the moving body 1 and the obstacle B (see FIG. 2) in the present embodiment.
[0048] FIG. 5A shows environmental information 12A related to the moving object 1, and FIG. 5B shows environmental information 12A related to the worker P. Further, FIG. 5C shows environmental information 12A related to the manned vehicle 2 (a forklift in the example shown in FIG. 5C). Further, FIG. 5D shows environmental information 12A related to the cargo shelf 3.
[0049] In the present embodiment, the environmental information 12A is handled as two-dimensional information. The moving object 1 (another vehicle), the worker P, and the manned vehicle 2 existing around the host vehicle are represented by a circle 204 having a center position 201 "(x, y)" and a radius 203 "r" surrounding each object, whereby the environmental information 12A is expressed. The inner side of the circle 204 is an occupied area 300. As described above, the occupied area 300 is an area set such that no object exists inside when the moving route r (see FIG. 11A and the like) is generated. For an object for which it is desired to reduce the risk of collision, such as the worker P, the inner side of a circle 215 obtained by adding a safety distance 213 "α" to the radius 203 may be set as the occupied area 300.
[0050] Further, as shown in FIG. 5C, the environmental information 12A of a stationary rectangular object such as the cargo shelf 3 is represented by coordinate information of vertices of a rectangle which is the shape of the object. The coordinate information of the vertices of the rectangle is represented by (xmin, ymin) (reference numeral 231), (xmin, ymax) (reference numeral 233), (xmax, ymin) (reference numeral 232), and (xmax, ymax) (reference numeral 234).
[0051] Note that the data format of information on objects around the host vehicle (that is, the environmental information 12A) is not limited to the examples shown in FIGS. 5A to 5D. For example, when a flying object such as a drone is the moving object 1 other than the host vehicle, information in the Z-axis direction may be added to the environmental information 12A shown in FIG. 5A. In the case of a stationary object such as the cargo shelf 3, the area occupied by the object is the occupied area 300.
[0052] <Generation Interval Setting Unit 102> Next, details of processing performed by the generation interval setting unit 102 will be described with reference to FIGS. 6A to 11B.
[0053] The generation interval setting unit 102 sets the generation interval 400 (see Figures 6A and 6D), which is the interval at which a movement path r (see Figure 11A, etc.) is generated, according to the processing of the movement path generation unit 104, as described later. The calculation time required for the movement path generation unit 104 to generate the movement path r is referred to as the movement path generation time 520.
[0054] Figures 6A to 6D illustrate the relationship between the movement path generation time 520 and drive control. Figure 7 shows an example of a generation interval setting method. Figure 8 shows an example of a threshold setting method related to generation interval setting.
[0055] Figures 6A to 6C show the control of the mobile body 1 when the generation interval 400 is not changed in this embodiment. And Figure 6D shows the control of the mobile body 1 when the generation interval 400 is changed in this embodiment.
[0056] Figures 6A to 6D each show three timing charts. From top to bottom, the three timing charts represent the environmental information acquisition process, the movement path generation process, and the drive unit control process.
[0057] First, the definitions of the generation interval 400 and the control period 510 are shown with reference to Figures 6A and 6D. As shown in Figures 6A and 6D, the generation interval 400 is the time from the start time of one movement path generation process to the start time of the next movement path generation process. Also, as shown in Figures 6A and 6D, the control period 510 is the time from the start time of one drive device control process to the start time of the next drive device control process. Furthermore, the time during which each movement path r is generated is referred to as the movement path generation time 520. Furthermore, each movement path generation process is appropriately referred to as a generation step, and each drive device control process is appropriately referred to as a control step.
[0058] Generally, the control device 100 is designed to operate in a state where the cycles of the environmental information acquisition process, the movement path generation process, and the drive device control process are synchronized, as shown in Figure 6A.
[0059] Incidentally, the solid arrows in Figures 6A to 6D indicate the flow of information.
[0060] Figure 6A shows the case where the generation interval of 400 has not been changed, and the generation of the movement path r is completed in time for the movement path generation time of 520 in all movement path generation processes.
[0061] As shown in Figure 6A, if the movement path r is generated within the movement path generation time of 520, the environmental information acquisition process, the movement path generation process, and the drive device control process correspond one-to-one. In other words, the movement path r is generated based on the environmental information 12A acquired by the environmental information acquisition process. Furthermore, the drive device 13 is controlled based on the generated movement path r.
[0062] Various algorithms have been proposed for generating movement paths, but in many of these algorithms, the movement path generation time 520 varies depending on the acquired environmental information 12A. In particular, if there are many obstacles B (see Figure 2) around the vehicle, it is necessary to generate a movement path r that avoids each of them. Specifically, the number of constraints set when generating the movement path r increases, and the time required to generate the movement path r increases.
[0063] Therefore, it often takes a long time for the movement path r to be generated. In this case, the generation of the movement path r may not keep up with the predetermined control cycle 510 based on the control processing of the drive device 13, such as a motor (drive device control processing). When such an event occurs, the input of the movement path r for the next control processing cannot be determined when the drive device 13 is controlled. As a result, the moving body 1 may stop, or the movement path r generated in the previous movement path generation processing may be continuously input. In this way, if the generation of the movement path r does not keep up with the predetermined control cycle 510 based on the control processing of the drive device 13, such as a motor (drive device control processing), it can cause unintended movement of the moving body 1. As a result, the moving body 1 may collide with the wall of the passage or other obstacles B.
[0064] In Figures 6B and 6C, the movement path generation process where the generation of movement path r was not completed in time is indicated by dots.
[0065] In the example shown in Figure 6B, the movement path generation process indicated by reference numeral 552 is unable to generate the movement path r in time. Therefore, the movement path r generated in the previous movement path generation process (reference numeral 551) is used in the drive device control processes indicated by reference numerals 561 and 562.
[0066] Furthermore, in the example shown in Figure 6C, a series of events occur in which the generation of the movement path r is not completed in time during the movement path generation process indicated by reference numerals 552 to 555. When such events occur, the movement path r generated by reference numeral 551 is used in the drive device control processes of multiple control steps ahead, indicated by reference numerals 562 to 564 (dashed arrows).
[0067] As a result, unintended movement of the moving body 1 may occur, potentially causing the moving body 1 to collide with the wall surface of the passageway or other obstacles B.
[0068] Therefore, in this embodiment, the generation interval setting unit 102 detects a state in which the generation of the movement path r is not completed within a predetermined control cycle 510. If the generation of the movement path r is not completed within the predetermined control cycle 510, the generation interval setting unit 102 changes the generation interval 400 as shown in Figure 6D to maintain an output that matches the predetermined control cycle 510.
[0069] For example, if the movement path generation process takes too long, as shown in the example in Figure 6D, and cannot be completed in time for the next drive device control process, the generation interval setting unit 102 changes the generation interval 400 of the movement path generation process. Specifically, the generation interval setting unit 102 sets the generation interval 400 of the movement path generation process to be longer than the generation interval 400 before the change (see Figure 6A) (dashed arrow).
[0070] In the example shown in Figure 6D, the generation interval setting unit 102 doubles the generation interval 400 so that the movement path r calculated in one step is used for two control steps of drive device control processing.
[0071] By lengthening the generation interval 400 in this way, the generation of the movement path r that was in the control cycle 510 can be continued. This prevents unintended stopping of the moving body 1 and collisions with other obstacles B. Also, in Figures 6C and 6D, the cycle of the environmental information acquisition process has been changed. That is, the acquisition cycle of the environmental information 12A has been changed.
[0072] For example, consider a situation where the moving object 1 turns a curve. In such a situation, when the event shown in Figure 6B occurs, the movement path r generated by reference numeral 551 is expected to be used in the drive device control process indicated by reference numeral 561. The drive device control process indicated by reference numeral 562 requires the moving object 1 to be controlled at a different angle than the drive device control process indicated by reference numeral 561.
[0073] However, as described above, if the movement path r is not generated in time during the movement path generation process indicated by reference numeral 552, the movement path r generated by reference numeral 551 is used in the drive device control process indicated by reference numeral 562. As a result, in the drive device control process indicated by reference numeral 562, the moving body 1 is controlled at the same angle as in the drive device control process indicated by reference numeral 561. As a result, the moving body 1 will collide with a wall or the like.
[0074] In the process shown in Figure 6D, the movement path r is generated in advance by the movement path generation process (reference numeral 556) so that the drive device control process (reference numerals 563 and 564) can negotiate the curve. For example, in the example shown in Figure 6A, the movement path r is generated so that the curve can be negotiated in two control steps in the process shown in Figure 6A, while in the example shown in Figure 6D, the movement path r is generated so that the curve can be negotiated in one control step. As a result, unintended stopping of the moving body 1 and collisions with other obstacles B can be prevented.
[0075] Furthermore, by performing the process shown in Figure 6D, it is possible to prevent the situation shown in Figure 6C from occurring.
[0076] In the example shown in Figure 6D, the generation interval 400 is the length of two control cycles 510, but this is not limited to this. The generation interval 400 may be set to the length of three control cycles 510, or to the length of two control cycles 510 for four cycles.
[0077] Next, the method for setting the generation interval 400 will be explained with reference to Figures 7 and 8.
[0078] For example, the time required to generate the travel path r (see Figure 11A, etc.) (travel path generation time 520 (see Figure 6A)) is measured each time and stored in RAM 112 (see Figure 3), etc. If the travel path generation time 520 exceeds a preset threshold "Tth" related to travel time, the generation interval setting unit 102 lengthens the generation interval 400.
[0079] Figure 7 shows an example of the time evolution with a generation interval of 400.
[0080] In Figure 7, the vertical axis represents the length of the movement path generation time 520, and the horizontal axis represents the generation steps.
[0081] When the first information for a single movement path r is used as a control input for the drive unit, the generation interval setting unit 102 preferably sets the threshold "Tth" to be smaller than the control cycle 510 "T" of the drive unit 13. This is because if the movement path generation time 520 exceeds the control cycle 510 "T", it will be too late to lengthen the generation interval 400. Also, considering the stability of the system of the moving body 1, if the previous movement path generation time 520 has exceeded the threshold "Tth" for multiple consecutive periods, the generation interval setting unit 102 may change the generation interval 400. Note that "previously" refers to the process performed immediately before the process currently being processed (for example, the movement path generation process). In this way, the generation interval setting unit 102 sets the generation interval 400 based on the movement path generation time 520, which is the time required when the movement path r is generated in a movement path generation process at a time prior to the present (step S104 in Figure 17), and the control cycle 510 of the moving body 1.
[0082] As shown in the example in Figure 7, when the travel path generation time 520 fluctuates, the generation interval setting unit 102 lengthens the generation interval 400 in the generation step "s6" and subsequent generation steps where the travel path generation time 520 exceeds the threshold "Tth" three times. Furthermore, in the generation step "s10" and subsequent generation steps where the travel path generation time 520 falls below "Tth" three times, the generation interval setting unit 102 returns the generation interval 400 to its original length (initial value). Note that the threshold for lengthening the generation interval 400 and the threshold "Tth" for returning it to its original value do not have to be the same. Also, multiple criteria may be set for the degree to which the generation interval 400 is lengthened and for the threshold "Tth". In the example shown in Figure 7, the number of times the threshold "Tth" is exceeded when changing the generation interval 400 is the same as the number of times it falls below the threshold "Tth", but these numbers may be different.
[0083] In this way, the generation interval setting unit 102 compares the movement path generation time 520, which is the time it takes for the movement path generation unit 104 to generate the movement path r, with the control period 510 of the moving body 1. If the generation interval setting unit 102 determines that the generation of the movement path r cannot keep up with the control period 510, it sets the generation interval 400 to be longer than the current generation interval 400. Specifically, if the movement path generation time 520 in the previous generation step exceeds a predetermined threshold "Tth", the generation interval setting unit 102 changes the generation interval 400 to be longer than the current generation interval 400. This allows for quantitative changes to the generation interval 400.
[0084] The threshold "Tth" for setting the generation interval 400 is set, for example, as follows: During the design phase of the control device 100, the mobile body 1 travels along a test course, and the time required for the movement path generation process is measured. Then, the movement path generation time 520 and the distribution of frequency are calculated as shown in Figure 8, and the standard deviation σ of the distribution is determined. As shown in the example in Figure 8, if the average value of the movement path generation time 520 is "TP", then the threshold "Tth" is set, for example, using the value of "3σ" as "Tth = Tp + 3σ".
[0085] <Setting the generation interval of 400 based on computational load> Figure 9 shows an example of a threshold setting method for setting the generation interval based on computational load. Figure 10 also shows an example of a method for setting the generation interval based on computational load. Refer to Figures 1, 6A, and 11A as appropriate.
[0086] The threshold "Tth" used to set the generation interval 400 is not limited to the movement path generation time 520 (see Figure 6A). For example, the processing load of the CPU 113 required by the control device 100 when acquiring the movement path r or environmental information 12A, i.e., the computational load, may be used. In that case, the mobile body 1 is driven on a test course or the like in advance, and the computational load by the control device 100 is measured. Then, the CPU 113 usage rate (computational load) during movement path generation and the distribution of the frequency of the computational load are calculated as shown in Figure 9. Then, the threshold is determined based on this distribution. As shown in Figure 9, if the mean value of the distribution is "Tp", then for example, the threshold "Tth" based on the computational load is set as "Tth = Tp + 3σ". Hereinafter, "σ" is the standard deviation of the computational load.
[0087] During the operation of the mobile unit 1, the generation interval setting unit 102 increases the generation interval 400 when the computational load temporarily exceeds the threshold "Tth" based on the computational load, as shown in Figure 10. In the example shown in Figure 10, in generation step "s6" where the computational load exceeds the threshold "Tth" three times, the generation interval setting unit 102 lengthens the generation interval 400. Also, in generation step "s10" where the computational load falls below the threshold "Tth" three times, the generation interval setting unit 102 returns the generation interval 400 to its original value.
[0088] In the example shown in Figure 10, the threshold "Tth" is set below the computational load "100%", but for example, the threshold "Tth" may be set below the computational load "80%".
[0089] In this way, the generation interval setting unit 102 changes the generation interval 400 to a longer duration than the current generation interval 400 if the computational load required to generate the movement path r in the immediately preceding generation step exceeds a predetermined threshold "Tth". In this way, the generation interval 400 can be changed quantitatively.
[0090] Furthermore, if the previous movement path generation time 520 significantly exceeds the threshold "Tth" due to an error in the movement path generation process, the generation interval setting unit 102 may determine that it is difficult to continue movement by adjusting the generation interval 400. In this case, the control unit 105 may proceed to safety processing to stop the moving body 1 in a safe state. "Significantly exceeding the threshold "Tth"" means that when the threshold "Tth" is set based on the movement path generation time 520 as shown in Figure 7, for example, it is "2 × Tth". Also, when the threshold "Tth" is set based on the computation load as shown in Figure 10, for example, it means that the computation load reaches "100%".
[0091] Figures 11A and 11B are diagrams illustrating the modification of the generation interval 400 in the first embodiment. Figure 11A shows the operation of the mobile body 1 when the modification of the generation interval 400 is not applied, and Figure 11B shows the operation of the mobile body 1 when the modification of the generation interval 400 is applied. In Figures 11A and 11B, the size of the occupied area 300 is assumed to remain unchanged.
[0092] In Figures 11A and 11B, reference numerals 671 and 672 indicate the timing at which the movement path r is generated.
[0093] As shown in Figure 11A, when the generation interval 400 is not changed, the moving body 1 makes more frequent changes in direction than when the generation interval 400 is changed, as shown in Figure 11B. In contrast, as shown in Figure 11B, when the generation interval 400 is changed to a longer value, the number of times the moving body 1 changes direction decreases.
[0094] Furthermore, if the generation interval 400 is lengthened or returned to its original value using the method shown in Figure 7, the movement of the mobile body 1 will transition between the states shown in Figure 11A and Figure 11B.
[0095] In this embodiment, the length of the generation interval 400 is changed from one control cycle 510 → two control cycles 510 → one control cycle 510, but it is not limited to this. For example, the length of the generation interval 400 may be changed from one control cycle 510 → two control cycles 510 → three control cycles 510 → four control cycles 510 → three control cycles 510, etc.
[0096] <Occupied Area Setting Unit 103> Next, the processes performed by the occupied area setting unit 103 will be explained in detail with reference to Figures 12A to 14B.
[0097] The occupied area setting unit 103 shown in Figure 1 changes the size of the occupied area 300 used by the moving body 1 when it performs collision avoidance with surrounding obstacles B, in accordance with the generation interval 400 set by the generation interval setting unit 102.
[0098] Figures 12A to 12C show examples of changes to the occupied area 300. Figure 14A shows an example of the operation of the mobile body 1 before the occupied area 300 is changed. Figure 14B shows an example of the operation of the mobile body 1 after the occupied area 300 is changed.
[0099] In Figure 12A, reference numerals 601 to 610 indicate the timing (generation step) at which the movement path r generation process is performed, and each indicates the time "t = t1 to t10" at which the movement path r generation process is performed. Similarly, in Figures 12B and 12C, reference numerals 621 to 626 indicate the timing at which the movement path generation process is performed, and each indicates the time "t = t1 to t6" at which the movement path generation process is performed.
[0100] The examples shown in Figures 12A to 12C are examples of movement paths r when a movement path r is generated in discrete time, and the occupied area 300 of the moving object 1 is represented by a circle. In Figure 12A, in each generation step where the generation interval 400 is "Δt", a movement path r is generated in which the occupied area 300 of the moving object 1 and the obstacle B do not overlap. In the examples shown in Figures 12A to 12C, since the obstacle B is fixed, the occupied area 300 of the obstacle B matches the shape of the obstacle B. If the obstacle B is another vehicle's moving object 1, a movement path r is generated in which the occupied area 300 of the own vehicle and the occupied area 300 of the other vehicle (obstacle B) do not overlap.
[0101] Figure 12B shows an example of a movement path r when the generation interval 400 is changed from "Δt" (generation interval 400a in Figure 12A) to "Δta (Δt < Δta)" (generation interval 400b in Figure 12B). In Figure 12B, the white circles indicate generation steps that are excluded from the generation of movement path r due to the change in the generation interval 400. In other words, in Figure 12B, the generation of movement path r is performed only at the generation steps indicated by the black circles (reference numerals 621 to 626).
[0102] As shown in Figure 12B, in each generation step indicated by the black circles (symbols 621-626), the occupied area 300 of the moving body 1 does not collide with the obstacle B. However, because the generation interval 400 is long, it becomes impossible to eliminate the possibility of collision with obstacle B between the calculated generation steps (symbol C).
[0103] Therefore, in this embodiment, as shown in Figure 12C, the occupied area 300 of the moving body 1 is expanded to match the longer generation interval 400b "Δta". As a result, as shown in Figure 12C, it is possible to generate a movement path r that does not collide between the moving body 1 and the obstacle B between discrete points (reference numerals 621 to 626).
[0104] <Specific Examples of Expanding the Occupied Area 300> Figures 13A to 13C show specific examples of expanding the occupied area 300. In Figures 13A to 13C, similar components are denoted by the same reference numerals, and their explanations may be omitted.
[0105] The method for changing the size of the occupied area 300 is, for example, by using the ratio of the size of the generation interval 400 before and after expansion, as shown in equation (1).
[0106] ra=(Δta / Δt)・r... (1)
[0107] In equation (1), "Δt" is the generation interval 400 before the change (see Figure 6A), and "Δta" is the generation interval 400 after the change (see Figure 6D). Also in equation (1), "r" represents the radius 203a of the circle 204 of the occupied area 300a before the change (see Figure 5A, etc.) as shown in Figure 13A. Also, "ra" represents the radius 203b of the circle 204 of the occupied area 300b after the change as shown in Figure 13A. According to equation (1), when the occupied area setting unit 103 changes the size of the occupied area 300, it sets the size of the occupied area 300 to a size proportional to the length of the generation interval 400. In this way, the size of the occupied area 300 can be set in synchronization with the size of the generation interval 400, so that the event shown in Figure 12B can be prevented.
[0108] Note that the method for setting the occupied area 300 is not limited to equation (1). For example, as shown in Figure 13B, the radius 203b "ra" of the modified occupied area 300b may be set using the formula "ra = v × Δta". Here, "v" is the speed of the moving body 1 (reference numeral 801) in the previous generation step. Also, "Δta" is the generation interval 400 after the change. In this way, when the occupied area setting unit 103 changes the size of the occupied area 300, it sets the size of the occupied area 300 based on a length obtained by multiplying the speed of the moving body 1 (reference numeral 801) by the length of the generation interval 400. By doing so, the size of the occupied area 300 for a moving body 1 that is moving quickly can be increased, and the possibility of the moving body 1 colliding with the obstacle B can be reduced.
[0109] Alternatively, as shown in Figure 13C, the radius 203b "ra" of the modified occupied area 300b may be set using the formula "ra = vmax × Δta". Here, "vmax" is the maximum speed (reference numeral 802) that the moving body 1 can achieve. Also, "Δta" is the modified generation interval 400. In this way, when the occupied area setting unit 103 changes the size of the occupied area 300, it sets the size of the occupied area 300 based on a length obtained by multiplying the maximum speed (reference numeral 802) that the moving body 1 can output by the length of the generation interval 400. This further reduces the possibility of the moving body 1 colliding with obstacle B compared to the method shown in Figure 13B.
[0110] Furthermore, the methods shown in Figures 13A to 13C may be combined.
[0111] As described above, the occupied area setting unit 103 changes the size of the occupied area 300 according to the length of the generation interval 400 set by the generation interval setting unit 102. Then, the control unit 105 controls the mobile body 1 according to the generation interval 400 and the occupied area 300.
[0112] However, care must be taken during the design process to ensure that if the occupied area 300 becomes too large, it will no longer be able to pass through narrow passages or gaps in obstacles B that the mobile body 1 could originally pass through. Also, the occupied area 300 is not limited to a circle 204; it may be a rectangle or an ellipse. In this case, the occupied area 300 may be expanded only in the direction of travel of the mobile body 1.
[0113] <Operation of the mobile body 1 due to changes in the occupied area 300> Figure 14A shows an example of the operation of the mobile body 1 before the changes in the occupied area 300, and Figure 14B shows an example of the operation of the mobile body 1 after the changes in the occupied area 300.
[0114] If the size of the occupied area 300 is changed, the movement path r of the mobile body 1 changes. Figures 14A and 14B show examples of movement paths r in which mobile body 1a moves toward target point Xr while passing another mobile body 1b. In the examples shown in Figures 14A and 14B, mobile body 1b, which is different from mobile body 1a, is moving toward target point Xra.
[0115] Incidentally, in Figure 14A, reference numerals 631a to 639a indicate the timing (generation step) when the movement path generation process is performed on the moving body 1a. Similarly, in Figure 12A, reference numerals 631b to 639b indicate the timing (generation step) when the movement path generation process is performed on the moving body 1b. Reference numerals 631a to 639a and 631b to 639b each indicate the time "t = t1 to t9" when the movement path generation process is performed.
[0116] Incidentally, in Figure 14B, reference numerals 641a to 650a indicate the timing (generation step) when the movement path generation process is performed on the moving body 1a. Similarly, in Figure 12A, reference numerals 641b to 650b indicate the timing (generation step) when the movement path generation process is performed on the moving body 1b. Reference numerals 641a to 650a and 641b to 650b each indicate the time "t = t1 to t10" when the movement path generation process is performed.
[0117] Incidentally, in Figures 14A and 14B, it appears that the occupied area 300 of mobile body 1a and the occupied area 300 of mobile body 1b partially overlap, but it is sufficient if the occupied areas 300 do not overlap when mobile body 1a and mobile body 1b pass each other.
[0118] If the length of the generation interval 400 and the size of the occupied area 300 are not changed, the moving bodies 1 can proceed to each other's target points Xr and Xra while slightly changing their paths, as shown in Figure 14A. Then, for each of the moving bodies 1a and 1b, the length of the generation interval 400 and the size of the occupied area 300 are changed. The size of the occupied area 300 is changed when the generation of the movement path r cannot be completed within a predetermined control period 510 (see Figures 6A and 6D). As a result, as shown in Figure 14B, the occupied area 300 is changed to be larger. Therefore, in order for moving body 1a to reach target point Xr while avoiding obstacle B (moving body 1b in the example shown in Figures 14A and 14B), it will move in a much larger detour compared to Figure 14A. The same applies to moving body 1b. In this way, the generation interval 400 and the size of the occupied area 300 are changed. This reduces the possibility of the mobile body 1 coming into contact with obstacle B, even if the generation of the mobile body 1's movement path r does not keep up with the predetermined control cycle 510. As a result, the mobile body 1 can continue to travel without unexpectedly stopping.
[0119] In Figures 14A and 14B, the occupied areas 300 of mobile bodies 1a and 1b are the same size, but it is also possible for the occupied area 300 of one mobile body 1 to be larger and the occupied area 300 of the other mobile body 1 to be smaller.
[0120] Furthermore, although Figures 7 and 10 indicate that the generation interval 400 returns to its original value, when the generation interval 400 returns to its original value, the occupied area setting unit 103 also returns the size of the occupied area 300 to its original size (initial value).
[0121] <Movement Path Generation Unit 104> Next, the processing of the movement path generation unit 104 will be explained in detail with reference to Figures 15 to 16, with appropriate reference to Figures 1 and 2. The processing performed by the movement path generation unit 104 is the same as general movement path generation processing, except that it uses the modified generation interval 400 and occupied area 300.
[0122] The movement path generation unit 104 shown in Figure 1 generates the movement path r of the moving body 1 (see Figure 11A, etc.). The generation of the movement path r uses information on obstacles B (see Figure 2) acquired by the environmental information acquisition unit 101 and a generation interval 400 set by the generation interval setting unit 102. Furthermore, the generation of the movement path r uses information on the occupied area 300 set by the occupied area setting unit 103 and the position, speed, and attitude information of the vehicle acquired by the state recognition device 11.
[0123] Various methods have been proposed for generating movement paths r, but in this embodiment, a movement path generation method using Model Predictive Control (MPC) is used. Model Predictive Control is a method for calculating the drive device control input after defining the dynamic characteristics (equations of motion), evaluation function, and constraint conditions of the moving body 1. In this case, the drive device control input is calculated to minimize the evaluation function while satisfying the constraint conditions within the predicted horizon "N". The drive device control input consists of the velocity of the moving body 1 and the angular velocity when the moving body 1 turns. The predicted horizon indicates how far into the future the movement path r will be generated in a single generation of movement path r. If the predicted horizon is "N", the movement path generation unit 104 generates movement paths r up to N control steps ahead. The information of the movement path r is composed of the time-series information of the drive device control input.
[0124] The generation interval setting unit 102 changes the generation interval 400 and also changes the prediction horizon.
[0125] The movement path generation unit 104 solves an optimization problem in each generation step, taking the state of the moving body 1 as the initial value and considering collisions with surrounding obstacles B. Therefore, if there are many surrounding obstacles B, the movement path generation time 520 (see Figures 6A and 6D) will increase accordingly. Furthermore, depending on the optimization method and surrounding environmental conditions, the calculations for the movement path generation process may not be completed within the control cycle 510 (see Figures 6A and 6D).
[0126] The equation of motion for the mobile body 1 (own vehicle) used in the movement path generation process is given by equation (2) below. In equation (2), "x" and "y" are the x and y coordinate values of the own vehicle, and "θ" is the orientation (direction: attitude) of the own vehicle. Also in equation (2), "v" is the vehicle's speed and "ω" is the vehicle's angular velocity. In the actual control design of the mobile body 1, equation (3) is used, which is obtained by discretizing equation (2) by the sampling period (generation interval 400) "Δt" (or the modified generation interval 400 "Δta"). In equation (3), "k" means the processing step (time).
[0127]
[0128]
[0129] The movement path generation unit 104 then calculates the evaluation function "J" shown in equation (4) below. In this process, the movement path generation unit 104 uses the deviation "ek" between the vehicle's position and attitude vector "Xk" and the target position and attitude vector "rk" in equation (3), and the drive unit control input "uk". Here, "Q" and "R" in equation (4) are weight parameters. "N" is the predicted horizon. Generally, in model predictive control, the longer the predicted horizon "N", the more appropriate the drive unit control input calculated.
[0130]
[0131] Model predictive control has the advantage of easily handling constraints. For example, in the case of the moving body 1 shown in Figure 4, the upper and lower limits of the vehicle's moving speed "v" and angular velocity "ω" depend on the rotational speeds "ωR" and "ωL" of the left and right wheels of the drive motor. By incorporating such operating characteristics of the drive device 13 as constraints, it becomes possible to generate a movement path r that the moving body 1 can actually follow.
[0132] Furthermore, the angular velocity "ωk" and movement speed "vk" of the vehicle in the k-th control step are set according to the conditions shown in equation (5) below.
[0133]
[0134] In equation (5), "ωmin", "ωmax", "vmin", and "vmax" are the predetermined minimum and maximum values of "ωk" and "vk".
[0135] If there are obstacles B such as other moving objects 1, workers P, or manned vehicles 2 around the moving object 1, the constraint conditions for avoiding contact with obstacles B are set based on the following equation (6).
[0136]
[0137] Figure 15 shows the relative positions of the vehicle and obstacle B (worker P in the example shown in Figure 15) at a certain time.
[0138] Assume that the center position 201 of the vehicle (moving object 1) is "(x, y)" and the radius 203 of the circle 204 surrounding the vehicle (the area inside which is the occupied region 300) is "r". Also, assume that the coordinates of the center position 201 of obstacle B are "(xj, yj)" and the radius 203 of the circle 204 surrounding obstacle B (occupied region 300) is "rj". In such a case, if the distance D1 between the vehicle and obstacle B is "dj", then the fact that this distance D1 satisfies the inequality shown in equation (6) below is equivalent to the vehicle and obstacle B not making contact.
[0139] By incorporating the conditions shown in equation (6) into the constraints of the model predictive control, it is possible to avoid contact between the moving body 1 (the vehicle) and obstacle B. Although Figure 15 only shows the constraints for avoiding obstacle contact between two objects (moving body 1 and obstacle B (worker P)), the same constraints can be applied even if the number of obstacles B increases to three or more.
[0140] Furthermore, if there is a cargo rack 3 around the moving body 1, a constraint condition to avoid contact with the cargo rack 3 is added by the following equation (7).
[0141]
[0142] Figure 16 shows the positional relationship between the mobile body 1 and the cargo rack 3 at a certain time. The coordinates of the center position 201 of the mobile body 1 are assumed to be "(x, y)", and the radius 203 of the circle 204 surrounding the mobile body 1 (the area inside which is the occupied region 300) is assumed to be "ro". The coordinates of the center position 235 of the cargo rack 3 are given by "((xi, min + xi, max) / 2, (yi, min + yi, max) / 2)", the width 241 of the cargo rack 3 is assumed to be "Lh", and the depth 242 is assumed to be "Lv". Note that "xi, min" and "yi, min" are the coordinate values of symbol 231, and "xi, max" and "yi, max" are the coordinate values of symbol 234. Angle 202 is the angle indicating the orientation of the mobile body 1.
[0143] Furthermore, let's assume that the distance 243 in the X-axis direction between the moving body 1 and the cargo rack 3 is "dxi", and the distance 244 in the Y-axis direction is "dyi". In this case, the fact that "dxi" and "dyi" shown in equation (7) satisfy the inequality in equation (6) is equivalent to the moving body 1 and the cargo rack 3 not being in contact. Incidentally, as mentioned above, for stationary objects like the cargo rack 3, the shape of the object and the shape of the occupied area 300 coincide.
[0144] Using the above constraints, the movement path generation unit 104 finds the drive device control input "u*" that minimizes the evaluation function "J" shown in equation (4). This allows the movement path r within N generation steps to be calculated. Here, "N" is the predicted horizon. In model predictive control, only the initial information or multiple pieces of information from the beginning are treated as drive device control inputs from the drive device control inputs "u*" obtained in this way for the N generation steps. The movement path generation unit 104 then repeatedly performs optimization calculations until the moving object 1 reaches the target point Xr.
[0145] The evaluation conditions and constraints used in the movement path generation process can be summarized as shown in equation (8) below.
[0146]
[0147] <Control Unit 105> Next, the processing of the control unit 105 will be explained.
[0148] The control unit 105 shown in Figure 1 controls the drive unit 13 of the mobile body 1 so that the mobile body 1 follows the movement path r (velocity, angular velocity) calculated by the movement path generation unit 104. In this embodiment, the movement path generation unit 104 calculates the motor speeds "ωR" and "ωL" of the left and right wheels 122 (see Figure 4) of the mobile body 1 so that the velocity and angular velocity are determined as the movement path r. As described above, the movement path generation unit 104 generates movement paths r for the generation steps of the predicted horizon "N" floors, but the control unit 105 uses the first information (velocity, angular velocity) to control the drive unit 13.
[0149] <Flowchart> Figure 17 is a flowchart showing the procedure of the control method according to this embodiment. Refer to Figures 1, 11A, 6A, and 6D as appropriate.
[0150] First, the environmental information acquisition unit 101 acquires environmental information 12A from the communication device 15, the environmental information acquisition device 12, and the state recognition device 11 (S101). The process of step S101 is as described with reference to Figures 5A to 5D. Step S101 is the "environmental information acquisition step".
[0151] Next, the generation interval setting unit 102 sets the generation interval 400 in the movement path generation unit 104 (S102). The process of step S102 is as described with reference to Figures 6A to 11B. Step S102 is the "generation interval setting step".
[0152] Next, the occupied area setting unit 103 sets the occupied area 300 according to the generation interval 400 (S103). The process of step S103 is as described with reference to Figures 12A to 14B. Step S103 is the "occupied area setting step".
[0153] Then, the movement path generation unit 104 generates a movement path r for the moving body 1 (S104). The process of step S104 is as described with reference to Figures 15 and 16. Step S104 is the "movement path generation step".
[0154] Subsequently, the control unit 105 controls the drive unit 13 so that the moving body 1 follows the calculated movement path r (S105). The process in step S105 is as described above. Step S105 is the "drive unit control step".
[0155] From this point onward, steps S101 to S105 are repeated until the mobile body 1 reaches the target location Xr (see Figures 14A and 14B).
[0156] <Effects> In the first embodiment, if the movement path generation process of the mobile body 1 does not keep up with the predetermined control cycle 510, the generation interval setting unit 102 changes the length of the generation interval 400. In this way, even if the movement path generation process does not keep up with the predetermined control cycle 510, the mobile body 1 can continue to travel without unexpectedly stopping.
[0157] In a complex environment where workers P and manned vehicles 2 are present, it may be difficult to complete the calculation time required for generating the movement path of the mobile body 1 within a predetermined control cycle 510. Even in such cases, according to the first embodiment, unintended stopping of the mobile body 1 and collisions with other objects can be avoided. This makes it possible to improve the operability of the mobile body 1.
[0158] Furthermore, in the first embodiment, when the length of the generation interval 400 is changed, the size of the occupied area 300 is also changed. By lengthening the generation interval 400 in this way, it is possible to prevent the vehicle from coming into contact with obstacle B. This improves the operability of the mobile body 1.
[0159] Incidentally, in the work area W, there are cases where the probability of a moving object 1 coming into contact with an obstacle B is low, even if the generation interval 400 is extended, such as when there are few moving objects 1 or few obstacles B. In such cases, from the perspective of resource cost-effectiveness, it may not be necessary to change the occupied area 300. In such cases, the occupied area setting unit 103 may be omitted.
[0160] [Second Embodiment] Next, a second embodiment of the present invention will be described with reference to Figures 18A and 18B.
[0161] <Processing of the generation interval setting unit 102 in the second embodiment> The second embodiment is an example that uses a threshold setting method for the generation interval setting unit 102 that is different from that of the first embodiment.
[0162] Figures 18A and 18B show examples of processing by the generation interval setting unit 102 in the second embodiment.
[0163] In the second embodiment, the generation interval setting unit 102 sets the generation interval 400 using the result of the movement path generation of the moving body 1, in addition to the immediately preceding movement path generation time 520 (see Figure 6A). For example, as shown in Figure 18A, suppose the moving body 1 can reach the target point Xr by a straight line. In this case, as long as surrounding obstacles B do not obstruct the movement path r of the moving body 1, it is not a problem if the frequency of movement path generation processing is low until the target point Xr is reached. In this case, the generation interval setting unit 102 can lengthen the generation interval 400 "Δt", as shown in Figure 18B. Also, as shown in Figure 18B, the occupied area 300 is changed by the processing of the occupied area setting unit 103 in accordance with the generation interval 400.
[0164] In the example shown in Figure 18A, the movement path generation process is performed at each of the timings indicated by reference numeral 661a, and the generation interval 400c is set to "Δt". When the generation interval setting unit 102 determines that there is no problem even if the frequency of movement path generation processing is low, the movement path generation process is performed at each of the timings indicated by reference numeral 661b, as in the example shown in Figure 18B. As a result, the generation interval 400c in Figure 18A is changed to the generation interval 400d in Figure 18B, which has a size of "Δtb". Also, the occupied area 300c shown in Figure 18A is expanded to the occupied area 300d shown in Figure 18B.
[0165] In the second embodiment, the determination of changing the generation interval is, for example, first, by the generation interval setting unit 102 obtaining the movement path r "u*" generated in the previous generation step, which is calculated from the movement path generation unit 104. The movement path r "u*" is the "u" that minimizes "J" in equation (4).
[0166] The generation interval setting unit 102 then determines whether all velocity changes within the predicted horizon "N" are minute and the angular velocity input is small. If all velocity changes within the predicted horizon "N" are minute and the angular velocity input is small, the generation interval setting unit 102 determines that the moving body 1 moves along a straight trajectory. "Velocity changes are minute and the angular velocity input is small" means that the velocity changes are within a predetermined velocity threshold and the angular velocity input is within a predetermined angle threshold. The generation interval setting unit 102 then changes the generation interval 400 ("Δt") to "Δtb" (for example, "2Δt") which is longer than the current generation interval 400.
[0167] The generation interval setting unit 102 determines that the change in the movement path r for a predetermined period from the present is less than or equal to a predetermined amount, and changes the generation interval 400 to be longer than the current generation interval 400. In this embodiment, "a predetermined period from the present" refers to the entirety within the predicted horizon "N". However, it is not limited to this, and a predetermined "n (n < N)" may be defined, and it may refer to the movement path r (information) from the present to the generation step "n". Also, "a predetermined amount" refers to the velocity threshold or angle threshold mentioned above.
[0168] In the second embodiment, the other processes are the same as in the first embodiment.
[0169] <Effects of the Second Embodiment> In the second embodiment, if it is clear that the movement path r to reach the target point is linear, the generation interval setting unit 102 changes the generation interval 400 to a longer length. By doing so, the computational load on the movement path generation process can be reduced. As a result, the remaining resources can be used for other processes.
[0170] [Third Embodiment] Next, a third embodiment of the present invention will be described with reference to Figures 19 and 20. The third embodiment is another example of the threshold setting method for the generation interval setting unit 102, in which the number of obstacles B around the moving body 1 is used to change the generation interval 400.
[0171] <Functional Block of Mobile Body 1 in the Third Embodiment> Figure 19 is a functional block diagram of the mobile body 1 according to the third embodiment.
[0172] In Figure 19, components similar to those in Figure 1 are denoted by the same reference numerals and their descriptions are omitted.
[0173] The mobile body 1 shown in Figure 19 differs from the mobile body 1 shown in Figure 1 in that the generation interval setting unit 102 of the control device 100A uses environmental information 12A collected by the environmental information acquisition unit 101 (dashed arrow).
[0174] In the third embodiment, the generation interval setting unit 102 acquires obstacle information around the vehicle from the environmental information acquisition unit 101. The generation interval setting unit 102 then calculates the generation interval 400 using the acquired obstacle information. The obstacle information around the vehicle includes the number of obstacles B (see Figure 2) around the vehicle. Obstacles B around the vehicle refer to, for example, the number of obstacles B that exist within a predetermined radius from the vehicle.
[0175] <Processing of the generation interval setting unit 102 in the third embodiment> Figure 20 shows an example of a threshold setting method performed by the generation interval setting unit 102 in the third embodiment.
[0176] In the third embodiment, the generation interval setting unit 102 of the control device 100A uses the number of obstacles B around the vehicle instead of the previous travel path generation time 520 when setting the generation interval 400. For example, in the case of travel path generation processing using model predictive control, the larger the number of obstacles B in equations (6) and (7) described above, the longer the travel path generation processing takes. Therefore, the relationship between the number of obstacles B around the vehicle and the travel path generation time 520 is investigated in advance by driving the mobile body 1 on a test course or the like, as shown in Figure 20. Then, the generation interval setting unit 102 sets the generation interval 400 based on the relationship between the number of obstacles B and the travel path generation time 520.
[0177] As shown in Figure 20, a threshold "Tth" is pre-set in accordance with the number of obstacles B. In the example shown in Figure 20, the threshold "Tth" is set when the number of obstacles B exceeds "6". Then, the generation interval setting unit 102 changes (lengthens) the generation interval 400 when the number of surrounding obstacles B exceeds the number of obstacles B corresponding to the threshold "Tth" (in the example shown in Figure 20, this is "7").
[0178] The number of obstacles B around the mobile body 1 can be set, for example, based on obstacle information acquired by the environmental information acquisition unit 101, as follows. That is, the generation interval setting unit 102 sets the number of obstacles B around the mobile body 1 by taking into account the maximum speed "vmax" of the mobile body 1, the relative maximum speed of other mobile bodies 1, and the control period 510 ("ΔT") of the drive device 13. Specifically, the generation interval setting unit 102 sets the number of obstacles B that exist inside a circle 204 (see Figure 5A) with a radius 203 (see Figure 5A) having a size "R" as the number of obstacles B around the mobile body 1. "R" is calculated by the following formula (11). "R" is the distance from the center position 201 (see Figure 5A) of the mobile body 1.
[0179] R=2vmax×ΔT... (11)
[0180] In equation (11), it is assumed that the maximum speed of the moving object 1 other than the vehicle is vmax, but "R" may be set by an equation other than equation (11). For example, the generation interval setting unit 102 may calculate the aforementioned "R" by the following equation (12).
[0181] R=(vmax+vmax_ave)×ΔT... (12)
[0182] Equation (12) assumes that each mobile body 1 has a different maximum speed. In equation (12), "vmax" is the maximum speed of the own vehicle, and "vmax_ave" is the average value of the maximum speeds of the other mobile bodies 1.
[0183] As described above, in the third embodiment, the generation interval setting unit 102 obtains the number of obstacles B around the mobile body 1 from the environmental information acquisition unit 101. Then, if the number of obstacles B around the mobile body 1 exceeds a predetermined threshold "Tth", the generation interval setting unit 102 changes the generation interval 400 to be longer than the current generation interval 400.
[0184] In the third embodiment, the other processes are the same as in the first embodiment.
[0185] <Effects of the Third Embodiment> In the third embodiment, the number of obstacles B around the mobile body 1 is used to set the threshold "Tth". This allows the control device 100A to understand the conditions under which the calculation time in the mobile body 1's movement path generation time 520 becomes longer, without using the immediately preceding movement path generation time 520 (see Figure 6A). As a result, under conditions where it is expected that the movement path generation process of the mobile body 1 will not be completed in time for the control cycle 510, the generation interval setting unit 102 changes the size of the generation interval 400. This allows the mobile body 1 to continue moving without unexpectedly stopping.
[0186] Furthermore, according to the third embodiment, even if the travel path generation time 520 increases due to changes in the surrounding environment of the vehicle and an increase in obstacles B, it is possible to prevent the vehicle from stopping or performing unexpected actions.
[0187] Furthermore, as shown in the first embodiment, by changing the size of the occupied area 300, the generation interval 400 can be lengthened, thereby preventing the vehicle from coming into contact with the obstacle B.
[0188] In the third embodiment, the travel path generation time 520 of the travel path r is not used when determining the generation interval 400. However, the generation interval 400 may be determined using both the travel path generation time 520 of the travel path r and the number of obstacles B around the vehicle. In such a case, the generation interval setting unit 102 changes the generation interval 400 when the travel path generation time 520 of the travel path r exceeds a predetermined threshold a predetermined number of times, and the number of obstacles B around the vehicle exceeds a predetermined threshold a predetermined number of times.
[0189] <Control System Z> Next, the control system Z will be described with reference to Figures 21 and 22.
[0190] Figure 21 is a functional block diagram of the control system Z.
[0191] As shown in Figure 21, the control system Z includes a management device 9 and a mobile body 1Z. The management device 9 generates a movement path r (see Figure 11A, etc.) for the mobile body 1Z and manages the mobile body 1Z by transmitting the generated movement path r to the mobile body 1Z.
[0192] The management device 9 includes an environmental information acquisition unit 101 to a movement path generation unit 104 and a communication device 15a. The mobile body 1Z includes a state recognition device 11 to a drive device 13, a control unit 105 and a communication device 15b.
[0193] The processing performed by the environmental information acquisition unit 101 to the movement path generation unit 104 and the state recognition device 11 to the drive device 13 is the same as that shown in the first to third embodiments.
[0194] The management device 9 communicates with the mobile body 1Z via communication devices 15a and 15b. The mobile body 1Z then sends information collected by the state recognition device 11 and the environmental information acquisition device 12 to the management device 9. Based on the information sent from the mobile body 1Z, the management device 9 changes the generation interval 400, changes the occupied area 300, and generates the movement path r (see Figure 11A, etc.). The changes to the generation interval 400 and the occupied area 300 are carried out by the processes described in the first to third embodiments.
[0195] The control device 9 then transmits the movement path r generated by the movement path generation unit 104 to the mobile body 1Z. The control unit 105 of the mobile body 1Z controls the drive unit 13 based on the transmitted movement path r.
[0196] <Hardware Configuration Diagram> Figure 22 shows the hardware configuration of the management device 9.
[0197] The management device 9 consists of a storage device 911, RAM 912, and an arithmetic unit 913, all connected to each other by a bus 915. The storage device 911 is composed of an HDD, SSD, etc. The arithmetic unit 913 is composed of a CPU, GPU, etc.
[0198] Furthermore, the storage device 911, RAM 912, and arithmetic unit 913 are connected to the communication device 15 via I / O 914 and bus 915.
[0199] The program stored in the memory device 911 is loaded into the RAM 912. Then, the loaded program is executed by the arithmetic unit 913, which brings into reality the environmental information acquisition unit 101 to the movement path generation unit 104 shown in Figure 21.
[0200] According to the control system Z shown in Figure 21, it becomes possible to manage the generation interval 400, the occupied area 300, and the movement path r all at once.
[0201] The present invention is not limited to the embodiments described above, and includes various modifications. For example, the embodiments described above are described in detail to make the present invention easier to understand, and are not necessarily limited to those having all the configurations described. Furthermore, it is possible to replace parts of the configuration of one embodiment with the configuration of another embodiment, and it is also possible to add configurations from other embodiments to the configuration of one embodiment. In addition, it is possible to add, delete, or replace parts of the configuration of each embodiment with other configurations.
[0202] In this embodiment, autonomously moving transport vehicles are assumed as the mobile units 1 and 1Z, but the embodiment is not limited to these. Any vehicle that autonomously moves within a specific work area W is acceptable. For example, this embodiment can be applied to autonomously moving excavators, dump trucks, etc. Furthermore, although this embodiment is intended to be applied to a logistics system, it may also be applied to an inspection system. In this case, an inspection vehicle would be used as the mobile units 1 and 1Z in this embodiment.
[0203] Furthermore, although this embodiment assumes a work area W that is not fully autonomous, the mobile bodies 1 and control system Z described in this embodiment may also be used in a fully autonomous work area W. In this case, each mobile body 1 may be assigned a priority. If one mobile body 1 tries to avoid another mobile body 1 by a large margin, it may become unable to move. By assigning a priority to each mobile body 1, if two mobile bodies 1 come into contact, the mobile body 1 with the lower priority can be stopped. This makes it possible to determine the distance that each mobile body 1 can maintain, thereby avoiding a stalemate. Priority may be set in advance for each mobile body 1 based on its ID. Alternatively, priority may be dynamically assigned according to the distance to the target point Xr, the distance to a specific location in the work area W, the distance traveled, etc.
[0204] Furthermore, each of the above-mentioned configurations, functions, environmental information acquisition units 101 to 105, storage device 911, etc., may be implemented in hardware, either partially or entirely, by designing them as integrated circuits, for example. Also, as shown in Figures 3 and 22, each of the above-mentioned configurations, functions, etc., may be implemented in software by having a processor such as the arithmetic unit 913 or CPU 113 interpret and execute programs that realize each function. Information such as programs, tables, and files that realize each function can be stored not only on the HD (Hard Disk), but also in memory, recording devices such as SSDs (Solid State Drives), or recording media such as IC (Integrated Circuit) cards, SD (Secure Digital) cards, DVDs (Digital Versatile Discs).
[0205] Furthermore, in each embodiment, only those control lines and information lines deemed necessary for explanation are shown, and not all control lines and information lines are necessarily shown in the actual product. In practice, it can be assumed that almost all components are interconnected.
[0206] 1, 1a, 1b, 1Z Mobile body 9 Management device 12 Environmental information acquisition device 12A Environmental information 13 Drive device 100 Control device 101 Environmental information acquisition unit 102 Generation interval setting unit 103 Occupied area setting unit 104 Movement path generation unit 105 Control unit 300, 300a to 300d Occupied area 400, 400a to 400d Generation interval 510 Control cycle 520 Movement path generation time 801 Code (speed) 802 Code (maximum speed) B Obstacle r Movement path Z Control system S101 Environmental information acquisition (environmental information acquisition step) S102 Generation interval setting (generation interval setting step) S103 Occupied area setting (occupied area setting step) S104 Movement path generation (movement path generation step) S105 Drive unit control (drive unit control step)
Claims
1. A control device for controlling a moving body, comprising: an environmental information acquisition unit for acquiring environmental information about the surrounding environment of the moving body; a movement path generation unit for generating a movement path for the moving body; a control unit for controlling the drive device of the moving body based on the movement path generated by the movement path generation unit; a generation interval setting unit for setting a generation interval which is the time interval between processes in which the movement path generation unit generates the movement path; and an occupied area setting unit for setting an occupied area of the moving body, wherein the generation interval setting unit sets the generation interval based on a movement path generation time which is the time required for the movement path generation unit to generate the movement path and the control period of the moving body; and the movement path generation unit generates a movement path for the moving body based on the environmental information and the occupied area.
2. The control device according to claim 1, wherein the generation interval setting unit compares the movement path generation time, which is the calculation time required for the movement path generation unit to generate the movement path, with the control period of the moving body, and if it determines that the generation of the movement path cannot keep up with the control period, the control device sets the generation interval to be longer than the current generation interval.
3. The control device according to claim 2, wherein the generation interval setting unit changes the generation interval to a longer duration than the current generation interval if the movement path generation time exceeds a predetermined threshold in the immediately preceding generation step.
4. A control device according to claim 1, wherein the occupied area setting unit changes the size of the occupied area according to the length of the generation interval set by the generation interval setting unit, and the control unit controls the moving body according to the generation interval and the occupied area.
5. The control device according to claim 4, wherein the occupied area setting unit sets the size of the occupied area to a size proportional to the length of the generation interval when changing the size of the occupied area.
6. The control device according to claim 4, wherein the occupied area setting unit sets the size of the occupied area based on a length obtained by multiplying the speed of the moving body by the length of the generation interval when changing the size of the occupied area.
7. The control device according to claim 4, wherein the occupied area setting unit sets the size of the occupied area based on a length obtained by multiplying the maximum speed that the moving body can output by the length of the generation interval when changing the size of the occupied area.
8. The control device according to claim 1, wherein the generation interval setting unit changes the generation interval to a longer duration than the current generation interval if the computational load required for generating the movement path in the immediately preceding generation step exceeds a predetermined threshold.
9. The control device according to claim 2, wherein the generation interval setting unit determines that the change in the movement path from the present to a predetermined period is less than or equal to a predetermined amount, and changes the generation interval to be longer than the current generation interval.
10. A control device according to claim 2, wherein the generation interval setting unit obtains the number of obstacles around the moving body from the environmental information acquisition unit, and if the number of obstacles around the moving body exceeds a predetermined threshold, the control device changes the generation interval to be longer than the current generation interval.
11. A mobile body incorporating the control device described in claim 1.
12. A control system comprising: a mobile body and a management device that manages the mobile body by generating a movement path for the mobile body and transmitting the generated movement path to the mobile body, wherein the management device comprises: an environmental information acquisition unit that acquires environmental information about the surrounding environment of the mobile body; a movement path generation unit that generates a movement path for the mobile body; a generation interval setting unit that sets a generation interval which is the time interval between processes in which the movement path generation unit generates the movement path; and an occupied area setting unit that sets an occupied area for the mobile body, wherein the mobile body comprises a control unit that controls the drive device of the mobile body based on the movement path generated by the movement path generation unit; the generation interval setting unit sets the generation interval based on the movement path generation time which is the time required for the movement path generation unit to generate the movement path and the control period of the mobile body; and the movement path generation unit generates a movement path for the mobile body based on the environmental information and the occupied area.
13. A control method for controlling a moving body, comprising: an environmental information acquisition step for acquiring environmental information about the surroundings of the moving body; a generation interval setting step for setting a generation interval which is the time interval for the process of generating a movement path for the moving body; an occupied area setting step for setting an occupied area for the moving body; a movement path generation step for generating a movement path for the moving body; and a control step for controlling the drive device of the moving body based on the generated movement path in the movement path generation step, wherein in the generation interval setting step, the control device sets the generation interval based on the movement path generation time which is the time required when a movement path was generated in the movement path generation step at a time prior to the present, and the control period of the moving body; and in the movement path generation step, the control device generates a movement path for the moving body based on the environmental information and the occupied area.