Collision prevention control method of multiple robots and multiple robot control system therefor
A distributed collision avoidance method for multiple robots uses wireless communication and path planning algorithms to navigate autonomously, addressing deadlock issues and enabling efficient navigation of diverse robot systems.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- CLOBOT CO LTD
- Filing Date
- 2024-11-08
- Publication Date
- 2026-05-15
AI Technical Summary
Existing collision avoidance systems for multiple robots often result in deadlocks and collisions when operating in the same space, particularly in narrow passages, as they lack a centralized server for coordinated navigation.
A distributed collision avoidance control method for multiple robots using wireless communication, data collection, occupancy and topology map generation, and path planning algorithms like CBS, enabling robots to navigate autonomously without a central server, switching between single and multi-robot modes based on environmental data.
Enables smooth navigation of multiple robots without collisions, allowing for flexible scalability and maintenance, optimizing paths in real-time, and accommodating robots of varying sizes and types.
Smart Images

Figure KR2024017642_15052026_PF_FP_ABST
Abstract
Description
Collision avoidance control method for multiple robots and multi-robot control system for the same
[0001] The present disclosure relates to a collision avoidance control method for multiple robots. More specifically, the present disclosure relates to a collision avoidance control method for multiple robots and a multiple robot control system for the same.
[0002] Robots equipped with autonomous navigation systems can move to their destinations while avoiding obstacles, but deadlocks can occur when multiple robots operate in the same space. Particularly in narrow passages such as doorways, situations where robots obstruct each other's paths, collide, or stop moving can frequently occur.
[0003] The purpose of the embodiments disclosed in this disclosure is to provide a collision prevention control method for multiple robots that prevents collisions between multiple robots and enables them to move autonomously without a separate server, and a multi-robot control system for the same.
[0004] The problems that this disclosure aims to solve are not limited to those mentioned above, and other unmentioned problems will be clearly understood by a person skilled in the art from the description below.
[0005] A multi-robot control system according to one aspect of the present disclosure for achieving the technical problem described above may include, in a multi-robot control system comprising a plurality of robots, wherein each of the plurality of robots communicates with another robot via wireless communication, recognizes the other robot connected via communication, and collects driving-related data including at least one of driving data of the recognized other robot and driving data of itself as a target robot; a map creation module that generates an occupancy grid map and a topology map according to a preset map creation standard based on the driving-related data; a traffic control module that selects a path mode of a single robot mode or a multi-robot mode of the target robot based on the collected driving-related data; a multi-robot path generation module that generates a first movement path to avoid collision with the other robot based on the topology map and the driving-related data when the multi-robot mode is selected; and an autonomous driving module that generates a second movement path of the target robot from a starting point to a destination based on the occupancy grid map when the single robot mode is selected.
[0006] The above map creation module can generate the occupancy map using the Simultaneous Localization and Mapping (SLAM) technique.
[0007] The above topological map is represented in the form of a graph including nodes and edges connecting the nodes, and the nodes may correspond to waypoints through which the target robot can move.
[0008] The above traffic control module can select the single robot mode or the multi-robot mode based on information about the area where the plurality of robots are operated, information about the distance to other robots received through the data collection module, and information about whether the first movement path generated through the multi-robot path generation module overlaps with the movement path of other robots.
[0009] The above multi-robot path generation module can generate a first movement path of the target robot using a CBS (Conflict-Based Search) algorithm.
[0010] The above multi-robot path generation module generates a first movement path of the target robot using the CBS algorithm that reflects driving-related data acquired by the other robot, and can generate the first movement path of the target robot using the CBS algorithm that reflects constraint conditions including the size, position, path, and obstacle information of the other robot.
[0011] The above other robots are at least one, and the multi-robot path generation module can set priorities between the target robot and the at least one other robot, and generate the first movement path so that the robot with the lower priority yields to the robot with the higher priority.
[0012] Additionally, a collision avoidance control method for multiple robots according to another aspect of the present disclosure is a method performed by a multiple robot control system comprising a plurality of robots, wherein each of the plurality of robots communicates with another robot via wireless communication, recognizes the other robot connected via communication, and collects driving-related data including at least one of driving data of the recognized other robot and driving data of itself, which is a target robot; and generates an occupancy grid map and a topology map according to a pre-set map generation standard based on the driving-related data.
[0013] A step of selecting a path mode of a single robot mode or a multi-robot mode of the target robot based on the collected driving-related data;
[0014] When the above multi-robot mode is selected, a step of generating a first movement path that avoids collision with other robots based on the phase map and the driving-related data; and
[0015] A method for controlling collision prevention of multiple robots, comprising the step of generating a second movement path of the target robot from a starting point to a destination based on the occupancy map when the single robot mode is selected.
[0016] The above-described collision avoidance control method for multiple robots may generate the occupancy map using a Simultaneous Localization and Mapping (SLAM) technique in the step of generating the occupancy map.
[0017] The above topological map is represented in the form of a graph including nodes and edges connecting the nodes, and the nodes may correspond to waypoints through which the target robot can move.
[0018] In addition to this, a computer program stored on a computer-readable recording medium for executing the present disclosure may be further provided.
[0019] In addition, a computer-readable recording medium for recording a computer program for executing a method for implementing the present disclosure may be further provided.
[0020] According to the aforementioned means for solving the problem of the present disclosure, by applying a distributed control method, robots can reach a destination smoothly without colliding with each other, and can provide the effect of autonomously preventing collisions in a multi-robot environment without a separate central server.
[0021] In addition, according to the aforementioned means for solving the problem of the present disclosure, the number of robots can be flexibly adjusted, making scalability and maintenance easy, and thereby preventing a failure of a single robot from affecting the entire system.
[0022] In addition, according to the aforementioned means for solving the problem of the present disclosure, the optimal driving mode can be switched in real time by utilizing path information between robots, area information within a map, and distance information, so the path of the robot can be optimized.
[0023] In addition, according to the aforementioned means for solving the problem of the present disclosure, an optimal path can be calculated even in an environment where various robots of different sizes or types are mixed, and can be flexibly applied to various robot systems.
[0024] The effects of the present disclosure are not limited to those mentioned above, and other unmentioned effects will be clearly understood by a person skilled in the art from the description below.
[0025] FIG. 1 is a block diagram of a multi-robot control system of the present disclosure.
[0026] FIGS. 2 to 17 are exemplary diagrams for explaining a collision prevention control method for multiple robots according to the present disclosure.
[0027] FIG. 18 is a flowchart illustrating a collision prevention control method for multiple robots according to the present disclosure.
[0028] Throughout this disclosure, the same reference numerals denote the same components. This disclosure does not describe all elements of the embodiments, and general content in the art to which this disclosure pertains or content that overlaps between embodiments is omitted. The terms “part, module, component, block” as used in the specification may be implemented in software or hardware, and depending on the embodiments, a plurality of “parts, modules, components, blocks” may be implemented as a single component, or a single “part, module, component, block” may include a plurality of components. Throughout the specification, when a part is described as being “connected” to another part, this includes not only direct connection but also indirect connection, and indirect connection includes connection via a wireless communication network.
[0029] Furthermore, when it is stated that a part "includes" a certain component, this means that, unless specifically stated otherwise, it does not exclude other components but may include additional components.
[0030] Throughout the specification, when it is stated that a component is located "on" another component, this includes not only cases where a component is in contact with another component, but also cases where another component exists between the two components.
[0031] The terms first, second, etc. are used to distinguish one component from another, and the components are not limited by the aforementioned terms.
[0032] Singular expressions include plural expressions unless there is an obvious exception in the context.
[0033] In each step, identification codes are used for convenience of explanation and do not describe the order of the steps; the steps may be performed differently from the specified order unless a specific order is clearly indicated in the context.
[0034] The operating principles and embodiments of the present disclosure will be described below with reference to the attached drawings.
[0035] In this specification, the term "device according to the present disclosure" includes all various devices capable of performing computational processing and providing results to a user. For example, the device according to the present disclosure may include all of a computer, a server device, and a portable terminal, or may be in the form of any one of these.
[0036] Here, the computer may include, for example, a notebook, desktop, laptop, tablet PC, slate PC, etc. equipped with a web browser.
[0037] The above server device is a server that processes information by communicating with an external device, and may include an application server, a computing server, a database server, a file server, a game server, a mail server, a proxy server, and a web server.
[0038] The above portable terminal may include, for example, all types of handheld-based wireless communication devices such as PCS (Personal Communication System), GSM (Global System for Mobile communications), PDC (Personal Digital Cellular), PHS (Personal Handyphone System), PDA (Personal Digital Assistant), IMT (International Mobile Telecommunication)-2000, CDMA (Code Division Multiple Access)-2000, W-CDMA (W-Code Division Multiple Access), WiBro (Wireless Broadband Internet) terminals, smartphones, etc., as well as wearable devices such as watches, rings, bracelets, anklets, necklaces, glasses, contact lenses, or head-mounted devices (HMDs).
[0039] Functions related to artificial intelligence according to the present disclosure are operated through a processor and memory. The processor may be composed of one or more processors. In this case, the one or more processors may be general-purpose processors such as CPUs, APs, and DSPs (Digital Signal Processors), graphics-dedicated processors such as GPUs and VPUs (Vision Processing Units), or artificial intelligence-dedicated processors such as NPUs. The one or more processors control the processing of input data according to predefined operation rules or artificial intelligence models stored in memory. Alternatively, if the one or more processors are artificial intelligence-dedicated processors, the artificial intelligence-dedicated processors may be designed with a hardware structure specialized for processing a specific artificial intelligence model.
[0040] FIG. 1 is a block diagram of a multi-robot control system of the present disclosure.
[0041] Hereinafter, the collision prevention control method of a multi-robot according to the present disclosure will be explained with reference to FIGS. 2 to 17, which are exemplary drawings for explaining the method.
[0042] Referring to FIG. 1, the multi-robot control system (1000) may include a plurality of robots (100).
[0043] The multi-robot control system (1000) of the present disclosure is configured to prevent collisions between multiple robots (100) without a separate server, and each of the multiple robots (100) can implement all operations such as data collection, path generation, and path movement.
[0044] Each of the multiple robots (100) collects data related to the surrounding environment and driving of other robots, and can determine whether a multi-robot control mode is required based on the collected driving data. If there are no other robots nearby, each of the multiple robots (100) can operate in single robot mode to move to a destination while avoiding obstacles. Meanwhile, if other robots are detected nearby, each of the multiple robots (100) can create a new path that does not overlap with the movement path of other robots. At this time, a list of waypoints is created based on the environmental information of the driving data collected by other robots, and a movement path to the final destination can be planned and moved. A detailed explanation of this will be provided later.
[0045] Each of the plurality of robots (100) includes a data collection module (110), a map creation module (120), a middleware module (130), a traffic control module (140), a multi-robot path generation module (150), and an autonomous driving module (160).
[0046] In the disclosed embodiment, the aforementioned plurality of robots (100) are divided into a target robot (100a) and other robots (100b). For convenience of explanation, the robot that is the subject of control is designated as the target robot. That is, the robot of reference numeral 100 described below can be considered to be the same robot as the target robot of reference numeral 100a. Although the other robot (100b) is disclosed separately for the purpose of distinguishing it from the target robot (100a) for convenience of explanation, the other robot (100b) may also be equipped with at least one of the plurality of robots (100) that has the same configurations (110, 120, 130, 140, 150, 160) as the target robot (100a).
[0047] The components illustrated in FIG. 1 are not essential for implementing each of the plurality of robots (100) according to the present disclosure, so each of the plurality of robots (100) described in the specification may have more or fewer components than the components listed above.
[0048] The data collection module (110) communicates with another robot (100b) via wireless communication, recognizes the other robot (100b) connected via communication, and can collect driving-related data including at least one of the driving data of the recognized other robot (100b) and its own driving data as the target robot (100a). The other robot (100b) may be at least one.
[0049] The above driving-related data includes, but is not limited to, the current location of other robots, the destination of other robots, waypoints of other robots, and the status of other robots, and any data related to driving may be possible. Additionally, the data collection module (110) may also collect or recognize driving-related data for the target robot (100a) corresponding to itself.
[0050] The data collection module (110) may be able to communicate with other robots (100b) nearby via short-range wireless communication such as Wi-Fi or Zigbee. The data collection module (110) may perform the role of direct communication or may perform communication through a separate communication module.
[0051] The map creation module (120) can generate an occupancy grid map and a topology map based on driving-related data and according to preset map creation criteria. The occupancy grid map may be grid-based.
[0052] Referring to FIG. 2, the map creation module (120) can generate an occupancy map using the Simultaneous Localization and Mapping (SLAM) technique. At this time, the occupancy map may include information such as the outer wall structure and static obstacles of the driving environment.
[0053] The map creation module (120) can create waypoints that the target robot (100a) can move to based on the grid-based occupancy map (201), taking into account the size of other robots (100b), static obstacles, etc., and create a topology map (203) by connecting the waypoints.
[0054] The above-described topological map can be represented in the form of a graph including nodes and edges connecting the nodes. The nodes may correspond to waypoints through which the target robot (100a) can move.
[0055] Each of the above nodes may consist of a main destination and a waiting place for robots (100a, 100b). When the target robot (100a) moves in a multi-robot control mode, it may move based on a topology map.
[0056] When generating a topology map, the map creation module (120) can manually generate it by drawing nodes and edges directly according to the user's operation control, or automatically generate it based on adjustable parameters.
[0057] At this time, the main parameters may include the minimum spacing between nodes, the maximum length of the edge, the complexity of the graph, etc. The map creation module (120) can set the minimum spacing between nodes to correspond to the size of the target robot (100a) and generate a map that enables general driving of multiple robots (100a, 100b) by taking into account the size of the target robot (100a).
[0058] For example, referring to FIGS. 3 to 7, the map creation module (120) can automatically create a topology map according to adjustable parameters, and perform a procedure including initial map creation (Fig. 3), parameter input (Fig. 4), map creation processing (Fig. 5), map creation completion (Fig. 6), and applying the map to the movement of the target robot (100a) after editing the map according to user operation control (Fig. 7).
[0059] The map creation module (120) creates a map for use by the target robot (100a), and can create a map in advance for the environment in which it will be located.
[0060] The middleware module (130) can store and manage the collected driving-related data in memory.
[0061] The middleware module (130) can serve as an interface with each module (110, 120, 140, 150, 160) within the robot (100). The middleware module (130) can enable communication between each module (110, 120, 140, 150, 160) within the robot (100) by utilizing communication protocols such as REST API and MQTT. The middleware module (130) can transmit necessary data and commands, etc., from each module.
[0062] The traffic control module (140) can select a path mode of a single robot mode or a multi-robot mode of the target robot (100a) based on collected driving-related data.
[0063] The traffic control module (140) can select a single robot mode or a multi-robot mode based on information about the area where multiple robots (100) are operated, information about the distance to other robots (100b) received through the data collection module (110), and information about whether the first movement path generated through the multi-robot path generation module (150) overlaps with the movement path of other robots (100b).
[0064] The traffic control module (140) can generate occupancy information of a topology map based on the size of the robot and collected obstacle information. The size of the robot may be the size of another robot (100b), but is not limited thereto and may also include the size of the target robot (100a).
[0065] FIG. 9 is a drawing showing an example of driving of a target robot (100a) based on a multi-robot mode, FIG. 10 is a drawing showing an example of a case where the target robot (100a) acquires driving-related data of other robots (100b), recognizes that other robots (100b) are waiting, and moves to a destination by bypassing them, FIG. 11 may be a drawing showing an example of a case where the target robot (100a) acquires driving-related data of other robots (100b), recognizes that obstacles (other robots (100b) and people) exist, and moves to a destination by bypassing them.
[0066] Referring to FIG. 9, the multi-robot path generation module (150) can generate a first movement path that avoids collision with other robots (100b) based on a phase map and driving-related data when a multi-robot mode is selected.
[0067] The above multi-robot mode may refer to a mode that enables a target robot (100a) to move along an optimal path on a graph from its current node to a destination node based on a topology map. At this time, referring to FIGS. 10 and 11, the multi-robot path generation module (150) can control the driving so that the target robot (100a) can move along an optimal path without deadlock by considering the movement paths and current positions of other robots (100b) driving in other multi-robot modes. Accordingly, the single robot mode described below does not avoid deadlock but enables relatively fast and smooth driving, while the multi-robot mode can avoid deadlock but can perform driving that is somewhat slower and stiffer than the single robot mode. The robot (100) of the multi-robot control system (1000) of the present disclosure can provide an optimal solution in both driving sections requiring speed and driving sections requiring deadlock prevention and accuracy through accurate switching between the two driving modes.
[0068] The multi-robot path generation module (150) can generate a first movement path using information obtained from the traffic control module (140) when generating the first movement path. The first movement path may also include whether the target robot (100a) or another robot (100b) is waiting.
[0069] The multi-robot path generation module (150) can generate a first movement path of the target robot (100a) using a CBS (Conflict-Based Search) algorithm.
[0070] The multi-robot path generation module (150) generates a first movement path using a CBS algorithm that reflects driving-related data (driving data of the other robot) obtained by the other robot (100b), and can generate the first movement path using a CBS algorithm that reflects constraints including the size, position, path, and obstacle information of the other robot (100b).
[0071] The multi-robot path generation module (150) can generate a first movement path to set priorities between the target robot (100a) and at least one other robot (100b) and to have the robot with the lower priority yield to the robot with the higher priority.
[0072] The single robot mode described below may mean that the target robot (100a) can move smoothly along the shortest path from its current location to an assigned destination based on a grid-based occupancy map. At this time, the autonomous driving module (160) can drive while avoiding only static obstacles existing on the map and dynamic obstacles detected by a detection sensor (e.g., LiDAR sensor, etc.) without considering the locations and paths of other robots (100b).
[0073] The autonomous driving module (160) can generate a second movement path of the target robot (100a) from the starting point to the destination based on an occupancy map when a single robot mode is selected.
[0074] Referring to FIG. 8, the autonomous driving module (160) can control the movement of the target robot (100a) according to a second movement path generated based on an occupancy map.
[0075] The autonomous driving module (160) can generate a second movement path for the target robot (100a) to move to a destination. The generated second movement path may be an array of (x, y) coordinates on a grid-based occupancy map.
[0076] The autonomous driving module (160) can perform dynamic obstacle avoidance and path following, and can also control the speed of the target robot (100a) so that the target robot (100a) can move.
[0077] Hereinafter, an example of an embodiment related to determining a multi-robot mode or a single-robot mode of a target robot (100a) will be described.
[0078] Meanwhile, the traffic control module (140) can determine whether to switch to a multi-robot mode based on a multi-robot mode judgment condition that includes at least one of whether a pre-set multi-robot usage area is included within the driving area, whether there is path overlap, whether there is proximity, and whether path updates are considered. At this time, the traffic control module (140) can make decisions such as changing or maintaining the path mode through the transmission and reception of information with the multi-robot path generation module (150) or the autonomous driving module (160).
[0079] For example, determining whether a pre-set multi-robot usage area is included within the driving area may be intended to identify sections requiring cooperative driving to prevent deadlock.
[0080] On the map, there may be sections such as intersections and one-way passages where cooperative driving is required to prevent deadlock.
[0081] When generating a movement path, the multi-robot path generation module (150) or the autonomous driving module (160) can check whether a pre-set multi-robot usage area is included in the movement path. If the pre-set multi-robot usage area is included in the movement path, the module (150, 160) can determine the driving mode in advance as a multi-robot mode through the transmission and reception of information with the traffic control module (140).
[0082] For example, referring to FIG. 12, if a multi-robot usage area (MA) exists in sections A, B, C, D, E, and F and another robot (100b) is located in this area, the multi-robot path generation module (150) can generate a first movement path so that the target robot (100a) can avoid the other robot (100b).
[0083] As another example, determining whether there is path overlap may be for determining whether a multi-robot mode is required in a situation where the driving path of the target robot (100a) has changed. The driving path refers to the path that the target robot (100a) is actually moving along, and may be different from the pre-set first driving path.
[0084] A second movement path based on a single robot mode may be a path in which the target robot (100a) avoids only obstacles without considering the paths of other robots (100b).
[0085] The autonomous driving module (160) can change the driving mode to a multi-robot mode through the traffic control module (140) by considering that when the target robot (100a) moves along a second movement path based on a single robot mode on a phase map, avoidance and deadlock prevention are required if the movement path overlaps with another robot (100b).
[0086] The autonomous driving module (160) can determine whether there is path overlap by checking whether the movement paths of other robots (100b) overlap at the same time.
[0087] For example, assuming t is from 0 to n, one node can be occupied at each time t. The autonomous driving module (160) can determine that there is a path overlap if the same node is detected at the same time t.
[0088] In one embodiment, referring to FIG. 13, when the second movement path of the target robot (100a) is [A -> B -> C -> …] and the second movement path of the other robot (100b) is [C->C->C-> …], the autonomous driving module (160) can confirm that the path overlaps at C.
[0089] In another embodiment, referring to FIG. 14, it can be seen that the movement paths of the target robot (100a) and the other robot (100b) overlap at the same time. When the second movement path of the target robot (100a) is [A -> B -> C -> …] and the second movement path of the other robot (100b) is [A' -> B -> C -> …], the autonomous driving module (160) can detect the path overlap at B.
[0090] As another example, checking the proximity distance may be for the purpose of preventing physical collisions and recognizing the need for cooperative driving between multiple robots (100).
[0091] The traffic control module (140) of the target robot (100a) can continuously measure the distance from other robots (100b) in the vicinity through the data collection module (110). When the distance from other robots (100b) becomes closer than or equal to a preset distance standard, the traffic control module (140) can switch to a multi-robot mode to plan cooperative driving because there is a risk of collision.
[0092] As another example, whether to consider a path update may be determined based on driving-related data obtained from another robot (100b), when a movement path update is necessary.
[0093] For example, a target robot (100a) and another robot (100b) exist, and the other robot (100b) can transmit driving-related data to the target robot (100a), including that there is an obstacle in a specific area (obstacle observation information of FIG. 15).
[0094] The traffic control module (140) of the target robot (100a) may request the creation of a movement path to the corresponding module (e.g., 150, 160) according to the determined driving mode, if there is a new movement path (e.g., a detour path) that is more cost-effective than maintaining the existing movement path, based on the driving-related data (driving data of the other robot) of the acquired other robot (100a) that does not overlap with the movement path of the other robot (100b), but there is a new movement path (e.g., a detour path).
[0095] Hereinafter, an example will be given in which a first movement path is generated by considering driving-related data including environmental information obtained from another robot (100b) and the robot size when in multi-robot mode. The robot size may be the size of another robot (100b) or the target robot (100a), and if it is the size of another robot, it may be obtained from the other robot (100b).
[0096] The multi-robot path generation module (150) can generate a topology map to prevent collisions between multiple robots (100a, 100b) and to generate an efficient path. The multi-robot path generation module (150) can generate a topology map considering the size of each of the multiple robots (100a, 100b) from a SLAM map given first, apply the position, path, and obstacle information of other robots (100b) on the generated topology map, and generate a first movement path that does not overlap with them.
[0097] The multi-robot path generation module (150) may be based on the CBS algorithm when generating the first movement path. At this time, the CBS-based path generation algorithm can plan the paths of multiple robots (100a, 100b) while avoiding collisions by combining high levels and low levels.
[0098] The above high level can detect situations where collisions occur and be responsible for coordination between groups to avoid collisions. When applying the high level, the multi-robot path generation module (150) can generate a movement path based on the starting point and destination of each robot and detect groups where collisions occur. At this time, the collision group can be represented as a collision node. To resolve the collision conditions of the collision node, collision constraints are generated, and the movement paths of each of the multiple robots (100a, 100b) are replanned in consideration of this, thereby obtaining a node (solution) that satisfies all collision constraints.
[0099] For example, basic collision node constraints may include node constraints and link constraints. The node constraints may prevent the target robot (100a) and the other robot (100b) from occupying the same node at the same time, and the link constraints may prevent them from moving the same edge in opposite directions at the same time.
[0100] The aforementioned low level can serve the role of planning a path to avoid collisions between each robot (100a, 100b) within a collision group. When applying the low level, the multi-robot path generation module (150) can execute a path planning algorithm for the robots within the collision group and search for an optimal path that satisfies collision constraints. The multi-robot path generation module (150) can modify the first movement path of the target robot (100a) according to the collision constraints and generate a collision avoidance path that can reach the destination.
[0101] For example, referring to FIG. 16, when each grid is a node, adjacent nodes have a topology map connected between each node, and may consist of a total of 16 nodes and links between adjacent nodes. Here, the target robot (100a) (Robot 1) and other robot (100b) (Robot 2) may each want to move to a destination.
[0102] At this time, the multi-robot path generation module (150) can calculate as follows using the CBS algorithm. In FIG. 16, circles 1 to 11 may represent high-level conflict nodes. The conflict nodes may have constraints and low-level solutions for each robot (100a, 100b). For example, the first conflict node may be the movement path of each robot (100a, 100b) when there are no constraints. At t=4, the first conflict node may result in both robots (100a, 100b) occupying B3 together. Accordingly, the multi-robot path generation module (150) may add node constraints to prevent them from occupying B3 together, and repeat the process until a movement path satisfying all added constraints is obtained.
[0103] The multi-robot control system (1000) described above can generate an efficient movement path by adding collected driving environment information and driving-related data, including robot size, as constraints to the CBS algorithm. The driving environment information may include dynamic obstacle information. The multi-robot path generation module (150) can detect obstacles through a camera (not shown) equipped with itself and calculate the location of the detected obstacles. Referring to FIG. 11, the multi-robot path generation module (150) can consider the calculated dynamic obstacles as virtual other robots occupying a specific node and add them as obstacle constraints to the CBS algorithm to generate a movement path that bypasses the specific node. At this time, the dynamic obstacles may be set as an area composed of multiple nodes, not just a single node.
[0104] As another example, referring to FIG. 17, the multi-robot path generation module (150) can generate a first movement path so that when the size of the other robot (100b) is relatively large, the robot (100) can move by bypassing the other robot (100b) by occupying not only one node but also several surrounding nodes as a constraint.
[0105] As another example, the multi-robot path generation module (150) can determine which robot to yield by setting priorities among multiple robots (100a, 100b) and adding costs according to the priority to the costs of high-level collision nodes according to the set priorities. Through this, an efficient first movement path according to priorities can be generated.
[0106] For example, referring to Fig. 16, the nodes that create a path to the destination while passing through all constraints may be nodes 4, 7, 8, 9, 10, and 11. In this case, if the priority of another robot (Robot 2) is relatively low, the cost can be added for the solution where the target robot (Robot 1) yields. Accordingly, either node 8 or 10 can be selected.
[0107] Priorities can be determined according to the needs of the user (e.g., customer). Basically, when a task (e.g., serving request, material transfer, etc.) is requested, the multi-robot path generation module (150) assigns a given destination to each of the robots (100a, 100b) and sets the priority higher in the order in which the task was requested earlier. In addition, the multi-robot path generation module (150) can increase the priority of the target robot (100a) performing a specific pre-set task so that when a deadlock occurs with other robots (100b), other robots (100b) with lower priority can yield.
[0108] Although not shown, each of the multiple robots (100) may additionally be equipped with a memory, a communication module, an output module, and an input module.
[0109] The memory can store a computer program for providing a collision avoidance control method for multiple robots, and the stored computer program can be read and executed by the above-described configurations (110, 120, 130, 140, 150, 160). The memory can store any form of information generated or determined by the above-described configurations (110, 120, 130, 140, 150, 160) and any form of information received by the communication module.
[0110] The memory can store data supporting various functions of each of the plurality of robots (100), programs for the operation of the above-described configurations (110, 120, 130, 140, 150, 160), input / output data, and can store a plurality of application programs (or applications) running on each of the plurality of robots (100), data for the operation of each of the plurality of robots (100), and commands. At least some of these application programs can be downloaded from an external server via wireless communication.
[0111] Such memory may include at least one type of storage medium among flash memory type, hard disk type, SSD type (Solid State Disk type), SSD type (Silicon Disk Drive type), multimedia card micro type, card type memory (e.g., SD or XD memory, etc.), RAM (Random access memory; RAM), SRAM (Static random access memory), ROM (Read-only memory; ROM), EEPROM (Electrically erasable programmable read-only memory), PROM (Programmable read-only memory), magnetic memory, magnetic disk, and optical disk. Additionally, the memory may be a database that is separate from the device but connected via wired or wireless connection.
[0112] The communication module may include one or more components that enable communication with an external device, and may include, for example, at least one of a broadcast receiving module, a wired communication module, a wireless communication module, a short-range communication module, and a location information module.
[0113] The output module can display a user interface (UI) for providing various information related to collision avoidance control of multiple robots. The output module can output information of any form generated or determined within the robot (100) and information of any form received by the communication module.
[0114] The output module may include at least one of a liquid crystal display (LCD), a thin film transistor liquid crystal display (TFT LCD), an organic light-emitting diode (OLED), a flexible display, and a 3D display. Some of these display modules may be configured to be transparent or light-transmitting so that the outside can be seen through them. This may be referred to as a transparent display module, and representative examples of such transparent display modules include TOLED (Transparent OLED).
[0115] The input module can receive information entered by a user. The input module may be equipped with keys and / or buttons on a user interface or physical keys and / or buttons for receiving information entered by a user. A computer program for controlling a display according to embodiments of the present disclosure may be executed in accordance with user input through the input module.
[0116] FIG. 18 is a flowchart illustrating a collision prevention control method for multiple robots according to the present disclosure.
[0117] The collision prevention control method for multiple robots described below may reflect all operations of the multi-robot control system (1000) described with reference to FIGS. 1 to 19 above, but for the convenience of explanation, redundant detailed descriptions will be omitted.
[0118] A multi-robot control system (1000) may include a plurality of robots. Each of the plurality of robots (100) may include a data collection module (110), a map creation module (120), a middleware module (130), a traffic control module (140), a multi-robot path generation module (150), and an autonomous driving module (160).
[0119] A multi-robot control system (1000) communicates with another robot (100b) via wireless communication through a data collection module (110) of a robot (100), recognizes the other robot (100b) connected via communication, and can collect driving-related data including at least one of the driving data of the recognized other robot (100b) and its own driving data as a target robot (100a) (1100).
[0120] The robot (100) can generate an occupancy grid map and a topology map based on pre-set map generation criteria according to driving-related data through a map generation module (120) (1200).
[0121] In the step of generating the above-mentioned occupancy map, the map creation module (120) can generate the occupancy map using the Simultaneous Localization and Mapping (SLAM) technique.
[0122] The above-mentioned topological map can be represented in the form of a graph including nodes and edges connecting the nodes. The nodes may correspond to waypoints through which the target robot (100a) can move.
[0123] The robot (100) can select a path mode of a single robot mode or a multi-robot mode of the target robot (100a) based on driving-related data collected through the traffic control module (140) (1300).
[0124] When a multi-robot mode is selected through the multi-robot path generation module (150), the robot (100) can generate a first movement path that avoids collision with the other robot (100b) based on the phase map and the driving-related data (1400).
[0125] When a single robot mode is selected through the autonomous driving module (160), the robot (100) can generate a second movement path of the target robot (100a) from the starting point to the destination based on the occupancy map (1500).
[0126] Meanwhile, the disclosed embodiments may be implemented in the form of a recording medium that stores instructions executable by a computer. The instructions may be stored in the form of program code and, when executed by a processor, may generate a program module to perform the operation of the disclosed embodiments. The recording medium may be implemented as a computer-readable recording medium.
[0127] Computer-readable recording media include all types of recording media that store instructions that can be decoded by a computer. Examples include ROM (Read Only Memory), RAM (Random Access Memory), magnetic tape, magnetic disk, flash memory, optical data storage devices, etc.
[0128] As described above, the disclosed embodiments have been explained with reference to the attached drawings. Those skilled in the art will understand that the present disclosure may be practiced in forms different from the disclosed embodiments without changing the technical spirit or essential features of the present disclosure. The disclosed embodiments are illustrative and should not be interpreted restrictively.
Claims
1. In a multi-robot control system including multiple robots, Each of the above plurality of robots is, A data collection module that communicates with another robot via wireless communication, recognizes the other robot connected via communication, and collects driving-related data including at least one of the driving data of the recognized other robot and the driving data of itself, which is the target robot; A map creation module that generates an occupancy grid map and a topology map according to preset map generation criteria based on the above driving-related data; A traffic control module that selects a path mode of a single robot mode or a multi-robot mode of the target robot based on the collected driving-related data; When the above multi-robot mode is selected, a multi-robot path generation module that generates a first movement path to avoid collision with other robots based on the phase map and the driving-related data; and A multi-robot control system comprising an autonomous driving module that generates a second movement path of the target robot from a starting point to a destination based on the occupancy map when the single robot mode is selected.
2. In Paragraph 1, The above map creation module is, A multi-robot control system that generates the occupancy map using the SLAM (Simultaneous Localization and Mapping) technique.
3. In Paragraph 1, The above topological map is, It is represented in the form of a graph including nodes and edges connecting the nodes, and The above node corresponds to a waypoint where the target robot can move, in a multi-robot control system.
4. In Paragraph 1, The above traffic control module is, A multi-robot control system that selects the single robot mode or the multi-robot mode based on information about the area where the plurality of robots are operated, information about the distance to other robots received through the data collection module, and information about whether the first movement path generated through the multi-robot path generation module overlaps with the movement path of other robots.
5. In Paragraph 1, The above multi-robot path generation module is, A multi-robot control system that generates a first movement path of the target robot using a CBS (Conflict-Based Search) algorithm.
6. In Paragraph 5, The above multi-robot path generation module is, A multi-robot control system that generates a first movement path of the target robot using the CBS algorithm that reflects driving-related data acquired by the other robot, wherein the first movement path of the target robot is generated using the CBS algorithm that reflects constraint conditions including the size, position, path, and obstacle information of the other robot.
7. In Paragraph 6, The aforementioned other robots are at least one or more, and The above multi-robot path generation module is, A multi-robot control system that sets priorities between the target robot and at least one other robot, and generates a first movement path so that the robot with the lower priority yields to the robot with the higher priority.
8. A method performed by a multi-robot control system comprising multiple robots, A step in which each of the plurality of robots communicates with other robots via wireless communication, recognizes the other robot connected via communication, and collects driving-related data including at least one of the driving data of the recognized other robot and the driving data of the target robot itself; A step of generating an occupancy grid map and a topology map according to preset map generation criteria based on the above driving-related data; A step of selecting a path mode of a single robot mode or a multi-robot mode of the target robot based on the collected driving-related data; When the above multi-robot mode is selected, a step of generating a first movement path that avoids collision with other robots based on the phase map and the driving-related data; and A method for controlling collision prevention of multiple robots, comprising the step of generating a second movement path of the target robot from a starting point to a destination based on the occupancy map when the single robot mode is selected.
9. In Paragraph 8, In the step of generating the above occupancy map, A collision avoidance control method for multiple robots that generates the occupancy map using the SLAM (Simultaneous Localization and Mapping) technique.
10. In Paragraph 8, The above topological map is, It is represented in the form of a graph including nodes and edges connecting the nodes, and A multi-robot collision prevention control method in which the above-mentioned node corresponds to a waypoint where the target robot can move.