Method and system for controlling robots using reinforcement learning-based algorithms and path planning-based algorithms, and buildings equipped with robots
The method combines reinforcement learning and path planning algorithms to control robot navigation, enhancing obstacle avoidance and reducing inefficient movements, ensuring safe and efficient operation in complex environments.
Patent Information
- Application Number
- JP2024538143
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-12-22
- Filing Date
- 2022-09-06
- Publication Date
- 2025-11-12
- Estimated Expiration
- 2042-09-06
AI Technical Summary
Existing robot control methods struggle to efficiently navigate through spaces with obstacles while avoiding collisions and unnecessary detours, particularly in narrow areas, without compromising safety and efficiency.
A robot control method that utilizes a reinforcement learning-based algorithm to learn optimal movement paths and a path planning-based algorithm to determine obstacle avoidance conditions, allowing the robot to either continue or stop its movement based on predefined conditions, executed in parallel to enhance navigation efficiency and safety.
This approach minimizes inefficient movements and ensures safe navigation by limiting the avoidance range for obstacles, enabling robots to position themselves appropriately in narrow passages and avoid minor obstacles while maintaining efficient service provision.
Smart Images

Figure 0007769126000001 
Figure 0007769126000002 
Figure 0007769126000003
Abstract
Description
[Technical Field]
[0001] The following description relates to methods and systems for controlling the movement of robots using reinforcement learning-based algorithms and path planning-based algorithms, and to buildings in which such robots are deployed. [Background technology]
[0002] Autonomous robots are robots that can grasp their surroundings, sense obstacles, and use their wheels and legs to move to their destination along the optimal route. They are being developed in a variety of fields, including autonomous vehicles, logistics, hotel services, and robot vacuum cleaners.
[0003] When robots are deployed into spaces such as buildings to provide services, they must be controlled to properly avoid predictable and unpredictable obstacles within the space, and in some cases may be required to navigate narrow areas such as corridors and hallways within buildings.
[0004] It is important for such robots to be controlled efficiently so as to avoid collisions and interference with other robots and obstacles, while also avoiding unnecessary detours or unnecessary movements such as traveling long distances.
[0005] Korean Patent Publication No. 10-2005-0024840 is a technology relating to a path planning method for an autonomous mobile robot, and discloses a method for planning an optimal path for a mobile robot that moves autonomously in a home or office to move safely and quickly to a target point while avoiding obstacles.
[0006] The information above is for ease of understanding only, and the present invention may include material that does not form part of the prior art, or may not include material that the prior art would suggest to one skilled in the art. Summary of the Invention [Problem to be solved by the invention]
[0007] The object of the present invention is to provide a robot control method that controls the movement of a robot to a destination based on a first algorithm learned in advance by reinforcement learning, and determines whether the robot satisfies predetermined obstacle avoidance conditions based on a second algorithm for controlling the movement of the robot according to a spatial path plan while the robot is moving to the destination, and controls the movement of the robot using the first algorithm or stops the movement of the robot depending on whether the avoidance conditions are satisfied.
[0008] The present invention aims to provide a method for efficiently controlling a robot by using a path planning-based algorithm to determine whether the robot needs to deviate from a predetermined avoidance range to avoid an obstacle identified while the robot is moving to a destination, and by stopping the robot based on the determination result. [Means for solving the problem]
[0009] In one aspect, there is provided a robot control method executed by a robot moving within a space or a robot control system for controlling a robot, the robot control method including: a step of controlling movement of the robot to a destination based on a first algorithm learned in advance by reinforcement learning for controlling the movement of the robot; a step of determining whether the robot satisfies a predetermined avoidance condition for an obstacle based on a second algorithm for controlling the movement of the robot according to a path plan based on a map constructed for the space while the robot is moving to the destination; and a step of controlling the movement of the robot to move to the destination in accordance with control by the first algorithm if the avoidance condition is satisfied, and controlling the robot to stop the movement of the robot if the avoidance condition is not satisfied.
[0010] The first algorithm and the second algorithm may be executed in parallel in the robot or in the robot control system to control the movement of the robot.
[0011] The robot is a service robot that provides a service within the space, and the destination may be the robot's final destination for providing the service, or a waypoint through which the robot passes on its way to the final destination.
[0012] The first algorithm may be configured to control the robot so that the robot moves to the destination while avoiding obstacles during movement, and the second algorithm may be configured to control the movement of the robot according to the path plan based on a path to the destination generated based on a map constructed for the space.
[0013] The map constructed for the space may be an occupancy grid map for the space.
[0014] The determining step may include a step of determining, based on the path plan, whether or not the robot can move to the destination while avoiding an obstacle identified during the robot's movement to the destination without deviating from a predetermined avoidance range, and if the robot can move to the destination while avoiding the obstacle without deviating from the avoidance range, the robot may be controlled to move to the destination in accordance with control by the first algorithm, and if the robot cannot move to the destination without deviating from the avoidance range while avoiding the obstacle, the robot may be controlled to stop in front of the obstacle.
[0015] The determining step may determine that the robot cannot avoid the obstacle without departing from the avoidance range if the robot must move a predetermined first distance or more to avoid the obstacle according to the path plan based on a path to the destination generated on the basis of a map constructed for the space.
[0016] The determining step may determine, based on a map constructed for the space, whether the robot can move to the destination while avoiding the obstacle without deviating by a predetermined second distance or more from a straight line from the robot's current location or starting location to the destination, and may control the robot to stop in front of the obstacle if the robot cannot move to the destination while avoiding the obstacle without deviating by the second distance or more.
[0017] If the obstacle is small enough that the robot can avoid it without detouring to another path, the robot may be controlled according to the first algorithm to avoid the obstacle and move to the destination without detouring to another path or stopping in front of the obstacle.
[0018] The determining step includes a step of determining, based on the path plan, whether the robot can move to the destination by avoiding an obstacle identified during the robot's movement to the destination without entering a predetermined prohibited area, and if the robot can move to the destination by avoiding the obstacle without entering the prohibited area, the robot may be controlled to move to the destination in accordance with control by the first algorithm, and if the robot cannot move to the destination by avoiding the obstacle without entering the prohibited area, the robot may be controlled to stop in front of the obstacle.
[0019] The determining step may include a step of determining, based on the path plan, whether the robot can avoid an obstacle identified during the robot's movement to the destination and move to the destination without moving backward, and if it is determined that the robot needs to move backward to avoid the obstacle, the robot may be controlled to stop in front of the obstacle.
[0020] Depending on the result of the determination, if there is an obstacle in the path along which the robot is to move to the destination that is small enough to be avoided without detouring into another path, the robot may be controlled to move to the destination by avoiding the obstacle without detouring into another path, in accordance with control by the first algorithm, and if another robot is identified as the obstacle ahead of the robot in the path, the robot may be controlled to wait behind the other robot without overtaking the other robot.
[0021] The passage may be an area in the space where the robots are required to be aligned, or an area of such width that two or more robots cannot travel side by side.
[0022] In another aspect, there is provided a computer system for a robot, the computer system including at least one processor implemented to execute computer-readable instructions, wherein the at least one processor controls movement of the robot to a destination based on a first algorithm learned in advance by reinforcement learning to control movement of the robot, determines whether the robot satisfies a predetermined obstacle avoidance condition based on a second algorithm for controlling movement of the robot according to a path plan based on a map constructed for the space while the robot is moving to the destination, and controls the movement of the robot to move to the destination in accordance with control by the first algorithm if the avoidance condition is satisfied, and controls the robot to stop moving if the avoidance condition is not satisfied.
[0023] In yet another aspect, there is provided a building in which at least one robot is disposed that moves within a space within the building, the building including at least one processor implemented to execute computer-readable instructions, the robot's movement within the building being controlled by a computer system that is included in the robot or is a server, the computer system including at least one processor implemented to execute computer-readable instructions, the at least one processor controlling the movement of the robot to a destination based on a first algorithm that is pre-trained by reinforcement learning to control the movement of the robot, determining whether the robot satisfies a predetermined obstacle avoidance condition based on a second algorithm for controlling the movement of the robot according to a path plan based on a map constructed for the space during the movement of the robot to the destination, and if the avoidance condition is satisfied, controlling the movement of the robot to move to the destination in accordance with control by the first algorithm, and if the avoidance condition is not satisfied, controlling the robot to stop the movement of the robot. [Effects of the Invention]
[0024] By controlling the robot's movement to the destination using a reinforcement learning-based algorithm and a path planning-based algorithm executed in parallel, it is possible to limit the avoidance range for obstacles that could not be adjusted using the reinforcement learning-based algorithm, thereby minimizing inefficient movement of the robot, such as when the robot deviates significantly from the path to the destination (e.g., the global path) when traveling through narrow passages or facing obstacles.
[0025] Furthermore, when performing actions required to provide a service, such as when the robots need to line up in a narrow passageway, the robots can be controlled to position themselves at an appropriate distance from the preceding robot while avoiding minor obstacles. [Brief explanation of the drawings]
[0026] [Figure 1] FIG. 1 illustrates a method for controlling a robot's movement to a destination using reinforcement learning-based and path planning-based algorithms in one embodiment. [Figure 2] FIG. 1 is a block diagram illustrating a robot providing services within a space in one embodiment. [Figure 3] FIG. 1 is a block diagram illustrating a robot control system for controlling a robot according to an embodiment. [Figure 4] FIG. 1 is a block diagram illustrating a robot control system for controlling a robot according to an embodiment. [Figure 5] FIG. 1 is a block diagram illustrating a processor of a computer system for a robot that uses reinforcement learning-based algorithms and path planning-based algorithms to control movement of the robot to a destination, in one embodiment. [Figure 6] 1 is a flowchart illustrating a method for controlling movement of a robot to a destination using reinforcement learning-based algorithms and path planning-based algorithms in one embodiment. [Figure 7] 10 is a flowchart illustrating a method for determining whether a robot satisfies a predetermined obstacle avoidance condition when controlling the movement of the robot to a destination in one example. [Figure 8] FIG. 10 is a diagram illustrating a method for controlling the movement of a robot to a destination based on whether the robot deviates from a predetermined avoidance range for an obstacle, in one example. [Figure 9]FIG. 1 illustrates a method for controlling a robot's movement to a destination depending on whether the robot must enter a predetermined prohibited area to avoid an obstacle, in one example. [Figure 10] FIG. 10 is a diagram illustrating a method for controlling the movement of a robot to a destination in one example, depending on whether the robot deviates from a predetermined avoidance range relative to the path to the destination in order to avoid an obstacle. [Figure 11] FIG. 1 illustrates a method for controlling robot movement in an area where robot alignment is required, in one example. [Figure 12] FIG. 1 illustrates an occupancy grid map as a map for space used by a path planning-based algorithm in one example. DETAILED DESCRIPTION OF THE INVENTION
[0027] Hereinafter, the embodiments will be described in detail with reference to the accompanying drawings.
[0028] FIG. 1 illustrates a method for controlling the movement of a robot to a destination using reinforcement learning-based algorithms and path planning-based algorithms, in one embodiment.
[0029] FIG. 1 illustrates how a robot 100 configured to provide a service within a space 10 moves toward a destination while avoiding obstacles 30 according to the execution of algorithms (i.e., a first algorithm and a second algorithm described below) configured to control the movement of the robot 100 toward the destination.
[0030] Algorithms configured to control the movement of the robot 100 to a destination may be executed within the robot 100 or within the robot control system 120.
[0031] When an algorithm is executed within the robot 100, i.e., when the algorithm is deployed and executed in the robot 100, the robot 100 may be controlled to move toward a destination while avoiding obstacles 30 as defined by the algorithm. On the other hand, when such an algorithm is executed within the robot control system 120, the robot 100 may be controlled based on control signals (commands), such as a speed control signal and / or a direction control signal, from the robot control system 120 according to the algorithm.
[0032] The space 10 in which the robot 100 moves (or travels) is a place where the robot 100 provides services, and may represent, for example, an indoor and / or outdoor space included in a building. A building includes a space where multiple personnel (hereinafter referred to as users) work or reside, and may include, for example, multiple partitioned spaces. The space 10 may represent a part of a building (a specific floor or a subspace within a floor).
[0033] The robot 100 may be a service robot used to provide services within the space 10. The robot 100 may be configured to provide services on at least one floor of the space 10. Although only one robot 100 is shown in FIG. 1 , a plurality of robots 100 may be arranged and operated within the space. Within the space 10, each robot 100 may move around and provide services at an appropriate position within the space 10, or provide services to an appropriate user.
[0034] The services provided by the robot 100 may include, for example, at least one of a parcel delivery service, a service for delivering ordered drinks (such as coffee), a cleaning service, and a service for providing other information / content.
[0035] The robot 100 may be configured to provide a service to a predetermined location in the space 10 or to a predetermined user by autonomous travel, and the (respective) movement of the robot 100 and the provision of the service may be controlled by the robot control system 120. The movement of the robot 100 to a destination controlled by the above-described algorithm may be the movement of the robot 100 to a predetermined location for the provision of such a service.
[0036] In the following detailed description, the "destination" to which the robot 100 moves may be the final destination of the robot 100 for providing a service, or may be a "waypoint" through which the robot 100 passes on its way to the final destination. As an example, when the service provided by the robot 100 is a parcel delivery service, the destination may be a location for receiving a parcel or a location for delivering the received parcel, or a location through which the robot 100 passes on its way to the receiving location or the delivery location.
[0037] The structure of the robot 100 and the robot control system 120 will be described in more detail with reference to FIGS.
[0038] As shown in the figure, the robot 100 may encounter an obstacle 30 while moving to the destination, and may be controlled to move to the destination while avoiding the obstacle 30.
[0039] Obstacle 30 is an object that exists temporarily or non-temporarily within space 10, and may be a moving object such as a human or another robot, or may be a fixed object that does not move within space 10.
[0040] In an embodiment, the robot 100 may be controlled by a first algorithm (i.e., a reinforcement learning-based algorithm) that is pre-trained by reinforcement learning to control the movement of the robot 100, and a second algorithm (i.e., a path planning-based algorithm) to control the movement of the robot 100 according to a path plan based on a map constructed for the space 100.
[0041] For example, the movement of the robot 100 to the destination may be controlled by the first algorithm, and when it is determined by the second algorithm that the robot can avoid the obstacle 30 it faces while satisfying a predetermined avoidance condition (or an avoidance range) according to the judgment of the first algorithm, the robot 100 may be controlled to avoid the obstacle 30 by the first algorithm. In this case, when it is determined that the obstacle 30 cannot be avoided while satisfying the predetermined avoidance condition (or an avoidance range), the robot 100 may be controlled to stop in front of the obstacle 30.
[0042] That is, in the embodiment, the movement of the robot 100 can be controlled by using the first algorithm to maintain the avoidance performance for the obstacle 30, while additionally using the second algorithm to limit the avoidance range for the obstacle 30 and minimize dangerous and inefficient movements of the robot 100.
[0043] Therefore, the robot 100 is controlled by a first algorithm that has excellent performance in avoiding the obstacle 30, but the avoidance range for avoiding the obstacle 30 is limited based on the second algorithm, so that the robot 100 can be controlled not to make dangerous and inefficient movements.
[0044] The control method of the robot 100 using the first and second algorithms will be described in more detail with reference to FIGS.
[0045] FIG. 2 is a block diagram illustrating a robot providing a service in a space in one embodiment.
[0046] As described above, the robot 100 may be a service robot used to provide a service within the space 10. The robot 100 may provide a service at a predetermined location in the space 10 or to a predetermined user while autonomously traveling.
[0047] The robot 100 is a physical device and may include a control unit 104, a drive unit 108, a sensor unit 106, and a communication unit 102 as shown.
[0048] The control unit 104 may be a physical processor built into the robot 100, and although not shown, may include a path planning processing module, a mapping processing module, a drive control module, a localization processing module, a data processing module, and a service processing module. In this case, the path planning processing module, the mapping processing module, and the localization processing module may be selectively included in the control unit 104 depending on the embodiment so that the robot 100 can continue to navigate indoors autonomously even if communication with the robot control system 120 is lost.
[0049] The communication unit 102 may be a configuration for the robot 100 to communicate with other devices (such as other robots or the robot control system 120). In other words, the communication unit 102 may be a hardware module such as an antenna, a data bus, a network interface card, a network interface chip, and a network interface port of the robot 100, or a software module such as a network device driver or a networking program, which transmits and receives data and / or information to and from other devices.
[0050] The drive unit 108 is a component that controls and enables the movement of the robot 100, and may include equipment for doing so.
[0051] The sensor unit 106 may be configured to collect data required for the autonomous navigation and service provision of the robot 100. The sensor unit 106 does not need to include an expensive sensing device and may include sensors such as a low-cost ultrasonic sensor and / or a low-cost camera. The sensor unit 106 may include a sensor for identifying other robots or humans in front and / or behind. For example, the camera of the sensor unit 106 may identify other robots, humans, and other objects as obstacles 30. The sensor unit 106 may also include an infrared sensor (or an infrared camera). In addition to the camera, the sensor unit 106 may further include sensors for recognizing / identifying nearby users, other robots, or objects. In this way, the sensor unit 106 may be configured to identify obstacles 30.
[0052] As an example, when an algorithm for autonomous navigation of the robot 100 is executed in the robot control system 120, which controls the robot 100, the data processing module of the control unit 104 may transmit sensing data including output values of the sensors of the sensor unit 106 to the robot control system 120 from the communication unit 102. The robot control system 120 may transmit path data generated using an indoor map of the space 10 to the robot 100. The path data may be transmitted from the communication unit 102 to the data processing module. The data processing module may immediately transmit the path data to the drive control module, and the drive control module may control the drive unit 108 according to the path data to control the indoor autonomous navigation of the robot 100. This allows the robot 100 to navigate autonomously based on the second algorithm described above. Meanwhile, when the first algorithm is executed in the robot control system 120, the robot control system 120 may generate a control signal (e.g., a speed and / or direction control signal) for controlling the robot 120 according to the first algorithm based on the sensing data received from the robot 100, and may control the robot 100 based on the generated control signal. This allows the robot 100 to perform autonomous traveling based on the first algorithm.
[0053] Alternatively, when the robot 100 and the robot control system 120 cannot communicate with each other or when an algorithm for autonomous navigation is executed within the robot 100, the data processing module may directly process the indoor autonomous navigation of the robot 100 by transmitting sensing data to the localization processing module and generating path data using the path planning processing module and the mapping processing module. This allows the robot 100 to perform autonomous navigation based on the second algorithm described above. On the other hand, when the robot 100 executes the first algorithm described above, the data processing module of the robot 100 may generate control signals (e.g., speed and / or direction control signals) for controlling the robot 120 according to the first algorithm based on the sensing data, and may control the robot 100 based on the generated control signals. This allows the robot 100 to perform autonomous navigation based on the first algorithm.
[0054] The robot 100 may be different from a mapping robot used to generate an indoor map of the space 10. The robot 100 does not include expensive sensing equipment and may perform indoor autonomous navigation using output values from sensors such as low-cost ultrasonic sensors and / or low-cost cameras. Meanwhile, if the robot 100 has previously performed indoor autonomous navigation through communication with the robot control system 120, it can accurately perform indoor autonomous navigation even using low-cost sensors by further utilizing mapping data including path data previously received from the robot control system 120.
[0055] However, depending on the embodiment, the robot 100 may also serve as the mapping robot.
[0056] The service processing module may receive commands from the robot control system 120 via the communication unit 102 or via the communication unit 102 and the data processing module. The driving unit 108 may include not only equipment for moving the robot 100 but also equipment related to the service provided by the robot 100. For example, to perform a drink / delivery service, the driving unit 108 of the robot 100 may include a configuration for loading drinks / deliveries and a configuration for delivering drinks / deliveries to users (e.g., a robot arm). The robot 100 may also include a speaker and / or a display for providing information / content. The service processing module may transmit a driving command for the service to be provided to the driving control module, and the driving control module may control the configurations included in the robot 100 and the driving unit 108 according to the driving command to provide the service.
[0057] The robot 100 may be controlled to move to the destination while avoiding the obstacles 30 in accordance with the control by the first and second algorithms described above.
[0058] As described above, the robot 100 only provides sensing data for controlling the robot 100 to the robot control system 120, and if the first and second algorithms for controlling the robot 100 are executed by the robot control system 120, the robot 100 may be considered a brainless robot.
[0059] Meanwhile, each robot 100 may be formed in a different size or shape depending on the model, the service provided, and the like.
[0060] The configuration and operation of the robot control system 120 that controls the robot 100 will be described in more detail with reference to FIGS.
[0061] The technical features described above with reference to FIG. 1 are also applied to FIG. 2, so duplicated explanations will be omitted.
[0062] 3 and 4 are block diagrams showing a robot control system for controlling a robot in one embodiment.
[0063] The robot control system 120 may be a device that controls the movement (i.e., running) of the robot 100 within the space 10 and the provision of a service by the robot 100 within the space 10. The robot control system 120 may control the movement of each of the multiple robots 100 and the provision of a service by each of the robots 100. The robot control system 120 may set a route for the robot 100 to provide a service by communicating with the robot 100, and may transmit information about such a route to the robot 100. The robot 100 may run based on the received information about the route, and may provide a service at a predetermined location or to a predetermined user. The robot control system 120 may control the movement of the robot so that the robot moves (runs) along the set route.
[0064] The robotic control system 120 may include at least one computing device.
[0065] As described above, the robot control system 120 may be a device that sets a path for the robot 100 to travel and controls the movement of the robot 100. The robot control system 120 may include at least one computing device and may be realized as a server located within the space 10 or outside the space 10.
[0066] Setting a path for the robot 100 to travel and controlling the movement of the robot 100 may include controlling the robot 100 according to the second algorithm described above.
[0067] The robotic control system 120 may include a memory 330, a processor 320, a communication unit 310, and an input / output interface 340 as shown.
[0068] Memory 330 is a computer-readable recording medium and may include random access memory (RAM), read-only memory (ROM), and a persistent mass storage device such as a disk drive. Here, the ROM and the persistent mass storage device may be included as separate persistent storage devices separate from memory 330. An operating system and at least one program code may also be stored in memory 330. Such software components may be loaded from a computer-readable recording medium separate from memory 330. Such separate computer-readable recording medium may include a computer-readable recording medium such as a floppy drive, a disk, a tape, a DVD / CD-ROM drive, or a memory card. In another embodiment, the software components may be loaded into memory 330 via communication unit 310, which is not a computer-readable recording medium.
[0069] The processor 320 may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input / output operations. The instructions may be provided to the processor 320 by the memory 330 or the communication unit 310. For example, the processor 320 may be configured to execute instructions received according to program code loaded into the memory 330. Such a processor 320 may include components 410 to 440 as shown in FIG. 4.
[0070] Each of the components 410 to 440 of the processor 320 may be a software and / or hardware module as part of the processor 320, and may represent a function (functional block) realized by the processor. The components 410 to 440 of the processor 320 will be described with reference to FIG. 4.
[0071] The communication unit 310 may be a configuration for the robot control system 120 to communicate with other devices (such as the robot 100 or another server). In other words, the communication unit 310 may be a hardware module, such as an antenna, a data bus, a network interface card, a network interface chip, and a networking interface port of the robot control system 120, which transmits / receives data and / or information to / from other devices, or a software module, such as a network device driver or a networking program.
[0072] The input / output interface 340 may be a means for interfacing with input devices such as a keyboard or mouse, and devices such as a display and speakers.
[0073] Additionally, in other embodiments, the robotic control system 120 may include more components than those shown in the figures.
[0074] 4, configurations 410 to 440 of the processor 320 will be described in more detail. As shown in the figure, the processor 320 may include a map generation module 410, a localization processing module 420, a route planning processing module 430, and a service operation module 440. The components included in the processor 320 may represent different functions executed by at least one processor included in the processor 320 in accordance with control instructions from the operating system code and the code of at least one computer program.
[0075] The map generation module 410 may be a component for generating an indoor map of a target facility (e.g., the interior of space 10) using sensing data generated by a mapping robot (not shown) autonomously moving within space 10.
[0076] At this time, the localization processing module 420 may determine the position of the robot 100 within the target facility using the sensing data received from the robot 100 via the network and the indoor map of the target facility generated by the map generation module 410.
[0077] The path planning processing module 430 may generate a control signal for controlling the autonomous indoor movement of the robot 100 using the sensing data received from the robot 100 and the generated indoor map. For example, the path planning processing module 430 may generate a path (i.e., path data) for the robot 100. The generated path (path data) may be set for the robot 100 so that the robot 100 moves along this path. The robot control system 120 may transmit information about the generated path to the robot 100 via a network. For example, the information about the path may include information indicating the current location of the robot 100, information for mapping the current location to an indoor map, and path planning information. The information about the path may include information about a path that the robot 100 will travel to provide a service at a predetermined position in the space 10 or to a predetermined user. The path planning processing module 430 may set a path (i.e., path data) for the robot 100. The robot control system 120 may control the movement of the robot 100 so that the robot 100 moves along such a set path (i.e., according to a set path).
[0078] Setting a path for the robot 100 to travel and controlling the movement of the robot 100 may include controlling the robot 100 according to the second algorithm.
[0079] The service operation module 440 may include a function for controlling services provided by the robot 100 within the space 10. For example, a service provider operating the robot control system 120 or the space 10 may provide an IDE (Integrated Development Environment) for services (e.g., cloud services) provided by the robot control system 120 to a user or creator of the robot 100. In this case, the user or creator of the robot 100 may create software for controlling services provided by the robot 100 within the space 10 using the IDE and register the software in the robot control system 120. In this case, the service operation module 440 may control the services provided by the robot 100 using the software registered in association with the robot 100. As a specific example, assuming that the robot 100 provides a service of delivering an item requested by a user (e.g., a drink or a parcel) to the user's location, the robot control system 120 may not only control the indoor autonomous driving of the robot 100 so that the robot 100 moves to the user's location, but may also transmit relevant commands to the robot 100 so that the robot 100 provides a series of services, such as handing over the item to the user upon arriving at the destination and outputting a corresponding voice message to the user.
[0080] The robot control system 120 is a computer system for controlling the robot 100 and may be a server. The robot control system 120 may be a server located outside the space 10 or a building and may be a cloud server. Alternatively, in some embodiments, the robot control system 120 may be located inside the space 10 or a building.
[0081] The technical features described above with reference to FIGS. 1 and 2 also apply to FIGS. 3 and 4, and therefore a duplicated description will be omitted.
[0082] FIG. 5 is a block diagram illustrating a processor of a computer system for a robot that uses reinforcement learning-based algorithms and path planning-based algorithms to control the robot's movement to a destination, in one embodiment.
[0083] The processor 500 shown in the figure is a component included in a computer system for the robot 100, and may be, for example, the processor of the control unit 104 of the robot 100 or the processor 320 of the robot control system 120 described above.
[0084] That is, the processor 500 is configured to execute control using a first algorithm and a second algorithm for the robot 100 to avoid the obstacle 30 and move to the destination, and may be configured to be included in the robot 100 or the robot control system 120.
[0085] The processor 500 may include a first algorithm processing unit 510 and a second algorithm processing unit 520. The first algorithm processing unit 510 may be configured to execute a first algorithm to control the movement of the robot 100, and the second algorithm processing unit 520 may be configured to execute a second algorithm to control the movement of the robot 100.
[0086] Each of the components 510 and 520 of the processor 500 is part of the processor 500 and may be a software and / or hardware module, and may represent a function (functional block) realized by the processor.
[0087] The first algorithm processor 510 and the second algorithm processor 520 may execute the first algorithm and the second algorithm in parallel, i.e., the first algorithm and the second algorithm may be executed in parallel or simultaneously by the robot 100 or the robot control system 120 to control the movement of the robot 100.
[0088] The first and second algorithms are described in more detail below.
[0089] The first algorithm may be a reinforcement learning-based algorithm for controlling the autonomous navigation of the robot 100.
[0090] Reinforcement learning is a type of machine learning, and is a learning method for selecting the optimal action for a given situation (or state), and a computer program that is the subject of reinforcement learning may be called an agent. The agent establishes a policy that indicates the action it will take for a given situation, and may train a model to establish the policy so as to obtain the maximum reward.
[0091] As an example, reinforcement learning may involve an artificial intelligence agent interacting in a simulation or the real world to learn how to control the robot 100 in a way that maximizes a developer-specified reward, rather than a human creating an algorithm to control the robot 100.
[0092] The first algorithm may be realized as an algorithm for controlling an autonomous vehicle or an autonomous robot by such reinforcement learning. The reinforcement learning may include deep reinforcement learning (DRL), which is a model that performs reinforcement learning using a deep neural network (DNN), and the first algorithm may be realized by deep reinforcement learning.
[0093] When controlling the autonomous movement of the robot 100, such a reinforcement learning-based algorithm, i.e., the first algorithm, can achieve higher performance and robustness in obstacle avoidance, etc., compared to an algorithm based on path planning for a map constructed for the space 10.
[0094] The first algorithm may be implemented to learn optimal parameters for mapping inputs of sensors included in the robot 100 to the velocity of the robot 100 by interacting with the environment of the space 10 .
[0095] Therefore, the first algorithm may be configured to control the robot 100 so that the robot 100 moves to a destination while avoiding obstacles during movement.
[0096] The first algorithm may be aggressive in moving to a destination and avoiding obstacles 30. For example, if the robot 100 is controlled solely based on the first algorithm, the robot 100 may not make special attempts to protect users or obstacles from relatively rare, but potentially serious, actions, even if such protection incurs little or no performance loss.
[0097] In addition, if the robot 100 is controlled based only on the first algorithm, the avoidance range for the robot 100 to avoid the obstacle 30 is not limited, and therefore the robot 100 may make an excessively long detour to avoid the obstacle 30. Furthermore, even in a situation where the robots 100 must line up in a narrow passage and move in order, the robot 100 controlled based only on the first algorithm may try to move to the destination by overtaking another robot in front, or may turn around on the spot if it is unable to avoid the other robot.
[0098] In this way, if the robot 100 is controlled based only on the first algorithm, it becomes difficult to control the robot 100 to wait without avoiding the obstacle 30 as required for safety or the services provided by the robot 100, and the robot 100 may enter a prohibited area within the space 10 in order to avoid the obstacle 30.
[0099] In the embodiment, the movement of the robot 100 is controlled using the first algorithm to maintain the avoidance performance of the obstacle 30, while the second algorithm is additionally used to control the movement of the robot 100 in order to limit the avoidance range of the obstacle 30 and minimize dangerous and inefficient movement of the robot 100.
[0100] The second algorithm may be a path-planning-based algorithm for controlling the autonomous movement of the robot 100 according to a path plan based on a map (e.g., an indoor map) constructed for the space 10. For example, the second algorithm may be configured to control the movement of the robot 100 according to a path plan based on a path to a destination generated based on the map constructed for the space 10.
[0101] The second algorithm may be an algorithm for determining an optimal path for the robot 100 to travel to a destination based on a map constructed for the space 10, and for controlling the robot 100 to travel along this path while avoiding obstacles 30. The map for the space 10 may be generated by an individual mapping robot. The map constructed for the space 100 may be, for example, an occupancy grid map for the space 100.
[0102] In this regard, FIG. 12 illustrates an occupancy grid map as a map for space used by a path planning based algorithm in one example.
[0103] The occupancy grid map 100 shown in the figure is for a space 10 within a building and may be generated by a mapping robot. The path 1210 shown in the figure indicates, in one example, the path of the robot 100 from the current location or starting location to the destination. The path 1210 may be composed of multiple nodes and edges connecting the nodes. Each node may indicate a waypoint (or destination) that the robot 100 passes through on the path. The nodes may be set based on a predetermined rule.
[0104] If the robot 100 is controlled using only an occupancy grid based planner, which is a path planning based algorithm that uses an occupancy grid map, it is possible to avoid the obstacle 30 and adjust the avoidance range for the obstacle 30. However, such an algorithm is vulnerable to errors in the sensing data or positioning of the robot 100, and when an error occurs, the movement of the robot 100 to the destination may not be effectively controlled.
[0105] In the embodiment, the first algorithm and the second algorithm are executed in parallel in a computer system, so that the first algorithm controls the movement of the robot 100 to maintain the ability to avoid the obstacle 30, and the second algorithm limits the range of the obstacle 30 to minimize dangerous and inefficient movement of the robot 100.
[0106] That is, in the embodiment, the first algorithm and the second algorithm are executed in parallel on a computer system, and the second algorithm may be used as an auxiliary planner. Such a second algorithm may be used to determine whether the robot 100 can avoid the obstacle 30 while satisfying a predetermined avoidance condition (or avoidance range) according to a path plan based on a map constructed for the space 10.
[0107] Therefore, in the embodiment, when the robot 100 faces an obstacle 30, if the robot 100 must move a certain distance or more from the path (global path) according to the path planning in order to avoid the obstacle 30 based on the determination by the second algorithm, the robot 100 may be controlled to stop and wait without avoiding the obstacle 30. As described above, in the embodiment, the first algorithm and the second algorithm are executed in parallel, and if the second algorithm determines that it is impossible to avoid the obstacle 30 while satisfying a predetermined avoidance condition (or avoidance range), the robot 100 may be stopped by ignoring the command by the first algorithm. On the other hand, the robot 100 may be controlled to avoid the obstacle 30 according to the first algorithm if the obstacle 30 is small enough to be avoided or can be avoided without moving a certain distance.
[0108] The control method of the robot 100 using the first and second algorithms will be described in more detail with reference to FIGS.
[0109] The technical features described above with reference to FIGS. 1 to 4 also apply to FIGS. 5 and 12, and therefore overlapping descriptions will be omitted.
[0110] In the following detailed description, for convenience of explanation, the method of controlling movement of a robot to a destination will be described as operations performed by a computer system including the processor 500 described with reference to FIG.
[0111] FIG. 6 is a flow chart illustrating a method for controlling movement of a robot to a destination using reinforcement learning-based algorithms and path planning-based algorithms, in one embodiment.
[0112] In step 610, the computer system may control the movement of the robot 100 to the destination based on a first algorithm previously trained by reinforcement learning to control the movement of the robot 100. That is, the robot 100 may be controlled to move while avoiding obstacles identified during the movement to the destination based on the reinforcement learning-based algorithm.
[0113] The destination may be the final destination of the robot 100 for providing a service, or a waypoint through which the robot 100 passes on its way to the final destination.
[0114] In step 620, the computer system may determine whether the robot 100 satisfies a predetermined avoidance condition for the obstacle 30 by a second algorithm for controlling the movement of the robot 100 according to a path plan based on a map constructed for the space 10 while the robot 100 is moving to its destination.
[0115] In the computer system, the first algorithm and the second algorithm are executed in parallel or simultaneously to control the movement of the robot 100, so the determination at step 620 may be performed continuously while the robot 100 is moving to the destination. That is, the determination at step 620 may be performed in real time while the robot 100 is moving.
[0116] The avoidance conditions, including the avoidance range and the prohibited area described below, may be set by an administrator of the robot 100 or the robot control system 120. The administrator may set the avoidance conditions as conditions for path planning by the second algorithm.
[0117] Thereby, when the robot 100 identifies or encounters an obstacle 30 during its movement, the computer system may determine whether the avoidance condition is met.
[0118] A specific method for determining whether or not the avoidance conditions for the obstacle 30 are satisfied and controlling the robot 100 will be described in more detail with reference to FIGS.
[0119] In step 630, the computer system may control the robot 100 depending on whether the avoidance condition is satisfied. For example, if the avoidance condition is satisfied, the computer system may control the movement of the robot 100 to move to the destination according to control by the first algorithm. Furthermore, if the avoidance condition is not satisfied, the computer system may control the robot 100 to stop the movement of the robot 100. When the computer system controls the robot 100 to stop the movement of the robot 100, it may transmit an interrupt to the robot 100 to stop the robot 100.
[0120] Therefore, the robot 100 can be controlled to avoid the obstacle 30 only when the avoidance condition or the avoidance range for the obstacle 30 limited by the second algorithm is satisfied, and can be controlled to stop without avoiding the obstacle 30 when the avoidance condition or the avoidance range is not satisfied. The computer system may again control the robot 100 to move to the destination after overcoming the obstacle 30 (e.g., after the obstacle 30 has moved to another position).
[0121] The technical features described above with reference to FIGS. 1 to 5 and 12 also apply to FIG. 6, so duplicated explanations will be omitted.
[0122] FIG. 7 is a flowchart illustrating a method for determining whether a robot satisfies a predetermined obstacle avoidance condition when controlling the movement of the robot to a destination, in one example.
[0123] In step 710, if an obstacle 30 is identified while the robot 100 is moving to the destination, the computer system may determine whether the robot 100 can move to the destination while avoiding the obstacle 30 without departing from a predetermined avoidance range based on the path planning by the second algorithm.
[0124] The avoidance conditions correspond to the avoidance conditions described above and may be set by an administrator of the robot 100 or the robot control system 120. The avoidance conditions may include a distance traveled by the robot 100 and / or a radius from the current location of the robot 100.
[0125] If it is determined that the robot 100 can move to the destination by avoiding the obstacle 30 without departing from the avoidance range, the robot 100 may be controlled to move to the destination according to the control of the first algorithm. On the other hand, if the robot 100 cannot move to the destination by avoiding the obstacle 30 without departing from the avoidance range, the robot 100 may be controlled to stop in front of the obstacle 30.
[0126] For example, if the robot 100 must travel a predetermined first distance or more to avoid the obstacle 30 (e.g., a detour must be made a predetermined first distance or more) according to a path plan based on a path to a destination (e.g., a global path) generated based on a map constructed for the space 10, the computer system may determine that the robot 100 cannot avoid the obstacle 30 without departing from the avoidance range. If the path plan according to the second algorithm requires the robot 100 to deviate a predetermined radius or travel a predetermined distance from its current location to avoid the obstacle 30, the computer system may determine that the robot 100 cannot avoid the obstacle 30 without departing from the avoidance range. In this case, the computer system may ignore the control command according to the first algorithm and control the robot 100 to stop without avoiding the obstacle 30.
[0127] In this regard, FIG. 8 is a diagram illustrating a method for controlling the movement of a robot to a destination depending on whether the robot deviates from a predetermined avoidance range for an obstacle, in one example.
[0128] In the illustrated example, the robot 100 may identify an obstacle 800 ahead when moving to a destination. The computer system 100 may determine whether a detour path to avoid the identified obstacle 30 deviates from a predetermined avoidance range based on the path planning by the second algorithm. For example, the computer system 100 may determine that the detour path deviates from the predetermined avoidance range if the additional distance traveled by the robot 100 when moving along the detour path is equal to or greater than a predetermined value, or if the robot 100 deviates from its current location by a certain radius or more when moving along the detour path. In this case, the computer system 100 may ignore the control command by the first algorithm and control the robot 100 to stop without avoiding the obstacle 30.
[0129] Alternatively, the computer system may determine that the robot 100 cannot avoid the obstacle 30 without deviating from the avoidance range if, in order for the robot 100 to avoid the obstacle 30, the path to the destination must deviate by more than a predetermined value from the path connecting the current location of the robot 100 or the path from the starting point to the destination, ignoring the obstacle 30, according to a path plan based on a map constructed for the space 10.
[0130] For example, the computer system may determine, based on a map constructed for the space 10, whether the robot 100 can move to the destination while avoiding the obstacle 30 without deviating by more than a predetermined second distance from a straight line from the current location or the starting point of the robot 100 to the destination. The straight line may correspond to a global path from the current location or the starting point to the destination. If it is determined that the robot 100 cannot move to the destination while avoiding the obstacle 30 without deviating by more than the second distance, the computer system may control the robot 100 to stop in front of the obstacle 30.
[0131] In this regard, FIG. 10 is a diagram illustrating a method for controlling the movement of a robot to a destination in one example, depending on whether the robot deviates from a predetermined avoidance range relative to the path to the destination in order to avoid an obstacle.
[0132] Point 1010 shown in the figure may be the starting point or the current location of the robot 100, and point 1020 may be the destination. The line connecting point 1010 and point 1020 may correspond to the line described above. A predetermined second distance may be determined by dropping a perpendicular line from such a line. The second distance is an avoidance range that is a value set by an administrator of the robot 100 or the robot control system 120, and may be, for example, 1 m.
[0133] If it is determined that the robot 100 can move to the destination 1020 while avoiding the obstacle 1030 without deviating from the straight line by a second distance, the robot 100 may be controlled to move to the destination based on the first algorithm; otherwise, the robot 100 may be controlled to stop in front of the obstacle 1030 without avoiding the obstacle 1030. On the other hand, even if a detour path 1 exists to bypass the obstacle 1030, the use of such detour path 1 may not be considered because it deviates from the straight line by a second distance.
[0134] In the illustrated embodiment, within the avoidance range, obstacle 1030 that can be avoided under control by the first algorithm may be considered to be an obstacle that is small enough that robot 100 can easily avoid it under control by the first algorithm.
[0135] In step 720, if an obstacle 30 is identified while the robot 100 is moving to the destination, the computer system may determine whether the robot 100 can move to the destination while avoiding the obstacle 30 without entering a predetermined prohibited zone based on the path planning by the second algorithm. The prohibited zone is set by an administrator of the robot 100 or the robot control system 120 and may be an area in the space 10 where the robot 100 is not allowed to enter.
[0136] If the robot 100 can move to the destination by avoiding the obstacle 30 without entering the prohibited area, the computer system may control the robot 100 to move to the destination according to the first algorithm. If the robot 100 cannot move to the destination by avoiding the obstacle 30 without entering the prohibited area, or if the robot 100 must make a detour of a predetermined distance or more to avoid entering the prohibited area, the computer system may control the robot 100 to stop in front of the obstacle 30.
[0137] In this regard, FIG. 9 is a diagram illustrating a method for controlling the movement of a robot to a destination depending on whether the robot enters a predetermined prohibited area to avoid an obstacle, in one example.
[0138] The prohibited area 900 is set by an administrator of the robot 100 or the robot control system 120, and may be, for example, a toilet, a non-working space of the robot 100, or other restricted area. The prohibited area 900 may be identified on a map generated for the space 10. Therefore, based on the path planning by the second algorithm, it can be determined whether the robot 100 will enter the prohibited area 900 to avoid the obstacle 800. As shown in the figure, if the robot 100 cannot avoid the obstacle 800 and move to the destination without entering the prohibited area 900, the robot 100 may be controlled to stop in front of the obstacle 800.
[0139] In step 730, if an obstacle 30 is identified while the robot 100 is moving to the destination, the computer system may determine, based on the path planning by the second algorithm, whether the robot 100 can move to the destination while avoiding the obstacle 30 without moving backward. If it is determined that the robot 100 must move backward to avoid the obstacle 30, the computer system may control the robot 100 to stop in front of the obstacle 30. Thus, in an embodiment, if a detour path to avoid the obstacle 30 requires the robot 100 to move backward, such detour path may not be considered in the movement control of the robot 100.
[0140] The technical features described above with reference to FIGS. 1 to 6 and 12 also apply to FIGS. 7 to 10, and therefore overlapping descriptions will be omitted.
[0141] FIG. 11 illustrates a method for controlling robot movement in an area where robot alignment is desired, in one example.
[0142] As described above, if the obstacle 1120 is small enough that the robot 100 can avoid it without detouring into another passage, the robot 100 may be controlled by the first algorithm to avoid the obstacle 1120 and move to the destination without detouring into another passage or stopping in front of the obstacle 1120.
[0143] For example, the method described with reference to Fig. 10 may determine that the obstacle 1120 that can be avoided according to the control by the first algorithm is a sufficiently small obstacle 1120. As a result, the obstacle 1120 that is determined to be sufficiently small according to the second algorithm may be avoided according to the control by the first algorithm, and the control of the robot 100 may be interrupted so that the obstacle is not avoided.
[0144] Alternatively, whether the obstacle 1120 is small enough may be determined by a computer system through sensing by the sensor unit 106 of the robot 100.
[0145] The illustrated passage 1110 may be an area within the space 10 where the robots 100 are required to line up. Alternatively, the passage 1110 may be a confined / narrow area, e.g., an area too narrow for two or more robots to travel side by side (laterally). For example, the passage 1110 may be a section within the space 10 where multiple robots are required to pass through in a line in sequence.
[0146] For example, the passage 1110 may be an area where the robots 100 providing the parcel delivery service line up to move to a position to receive parcels.
[0147] According to the determination result of step 620 described with reference to FIG. 6, when an obstacle 1120 in the passage 110 is small enough that the robot 100 can avoid it without detouring to another passage, the computer system 100 may control the robot 100 to avoid the obstacle 1120 and move to the destination without detouring to another passage, according to control by the first algorithm.
[0148] In this case, when another robot is identified in front of the robot 100 in the passage 1110, the computer system 100 may control the robot 100 to wait behind the other robot without overtaking the other robot. In other words, when another robot is identified as an obstacle 30 in the passage 1110, the computer system 100 determines that such other robot is not a sufficiently small obstacle 1120, and therefore the computer system 100 may control the robot 100 to wait behind the other robot, i.e., in front of the other robot. Therefore, in the passage 1110, the robots can be lined up without cutting in line or overtaking the other robot and forcibly moving towards their destinations, and each robot can move to its destination in turn.
[0149] This embodiment can achieve superior alignment performance of the robot 100 in the passage 1110 compared to when the robot 100 entering the passage 1110 is controlled by a trajectory following algorithm. When the robot 100 is controlled by a trajectory following algorithm, the robot 100 stops when an obstacle is identified, which can cause a problem of the robot 100 stopping even when a small obstacle 1120 that can be avoided is identified. Furthermore, a positioning error occurs for the robot 100, which can cause a problem of the robot 100's movement being delayed when the robot 1110 approaches the passage 1110.
[0150] In contrast, in an embodiment, the computer system 100 can control the robot 100 to avoid small obstacles 1120 according to control by the first algorithm, and to stop in front of other obstacles (e.g., other robots) without avoiding them, according to the determination by the second algorithm for the identified obstacles 30.
[0151] The technical features described above with reference to FIGS. 1 to 10 and 12 are also applicable to FIG. 11, and therefore overlapping descriptions will be omitted.
[0152] The above-described devices may be implemented using hardware components, software components, or a combination of hardware and software components. For example, the devices and components described in the embodiments may be implemented using one or more general-purpose or special-purpose computers, such as a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), a programmable logic unit (PLU), a microprocessor, or various devices capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the OS. The processing device may also access, record, manipulate, process, and generate data in response to the execution of the software. For ease of understanding, a single processing device may be described. However, those skilled in the art will understand that a processing device may include multiple processing elements and / or multiple types of processing elements. For example, a processing device may include multiple processors or one processor and one controller. Other processing configurations, such as parallel processors, are also possible.
[0153] Software may include computer programs, codes, instructions, or a combination of one or more of these, and may configure a processing device to operate as desired or may independently or collectively instruct the processing device. The software and / or data may be embodied in any type of machine, component, physical device, virtual device, computer storage medium, or device to be interpreted by the processing device or to provide instructions or data to the processing device. The software may be distributed and stored and executed in a distributed manner on computer systems connected by a network. The software and data may be stored on one or more computer-readable storage media.
[0154] Methods according to embodiments may be embodied in the form of program instructions executable by various computer means and stored on a computer-readable medium. The computer-readable medium may include, alone or in combination, program instructions, data files, data structures, and the like. The program instructions stored on the medium may be specially designed for the embodiments or may be readily available to those skilled in the art of computer software. Examples of computer-readable storage media include magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROMs and DVDs; magneto-optical media such as floptical disks; and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language code, such as that generated by a compiler, but also high-level language code executed by a computer using an interpreter, for example.
[0155] Although the embodiments have been described above based on limited examples and drawings, those skilled in the art will appreciate that various modifications and variations may be made from the above description. For example, the described techniques may be performed in an order different from that described, and / or the described system, structure, device, circuit, or other element may be coupled or combined in a manner different from that described, or may be substituted or replaced by other elements or equivalents, and still achieve suitable results.
[0156] Therefore, different embodiments are within the scope of the appended claims, provided that they are equivalent to the claims.
Claims
1. A robot control method executed by a robot that moves in a space or a robot control system that controls a robot, comprising: controlling the movement of the robot to a destination based on a first algorithm previously learned by reinforcement learning for controlling the movement of the robot; determining whether the robot satisfies a predetermined obstacle avoidance condition based on a second algorithm for controlling the movement of the robot according to a path plan based on a map constructed for the space during the movement of the robot to the destination; and controlling the movement of the robot to move to the destination in accordance with the control of the first algorithm when the avoidance condition is satisfied, and controlling the robot to stop moving when the avoidance condition is not satisfied; wherein the first algorithm is configured to control movement of the robot without limiting an avoidance range for the obstacle.
2. the first algorithm and the second algorithm are executed in parallel in the robot or the robot control system to control movement of the robot. The robot control method according to claim 1 .
3. the robot is a service robot that provides a service within the space, The destination is a final destination of the robot for providing the service or a waypoint through which the robot passes on its way to the final destination. The robot control method according to claim 1 .
4. The first algorithm: The robot is configured to control the robot so that the robot moves to the destination while avoiding obstacles during movement, The second algorithm: and controlling movement of the robot according to the path plan based on a path to the destination generated based on a map constructed for the space. The robot control method according to claim 1 .
5. the map constructed for the space is an occupancy grid map for the space; The robot control method according to claim 1 .
6. The determining step includes: determining whether or not the robot can avoid an obstacle identified during the robot's movement to the destination without deviating from a predetermined avoidance range based on the path plan; Including, When the robot can move to the destination while avoiding the obstacle without departing from the avoidance range, the robot is controlled to move to the destination in accordance with control by the first algorithm; When the robot cannot avoid the obstacle and move to the destination without leaving the avoidance range, the robot is controlled to stop in front of the obstacle. The robot control method according to claim 1 .
7. The determining step includes: and determining that the robot cannot avoid the obstacle without departing from the avoidance range when the robot must move a predetermined first distance or more to avoid the obstacle according to the path plan based on a path to the destination generated on the basis of a map constructed for the space. The robot control method according to claim 6.
8. The determining step includes: determining whether the robot can move to the destination while avoiding the obstacles without deviating by more than a second predetermined distance from a straight line from the current location or the starting location of the robot to the destination based on the map constructed for the space; When the robot cannot move to the destination while avoiding the obstacle without deviating by the second distance or more, the robot is controlled to stop in front of the obstacle. The robot control method according to claim 6.
9. When the obstacle is small enough that the robot can avoid it without detouring to another path, the robot is controlled to move to the destination while avoiding the obstacle without detouring to another path or stopping in front of the obstacle, according to control by the first algorithm. The robot control method according to claim 6.
10. The determining step includes: determining whether the robot can avoid an obstacle identified during the robot's movement to the destination based on the path plan and move to the destination without entering a predetermined prohibited area; Including, If the robot can move to the destination while avoiding the obstacle without entering the prohibited area, the robot is controlled to move to the destination in accordance with control by the first algorithm; If the robot cannot move to the destination while avoiding the obstacle without entering the prohibited area, the robot is controlled to stop in front of the obstacle. The robot control method according to claim 1 .
11. The determining step includes: determining, based on the path plan, whether the robot can avoid an obstacle identified during the robot's movement to the destination without moving backward and move to the destination; Including, When it is determined that the robot needs to move backward to avoid the obstacle, the robot is controlled to stop in front of the obstacle. The robot control method according to claim 1 .
12. Depending on the result of the above judgment, When an obstacle is small enough to be avoided within a path along which the robot travels to the destination without detouring to another path, the robot is controlled in accordance with the first algorithm so as to avoid the obstacle and travel to the destination without detouring to another path; When another robot is identified as the obstacle ahead of the robot in the passage, the robot is controlled to wait behind the other robot without overtaking the other robot. The robot control method according to claim 1 .
13. The passage is an area in the space where the robots are required to be aligned, or an area of a width that does not allow two or more robots to travel side by side. The robot control method according to claim 12.
14. A non-transitory computer-readable recording medium having recorded thereon a program for causing the robot or the robot control system, which is a computer system, to execute the method of claim 1.
15. A computer system for a robot that moves in space, At least one processor implemented to execute computer-readable instructions Including, The at least one processor A computer system that controls the movement of the robot to a destination based on a first algorithm learned in advance by reinforcement learning to control the movement of the robot, determines whether the robot satisfies a predetermined avoidance condition for an obstacle based on a second algorithm that controls the movement of the robot according to a path plan based on a map constructed for the space while the robot is moving to the destination, and controls the movement of the robot to move to the destination in accordance with control by the first algorithm if the avoidance condition is satisfied, and controls the robot to stop moving if the avoidance condition is not satisfied, wherein the first algorithm is configured to control the movement of the robot without limiting the avoidance range for the obstacle.
16. A building, At least one robot that moves through the space within the building is placed, The robot's movement within the building is controlled by a computer system that is included in the robot or is a server; The computer system includes: At least one processor implemented to execute computer-readable instructions Including, The at least one processor A building, comprising: a first algorithm for controlling the movement of the robot to a destination based on a first algorithm learned in advance by reinforcement learning for controlling the movement of the robot; a second algorithm for controlling the movement of the robot according to a path plan based on a map constructed for the space during the movement of the robot to the destination based on which it is determined whether the robot satisfies a predetermined avoidance condition for an obstacle; if the avoidance condition is satisfied, the movement of the robot is controlled to move to the destination in accordance with control by the first algorithm; and if the avoidance condition is not satisfied, the robot is controlled to stop moving; and the first algorithm is configured to control the movement of the robot without limiting the avoidance range for the obstacle.
Citation Information
Patent Citations
Robot control method and robot control system
JP2010134581A
Autonomous mobile body
JP2012022467A
Information processing apparatus, information processing method, program, and system
JP2020038631A
Systems and methods for adaptive path planning
US20210103286A1
Robot cleaner and operating method thereof
US20210114213A1