Method, apparatus and program for path planning of mobile robots

By setting nodes and determining a global path for mobile robots using map information and integrating local path planning, the method enhances movement efficiency and obstacle avoidance, addressing the limitations of conventional path planning methods.

KR103037092B1Active Publication Date: 2026-11-03TEAM CORE CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
KR1020240120607
Authority / Receiving Office
KR · KR
Patent Type
Patents
Current Assignee / Owner
Filing Date
2024-09-05
Publication Date
2026-11-03
Estimated Expiration
2044-09-05

AI Technical Summary

Technical Problem

Conventional mobile robot path planning methods struggle to adapt to real-time environmental changes, leading to reduced movement efficiency and inability to effectively avoid new obstacles.

Method used

A method for setting a path for a mobile robot involves setting multiple nodes based on map information, determining a global path using these nodes, and controlling the robot to move via this path, while incorporating local path planning to adapt to changing environments and obstacles.

Benefits of technology

The method enables the mobile robot to move more efficiently and optimally to a destination, effectively avoiding obstacles and adapting to real-time changes, thereby improving travel time, energy consumption, and task accuracy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 112024097578916-PAT00001_ABST
    Figure 112024097578916-PAT00001_ABST
Patent Text Reader

Abstract

A method for setting a path for a mobile robot according to various embodiments of the present invention is disclosed. The method may include: a step of setting a plurality of nodes based on map information regarding a mission execution area of ​​the mobile robot; a step of determining a global path using two or more of the plurality of nodes; and a step of controlling the mobile robot to move to the destination via the global path when a destination is assigned to the mobile robot.
Need to check novelty before this filing date? Find Prior Art

Description

Technology Field

[0001] The present invention relates to a method, device, and program for setting a path of a mobile robot, and specifically to a method, device, and program for setting a path of a mobile robot utilizing a global path. Background Technology

[0003] Mobile robots refer to mechanical devices capable of moving autonomously in various environments and performing specific tasks. These robots play an important role in many fields, such as moving goods in logistics warehouses, transporting medical supplies in hospitals, cleaning in public places, and serving food to customers in restaurants.

[0004] For example, serving robots are a type of mobile robot used to provide beverages or food to customers in restaurants, cafes, hotels, and the like. Serving robots receive customer orders, pick up food from the kitchen, and then autonomously move to the table to complete the serving. These robots provide food to customers quickly and accurately, and can contribute to improving the quality of service and solving the problem of labor shortages.

[0005] Meanwhile, mobile robots primarily reach their target destinations by planning paths in real-time and avoiding obstacles through autonomous driving technology. This technology utilizes various sensors, such as LiDAR, cameras, and ultrasonic sensors, to perceive the robot's surrounding environment and determine the optimal path by processing data in real-time. Furthermore, mobile robots move along this path and are equipped with the capability to avoid unexpected obstacles.

[0006] Conventional mobile robot control algorithms primarily move along pre-set paths, during which the robot plans the route based on location information regarding the destination and pre-entered obstacle data. However, this approach has limitations in adapting to environments that change in real time. For instance, if a new obstacle appears, the robot may lack the ability to immediately recognize and avoid it, and movement efficiency may be reduced due to continuously encountering the obstacle.

[0007] Therefore, research is needed on a path setting method for a mobile robot that can increase movement efficiency. In this regard, Korean Published Patent Application No. 10-2023-0122349 discloses a collision avoidance control method for a mobile robot based on virtual obstacles. The problem to be solved

[0009] The present invention is conceived in response to the aforementioned background technology and aims to provide a method, apparatus, and program for setting a path of a mobile robot.

[0010] The technical problems of the present invention are not limited to those mentioned above, and other unmentioned technical problems will be clearly understood by those skilled in the art from the description below. means of solving the problem

[0012] According to an embodiment of the present invention for solving the problem described above, a method for setting a path for a mobile robot is disclosed. The method may include: a step of setting a plurality of nodes based on map information regarding a mission execution area of ​​the mobile robot; a step of determining a global path using two or more of the plurality of nodes; and a step of controlling the mobile robot to move to the destination via the global path when a destination is assigned to the mobile robot.

[0013] In an alternative embodiment, the step of setting a plurality of nodes based on map information regarding an area where a mobile robot performs a mission may include: overlapping a plurality of points having a pre-set interval on a two-dimensional map included in the map information; and setting the points among the overlapped points that overlap with the two-dimensional map as the plurality of nodes.

[0014] In an alternative embodiment, the step of determining a global path using two or more of the plurality of nodes may include: a step of extracting at least one optimal path between each of at least one starting point and each of at least one target point included in the mission area; and a step of determining the global path based on a plurality of optimal path nodes included in the at least one optimal path.

[0015] In an alternative embodiment, the step of determining the global path based on a plurality of optimal path nodes included in the at least one optimal path may include: a step of recognizing a first node that is most frequently included in the at least one optimal path among the plurality of optimal path nodes; a step of recognizing a second node that is second most frequently included in the at least one optimal path among the plurality of optimal path nodes; and a step of determining the path connecting the first node and the second node as the global path.

[0016] In an alternative embodiment, the step of determining the global path based on a plurality of optimal path nodes included in the at least one optimal path may include: a step of recognizing a first node most frequently included in the at least one optimal path among the plurality of optimal path nodes; a step of recognizing a third node most frequently included in the at least one optimal path among adjacent nodes located closest to the first node; and a step of determining the path connecting the first node and the third node as the global path.

[0017] In an alternative embodiment, the step of determining the global path based on a plurality of optimal path nodes included in the at least one optimal path may include: a step of recognizing a first node most frequently included in the at least one optimal path among the plurality of optimal path nodes; a step of recognizing a fourth node most frequently included in the at least one optimal path among surrounding nodes existing within a preset radius from the first node; and a step of determining the path connecting the first node and the fourth node as the global path.

[0018] In an alternative embodiment, the method further comprises: a step of monitoring whether the mobile robot performs local path planning while driving; and a step of modifying the global path based on the number of times the local path planning has been performed and the avoidance-inducing node associated with the local path planning; and, if the avoidance-inducing node is included in the global path, the method may be characterized by controlling the mobile robot to move by avoiding the avoidance-inducing node, while passing through the remaining nodes included in the global path.

[0019] In an alternative embodiment, the step of modifying the global path may include: a step of recognizing a specific node that caused the local path planning to be performed more than a preset number of times; and a step of re-determining the global path so as not to include the specific node if the specific node is a node included in the global path.

[0020] According to one embodiment of the present invention for solving the above-described problem, an apparatus is disclosed. The apparatus comprises: a memory for storing one or more instructions; and a processor for executing the one or more instructions stored in the memory, and the processor can perform the above-described methods by executing the one or more instructions.

[0021] According to one embodiment of the present invention for solving the above-described problem, a computer program stored on a recording medium readable by a computer is disclosed, which is combined with a computer, which is hardware, to perform the above-described methods.

[0022] Other specific details of the present invention are included in the detailed description and drawings. Effects of the invention

[0024] The present invention can move a mobile robot along a more efficient and optimized path by determining a global path and controlling the robot to move to a destination via it.

[0025] In addition, the present invention can control the mobile robot to effectively avoid obstacles that occur during driving by modifying the global path by reflecting local path planning data.

[0026] The effects of the present invention 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. Brief explanation of the drawing

[0028] FIG. 1 is a drawing illustrating a system according to one embodiment of the present invention. FIG. 2 is a hardware configuration diagram of a computing device according to one embodiment of the present invention. FIGS. 3 to 5 are flowcharts illustrating an example of a path setting method for a mobile robot according to an embodiment of the present invention. FIGS. 6 to 10 are drawings for illustrating examples of various nodes according to an embodiment of the present invention. Specific details for implementing the invention

[0029] Various embodiments are now described with reference to the drawings. In this specification, various descriptions are provided to facilitate an understanding of the invention. However, it is evident that these embodiments can be practiced without such specific descriptions.

[0030] As used herein, terms such as “component,” “module,” “system,” etc. refer to computer-related entities, hardware, firmware, software, combinations of software and hardware, or executions of software. For example, a component may be, but is not limited to, a procedure executed on a processor, a processor, an object, an execution thread, a program, and / or a computer. For example, both an application executed on a computing device and the computing device itself may be a component. One or more components may reside within a processor and / or an execution thread. A component may be localized within a single computer. A component may be distributed among two or more computers. Additionally, these components may be executed from various computer-readable media having various data structures stored therein. Components may communicate through local and / or remote processes, for example, according to signals having one or more data packets (e.g., data from a component interacting with another component in a local system or distributed system, and / or data transmitted through signals to other systems and networks such as the Internet).

[0031] Furthermore, the term "or" is intended to mean an implicit "or" rather than an exclusive "or." That is, unless otherwise specified or evident from the context, "X uses A or B" is intended to mean one of the natural implicit substitutions. In other words, if X uses A; if X uses B; or if X uses both A and B, "X uses A or B" may apply to any of these cases. Additionally, the term "and / or" as used herein should be understood to refer to and include all possible combinations of one or more of the enumerated related items.

[0032] Additionally, the terms “comprising” and / or “comprising” should be understood to mean that such features and / or components are present. However, the terms “comprising” and / or “comprising” should be understood not to exclude the presence or addition of one or more other features, components and / or groups thereof. Furthermore, unless otherwise specified or clearly evident from the context to indicate a singular form, the singular in this specification and claims should generally be interpreted to mean “one or more.”

[0033] Those skilled in the art should recognize that the various exemplary logical blocks, configurations, modules, circuits, means, logics, and algorithmic steps described in connection with the embodiments disclosed herein may be implemented in electronic hardware, computer software, or a combination of both. To clearly exemplify the interchangeability of hardware and software, various exemplary components, blocks, configurations, means, logics, modules, circuits, and steps have been generally described above in terms of their functionality. Whether such functionality is implemented in hardware or software depends on the specific application and design constraints imposed on the overall system. Skilled technicians may implement the described functionality in various ways for each specific application. However, such decisions regarding implementation should not be interpreted as moving out of the scope of the invention.

[0034] The description of the presented embodiments is provided to enable those skilled in the art to use or practice the present invention. Various modifications to these embodiments will be apparent to those skilled in the art. The general principles defined herein may be applied to other embodiments without departing from the scope of the present invention. Thus, the present invention is not limited to the embodiments presented herein. The present invention should be interpreted in the broadest possible scope consistent with the principles and novel features presented herein.

[0035] In this specification, the term "computer" refers to any type of hardware device comprising at least one processor, and may be understood to include software configurations operating on said hardware device according to the embodiments. For example, the term "computer" may be understood to include smartphones, tablet PCs, desktops, laptops, and user clients and applications running on each of these devices, but is not limited thereto.

[0036] Hereinafter, embodiments of the present invention will be described in detail with reference to the attached drawings.

[0037] Each step described in this specification is described as being performed by a computer, but the subject of each step is not limited thereto, and depending on the embodiment, at least some of each step may be performed on different devices.

[0039] FIG. 1 is a drawing illustrating a system according to one embodiment of the present invention.

[0040] Referring to FIG. 1, a system according to one embodiment of the present invention may include a mobile robot (10), a computing device (100), a user terminal (200), and an external server (300). The system illustrated in FIG. 1 is according to one embodiment, and its components are not limited to the embodiment illustrated in FIG. 1 and may be added, changed, or deleted as needed.

[0041] In one embodiment, the computing device (100) can control various operations of the mobile robot (10). For example, the computing device (100) can be connected to the mobile robot (10) through a network (400) and can determine control commands to control the operation of the mobile robot (10) (e.g., a control command instructing movement along a specific path, a control command instructing waiting for a predetermined time, and a control command instructing return to a preset return point, etc.), and can control the operation of the mobile robot (10) according to the determined control commands.

[0042] In one embodiment, the computing device (100) can set the path of the mobile robot (10).

[0043] Specifically, the computing device (100) can set multiple nodes based on map information regarding the mission execution area of ​​the mobile robot (10). Here, the mission execution area may refer to a limited space where the mobile robot (10) transports goods or performs specific tasks. For example, the mission execution area may be the interior of a restaurant for transporting food, the interior of an apartment complex for transporting delivery boxes, or the interior of a hospital for transporting medical supplies.

[0044] Additionally, the computing device (100) can determine a global path using two or more nodes among a plurality of nodes. Furthermore, when the computing device (100) assigns a destination to the mobile robot (10), it can control the mobile robot (10) to move to the destination via the global path. Here, the global path may refer to a part of an optimized path that can increase the movement efficiency of the mobile robot (10). That is, the movement path of the mobile robot (10) may include a path corresponding to the global path.

[0045] Accordingly, the computing device (100) of the present invention enables a mobile robot (10) to move to a destination via a global path, thereby maximizing movement efficiency and enabling it to adapt to a real-time changing environment. This can shorten the robot's travel time, minimize energy consumption, and improve the accuracy and reliability of the work.

[0046] Hereinafter, an example of a method for a computing device (100) to set a path of a mobile robot (10) will be described with reference to FIGS. 3 to 10.

[0047] In one embodiment, the mobile robot (10) may operate according to a control command obtained from a computing device (100). For example, the mobile robot (10) may be implemented in a form that transports goods to a specific destination according to a control command obtained from the computing device (100).

[0048] In various embodiments, the mobile robot (10) may include a sensor module.

[0049] A sensor module included in the mobile robot (10) can generate sensor data as it scans an area near the mobile robot (10). For example, the sensor module may include a camera sensor that generates image data as it captures the direction of movement of the mobile robot (10). As another example, the sensor module may include a LiDAR sensor for scanning terrain data for the mission area of ​​the mobile robot (10).

[0050] In various embodiments, the computing device (100) may provide Web or Application-based services. However, it is not limited thereto.

[0051] The computing device (100) may include any type of computer system or computer device, such as, for example, a microprocessor, a mainframe computer, a digital processor, a portable device, and a device controller. However, it is not limited thereto.

[0052] Hereinafter, the hardware configuration of the computing device (100) will be described with reference to FIG. 2.

[0053] Meanwhile, the user terminal (200) may be connected to the computing device (100) via a network (400) and may be a user terminal related to a method for setting the path of a mobile robot (10) performed on the computing device (100). For example, it may include a manager terminal that uses and manages the mobile robot (10).

[0054] Here, the user terminal (200) may include, for example, various types of computer devices. Specifically, for example, the user terminal (200) may refer to various terminal devices such as smartphones, tablet PCs, desktops, and laptops.

[0055] The user terminal (200) includes a display on at least a part of the terminal and may include an operating system for running applications or extension-based services provided by the computing device (100). For example, the user terminal (200) may be a smartphone, but is not limited thereto, and the user terminal (200) may include all kinds of handheld-based wireless communication devices such as navigation, 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) terminal, smartpad, tablet PC, etc., as wireless communication devices that ensure portability and mobility.

[0056] An external server (300) can be connected to a computing device (100) via a network (400), and can transmit and receive various information / data necessary for the computing device (100) to set the path of a mobile robot (10), and can store and manage various information / data generated as the computing device (100) performs the method of setting the path of the mobile robot (10).

[0057] For example, the external server (300) may be a database server that stores information used in setting the path of the mobile robot (10). As another example, the external server (300) may be a server that provides information used in setting the path of the mobile robot (10).

[0058] The network (400) may refer to a connection structure capable of exchanging information between each node, such as computing devices, multiple terminals, and servers. For example, the network (400) includes a Local Area Network (LAN), a Wide Area Network (WAN), the World Wide Web (WWW), a wired and wireless data network, a telephone network, a wired and wireless television network, etc.

[0059] Wireless data communication networks include, but are not limited to, 3G, 4G, 5G, 3GPP (3rd Generation Partnership Project), 5GPP (5th Generation Partnership Project), LTE (Long Term Evolution), WIMAX (World Interoperability for Microwave Access), Wi-Fi, Internet, LAN (Local Area Network), Wireless LAN (Wireless Local Area Network), WAN (Wide Area Network), PAN (Personal Area Network), RF (Radio Frequency), Bluetooth network, NFC (Near-Field Communication) network, satellite broadcasting network, analog broadcasting network, DMB (Digital Multimedia Broadcasting) network, etc.

[0061] FIG. 2 is a hardware configuration diagram of a computing device according to one embodiment of the present invention.

[0062] Referring to FIG. 2, a computing device (100) according to one embodiment of the present invention may include one or more processors (110), a memory (120) for loading a computer program (151) executed by the processor (110), a bus (130), a communication interface (140), and a storage (150) for storing the computer program (151). Here, FIG. 2 illustrates only the components related to the embodiment of the present invention. Therefore, a person skilled in the art to which the present invention pertains will understand that other general-purpose components may be included in addition to the components illustrated in FIG. 2.

[0063] The processor (110) controls the overall operation of each component of the computing device (100). The processor (110) may be composed of one or more cores and may include processors for data analysis and deep learning, such as a central processing unit (CPU), a general purpose graphics processing unit (GPGPU), or a tensor processing unit (TPU) of the computing device. Alternatively, it may be configured to include any type of processor well known in the art of the present invention.

[0064] Additionally, the processor (110) can perform operations for at least one application or program for executing the method according to embodiments of the present invention, and the computing device (100) may have one or more processors.

[0065] In various embodiments, the processor (110) may further include RAM (Random Access Memory, not shown) and ROM (Read-Only Memory, not shown) for temporarily and / or permanently storing signals (or data) processed within the processor (110). Additionally, the processor (110) may be implemented in the form of a system-on-chip (SoC) comprising at least one of a graphics processing unit, RAM, and ROM.

[0066] Memory (120) stores various data, instructions and / or information. Memory (120) may load a computer program (151) from storage (150) to execute a method / operation according to various embodiments of the present invention. When the computer program (151) is loaded into memory (120), the processor (110) may perform the method / operation by executing one or more instructions constituting the computer program (151). Memory (120) may be implemented as volatile memory such as RAM, but the technical scope of the present invention is not limited thereto.

[0067] The bus (130) provides communication functions between components of the computing device (100). The bus (130) can be implemented as various types of buses, such as an address bus, a data bus, and a control bus.

[0068] The communication interface (140) supports wired and wireless internet communication of the computing device (100). Additionally, the communication interface (140) may support various communication methods other than internet communication. To this end, the communication interface (140) may be configured to include a communication module well known in the art of the present invention. In some embodiments, the communication interface (140) may be omitted.

[0069] Storage (150) can store a computer program (151) non-temporarily. When performing a process according to an embodiment of the present invention through a computing device (100), storage (150) can store various information necessary to perform a method according to the disclosed embodiment or to provide a service.

[0070] The storage (150) may be configured to include non-volatile memory such as ROM (Read Only Memory), EPROM (Erasable Programmable ROM), EEPROM (Electrically Erasable Programmable ROM), flash memory, a hard disk, a removable disk, or any form of computer-readable recording medium well known in the art to which the present invention belongs.

[0071] A computer program (151) may include one or more instructions that cause a processor (110) to perform a method / operation according to various embodiments of the present invention when loaded into memory (120). That is, the processor (110) may perform the method / operation according to various embodiments of the present invention by executing the one or more instructions.

[0072] In one embodiment, the computer program (151) may include one or more instructions to perform various methods related to various tasks related to learning a neural network model.

[0073] The steps of the method or algorithm described in connection with embodiments of the present invention may be implemented directly in hardware, implemented as a software module executed by hardware, or implemented by a combination thereof. The software module may reside in RAM (Random Access Memory), ROM (Read Only Memory), EPROM (Erasable Programmable ROM), EEPROM (Electrically Erasable Programmable ROM), Flash Memory, a hard disk, a removable disk, a CD-ROM, or any form of computer-readable recording medium well known in the art to which the present invention belongs.

[0074] The components of the present invention may be implemented as a program (or application) and stored on a medium to be executed in combination with a computer, which is hardware. The components of the present invention may be implemented as software programming or software elements, and similarly, embodiments may be implemented in programming or scripting languages ​​such as C, C++, Java, assembler, etc., including various algorithms implemented as combinations of data structures, processes, routines, or other programming configurations. Functional aspects may be implemented as algorithms executed on one or more processors.

[0076] FIGS. 3 to 5 are flowcharts illustrating an example of a path setting method for a mobile robot according to an embodiment of the present invention. FIGS. 6 to 10 are drawings illustrating an example of various nodes according to an embodiment of the present invention.

[0077] Referring to FIG. 3, the computing device (100) can set up a plurality of nodes based on map information regarding the mission execution area of ​​the mobile robot (10) (S110).

[0078] In one embodiment, when a computing device (100) sets a plurality of nodes based on map information about an area where a mobile robot (10) performs a task, it can overlap a plurality of points having a pre-set interval on a two-dimensional map included in the map information. Then, the computing device (100) can set the points among the overlapped points that overlap with the two-dimensional map as a plurality of nodes.

[0079] For example, referring to FIG. 6, the map information may include information about areas where driving is impossible and areas where driving is possible. Additionally, on a two-dimensional map corresponding to the map information, a plurality of points with pre-set intervals may be arranged, and each of these points may be set as a node (n).

[0080] In various embodiments, the computing device (100) can control the mobile robot (10) to scan a mission area. The computing device (100) can acquire scanning data from the mobile robot (10), generate map information for the mission area, and set a plurality of nodes on the map.

[0081] In various embodiments, the computing device (100) can generate map information of a mission area using satellite images and set up a plurality of nodes based on this.

[0082] The computing device (100) can determine a global path using two or more nodes among a plurality of nodes (S120).

[0083] Specifically, with reference to FIG. 4, the computing device (100) can extract at least one optimal path between each of at least one starting point and each of at least one target point included in the mission execution area (S121). Then, the computing device (100) can determine a global path based on a plurality of optimal path nodes included in at least one optimal path (S122).

[0084] In one embodiment, the computing device (100) can determine a global path using the node most frequently included in at least one optimal path and the node most frequently included in the second path.

[0085] Specifically, the computing device (100) can recognize a first node that is most frequently included in at least one of the multiple optimal path nodes. Additionally, the computing device (100) can recognize a second node that is second most frequently included in at least one of the multiple optimal path nodes.

[0086] And, the computing device (100) can determine a path connecting the first node and the second node as a global path. For example, as shown in FIG. 7, the computing device (100) can determine a global path (G) using two or more nodes among a plurality of nodes (n). That is, the global path (G) may include two or more nodes, and these nodes may correspond to the first node and the second node.

[0087] In one embodiment, the computing device (100) can determine a global path using the node most included in at least one optimal path and the adjacent nodes of said node.

[0088] Specifically, the computing device (100) can recognize a first node that is most frequently included in at least one optimal path among a plurality of optimal path nodes. Additionally, the computing device (100) can recognize a third node that is most frequently included in at least one optimal path among adjacent nodes located closest to the first node. Furthermore, the computing device (100) can determine the path connecting the first node and the third node as a global path.

[0089] For example, referring to FIG. 6, a plurality of nodes (n) set in map information may be arranged in a grid format with a pre-set interval. When the computing device (100) recognizes the first node (n1), it may recognize the nodes located above, below, to the right, and to the left of the first node (n1) as adjacent nodes. That is, the computing device (100) may recognize the nodes included in the adjacent area of ​​the first node (n1) as adjacent nodes. For example, assuming that a plurality of nodes (n) are arranged with a 3-meter interval, the nodes with a 3-meter interval from the first node (n1) may be adjacent nodes.

[0090] And, the computing device (100) can recognize a third node most frequently included in at least one optimal path among adjacent nodes. For example, as illustrated in FIG. 7, the computing device (100) can determine a global path (G) using two or more nodes among a plurality of nodes (n). That is, the global path (G) may include two or more nodes, and these nodes may correspond to a first node and a third node.

[0091] In one embodiment, the computing device (100) can determine a global path using the node most included in a plurality of optimal paths and the node included within a preset radius from the node.

[0092] Specifically, the computing device (100) can recognize a first node that is most frequently included in at least one optimal path among a plurality of optimal path nodes. Additionally, the computing device (100) can recognize a fourth node that is most frequently included in at least one optimal path among surrounding nodes existing within a preset radius from the first node. Furthermore, the computing device (100) can determine the path connecting the first node and the fourth node as a global path.

[0093] For example, referring to FIG. 6, a plurality of nodes (n) set in map information may be arranged in a grid format with a pre-set interval. When the computing device (100) recognizes a first node, it may recognize two nodes located above the first node, two nodes located below it, two nodes located to the right, two nodes located to the left, and two nodes located diagonally (diagonal) from the first node as surrounding nodes. That is, the computing device (100) may recognize nodes included in the surrounding area of ​​the first node (n1) as surrounding nodes. For example, assuming that a plurality of nodes (n) are arranged with a 3-meter interval, nodes existing within a radius of 6 meters from the first node (n1) may be surrounding nodes.

[0094] And, the computing device (100) can recognize a fourth node that is most frequently included in at least one optimal path among adjacent nodes. For example, as illustrated in FIG. 7, the computing device (100) can determine a global path (G) using two or more nodes among a plurality of nodes (n). That is, the global path (G) may include two or more nodes, and these nodes may correspond to a first node and a fourth node.

[0095] According to the embodiments described above, the computing device (100) can determine a global path (G) using nodes that are relatively frequently included in the optimal path. Additionally, when controlling a mobile robot (10), the computing device (100) can control it to pass through the global path (G) preferentially.

[0096] Therefore, the computing device (100) can efficiently manage and optimize the driving path of the mobile robot (10).

[0097] In an additional embodiment, the computing device (100) can determine a global path based on the area with the least human traffic. For example, the computing device (100) can determine a global path using nodes with a relatively low density of people.

[0098] Here, the computing device (100) can obtain data (e.g., images, LiDAR sensors) for determining population density from the mobile robot (10) and analyze the data to estimate population density.

[0099] Additionally, the computing device (100) can recognize population density through sensor data measured from sensors installed in the mission area of ​​the mobile robot (10) and through communication with infrastructure. For example, the computing device (100) can identify the location of people in real time through cameras and LiDAR sensors installed in the mission area, and analyze this to identify the path with the least traffic. In addition, the computing device (100) can monitor the population density of a specific area in real time through communication with IoT devices.

[0100] Meanwhile, the computing device (100) can determine a global path using a node with a relatively low population density, and to do this, it can recognize a specific node with the lowest population density among the nodes included in a plurality of optimal path nodes. In addition, the computing device (100) can determine a global path using an adjacent node of the specific node or another node included within a preset radius from the specific node. In addition, the computing device (100) can determine a path connecting the specific node and another node as a global path.

[0101] Additionally, the computing device (100) can monitor the surrounding environment in real time to recognize the time period when the population density increases, and determine a global path corresponding to each of the first time period with high population density and the remaining second time period.

[0102] For example, the computing device (100) can recognize specific areas where many people gather during lunchtime or after worktime, and determine a global path by avoiding specific areas during those times. Through this, the computing device (100) can maximize the driving efficiency of the mobile robot (10) and minimize the risk of collision.

[0103] Accordingly, the computing device (100) of the present invention can enable efficient and safe autonomous driving by dynamically optimizing the path of the mobile robot (10) by considering various environmental conditions and situations.

[0104] Additionally, the computing device (100) can monitor the surrounding environment in real time and, if it recognizes a time period when the population density is high, dynamically change the range of the global path (e.g., length and width) based on this.

[0105] For example, the computing device (100) can recognize a specific area where many people gather during lunchtime or after worktime, and determine a global path by avoiding the specific area during that time period, thereby setting the width of the global path relatively wide. Through this, the computing device (100) can maximize the driving efficiency of the mobile robot (10) and, in particular, minimize the risk of collision with people.

[0106] Referring again to FIG. 3, when the computing device (100) assigns a destination to the mobile robot (10), it can control the mobile robot (10) to move to the destination via a global path (S130).

[0107] Meanwhile, the computing device (100) can modify the global path according to the movement status of the mobile robot (10) after controlling the mobile robot (10) to move to a destination via the global path.

[0108] Specifically, referring to FIG. 5, it is possible to monitor whether the mobile robot (10) performs local path planning while driving (S210). Then, the computing device (100) can modify the global path based on the number of times local path planning has been performed and the avoidance-inducing node associated with the local path planning (S220). Here, the avoidance-inducing node is a node that causes the mobile robot (10) to perform avoidance driving (i.e., local path planning), and may refer to a node corresponding to an area that causes a restriction on the robot's movement, such as an obstacle.

[0109] In various embodiments, the computing device (100) can control the mobile robot (10) to move by avoiding the avoidance-inducing node when the avoidance-inducing node is included in the global path, while passing through the remaining nodes included in the global path.

[0110] For example, referring to FIG. 7, the computing device (100) can control the mobile robot (10) to travel via a global path (G) when moving from a starting point (S) to a target point (T).

[0111] Next, referring to FIG. 8, the computing device (100) can control the mobile robot (10) to move to the target point (T) via a global path (G) while the mobile robot (10) is assigned a target point (T) and, when the mobile robot (10) recognizes an avoidance-inducing node (E), perform local path planning to avoid the node.

[0112] That is, when the mobile robot (10) recognizes an avoidance-inducing node (E) while moving, it can perform local path planning to avoid the avoidance-inducing node (E) and then move to the target point (T) via the global path (G).

[0113] Additionally, referring to FIG. 9, the computing device (100) can control the mobile robot (10) to move to the target point (T) by performing local path planning when the mobile robot (10) recognizes an avoidance-inducing node (E) while the mobile robot (10) has been assigned a target point (T). That is, when the avoidance-inducing node (E) is recognized, the computing device (100) can control the mobile robot (10) to move to the target point (T) through local path planning.

[0114] When the mobile robot (10) uses the path shown in FIG. 9, it can move to the target point (T) more efficiently than the path shown in FIG. 8.

[0115] In an additional embodiment, the computing device (100) can monitor whether the mobile robot (10) recognizes the avoidance-inducing node (E). And, when the mobile robot (10) recognizes the avoidance-inducing node (E), the computing device (100) can receive information about the node in real time and determine whether to use the global path (G).

[0116] Specifically, when moving from a starting point (S) to a target point (T), the computing device (100) can recognize a first path that avoids only the avoidance-inducing node (E) and passes through a global path (G). Additionally, when moving from a starting point (S) to a target point (T), the computing device (100) can recognize a second path that moves to the target point (T) through local path planning (i.e., optimal path) at the location where the avoidance-inducing node (E) is found. Then, the computing device (100) can determine whether to use the global path (G) by comparing the first path and the second path.

[0117] For example, the computing device (100) can compare the distance, time required, energy consumption, etc., of a first path and a second path, and control the mobile robot (10) to select a more efficient path. If the first path is more efficient, the computing device (100) can control the mobile robot (10) to avoid the avoidance-inducing node (E) and move via the global path (G). On the other hand, if the second path is more efficient, the computing device (100) can control the robot to move to a target point (T) through local path planning.

[0118] Meanwhile, the computing device (100) can analyze the frequency and location of the avoidance-inducing node (E) and, if a specific node repeatedly causes problems, exclude that node from the global path (G) or generate an alternative path. Through this, the computing device (100) can plan the path of the mobile robot (10) more efficiently and save time caused by repeated obstacle avoidance.

[0119] Accordingly, the computing device (100) of the present invention can monitor the path of a mobile robot (10) in real time and dynamically determine an optimal driving path by comparing and analyzing various path selection options. Through this, the mobile robot (10) can reach a target point efficiently and safely and effectively avoid various obstacles that may occur during driving.

[0120] As described above, the computing device (100) can modify the global path (G) when local path planning caused by the avoidance-inducing node (E) occurs frequently.

[0121] For example, if a specific node is recognized as an avoidance-inducing node (E) more than a preset number of times, the computing device (100) determines the specific node as an obstacle and, as shown in FIG. 10, can redetermine the global path (G) with the specific node excluded.

[0122] For example, if a specific node is recognized as an avoidance-inducing node (E) 10 or more times, the computing device (100) may determine that node as an obstacle and perform a process of determining a global path (G) for the remaining nodes excluding that node.

[0123] That is, the computing device (100) can recognize a specific node that has caused local path planning to be performed more than a preset number of times. And, if the specific node is a node included in the global path (G), the computing device (100) can redetermine the global path (G) so as not to include the specific node.

[0124] Accordingly, the computing device (100) can dynamically modify the global path (G) to increase the driving efficiency of the mobile robot (10) and improve the obstacle avoidance ability.

[0125] According to an additional embodiment of the present invention, the computing device (100) may variably apply whether to use a global path (G) based on some conditions.

[0126] Specifically, the computing device (100) can control the mobile robot (10) to use a global path (G) based on the state of the mobile robot (10) and the surrounding environment.

[0127] More specifically, the computing device (100) can determine whether to control the mobile robot (10) to travel along the global path (G) based on the environmental conditions, battery status, and population density of the mobile robot (10).

[0128] For example, the computing device (100) can determine whether to use the global path (G) based on the environmental conditions of the global path (G), the environmental conditions of the remaining area, and the battery status of the mobile robot (10). Here, the environmental conditions may include conditions related to the energy used for the mobile robot to move. For example, the environmental conditions may include (e.g., movement load, inclination). The computing device (100) can recognize whether the movement load and inclination are included based on data collected from the mobile robot (10) that has moved through the global path (G) and the remaining area, respectively.

[0129] For example, the computing device (100) can control the mobile robot (10) so that it does not use the global path (G) when the environmental conditions of the global path (G) have a higher movement load and contain a lot of slopes than the rest of the area, or when the battery of the mobile robot (10) is below a preset level. Meanwhile, the computing device (100) can control the mobile robot (10) so that it uses the global path (G) when the environmental conditions of the global path (G) have a higher movement load and contain a lot of slopes than the rest of the area, or when the battery of the mobile robot (10) exceeds a preset level.

[0130] As another example, the computing device (100) can control the mobile robot (10) so as not to use the global path (G) if the area corresponding to the global path (G) has a higher population density than the remaining area. Here, the population density can be recognized based on sensor data collected from the mobile robot (10) or sensor data obtained through a sensor installed in the mission area of ​​the mobile robot (10).

[0131] For example, the computing device (100) can control the mobile robot (10) so that it does not use the global path (G) when the population density of the global path (G) is higher than the population density of the remaining area. Meanwhile, the computing device (100) can control the mobile robot (10) so that it uses the global path (G) when the population density of the global path (G) is lower than the population density of the remaining area.

[0132] Accordingly, the computing device (100) comprehensively considers the state of the mobile robot (10) and real-time environmental conditions to select an optimal path and enable efficient energy management. Through this, the mobile robot (10) can be operated stably for a longer period of time and can respond flexibly to various situations.

[0133] According to an additional embodiment of the present invention, the computing device (100) can vary the size of the global path based on some conditions.

[0134] Specifically, the computing device (100) can widen the size of the global path when the complexity of the path is high and narrow the size of the global path when the complexity is low, taking into account the number and activity level of the mobile robot (10). Here, the size of the global path may include length and width.

[0135] In one embodiment, the computing device (100) can analyze real-time operation data of the mobile robot (10) to evaluate the robot density and the complexity of the movement path.

[0136] Specifically, the computing device (100) can calculate the density of robots within a specific area by analyzing location data and path data collected from the mobile robot (10). Here, the density of robots may correspond to the number of robots passing through a specific area during a specific time period, based on the current location and direction of movement of each robot.

[0137] Additionally, the computing device (100) can analyze the path data of each robot to evaluate the complexity of the movement path and reflect path intersections, turn frequency, number of obstacle avoidances, etc. Here, the complexity of the movement path may correspond to path intersections, turn frequency, and number of obstacle avoidances.

[0138] Meanwhile, the computing device (100) can determine whether the robot density and the complexity of the movement path in the area corresponding to the global path exceed a preset level. For example, it can determine whether the robot density and the complexity of the movement path corresponding to the center point of the global path exceed a preset level. And, depending on whether the preset level is exceeded, the computing device (100) can dynamically adjust the size of the global path to optimize path efficiency.

[0139] For example, the computing device (100) can expand the radius of the global path during times when many robots are operating or in specific work environments to minimize interference between robots and support smooth movement. On the other hand, during times when the number of robots is small and the activity level is low, the size of the global path can be reduced to reduce energy consumption and optimize the path.

[0140] For example, the computing device (100) can analyze real-time location and path data to determine the congestion level of a specific area (i.e., robot density and complexity of the movement path). If the computing device (100) anticipates that the risk of collision will increase due to high congestion complexity in a specific area and that the area is included in the global path, it can widen the size of the global path to secure a safe distance between robots and increase movement efficiency. For example, the computing device (100) can widen the width of the global path to ensure that tasks such as obstacle avoidance are performed safely and effectively.

[0141] In this way, the computing device (100) of the present invention can optimize the driving path of a mobile robot (10) in real time to improve operational efficiency in various work environments. This can increase the usability of the mobile robot in various indoor environments such as restaurants, logistics warehouses, factories, and hospitals, and improve work safety and efficiency.

[0143] Although embodiments of the present invention have been described above with reference to the attached drawings, those skilled in the art will understand that the present invention may be implemented in other specific forms without altering its technical concept or essential features. Therefore, the embodiments described above should be understood as illustrative in all respects and not restrictive.

Claims

Claim 1 A method performed by a computing device comprising at least one processor, comprising: a step of setting a plurality of nodes based on map information regarding a mission area of ​​a mobile robot; a step of determining a global path using two or more nodes among the plurality of nodes; and a step of controlling the mobile robot to move to the destination via the global path when a destination is assigned to the mobile robot; wherein the step of determining a global path using two or more nodes among the plurality of nodes comprises: a step of extracting at least one optimal path between each of at least one starting point and each of at least one target point included in the mission area; and a step of determining the global path based on a plurality of optimal path nodes included in the at least one optimal path; and wherein the step of determining the global path based on a plurality of optimal path nodes included in the at least one optimal path comprises: a step of recognizing a first node most frequently included in the at least one optimal path among the plurality of optimal path nodes; and a step of recognizing a second node most frequently included in the at least one optimal path among the plurality of optimal path nodes. A method for setting a path of a mobile robot, comprising the step of determining the path connecting the first node and the second node as the global path. Claim 2 A method for setting a path of a mobile robot according to claim 1, wherein the step of setting a plurality of nodes based on map information of an area where a mobile robot performs a mission comprises: a step of overlapping a plurality of points having a pre-set interval on a two-dimensional map included in the map information; and a step of setting points among the overlapped points that overlap with the two-dimensional map as the plurality of nodes. Claim 3 delete Claim 4 delete Claim 5 A method performed by a computing device comprising at least one processor, comprising: a step of setting a plurality of nodes based on map information regarding a mission area of ​​a mobile robot; a step of determining a global path using two or more nodes among the plurality of nodes; and a step of controlling the mobile robot to move to the destination via the global path when a destination is assigned to the mobile robot; wherein the step of determining a global path using two or more nodes among the plurality of nodes comprises: a step of extracting at least one optimal path between each of at least one starting point and each of at least one target point included in the mission area; and a step of determining the global path based on a plurality of optimal path nodes included in the at least one optimal path; and wherein the step of determining the global path based on a plurality of optimal path nodes included in the at least one optimal path comprises: a step of recognizing a first node most frequently included in the at least one optimal path among the plurality of optimal path nodes; and a step of recognizing a third node most frequently included in the at least one optimal path among adjacent nodes existing at a location closest to the first node. A method for setting a path for a mobile robot, comprising the step of determining the path connecting the first node and the third node as the global path. Claim 6 A method performed by a computing device comprising at least one processor, comprising: a step of setting a plurality of nodes based on map information regarding a mission area of ​​a mobile robot; a step of determining a global path using two or more nodes among the plurality of nodes; and a step of controlling the mobile robot to move to the destination via the global path when a destination is assigned to the mobile robot; wherein the step of determining a global path using two or more nodes among the plurality of nodes comprises: a step of extracting at least one optimal path between each of at least one starting point and each of at least one target point included in the mission area; and a step of determining the global path based on a plurality of optimal path nodes included in the at least one optimal path; and wherein the step of determining the global path based on a plurality of optimal path nodes included in the at least one optimal path comprises: a step of recognizing a first node most frequently included in the at least one optimal path among the plurality of optimal path nodes; and a step of recognizing a fourth node most frequently included in the at least one optimal path among surrounding nodes existing within a preset radius from the first node. A method for setting a path for a mobile robot, comprising the step of determining the path connecting the first node and the fourth node as the global path. Claim 7 A method for setting a path of a mobile robot according to claim 1, further comprising: a step of monitoring whether the mobile robot performs local path planning while driving; and a step of modifying the global path based on the number of times the local path planning has been performed and an avoidance-inducing node associated with the local path planning; wherein, if the avoidance-inducing node is included in the global path, the mobile robot is controlled to move by avoiding the avoidance-inducing node, while passing through the remaining nodes included in the global path. Claim 8 A method for setting a path of a mobile robot according to claim 7, wherein the step of modifying the global path comprises: a step of recognizing a specific node that caused the local path planning to be performed more than a preset number of times; and a step of redetermining the global path so as not to include the specific node if the specific node is a node included in the global path. Claim 9 An apparatus comprising: a memory for storing one or more instructions; and a processor for executing the one or more instructions stored in the memory, wherein the processor performs the method of claim 1, 5, or 6 by executing the one or more instructions. Claim 10 A computer program stored on a computer-readable recording medium that is combined with a computer, which is hardware, to enable the method of claim 1, 5, or 6 to be performed.

Citation Information

Patent Citations

  • Method and system for self-propelled object operation

    JP1995281748A

  • Method of generating local path by target orientation and robot implementing thereof

    KR1020190024467A