Method and system for controlling robots using reinforcement learning-based and path planning-based algorithms, and buildings with robots
A dual-algorithm system for robot control using reinforcement learning and path planning algorithms improves obstacle avoidance and navigation efficiency by ensuring robots stop when conditions are not met, addressing the limitations of single-algorithm navigation.
Patent Information
- Application Number
- JP2024538143
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2021-12-22
- Filing Date
- 2022-09-06
- Publication Date
- 2025-01-22
- Estimated Expiration
- 2042-09-06
Smart Images

Figure 2025501597000001_ABST
Abstract
Description
[Technical field]
[0001] The following description relates to a method and system for controlling the movement of a robot using reinforcement learning-based algorithms and path planning-based algorithms, and the buildings in which such robots are deployed. [Background technology]
[0002] Autonomous robots are robots that can grasp their surroundings and sense obstacles while using 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 in 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 aisles and corridors within a building.
[0004] It is important that such robots are controlled efficiently so as to avoid collisions and interference with other robots or obstacles, while also avoiding unnecessary detours or long distance travel.
[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 an autonomous mobile robot in a home or office to move safely and quickly to a target point while avoiding obstacles.
[0006] The above information is intended to aid in understanding only, and the present invention may include material that does not form part of the prior art, or that the prior art would not present to one of ordinary skill in the art. Summary of the Invention [Problem to be solved by the invention]
[0007] The objective of the present invention is to provide a robot control method which controls the movement of a robot to a destination based on a first algorithm learned in advance by reinforcement learning, determines whether the robot satisfies a predetermined avoidance condition for an obstacle based on a second algorithm for controlling the movement of the robot in accordance with a path plan for space 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 condition is satisfied.
[0008] The objective of the present invention is 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 during the robot's movement to a destination, and by stopping the robot based on the determination result. [Means for solving the problem]
[0009] In one aspect, a robot control method is provided that is executed by a robot moving within a space or a robot control system that controls a robot, the robot control method including the steps of: controlling movement of the robot to a destination based on a first algorithm that has been learned in advance by reinforcement learning to control the movement of the robot; 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 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 on the robot or in the robot control system to control movement of the robot.
[0011] The robot is a service robot that provides a service within the space, and the destination may be 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.
[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 avoid an obstacle identified during the robot's movement to the destination and move to the destination without deviating from a predetermined avoidance range, and if the robot can avoid the obstacle without deviating from the avoidance range and move to the destination, controlling the robot to move to the destination in accordance with control by the first algorithm, and if the robot cannot avoid the obstacle without deviating from the avoidance range and move to the destination, controlling the robot to stop in front of the obstacle.
[0015] The determining step may include determining 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 include determining, based on a map constructed for the space, whether the robot can move to the destination while avoiding the obstacle without deviating from a straight line from the robot's current location or a starting location to the destination by a predetermined second distance or more, and controlling the robot to stop in front of the obstacle if the robot cannot move to the destination while avoiding the obstacle without deviating from 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 under control of 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 or not 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 without reversing and move to the destination, and if it is determined that the robot needs to reverse to avoid the obstacle, the robot may be controlled to stop in front of the obstacle.
[0020] Depending on the result of the determination, when an obstacle in a passageway along which the robot moves to the destination is small enough to be avoided without detouring into another passageway, the robot may be controlled to avoid the obstacle and move to the destination without detouring into another passageway according to control by the first algorithm, and when another robot is identified in front of the robot as the obstacle in the passageway, the robot may be controlled to wait behind the other robot without overtaking the other robot.
[0021] The passageway may be an area of the space where alignment of the robots is required, or an area too wide for two or more robots to 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, the at least one processor controlling movement of the robot to a destination based on a first algorithm previously learned by reinforcement learning to control movement of the robot, 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 during the movement of the robot to the destination, and 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.
[0023] In still another aspect, a building is provided in which at least one robot moving within a space within the building is disposed, and which includes at least one processor implemented to execute computer-readable instructions, and the movement of the robot within the building is 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, and the at least one processor 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 for controlling the movement of the robot according to a path plan based on a map constructed for the space, and if the avoidance condition is satisfied, controls 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, controls the robot to stop the movement of the robot. Effect of the Invention
[0024] By controlling the movement of the robot 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 by the reinforcement learning-based algorithm. This makes it possible to minimize inefficient movement of the robot, such as a large deviation from the path to the destination (e.g., global path) when the robot is traveling in a narrow passage or facing an obstacle.
[0025] Furthermore, when performing actions required to provide a service, such as when the robots are required to line up in a narrow hallway, the robots can be controlled to position themselves at an appropriate distance from the preceding robot while avoiding minor obstacles. [Brief description of the drawings]
[0026] [Figure 1] FIG. 1 illustrates a method for controlling movement of a robot to a destination using reinforcement learning and path planning based algorithms in one embodiment. [Diagram 2] FIG. 1 is a block diagram illustrating a robot providing services within a space in one embodiment. [Diagram 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. [Diagram 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 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. [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. 13 illustrates 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. [Figure 9]FIG. 1 illustrates how, in one example, a robot's movement to a destination is controlled depending on whether the robot must enter a predefined prohibited area to avoid an obstacle. [Figure 10] FIG. 13 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 with respect to a 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 PREFERRED EMBODIMENTS
[0027] Hereinafter, the embodiments will be described in detail with reference to the accompanying drawings.
[0028] 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.
[0029] FIG. 1 illustrates how a robot 100 configured to provide a service in a space 10 moves towards 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 to 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 in 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 the obstacles 30 as defined by the algorithm. On the other hand, when such an algorithm is executed in the robot control system 120, the robot 100 may be controlled based on a control signal (command), for example, 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 a service within the space 10. The robot 100 may be configured to provide a service 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 and provide a service at an appropriate position within the space 10 or provide a service 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 / contents.
[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-mentioned 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 parcels or a location for delivering the received parcels, 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, for example, a moving object such as a human or another robot, or may be a non-moving, i.e., fixed, object within space 10.
[0040] In an embodiment, the robot 100 may be controlled by a first algorithm (i.e., a reinforcement learning-based algorithm) pre-trained by reinforcement learning for controlling the movement of the robot 100, and a second algorithm (i.e., a path planning-based algorithm) for controlling 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 that the obstacle 30 that the robot 100 faces can be avoided while satisfying a predetermined avoidance condition (or an avoidance range) according to the judgment by the second algorithm, the robot 100 may be controlled to avoid the obstacle 30 by the first algorithm. At this time, 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 a first algorithm to maintain the avoidance performance for the obstacle 30, while additionally using a 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 method of controlling 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 position in the space 10 or provide a service 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 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, although not shown in the figure. 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 indoor autonomous travel of the robot 100 continues 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, which transmits and receives data and / or information to and from other devices, or a software module, such as a network device driver or a networking program.
[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 travel 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 and 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 a sensor for recognizing / identifying surrounding users, other robots, or objects. In this manner, the sensor unit 106 may be configured to identify the obstacle 30.
[0052] As an example, when an algorithm for autonomous travel of the robot 100 is executed in the robot control system 120 in which the robot 100 is controlled by the robot control system 120, the data processing module of the control unit 104 may transmit sensing data including an output value of the sensor of the sensor unit 106 from the communication unit 102 to the robot control system 120. The robot control system 120 may transmit path data generated using an indoor map in 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 travel of the robot 100. This allows the robot 100 to perform autonomous travel based on the above-mentioned second algorithm. 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 running 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 driving is executed within the robot 100, the data processing module may directly process the indoor autonomous driving of the robot 100 by transmitting the sensing data to the localization processing module and generating path data in the path planning processing module and the mapping processing module. This allows the robot 100 to autonomously drive based on the above-mentioned second algorithm. On the other hand, when the above-mentioned first algorithm is executed in the robot 100, the data processing module of the robot 100 may generate a control signal (e.g., a speed and / or direction control signal) for controlling the robot 120 by the first algorithm based on the sensing data, and may control the robot 100 based on the generated control signal. This allows the robot 100 to autonomously drive based on the first algorithm.
[0054] The robot 100 may be a different entity 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 process indoor autonomous navigation using output values of sensors such as low-cost ultrasonic sensors and / or low-cost cameras. Meanwhile, if the robot 100 has previously processed indoor autonomous navigation through communication with the robot control system 120, the robot 100 can accurately realize indoor autonomous navigation even with the use of low-cost sensors by further utilizing mapping data including route 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 the communication unit 102 and the data processing module. The driving unit 108 may further include equipment related to the service provided by the robot 100, as well as equipment for moving the robot 100. For example, in order to perform a drink / delivery service, the driving unit 108 of the robot 100 may include a configuration for loading drinks / delivery items and a configuration for handing over the drinks / delivery items to the user (e.g., a robot arm). The robot 100 may further include a speaker and / or a display for providing information / contents. 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 provide the service by controlling the configurations included in the robot 100 and the driving unit 108 according to the driving command.
[0057] The robot 100 may be controlled to move to the destination while avoiding the obstacles 30 according to the control based on 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 when the first and second algorithms for controlling the robot 100 are executed by the robot control system 120, the robot 100 may correspond to 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 in the space 10 described above and the provision of a service by the robot 100 in 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 position or provide a service to a predetermined user. The robot control system 120 may control the movement of the robot so that the robot moves (runs) according to 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] The memory 330 is a computer-readable recording medium and may include a random access memory (RAM), a read only memory (ROM), and a permanent mass storage device such as a disk drive. Here, the ROM and the permanent mass storage device may be included as a separate permanent storage device separate from the memory 330. The memory 330 may also store an operating system and at least one program code. Such software components may be loaded from a computer-readable recording medium separate from the 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, a memory card, etc. In another embodiment, the software components may be loaded into the memory 330 through the 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 configurations 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 configurations 410 to 440 of the processor 320 will be described with reference to FIG.
[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 other servers). 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 that 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 figure.
[0074] The configurations 410 to 440 of the processor 320 will be described in more detail with reference to Fig. 4. 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 according to control instructions by the code of an operating system 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 the space 10) using sensing data generated by a mapping robot (not shown) autonomously moving within the space 10 for the target facility (e.g., the interior of the 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 indoor autonomous travel of the robot 100 by 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 travels along this path. The robot control system 120 may transmit information about the generated path to the robot 100 via a network. As an example, the information about the path may include information indicating the current location of the robot 100, information for mapping the current location and an indoor map, and path planning information. The information about the path may include information about a path along which the robot 100 travels to provide a service at a predetermined position in the space 10 or to provide a service 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 route).
[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 a service 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 integrated development environment (IDE) for a service (e.g., a cloud service) 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 a service 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 a service 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 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 is a server located outside the space 10 or a building and may be a cloud server. Alternatively, depending on the embodiment, 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 are also applied to FIGS. 3 and 4, and therefore overlapping descriptions 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 movement of the robot 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] In other words, 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 a 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, that is, 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 may establish 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 learning how to control the robot 100 by itself, interacting in a simulation or in the real world, in order to maximize a reward specified by the developer, rather than a human creating an algorithm for controlling 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] In 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 the 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] Thus, the first algorithm may be configured to control the robot 100 such that the robot 100 moves to a destination while avoiding obstacles during movement.
[0096] The first algorithm may be arbitrary in terms of means and methods to navigate to a destination while avoiding the obstacles 30. For example, if the robot 100 is controlled based solely on the first algorithm, the robot 100 may not make special attempts to protect users and obstacles from actions that, while relatively rare, have serious consequences, even if such protection incurs little or no performance loss.
[0097] In addition, when 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 need to 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 located in front, or may turn around on the spot if it cannot avoid the other robot.
[0098] In this manner, 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 service provided by the robot 100, and the robot 100 may enter a prohibited area in the space 10 in order to avoid the obstacle 30.
[0099] In the embodiment, the movement of the robot 100 is controlled by the first algorithm to maintain the avoidance performance for 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 for 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 autonomous travel 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 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 move to a destination based on the map constructed for the space 10, and for controlling the robot 100 to move along the path while avoiding the 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 inside a building and may be generated by a mapping robot. The path 1210 shown in the figure shows a path from a current location or a starting point of the robot 100 to a destination in one example. The path 1210 may be composed of a number of nodes and edges connecting the nodes. Each node may indicate a waypoint (or a destination) that the robot 100 passes through on the path. The nodes may be set based on a preset rule.
[0104] When controlling the robot 100 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 therefore, when errors occur, 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 avoidance performance for the obstacle 30, and the second algorithm limits the avoidance range for 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 the obstacle 30, if the robot 100 must move away from the path (global path) according to the path planning by a certain distance or more in order to avoid the obstacle 30 based on the determination according to the second algorithm, the robot 100 may be controlled to stop and wait without avoiding the obstacle 30. In this manner, in the embodiment, the first algorithm and the second algorithm are executed in parallel, and if it is determined by the second algorithm that it is impossible to avoid the obstacle 30 while satisfying a predetermined avoidance condition (or an avoidance range), the command by the first algorithm may be ignored and the robot 100 may be stopped. On the other hand, the robot 100 may be controlled to avoid the obstacle 30 by the first algorithm if the obstacle 30 is small enough to be avoided or can be avoided without moving away from a certain distance.
[0108] The control method of the robot 100 according to 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 detailed description that follows, for ease of explanation, the method of controlling movement of a robot to a destination will be described as operations performed by a computer system that includes a processor 500 as described with reference to FIG.
[0111] FIG. 6 is a flow chart illustrating a method for controlling a robot's movement 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 a 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 the map constructed for the space 10 during the movement of the robot 100 to the destination.
[0115] Since the computer system executes the first and second algorithms in parallel or simultaneously to control the movement of the robot 100, the determination at step 620 may be performed continuously while the robot 100 is moving to the destination, i.e., 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, the computer system may determine whether the avoidance condition is met when an obstacle 30 is identified or encountered by the robot 100 during the movement of the robot 100.
[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 a destination according to control by the first algorithm. Also, 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 be to transmit an interrupt to the robot 100 so that the robot 100 stops.
[0120] Therefore, the robot 100 may be controlled to avoid the obstacle 30 only if the avoidance condition or the avoidance range for the obstacle 30 limited by the second algorithm is satisfied, and may be controlled to stop without avoiding the obstacle 30 if 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 moves to another position).
[0121] The technical features described above with reference to FIGS. 1 to 5 and 12 are also applied to FIG. 6, and therefore overlapping descriptions will be omitted.
[0122] FIG. 7 is a flow chart 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 during the movement of the robot 100 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 that the robot 100 travels 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 by 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, 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, if the robot 100 must move a predetermined first distance or more to avoid the obstacle 30 (e.g., if the robot 100 must make a detour a predetermined first distance or more), the computer system may determine that the robot 100 cannot avoid the obstacle 30 without departing from the avoidance range. If the robot 100 must deviate a certain radius or move a certain distance from its current location to avoid the obstacle 30 according to the path plan according to the second algorithm, the computer system may determine that the robot 100 cannot avoid the obstacle 30 without departing from the avoidance range. In this case, the control command according to the first algorithm may be ignored, and the robot 100 may be controlled to stop without avoiding the obstacle 30.
[0127] In this regard, FIG. 8 is a diagram illustrating a method for controlling a robot's movement 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 the destination. The computer system 100 may determine whether a detour path for avoiding 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 when an additional distance traveled by the robot 100 when moving along the detour path is equal to or greater than a predetermined value, or when the robot 100 deviates from the current location by a certain radius or more when moving along the detour path. At this time, the control command by the first algorithm may be ignored, and the robot 100 may be controlled to stop without avoiding the obstacle 30.
[0129] Alternatively, the computer system may determine that, in accordance with a path plan based on a map constructed for the space 10, if the robot 100 must ignore the obstacle 30 and deviate from a path connecting the current location of the robot 100 or the starting location to the destination by more than a predetermined value in order to avoid the obstacle 30, the robot 100 cannot avoid the obstacle 30 without deviating from the avoidance range.
[0130] For example, the computer system may determine whether the robot 100 can move to the destination while avoiding the obstacle 30 without deviating from a straight line from the current location or the starting point of the robot 100 to the destination by a predetermined second distance or more, based on a map constructed for the space 10. 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 from the second distance or more, 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 a robot's movement to a destination in one example, depending on whether the robot deviates from a predetermined avoidance range with respect to a path to the destination in order to avoid an obstacle.
[0132] Point 1010 shown in the figure may be a starting point or a current location of the robot 100, and point 1020 may be a destination. A straight line connecting point 1010 and point 1020 may correspond to the straight line described above. A predetermined second distance may be determined by dropping a perpendicular line from such a straight 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 detour around 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, the obstacle 1030 within the avoidance range that can be avoided according to control by the first algorithm may be considered to be an obstacle that is small enough that the robot 100 can easily avoid it by control according to the first algorithm.
[0135] In step 720, if an obstacle 30 is identified during the movement of the robot 100 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 the robot 100 or an administrator of the robot control system 120, and may be an area in the space 10 where the robot 100 is not allowed to enter.
[0136] The computer system may control the robot 100 to move to the destination according to the first algorithm when 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 stop in front of the obstacle 30 when the robot 100 cannot move to the destination by avoiding the obstacle 30 without entering the prohibited area, or when the robot 100 must make a detour of a predetermined distance or more to avoid entering the prohibited area.
[0137] In this regard, FIG. 9 is a diagram illustrating a method for controlling a robot's movement 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 may 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 during the movement of the robot 100 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 reversing. If it is determined that the robot 100 must reverse 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 reverse, such a 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 Fig. 12 also apply directly 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 required, 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 according to 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 obstacle 1120 that can be avoided according to the control by the first algorithm may be determined to be a sufficiently small obstacle 1120 by the method described with reference to Fig. 10. 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 passageway 1110 may be an area within the space 10 where the robots 100 are required to be aligned. Alternatively, the passageway 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 passageway 1110 may be a section within the space 10 where multiple robots are required to pass through in sequence in a line.
[0146] For example, the passage 1110 may be an area where the robot 100 providing the parcel delivery service lines 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 move to the destination while avoiding the obstacle 1120 without detouring to another passage according to control according to 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 another robot does not correspond to a sufficiently small obstacle 1120, and therefore the robot 100 may be controlled to wait behind the other robot, i.e., in front of the other robot. Thus, in the passage 1110, the robots can be arranged in a line without forcibly moving toward the destination by cutting in line or overtaking the other robot, and each robot can move to the destination in turn.
[0149] This embodiment can achieve superior alignment performance of the robot 100 in the passage 1110 compared to a case where the robot 100 entering the passage 1110 is controlled by a trajectory following algorithm. When the robot 100 is controlled by the trajectory following algorithm, the robot 100 stops when an obstacle is identified, which may cause a problem of stopping even when a small obstacle 1120 that can be avoided is identified. Furthermore, a positioning error may occur for the robot 100, which may cause a problem of the movement of the robot 100 being delayed when the robot 1110 is adjacent to 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, in accordance with the control by the first algorithm.
[0151] The technical features described above with reference to FIGS. 1 to 10 and 12 are also applied to FIG. 11, and therefore overlapping descriptions will be omitted.
[0152] The above-mentioned devices may be realized by hardware components, software components, or a combination of hardware and software components. For example, the devices and components described in the embodiments may be realized using one or more general-purpose or special-purpose computers, such as, for example, 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 that run on the OS. The processing device may also respond to the execution of the software to access, record, manipulate, process, and generate data. For convenience of understanding, a single processing device may be described as being used, but one skilled in the art will understand that the processing device may include multiple processing elements and / or multiple types of processing elements. For example, the processing device may include multiple processors or one processor and one controller. Other processing configurations, such as parallel processors, are also possible.
[0153] The 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 instruct the processing device, either independently or collectively. 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 based on the processing device or to provide instructions or data to the processing device. The software may be distributed and stored or 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] The method according to the embodiment may be implemented in the form of program instructions executable by various computer means and recorded 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 recorded on the medium may be specially designed for the embodiment or may be available to those skilled in the art of computer software. Examples of computer readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, and hardware devices specially configured to record and execute program instructions, such as ROMs, RAMs, flash memories, and the like. Examples of program instructions include high-level language codes executed by a computer using an interpreter, etc., as well as machine language codes such as those generated by a compiler.
[0155] Although the embodiments have been described based on the limited embodiments and drawings as above, those skilled in the art will be able to make various modifications and variations from the above description. For example, the described techniques may be performed in an order different from that described, and / or the components of the described systems, structures, devices, circuits, etc. may be combined or combined in a manner different from that described, or may be counterbalanced or replaced by other components 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 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 during the movement of the robot to the destination; and controlling the movement of the robot to move to the destination according to 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. A robot control method comprising:
2. the first algorithm and the second algorithm are executed in parallel on the robot or on 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 comprises: A method is configured to control the robot so that the robot moves to the destination while avoiding obstacles during movement, The second algorithm comprises: 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 the robot can avoid an obstacle identified during the robot's movement to the destination without departing from a predetermined avoidance range based on the path plan and move to the destination; Including, When the robot can avoid the obstacle without departing from the avoidance range and move to the destination, 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 departing from 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: According to the path plan based on a path to the destination generated based on a map constructed for the space, if the robot must move a predetermined first distance or more to avoid the obstacle, it is determined that the robot cannot avoid the obstacle without departing from the avoidance range. 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 from a straight line from the robot's current location or starting location to the destination by a predetermined second distance or more based on a 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 by avoiding the obstacle without detouring to another path or stopping in front of the obstacle according to the control of the first algorithm. The robot control method according to claim 6.
10. The determining step includes: determining whether the robot can move to the destination while avoiding an obstacle identified during the movement of the robot to the destination based on the path plan and without entering a predetermined prohibited area; Including, When 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 according to control by the first algorithm; When 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 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 reversing; 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 judgment, When an obstacle is small enough to be avoided without detouring to another path in a path along which the robot moves to the destination, the robot is controlled in accordance with the first algorithm so as to avoid the obstacle and move 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 passageway is 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. 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 according to claim 1.
15. A computer system for a robot that moves within a space, comprising: At least one processor implemented to execute computer readable instructions. Including, The at least one processor A computer system which controls 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, determines whether the robot satisfies a predetermined avoidance condition for an obstacle based on a second algorithm that controls the movement of the robot in accordance with 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.
16. A building, At least one robot that moves through the space within the building. is placed, At least one processor implemented to execute computer readable instructions. Including, The robot is controlled in its movement within the building 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, 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; 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 the movement of the robot.
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