WO2023120867A1 - Method and system for controlling robot by using reinforcement learning-based algorithm and path planning-based algorithm, and building having robot arranged therein - Google Patents
Method and system for controlling robot by using reinforcement learning-based algorithm and path planning-based algorithm, and building having robot arranged therein Download PDFInfo
- Publication number
- WO2023120867A1 WO2023120867A1 PCT/KR2022/013359 KR2022013359W WO2023120867A1 WO 2023120867 A1 WO2023120867 A1 WO 2023120867A1 KR 2022013359 W KR2022013359 W KR 2022013359W WO 2023120867 A1 WO2023120867 A1 WO 2023120867A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- robot
- obstacle
- destination
- algorithm
- movement
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000002787 reinforcement Effects 0.000 title claims abstract description 34
- 238000012545 processing Methods 0.000 description 41
- 238000004891 communication Methods 0.000 description 15
- 238000013507 mapping Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000004807 localization Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000006855 networking Effects 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 2
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 235000013361 beverage Nutrition 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000009987 spinning Methods 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/163—Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1661—Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
Definitions
- the following description relates to a method and system for controlling the movement of a robot using a reinforcement learning-based algorithm and a path planning-based algorithm, and a building in which such a robot is deployed.
- Self-driving robots are robots that look around and detect obstacles on their own while finding the optimal path to their destination using wheels or legs.
- a robot When a robot is operated within a space such as a building to provide services, the robot must be controlled to properly avoid anticipated or unforeseen obstacles within the space, and in some cases, narrow passages/corridors and corridors within the building. It is required to drive in the same narrow area.
- Korean Patent Publication No. 10-2005-0024840 relates to a path planning method for an autonomous mobile robot, which provides 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. It tells you how to plan.
- a robot that determines whether or not the robot meets a predetermined avoidance condition for an obstacle based on the algorithm, and controls the robot's movement or stops the robot's movement using the first algorithm according to whether the avoidance condition is met.
- a control method can be provided.
- the robot For an obstacle identified while the robot is moving to its destination, it may be determined whether the robot should deviate from a predetermined avoidance range in order to avoid the obstacle using a path planning-based algorithm, and according to the result of the determination, the robot It is possible to provide a method for efficiently controlling the robot by stopping it.
- a first pre-learned through reinforcement learning to control the movement of the robot. Controlling the movement of the robot to a destination based on an algorithm, and controlling the movement of the robot according to a route plan based on a map built for the space during the movement of the robot to the destination. Based on an algorithm, determining whether the robot satisfies a predetermined avoidance condition for an obstacle, and if the avoidance condition is satisfied, the robot moves to the destination according to control based on the first algorithm. Controlling movement, but controlling the robot to stop movement of the robot when the avoidance condition is not satisfied.
- the first algorithm and the second algorithm may be executed in parallel to control movement of the robot in the robot or the robot control system.
- the robot may be a service robot providing a service in 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 to move to the final destination.
- the first algorithm is configured to control the robot so that the robot can move to the destination while avoiding obstacles while moving
- the second algorithm is configured to reach the destination generated based on a map built for the space. It may be configured to control the movement of the robot according to the path plan based on the path of the.
- the map constructed for the space may be an occupancy grid map for the space.
- the determining step may include determining whether the robot can move to the destination by avoiding the obstacle without departing from a predetermined avoidance range, based on the path plan, for an obstacle identified during movement of the robot to the destination. and, when the robot can move to the destination by avoiding the obstacle without leaving the avoidance range, the robot is controlled to move to the destination according to control based on the first algorithm, and the robot If it is impossible to move to the destination by avoiding the obstacle without leaving the avoidance range, the robot may be controlled to stop with the obstacle in front.
- the robot In the determining step, if the robot needs to move more than a predetermined first distance to avoid the obstacle according to the path plan based on the path to the destination generated based on the map built for the space, It may be determined that the robot cannot avoid the obstacle without leaving the avoidance range.
- the robot avoids the obstacle without departing more than a predetermined second distance from a straight line from the current location or starting point of the robot to the destination, thereby avoiding the destination. It is determined whether it can move to , and if the robot cannot move to the destination by avoiding the obstacle without moving beyond the second distance, the robot can be controlled to stop with the obstacle in front.
- the robot bypasses the obstacle to another passage according to the control based on the first algorithm or does not stop in front of the obstacle. It may be controlled to avoid the obstacle and move to the destination.
- the robot In the determining step, it is determined whether the robot can move to the destination by avoiding the obstacle without entering a predetermined prohibited area, based on the path plan, for an obstacle identified during movement of the robot to the destination. And, if the robot can move to the destination by avoiding the obstacle without entering the forbidden area, the robot is controlled to move to the destination according to control based on the first algorithm, wherein the If the robot cannot move to the destination by avoiding the obstacle without entering the forbidden zone, the robot may be controlled to stop with the obstacle in front.
- the determining step may include determining whether or not the robot can move to the destination by avoiding the obstacle without moving backward, based on the path plan, with respect to an obstacle identified while the robot moves to the destination. And, if it is determined that the robot needs to move backward to avoid the obstacle, the robot may be controlled to stop with the obstacle in front.
- the robot within the passage for the robot to move to the destination, the robot, according to the control based on the first algorithm, for an obstacle small enough to avoid without detouring to another passage, another It is controlled to move to the destination by avoiding the obstacle without detouring into the passage, and in the passage, when another robot is identified as the obstacle in front of the robot, the robot does not overtake the other robot, and the other robot It can be controlled to wait behind the robot.
- the passage may be an area within the space where lineup of the robots is required or an area having a width in which two or more robots cannot run side by side.
- a computer system for a robot includes at least one processor implemented to execute computer-readable instructions, wherein the at least one processor includes reinforcement learning (reinforcement learning) to control movement of the robot.
- reinforcement learning reinforcement learning
- the movement of the robot to the destination is controlled, and during the movement of the robot to the destination, the robot moves according to a route plan based on a map built for the space.
- the second algorithm for controlling the movement of the robot it is determined whether the robot meets a predetermined avoidance condition for an obstacle, and if the avoidance condition is satisfied, according to the control based on the first algorithm
- a computer system is provided that controls movement of the robot to move to the destination, but controls the robot to stop moving when the avoidance condition is not met.
- At least one robot that moves in a space within the building is disposed, and includes at least one processor implemented to execute a computer-readable command
- the robot comprises: Movement within the building is controlled by a computer system contained within or being a server, the computer system comprising at least one processor implemented to execute computer-readable instructions, the at least one processor comprising: Based on a first algorithm learned in advance through reinforcement learning to control the movement of the robot, the movement of the robot to the destination is controlled, and during the movement of the robot to the destination, the space Based on a second algorithm for controlling the movement of the robot according to a path plan based on a map built for the obstacle, it is determined whether the robot satisfies a predetermined avoidance condition for an obstacle, and if the avoidance condition is satisfied.
- the building controls the movement of the robot to move to the destination according to the control based on the first algorithm, but controls the robot to stop moving when the avoidance condition is not met.
- the robot in a case where it is necessary to provide service, for example, when robots are required to line up in a narrow passage, the robot can be controlled to be positioned at an appropriate distance from the previous robot while avoiding minor obstacles.
- FIG. 1 illustrates a method of controlling movement of a robot to a destination using a reinforcement learning-based algorithm and a path planning-based algorithm, according to an embodiment.
- FIG. 2 is a block diagram illustrating a robot providing a service in a space, according to an exemplary embodiment.
- 3 and 4 are block diagrams illustrating a robot control system for controlling a robot according to an embodiment.
- FIG. 5 is a block diagram illustrating a processor of a computer system for a robot that controls movement of the robot to a destination using a reinforcement learning-based algorithm and a path planning-based algorithm, according to an embodiment.
- FIG. 6 is a flowchart illustrating a method of controlling movement of a robot to a destination using a reinforcement learning-based algorithm and a path planning-based algorithm, according to an embodiment.
- FIG. 7 is a flowchart illustrating a method of determining whether a robot satisfies a predetermined condition for avoiding an obstacle in controlling movement of the robot to a destination according to an example.
- FIG. 8 illustrates a method of controlling movement of a robot to a destination according to whether the robot deviates from a predetermined avoidance range for an obstacle, according to an example.
- FIG. 9 illustrates a method of controlling movement of a robot to a destination according to whether the robot needs to enter a predetermined prohibited area in order to avoid an obstacle, according to an example.
- FIG. 10 illustrates a method of controlling movement of a robot to a destination according to whether the robot deviates from a predetermined avoidance range for a path to the destination in order to avoid an obstacle, according to an example.
- 11 illustrates a method of controlling movement of robots in an area in which line-up of robots is required, according to an example.
- FIG. 12 shows an occupancy grid map as a map for a space used by a path planning-based algorithm according to an example.
- FIG. 1 illustrates a method of controlling movement of a robot to a destination using a reinforcement learning-based algorithm and a path planning-based algorithm, according to an embodiment.
- the robot 100 configured to provide service in the space 10 is configured to control the movement of the robot 100 to the destination (ie, the first algorithm and the second algorithm to be described later) According to the implementation, a method of moving toward a destination while avoiding obstacles 30 is shown.
- Algorithms configured to control the movement of the robot 100 to the destination may be executed within the robot 100 or within the robot control system 120 .
- the robot 100 When the algorithm is executed within the robot 100, that is, when the algorithm is deployed and executed on the robot 100, the robot 100 avoids the obstacle 30 as defined in the algorithm and It can be controlled to move towards a destination.
- the robot control system 120 when such an algorithm is executed in the robot control system 120, the robot based on a control signal (command) based on the algorithm from the robot control system 120, for example, a speed control signal and / or a direction control signal (100) can be controlled.
- the space 10 in which the robot 100 moves (or runs) is a place where the robot 100 provides services, and may represent, for example, a building or an indoor and/or outdoor space included in a building.
- a building or a building includes a space in which a plurality of personnel (hereinafter, referred to as users) work or reside, and may include, for example, a plurality of partitioned spaces.
- a space 10 may represent a portion of a building (a particular floor or subspace within that floor).
- the robot 100 may be a service robot used to provide services within the space 10 .
- Robot 100 may be configured to provide service on at least one floor of space 10 . Although only one robot 100 is shown in FIG. 1 , there may be a plurality of robots 100 arranged and operating in a space. Within the space 10, each of the robots 100 can move and provide services to appropriate locations or appropriate users within the space 10.
- the service provided by the robot 100 may include, for example, at least one of a parcel delivery service, a beverage (coffee, etc.) delivery service according to an order, a cleaning service, and other information/content providing services.
- the robot 100 may be configured to provide a service to a predetermined location in the space 10 or to a predetermined user through autonomous driving, and the (each) movement of the robot 100 and the provision of services are controlled by a robot control system. (120).
- the movement of the robot 100 to a destination controlled through the above-described algorithm may be a movement of the robot 100 to a predetermined position for providing such a service.
- the "destination" to which the robot 100 moves may be the final destination of the robot 100 for providing services or a "stopping point" through which the robot 100 passes to move to the final destination.
- the destination may be a pick-up location for picking up a parcel or a delivery location for the picked-up parcel, or a robot to move to the pick-up location or delivery location. (100) can be a location to pass through.
- the robot 100 may face an obstacle 30 while moving to the destination, and may be controlled to avoid the obstacle 30 and move to the destination.
- the obstacle 30 is an object temporarily or non-temporarily present in the space 10, for example, a moving object such as a person or another robot, or a non-moving object in the space 10, that is, a fixed object.
- the robot 100 uses a first algorithm pre-learned through reinforcement learning to control the movement of the robot 100 (ie, a reinforcement learning-based algorithm) and the space 100. It may be controlled based on a second algorithm (ie, a path planning-based algorithm) for controlling the movement of the robot 100 according to the route planning based on the constructed map.
- a first algorithm pre-learned through reinforcement learning to control the movement of the robot 100 (ie, a reinforcement learning-based algorithm) and the space 100. It may be controlled based on a second algorithm (ie, a path planning-based algorithm) for controlling the movement of the robot 100 according to the route planning based on the constructed map.
- the movement of the robot 100 to a destination may be controlled based on the first algorithm, and a predetermined avoidance condition (or avoidance range) may be satisfied according to a determination based on the second algorithm for the obstacle 30 encountered.
- a predetermined avoidance condition or avoidance range
- the robot 100 may be controlled to stop with the obstacle 30 in front.
- the avoidance range for the obstacle 30 is limited to prevent the robot 100 from being dangerous.
- a second algorithm may be further used to control the movement of the robot 100 to minimize movement and inefficient movement.
- the robot 100 is controlled according to the first algorithm, which has excellent performance in avoiding the obstacle 30, but the avoidance range for avoiding the obstacle 30 is limited based on the second algorithm, thereby preventing dangerous or inefficient movement. It can be controlled not to do so.
- FIG. 2 is a block diagram illustrating a robot providing a service in a space, according to an exemplary embodiment.
- the robot 100 may be a service robot used to provide services within the space 10 .
- the robot 100 may provide services at a predetermined location in the space 10 or to a predetermined user through autonomous driving.
- the robot 100 may be a physical device and, as shown, may include a control unit 104, a drive unit 108, a sensor unit 106, and a communication unit 102.
- the control unit 104 may be a physical processor built into the robot 100, and although not shown separately, 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 can include At this time, the path planning processing module, the mapping processing module, and the localization processing module according to the embodiment in order to enable indoor autonomous driving of the robot 100 even when communication with the robot control system 120 is not performed Optionally, it may be included in the control unit 104.
- the communication unit 102 may be a component for the robot 100 to communicate with other devices (such as other robots or the robot control system 120).
- the communication unit 102 is a hardware module or network device such as an antenna, data bus, network interface card, network interface chip, and networking interface port of the robot 100 that transmits/receives data and/or information to other devices. It can be a software module such as a driver or networking program.
- the driving unit 108 controls the movement of the robot 100 and may include equipment for enabling the movement.
- the sensor unit 106 may be a component for collecting data required for autonomous driving of the robot 100 and service provision.
- the sensor unit 106 may not include expensive sensing equipment, and may include only sensors such as a low-cost ultrasonic sensor and/or a low-cost camera.
- the sensor unit 106 may include a sensor for identifying another robot or person in front and/or behind. For example, other robots, people, and other features may be identified as obstacles 30 through a camera of the sensor unit 106 .
- the sensor unit 106 may include an infrared sensor (or an infrared camera).
- the sensor unit 106 may further include a sensor for recognizing/identifying a nearby user, other robot, or object. As such, the sensor unit 106 may be configured to identify the obstacle 30 .
- the data processing module of the control unit 104 Sensing data including output values of the sensors of the sensor unit 106 may be transmitted to the robot control system 120 through the communication unit 102 .
- the robot control system 120 may transmit path data generated using the indoor map in the space 10 to the robot 100 .
- Route data may be transmitted to the data processing module through the communication unit 102 .
- the data processing module may directly transmit the route data to the driving control module, and the driving control module may control the indoor autonomous driving of the robot 100 by controlling the driving unit 108 according to the route data. Accordingly, the robot 100 may autonomously navigate based on the above-described second algorithm.
- the robot control system 120 controls the robot 120 according to the first algorithm based on the sensing data received from the robot 100.
- a control signal eg, speed and/or direction control signal
- the robot 100 may be controlled based on the generated control signal. Accordingly, the robot 100 may autonomously drive based on the first algorithm.
- the data processing module transmits sensing data to the localization processing module. It is also possible to directly process indoor autonomous driving of the robot 100 by transmitting and generating path data through a path planning processing module and a mapping processing module. Accordingly, the robot 100 may autonomously navigate based on the above-described second algorithm.
- the data processing module of the robot 100 controls a control signal (eg, speed) for controlling the robot 120 according to the first algorithm based on the sensing data. and/or a direction control signal), and the robot 100 may be controlled based on the generated control signal. Accordingly, the robot 100 may autonomously drive based on the first algorithm.
- the robot 100 may be distinct from a mapping robot used to create an indoor map within the space 10 . Since the robot 100 does not include expensive sensing equipment, it can process autonomous driving indoors using an output value of a sensor such as a low-cost ultrasonic sensor and/or a low-cost camera. On the other hand, if the robot 100 has previously processed indoor autonomous driving through communication with the robot control system 120, mapping data including the path data previously received from the robot control system 120 may be further By using low-cost sensors, more accurate indoor autonomous driving may be possible.
- the robot 100 may also serve as the mapping robot.
- the service processing module may receive commands received through the robot control system 120 through the communication unit 102 or through the communication unit 102 and the data processing module.
- the driving unit 108 may further include equipment related to services provided by the robot 100 as well as equipment for moving the robot 100 .
- the driving unit 108 of the robot 100 is configured to load food/delivery or deliver food/delivery to a user (eg, a robot arm).
- the robot 100 may further include a speaker and/or a display for providing information/content.
- the service processing module may transmit a driving command for a service to be provided to the driving control module, and the driving control module may control the configuration included in the robot 100 or the driving unit 108 according to the driving command to provide the service. can make it
- the robot 100 may be controlled to move to a destination while avoiding the obstacle 30 according to the control based on the first algorithm and the second algorithm described above.
- the robot 100 only provides sensing data for control of the robot 100 to the robot control system 120, and the first algorithm and the second algorithm for control of the robot 100 are used in the robot control system.
- the robot 100 may correspond to a brainless robot.
- each of the robots 100 may have a different size and shape depending on the model or service provided.
- 3 and 4 are block diagrams illustrating a robot control system for controlling a robot according to an embodiment.
- the robot control system 120 may be a device that controls movement (ie, driving) of the robot 100 within the space 10 described above and provision of services by the robot 100 within the space 10. there is.
- the robot control system 120 may control the movement of each of the plurality of robots 100 and the provision of services of each of the robots 100 .
- the robot control system 120 may set a route for the robot 100 to provide a service through communication with the robot 100, and may transmit information about such a route to the robot 100.
- the robot 100 may travel according to the information on the received 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 (travels) according to the set path.
- Robot control system 120 may include at least one computing device.
- 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 implemented as a server located within the space 10 or outside the space 10 .
- the setting of the path for the robot 100 to travel and the control of the movement of the robot 100 may include control of the robot 100 based on the above-described second algorithm.
- the robot control system 120 may include a memory 330, a processor 320, a communication unit 310, and an input/output interface 340.
- 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.
- RAM random access memory
- ROM read only memory
- a permanent mass storage device such as a disk drive.
- the ROM and the non-perishable mass storage device may be separated from the memory 330 and included as a separate permanent storage device.
- an operating system and at least one program code may be stored in the memory 330 .
- These software components may be loaded from a computer-readable recording medium separate from the memory 330 .
- the 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, and a memory card.
- software components may be loaded into the memory 330 through the communication unit 310 rather than a computer-readable recording medium.
- the processor 320 may be configured to process commands of a computer program by performing basic arithmetic, logic, and input/output operations. Instructions may be provided to the processor 320 by the memory 330 or the communication unit 310 . For example, processor 320 may be configured to execute instructions received according to program code loaded into memory 330 . This processor 320 may include components 410 to 440 as shown in FIG. 4 .
- 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) implemented by the processor. Configurations 410 to 440 of the processor 320 will be described later with reference to FIG. 4 .
- the communication unit 310 may be a component for the robot control system 120 to communicate with other devices (such as the robot 100 or other servers).
- the communication unit 310 is 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 other devices, or It may be a software module such as a network device driver or networking program.
- the input/output interface 340 may be a means for interfacing with an input device such as a keyboard or mouse and an output device such as a display or speaker.
- the robot control system 120 may include more components than those shown.
- the processor 320 may include a map creation module 410, a localization processing module 420, a route planning processing module 430, and a service operation module 440.
- Components included in the processor 320 may perform different functions performed by at least one processor included in the processor 320 according to a control instruction according to an operating system code or at least one computer program code. (different functions).
- the map generation module 410 generates an indoor map of the target facility using sensing data generated by a mapping robot (not shown) autonomously traveling inside the space 10 (eg, the inside of the space 10). It can be a component to create.
- the localization processing module 420 uses the sensing data received from the robot 100 through the network and the indoor map of the target facility generated through the map generation module 410 to detect the robot inside the target facility ( 100) can be determined.
- the path planning processing module 430 may generate a control signal for controlling indoor autonomous driving of the robot 100 by using the sensing data received from the robot 100 and the generated indoor map.
- the path planning processing module 430 may generate a path (ie, path data) of the robot 100 .
- the generated path (path data) may be set for the robot 100 to drive the robot 100 along the path.
- the robot control system 120 may transmit information about the generated path to the robot 100 through a network.
- information about a route may include information indicating the current location of the robot 100, information for mapping the current location and an indoor map, and route planning information.
- Information about the path may include information about a path along which the robot 100 should travel in order to provide services to a predetermined location in the space 10 or to a predetermined user.
- the path planning processing module 430 may set a path for the robot 100 (ie, 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 the set path (ie, along
- the setting of the path for the robot 100 to travel and the control of the movement of the robot 100 may include control of the robot 100 based on the above-described second algorithm.
- the service operation module 440 may include a function for controlling a service provided by the robot 100 within the space 10 .
- a service provider operating the robot control system 120 or the space 10 provides an IDE (for example, a cloud service) for a service (eg, a cloud service) provided by the robot control system 120 to a user or manufacturer of the robot 100.
- Integrated Development Environment can be provided.
- a user or manufacturer of the robot 100 may create software for controlling a service provided by the robot 100 within the space 10 through an IDE and register it in the robot control system 120 .
- the service operation module 440 may control the service provided by the robot 100 using software registered in association with the corresponding robot 100 .
- the robot control system 120 controls indoor autonomous driving of the robot 100. Commands related to not only control the robot 100 to move to the user's location, but also provide a series of services for the robot 100 to deliver an object to the user and output a user response voice when arriving at the destination location. can be delivered to the robot 100.
- a user-requested object e.g, food or package
- the robot control system 120 controls indoor autonomous driving of the robot 100. Commands related to not only control the robot 100 to move to the user's location, but also provide a series of services for the robot 100 to deliver an object to the user and output a user response voice when arriving at the destination location. can be delivered to the robot 100.
- the robot control system 120 may be a server as a computer system for controlling the robot 100 .
- the robot control system 120 is a server disposed outside the space 10 or a building, and may be a cloud server. Alternatively, according to embodiments, the robot control system 120 may be disposed inside the space 10 or a building.
- FIG. 5 is a block diagram illustrating a processor of a computer system for a robot that controls movement of the robot to a destination using a reinforcement learning-based algorithm and a path planning-based algorithm, according to an embodiment.
- the illustrated processor 500 is a component included in the computer system for the robot 100, and may be, for example, the processor 320 of the controller 104 of the robot 100 or the processor 320 of the robot control system 120 described above. can
- the processor 500 is a component that performs control based on the first algorithm and the second algorithm for the robot 100 to avoid the obstacle 30 and move to the destination, and the robot 100 or the robot control system 120 ) It may be a configuration included in.
- 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 a component that executes a first algorithm to control the movement of the robot 100
- the second algorithm processing unit 520 may be configured to execute a second algorithm to control the movement of the robot 100. It can be a configuration that runs
- Each of the components 510 and 520 of the processor 500 may be a software and/or hardware module as part of the processor 500 and represent a function (functional block) implemented by the processor.
- the first algorithm processing unit 510 and the second algorithm processing unit 520 may execute the first algorithm and the second algorithm in parallel.
- the first algorithm and the second algorithm can be executed in parallel or concurrently to control the movement of the robot 100 in the robot 100 or the robot control system 120 .
- the first algorithm may be a reinforcement learning-based algorithm for controlling autonomous driving of the robot 100 .
- Reinforcement learning is a type of machine learning, which is a learning method that selects the optimal action for a given situation (or state), and the computer program that is the target of reinforcement learning is an agent ) can be named.
- An agent establishes a policy that represents the action it will take for a given situation, and can train a model to establish a policy that allows it to obtain the maximum reward.
- Reinforcement learning allows an artificial intelligence agent to interact directly in a simulation or real world without directly creating an algorithm for controlling the robot 100, and to maximize the reward specified by the developer. It may be to learn how to control.
- the first algorithm may be implemented as an algorithm for controlling an autonomous vehicle or an autonomous robot through reinforcement learning.
- Reinforcement learning may include deep reinforcement learning (DRL), which is a model for performing reinforcement learning using a deep neural network (DNN), and the first algorithm may be implemented through deep reinforcement learning.
- DRL deep reinforcement learning
- DNN deep neural network
- this reinforcement learning-based algorithm that is, the first algorithm is compared to an algorithm based on path planning for a map built for the space 10, such as obstacle avoidance, etc. It can show higher performance and robustness.
- the first algorithm may be implemented to learn an optimal parameter for mapping the input of a sensor included in the robot 100 to the speed of the robot 100 through interaction with the environment of the space 10 .
- the first algorithm may be configured to control the robot 100 so that the robot 100 can move to a destination while avoiding obstacles while moving.
- the first algorithm may not cover means and methods to avoid the obstacle 30 and move to the destination. For example, if the robot 100 is controlled solely based on the first algorithm, a special attempt is made to protect the user or obstacle from actions that are relatively rare but can have serious consequences (even if such protection rarely results in performance loss). may not
- the avoidance range for the robot 100 to avoid the obstacle 30 is not limited, so it detours too far to avoid the obstacle 30. case may occur.
- the robot 100 controlled only based on the first algorithm moves to the destination by overtaking other robots located in front, even in a situation where the robot 100 needs to queue up in a narrow passage and exit sequentially. Try to do it, or if you can't evade these other robots, you may end up spinning in place.
- the robot 100 when the robot 100 is controlled only based on the first algorithm, it is difficult to control the robot 100 to stand by without avoiding the obstacle 30 according to safety or service needs provided by the robot 100. It may be difficult, and it may also happen that the robot 100 enters a forbidden area in the space 10 to avoid the obstacle 30 .
- a second algorithm may be used to further control the movement of the robot 100 to minimize inefficient movements.
- the second algorithm may be a route planning-based algorithm for controlling autonomous driving of the robot 100 according to route planning based on a map (eg, an indoor map) built for the space 10 .
- the second algorithm may be configured to control movement of the robot 100 according to a route plan based on a route to a destination generated based on a map built for the space 10 .
- the second algorithm determines the optimal path for the robot 100 to move to the destination based on the map built for the space 10, and moves the robot 100 while avoiding the obstacle 30 along the path. It may be an algorithm for controlling.
- a map of the space 10 may be generated by a separate mapping robot.
- the map constructed for space 100 may be, for example, an occupancy grid map for space 100 .
- FIG. 12 shows an occupancy grid map as a map of a space used by a path planning-based algorithm according to an example.
- the illustrated occupancy grid map 100 is for a space 10 in a building and may be generated by a mapping robot.
- the illustrated path 1210 may represent a path from the current location or starting point of the robot 100 to a destination according to an example.
- the path 1210 may include a plurality of nodes and edges connecting the nodes. Each node may indicate a waypoint (or destination) through which the robot 100 should pass through on a route. Nodes may be set according to preset principles.
- the first algorithm and the second algorithm are executed in parallel in the computer system, so that the movement of the robot 100 is controlled based on the first algorithm, so that the avoidance performance for the obstacle 30 is maintained, while the second algorithm Based on the algorithm, the avoidance range for the obstacle 30 is limited so that dangerous movement and inefficient movement of the robot 100 can be minimized.
- the first algorithm and the second algorithm may be executed in parallel in the computer system, but the second algorithm may be used as an auxiliary planner.
- This second algorithm determines whether or not the robot 100 can avoid the obstacle 30 while meeting a predetermined avoidance condition (or avoidance range) according to a path plan based on a map built for the space 10. can be used to judge
- the robot 100 when the robot 100 faces the obstacle 30, the robot 100 moves along a path according to the path plan (global When it is necessary to deviate more than a certain distance from the path, the robot 100 may be controlled to stop and wait without avoiding the obstacle 30 .
- the first algorithm and the second algorithm are executed in parallel, and when it is determined that it is impossible to avoid the obstacle 30 while satisfying a predetermined avoidance condition (or avoidance range) by the second algorithm, , the command based on the first algorithm may be ignored and the robot 100 may be stopped.
- the robot 100 may be controlled to avoid the obstacle 30 based on the first algorithm.
- FIG. 6 is a flowchart illustrating a method of controlling movement of a robot to a destination using a reinforcement learning-based algorithm and a path planning-based algorithm, according to an embodiment.
- step 610 the computer system controls the movement of the robot 100 to the destination based on a first algorithm learned in advance through reinforcement learning to control the movement of the robot 100.
- the robot 100 may be controlled to move while avoiding an obstacle identified while moving to a destination based on a reinforcement learning-based algorithm.
- the destination may be the final destination of the robot 100 for providing a service or a waypoint through which the robot 100 passes to move to the final destination.
- step 620 the computer system sends a second algorithm for controlling the movement of the robot 100 according to the route plan based on the map constructed for the space 10 during the movement of the robot 100 to the destination. Based on this, it may be determined whether the robot 100 satisfies a predetermined avoidance condition for the obstacle 30 .
- the determination in step 620 is always performed during the movement of the robot 100 to the destination. can be performed That is, the determination in step 620 may be made in real time while the robot 100 is moving.
- Avoidance conditions including an avoidance range and a prohibited area may be set by a manager of the robot 100 or the robot control system 120 .
- the manager may set the avoidance condition as a condition for route planning based on the second algorithm.
- the computer system may determine whether the avoidance condition is satisfied when the obstacle 30 is identified by the robot 100 or faced with the obstacle 30 while the robot 100 is moving.
- the computer system may control the robot 100 according to whether the avoidance condition is satisfied. For example, when the avoidance condition is satisfied, the computer system may control the movement of the robot 100 to move to the destination according to the control based on the first algorithm. In addition, the computer system may control the robot 100 to stop the movement of the robot 100 when the avoidance condition is not satisfied. Controlling the robot 100 so that the computer system stops the movement of the robot 100 may be transmitting an interrupt to the robot 100 so that the robot 100 stops.
- the robot 100 can be controlled to avoid the obstacle 30 only when the avoidance condition or avoidance range for the limited obstacle 30 is satisfied based on the second algorithm, and the avoidance condition or avoidance range is satisfied. If not, it can be controlled to stop without avoiding the obstacle 30.
- the computer system may control the robot 100 to move to the destination again after the obstacle 30 is overcome (eg, after the obstacle 30 moves to another location).
- FIG. 7 is a flowchart illustrating a method of determining whether a robot satisfies a predetermined condition for avoiding an obstacle in controlling movement of the robot to a destination according to an example.
- step 710 the computer system, when the obstacle 30 is identified while the robot 100 moves to the destination, based on the path planning according to the second algorithm, the obstacle 30 without departing from the predetermined avoidance range. ), it is possible to determine whether the robot 100 can move to the destination.
- the avoidance condition corresponds to the above-mentioned avoidance condition, and may be set by the administrator of the robot 100 or the robot control system 120.
- the avoidance condition may include a distance the robot 100 moves and/or a radius from the current position of the robot 100 .
- the robot 100 can be controlled to move to the destination according to the control based on the first algorithm. Meanwhile, when the robot 100 cannot move to a destination by avoiding the obstacle 30 without leaving the avoidance range, the robot 100 may be controlled to stop with the obstacle 30 in front.
- the computer system may direct the robot 100 to the obstacle 30 according to a path plan based on a path to a destination (eg, a global path) generated based on a map built for the space 10 . If it is necessary to move more than a predetermined first distance to avoid (eg, if it is necessary to detour more than a predetermined first distance), the robot 100 is considered unable to avoid the obstacle 30 without leaving the avoidance range. can judge According to the path planning according to the second algorithm, if the robot 100 needs to deviate more than a certain radius from the current position or move more than a certain distance to avoid the obstacle 30, the computer system determines that the robot 100 moves within the avoidance range. It can be determined that the obstacle 30 cannot be avoided without escaping. At this time, the robot 100 may be controlled to stop without avoiding the obstacle 30 ignoring the control command based on the first algorithm.
- a path plan based on a path to a destination (eg, a global path) generated based on a map built for the space 10 .
- FIG. 8 shows a method of controlling movement of a robot to a destination according to whether the robot deviates from a predetermined avoidance range for an obstacle, according to an example.
- the robot 100 may identify an obstacle 800 in front while moving to a destination.
- the computer system 100 may determine whether the detour path for avoiding the identified obstacle 30 is out of a predetermined avoidance range based on the path planning according to the second algorithm. For example, the computer system 100 determines that the additional distance the robot 100 must move when moving through the detour path is equal to or greater than a predetermined value, or when the robot 100 moves through the detour path, the robot 100 deviates from the current position by more than a predetermined radius. In this case, it may be determined that the bypass path is out of a predetermined avoidance range. At this time, the robot 100 may be controlled to stop without avoiding the obstacle 30 ignoring the control command based on the first algorithm.
- the computer system ignores the obstacle 30 as a path to the destination, and the robot 100 avoids the obstacle 30 according to a path plan based on a map built for the space 10. If the path connecting the current location of 100 or the starting point to the destination needs to deviate more than a predetermined value, it can be determined that the robot 100 cannot avoid the obstacle 30 without leaving the avoidance range.
- the computer system based on the map built for the space 10, the robot 100, the obstacle 100 without departing more than a predetermined second distance from the current position of the robot 100 or a straight line from the starting point to the destination. ), it can be determined whether or not it is possible to move to the destination.
- the straight line may correspond to a global path from a current location or a starting point to a destination.
- the computer system may control the robot 100 to stop with the obstacle 30 in front of it when it is determined that the robot 100 cannot move to the destination by avoiding the obstacle 30 without departing more than the second distance. .
- FIG. 10 illustrates a method of controlling movement of a robot to a destination according to whether the robot deviates from a predetermined avoidance range for a path to the destination in order to avoid an obstacle, according to an example.
- the illustrated point 1010 may be a starting point or the current location of the robot 100, and the point 1020 may be a destination.
- a straight line connecting the points 1010 and 1020 may correspond to the aforementioned straight line.
- a predetermined second distance can be determined by lowering the foot of the perpendicular from this straight line.
- the second distance is an avoidance range that is a value set by the manager of the robot 100 or the robot control system 120, and may be, for example, 1m.
- the robot 100 can 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 . Meanwhile, even if there is a bypass path 1 for bypassing the obstacle 1030, the use of the bypass path 1 may not be considered because it deviates from the second distance from the straight line.
- the obstacle 1030 within the avoidance range and capable of being avoided according to the control based on the first algorithm is regarded as a small enough obstacle that the robot 100 can easily avoid through the control based on the first algorithm. It can be.
- step 720 the computer system, when the obstacle 30 is identified while the robot 100 is moving to the destination, based on the path planning according to the second algorithm, the obstacle ( 30), it is possible to determine whether the robot 100 can move to the destination.
- the prohibited area is set by the manager of the robot 100 or the robot control system 120, and may be an area within the space 10 in which the robot 100 is not allowed to enter.
- the computer system may control the robot 100 to move to the destination based on the first algorithm when the robot 100 can move to the destination by avoiding the obstacle 30 without entering the forbidden area.
- the computer system 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 bypass a predetermined distance or more in order not to enter the prohibited area, the robot (100) can be controlled to stop with an obstacle (30) in front.
- FIG. 9 illustrates a method of controlling movement of a robot to a destination according to whether the robot needs to enter a predetermined prohibited area in order to avoid an obstacle, according to an example.
- the prohibited area 900 is set by the manager of the robot 100 or the robot control system 120, and may be, for example, a bathroom, a non-working space of the robot 100, or other restricted areas.
- a forbidden zone 900 can be identified on a map created for space 10 . Therefore, through route planning according to the second algorithm, it can be determined whether or not the robot 100 must enter the forbidden zone 900 to avoid the obstacle 800 . As shown, when the robot 100 cannot move to a destination by avoiding the obstacle 800 without entering the forbidden zone 900, the robot 100 can be controlled to stop with the obstacle 800 in front. there is.
- step 730 the computer system, when the obstacle 30 is identified while the robot 100 is moving to the destination, based on the path planning according to the second algorithm, the robot 100 does not move backward and the obstacle ( 30), it can be determined whether or not it is possible to move to the destination. If it is determined that the robot 100 needs to move backward to avoid the obstacle 30, the computer system may control the robot 100 to stop with the obstacle 30 in front. As such, in the embodiment, when the detour path for avoiding the obstacle 30 requires the robot 100 to move backward, the detour path may not be considered in the movement control of the robot 100.
- 11 illustrates a method of controlling movement of robots in an area in which line-up of robots is required, according to an example.
- the robot 100 controls the obstacle 1120 according to the first algorithm-based obstacle ( 1120 may be controlled to avoid the obstacle 1120 and move to the destination without detouring to another passage or stopping in front of the obstacle 1120.
- the obstacle 1120 that can be avoided through the control based on the first algorithm is a sufficiently small obstacle 1120 . Accordingly, according to the determination based on the second algorithm, sufficiently small obstacles 1120 are avoided according to the control based on the first algorithm, and other obstacles may not be avoided because the control of the robot 100 is interrupted.
- whether the obstacle 1120 is sufficiently small may be determined by a computer system according to sensing by the sensor unit 106 of the robot 100 .
- the illustrated passage 1110 may be an area in which line-up of the robots 100 within the space 10 is required.
- the passage 1110 may be a confined/narrow area, eg, zero with a width in which two or more robots cannot run side by side (laterally).
- the passage 1110 may be a section within the space 10 through which each of a plurality of robots is required to sequentially pass through in a line.
- the aisle 1110 may be an area where a robot 100 providing a package delivery service lines up to move to a location for picking up a package.
- the computer system 100 within the passage 110, is small enough that the robot 100 can avoid it without detouring to another passage.
- the obstacle 1120 may be controlled to move to a destination by avoiding the obstacle 1120 without detouring to another passage according to the control based on the first algorithm.
- the computer system 100 can be controlled so that when another robot is identified in front of the robot 100 in the aisle 1110, the robot 100 does not pass the other robot and waits behind the other robot. there is.
- the computer system 100 may determine that this other robot does not correspond to the obstacle 1120 that is sufficiently small, and thus the robot ( 100) can be controlled to wait behind another robot, that is, in front of another robot.
- the robots can line up without cutting in line or crossing other robots and forcibly moving towards the destination, and each robot can move to the destination sequentially.
- the embodiment achieves excellent queuing performance of the robot 100 in the aisle 1110, compared to the case where the robot 100 entering the aisle 1110 is controlled based on a trajectory following algorithm.
- the robot 100 is stopped when an obstacle is identified, and thus, a problem in that the robot 100 stops even when a small obstacle 1120 that can be avoided is identified may occur.
- a problem in that the robot 100 can no longer move may occur.
- the computer system 100 avoids the identified obstacle 30 according to the determination based on the second algorithm, and the small obstacle 1120 according to the control based on the first algorithm, but avoids other obstacles. (eg, another robot) can control the robot 100 to stop in front of an obstacle without avoiding it.
- the system or device described above may be implemented as a hardware component, a software component, or a combination of hardware components and software components.
- devices and components described in the embodiments may include, 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), microprocessor, or any other device capable of executing and responding to instructions.
- the processing device may run an operating system (OS) and one or more software applications running on the operating system.
- a processing device may also access, store, manipulate, process, and generate data in response to execution of software.
- the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it can include.
- a processing device may include a plurality of processors or a processor and a controller. Other processing configurations are also possible, such as parallel processors.
- Software may include a computer program, code, instructions, or a combination of one or more of the foregoing, which configures a processing device to operate as desired or processes independently or collectively. You can command the device.
- Software and/or data may be any tangible machine, component, physical device, virtual equipment, computer storage medium or device, intended to be interpreted by or provide instructions or data to a processing device. may be permanently or temporarily embodied in Software may be distributed on networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer readable media.
- the method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium.
- the computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program commands recorded on the medium may be specially designed and configured for the embodiment or may be known and usable to those skilled in 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, and magnetic media such as floptical disks.
- - includes hardware devices specially configured to store and execute program instructions, such as magneto-optical media, and ROM, RAM, flash memory, and the like.
- Examples of program instructions include high-level language codes that can be executed by a computer using an interpreter, as well as machine language codes such as those produced by a compiler.
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- Aviation & Aerospace Engineering (AREA)
- Remote Sensing (AREA)
- General Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
Provided is a robot control method for controlling movement of a robot to a destination on the basis of a first algorithm pre-trained via reinforcement learning, wherein the robot control method: on the basis of a second algorithm for controlling the movement of the robot according to a path plan for a space, determines, during the movement of the robot to the destination, whether or not the robot satisfies a predetermined avoidance condition for an obstacle; and according to whether or not the avoidance condition is satisfied, controls the movement of the robot or stops the movement of the robot by using the first algorithm.
Description
아래의 설명은 강화 학습 기반의 알고리즘과 경로 계획 기반의 알고리즘을 사용하여 로봇의 이동을 제어하는 방법 및 시스템과, 이러한 로봇이 배치되는 건물에 관한 것이다.The following description relates to a method and system for controlling the movement of a robot using a reinforcement learning-based algorithm and a path planning-based algorithm, and a building in which such a robot is deployed.
자율 주행 로봇은 스스로 주변을 살피고 장애물을 감지하면서 바퀴나 다리를 이용하여 목적지까지 최적 경로를 찾아가는 로봇으로, 자율 주행 차량이나, 물류, 호텔 서비스, 로봇 청소기 등 다양한 분야를 위해 개발 및 활용되고 있다. Self-driving robots are robots that look around and detect obstacles on their own while finding the optimal path to their destination using wheels or legs.
로봇이 서비스를 제공하기 위해 건물과 같은 공간 내에서 운용되는 경우, 로봇은 공간 내에서 예측되거나 또는 예측되지 않는 장애물을 적절하게 회피하도록 제어되어야 하며, 경우에 따라서는, 건물 내의 좁은 통로/복도와 같은 협소 구역을 주행해야 할 것이 요구된다. When a robot is operated within a space such as a building to provide services, the robot must be controlled to properly avoid anticipated or unforeseen obstacles within the space, and in some cases, narrow passages/corridors and corridors within the building. It is required to drive in the same narrow area.
이러한 로봇의 제어에 있어서는, 로봇의 다른 로봇 또는 기타 장애물과의 충돌 및 간섭을 회피하면서도, 로봇이 불필요하게 경로를 우회하거나 긴 거리를 이동하지 않도록 로봇을 효율적으로 제어하는 것이 중요하다. In controlling such a robot, it is important to efficiently control the robot so that the robot does not unnecessarily detour a path or move a long distance while avoiding collision and interference with other robots or other obstacles.
한국공개특허 제10-2005-0024840호는 자율이동로봇을 위한 경로계획방법에 관한 기술로, 가정이나 사무실에서 자율적으로 이동하는 이동로봇이 장애물을 회피하면서 목표점까지 안전하고 빠르게 이동할 수 있는 최적경로를 계획하는 방법에 대해 개시하고 있다. Korean Patent Publication No. 10-2005-0024840 relates to a path planning method for an autonomous mobile robot, which provides 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. It tells you how to plan.
상기에서 설명된 정보는 단지 이해를 돕기 위한 것이며, 종래 기술의 일부를 형성하지 않는 내용을 포함할 수 있으며, 종래 기술이 통상의 기술자에게 제시할 수 있는 것을 포함하지 않을 수 있다.The information described above is for illustrative purposes only and may include material that does not form part of the prior art, and may not include what the prior art may suggest to those skilled in the art.
강화 학습(Reinforcement Learning)을 통해 미리 학습된 제1 알고리즘에 기반하여 목적지로의 로봇의 이동을 제어하되, 로봇의 목적지로의 이동 중, 공간에 대한 경로 계획에 따라 로봇의 이동을 제어하기 위한 제2 알고리즘에 기반하여 로봇이 장애물에 대한 소정의 회피 조건을 충족하는지 여부를 판정하고, 회피 조건을 충족하는지 여부에 따라, 제1 알고리즘을 사용하여 로봇의 이동을 제어하거나 로봇의 이동을 정지시키는 로봇 제어 방법을 제공할 수 있다.Controlling the movement of the robot to the destination based on the first algorithm pre-learned through reinforcement learning, but controlling the movement of the robot according to the path planning for space during the movement of the robot to the destination 2 A robot that determines whether or not the robot meets a predetermined avoidance condition for an obstacle based on the algorithm, and controls the robot's movement or stops the robot's movement using the first algorithm according to whether the avoidance condition is met. A control method can be provided.
로봇의 목적지로의 이동 중 식별되는 장애물에 대해, 경로 계획 기반의 알고리즘을 사용하여, 해당 장애물을 회피하기 위해 로봇이 소정의 회피 범위를 벗어나야 하는지 여부가 판정될 수 있고, 판정의 결과에 따라 로봇을 정지시켜 효율적으로 로봇을 제어하는 방법을 제공할 수 있다. For an obstacle identified while the robot is moving to its destination, it may be determined whether the robot should deviate from a predetermined avoidance range in order to avoid the obstacle using a path planning-based algorithm, and according to the result of the determination, the robot It is possible to provide a method for efficiently controlling the robot by stopping it.
일 측면에 있어서, 공간 내에서 이동하는 로봇 또는 로봇을 제어하는 로봇 제어 시스템에 의해 수행되는 로봇 제어 방법에 있어서, 상기 로봇의 이동을 제어하기 위해 강화 학습(Reinforcement Learning)을 통해 미리 학습된 제1 알고리즘에 기반하여, 목적지로의 상기 로봇의 이동을 제어하는 단계, 상기 로봇의 상기 목적지로의 이동 중에, 상기 공간에 대해 구축된 맵에 기반한 경로 계획에 따라 상기 로봇의 이동을 제어하기 위한 제2 알고리즘에 기반하여, 상기 로봇이 장애물에 대한 소정의 회피 조건을 충족하는지 여부를 판정하는 단계 및 상기 회피 조건을 충족하는 경우에는, 상기 제1 알고리즘에 기반한 제어에 따라 상기 목적지로 이동하도록 상기 로봇의 이동을 제어하되, 상기 회피 조건이 충족되지 않는 경우에는, 상기 로봇의 이동을 정지시키도록 상기 로봇을 제어하는 단계를 포함하는, 로봇 제어 방법이 제공된다. In one aspect, in the robot control method performed by a robot moving in space or a robot control system for controlling the robot, a first pre-learned through reinforcement learning to control the movement of the robot. Controlling the movement of the robot to a destination based on an algorithm, and controlling the movement of the robot according to a route plan based on a map built for the space during the movement of the robot to the destination. Based on an algorithm, determining whether the robot satisfies a predetermined avoidance condition for an obstacle, and if the avoidance condition is satisfied, the robot moves to the destination according to control based on the first algorithm. Controlling movement, but controlling the robot to stop movement of the robot when the avoidance condition is not satisfied.
상기 제1 알고리즘과 상기 제2 알고리즘은 상기 로봇 또는 상기 로봇 제어 시스템에서 상기 로봇의 이동을 제어하기 위해 병렬로 실행될 수 있다. The first algorithm and the second algorithm may be executed in parallel to control movement of the robot in the robot or the robot control system.
상기 로봇은 상기 공간 내에서 서비스를 제공하는 서비스 로봇이고, 상기 목적지는 상기 서비스를 제공하기 위한 상기 로봇의 최종 목적지 또는 상기 최종 목적지로의 이동을 위해 상기 로봇이 경유하는 경유지일 수 있다. The robot may be a service robot providing a service in 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 to move to the final destination.
상기 제1 알고리즘은, 상기 로봇이 이동 중에 장애물을 회피하면서 상기 목적지로 이동 가능하도록 상기 로봇을 제어하도록 구성되고, 상기 제2 알고리즘은, 상기 공간에 대해 구축된 맵에 기반하여 생성된 상기 목적지까지의 경로에 기반한 상기 경로 계획에 따라 상기 로봇의 이동을 제어하도록 구성될 수 있다. The first algorithm is configured to control the robot so that the robot can move to the destination while avoiding obstacles while moving, and the second algorithm is configured to reach the destination generated based on a map built for the space. It may be configured to control the movement of the robot according to the path plan based on the path of the.
상기 공간에 대해 구축된 맵은 상기 공간에 대한 점유 그리드 맵(occupancy grid map)일 수 있다. The map constructed for the space may be an occupancy grid map for the space.
상기 판정하는 단계는, 상기 로봇의 상기 목적지로의 이동 중에 식별되는 장애물에 대해, 상기 경로 계획에 기반하여, 소정의 회피 범위를 벗어나지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 있는지 여부를 판정하는 단계를 포함하고, 상기 로봇이 상기 회피 범위를 벗어나지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 있는 경우, 상기 로봇은 상기 제1 알고리즘에 기반한 제어에 따라 상기 목적지로 이동하도록 제어되고, 상기 로봇이 상기 회피 범위를 벗어나지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 없는 경우, 상기 로봇은 상기 장애물을 앞에 두고 정지하도록 제어될 수 있다. The determining step may include determining whether the robot can move to the destination by avoiding the obstacle without departing from a predetermined avoidance range, based on the path plan, for an obstacle identified during movement of the robot to the destination. and, when the robot can move to the destination by avoiding the obstacle without leaving the avoidance range, the robot is controlled to move to the destination according to control based on the first algorithm, and the robot If it is impossible to move to the destination by avoiding the obstacle without leaving the avoidance range, the robot may be controlled to stop with the obstacle in front.
상기 판정하는 단계는, 상기 공간에 대해 구축된 맵에 기반하여 생성된 상기 목적지까지의 경로에 기반한 상기 경로 계획에 따라 상기 로봇이 상기 장애물을 회피하기 위해 소정의 제1 거리 이상 이동해야 하는 경우, 상기 로봇이 상기 회피 범위를 벗어나지 않고는 상기 장애물을 회피할 수 없는 것으로 판정할 수 있다. In the determining step, if the robot needs to move more than a predetermined first distance to avoid the obstacle according to the path plan based on the path to the destination generated based on the map built for the space, It may be determined that the robot cannot avoid the obstacle without leaving the avoidance range.
상기 판정하는 단계는, 상기 공간에 대해 구축된 맵에 기반하여, 상기 로봇이, 상기 로봇의 현재 위치 또는 출발지로부터 상기 목적지까지의 직선으로부터 소정의 제2 거리 이상 벗어나지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 있는지 여부를 판정하고, 상기 로봇이 상기 제2 거리 이상 벗어나지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 없는 경우, 상기 로봇은 상기 장애물을 앞에 두고 정지하도록 제어될 수 있다. In the determining step, based on the map built for the space, the robot avoids the obstacle without departing more than a predetermined second distance from a straight line from the current location or starting point of the robot to the destination, thereby avoiding the destination. It is determined whether it can move to , and if the robot cannot move to the destination by avoiding the obstacle without moving beyond the second distance, the robot can be controlled to stop with the obstacle in front.
상기 로봇이 다른 통로로 우회하지 않고 회피할 수 있을 만큼 상기 장애물의 크기가 작은 경우, 상기 로봇은 상기 제1 알고리즘에 기반한 제어에 따라 상기 장애물을 다른 통로로 우회하거나 상기 장애물을 앞에 두고 정지하지 않고 상기 장애물을 회피하여 상기 목적지로 이동하도록 제어될 수 있다. When the size of the obstacle is small enough for the robot to avoid it without detouring to another passage, the robot bypasses the obstacle to another passage according to the control based on the first algorithm or does not stop in front of the obstacle. It may be controlled to avoid the obstacle and move to the destination.
상기 판정하는 단계는, 상기 로봇의 상기 목적지로의 이동 중에 식별되는 장애물에 대해, 상기 경로 계획에 기반하여, 소정의 금지 구역에 진입하지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 있는지 여부를 판정하는 단계를 포함하고, 상기 로봇이 상기 금지 구역에 진입하지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 있는 경우, 상기 로봇은 상기 제1 알고리즘에 기반한 제어에 따라 상기 목적지로 이동하도록 제어되고, 상기 로봇이 상기 금지 구역에 진입하지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 없는 경우, 상기 로봇은 상기 장애물을 앞에 두고 정지하도록 제어될 수 있다. In the determining step, it is determined whether the robot can move to the destination by avoiding the obstacle without entering a predetermined prohibited area, based on the path plan, for an obstacle identified during movement of the robot to the destination. And, if the robot can move to the destination by avoiding the obstacle without entering the forbidden area, the robot is controlled to move to the destination according to control based on the first algorithm, wherein the If the robot cannot move to the destination by avoiding the obstacle without entering the forbidden zone, the robot may be controlled to stop with the obstacle in front.
상기 판정하는 단계는, 상기 로봇의 상기 목적지로의 이동 중에 식별되는 장애물에 대해, 상기 경로 계획에 기반하여, 상기 로봇이 후진하지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 있는지 여부를 판정하는 단계를 포함하고, 상기 로봇이 상기 장애물을 회피하기 위해 후진해야 하는 것으로 판정되면, 상기 로봇은 상기 장애물을 앞에 두고 정지하도록 제어될 수 있다. The determining step may include determining whether or not the robot can move to the destination by avoiding the obstacle without moving backward, based on the path plan, with respect to an obstacle identified while the robot moves to the destination. And, if it is determined that the robot needs to move backward to avoid the obstacle, the robot may be controlled to stop with the obstacle in front.
상기 판정의 결과에 따라, 상기 로봇이 상기 목적지로 이동하기 위한 통로 내에서, 상기 로봇은, 다른 통로로 우회하지 않고 회피할 수 있을 만큼 작은 장애물에 대해서는 상기 제1 알고리즘에 기반한 제어에 따라, 다른 통로로 우회하지 않고 상기 장애물을 회피하여 상기 목적지로 이동하도록 제어되고, 상기 통로 내에서, 상기 로봇의 전방에 상기 장애물로서 다른 로봇이 식별되는 경우, 상기 로봇은 상기 다른 로봇을 앞지르지 않고, 상기 다른 로봇의 뒤에서 대기하도록 제어될 수 있다. According to the result of the determination, within the passage for the robot to move to the destination, the robot, according to the control based on the first algorithm, for an obstacle small enough to avoid without detouring to another passage, another It is controlled to move to the destination by avoiding the obstacle without detouring into the passage, and in the passage, when another robot is identified as the obstacle in front of the robot, the robot does not overtake the other robot, and the other robot It can be controlled to wait behind the robot.
상기 통로는 상기 공간 내의 상기 로봇의 줄서기가 요구되는 영역 또는 둘 이상의 로봇들이 나란히 주행할 수 없는 폭을 갖는 영역일 수 있다. The passage may be an area within the space where lineup of the robots is required or an area having a width in which two or more robots cannot run side by side.
다른 일 측면에 있어서, 로봇을 위한 컴퓨터 시스템에 있어서, 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 상기 로봇의 이동을 제어하기 위해 강화 학습(Reinforcement Learning)을 통해 미리 학습된 제1 알고리즘에 기반하여, 목적지로의 상기 로봇의 이동을 제어하고, 상기 로봇의 상기 목적지로의 이동 중에, 상기 공간에 대해 구축된 맵에 기반한 경로 계획에 따라 상기 로봇의 이동을 제어하기 위한 제2 알고리즘에 기반하여, 상기 로봇이 장애물에 대한 소정의 회피 조건을 충족하는지 여부를 판정하고, 상기 회피 조건을 충족하는 경우에는, 상기 제1 알고리즘에 기반한 제어에 따라 상기 목적지로 이동하도록 상기 로봇의 이동을 제어하되, 상기 회피 조건이 충족되지 않는 경우에는, 상기 로봇의 이동을 정지시키도록 상기 로봇을 제어하는, 컴퓨터 시스템이 제공된다. In another aspect, a computer system for a robot includes at least one processor implemented to execute computer-readable instructions, wherein the at least one processor includes reinforcement learning (reinforcement learning) to control movement of the robot. Based on a first algorithm pre-learned through reinforcement learning), the movement of the robot to the destination is controlled, and during the movement of the robot to the destination, the robot moves according to a route plan based on a map built for the space. Based on the second algorithm for controlling the movement of the robot, it is determined whether the robot meets a predetermined avoidance condition for an obstacle, and if the avoidance condition is satisfied, according to the control based on the first algorithm A computer system is provided that controls movement of the robot to move to the destination, but controls the robot to stop moving when the avoidance condition is not met.
또 다른 일 측면에 있어서, 건물에 있어서, 상기 건물 내의 공간을 이동하는 적어도 하나의 로봇이 배치되고, 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 로봇은, 상기 로봇 내에 포함되거나 서버인 컴퓨터 시스템에 의해, 상기 건물 내에서의 이동이 제어되고, 상기 컴퓨터 시스템은, 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 상기 로봇의 이동을 제어하기 위해 강화 학습(Reinforcement Learning)을 통해 미리 학습된 제1 알고리즘에 기반하여, 목적지로의 상기 로봇의 이동을 제어하고, 상기 로봇의 상기 목적지로의 이동 중에, 상기 공간에 대해 구축된 맵에 기반한 경로 계획에 따라 상기 로봇의 이동을 제어하기 위한 제2 알고리즘에 기반하여, 상기 로봇이 장애물에 대한 소정의 회피 조건을 충족하는지 여부를 판정하고, 상기 회피 조건을 충족하는 경우에는, 상기 제1 알고리즘에 기반한 제어에 따라 상기 목적지로 이동하도록 상기 로봇의 이동을 제어하되, 상기 회피 조건이 충족되지 않는 경우에는, 상기 로봇의 이동을 정지시키도록 상기 로봇을 제어하는, 건물이 제공된다. In another aspect, in a building, at least one robot that moves in a space within the building is disposed, and includes at least one processor implemented to execute a computer-readable command, wherein the robot comprises: Movement within the building is controlled by a computer system contained within or being a server, the computer system comprising at least one processor implemented to execute computer-readable instructions, the at least one processor comprising: Based on a first algorithm learned in advance through reinforcement learning to control the movement of the robot, the movement of the robot to the destination is controlled, and during the movement of the robot to the destination, the space Based on a second algorithm for controlling the movement of the robot according to a path plan based on a map built for the obstacle, it is determined whether the robot satisfies a predetermined avoidance condition for an obstacle, and if the avoidance condition is satisfied. In this case, the building controls the movement of the robot to move to the destination according to the control based on the first algorithm, but controls the robot to stop moving when the avoidance condition is not met. Provided.
병렬로 실행되는 강화 학습 기반의 알고리즘 및 경로 계획 기반의 알고리즘을 사용하여 로봇의 목적지로의 이동을 제어함으로써, 강화 학습 기반의 알고리즘을 통해서는 조절할 수 없었던 장애물에 대한 회피 범위를 제한할 수 있다. 이에 따라, 로봇이 좁은 통로를 주행하거나 장애물에 직면하게 된 때, 목적지로의 경로(예컨대, 전역 경로(global path))를 크게 벗어나는 로봇의 비효율적인 이동이 최소화될 수 있다. 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 controlled through the reinforcement learning-based algorithm. Accordingly, when the robot travels through a narrow passage or encounters an obstacle, inefficient movement of the robot that deviate greatly from a path (eg, a global path) to a destination can be minimized.
또한, 예컨대, 좁은 통로에서 로봇의 줄서기가 요구되는 경우 등과 같이, 서비스의 제공을 위해 필요한 경우에 있어서, 로봇이 마이너한 장애물을 회피하면서도 앞선 로봇과 적절한 거리를 두고 위치하도록 제어될 수 있다.In addition, in a case where it is necessary to provide service, for example, when robots are required to line up in a narrow passage, the robot can be controlled to be positioned at an appropriate distance from the previous robot while avoiding minor obstacles.
도 1은 일 실시예에 따른, 강화 학습 기반의 알고리즘 및 경로 계획 기반의 알고리즘을 사용하여 로봇의 목적지로의 이동을 제어하는 방법을 나타낸다.1 illustrates a method of controlling movement of a robot to a destination using a reinforcement learning-based algorithm and a path planning-based algorithm, according to an embodiment.
도 2 는 일 실시예에 따른, 공간 내에서 서비스를 제공하는 로봇을 나타내는 블록도이다. 2 is a block diagram illustrating a robot providing a service in a space, according to an exemplary embodiment.
도 3 및 도 4는 일 실시예에 따른, 로봇을 제어하는 로봇 제어 시스템을 나타내는 블록도이다.3 and 4 are block diagrams illustrating a robot control system for controlling a robot according to an embodiment.
도 5는 일 실시예에 따른, 강화 학습 기반의 알고리즘 및 경로 계획 기반의 알고리즘을 사용하여 로봇의 목적지로의 이동을 제어하는 로봇을 위한 컴퓨터 시스템의 프로세서를 나타내는 블록도이다. 5 is a block diagram illustrating a processor of a computer system for a robot that controls movement of the robot to a destination using a reinforcement learning-based algorithm and a path planning-based algorithm, according to an embodiment.
도 6은 일 실시예에 따른, 강화 학습 기반의 알고리즘 및 경로 계획 기반의 알고리즘을 사용하여 로봇의 목적지로의 이동을 제어하는 방법을 나타내는 흐름도이다.6 is a flowchart illustrating a method of controlling movement of a robot to a destination using a reinforcement learning-based algorithm and a path planning-based algorithm, according to an embodiment.
도 7은 일 예에 따른, 로봇의 목적지로의 이동을 제어함에 있어서, 로봇이 장애물에 대한 소정의 회피 조건을 충족하는지 여부를 판정하는 방법을 나타내는 흐름도이다.7 is a flowchart illustrating a method of determining whether a robot satisfies a predetermined condition for avoiding an obstacle in controlling movement of the robot to a destination according to an example.
도 8은 일 예에 따른, 로봇이 장애물에 대한 소정의 회피 범위를 벗어나는지 여부에 따라 로봇의 목적지로의 이동을 제어하는 방법을 나타낸다. 8 illustrates a method of controlling movement of a robot to a destination according to whether the robot deviates from a predetermined avoidance range for an obstacle, according to an example.
도 9는 일 예에 따른, 로봇이 장애물을 회피하기 위해 소정의 금지 구역에 진입해야 하는지 여부에 따라 로봇의 목적지로의 이동을 제어하는 방법을 나타낸다. 9 illustrates a method of controlling movement of a robot to a destination according to whether the robot needs to enter a predetermined prohibited area in order to avoid an obstacle, according to an example.
도 10은 일 예에 따른, 로봇이 장애물을 회피하기 위해 목적지까지의 경로에 대해 소정의 회피 범위를 벗어나는지 여부에 따라 로봇의 목적지로의 이동을 제어하는 방법을 나타낸다. 10 illustrates a method of controlling movement of a robot to a destination according to whether the robot deviates from a predetermined avoidance range for a path to the destination in order to avoid an obstacle, according to an example.
도 11은 일 예에 따른, 로봇의 줄서기가 요구되는 영역에서의 로봇의 이동을 제어하는 방법을 나타낸다. 11 illustrates a method of controlling movement of robots in an area in which line-up of robots is required, according to an example.
도 12는 일 예에 따른, 경로 계획 기반의 알고리즘이 사용하는 공간에 대한 맵으로서, 점유 그리드 맵(occupancy grid map)을 나타낸다. 12 shows an occupancy grid map as a map for a space used by a path planning-based algorithm according to an example.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.Hereinafter, an embodiment will be described in detail with reference to the accompanying drawings.
도 1은 일 실시예에 따른, 강화 학습 기반의 알고리즘 및 경로 계획 기반의 알고리즘을 사용하여 로봇의 목적지로의 이동을 제어하는 방법을 나타낸다.1 illustrates a method of controlling movement of a robot to a destination using a reinforcement learning-based algorithm and a path planning-based algorithm, according to an embodiment.
도 1에서는 공간(10) 내에서 서비스를 제공하도록 구성되는 로봇(100)이, 로봇(100)의 목적지로의 이동을 제어하기 위해 구성된 알고리즘(즉, 후술될 제1 알고리즘 및 제2 알고리즘)의 실행에 따라, 장애물(30)을 회피하면서 목적지를 향해 이동하는 방법이 도시되었다. In FIG. 1, the robot 100 configured to provide service in the space 10 is configured to control the movement of the robot 100 to the destination (ie, the first algorithm and the second algorithm to be described later) According to the implementation, a method of moving toward a destination while avoiding obstacles 30 is shown.
로봇(100)의 목적지로의 이동을 제어하기 위해 구성되는 알고리즘은 로봇(100) 내에서 실행되거나, 또는, 로봇 제어 시스템(120) 내에서 실행될 수 있다. Algorithms configured to control the movement of the robot 100 to the destination may be executed within the robot 100 or within the robot control system 120 .
로봇(100) 내에서 알고리즘이 실행되는 경우, 즉, 알고리즘이 로봇(100)에서 디플로이(deploy)되어 실행되는 경우, 로봇(100)은 알고리즘에서 정의된 바에 따라, 장애물(30)을 회피하고 목적지를 향해 이동하도록 제어될 수 있다. 한편, 로봇 제어 시스템(120) 내에서 이러한 알고리즘이 실행되는 경우, 로봇 제어 시스템(120)로부터의 상기 알고리즘에 기반한 제어 신호(명령), 예컨대, 속도 제어 신호 및/또는 방향 제어 신호에 기반하여 로봇(100)이 제어될 수 있다. When the algorithm is executed within the robot 100, that is, when the algorithm is deployed and executed on the robot 100, the robot 100 avoids the obstacle 30 as defined in the algorithm and It can be controlled to move towards a destination. On the other hand, when such an algorithm is executed in the robot control system 120, the robot based on a control signal (command) based on the algorithm from the robot control system 120, for example, a speed control signal and / or a direction control signal (100) can be controlled.
로봇(100)이 이동(또는 주행)하는 공간(10)은 로봇(100)이 서비스를 제공하는 장소로서, 예컨대, 건물 또는 빌딩에 포함되는 실내 및/또는 실외의 공간을 나타낼 수 있다. 건물 또는 빌딩은 복수의 인원(이하, 사용자라 함)들이 근무 또는 상주하는 공간을 포함하며, 예컨대, 복수의 구획된 공간들을 포함할 수 있다. 공간(10)은 건물의 일부(특정 층 또는 해당 층 내의 부분 공간)를 나타낼 수 있다. The space 10 in which the robot 100 moves (or runs) is a place where the robot 100 provides services, and may represent, for example, a building or an indoor and/or outdoor space included in a building. A building or a building includes a space in which a plurality of personnel (hereinafter, referred to as users) work or reside, and may include, for example, a plurality of partitioned spaces. A space 10 may represent a portion of a building (a particular floor or subspace within that floor).
로봇(100)은 공간(10) 내에서 서비스를 제공하기 위해 사용되는 서비스 로봇일 수 있다. 로봇(100)은 공간(10)의 적어도 하나의 층에서 서비스를 제공하도록 구성될 수 있다. 도 1에서는 하나의 로봇(100) 만이 도시되었으나, 공간 내에서 배치되어 동작하는 로봇(100)은 복수일 수 있다. 공간(10) 내에서는 로봇(100)의 각각이 이동하여 공간(10) 내의 적절한 위치 또는 적절한 사용자에게 서비스를 제공할 수 있다. The robot 100 may be a service robot used to provide services within the space 10 . Robot 100 may be configured to provide service on at least one floor of space 10 . Although only one robot 100 is shown in FIG. 1 , there may be a plurality of robots 100 arranged and operating in a space. Within the space 10, each of the robots 100 can move and provide services to appropriate locations or appropriate users within the space 10.
로봇(100)이 제공하는 서비스는 예컨대, 택배 전달 서비스, 주문에 따른 음료(커피 등) 전달 서비스, 청소 서비스, 및 기타 정보/콘텐츠 제공 서비스 중 적어도 하나를 포함할 수 있다.The service provided by the robot 100 may include, for example, at least one of a parcel delivery service, a beverage (coffee, etc.) delivery service according to an order, a cleaning service, and other information/content providing services.
로봇(100)은 자율 주행을 통해 공간(10)의 소정의 위치에서 또는 소정의 사용자에게 서비스를 제공하도록 구성될 수 있으며, 로봇(100)의 (각각의) 이동 및 서비스의 제공은 로봇 제어 시스템(120)에 의해 제어될 수 있다. 전술한 알고리즘을 통해 제어되는 로봇(100)의 목적지로의 이동은, 로봇(100)의 이러한 서비스의 제공을 위한 소정의 위치로의 이동일 수 있다. The robot 100 may be configured to provide a service to a predetermined location in the space 10 or to a predetermined user through autonomous driving, and the (each) movement of the robot 100 and the provision of services are controlled by a robot control system. (120). The movement of the robot 100 to a destination controlled through the above-described algorithm may be a movement of the robot 100 to a predetermined position for providing such a service.
후술될 상세한 설명에서, 로봇(100)이 이동하는 "목적지"는 서비스를 제공하기 위한 로봇(100)의 최종 목적지 또는 최종 목적지로의 이동을 위해 로봇(100)이 경유하는 "경유지"일 수 있다. 일례로, 로봇(100)이 제공하는 서비스가 택배 전달 서비스라면, 목적지는 택배를 픽업하기 위한 픽업 위치 또는 픽업된 택배의 배송 위치가 될 수 있고, 혹은 상기 픽업 위치 또는 배송 위치로 이동하기 위해 로봇(100)이 경유해야 하는 위치가 될 수 있다. In the detailed description to be described later, the "destination" to which the robot 100 moves may be the final destination of the robot 100 for providing services or a "stopping point" through which the robot 100 passes to move to the final destination. . For example, if the service provided by the robot 100 is a parcel delivery service, the destination may be a pick-up location for picking up a parcel or a delivery location for the picked-up parcel, or a robot to move to the pick-up location or delivery location. (100) can be a location to pass through.
로봇(100) 및 로봇 제어 시스템(120)의 구조에 대해서는 후술될 도 2 내지 도 5를 참조하여 더 자세하게 설명된다.The structure of the robot 100 and the robot control system 120 will be described in more detail with reference to FIGS. 2 to 5 to be described later.
도시된 것처럼, 로봇(100)은, 목적지로의 이동 중에 장애물(30)에 직면할 수 있고, 장애물(30)을 회피하여 목적지로 이동하도록 제어될 수 있다. As shown, the robot 100 may face an obstacle 30 while moving to the destination, and may be controlled to avoid the obstacle 30 and move to the destination.
장애물(30)은 공간(10) 내에 일시적으로 또는 비 일시적으로 존재하는 물체로서, 예컨대, 사람, 다른 로봇 등과 같은 이동하는 객체이거나, 공간(10) 내에서 이동하지 않는, 즉, 고정된 사물일 수 있다. The obstacle 30 is an object temporarily or non-temporarily present in the space 10, for example, a moving object such as a person or another robot, or a non-moving object in the space 10, that is, a fixed object. can
실시예에서는, 로봇(100)은, 로봇(100)의 이동을 제어하기 위해 강화 학습(Reinforcement Learning)을 통해 미리 학습된 제1 알고리즘(즉, 강화 학습 기반의 알고리즘) 및 공간(100)에 대해 구축된 맵에 기반한 경로 계획에 따라 로봇(100)의 이동을 제어하기 위한 제2 알고리즘(즉, 경로 계획 기반의 알고리즘)에 기반하여 제어될 수 있다. In the embodiment, the robot 100 uses a first algorithm pre-learned through reinforcement learning to control the movement of the robot 100 (ie, a reinforcement learning-based algorithm) and the space 100. It may be controlled based on a second algorithm (ie, a path planning-based algorithm) for controlling the movement of the robot 100 according to the route planning based on the constructed map.
예컨대, 로봇(100)은 제1 알고리즘에 기반하여 목적지로의 이동이 제어될 수 있으며, 직면하는 장애물(30)에 대해 제2 알고리즘에 기반한 판단에 따라 소정의 회피 조건(또는 회피 범위)을 충족하면서 장애물(30)을 회피할 수 있는 것으로 판정되는 경우, 제1 알고리즘에 기반하여 장애물(30)을 회피하도록 제어될 수 있다. 이 때, 소정의 회피 조건(또는 회피 범위)을 충족하면서는 장애물(30)을 회피할 수 없는 것으로 판정되는 경우에는, 로봇(100)은 장애물(30)을 앞에 두고 정지하도록 제어될 수 있다. For example, the movement of the robot 100 to a destination may be controlled based on the first algorithm, and a predetermined avoidance condition (or avoidance range) may be satisfied according to a determination based on the second algorithm for the obstacle 30 encountered. When it is determined that the obstacle 30 can be avoided while doing so, it can be controlled to avoid the obstacle 30 based on the first algorithm. At this time, if it is determined that the obstacle 30 cannot be avoided while satisfying a predetermined avoidance condition (or avoidance range), the robot 100 may be controlled to stop with the obstacle 30 in front.
즉, 실시예에서는, 제1 알고리즘에 기반하여 로봇(100)의 이동을 제어하여 장애물(30)에 대한 회피 성능을 유지하면서도, 장애물(30)에 대한 회피 범위를 제한하여 로봇(100)의 위험한 이동 및 비효율적인 이동을 최소화하기 위해 제2 알고리즘이 추가로 로봇(100)의 이동을 제어하기 위해 사용될 수 있다. That is, in the embodiment, while maintaining the avoidance performance for the obstacle 30 by controlling the movement of the robot 100 based on the first algorithm, the avoidance range for the obstacle 30 is limited to prevent the robot 100 from being dangerous. A second algorithm may be further used to control the movement of the robot 100 to minimize movement and inefficient movement.
따라서, 로봇(100)은 장애물(30)을 회피하는 성능이 우수한 제1 알고리즘에 따라 제어되되, 제2 알고리즘에 기반하여 장애물(30)을 회피하기 위한 회피 범위가 제한되어 위험하거나 비효율적인 이동을 하지 않도록 제어될 수 있다. Therefore, the robot 100 is controlled according to the first algorithm, which has excellent performance in avoiding the obstacle 30, but the avoidance range for avoiding the obstacle 30 is limited based on the second algorithm, thereby preventing dangerous or inefficient movement. It can be controlled not to do so.
제1 알고리즘 및 제2 알고리즘에 기반한 로봇(100)의 제어 방법에 대해서는 후술될 도 5 내지 도 12를 참조하여 더 자세하게 설명한다.The control method of the robot 100 based on the first algorithm and the second algorithm will be described in more detail with reference to FIGS. 5 to 12 to be described later.
도 2 는 일 실시예에 따른, 공간 내에서 서비스를 제공하는 로봇을 나타내는 블록도이다. 2 is a block diagram illustrating a robot providing a service in a space, according to an exemplary embodiment.
전술한 것처럼, 로봇(100)은 공간(10) 내에서 서비스를 제공하기 위해 사용되는 서비스 로봇일 수 있다. 로봇(100)은 자율 주행을 통해 공간(10)의 소정의 위치에서 또는 소정의 사용자에게 서비스를 제공할 수 있다. As described above, the robot 100 may be a service robot used to provide services within the space 10 . The robot 100 may provide services at a predetermined location in the space 10 or to a predetermined user through autonomous driving.
로봇(100)은 물리적인 장치일 수 있으며, 도시된 바와 같이, 제어부(104), 구동부(108), 센서부(106) 및 통신부(102)를 포함할 수 있다.The robot 100 may be a physical device and, as shown, may include a control unit 104, a drive unit 108, a sensor unit 106, and a communication unit 102.
제어부(104)는 로봇(100)에 내장된 물리적인 프로세서일 수 있으며, 별도로 도시하지는 않았으나, 경로 계획 처리 모듈, 맵핑 처리 모듈, 구동 제어 모듈, 로컬리제이션 처리 모듈, 데이터 처리 모듈 및 서비스 처리 모듈을 포함할 수 있다. 이 때, 경로 계획 처리 모듈, 맵핑 처리 모듈 및 로컬리제이션 처리 모듈은 로봇 제어 시스템(120)과 통신이 이루어지지 않는 경우에도 로봇(100)의 실내 자율 주행이 이루어질 수 있도록 하기 위해 실시예에 따라 선택적으로 제어부(104)에 포함되는 것일 수도 있다. The control unit 104 may be a physical processor built into the robot 100, and although not shown separately, 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 can include At this time, the path planning processing module, the mapping processing module, and the localization processing module according to the embodiment in order to enable indoor autonomous driving of the robot 100 even when communication with the robot control system 120 is not performed Optionally, it may be included in the control unit 104.
통신부(102)는 로봇(100)이 다른 장치(다른 로봇 또는 로봇 제어 시스템(120) 등)와 통신하기 위한 구성일 수 있다. 말하자면, 통신부(102)는 다른 장치에 대해 데이터 및/또는 정보를 전송/수신하는, 로봇(100)의 안테나, 데이터 버스, 네트워크 인터페이스 카드, 네트워크 인터페이스 칩 및 네트워킹 인터페이스 포트 등과 같은 하드웨어 모듈 또는 네트워크 디바이스 드라이버(driver) 또는 네트워킹 프로그램과 같은 소프트웨어 모듈일 수 있다.The communication unit 102 may be a component 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 is a hardware module or network device such as an antenna, data bus, network interface card, network interface chip, and networking interface port of the robot 100 that transmits/receives data and/or information to other devices. It can be a software module such as a driver or networking program.
구동부(108)는 로봇(100)의 이동을 제어하며 이동을 가능하게 하는 구성으로서 이를 수행하기 위한 장비를 포함할 수 있다. The driving unit 108 controls the movement of the robot 100 and may include equipment for enabling the movement.
센서부(106)는 로봇(100)의 자율 주행 및 서비스 제공에 있어서 요구되는 데이터를 수집하기 위한 구성일 수 있다. 센서부(106)는 고가의 센싱 장비를 포함하지 않을 수 있고, 단지 저가형 초음파 센서 및/또는 저가형 카메라 등과 같은 센서를 포함할 수 있다. 센서부(106)는 전방 및/또는 후방의 다른 로봇이나 사람을 식별하기 위한 센서를 포함할 수 있다. 예컨대, 센서부(106)의 카메라를 통해 다른 로봇, 사람 및 기타 지물들이 장애물(30)로서 식별될 수 있다. 또는, 센서부(106)는 적외선 센서(또는 적외선 카메라)를 포함할 수 있다. 센서부(106)는 카메라 외에 주변의 사용자나, 다른 로봇 또는 지물을 인식/식별하기 위한 센서를 더 포함할 수도 있다. 이처럼 센서부(106)는 장애물(30)을 식별하도록 구성될 수 있다. The sensor unit 106 may be a component for collecting data required for autonomous driving of the robot 100 and service provision. The sensor unit 106 may not include expensive sensing equipment, and may include only sensors such as a low-cost ultrasonic sensor and/or a low-cost camera. The sensor unit 106 may include a sensor for identifying another robot or person in front and/or behind. For example, other robots, people, and other features may be identified as obstacles 30 through a camera of the sensor unit 106 . Alternatively, the sensor unit 106 may 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 a nearby user, other robot, or object. As such, the sensor unit 106 may be configured to identify the obstacle 30 .
일례로, 로봇(100)이 로봇 제어 시스템(120)에 의해 제어되는 로봇 제어 시스템(120) 내에서 로봇(100)의 자율 주행을 위한 알고리즘이 실행되는 경우, 제어부(104)의 데이터 처리 모듈은 센서부(106)의 센서들의 출력값을 포함하는 센싱 데이터를 통신부(102)를 통해 로봇 제어 시스템(120)으로 전송할 수 있다. 로봇 제어 시스템(120)은 공간(10) 내의 실내 맵을 사용하여 생성된 경로 데이터를 로봇(100)으로 전송할 수 있다. 경로 데이터는 통신부(102)를 통해 데이터 처리 모듈로 전달될 수 있다. 데이터 처리 모듈은 경로 데이터를 바로 구동 제어 모듈로 전달할 수 있고, 구동 제어 모듈은 경로 데이터에 따라 구동부(108)를 제어하여 로봇(100)의 실내 자율 주행을 제어할 수 있다. 이에 따라, 로봇(100)은 전술한 제2 알고리즘에 기반하여 자율 주행될 수 있다. 한편, 로봇 제어 시스템(120)에서 전술한 제1 알고리즘이 실행되는 경우, 로봇 제어 시스템(120)은 로봇(100)으로부터 수신한 센싱 데이터에 기반하여 제1 알고리즘에 따라 로봇(120)을 제어하기 위한 제어 신호(예컨대, 속도 및/또는 방향 제어 신호)를 생성할 수 있고, 생성된 제어 신호에 기반하여 로봇(100)이 제어되도록 할 수 있다. 이에 따라, 로봇(100)은 제1 알고리즘에 기반하여 자율 주행될 수 있다.For example, when an algorithm for autonomous driving of the robot 100 is executed in the robot control system 120 where the robot 100 is controlled by the robot control system 120, the data processing module of the control unit 104 Sensing data including output values of the sensors of the sensor unit 106 may be transmitted to the robot control system 120 through the communication unit 102 . The robot control system 120 may transmit path data generated using the indoor map in the space 10 to the robot 100 . Route data may be transmitted to the data processing module through the communication unit 102 . The data processing module may directly transmit the route data to the driving control module, and the driving control module may control the indoor autonomous driving of the robot 100 by controlling the driving unit 108 according to the route data. Accordingly, the robot 100 may autonomously navigate based on the above-described second algorithm. On the other hand, when the above-described first algorithm is executed in the robot control system 120, the robot control system 120 controls the robot 120 according to the first algorithm based on the sensing data received from the robot 100. A control signal (eg, speed and/or direction control signal) may be generated, and the robot 100 may be controlled based on the generated control signal. Accordingly, the robot 100 may autonomously drive based on the first algorithm.
또는, 로봇(100)과 로봇 제어 시스템(120)이 통신할 수 없는 경우나 로봇(100) 내에서 자율 주행을 위한 알고리즘이 실행되는 경우라면, 데이터 처리 모듈은 센싱 데이터를 로컬리제이션 처리 모듈로 전송하고, 경로 계획 처리 모듈과 맵핑 처리 모듈을 통해 경로 데이터를 생성하여 로봇(100)의 실내 자율 주행을 직접 처리할 수도 있다. 이에 따라, 로봇(100)은 전술한 제2 알고리즘에 기반하여 자율 주행될 수 있다. 한편, 로봇(100)에서 전술한 제1 알고리즘이 실행되는 경우, 로봇(100)의 데이터 처리 모듈은 센싱 데이터에 기반하여 제1 알고리즘에 따라 로봇(120)을 제어하기 위한 제어 신호(예컨대, 속도 및/또는 방향 제어 신호)를 생성할 수 있고, 생성된 제어 신호에 기반하여 로봇(100)이 제어되도록 할 수 있다. 이에 따라, 로봇(100)은 제1 알고리즘에 기반하여 자율 주행될 수 있다.Alternatively, when the robot 100 and the robot control system 120 cannot communicate or when an algorithm for autonomous driving is executed within the robot 100, the data processing module transmits sensing data to the localization processing module. It is also possible to directly process indoor autonomous driving of the robot 100 by transmitting and generating path data through a path planning processing module and a mapping processing module. Accordingly, the robot 100 may autonomously navigate based on the above-described second algorithm. Meanwhile, when the above-described first algorithm is executed in the robot 100, the data processing module of the robot 100 controls a control signal (eg, speed) for controlling the robot 120 according to the first algorithm based on the sensing data. and/or a direction control signal), and the robot 100 may be controlled based on the generated control signal. Accordingly, the robot 100 may autonomously drive based on the first algorithm.
로봇(100)은 공간(10) 내의 실내 맵을 생성하기 위해 사용되는 맵핑 로봇과는 구별되는 것일 수 있다. 로봇(100)은 고가의 센싱 장비를 포함하지 않기 때문에 저가형 초음파 센서 및/또는 저가형 카메라 등과 같은 센서의 출력값을 이용하여 실내 자율 주행을 처리할 수 있다. 한편, 로봇(100)이 기존에 로봇 제어 시스템(120)과의 통신을 통해 실내 자율 주행을 처리한 적이 있다면, 로봇 제어 시스템(120)으로부터 기존에 수신한 경로 데이터가 포함하는 맵핑 데이터 등을 더 활용함으로써 저가의 센서들을 이용하면서도 보다 정확한 실내 자율 주행이 가능하게 될 수 있다. The robot 100 may be distinct from a mapping robot used to create an indoor map within the space 10 . Since the robot 100 does not include expensive sensing equipment, it can process autonomous driving indoors using an output value of a sensor such as a low-cost ultrasonic sensor and/or a low-cost camera. On the other hand, if the robot 100 has previously processed indoor autonomous driving through communication with the robot control system 120, mapping data including the path data previously received from the robot control system 120 may be further By using low-cost sensors, more accurate indoor autonomous driving may be possible.
다만, 실시예에 따라서는 로봇(100)이 상기 맵핑 로봇을 겸할 수도 있다.However, depending on embodiments, the robot 100 may also serve as the mapping robot.
서비스 처리 모듈은 로봇 제어 시스템(120)을 통해 수신되는 명령을 통신부(102)를 통해 또는 통신부(102)와 데이터 처리 모듈을 통해 전달받을 수 있다. 구동부(108)는 로봇(100)의 이동을 위한 장비뿐만 아니라, 로봇(100)이 제공하는 서비스와 관련된 장비를 더 포함할 수 있다. 예컨대, 음식물/택배물 전달 서비스를 수행하기 위해 로봇(100)의 구동부(108)는 음식물/택배물을 적재하기 위한 구성이나 음식물/택배물을 사용자에게 전달하기 위한 구성(일례로, 로봇 암(arm))을 포함할 수 있다. 또한, 로봇(100)은 정보/콘텐츠의 제공을 위한 스피커 및/또는 디스플레이 등을 더 포함할 수도 있다. 서비스 처리 모듈은 제공해야 할 서비스를 위한 구동 명령을 구동 제어 모듈로 전달할 수 있고, 구동 제어 모듈은 구동 명령에 따라 로봇(100)이나 구동부(108)가 포함하는 구성을 제어하여 서비스가 제공될 수 있도록 할 수 있다.The service processing module may receive commands received through the robot control system 120 through the communication unit 102 or through the communication unit 102 and the data processing module. The driving unit 108 may further include equipment related to services provided by the robot 100 as well as equipment for moving the robot 100 . For example, in order to perform a food/delivery delivery service, the driving unit 108 of the robot 100 is configured to load food/delivery or deliver food/delivery to a user (eg, a robot arm). can include In addition, the robot 100 may further include a speaker and/or a display for providing information/content. The service processing module may transmit a driving command for a service to be provided to the driving control module, and the driving control module may control the configuration included in the robot 100 or the driving unit 108 according to the driving command to provide the service. can make it
로봇(100)은 전술한 제1 알고리즘 및 제2 알고리즘에 기반한 제어에 따라, 장애물(30)을 회피하면서 목적지로 이동하도록 제어될 수 있다. The robot 100 may be controlled to move to a destination while avoiding the obstacle 30 according to the control based on the first algorithm and the second algorithm described above.
전술한 것처럼, 로봇(100)이 로봇(100)의 제어를 위한 센싱 데이터를 로봇 제어 시스템(120)으로 제공할 뿐이고, 로봇(100)의 제어를 위한 제1 알고리즘 및 제2 알고리즘이 로봇 제어 시스템(120)에서 실행되는 경우, 로봇(100)은 브레인리스 로봇에 해당할 수 있다.As described above, the robot 100 only provides sensing data for control of the robot 100 to the robot control system 120, and the first algorithm and the second algorithm for control of the robot 100 are used in the robot control system. When executed in 120, the robot 100 may correspond to a brainless robot.
한편, 로봇(100)의 각각은 기종이나 제공하는 서비스 등에 따라, 상이한 크기 및 형태를 가질 수 있다. Meanwhile, each of the robots 100 may have a different size and shape depending on the model or service provided.
로봇(100)을 제어하는 로봇 제어 시스템(120)의 구성 및 동작에 대해서는 후술될 도 3 내지 도 5를 참조하여 각각 더 자세하게 설명된다.The configuration and operation of the robot control system 120 for controlling the robot 100 will be described in more detail with reference to FIGS. 3 to 5 to be described later.
이상 도 1을 참조하여 전술된 기술적 특징에 대한 설명은, 도 2에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.Since descriptions of the technical features described above with reference to FIG. 1 may be applied as they are to FIG. 2 , duplicate descriptions will be omitted.
도 3 및 도 4는 일 실시예에 따른, 로봇을 제어하는 로봇 제어 시스템을 나타내는 블록도이다.3 and 4 are block diagrams illustrating a robot control system for controlling a robot according to an embodiment.
로봇 제어 시스템(120)은 전술된 로봇(100)의 공간(10) 내에서의 이동(즉, 주행) 및 로봇(100)에 의한 공간(10) 내에서의 서비스의 제공을 제어하는 장치일 수 있다. 로봇 제어 시스템(120)은 복수의 로봇(100) 각각의 이동 및 로봇(100) 각각의 서비스의 제공을 제어할 수 있다. 로봇 제어 시스템(120)은 로봇(100)과의 통신을 통해, 로봇(100)이 서비스를 제공하기 위한 경로를 설정할 수 있고, 이러한 경로에 관한 정보를 로봇(100)에게 전달할 수 있다. 로봇(100)은 수신된 경로에 관한 정보에 따라 주행할 수 있고, 소정의 위치에서 또는 소정의 사용자에게 서비스를 제공할 수 있다. 로봇 제어 시스템(120)은 상기 설정된 경로에 따라 로봇이 이동(주행)하도록 로봇의 이동을 제어할 수 있다.The robot control system 120 may be a device that controls movement (ie, driving) of the robot 100 within the space 10 described above and provision of services by the robot 100 within the space 10. there is. The robot control system 120 may control the movement of each of the plurality of robots 100 and the provision of services of each of the robots 100 . The robot control system 120 may set a route for the robot 100 to provide a service through communication with the robot 100, and may transmit information about such a route to the robot 100. The robot 100 may travel according to the information on the received 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 (travels) according to the set path.
로봇 제어 시스템(120)은 적어도 하나의 컴퓨팅 장치를 포함할 수 있다. Robot control system 120 may include at least one computing device.
로봇 제어 시스템(120)은 전술한 것처럼 로봇(100)의 주행을 위한 경로를 설정하고 로봇(100)의 이동을 제어하는 장치일 수 있다. 로봇 제어 시스템(120)은 적어도 하나의 컴퓨팅 장치를 포함할 수 있고, 공간(10) 내 또는 공간(10) 외부에 위치하는 서버로 구현될 수 있다. 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 implemented as a server located within the space 10 or outside the space 10 .
이러한 로봇(100)의 주행을 위한 경로의 설정과 로봇(100)의 이동을 제어는 전술한 제2 알고리즘에 기반한 로봇(100)의 제어를 포함할 수 있다. The setting of the path for the robot 100 to travel and the control of the movement of the robot 100 may include control of the robot 100 based on the above-described second algorithm.
로봇 제어 시스템(120)은 도시된 것처럼, 메모리(330), 프로세서(320), 통신부(310) 및 입출력 인터페이스(340)를 포함할 수 있다.As shown, the robot control system 120 may include a memory 330, a processor 320, a communication unit 310, and an input/output interface 340.
메모리(330)는 컴퓨터에서 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 비소멸성 대용량 기록장치는 메모리(330)와 분리되어 별도의 영구 저장 장치로서 포함될 수도 있다. 또한, 메모리(330)에는 운영체제와 적어도 하나의 프로그램 코드가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(330)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신부(310)를 통해 메모리(330)에 로딩될 수도 있다. 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 non-perishable mass storage device may be separated from the memory 330 and included as a separate permanent storage device. Also, an operating system and at least one program code may be stored in the memory 330 . These software components may be loaded from a computer-readable recording medium separate from the memory 330 . The 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, and a memory card. In another embodiment, software components may be loaded into the memory 330 through the communication unit 310 rather than a computer-readable recording medium.
프로세서(320)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(330) 또는 통신부(310)에 의해 프로세서(320)로 제공될 수 있다. 예를 들어, 프로세서(320)는 메모리(330)에 로딩된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다. 이러한 프로세서(320)는 도 4에서 도시된 것과 같은 구성들(410 내지 440)을 포함할 수 있다. The processor 320 may be configured to process commands of a computer program by performing basic arithmetic, logic, and input/output operations. Instructions may be provided to the processor 320 by the memory 330 or the communication unit 310 . For example, processor 320 may be configured to execute instructions received according to program code loaded into memory 330 . This processor 320 may include components 410 to 440 as shown in FIG. 4 .
프로세서(320)의 구성들(410 내지 440) 각각은 프로세서(320)의 일부로서 소프트웨어 및/또는 하드웨어 모듈일 수 있고, 프로세서에 의해 구현되는 기능(기능 블록)을 나타낼 수 있다. 프로세서(320)의 구성들(410 내지 440)에 대해서는 도 4를 참조하여 후술한다.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) implemented by the processor. Configurations 410 to 440 of the processor 320 will be described later with reference to FIG. 4 .
통신부(310)는 로봇 제어 시스템(120)이 다른 장치(로봇(100) 또는 다른 서버 등)와 통신하기 위한 구성일 수 있다. 말하자면, 통신부(310)는 다른 장치에 대해 데이터 및/또는 정보를 전송/수신하는, 로봇 제어 시스템(120)의 안테나, 데이터 버스, 네트워크 인터페이스 카드, 네트워크 인터페이스 칩 및 네트워킹 인터페이스 포트 등과 같은 하드웨어 모듈 또는 네트워크 디바이스 드라이버(driver) 또는 네트워킹 프로그램과 같은 소프트웨어 모듈일 수 있다.The communication unit 310 may be a component 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 is 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 other devices, or It may be a software module such as a network device driver or networking program.
입출력 인터페이스(340)는 키보드 또는 마우스 등과 같은 입력 장치 및 디스플레이나 스피커와 같은 출력 장치와의 인터페이스를 위한 수단일 수 있다.The input/output interface 340 may be a means for interfacing with an input device such as a keyboard or mouse and an output device such as a display or speaker.
또한, 다른 실시예들에서 로봇 제어 시스템(120)은 도시된 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다. Also, in other embodiments, the robot control system 120 may include more components than those shown.
도 4를 참조하여 프로세서(320)의 구성들(410 내지 440)에 대해 더 자세하게 설명한다. 프로세서(320)는 도시된 것처럼, 맵 생성 모듈(410), 로컬리제이션 처리 모듈(420), 경로 계획 처리 모듈(430) 및 서비스 운영 모듈(440)을 포함할 수 있다. 이러한 프로세서(320)가 포함하는 구성요소들은, 운영체제의 코드나 적어도 하나의 컴퓨터 프로그램의 코드에 따른 제어 명령(instruction)에 따라 프로세서(320)이 포함하는 적어도 하나의 프로세서가 수행하는 서로 다른 기능들(different functions)의 표현들일 수 있다. Referring to FIG. 4 , components 410 to 440 of the processor 320 will be described in more detail. As shown, the processor 320 may include a map creation module 410, a localization processing module 420, a route planning processing module 430, and a service operation module 440. Components included in the processor 320 may perform different functions performed by at least one processor included in the processor 320 according to a control instruction according to an operating system code or at least one computer program code. (different functions).
맵 생성 모듈(410)은 공간(10) 내부에서 자율 주행하는 (도시되지 않은) 맵핑 로봇이 목표 시설물(예컨대, 공간(10)의 내부에 대해 생성한 센싱 데이터를 이용하여 목표 시설물의 실내 맵을 생성하기 위한 구성요소일 수 있다.The map generation module 410 generates an indoor map of the target facility using sensing data generated by a mapping robot (not shown) autonomously traveling inside the space 10 (eg, the inside of the space 10). It can be a component to create.
이 때, 로컬리제이션 처리 모듈(420)은 로봇(100)으로부터 네트워크를 통해 수신되는 센싱 데이터와 맵 생성 모듈(410)을 통해 생성된 목표 시설물의 실내 맵을 이용하여 목표 시설물 내부에서의 로봇(100)의 위치를 결정할 수 있다.At this time, the localization processing module 420 uses the sensing data received from the robot 100 through the network and the indoor map of the target facility generated through the map generation module 410 to detect the robot inside the target facility ( 100) can be determined.
경로 계획 처리 모듈(430)은 상술한 로봇(100)으로부터 수신된 센싱 데이터와 생성된 실내 맵을 이용하여 로봇(100)의 실내 자율 주행을 제어하기 위한 제어 신호를 생성할 수 있다. 예컨대, 경로 계획 처리 모듈(430)은 로봇(100)의 경로(즉, 경로 데이터)를 생성할 수 있다. 생성된 경로(경로 데이터)는 해당 경로를 따르는 로봇(100)의 주행을 위해 로봇(100)에 대해 설정될 수 있다. 로봇 제어 시스템(120)은 생성된 경로에 관한 정보를 네트워크를 통해 로봇(100)으로 전송할 수 있다. 일례로, 경로에 관한 정보는 로봇(100)의 현재 위치를 나타내는 정보, 현재 위치와 실내 맵을 맵핑하기 위한 정보, 그리고 경로 계획 정보를 포함할 수 있다. 경로에 관한 정보에는 로봇(100)이 공간(10) 내의 소정의 위치에서 또는 소정의 사용자에게 서비스를 제공하기 위해 주행해야 하는 경로에 관한 정보가 포함될 수 있다. 경로 계획 처리 모듈(430)은 로봇(100)을 위한 경로(즉, 경로 데이터)를 로봇(100)에 대해 설정할 수 있다. 로봇 제어 시스템(120)은 이러한 설정된 경로에 따라(즉, 설정된 경로를 따라) 로봇(100)이 이동하도록 로봇(100)의 이동을 제어할 수 있다. The path planning processing module 430 may generate a control signal for controlling indoor autonomous driving 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 (ie, path data) of the robot 100 . The generated path (path data) may be set for the robot 100 to drive the robot 100 along the path. The robot control system 120 may transmit information about the generated path to the robot 100 through a network. For example, information about a route may include information indicating the current location of the robot 100, information for mapping the current location and an indoor map, and route planning information. Information about the path may include information about a path along which the robot 100 should travel in order to provide services to a predetermined location in the space 10 or to a predetermined user. The path planning processing module 430 may set a path for the robot 100 (ie, 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 the set path (ie, along the set path).
이러한 로봇(100)의 주행을 위한 경로의 설정과 로봇(100)의 이동을 제어는, 전술한 제2 알고리즘에 기반한 로봇(100)의 제어를 포함할 수 있다.The setting of the path for the robot 100 to travel and the control of the movement of the robot 100 may include control of the robot 100 based on the above-described second algorithm.
서비스 운영 모듈(440)은 로봇(100)이 공간(10) 내에서 제공하는 서비스를 제어하기 위한 기능을 포함할 수 있다. 예를 들어, 로봇 제어 시스템(120) 또는 공간(10)을 운영하는 서비스 제공자는 로봇(100)의 이용자나 제작자에게 로봇 제어 시스템(120)이 제공하는 서비스(예컨대, 클라우드 서비스)를 위한 IDE(Integrated Development Environment)를 제공할 수 있다. 이 때, 로봇(100)의 이용자나 제작자는 로봇(100)이 공간(10) 내에서 제공하는 서비스를 제어하기 위한 소프트웨어를 IDE를 통해 제작하여 로봇 제어 시스템(120)에 등록할 수 있다. 이 경우, 서비스 운영 모듈(440)은 해당 로봇(100)과 연관하여 등록된 소프트웨어를 이용하여 로봇(100)이 제공하는 서비스를 제어할 수 있다. 구체적인 예로, 로봇(100)이 사용자가 요청한 물건(예컨대, 음식물 또는 택배물)을 해당 사용자의 위치로 전달하는 서비스를 제공한다고 가정하면, 로봇 제어 시스템(120)은 로봇(100)의 실내 자율 주행을 제어하여 로봇(100)이 해당 사용자의 위치로 이동하도록 제어할 뿐만 아니라, 목적 위치에 도착한 경우 사용자에게 물건을 전달하고, 사용자 응대 음성을 출력하는 일련의 서비스를 로봇(100)이 제공하도록 관련된 명령을 로봇(100)에게 전달할 수 있다.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 provides an IDE (for example, a cloud service) for a service (eg, a cloud service) provided by the robot control system 120 to a user or manufacturer of the robot 100. Integrated Development Environment) can be provided. At this time, a user or manufacturer of the robot 100 may create software for controlling a service provided by the robot 100 within the space 10 through an IDE and register it in the robot control system 120 . In this case, the service operation module 440 may control the service provided by the robot 100 using software registered in association with the corresponding robot 100 . As a specific example, assuming that the robot 100 provides a service for delivering a user-requested object (eg, food or package) to the user's location, the robot control system 120 controls indoor autonomous driving of the robot 100. Commands related to not only control the robot 100 to move to the user's location, but also provide a series of services for the robot 100 to deliver an object to the user and output a user response voice when arriving at the destination location. can be delivered to the robot 100.
로봇 제어 시스템(120)은 로봇(100)을 제어하기 위한 컴퓨터 시스템으로서 서버일 수 있다. 로봇 제어 시스템(120)은 공간(10) 또는 건물의 외부에 배치되는 서버로서, 클라우드 서버일 수 있다. 또는, 실시예에 따라서는 로봇 제어 시스템(120)은 공간(10) 또는 건물의 내부에 배치될 수도 있다. The robot control system 120 may be a server as a computer system for controlling the robot 100 . The robot control system 120 is a server disposed outside the space 10 or a building, and may be a cloud server. Alternatively, according to embodiments, the robot control system 120 may be disposed inside the space 10 or a building.
이상 도 1 및 도 2를 참조하여 전술된 기술적 특징에 대한 설명은, 도 3 및 도 4에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.Descriptions of the technical features described above with reference to FIGS. 1 and 2 may be applied as they are to FIGS. 3 and 4 , so duplicate descriptions are omitted.
도 5는 일 실시예에 따른, 강화 학습 기반의 알고리즘 및 경로 계획 기반의 알고리즘을 사용하여 로봇의 목적지로의 이동을 제어하는 로봇을 위한 컴퓨터 시스템의 프로세서를 나타내는 블록도이다. 5 is a block diagram illustrating a processor of a computer system for a robot that controls movement of the robot to a destination using a reinforcement learning-based algorithm and a path planning-based algorithm, according to an embodiment.
도시된 프로세서(500)는 로봇(100)을 위한 컴퓨터 시스템에 포함된 구성요소로서, 예컨대, 전술한 로봇(100)의 제어부(104)의 프로세서 또는 로봇 제어 시스템(120)의 프로세서(320)일 수 있다. The illustrated processor 500 is a component included in the computer system for the robot 100, and may be, for example, the processor 320 of the controller 104 of the robot 100 or the processor 320 of the robot control system 120 described above. can
말하자면, 프로세서(500)는 로봇(100)의 장애물(30) 회피 및 목적지로의 이동을 위한 제1 알고리즘 및 제2 알고리즘에 기반한 제어를 수행하는 구성으로서, 로봇(100) 또는 로봇 제어 시스템(120)에 포함되는 구성일 수 있다.In other words, the processor 500 is a component that performs control based on the first algorithm and the second algorithm for the robot 100 to avoid the obstacle 30 and move to the destination, and the robot 100 or the robot control system 120 ) It may be a configuration included in.
프로세서(500)는 제1 알고리즘 처리부(510) 및 제2 알고리즘 처리부(520)를 포함할 수 있다. 제1 알고리즘 처리부(510)는 로봇(100)의 이동을 제어하기 위해 제1 알고리즘을 실행하는 구성일 수 있고, 제2 알고리즘 처리부(520)는 로봇(100)의 이동을 제어하기 위해 제2 알고리즘을 실행하는 구성일 수 있다.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 a component that executes 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. It can be a configuration that runs
프로세서(500)의 구성들(510 및 520) 각각은 프로세서(500)의 일부로서 소프트웨어 및/또는 하드웨어 모듈일 수 있고, 프로세서에 의해 구현되는 기능(기능 블록)을 나타낼 수 있다.Each of the components 510 and 520 of the processor 500 may be a software and/or hardware module as part of the processor 500 and represent a function (functional block) implemented by the processor.
제1 알고리즘 처리부(510) 및 제2 알고리즘 처리부(520)는 제1 알고리즘과 제2 알고리즘을 병렬로 실행될 수 있다. 말하자면, 제1 알고리즘과 제2 알고리즘은 로봇(100) 또는 로봇 제어 시스템(120)에서 로봇(100)의 이동을 제어하기 위해 병렬로 또는 동시에 실행될 수 있다. The first algorithm processing unit 510 and the second algorithm processing unit 520 may execute the first algorithm and the second algorithm in parallel. In other words, the first algorithm and the second algorithm can be executed in parallel or concurrently to control the movement of the robot 100 in the robot 100 or the robot control system 120 .
아래에서는, 제1 알고리즘 및 제2 알고리즘에 대해 좀 더 자세하게 설명한다.Below, the first algorithm and the second algorithm will be described in more detail.
제1 알고리즘은 로봇(100)의 자율 주행을 제어하기 위한 강화 학습 기반의 알고리즘일 수 있다. The first algorithm may be a reinforcement learning-based algorithm for controlling autonomous driving of the robot 100 .
강화 학습은 기계 학습(Machine Learning)의 일종으로, 주어진 상황(또는 상태)(state)에 대해 최적의 행동(action)을 선택하도록 하는 학습 방법이며, 강화 학습의 대상이 되는 컴퓨터 프로그램은 에이전트(agent)으로 명명될 수 있다. 에이전트는 주어진 상황에 대해 자신이 취할 행동을 나타내는 폴리시(정책)(policy)을 수립하며, 최대의 보상을 얻을 수 있도록 하는 폴리시를 수립하기 위해 모델을 학습시킬 수 있다. Reinforcement learning is a type of machine learning, which is a learning method that selects the optimal action for a given situation (or state), and the computer program that is the target of reinforcement learning is an agent ) can be named. An agent establishes a policy that represents the action it will take for a given situation, and can train a model to establish a policy that allows it to obtain the maximum reward.
강화 학습은, 일례로, 로봇(100)을 제어하기 위한 알고리즘을 사람이 직접 만들지 않고 인공지능 에이전트가 시뮬레이션 또는 실세계에서 직접 상호작용하며 개발자가 지정해준 보상(reward)를 최대화 하도록 스스로 로봇(100)의 제어 방법을 학습하는 것일 수 있다. Reinforcement learning, for example, allows an artificial intelligence agent to interact directly in a simulation or real world without directly creating an algorithm for controlling the robot 100, and to maximize the reward specified by the developer. It may be to learn how to control.
제1 알고리즘은 이러한 강화 학습을 통해 자율 주행 차량이나 자율 주행 로봇을 제어하기 위한 알고리즘으로서 구현된 것일 수 있다. 강화 학습은 심층 신경망(Deep Neural Network; DNN)를 사용하여 강화 학습을 수행하는 모델인 심층 강화 학습(Deep Reinforcement Learning; DRL)을 포함할 수 있고, 제1 알고리즘은 심층 강화 학습을 통해 구현된 것일 수 있다. The first algorithm may be implemented as an algorithm for controlling an autonomous vehicle or an autonomous robot through reinforcement learning. Reinforcement learning may include deep reinforcement learning (DRL), which is a model for performing reinforcement learning using a deep neural network (DNN), and the first algorithm may be implemented through deep reinforcement learning. can
로봇(100)의 자율 주행을 제어함에 있어서, 이러한 강화 학습 기반의 알고리즘, 즉, 제1 알고리즘은 공간(10)에 대해 구축된 맵에 대한 경로 계획(path planning)에 기반한 알고리즘에 비해 장애물 회피 등에 있어서 보다 높은 성능과 견고성을 나타낼 수 있다. In controlling the autonomous driving of the robot 100, this reinforcement learning-based algorithm, that is, the first algorithm is compared to an algorithm based on path planning for a map built for the space 10, such as obstacle avoidance, etc. It can show higher performance and robustness.
제1 알고리즘은 공간(10)의 환경과의 상호작용을 통해 로봇(100)이 포함하는 센서의 입력을 로봇(100)의 속도에 매핑하기 위한 최적의 파라미터를 학습하도록 구현될 수 있다. The first algorithm may be implemented to learn an optimal parameter for mapping the input of a sensor included in the robot 100 to the speed of the robot 100 through interaction with the environment of the space 10 .
따라서, 제1 알고리즘은, 로봇(100)이 이동 중에 장애물을 회피하면서 목적지로 이동 가능하도록 로봇(100)을 제어하도록 구성될 수 있다. Accordingly, the first algorithm may be configured to control the robot 100 so that the robot 100 can move to a destination while avoiding obstacles while moving.
제1 알고리즘은, 장애물(30)을 회피하고 목적지로 이동하기 위해 수단과 방법을 가리지 않을 수 있다. 예컨대, 제1 알고리즘에 기반하여서만 로봇(100)이 제어될 경우에는 비교적 드물지만 심각한 결과가 될 수 있는 행동으로부터 사용자 또는 장애물을 보호하려는 (이러한 보호로 인해 성능 손실이 거의 발생하지 않더라도) 특별한 시도를 하지 않을 수 있다. The first algorithm may not cover means and methods to avoid the obstacle 30 and move to the destination. For example, if the robot 100 is controlled solely based on the first algorithm, a special attempt is made to protect the user or obstacle from actions that are relatively rare but can have serious consequences (even if such protection rarely results in performance loss). may not
또한, 제1 알고리즘에 기반하여서만 로봇(100)이 제어될 경우에는, 로봇(100)이 장애물(30)을 회피하기 위한 회피 범위가 제한되지 않음으로써 장애물(30)을 회피하기 위해 지나치게 멀리 우회하는 경우가 발생할 수 있다. 또한, 제1 알고리즘에 기반하여서만 제어되는 로봇(100)은 좁은 통로에서 줄서기가 필요하여 로봇(100)이 대기하여 순차적으로 빠져나가야 하는 상황에서도, 전방에 위치된 다른 로봇을 앞질러 목적지로 이동하려고 시도하거나, 이러한 다른 로봇을 회피할 수 없는 경우에는 제자리에서 회전하게 될 수 있다. In addition, when the robot 100 is controlled only based on the first algorithm, the avoidance range for the robot 100 to avoid the obstacle 30 is not limited, so it detours too far to avoid the obstacle 30. case may occur. In addition, the robot 100 controlled only based on the first algorithm moves to the destination by overtaking other robots located in front, even in a situation where the robot 100 needs to queue up in a narrow passage and exit sequentially. Try to do it, or if you can't evade these other robots, you may end up spinning in place.
이처럼, 제1 알고리즘에 기반하여서만 로봇(100)이 제어될 경우에는 안전 또는 로봇(100)이 제공하는 서비스 상의 필요에 따라 장애물(30)을 회피하지 않고 로봇(100)을 대기하도록 제어하기가 어렵게 될 수 있으며, 로봇(100)이 장애물(30)을 회피하기 위해 공간(10) 내의 금지 구역에 진입하게 되는 경우도 발생할 수 있다. As such, when the robot 100 is controlled only based on the first algorithm, it is difficult to control the robot 100 to stand by without avoiding the obstacle 30 according to safety or service needs provided by the robot 100. It may be difficult, and it may also happen that the robot 100 enters a forbidden area in the space 10 to avoid the obstacle 30 .
실시예에서는, 제1 알고리즘에 기반하여 로봇(100)의 이동을 제어하여 장애물(30)에 대한 회피 성능을 유지하면서도, 장애물(30)에 대한 회피 범위를 제한하여 로봇(100)의 위험한 이동 및 비효율적인 이동을 최소화하기 위해 제2 알고리즘이 추가로 로봇(100)의 이동을 제어하기 위해 사용될 수 있다. In the embodiment, while maintaining the avoidance performance of the obstacle 30 by controlling the movement of the robot 100 based on the first algorithm, by limiting the avoidance range of the obstacle 30, dangerous movement and A second algorithm may be used to further control the movement of the robot 100 to minimize inefficient movements.
제2 알고리즘은 공간(10)에 대해 구축된 맵(예컨대, 실내 맵)에 기반한 경로 계획에 따라 로봇(100)의 자율 주행을 제어하기 위한 경로 계획 기반의 알고리즘일 수 있다. 예컨대, 제2 알고리즘은 공간(10)에 대해 구축된 맵에 기반하여 생성된 목적지까지의 경로에 기반한 경로 계획에 따라 로봇(100)의 이동을 제어하도록 구성될 수 있다. The second algorithm may be a route planning-based algorithm for controlling autonomous driving of the robot 100 according to route planning based on a map (eg, an indoor map) built for the space 10 . For example, the second algorithm may be configured to control movement of the robot 100 according to a route plan based on a route to a destination generated based on a map built for the space 10 .
제2 알고리즘은 공간(10)에 대해 구축된 맵에 기반하여 로봇(100)이 목적지로 이동하기 위한 최적의 경로를 결정하고, 해당 경로를 따라 장애물(30)을 회피하면서 이동하도록 로봇(100)을 제어하기 위한 알고리즘일 수 있다. 공간(10)에 대한 맵은 별도의 맵핑 로봇에 의해 생성된 것일 수 있다. 공간(100)에 대해 구축된 맵은, 예컨대, 공간(100)에 대한 점유 그리드 맵(occupancy grid map)일 수 있다. The second algorithm determines the optimal path for the robot 100 to move to the destination based on the map built for the space 10, and moves the robot 100 while avoiding the obstacle 30 along the path. It may be an algorithm for controlling. A map of the space 10 may be generated by a separate mapping robot. The map constructed for space 100 may be, for example, an occupancy grid map for space 100 .
관련하여, 도 12는 일 예에 따른, 경로 계획 기반의 알고리즘이 사용하는 공간에 대한 맵으로서, 점유 그리드 맵(occupancy grid map)을 나타낸다. In this regard, FIG. 12 shows an occupancy grid map as a map of a space used by a path planning-based algorithm according to an example.
도시된 점유 그리드 맵(100)은 건물 내의 공간(10)에 대한 것으로서, 맵핑 로봇에 의해 생성된 것일 수 있다. 도시된 경로(1210)는 일 예에 따른 로봇(100)의 현재 위치 또는 출발지로부터 목적지로의 경로를 나타낼 수 있다. 경로(1210)는 복수의 노드들과, 노드들 간을 연결하는 에지들로 구성될 수 있다. 각각의 노드는 경로 상에서 로봇(100)이 경유해야 할 경유지(또는 목적지)를 나타낼 수 있다. 노드는 미리 설정된 원칙에 따라 설정되는 것일 수 있다. The illustrated occupancy grid map 100 is for a space 10 in a building and may be generated by a mapping robot. The illustrated path 1210 may represent a path from the current location or starting point of the robot 100 to a destination according to an example. The path 1210 may include a plurality of nodes and edges connecting the nodes. Each node may indicate a waypoint (or destination) through which the robot 100 should pass through on a route. Nodes may be set according to preset principles.
점유 그리드 맵을 사용하는 경로 계획 기반의 알고리즘인, 점유 그리드 기반의 플래너(occupancy grid based planner)를 사용하여서만 로봇(100)을 제어하는 경우에는, 장애물(30)의 회피가 가능하며 장애물(30)에 대한 회피 범위를 조절하는 것 역시 가능하지만, 이러한 알고리즘은 로봇(100)의 센싱 데이터 또는 측위에 있어서 오차에 취약하므로, 상기 오차의 발생 시 로봇(100)의 목적지로의 이동의 제어가 효과적으로 수행되지 않게 될 수 있다.When the robot 100 is controlled only by using an occupancy grid based planner, which is a path planning based algorithm using an occupancy grid map, avoidance of the obstacle 30 is possible and the obstacle 30 It is also possible to adjust the avoidance range for ), but since this algorithm is vulnerable to errors in sensing data or positioning of the robot 100, when the error occurs, control of the movement of the robot 100 to the destination is effectively may not be performed.
실시예에서는, 제1 알고리즘 및 제2 알고리즘이 컴퓨터 시스템 내에서 병렬로 실행됨으로써, 제1 알고리즘에 기반하여 로봇(100)의 이동이 제어되어 장애물(30)에 대한 회피 성능이 유지되면서도, 제2 알고리즘에 기반하여 장애물(30)에 대한 회피 범위가 제한되어 로봇(100)의 위험한 이동 및 비효율적인 이동이 최소화될 수 있다. In the embodiment, the first algorithm and the second algorithm are executed in parallel in the computer system, so that the movement of the robot 100 is controlled based on the first algorithm, so that the avoidance performance for the obstacle 30 is maintained, while the second algorithm Based on the algorithm, the avoidance range for the obstacle 30 is limited so that dangerous movement and inefficient movement of the robot 100 can be minimized.
즉, 실시예에서는, 제1 알고리즘과 제2 알고리즘을 컴퓨터 시스템에서 병렬로 실행하되, 제2 알고리즘을 보조 플래너로서 사용할 수 있다. 이러한 제2 알고리즘은, 공간(10)에 대해 구축된 맵에 기반한 경로 계획에 따라, 로봇(100)이 소정의 회피 조건(또는 회피 범위)을 충족하면서 장애물(30)을 회피할 수 있을지 여부를 판단하기 위해 사용될 수 있다. That is, in the embodiment, the first algorithm and the second algorithm may be executed in parallel in the computer system, but the second algorithm may be used as an auxiliary planner. This second algorithm determines whether or not the robot 100 can avoid the obstacle 30 while meeting a predetermined avoidance condition (or avoidance range) according to a path plan based on a map built for the space 10. can be used to judge
따라서, 실시예에서는, 로봇(100)이 장애물(30)에 직면한 경우에 있어서, 제2 알고리즘에 기반한 판단에 따라 장애물(30)을 회피하기 위해 로봇(100)이 경로 계획에 따른 경로(global path)로부터 일정 거리 이상 벗어나야 하는 경우에는, 로봇(100)은 해당 장애물(30)을 회피하지 않고 정지하여 대기하도록 제어될 수 있다. 이처럼, 실시예에서는 제1 알고리즘과 제2 알고리즘이 병렬로 실행되어, 제2 알고리즘에 의해 소정의 회피 조건(또는 회피 범위)을 만족하면서 장애물(30)을 회피하게 되는 것이 불가능한 것으로 판정되는 경우에는, 제1 알고리즘에 기반한 명령을 무시하고 로봇(100)을 정지시킬 수 있다. 한편, 로봇(100)은, 장애물(30)이 회피가 가능한 충분히 작은 것이거나 일정 거리를 벗어나지 않고 회피가 가능한 것이면, 제1 알고리즘에 기반하여 장애물(30)을 회피하도록 제어될 수 있다.Therefore, in the embodiment, when the robot 100 faces the obstacle 30, the robot 100 moves along a path according to the path plan (global When it is necessary to deviate more than a certain distance from the path, the robot 100 may be controlled to stop and wait without avoiding the obstacle 30 . As such, in the embodiment, the first algorithm and the second algorithm are executed in parallel, and when it is determined that it is impossible to avoid the obstacle 30 while satisfying a predetermined avoidance condition (or avoidance range) by the second algorithm, , the command based on the first algorithm may be ignored and the robot 100 may be stopped. On the other hand, if the obstacle 30 is small enough to be avoided or can be avoided without departing from a certain distance, the robot 100 may be controlled to avoid the obstacle 30 based on the first algorithm.
제1 알고리즘 및 제2 알고리즘에 기반한 로봇(100)의 제어 방법에 대해서는 후술될 도 6 내지 도 11를 참조하여 더 자세하게 설명한다.The control method of the robot 100 based on the first algorithm and the second algorithm will be described in more detail with reference to FIGS. 6 to 11 to be described later.
이상 도 1 내지 도 4를 참조하여 전술된 기술적 특징에 대한 설명은, 도 5 및 도 12에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.Descriptions of the technical features described above with reference to FIGS. 1 to 4 may be applied to FIGS. 5 and 12 as they are, so duplicate descriptions are omitted.
후술될 상세한 설명에서는, 설명의 편의상 도 5를 참조하여 전술한 프로세서(500)를 포함하는 컴퓨터 시스템에 의해 수행되는 동작으로 로봇의 목적지로의 이동을 제어하는 방법을 설명한다. In the detailed description to be described later, a method of controlling movement of a robot to a destination by an operation performed by a computer system including the above-described processor 500 will be described with reference to FIG. 5 for convenience of description.
도 6은 일 실시예에 따른, 강화 학습 기반의 알고리즘 및 경로 계획 기반의 알고리즘을 사용하여 로봇의 목적지로의 이동을 제어하는 방법을 나타내는 흐름도이다.6 is a flowchart illustrating a method of controlling movement of a robot to a destination using a reinforcement learning-based algorithm and a path planning-based algorithm, according to an embodiment.
단계(610)에서, 컴퓨터 시스템은, 로봇(100)의 이동을 제어하기 위해 강화 학습(Reinforcement Learning)을 통해 미리 학습된 제1 알고리즘에 기반하여, 목적지로의 로봇(100)의 이동을 제어할 수 있다. 즉, 로봇(100)은 강화 학습 기반의 알고리즘에 기반하여, 목적지로의 이동 중에 식별되는 장애물을 회피하면서 이동하도록 제어될 수 있다. In step 610, the computer system controls the movement of the robot 100 to the destination based on a first algorithm learned in advance through reinforcement learning to control the movement of the robot 100. can That is, the robot 100 may be controlled to move while avoiding an obstacle identified while moving to a destination based on a reinforcement learning-based algorithm.
목적지는 서비스를 제공하기 위한 로봇(100)의 최종 목적지 또는 최종 목적지로의 이동을 위해 로봇(100)이 경유하는 경유지일 수 있다. The destination may be the final destination of the robot 100 for providing a service or a waypoint through which the robot 100 passes to move to the final destination.
단계(620)에서, 컴퓨터 시스템은, 로봇(100)의 목적지로의 이동 중에, 공간(10)에 대해 구축된 맵에 기반한 경로 계획에 따라 로봇(100)의 이동을 제어하기 위한 제2 알고리즘에 기반하여, 로봇(100)이 장애물(30)에 대한 소정의 회피 조건을 충족하는지 여부를 판정할 수 있다. In step 620, the computer system sends a second algorithm for controlling the movement of the robot 100 according to the route plan based on the map constructed for the space 10 during the movement of the robot 100 to the destination. Based on this, it may be determined whether the robot 100 satisfies a predetermined avoidance condition for the obstacle 30 .
컴퓨터 시스템에서는, 제1 알고리즘과 제2 알고리즘이 로봇(100)의 이동을 제어하기 위해 병렬로 또는 동시에 실행되므로, 단계(620)에서의 판정은 로봇(100)의 목적지로의 이동 중에 상시적으로 수행될 수 있다. 즉, 단계(620)에서의 판정은 로봇(100)의 이동 중에 실시간으로 이루어질 수 있다. In the computer system, since the first algorithm and the second algorithm are executed in parallel or concurrently to control the movement of the robot 100, the determination in step 620 is always performed during the movement of the robot 100 to the destination. can be performed That is, the determination in step 620 may be made in real time while the robot 100 is moving.
후술될 회피 범위 및 금지 구역 등을 포함하는 회피 조건은 로봇(100) 또는 로봇 제어 시스템(120)의 관리자에 의해 설정될 수 있다. 관리자는 제2 알고리즘에 기반한 경로 계획을 위한 조건으로서 상기 회피 조건을 설정할 수 있다.Avoidance conditions including an avoidance range and a prohibited area, which will be described later, may be set by a manager of the robot 100 or the robot control system 120 . The manager may set the avoidance condition as a condition for route planning based on the second algorithm.
이에 따라, 컴퓨터 시스템은, 로봇(100)의 이동 중에 로봇(100)에 의해 장애물(30)이 식별되거나 장애물(30)에 직면하는 경우에 있어서, 상기 회피 조건의 충족 여부를 판정할 수 있다. Accordingly, the computer system may determine whether the avoidance condition is satisfied when the obstacle 30 is identified by the robot 100 or faced with the obstacle 30 while the robot 100 is moving.
장애물(30)에 대한 회피 조건의 충족 여부를 판정하여 로봇(100)을 제어하는 구체적인 방법에 대해서는 후술될 도 7 내지 도 11을 참조하여 더 자세하게 설명된다. A specific method of controlling the robot 100 by determining whether the avoidance condition for the obstacle 30 is satisfied will be described in more detail with reference to FIGS. 7 to 11 to be described later.
단계(630)에서, 컴퓨터 시스템은, 회피 조건을 충족하지 여부에 따라 로봇(100)을 제어할 수 있다. 예컨대, 컴퓨터 시스템은, 회피 조건이 충족되는 경우에는, 제1 알고리즘에 기반한 제어에 따라 목적지로 이동하도록 로봇(100)의 이동을 제어할 수 있다. 또한, 컴퓨터 시스템은, 회피 조건이 충족되지 않는 경우에는, 로봇(100)의 이동을 정지시키도록 로봇(100)을 제어할 수 있다. 컴퓨터 시스템이 로봇(100)의 이동을 정지시키도록 로봇(100)을 제어하는 것은 로봇(100)이 정지하도록 로봇(100)에 인터럽트를 전달하는 것일 수 있다. In step 630, the computer system may control the robot 100 according to whether the avoidance condition is satisfied. For example, when the avoidance condition is satisfied, the computer system may control the movement of the robot 100 to move to the destination according to the control based on the first algorithm. In addition, the computer system may control the robot 100 to stop the movement of the robot 100 when the avoidance condition is not satisfied. Controlling the robot 100 so that the computer system stops the movement of the robot 100 may be transmitting an interrupt to the robot 100 so that the robot 100 stops.
따라서, 로봇(100)은 제2 알고리즘에 기반하여 제한된 장애물(30)에 대한 회피 조건 또는 회피 범위가 만족되는 경우에만 장애물(30)을 회피하도록 제어될 수 있고, 상기 회피 조건 또는 회피 범위가 만족되지 않는 경우에는 장애물(30)을 회피하지 않고 정지하도록 제어될 수 있다. 컴퓨터 시스템은 장애물(30)이 극복된 후(예컨대, 장애물(30)이 다른 위치로 이동한 후)에 다시 로봇(100)을 목적지로 이동하도록 제어할 수 있다. Therefore, the robot 100 can be controlled to avoid the obstacle 30 only when the avoidance condition or avoidance range for the limited obstacle 30 is satisfied based on the second algorithm, and the avoidance condition or avoidance range is satisfied. If not, it can be controlled to stop without avoiding the obstacle 30. The computer system may control the robot 100 to move to the destination again after the obstacle 30 is overcome (eg, after the obstacle 30 moves to another location).
이상 도 1 내지 도 5 및 도 12를 참조하여 전술된 기술적 특징에 대한 설명은, 도 6에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.Descriptions of the technical features described above with reference to FIGS. 1 to 5 and 12 may be applied to FIG. 6 as they are, and thus duplicate descriptions are omitted.
도 7은 일 예에 따른, 로봇의 목적지로의 이동을 제어함에 있어서, 로봇이 장애물에 대한 소정의 회피 조건을 충족하는지 여부를 판정하는 방법을 나타내는 흐름도이다.7 is a flowchart illustrating a method of determining whether a robot satisfies a predetermined condition for avoiding an obstacle in controlling movement of the robot to a destination according to an example.
단계(710)에서, 컴퓨터 시스템은, 로봇(100)의 목적지로의 이동 중에 장애물(30)이 식별되는 경우, 제2 알고리즘에 따른 경로 계획에 기반하여, 소정의 회피 범위를 벗어나지 않고 장애물(30)을 회피하여 로봇(100)이 목적지로 이동할 수 있는지 여부를 판정할 수 있다. In step 710, the computer system, when the obstacle 30 is identified while the robot 100 moves to the destination, based on the path planning according to the second algorithm, the obstacle 30 without departing from the predetermined avoidance range. ), it is possible to determine whether the robot 100 can move to the destination.
회피 조건은 전술한 회피 조건에 해당하는 것으로서, 로봇(100) 또는 로봇 제어 시스템(120)의 관리자에 의해 설정될 수 있다. 회피 조건은 로봇(100)이 이동하는 거리 및/또는 로봇(100)의 현재 위치로부터의 반경을 포함할 수 있다. The avoidance condition corresponds to the above-mentioned avoidance condition, and may be set by the administrator of the robot 100 or the robot control system 120. The avoidance condition may include a distance the robot 100 moves and/or a radius from the current position of the robot 100 .
로봇(100)이 회피 범위를 벗어나지 않고 장애물(30)을 회피하여 목적지로 이동할 수 있는 것으로 판정된 경우, 로봇(100)은 제1 알고리즘에 기반한 제어에 따라 목적지로 이동하도록 제어될 수 있다. 한편, 로봇(100)이 회피 범위를 벗어나지 않고 장애물(30)을 회피하여 목적지로 이동할 수 없는 경우, 로봇(100)은 장애물(30)을 앞에 두고 정지하도록 제어될 수 있다. When it is determined that the robot 100 can avoid the obstacle 30 and move to the destination without leaving the avoidance range, the robot 100 can be controlled to move to the destination according to the control based on the first algorithm. Meanwhile, when the robot 100 cannot move to a destination by avoiding the obstacle 30 without leaving the avoidance range, the robot 100 may be controlled to stop with the obstacle 30 in front.
예컨대, 컴퓨터 시스템은, 공간(10)에 대해 구축된 맵에 기반하여 생성된 목적지까지의 경로(예컨대, 전역 경로(global path))에 기반한 경로 계획에 따라, 로봇(100)이 장애물(30)을 회피하기 위해 소정의 제1 거리 이상 이동해야 하는 경우(예컨대, 소정의 제1 거리 이상 우회해야 하는 경우), 로봇(100)이 회피 범위를 벗어나지 않고는 장애물(30)을 회피할 수 없는 것으로 판정할 수 있다. 제2 알고리즘에 따른 경로 계획 상 로봇(100)이 장애물(30)을 회피하기 위해 현재 위치로부터 일정 반경 이상을 벗어나야 하거나, 일정 거리 이상을 이동해야 할 경우, 컴퓨터 시스템은 로봇(100)이 회피 범위를 벗어나지 않고는 장애물(30)을 회피할 수 없는 것으로 판정할 수 있다. 이 때, 로봇(100)은 제1 알고리즘에 기반한 제어 명령을 무시하고, 장애물(30)을 회피하지 않고 정지하도록 제어될 수 있다. For example, the computer system may direct the robot 100 to the obstacle 30 according to a path plan based on a path to a destination (eg, a global path) generated based on a map built for the space 10 . If it is necessary to move more than a predetermined first distance to avoid (eg, if it is necessary to detour more than a predetermined first distance), the robot 100 is considered unable to avoid the obstacle 30 without leaving the avoidance range. can judge According to the path planning according to the second algorithm, if the robot 100 needs to deviate more than a certain radius from the current position or move more than a certain distance to avoid the obstacle 30, the computer system determines that the robot 100 moves within the avoidance range. It can be determined that the obstacle 30 cannot be avoided without escaping. At this time, the robot 100 may be controlled to stop without avoiding the obstacle 30 ignoring the control command based on the first algorithm.
관련하여, 도 8은 일 예에 따른, 로봇이 장애물에 대한 소정의 회피 범위를 벗어나는지 여부에 따라 로봇의 목적지로의 이동을 제어하는 방법을 나타낸다. In this regard, FIG. 8 shows a method of controlling movement of a robot to a destination according to whether the robot deviates from a predetermined avoidance range for an obstacle, according to an example.
도시된 예시에서, 로봇(100)은 목적지로 이동함에 있어서 전방의 장애물(800)을 식별할 수 있다. 컴퓨터 시스템(100)은 제2 알고리즘에 따른 경로 계획에 기반하여, 식별된 장애물(30)을 회피하기 위한 우회 경로가 소정의 회피 범위를 벗어나는지 여부를 판정할 수 있다. 예컨대, 컴퓨터 시스템(100)은 우회 경로를 통해 이동할 경우 로봇(100)이 이동해야 하는 추가 거리가 소정의 값 이상이거나, 우회 경로를 통해 이동할 경우 로봇(100)이 현재 위치로부터 일정 반경 이상을 벗어나는 경우, 우회 경로가 소정의 회피 범위를 벗어나는 것으로 판정할 수 있다. 이 때, 로봇(100)은 제1 알고리즘에 기반한 제어 명령을 무시하고, 장애물(30)을 회피하지 않고 정지하도록 제어될 수 있다.In the illustrated example, the robot 100 may identify an obstacle 800 in front while moving to a destination. The computer system 100 may determine whether the detour path for avoiding the identified obstacle 30 is out of a predetermined avoidance range based on the path planning according to the second algorithm. For example, the computer system 100 determines that the additional distance the robot 100 must move when moving through the detour path is equal to or greater than a predetermined value, or when the robot 100 moves through the detour path, the robot 100 deviates from the current position by more than a predetermined radius. In this case, it may be determined that the bypass path is out of a predetermined avoidance range. At this time, the robot 100 may be controlled to stop without avoiding the obstacle 30 ignoring the control command based on the first algorithm.
또는, 컴퓨터 시스템은, 공간(10)에 대해 구축된 맵에 기반한 경로 계획에 따라, 로봇(100)이 장애물(30)을 회피하기 위해, 목적지까지의 경로로서, 장애물(30)을 무시하고 로봇(100)의 현재 위치 또는 출발지로부터 목적지까지를 연결한 경로를 소정의 값 이상 벗어나야 하는 경우, 로봇(100)이 회피 범위를 벗어나지 않고는 장애물(30)을 회피할 수 없는 것으로 판정할 수 있다.Alternatively, the computer system ignores the obstacle 30 as a path to the destination, and the robot 100 avoids the obstacle 30 according to a path plan based on a map built for the space 10. If the path connecting the current location of 100 or the starting point to the destination needs to deviate more than a predetermined value, it can be determined that the robot 100 cannot avoid the obstacle 30 without leaving the avoidance range.
예컨대, 컴퓨터 시스템은, 공간(10)에 대해 구축된 맵에 기반하여 로봇(100)이, 로봇(100)의 현재 위치 또는 출발지로부터 목적지까지의 직선으로부터 소정의 제2 거리 이상 벗어나지 않고 장애물(100)을 회피하여 목적지로 이동할 수 있는지 여부를 판정할 수 있다. 상기 직선은 현재 위치 또는 출발지로부터 목적지까지의 경로(global path)에 해당할 수 있다. 컴퓨터 시스템은, 로봇(100)이 제2 거리 이상 벗어나지 않고 장애물(30)을 회피하여 목적지로 이동할 수 없는 것으로 판정된 경우, 로봇(100)을 장애물(30)을 앞에 두고 정지하도록 제어할 수 있다. For example, the computer system, based on the map built for the space 10, the robot 100, the obstacle 100 without departing more than a predetermined second distance from the current position of the robot 100 or a straight line from the starting point to the destination. ), it can be determined whether or not it is possible to move to the destination. The straight line may correspond to a global path from a current location or a starting point to a destination. The computer system may control the robot 100 to stop with the obstacle 30 in front of it when it is determined that the robot 100 cannot move to the destination by avoiding the obstacle 30 without departing more than the second distance. .
관련하여, 도 10은 일 예에 따른, 로봇이 장애물을 회피하기 위해 목적지까지의 경로에 대해 소정의 회피 범위를 벗어나는지 여부에 따라 로봇의 목적지로의 이동을 제어하는 방법을 나타낸다. In this regard, FIG. 10 illustrates a method of controlling movement of a robot to a destination according to whether the robot deviates from a predetermined avoidance range for a path to the destination in order to avoid an obstacle, according to an example.
도시된 포인트(1010)는 출발지 또는 로봇(100)의 현재 위치일 수 있고, 포인트(1020)는 목적지일 수 있다. 포인트(1010) 및 포인트(1020)를 연결한 직선은 전술한 직선에 해당할 수 있다. 이러한 직선으로부터 수선의 발을 내려 소정의 제2 거리가 정해질 수 있다. 제2 거리는 로봇(100) 또는 로봇 제어 시스템(120)의 관리자에 의해 설정되는 값인 회피 범위로서, 예컨대, 1m일 수 있다. The illustrated point 1010 may be a starting point or the current location of the robot 100, and the point 1020 may be a destination. A straight line connecting the points 1010 and 1020 may correspond to the aforementioned straight line. A predetermined second distance can be determined by lowering the foot of the perpendicular from this straight line. The second distance is an avoidance range that is a value set by the manager of the robot 100 or the robot control system 120, and may be, for example, 1m.
로봇이 상기 직선으로부터의 제2 거리를 벗어나지 않고 장애물(1030)을 회피하면서 목적지(1020)로 이동할 수 있는 것으로 판정되는 경우, 로봇(100)은 제1 알고리즘에 기반하여 목적지로 이동하도록 제어될 수 있고, 그렇지 않은 경우, 로봇(100)은 장애물(1030)을 회피하지 않고 장애물(1030)을 앞에 두고 정지하도록 제어될 수 있다. 한편, 장애물(1030)을 우회하기 위한 우회 경로 1이 존재하더라도, 이러한 우회 경로 1의 이용은 상기 직선으로부터의 제2 거리를 벗어나는 것이므로 고려되지 않을 수 있다. When it is determined that the robot can move to the destination 1020 while avoiding the obstacle 1030 without leaving the second distance from the straight line, the robot 100 can 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 . Meanwhile, even if there is a bypass path 1 for bypassing the obstacle 1030, the use of the bypass path 1 may not be considered because it deviates from the second distance from the straight line.
도시된 실시예에서 회피 범위 내에 있어서 제1 알고리즘에 기반한 제어에 따라 회피가 가능하게 되는 장애물(1030)은, 로봇(100)이 제1 알고리즘에 기반한 제어를 통해 쉽게 회피가 가능한 충분히 작은 장애물로 간주될 수 있다. In the illustrated embodiment, the obstacle 1030 within the avoidance range and capable of being avoided according to the control based on the first algorithm is regarded as a small enough obstacle that the robot 100 can easily avoid through the control based on the first algorithm. It can be.
단계(720)에서, 컴퓨터 시스템은, 로봇(100)의 목적지로의 이동 중에 장애물(30)이 식별되는 경우, 제2 알고리즘에 따른 경로 계획에 기반하여, 소정의 금지 구역에 진입하지 않고 장애물(30)을 회피하여 로봇(100)이 목적지로 이동할 수 있는지 여부를 판정할 수 있다. 금지 구역은 로봇(100) 또는 로봇 제어 시스템(120)의 관리자에 의해 설정되는 것으로서, 로봇(100)의 진입이 허용되지 않는 공간(10) 내의 영역일 수 있다. In step 720, the computer system, when the obstacle 30 is identified while the robot 100 is moving to the destination, based on the path planning according to the second algorithm, the obstacle ( 30), it is possible to determine whether the robot 100 can move to the destination. The prohibited area is set by the manager of the robot 100 or the robot control system 120, and may be an area within the space 10 in which the robot 100 is not allowed to enter.
컴퓨터 시스템은, 로봇(100)이 금지 구역에 진입하지 않고 장애물(30)을 회피하여 목적지로 이동할 수 있는 경우, 로봇(100)을 제1 알고리즘에 기반하여 목적지로 이동하도록 제어할 수 있다. 컴퓨터 시스템은, 로봇(100)이 금지 구역에 진입하지 않고는 장애물(30)을 회피하여 목적지로 이동할 수 없는 경우, 또는, 금지 구역에 진입하지 않기 위해서는 소정의 거리 이상을 우회해야 하는 경우에는 로봇(100)은 장애물(30)을 앞에 두고 정지하도록 제어될 수 있다.The computer system may control the robot 100 to move to the destination based on the first algorithm when the robot 100 can move to the destination by avoiding the obstacle 30 without entering the forbidden area. The computer system, 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 bypass a predetermined distance or more in order not to enter the prohibited area, the robot (100) can be controlled to stop with an obstacle (30) in front.
관련하여, 도 9는 일 예에 따른, 로봇이 장애물을 회피하기 위해 소정의 금지 구역에 진입해야 하는지 여부에 따라 로봇의 목적지로의 이동을 제어하는 방법을 나타낸다. In this regard, FIG. 9 illustrates a method of controlling movement of a robot to a destination according to whether the robot needs to enter a predetermined prohibited area in order to avoid an obstacle, according to an example.
금지 구역(900)은 로봇(100) 또는 로봇 제어 시스템(120)의 관리자에 의해 설정되는 것으로서, 예컨대, 화장실, 로봇(100)의 비업무 공간, 기타 제한 구역일 수 있다. 금지 구역(900)은 공간(10)에 대해 생성되는 맵 상에서 식별될 수 있다. 따라서, 제2 알고리즘에 따른 경로 계획을 통해, 로봇(100)이 장애물(800)을 회피하기 위해 금지 구역(900)에 진입해야 하는지 여부가 판정될 수 있다. 도시된 것처럼, 로봇(100)이 금지 구역(900)에 진입하지 않고는 장애물(800)을 회피하여 목적지로 이동할 수 없는 경우에는 로봇(100)은 장애물(800)을 앞에 두고 정지하도록 제어될 수 있다.The prohibited area 900 is set by the manager of the robot 100 or the robot control system 120, and may be, for example, a bathroom, a non-working space of the robot 100, or other restricted areas. A forbidden zone 900 can be identified on a map created for space 10 . Therefore, through route planning according to the second algorithm, it can be determined whether or not the robot 100 must enter the forbidden zone 900 to avoid the obstacle 800 . As shown, when the robot 100 cannot move to a destination by avoiding the obstacle 800 without entering the forbidden zone 900, the robot 100 can be controlled to stop with the obstacle 800 in front. there is.
단계(730)에서, 컴퓨터 시스템은, 로봇(100)의 목적지로의 이동 중에 장애물(30)이 식별되는 경우, 제2 알고리즘에 따른 경로 계획에 기반하여, 로봇(100)이 후진하지 않고 장애물(30)을 회피하여 목적지로 이동할 수 있는지 여부를 판정할 수 있다. 로봇(100)이 장애물(30)을 회피하기 위해 후진해야 하는 것으로 판정되면, 컴퓨터 시스템은 로봇(100)을 장애물(30)을 앞에 두고 정지하도록 제어할 수 있다. 이처럼, 실시예에서는, 장애물(30)을 회피하기 위한 우회 경로가 로봇(100)의 후진을 요구하는 경우 이러한 우회 경로는 로봇(100)의 이동 제어에 있어서 고려되지 않도록 할 수 있다. In step 730, the computer system, when the obstacle 30 is identified while the robot 100 is moving to the destination, based on the path planning according to the second algorithm, the robot 100 does not move backward and the obstacle ( 30), it can be determined whether or not it is possible to move to the destination. If it is determined that the robot 100 needs to move backward to avoid the obstacle 30, the computer system may control the robot 100 to stop with the obstacle 30 in front. As such, in the embodiment, when the detour path for avoiding the obstacle 30 requires the robot 100 to move backward, the detour path may not be considered in the movement control of the robot 100.
이상 도 1 내지 도 6 및 도 12를 참조하여 전술된 기술적 특징에 대한 설명은, 도 7 내지 도 10에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.Descriptions of the technical features described above with reference to FIGS. 1 to 6 and 12 may be applied to FIGS. 7 to 10 as they are, so duplicate descriptions are omitted.
도 11은 일 예에 따른, 로봇의 줄서기가 요구되는 영역에서의 로봇의 이동을 제어하는 방법을 나타낸다. 11 illustrates a method of controlling movement of robots in an area in which line-up of robots is required, according to an example.
전술한 것처럼, 로봇(100)이 다른 통로로 우회하지 않고 회피할 수 있을 만큼 장애물(1120)의 크기가 작은 경우에는, 로봇(100)은 장애물(1120)제1 알고리즘에 기반한 제어에 따라 장애물(1120)을 다른 통로로 우회하거나 장애물(1120)을 앞에 두고 정지하거나 하지 않고, 장애물(1120)을 회피하여 목적지로 이동하도록 제어될 수 있다.As described above, when the size of the obstacle 1120 is small enough for the robot 100 to avoid without detouring to another passage, the robot 100 controls the obstacle 1120 according to the first algorithm-based obstacle ( 1120 may be controlled to avoid the obstacle 1120 and move to the destination without detouring to another passage or stopping in front of the obstacle 1120.
예컨대, 전술한 도 10을 참조하여 설명한 것과 같은 방법에 따라, 제1 알고리즘에 기반한 제어를 통해 회피될 수 있는 장애물(1120)은 충분히 작은 장애물(1120)인 것으로 판정될 수 있다. 이에 따라, 제2 알고리즘에 기반한 판정에 따라, 충분히 작은 장애물(1120)은 제1 알고리즘에 기반한 제어에 따라 회피되고, 그렇지 않은 장애물은 로봇(100)의 제어가 인터럽트되어 회피되지 않을 수 있다. For example, according to the method described with reference to FIG. 10 described above, it may be determined that the obstacle 1120 that can be avoided through the control based on the first algorithm is a sufficiently small obstacle 1120 . Accordingly, according to the determination based on the second algorithm, sufficiently small obstacles 1120 are avoided according to the control based on the first algorithm, and other obstacles may not be avoided because the control of the robot 100 is interrupted.
또는, 장애물(1120)이 충분히 작은지 여부는 로봇(100)의 센서부(106)에 의한 센싱에 따라 컴퓨터 시스템에 의해 결정될 수도 있다. Alternatively, whether the obstacle 1120 is sufficiently small may be determined by a computer system according to sensing by the sensor unit 106 of the robot 100 .
도시된 통로(1110)는 공간(10) 내의 로봇(100)의 줄서기가 요구되는 영역일 수 있다. 또는, 통로(1110)는 협소 구역(confined/narrow area)으로서, 예컨대, 둘 이상의 로봇들이 나란히(횡방향으로) 주행할 수 없는 폭을 갖는 영일 수 있다. 일례로, 통로(1110)는 복수의 로봇들의 각각이 순차적으로 일렬로 통과할 것이 요구되는 공간(10) 내의 구간일 수 있다. The illustrated passage 1110 may be an area in which line-up of the robots 100 within the space 10 is required. Alternatively, the passage 1110 may be a confined/narrow area, eg, zero with a width in which two or more robots cannot run side by side (laterally). As an example, the passage 1110 may be a section within the space 10 through which each of a plurality of robots is required to sequentially pass through in a line.
예컨대, 통로(1110)는 택배 전달 서비스를 제공하는 로봇(100)이 택배를 픽업하기 위한 위치로 이동하기 위해 줄을 서는 영역일 수 있다.For example, the aisle 1110 may be an area where a robot 100 providing a package delivery service lines up to move to a location for picking up a package.
컴퓨터 시스템(100)은, 도 6을 참조하여 전술한 단계(620)에서의 판정의 결과에 따라, 통로(110) 내에서, 로봇(100)이 다른 통로로 우회하지 않고 회피할 수 있을 만큼 작은 장애물(1120)에 대해서는 제1 알고리즘에 기반한 제어에 따라, 다른 통로로 우회하지 않고 장애물(1120)을 회피하여 목적지로 이동하도록 제어될 수 있다. The computer system 100, according to the result of the determination in step 620 described above with reference to FIG. 6, within the passage 110, is small enough that the robot 100 can avoid it without detouring to another passage. The obstacle 1120 may be controlled to move to a destination by avoiding the obstacle 1120 without detouring to another passage according to the control based on the first algorithm.
이 때, 컴퓨터 시스템(100)은 통로(1110) 내에서, 로봇(100)의 전방에 다른 로봇이 식별되는 때, 로봇(100)은 다른 로봇을 앞지르지 않고, 다른 로봇의 뒤에서 대기하도록 제어될 수 있다. 말하자면, 컴퓨터 시스템(100)은 통로(1110) 내에서 장애물(30)로서 다른 로봇이 식별되는 경우, 이러한 다른 로봇은 충분히 작은 장애물(1120)에는 해당하지 않는 것으로 판단할 수 있고, 따라서, 로봇(100)은 다른 로봇의 뒤에서, 즉, 다른 로봇을 앞에 두고 대기하도록 제어될 수 있다. 따라서, 통로(1110) 내에서, 로봇들은 새치기를 하거나 다른 로봇을 가로질러 무리하게 목적지를 향해 이동하지 않고 줄서기 할 수 있고, 각 로봇이 순차적으로 목적지로 이동하게 될 수 있다. At this time, the computer system 100 can be controlled so that when another robot is identified in front of the robot 100 in the aisle 1110, the robot 100 does not pass the other robot and waits behind the other robot. there is. In other words, if another robot is identified as an obstacle 30 in the passage 1110, the computer system 100 may determine that this other robot does not correspond to the obstacle 1120 that is sufficiently small, and thus the robot ( 100) can be controlled to wait behind another robot, that is, in front of another robot. Thus, within the aisle 1110, the robots can line up without cutting in line or crossing other robots and forcibly moving towards the destination, and each robot can move to the destination sequentially.
실시예는, 통로(1110)에 진입하는 로봇(100)을 궤적 추종(trajectory following) 알고리즘에 기반하여 제어하는 경우에 비해, 통로(1110)에서의 우수한 로봇(100)의 줄서기 성능을 달성할 수 있다. 궤적 추종 알고리즘에 따라 로봇(100)이 제어되는 경우, 로봇(100)은 장애물이 식별되면 정지되는 바, 회피가 가능한 작은 장애물(1120)이 식별되는 경우에도 정지하게 되는 문제가 발생할 수 있다. 또한, 로봇(100)에 대한 측위 오차가 발생하여, 로봇(1110)이 통로(1110)에 인접하게 되는 경우, 로봇(100)이 더 이상 움직일 수 없게 되는 문제가 발생할 수 있다. The embodiment achieves excellent queuing performance of the robot 100 in the aisle 1110, compared to the case where the robot 100 entering the aisle 1110 is controlled based on a trajectory following algorithm. can When the robot 100 is controlled according to the trajectory following algorithm, the robot 100 is stopped when an obstacle is identified, and thus, a problem in that the robot 100 stops even when a small obstacle 1120 that can be avoided is identified may occur. In addition, when a positioning error of the robot 100 occurs and the robot 1110 comes close to the passage 1110, a problem in that the robot 100 can no longer move may occur.
이에 비해, 실시예에서는, 컴퓨터 시스템(100)은 식별되는 장애물(30)에 대해 제2 알고리즘에 기반한 판정에 따라, 작은 장애물(1120)은 제1 알고리즘에 기반한 제어에 따라 회피하되, 그렇지 않은 장애물(예컨대, 다른 로봇)은 회피하지 않고, 장애물을 앞에 두고 정지하도록 로봇(100)을 제어할 수 있다.In contrast, in the embodiment, the computer system 100 avoids the identified obstacle 30 according to the determination based on the second algorithm, and the small obstacle 1120 according to the control based on the first algorithm, but avoids other obstacles. (eg, another robot) can control the robot 100 to stop in front of an obstacle without avoiding it.
이상 도 1 내지 도 10 및 도 12를 참조하여 전술된 기술적 특징에 대한 설명은, 도 11에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.Since the description of the technical features described above with reference to FIGS. 1 to 10 and 12 may be applied to FIG. 11 as it is, duplicate descriptions will be omitted.
이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 소프트웨어 구성요소 또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The system or device described above may be implemented as a hardware component, a software component, or a combination of hardware components and software components. For example, devices and components described in the embodiments may include, 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), microprocessor, or any other device capable of executing and responding to instructions. The processing device may run an operating system (OS) and one or more software applications running on the operating system. A processing device may also access, store, manipulate, process, and generate data in response to execution of software. For convenience of understanding, there are cases in which one processing device is used, but those skilled in the art will understand that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it can include. For example, a processing device may include a plurality of processors or a processor and a controller. Other processing configurations are also possible, such as parallel processors.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of the foregoing, which configures a processing device to operate as desired or processes independently or collectively. You can command the device. Software and/or data may be any tangible machine, component, physical device, virtual equipment, computer storage medium or device, intended to be interpreted by or provide instructions or data to a processing device. may be permanently or temporarily embodied in Software may be distributed on networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer readable media.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program commands recorded on the medium may be specially designed and configured for the embodiment or may be known and usable to those skilled in 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, and magnetic media such as floptical disks. - includes hardware devices specially configured to store and execute program instructions, such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include high-level language codes that can be executed by a computer using an interpreter, as well as machine language codes such as those produced by a compiler.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with limited examples and drawings, those skilled in the art can make various modifications and variations from the above description. For example, the described techniques may be performed in an order different from the method described, and/or components of the described system, structure, device, circuit, etc. may be combined or combined in a different form than the method described, or other components may be used. Or even if it is replaced or substituted by equivalents, appropriate results can be achieved.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents of the claims are within the scope of the following claims.
Claims (16)
- 공간 내에서 이동하는 로봇 또는 로봇을 제어하는 로봇 제어 시스템에 의해 수행되는 로봇 제어 방법에 있어서, In the robot control method performed by a robot moving in space or a robot control system for controlling the robot,상기 로봇의 이동을 제어하기 위해 강화 학습(Reinforcement Learning)을 통해 미리 학습된 제1 알고리즘에 기반하여, 목적지로의 상기 로봇의 이동을 제어하는 단계;Controlling the movement of the robot to a destination based on a first algorithm learned in advance through reinforcement learning to control the movement of the robot;상기 로봇의 상기 목적지로의 이동 중에, 상기 공간에 대해 구축된 맵에 기반한 경로 계획에 따라 상기 로봇의 이동을 제어하기 위한 제2 알고리즘에 기반하여, 상기 로봇이 장애물에 대한 소정의 회피 조건을 충족하는지 여부를 판정하는 단계; 및During the movement of the robot to the destination, 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 route plan based on a map built for the space. determining whether or not; and상기 회피 조건을 충족하는 경우에는, 상기 제1 알고리즘에 기반한 제어에 따라 상기 목적지로 이동하도록 상기 로봇의 이동을 제어하되, 상기 회피 조건이 충족되지 않는 경우에는, 상기 로봇의 이동을 정지시키도록 상기 로봇을 제어하는 단계When the avoidance condition is satisfied, the movement of the robot is controlled to move to the destination according to the control based on the first algorithm, but when the avoidance condition is not satisfied, the movement of the robot is stopped. steps to control the robot를 포함하는, 로봇 제어 방법.Including, robot control method.
- 제1항에 있어서, According to claim 1,상기 제1 알고리즘과 상기 제2 알고리즘은 상기 로봇 또는 상기 로봇 제어 시스템에서 상기 로봇의 이동을 제어하기 위해 병렬로 실행되는, 로봇 제어 방법.The first algorithm and the second algorithm are executed in parallel to control the movement of the robot in the robot or the robot control system, the robot control method.
- 제1항에 있어서,According to claim 1,상기 로봇은 상기 공간 내에서 서비스를 제공하는 서비스 로봇이고, The robot is a service robot providing service in the space,상기 목적지는 상기 서비스를 제공하기 위한 상기 로봇의 최종 목적지 또는 상기 최종 목적지로의 이동을 위해 상기 로봇이 경유하는 경유지인, 로봇 제어 방법. The destination is a final destination of the robot for providing the service or a waypoint through which the robot moves to the final destination, the robot control method.
- 제1항에 있어서,According to claim 1,상기 제1 알고리즘은, The first algorithm,상기 로봇이 이동 중에 장애물을 회피하면서 상기 목적지로 이동 가능하도록 상기 로봇을 제어하도록 구성되고, It is configured to control the robot so that the robot can move to the destination while avoiding obstacles while moving,상기 제2 알고리즘은, The second algorithm,상기 공간에 대해 구축된 맵에 기반하여 생성된 상기 목적지까지의 경로에 기반한 상기 경로 계획에 따라 상기 로봇의 이동을 제어하도록 구성되는, 로봇 제어 방법.And configured to control the movement of the robot according to the route plan based on the route to the destination generated based on the map built for the space, the robot control method.
- 제1항에 있어서,According to claim 1,상기 공간에 대해 구축된 맵은 상기 공간에 대한 점유 그리드 맵(occupancy grid map)인, 로봇 제어 방법.The map built for the space is an occupancy grid map for the space, robot control method.
- 제1항에 있어서,According to claim 1,상기 판정하는 단계는, The determining step is상기 로봇의 상기 목적지로의 이동 중에 식별되는 장애물에 대해, 상기 경로 계획에 기반하여, 소정의 회피 범위를 벗어나지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 있는지 여부를 판정하는 단계Determining whether the robot can move to the destination by avoiding the obstacle without departing from a predetermined avoidance range, based on the path plan, for an obstacle identified during movement of the robot to the destination.를 포함하고, including,상기 로봇이 상기 회피 범위를 벗어나지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 있는 경우, 상기 로봇은 상기 제1 알고리즘에 기반한 제어에 따라 상기 목적지로 이동하도록 제어되고,When the robot can move to the destination by avoiding the obstacle without leaving the avoidance range, the robot is controlled to move to the destination according to control based on the first algorithm,상기 로봇이 상기 회피 범위를 벗어나지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 없는 경우, 상기 로봇은 상기 장애물을 앞에 두고 정지하도록 제어되는, 로봇 제어 방법. If the robot cannot move to the destination by avoiding the obstacle without leaving the avoidance range, the robot is controlled to stop with the obstacle in front.
- 제6항에 있어서,According to claim 6,상기 판정하는 단계는,The determining step is상기 공간에 대해 구축된 맵에 기반하여 생성된 상기 목적지까지의 경로에 기반한 상기 경로 계획에 따라 상기 로봇이 상기 장애물을 회피하기 위해 소정의 제1 거리 이상 이동해야 하는 경우, 상기 로봇이 상기 회피 범위를 벗어나지 않고는 상기 장애물을 회피할 수 없는 것으로 판정하는, 로봇 제어 방법.When the robot needs to move more than a predetermined first distance to avoid the obstacle according to the path plan based on the path to the destination generated based on the map built for the space, the robot moves within the avoidance range. It is determined that the obstacle cannot be avoided without leaving the robot control method.
- 제6항에 있어서,According to claim 6,상기 판정하는 단계는,The determining step is상기 공간에 대해 구축된 맵에 기반하여, 상기 로봇이, 상기 로봇의 현재 위치 또는 출발지로부터 상기 목적지까지의 직선으로부터 소정의 제2 거리 이상 벗어나지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 있는지 여부를 판정하고, Based on the map built for the space, it is determined whether the robot can avoid the obstacle and move to the destination without departing more than a predetermined second distance from the robot's current position or a straight line from the starting point to the destination. judge,상기 로봇이 상기 제2 거리 이상 벗어나지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 없는 경우, 상기 로봇은 상기 장애물을 앞에 두고 정지하도록 제어되는, 로봇 제어 방법. If the robot cannot move to the destination by avoiding the obstacle without departing more than the second distance, the robot is controlled to stop with the obstacle in front.
- 제6항에 있어서,According to claim 6,상기 로봇이 다른 통로로 우회하지 않고 회피할 수 있을 만큼 상기 장애물의 크기가 작은 경우, 상기 로봇은 상기 제1 알고리즘에 기반한 제어에 따라 상기 장애물을 다른 통로로 우회하거나 상기 장애물을 앞에 두고 정지하지 않고 상기 장애물을 회피하여 상기 목적지로 이동하도록 제어되는, 로봇 제어 방법. When the size of the obstacle is small enough for the robot to avoid it without detouring to another passage, the robot bypasses the obstacle to another passage according to the control based on the first algorithm or does not stop in front of the obstacle. Controlled to move to the destination by avoiding the obstacle, the robot control method.
- 제1항에 있어서,According to claim 1,상기 판정하는 단계는, The determining step is상기 로봇의 상기 목적지로의 이동 중에 식별되는 장애물에 대해, 상기 경로 계획에 기반하여, 소정의 금지 구역에 진입하지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 있는지 여부를 판정하는 단계Determining whether the robot can move to the destination by avoiding the obstacle without entering a predetermined prohibited area, based on the path plan, for an obstacle identified during movement of the robot to the destination.를 포함하고, including,상기 로봇이 상기 금지 구역에 진입하지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 있는 경우, 상기 로봇은 상기 제1 알고리즘에 기반한 제어에 따라 상기 목적지로 이동하도록 제어되고,When the robot can move to the destination by avoiding the obstacle without entering the forbidden area, the robot is controlled to move to the destination according to control based on the first algorithm,상기 로봇이 상기 금지 구역에 진입하지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 없는 경우, 상기 로봇은 상기 장애물을 앞에 두고 정지하도록 제어되는, 로봇 제어 방법. When the robot cannot move to the destination by avoiding the obstacle without entering the prohibited area, the robot is controlled to stop with the obstacle in front.
- 제1항에 있어서,According to claim 1,상기 판정하는 단계는, The determining step is상기 로봇의 상기 목적지로의 이동 중에 식별되는 장애물에 대해, 상기 경로 계획에 기반하여, 상기 로봇이 후진하지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 있는지 여부를 판정하는 단계Determining whether or not the robot can move to the destination by avoiding the obstacle without moving backward, based on the path plan, with respect to an obstacle identified while the robot moves to the destination.를 포함하고, including,상기 로봇이 상기 장애물을 회피하기 위해 후진해야 하는 것으로 판정되면, 상기 로봇은 상기 장애물을 앞에 두고 정지하도록 제어되는, 로봇 제어 방법. If it is determined that the robot must move backward to avoid the obstacle, the robot is controlled to stop with the obstacle in front.
- 제1항에 있어서,According to claim 1,상기 판정의 결과에 따라, According to the result of the above determination,상기 로봇이 상기 목적지로 이동하기 위한 통로 내에서, 상기 로봇은, 다른 통로로 우회하지 않고 회피할 수 있을 만큼 작은 장애물에 대해서는 상기 제1 알고리즘에 기반한 제어에 따라, 다른 통로로 우회하지 않고 상기 장애물을 회피하여 상기 목적지로 이동하도록 제어되고, Within the path for the robot to move to the destination, the robot does not detour to another path and, according to the control based on the first algorithm, for an obstacle that is small enough to be avoided without detouring to another path, the obstacle It is controlled to move to the destination by avoiding,상기 통로 내에서, 상기 로봇의 전방에 상기 장애물로서 다른 로봇이 식별되는 경우, 상기 로봇은 상기 다른 로봇을 앞지르지 않고, 상기 다른 로봇의 뒤에서 대기하도록 제어되는, 로봇 제어 방법.In the passage, when another robot is identified as the obstacle in front of the robot, the robot is controlled to wait behind the other robot without overtaking the other robot.
- 제12항에 있어서,According to claim 12,상기 통로는 상기 공간 내의 상기 로봇의 줄서기가 요구되는 영역 또는 둘 이상의 로봇들이 나란히 주행할 수 없는 폭을 갖는 영역인, 로봇 제어 방법.The passage is an area in which line-up of the robots is required in the space or an area having a width in which two or more robots cannot run side by side, the robot control method.
- 제1항의 방법을 컴퓨터 시스템인 상기 로봇 또는 상기 로봇 제어 시스템에서 실행시키기 위한 프로그램이 기록되어 있는 비-일시적인 컴퓨터 판독 가능한 기록 매체.A non-transitory computer-readable recording medium in which a program for executing the method of claim 1 in the robot or the robot control system, which is a computer system, is recorded.
- 공간 내에서 이동하는 로봇을 위한 컴퓨터 시스템에 있어서,In a computer system for a robot moving in space,컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서at least one processor implemented to execute computer readable instructions를 포함하고,including,상기 적어도 하나의 프로세서는,The at least one processor,상기 로봇의 이동을 제어하기 위해 강화 학습(Reinforcement Learning)을 통해 미리 학습된 제1 알고리즘에 기반하여, 목적지로의 상기 로봇의 이동을 제어하고, 상기 로봇의 상기 목적지로의 이동 중에, 상기 공간에 대해 구축된 맵에 기반한 경로 계획에 따라 상기 로봇의 이동을 제어하기 위한 제2 알고리즘에 기반하여, 상기 로봇이 장애물에 대한 소정의 회피 조건을 충족하는지 여부를 판정하고, 상기 회피 조건을 충족하는 경우에는, 상기 제1 알고리즘에 기반한 제어에 따라 상기 목적지로 이동하도록 상기 로봇의 이동을 제어하되, 상기 회피 조건이 충족되지 않는 경우에는, 상기 로봇의 이동을 정지시키도록 상기 로봇을 제어하는, 컴퓨터 시스템. Based on a first algorithm learned in advance through reinforcement learning to control the movement of the robot, the movement of the robot to the destination is controlled, and during the movement of the robot to the destination, the space Based on a second algorithm for controlling the movement of the robot according to a path plan based on a map built for the obstacle, it is determined whether the robot satisfies a predetermined avoidance condition for an obstacle, and if the avoidance condition is satisfied. , a computer system that controls the movement of the robot to move to the destination according to the control based on the first algorithm, but controls the robot to stop the movement of the robot when the avoidance condition is not met. .
- 건물에 있어서, in the building,상기 건물 내의 공간을 이동하는 적어도 하나의 로봇At least one robot moving through space within the building이 배치되고, is placed,컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서at least one processor implemented to execute computer readable instructions를 포함하고,including,상기 로봇은, 상기 로봇 내에 포함되거나 서버인 컴퓨터 시스템에 의해, 상기 건물 내에서의 이동이 제어되고, The movement of the robot in the building is controlled by a computer system included in the robot or a server,상기 컴퓨터 시스템은. the computer system.컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서at least one processor implemented to execute computer readable instructions를 포함하고,including,상기 적어도 하나의 프로세서는,The at least one processor,상기 로봇의 이동을 제어하기 위해 강화 학습(Reinforcement Learning)을 통해 미리 학습된 제1 알고리즘에 기반하여, 목적지로의 상기 로봇의 이동을 제어하고, 상기 로봇의 상기 목적지로의 이동 중에, 상기 공간에 대해 구축된 맵에 기반한 경로 계획에 따라 상기 로봇의 이동을 제어하기 위한 제2 알고리즘에 기반하여, 상기 로봇이 장애물에 대한 소정의 회피 조건을 충족하는지 여부를 판정하고, 상기 회피 조건을 충족하는 경우에는, 상기 제1 알고리즘에 기반한 제어에 따라 상기 목적지로 이동하도록 상기 로봇의 이동을 제어하되, 상기 회피 조건이 충족되지 않는 경우에는, 상기 로봇의 이동을 정지시키도록 상기 로봇을 제어하는, 건물.Based on a first algorithm learned in advance through reinforcement learning to control the movement of the robot, the movement of the robot to the destination is controlled, and during the movement of the robot to the destination, the space Based on a second algorithm for controlling the movement of the robot according to a path plan based on a map built for the obstacle, it is determined whether the robot satisfies a predetermined avoidance condition for an obstacle, and if the avoidance condition is satisfied. , controlling the movement of the robot to move to the destination according to the control based on the first algorithm, but controlling the robot to stop moving when the avoidance condition is not satisfied.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2021-0185225 | 2021-12-22 | ||
KR1020210185225A KR20230095588A (en) | 2021-12-22 | 2021-12-22 | Method and system for controlling robot using reinforcement learning based algorithm and path planning based algorithm, and building in which the robot is disposed |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023120867A1 true WO2023120867A1 (en) | 2023-06-29 |
Family
ID=86902778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2022/013359 WO2023120867A1 (en) | 2021-12-22 | 2022-09-06 | Method and system for controlling robot by using reinforcement learning-based algorithm and path planning-based algorithm, and building having robot arranged therein |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20230095588A (en) |
WO (1) | WO2023120867A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102665831B1 (en) * | 2023-10-19 | 2024-05-13 | (주)로보라이프 | Method of moving in person-following mode and robots that implement it |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210000013A1 (en) * | 2016-11-08 | 2021-01-07 | Dogtooth Technologies Limited | Robotic fruit picking system |
KR20210047431A (en) * | 2019-10-21 | 2021-04-30 | 엘지전자 주식회사 | An artificial intelligence apparatus for sharing information of stuck area and method thereof |
KR20210047434A (en) * | 2019-10-21 | 2021-04-30 | 엘지전자 주식회사 | Robot cleaner and operating method thereof |
KR102250541B1 (en) * | 2020-01-16 | 2021-05-11 | 광주과학기술원 | Mobile robot for overcoming obstacle |
US20210325894A1 (en) * | 2018-09-14 | 2021-10-21 | Google Llc | Deep reinforcement learning-based techniques for end to end robot navigation |
-
2021
- 2021-12-22 KR KR1020210185225A patent/KR20230095588A/en not_active Application Discontinuation
-
2022
- 2022-09-06 WO PCT/KR2022/013359 patent/WO2023120867A1/en unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210000013A1 (en) * | 2016-11-08 | 2021-01-07 | Dogtooth Technologies Limited | Robotic fruit picking system |
US20210325894A1 (en) * | 2018-09-14 | 2021-10-21 | Google Llc | Deep reinforcement learning-based techniques for end to end robot navigation |
KR20210047431A (en) * | 2019-10-21 | 2021-04-30 | 엘지전자 주식회사 | An artificial intelligence apparatus for sharing information of stuck area and method thereof |
KR20210047434A (en) * | 2019-10-21 | 2021-04-30 | 엘지전자 주식회사 | Robot cleaner and operating method thereof |
KR102250541B1 (en) * | 2020-01-16 | 2021-05-11 | 광주과학기술원 | Mobile robot for overcoming obstacle |
Also Published As
Publication number | Publication date |
---|---|
KR20230095588A (en) | 2023-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019235743A1 (en) | Robot for traveling via waypoint on basis of obstacle avoidance and method for traveling | |
WO2019135437A1 (en) | Guide robot and operation method thereof | |
WO2019149215A1 (en) | Intelligent robot control method, device, system, and storage medium | |
WO2014133246A1 (en) | Mini integrated control device | |
WO2022234923A1 (en) | Communication-based robot control method and system, and building in which robot is positioned | |
WO2021080235A1 (en) | Method and system for controlling robot by using dedicated road set for driving of robot | |
WO2020032412A1 (en) | Moving robot and following setting method thereof | |
WO2021091111A1 (en) | Elevator system for transporting robot, elevator system control method, and elevator control system | |
WO2023120867A1 (en) | Method and system for controlling robot by using reinforcement learning-based algorithm and path planning-based algorithm, and building having robot arranged therein | |
KR102337531B1 (en) | Method and system for specifying node for robot path plannig | |
WO2018070663A1 (en) | Airport robot and operation method thereof | |
WO2019045293A1 (en) | Method for generating target-oriented local path and robot for implementing same | |
WO2018043957A1 (en) | Robot cleaner | |
WO2018066837A1 (en) | Airport robot and system including same | |
WO2020046038A1 (en) | Robot and control method therefor | |
WO2020231080A1 (en) | Method for generating intersection point pattern recognition model using sensor data of mobile robot and intersection point pattern recognition system | |
WO2018117513A1 (en) | Airport robot and movement method therefor | |
WO2022154153A1 (en) | Robot and control method therefor | |
WO2022234925A1 (en) | Method and system for controlling plurality of robots traveling through designated region, and building in which robots are disposed | |
WO2020116986A1 (en) | Autonomously traveling mobile robot and traveling control method therefor | |
WO2020197126A1 (en) | Method for estimating positioning of moving object by using big cell grid map, recording medium in which program for implementing same is stored, and computer program stored in medium in order to implement same | |
WO2020197146A1 (en) | Entrance management system and operation method thereof | |
WO2023204466A1 (en) | Method and device for predicting potential accident of agricultural machine that performs autonomous driving and operates pto, and controlling operation to avoid potential accident, in communication system | |
WO2023096151A1 (en) | Robot and controlling method thereof | |
WO2022234924A1 (en) | Method and system for controlling robot comprising plurality of modular robots, and building in which robot is disposed |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22911506 Country of ref document: EP Kind code of ref document: A1 |