Control device, mobile device, control system, and control method
Patent Information
- Application Number
- JP2025032279
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-02-28
- Publication Date
- 2026-09-09
AI Technical Summary
【0011】 本発明によれば、移動体の操作性を向上させることができる。
Smart Images

Figure 2026144780000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to the technology of a control device for controlling a moving body, a moving body, a control system, and a control method. [Background Art]
[0002] In the logistics industry where labor shortage is serious, autonomous mobile technology has attracted high 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 AGVs and AMRs. Furthermore, autonomous driving technology is also used for inter-process transport vehicles and the like. Note that 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 moving bodies 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 that is composed entirely of autonomously moving moving bodies. For this reason, it is necessary for autonomous moving bodies to determine a movement route and travel so as not to collide with pedestrians and other vehicles.
[0004] Generally, when a moving body autonomously travels in an environment where people and other vehicles coexist, the moving body calculates a destination and a movement route to the destination, and is controlled to follow the calculated movement route. At this time, based on the acquired positions and speeds of pedestrians, other vehicles and the like, a movement route is generated so as to satisfy the condition of not colliding with these objects.
[0005] Pedestrians and other vehicles can freely move in various directions. Therefore, it is difficult to predict their future positions. When generating a movement route for an autonomous moving body to travel to a destination, recalculation needs to be performed multiple times during the travel of the autonomous moving body in order to generate a movement 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. [Prior art documents] [Patent Documents]
[0007] [Patent Document 1] Japanese Patent Publication No. 2021-077090 [Overview of the project] [Problems that the invention aims to solve]
[0008] Patent Document 1 describes "acquiring 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 events 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. [Means for solving the problem]
[0010] To solve the aforementioned problems, the present invention provides 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; and a control unit for controlling the drive device of the moving 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 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 cycle 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. Other solutions will be described as appropriate in the embodiments. [Effects of the Invention]
[0011] According to the present invention, the operability of a mobile body can be improved. [Brief explanation of the drawing]
[0012] [Figure 1] This is a functional block diagram of the mobile body according to this embodiment. [Figure 2] This figure shows an example of a work area in this embodiment. [Figure 3] This is a diagram showing the hardware configuration of the mobile device. [Figure 4] This diagram shows the status information of a moving object. [Figure 5A] This figure shows an example of the data format for environmental information related to a mobile object in this embodiment. [Figure 5B] This is a diagram (part 1) showing an example of the data format for environmental information related to obstacles in this embodiment. [Figure 5C] It is a diagram (part 2) showing an example of the data format of environment information related to obstacles in the present embodiment. [Figure 5D] It is a diagram (part 3) showing an example of the data format of environment information related to obstacles in the present embodiment. [Figure 6A] It is a diagram (part 1) for explaining the relationship between movement route generation time and drive control. [Figure 6B] It is a diagram (part 2) for explaining the relationship between movement route generation time and drive control. [Figure 6C] It is a diagram (part 3) for explaining the relationship between movement route generation time and drive control. [Figure 6D] It is a diagram (part 4) for explaining the relationship between movement route generation time and drive control. [Figure 7] It is a diagram showing an example of a generation interval setting method. [Figure 8] It is a diagram showing an example of a threshold setting method related to generation interval setting. [Figure 9] It is a diagram showing an example of a threshold setting method related to generation interval setting based on calculation load. [Figure 10] It is a diagram showing an example of a generation interval setting method based on calculation load. [Figure 11A] It is a diagram (part 1) for explaining the change of generation interval in the first embodiment. [Figure 11B] It is a diagram (part 2) for explaining the change of generation interval in the first embodiment. [Figure 12A] It is a diagram (part 1) showing an example of change of an occupied area. [Figure 12B] It is a diagram (part 2) showing an example of change of an occupied area. [Figure 12C] It is a diagram (part 3) showing an example of change of an occupied area. [Figure 13A] It is a diagram (part 1) showing a specific example of expansion of an occupied area. [Figure 13B] It is a diagram (part 2) showing a specific example of expansion of an occupied area. [Figure 13C] It is a diagram (part 3) showing a specific example of expansion of an occupied area. [Figure 14A]This figure shows an example of the movement of a mobile object before the occupied area is changed. [Figure 14B] This figure shows an example of the movement of a mobile object after a change in its occupied area. [Figure 15] This diagram shows the relative positions of your vehicle and an obstacle at a given time. [Figure 16] This diagram shows the relative positions of a moving object and a cargo rack at a given time. [Figure 17] This flowchart shows the procedure for the control method according to this embodiment. [Figure 18A] This is a diagram (part 1) showing an example of the processing of the generation interval setting unit in the second embodiment. [Figure 18B] This is a diagram (part 2) showing an example of the processing of the generation interval setting unit in the second embodiment. [Figure 19] This is a functional block diagram of the mobile body according to the third embodiment. [Figure 20] This figure shows an example of a threshold setting method performed by the generation interval setting unit in the third embodiment. [Figure 21] This is a functional block diagram of the control system. [Figure 22] This diagram shows the hardware configuration of the management device. [Modes for carrying out the invention]
[0013] Next, embodiments for carrying out the present invention (referred to as "embodiments") will be described in detail with reference to the drawings as appropriate.
[0014] [First Embodiment] First, a first embodiment of the present invention will be described with reference to Figures 1 to 17.
[0015] <Functional block diagram of mobile unit 1> Figure 1 is a functional block diagram of the 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. 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 the processing 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 of the moving body 1. The occupied area 300 is the area 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 travel along this path. 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 inside 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 (Inertial 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 attitude 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 attitude of the vehicle on the map can then be calculated using SLAM technology, and the calculated position and attitude 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®, WiFi®, and cellular networks. 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, 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 (e.g., warehouse Wa or 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 (destination coordinates), attitude, and speed of the mobile body 1 as it moves. Thus, the movement path r includes, for example, the destination coordinates of the mobile body 1, the attitude of the mobile body 1 as it moves, and the speed at which the mobile body 1 moves.
[0030] <Work Area W> Figure 2 shows an example of a 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 in which 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 unit 1, the surrounding environment of the mobile unit 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 time required to generate the movement path r may become longer than expected. Incidentally, a fully autonomous, unmanned warehouse Wa means a warehouse Wa in which only the mobile unit 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 unit 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 descriptions 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. Details of these components have already been explained in Figure 1, so their explanation in Figure 3 is omitted.
[0037] In the control unit 100, the ROM 111, RAM 112, and CPU 113 are connected to each other via the 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 the I / O (Input / Output) 114 and bus 115.
[0039] The program stored in ROM 111 is executed by CPU 113, which brings to life the environmental information acquisition unit 101 to control unit 105 shown in Figure 1.
[0040] Note that a GPU (Graphics Processing Unit) or the like may be used instead of the CPU 113. Also, an HDD (Hard Disk Drive) or SSD (Solid State Drive) may be used instead of RAM 112. Furthermore, a volatile storage medium such as memory may be used instead of ROM 111.
[0041] <Status Information 11A> Figure 4 shows the status information 11A of the mobile body 1.
[0042] As shown in Figure 4, the mobile body 1 in this embodiment is assumed to be propelled by wheels 122.
[0043] The state information 11A of the mobile body 1 consists of information on the position and orientation of the mobile body 1. As shown in Figure 4, the position of the mobile body 1 is represented by the coordinates of the center of the main body 121 of the mobile body 1 (center position 201). The orientation of the mobile body 1 is represented by the angle 202 between the direction of travel of the mobile body 1 and, for example, the X-axis. Note that in Figure 4, the coordinates shown for the X-axis and Y-axis are the coordinates set for warehouse Wa.
[0044] The processing details of the environmental information acquisition unit 101 to the control unit 105 will be explained below. Refer to Figure 1 as appropriate.
[0045] <Environmental information acquisition section 101> First, we will explain the processing performed by the environmental information acquisition unit 101, referring to Figures 5A to 5D.
[0046] The environmental information acquisition unit 101 acquires environmental information 12A regarding moving objects 1, workers P, manned vehicles 2, and warehouse Wa around the vehicle from the communication device 15 or the environmental information acquisition device 12.
[0047] Figures 5A to 5D show examples of the data format of environmental information 12A related to the moving body 1 and obstacle B (see Figure 2) in this embodiment.
[0048] Figure 5A shows environmental information 12A related to mobile body 1, and Figure 5B shows environmental information 12A related to worker P. Figure 5C shows environmental information 12A related to manned vehicle 2 (a forklift in the example shown in Figure 5C). Figure 5D shows environmental information 12A related to cargo rack 3.
[0049] In this embodiment, environmental information 12A is treated as two-dimensional information. Moving objects 1 (other vehicles), workers P, and manned vehicles 2 that exist around the vehicle are represented by environmental information 12A with a center position 201 "(x, y)" and a circle 204 with radius 203 "r" enclosing each object. The area inside circle 204 becomes the occupied area 300. The occupied area 300 is the area set so that no objects exist inside it when the movement path r (see Figure 11A, etc.) is generated, as described above. For objects where the risk of collision is to be reduced, such as workers P, the area inside a circle 215, in which a safety distance 213 "α" is added to radius 203, may be set as the occupied area 300.
[0050] Furthermore, the environmental information 12A for a stationary rectangular object, such as cargo rack 3, is represented by the coordinate information of the vertices of the rectangle, which is the shape of the object, as shown in Figure 5C. The coordinate information of the vertices of the rectangle is represented by (xmin, ymin) (symbol 231), (xmin, ymax) (symbol 232), (xmax, ymin) (symbol 233), and (xmax, ymax) (symbol 234).
[0051] Note that the data format for information about objects surrounding the vehicle (i.e., environmental information 12A) is not limited to the examples shown in Figures 5A to 5D. For example, if a flying object such as a drone is a moving object 1 other than the vehicle, Z-axis information may be added to the environmental information 12A shown in Figure 5A. In the case of a stationary object such as a cargo rack 3, the area occupied by the object becomes the occupied area 300.
[0052] <Generation interval setting unit 102> Next, with reference to Figures 6A to 11B, the details of the processing performed by the generation interval setting unit 102 will be explained.
[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 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 method for setting the generation interval. Figure 8 shows an example of a method for setting thresholds related to the generation interval.
[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. In addition, 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 be completed in time for the predetermined control cycle 510 based on the control processing of the drive device 13 (drive device control processing), such as a motor. 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 is not completed in time for the predetermined control cycle 510 based on the control processing of the drive device 13 (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 mobile body 1 may occur, potentially causing the mobile body 1 to collide with the wall 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 go is used for two control steps of drive device control processing.
[0071] By lengthening the generation interval of 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 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 the only option. 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, we will explain how to set the generation interval to 400 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 travel path generation time 520, and the horizontal axis represents the generation steps.
[0081] The generation interval setting unit 102 prefers that the threshold "Tth" be smaller than the control cycle 510 "T" of the drive unit 13 when the first information for a single movement path r is used as a control input for the drive unit. 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 mobile body 1 system, 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 currently processed process (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 was 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 mobile body 1.
[0082] As shown in the example in Figure 7, if the travel path generation time 520 fluctuates, the generation interval setting unit 102 lengthens the generation interval 400 in generation step "s6" and onward, when the travel path generation time 520 exceeds the threshold "Tth" three times. Furthermore, in generation step "s10" and onward, when 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 of 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 to 400 based on computational load> Figure 9 shows an example of a threshold setting method for generation intervals based on computational load. Figure 10 also shows an example of a generation interval setting method based on computational load. Refer to Figures 1, 6A, and 11A as appropriate.
[0086] The threshold "Tth" used to set the generation interval of 400 is not limited to the movement path generation time of 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" could also be set below the computational load "80%".
[0089] Thus, if the computational load required to generate the movement path r in the immediately preceding 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. 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 transition to a safety process that stops the moving body 1 to 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, when the computation load reaches "100%".
[0091] Figures 11A and 11B illustrate the modification of the generation interval 400 in the first embodiment. Figure 11A shows the operation of the mobile body 1 when the generation interval 400 is not modified, and Figure 11B shows the operation of the mobile body 1 when the generation interval 400 is modified. 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 object 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 object 1 changes direction decreases.
[0094] Furthermore, if the generation interval of 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 period 510 → two control periods 510 → one control period 510, but it is not limited to this. For example, the length of the generation interval 400 may be changed from one control period 510 → two control periods 510 → three control periods 510 → four control periods 510 → three control periods 510, etc.
[0096] <Occupied area setting section 103> Next, with reference to Figures 12A to 14B, the processes performed by the occupied area setting unit 103 will be explained in detail.
[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 avoids collisions 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, symbols 601 to 610 indicate the timing (generation step) when the movement path r generation process is performed, and each represents the time "t=t1 to t10" when the movement path r generation process is performed. Similarly, in Figures 12B and 12C, symbols 621 to 626 indicate the timing when the movement path generation process is performed, and each represents the time "t=t1 to t6" when the movement path generation process is performed.
[0100] The examples shown in Figures 12A to 12C are examples of movement paths r generated in discrete time, where 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 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 (symbols 621-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 object 1 does not collide with 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 (indicated by 621 to 626).
[0104] <Specific example of expanding the occupied area by 300> Figures 13A to 13C show specific examples of the expansion of 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 of 400 before the change (see Figure 6A), and "Δta" is the generation interval of 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 of the modified occupied area 300b, 203b "ra", may be set using the formula "ra = v × Δta". Here, "v" is the velocity of the moving body 1 (indicated by 801) in the previous generation step, and "Δ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 velocity of the moving body 1 (indicated by 801) by the length of the generation interval 400. By doing this, the size of the occupied area 300 for a fast-moving moving body 1 can be increased, and the possibility of the moving body 1 colliding with obstacle B can be reduced.
[0109] Furthermore, as shown in Figure 13C, the radius of the occupied area 300b after the change, ra = vmax × Δta, may be set to 203b "ra". Hereinafter, "vmax" is the maximum speed (indicated by 802) that the mobile body 1 can achieve. 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 maximum speed (indicated by 802) that the mobile body 1 can output by the length of the generation interval 400. This further reduces the possibility of the mobile 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, as if the occupied area 300 becomes too large, it may become impossible, in calculations, for the mobile body 1 to pass through narrow passages or gaps in obstacle B that it 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] <Movement of mobile unit 1 due to change in occupied area 300> Figure 14A shows an example of the operation of the mobile body 1 before the occupied area 300 is changed, and Figure 14B shows an example of the operation of the mobile body 1 after the occupied area 300 is changed.
[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 the 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 the target point Xra.
[0115] Incidentally, in Figure 14A, the symbols 631a to 639a indicate the timing (generation step) when the movement path generation process is performed on the moving object 1a. Similarly, in Figure 12A, the symbols 631b to 639b indicate the timing (generation step) when the movement path generation process is performed on the moving object 1b. Each of the symbols 631a to 639a and 631b to 639b indicates the time "t=t1 to t9" when the movement path generation process is performed.
[0116] Incidentally, in Figure 14B, the symbols 641a to 650a indicate the timing (generation step) when the movement path generation process is performed in the moving object 1a. Similarly, in Figure 12A, the symbols 641b to 650b indicate the timing (generation step) when the movement path generation process is performed in the moving object 1b. Each of the symbols 641a to 650a and 641b to 650b indicates 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 generation interval length 400 and the size of the occupied area 300 are not changed, the two moving objects 1 can proceed to their respective target points Xr and Xra while slightly changing their paths, as shown in Figure 14A. Then, for each of the moving objects 1a and 1b, the generation interval length 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 object 1a to reach target point Xr while avoiding obstacle B (moving object 1b in the example shown in Figures 14A and 14B), it will move by taking a much larger detour compared to Figure 14A. The same applies to moving object 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 is not completed within a predetermined control cycle 510. As a result, the mobile body 1 can continue to travel without unexpectedly coming to a stop.
[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 and 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 (see Figure 11A, etc.) of the moving body 1. The movement path r is generated using 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 movement path r is generated using 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) with a sampling period (generation interval of 400) "Δt" (or the modified generation interval of 400 "Δta"). In equation (3), "k" represents the processing step (time).
[0127]
number
[0128]
number
[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. Also, "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]
number
[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 these 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]
number
[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, worker P, or manned vehicle 2 around the moving object 1, the constraint conditions for avoiding contact with obstacles B are set based on the following equation (6).
[0136]
number
[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 occupied area 300 inside it) 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 area 300) is "rj". In this 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]
number
[0142] Figure 16 shows the relative positions of the moving object 1 and the cargo rack 3 at a given time. The coordinates of the center position 201 of the moving object 1 are given as "(x, y)", and the radius 203 of the circle 204 surrounding the moving object 1 (the area inside which is occupied 300) is given as "ro". The coordinates of the center position 235 of the cargo rack 3 are given as "((xi,min+xi,max) / 2, (yi,min+yi,max) / 2)", the width 241 of the cargo rack 3 is given as "Lh", and the depth 242 is given as "Lv". Note that "xi,min" and "yi,min" are the coordinate values of the symbol 231, and "xi,max" and "yi,max" are the coordinate values of the symbol 231. The angle 202 is the angle indicating the orientation of the moving object 1.
[0143] 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]
number
[0147] <Control Unit 105> Next, the processing of the control unit 105 will be described.
[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 mentioned above, the movement path generation unit 104 generates movement paths r for 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 the movement path r of 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 object 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 complex environments where workers P and manned vehicles 2 are present, the calculation time required for generating the movement path of the mobile body 1 may not be completed 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 Figures 6A and 6D). 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 the surrounding obstacles B do not obstruct the movement path r of the moving body 1, it is not a problem if the frequency of the movement path generation process 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". In addition, the occupied area 300c shown in Figure 18A is expanded to the occupied area 300d shown in Figure 18B.
[0165] In the determination of generation interval change in the second embodiment, for example, first, a generation interval setting unit 102 acquires a movement route r "u*" generated in a previous generation step calculated by a movement route generation unit 104. The movement route r "u*" is "u" that minimizes "J" in formula (4).
[0166] Then, the generation interval setting unit 102 determines whether all speed changes within a prediction horizon "N" are minute and an angular velocity input is small. When all speed changes within the prediction horizon "N" are minute and the angular velocity input is small, the generation interval setting unit 102 determines that a moving object 1 moves along a linear trajectory. The phrase "the speed change is minute and the angular velocity input is small" means that the speed change is within a predetermined speed threshold and the angular velocity input is within a predetermined angle threshold. Then, the generation interval setting unit 102 changes a generation interval 400 "Δt" to "Δtb" that is longer than a current generation interval 400 (for example, "2Δt").
[0167] If the generation interval setting unit 102 determines that, among the movement routes r, a change in the movement route r is equal to or less than a predetermined amount for a predetermined period from the present time, the generation interval setting unit 102 changes the generation interval 400 to be longer than the current generation interval 400. In the present embodiment, "the predetermined period from the present time" refers to the entire period within the prediction horizon "N". However, the present invention is not limited thereto, a predetermined "n (n<N)" may be defined, and the information may be information of the movement route r from the present time to a generation step "n" among the movement routes r. Further, the "predetermined amount" is the aforementioned speed threshold or angle threshold.
[0168] In the second embodiment, other processes are the same as those in the first embodiment.
[0169] <Effects of the Second Embodiment> In the second embodiment, when it is clear that the movement route r to reach a target point is linear, the generation interval setting unit 102 changes the generation interval 400 to be longer. By doing so, the calculation load applied to the movement route generation process can be reduced. Thereby, surplus 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 a 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 the 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" (7 in the example shown in Figure 20).
[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 object 1 has a different maximum speed. In equation (12), "vmax" is the maximum speed of the own vehicle, and "vmax_ave" is the average of the maximum speeds of the other mobile objects 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 determine 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 obstacle B.
[0188] In the third embodiment, the travel path generation time 520 of 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 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 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 comprises 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 of 400, the occupied area of 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, an autonomously moving transport vehicle is assumed as the mobile body 1,1Z, but it is not limited to this. It is not limited to any vehicle that moves autonomously within a specific work area W. For example, this embodiment can also 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 applied as the mobile body 1,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 allows for determining the distance that each mobile body 1 can maintain, thereby avoiding a stalemate. Priorities may be pre-set for each mobile body 1 based on its ID. Alternatively, priorities 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, some or all of the above-mentioned configurations, functions, environmental information acquisition units 101 to 105, storage device 911, etc., may be implemented in hardware, for example, by designing them as integrated circuits. Also, as shown in Figures 3 and 22, 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 an HD (Hard Disk), but also in memory, a recording device such as an SSD (Solid State Drive), or a recording medium such as an IC (Integrated Circuit) card, an SD (Secure Digital) card, or a DVD (Digital Versatile Disc).
[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. [Explanation of Symbols]
[0206] 1,1a,1b,1Z Mobile Unit 9 Management device 12 Environmental information acquisition device 12A Environmental information 13 Drive unit 100 Control device 101 Environmental Information Acquisition Department 102 Generation interval setting section 103 Occupied area setting section 104 Movement path generation unit 105 Control Unit 300,300a~300d occupied area Generation intervals: 400, 400a~400d 510 Control cycle 520 Travel path generation time 801 code (speed) 802 code (maximum speed) B Obstacle r Travel 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 Travel path generation (travel path generation step) S105 Drive unit control (drive unit control step)
Claims
1. A control device for controlling a moving object, An environmental information acquisition unit that acquires environmental information about the surroundings of the moving object, A movement path generation unit that generates a movement path for the moving body, Based on the movement path generated by the movement path generation unit, a control unit controls the drive device of the moving body, In addition to being equipped, The movement path generation unit includes a generation interval setting unit that sets a generation interval which is the time interval between processes for generating the movement path, A unit for setting the occupied area of the moving body, Equipped with, 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 moving body. The movement path generation unit generates a movement path for the moving object based on the environmental information and the occupied area. Control device.
2. In the control device according to claim 1, 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. If it determines that the movement path generation cannot keep up with the control period, it sets the generation interval to be longer than the current generation interval. A control device characterized by the following features.
3. In the control device according to claim 2, The generation interval setting unit, in the immediately preceding generation step, changes the generation interval to a longer duration than the current generation interval if the movement path generation time exceeds a predetermined threshold. A control device characterized by the following features.
4. In the control device according to claim 1, 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. The control unit controls the moving body according to the generation interval and the occupied area. A control device characterized by the following features.
5. In the control device according to claim 4, When the occupied area setting unit changes the size of the occupied area, it sets the size of the occupied area to a size proportional to the length of the generation interval. A control device characterized by the following features.
6. In the control device according to claim 4, When changing the size of the occupied area, 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. A control device characterized by the following features.
7. In the control device according to claim 4, When changing the size of the occupied area, 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. A control device characterized by the following features.
8. In the control device according to claim 1, The generation interval setting unit, in the immediately preceding generation step, changes the generation interval to a longer duration than the current generation interval if the computational load required to generate the movement path exceeds a predetermined threshold. A control device characterized by the following features.
9. In the control device according to claim 2, The generation interval setting unit determines that, within the movement path, 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. A control device characterized by the following features.
10. In the control device according to claim 2, The generation interval setting unit obtains the number of obstacles around the moving object from the environmental information acquisition unit, and if the number of obstacles around the moving object exceeds a predetermined threshold, it changes the generation interval to be longer than the current generation interval. A control device characterized by the following features.
11. A mobile body incorporating the control device described in claim 1.
12. A mobile body, and a management device that generates a movement path for the mobile body and transmits the generated movement path to the mobile body, thereby managing the mobile body. A control system comprising, The aforementioned control device is An environmental information acquisition unit that acquires environmental information about the surroundings of the moving object, A movement path generation unit that generates a movement path for the moving body, In addition to being equipped, The movement path generation unit includes a generation interval setting unit that sets a generation interval which is the time interval between processes for generating the movement path, A unit for setting the occupied area of the moving body, Equipped with, The aforementioned moving body is Based on the movement path generated by the movement path generation unit, the control unit controls the drive device of the moving body. Equipped with, 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 moving body. The movement path generation unit generates a movement path for the moving object based on the environmental information and the occupied area. Control system.
13. A control device that controls a moving object, An environmental information acquisition step for acquiring environmental information about the surroundings of the moving object, A generation interval setting step, which sets a generation interval that is the time interval for the process of generating the movement path that the moving body moves along, A step of setting the occupied area of the moving body, A movement path generation step for generating the movement path of the moving body, In the movement path generation step, a control step is performed to control the drive device of the moving body based on the generated movement path, Execute 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. In the aforementioned movement path generation step, the control device generates a movement path for the moving object based on the environmental information and the occupied area. Control method.
Citation Information
Patent Citations
Multiple vehicle movement control method, movement controller, movement control system, program, and recording medium
JP2021077090A