JP7769126B2 - Method and system for controlling robots using reinforcement learning-based algorithms and path planning-based algorithms, and buildings equipped with robots - Google Patents
Method and system for controlling robots using reinforcement learning-based algorithms and path planning-based algorithms, and buildings equipped with robotsInfo
- Publication number
- JP7769126B2 JP7769126B2 JP2024538143A JP2024538143A JP7769126B2 JP 7769126 B2 JP7769126 B2 JP 7769126B2 JP 2024538143 A JP2024538143 A JP 2024538143A JP 2024538143 A JP2024538143 A JP 2024538143A JP 7769126 B2 JP7769126 B2 JP 7769126B2
- Authority
- JP
- Japan
- Prior art keywords
- robot
- destination
- obstacle
- algorithm
- movement
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- 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/60—Intended control result
- G05D1/617—Safety or protection, e.g. defining protection zones around obstacles or avoiding hazards
- G05D1/622—Obstacle avoidance
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Program-controlled manipulators
- B25J9/16—Program controls
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Program-controlled manipulators
- B25J9/16—Program controls
- B25J9/1602—Program 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—Program-controlled manipulators
- B25J9/16—Program controls
- B25J9/1628—Program controls characterised by the control loop
- B25J9/163—Program 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—Program-controlled manipulators
- B25J9/16—Program controls
- B25J9/1656—Program controls characterised by programming, planning systems for manipulators
- B25J9/1661—Program 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—Program-controlled manipulators
- B25J9/16—Program controls
- B25J9/1656—Program controls characterised by programming, planning systems for manipulators
- B25J9/1664—Program 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
-
- 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/20—Control system inputs
- G05D1/24—Arrangements for determining position or orientation
- G05D1/246—Arrangements for determining position or orientation using environment maps, e.g. simultaneous localisation and mapping [SLAM]
-
- 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/60—Intended control result
- G05D1/644—Optimisation of travel parameters, e.g. of energy consumption, journey time or distance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/092—Reinforcement learning
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D2101/00—Details of software or hardware architectures used for the control of position
- G05D2101/10—Details of software or hardware architectures used for the control of position using artificial intelligence [AI] techniques
- G05D2101/15—Details of software or hardware architectures used for the control of position using artificial intelligence [AI] techniques using machine learning, e.g. neural networks
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D2109/00—Types of controlled vehicles
- G05D2109/10—Land vehicles
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Mechanical Engineering (AREA)
- Robotics (AREA)
- General Physics & Mathematics (AREA)
- Aviation & Aerospace Engineering (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Fuzzy Systems (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
- Manipulator (AREA)
- Feedback Control In General (AREA)
Description
以下の説明は、強化学習ベースのアルゴリズムと経路計画ベースのアルゴリズムを使用してロボットの移動を制御する方法およびシステムと、このようなロボットが配置される建物に関する。 The following description relates to methods and systems for controlling the movement of robots using reinforcement learning-based algorithms and path planning-based algorithms, and to buildings in which such robots are deployed.
自律走行ロボットは、ロボットが自ら周辺の状況を把握し、障害物を感知しながら車輪や脚を利用して最適な経路で目的地まで移動するロボットであって、自律走行車、物流、ホテルサービス、ロボット掃除機などの多様な分野で開発が進められている。 Autonomous robots are robots that can independently assess their surroundings, sense obstacles, and use their wheels and legs to navigate to their destination along the optimal route. They are being developed in a variety of fields, including autonomous vehicles, logistics, hotel services, and robot vacuum cleaners.
ロボットがサービスを提供するために建物などの空間内に投入される場合、ロボットは、空間内の予測可能あるいは予測不可能な障害物を適切に回避するように制御されなければならず、場合によっては、建物内の通路や廊下などの狭いエリアでの走行も求められる。 When robots are deployed into spaces such as buildings to provide services, they must be controlled to appropriately avoid predictable and unpredictable obstacles within the space, and in some cases may be required to navigate narrow areas such as corridors and hallways within the building.
このようなロボットは、他のロボットや障害物との衝突や干渉を回避しながらも、不要に経路を迂回したり長い距離を移動したりといった無駄な動きがないように、効率的に制御されることが重要となる。 It is important for such robots to be efficiently controlled so as to avoid collisions and interference with other robots and obstacles, while also avoiding unnecessary detours or unnecessary movements such as traveling long distances.
韓国公開特許第10-2005-0024840号は、自律移動ロボットのための経路計画方法に関する技術であって、家庭やオフィスで自律的に動く移動ロボットが、障害物を回避しながら目標点まで安全かつ迅速に移動するための最適経路を計画する方法について開示している。 Korean Patent Publication No. 10-2005-0024840 is a technology relating to a path planning method for an autonomous mobile robot, and discloses a method for planning an optimal path for a mobile robot operating autonomously in a home or office to safely and quickly move to a target point while avoiding obstacles.
上述した情報は理解を助けるためのものに過ぎず、本発明が、従来技術の一部を形成しない内容を含む場合もあるし、従来技術が当業者に提示する内容を含まない場合もある。 The information provided above is for ease of understanding only, and the present invention may include material that does not form part of the prior art, or may not include material that the prior art would suggest to one skilled in the art.
強化学習(Reinforcement Learning)によって予め学習された第1アルゴリズムに基づいて目的地までのロボットの移動を制御するが、ロボットの目的地までの移動中に、空間に対する経路計画にしたがってロボットの移動を制御するための第2アルゴリズムに基づいてロボットが障害物に対する所定の回避条件を満たすかどうかを判定し、回避条件を満たすかどうかによって、第1アルゴリズムを使用してロボットの移動を制御するかロボットの移動を停止させるロボット制御方法を提供することを目的とする。 The objective of this invention is to provide a robot control method that controls the movement of a robot to a destination based on a first algorithm learned in advance through reinforcement learning, and determines whether the robot satisfies predetermined obstacle avoidance conditions based on a second algorithm for controlling the robot's movement according to a spatial path plan while the robot is moving to the destination. Depending on whether the avoidance conditions are met, the method either controls the robot's movement using the first algorithm or stops the robot's movement.
目的地までのロボットの移動中に識別される障害物に対し、経路計画ベースのアルゴリズムを使用して、識別された障害物を回避するためにロボットが所定の回避範囲を逸脱する必要があるかどうかを判定し、判定結果によってロボットを停止させることで、ロボットを効率的に制御する方法を提供することを目的とする。 The objective of this method is to provide an efficient method for controlling a robot by using a path planning-based algorithm to determine whether the robot needs to deviate from a predetermined avoidance range to avoid an obstacle identified while the robot is moving to a destination, and by stopping the robot based on the determination result.
一側面において、空間内を移動するロボットまたはロボットを制御するロボット制御システムによって実行されるロボット制御方法であって、前記ロボットの移動を制御するために強化学習(Reinforcement Learning)によって予め学習された第1アルゴリズムに基づいて、目的地までの前記ロボットの移動を制御する段階、前記ロボットの前記目的地までの移動中に、前記空間に対して構築されたマップに基づいた経路計画にしたがって前記ロボットの移動を制御するための第2アルゴリズムに基づいて、前記ロボットが障害物に対する所定の回避条件を満たすかどうかを判定する段階、および前記回避条件を満たす場合には、前記第1アルゴリズムによる制御にしたがって前記目的地まで移動するように前記ロボットの移動を制御し、前記回避条件が満たされない場合には、前記ロボットの移動を停止するように前記ロボットを制御する段階を含む、ロボット制御方法を提供する。 In one aspect, a robot control method executed by a robot moving within a space or a robot control system for controlling a robot includes the steps of: controlling the movement of the robot to a destination based on a first algorithm previously learned by reinforcement learning for controlling the movement of the robot; determining whether the robot satisfies a predetermined obstacle avoidance condition while moving to the destination based on a second algorithm for controlling the movement of the robot according to a path plan based on a map constructed for the space; and, if the avoidance condition is satisfied, controlling the movement of the robot to move to the destination in accordance with control by the first algorithm; and, if the avoidance condition is not satisfied, controlling the robot to stop moving.
前記第1アルゴリズムと前記第2アルゴリズムは、前記ロボットまたは前記ロボット制御システムにおいて、前記ロボットの移動を制御するために並列的に実行されてよい。 The first algorithm and the second algorithm may be executed in parallel in the robot or the robot control system to control the movement of the robot.
前記ロボットは、前記空間内でサービスを提供するサービスロボットであり、前記目的地は、前記サービスを提供するための前記ロボットの最終目的地であってもよいし、前記最終目的地までの移動のために前記ロボットが経由する経由地であってもよい。 The robot is a service robot that provides a service within the space, and the destination may be the robot's final destination for providing the service, or a stopover point through which the robot passes on its way to the final destination.
前記第1アルゴリズムは、前記ロボットが移動中に障害物を回避しながら前記目的地まで移動するように前記ロボットを制御するように構成され、前記第2アルゴリズムは、前記空間に対して構築されたマップを基盤として生成された前記目的地までの経路に基づいた前記経路計画にしたがって前記ロボットの移動を制御するように構成されてよい。 The first algorithm may be configured to control the robot so that the robot moves to the destination while avoiding obstacles during movement, and the second algorithm may be configured to control the movement of the robot according to the path plan based on a path to the destination generated based on a map constructed for the space.
前記空間に対して構築されたマップは、前記空間に対する占有格子地図(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, based on the path plan, whether the robot can avoid an obstacle identified during its movement to the destination without deviating from a predetermined avoidance range and move to the destination; if the robot can avoid the obstacle without deviating from the avoidance range and move to the destination, the robot may be controlled to move to the destination in accordance with control by the first algorithm; and if the robot cannot avoid the obstacle and move to the destination without deviating from the avoidance range, the robot may be controlled to stop in front of the obstacle.
前記判定する段階は、前記空間に対して構築されたマップを基盤として生成された前記目的地までの経路に基づいた前記経路計画にしたがって、前記ロボットが前記障害物を回避するために所定の第1距離以上を移動しなければならない場合、前記ロボットは前記回避範囲を逸脱せずには前記障害物を回避できないものと判定してよい。 The determining step may determine that the robot cannot avoid the obstacle without departing from the avoidance range if the robot must move a predetermined first distance or more to avoid the obstacle according to the path plan based on a path to the destination generated based on a map constructed for the space.
前記判定する段階は、前記空間に対して構築されたマップを基盤として、前記ロボットが、前記ロボットの現在地または出発地から前記目的地までの直線から所定の第2距離以上を逸脱することなく前記障害物を回避して前記目的地まで移動できるかどうかを判定し、前記ロボットが前記第2距離以上を逸脱せずには前記障害物を回避して前記目的地まで移動できない場合、前記障害物の前で停止するように前記ロボットを制御してよい。 The determining step may involve determining, based on a map constructed for the space, whether the robot can move to the destination while avoiding the obstacle without deviating by a predetermined second distance or more from a straight line from the robot's current location or starting location to the destination, and controlling the robot to stop in front of the obstacle if the robot cannot move to the destination while avoiding the obstacle without deviating by the second distance or more.
前記ロボットが他の通路に迂回することなく回避できるほどに前記障害物が小さい場合、前記第1アルゴリズムによる制御にしたがって、他の通路に迂回したり前記障害物の前で停止せずに前記障害物を回避して前記目的地まで移動するように前記ロボットを制御してよい。 If the obstacle is small enough that the robot can avoid it without detouring to another path, the robot may be controlled according to control by the first algorithm to avoid the obstacle and move to the destination without detouring to another path or stopping in front of the obstacle.
前記判定する段階は、前記ロボットの前記目的地までの移動中に識別される障害物に対し、前記経路計画に基づいて、所定の禁止区域に侵入することなく前記障害物を回避して前記目的地まで移動できるかどうかを判定する段階を含み、前記ロボットが前記禁止区域に侵入せずに前記障害物を回避して前記目的地まで移動できる場合、前記第1アルゴリズムによる制御にしたがって前記目的地まで移動するように前記ロボットを制御してよく、前記ロボットが前記禁止区域に侵入しなくては前記障害物を回避して前記目的地に移動できない場合、前記障害物の前で停止するように前記ロボットを制御してよい。 The determining step includes determining, based on the path plan, whether the robot can move to the destination by avoiding an obstacle identified during the robot's movement to the destination without entering a predetermined prohibited area. If the robot can move to the destination by avoiding the obstacle without entering the prohibited area, the robot may be controlled to move to the destination in accordance with control by the first algorithm. If the robot cannot move to the destination by avoiding the obstacle without entering the prohibited area, the robot may be controlled to stop in front of the obstacle.
前記判定する段階は、前記ロボットの前記目的地までの移動中に識別される障害物に対し、前記経路計画に基づいて、前記ロボットが後進することなく前記障害物を回避して前記目的地まで移動できるかどうかを判定する段階を含み、前記ロボットが前記障害物を回避するために後進する必要があると判定された場合、前記障害物の前で停止するように前記ロボットを制御してよい。 The determining step may include a step of determining, based on the path plan, whether the robot can avoid an obstacle identified during the robot's movement to the destination and move to the destination without moving backward, and if it is determined that the robot needs to move backward to avoid the obstacle, the robot may be controlled to stop in front of the obstacle.
前記判定の結果によって、前記ロボットが前記目的地まで移動するための通路内で、他の通路に迂回せずに回避できるほどに小さい障害物に対しては、前記第1アルゴリズムによる制御にしたがって、他の通路に迂回することなく前記障害物を回避して前記目的地に移動するように前記ロボットを制御し、前記通路内で、前記ロボットの前方に前記障害物として他のロボットが識別された場合、前記他のロボットを追い越さずに前記他のロボットの後ろで待機するように前記ロボットを制御してよい。 Depending on the result of the determination, if the obstacle in the path along which the robot travels to the destination is small enough to be avoided without detouring into another path, the robot may be controlled to avoid the obstacle and travel to the destination without detouring into another path according to control by the first algorithm, and if another robot is identified as the obstacle ahead of the robot in the path, the robot may be controlled to wait behind the other robot without overtaking the other robot.
前記通路は、前記空間内で前記ロボットの整列が求められる領域、あるいは2台以上のロボットが並んで走行することができない幅の領域であってよい。 The passage may be an area within the space where the robots are required to be aligned, or an area too narrow for two or more robots to travel side by side.
他の一側面において、ロボットのためのコンピュータシステムであって、コンピュータで読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサは、前記ロボットの移動を制御するために強化学習(Reinforcement Learning)によって予め学習された第1アルゴリズムに基づいて、目的地までの前記ロボットの移動を制御し、前記ロボットの前記目的地までの移動中に、前記空間に対して構築されたマップに基づいた経路計画にしたがって前記ロボットの移動を制御するための第2アルゴリズムに基づいて、前記ロボットが障害物に対する所定の回避条件を満たすかどうかを判定し、前記回避条件を満たす場合には、前記第1アルゴリズムによる制御にしたがって前記目的地まで移動するように前記ロボットの移動を制御し、前記回避条件が満たされない場合には、前記ロボットの移動が停止するように前記ロボットを制御する、コンピュータシステムを提供する。 In another aspect, a computer system for a robot is provided, comprising at least one processor configured to execute computer-readable instructions, wherein the at least one processor controls the movement of the robot to a destination based on a first algorithm previously learned by reinforcement learning for controlling the movement of the robot, determines whether the robot satisfies a predetermined obstacle avoidance condition based on a second algorithm for controlling the movement of the robot according to a path plan based on a map constructed for the space while the robot is moving to the destination, and controls the movement of the robot to move to the destination in accordance with control by the first algorithm if the avoidance condition is satisfied, and controls the robot to stop moving if the avoidance condition is not satisfied.
また他の一側面において、建物であって、前記建物内の空間を移動する少なくとも1台のロボットが配置され、コンピュータで読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサを含み、前記ロボットは、前記ロボット内に含まれるかサーバであるコンピュータシステムによって、前記建物内での移動が制御され、前記コンピュータシステムは、コンピュータで読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサは、前記ロボットの移動を制御するために強化学習(Reinforcement Learning)によって予め学習された第1アルゴリズムに基づいて、目的地までの前記ロボットの移動を制御し、前記ロボットの前記目的地までの移動中に、前記空間に対して構築されたマップに基づいた経路計画にしたがって前記ロボットの移動を制御するための第2アルゴリズムに基づいて、前記ロボットが障害物に対する所定の回避条件を満たすかどうかを判定し、前記回避条件を満たす場合には、前記第1アルゴリズムによる制御にしたがって前記目的地まで移動するように前記ロボットの移動を制御し、前記回避条件が満たされない場合には、前記ロボットの移動を停止するように前記ロボットを制御する、建物を提供する。 In another aspect, a building is provided in which at least one robot that moves within the building is disposed, the building including at least one processor that executes computer-readable instructions, and the robot's movement within the building is controlled by a computer system that is included in the robot or a server, the computer system including at least one processor that executes computer-readable instructions, the at least one processor controlling the movement of the robot to a destination based on a first algorithm that has been learned in advance by reinforcement learning to control the movement of the robot, determining whether the robot satisfies a predetermined obstacle avoidance condition during the robot's movement to the destination based on a second algorithm for controlling the robot's movement according to a path plan based on a map constructed for the space, and if the avoidance condition is satisfied, controlling the movement of the robot to move to the destination according to control by the first algorithm, and if the avoidance condition is not satisfied, controlling the robot to stop its movement.
並列的に実行される強化学習ベースのアルゴリズムと経路計画ベースのアルゴリズムを使用してロボットの目的地までの移動を制御することによって、強化学習ベースのアルゴリズムでは調節することができなかった障害物に対する回避範囲を制限することができる。これにより、ロボットが狭い通路を走行したり障害物に直面したときに、目的地までの経路(例えば、全域経路(global path))から大きく離脱するといったロボットの非効率的な移動を最小限に抑えることができる。 By controlling the robot's movement to its destination using a reinforcement learning-based algorithm and a path planning-based algorithm executed in parallel, it is possible to limit the range of obstacle avoidance that could not be adjusted using the reinforcement learning-based algorithm. This makes it possible to minimize inefficient movement of the robot, such as when the robot deviates significantly from the path to the destination (e.g., the global path) when traveling through narrow passages or encountering obstacles.
さらに、例えば、狭い通路でロボットの整列が求められる場合などのようにサービスの提供のために必要な動作を取るときに、マイナーな障害物を回避しながらも先行するロボットと適切に距離を置いて位置するようにロボットを制御することができる。 Furthermore, when performing actions required to provide a service, such as when robots need to line up in a narrow passage, the robot can be controlled to position itself at an appropriate distance from the preceding robot while avoiding minor obstacles.
以下、実施形態について、添付の図面を参照しながら詳しく説明する。 The following describes the embodiments in detail with reference to the attached drawings.
図1は、一実施形態における、強化学習ベースのアルゴリズムと経路計画ベースのアルゴリズムを使用してロボットの目的地までの移動を制御する方法を示した図である。 Figure 1 illustrates a method for controlling a robot's movement to a destination using a reinforcement learning-based algorithm and a path planning-based algorithm in one embodiment.
図1には、空間10内でサービスを提供するように構成されるロボット100が、ロボット100の目的地までの移動を制御するために構成されたアルゴリズム(すなわち、以下で説明する第1アルゴリズムと第2アルゴリズム)の実行にしたがって、障害物30を回避しながら目的地に向かって移動する方法が示されている。 Figure 1 shows how a robot 100 configured to provide a service within a space 10 moves toward a destination while avoiding obstacles 30 in accordance with the execution of algorithms (i.e., a first algorithm and a second algorithm described below) configured to control the movement of the robot 100 toward the destination.
ロボット100の目的地までの移動を制御するために構成されるアルゴリズムは、ロボット100内で実行されてもよいし、ロボット制御システム120内で実行されてもよい。 The algorithm configured to control the movement of the robot 100 to its destination may be executed within the robot 100 or within the robot control system 120.
ロボット100内でアルゴリズムが実行される場合、すなわち、アルゴリズムがロボット100に配備(deploy)されて実行される場合、ロボット100は、アルゴリズムで定義されたとおりに、障害物30を回避しながら目的地に向かって移動するように制御されてよい。この反面、ロボット制御システム120内でこのようなアルゴリズムが実行される場合、前記アルゴリズムによるロボット制御システム120からの制御信号(命令)、例えば、速度制御信号および/または方向制御信号に基づいてロボット100が制御されてよい。 When an algorithm is executed within the robot 100, i.e., when the algorithm is deployed and executed on the robot 100, the robot 100 may be controlled to move toward a destination while avoiding obstacles 30 as defined by the algorithm. On the other hand, when such an algorithm is executed within the robot control system 120, the robot 100 may be controlled based on control signals (commands), such as speed control signals and/or direction control signals, from the robot control system 120 according to the algorithm.
ロボット100が移動(または、走行)する空間10は、ロボット100がサービスを提供する場所であって、例えば、建物やビルに含まれる屋内および/または屋外の空間を示してよい。建物またはビルは、複数の人員(以下、利用者とする)が勤務または常駐する空間を含み、例えば、複数の区切られた空間を含んでよい。空間10は、建物の一部(特定のフロアまたはフロア内の部分空間)を示してよい。 The space 10 in which the robot 100 moves (or travels) is the location where the robot 100 provides services, and may represent, for example, indoor and/or outdoor spaces within a building. A building includes a space where multiple personnel (hereinafter referred to as users) work or reside, and may include, for example, multiple partitioned spaces. The space 10 may represent a portion of a building (a specific floor or a subspace within a floor).
ロボット100は、空間10内でサービスを提供するために使用されるサービスロボットであってよい。ロボット100は、空間10の少なくとも1つのフロアでサービスを提供するように構成されてよい。図1では、1つのロボット100だけが示されているが、空間内に配置されて動作するロボット100は複数であってもよい。空間10内では、それぞれのロボット100が移動しながら空間10内の適切な位置でサービスを提供したり、適切な利用者にサービスを提供してよい。 The robot 100 may be a service robot used to provide services within the space 10. The robot 100 may be configured to provide services on at least one floor of the space 10. Although only one robot 100 is shown in FIG. 1, multiple robots 100 may be arranged and operated within the space. Within the space 10, each robot 100 may move around and provide services at an appropriate location within the space 10, or provide services to an appropriate user.
ロボット100が提供するサービスは、例えば、宅配配達サービス、注文ドリンク(コーヒーなど)の配膳サービス、清掃サービス、およびその他の情報/コンテンツの提供サービスのうちの少なくとも1つを含んでよい。 The services provided by the robot 100 may include, for example, at least one of a parcel delivery service, a service for delivering ordered drinks (such as coffee), a cleaning service, and a service for providing other information/content.
ロボット100は、自律走行によって、空間10の所定の位置や所定の利用者にサービスを提供するように構成されてよく、ロボット100の(それぞれの)移動およびサービスの提供はロボット制御システム120によって制御されてよい。上述したアルゴリズムによって制御されるロボット100の目的地までの移動は、このようなサービスの提供のためのロボット100の所定の位置への移動であってよい。 The robot 100 may be configured to provide services to predetermined locations in the space 10 or to predetermined users by autonomous navigation, and the (respective) movements of the robot 100 and the provision of services may be controlled by the robot control system 120. The movement of the robot 100 to a destination controlled by the above-described algorithm may be the movement of the robot 100 to a predetermined location for the provision of such services.
以下の詳細な説明において、ロボット100が移動する「目的地」は、サービスを提供するためのロボット100の最終目的地であってもよいし、最終目的地への移動のためにロボット100が経由する「経由地」であってもよい。一例として、ロボット100が提供するサービスが宅配配達サービスである場合の目的地は、宅配物を受け取るための位置または受け取った宅配物を配達する位置であってもよいし、前記受け取り位置または配達位置に移動するためにロボット100が経由する位置であってもよい。 In the detailed description below, the "destination" to which the robot 100 travels may be the robot 100's final destination for providing a service, or may be a "waypoint" through which the robot 100 passes on its way to the final destination. As an example, if the service provided by the robot 100 is a parcel delivery service, the destination may be a location for receiving a parcel or a location for delivering the received parcel, or a location through which the robot 100 passes on its way to the receiving location or delivery location.
ロボット100およびロボット制御システム120の構造については、図2~5を参照しながらより詳しく説明する。 The structure of the robot 100 and robot control system 120 will be described in more detail with reference to Figures 2-5.
図に示すように、ロボット100は、目的地までの移動中に障害物30に直面することがあり、障害物30を回避しながら目的地まで移動するように制御されてよい。 As shown in the figure, the robot 100 may encounter an obstacle 30 while traveling to the destination, and may be controlled to travel to the destination while avoiding the obstacle 30.
障害物30は、空間10内に一時的または非一時的に存在する物体であって、例えば、人間や他のロボットなどのように移動する客体であってもよいし、空間10内で移動しない、すなわち、固定された物体であってもよい。 An obstacle 30 is an object that exists temporarily or non-temporarily within the space 10, and may be a moving object such as a human or another robot, or may be a fixed object that does not move within the space 10.
実施形態において、ロボット100は、ロボット100の移動を制御するために強化学習(Reinforcement Learning)によって予め学習された第1アルゴリズム(すなわち、強化学習ベースのアルゴリズム)と、空間100に対して構築されたマップに基づいた経路計画にしたがってロボット100の移動を制御するための第2アルゴリズム(すなわち、経路計画ベースのアルゴリズム)によって制御されてよい。 In an embodiment, the robot 100 may be controlled by a first algorithm (i.e., a reinforcement learning-based algorithm) that is pre-trained by reinforcement learning to control the movement of the robot 100, and a second algorithm (i.e., a path planning-based algorithm) that controls the movement of the robot 100 according to a path plan based on a map constructed for the space 100.
例えば、ロボット100は、第1アルゴリズムによって目的地までの移動が制御されてよく、直面する障害物30に対して、第2アルゴリズムによって判断にしたがって所定の回避条件(または、回避範囲)を満たしながら障害物30を回避できると判定された場合、第1アルゴリズムによって障害物30を回避するように制御されてよい。このとき、所定の回避条件(または、回避範囲)を満たした状態で障害物30を回避できないと判定された場合には、障害物30の前で停止するようにロボット100を制御してよい。 For example, the movement of the robot 100 to the destination may be controlled by the first algorithm, and when it is determined by the second algorithm that the obstacle 30 it faces can be avoided while satisfying predetermined avoidance conditions (or avoidance ranges), the robot 100 may be controlled to avoid the obstacle 30 by the first algorithm. In this case, if it is determined that the obstacle 30 cannot be avoided while satisfying the predetermined avoidance conditions (or avoidance ranges), the robot 100 may be controlled to stop in front of the obstacle 30.
すなわち、実施形態では、第1アルゴリズムによってロボット100の移動を制御して障害物30に対する回避性能を維持しながらも、障害物30に対する回避範囲を制限してロボット100の危険な移動および非効率的な移動を最小限に抑えるために第2アルゴリズムを追加で使用することによって、ロボット100の移動を制御することができる。 In other words, in the embodiment, the movement of the robot 100 can be controlled by using the first algorithm to maintain the ability to avoid the obstacle 30, while also using the second algorithm to limit the avoidance range for the obstacle 30 and minimize dangerous and inefficient movement of the robot 100.
したがって、ロボット100は、障害物30を回避する性能に優れた第1アルゴリズムによって制御されるが、第2アルゴリズムに基づいて障害物30を回避するための回避範囲が制限されることにより、危険かつ非効率的な移動をしないように制御されることができる。 Thus, the robot 100 is controlled by a first algorithm that has excellent performance in avoiding the obstacle 30, but the avoidance range for avoiding the obstacle 30 is limited based on the second algorithm, so that the robot can be controlled to avoid dangerous and inefficient movements.
第1アルゴリズムと第2アルゴリズムによるロボット100の制御方法については、図5~12を参照しながらより詳しく説明する。 The control method of the robot 100 using the first and second algorithms will be explained in more detail with reference to Figures 5 to 12.
図2は、一実施形態における、空間内でサービスを提供するロボットを示したブロック図である。 Figure 2 is a block diagram showing a robot providing services within a space in one 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 travel autonomously and provide services at a predetermined location within the space 10, or provide services to a predetermined user.
ロボット100は、物理的な装置であって、図に示すように、制御部104、駆動部108、センサ部106、および通信部102を含んでよい。 The robot 100 is a physical device and may include a control unit 104, a drive unit 108, a sensor unit 106, and a communication unit 102, as shown in the figure.
制御部104は、ロボット100に内蔵された物理的なプロセッサであってよく、図には示していないが、経路計画処理モジュール、マッピング処理モジュール、駆動制御モジュール、ローカリゼーション処理モジュール、データ処理モジュール、およびサービス処理モジュールを含んでよい。このとき、経路計画処理モジュール、マッピング処理モジュール、およびローカリゼーション処理モジュールは、ロボット制御システム120との通信が途絶えた場合でもロボット100の室内自律走行が持続するように、実施形態に応じて選択的に制御部104に含まれてもよい。 The control unit 104 may be a physical processor built into the robot 100, and although not shown, may include a path planning processing module, a mapping processing module, a drive control module, a localization processing module, a data processing module, and a service processing module. In this case, the path planning processing module, the mapping processing module, and the localization processing module may be selectively included in the control unit 104 depending on the embodiment so that the robot 100 can continue to navigate autonomously indoors even if communication with the robot control system 120 is lost.
通信部102は、ロボット100が他の装置(他のロボットまたはロボット制御システム120など)と通信するための構成であってよい。言い換えれば、通信部102は、他の装置に対してデータおよび/または情報を送受信する、ロボット100のアンテナ、データバス、ネットワークインタフェースカード、ネットワークインタフェースチップ、およびネットワークインタフェースポートなどのハードウェアモジュール、またはネットワークデバイスドライバ(driver)またはネットワーキングプログラムなどのソフトウェアモジュールであってよい。 The communication unit 102 may be a component that enables the robot 100 to communicate with other devices (such as other robots or the robot control system 120). In other words, the communication unit 102 may be a hardware module, such as an antenna, data bus, network interface card, network interface chip, or network interface port, of the robot 100, that transmits and receives data and/or information to and from other devices, or a software module, such as a network device driver or a networking program.
駆動部108は、ロボット100の移動を制御して移動を可能にする構成であって、これを実行するための装備を含んでよい。 The drive unit 108 is configured to control the movement of the robot 100 and enable it to move, and may include equipment for doing so.
センサ部106は、ロボット100の自律走行およびサービス提供において要求されるデータを収集するための構成であってよい。センサ部106は、高価なセンシング装置を含む必要はなく、低価の超音波センサおよび/または低価のカメラなどのようなセンサを含んでよい。センサ部106は、前方および/または後方の他のロボットや人間を識別するためのセンサを含んでよい。例えば、センサ部106のカメラによって、他のロボット、人間、および他の物体が障害物30として識別されてよい。また、センサ部106は、赤外線センサ(または、赤外線カメラ)を含んでよい。センサ部106は、カメラの他に、周辺の利用者や他のロボット、または物体を認識/識別するためのセンサをさらに含んでよい。このように、センサ部106は、障害物30を識別するように構成されてよい。 The sensor unit 106 may be configured to collect data required for the autonomous navigation and service provision of the robot 100. The sensor unit 106 does not need to include an expensive sensing device and may include sensors such as low-cost ultrasonic sensors and/or low-cost cameras. The sensor unit 106 may include sensors for identifying other robots or humans in front and/or behind the robot. For example, the camera of the sensor unit 106 may identify other robots, humans, and other objects as obstacles 30. The sensor unit 106 may also include an infrared sensor (or an infrared camera). In addition to the camera, the sensor unit 106 may further include sensors for recognizing/identifying nearby users, other robots, or objects. In this way, the sensor unit 106 may be configured to identify obstacles 30.
一例として、ロボット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アルゴリズムに基づいて自律走行を行うことができる。 As an example, when an algorithm for autonomous navigation of the robot 100 is executed within the robot control system 120, in which the robot 100 is controlled by the robot control system 120, the data processing module of the control unit 104 may transmit sensing data including sensor output values of the sensor unit 106 to the robot control system 120 from the communication unit 102. The robot control system 120 may transmit path data generated using an indoor map of the space 10 to the robot 100. The path data may be transmitted from the communication unit 102 to the data processing module. The data processing module may immediately transmit the path data to the drive control module, and the drive control module may control the drive unit 108 in accordance with the path data to control the indoor autonomous navigation of the robot 100. This allows the robot 100 to perform autonomous navigation based on the second algorithm described above. On the other hand, when the first algorithm is executed in the robot control system 120, the robot control system 120 may generate control signals (e.g., speed and/or direction control signals) for controlling the robot 120 according to the first algorithm based on sensing data received from the robot 100, and may control the robot 100 based on the generated control signals. This allows the robot 100 to perform autonomous driving 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 navigation is executed within the robot 100, the data processing module may directly process the indoor autonomous navigation of the robot 100 by sending sensing data to the localization processing module and generating path data using the path planning processing module and mapping processing module. This allows the robot 100 to navigate autonomously based on the second algorithm described above. On the other hand, when the robot 100 executes the first algorithm described above, the data processing module of the robot 100 may generate control signals (e.g., speed and/or direction control signals) for controlling the robot 120 according to the first algorithm based on the sensing data, and may control the robot 100 based on the generated control signals. This allows the robot 100 to navigate autonomously based on the first algorithm.
ロボット100は、空間10内の屋内マップを生成するために使用されるマッピングロボットとは別物であってよい。ロボット100は、高価なセンシング装備を含まないため、低価の超音波センサおよび/または低価のカメラなどのようなセンサの出力値を利用して室内自律走行を処理してよい。一方、ロボット100が以前にロボット制御システム120との通信によって室内自律走行を処理したことがある場合、ロボット制御システム120から以前に受信した経路データを含むマッピングデータなどをさらに活用することによって、低価のセンサの利用でも室内自律走行を正確に実現することができる。 The robot 100 may be a different entity from a mapping robot used to generate an indoor map of the space 10. Because the robot 100 does not include expensive sensing equipment, it may perform indoor autonomous navigation using output values from sensors such as low-cost ultrasonic sensors and/or low-cost cameras. On the other hand, if the robot 100 has previously performed indoor autonomous navigation through communication with the robot control system 120, it can accurately perform indoor autonomous navigation even using low-cost sensors by further utilizing mapping data including path data previously received from the robot control system 120.
ただし、実施形態によっては、ロボット100が前記マッピングロボットを兼用してもよい。 However, in some 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 from the robot control system 120 via the communication unit 102 or via the communication unit 102 and the data processing module. The driving unit 108 may include not only equipment for moving the robot 100, but also equipment related to the service provided by the robot 100. For example, to perform a drink/delivery service, the driving unit 108 of the robot 100 may include a configuration for loading drinks/deliveries and a configuration for handing over the drinks/deliveries to the user (e.g., a robot arm). The robot 100 may also include a speaker and/or a display for providing information/content. The service processing module may transmit driving commands for the service to be provided to the driving control module, and the driving control module may control the components included in the robot 100 and the driving unit 108 in accordance with the driving commands to provide the service.
ロボット100は、上述した第1アルゴリズムと第2アルゴリズムによる制御にしたがって、障害物30を回避しながら目的地まで移動するように制御されてよい。 The robot 100 may be controlled to move to the destination while avoiding the obstacles 30 in accordance with the control of the first and second algorithms described above.
上述したように、ロボット100は、ロボット100の制御のためのセンシングデータをロボット制御システム120に提供するだけであり、ロボット100の制御のための第1アルゴリズムと第2アルゴリズムがロボット制御システム120で実行される場合、ロボット100はブレインレスロボットに該当してよい。 As described above, if the robot 100 only provides sensing data for controlling the robot 100 to the robot control system 120, and the first and second algorithms for controlling the robot 100 are executed by the robot control system 120, the robot 100 may be considered a brainless robot.
一方、ロボット100のそれぞれは、機種や提供するサービスなどによって異なる大きさや形態で形成されてよい。 On the other hand, each robot 100 may be formed in different sizes and shapes depending on the model, services provided, etc.
ロボット100を制御するロボット制御システム120の構成および動作については、図3~5を参照しながらそれぞれより詳しく説明する。 The configuration and operation of the robot control system 120 that controls the robot 100 will be described in more detail with reference to Figures 3 to 5.
以上、図1を参照しながら説明した技術的特徴は、図2にもそのまま適用されるため、重複する説明は省略する。 The technical features explained above with reference to Figure 1 also apply to Figure 2, so duplicate explanations will be omitted.
図3および図4は、一実施形態における、ロボットを制御するロボット制御システムを示したブロック図である。 Figures 3 and 4 are block diagrams showing a robot control system that controls a robot in one 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 the movement (i.e., running) of the robot 100 within the space 10 described above and the provision of services by the robot 100 within the space 10. The robot control system 120 may control the movement of each of the multiple robots 100 and the provision of services by each of the robots 100. The robot control system 120 may set a route for the robot 100 to provide a service by communicating with the robot 100, and may transmit information about such a route to the robot 100. The robot 100 may run based on the received information about the route, and may provide a service at a predetermined location or to a predetermined user. The robot control system 120 may control the movement of the robot so that the robot moves (runs) along the set route.
ロボット制御システム120は、少なくとも1つのコンピューティング装置を含んでよい。 The robot control system 120 may include at least one computing device.
ロボット制御システム120は、上述したとおり、ロボット100の走行のための経路を設定してロボット100の移動を制御する装置であってよい。ロボット制御システム120は、少なくとも1つのコンピューティングデバイスを含んでよく、空間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 realized as a server located within the space 10 or outside the space 10.
このようなロボット100の走行のための経路の設定とロボット100の移動の制御は、上述した第2アルゴリズムによるロボット100の制御を含んでよい。 Setting a path for the robot 100 to travel and controlling the movement of the robot 100 may include controlling the robot 100 using the second algorithm described above.
ロボット制御システム120は、図に示すように、メモリ330、プロセッサ320、通信部310、および入力/出力インタフェース340を含んでよい。 The robot control system 120 may include a memory 330, a processor 320, a communication unit 310, and an input/output interface 340, as shown.
メモリ330は、コンピュータ読み取り可能な記録媒体であって、RAM(random access memory)、ROM(read only memory)、およびディスクドライブのような永続的大容量記録装置を含んでよい。ここで、ROMと永続的大容量記録装置は、メモリ330とは区分される別の永続的記録装置として含まれてもよい。また、メモリ330には、オペレーティングシステムと、少なくとも1つのプログラムコードが記録されてよい。このようなソフトウェア構成要素は、メモリ330とは別のコンピュータ読み取り可能な記録媒体からロードされてよい。このような別のコンピュータ読み取り可能な記録媒体は、フロッピー(登録商標)ドライブ、ディスク、テープ、DVD/CD-ROMドライブ、メモリカードなどのコンピュータ読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータ読み取り可能な記録媒体ではない通信部310を通じてメモリ330にロードされてもよい。 Memory 330 is a computer-readable recording medium and may include RAM (random access memory), ROM (read-only memory), and a persistent mass storage device such as a disk drive. Here, the ROM and the persistent mass storage device may be included as separate persistent storage devices distinct from memory 330. Memory 330 may also store an operating system and at least one program code. Such software components may be loaded from a computer-readable recording medium separate from memory 330. Such separate computer-readable recording media may include a computer-readable recording medium such as a floppy drive, disk, tape, DVD/CD-ROM drive, or memory card. In other embodiments, software components may be loaded into memory 330 via communication unit 310, which is not a computer-readable recording medium.
プロセッサ320は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ330または通信部310によって、プロセッサ320に提供されてよい。例えば、プロセッサ320は、メモリ330にロードされたプログラムコードにしたがって受信される命令を実行するように構成されてよい。このようなプロセッサ320は、図4に示すような構成410~440を含んでよい。 The processor 320 may be configured to process computer program instructions by performing basic arithmetic, logic, and input/output operations. The instructions may be provided to the processor 320 by the memory 330 or the communication unit 310. For example, the processor 320 may be configured to execute instructions received according to program code loaded into the memory 330. Such a processor 320 may include components 410-440 as shown in FIG. 4.
プロセッサ320の構成410~440それぞれは、プロセッサ320の一部としてソフトウェアおよび/またはハードウェアモジュールであってよく、プロセッサによって実現される機能(機能ブロック)を示してよい。プロセッサ320の構成410~440については、図4を参照しながら説明する。 Each of the components 410-440 of the processor 320 may be software and/or hardware modules as part of the processor 320, and may represent functions (functional blocks) implemented by the processor. The components 410-440 of the processor 320 will be described with reference to Figure 4.
通信部310は、ロボット制御システム120が他の装置(ロボット100または他のサーバなど)と通信するための構成であってよい。言い換えれば、通信部310は、他の装置に対してデータおよび/または情報を送信/受信する、ロボット制御システム120のアンテナ、データバス、ネットワークインタフェースカード、ネットワークインタフェースチップ、およびネットワーキングインタフェースポートなどのようなハードウェアモジュール、またはネットワークデバイスドライバ(driver)またはネットワーキングプログラムのようなソフトウェアモジュールであってよい。 The communication unit 310 may be a component that enables the robot control system 120 to communicate with other devices (such as the robot 100 or other servers). In other words, the communication unit 310 may be a hardware module, such as an antenna, data bus, network interface card, network interface chip, or networking interface port, of the robot control system 120 that transmits/receives data and/or information to/from other devices, or a software module, such as a network device driver or networking program.
入力/出力インタフェース340は、キーボードまたはマウスなどのような入力装置、およびディスプレイやスピーカのような装置とのインタフェースのための手段であってよい。 The input/output interface 340 may be a means for interfacing with input devices such as a keyboard or mouse, and devices such as a display and speakers.
また、他の実施形態において、ロボット制御システム120は、図に示した構成要素よりも多くの構成要素を含んでもよい。 Also, in other embodiments, the robot control system 120 may include more components than those shown in the figure.
図4を参照しながら、プロセッサ320の構成410~440についてより詳しく説明する。プロセッサ320は、図に示すように、マップ生成モジュール410、ローカリゼーション処理モジュール420、経路計画処理モジュール430、およびサービス運営モジュール440を含んでよい。このようなプロセッサ320が含む構成要素は、オペレーティングシステムのコードと、少なくとも1つのコンピュータプログラムのコードとによる制御命令(instruction)にしたがって、プロセッサ320が含む少なくとも1つのプロセッサが実行する互いに異なる機能(different functions)の表現であってよい。 Referring to Figure 4, the components 410-440 of the processor 320 will be described in more detail. As shown in the figure, the processor 320 may include a map generation module 410, a localization processing module 420, a route planning processing module 430, and a service operation module 440. The components included in the processor 320 may represent different functions executed by at least one processor included in the processor 320 in accordance with control instructions from the operating system code and the code of at least one computer program.
マップ生成モジュール410は、空間10内部で自律走行する(図示せず)マッピングロボットが目標施設物(例えば、空間10の内部)に対して生成したセンシングデータを利用して目標施設物の室内マップを生成するための構成要素であってよい。 The map generation module 410 may be a component for generating an indoor map of a target facility (e.g., the interior of space 10) using sensing data generated by a mapping robot (not shown) autonomously traveling within space 10.
このとき、ローカリゼーション処理モジュール420は、ロボット100からネットワークを介して受信するセンシングデータとマップ生成モジュール410で生成された目標施設の室内マップを利用して、目標施設の内部におけるロボット100の位置を決定してよい。 At this time, the localization processing module 420 may determine the position of the robot 100 within the target facility using sensing data received from the robot 100 via the network and the indoor map of the target facility generated by the map generation module 410.
経路計画処理モジュール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 control signals for controlling the indoor autonomous movement of the robot 100 using the sensing data received from the robot 100 and the generated indoor map. For example, the path planning processing module 430 may generate a path (i.e., path data) for the robot 100. The generated path (path data) may be set for the robot 100 so that the robot 100 moves along this path. The robot control system 120 may transmit information about the generated path to the robot 100 via a network. For example, the information about the path may include information indicating the current location of the robot 100, information for mapping the current location to the indoor map, and path planning information. The information about the path may include information about a path that the robot 100 will travel to provide a service at a predetermined location within the space 10 or to a predetermined user. The path planning processing module 430 may set a path (i.e., path data) for the robot 100. The robot control system 120 may control the movement of the robot 100 so that the robot 100 moves along such a set path (i.e., according to the set path).
このようなロボット100の走行のための経路の設定とロボット100の移動の制御は、前記第2アルゴリズムによるロボット100の制御を含んでよい。 Setting a path for the robot 100 to travel and controlling the movement of the robot 100 may include controlling the robot 100 according to the second algorithm.
サービス運営モジュール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 the services provided by the robot 100 within the space 10. For example, the service provider operating the robot control system 120 or the space 10 may provide the user or creator of the robot 100 with an IDE (Integrated Development Environment) for the services (e.g., cloud services) provided by the robot control system 120. In this case, the user or creator of the robot 100 may create software using the IDE for controlling the services provided by the robot 100 within the space 10 and register it in the robot control system 120. In this case, the service operation module 440 may control the services provided by the robot 100 using the software registered in association with the robot 100. As a specific example, assuming that the robot 100 provides a service of delivering an item requested by a user (e.g., a drink or a parcel) to the user's location, the robot control system 120 not only controls the indoor autonomous movement of the robot 100 so that the robot 100 moves to the user's location, but also transmits related commands to the robot 100 so that the robot 100 provides a series of services, such as handing over the item to the user upon arriving at the destination and outputting a corresponding voice message to the user.
ロボット制御システム120は、ロボット100を制御するためのコンピュータシステムであって、サーバであってよい。ロボット制御システム120は、空間10または建物の外部に配置されるサーバであって、クラウドサーバであってよい。または、実施形態によっては、ロボット制御システム120は、空間10または建物の内部に配置されてもよい。 The robot control system 120 is a computer system for controlling the robot 100 and may be a server. The robot control system 120 may be a server located outside the space 10 or a building and may be a cloud server. Alternatively, in some embodiments, the robot control system 120 may be located inside the space 10 or a building.
以上、図1および図2を参照しながら説明した技術的特徴は、図3および図4にもそのまま適用されるため、重複する説明は省略する。 The technical features explained above with reference to Figures 1 and 2 also apply to Figures 3 and 4, so duplicate explanations will be omitted.
図5は、一実施形態における、強化学習ベースのアルゴリズムと経路計画ベースのアルゴリズムを使用してロボットの目的地までの移動を制御するロボットのためのコンピュータシステムのプロセッサを示したブロック図である。 Figure 5 is a block diagram showing the processor of a computer system for a robot that controls the robot's movement to a destination using a reinforcement learning-based algorithm and a path planning-based algorithm in one embodiment.
図に示したプロセッサ500は、ロボット100のためのコンピュータシステムに含まれる構成要素であって、例えば、上述したロボット100の制御部104のプロセッサまたはロボット制御システム120のプロセッサ320であってよい。 The processor 500 shown in the figure is a component included in a computer system for the robot 100, and may be, for example, the processor of the control unit 104 of the robot 100 or the processor 320 of the robot control system 120 described above.
すなわち、プロセッサ500は、ロボット100の障害物30の回避および目的地までの移動のための第1アルゴリズムと第2アルゴリズムによる制御を実行する構成であって、ロボット100またはロボット制御システム120に含まれる構成であってよい。 In other words, the processor 500 is configured to execute control using the first and second algorithms for the robot 100 to avoid the obstacle 30 and move to the destination, and may be included in the robot 100 or the robot control system 120.
プロセッサ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 configured to execute a first algorithm to control the movement of the robot 100, and the second algorithm processing unit 520 may be configured to execute a second algorithm to control the movement of the robot 100.
プロセッサ500の構成要素510および520それぞれは、プロセッサ500の一部であって、ソフトウェアおよび/またはハードウェアモジュールであってよく、プロセッサによって実現される機能(機能ブロック)を示してよい。 Each of the components 510 and 520 of the processor 500 is part of the processor 500 and may be a software and/or hardware module, and may represent a function (functional block) realized by the processor.
第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. That is, the first algorithm and the second algorithm may be executed in parallel or simultaneously by the robot 100 or the robot control system 120 to control the movement of the robot 100.
以下では、第1アルゴリズムと第2アルゴリズムについてさらに詳しく説明する。 The first and second algorithms are explained in more detail below.
第1アルゴリズムは、ロボット100の自律走行を制御するための強化学習ベースのアルゴリズムであってよい。 The first algorithm may be a reinforcement learning-based algorithm for controlling the autonomous navigation of the robot 100.
強化学習は、機械学習(Machine Learning)の一種であって、与えられた状況(または、状態)(state)に対して最適な行動(action)を選択するようにする学習方法であり、強化学習の対象となるコンピュータプログラムは、エージェント(agent)と呼ばれてよい。エージェントは、与えられた状況に対して自身が取る行動を示す政策(又は方策)(policy)を樹立し、最大の報酬が得られるように政策を樹立するためにモデルを学習させてよい。 Reinforcement learning is a type of machine learning, a learning method that selects the optimal action for a given situation (or state), and the computer program that is the subject of reinforcement learning may be called an agent. The agent establishes a policy that indicates the action it will take in a given situation, and may train a model to establish a policy that will maximize reward.
強化学習は、一例として、ロボット100を制御するためのアルゴリズムを人間が制作するのではなく、人工知能エージェントがシミュレーションまたは実世界で相互作用しながら、開発者が指定した報酬(reward)を最大化するようにロボット100の制御方法を自ら学習するものであってよい。 As an example, reinforcement learning may involve an artificial intelligence agent interacting in a simulation or the real world to learn how to control the robot 100 in a way that maximizes a reward specified by the developer, rather than a human creating an algorithm to control the robot 100.
第1アルゴリズムは、このような強化学習によって自律走行車や自律走行ロボットを制御するためのアルゴリズムとして実現されたものであってよい。強化学習は、深層ニューラルネットワーク(Deep Neural Network:DNN)を使用して強化学習を実行するモデルである深層強化学習(Deep Reinforcement Learning:DRL)を含んでよく、第1アルゴリズムは、深層強化学習によって実現されたものであってよい。 The first algorithm may be realized as an algorithm for controlling an autonomous vehicle or an autonomous robot through such reinforcement learning. The reinforcement learning may include deep reinforcement learning (DRL), which is a model that performs reinforcement learning using a deep neural network (DNN), and the first algorithm may be realized through deep reinforcement learning.
ロボット100の自律走行を制御するにあたり、このような強化学習ベースのアルゴリズム、すなわち、第1アルゴリズムは、空間10に対して構築されたマップに対する経路計画(path planning)に基づいたアルゴリズムに比べて、障害物の回避などにおいてより高い性能と堅固性を実現することができる。 When controlling the autonomous movement of the robot 100, such a reinforcement learning-based algorithm, i.e., the first algorithm, can achieve higher performance and robustness in obstacle avoidance, etc., compared to algorithms based on path planning for a map constructed for the space 10.
第1アルゴリズムは、空間10の環境との相互作用によって、ロボット100が含むセンサの入力をロボット100の速度にマッピングするための最適なパラメータを学習するように実現されてよい。 The first algorithm may be implemented to learn optimal parameters for mapping inputs from sensors included in the robot 100 to the velocity of the robot 100 through interaction with the environment of the space 10.
したがって、第1アルゴリズムは、ロボット100が移動中に障害物を回避しながら目的地まで移動するようにロボット100を制御するように構成されてよい。 Therefore, the first algorithm may be configured to control the robot 100 so that the robot 100 moves to a destination while avoiding obstacles during movement.
第1アルゴリズムは、障害物30を回避して目的地まで移動するために、手段や方法を選ばないものであってよい。例えば、第1アルゴリズムだけに基づいてロボット100が制御される場合、ロボット100は、比較的まれではあるが、深刻な結果をもたらす行動から利用者や障害物を保護するために(このような保護によって性能損失がほぼ発生しないとしても)特別な試みをなさないことがある。 The first algorithm may be indifferent to means or methods for avoiding obstacles 30 and moving to a destination. For example, if the robot 100 is controlled solely based on the first algorithm, the robot 100 may not make special attempts to protect the user or obstacles from actions that, while relatively rare, have serious consequences, even if such protection results in little or no performance loss.
また、第1アルゴリズムだけに基づいてロボット100が制御される場合には、ロボット100が障害物30を回避するための回避範囲が制限されないため、障害物30を回避するために過度に遠くまで迂回することがある。さらに、第1アルゴリズムだけに基づいて制御されるロボット100は、狭い通路での整列が必要でロボット100が順に移動しなければならない状況でも、前方に位置する他のロボットを追い越して目的地に移動しようとしたり、他のロボットを回避できない場合にはその場で回転することがある。 In addition, if the robot 100 is controlled based solely on the first algorithm, the avoidance range for the robot 100 to avoid the obstacle 30 is not limited, and the robot 100 may make an excessively long detour to avoid the obstacle 30. Furthermore, even in a situation where the robots 100 must line up in a narrow passage and move in order, the robot 100 controlled based solely on the first algorithm may try to overtake other robots in front of it to move to its destination, or may turn around on the spot if it is unable to avoid the other robots.
このように、第1アルゴリズムだけに基づいてロボット100が制御される場合には、安全またはロボット100が提供するサービス上の必要に応じて障害物30を回避せずにロボット100を待機するように制御することが難しくなり、ロボット100が障害物30を回避するために空間10内の禁止区域に侵入する事態が発生することがある。 As such, if the robot 100 is controlled based solely on the first algorithm, it becomes difficult to control the robot 100 to wait without avoiding the obstacle 30 as required for safety or the services provided by the robot 100, and the robot 100 may enter a prohibited area within the space 10 in order to avoid the obstacle 30.
実施形態では、第1アルゴリズムによってロボット100の移動を制御して障害物30に対する回避性能を維持しながらも、障害物30に対する回避範囲を制限してロボット100の危険かつ非効率的な移動を最小限に抑えるために、第2アルゴリズムを追加で使用してロボット100の移動を制御する。 In this embodiment, the movement of the robot 100 is controlled using the first algorithm to maintain the ability to avoid the obstacle 30, but the second algorithm is also used to control the movement of the robot 100 in order to limit the range of the obstacle 30 to minimize dangerous and inefficient movement of the robot 100.
第2アルゴリズムは、空間10に対して構築されたマップ(例えば、屋内マップ)に基づいた経路計画にしたがってロボット100の自律走行を制御するための経路計画ベースのアルゴリズムであってよい。例えば、第2アルゴリズムは、空間10に対して構築されたマップに基づいて生成された目的地までの経路に基づいた経路計画にしたがってロボット100の移動を制御するように構成されてよい。 The second algorithm may be a path-planning-based algorithm for controlling the autonomous movement of the robot 100 according to a path plan based on a map (e.g., an indoor map) constructed for the space 10. For example, the second algorithm may be configured to control the movement of the robot 100 according to a path plan based on a path to a destination generated based on a map constructed for the space 10.
第2アルゴリズムは、空間10に対して構築されたマップを基盤としてロボット100が目的地まで移動するための最適な経路を決定し、この経路にしたがって障害物30を回避しながら移動するようにロボット100を制御するためのアルゴリズムであってよい。空間10に対するマップは、個別のマッピングロボットによって生成されたものであってよい。空間100に対して構築されたマップは、例えば、空間100に対する占有格子地図(occupancy grid map)であってよい。 The second algorithm may be an algorithm for determining an optimal path for the robot 100 to travel to a destination based on a map constructed for the space 10, and for controlling the robot 100 to travel along this path while avoiding obstacles 30. The map for the space 10 may be generated by an individual mapping robot. The map constructed for the space 100 may be, for example, an occupancy grid map for the space 100.
これと関連して、図12は、一例における、経路計画ベースのアルゴリズムが使用する空間に対するマップとして、占有格子地図(occupancy grid map)を示した図である。 In this regard, Figure 12 shows an example of an occupancy grid map, which serves as a map of space used by a path-planning-based algorithm.
図に示した占有格子地図100は、建物内の空間10に対するものであって、マッピングロボットによって生成されたものであってよい。図に示した経路1210は、一例における、ロボット100の現在地または出発地から目的地までの経路を示している。経路1210は、複数のノードと、ノードとノードを接続するエッジで構成されてよい。それぞれのノードは、経路上でロボット100が経由する経由地(または、目的地)を示してよい。ノードは、予め設定された原則に基づいて設定されるものであってよい。 The occupancy grid map 100 shown in the figure is for a space 10 within a building and may be generated by a mapping robot. The path 1210 shown in the figure indicates, in one example, the path of the robot 100 from its current location or starting point to its destination. The path 1210 may be composed of multiple nodes and edges connecting the nodes. Each node may indicate a waypoint (or destination) that the robot 100 will pass through on the path. The nodes may be set based on pre-set principles.
占有格子地図を使用する経路計画ベースのアルゴリズムである、占有格子ベースのプランナー(occupancy grid based planner)だけを使用してロボット100を制御する場合には、障害物30の回避が可能であり、障害物30に対する回避範囲の調節も可能であるが、このようなアルゴリズムは、ロボット100のセンシングデータまたは測位において誤差に弱いため、誤差が発生するときにロボット100の目的地までの移動の制御が効果的になされないことがある。 When controlling the robot 100 using only an occupancy grid-based planner, which is a path planning-based algorithm that uses an occupancy grid map, it is possible to avoid the obstacle 30 and adjust the avoidance range for the obstacle 30. However, such an algorithm is vulnerable to errors in the sensing data or positioning of the robot 100, and when errors occur, the movement of the robot 100 to its destination may not be effectively controlled.
実施形態では、第1アルゴリズムと第2アルゴリズムがコンピュータシステム内で並列実行されることによって、第1アルゴリズムによってロボット100の移動が制御されて障害物30に対する回避性能が維持され、第2アルゴリズムによって障害物30に対する回避範囲が制限されてロボット100の危険かつ非効率的な移動を最小限に抑えることができる。 In this embodiment, the first algorithm and the second algorithm are executed in parallel within a computer system, so that the first algorithm controls the movement of the robot 100 to maintain its ability to avoid obstacles 30, and the second algorithm limits the range within which the robot 100 can avoid obstacles 30, minimizing dangerous and inefficient movement of the robot 100.
すなわち、実施形態では、第1アルゴリズムと第2アルゴリズムをコンピュータシステムで並列実行するが、第2アルゴリズムは補助プランナとして使用されてよい。このような第2アルゴリズムは、空間10に対して構築されたマップに基づいた経路計画にしたがって、ロボット100が所定の回避条件(または、回避範囲)を満たしながら障害物30を回避できるかどうかを判断するために使用されてよい。 That is, in the embodiment, the first algorithm and the second algorithm are executed in parallel on a computer system, and the second algorithm may be used as an auxiliary planner. Such a second algorithm may be used to determine whether the robot 100 can avoid the obstacle 30 while satisfying a predetermined avoidance condition (or avoidance range) according to a path plan based on a map constructed for the space 10.
したがって、実施形態では、ロボット100が障害物30に直面した場合に、第2アルゴリズムによる判断に基づいて障害物30を回避するために、ロボット100が経路計画による経路(global path)から一定の距離以上に離れなければならない場合には、障害物30を回避せずに停止して待機するようにロボット100を制御してよい。このように、実施形態では、第1アルゴリズムと第2アルゴリズムが並列実行され、第2アルゴリズムによって所定の回避条件(または、回避範囲)を満たしながら障害物30を回避することが不可能であると判定された場合には、第1アルゴリズムによる命令は無視してロボット100を停止させることができる。この反面、ロボット100は、障害物30が、回避が可能なほどに小さいものであったり、一定の距離を離れなくても回避が可能なものであれば、第1アルゴリズムによって障害物30を回避するように制御されてよい。 Therefore, in an embodiment, when the robot 100 faces an obstacle 30, if the robot 100 must move a certain distance or more from the path (global path) according to the path planning in order to avoid the obstacle 30 based on the determination made by the second algorithm, the robot 100 may be controlled to stop and wait without avoiding the obstacle 30. As such, in an embodiment, the first algorithm and the second algorithm are executed in parallel, and if the second algorithm determines that it is impossible to avoid the obstacle 30 while satisfying a predetermined avoidance condition (or avoidance range), the robot 100 may be stopped by ignoring the command from the first algorithm. On the other hand, the robot 100 may be controlled to avoid the obstacle 30 according to the first algorithm if the obstacle 30 is small enough to be avoided or can be avoided without moving a certain distance away.
第1アルゴリズムと第2アルゴリズムによるロボット100の制御方法については、図6~11を参照しながらより詳しく説明する。 The control method of the robot 100 using the first and second algorithms will be explained in more detail with reference to Figures 6 to 11.
以上、図1~4を参照しながら説明した技術的特徴は、図5および図12にもそのまま適用されるため、重複する説明は省略する。 The technical features described above with reference to Figures 1 to 4 also apply to Figures 5 and 12, so duplicate explanations will be omitted.
以下の詳細な説明では、説明の便宜上、図5を参照しながら説明したプロセッサ500を含むコンピュータシステムによって実行される動作として、ロボットの目的地までの移動を制御する方法について説明する。 For ease of explanation, the following detailed description will describe a method for controlling movement of a robot to a destination as operations performed by a computer system including the processor 500 described with reference to Figure 5.
図6は、一実施形態における、強化学習ベースのアルゴリズムと経路計画ベースのアルゴリズムを使用してロボットの目的地への移動を制御する方法を示したフローチャートである。 Figure 6 is a flowchart illustrating a method for controlling a robot's movement toward a destination using a reinforcement learning-based algorithm and a path planning-based algorithm in one embodiment.
段階610で、コンピュータシステムは、ロボット100の移動を制御するために強化学習(Reinforcement Learning)によって予め学習された第1アルゴリズムに基づいて、目的地までのロボット100の移動を制御してよい。すなわち、ロボット100は、強化学習ベースのアルゴリズムに基づいて、目的地までの移動中に識別される障害物を回避しながら移動するように制御されてよい。 In step 610, the computer system may control the movement of the robot 100 to the destination based on a first algorithm previously trained by reinforcement learning to control the movement of the robot 100. That is, the robot 100 may be controlled to move while avoiding obstacles identified during movement to the destination based on the reinforcement learning-based algorithm.
目的地は、サービスを提供するためのロボット100の最終目的地、または最終目的地までの移動のためにロボット100が経由する経由地であってよい。 The destination may be the robot's 100 final destination for providing service, or a stopover point through which the robot 100 passes on its way to the final destination.
段階620で、コンピュータシステムは、ロボット100の目的地までの移動中に、空間10に対して構築されたマップに基づいた経路計画にしたがってロボット100の移動を制御するための第2アルゴリズムによって、ロボット100が障害物30に対する所定の回避条件を満たすかどうかを判定してよい。 In step 620, the computer system may determine whether the robot 100 satisfies a predetermined avoidance condition for the obstacle 30 using a second algorithm for controlling the movement of the robot 100 according to a path plan based on a map constructed for the space 10 while the robot 100 is moving to its destination.
コンピュータシステムでは、第1アルゴリズムと第2アルゴリズムがロボット100の移動を制御するために並列または同時に実行されるため、段階620での判定は、ロボット100の目的地までの移動中に常時実行されてよい。すなわち、段階620での判定は、ロボット100の移動中にリアルタイムで実行されてよい。 In the computer system, the first algorithm and the second algorithm are executed in parallel or simultaneously to control the movement of the robot 100, so the determination at step 620 may be performed continuously while the robot 100 is moving to its destination. In other words, the determination at step 620 may be performed in real time while the robot 100 is moving.
以下で説明する回避範囲および禁止区域などを含む回避条件は、ロボット100またはロボット制御システム120の管理者によって設定されてよい。管理者は、第2アルゴリズムによる経路計画のための条件として前記回避条件を設定してよい。 The avoidance conditions, including the avoidance range and prohibited areas described below, may be set by an administrator of the robot 100 or the robot control system 120. The administrator may set the avoidance conditions as conditions for path planning using the second algorithm.
これにより、コンピュータシステムは、ロボット100の移動中にロボット100によって障害物30が識別されたり障害物30に直面した場合に、前記回避条件を満たすかどうかを判定してよい。 As a result, the computer system may determine whether the avoidance conditions are met when the robot 100 identifies or encounters an obstacle 30 while the robot 100 is moving.
障害物30に対して回避条件を満たすかどうかを判定してロボット100を制御する具体的な方法については、図7~11を参照しながらより詳しく説明する。 The specific method for determining whether the obstacle 30 meets the avoidance conditions and controlling the robot 100 will be explained in more detail with reference to Figures 7 to 11.
段階630で、コンピュータシステムは、回避条件を満たすかどうかによってロボット100を制御してよい。例えば、コンピュータシステムは、回避条件が満たされる場合には、第1アルゴリズムによる制御にしたがって目的地まで移動するようにロボット100の移動を制御してよい。また、コンピュータシステムは、回避条件が満たされない場合には、ロボット100の移動を停止するようにロボット100を制御してよい。コンピュータシステムがロボット100の移動を停止するようにロボット100を制御するということは、ロボット100が停止するようにロボット100にインタラプトを伝達することであってよい。 In step 630, the computer system may control the robot 100 depending on whether the avoidance condition is met. For example, if the avoidance condition is met, the computer system may control the movement of the robot 100 to move to the destination according to control by the first algorithm. Furthermore, if the avoidance condition is not met, the computer system may control the robot 100 to stop the movement of the robot 100. When the computer system controls the robot 100 to stop the movement of the robot 100, it may transmit an interrupt to the robot 100 to stop the robot 100.
したがって、ロボット100は、第2アルゴリズムによって制限された障害物30に対する回避条件または回避範囲が満たされる場合に限り、障害物30を回避するように制御されることができ、前記回避条件または回避範囲が満たされない場合には、障害物30を回避せずに停止するように制御されることができる。コンピュータシステムは、障害物30を克服した後(例えば、障害物30が他の位置に移動した後)に目的地まで移動するようにロボット100を再び制御してよい。 Therefore, the robot 100 can be controlled to avoid the obstacle 30 only if the avoidance conditions or avoidance range for the obstacle 30 limited by the second algorithm are met, and can be controlled to stop without avoiding the obstacle 30 if the avoidance conditions or avoidance range are not met. The computer system may again control the robot 100 to move to the destination after overcoming the obstacle 30 (e.g., after the obstacle 30 has moved to another position).
以上、図1~5および図12を参照しながら説明した技術的特徴は、図6にもそのまま適用されるため、重複する説明は省略する。 The technical features described above with reference to Figures 1 to 5 and Figure 12 also apply to Figure 6, so duplicate explanations will be omitted.
図7は、一例における、ロボットの目的地までの移動を制御するにあたり、ロボットが障害物に対する所定の回避条件を満たすかどうかを判定する方法を示したフローチャートである。 Figure 7 is a flowchart showing an example method for determining whether a robot satisfies predetermined obstacle avoidance conditions when controlling the robot's movement to a destination.
段階710で、コンピュータシステムは、ロボット100の目的地までの移動中に障害物30が識別された場合、第2アルゴリズムによる経路計画に基づいて、所定の回避範囲を逸脱することなく障害物30を回避しながらロボット100が目的地まで移動できるかどうかを判定してよい。 In step 710, if an obstacle 30 is identified while the robot 100 is moving to the destination, the computer system may determine whether the robot 100 can move to the destination while avoiding the obstacle 30 without deviating from the predetermined avoidance range based on the path planning using the second algorithm.
回避条件は、上述した回避条件に該当するものであって、ロボット100またはロボット制御システム120の管理者によって設定されてよい。回避条件は、ロボット100が移動する距離および/またはロボット100の現在地からの半径を含んでよい。 The avoidance conditions correspond to the avoidance conditions described above and may be set by an administrator of the robot 100 or the robot control system 120. The avoidance conditions may include the distance traveled by the robot 100 and/or the radius from the current location of the robot 100.
ロボット100が回避範囲を逸脱することなく障害物30を回避して目的地まで移動できると判定された場合、第1アルゴリズムによる制御にしたがって目的地に移動するようにロボット100を制御してよい。この反面、ロボット100が回避範囲を逸脱せずには障害物30を回避して目的地に移動できない場合には、障害物30の前で停止するようにロボット100を制御してよい。 If it is determined that the robot 100 can avoid the obstacle 30 and move to the destination without departing from the avoidance range, the robot 100 may be controlled to move to the destination according to control by the first algorithm. On the other hand, if the robot 100 cannot avoid the obstacle 30 and move to the destination without departing from the avoidance range, the robot 100 may be controlled to stop in front of the obstacle 30.
例えば、コンピュータシステムは、空間10に対して構築されたマップを基盤として生成された目的地までの経路(例えば、全域経路(global path))に基づいた経路計画にしたがって、ロボット100が障害物30を回避するために所定の第1距離以上を移動しなければならない場合(例えば、所定の第1距離以上を迂回しなければならない場合)、ロボット100が回避範囲を逸脱せずには障害物30を回避できないと判定してよい。第2アルゴリズムによる経路計画上、ロボット100が障害物30を回避するために現在地から一定の半径以上を逸脱しなければならなかったり、一定の距離以上を移動しなければならない場合、コンピュータシステムは、ロボット100が回避範囲を逸脱せずには障害物30を回避できないと判定してよい。このとき、第1アルゴリズムによる制御命令は無視し、障害物30を回避せずに停止するようにロボット100を制御してよい。 For example, if the robot 100 must travel a predetermined first distance or more to avoid the obstacle 30 (e.g., a detour must be made a predetermined first distance or more) according to a path plan based on a path to a destination (e.g., a global path) generated based on a map constructed for the space 10, the computer system may determine that the robot 100 cannot avoid the obstacle 30 without leaving the avoidance range. If the path plan based on the second algorithm requires the robot 100 to travel a certain radius or more from its current location to avoid the obstacle 30, the computer system may determine that the robot 100 cannot avoid the obstacle 30 without leaving the avoidance range. In this case, the control command based on the first algorithm may be ignored, and the robot 100 may be controlled to stop without avoiding the obstacle 30.
これと関連して、図8は、一例における、ロボットが障害物に対する所定の回避範囲を逸脱するかどうかによってロボットの目的地までの移動を制御する方法を示した図である。 In this regard, Figure 8 shows a method for controlling the movement of a robot to a destination based on whether the robot deviates from a predetermined obstacle avoidance range, in one example.
図に示した例において、ロボット100は、目的地に移動するときに前方の障害物800を識別してよい。コンピュータシステム100は、第2アルゴリズムによる経路計画に基づいて、識別された障害物30を回避するための迂回経路が所定の回避範囲を逸脱するかどうかを判定してよい。例えば、コンピュータシステム100は、迂回経路を移動する場合にロボット100が移動する追加の距離が所定の値以上であったり、迂回経路を移動する場合にロボット100が現在地から一定の半径以上を離脱する場合、迂回経路が所定の回避範囲を逸脱したと判定してよい。このとき、第1アルゴリズムによる制御命令は無視し、障害物30を回避せずに停止するようにロボット100を制御してよい。 In the example shown in the figure, the robot 100 may identify an obstacle 800 ahead when moving to the destination. The computer system 100 may determine whether a detour path to avoid the identified obstacle 30 deviates from a predetermined avoidance range based on path planning using the second algorithm. For example, the computer system 100 may determine that the detour path has deviated from the predetermined avoidance range if the additional distance traveled by the robot 100 when moving along the detour path is equal to or greater than a predetermined value, or if the robot 100 deviates from its current location by more than a certain radius when moving along the detour path. In this case, the control command from the first algorithm may be ignored, and the robot 100 may be controlled to stop without avoiding the obstacle 30.
または、コンピュータシステムは、空間10に対して構築されたマップに基づいた経路計画にしたがい、ロボット100が障害物30を回避するために、目的地までの経路として、障害物30を無視してロボット100の現在地または出発地から目的地までの経路を連結した経路を所定の値以上に逸脱しなければならない場合、ロボット100が回避範囲を逸脱せずには障害物30を回避できないと判定してよい。 Alternatively, the computer system may determine that the robot 100 cannot avoid the obstacle 30 without deviating from the avoidance range if, in order for the robot 100 to avoid the obstacle 30, the path to the destination must deviate by more than a predetermined value from the path connecting the robot 100's current location or the starting location to the destination, ignoring the obstacle 30, according to a path plan based on a map constructed for the space 100.
例えば、コンピュータシステムは、空間10に対して構築されたマップを基盤として、ロボット100が、ロボット100の現在地または出発地から目的地までの直線から所定の第2距離以上を逸脱することなく障害物100を回避して目的地に移動できるかどうかを判定してよい。前記直線は、現在地または出発地から目的地までの経路(global path)に該当してよい。コンピュータシステムは、ロボット100が第2距離以上を逸脱せずには障害物30を回避して目的地に移動できないと判定された場合、障害物30を前で停止するようにロボット100を制御してよい。 For example, the computer system may determine, based on a map constructed for the space 10, whether the robot 100 can move to the destination while avoiding the obstacle 30 without deviating by more than a predetermined second distance from a straight line from the robot's current location or starting point to the destination. The straight line may correspond to a global path from the robot's current location or starting point to the destination. If the computer system determines that the robot 100 cannot move to the destination while avoiding the obstacle 30 without deviating by more than the second distance, it may control the robot 100 to stop in front of the obstacle 30.
これと関連して、図10は、一例における、ロボットが障害物を回避するために目的地までの経路に対して所定の回避範囲を逸脱するかどうかによって、ロボットの目的地までの移動を制御する方法を示した図である。 In this regard, Figure 10 is a diagram showing, in one example, a method for controlling a robot's movement to a destination based on whether the robot deviates from a predetermined avoidance range on the path to the destination in order to avoid an obstacle.
図に示したポイント1010は出発地またはロボット100の現在地であってよく、ポイント1020は目的地であってよい。ポイント1010とポイント1020を連結する直線は、上述した直線に該当してよい。このような直線から垂線の足を下して所定の第2距離が定められてよい。第2距離は、ロボット100またはロボット制御システム120の管理者によって設定される値である回避範囲であって、例えば、1mであってよい。 Point 1010 shown in the figure may be the starting point or the current location of robot 100, and point 1020 may be the destination. The line connecting point 1010 and point 1020 may correspond to the line described above. A predetermined second distance may be determined by dropping a perpendicular line from such a line. The second distance is an avoidance range, which is a value set by an administrator of robot 100 or robot control system 120, and may be, for example, 1 m.
ロボットが前記直線からの第2距離を逸脱せずに障害物1030を回避しながら目的地1020に移動できると判定された場合、ロボット100は、第1アルゴリズムに基づいて目的地まで移動するように制御されてよく、そうでない場合、ロボット100は、障害物1030を回避せずに障害物1030の前で停止するように制御されてよい。一方、障害物1030を迂回するための迂回経路1が存在したとしても、このような迂回経路1の利用は前記直線から第2距離を逸脱するものであるため、考慮されないようにしてよい。 If it is determined that the robot can move to the destination 1020 while avoiding the obstacle 1030 without deviating by the second distance from the straight line, the robot 100 may be controlled to move to the destination based on the first algorithm; otherwise, the robot 100 may be controlled to stop in front of the obstacle 1030 without avoiding it. On the other hand, even if a detour path 1 exists to bypass the obstacle 1030, the use of such detour path 1 may not be considered because it deviates by the second distance from the straight line.
図に示した実施形態では、回避範囲内において、第1アルゴリズムによる制御にしたがって回避が可能な障害物1030は、ロボット100が第1アルゴリズムによる制御によって容易に回避できるほどに小さい障害物として見なされてよい。 In the illustrated embodiment, the obstacle 1030 within the avoidance range that can be avoided under control by the first algorithm may be considered to be an obstacle that is small enough that the robot 100 can easily avoid it under control by the first algorithm.
段階720で、コンピュータシステムは、ロボット100の目的地までの移動中に障害物30が識別された場合、第2アルゴリズムによる経路計画に基づいて、所定の禁止区域に侵入することなく障害物30を回避してロボット100が目的地まで移動できるかどうかを判定してよい。禁止区域は、ロボット100またはロボット制御システム120の管理者によって設定されるものであって、ロボット100の侵入が許容されない空間10内の領域であってよい。 In step 720, if an obstacle 30 is identified while the robot 100 is moving to the destination, the computer system may determine, based on path planning using the second algorithm, whether the robot 100 can move to the destination while avoiding the obstacle 30 without entering a predetermined prohibited area. The prohibited area is set by an administrator of the robot 100 or the robot control system 120, and may be an area within the space 10 into which the robot 100 is not permitted to enter.
コンピュータシステムは、ロボット100が禁止区域に侵入せずに障害物30を回避して目的地まで移動できる場合、第1アルゴリズムによって目的地まで移動するようにロボット100を制御してよい。コンピュータシステムは、ロボット100が禁止区域に侵入せずには障害物30を回避して目的地に移動できない場合、または禁止区域に侵入しないために所定の距離以上を迂回しなければならない場合には、障害物30の前で停止するようにロボット100を制御してよい。 If the robot 100 can move to the destination by avoiding the obstacle 30 without entering the prohibited area, the computer system may control the robot 100 to move to the destination according to the first algorithm. If the robot 100 cannot move to the destination by avoiding the obstacle 30 without entering the prohibited area, or if the robot 100 must make a detour of more than a predetermined distance to avoid entering the prohibited area, the computer system may control the robot 100 to stop in front of the obstacle 30.
これと関連して、図9は、一例における、ロボットが障害物を回避するために所定の禁止区域に侵入するかどうかによって、ロボットの目的地までの移動を制御する方法を示した図である。 In this regard, Figure 9 shows a method for controlling the movement of a robot to a destination in one example, depending on whether the robot enters a predetermined prohibited area to avoid an obstacle.
禁止区域900は、ロボット100またはロボット制御システム120の管理者によって設定されるものであって、例えば、トイレ、ロボット100の非作業空間、その他の制限区域であってよい。禁止区域900は、空間10に対して生成されるマップ上で識別されてよい。したがって、第2アルゴリズムによる経路計画に基づいて、ロボット100が障害物800を回避するために禁止区域900に侵入するかどうかを判定することができる。図に示すように、ロボット100が禁止区域900に侵入せずには障害物800を回避して目的地に移動できない場合には、障害物800の前で停止するようにロボット100を制御してよい。 The prohibited area 900 is set by an administrator of the robot 100 or the robot control system 120 and may be, for example, a toilet, a non-working space for the robot 100, or other restricted area. The prohibited area 900 may be identified on a map generated for the space 10. Therefore, based on the path planning by the second algorithm, it can be determined whether the robot 100 will enter the prohibited area 900 to avoid the obstacle 800. As shown in the figure, if the robot 100 cannot avoid the obstacle 800 and move to the destination without entering the prohibited area 900, the robot 100 may be controlled to stop in front of the obstacle 800.
段階730で、コンピュータシステムは、ロボット100の目的地までの移動中に障害物30が識別された場合、第2アルゴリズムによる経路計画に基づいて、ロボット100が後進することなく障害物30を回避して目的地まで移動できるかどうかを判定してよい。ロボット100が障害物30を回避するために後進しなければならないと判定された場合、コンピュータシステムは、障害物30の前で停止するようにロボット100を制御してよい。このように、実施形態では、障害物30を回避するための迂回経路がロボット100の後進を必要とする場合、このような迂回経路は、ロボット100の移動制御において考慮されないようにしてよい。 In step 730, if an obstacle 30 is identified while the robot 100 is moving to the destination, the computer system may determine, based on the path planning by the second algorithm, whether the robot 100 can move to the destination while avoiding the obstacle 30 without moving backward. If it is determined that the robot 100 must move backward to avoid the obstacle 30, the computer system may control the robot 100 to stop in front of the obstacle 30. Thus, in an embodiment, if a detour path to avoid the obstacle 30 requires the robot 100 to move backward, such a detour path may not be taken into consideration in the movement control of the robot 100.
以上、図1~6および図12を参照しながら説明した技術的特徴は、図7~10にもそのまま適用されるため、重複する説明は省略する。 The technical features described above with reference to Figures 1 to 6 and Figure 12 also apply to Figures 7 to 10, so duplicate explanations will be omitted.
図11は、一例における、ロボットの整列が求められる領域においてロボットの移動を制御する方法を示した図である。 Figure 11 shows an example of a method for controlling robot movement in an area where robot alignment is required.
上述したとおり、ロボット100が他の通路に迂回せずに回避できるほどに障害物1120が小さい場合には、ロボット100は、第1アルゴリズムによる制御にしたがって、他の通路に迂回したり障害物1120の前で停止したりせずに障害物1120を回避して目的地に移動するようにロボット100を制御してよい。 As described above, if the obstacle 1120 is small enough that the robot 100 can avoid it without detouring into another passage, the robot 100 may be controlled by the first algorithm to avoid the obstacle 1120 and move to the destination without detouring into another passage or stopping in front of the obstacle 1120.
例えば、図10を参照しながら説明した方法によって、第1アルゴリズムによる制御にしたがって回避できる障害物1120は、十分に小さい障害物1120であると判定されてよい。これにより、第2アルゴリズムによる判定として十分に小さい障害物1120は、第1アルゴリズムによる制御にしたがって回避し、そうでない障害物は、ロボット100の制御がインタラプトされて回避しないようにしてよい。 For example, using the method described with reference to FIG. 10, an obstacle 1120 that can be avoided according to control by the first algorithm may be determined to be a sufficiently small obstacle 1120. As a result, an obstacle 1120 that is determined to be sufficiently small according to the second algorithm may be avoided according to control by the first algorithm, and for obstacles that are not, control of the robot 100 may be interrupted so that they cannot be avoided.
または、障害物1120が十分に小さいかどうかは、ロボット100のセンサ部106によるセンシングによって、コンピュータシステムによって決定されてもよい。 Alternatively, whether the obstacle 1120 is sufficiently small may be determined by a computer system through sensing by the sensor unit 106 of the robot 100.
図に示した通路1110は、空間10内のロボット100の整列が求められる領域であってよい。または、通路1110は、狭小区域(confined/narrow area)であって、例えば、2台以上のロボットが(横方向に)並んで走行することができない幅をの領域であってよい。例えば、通路1110は、複数のロボットのそれぞれが一列に並んで順に通過することが求められる空間10内の区間であってもよい。 The illustrated passage 1110 may be an area within the space 10 where the robots 100 are required to line up. Alternatively, the passage 1110 may be a confined/narrow area, e.g., an area too narrow for two or more robots to travel side by side (laterally). For example, the passage 1110 may be a section within the space 10 where multiple robots are required to pass through in a line in sequence.
例えば、通路1110は、宅配配達サービスを提供するロボット100が宅配物を受け取るための位置に移動するために整列する領域であってよい。 For example, the aisle 1110 may be an area where robots 100 providing parcel delivery services line up to move to a position to receive parcels.
コンピュータシステム100は、図6を参照しながら説明した段階620の判定結果にしたがって、通路110内で、ロボット100が他の通路に迂回せずに回避できるほどに小さい障害物1120に対しては、第1アルゴリズムによる制御にしたがって、他の通路に迂回せずに障害物1120を回避して目的地に移動するように制御してよい。 In accordance with the determination result of step 620 described with reference to FIG. 6, when an obstacle 1120 in the passage 110 is small enough that the robot 100 can avoid it without detouring to another passage, the computer system 100 may control the robot 100 to avoid the obstacle 1120 and move to the destination without detouring to another passage, in accordance with control by the first algorithm.
このとき、コンピュータシステム100は、通路1110内で、ロボット100の前方に他のロボットが識別されたとき、ロボット100が他のロボットを追い越さずに他のロボットの後ろで待機するように制御してよい。言い換えれば、コンピュータシステム100は、通路1110内で、障害物30として他のロボットが識別される場合、このような他のロボットは十分に小さい障害物1120には該当しないと判断されるため、したがって、ロボット100は、他のロボットの後ろ、すなわち、他のロボットを前にして待機するように制御されてよい。したがって、通路1110内で、ロボットは、横入りをしたり他のロボットを追い越して無理やり目的地に向かって移動すせず整列しながら、ロボットがそれぞれ順に目的地に移動するようにすることができる。 In this case, when another robot is identified in front of the robot 100 in the passage 1110, the computer system 100 may control the robot 100 to wait behind the other robot without overtaking the other robot. In other words, when another robot is identified as an obstacle 30 in the passage 1110, the computer system 100 determines that such other robot does not fall under the category of a sufficiently small obstacle 1120, and therefore the robot 100 may be controlled to wait behind the other robot, i.e., in front of the other robot. Therefore, within the passage 1110, the robots can be lined up without cutting in line or overtaking other robots and forcibly moving towards their destinations, and each robot can move to its destination in turn.
本実施形態は、通路1110に侵入するロボット100を軌跡追従(trajectory following)アルゴリズムによって制御する場合に比べて、通路1110における優れたロボット100の整列性能を達成することができる。軌跡追従アルゴリズムによってロボット100を制御する場合、ロボット100は、障害物が識別されると停止するため、回避することが可能な小さな障害物1120が識別されたときにも停止するという問題が生じることがある。さらに、ロボット100に対する測位誤差が発生し、ロボット1110が通路1110に隣接したときにロボット100の動きが提示するという問題が生じることもある。 This embodiment can achieve superior alignment performance of the robot 100 in the passage 1110 compared to when the robot 100 entering the passage 1110 is controlled by a trajectory following algorithm. When the robot 100 is controlled by a trajectory following algorithm, the robot 100 stops when an obstacle is identified, which can cause a problem of the robot 100 stopping even when a small obstacle 1120 that can be avoided is identified. Furthermore, positioning errors can occur for the robot 100, which can cause a problem of the robot 100's movement being unclear when the robot 1110 approaches the passage 1110.
これに比べて、実施形態において、コンピュータシステム100は、識別される障害物30に対する第2アルゴリズムによる判定にしたがって、小さい障害物1120は第1アルゴリズムによる制御にしたがって回避することができ、そうでない障害物(例えば、他のロボット)は回避せずに障害物の前で停止するようにロボット100を制御することができる。 In contrast, in an embodiment, the computer system 100 can control the robot 100 to avoid small obstacles 1120 according to control by the first algorithm, and to stop in front of other obstacles (e.g., other robots) without avoiding them, in accordance with the determination by the second algorithm for the identified obstacles 30.
以上、図1~10および図12を参照しながら説明した技術的特徴は、図11にもそのまま適用されるため、重複する説明は省略する。 The technical features described above with reference to Figures 1 to 10 and Figure 12 also apply to Figure 11, so duplicate explanations will be omitted.
上述した装置は、ハードウェア構成要素、ソフトウェア構成要素、またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)およびOS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを記録、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者であれば、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。 The devices described above may be implemented using hardware components, software components, or a combination of hardware and software components. For example, the devices and components described in the embodiments may be implemented using one or more general-purpose or special-purpose computers, such as a processor, controller, arithmetic logic unit (ALU), digital signal processor, microcomputer, field programmable gate array (FPGA), programmable logic unit (PLU), microprocessor, or various devices capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications that run on the OS. The processing device may also access, record, manipulate, process, and generate data in response to the execution of the software. For ease of understanding, the description may refer to the use of a single processing device; however, those skilled in the art will recognize that a processing device may include multiple processing elements and/or multiple types of processing elements. For example, a processing unit may include multiple processors or one processor and one controller. Other processing configurations, such as parallel processors, are also possible.
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置(virtual equipmet)、コンピュータ記録媒体または装置に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で記録されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータ読み取り可能な記録媒体に記録されてよい。 Software may include computer programs, code, instructions, or a combination of one or more of these, and may configure a processing device to operate as desired or may independently or collectively instruct the processing device. The software and/or data may be embodied in any type of machine, component, physical device, virtual device, computer storage medium, or device to be interpreted by the processing device or to provide instructions or data to the processing device. The software may be distributed and stored and executed in a distributed manner across computer systems connected by a network. The software and data may be stored on one or more computer-readable storage media.
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。前記コンピュータで読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含んでよい。前記媒体に記録されるプログラム命令は、実施形態のために特別に設計されたものであってもよいし、コンピュータソフトウエアの当業者に公知された使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープのような磁気媒体、CD-ROMおよびDVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどのようなプログラム命令を記録して実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例としては、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。 Methods according to embodiments may be embodied in the form of program instructions executable by various computer means and recorded on a computer-readable medium. The computer-readable medium may include, alone or in combination, program instructions, data files, data structures, and the like. The program instructions recorded on the medium may be specially designed for the embodiments or may be readily available to those skilled in the art of computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROMs and DVDs; magneto-optical media such as floptical disks; and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language code, such as that generated by a compiler, but also high-level language code executed by a computer using an interpreter, for example.
以上のように、実施形態を、限定された実施形態および図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。 While the embodiments have been described above based on limited examples and drawings, those skilled in the art will appreciate that various modifications and variations may be made in light of the above description. For example, the techniques described may be performed in an order different from that described, and/or the components of the described systems, structures, devices, circuits, etc. may be coupled or combined in a manner different from that described, or may be substituted or replaced by other components or equivalents, and still achieve suitable results.
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付の特許請求の範囲に属する。 Therefore, different embodiments that are equivalent to the claims are within the scope of the appended claims.
Claims (16)
前記ロボットの移動を制御するために強化学習によって予め学習された第1アルゴリズムに基づいて、目的地までの前記ロボットの移動を制御する段階、
前記ロボットの前記目的地までの移動中に、前記空間に対して構築されたマップに基づいた経路計画にしたがって前記ロボットの移動を制御するための第2アルゴリズムに基づいて、前記ロボットが障害物に対する所定の回避条件を満たすかどうかを判定する段階、および
前記回避条件を満たす場合には、前記第1アルゴリズムによる制御にしたがって前記目的地に移動するように前記ロボットの移動を制御し、前記回避条件を満たさない場合には、前記ロボットの移動を停止するように前記ロボットを制御する段階
を含み、前記第1アルゴリズムは、前記障害物に対する回避範囲を制限することなく前記ロボットの移動を制御するように構成されている、ロボット制御方法。 A robot control method executed by a robot that moves in a space or a robot control system that controls a robot, comprising:
controlling the movement of the robot to a destination based on a first algorithm previously learned by reinforcement learning for controlling the movement of the robot;
a step of determining whether the robot satisfies a predetermined avoidance condition for an obstacle based on a second algorithm for controlling the movement of the robot according to a path plan based on a map constructed for the space while the robot is moving to the destination; and a step of controlling the movement of the robot to move to the destination in accordance with control by the first algorithm if the avoidance condition is satisfied, and controlling the robot to stop moving if the avoidance condition is not satisfied , wherein the first algorithm is configured to control the movement of the robot without limiting an avoidance range for the obstacle .
請求項1に記載のロボット制御方法。 the first algorithm and the second algorithm are executed in parallel in the robot or the robot control system to control movement of the robot.
The robot control method according to claim 1 .
前記目的地は、前記サービスを提供するための前記ロボットの最終目的地、または前記最終目的地までの移動のために前記ロボットが経由する経由地である、
請求項1に記載のロボット制御方法。 the robot is a service robot that provides a service within the space,
The destination is a final destination of the robot for providing the service or a waypoint through which the robot passes on its way to the final destination.
The robot control method according to claim 1 .
前記ロボットが移動中に障害物を回避しながら前記目的地まで移動するように前記ロボットを制御するように構成され、
前記第2アルゴリズムは、
前記空間に対して構築されたマップを基盤として生成された前記目的地までの経路に基づいた前記経路計画にしたがって前記ロボットの移動を制御するように構成される、
請求項1に記載のロボット制御方法。 The first algorithm:
The robot is configured to control the robot so that the robot moves to the destination while avoiding obstacles during movement,
The second algorithm:
and controlling movement of the robot according to the path plan based on a path to the destination generated based on a map constructed for the space.
The robot control method according to claim 1 .
請求項1に記載のロボット制御方法。 the map constructed for the space is an occupancy grid map for the space;
The robot control method according to claim 1 .
前記ロボットの前記目的地までの移動中に識別された障害物に対し、前記経路計画に基づいて、所定の回避範囲を逸脱することなく前記障害物を回避して前記目的地まで移動できるかどうかを判定する段階
を含み、
前記ロボットが前記回避範囲を逸脱せずに前記障害物を回避して前記目的地に移動できる場合、前記ロボットは、前記第1アルゴリズムによる制御にしたがって前記目的地まで移動するように制御され、
前記ロボットが前記回避範囲を逸脱せずには前記障害物を回避して前記目的地まで移動できない場合、前記ロボットは、前記障害物の前で停止するように制御される、
請求項1に記載のロボット制御方法。 The determining step includes:
a step of determining, based on the path plan, whether or not the robot can avoid an obstacle identified during the robot's movement to the destination without deviating from a predetermined avoidance range and move to the destination,
When the robot can move to the destination while avoiding the obstacle without departing from the avoidance range, the robot is controlled to move to the destination in accordance with control by the first algorithm;
When the robot cannot avoid the obstacle and move to the destination without leaving the avoidance range, the robot is controlled to stop in front of the obstacle.
The robot control method according to claim 1 .
前記空間に対して構築されたマップを基盤として生成された前記目的地までの経路に基づいた前記経路計画にしたがって、前記ロボットが前記障害物を回避するために所定の第1距離以上を移動しなければならない場合、前記ロボットが前記回避範囲を逸脱せずには前記障害物を回避できないと判定する、
請求項6に記載のロボット制御方法。 The determining step includes:
and determining that the robot cannot avoid the obstacle without departing from the avoidance range when the robot must move a predetermined first distance or more to avoid the obstacle according to the path plan based on a path to the destination generated on the basis of a map constructed for the space.
The robot control method according to claim 6.
前記空間に対して構築されたマップに基づいて、前記ロボットが、前記ロボットの現在地または出発地から前記目的地までの直線から所定の第2距離以上を逸脱することなく前記障害物を回避して前記目的地まで移動できるかどうかを判定し、
前記ロボットが前記第2距離以上を逸脱せずには前記障害物を回避して前記目的地まで移動できない場合、前記ロボットは、前記障害物の前で停止するように制御される、
請求項6に記載のロボット制御方法。 The determining step includes:
determining whether the robot can move to the destination while avoiding the obstacles without deviating by more than a second predetermined distance from a straight line from the current location or the starting location of the robot to the destination based on the map constructed for the space;
When the robot cannot move to the destination while avoiding the obstacle without deviating by the second distance or more, the robot is controlled to stop in front of the obstacle.
The robot control method according to claim 6.
請求項6に記載のロボット制御方法。 When the obstacle is small enough that the robot can avoid it without detouring to another path, the robot is controlled to move to the destination while avoiding the obstacle without detouring to another path or stopping in front of the obstacle, according to control by the first algorithm.
The robot control method according to claim 6.
前記ロボットの前記目的地までの移動中に識別された障害物に対し、前記経路計画に基づいて、所定の禁止区域に侵入することなく前記障害物を回避して前記目的地まで移動できるかどうかを判定する段階
を含み、
前記ロボットが前記禁止区域に侵入せずに前記障害物を回避して前記目的地に移動できる場合、前記ロボットは、前記第1アルゴリズムによる制御にしたがって前記目的地まで移動するように制御され、
前記ロボットが前記禁止区域に侵入せずには前記障害物を回避して前記目的地に移動できない場合、前記ロボットは、前記障害物の前で停止するように制御される、
請求項1に記載のロボット制御方法。 The determining step includes:
and determining, based on the path plan, whether or not the robot can move to the destination while avoiding an obstacle identified during the robot's movement to the destination without entering a predetermined prohibited area,
If the robot can move to the destination while avoiding the obstacle without entering the prohibited area, the robot is controlled to move to the destination in accordance with control by the first algorithm;
If the robot cannot move to the destination while avoiding the obstacle without entering the prohibited area, the robot is controlled to stop in front of the obstacle.
The robot control method according to claim 1 .
前記ロボットの前記目的地までの移動中に識別された障害物に対し、前記経路計画に基づいて、前記ロボットが後進することなく前記障害物を回避して前記目的地まで移動できるかどうかを判定する段階
を含み、
前記ロボットが前記障害物を回避するために後進が必要であると判断された場合、前記ロボットは、前記障害物の前で停止するように制御される、
請求項1に記載のロボット制御方法。 The determining step includes:
determining, based on the path plan, whether the robot can avoid an obstacle identified during the robot's movement to the destination without moving backward and move to the destination;
When it is determined that the robot needs to move backward to avoid the obstacle, the robot is controlled to stop in front of the obstacle.
The robot control method according to claim 1 .
前記ロボットが前記目的地まで移動するための通路内で、他の通路に迂回することなく回避できるほどに小さい障害物に対しては、前記第1アルゴリズムによる制御にしたがって、他の通路に迂回せずに前記障害物を回避して前記目的地まで移動するように前記ロボットを制御し、
前記通路内で、前記ロボットの前方に前記障害物として他のロボットが識別された場合、前記ロボットは、前記他のロボットを追い越すことなく前記他のロボットの後ろで待機するように制御される、
請求項1に記載のロボット制御方法。 Depending on the result of the above judgment,
When an obstacle is small enough to be avoided within a path along which the robot travels to the destination without detouring to another path, the robot is controlled in accordance with the first algorithm so as to avoid the obstacle and travel to the destination without detouring to another path;
When another robot is identified as the obstacle ahead of the robot in the passage, the robot is controlled to wait behind the other robot without overtaking the other robot.
The robot control method according to claim 1 .
請求項12に記載のロボット制御方法。 The passage is an area in the space where the robots are required to be aligned, or an area of a width that does not allow two or more robots to travel side by side.
The robot control method according to claim 12.
コンピュータで読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサ
を含み、
前記少なくとも1つのプロセッサは、
前記ロボットの移動を制御するために強化学習によって予め学習された第1アルゴリズムに基づいて、目的地までの前記ロボットの移動を制御し、前記ロボットの前記目的地までの移動中に、前記空間に対して構築されたマップに基づいた経路計画にしたがって前記ロボットの移動を制御する第2アルゴリズムに基づいて、前記ロボットが障害物に対する所定の回避条件を満たすかどうかを判定し、前記回避条件を満たす場合には、前記第1アルゴリズムによる制御にしたがって前記目的地まで移動するように前記ロボットの移動を制御し、前記回避条件を満たさない場合には、前記ロボットの移動を停止するように前記ロボットを制御するものであり、前記第1アルゴリズムは、前記障害物に対する回避範囲を制限することなく前記ロボットの移動を制御するように構成されている、コンピュータシステム。 A computer system for a robot that moves in space,
at least one processor implemented to execute computer readable instructions;
The at least one processor
A computer system that controls the movement of the robot to a destination based on a first algorithm learned in advance by reinforcement learning to control the movement of the robot, determines whether the robot satisfies a predetermined avoidance condition for an obstacle based on a second algorithm that controls the movement of the robot according to a path plan based on a map constructed for the space while the robot is moving to the destination, and controls the movement of the robot to move to the destination in accordance with control by the first algorithm if the avoidance condition is satisfied, and controls the robot to stop moving if the avoidance condition is not satisfied, wherein the first algorithm is configured to control the movement of the robot without limiting the avoidance range for the obstacle .
前記建物内の空間を移動する少なくとも1つのロボット
が配置され、
前記ロボットは、前記ロボット内に含まれるか又はサーバであるコンピュータシステムによって、前記建物内での移動が制御され、
前記コンピュータシステムは、
コンピュータで読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサ
を含み、
前記少なくとも1つのプロセッサは、
前記ロボットの移動を制御するために強化学習によって予め学習された第1アルゴリズムに基づいて、目的地までの前記ロボットの移動を制御し、前記ロボットの前記目的地までの移動中に、前記空間に対して構築されたマップに基づいた経路計画にしたがって前記ロボットの移動を制御するための第2アルゴリズムに基づいて、前記ロボットが障害物に対する所定の回避条件を満たすかどうかを判定し、前記回避条件を満たす場合には、前記第1アルゴリズムによる制御にしたがって前記目的地まで移動するように前記ロボットの移動を制御し、前記回避条件が満たされない場合には、前記ロボットの移動を停止するように前記ロボットを制御するものであり、前記第1アルゴリズムは、前記障害物に対する回避範囲を制限することなく前記ロボットの移動を制御するように構成されている、建物。 A building,
At least one robot is disposed to move through the space within the building;
The robot's movement within the building is controlled by a computer system that is included in the robot or is a server;
The computer system includes:
at least one processor implemented to execute computer readable instructions;
The at least one processor
A building, comprising: a first algorithm for controlling the movement of the robot to a destination based on a first algorithm learned in advance by reinforcement learning for controlling the movement of the robot; a second algorithm for controlling the movement of the robot according to a path plan based on a map constructed for the space during the movement of the robot to the destination based on which it is determined whether the robot satisfies a predetermined avoidance condition for an obstacle; if the avoidance condition is satisfied, the movement of the robot is controlled to move to the destination in accordance with control by the first algorithm; and if the avoidance condition is not satisfied, the robot is controlled to stop moving; and the first algorithm is configured to control the movement of the robot without limiting the avoidance range for the obstacle .
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020210185225A KR102707390B1 (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 |
| KR10-2021-0185225 | 2021-12-22 | ||
| 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 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2025501597A JP2025501597A (en) | 2025-01-22 |
| JP7769126B2 true JP7769126B2 (en) | 2025-11-12 |
Family
ID=86902778
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2024538143A Active JP7769126B2 (en) | 2021-12-22 | 2022-09-06 | Method and system for controlling robots using reinforcement learning-based algorithms and path planning-based algorithms, and buildings equipped with robots |
Country Status (3)
| Country | Link |
|---|---|
| JP (1) | JP7769126B2 (en) |
| KR (2) | KR102707390B1 (en) |
| WO (1) | WO2023120867A1 (en) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2025063328A1 (en) * | 2023-09-19 | 2025-03-27 | 엘지전자 주식회사 | Driving robot and control method thereof |
| KR102665831B1 (en) * | 2023-10-19 | 2024-05-13 | (주)로보라이프 | Method of moving in person-following mode and robots that implement it |
| KR102821537B1 (en) * | 2023-12-08 | 2025-06-17 | 주식회사 클로봇 | Multi-robot traffic management system using queue driving technology |
| KR102817100B1 (en) * | 2024-03-04 | 2025-06-05 | 네이버 주식회사 | Method and system for controlling robot based on trajectory optimization in accordance with optimizing cost or reward |
| WO2026049097A1 (en) * | 2024-08-30 | 2026-03-05 | 주식회사 유엑스팩토리 | Reinforcement learning-based autonomous driving system capable of responding to dynamic environmental changes and operating method thereof |
| KR102808178B1 (en) | 2024-10-24 | 2025-05-19 | 주식회사 아임토리 | Apparatus and Method for Controlling Robot Movements Using Digital Twin |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010134581A (en) | 2008-12-03 | 2010-06-17 | Seiko Epson Corp | Robot control method and robot control system |
| JP2012022467A (en) | 2010-07-13 | 2012-02-02 | Murata Mach Ltd | Autonomous mobile |
| WO2018087546A1 (en) | 2016-11-08 | 2018-05-17 | Dogtooth Technologies Limited | A robotic fruit picking system |
| WO2018110568A1 (en) | 2016-12-12 | 2018-06-21 | 日本電産シンポ株式会社 | Moving body performing obstacle avoidance operation and computer program therefor |
| JP2020038631A (en) | 2018-08-30 | 2020-03-12 | キヤノン株式会社 | Information processing apparatus, information processing method, program, and system |
| US20210103286A1 (en) | 2019-10-04 | 2021-04-08 | Hong Kong Applied Science And Technology Research Institute Co., Ltd. | Systems and methods for adaptive path planning |
| US20210114213A1 (en) | 2019-10-21 | 2021-04-22 | Lg Electronics Inc. | Robot cleaner and operating method thereof |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP3837641B1 (en) * | 2018-09-14 | 2024-11-06 | Google LLC | Deep reinforcement learning-based techniques for end to end robot navigation |
| KR102781634B1 (en) * | 2019-10-21 | 2025-03-19 | 엘지전자 주식회사 | An artificial intelligence apparatus for sharing information of stuck area and method thereof |
| KR102250541B1 (en) * | 2020-01-16 | 2021-05-11 | 광주과학기술원 | Mobile robot for overcoming obstacle |
-
2021
- 2021-12-22 KR KR1020210185225A patent/KR102707390B1/en active Active
-
2022
- 2022-09-06 WO PCT/KR2022/013359 patent/WO2023120867A1/en not_active Ceased
- 2022-09-06 JP JP2024538143A patent/JP7769126B2/en active Active
-
2024
- 2024-09-11 KR KR1020240123763A patent/KR102801030B1/en active Active
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010134581A (en) | 2008-12-03 | 2010-06-17 | Seiko Epson Corp | Robot control method and robot control system |
| JP2012022467A (en) | 2010-07-13 | 2012-02-02 | Murata Mach Ltd | Autonomous mobile |
| WO2018087546A1 (en) | 2016-11-08 | 2018-05-17 | Dogtooth Technologies Limited | A robotic fruit picking system |
| WO2018110568A1 (en) | 2016-12-12 | 2018-06-21 | 日本電産シンポ株式会社 | Moving body performing obstacle avoidance operation and computer program therefor |
| JP2020038631A (en) | 2018-08-30 | 2020-03-12 | キヤノン株式会社 | Information processing apparatus, information processing method, program, and system |
| US20210103286A1 (en) | 2019-10-04 | 2021-04-08 | Hong Kong Applied Science And Technology Research Institute Co., Ltd. | Systems and methods for adaptive path planning |
| US20210114213A1 (en) | 2019-10-21 | 2021-04-22 | Lg Electronics Inc. | Robot cleaner and operating method thereof |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20240141674A (en) | 2024-09-27 |
| WO2023120867A1 (en) | 2023-06-29 |
| JP2025501597A (en) | 2025-01-22 |
| KR102801030B1 (en) | 2025-04-28 |
| KR102707390B1 (en) | 2024-09-20 |
| KR20230095588A (en) | 2023-06-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7769126B2 (en) | Method and system for controlling robots using reinforcement learning-based algorithms and path planning-based algorithms, and buildings equipped with robots | |
| EP3936965B1 (en) | Method and system for specifying nodes for robot path planning | |
| JP7843140B2 (en) | Vehicle control and guidance | |
| JP7851524B2 (en) | Method and system for conditional operation of autonomous agents | |
| Kammel et al. | Team AnnieWAY's autonomous system for the 2007 DARPA Urban Challenge | |
| CN103335658B (en) | A kind of autonomous vehicle barrier-avoiding method generated based on arc path | |
| JP5746347B2 (en) | Autonomous mobile device | |
| JP7686082B2 (en) | Method and system for controlling multiple robots traveling in a specified area, and building in which the robots are placed | |
| KR102706709B1 (en) | Communication-based robot control system and method thereof | |
| US20250262762A1 (en) | Robot control method and system based on deep reinforcement learning | |
| WO2022052809A1 (en) | Method and device for controlling traveling of robot in warehouse | |
| de Almeida et al. | A global/local path planner for multi-robot systems with uncertain robot localization | |
| CN114136318A (en) | Intelligent navigation method and device for machine | |
| KR20250130268A (en) | Method and system for controlling robot following preset route in relation to multi-robots based on learned driving algorithm | |
| Kala et al. | Multi-vehicle planning using RRT-connect | |
| KR102890802B1 (en) | Method and system for controlling a robot to output visual indicator representing moving path of the robot in accordance with a state of the robot | |
| JP2022541343A (en) | Systems and methods for providing remote control instructions to autonomous vehicles | |
| CN117232531B (en) | Robot navigation planning method, storage medium and terminal equipment | |
| CN118298617A (en) | Traffic control method, terminal device and computer storage medium | |
| JP2024152577A (en) | Autonomous driving device and driving control method thereof | |
| CN121635296A (en) | Mobile machines and their movement methods for adjusting safety margins | |
| Fernandes et al. | Guided Navigation of Mobile Robots through High-Level Commands Using External Cameras | |
| WO2025102156A1 (en) | Software systems and method for a semi-autonomous floor cleaning apparatus for navigation of tight spaces | |
| KR20260016725A (en) | Autonomous Vehicle, Autonomous Vehicle Network System, and Method for Controlling Autonomous Vehicle at Intersection | |
| Heselden et al. | Duckling Platooning-Safety Guarantees Through Controlled Information Disclosure |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240621 |
|
| A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20240820 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20250411 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20250513 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20250812 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20251014 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20251030 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7769126 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |