Method, apparatus, and program for setting path of mobile robot
By setting nodes and dynamically modifying paths based on map information and local data, the method improves mobile robot mobility efficiency and obstacle avoidance in changing environments.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-01-08
- Publication Date
- 2026-03-12
AI Technical Summary
Existing mobile robot path-setting methods struggle to adapt to changing environments in real-time, leading to reduced mobility efficiency due to the inability to promptly recognize and avoid new obstacles.
A method involving setting multiple nodes based on map information, determining a global path using these nodes, and controlling the robot to move via this path while dynamically modifying it based on local path planning data to avoid obstacles.
Enhances mobility efficiency by optimizing paths and enabling real-time adaptation to environmental changes, reducing travel time, energy consumption, and improving accuracy and reliability.
Smart Images

Figure KR2025000376_12032026_PF_FP_ABST
Abstract
Description
Method, device and program for setting a path for a mobile robot
[0001] The present invention relates to a method, device, and program for setting a path for a mobile robot, and more particularly, to a method, device, and program for setting a path for a mobile robot using a global path.
[0002]
[0003] Mobile robots are mechanical devices that can autonomously move through various environments and perform specific tasks. These robots play a vital role in various fields, such as moving goods in warehouses, transporting medical supplies in hospitals, cleaning public spaces, and serving food to customers in restaurants.
[0004] For example, serving robots are a type of mobile robot used to serve drinks and food to customers in restaurants, cafes, hotels, and other places. Serving robots receive customer orders, pick up food from the kitchen, and autonomously navigate to the table to complete the service. These robots deliver food quickly and accurately to customers, improving service quality and contributing to labor shortages.
[0005] Meanwhile, mobile robots primarily use autonomous driving technology to plan their paths in real time, avoid obstacles, and reach their destinations. This autonomous driving technology utilizes various sensors, including LiDAR, cameras, and ultrasonic sensors, to perceive the robot's surroundings and process data in real time to establish an optimal path. Furthermore, mobile robots follow these paths and are equipped with the ability to avoid unexpected obstacles.
[0006] Existing mobile robot control algorithms primarily follow pre-defined paths, with the robot planning its path based on location information about the destination and pre-entered obstacle data. However, this approach has limitations in adapting to a changing environment in real time. For example, when a new obstacle appears, the robot may lack the ability to immediately recognize and avoid it, and the constant encounter with such obstacles can reduce movement efficiency.
[0007] Therefore, research is needed on path-setting methods for mobile robots that can improve their mobility efficiency. In this regard, Republic of Korea Patent Publication No. 10-2023-0122349 discloses a collision avoidance control method for a mobile robot based on virtual obstacles.
[0008]
[0009] The present invention has been conceived in response to the aforementioned background technology and aims to provide a method, device and program for setting a path for a mobile robot.
[0010] The technical problems of the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art from the description below.
[0011]
[0012] According to one embodiment of the present invention for solving the aforementioned problem, 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 task 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 about an area where a mobile robot performs a task may include: a step of overlapping a plurality of points having a preset interval on a two-dimensional map included in the map information; and a step of setting points overlapping the two-dimensional map among the overlapped points 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 the steps 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 execution area; and 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: recognizing a first node most frequently included in the at least one optimal path among the plurality of optimal path nodes; recognizing a second node most frequently included in the at least one optimal path among the plurality of optimal path nodes; and determining a 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 that is most frequently included in the at least one optimal path among the plurality of optimal path nodes; a step of recognizing a third node that is most frequently included in the at least one optimal path among adjacent nodes that exist at the closest location to the first node; and a step of determining a 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 that is most frequently included in the at least one optimal path among the plurality of optimal path nodes; a step of recognizing a fourth node that is 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 a path connecting the first node and the fourth node as the global path.
[0018] In an alternative embodiment, the method further comprises the steps of: monitoring whether the mobile robot performs local path planning while driving; and modifying the global path based on the number of times the local path planning has been performed and the avoidance trigger node associated with the local path planning; and controlling the mobile robot to move while avoiding the avoidance trigger node if the avoidance trigger node is included in the global path, but passing through the remaining nodes included in the global path.
[0019] In an alternative embodiment, the step of modifying the global path may include: recognizing a specific node that caused the 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, re-determining the global path so as not to include the specific node.
[0020] According to one embodiment of the present invention for solving the above-described problem, a device is disclosed. The device includes: a memory storing one or more instructions; and a processor executing the one or more instructions stored in the memory, wherein 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 in a computer-readable recording medium is disclosed, which is combined with a computer as hardware and can perform the above-described methods.
[0022] Other specific details of the present invention are included in the detailed description and drawings.
[0023]
[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 the global path.
[0025] In addition, the present invention can control the mobile robot to effectively avoid obstacles that occur during its movement by modifying the global path by reflecting local path planning data.
[0026] The effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the description below.
[0027]
[0028] FIG. 1 is a diagram illustrating a system according to one embodiment of the present invention.
[0029] Figure 2 is a hardware configuration diagram of a computing device according to one embodiment of the present invention.
[0030] FIGS. 3 to 5 are flowcharts illustrating an example of a path setting method for a mobile robot according to one embodiment of the present invention.
[0031] FIGS. 6 to 10 are drawings illustrating examples of various nodes according to one embodiment of the present invention.
[0032]
[0033] Various embodiments are now described with reference to the drawings. In this specification, various descriptions are provided to facilitate an understanding of the present invention. However, it will be apparent that these embodiments may be practiced without these specific details.
[0034] As used herein, the terms "component," "module," "system," and the like refer to computer-related entities, hardware, firmware, software, a combination of software and hardware, or an execution of software. For example, a component may be, but is not limited to, a procedure running on a processor, a processor, an object, a thread of execution, a program, and / or a computer. For example, both an application running on a computing device and the computing device may be a component. One or more components may reside within a processor and / or a thread of execution. A component may be localized within a single computer. A component may be distributed between two or more computers. Furthermore, these components may execute from various computer-readable media having various data structures stored therein. Components may communicate via local and / or remote processes, for example, by signals comprising one or more data packets (e.g., data from one component interacting with another component in a local system, a distributed system, and / or data transmitted to another system via a network such as the Internet via signals).
[0035] Furthermore, the term "or" is intended to mean an inclusive "or" rather than an exclusive "or." That is, unless otherwise specified or clear from context, "X employs A or B" is intended to mean either of the natural inclusive permutations. That is, if X employs A; X employs B; or X employs both A and B, "X employs A or B" can apply to any of these cases. Furthermore, the term "and / or" as used herein should be understood to refer to and include all possible combinations of one or more of the associated items listed.
[0036] Additionally, the terms "comprises" and / or "comprising" should be understood to imply the presence of the features and / or components in question. However, it should be understood that the terms "comprises" and / or "comprising" do not exclude the presence or addition of one or more other features, components, and / or groups thereof. Furthermore, unless otherwise specified or clear from the context to refer to the singular form, the singular in the specification and claims should generally be construed to mean "one or more."
[0037] Those skilled in the art should further recognize that the various illustrative logical blocks, components, modules, circuits, means, logics, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate the interchangeability of hardware and software, various illustrative components, blocks, components, means, logics, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application. However, such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.
[0038] The description of the disclosed embodiments is provided to enable those skilled in the art to make or use 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. Therefore, the present invention is not limited to the disclosed embodiments. The present invention is to be construed in the widest scope consistent with the principles and novel features disclosed herein.
[0039] In this specification, the term "computer" refers to any type of hardware device including at least one processor, and may also be understood to encompass software components operating on the hardware device, depending on the embodiment. For example, the term "computer" may be understood to encompass, but is not limited to, smartphones, tablet PCs, desktops, laptops, and all user clients and applications running on each device.
[0040] Hereinafter, embodiments of the present invention will be described in detail with reference to the attached drawings.
[0041] Although each step described in this specification is described as being performed by a computer, the subject of each step is not limited thereto, and at least some of each step may be performed by different devices depending on the embodiment.
[0042]
[0043] FIG. 1 is a diagram illustrating a system according to one embodiment of the present invention.
[0044] 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.
[0045] 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) via a network (400), and can determine control commands for controlling the operation of the mobile robot (10) (e.g., a control command for instructing movement along a specific path, a control command for instructing waiting for a predetermined time, a control command for instructing returning to a preset return point, etc.), and can control the operation of the mobile robot (10) according to the determined control commands.
[0046] In one embodiment, the computing device (100) can set a path for the mobile robot (10).
[0047] 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 items 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.
[0048] Additionally, the computing device (100) can determine a global path using two or more nodes among a plurality of nodes. Furthermore, when a destination is assigned to the mobile robot (10), the computing device (100) can control the mobile robot (10) to move to the destination via the global path. Here, the global path may refer to a portion of an optimized path that can increase the movement efficiency of the mobile robot (10). In other words, the movement path of the mobile robot (10) may include a path corresponding to the global path.
[0049] Therefore, the computing device (100) of the present invention maximizes movement efficiency and enables the mobile robot (10) to adapt to changing environments in real time by moving to its destination via a global path. This can shorten the robot's travel time, minimize energy consumption, and improve the accuracy and reliability of its work.
[0050] Hereinafter, an example of a method in which a computing device (100) sets a path for a mobile robot (10) will be described with reference to FIGS. 3 to 10.
[0051] In one embodiment, the mobile robot (10) may operate according to control commands obtained from the computing device (100). For example, the mobile robot (10) may be implemented in a form that transports items to a specific destination according to control commands obtained from the computing device (100).
[0052] In various embodiments, the mobile robot (10) may include a sensor module.
[0053] A sensor module included in a mobile robot (10) may generate sensor data by scanning an area near the mobile robot (10). For example, the sensor module may include a camera sensor that generates image data by capturing the direction in which the mobile robot (10) is moving. As another example, the sensor module may include a lidar sensor for scanning terrain data for an area in which the mobile robot (10) performs its mission.
[0054] In various embodiments, the computing device (100) may provide web- or application-based services, but is not limited thereto.
[0055] The computing device (100) may include any type of computer system or computer device, such as, but not limited to, a microprocessor, a mainframe computer, a digital processor, a portable device, and a device controller.
[0056] Below, a description of the hardware configuration of the computing device (100) will be provided with reference to FIG. 2.
[0057] 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 the method for setting a path of a mobile robot (10) performed by the computing device (100). For example, it may include an administrator terminal that uses and manages the mobile robot (10).
[0058] Here, the user terminal (200) may include, for example, various types of computer devices. For example, the user terminal (200) may refer to various terminal devices such as a smartphone, tablet PC, desktop, or laptop.
[0059] The user terminal (200) includes a display on at least a portion of the terminal, and may include an operating system for driving an application or extension program-based service provided from the computing device (100). For example, the user terminal (200) may be a smart phone, but is not limited thereto, and the user terminal (200) may include all types 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) terminals, smart pads, tablet PCs, etc., as a wireless communication device that ensures portability and mobility.
[0060] An external server (300) can be connected to a computing device (100) via a network (400), and can transmit and receive various information / data required for the computing device (100) to set a path of the mobile robot (10), and can store and manage various information / data generated as the computing device (100) performs a method for setting a path of the mobile robot (10).
[0061] 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).
[0062] A network (400) may refer to a connection structure that enables information exchange between each node, such as a computing device, multiple terminals, and servers. For example, the network (400) includes a local area network (LAN), a wide area network (WAN), the Internet (WWW), a wired and wireless data communication network, a telephone network, a wired and wireless television communication network, etc.
[0063] 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, the 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, and DMB (Digital Multimedia Broadcasting) network.
[0064]
[0065] Figure 2 is a hardware configuration diagram of a computing device according to one embodiment of the present invention.
[0066] 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, only components related to the embodiment of the present invention are illustrated in FIG. 2. Therefore, a person skilled in the art to which the present invention pertains will understand that other general components may be included in addition to the components illustrated in FIG. 2.
[0067] The processor (110) controls the overall operation of each component of the computing device (100). The processor (110) may be configured with one or more cores, and may include a processor 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, the processor may be configured to include any type of processor well known in the technical field of the present invention.
[0068] Additionally, the processor (110) may perform operations for at least one application or program for executing a method according to embodiments of the present invention, and the computing device (100) may have one or more processors.
[0069] In various embodiments, the processor (110) may further include a Random Access Memory (RAM, not shown) and a Read-Only Memory (ROM, not shown) that temporarily and / or permanently store signals (or data) processed within the processor (110). In addition, the processor (110) may be implemented in the form of a system on chip (SoC) that includes at least one of a graphics processing unit, RAM, and ROM.
[0070] The memory (120) stores various data, commands, and / or information. The memory (120) can load a computer program (151) from the storage (150) to execute methods / operations according to various embodiments of the present invention. When the computer program (151) is loaded into the memory (120), the processor (110) can perform the method / operation by executing one or more instructions constituting the computer program (151). The memory (120) may be implemented as a volatile memory such as RAM, but the technical scope of the present invention is not limited thereto.
[0071] The bus (130) provides a communication function between components of the computing device (100). The bus (130) may be implemented as various types of buses, such as an address bus, a data bus, and a control bus.
[0072] The communication interface (140) supports wired and wireless Internet communication of the computing device (100). Furthermore, 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 technical field of the present invention. In some embodiments, the communication interface (140) may be omitted.
[0073] Storage (150) can non-temporarily store a computer program (151). When performing a process according to an embodiment of the present invention through a computing device (100), storage (150) can perform a method according to the disclosed embodiment or store various information necessary to provide a service.
[0074] 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 type of computer-readable recording medium well known in the art to which the present invention pertains.
[0075] The computer program (151) may include one or more instructions that cause the processor (110) to perform a method / operation according to various embodiments of the present invention when loaded into the 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.
[0076] In one embodiment, the computer program (151) may include one or more instructions for performing various methods associated with various tasks related to learning a neural network model.
[0077] The steps of a method or algorithm described in connection with an embodiment 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 a random access memory (RAM), a read only memory (ROM), an erasable programmable ROM (EPROM), an electrically erasable programmable ROM (EEPROM), a flash memory, a hard disk, a removable disk, a CD-ROM, or any other form of computer-readable recording medium well known in the art to which the present invention pertains.
[0078] The components of the present invention may be implemented as programs (or applications) and stored on a medium to be executed in conjunction with a computer, which is hardware. The components of the present invention may be implemented as software programs or software elements. Similarly, the embodiments may be implemented in a programming or scripting language such as C, C++, Java, or an assembler, including various algorithms implemented as a combination of data structures, processes, routines, or other programming components. Functional aspects may be implemented as algorithms that are executed on one or more processors.
[0079]
[0080] Figures 3 to 5 are flowcharts illustrating an example of a path setting method for a mobile robot according to one embodiment of the present invention. Figures 6 to 10 are diagrams illustrating examples of various nodes according to one embodiment of the present invention.
[0081] Referring to FIG. 3, the computing device (100) can set a plurality of nodes based on map information about the mission performance area of the mobile robot (10) (S110).
[0082] In one embodiment, when setting up a plurality of nodes based on map information about an area where a mobile robot (10) performs a task, the computing device (100) may overlap a plurality of points having preset intervals on a two-dimensional map included in the map information. In addition, the computing device (100) may set up points overlapping the two-dimensional map among the overlapped points as a plurality of nodes.
[0083] For example, referring to FIG. 6, the map information may include information on no-drive areas and drivable areas. Furthermore, a plurality of points with preset intervals may be placed on a two-dimensional map corresponding to the map information, and each of these points may be set as a node (n).
[0084] In various embodiments, the computing device (100) can control the mobile robot (10) to scan the mission execution area. Then, the computing device (100) can obtain scanning data from the mobile robot (10), generate map information for the mission execution area, and set a plurality of nodes on the map.
[0085] In various embodiments, the computing device (100) can generate map information of a mission execution area using satellite images and set up multiple nodes based on the map information.
[0086] The computing device (100) can determine a global path using two or more nodes among a plurality of nodes (S120).
[0087] Specifically, referring to FIG. 4, the computing device (100) can extract at least one optimal path between at least one starting point and at least one target point included in the mission execution area (S121). In addition, 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).
[0088] In one embodiment, the computing device (100) can determine a global path using the most included and second most included nodes in at least one optimal path.
[0089] Specifically, the computing device (100) can identify 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 identify a second node that is second most frequently included in at least one optimal path among a plurality of optimal path nodes.
[0090] In addition, the computing device (100) can determine a path connecting the first node and the second node as a global path. 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) can include two or more nodes, and these nodes can correspond to the first node and the second node.
[0091] In one embodiment, the computing device (100) can determine a global path using the node that is most included in at least one optimal path and the adjacent nodes of that 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. In addition, the computing device (100) can recognize a third node that is most frequently included in at least one optimal path among adjacent nodes that exist at the closest location to the first node. In addition, the computing device (100) can determine a path connecting the first node and the third node as a global path.
[0093] For example, referring to FIG. 6, a plurality of nodes (n) set in the map information can be arranged in a grid format with a preset interval, and when the computing device (100) recognizes a first node (n1), the nodes located above the first node (n1), the nodes located below the first node (n1), the nodes located on the right side, and the nodes located on the left side can each be recognized as adjacent nodes. That is, the computing device (100) can recognize nodes included in the adjacent area of the first node (n1) as adjacent nodes. For example, assuming that the plurality of nodes (n) are arranged to have an interval of 3 meters, nodes having an interval of 3 meters from the first node (n1) can be adjacent nodes.
[0094] In addition, the computing device (100) can identify the third 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) can include two or more nodes, and these nodes can correspond to the first node and the third node.
[0095] In one embodiment, the computing device (100) can determine a global path using a node that is most included in a plurality of optimal paths and a node included within a preset radius from that node.
[0096] 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. In addition, 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. In addition, the computing device (100) can determine a path connecting the first node and the fourth node as a global path.
[0097] For example, referring to FIG. 6, a plurality of nodes (n) set in the map information can be arranged in a grid format with a preset interval, and when the computing device (100) recognizes a first node, it can recognize each of the two nodes located above the first node, the two nodes located below, the two nodes located on the right, the two nodes located on the left, and the two nodes located on the diagonal side (slanted side) as peripheral nodes. That is, the computing device (100) can recognize nodes included in the peripheral area of the first node (n1) as peripheral nodes. For example, assuming that the plurality of nodes (n) are arranged to have an interval of 3 meters, nodes existing within a radius of 6 meters from the first node (n1) can be peripheral nodes.
[0098] In addition, the computing device (100) can identify the fourth node that is most frequently included in at least one optimal path among the 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) can include two or more nodes, and these nodes can correspond to the first node and the fourth node.
[0099] According to the above-described embodiments, the computing device (100) can determine a global path (G) by utilizing nodes that are relatively frequently included in the optimal path. In addition, the computing device (100) can control the mobile robot (10) to preferentially pass through the global path (G).
[0100] Therefore, the computing device (100) can efficiently manage and optimize the driving path of the mobile robot (10).
[0101] In additional embodiments, the computing device (100) may determine a global path based on an area with the lowest human traffic. For example, the computing device (100) may determine a global path using nodes with a relatively low human density.
[0102] Here, the computing device (100) can obtain data (e.g., image, lidar sensor) for determining population density from the mobile robot (10) and analyze the data to estimate population density.
[0103] Additionally, the computing device (100) can also recognize population density through sensor data measured from sensors installed in the mission execution area of the mobile robot (10) and communication with infrastructure. For example, the computing device (100) can identify human locations in real time through cameras and lidar sensors installed in the mission execution area, and analyze the data to identify the path with the least traffic. Furthermore, the computing device (100) can monitor the population density of a specific area in real time through communication with IoT devices.
[0104] Meanwhile, the computing device (100) can determine a global path using nodes with relatively low population densities. To this end, the computing device (100) can identify a specific node with the lowest population density among the nodes included in a plurality of optimal path nodes. Furthermore, the computing device (100) can determine a global path using adjacent nodes of a specific node or other nodes within a preset radius from the specific node. Furthermore, the computing device (100) can determine a path connecting a specific node and another node as a global path.
[0105] Additionally, the computing device (100) can monitor the surrounding environment in real time to recognize a time zone with high population density and determine a global path corresponding to each of the first time zone with high population density and the remaining second time zone.
[0106] For example, the computing device (100) can identify specific areas with high traffic during lunch or after-work hours and determine a global path by avoiding those areas during those times. This allows the computing device (100) to maximize the driving efficiency of the mobile robot (10) and minimize the risk of collision.
[0107] Therefore, 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 taking into account various environmental conditions and situations.
[0108] Additionally, the computing device (100) can monitor the surrounding environment in real time and dynamically change the range (e.g., length and width) of the global pass based on the recognition of a time zone with high population density.
[0109] For example, the computing device (100) can identify a specific area with a high concentration of people during lunch or after-work hours, determine a global path to avoid that area during those times, and set the global path width to be relatively wide. This allows the computing device (100) to maximize the driving efficiency of the mobile robot (10) and, in particular, minimize the risk of collision with people.
[0110] Referring again to FIG. 3, when a destination is assigned to a mobile robot (10), the computing device (100) can control the mobile robot (10) to move to the destination via a global path (S130).
[0111] Meanwhile, the computing device (100) can control the mobile robot (10) to move to the destination via the global path, and then modify the global path according to the movement status of the mobile robot (10).
[0112] Specifically, referring to FIG. 5, it is possible to monitor whether a mobile robot (10) performs local path planning while driving (S210). In addition, the computing device (100) can modify a global path based on the number of times local path planning has been performed and an avoidance trigger node related to the local path planning (S220). Here, the avoidance trigger node refers to 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 restrictions on the robot's movement, such as an obstacle.
[0113] In various embodiments, the computing device (100) can control the mobile robot (10) to move while avoiding an avoidance trigger node if the avoidance trigger node is included in the global path, but to pass through the remaining nodes included in the global path.
[0114] For example, referring to FIG. 7, the computing device (100) can control the mobile robot (10) to move from a starting point (S) to a target point (T) via a global path (G).
[0115] Next, referring to FIG. 8, when a computing device (100) assigns a target point (T) to a mobile robot (10), if the mobile robot (10) recognizes an avoidance trigger node (E), it can perform local path planning to avoid the node, but control the mobile robot to move to the target point (T) via a global path (G).
[0116] That is, when a mobile robot (10) recognizes an avoidance trigger node (E) while moving, it can perform local path planning to avoid the avoidance trigger node (E) and then move to the target point (T) via a global path (G).
[0117] Additionally, referring to FIG. 9, when the computing device (100) assigns a target point (T) to the mobile robot (10), if the mobile robot (10) recognizes an avoidance trigger node (E), the computing device (100) can control the mobile robot (10) to avoid the node by performing local path planning and move to the target point (T) using an optimal path. That is, if the avoidance trigger 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.
[0118] 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.
[0119] In an additional embodiment, the computing device (100) can monitor whether the mobile robot (10) recognizes an avoidance trigger node (E). Then, when the mobile robot (10) recognizes an avoidance trigger node (E), the computing device (100) can receive information about the corresponding node in real time and determine whether to use a global pass (G).
[0120] 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 trigger node (E) and passes through the global path (G). In addition, 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., an optimal path) from a location where the avoidance trigger node (E) is discovered. In addition, the computing device (100) can compare the first path and the second path to determine whether to use the global path (G).
[0121] For example, the computing device (100) can compare the distance, time required, energy consumption, etc. of the first path and the 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 mobile robot (10) to move to the target point (T) through local path planning.
[0122] Meanwhile, the computing device (100) analyzes the frequency and location of avoidance-inducing nodes (E). If a specific node repeatedly causes problems, the computing device (100) can exclude the node from the global path (G) or generate a detour route. Through this, the computing device (100) can more efficiently plan the path of the mobile robot (10) and save time due to repeated obstacle avoidance.
[0123] Accordingly, the computing device (100) of the present invention can monitor the path of the mobile robot (10) in real time, compare and analyze various path selection options, and dynamically determine the optimal driving path. This allows the mobile robot (10) to efficiently and safely reach the target point and effectively avoid various obstacles that may arise during driving.
[0124] As described above, the computing device (100) can modify the global path (G) when local path planning due to an avoidance trigger node (E) occurs frequently.
[0125] For example, if a specific node is recognized as an avoidance trigger node (E) more than a preset number of times, the computing device (100) may determine the specific node as an obstacle and, as illustrated in FIG. 10, may re-determine the global pass (G) while excluding the specific node.
[0126] For example, if a specific node is recognized as an avoidance trigger node (E) more than 10 times, the computing device (100) may determine the node as an obstacle and perform a process of determining a global path (G) for the remaining nodes excluding the node.
[0127] 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. In addition, if the specific node is included in the global path (G), the computing device (100) can redetermine the global path (G) so as not to include the specific node.
[0128] Therefore, 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.
[0129] According to an additional embodiment of the present invention, the computing device (100) can variably apply whether to use the global pass (G) based on several conditions.
[0130] 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.
[0131] More specifically, the computing device (100) can determine whether to control the mobile robot (10) to travel via a global path (G) based on the environmental conditions, battery status, and population density of the mobile robot (10).
[0132] 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 areas, and the battery status of the mobile robot (10). Here, the environmental conditions may include conditions related to energy used for the mobile robot to move. For example, the environmental conditions may include (for example, a moving load, whether there is a slope). The computing device (100) can recognize the moving load and whether there is a slope based on data collected from the mobile robot (10) that has moved each of the global path (G) and the remaining areas.
[0133] For example, if the environmental conditions of the global path (G) include a higher moving load and a lot of slopes than the remaining areas, and if the battery of the mobile robot (10) is below a preset level, the computing device (100) can control the mobile robot (10) not to use the global path (G). Meanwhile, if the environmental conditions of the global path (G) include a higher moving load and a lot of slopes than the remaining areas, and if the battery of the mobile robot (10) exceeds a preset level, the computing device (100) can control the mobile robot (10) to use the global path (G).
[0134] For another example, the computing device (100) may control the mobile robot (10) not to use the global path (G) if the area corresponding to the global path (G) has a higher population density than the remaining areas. Here, the population density may be recognized based on sensor data collected from the mobile robot (10) or sensor data acquired through sensors installed in the mission execution area of the mobile robot (10).
[0135] For example, the computing device (100) may control the mobile robot (10) not to use the global path (G) if the population density of the global path (G) is higher than the population density of the remaining areas. On the other hand, the computing device (100) may control the mobile robot (10) to use the global path (G) if the population density of the global path (G) is lower than the population density of the remaining areas.
[0136] Accordingly, the computing device (100) comprehensively considers the status of the mobile robot (10) and real-time environmental conditions to select an optimal path and enable efficient energy management. This allows the mobile robot (10) to operate stably for longer periods of time and flexibly respond to various situations.
[0137] According to a further embodiment of the present invention, the computing device (100) can vary the size of the global pass based on several conditions.
[0138] Specifically, the computing device (100) can consider the number and activity level of mobile robots (10) to expand the size of the global path when the complexity of the path is high, and to narrow the size of the global path when the complexity is low. Here, the size of the global path can include length and width.
[0139] In one embodiment, the computing device (100) can analyze real-time operating data of the mobile robot (10) to evaluate robot density and complexity of the movement path.
[0140] Specifically, the computing device (100) can analyze location data and path data collected from the mobile robot (10) to calculate the density of robots within a specific area. Here, the density of robots can correspond to the number of robots passing through a specific area during a specific period of time, based on the current location and movement direction of each robot.
[0141] Additionally, the computing device (100) may analyze the path data of each robot to evaluate the complexity of the movement path, thereby reflecting the intersection points, turning frequency, number of obstacle avoidances, etc. of the path. Here, the complexity of the movement path may correspond to the path intersection points, turning frequency, and number of obstacle avoidances.
[0142] 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. Furthermore, the computing device (100) can dynamically adjust the size of the global path to optimize path efficiency based on whether the density and the complexity of the movement path exceed a preset level.
[0143] For example, during times when many robots are operating or in specific work environments, the computing device (100) can expand the radius of the global path to minimize interference between robots and facilitate smooth movement. Conversely, during times when the number of robots is small and activity levels are low, the size of the global path can be reduced to reduce energy consumption and optimize the path.
[0144] For example, the computing device (100) can analyze real-time location and route data to determine the congestion level (i.e., robot density and path complexity) of a specific area. If the congestion level and complexity of a specific area are expected to increase the risk of collision due to high congestion and complexity, and the area is included in a global path, the computing device (100) 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.
[0145] In this manner, the computing device (100) of the present invention can optimize the travel path of a mobile robot (10) in real time, thereby improving operational efficiency in various work environments. This can increase the usability of mobile robots in various indoor environments such as restaurants, logistics warehouses, factories, and hospitals, and enhance work safety and efficiency.
[0146]
[0147] While the embodiments of the present invention have been described above with reference to the attached drawings, those skilled in the art will appreciate that the present invention can be implemented in other specific forms without altering the technical concept or essential features thereof. Therefore, the embodiments described above should be understood to be illustrative in all respects and not restrictive.
Claims
1. A method performed by a computing device including at least one processor, A step of setting up multiple nodes based on map information about the mission execution area of a mobile robot; A step of determining a global path using two or more nodes among the above plurality of nodes; and When a destination is assigned to the mobile robot, a step of controlling the mobile robot to move to the destination via the global path; including, Method for setting a path for a mobile robot.
2. In paragraph 1, The step of setting up multiple nodes based on map information about the area where the mobile robot performs its mission is as follows: A step of overlapping a plurality of points having preset intervals on a two-dimensional map included in the above map information; and A step of setting points overlapping with the two-dimensional map among the overlapping points as the plurality of nodes; including, Method for setting a path for a mobile robot.
3. In paragraph 1, The step of determining a global path using two or more nodes among the above plurality of nodes is: A step of extracting at least one optimal path between at least one starting point and at least one target point included in the above mission execution 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; including, Method for setting a path for a mobile robot.
4. In paragraph 3, The step of determining the global path based on a plurality of optimal path nodes included in at least one optimal path is as follows: A step of recognizing a first node that is most included in at least one optimal path among the plurality of optimal path nodes; A step of recognizing a second node that is included in the second most number of at least one optimal path among the plurality of optimal path nodes; and A step of determining a path connecting the first node and the second node as the global path; including, Method for setting a path for a mobile robot.
5. In paragraph 3, The step of determining the global path based on a plurality of optimal path nodes included in at least one optimal path is as follows: A step of recognizing a first node that is most included in at least one optimal path among the plurality of optimal path nodes; A step of recognizing a third node that is most included in at least one optimal path among the adjacent nodes that exist at the closest location to the first node; and A step of determining a path connecting the first node and the third node as the global path; including, Method for setting a path for a mobile robot.
6. In paragraph 3, The step of determining the global path based on a plurality of optimal path nodes included in at least one optimal path is as follows: A step of recognizing a first node that is most included in at least one optimal path among the plurality of optimal path nodes; A step of recognizing a fourth node that is most included in at least one optimal path among surrounding nodes existing within a preset radius from the first node; and A step of determining a path connecting the first node and the fourth node as the global path; including, Method for setting a path for a mobile robot.
7. In paragraph 1, The above method, A step of monitoring whether the above 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 trigger nodes associated with the local path planning; Including more, Characterized in that, if the avoidance trigger node is included in the global path, the mobile robot is controlled to move while avoiding the avoidance trigger node, but to pass through the remaining nodes included in the global path. Method for setting a path for a mobile robot.
8. In paragraph 7, The steps to modify the above global pass are: A step of recognizing a specific node that has 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; including, Method for setting a path for a mobile robot.
9. Memory that stores one or more instructions; and A processor that executes one or more instructions stored in the memory. Including, The processor executes one or more of the instructions, A device for performing the method of claim 1.
10. A computer program stored on a computer-readable recording medium that is combined with a computer as hardware and can perform the method of claim 1.
Citation Information
Patent Citations
Method and system for self-propelled object operation
JP1995281748A
The apparatus and method for improving the performance of autonomous navigation of unmanned ground vehicle using obstacle grid map
KR101096592B1
Method for planing optimal path of mobile robot and mobile robot using the same
KR1020120069949A
Method and system for specifying node for robot path plannig
KR102337531B1
KR20190024467A