Processing device, mobile robot, mobile control system, processing method and program
The path generation unit in the mobile robot system optimizes movement paths by setting planned occupied spaces using map and shape information, addressing inefficiencies in navigating multiple robots by accurately adjusting paths to avoid collisions and enhance passage utilization.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- KK TOSHIBA
- Filing Date
- 2021-10-22
- Publication Date
- 2026-04-27
AI Technical Summary
Existing mobile robot movement control systems restrict movement more than necessary to avoid collisions, leading to inefficiencies in navigating passages with multiple robots, especially when passage widths allow for simultaneous travel.
A path generation unit sets a planned occupied space using map information and general shape information to optimize movement paths, allowing multiple robots to navigate efficiently by adjusting movement paths based on obstacle information and travel priorities.
Enables efficient navigation of multiple robots in passages by accurately determining and adjusting movement paths to avoid collisions, optimizing movement efficiency and reducing unnecessary restrictions.
Smart Images

Figure 0007851706000001 
Figure 0007851706000002 
Figure 0007851706000003
Abstract
Description
Technical Field
[0001] Embodiments of the present invention relate to a processing device, a mobile robot, a movement control system, a processing method, and a program.
Background Art
[0002] A processing device that controls the movement of a mobile robot that moves autonomously detects obstacles in the vicinity of the mobile robot, and if there is an obstacle in the vicinity, adjusts the movement amount of the mobile robot. In order to avoid a collision during the movement of the mobile robot, the processing device sometimes restricts the movement amount more than necessary.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] The problem to be solved by the present invention is to provide a processing device, a mobile robot, a movement control system, a processing method, and a program that can efficiently move a mobile robot according to the situation in a passage including a planned movement path.
Means for Solving the Problems
[0005] The processing device of the embodiment includes a path generation unit and a movement control unit. The path generation unit uses map information on which the planned movement path of the first mobile robot can be set to set a first planned occupied space required when the first mobile robot moves, within a region of the map information, along the planned movement path of the mobile robot. The movement control unit controls the first mobile robot to move based on the planned movement path of the first mobile robot. The path generation unit includes information on the planned occupied space required when the second mobile robot moves as a condition for setting the planned movement path of the first mobile robot. [Brief explanation of the drawing]
[0006] [Figure 1A] A schematic diagram showing an example of an application location for the motion control system of the first embodiment. [Figure 1B] A schematic diagram showing an example of an application location for the motion control system of the first embodiment. [Figure 2] A plan view of the mobile robot according to the first embodiment. [Figure 3] A side view of the mobile robot according to the first embodiment. [Figure 4] A diagram illustrating the configuration of the movement control system according to the first embodiment. [Figure 5A] A diagram showing the data stored in the memory unit of the first embodiment. [Figure 5B] A diagram illustrating the driving information of the first embodiment. [Figure 5C] A diagram illustrating the setting of the planned occupied space using the general shape information of the embodiment. [Figure 6] A flowchart of the process related to the movement control of the mobile robot in the embodiment. [Figure 7] A diagram illustrating the adjustment of the planned occupied space using communication between mobile robots in the embodiment. [Figure 8A] A diagram illustrating the adjustment of the planned occupied space using communication between mobile robots in the embodiment. [Figure 8B] A diagram illustrating the adjustment of the planned occupied space using communication between mobile robots in the embodiment. [Figure 9A] A diagram illustrating an example of avoiding obstacles present in a passage within an embodiment. [Figure 9B] A diagram illustrating an example of avoiding obstacles present in a passage within an embodiment. [Figure 9C] A diagram illustrating an example of avoiding obstacles present in a passage within an embodiment. [Figure 10] Configuration diagram of the motion control system according to the second embodiment. [Figure 11] A diagram illustrating the adjustment of the planned occupied space using communication in the second embodiment. [Figure 12] A diagram showing an example of the hardware configuration of the controller in the embodiment. [Figure 13] A diagram illustrating the configuration of the movement control system according to the third embodiment. [Modes for carrying out the invention]
[0007] The processing apparatus, mobile robot, mobile control system, processing method, and program of the embodiment will be described below with reference to the drawings. In the following description, components having the same or similar functions will be denoted by the same reference numeral. Duplication of these components may be omitted. In this application, "based on XX" means "based on at least XX," and includes cases where it is based on another element in addition to XX. Furthermore, "based on XX" is not limited to cases where XX is used directly, but also includes cases where calculations or processing have been performed on XX. "XX" is any element (for example, any information). The mobile robots 100 and 300 of the embodiment are examples of mobile robots.
[0008] Also, first, define the +X direction, -X direction, +Y direction, -Y direction, +Z direction, and -Z direction. The +X direction, -X direction, +Y direction, and -Y direction are directions along the floor surface on which the mobile robot moves. The +X direction is, for example, one moving direction of the mobile robot 100 and may be referred to as "front". The -X direction is the opposite direction to the +X direction and may be referred to as "rear". When not distinguishing between the +X direction and the -X direction, it is simply referred to as the "X direction". The +Y direction and -Y direction are directions that intersect (e.g., are substantially orthogonal) to the X direction and may be the vehicle width direction of the vehicle body 10 or may be referred to as "side". The +Y direction and -Y direction are opposite to each other. When not distinguishing between the +Y direction and the -Y direction, it is simply referred to as the "Y direction". The +Z direction and -Z direction are directions that intersect (e.g., are substantially orthogonal) to the X direction and Y direction and are, for example, the vertical direction. The +Z direction is the direction of moving upward. The -Z direction is the opposite direction to the +Z direction. When not distinguishing between the +Z direction and the -Z direction, it is simply referred to as the "Z direction". Note that terms such as "front", "rear", "side", "vehicle width direction", etc. used in this specification are expressed from the perspective based on one moving direction of the mobile robot 100 for convenience of explanation. However, the moving direction of the mobile robot 100 is not limited to the +X direction. The mobile robot 100 may be movable in the -X direction, +Y direction, or -Y direction. In addition to the above translational movement, the mobile robot 100 may rotate around the axis in the Z direction.
[0009] (First Embodiment) FIG. 1A and FIG. 1B are schematic diagrams showing an example of the application location of the movement control system 1 of the first embodiment. FIG. 2 is a plan view of the mobile robot 100 of the first embodiment. FIG. 3 is a side view of the mobile robot 100 of the first embodiment.
[0010] The movement control system 1 of the embodiment includes part or all of the mobile robot 100. The mobile robot 100 may be an example of the movement control system 1. The movement control system 1 may be formed as part of the mobile robot 100.
[0011] The mobile robot 100 is, for example, an autonomous mobile vehicle that does not require operation by an operator and is formed to be able to move alone on the plane FL. The mobile robot 100 is, for example, a low-floor AGV (Automatic Guided Vehicle).
[0012] The application location shown in FIG. 1A includes an environment where a plurality of mobile robots such as the mobile robots 100 and 300 and humanoid robots such as the mobile robot 300P cooperate. Such application locations may be indoors such as factories, warehouses, and offices, or outdoors. Hereinafter, the case of indoors will be illustrated and described.
[0013] OBJ1 and OBJ2 within the range shown in FIG. 1A are examples of those arranged in the environment or other mobile robots (moving objects). OBJ1 and OBJ2 become obstacles when the mobile robot 100 travels. The mobile robot 100 identifies other mobile robots and OBJ1 and OBJ2 of "other obstacles", and avoids contact by autonomous movement control and travels around them.
[0014] The application location shown in FIG. 1B is the same as the location shown in FIG. 1A, but is configured to ensure two passages connecting the point PA and the point PB. The first passage is called the passage IL1, and the second passage is called the passage IL2. Although FIG. 1B is a schematic diagram, the route R_100 passing through the passage IL1 has a lower movement cost than the route R_100Z passing through the passage IL2. That is, the movement efficiency decreases when using the route R_100Z passing through the passage IL2. Under such conditions, when selecting a route for the purpose of efficiently moving between the point PA and the point PB, the route R_100 passing through the passage IL1 will be selected if there is no problem.
[0015] In the example shown in FIG. 1B, the mobile robot 100 is in the stage of moving from the point PA to the point PB, and the mobile robot 300 is in the stage of moving from the point PB to the point PA. The mobile robot 300 is in a situation of passing by on the side of the mobile robot 100.
[0016] Furthermore, some of the comparative examples' movement control systems limit the number of robots that can pass through passage IL1 to one at a time. In such comparative examples, it was only possible to allow robots to pass through the passage one at a time. Even when the width of passage IL1 was relatively wide compared to the size of the mobile robots, allowing them to pass each other, some of the comparative examples' movement control methods still limited them to allowing robots to pass one at a time.
[0017] The following embodiment describes an example of how to efficiently utilize such a passage IL1.
[0018] The mobile robot 100 illustrated in the following description may be configured to be connected to a trolley (not shown) and moved by connecting to it. For the sake of simplicity, the description will be based on the case where it moves independently. When a trolley is connected as described above, the general shape information of the mobile robot 100 may be defined based on the shape of the connected state. This will be described later. Note that the mobile robot 100 is not limited to the above example and may be another type of automated guided vehicle.
[0019] The mobile robot 100 shown in Figure 2 includes, for example, a vehicle body 10, a processing unit 110, and a sensor 120. The vehicle body 10 includes a vehicle body case 11, which is the vehicle's body, and a moving mechanism 130. The vehicle body case 11 forms the outer casing of the vehicle body 10. The moving mechanism 130 is a driving mechanism equipped with four wheels 12a to 12d, each positioned at the four corners of the vehicle body 10, and motors 13a to 13d that drive each of the wheels 12a to 12d. The motors 13a to 13d are each connected to the wheels 12a to 12d via axles.
[0020] The moving mechanism 130 is an omnidirectional moving mechanism that moves in all directions by, for example, individually rotating each wheel 12a to 12d with motors 13a to 13d. The moving mechanism 130 is configured to move the mobile robot 100 in real space. The mobile robot 100 can translate in a desired direction by adjusting the rotation direction and rotation speed of each wheel in the moving mechanism 130, and can also change direction by rotating in place.
[0021] The moving mechanism 130 may, for example, be equipped with a steering mechanism, allowing for the steering of some or all of the wheels in addition to the rotational speed and direction of the wheels. Encoders are attached to the axles connecting the wheels 12a to 12d and the motors 13a to 13d, respectively, so that the rotational speed of each wheel 12a to 12d can be continuously measured.
[0022] The type of mobility mechanism for the mobile robot 100 is not restricted. For example, if it is a drive-wheel type as shown in Figure 2, the number of wheels and the number of drive wheels can be arbitrarily determined. Also, the drive system can be appropriately selected as two-wheel drive, four-wheel drive, etc. Alternatively, the mobile robot 100 may be a crawler type, or a walking type mobile body that walks using multiple legs. Furthermore, the mobile robot 100 may be an aerial vehicle that flies within a passage whose width is limited to a predetermined value. In the following explanation, a four-wheeled vehicle as shown in Figure 2 will be used as a typical example.
[0023] The dashed line surrounding the mobile robot 100 indicates the area defined as the general shape information of the mobile robot 100. The general shape information OL is defined relative to the reference position OL0.
[0024] Sensor 120 detects objects around the mobile robot 100. For example, the sensor 120 may be positioned in a location that can detect the direction of travel of the mobile robot 100, and facing forward in that direction. The position of the sensor 120 is not limited to the front of the mobile robot 100; it may also be positioned at the rear or on the left or right sides.
[0025] For example, as shown in Figure 3, the sensor 120 is a three-dimensional distance sensor such as a laser rangefinder (LRF) capable of irradiating a laser in a predetermined angular range with respect to the direction of travel (+X direction) of the mobile robot 100. The sensor 120 irradiates a laser along a virtual plane and generates point cloud information as a result of scanning within that virtual plane. The virtual plane is, for example, the plane when the laser scan beam is swung horizontally with respect to the ground.
[0026] Sensor 120 generates detection distance information, which is information about the position of the object to be detected near the front (+X direction) of the mobile robot 100. Detection distance information is, but is not limited to, the measurement result of reflected or scattered light of a laser when the laser is shone on the object to be detected. Sensor 120 may also use other optical sensors, ultrasonic sensors, etc. This will be described later.
[0027] The sensor 120 outputs the generated detection distance information to the sensor control unit 101. In the following description, a one-dimensional horizontal scanning LRF (Laser Range Finder) will be used as an example of sensor 120. However, the embodiment is not limited to this, and a two-dimensional scanning LRF may also be used.
[0028] Furthermore, depending on the shape of the object being detected, the accuracy of the detection result for the object's position sometimes varied.
[0029] For example, in Figure 3(a), both mobile robots 100 and 300 are in an empty state with no cargo on their loading platforms. In this situation, when mobile robot 100 detects the position of the preceding mobile robot 300, sensor 120 cannot detect the loading platform portion of mobile robot 300. Instead, the detected position is not the rear of the loading platform of mobile robot 300, but rather the rear of the guard portion located at the front of the loading platform. As a result, an area UNdetZ is created that cannot be observed by sensor 120, leading to a detection result that makes the mobile robot appear to be located further away than its actual position. Consequently, it was sometimes impossible to obtain the accurate position of the preceding vehicle.
[0030] The mobile robot 100 of this embodiment is designed to improve the accuracy of detecting the position of the preceding vehicle by using general shape information, even when an unobservable area UNdetZ occurs.
[0031] The mobile robot 100 may also be equipped with various sensors for SLAM (Simultaneous Localization and Mapping), such as encoders and odometry sensors, which are not shown in the diagram. A detailed explanation of these sensors is omitted.
[0032] Figure 4 is a diagram showing the configuration of the movement control system 1 according to the first embodiment. The mobile control system 1 includes, for example, a mobile robot 100 and a mobile robot 300. Mobile robot 100 and mobile robot 300 are examples of autonomously mobile bodies.
[0033] Let me explain the mobile robot 100. The mobile robot 100 shown in Figure 4 includes, for example, a processing unit 110, a sensor 120, and a moving mechanism 130.
[0034] The processing unit 110 will now be described. The processing unit 110 of the mobile robot 100 is implemented, for example, by a hardware processor such as a CPU (Central Processing Unit) or GPU (Graphics Processing Unit) executing a program (software) stored in a memory unit. Furthermore, some or all of the functional parts of the mobile robot 100 may be implemented by hardware (circuitry) such as an LSI (Large Scale Integration), ASIC (Application Specific Integrated Circuit), or FPGA (Field-Programmable Gate Array), or by the cooperation of software and hardware.
[0035] The processing unit 110 includes, for example, a sensor control unit 101, a sensor observation data processing unit 102, a communication unit 103, an obstacle information generation unit 104, a route generation unit 105, a movement control unit 106, a driving information generation unit 107, and a storage unit 108.
[0036] The arrows connecting the various functional units within the processing unit 110 indicate the main data flow. This does not restrict the exchange of data other than that indicated by the arrows in the diagram; rather, it allows the exchange of data other than that indicated by the arrows.
[0037] The storage unit 108 is composed of, for example, semiconductor memory. The storage unit 108 is referenced by the following functional units: the sensor control unit 101, the sensor observation data processing unit 102, the communication unit 103, the obstacle information generation unit 104, the route generation unit 105, the movement control unit 106, and the driving information generation unit 107. The storage unit 108 stores various data related to the information generated by each functional unit, and programs related to the processing executed by each functional unit. For example, the storage unit 108 stores data related to map information, driving information of the device itself, driving information of other devices, detected obstacle information, etc. Details of these will be described later.
[0038] The sensor control unit 101 controls the start and end of ambient environment measurement by the sensor 120. The sensor control unit 101 also outputs the observed data from the sensor 120.
[0039] The sensor observation data processing unit 102 acquires observation data from the sensor 120, performs signal processing on the observation data, and outputs the result to the obstacle information generation unit 104. The signal processing of the observation data includes noise reduction of the observation data from the sensor 120. One method for noise reduction of the observation data from the sensor 120 is to apply a median filter. The sensor observation data processing unit 102 may also perform processing other than the above on the observation data from the sensor 120.
[0040] The driving information generation unit 107 directly or indirectly via the storage unit 108 acquires the data generated by the obstacle information generation unit 104, the path generation unit 105, and the movement control unit 106, respectively. Based on the acquired data, the driving information generation unit 107 generates driving information for the mobile robot 100. The driving information generation unit 107 may also control the communication unit 103 to output the driving information to an external device such as the mobile robot 300.
[0041] The communication unit 103 transmits the movement information of the mobile robot 100 generated by the movement information generation unit 107 to other devices such as the mobile robot 300, and also receives the movement information of the mobile robot 300. A generally known method can be applied to the communication method between the communication unit 103 and the mobile robot 300.
[0042] The obstacle information generation unit 104 detects obstacles around the mobile robot 100 from the data processed and output by the sensor observation data processing unit 102 and registers them in the storage unit 108. Furthermore, the obstacle information generation unit 104 calculates the planned occupied space within the mobile robot 300's travel environment from the travel information of the mobile robot 300 received by the communication unit 103, and registers that planned occupied space as an obstacle in the storage unit 108.
[0043] (Overview of Mobile Robot 300) Let me explain the Mobile Robot 300. Mobile robot 300, like mobile robot 100, is a mobile robot belonging to the mobile control system 1.
[0044] The form of the mobile robot 300 may be the same as that of the mobile robot 100, or it may be different from that of the mobile robot 300. The type of mobility mechanism of the mobile robot 300 may be the same as that of the mobile robot 100, or it may be different from that of the mobile robot 300. The form of the mobile robot 300 and the type of mobility mechanism can be those exemplified in the description of the mobile robot 100.
[0045] The mobile robot 300 controls its own movement based on the movement information of the mobile robot 100, etc., which is acquired through communication with an external device such as the mobile robot 100. As for the method of controlling its movement, the same method as the control of the mobile robot 100 when it receives the movement information of the mobile robot 300 may be applied.
[0046] In this embodiment, the mobile robot 300 is in a situation where it has designated the passage IL1, which is the travel path of the mobile robot 100, as its travel path. In the following description, unless otherwise specified, the description of the mobile robot 100 can be applied to the description of the mobile robot 300. For example, in the description of each mobile robot processing unit, the processing unit 110 of mobile robot 100 may be read as the processing unit 310 of mobile robot 300. Furthermore, the sensor control unit 101, sensor observation data processing unit 102, communication unit 103, obstacle information generation unit 104, path generation unit 105, movement control unit 106, driving information generation unit 107, and storage unit 108 of processing unit 110 may be read as the sensor control unit 301, sensor observation data processing unit 302, communication unit 303, obstacle information generation unit 304, path generation unit 305, movement control unit 306, driving information generation unit 307, and storage unit 308 of processing unit 310. The same applies to other configurations.
[0047] (Data stored in memory unit 108) Referring to Figures 5A to 5C, the data stored in the storage unit 108 of the first embodiment will be described.
[0048] Figure 5A shows the data stored in the storage unit 108 of the first embodiment. Figure 5B is a diagram illustrating the driving information 1082 of the embodiment. Figure 5C is a diagram illustrating the planned occupied space information 1083 of the embodiment.
[0049] The memory unit 108 stores various data, such as observation data 1081, driving information 1082, planned occupied space information 1083, driving route information 1084, movement control values 1085, communication history information 1086, and map information 1087.
[0050] Observation data 1081 stores distance data to detected objects in each direction, based on the +X axis orientation. This data includes both data detected by sensor 120 and data that has undergone noise reduction processing.
[0051] An example of the driving information 1082 is shown in Figure 5B. Driving information 1082 is an example of movement information. (a) in Figure 5B is an example of the driving information of mobile robot 100. (b) in Figure 5B is an example of the driving information of mobile robot 300.
[0052] As shown in (a) of Figure 5B, the travel information includes items such as robot identification information (ID), timestamp (TIME), name of the environment in which the robot is currently traveling (environment), name of the map currently being used for movement (map), robot shape information including width, depth, and height (shape information), current travel path, current translational speed, current rotational speed, current translational acceleration, current rotational acceleration, self-position estimation result (self-position), and travel priority within the travel environment (priority).
[0053] The robot identification ID contains information for identifying the mobile robot. The robot identification ID may simply be the serial number, or it may be a combination of the model name and a uniquely identifiable number; it just needs to be uniquely identifiable information for each mobile robot. Each robot is assigned a travel priority within the environment, and there should be no duplication. Furthermore, the travel priority within the environment may change during travel, as long as no duplication occurs. The timestamp contains data indicating the elapsed time since the start of travel along the route. The name of the currently running environment includes information that can identify the location set as part of the route. For example, it includes data such as path identification information. The name of the map currently being used for movement includes map identification information that identifies the map corresponding to each region, if the environment is divided into multiple regions. The robot shape information includes information such as width, depth, and height that identifies the shape of each mobile robot. For example, it may be approximated as a rectangular prism that encompasses the outer shape of the mobile robot. The current route includes route identification information that identifies the selected route. The current translational velocity, current rotational velocity, current translational acceleration, and current rotational acceleration include data showing the translational velocity, rotational velocity, translational acceleration, and rotational acceleration at each time point. It is preferable to be able to determine the time using the elapsed time since the start of movement along the path. The self-localization results include data on the estimated positions identified by each mobile robot. The driving priority within the driving environment includes data that identifies the priority when securing a driving path. For example, it is advisable to apply data that is defined in a way that does not duplicate, such as identification information assigned to mobile robots. Note that the above driving information does not need to be managed and output as a single data set; it can be separated. The items in the above data can be added or removed as appropriate.
[0054] Next, Figure 5C shows an example of how the planned occupied space information 1083 is defined. For example, the planned occupied space information 1083 is defined based on a set of robot shape information whose position changes as the mobile robot moves.
[0055] For example, Figure 5C illustrates the case where a mobile robot 100 moves from position RP1 to RP7. The coordinate system of this plan view in Figure 5C includes the XX and YY axes of the fixed coordinate system in the planar direction. Position information and path information for each point are managed as data of the above-mentioned fixed coordinate system.
[0056] Positions RP1 to RP7 are examples of points on the travel path of the mobile robot 100. Arrows F1 to F7 extending from each of positions RP1 to RP7 indicate the orientation of the mobile robot 100 at that position. In other words, arrows F1 to F7 indicate the direction of travel of the mobile robot 100 at that position. The rectangles arranged to include each of the above positions RP1 to RP7 represent the general shape information OL1 to OL7 of the mobile robot 100 at each position. In this way, the position of the mobile robot 100 is moved over time, and its trajectory is treated as a planned occupied space, thereby generating planned occupied space information. The shaded area within the trajectory represents the planned occupied space indicated by the planned occupied space information.
[0057] The travel path information 1084 includes information for identifying the travel path. For example, the path connecting positions RP1 to RP7 in Figure 5C above becomes the travel path of the mobile robot 100. The travel path information 1084 includes information indicating the starting point (e.g., position RP1) and ending point (e.g., position RP7) of the path. In addition, the travel path information 1084 includes information indicating the curves in the path from the starting point to the ending point.
[0058] The movement control value 1085 includes data to define the amount of movement per unit time and the direction of movement at each point on the travel path. For example, it may be defined as data to specify the magnitude of the control command for controlling each movement mechanism. More specifically, it defines the translational speed, rotational speed, translational acceleration, and rotational acceleration at each time point.
[0059] Communication history information 1086 stores the communication content transmitted and received by the communication unit 103 as time history data.
[0060] Map information 1087 is map information of the area to be analyzed, and it is information that can identify the paths that each mobile robot can travel.
[0061] (Overview of processes related to movement control) Next, with reference to Figure 6, the movement control of the mobile robot 100 of this embodiment will be described. Figure 6 is a flowchart of the process related to the movement control of the mobile robot 100 in the embodiment. The process flow will be explained with reference to the flowchart. Note that the mobile robot 300 in the following explanation is an example of another mobile robot as seen from the perspective of mobile robot 100.
[0062] First, the sensor control unit 101 of the mobile robot 100 controls the sensor 120 to acquire observation data from the sensor 120 (step SA10), writes the observation data to the storage unit 108 (observation data 1081), and makes it available for supply to the sensor observation data processing unit 102.
[0063] The sensor observation data processing unit 102 processes the acquired observation data to remove noise (step SA12), writes the result to the storage unit 108 (observation data 1081), and makes it available for supply to the obstacle information generation unit 104.
[0064] The communication unit 103 acquires the movement information of other mobile robots, including the mobile robot 300 (step SA14), writes that movement information to the storage unit 108 (movement information 1082), and makes it available for supply to the obstacle information generation unit 104.
[0065] The obstacle information generation unit 104 generates obstacle information (step SA16) based on the noise-reduced observation data (observation data 1081) and the movement information of other mobile robots acquired by the communication unit 103 (movement information 1082). The obstacle information generation unit 104 writes each obstacle information to the storage unit 108 (planned occupied space information 1083) and makes it available to the path generation unit 105.
[0066] The route generation unit 105 uses the obstacle information (planned occupied space information 1083) generated by the obstacle information generation unit 104 to generate a travel route (route) to the target position (step SA18). The route generation unit 105 writes the travel route information related to the generated travel route to the storage unit 108 (travel route information 1084) and makes it available to the movement control unit 106 and the travel information generation unit 107.
[0067] The movement control unit 106 calculates a movement control value based on the travel route (travel route information 1084) generated by the route generation unit 105 (step SA20). The movement control unit 106 writes the calculated movement control value to the storage unit 108 (movement control value 1085) and makes it available to the travel information generation unit 107.
[0068] The travel information generation unit 107 generates travel information for the mobile robot 100, including the travel route (travel route information 1084) generated by the route generation unit 105 and the movement control value (movement control value 1085) calculated by the movement control unit 106 (step SA22), and writes the generated travel information to the storage unit 108 (travel information 1082).
[0069] The communication unit 103 transmits the driving information (driving information 1082) generated by the driving information generation unit 107 to the mobile robot 300 (step SA24), thereby completing the series of processes.
[0070] We will now explain the specific methods for each of the above processes.
[0071] (Management of obstacle information) You may apply one of the following methods to manage obstacle information.
[0072] (Management of planned occupied space information using occupied grid maps) The movement control system 1 manages obstacle information within the movement space, for example, by using an occupied grid map as map information. The occupied grid map is an example of map information stored in the memory unit 108.
[0073] In this management method using an occupied grid map, different cost values are assigned to grids that are occupied and grids that are not occupied, making it possible to identify the state of each grid from the cost values assigned to each grid. For example, the obstacle information generation unit 104 uses the data processed and output by the sensor observation data processing unit 102 to assign a cost indicating the presence of an object to the grid corresponding to the position of an object detected by the sensor 120. The obstacle information generation unit 104 also assigns a cost indicating that the grid corresponding to the position of the planned occupied space within the mobile robot 300's travel environment is within the planned occupied space.
[0074] Based on the assigned grid cost values, the obstacle information generation unit 104 can identify the presence or absence of obstacles at the grid locations on the occupied grid map and the occupied status of each grid.
[0075] This allows the obstacle information generation unit 104 to quantify information about the presence or absence of obstacles using a predetermined cost value. In this case, the cost assigned to the grid indicating the presence of an obstacle may be a relatively large value within the set range, such as 255 or 254, or a relatively small value within the set range, such as 0. The cost value for the grid position can be determined as appropriate.
[0076] (Association between reference position and general shape information) As shown in Figure 3 above, the position detected by the sensor 120 is only a part of the object to be detected. Therefore, a representative point associated with the detectable position is predetermined as the reference position of the object. For each object, general shape information is defined to associate the general shape of the object with this reference position. Note that the object to be dealt with refers to anything other than the mobile robot 100, including, for example, the mobile robot 300.
[0077] For example, the obstacle information generation unit 104 derives the above-mentioned representative point from the point cloud information relating to the shape of the object detected by the sensor 120. Furthermore, by using the above-mentioned associated general shape information, the obstacle information generation unit 104 can reproduce the general shape information of the object at the location of the object detected by the sensor 120 by assigning the general shape information based on this representative point.
[0078] (Setting the planned occupied space using the general shape information of the object) Referring to Figure 5C, we will explain how to set the planned occupied space using the general shape information of the object. Figure 5C is a diagram illustrating the setting of the planned occupied space using the general shape information of the embodiment.
[0079] The approximate shape of the object is approximated using its general shape information. The shape indicated by the general shape information should be defined so as to encompass the actual shape of the object. The difference between the shape indicated by the general shape information and the actual shape of the object represents the margin from the point of contact with the object. By providing an appropriate margin for this difference, the above-mentioned margin can be ensured.
[0080] The cost of the above reference position is predetermined. It is advisable to propagate the cost of the reference position's grid to the grid corresponding to the range of shapes based on the general shape information placed relative to this reference position.
[0081] For example, the obstacle information generation unit 104 can define the same cost for the grid related to the general shape of the mobile robot 100 by propagating the cost of the grid at the reference position to the grid within the range based on the general shape information of the mobile robot 100.
[0082] This allows a desired cost to be assigned to a grid based on the shape information. The object can then be considered to exist at the location on the grid where this cost is assigned.
[0083] Furthermore, the obstacle information generation unit 104 can estimate the grid through which the object passes during its movement by translating the shape based on the object's general shape information in the direction of the object's movement. By repeating this translation a desired number of times, the obstacle information generation unit 104 can estimate the band-shaped area occupied by the object as it moves. The obstacle information generation unit 104 may define the area obtained by the estimation as the planned occupied space. This planned occupied space is an estimate of the range in which the object could become an obstacle. This may also be used as obstacle information.
[0084] For example, suppose the mobile robot 100 moves according to a determined amount of movement per unit time and direction of movement. If the mobile robot 100 continues its movement for a predetermined period, the mobile robot 100 itself can generate the area it can occupy within that predetermined period.
[0085] There is an alternative method for deriving the planned occupied space. When calculating the expected occupied space within the travel environment of an object based on its travel information, one method involves using the object's current travel path and general shape information. Since the travel path is represented by a set of coordinates within the environment, using the general shape information allows us to calculate the space occupied if the object were present at those coordinates.
[0086] Another method involves using the object's self-position estimation results and general shape information when calculating the expected occupied space within the driving environment of a stationary object. The method for calculating the planned occupied space is not limited to the above. Other methods may be chosen.
[0087] The obstacle information generation unit 104 may also set a cost to indicate the presence or occupation of an object in a grid that encompasses the size indicated by the general shape information of the mobile robot 100. In this case, for grids that are farther from the reference grid, the cost values may be distributed so that the cost decreases with distance.
[0088] The above exemplifies a management method that uses a grid of reference positions and the cost of those positions to manage the costs in the vicinity of a reference grid. However, the above methods for managing obstacle information are not limited to these examples.
[0089] (Setting the planned space occupied by other mobile robots) The obstacle information generation unit 104 may use the results estimated based on information obtained from other mobile robots to set the planned occupied space for other mobile robots. In this case, the obstacle information generation unit 104 can reduce the amount of information obtained from other mobile robots. This enables more efficient communication.
[0090] For example, when mobile robot 100 calculates the planned occupied space within the travel environment of mobile robot 300, the obstacle information generation unit 104 may use a method that utilizes the current travel path and general shape information of mobile robot 300. Similarly, when calculating the planned occupied space within the travel environment of a stationary mobile robot 300, the obstacle information generation unit 104 may use a method that utilizes the self-position estimation result and general shape information of mobile robot 300. The method for calculating the planned occupied space is not limited to the above.
[0091] (Setting of planned occupied space using travel priority information) When calculating the planned occupied space, the obstacle information generation unit 104 may prioritize registering the planned occupied space based on the driving priority within the driving environment.
[0092] In this case, the obstacle information generation unit 104 may omit calculating the planned occupied space of other objects based on the travel priority. For example, if the mobile robot 100 has the highest travel priority, it can first define its own planned occupied space without having to derive the planned occupied space of other objects and compare the interference situation.
[0093] Furthermore, if the mobile robot 100 does not have the highest travel priority, the obstacle information generation unit 104 may choose to derive the planned occupied space of other objects with a higher travel priority than its own.
[0094] The obstacle information generation unit 104 may compare the travel priority of the mobile robot 300 within the travel environment with the travel priority of the mobile robot 100 within the travel environment, and only calculate the planned occupied space if the travel priority of the mobile robot 300 is higher, and register it as an obstacle. In this way, the calculation of the planned occupied space for the mobile robot 300 may be switched on or off using the travel priority. Furthermore, when calculating the planned occupied space, the obstacle information generation unit 104 can calculate the planned occupied space projected onto a two-dimensional plane by using the width and depth of the general shape information of the mobile robot 300. Alternatively, the planned occupied space in three-dimensional space can be calculated by using the width, depth, and height of the general shape information. Note that the depth of the general shape information indicates the size in the direction along the direction of travel. The width of the general shape information indicates the size in the direction perpendicular to the direction of travel. To determine whether a passage is usable or not, it is advisable to use at least the width information of the general shape information.
[0095] Furthermore, when calculating the planned occupied space, it is not necessary to use all the coordinates of the travel route; a selection of coordinates may be used. Similarly, the general shape information may be approximated and used as a set of points at regular intervals.
[0096] As described above, if the obstacle information generation unit 104 detects an obstacle related to the movement of the mobile robot 100, it will include one of the following: (1) When the mobile robot 100 interferes with an obstacle located within the first planned occupied space. (2) When the first planned space for mobile robot 100 and the second planned space for mobile robot 300 interfere with each other, and furthermore, the priority for mobile robot 100 to use the first planned space is lower than the priority for mobile robot 300 to use the second planned space.
[0097] The obstacle information generation unit 104 may generate obstacle information to identify when there are obstacles related to the movement of the mobile robot 100. Furthermore, the obstacle information generation unit 104 may identify obstacles related to the movement of the mobile robot 100 based on the location information and general shape information of the obstacles.
[0098] (Generating travel routes) The path generation unit 105 generates a travel path from its current position to the target position based on the obstacle information output from the obstacle information generation unit 104. While algorithms such as Dijkstra's algorithm and A* (A-star) search algorithms are available for path generation, the unit is not limited to these. The algorithms described above seek the travel path with the lowest travel cost.
[0099] For example, if the obstacle information generation unit 104 generates "obstacle information that identifies when there are obstacles related to the movement of the mobile robot 100," the path generation unit 105 may generate first planned occupied space information for the mobile robot 100 related to the planned occupied space in order to avoid the obstacles based on that obstacle information.
[0100] Furthermore, the path generation unit 105 may generate first planned occupied space information indicating that the first planned occupied space is included in the passage IL1, based on a determination result using the width of the first planned occupied space for the mobile robot 100 and the width of the second planned occupied space for the mobile robot 300. In other words, the path generation unit 105 may set the first planned occupied space to include both the first and second planned occupied spaces in the passage IL1 if the sum of the widths of the first planned occupied space for the mobile robot 100 and the second planned occupied space for the mobile robot 300 is smaller than the width of the area available for movement within the passage IL1.
[0101] (Movement control of mobile robots) The movement control unit 106 controls the movement of the mobile robot 100 using the travel path output from the path generation unit 105 and the obstacle information generated by the obstacle information generation unit 104. Methods for calculating movement control values include, but are not limited to, the Dynamic Window Approach and the Elastic Band method. In addition to movement control, the movement control unit 106 may also update the current self-position information of the mobile robot 100. Furthermore, the movement control unit 106 may perform other types of control.
[0102] For example, the movement control unit 106 controls the movement of the mobile robot 100 using a desired planned occupied space (first planned occupied space). However, if there is information about obstacles related to this, the movement control unit 106 controls the movement of the mobile robot 100 using the desired planned occupied space (first planned occupied space) to be interrupted.
[0103] The sensor observation data processing unit 102, obstacle information generation unit 104, path generation unit 105, movement control unit 106, and driving information generation unit 107 may each be associated with the sensor control unit 101. If they are separate from the sensor control unit 101, the communication method between them may be a generally known method.
[0104] (Examples of application) As a first application example, the adjustment of the planned occupied space using communication between mobile robots will be described with reference to Figures 7 to 8B. Figures 7 to 8B are diagrams illustrating the adjustment of the planned occupied space using communication between mobile robots in the embodiment.
[0105] In the example shown in Figure 7, similar to the example shown in Figure 1B, mobile robot 100 and mobile robot 300 have reached positions on opposite sides of the passage IL1. Mobile robot 100 is in the stage of moving from point PA to point PB, and mobile robot 300 is in the stage of moving from point PB to point PA.
[0106] The difference from the example shown in Figure 1B above is that this example illustrates a case where the mobile robot 300 moves using passage IL1 without detouring to passage IL2.
[0107] If mobile robots 100 and 300 can communicate with each other from positions across the passage IL1 shown in Figure 7, they can be adjusted so that the occupied space OS_100 that mobile robot 100 plans to use for its movement and the occupied space OS_300 that mobile robot 300 plans to use for its movement do not interfere with each other.
[0108] As shown in Figure 8A, if the mobile robot 100 first determines the planned occupied space OS_100, the mobile robot 300 can obtain information about the planned occupied space OS_100 and attempt to secure the planned occupied space OS_300 while avoiding the planned occupied space OS_100. As shown in Figure 8B, the mobile robot 300 extracts a planned occupied space OS_300, which runs parallel to the planned occupied space OS_100, from within the passage IL1. The mobile robot 300 can then move using this planned occupied space OS_300.
[0109] As a second application example, a case of avoiding obstacles present in the passage of the embodiment will be described with reference to Figure 9A. Figure 9A is a diagram illustrating a case of avoiding obstacles present in the passage of the embodiment.
[0110] As shown in Figure 9A, the mobile robot 300 is stopped within the passage IL1. The mobile robot 300 transmits travel information indicating that it is stopped. This travel information may include, for example, that the current translational velocity is 0, the position information resulting from self-position estimation, and the robot's general shape information. Furthermore, this travel information may also include that the current translational acceleration, current rotational velocity, and current rotational acceleration are all 0.
[0111] Upon receiving such travel information, the mobile robot 100 can obtain information to identify the location and size of the planned occupied space OS_300 occupied by the mobile robot 300 that is stationary in the passage IL1. The mobile robot 100 sets a travel path to avoid this planned occupied space OS_300 and moves accordingly. The travel path of the mobile robot 100 shown in Figure 9A is an example of a travel path that avoids the stationary mobile robot 300.
[0112] In the above case, the path generation unit 105 may generate planned occupied space information (first planned occupied space information) relating to the planned occupied space for the mobile robot 100, which indicates the planned occupied space OS_300 (second planned occupied space) occupied by the mobile robot 300 or another planned occupied space (third planned occupied space) that avoids interference with the above-mentioned obstacle, based on the presence of obstacle information. The movement control unit 106 should then control the mobile robot 100 to move using the aforementioned planned occupied space (third planned occupied space).
[0113] As a third application example, an example of avoiding obstacles present in the passage of the embodiment will be described with reference to Figures 9B and 9C. Figures 9B and 9C are diagrams illustrating an example of avoiding obstacles present in the passage of the embodiment.
[0114] As shown in Figure 9B, the mobile robot 300 is stopped within the passage IL1. This mobile robot 300 is in a situation where it cannot transmit, for example, travel information indicating that it is stopped, or information necessary for position analysis. In this respect, it differs from the second application example.
[0115] In this case, the mobile robot 100 cannot obtain information to identify the location and size of the planned occupied space OS_300 occupied by the mobile robot 300 that is stationary in the passage IL1. Therefore, the mobile robot 100 may not be able to set up a route to avoid the mobile robot 300 that is stationary in the passage IL1 during the route setting stage. For example, a straight line route as shown in Figure 8B above is set up during the route setting stage. The mobile robot 100 starts moving within the passage IL1 using the route information indicating the straight line route. During the movement, the sensor 120 detects its approach to the mobile robot 300. As a result, the mobile robot 100 readjusts its route to avoid the mobile robot 300 and continues moving within the passage IL1.
[0116] Furthermore, if the general shape information of the mobile robot 300 can be used when setting the route during this detour, the accuracy of estimating the position of the mobile robot 300 can be improved. If the mobile robot 100 cannot use the general shape information of the mobile robot 300 when setting the detour route, it is advisable to ensure a sufficient distance between the mobile robot 100 and the mobile robot 300.
[0117] For example, as shown in Figure 3, if an undetected area occurs due to the shape of the mobile robot 300, it is advisable to define an allowable approach limit so as in the comparative example shown in Figure 9C, to prevent it from getting too close.
[0118] According to the above embodiment, the processing unit 110 for the mobile robot 100 comprises a path generation unit 105 and a movement control unit 106. The path generation unit 105 uses map information on which the planned movement path of the mobile robot 100 (first mobile robot) can be set to set a planned occupied space OS_100 (first planned occupied space) required when the mobile robot 100 moves, within a region indicated by the map information, along the planned movement path of the mobile robot. The movement control unit 106 controls the mobile robot 100 to move based on the planned movement path of the mobile robot 100. The path generation unit 105 includes information on the planned occupied space required when the mobile robot 300 (second mobile robot) moves as a condition for setting the planned movement path of the mobile robot 100. This makes it possible to move the mobile robots efficiently according to the conditions within the passage IL1 including the planned movement path. More specifically, the route generation unit 105 uses map information that includes a passage IL1 between point PA (first location) and point PB (second location) on which the planned movement route of the mobile robot 100 (first mobile robot) can be set. Within passage IL1, the route generation unit 105 sets a planned occupied space OS_100 (first planned occupied space) that the mobile robot 100 is expected to use when it moves, for the purpose of generating the mobile robot's planned movement route. The movement control unit 106 controls the mobile robot 100 to move using the planned movement route of the planned occupied space OS_100 (first planned occupied space). At that time, the route generation unit 105 may share information about the planned occupied space generated by the mobile robot 300 (second mobile robot) and include the shared information about the planned occupied space as a condition for setting the planned movement route of the mobile robot 100 (first mobile robot). The route generation unit 105 sets the planned occupied space OS_100 (first planned occupied space) based on the planned movement path of the mobile robot 100 (first mobile robot). For example, the route generation unit 105 may set the planned occupied space OS_100 (first planned occupied space) using information on the planned movement path of the mobile robot 100 (first mobile robot) and information on the general shape of the mobile robot 100. Furthermore, if there is a planned occupied space OS_300 (second planned occupied space) created by the mobile robot 300 (second mobile robot) within the passage IL1, and the planned occupied space OS_100 (first planned occupied space) and the planned occupied space OS_300 (second planned occupied space) interfere with each other, and if the priority for the mobile robot 100 to use the planned occupied space OS_100 (first planned occupied space) is higher than the priority for the mobile robot 300 to use the planned occupied space OS_300 (second planned occupied space), then the movement control unit 106 should control the mobile robot 100 to move using the planned occupied space OS_100 (first planned occupied space).
[0119] Furthermore, the sensor observation data processing unit 102 of the processing unit 110 generates observation data based on the detection results of the sensor 120. The communication unit 103 may acquire movement information of the (second mobile robot) related to the mobile robot 300 in the second planned occupied space.
[0120] The mobile robot 100 is equipped with a sensor 120, which allows it to measure its surrounding environment. The mobile robot 100 autonomously moves by estimating its own position based on pre-created map information of the surrounding environment and the measurement results of the sensor 120. In addition, the mobile robot 100 can identify obstacles that are not listed in the map information based on the measurement results of the sensor 120, and avoid them while moving.
[0121] As the number of mobile robots operating in such environments increases, so do the opportunities for them to detect and approach other mobile robots during autonomous movement. As described above, the mobile control system 1 can efficiently move the mobile robots by making the passages in question more efficient when the mobile robots are in close proximity to each other.
[0122] The mobile robot generates a path by incorporating the actual planned space occupied by other mobile robots in the passage IL1, based on the travel information of other mobile robots, including their path information, self-position estimation results, and general shape. This is expected to improve transport efficiency even if the opportunities for multiple mobile robots to travel in the passage increase. Furthermore, by using the mobile control system 1 to generate a path using the self-position estimation results and general shape of other stationary mobile robots, stationary robots can also be correctly recognized as obstacles.
[0123] Here, we present a typical example of how to handle the approach of two mobile robots, using the planned occupied space and the priority given to its setting.
[0124] For example, consider a scenario where mobile robot 100 and mobile robot 300 are traveling along the same path in the same direction. Mobile robot 300 is the lead vehicle, and mobile robot 100 follows behind it. If the speed of mobile robot 100 is slower than the speed of mobile robot 300, a situation will occur where mobile robot 100 catches up to mobile robot 300.
[0125] In this case, under condition A: if the preceding mobile robot 300 has a higher priority, the movement of mobile robot 300 takes precedence. Specifically, the planned occupied space generated by mobile robot 300 is set in the direction of movement of mobile robot 300. Mobile robot 300 can continue moving using its planned movement path. At this time, mobile robot 100, which has a lower priority, will have its ability to secure a planned occupied space restricted.
[0126] (A1) Mobile robot 100 follows mobile robot 300, maintaining a state where it is close to mobile robot 300 but not too close. For example, the space that mobile robot 100 is expected to occupy is limited because of the space that mobile robot 300 is expected to occupy. By using the space that mobile robot 100 is expected to occupy, it can follow mobile robot 300.
[0127] (A2) If the speed difference between mobile robot 100 and mobile robot 300 is greater than a predetermined value, mobile robot 100 may readjust its movement path to overtake mobile robot 300 and move using the newly set movement path.
[0128] In contrast, under condition B: if the priority of the preceding mobile robot 300 is low, the movement of mobile robot 100 will be prioritized. In this case, the following events may occur.
[0129] (B1) As mobile robot 100 approaches mobile robot 300, the approximate area of the location where mobile robot 300 is located and the planned movement path from mobile robot 300's current location may both be included in mobile robot 100's planned occupied space. In this case, due to priority, mobile robot 100's planned occupied space is set first. Even if mobile robot 300 attempts to create that planned occupied space, it cannot set the planned occupied space required for movement because it interferes with mobile robot 100's planned occupied space. As a result, mobile robot 300, unable to secure that planned occupied space, stops in place and waits until it can secure that space.
[0130] In the above situation, the stationary mobile robot 300 will be located within the space that mobile robot 100 is scheduled to occupy. In this case, mobile robot 100 will move using its scheduled path. If the sensor 120 of mobile robot 100 detects the stationary mobile robot 300, mobile robot 100 should readjust its path to avoid mobile robot 300 in the manner described above and continue moving. This will allow mobile robot 100 to overtake mobile robot 300.
[0131] At this stage, the position of the mobile robot 300 is outside the range of the mobile robot 100's planned occupied space. The mobile robot 300 attempts to establish a planned occupied space for movement using the movement path it was using until it stopped. The mobile robot 300 resumes movement within the range in which it was able to create that planned occupied space.
[0132] (B2) According to the algorithm in "(B1)" above, when mobile robot 300 is overtaken by mobile robot 100, it stops temporarily and mobile robot 100 takes evasive action. However, a predetermined rule may be set in advance so that mobile robot 300 takes evasive action to avoid the planned occupied space of mobile robot 100. For example, the leading mobile robot 300 moves to the left in the direction of the travel path to take evasive action to leave the planned occupied space of mobile robot 100. As a result, there are no obstacles in the planned occupied space of mobile robot 100, so mobile robot 100 can continue moving more quickly.
[0133] The mobile robot 300 may either reset its movement path from the position it moved to after avoiding the obstacle, or it may return to the position it was in before taking the avoidance action and then continue moving using the original movement path.
[0134] By having all mobile robots perform one of the methods listed above, each mobile robot can move autonomously.
[0135] (Second embodiment) A second embodiment will be described with reference to Figures 10 and 11. In this second embodiment, we will describe an example in which the controller 400 manages the movement control of the mobile robot 100A and the mobile robot 300A.
[0136] Figure 10 is a configuration diagram of the motion control system 1A according to the second embodiment. The mobile control system 1A comprises a mobile robot 100A, a mobile robot 300A, and a controller 400.
[0137] Mobile robot 100A corresponds to mobile robot 100 of mobile control system 1. Mobile robot 100A differs from mobile robot 100 in that it is configured to communicate with controller 400.
[0138] Mobile robot 300A corresponds to mobile robot 300 of mobile control system 1. Mobile robot 300A differs from mobile robot 300 in that it is configured to communicate with controller 400.
[0139] The controller 400 manages the mobile robot 100A, the mobile robot 300A, and other devices in the environment.
[0140] Next, we will explain the details of mobile robot 100A, focusing on the differences from mobile robot 100. The following explanation also serves as a description of mobile robot 300A.
[0141] Mobile robot 100A is equipped with a processing unit 110A in place of the processing unit 110 of mobile robot 100.
[0142] The processing unit 110A will now be described. The processing unit 110A includes a communication unit 103A, an obstacle information generation unit 104A, and a driving information generation unit 107A, instead of the communication unit 103, obstacle information generation unit 104, and driving information generation unit 107 of the processing unit 110.
[0143] The communication unit 103A transmits the movement information of the mobile robot 100A generated by the movement information generation unit 107A to the mobile robot 300A and the controller 400, and receives the movement information of the mobile robot 300A and the movement information from the controller 400. In addition to the processing performed by the obstacle information generation unit 104, the obstacle information generation unit 104A acquires driving information from the controller 400 and performs processing on this driving information. In addition to the processing performed by the driving information generation unit 107, the driving information generation unit 107A also performs processing to transmit driving information to the controller 400.
[0144] Figure 11 is a diagram illustrating the adjustment of the planned occupied space using communication in the second embodiment.
[0145] Mobile robot 100A and mobile robot 300A communicate with controller 400 respectively. Mobile robot 100A notifies controller 400 of its movement information. Mobile robot 300A notifies controller 400 of its movement information.
[0146] The controller 400 notifies the mobile robot 100A of the movement information of the mobile robot 300A and the environmental movement priority of the mobile robot 100A. The controller 400 also notifies the mobile robot 300A of the movement information of the mobile robot 100A and the environmental movement priority of the mobile robot 300A. As a result, the mobile robot 100A and the mobile robot 300A each receive the environmental movement priority notified by the controller 400.
[0147] For example, suppose mobile robot 100A has the highest priority for traveling within the environment, and mobile robot 300A has the next highest priority. In this case, because mobile robot 100A has the highest priority for traveling within the environment, the processing unit 110 performs the occupied space setting process without using the status of the occupied space set in passage IL1 as a condition. The processing unit 110 then uses the occupied space set here to move to position PB.
[0148] Furthermore, since the processing unit 310 of mobile robot 300A has the second highest priority for movement within the environment, it avoids the occupied space previously set by the processing unit 110 of mobile robot 100A, which has the highest priority for movement within the environment, and performs the process of setting its own occupied space. The processing unit 310 then uses the occupied space it has set to move to position PA.
[0149] As described above, a relatively simple priority control system allows for the allocation of occupied space in order of priority, enabling each mobile robot to move efficiently.
[0150] Next, the controller 400 will be described with reference to Figure 12. Figure 12 shows an example of the hardware configuration of the controller 400 in the embodiment. The controller 400 includes, for example, a CPU 400A, RAM (Random Access Memory) 400B, a non-volatile storage device 400C, a portable storage medium drive device 400D, an input / output device 400E, and a communication interface 400F. The controller 400 may include any processor such as a GPU instead of the CPU 400A. Also, some of the components shown in Figure 14 may be omitted.
[0151] The CPU 400A performs various processes described below by loading programs stored in the non-volatile storage device 400C, or programs stored in a portable storage medium mounted in the portable storage medium drive device 400D, into the RAM 400B and executing them. The RAM 400B is used as a working area by the CPU 400A. The non-volatile storage device 400C is, for example, an HDD, flash memory, or ROM. The portable storage medium drive device 400D is equipped with a portable storage medium such as a DVD, CD (Compact Disc), or SD® card. The input / output device 400E includes, for example, a keyboard, mouse, touch panel, or display device. The communication interface 400F functions as an interface for the controller 400 to communicate with other devices such as the mobile robot 100B.
[0152] Each functional unit implemented by the controller 400 is implemented, for example, by a hardware processor such as a CPU 400A or GPU executing a program (software) stored in a non-volatile memory device 400C or the like. Furthermore, some or all of the functional units of the controller 400 may be implemented by hardware (circuitry) such as an LSI, ASIC, or FPGA, or by the cooperation of software and hardware. The controller 400 is an example of a computer.
[0153] Returning to Figure 10, let's explain the movement control. Unlike the mobile robot 100, the mobile robot 100A in the movement control system 1A moves using the results of analysis processing by the CPU 400A of the external controller 400.
[0154] For example, the sensor control unit 101 of the processing unit 110A acquires the detection distance information generated by the sensor 120 and outputs it to the CPU 400A of the controller 400 via the communication unit 103.
[0155] The CPU 400A of the controller 400 acquires the observation data detected by the sensor 120 from the processing unit 110A via the communication interface 400F, performs analysis processing on the observation data detected by the sensor 120, and outputs the results of the analysis processing. The details of this process are as described in the embodiment above.
[0156] The movement control unit 106 of the processing unit 110A receives travel information, including a moving target, from the CPU 400A of the controller 400 via the communication unit 103 as a result of its analysis processing, and drives the movement mechanism 130 to the position indicated by the moving target.
[0157] The movement control system 1A should perform the process shown in Figure 6 above.
[0158] In the above embodiment of the mobile control system 1A, the CPU 400A is configured as part of a controller 400 that is separate from the mobile robot 100A. This is a difference from the mobile control system 1 of the first embodiment, but the mobile control system 1A has the same effects as the mobile control system 1.
[0159] For example, as shown in Figure 7 above, mobile robot 100A and mobile robot 300A can communicate directly. Furthermore, as shown in the communication configuration in Figure 11, mobile robot 100A and mobile robot 300A can communicate indirectly via controller 400.
[0160] The controller 400 acquires travel information of mobile robot 100A, mobile robot 300A, and other mobile robots, and manages their travel status. For this management, the controller 400 transmits travel information of other mobile robots related to the status of each mobile robot to each mobile robot. Furthermore, the controller 400 may separately generate travel information containing the following information as travel information of devices in the environment, and transmit it to the mobile robots to be managed. This travel information may be equivalent to the aforementioned travel information (Figure 5).
[0161] (Information management by controller 400) The controller 400 updates the following information it possesses, for example, when it receives travel information from each mobile robot and when it transmits travel information to each mobile robot. (1) Environmental information of the environment in which each mobile robot, such as mobile robot 100A and mobile robot 300A, is moving. (2) Operation status of each mobile robot managed by the controller 400 (3) Operating status of devices managed by controller 400
[0162] The information held and generated by the controller 400 is not limited to the above; it may also hold and generate other information. The controller 400 should update the above information as appropriate to use the information that shows the latest status.
[0163] By managing the information described above, the controller 400 can, for example, set the travel priority for each mobile robot. This allows the controller 400 to control the movement of each mobile robot more efficiently.
[0164] Note that the functions of controller 400 are not limited to those described above, and it may have other functions. The following explains in more detail how to set the driving priority.
[0165] (Drive priority setting by controller 400) The controller 400 may have a function to set the travel priority of the mobile robot 100A, mobile robot 300A, and the devices in the environment within the travel environment. The controller 400 sets the travel priority of each mobile robot in accordance with predetermined rules for determining the travel priority. When setting the travel priority, the controller 400 may also set a travel priority in place of the predetermined travel priority in accordance with predetermined rules. The above predetermined rules may be determined as appropriate.
[0166] (Route priority processing by mobile robot 100A) The mobile robot 100A performs movement control according to the travel priority set by the controller 400. The processing of each part related to this will be explained in order.
[0167] I will now explain the communications unit 103A. The communication unit 103A transmits the movement information of the mobile robot 100A generated by the movement information generation unit 107A to the mobile robot 300A and the controller 400. Furthermore, the communication unit 103A receives movement information from the mobile robot 300A or from the controller 400 and writes it to the storage unit 108. A generally known method may be used for communication with the mobile robot 300A and the controller 400.
[0168] The obstacle information generation unit 104A will now be described. In addition to the aforementioned obstacle information generation unit 104, the obstacle information generation unit 104A calculates the planned occupied space within the mobile robot 300A's travel environment based on the travel information of the mobile robot 300A received by the communication unit 103A. Furthermore, the obstacle information generation unit 104A calculates the planned occupied space based on the travel information received from the controller 400. The obstacle information generation unit 104A registers the calculated planned occupied space as obstacle information in the storage unit 108 for treatment as an obstacle.
[0169] Thus, the functionality of the obstacle information generation unit 104A is enhanced by the ability to utilize information about the planned occupied space based on the driving information received from the controller 400. The aforementioned methods can be applied to the management method of obstacle information and the method of utilizing information about the planned occupied space.
[0170] Furthermore, the obstacle information generation unit 104A updates the information on the planned occupied space using the travel information based on the travel priority determined by the controller 400. As a result, the mobile robot 100A performs travel priority processing according to the travel priority determined by the controller 400.
[0171] (Route priority processing by mobile robot 300A) Let me explain the mobile robot 300A. Mobile robot 300A differs from the aforementioned mobile robot 300 in that it can communicate with controller 400. Mobile robot 300A controls its own movement based on the movement information of mobile robot 100A obtained through communication with communication unit 103A and the movement information received from controller 400.
[0172] For example, in controlling the movement of the mobile robot 300A, the same control as that used for the mobile robot 100A when it receives travel information is implemented. More specifically, in controlling the movement of the mobile robot 300A, the use of information about the planned occupied space based on the travel information received from the controller 400 is added. As a result, the mobile robot 300A, like the mobile robot 100A, performs travel priority processing according to the travel priority determined by the controller 400.
[0173] According to the above embodiment, the movement control system 1A comprises a mobile robot 100, a mobile robot 300, and a controller 400. The controller 400 communicates with the processing unit 110 of the mobile robot 100 and the processing unit 310 of the mobile robot 300, respectively. The controller 400 transmits travel information related to the use of the passage IL1 to the processing unit 110 of the mobile robot 100 and the processing unit 310 of the mobile robot 300, respectively. As a result, the movement control system 1A can efficiently move each mobile robot according to the conditions within the passage IL1, including the planned travel route.
[0174] Furthermore, the controller 400 notifies the mobile robot 100 of the movement information of the mobile robot 300, and the controller 400 notifies the mobile robot 300 of the movement information of the mobile robot 100. In this way, the controller can transmit movement information related to the use of passage IL1 to both the mobile robot 100 and the mobile robot 300.
[0175] (Third embodiment) A third embodiment will be described with reference to Figure 13. In this third embodiment, an example of outputting driving information to the status display unit 150 will be described.
[0176] Figure 13 is a diagram showing the configuration of the third embodiment of the motion control system 1B. The mobile control system 1B comprises a mobile robot 100B, a mobile robot 300B, and a controller 400.
[0177] Mobile robot 100B corresponds to mobile robot 100A of the mobile control system 1A. The main difference between mobile robot 100B and mobile robot 100A is the addition of a state presentation unit 150.
[0178] Mobile robot 300B corresponds to mobile robot 300A of mobile control system 1A. The main difference between mobile robot 300B and mobile robot 300A is that mobile robot 300B has a state indication unit 150 added, similar to mobile robot 100B.
[0179] Next, we will explain the details of mobile robot 100B, focusing on the differences from mobile robot 100A. The following explanation also serves as a description of mobile robot 300B.
[0180] Mobile robot 100B is equipped with a processing unit 110B in place of the processing unit 110A of mobile robot 100A. Processing unit 110B is equipped with a communication unit 103B and an obstacle information generation unit 104B in place of the communication unit 103A and obstacle information generation unit 104A of processing unit 110A, and is further equipped with a state display unit 150.
[0181] The status display unit 150 is configured to include, for example, an output device such as a display or a speaker. The status display unit 150 is positioned within the vehicle body 10 in a location that does not obstruct the measurement of the surrounding environment by the sensor 120. The position of the status display unit 150 within the vehicle body 10 may be the front, rear, or left or right side of the mobile robot 100.
[0182] In addition to the communication processing performed by the communication unit 103A, the communication unit 103B also performs the process of supplying transmitted and received driving information to the status display unit 150.
[0183] The process for generating obstacle information by the obstacle information generation unit 104B may be the same as the process for the obstacle information generation unit 104A described above. The obstacle information generation unit 104B outputs the generated obstacle information to the state presentation unit 150.
[0184] The status display unit 150 outputs images, videos, sounds, etc., depending on the type of output device. The output method of the status display unit 150 is not limited to the above, and any general method for outputting information may be applied.
[0185] According to the embodiment, the status display unit 150 acquires obstacle information generated by the obstacle information generation unit 104B and driving information output from the communication unit 103B, and displays this information. The information displayed by the status display unit 150 may include information about detected obstacles, information about the planned occupied space of other mobile robots, information about the planned occupied space of mobile robot 100B, and so on.
[0186] In addition to the above, the state presentation unit 150 may present information based on the information stored in the memory unit 108 of the mobile robot 100B. For example, the above information may include information such as the current self-position.
[0187] According to at least one embodiment described above, the processing device includes a path generation unit and a movement control unit. The path generation unit uses map information on which the planned movement path of the first mobile robot can be set to set a first planned occupied space required when the first mobile robot moves, along the planned movement path of the mobile robot, within a region of the map information. The movement control unit controls the first mobile robot to move based on the planned movement path of the first mobile robot. The path generation unit includes information on the planned occupied space required when the second mobile robot moves as a condition for setting the planned movement path of the first mobile robot. This makes it possible to provide a processing device, a mobile robot, a movement control system, a processing method, and a program that can efficiently move the mobile robot according to the conditions in a passage including the planned movement path.
[0188] While several embodiments of the present invention have been described, these embodiments are presented as examples only and are not intended to limit the scope of the invention. These embodiments can be carried out in a variety of other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and their variations are included in the scope and spirit of the invention, as well as in the claims and their equivalents. [Explanation of symbols]
[0189] 1, 1A, 1B, ...Movement control system, 100, 100A, 100B, 300, 300A, 300B, 300P...Mobile robot, 110, 110A, 110B, 310...Processing device, 101...Sensor control unit, 102...Sensor observation data processing unit, 103...Communication unit, 104...Obstacle information generation unit, 105...Path generation unit, 106...Movement control unit, 107...Travel information generation unit, 108...Storage unit, 150...Status display unit, 400...Controller
Claims
1. A path generation unit that uses map information on which the planned movement path of the first mobile robot can be set, and sets a first planned occupied space required when the first mobile robot moves along the planned movement path of the mobile robot in a region of the map information, A movement control unit that controls the movement of the first mobile robot based on the planned movement path of the first mobile robot, and Equipped with, Within one passage including the aforementioned planned movement path, there is a second planned occupied space created by the second mobile robot. The first planned occupied space and the second planned occupied space interfere with each other, and further, If the priority for the first mobile robot to use the first planned occupied space is higher than the priority for the second mobile robot to use the second planned occupied space, The aforementioned path generation unit, The information regarding the space that the second mobile robot is expected to occupy when it moves is included in the conditions for setting the planned movement path of the first mobile robot. To generate first planned occupied space information indicating the first planned occupied space, Processing device.
2. The first planned occupied space and the second planned occupied space interfere with each other, If the priority for the first mobile robot to use the first planned occupied space is lower than the priority for the second mobile robot to use the second planned occupied space, The aforementioned path generation unit, The information regarding the space that the second mobile robot is expected to occupy when it moves is included in the conditions for setting the planned movement path of the first mobile robot. Based on the aforementioned obstacle information, first planned occupied space information of the first planned occupied space is generated to avoid the aforementioned obstacles. The apparatus according to claim 1.
3. The first planned occupied space and the second planned occupied space interfere with each other, and further, If the priority for the first mobile robot to use the first planned occupied space is higher than the priority for the second mobile robot to use the second planned occupied space, The aforementioned path generation unit, To generate first planned occupied space information indicating the first planned occupied space, The apparatus according to claim 2.
4. The aforementioned movement control unit, The presence of the aforementioned obstacle information allows for the control to interrupt the movement of the first mobile robot using the first planned occupied space. The apparatus according to claim 2.
5. The aforementioned path generation unit, The presence of the aforementioned obstacle information generates the first planned occupied space information, which indicates the second planned occupied space or a third planned occupied space that avoids interference with the aforementioned obstacle. The apparatus according to claim 2.
6. The aforementioned movement control unit, Control the first mobile robot to move using the third planned occupied space. The apparatus according to claim 5.
7. The aforementioned path generation unit, If the sum of the widths of the first and second planned occupied spaces is less than the width of the area available for movement within one passage, then the first planned occupied space information is generated to indicate the first planned occupied space, such that both the first and second planned occupied spaces are included within the one passage. The apparatus according to claim 3.
8. The obstacle information generation unit, Obstacles related to the movement of the first mobile robot are identified based on the location information and general shape information of the obstacles. The apparatus according to claim 2.
9. The processing apparatus according to claim 1 or 2, The above-mentioned mobile mechanism for the first mobile robot, A sensor for detecting the surrounding conditions of the first mobile robot, Equipped with, The aforementioned processing apparatus is A sensor observation data processing unit that generates observation data based on the detection results of the aforementioned sensor, A communication unit that acquires movement information of the second mobile robot, A mobile robot equipped with [a specific feature / equipment].
10. A first mobile robot equipped with the processing apparatus described in claim 1 or 2, The second mobile robot, A controller that communicates with the first mobile robot and the second mobile robot, Equipped with, The aforementioned controller, The first mobile robot and the second mobile robot are respectively transmitted travel information relating to the space that the mobile robots are expected to occupy when they move. A mobile control system.
11. Computers Using map information that allows setting the planned movement path of the first mobile robot, a first planned occupied space required when the first mobile robot moves is set in a region of the map information along the planned movement path of the mobile robot. The steps include controlling the first mobile robot to move based on its planned movement path, A step of setting the first planned occupied space by sharing information about the planned occupied space generated by the second mobile robot, and including the shared information about the planned occupied space in the conditions for setting the planned movement path of the first mobile robot. A processing method including, Within one passage including the aforementioned planned movement path, there is a second planned occupied space created by the second mobile robot. The first planned occupied space and the second planned occupied space interfere with each other, and further, If the priority for the first mobile robot to use the first planned occupied space is higher than the priority for the second mobile robot to use the second planned occupied space, To generate first planned occupied space information indicating the first planned occupied space, A processing method that includes the following.
12. If the first planned occupied space and the second planned occupied space interfere with each other, and the priority for the first mobile robot to use the first planned occupied space is lower than the priority for the second mobile robot to use the second planned occupied space, The information regarding the space that the second mobile robot is expected to occupy when it moves is included in the conditions for setting the planned movement path of the first mobile robot. Based on the aforementioned obstacle information, first planned occupied space information of the first planned occupied space is generated in such a way as to avoid the obstacles. The processing method according to claim 11, which includes the following:
13. On the computer, Using map information that allows setting the planned movement path of the first mobile robot, a first planned occupied space required when the first mobile robot moves is set in a region of the map information along the planned movement path of the mobile robot. A step of controlling the first mobile robot to move based on the planned movement path of the first mobile robot, The steps include: sharing information about the planned occupied space generated by the second mobile robot, including the shared information about the planned occupied space in the conditions for setting the planned movement path of the first mobile robot, and setting the first planned occupied space; Within one passage including the aforementioned planned movement path, there is a second planned occupied space created by the second mobile robot. The first planned occupied space and the second planned occupied space interfere with each other, and further, If the priority for the first mobile robot to use the first planned occupied space is higher than the priority for the second mobile robot to use the second planned occupied space, The steps include generating first planned occupied space information indicating the first planned occupied space, A program to execute.
14. If the first planned occupied space and the second planned occupied space interfere with each other, and the priority for the first mobile robot to use the first planned occupied space is lower than the priority for the second mobile robot to use the second planned occupied space, The information regarding the space that the second mobile robot is expected to occupy when it moves is included in the conditions for setting the planned movement path of the first mobile robot. Based on the aforementioned obstacle information, first planned occupied space information of the first planned occupied space is generated in such a way as to avoid the obstacles. The program according to claim 13 for causing the execution of the program.
Citation Information
Patent Citations
Distributed path planning device and method, and distributed path planning program
JP2004280213A
Autonomous mobile body
JP2012022467A
Movable body control system, movable body system, movable body control method, and program
JP2020008962A
Road Map Annotation for Deadlock-Free Multi-Agent Navigation
JP2020518890A
Carrying method, program, carrying system, and component mounting system
JP2021062935A