JP2021154481A - Controller and method for controlling operation of robot executing tasks - Google Patents
Controller and method for controlling operation of robot executing tasks Download PDFInfo
- Publication number
- JP2021154481A JP2021154481A JP2021025324A JP2021025324A JP2021154481A JP 2021154481 A JP2021154481 A JP 2021154481A JP 2021025324 A JP2021025324 A JP 2021025324A JP 2021025324 A JP2021025324 A JP 2021025324A JP 2021154481 A JP2021154481 A JP 2021154481A
- Authority
- JP
- Japan
- Prior art keywords
- state
- skill
- function
- task
- robot
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 73
- 230000009471 action Effects 0.000 claims abstract description 247
- 230000006870 function Effects 0.000 claims abstract description 149
- 238000009826 distribution Methods 0.000 claims description 71
- 230000002787 reinforcement Effects 0.000 claims description 18
- 230000000875 corresponding effect Effects 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 14
- 230000001276 controlling effect Effects 0.000 claims description 8
- 238000012549 training Methods 0.000 claims description 6
- 230000007704 transition Effects 0.000 claims description 6
- 230000006399 behavior Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 17
- 238000012545 processing Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 12
- 238000003384 imaging method Methods 0.000 description 8
- 238000005457 optimization Methods 0.000 description 7
- 239000003795 chemical substances by application Substances 0.000 description 6
- 239000000203 mixture Substances 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000009472 formulation Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000003278 mimic effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000001186 cumulative effect Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 241000282412 Homo Species 0.000 description 1
- 238000007476 Maximum Likelihood Methods 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000004851 dishwashing Methods 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 210000000707 wrist Anatomy 0.000 description 1
Images
Landscapes
- Manipulator (AREA)
Abstract
Description
本発明は、ロボット制御に関し、より特定的には、特定のタスクを実行するようにロボットを学習および制御することに関する。 The present invention relates to robot control, and more specifically to learning and controlling a robot to perform a particular task.
ロボットの操作は、ロボットの有望性を達成することの中核をなす。ロボットの定義そのものは、ロボットが世界に対して変化を与えるために使用し得るアクチュエータを有することを必要とする。自律操作アプリケーションのポテンシャルは巨大である。すなわち、自身の環境を操作することが可能なロボットは、病院、高齢者ケアおよび保育、工場、宇宙空間、レストラン、サービス産業、および、家庭において展開され得る。これらの多種多様な展開シナリオ、ならびに、食事の用意のような非常に特殊化されたシナリオにおける広範囲かつ非系統的な環境変動は、ロボットの迅速な学習の必要性が存在することを示唆している。ロボットがその周りの世界を操作するためにどのようにラーニングすべきかという問題に対して、多くの方法が焦点を当てている。 Robot operation is at the core of achieving robot promising. The definition of a robot itself requires that the robot have actuators that can be used to make a difference to the world. The potential of autonomous operations applications is enormous. That is, robots capable of manipulating their own environment can be deployed in hospitals, elderly care and childcare, factories, outer space, restaurants, service industries, and homes. These wide variety of deployment scenarios, as well as widespread and unsystematic environmental changes in highly specialized scenarios such as food preparation, suggest that there is a need for rapid learning of robots. There is. Many methods focus on the question of how robots should learn to manipulate the world around them.
たとえば、いくつかの方法は、新しいタスクを実行するために、人間のデモンストレーションから個々の操作スキルをラーニングするようにロボットに学習させる。いくつかのソリューションは、特定のロボットに適合される注意深く設計されたデモンストレーションを使用する。しかしながら、これらの方法は、非常に労力を要し、時間がかかり、および/または、リソース集中的である。いくつかの他の方法は、階層型学習(hierarchical learning)、カリキュラム学習(curriculum learning)、および、オプションフレームワークを使用することを試みている。これらの方法は、以前に学習されたあまり複雑でないタスクのセットからより複雑なタスクをラーニングする。これは、新しいタスクを実行するのではなく、新しいタスクの目標をより複雑にする。 For example, some methods train robots to learn individual operational skills from human demonstrations in order to perform new tasks. Some solutions use carefully designed demonstrations that are adapted to a particular robot. However, these methods are very labor intensive, time consuming, and / or resource intensive. Some other methods attempt to use hierarchical learning, curriculum learning, and optional frameworks. These methods learn more complex tasks from a previously learned set of less complex tasks. This complicates the goals of the new task rather than performing the new task.
いくつかの他の方法は、強化学習(RL: reinforcement learning)を使用して、新しいタスクをどのように効果的な態様で実行すべきかをラーニングするようロボットに学習させる。しかしながら、ロボット操作のための新しいタスクをラーニングすることについて、多くのアクションは事実上境界がないが、RLはアクションの有限のセットからの選択を期待する。 Some other methods use reinforcement learning (RL) to train a robot to learn how to perform a new task in an effective manner. However, while many actions are virtually borderless when it comes to learning new tasks for robotic manipulation, RL expects to choose from a finite set of actions.
したがって、ロボットの学習を簡素化し、これによりロボットがより効率的に新しいタスクを行うことを可能にする方法を提供する必要性が存在する。 Therefore, there is a need to provide a way to simplify the learning of the robot, thereby allowing the robot to perform new tasks more efficiently.
いくつかの実施形態の目的は、タスクを実行するようにロボットを学習および制御するためのシステムおよび方法を提供することである。付加的または代替的には、いくつかの実施形態の目的は、ロボットの学習プロセスを修正することである。いくつかの実施形態は、新しいタスクを実行するための新しいスキルをラーニングするように学習されるロボットが、新しいタスクを「模倣する」ために既存のタスク不可知論的スキルを再利用するようラーニングするように修正され得るという認識に基づいている。このような定式化によって、実施形態は、新しいスキルのラーニング目的を選択目的に置き換えることが可能になる。さらに、このような定式化によって、新しいタスクの効果または作用のみを「模倣する」ように、新しいタスクの特定の事項から実施形態が距離を置くことが可能になる。付加的または代替的には、このような定式化によって、いくつかの実施形態が、起こり得る障害および新しいタスクの性質を考慮するために、リアルタイムでスキルを適応可能に選択することが可能になる。付加的または代替的には、そのような定式化によって、いくつかの実施形態が、強化学習(RL)を使用して、どのように効果的な態様でタスクを実行すべきかをラーニングするようにロボットを学習させることが可能になる。 An object of some embodiments is to provide a system and a method for learning and controlling a robot to perform a task. Additional or alternative, the purpose of some embodiments is to modify the learning process of the robot. In some embodiments, a robot learned to learn a new skill to perform a new task learns to reuse an existing task agnostic skill to "mimic" the new task. Based on the recognition that it can be modified to. Such a formulation allows embodiments to replace the learning objectives of new skills with selective objectives. Moreover, such a formulation allows the embodiment to distance itself from certain items of the new task so as to "mimic" only the effects or actions of the new task. Additional or alternative, such a formulation allows some embodiments to adaptively select skills in real time to account for possible obstacles and the nature of new tasks. .. Additional or alternative, such a formulation allows some embodiments to use reinforcement learning (RL) to learn how to perform tasks in an effective manner. It becomes possible to train a robot.
たとえば、いくつかの実施形態の目的は、状態およびアクションが観察されるがスキルは観察されないタスクの実行の複数のデモンストレーションからタスクを実行するようにロボットを学習させることである。実際、いくつかの実施形態は、状態/アクションの対がデモンストレーションから観察可能である場合がしばしば存在する一方、スキルが未知または未定義であるという認識に基づいている。さらに、状態/アクションの対は、スキルよりも重要である。その理由は、状態/アクションの対がロボットの空間領域において実際にタスクを実行する一方で、スキルは時間領域において状態/アクションの対のシーケンスを接続するからである。 For example, an object of some embodiments is to train a robot to perform a task from multiple demonstrations of task execution where states and actions are observed but skills are not observed. In fact, some embodiments are based on the recognition that skills are unknown or undefined, while state / action pairs are often observable from demonstrations. In addition, state / action pairs are more important than skills. The reason is that the state / action pair actually performs the task in the robot's spatial domain, while the skill connects the state / action pair sequence in the time domain.
そのため、いくつかの実施形態は、状態について選択されたアクションと、タスクの複数のデモンストレーションからの対応するアクションとの間の差の確率を最小化するように関数を学習させる。実施形態は、アクションを行なうスキルを選択するように関数を学習させる。関数の学習は、ロボットの学習と考えられ得る。選択されたスキルは、当該スキルが、入力された状態について必要とされるアクションを返す限り、タスク不可知論的であり得る。実際、いくつかの実施形態は、特定の状態について特定のアクションを規定する新しいタスクについて、1つの状態値について正しいアクションを偶然返す一方で、異なる状態値について間違ったアクションを返す多くの既存のスキルが存在するという認識に基づいている。しかしながら、その異なる状態値については、正しいアクションを返し得る別のスキルが存在し得る。 As such, some embodiments train the function to minimize the probability of difference between the selected action for a state and the corresponding action from multiple demonstrations of the task. The embodiment trains a function to select a skill to perform an action. Function learning can be thought of as robot learning. The selected skill can be task agnostic as long as the skill returns the required action for the state entered. In fact, some embodiments happen to return the correct action for one state value for a new task that defines a particular action for a particular state, while returning the wrong action for a different state value. Is based on the recognition that exists. However, for that different state value, there may be another skill that can return the correct action.
したがって、いくつかの実施形態は、既存のスキルを再利用し、かつ、ラーニング目的を選択目的に置き換えるよう関数を学習させる。そのような選択は、起こり得る障害およびタスクの性質を考慮するよう、決定論的または適応可能に実行され得る。実施形態の副作用は、選択されたスキルが複数の制御ステップについて実行されるように構成されるマルチステップスキルであっても、スキルを実行するために各制御ステップについて学習済関数を実行する必要があることを含み得る。しかしながら、選択目的は、強化学習のための報酬関数を簡素化することを可能にする。 Therefore, some embodiments train the function to reuse existing skills and replace learning objectives with selective objectives. Such choices can be made deterministically or adaptively to account for possible obstacles and the nature of the task. The side effect of the embodiment is that even if the selected skill is a multi-step skill configured to be executed for multiple control steps, it is necessary to execute a trained function for each control step in order to execute the skill. Can include being. However, the purpose of choice makes it possible to simplify the reward function for reinforcement learning.
具体的には、強化学習(RL)は、どのようにソフトウェアエージェントが累積的報酬の何らかの概念を最大化するために環境内でアクションを行うべきかに関する機械学習の領域である。RLエージェントは、離散的な時間ステップにおいてその環境と相互作用する。各時間tにおいて、エージェントは、典型的には報酬rtを含む観察結果otを受け取る。次いで、RLコントローラは、報酬を増加するよう、利用可能なアクションのセットからアクションatを選択し、当該アクションatは次いで、環境に送られる。しかしながら、ロボット操作のための新しいタスクをラーニングすることについて、多くのアクションは事実上境界がないが、RLはアクションの有限のセットからの選択を期待する。そのため、いくつかの実施形態の選択ベースのRLは、アクションの境界のない選択を、スキルの有限のライブラリからのスキルの境界のある選択と置き換える。実際、このような選択ベースのRLは、タスク不可知論的スキルのライブラリを使用するタスク固有の関数の学習を簡素化する。たとえば、一実施形態では、深層強化学習者(DRL: deep reinforcement learner)は、各スキルおよびそのアクションについての値を決定する。 Specifically, reinforcement learning (RL) is an area of machine learning about how software agents should take action in the environment to maximize some concept of cumulative reward. The RL agent interacts with its environment in discrete time steps. At each time t, the agent is typically receive observations o t containing reward r t. Then, RL controller, to increase the compensation, select an action a t the set of available actions, the action a t is then sent to the environment. However, while many actions are virtually borderless when it comes to learning new tasks for robotic manipulation, RL expects to choose from a finite set of actions. As such, selection-based RLs in some embodiments replace borderless selection of actions with bordered selection of skills from a finite library of skills. In fact, such a selection-based RL simplifies the learning of task-specific functions using a library of task agnostic skills. For example, in one embodiment, a deep reinforcement learner (DRL) determines values for each skill and its actions.
異なる実施形態は、RLコントローラを形成するパラメータ化された関数を学習させるために異なる方法を使用する。たとえば、いくつかの実施形態では、パラメータ化された関数は、深層決定方策勾配法(deep deterministic policy gradient method)、アドバンテージ−アクタークリティック法(advantage-actor critic method)、プロキシマル方策最適化法(proximal policy optimization method)、ディープQネットワーク法(deep Q-network method)、または、モンテカルロ方策勾配法(Monte Carlo policy gradient method)のうちの1つを使用して学習される。 Different embodiments use different methods to train the parameterized functions that form the RL controller. For example, in some embodiments, the parameterized function is a deep deterministic policy gradient method, an advantage-actor critic method, or a proximity-actor critic method (proximal policy optimization method). It is learned using one of the proximal policy optimization method, the deep Q-network method, or the Monte Carlo policy gradient method.
したがって、一実施形態は、タスクを実行するようロボットの動作を制御するためのコントローラを開示する。コントローラは、各制御ステップについてロボットの現在の状態を受け付ける入力インターフェイスと、メモリとを含み、メモリは、(1)ロボットのスキルのライブラリを格納するように構成され、各スキルは、現在の状態を提出することに応答して、アクションの分布を返すロボットの状態の確率関数であり、スキルは、タスク不可知論的であり、メモリは、(2)タスクについての学習済関数を格納するように構成され、学習済関数は、ロボットの状態を提出することに応答して、スキルの分布を返すロボットの状態の確率関数である。コントローラはさらに、プロセッサを含み、プロセッサは、終了条件に達する制御ステップのシーケンスにおける各制御ステップについて、スキルの分布上で最も高い確率を有するスキルを選択するよう、現在の状態についての学習済関数を実行し、かつ、ロボットの状態を現在の状態から次の状態に遷移させるために、アクションの分布上で最も高い確率を有するアクションを選択するよう、現在の状態についての選択されたスキルを実行するように構成される。コントローラはさらに、タスクを行なうために、選択されたアクションを実行するようロボットに命令するように構成される出力インターフェイスを含む。 Accordingly, one embodiment discloses a controller for controlling the movement of a robot to perform a task. The controller includes an input interface that receives the current state of the robot for each control step and a memory, which is configured to (1) store a library of robot skills, and each skill holds the current state. A stochastic function of the robot's state that returns a distribution of actions in response to submission, the skill is task insane, and the memory is configured to (2) store the learned functions for the task. The learned function is a probability function of the robot's state that returns the distribution of skills in response to submitting the state of the robot. The controller also includes a processor, which performs a trained function on the current state for each control step in the sequence of control steps that reaches the termination condition, so that it selects the skill with the highest probability on the skill distribution. Performs the selected skill for the current state to select the action with the highest probability on the distribution of actions in order to perform and transition the robot's state from the current state to the next state. It is configured as follows. The controller also includes an output interface that is configured to instruct the robot to perform selected actions to perform the task.
別の実施形態は、タスクを実行するようロボットの動作を制御するための方法を開示する。当該方法は、メモリに結合されるプロセッサを使用し、メモリは、(1)ロボットのスキルのライブラリを格納し、各スキルは、現在の状態を提出することに応答して、アクションの分布を返すロボットの状態の確率関数であり、スキルは、タスク不可知論的であり、メモリは、(2)タスクについての学習済関数を格納し、学習済関数は、ロボットの状態を提出することに応答して、スキルの分布を返すロボットの状態の確率関数であり、プロセッサは、格納された命令と結合され、方法のステップを行なうようプロセッサによって実行されると、各制御ステップについてロボットの現在の状態を受け付けることと、終了条件に達する制御ステップのシーケンスにおける各制御ステップについて、スキルの分布上で最も高い確率を有するスキルを選択するよう、現在の状態についての学習済関数を実行することと、ロボットの状態を現在の状態から次の状態に遷移させるために、アクションの分布上で最も高い確率を有するアクションを選択するよう、現在の状態についての選択されたスキルを実行することと、タスクを行なうために、選択されたアクションを実行するようロボットに命令を出力することとを含む。 Another embodiment discloses a method for controlling the movement of a robot to perform a task. The method uses a processor that is bound to memory, which stores (1) a library of robot skills, and each skill returns a distribution of actions in response to submitting its current state. It is a stochastic function of the robot's state, the skill is task insane, the memory stores (2) the learned function for the task, and the learned function responds to submitting the robot's state. , A stochastic function of the state of the robot that returns the distribution of skills, the processor is combined with the stored instructions and accepts the current state of the robot for each control step when executed by the processor to perform a method step. That, for each control step in the sequence of control steps that reach the end condition, execute a trained function for the current state to select the skill with the highest probability on the skill distribution, and the state of the robot. To perform the selected skill for the current state and to perform a task to select the action with the highest probability on the distribution of actions in order to transition from the current state to the next state. Includes outputting commands to the robot to perform the selected action.
定義
本発明の実施形態を説明する際に、以下の定義が全体(上記を含む)を通して適用可能である。
Definitions In describing embodiments of the invention, the following definitions are applicable throughout (including the above).
「ロボット」は、その根本的な目的が1つ以上のタスクを自動的に実行することであるマシンを指す。 "Robot" refers to a machine whose underlying purpose is to automatically perform one or more tasks.
「タスク」は、ロボットによって実行されるべき作業を指し、当該作業は、時間領域におけるスキルのシーケンスによって定義される。代替的には、タスクは、ロボットによって時間領域において実行されるべき状態/アクションの対のシーケンスを指す。 A "task" refers to a task to be performed by a robot, which task is defined by a sequence of skills in the time domain. Alternatively, a task refers to a sequence of state / action pairs to be performed by a robot in the time domain.
「スキル」は、現在の状態を提出することに応答して、アクションまたはアクションにわたる分布を返すロボットの状態の確率関数を指す。 "Skill" refers to the probability function of a robot's state that returns an action or distribution over the action in response to submitting the current state.
「状態」は、特定の時間tにおけるロボットおよびその環境の値を指す。これらの値は、特定の時間tにおけるロボットの設定を定義する。ロボットの設定の例は、たとえば、モータの設定、ジョイントの設定、グリッパの設定、工具の設定、ロボットの位置の設定を含む。その環境における値の例は、たとえば、1つ以上の対象の位置、1つ以上の障害物の位置、目標位置までの距離、環境の画像である。 "State" refers to the value of the robot and its environment at a particular time t. These values define the robot's settings at a particular time t. Examples of robot settings include, for example, motor settings, joint settings, gripper settings, tool settings, robot position settings. Examples of values in that environment are, for example, the position of one or more objects, the position of one or more obstacles, the distance to a target position, and an image of the environment.
「アクション」は、特定の時間tにおいてロボットを現在の状態から次の状態に移行する値のベクトルを指す。当該値のベクトルは、特定の時間tにおいてロボットの次の設定を決定する。 “Action” refers to a vector of values that shifts the robot from the current state to the next state at a particular time t. The vector of such values determines the next setting of the robot at a particular time t.
「制御ステップ」は、特定の時間tにおける状態についてアクションを行うことを指す。 “Control step” refers to taking action on a state at a particular time t.
「コンピュータ」は、構造化された入力を受け付け、規定されたルールに従って当該構造化された入力を処理し、当該処理の結果を出力として生成することが可能な任意の装置を指す。コンピュータの例は、たとえば、汎用コンピュータと、スーパーコンピュータと、メインフレームと、スーパーミニコンピュータと、ミニコンピュータと、ワークステーションと、マイクロコンピュータと、サーバと、インタラクティブテレビジョンと、コンピュータおよびインタラクティブテレビジョンのハイブリッドな組み合せと、コンピュータおよび/またはソフトウェアをエミュレートする特定用途向けハードウェアとを含む。コンピュータは、単一のプロセッサを有し得、または、並列に動作し得るおよび/もしくは並列に動作し得ない複数のプロセッサを有し得る。さらに、コンピュータは、2つ以上のコンピュータ同士間で情報の送受信を行うためのネットワークを介して接続された当該2つ以上のコンピュータを指す。このようなコンピュータの例は、ネットワークによってリンクされたコンピュータを介して情報を処理するための分散型コンピュータシステムを含む。 "Computer" refers to any device capable of accepting structured inputs, processing the structured inputs according to defined rules, and producing the results of the processing as output. Examples of computers are, for example, general purpose computers, supercomputers, mainframes, superminicomputers, minicomputers, workstations, microcomputers, servers, interactive televisions, computers and interactive televisions. Includes hybrid combinations and application-specific hardware that emulates computers and / or software. A computer may have a single processor, or may have multiple processors that can and / or cannot operate in parallel. Further, the computer refers to the two or more computers connected via a network for transmitting and receiving information between the two or more computers. Examples of such computers include decentralized computer systems for processing information through network-linked computers.
「中央処理装置(CPU: central processing unit)」または「プロセッサ」は、ソフトウェア命令を読み出して実行するコンピュータまたはコンピュータの構成要素を指す。 A "central processing unit (CPU)" or "processor" refers to a computer or computer component that reads and executes software instructions.
「メモリ」または「コンピュータ読取可能媒体」は、コンピュータによってアクセス可能な、データを格納するための任意のストレージを指す。その例は、磁気ハードディスクと、フロッピー(登録商標)ディスクと、CD−ROMまたはDVDのような光学ディスクと、磁気テープと、メモリチップと、電子メールの送受信またはネットワークへのアクセスに使用されるような、コンピュータ読取可能電子データを搬送するために使用される搬送波と、たとえばランダムアクセスメモリ(RAM: random access memory)のようなコンピュータメモリとを含む。 "Memory" or "computer-readable medium" refers to any storage accessible by a computer for storing data. Examples include magnetic hard disks, floppy (registered trademark) disks, optical disks such as CD-ROMs or DVDs, magnetic tapes, memory chips, and to be used for sending and receiving e-mails or accessing networks. Includes a carrier used to carry computer-readable electronic data and computer memory such as, for example, random access memory (RAM).
「ソフトウェア」は、コンピュータを動作するための規定されたルールを指す。ソフトウェアの例は、コードセグメントと、命令と、コンピュータプログラムと、プログラムされたロジックとを含む。インテリジェントシステムのソフトウェアは、セルフラーニング可能であってもよい。 "Software" refers to the prescribed rules for operating a computer. Examples of software include code segments, instructions, computer programs, and programmed logic. The software of the intelligent system may be self-learning.
「モジュール」または「ユニット」は、タスクまたはタスクの一部分を実行するコンピュータにおける基本な構成要素を指す。「モジュール」または「ユニット」は、ソフトウェアまたはハードウェアのいずれによっても実現され得る。 A "module" or "unit" refers to a basic component of a computer that performs a task or part of a task. A "module" or "unit" can be implemented by either software or hardware.
「コントローラ」および/または「制御システム」は、他のデバイスまたはシステムの挙動を管理、命令、指示または調整するためのデバイスまたはデバイスのセットを指す。コントローラは、ハードウェアと、動作がソフトウェアにより構成されるプロセッサと、これらの組み合わせとによって実現され得る。コントローラは組込システムであり得る。 "Controller" and / or "control system" refers to a device or set of devices for managing, instructing, directing or coordinating the behavior of another device or system. The controller can be realized by hardware, a processor whose operation is composed of software, and a combination thereof. The controller can be an embedded system.
添付の図面を参照して、ここで開示される実施形態がさらに説明される。示される図面は、必ずしも尺度決めされておらず、その代わりに、ここで開示される実施形態の原理を説明する際に概して強調がなされている。 The embodiments disclosed herein are further described with reference to the accompanying drawings. The drawings shown are not necessarily scaled and instead are generally emphasized in explaining the principles of the embodiments disclosed herein.
以下の記載では、説明目的のために、本開示の完全な理解を提供するために、多数の具体的な詳細が記載される。しかしながら、本開示は、これらの具体的な詳細がなくても実施されてもよいことが当業者には明白であろう。他の場合では、本開示を不明瞭にすることを避けるために、装置および方法はブロック図の形式でのみ示される。 In the following description, for explanatory purposes, a number of specific details are provided to provide a complete understanding of the present disclosure. However, it will be apparent to those skilled in the art that this disclosure may be carried out without these specific details. In other cases, devices and methods are shown only in the form of block diagrams to avoid obscuring this disclosure.
本明細書および特許請求の範囲において使用されるように、「たとえば」、「例としては」、および、「のような」といった用語、ならびに、「備える」、「有する」、「含む」といった動詞およびそれらの他の動詞形は、1つ以上の構成要素または他の項目のリストに関連して使用される場合、各々オープンエンドであると解釈されるべきであり、当該リストは他の付加的な構成要素または項目を排除すると考えられるべきではないことを意味する。「に基づく」という用語は、少なくとも部分的に基づくことを意味する。さらに、本明細書において使用される表現および用語は、説明目的であり、限定と見なされるべきではないことが理解されるべきである。この記載において利用されるいずれの見出しも、便宜上のためのみであり、法的効果または限定効果を有さない。 As used herein and in the claims, terms such as "for example," "as an example," and "like," and verbs such as "provide," "have," and "include." And their other verb forms, when used in connection with a list of one or more components or other items, should each be construed as open-ended, which list is another additive. Means that no component or item should be considered to be excluded. The term "based on" means at least partially based. In addition, it should be understood that the expressions and terms used herein are for explanatory purposes and should not be considered limiting. None of the headings used in this description are for convenience only and have no legal or limiting effect.
図1は、いくつかの実施形態に従った、タスクを実行するようにロボットの動作を学習および制御するために、いくつかの実施形態によって使用される原理の概略的な全体図を示す。ロボットはマシンであり、その根本的な目的は、1つ以上のタスクを自動的に実行することである。タスクは、人間にとって実行するのが困難または反復的な作業である。たとえば、タスクは、工業的な作業、家事の維持、および、レストランでの給仕などに対応する。いくつかの実施形態では、未習熟ロボット102は、学習されていないロボットまたは学習中のロボットを指す。ロボット(たとえば、未習熟ロボット102)にタスクを実行させるためには、ロボットは、タスクについて広く学習される必要がある。しかしながら、タスクは複雑であり、実行されるべきいくつかのステップを伴う。したがって、ロボットの学習を補助するために、ロボットのタスクはサブタスク(以下、スキルという)に分割され得る。タスクは、いくつかの部品を何らかの複合的な物体に組み立てることであり得る。組み立てに必要とされるスキルは、ロボットのアームを左に移動させること、グリッパを開くこと、グリッパを下降させること、部品を持ち上げること、アームを上昇させること、アームを特定の位置まで右に移動させること、アームを下降させること、部品を他の部品内に挿入することなどであり得る。
FIG. 1 shows a schematic overview of the principles used by some embodiments to learn and control the movements of the robot to perform tasks, according to some embodiments. A robot is a machine whose fundamental purpose is to automatically perform one or more tasks. Tasks are tasks that are difficult or repetitive for humans to perform. For example, tasks correspond to industrial work, maintenance of household chores, and serving in a restaurant. In some embodiments, the
いくつかの実施形態は、あるタスクについて学習済であるロボットが新しいタスクを実行するように操作され得るという認識に基づいている。たとえば、食器を洗うことおよび床を掃除することといった家事を維持するように学習済であるロボットは、食器を洗うこと、床を掃除すること、および、ごみを廃棄することなどを行うように操作され得る。しかしながら、ロボットを操作するためには、ロボットはさらに、新しいタスクに対して迅速かつ広範な学習を必要とする。そのため、いくつかの実施形態の目的は、新しいタスクをラーニングするようにロボットを学習させることである。図1に示されるように、未習熟ロボット102は、ロボット制御システム104によって学習され、これにより、新しいタスクを実行する学習済ロボットが形成される。いくつかの実施形態では、ロボット制御システム104は、人間のデモンストレーションから個々の操作スキルをラーニングするように未習熟ロボット102を学習させる学習モジュール104aを含む。たとえば、学習モジュール104aは、ロボットの特定の事項に適合される注意深く設計されたデモンストレーションを使用する。しかしながら、このアプローチは、デモンストレーションを設計するのに付加的な作業を必要とし、当該作業は、長く時間のかかるプロセスである。いくつかの他の実施形態では、学習モジュール104aは、効果的な態様で新しいタスクをラーニングするために、ロボットを学習させるのに強化学習(RL)を使用する。強化学習(RL)では、RLエージェントは、離散的な時間ステップでその環境と相互作用する。各時間tにおいて、エージェントは、典型的に報酬rtを含む観察結果otを受け取る。次いで、RLコントローラは、報酬を増加するよう、利用可能なアクションのセットからアクションatを選択し、次いで、当該アクションatは、環境に送られる。しかしながら、ロボット操作のための新しいタスクをラーニングすることについて、多くアクションは事実上境界がないが、RLはアクションの有限のセットからの選択を期待する。さらに、RLは、新しいタスクをラーニングするのに適切な報酬関数を設計する必要性を要求する。これらの報酬関数を設計することは困難である。
Some embodiments are based on the recognition that a robot that has learned about a task can be manipulated to perform a new task. For example, a robot that has been trained to maintain household chores, such as washing dishes and cleaning the floor, operates to wash dishes, clean the floor, and dispose of debris. Can be done. However, in order to operate the robot, the robot also requires rapid and extensive learning for new tasks. Therefore, the purpose of some embodiments is to train the robot to learn new tasks. As shown in FIG. 1, the
そのため、いくつかの実施形態の目的は、新しいタスクを実行するために改善された学習方法を提供することである。したがって、ラーニング目的の学習モジュール104aを含むロボット制御システム104は、選択目的の学習モジュール108aにより修正される。学習モジュール108aは、既存のタスク不可知論的なスキルを再使用して未習熟ロボットを学習済ロボット106に変換するように未習熟ロボット102を学習させる。さらに、学習モジュール108aによって、新しいタスクの効果または作用のみを「模倣する」ように、新しいタスクの特定の事項から実施形態が距離をおくことが可能になる。付加的または代替的には、学習モジュール108aによって、いくつかの実施形態が、起こり得る障害および新しいタスクの性質を考慮するために、リアルタイムでスキルを適応可能に選択することが可能になる。さらに、いくつかの実施形態では、選択目的は、強化学習のための報酬関数を簡素化することを可能にする。いくつかの実施形態では、学習モジュール108aは、新しいタスクを効率的な態様で実行するために、未習熟ロボット102を学習させるのにRLを使用する。具体的には、学習モジュール108aは、既存のタスク不可知論的なスキルの有限のライブラリからスキルを選択するように未習熟ロボット102を学習させるのにRLを使用する。そのため、いくつかの実施形態の選択ベースのRLは、アクションの境界のない選択を、スキルの有限のライブラリからのスキルの境界のある選択と置き換える。
Therefore, the purpose of some embodiments is to provide an improved learning method for performing new tasks. Therefore, the
図2は、いくつかの実施形態に従った、タスクを実行するようにロボットの動作を学習および制御するためのロボット制御システム200のブロック図を示す。以下、「ロボット制御システム」および「コントローラ」は相互に交換可能に使用され得、同じものを意味する。コントローラ200は、コントローラ200を他のシステムおよびデバイスに接続するための、入力インターフェイスと、出力インターフェイスとを含む。いくつかの実施形態では、入力インターフェイスは、ヒューマンマシンインターフェイス(HMI: Human Machine Interface)202およびイメージングインターフェイス220を含む。HMI202は、キーボード230および/またはポインティングデバイス/媒体232といった入力デバイスにコントローラ200を接続し得る。ポインティングデバイス232はたとえば、マウス、トラックボール、タッチパッド、ジョイスティック、ポインティングスティック、スタイラス、または、タッチスクリーンを含み得る。イメージングインターフェイス220は、コントローラ200をイメージングデバイス226に接続するように適合され得る。イメージングデバイス226は、RGBDカメラ、デプスカメラ、RGBカメラ、グレースケールカメラ、コンピュータ、スキャナ、モバイルデバイス、ウェブカム、または、それらの任意の組み合せを含み得る。いくつかの実施形態によれば、入力インターフェイスは、ロボット236の各制御ステップについて、ロボット236の現在の状態を受け取る/受け付けるように構成され得る。入力インターフェイスは、コントローラ200をバス210を介してネットワーク234に接続するように適合されるネットワークインターフェイスコントローラ(NIC: network interface controller)212をさらに含む。コントローラ200は、無線または有線のいずれかにより、ネットワーク234を介して、各制御ステップについてロボット236の現在の状態を受け取る。
FIG. 2 shows a block diagram of a
いくつかの実施形態によれば、入力インターフェイスは、タスクの実行のセットを受け取るようにさらに構成され得る。実行のセットは、ロボットがタスクを実行するためのタスクのデモンストレーションである。以下、「タスクの実行セット」および「タスクデモンストレーション」は、相互に交換可能に使用され得、同じものを意味する。いくつかの実施形態は、イメージングインターフェイス220が、ロボット236のためのタスクデモンストレーションをイメージングデバイス226から受け取り得るという認識に基づいている。いくつかの実施形態では、イメージングデバイス226は、画像および/またはビデオフォーマットでタスクデモンストレーションを提供し得る。付加的または代替的には、コントローラ200は、画像処理モジュール218を含み得る。画像処理モジュール218は、学習モジュール206dへの入力としてタスクデモンストレーションを提供するために、または、タスクデモンストレーションをタスクデモンストレーションモジュール206bに格納するために、画像およびビデオを処理するように構成される。いくつかの実施形態では、画像処理218は、学習モジュール206dへのタスクデモンストレーション入力を増強するか、または、モジュール206bに格納されたタスクデモンストレーションを増強し得る。付加的または代替的には、コントローラ200は、ロボット236から直接的にまたはネットワーク234を介して、タスクデモンストレーションを受け取るように構成され得るタスク処理モジュール216を含む。いくつかの実施形態では、タスク処理モジュール216は、学習モジュール206dへの入力としてタスクデモンストレーションを提供するために、または、タスクデモンストレーションをタスクデモンストレーションモジュール206bに格納するために、タスクデモンストレーションを処理するようにさらに構成され得る。タスク処理モジュール216は、何らかのフォーマットでタスクデモンストレーションを取得し、当該タスクデモンストレーションを状態/アクションの対のシーケンスに変換する。たとえば、タスクは、ロボットコマンドとして受け取られてもよく、タスク処理モジュール216は、それらのコマンドを状態/アクションの対に変換し得る。タスク処理モジュール216は、画像処理218によって提供される要素からのタスクデモンストレーションの増強において使用されてもよい。
According to some embodiments, the input interface may be further configured to receive a set of task executions. A set of executions is a demonstration of a task for a robot to perform a task. Hereinafter, "task execution set" and "task demonstration" can be used interchangeably and mean the same thing. Some embodiments are based on the recognition that the
コントローラ200は、プロセッサ204と、プロセッサ204によって実行可能な命令を格納するメモリ208とをさらに含む。プロセッサ204は、シングルコアプロセッサ、マルチコアプロセッサ、コンピューティングクラスタ、または、任意の数の他の構成であり得る。メモリ208は、ランダムアクセスメモリ(RAM: random access memory)、リードオンリメモリ(ROM: read only memory)、フラッシュメモリ、または、任意の他の適切なメモリシステムを含み得る。プロセッサ204は、バス210を介して1つ以上の入力デバイスおよび出力デバイスに接続される。格納された命令は、タスクを実行するようにロボット(たとえば、ロボット236)の動作を学習および制御するための方法を実現する。
The
いくつかの実施形態では、メモリ208は、ストレージ206を含むようにさらに拡張され得る。いくつかの実施形態では、ストレージ206は、ラーニング済スキルライブラリモジュール206a、タスクデモンストレーションモジュール206b、ロボットコントローラ206c、学習モジュール206dおよび実行モジュール206eを含む。スキルライブラリモジュール206aは、スキルのライブラリ(すなわち、複数のスキル)を格納するように構成され得る。スキルは、ロボットの現在の状態を提出することに応答して、アクションまたはアクションにわたる分布を返すロボット(たとえば、ロボット236)の状態の確率関数である。いくつかの実施形態は、モジュール206aにおけるスキルがタスクのサブシーケンスまたはサブタスクであるという認識に基づいている。さらに、各スキルは、時間領域における状態/アクションの対または状態/アクションの対のシーケンスであり得る。そのため、モジュール206aにおけるスキルは、シングルステップスキルまたはマルチステップスキルであり得る。たとえば、状態/アクションの対に対応するスキルは、シングルステップスキルとして作成され(coined)得、状態/アクションの対のシーケンスに対応するスキルは、マルチステップのスキルとして作成され得る。さらに、モジュール206aに格納されるスキルは、図3を参照して詳細に説明される。
In some embodiments,
いくつかの実施形態は、タスクデモンストレーションモジュール206bがタスクの実行のセット(すなわち、ロボット236のためのタスクデモンストレーション)を格納するように構成され得るという認識に基づいている。いくつかの実施形態では、タスクデモンストレーションは、状態/アクションの対のシーケンスとして入力デバイスによって観察または記録される一方、スキルは未知または未定義である。そのため、タスクデモンストレーションは、状態/アクションの対のシーケンスとしてモジュール206bに格納される。さらに、状態/アクションの対は、スキルよりも重要である。その理由は、状態/アクションの対がロボットの空間領域において実際にタスクを実行する一方で、スキルは、時間領域において状態/アクションの対のシーケンスを接続するからである。ロボットのためのタスクデモンストレーションは、図4A〜図4Cを参照して詳細に説明される。
Some embodiments are based on the recognition that the
ロボットコントローラ206cは、プロセッサ204による実行時に、ストレージ206内の1つ以上のモジュールを実行する命令を格納するように構成され得る。いくつかの実施形態は、ロボットコントローラ206cがロボットの学習フェーズおよび実行フェーズを管理するという認識に基づいている。
学習モジュール206dは、プロセッサ204によって実行されるとプロセッサ204にスキルを選択するための関数を学習させる命令を格納するように構成され得る。いくつかの実施形態は、各々が状態/アクションの対のシーケンスを定義する、タスクの実行のセットを受け取るための命令と、各状態について、状態/アクションの対のシーケンスから、当該状態について受け取られたアクションにフィットするアクションの分布を決定するための命令と、ある状態について、当該状態について決定されるアクションの分布上でサンプリングされるアクションを返す最も高い確率を有するスキルを決定するための命令とを学習モジュール206dが格納するという認識に基づいている。いくつかの実施形態の目的は、スキル同士の間の切り替えにペナルティを課すスキルを選択するように関数を学習させることである。そのため、いくつかの実施形態は、関数を学習させるために強化学習(RL)を使用する。たとえば、RLは、スキル同士の間での切り替えについてのペナルティと、RLによって選択されたアクションとデモンストレーションされたタスクのアクションとの間の差に基づくペナルティとを含む報酬関数を含む。さらに、タスクを実行するようにロボットを学習させるための学習モジュール206d(すなわち学習フェーズ)が、図5〜図6を参照して詳細に説明される。
The
実行モジュール206eは、スキルを選択するための学習済関数を格納するように構成され得る。学習済関数は、単一の引数関数である。いくつかの実施形態では、学習済関数は、ロボットの状態を提出することに応答して、スキルの分布を返すロボットの状態の確率関数である。さらに、実行モジュール206eは、選択されたスキルからアクションを選択する命令を格納するように構成され得る。さらに、実行モジュール206eは、各制御ステップについてスキル選択を実行する命令を格納するように構成され、当該スキルはマルチステップスキルに対応する。さらに、タスクを実行するための実行モジュール206e(すなわち実行フェーズ)は、図7〜図9を参照して詳細に説明される。
出力インターフェイスは、タスクを実行するために、選択されたアクションを実行するようにロボットに命令するように構成され得る。出力インターフェイスは、ディスプレイインターフェイス214およびアプリケーションインターフェイス222を含み得る。ディスプレイインターフェイス214は、コントローラ200をディスプレイデバイス224に接続し得る。ディスプレイデバイス224はたとえば、コンピュータモニタ、カメラ、テレビジョン、プロジェクタ、または、モバイルデバイスを含み得る。アプリケーションインターフェイス222は、コントローラ200をアプリケーションデバイス228に接続し得る。いくつかの実施形態では、アプリケーションデバイスは、コントローラ200内において具現化されてもよい。そのため、アプリケーションデバイス228は、タスクを実行するために、選択されたアクションに基づいて動作する。たとえば、アプリケーションデバイス228は、タスクを実行するために、選択されたアクションを実行するよう、ロボットのための制御信号を提供する。
The output interface can be configured to instruct the robot to perform selected actions in order to perform a task. The output interface may include a
図3は、いくつかの実施形態に従った、スキルライブラリモジュール206aに格納される例示的なスキルを示す。いくつかの実施形態は、スキルライブラリモジュール206aに格納されるスキルが、移動オプション、回転オプション、停止オプション、ピックオプション、および、配置オプションなどといった基本スキルであるという認識に基づいている。そのため、スキルライブラリモジュール206aは、左への移動302、右への移動304、XYZ方向への移動306、上への移動308、下への移動310、停止312、対象の配置314、対象のピック316、および、工具の回転318などといったスキルを含む。いくつかの実施形態では、スキルライブラリモジュール206aに格納されるスキルは、複雑なスキルに繋がる2つ以上の基本的スキルから構成されてもよい。たとえば、複雑なスキルは、XYZ方向への移動306および対象の配置316といった基本スキルを含み得る。いくつかの実施形態は、1つのタスクまたは複数のタスクを実行するためにモジュール206a内にスキルの複数のライブラリが存在するという認識に基づいている。たとえば、タスクが複数のライブラリからのスキルを要求する場合、モジュール206aは、スキルの複数のライブラリを格納する。いくつかの他の実施形態では、いくつかのタスクデモンストレーションを実行するために新しいスキルをラーニングする必要性があり得る。そのため、ラーニングされた新しいスキルは、既存のスキルのライブラリに格納され得るか、または、ラーニングされた新しいスキルを格納するためにスキルの新しいライブラリが作成され得る。新しいスキルをラーニングする決定は、人間の専門家の決定に完全に依存する。いくつかの実施形態の目的は、タスクを実行するために、スキルライブラリモジュール206aにおけるすべての必要なスキルを維持することである。
FIG. 3 shows exemplary skills stored in
さらに、各スキルは確率関数としてモジュール206aに格納される。そのため、モジュール206aにおけるスキルは、現在の状態を提出することに応答して、アクションまたはアクションにわたる分布を返すロボットの状態の確率関数である。したがって、数学的に以下のように定義される。
Further, each skill is stored in the
したがって、モジュール206aにおけるスキルは、
Therefore, the skill in
などのように数学的に表され得る。 It can be expressed mathematically as such.
図4Aは、いくつかの実施形態に従った、リモート制御デバイスを使用するロボットのためのタスクデモンストレーションを示す。図4Aに示されるように、リモート制御デバイス402は、ロボット236のためのタスクをデモンストレーションするために使用され得る。いくつかの実施形態は、オペレータ404(たとえば、技術者およびユーザなど)がリモート制御デバイス402を動作し、次いでリモート制御デバイス402が、特定のタスクをデモンストレーションするようロボット236を動作するという認識に基づいている。いくつかの実施形態では、リモート制御デバイス402は、特定のタスクをデモンストレーションするために、ロボット構成設定(すなわち、ロボットの設定)をロボット236に送信する。たとえば、リモート制御デバイス402は、特定のタスクをデモンストレーションするために、XYZ方向への移動のような制御コマンド、速度制御コマンド、および、ジョイント位置コマンドなどを送信する。たとえば、図4Aに示されるように、特定のタスクは、対象をピックするスキルおよび当該対象を上方向に移動するスキルといった2つのスキルによって定義され得る。リモート制御デバイス402は、特定のタスクをデモンストレーションするために、両方のスキルについてのロボット構成設定を送信する。いくつかの他の実施形態では、特定のタスクのデモンストレーションは、制御ステップにおいて行われる。たとえば、リモート制御デバイス402は、各制御ステップについてロボット構成設定を送信する。そのため、ロボット236のためにデモンストレーションされる特定のタスクは、入力デバイスによって状態/アクションの対で記録され得る。入力デバイスは、記録されたデータをコントローラ200に提供し得る。
FIG. 4A shows a task demonstration for a robot using a remote control device, according to some embodiments. As shown in FIG. 4A, the
図4Bは、いくつかの実施形態に従った、手動操作によるロボットのためのタスクデモンストレーションを示す。図4Bに示されるように、ロボット236は、特定のタスクをデモンストレーションするように手動で操作され得る。いくつかの実施形態は、特定のタスクをデモンストレーションするために、オペレータ404が、たとえばモータ、ジョイント、グリッパ、工具、ロボット236の位置といったロボット236の設定を手動で制御するという認識に基づいている。いくつかの実施形態では、手動操作によってデモンストレーションされるタスクは、デモンストレーションされるタスクについてスキルおよびスキル構成を定義しなくてもよい。そのため、タスクデモンストレーションは、時間領域において状態/アクションの対で入力デバイスによって記録される。入力デバイスは、記録されたデータをコントローラ200に提供し得る。
FIG. 4B shows a task demonstration for a manually operated robot according to some embodiments. As shown in FIG. 4B, the
いくつかの他の実施形態では、タスクのデモンストレーションはシミュレーションによって行われ得る。いくつかの他の実施形態では、タスクデモンストレーションは、たとえば工具といったロボットの端部の動作について、タスクデモンストレーション中に到達する3D空間におけるリストポイントの実行であり得る。いくつかの他の実施形態では、タスクデモンストレーションは、手動操作とリモート制御デバイス操作との組み合わせによって達成され得る。いくつかの他の実施形態では、イメージングデバイス226は、タスクデモンストレーションを記録し得、画像処理218は、視覚的要素によりタスクデモンストレーションを増強するよう、記録されたタスクデモンストレーションを処理し得る。さらに、ロボットのためのタスクデモンストレーションは、上述の例示的な説明に限定され得ない。代わりに、本発明の範囲内にあるすべての種類のデモンストレーションが考慮されるべきである。
In some other embodiments, the task demonstration can be done by simulation. In some other embodiments, the task demonstration can be the execution of wrist points in 3D space reached during the task demonstration for the movement of the end of the robot, such as a tool. In some other embodiments, task demonstrations can be achieved by a combination of manual operation and remote control device operation. In some other embodiments, the
図4Cは、いくつかの実施形態に従った、タスクデモンストレーションモジュール206bに格納される例示的なタスクデモンストレーションを示す。いくつかの実施形態の目的は、入力デバイスから受け取られたタスクの実行のセット(すなわち、ロボットのためのタスクデモンストレーション)を格納することである。いくつかの実施形態は、タスクデモンストレーションが状態/アクションの対で受け取られる一方、スキルは未知または未定義であるという認識に基づいている。さらに、状態/アクションの対は、スキルよりも重要である。その理由は、状態/アクションの対は、ロボットの空間領域において実際にタスクを実行する一方、スキルは時間領域において状態/アクションの対のシーケンスを接続するからである。そのため、受け取られたタスクデモンストレーションは、状態/アクションの対のシーケンスとしてタスクデモンストレーションモジュール206bに格納され得る。いくつかの実施形態では、状態/アクションの対のシーケンスは、時間領域において定義される。たとえば、タスクデモンストレーションは、開始時間から終了時間までの状態/アクションの対のシーケンスとして表される。
FIG. 4C shows an exemplary task demonstration stored in the
特定の時間tにおける状態Stは、ロボットの現在の設定を定義し、その環境からの要素によって増強される場合がある値を含む。いくつかの実施形態では、ロボットの設定は、モータ、ジョイント、グリッパ、工具、位置、画像、または、それらの任意の組み合わせの設定を含むが、これらに限定されない。値は、たとえば、特定のロボット構成のためのジョイント値を表す。その環境における値の例は、1つ以上の対象の位置、1つ以上の障害物の位置、目標位置までの距離、環境の画像である。特定の時間tにおけるアクションAtは、ロボットの異なる設定を決定するために値のベクトルを含む。いくつかの実施形態は、アクションがロボットをある状態から次の状態に移行させるという認識に基づいている。このアクションは、本質的に離散的または連続的であり得る。アクションは、単一の値または値のベクトルなどであり得る。 State S t at a particular time t contains a value that if there is to define the current configuration of the robot is enhanced by elements from the environment. In some embodiments, robot settings include, but are not limited to, settings for motors, joints, grippers, tools, positions, images, or any combination thereof. The value represents, for example, a joint value for a particular robot configuration. Examples of values in that environment are the position of one or more objects, the position of one or more obstacles, the distance to a target position, and an image of the environment. Action A t at a particular time t includes a vector of values to determine the different settings of the robot. Some embodiments are based on the recognition that the action causes the robot to move from one state to the next. This action can be discrete or continuous in nature. The action can be a single value or a vector of values, and so on.
図4Cでは、ブロック406は、タスクデモンストレーションモジュール206bに格納されるタスクデモンストレーションを示し得る。さらに、タスクデモンストレーションモジュール206bは、タスクデモンストレーション406だけではなく、いくつかのタスクデモンストレーションを格納する。たとえば、タスクデモンストレーションモジュール206bは、有限数のタスクデモンストレーションを格納する。ブロック460は、ロボットのために格納される最後または最終のタスクデモンストレーションを表し得る。タスクデモンストレーション406は、時間t0において開始し、時間t0における状態およびアクション406−0(たとえば、状態/アクションの対であるSt0,At0)を格納する。いくつかの実施形態では、状態(すなわち、St0)について行われるべきアクション(すなわち、At0)は、時間t0についての制御ステップとして定義される。タスクデモンストレーションモジュール206bは、タスクデモンストレーション406をタスクデモンストレーション406の終了時間まで格納し続ける。終了時間tNにおいて、タスクデモンストレーションモジュール206bは、状態およびアクション406−N(たとえば、状態/アクションの対であるStN,AtN)を格納する。したがって、タスクデモンストレーション406は、N+1個の時間インスタンスについてN+1個の状態/アクションの対を含む。時間tNにおいて、最終アクションAtNがタスクデモンストレーション406についてデモンストレーションされると、ロボットは、状態StN+1になる。したがって、タスクデモンストレーション406として、状態406−N+1がさらに格納される。いくつかの実施形態によれば、格納されたタスクデモンストレーション406は、軌道
In FIG. 4C, block 406 may represent a task demonstration stored in
として表され得る。 Can be expressed as.
さらに、タスクデモンストレーションモジュール206bは、タスクデモンストレーション406を参照して説明したように、すべての有限数のタスクデモンストレーションを格納する。いくつかの実施形態によれば、タスクデモンストレーションモジュール206bにおけるタスクデモンストレーションは、状態/アクションの対の同じまたは異なるシーケンスを有し得る。たとえば、状態/アクションの対460−0〜460−Oは、状態/アクションの対406−0′〜406−Nと同じでもよくまたは異なっていてもよい。さらに、デモンストレーションのための第1の状態およびアクションの対は、同じでもよくまたは異なっていてもよい。さらに、タスクデモンストレーションモジュール206bにおけるタスクデモンストレーションは、同じ長さを有してもよく、または、異なる長さを有してもよい。たとえば、タスクデモンストレーション460は、O+1個の時間インスタンスについてのO+1個の状態/アクションの対を含み得、タスクデモンストレーション406は、N+1個の時間インスタンスについてのN+1個の状態/アクションの対を含み得る。そのため、タスクデモンストレーションモジュール206bは、M個の有限のタスクデモンストレーションを格納し、M≧1である。いくつかの実施形態によれば、当該M個の有限のデモンストレーションタスクは軌道Dのセット、すなわち、
In addition, the
として表され得る。 Can be expressed as.
図5は、いくつかの実施形態に従った、スキルを選択するための関数を学習させるための学習モジュール206dの例示的なアーキテクチャ図を示す。学習モジュール206dは、モジュール206bにおけるタスクデモンストレーションに基づいてスキルライブラリモジュール206aからスキルを選択するための関数を学習させるように構成され得る。関数の学習は、スキルを選択するためにロボットを学習させることとして考えられ得る。いくつかの実施形態では、スキルライブラリモジュール206aにおけるスキルは、タスクを実行するのにタスク不可知論的である。いくつかの実施形態は、特定の状態について特定のアクションを規定するタスクデモンストレーションモジュール206bにおけるタスクデモンストレーションが、タスクを実行するためにどのスキルをスキルライブラリモジュール206aから選択するべきかについての指示を有さないという認識に基づいている。そのため、いくつかの実施形態の目的は、タスクを実行するようにスキルを選択するための関数を学習させることである。
FIG. 5 shows an exemplary architectural diagram of a
いくつかの実施形態は、学習モジュール206dが、タスク処理モジュール216、画像処理モジュール218、または、タスクデモンストレーションモジュール206bのうちの少なくとも1つからタスクの実行のセット(すなわち、ロボットのためのタスクデモンストレーション)を受け取るように構成されるという認識に基づいている。受け取られたタスクデモンストレーションは、図4Cに例示的に示されるように、状態/アクションの対のシーケンスである。受け取られたデモンストレーションは、ランタイムにおいてロボットによって実行される必要があるタスクのデモンストレーションである。いくつかの実施形態では、関数を学習させるために、すべてのタスクデモンストレーション(すなわち、特定のタスクについてのM個の有限のタスクデモンストレーションのすべて)が受け取られ得る。いくつかの実施形態では、受け取られたM個の有限のタスクデモンストレーションは、軌道Dのセット、すなわち、
In some embodiments, the
として表され、当該式は、 The formula is expressed as
と等価である。 Is equivalent to.
いくつかの実施形態は、学習モジュール206dが、軌道Dのセットにおける各状態について、当該状態について受け取られるアクションにフィットするアクションの分布を決定するようにさらに構成されるという認識に基づいている。説明目的のために、状態St0を考える。時間t0において、状態St0は、セットDにおけるM個の有限のタスクデモンストレーションからM個の有限のAt0アクションを受け取る。いくつかの実施形態では、M個の有限のタスクデモンストレーションからのM個の有限のAt0アクションは、同じまたは異なり得る。したがって、学習モジュール206dは、状態St0について、M個の有限のAt0アクションにわたる分布を決定する。さらに、学習モジュール206dは、状態St0に関して説明したように、軌道Dのセットにおける各状態についてアクションの分布を決定することを反復する。そのため、学習モジュール206dは、セットDにおけるすべての状態についてのアクションの分布を決定する。さらに、軌道Dのセットにおける各状態について、当該状態について受け取られるアクションにフィットするアクションの分布を決定するための学習モジュール206dは、図9を参照して詳細に記載される。
Some embodiments are based on the recognition that the
いくつかの実施形態では、学習モジュール206dは、軌道Dのセットにおける各状態について、対応する状態について決定されるアクションの分布上のアクションをサンプリングするように構成される。いくつかの実施形態は、サンプリングされたアクションがアクションの分布上の最も高い確率のアクションに対応するという認識に基づいている。実際、いくつかの実施形態の目的は、軌道Dのセットにおける状態について、当該状態についてサンプリングされたアクションに基づいて、モジュール206aについてのスキルを決定することである。そのため、状態について、当該状態について決定されるアクションの分布上でサンプリングされるアクションを返す最も高い確率に対応する、モジュール206aからのスキルを決定するために、関数を学習させる必要がある。
In some embodiments, the
いくつかの実施形態では、学習モジュール206dは、モジュール206aからのスキルを決定するための関数を学習させるように構成される。さらに、関数の学習は、以下に詳細に記載される。
In some embodiments, the
説明の明確性のために、タスクの単一のデモンストレーション、すなわち、M=1を考える。この問題は以下のように定式化される。 For clarity of explanation, consider a single demonstration of the task, namely M = 1. This problem is formulated as follows.
利用可能な情報:
アクションのシーケンスは、A=At0:tNとして表される。
Available information:
The sequence of actions is represented as A = At0: tN.
状態のシーケンスは、S=St0:tN+1として表される。 The sequence of states is represented as S = St0: tN + 1.
モジュール206aにおける離散的なスキルのセットは、H={H1,H2,・・・,Hj}として表される。
The discrete set of skills in
導出されるべき情報:
尤度を最大化する選択されるスキルのシーケンスを決定することは、Lθ(H,S,A)として表される。Lθ(H,S,A)は、シーケンスにおいてスキルHのセットから選択される離散的なスキルが観察S,Aを最も可能性が高いものとする、すなわち、最も高い確率を有することを表す。いくつかの実施形態では、シーケンスにおいて選択される離散的なスキルは、スキルHのセットのサブセットであるか、または、スキルHのセットに等しい。したがって、スキルHのシーケンスの最大化は、最大尤度最適化から達成され得る。さらに、ベイズ確率理論を使用し、最適化において役割を果たさない項を排除すると、Lθ(H,S,A)を最大化することは、
Information to be derived:
Determining the sequence of skills selected to maximize the likelihood is expressed as L θ (H, S, A). L θ (H, S, A) indicates that the discrete skills selected from the set of skills H in the sequence make the observations S, A most likely, i.e., have the highest probability. .. In some embodiments, the discrete skills selected in the sequence are a subset of the set of skills H or equal to the set of skills H. Therefore, maximizing the sequence of skill H can be achieved from maximum likelihood optimization. Furthermore, using Bayesian probability theory and excluding terms that do not play a role in optimization, maximizing Lθ (H, S, A) can be done.
と等価になる。 Is equivalent to.
Lθ(H,S,A)においてHは未知であるので、 Since H is unknown in L θ (H, S, A),
として以下のように無視する。 Ignore as follows.
式(1)におけるπh(A|S)は、スキルライブラリモジュール206aからの以前にラーニングされたスキルである。式(1)におけるfθ(S)は、状態が与えられると、スキル分布を返す関数である。たとえば、関数fθ(S)は、入力状態Sが与えられると、スキルにわたる分布を返す状態の確率分布関数である。いくつかの実施形態によれば、fθ(S)は終了関数(termination function)を定式化する能力を提供する。終了関数(termination function)は、状態Sが与えられると、現在のスキルが終了するか(値1によって表される)、または、現在のスキルが継続する(値0によって表される)かを示す。たとえば、終了関数は、関数β(S)→0/1として定義される。
Π h (A | S) in equation (1) is a previously learned skill from
いくつかの実施形態は、状態Stについてπh(A|S)によって与えられるアクションまたはアクションの分布が、状態Stについてスキルπh(A|S)を決定するように、状態Stについて決定されるアクションの分布(すなわち、M個の有限のデモンストレーションから状態Stについて決定されるアクションの分布)に、可能な限り近くなるようマッチするはずであるという認識に基づいている。そのため、学習モジュール206dは、式(1)についての制約を生成し、たとえば、当該制約は、
Some embodiments, for state S t [pi h | distribution action or actions given by (A S) is, skills [pi h for state S t | to determine (A S), the state S t distribution of actions to be determined (i.e., the distribution of actions to be determined about the state S t from M finite demonstration) it is based on the recognition that the should match as close as possible. Therefore, the
であり得る。当該制約におけるアクションAtは、状態Stについて決定されるサンプリングされたアクションであり得る。いくつかの実施形態では、アクションAtは、状態Stについて決定されるアクションの分布上のアクションのうちの1つであり得る。 Can be. Action A t in the constraint may be sampled actions are determined for a state S t. In some embodiments, the action A t may be one of the actions on the distribution of actions to be determined about the state S t.
は、状態Stについてスキル(πh(A|S))によって返されるアクションと、状態Stについて決定されるアクションの分布との間の最小の差の値(たとえば確率値または距離のようなメトリック)であり得る。したがって、式(1)は以下のように変換される。 The skills for state S t | and actions returned by (π h (A S)) , such as the minimum difference value (e.g. probability value or distance between the distribution of actions to be determined about the state S t Can be metric). Therefore, equation (1) is converted as follows.
式(2)は、制約 Equation (2) is a constraint
を有する単一の引数関数である。式(2)において、説明の明瞭性のために、タスクデモンストレーションが有限数の時間インスタンスに格納されるという事実は省略されている。時間インスタンスを考慮に入れるために、式(2)は各時間インスタンスtに対して加算和により拡張され得る。さらに、式(2)は、以下のように、デモンストレーションdにおけるすべての状態およびアクションの対に対する和まで拡大され得る。dは、デモンストレーションDのセットに存在する。 Is a single argument function with. In equation (2), the fact that task demonstrations are stored in a finite number of time instances is omitted for clarity of explanation. To take into account the time instances, equation (2) can be extended by the sum of additions for each time instance t. Further, equation (2) can be extended to the sum of all state and action pairs in demonstration d as follows. d exists in the set of demonstration D.
式(2)は、さまざまな異なる態様で学習され得る。一実施形態では、式(2)は、期待値最大化(EM: expectation-maximization)またはEMの何らかの変形例の周知技術により学習され得る。別の実施形態では、式(2)は、タスクの実行の結果の偏差を最小化する報酬関数を有する強化学習(RL)技術により学習され得る。さらに、RL技術に基づいて学習される関数は、図6を参照して詳細に説明される。そのため、関数は、状態Stについて、当該状態Stについて決定されるアクションの分布上でサンプリングされるアクションを返す最も高い確率に対応するモジュール206aからのスキルを決定するように、学習される(学習済関数502)。たとえば、式(2)における
Equation (2) can be learned in a variety of different ways. In one embodiment, equation (2) can be learned by well-known techniques of expectation-maximization (EM) or some variant of EM. In another embodiment, equation (2) can be learned by a reinforcement learning (RL) technique that has a reward function that minimizes the deviation of the outcome of the task execution. Further, the functions learned based on the RL technique will be described in detail with reference to FIG. Therefore, the function, the state S t, so as to determine the skills from
は、状態Stについて決定されるアクションの分布上でサンプリングされるアクションを返す最も高い確率を有するスキルπh(A|S)を、状態Stについて決定する。 The skills [pi h has the highest probability that returns the action to be sampled on the distribution of actions to be determined about the state S t | a (A S), determines the state S t.
さらに、制約 In addition, constraints
は、以下のようにソフトな制約(soft constraint)として与えられ得る。 Can be given as a soft constraint as follows.
式(3)において、pはノルムを表し、たとえば0ノルムまたは2ノルムを表し、典型的にはn=1,n=2である。ここで、pおよびnは、いわゆるハイパーパラメータである、すなわち、最終最適化関数を設計する人間によって選択されるパラメータである。いくつかの実施形態では、式(3)は、学習済関数502として、学習モジュール206dの出力であり得る。いくつかの他の実施形態では、学習モジュール206dの出力は、セットDにおけるすべての状態について学習済関数502によって決定されるスキルのシーケンスであり得る。たとえば、セットHは、決定されたスキルをシーケンスで、すなわちH={H4,H7,...,H1}で、格納するために生成され得る。さらに、シーケンスにおいて決定されるスキルはリストLに格納され得る。たとえば、リストLは、アクションまたはアクションの分布をシーケンスで、すなわちL={π4(s),π7(s),・・・,π1(s)}で、格納するために生成され得る。さらに、いくつかの実施形態では、学習モジュール206dは、終了関数β(S)を返す。したがって、終了関数β(S)が1を返すときはいつでも、リストLからの次のスキルに関連付けられる確率関数πhlが選択され、その後実行される。いくつかの実施形態では、終了関数β(S)は、タスクを実行するよう、リストLにおいて現在選択されているスキルを次のスキルに切り替える時間を決定する。
In equation (3), p represents the norm, for example 0 norm or 2 norm, typically n = 1, n = 2. Here, p and n are so-called hyperparameters, that is, parameters selected by the person who designs the final optimization function. In some embodiments, equation (3) can be the output of the
図6は、いくつかの実施形態に従った、選択ベースの強化学習を使用して関数を学習させる例示的なアーキテクチャを示す。強化学習(RL)は、どのようにソフトウェアエージェントが累積的報酬の何らかの概念を最大化するために環境内でアクションを行うべきかに関する機械学習の領域である。RLエージェントは、離散的な時間ステップにおいてその環境と相互作用する。各時間tにおいて、エージェントは、典型的には報酬rtを含む観察結果otを受け取る。次いで、RLコントローラは、報酬を増加するよう、利用可能なアクションのセットからアクションatを選択し、当該アクションatは次いで、環境に送られる。しかしながら、ロボット操作のための新しいタスクをラーニングすることについて、多くのアクションは事実上境界がないが、RLはアクションの有限のセットからの選択を期待する。そのため、アクションの境界のない選択を、スキルの有限のライブラリからのスキルの境界のある選択と置き換える選択ベースのRLアーキテクチャが、図6に示される。 FIG. 6 shows an exemplary architecture for training a function using selection-based reinforcement learning, according to some embodiments. Reinforcement learning (RL) is an area of machine learning about how software agents should take action in their environment to maximize some concept of cumulative reward. The RL agent interacts with its environment in discrete time steps. At each time t, the agent is typically receive observations o t containing reward r t. Then, RL controller, to increase the compensation, select an action a t the set of available actions, the action a t is then sent to the environment. However, while many actions are virtually borderless when it comes to learning new tasks for robotic manipulation, RL expects to choose from a finite set of actions. As such, a selection-based RL architecture that replaces action-boundary selection with skill-bounded selection from a finite library of skills is shown in FIG.
図6では、ブロック602は、タスクデモンストレーションモジュール206bを表し得る。ブロック604において、状態オブザーバが、モジュール206bにおいて、時間tにおける状態Stを記録する。ブロック606では、アクションオブザーバが、実行の複数のセット(すなわち、M個の有限のタスクデモンストレーション)から状態Stについて受け取られるアクションを記録する。ブロック608では、タスクの実行の結果の偏差を最小化する、状態Stについての報酬関数が定義される。いくつかの実施形態は、報酬関数がスキルを切り替えることについてのペナルティを含むという認識に基づいている。そのため、報酬関数は、スキルを切り替えるための終了関数β(S)を含む。たとえば、終了関数は、モジュール206bにおいて、現在のスキルを別のスキルに切り替えるための時間を特定する。他の実施形態では、報酬関数は、モジュール206bにおける記録されたアクションと生成されたアクション614との間の差に基づくペナルティを含む。
In FIG. 6, block 602 may represent the
ブロック610では、RLコントローラは、状態Stについて受け取られたアクションからアクションをサンプリングする。サンプリングされたアクションは、状態Stについての最も高い確率のアクションに対応する。さらに、RLコントローラは、状態Stについて、最も高い確率に対応するスキルをモジュール206aから選択して、サンプリングされたアクションまたは状態Stについて受け取られたアクションを返す。そのため、ブロック612では、RLコントローラは、境界のある/有限数のスキルを含むモジュール206aからスキルを選択する。スキルは、所与の状態Stについてアクションまたはアクションの境界のある/有限の分布を返す。ブロック614では、アクションの有限の分布上で最も高い確率を有するアクションが選択される。そのため、いくつかの実施形態の選択ベースのRLは、アクションの境界のない選択を、スキルの有限のライブラリからのスキルの境界のある選択と置き換える。実際、このような選択ベースのRLは、タスク不可知論的スキルのライブラリを使用するタスク固有の関数の学習を簡素化する。たとえば、一実施形態では、深層強化学習者(DRL: deep reinforcement learner)は、各スキルおよびそのアクションについての値を決定する。
At
異なる実施形態は、RLコントローラを形成するパラメータ化された関数を学習させるために異なる方法を使用し得る。たとえば、いくつかの実施形態では、パラメータ化された関数は、深層決定方策勾配法(deep deterministic policy gradient method)、アドバンテージ−アクタークリティック法(advantage-actor critic method)、プロキシマル方策最適化法(proximal policy optimization method)、ディープQネットワーク法(deep Q-network method)、または、モンテカルロ方策勾配法(Monte Carlo policy gradient method)のうちの1つを使用して学習される。 Different embodiments may use different methods to train the parameterized functions that form the RL controller. For example, in some embodiments, the parameterized function is a deep deterministic policy gradient method, an advantage-actor critic method, or a proximity-actor critic method (proximal policy optimization method). It is learned using one of the proximal policy optimization method, the deep Q-network method, or the Monte Carlo policy gradient method.
図7は、いくつかの実施形態に従った、タスクを実行する実行モジュール206eの例示的なアーキテクチャ図を示す。図7に示されるように、ブロック702では、実行モジュール206eは、入力インターフェイスを介して、各制御ステップについてロボット236の現在の状態を受け付けるように構成される。ブロック704では、実行モジュール206eは、タスクを実行するための学習済関数を格納するように構成される。図5に示されるように、学習済関数は、ロボットの状態を提出することに応答したスキルの分布である。ブロック706では、実行モジュール206eは、終了条件に達する制御ステップのシーケンスにおける各制御ステップについて、現在の状態の学習済関数を実行して、スキルの分布上で最も高い確率を有するスキルを選択するように構成される。図3に示されるように、スキルは、現在の状態を提出することに応答してアクションまたはアクションにわたる分布を返すロボットの状態の確率関数である。ブロック708では、実行モジュール206eは、現在の状態について選択されたスキルを実行して、アクションの分布において最も高い確率を有するアクションを選択し、ロボットの状態を現在の状態から次の状態に遷移させるように構成される。ブロック710では、実行モジュール206eは、ロボットにタスクを実行するよう命令するために、出力インターフェイスを介して、選択されたロボットアクションを出力するように構成される。
FIG. 7 shows an exemplary architectural diagram of an
図8は、いくつかの実施形態に従った、実行モジュール206eによって実行される動作を示すフローチャートである。ブロック802では、実行モジュール206eは、制御ステップについてのロボットの状態を取得するように構成される。いくつかの実施形態では、ロボットの状態は、入力インターフェイスを介して取得される。ブロック804では、実行モジュール206eは、スキルの分布上で最も高い確率を有するスキルを選択するよう、取得された状態についての学習済関数を実行するように構成される。代替的には、実行モジュール206eは、リストLにおいて最も高い確率に対応するスキルを選択するよう、取得された状態についての学習済関数を実行する。選択されたスキルは、シングルステップスキルまたはマルチステップスキルであり得る。いくつかの実施形態では、マルチステップスキルは、複数の制御ステップの複数の状態について実行して、それらの対応する複数のアクションを返すように構成され得るスキルである。ブロック806では、実行モジュール206eは、アクションの分布上で最も高い確率を有するアクションを選択するよう、取得された状態について選択されたスキルを実行するように構成される。ブロック808では、実行モジュール206eは、選択されたアクションを実行するようにロボットに命令するために、選択されたアクションを出力するように構成される。
FIG. 8 is a flowchart showing the operation executed by the
理解されるべきであるように、選択されたアクションをロボットが実行すると、ロボットは、取得された状態から次の状態に移行する。さらに、実行モジュール206eは、ブロック802において、次の制御ステップについての次の状態を取得する。いくつかの実施形態において、実行モジュール206eは、ブロック804において、次の状態についての終了関数β(S)を実行し、その後、次の状態について学習済関数を実行する。終了関数β(S)は、次の状態について、スキルを継続することを示す0を返すか、または、スキルを選択することを示す1を返す(すなわち終了条件)。いくつかの実施形態では、終了関数β(S)は、以前に選択されたスキル(すなわち、取得された状態について選択されたスキル)がマルチステップスキルであり、かつ、次の状態について最も高い確率を有するサンプリングされたアクションを返すことに対応する場合、0を返し、そうでなければ、終了関数β(S)は1を返す。終了関数が0を返すと、実行モジュール206eは、ブロック804において、次の状態について学習済関数の実行をスキップする。終了関数が1を返すと、実行モジュール206aは、ブロック804において、次の状態について学習済関数を実行する。いくつかの他の実施形態では、実行モジュール206eは、ブロック804において、終了条件β(S)を実行することなく、次の状態について学習済関数を実行する。そのため、実行モジュール206eは、以前に選択されたスキル(すなわち、取得された状態について選択されたスキル)がマルチステップスキルであり、かつ、次の状態について最も高い確率を有するサンプリングされたアクションを返すことに対応する場合でも、次の状態について学習済関数を実行することを繰り返す。実行モジュール206eは、ブロック806において、アクションの分布上で最も高い確率を有するアクションを選択するよう、選択されたスキルを実行する。実行モジュール206eは、ブロック808において、選択されたアクションを出力する。さらに、フローチャート800は、タスクのすべての制御ステップが実行されるまで繰り返される。
As should be understood, when the robot performs the selected action, the robot moves from the acquired state to the next state. Further, the
図9は、いくつかの実施形態に従った、タスクを実行するための例示的な学習フェーズおよび実行フェーズを示す。部分902はタスクを実行するための準備フェーズである。図9に示されるように、準備フェーズ902は、スキルライブラリモジュール206aおよびタスクデモンストレーションモジュール206bを含む。モジュール206aは、境界のある/有限数のスキルを1つのライブラリまたは複数のライブラリの形式で格納する。たとえば、モジュール206aは、スキル906a(すなわち、スキルH1)、スキル908a(すなわち、スキルH2)、および、スキル910a(すなわち、スキルH3)を格納する。当該モジュールにおける各スキルは、現在の状態を提出することに応答して、アクションまたはアクションの分布を返すロボットの状態の確率関数である。たとえば、スキル906aは、状態S0についてアクションA0を返し、スキル908aは、状態S1についてアクションA1を返し、スキル910aは、状態S2およびS3についてアクションの分布を返す。しかしながら、スキル910aは、A2が状態S2について最も高い確率であり、A3が状態S3について最も高い確率であるアクションの分布を返す。いくつかの実施形態は、モジュール206aに格納されるスキルがタスク不可知論的であるという認識に基づいている。
FIG. 9 shows exemplary learning and execution phases for performing tasks according to some embodiments. Part 902 is the preparatory phase for performing the task. As shown in FIG. 9, preparation phase 902 includes
タスクデモンストレーションモジュール206bは、状態/アクションの対でタスク(すなわち{S0−A0,S1−A1,S2−A2,S3−A3,S4})のデモンストレーション(すなわち、複数の実行)を格納する一方、スキルは未知または未定義である。たとえば、タスクデモンストレーションモジュール206bは、タスクデモンストレーション906b(すなわち{S0−A0,S1−A1,S2−A2,S3−A3,S4})、タスクデモンストレーション908b(すなわち、{S0−A0,S1−A1,S2−A2,S3−A3,S4})、および、タスクデモンストレーション910b(すなわち、{S0−A1,S2−A2,S3−A3,S4})を格納する。状態S0は、時間t0におけるロボットの設定であり、アクションA0は、ロボットを状態S0から次の状態S1に移行する、時間t0における値のベクトルを表す。図9に示されるように、タスクデモンストレーション906bおよび908bは正しく記録される。しかしながら、何らかのランダムエラーにより、タスクデモンストレーション910bにおいて、状態S1が記録されていない。
The
いくつかの実施形態は、タスクデモンストレーション906b、908bおよび910bが状態/アクションの対のシーケンスであるが、スキルに関する指示を有さないという認識に基づいている。そのため、学習モジュール206dは、モジュール206bにおけるタスクデモンストレーション906b、908bおよび910bに基づいてタスクを実行するために、モジュール206aからスキルを選択するよう関数を学習させる。
Some embodiments are based on the recognition that task demonstrations 906b, 908b and 910b are a sequence of state / action pairs but do not have instructions regarding skills. Therefore, the
部分904は、タスクを実行する学習フェーズを表す。図9に示されるように、学習モジュール206dは、ブロック906dにおいて、タスクデモンストレーションを受け取るように構成される。たとえば、学習モジュール206dは、3つのデモンストレーション906b、908bおよび910bを受け取る。学習モジュール206dは、ブロック908dにおいて、各状態について、受け取られたタスクデモンストレーション(すなわち、3つのデモンストレーション906b、908b、および910b)から、当該状態について受け取られたアクションにフィットするアクションの分布を決定するように構成される。ブロック908d−0は、状態S0について決定されたアクションの分布を表し、ブロック908d−1は、状態S1について決定されたアクションの分布を表し、ブロック908d−2は、状態S2について決定されたアクションの分布を表し、ブロック908d−3は、状態S3について決定されたアクションの分布を表す。たとえば、状態S0は、タスクデモンストレーション906bおよび908bから2つのA0アクションを受け取り、タスクデモンストレーション910bからアクションA1を受け取る。したがって、アクションA0およびA1にフィットする状態S0について、分布908d−0が決定される。さらに、分布908d−0は、2/3の確率を有するアクションA0を返し、1/3の確率を有するアクションA1を返す。同様に、分布908d−1、908d−2および908d−3が決定される。いくつかの実施形態では、学習モジュール206dは、ブロック908dにおいて、タスクデモンストレーションにおける各状態について、対応する状態について決定されたアクションの分布上のアクションをサンプリングするように構成される。いくつかの実施形態では、サンプリングされたアクションは、アクションの分布上の最も高い確率のアクションに対応する。そのため、状態S0、S1、S2およびS3についてのサンプリングされたアクションは、それぞれA0、A1、A2およびA3である。
いくつかの実施形態では、状態は、デモンストレーション906b、908bおよび910b間で異なり得る。ここで使用されるインデックスおよび表記は、説明の明確性のためである。同じ引数がアクションに適用される。たとえば、状態が異なる場合、タスクデモンストレーション906b、908bおよび910bのうち最も類似した状態に従ってアラインメントを決定するよう、本発明の範囲外の付加的なプロセスが呼び出され得る。そのようなアラインメントの例は、動的時間伸縮法(dynamic time warping)の周知のプロセスであり得る。 In some embodiments, the condition can vary between demonstrations 906b, 908b and 910b. The indexes and notations used here are for clarity of description. The same arguments apply to the action. For example, if the states are different, additional processes outside the scope of the invention may be called to determine the alignment according to the most similar state of the task demonstrations 906b, 908b and 910b. An example of such an alignment could be a well-known process of dynamic time warping.
学習モジュール206dは、ブロック910dにおいて、ある状態について、当該状態について決定されたアクションの分布上でサンプリングされたアクションを返す最も高い確率を有するスキルを決定するように構成される。そのため、学習モジュール206dは、図5〜図6において説明されたように、関数
The
を学習させる。学習済関数における To learn. In the trained function
は、状態Stについて、当該状態Stについて決定されたアクションの分布上でサンプリングされたアクションを返す最も高い確率を有するスキルを決定する。たとえば、学習モジュール206dは、状態S0およびS1について、それぞれスキルH1およびH2を決定し、状態S2およびS3について、スキルH3を決定する。スキルH3は、マルチステップスキルである。代替的には、学習フェーズにおいて決定されたスキルは、セットHにおいてスキルのシーケンスとして格納され得る。たとえば、セットHはH={H1,H2,H3}であり、セットHにおけるようにロボットによってシーケンスで実行されると、実行フェーズにおいてタスクを完了する。
Is the state S t, determines the skill with the highest probability that return action sampled on the distribution of the actions determined for the state S t. For example, the
理解されるべきであるように、学習フェーズは一旦完了する。フローは実行フェーズに続く。そのため、タスクを実行するために実行モジュール206eが提供される。
As it should be understood, the learning phase is completed once. The flow continues in the execution phase. Therefore, an
実行モジュール206eは、現在の状態を受け取るように構成される。たとえば、実行モジュール206eは、状態S0を受け取る。次に、実行モジュール206eは、スキルの分布上で最も高い確率を有するスキルを選択するよう、状態S0についての学習済関数を実行するように構成される。たとえば、実行モジュール206eは、状態S0についてスキルH1が学習フェーズにおいて決定されたスキルであるので、状態S0についてスキルH1を選択し、最も高い確率を有するアクションA0を返す。さらに、実行モジュール206eは、アクションA0を選択するよう、状態S0について選択されたスキルH1を実行するように構成される。実行モジュール206eは、状態S0についてのアクションA0を実行するようにロボットに命令する。
理解されるべきであるように、ロボットがアクションA0を実行すると、ロボットは状態S1に移行する。実行モジュール206eは、再び状態S1を受け取り、状態S1について他のスキルを選択するか否かを決定するよう、状態S1についての終了関数β(S)を実行する。スキルH1は、状態S0についてのみアクションまたはアクションの分布を提供する。したがって、終了関数は、状態S1について1を返す。終了関数が1を返すと、実行モジュール206eは、状態S0に関して説明したように、状態S1について別のスキルを選択するように構成される。このプロセスは、実行モジュールが状態S4を受け取るまで繰り返される。そのため、実行モジュール206eは、状態S1についてのスキルH2と、状態S2およびS3についてのスキルH3とを選択する。スキルH3は、それぞれアクションA2およびA3を返すよう、実行モジュール206eによって状態S2およびS3について実行されるマルチステップスキルである。アクションA3が実行されると、ロボットは、タスク実行の完了を示す状態S4に移行する。これにより、タスクを行うためにロボットによって実行されるべきスキルは、タスク不可知論的なスキルのライブラリから選択され、これによって、ラーニング目的が選択目的に置換される。
As should be understood, when the robot performs action A 0 , the robot transitions to state S 1.
上記の説明は、例示的な実施形態のみを提供し、本開示の範囲、利用可能性、または、構成を制限することを意図していない。むしろ、例示的な実施形態の以下の記載は、1つ以上の例示的な実施形態を実現するための実施可能な記載を当業者に提供する。添付の特許請求の範囲に記載されるように開示される主題の精神および範囲から逸脱することがなければ、要素の機能および構成において行われ得るさまざまな変更が企図される。 The above description provides only exemplary embodiments and is not intended to limit the scope, availability, or configuration of the present disclosure. Rather, the following description of an exemplary embodiment provides one of ordinary skill in the art with an operable description for realizing one or more exemplary embodiments. Various changes can be made in the function and composition of the elements, provided that they do not deviate from the spirit and scope of the subject matter disclosed as described in the appended claims.
具体的な詳細は、実施形態の完全な理解を提供するために以下の記載において与えられる。しかしながら、当業者によって理解される場合、実施形態は、これらの具体的な詳細なしで実施されてもよい。たとえば、開示される主題におけるシステム、プロセス、および他の要素は、実施形態を不必要な詳細で不明瞭にしないために、ブロック図の形態で構成要素として示され得る。他の場合では、実施形態を不明瞭にすることを避けるために、周知のプロセス、構造、および技術は、不必要な詳細なしで示され得る。さらに、さまざまな図面における同様の参照番号および名称は、同様の要素を示す。 Specific details are given in the following description to provide a complete understanding of the embodiments. However, as understood by those skilled in the art, embodiments may be implemented without these specific details. For example, systems, processes, and other elements in the disclosed subject matter may be shown as components in the form of block diagrams so as not to obscure the embodiments with unnecessary details. In other cases, well-known processes, structures, and techniques may be presented without unnecessary details to avoid obscuring embodiments. In addition, similar reference numbers and names in various drawings indicate similar elements.
さらに、個々の実施形態は、フローチャート、フロー図、データフロー図、構造図またはブロック図として示されるプロセスとして説明され得る。フローチャートは、動作をシーケンシャルなプロセスとして記載し得るが、動作の多くは、並列にまたは同時に実行され得る。さらに、動作の順序は、再構成され得る。プロセスは、その動作が完了すると終了され得るが、論じられていないまたは図に含まれていない付加的なステップを有し得る。さらに、任意の特定的に記載されるプロセスにおけるすべての動作が、すべての実施形態において行われ得るわけではない。プロセスは、メソッド、関数、プロシージャ、サブルーチン、サブプログラムなどに対応し得る。プロセスが関数に対応する場合、関数の終了は、呼び出し関数またはメイン関数への関数の復帰に対応し得る。 Further, individual embodiments may be described as processes shown as flowcharts, flow diagrams, data flow diagrams, structural diagrams or block diagrams. Flowcharts can describe actions as sequential processes, but many of the actions can be performed in parallel or simultaneously. Moreover, the order of operations can be reconfigured. The process may be terminated when its operation is complete, but may have additional steps not discussed or included in the figure. Moreover, not all actions in any specifically described process can be performed in all embodiments. Processes can correspond to methods, functions, procedures, subroutines, subprograms, and so on. If the process corresponds to a function, the termination of the function may correspond to the return of the function to the calling function or the main function.
さらに、開示される主題の実施形態は、少なくとも部分的に、手動または自動のいずれかで実現され得る。手動または自動の実現は、マシン、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、もしくは、それらの任意の組み合せの使用を通じて実行され得るか、または、少なくとも支援され得る。ソフトウェア、ファームウェア、ミドルウェア、または、マイクロコードで実現される場合、必要なタスクを実行するべきプログラムコードまたはコードセグメントは、マシン読取可能媒体に格納され得る。プロセッサが必要なタスクを実行し得る。 Moreover, embodiments of the disclosed subject matter can be realized, at least in part, either manually or automatically. Manual or automatic realization can be performed, or at least assisted, through the use of machines, hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. Program code or code segments that should perform the required tasks, if implemented in software, firmware, middleware, or microcode, may be stored on machine-readable media. The processor can perform the required tasks.
本明細書において概説されるさまざまな方法またはプロセスは、さまざまなオペレーティングシステムまたはプラットフォームのいずれか1つを使用する1つ以上のプロセッサ上で実行可能なソフトウェアとしてコード化され得る。さらに、そのようなソフトウェアは、多くの好適なプログラミング言語および/またはプログラミングもしくはスクリプトツールのいずれかを使用して記述されてもよく、フレームワークまたは仮想マシン上で実行される実行可能なマシン言語コードまたは中間コードとしてコンパイルされてもよい。典型的には、プログラムモジュールの機能は、さまざまな実施形態において所望のように組み合わせられてもよく、または、分散されてもよい。 The various methods or processes outlined herein can be encoded as software that can run on one or more processors using any one of different operating systems or platforms. In addition, such software may be written using any of many suitable programming languages and / or programming or scripting tools, and executable machine language code that runs on a framework or virtual machine. Alternatively, it may be compiled as intermediate code. Typically, the functions of the program modules may be combined or distributed as desired in various embodiments.
本開示の実施形態は、一例として提供された方法として具現化され得る。本方法の部分として実行される動作は、任意の適切な態様で順序付けられてもよい。したがって、例示的な実施形態ではシーケンシャルな動作として示されているが、いくつかの動作を同時に実行することを含み得る、動作が示されるのとは異なる順序で実行される実施形態が構築され得る。 The embodiments of the present disclosure can be embodied as the methods provided as an example. The operations performed as part of the method may be ordered in any suitable manner. Thus, although shown as sequential actions in the exemplary embodiments, embodiments may be constructed in which the actions are performed in a different order than shown, which may include performing several actions at the same time. ..
本開示は、ある好ましい実施形態を参照して記載されているが、本開示の精神および範囲内で、さまざまな他の適応例および修正例がなされ得ることが理解されるべきである。したがって、そのようなすべての変形例および修正例が本開示の真の精神および範囲内にあるようにカバーすることが、添付の特許請求の範囲の局面である。 Although this disclosure has been described with reference to certain preferred embodiments, it should be understood that a variety of other indications and modifications may be made within the spirit and scope of this disclosure. Therefore, it is an aspect of the appended claims to cover all such modifications and modifications so that they are within the true spirit and scope of the present disclosure.
代替的には、実行モジュール206eは、状態S1が受け取られると、終了関数を実行した状態で、状態S1について学習関数を実行する。
Alternatively,
Claims (22)
前記コントローラは、
各制御ステップについて前記ロボットの現在の状態を受け付ける入力インターフェイスと、
メモリとを含み、
前記メモリは、前記ロボットのスキルのライブラリを格納するように構成されており、各スキルは、前記現在の状態を提出することに応答して、アクションの分布を返す前記ロボットの状態の確率関数であり、前記スキルは、タスク不可知論的であり、
前記メモリは、前記タスクについての学習済関数を格納するように構成されており、前記学習済関数は、前記ロボットの前記状態を提出することに応答して、スキルの分布を返す前記ロボットの前記状態の確率関数であり、
前記コントローラはさらに、
プロセッサを含み、前記プロセッサは、終了条件に達する制御ステップのシーケンスにおける各制御ステップについて、スキルの前記分布上で最も高い確率を有するスキルを選択するよう、前記現在の状態についての前記学習済関数を実行し、かつ、前記ロボットの前記状態を前記現在の状態から次の状態に遷移させるために、アクションの前記分布上で最も高い確率を有するアクションを選択するよう、前記現在の状態についての選択された前記スキルを実行するように構成されており、
前記コントローラはさらに、
前記タスクを行なうために、選択された前記アクションを実行するよう前記ロボットに命令するように構成される出力インターフェイスを含む、コントローラ。 A controller for controlling the movement of a robot to execute a task.
The controller
An input interface that accepts the current state of the robot for each control step,
Including memory
The memory is configured to store a library of the robot's skills, where each skill is a probability function of the robot's state that returns a distribution of actions in response to submitting the current state. Yes, the skill is task agnostic,
The memory is configured to store a learned function for the task, which returns the distribution of skills in response to submitting the state of the robot. It is a probability function of the state,
The controller further
The processor includes the trained function for the current state so that for each control step in the sequence of control steps reaching the termination condition, the skill with the highest probability on the distribution of skills is selected. Selected for the current state to perform and to select the action with the highest probability on the distribution of actions in order to transition the state of the robot from the current state to the next state. It is configured to perform the above skills
The controller further
A controller comprising an output interface configured to instruct the robot to perform the selected action to perform the task.
前記関数を学習させるために、前記学習モジュールは、
前記タスクの実行のセットを受け取ることを行うように構成され、各実行は、状態/アクションの対のシーケンスを定義しており、
前記関数を学習させるために、前記学習モジュールはさらに、
各状態について、状態/アクションの対の前記シーケンスから、当該状態について受け取られた前記アクションにフィットするアクションの分布を決定することと、
ある状態について、当該状態について決定されるアクションの前記分布上でサンプリングされるアクションを返す最も高い確率を有するスキルを決定することと
を行うように構成される、請求項1に記載のコントローラ。 It further includes a learning module configured to train the function for selecting the skill.
In order to train the function, the learning module
It is configured to receive a set of executions of the task, and each execution defines a sequence of state / action pairs.
To train the function, the learning module further
For each state, from the sequence of state / action pairs, determining the distribution of actions that fit the actions received for that state.
The controller of claim 1, wherein for a state, determining the skill with the highest probability of returning an action sampled on said distribution of actions determined for that state.
各制御ステップについて前記ロボットの現在の状態を受け付けることと、
終了条件に達する制御ステップのシーケンスにおける各制御ステップについて、スキルの前記分布上で最も高い確率を有するスキルを選択するよう、前記現在の状態についての前記学習済関数を実行することと、
前記ロボットの前記状態を前記現在の状態から次の状態に遷移させるために、アクションの前記分布上で最も高い確率を有するアクションを選択するよう、前記現在の状態についての選択された前記スキルを実行することと、
前記タスクを行なうために、選択された前記アクションを実行するよう前記ロボットに命令を出力することとを含む、方法。 A method for controlling the behavior of a robot to perform a task, the method using a processor coupled to a memory, which stores (1) a library of skills of the robot. Each skill is a stochastic function of the state of the robot that returns a distribution of actions in response to submitting the current state, the skill is task insane, and the memory is (2) the task. The learned function is a stochastic function of the state of the robot that returns a skill distribution in response to submitting the state of the robot, and the processor stores. When combined with the instructions given and executed by the processor to perform the steps of the method,
Accepting the current state of the robot for each control step
For each control step in the sequence of control steps that reach the end condition, executing the learned function for the current state to select the skill with the highest probability on the distribution of skills.
Performing the selected skill for the current state to select the action with the highest probability on the distribution of actions in order to transition the state of the robot from the current state to the next state. To do and
A method comprising outputting a command to the robot to perform the selected action in order to perform the task.
前記関数を学習させることはさらに、
前記タスクの実行のセットを受け取ることを行うことを含み、各実行は、状態/アクションの対のシーケンスを定義しており、
前記関数を学習させることはさらに、
各状態について、状態/アクションの対の前記シーケンスから、当該状態について受け取られた前記アクションにフィットするアクションの分布を決定することと、
ある状態について、当該状態について決定されるアクションの前記分布上でサンプリングされるアクションを返す最も高い確率を有するスキルを決定することと
を含む、請求項12に記載の方法。 The memory is further configured to store a learning module and, when executed by the processor to perform the steps of the method, includes training the function to select the skill.
Learning the function further
Each execution defines a sequence of state / action pairs, including receiving a set of executions of the task.
Learning the function further
For each state, from the sequence of state / action pairs, determining the distribution of actions that fit the actions received for that state.
12. The method of claim 12, wherein for a state, determining the skill with the highest probability of returning an action sampled on said distribution of actions determined for that state.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202016831988A | 2020-03-27 | 2020-03-27 | |
US16/831,988 | 2020-03-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021154481A true JP2021154481A (en) | 2021-10-07 |
Family
ID=77916598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021025324A Pending JP2021154481A (en) | 2020-03-27 | 2021-02-19 | Controller and method for controlling operation of robot executing tasks |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2021154481A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102551333B1 (en) * | 2022-12-30 | 2023-07-04 | 주식회사 아이브 | Apparatus and method for learning the optimal path of a robot arm using hierarchical reinforcement learning |
-
2021
- 2021-02-19 JP JP2021025324A patent/JP2021154481A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102551333B1 (en) * | 2022-12-30 | 2023-07-04 | 주식회사 아이브 | Apparatus and method for learning the optimal path of a robot arm using hierarchical reinforcement learning |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Xia et al. | A digital twin to train deep reinforcement learning agent for smart manufacturing plants: Environment, interfaces and intelligence | |
Mollard et al. | Robot programming from demonstration, feedback and transfer | |
Hähnel et al. | GOLEX—bridging the gap between logic (GOLOG) and a real robot | |
US20210031364A1 (en) | Backup control based continuous training of robots | |
US11745345B2 (en) | Planning by work volumes to avoid conflicts | |
US11685047B2 (en) | Skill template distribution for robotic demonstration learning | |
US11820014B2 (en) | Simulated local demonstration data for robotic demonstration learning | |
US11890758B2 (en) | Robot planning from process definition graph | |
US11780086B2 (en) | Robotic demonstration learning device | |
US11787048B2 (en) | Robot planning from process definition graph | |
EP4139098A1 (en) | Skill templates for robotic demonstration learning | |
US20210060771A1 (en) | Dynamic path planning from a fault condition | |
JP2021154481A (en) | Controller and method for controlling operation of robot executing tasks | |
Senft et al. | Task-level authoring for remote robot teleoperation | |
US11577392B2 (en) | Splitting transformers for robotics planning | |
US11747787B2 (en) | Combining transformers for robotics planning | |
US11524402B2 (en) | User feedback for robotic demonstration learning | |
US11679497B2 (en) | Distributed robotic demonstration learning | |
US20210060773A1 (en) | Robot planning from process definition graph | |
Camarinha-Matos et al. | A mobile agents approach to virtual laboratories and remote supervision | |
Ming et al. | HiCRISP: A Hierarchical Closed-Loop Robotic Intelligent Self-Correction Planner | |
US20230046520A1 (en) | Machine-learnable robotic control plans | |
US20230050174A1 (en) | Template robotic control plans | |
Tu | Felix, A Rich Learning Experience in Mobile Robotics | |
Lima | Current Status of ISR/IST Open Control Architecture for a PUMA 560 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230830 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240329 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240402 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240515 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20240618 |