Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7523384B2 - CONTROLLER AND METHOD FOR CONTROLLING THE OPERATION OF A ROBOT TO PERFORM A TASKS - Patent application - Google Patents
[go: Go Back, main page]

JP7523384B2 - CONTROLLER AND METHOD FOR CONTROLLING THE OPERATION OF A ROBOT TO PERFORM A TASKS - Patent application - Google Patents

CONTROLLER AND METHOD FOR CONTROLLING THE OPERATION OF A ROBOT TO PERFORM A TASKS - Patent application Download PDF

Info

Publication number
JP7523384B2
JP7523384B2 JP2021025324A JP2021025324A JP7523384B2 JP 7523384 B2 JP7523384 B2 JP 7523384B2 JP 2021025324 A JP2021025324 A JP 2021025324A JP 2021025324 A JP2021025324 A JP 2021025324A JP 7523384 B2 JP7523384 B2 JP 7523384B2
Authority
JP
Japan
Prior art keywords
state
task
skill
function
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.)
Active
Application number
JP2021025324A
Other languages
Japanese (ja)
Other versions
JP2021154481A (en
Inventor
ファン・バール・イェルーン
ジャー・デベシュ
ロメレス・ディエゴ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JP2021154481A publication Critical patent/JP2021154481A/en
Application granted granted Critical
Publication of JP7523384B2 publication Critical patent/JP7523384B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Manipulator (AREA)

Description

本発明は、ロボット制御に関し、より特定的には、特定のタスクを実行するようにロボットを学習および制御することに関する。 The present invention relates to robot control, and more specifically to learning and controlling robots to perform specific tasks.

ロボットの操作は、ロボットの有望性を達成することの中核をなす。ロボットの定義そのものは、ロボットが世界に対して変化を与えるために使用し得るアクチュエータを有することを必要とする。自律操作アプリケーションのポテンシャルは巨大である。すなわち、自身の環境を操作することが可能なロボットは、病院、高齢者ケアおよび保育、工場、宇宙空間、レストラン、サービス産業、および、家庭において展開され得る。これらの多種多様な展開シナリオ、ならびに、食事の用意のような非常に特殊化されたシナリオにおける広範囲かつ非系統的な環境変動は、ロボットの迅速な学習の必要性が存在することを示唆している。ロボットがその周りの世界を操作するためにどのようにラーニングすべきかという問題に対して、多くの方法が焦点を当てている。 Robot manipulation is central to achieving the promise of robotics. The very definition of a robot requires that it has actuators that it can use to affect the world. The potential for autonomous manipulation applications is huge: robots capable of manipulating their environment could be deployed in hospitals, elderly care and daycare, factories, outer space, restaurants, the service industry, and homes. These diverse deployment scenarios, as well as the wide range and unsystematic environmental variations in highly specialized scenarios such as food preparation, suggest that there is a need for rapid learning for robots. Many approaches focus on the problem of how a robot should learn to manipulate the world around it.

たとえば、いくつかの方法は、新しいタスクを実行するために、人間のデモンストレーションから個々の操作スキルをラーニングするようにロボットに学習させる。いくつかのソリューションは、特定のロボットに適合される注意深く設計されたデモンストレーションを使用する。しかしながら、これらの方法は、非常に労力を要し、時間がかかり、および/または、リソース集中的である。いくつかの他の方法は、階層型学習(hierarchical learning)、カリキュラム学習(curriculum learning)、および、オプションフレームワークを使用することを試みている。これらの方法は、以前に学習されたあまり複雑でないタスクのセットからより複雑なタスクをラーニングする。これは、新しいタスクを実行するのではなく、新しいタスクの目標をより複雑にする。 For example, some methods teach robots to learn individual manipulation skills from human demonstrations to perform new tasks. Some solutions use carefully designed demonstrations that are tailored to a specific robot. However, these methods are very laborious, time-consuming, and/or resource-intensive. Some other methods attempt to use hierarchical learning, curriculum learning, and option frameworks. These methods learn more complex tasks from a set of less complex tasks that were previously learned. This makes the goal of the new task more complex 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 new tasks in an effective manner. However, when it comes to learning new tasks for robotic manipulation, RL expects to choose from a finite set of actions, whereas many actions are effectively unbounded.

したがって、ロボットの学習を簡素化し、これによりロボットがより効率的に新しいタスクを行うことを可能にする方法を提供する必要性が存在する。 Therefore, there is a need to provide methods that simplify robot learning, thereby enabling robots to perform new tasks more efficiently.

いくつかの実施形態の目的は、タスクを実行するようにロボットを学習および制御するためのシステムおよび方法を提供することである。付加的または代替的には、いくつかの実施形態の目的は、ロボットの学習プロセスを修正することである。いくつかの実施形態は、新しいタスクを実行するための新しいスキルをラーニングするように学習されるロボットが、新しいタスクを「模倣する」ために既存のタスク不可知論的スキルを再利用するようラーニングするように修正され得るという認識に基づいている。このような定式化によって、実施形態は、新しいスキルのラーニング目的を選択目的に置き換えることが可能になる。さらに、このような定式化によって、新しいタスクの効果または作用のみを「模倣する」ように、新しいタスクの特定の事項から実施形態が距離を置くことが可能になる。付加的または代替的には、このような定式化によって、いくつかの実施形態が、起こり得る障害および新しいタスクの性質を考慮するために、リアルタイムでスキルを適応可能に選択することが可能になる。付加的または代替的には、そのような定式化によって、いくつかの実施形態が、強化学習(RL)を使用して、どのように効果的な態様でタスクを実行すべきかをラーニングするようにロボットを学習させることが可能になる。 An objective of some embodiments is to provide a system and method for learning and controlling a robot to perform a task. Additionally or alternatively, an objective of some embodiments is to modify the learning process of a robot. Some embodiments are based on the recognition that a robot that is trained to learn new skills to perform a new task can be modified to learn to reuse existing task-agnostic skills to "mimic" the new task. Such a formulation allows the embodiments to replace the learning objective of the new skill with a selection objective. Furthermore, such a formulation allows the embodiments to distance themselves from the specifics of the new task to "mimic" only the effects or effects of the new task. Additionally or alternatively, such a formulation allows some embodiments to adaptively select skills in real time to take into account possible obstacles and the nature of the new task. Additionally or alternatively, such a formulation allows some embodiments to train a robot to learn how to perform a task in an effective manner using reinforcement learning (RL).

たとえば、いくつかの実施形態の目的は、状態およびアクションが観察されるがスキルは観察されないタスクの実行の複数のデモンストレーションからタスクを実行するようにロボットを学習させることである。実際、いくつかの実施形態は、状態/アクションの対がデモンストレーションから観察可能である場合がしばしば存在する一方、スキルが未知または未定義であるという認識に基づいている。さらに、状態/アクションの対は、スキルよりも重要である。その理由は、状態/アクションの対がロボットの空間領域において実際にタスクを実行する一方で、スキルは時間領域において状態/アクションの対のシーケンスを接続するからである。 For example, an objective of some embodiments is to have a robot learn to perform a task from multiple demonstrations of the task's execution where states and actions are observed but skills are not. Indeed, some embodiments are based on the recognition that while there are often cases where state/action pairs are observable from demonstrations, skills are unknown or undefined. Moreover, state/action pairs are more important than skills, because while state/action pairs actually perform a task in the spatial domain of the robot, skills connect sequences of state/action pairs in the time domain.

そのため、いくつかの実施形態は、状態について選択されたアクションと、タスクの複数のデモンストレーションからの対応するアクションとの間の差の確率を最小化するように関数を学習させる。実施形態は、アクションを行なうスキルを選択するように関数を学習させる。関数の学習は、ロボットの学習と考えられ得る。選択されたスキルは、当該スキルが、入力された状態について必要とされるアクションを返す限り、タスク不可知論的であり得る。実際、いくつかの実施形態は、特定の状態について特定のアクションを規定する新しいタスクについて、1つの状態値について正しいアクションを偶然返す一方で、異なる状態値について間違ったアクションを返す多くの既存のスキルが存在するという認識に基づいている。しかしながら、その異なる状態値については、正しいアクションを返し得る別のスキルが存在し得る。 Therefore, some embodiments train a function to minimize the probability of difference between the action selected for a state and the corresponding action from multiple demonstrations of the task. The embodiments train a function to select a skill to perform an action. The learning of the function 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 input state. Indeed, some embodiments are based on the recognition that for a new task that specifies a particular action for a particular state, there are many existing skills that happen to return the correct action for one state value, while returning the wrong action for a different state value. However, for that different state value, there may be another skill that can return the correct action.

したがって、いくつかの実施形態は、既存のスキルを再利用し、かつ、ラーニング目的を選択目的に置き換えるよう関数を学習させる。そのような選択は、起こり得る障害およびタスクの性質を考慮するよう、決定論的または適応可能に実行され得る。実施形態の副作用は、選択されたスキルが複数の制御ステップについて実行されるように構成されるマルチステップスキルであっても、スキルを実行するために各制御ステップについて学習済関数を実行する必要があることを含み得る。しかしながら、選択目的は、強化学習のための報酬関数を簡素化することを可能にする。 Thus, some embodiments learn a function to reuse existing skills and replace the learning objective with a selection objective. Such selection may be performed deterministically or adaptively to take into account possible obstacles and the nature of the task. A side effect of the embodiments may include the need to execute the learned function for each control step to execute the skill, even if the selected skill is a multi-step skill configured to be executed for multiple control steps. However, the selection objective allows for simplifying the reward function for reinforcement learning.

具体的には、強化学習(RL)は、どのようにソフトウェアエージェントが累積的報酬の何らかの概念を最大化するために環境内でアクションを行うべきかに関する機械学習の領域である。RLエージェントは、離散的な時間ステップにおいてその環境と相互作用する。各時間tにおいて、エージェントは、典型的には報酬rを含む観察結果oを受け取る。次いで、RLコントローラは、報酬を増加するよう、利用可能なアクションのセットからアクションaを選択し、当該アクションaは次いで、環境に送られる。しかしながら、ロボット操作のための新しいタスクをラーニングすることについて、多くのアクションは事実上境界がないが、RLはアクションの有限のセットからの選択を期待する。そのため、いくつかの実施形態の選択ベースのRLは、アクションの境界のない選択を、スキルの有限のライブラリからのスキルの境界のある選択と置き換える。実際、このような選択ベースのRLは、タスク不可知論的スキルのライブラリを使用するタスク固有の関数の学習を簡素化する。たとえば、一実施形態では、深層強化学習者(DRL: deep reinforcement learner)は、各スキルおよびそのアクションについての値を決定する。 Specifically, reinforcement learning (RL) is an area of machine learning that deals with how a software agent should take actions in an environment to maximize some notion of cumulative reward. An RL agent interacts with its environment in discrete time steps. At each time t, the agent receives an observation o t , typically including a reward r t . The RL controller then selects an action a t from a set of available actions to increase the reward, which is then sent to the environment. However, for learning new tasks for robotic manipulation, RL expects selection from a finite set of actions, while many actions are effectively unbounded. Thus, the selection-based RL of some embodiments replaces the bounded selection of actions with a bounded selection of skills from a finite library of skills. In effect, such 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 a value 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 function that forms the RL controller. For example, in some embodiments, the parameterized function is trained using one of a deep deterministic policy gradient method, an advantage-actor critic method, a proximal policy optimization method, a deep Q-network method, or a Monte Carlo policy gradient method.

したがって、一実施形態は、タスクを実行するようロボットの動作を制御するためのコントローラを開示する。コントローラは、各制御ステップについてロボットの現在の状態を受け付ける入力インターフェイスと、メモリとを含み、メモリは、(1)ロボットのスキルのライブラリを格納するように構成され、各スキルは、現在の状態を提出することに応答して、アクションの分布を返すロボットの状態の確率関数であり、スキルは、タスク不可知論的であり、メモリは、(2)タスクについての学習済関数を格納するように構成され、学習済関数は、ロボットの状態を提出することに応答して、スキルの分布を返すロボットの状態の確率関数である。コントローラはさらに、プロセッサを含み、プロセッサは、終了条件に達する制御ステップのシーケンスにおける各制御ステップについて、スキルの分布上で最も高い確率を有するスキルを選択するよう、現在の状態についての学習済関数を実行し、かつ、ロボットの状態を現在の状態から次の状態に遷移させるために、アクションの分布上で最も高い確率を有するアクションを選択するよう、現在の状態についての選択されたスキルを実行するように構成される。コントローラはさらに、タスクを行なうために、選択されたアクションを実行するようロボットに命令するように構成される出力インターフェイスを含む。 Thus, one embodiment discloses a controller for controlling the operation of a robot to perform a task. The controller includes an input interface for accepting a current state of the robot for each control step, and a memory, the memory configured to (1) store a library of skills for the robot, each skill being a probability function of the robot's state that returns a distribution of actions in response to submitting the current state, the skills being task agnostic, and the memory configured to (2) store a learned function for the task, the learned function being a probability function of the robot's state that returns a distribution of skills in response to submitting the robot's state. The controller further includes a processor, the processor configured to execute the learned function for the current state to select a skill with the highest probability on the distribution of skills for each control step in a sequence of control steps that reaches an end condition, and execute the selected skill for the current state to select an action with the highest probability on the distribution of actions to transition the robot's state from the current state to a next state. The controller further includes an output interface configured to command the robot to perform the selected action 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 coupled to a memory, the memory storing (1) a library of skills for the robot, each skill being a probability function of the robot's state that returns a distribution of actions in response to submitting a current state, the skills being task agnostic, the memory storing (2) a learned function for the task, the learned function being a probability function of the robot's state that returns a distribution of skills in response to submitting a state of the robot, the processor coupled to the stored instructions, which when executed by the processor to perform steps of the method include accepting a current state of the robot for each control step, executing the learned function for the current state to select a skill that has the highest probability on the distribution of skills for each control step in a sequence of control steps that reaches an exit condition, executing the selected skill for the current state to select an action that has the highest probability on the distribution of actions to transition the state of the robot from the current state to a next state, and outputting an instruction to the robot to perform the selected action to perform the task.

定義
本発明の実施形態を説明する際に、以下の定義が全体(上記を含む)を通して適用可能である。
DEFINITIONS In describing embodiments of the present invention, the following definitions are applicable throughout (including above).

「ロボット」は、その根本的な目的が1つ以上のタスクを自動的に実行することであるマシンを指す。 "Robot" refers to a machine whose fundamental purpose is to perform one or more tasks automatically.

「タスク」は、ロボットによって実行されるべき作業を指し、当該作業は、時間領域におけるスキルのシーケンスによって定義される。代替的には、タスクは、ロボットによって時間領域において実行されるべき状態/アクションの対のシーケンスを指す。 "Task" refers to a task to be performed by a robot, the task being defined by a sequence of skills in the time domain. Alternatively, a task refers to a sequence of state/action pairs to be performed in the time domain by a robot.

「スキル」は、現在の状態を提出することに応答して、アクションまたはアクションにわたる分布を返すロボットの状態の確率関数を指す。 "Skill" refers to a probability function of the robot's state that returns an action or a distribution over actions in response to submitting the current state.

「状態」は、特定の時間tにおけるロボットおよびその環境の値を指す。これらの値は、特定の時間tにおけるロボットの設定を定義する。ロボットの設定の例は、たとえば、モータの設定、ジョイントの設定、グリッパの設定、工具の設定、ロボットの位置の設定を含む。その環境における値の例は、たとえば、1つ以上の対象の位置、1つ以上の障害物の位置、目標位置までの距離、環境の画像である。 "State" refers to the values of a robot and its environment at a particular time t. These values define the configuration of the robot at a particular time t. Examples of robot configurations include, for example, motor configurations, joint configurations, gripper configurations, tool configurations, and robot position configurations. Examples of values in the environment are, for example, the positions of one or more objects, the positions of one or more obstacles, the distance to a goal position, and an image of the environment.

「アクション」は、特定の時間tにおいてロボットを現在の状態から次の状態に移行する値のベクトルを指す。当該値のベクトルは、特定の時間tにおいてロボットの次の設定を決定する。 An "action" refers to a vector of values that transitions the robot from its current state to its next state at a particular time t. The vector of values determines the next configuration of the robot at a particular time t.

「制御ステップ」は、特定の時間tにおける状態についてアクションを行うことを指す。 A "control step" refers to taking an action on a state at a particular time t.

「コンピュータ」は、構造化された入力を受け付け、規定されたルールに従って当該構造化された入力を処理し、当該処理の結果を出力として生成することが可能な任意の装置を指す。コンピュータの例は、たとえば、汎用コンピュータと、スーパーコンピュータと、メインフレームと、スーパーミニコンピュータと、ミニコンピュータと、ワークステーションと、マイクロコンピュータと、サーバと、インタラクティブテレビジョンと、コンピュータおよびインタラクティブテレビジョンのハイブリッドな組み合せと、コンピュータおよび/またはソフトウェアをエミュレートする特定用途向けハードウェアとを含む。コンピュータは、単一のプロセッサを有し得、または、並列に動作し得るおよび/もしくは並列に動作し得ない複数のプロセッサを有し得る。さらに、コンピュータは、2つ以上のコンピュータ同士間で情報の送受信を行うためのネットワークを介して接続された当該2つ以上のコンピュータを指す。このようなコンピュータの例は、ネットワークによってリンクされたコンピュータを介して情報を処理するための分散型コンピュータシステムを含む。 "Computer" refers to any device capable of accepting structured input, processing the structured input according to prescribed rules, and producing the results of the processing as output. Examples of computers include, for example, general purpose computers, supercomputers, mainframes, superminicomputers, minicomputers, workstations, microcomputers, servers, interactive televisions, hybrid combinations of computers and interactive televisions, and special purpose hardware that emulates computers and/or software. A computer may have a single processor or may have multiple processors that may or may not operate in parallel. Furthermore, a computer refers to two or more computers connected via a network for transmitting and receiving information between the two or more computers. Examples of such computers include distributed computer systems for processing information via computers linked by a network.

「中央処理装置(CPU: central processing unit)」または「プロセッサ」は、ソフトウェア命令を読み出して実行するコンピュータまたはコンピュータの構成要素を指す。 "Central processing unit" or "processor" refers to a computer or a component of a computer 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 disks, optical disks such as CD-ROMs or DVDs, magnetic tape, memory chips, carrier waves used to carry computer-readable electronic data such as those used to send and receive email or access a network, and computer memory such as 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. Software in an intelligent system may be self-learning.

「モジュール」または「ユニット」は、タスクまたはタスクの一部分を実行するコンピュータにおける基本な構成要素を指す。「モジュール」または「ユニット」は、ソフトウェアまたはハードウェアのいずれによっても実現され得る。 A "module" or "unit" refers to a basic component in a computer that performs a task or part of a task. A "module" or "unit" may be realized in either software or hardware.

「コントローラ」および/または「制御システム」は、他のデバイスまたはシステムの挙動を管理、命令、指示または調整するためのデバイスまたはデバイスのセットを指す。コントローラは、ハードウェアと、動作がソフトウェアにより構成されるプロセッサと、これらの組み合わせとによって実現され得る。コントローラは組込システムであり得る。 "Controller" and/or "control system" refers to a device or set of devices for managing, commanding, directing, or coordinating the behavior of other devices or systems. A controller may be realized by hardware, a processor whose operations are configured by software, or a combination of both. A controller may be an embedded system.

添付の図面を参照して、ここで開示される実施形態がさらに説明される。示される図面は、必ずしも尺度決めされておらず、その代わりに、ここで開示される実施形態の原理を説明する際に概して強調がなされている。 The presently disclosed embodiments are further described with reference to the accompanying drawings. The drawings shown are not necessarily to scale, emphasis instead generally being placed on illustrating the principles of the presently disclosed embodiments.

タスクを実行するようロボットの動作を学習および制御するためにいくつかの実施形態によって使用される原理の概略的な全体図を示す図である。FIG. 1 shows a schematic overview of the principles used by some embodiments to learn and control the behavior of a robot to perform a task. タスクを実行するようロボットの動作を学習および制御するためのロボット制御システムのブロック図を示す図である。FIG. 1 illustrates a block diagram of a robot control system for learning and controlling the behavior of a robot to perform a task. ロボット制御システムのスキルライブラリモジュールに格納される例示的なスキルを示す図である。FIG. 1 illustrates an example skill stored in a skill library module of a robotic control system. いくつかの実施形態に従った、リモート制御デバイスを使用するロボットためのタスクデモンストレーションを示す図である。FIG. 1 illustrates a task demonstration for a robot using a remote control device, according to some embodiments. いくつかの実施形態に従った、手動操作によるロボットのためのタスクデモンストレーションを示す図である。FIG. 1 illustrates a task demonstration for a manually operated robot, according to some embodiments. いくつかの実施形態に従った、タスクデモンストレーションモジュールに格納される例示的なタスクデモンストレーションを示す図である。FIG. 2 illustrates an example task demonstration stored in a task demonstration module, according to some embodiments. いくつかの実施形態に従った、スキルを選択するための関数を学習させる学習モジュールの例示的なアーキテクチャ図を示す図である。FIG. 2 illustrates an example architecture diagram of a learning module that learns a function for selecting a skill, according to some embodiments. いくつかの実施形態に従った、選択ベースの強化学習を使用して関数を学習させる例示的なアーキテクチャを示す図である。FIG. 1 illustrates an example architecture for learning a function using selection-based reinforcement learning, according to some embodiments. いくつかの実施形態に従った、タスクを実行する実行モジュールの例示的なアーキテクチャ図を示す図である。FIG. 2 illustrates an example architecture diagram of an execution module for executing tasks, according to some embodiments. いくつかの実施形態に従った、実行モジュールによって実行される動作を示すフローチャートを示す図である。FIG. 4 illustrates a flowchart illustrating operations performed by an executive module according to some embodiments. いくつかの実施形態に従った、タスクを実行するための例示的な学習フェーズおよび実行フェーズを示す図である。FIG. 2 illustrates an exemplary learning and execution phase for performing a task, according to some embodiments.

以下の記載では、説明目的のために、本開示の完全な理解を提供するために、多数の具体的な詳細が記載される。しかしながら、本開示は、これらの具体的な詳細がなくても実施されてもよいことが当業者には明白であろう。他の場合では、本開示を不明瞭にすることを避けるために、装置および方法はブロック図の形式でのみ示される。 In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. However, it will be apparent to one skilled in the art that the present disclosure may be practiced without these specific details. In other instances, the devices and methods are shown only in block diagram form in order to avoid obscuring the present disclosure.

本明細書および特許請求の範囲において使用されるように、「たとえば」、「例としては」、および、「のような」といった用語、ならびに、「備える」、「有する」、「含む」といった動詞およびそれらの他の動詞形は、1つ以上の構成要素または他の項目のリストに関連して使用される場合、各々オープンエンドであると解釈されるべきであり、当該リストは他の付加的な構成要素または項目を排除すると考えられるべきではないことを意味する。「に基づく」という用語は、少なくとも部分的に基づくことを意味する。さらに、本明細書において使用される表現および用語は、説明目的であり、限定と見なされるべきではないことが理解されるべきである。この記載において利用されるいずれの見出しも、便宜上のためのみであり、法的効果または限定効果を有さない。 As used herein and in the claims, the terms "for example," "for example," and "such as," as well as verbs such as "comprise," "have," "include," and other verb forms thereof, when used in connection with a list of one or more components or other items, should each be construed as open-ended, meaning that the list should not be considered to exclude other additional components or items. The term "based on" means based at least in part on. Furthermore, it should be understood that the phraseology and terminology used herein are for descriptive purposes and should not be considered limiting. Any headings utilized 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 behavior of a robot to perform a task, according to some embodiments. A robot is a machine whose fundamental purpose is to perform one or more tasks automatically. A task is a task that is difficult or repetitive for a human to perform. For example, tasks correspond to industrial tasks, household maintenance, and serving in a restaurant. In some embodiments, an untrained robot 102 refers to a robot that has not been trained or is learning. To make a robot (e.g., an untrained robot 102) perform a task, the robot needs to be extensively trained on the task. However, the task is complex and involves several steps to be performed. Therefore, to help the robot learn, the robot's task can be divided into subtasks (hereinafter referred to as skills). The task can be to assemble several parts into some complex object. Skills required for assembly may include moving the robot arm to the left, opening the gripper, lowering the gripper, lifting the part, raising the arm, moving the arm to the right to a specific position, lowering the arm, inserting the part within another part, etc.

いくつかの実施形態は、あるタスクについて学習済であるロボットが新しいタスクを実行するように操作され得るという認識に基づいている。たとえば、食器を洗うことおよび床を掃除することといった家事を維持するように学習済であるロボットは、食器を洗うこと、床を掃除すること、および、ごみを廃棄することなどを行うように操作され得る。しかしながら、ロボットを操作するためには、ロボットはさらに、新しいタスクに対して迅速かつ広範な学習を必要とする。そのため、いくつかの実施形態の目的は、新しいタスクをラーニングするようにロボットを学習させることである。図1に示されるように、未習熟ロボット102は、ロボット制御システム104によって学習され、これにより、新しいタスクを実行する学習済ロボットが形成される。いくつかの実施形態では、ロボット制御システム104は、人間のデモンストレーションから個々の操作スキルをラーニングするように未習熟ロボット102を学習させる学習モジュール104aを含む。たとえば、学習モジュール104aは、ロボットの特定の事項に適合される注意深く設計されたデモンストレーションを使用する。しかしながら、このアプローチは、デモンストレーションを設計するのに付加的な作業を必要とし、当該作業は、長く時間のかかるプロセスである。いくつかの他の実施形態では、学習モジュール104aは、効果的な態様で新しいタスクをラーニングするために、ロボットを学習させるのに強化学習(RL)を使用する。強化学習(RL)では、RLエージェントは、離散的な時間ステップでその環境と相互作用する。各時間tにおいて、エージェントは、典型的に報酬rを含む観察結果oを受け取る。次いで、RLコントローラは、報酬を増加するよう、利用可能なアクションのセットからアクションaを選択し、次いで、当該アクションaは、環境に送られる。しかしながら、ロボット操作のための新しいタスクをラーニングすることについて、多くアクションは事実上境界がないが、RLはアクションの有限のセットからの選択を期待する。さらに、RLは、新しいタスクをラーニングするのに適切な報酬関数を設計する必要性を要求する。これらの報酬関数を設計することは困難である。 Some embodiments are based on the recognition that a robot that has been trained for a task can be operated to perform a new task. For example, a robot that has been trained to maintain a household, such as washing dishes and sweeping the floor, can be operated to wash dishes, sweep the floor, and dispose of trash, etc. However, in order to operate the robot, the robot still needs to learn the new task quickly and extensively. Therefore, the objective of some embodiments is to train the robot to learn a new task. As shown in FIG. 1, an untrained robot 102 is trained by a robot control system 104, thereby forming a trained robot that performs the new task. In some embodiments, the robot control system 104 includes a learning module 104a that trains the untrained robot 102 to learn individual operation skills from human demonstrations. For example, the learning module 104a uses carefully designed demonstrations that are adapted to the specifics of the robot. However, this approach requires additional work to design the demonstrations, which is a long and time-consuming process. In some other embodiments, the learning module 104a uses reinforcement learning (RL) to train the robot to learn new tasks in an efficient manner. In reinforcement learning (RL), the RL agent interacts with its environment at discrete time steps. At each time t, the agent receives an observation o t , which typically includes a reward r t . The RL controller then selects an action a t from a set of available actions to increase the reward, and the action a t is then sent to the environment. However, for learning new tasks for robotic manipulation, RL expects to select from a finite set of actions, while many actions are effectively unbounded. Furthermore, RL requires the need to design a reward function appropriate for learning new tasks. Designing these reward functions is difficult.

そのため、いくつかの実施形態の目的は、新しいタスクを実行するために改善された学習方法を提供することである。したがって、ラーニング目的の学習モジュール104aを含むロボット制御システム104は、選択目的の学習モジュール108aにより修正される。学習モジュール108aは、既存のタスク不可知論的なスキルを再使用して未習熟ロボットを学習済ロボット106に変換するように未習熟ロボット102を学習させる。さらに、学習モジュール108aによって、新しいタスクの効果または作用のみを「模倣する」ように、新しいタスクの特定の事項から実施形態が距離をおくことが可能になる。付加的または代替的には、学習モジュール108aによって、いくつかの実施形態が、起こり得る障害および新しいタスクの性質を考慮するために、リアルタイムでスキルを適応可能に選択することが可能になる。さらに、いくつかの実施形態では、選択目的は、強化学習のための報酬関数を簡素化することを可能にする。いくつかの実施形態では、学習モジュール108aは、新しいタスクを効率的な態様で実行するために、未習熟ロボット102を学習させるのにRLを使用する。具体的には、学習モジュール108aは、既存のタスク不可知論的なスキルの有限のライブラリからスキルを選択するように未習熟ロボット102を学習させるのにRLを使用する。そのため、いくつかの実施形態の選択ベースのRLは、アクションの境界のない選択を、スキルの有限のライブラリからのスキルの境界のある選択と置き換える。 Therefore, an objective of some embodiments is to provide an improved learning method to perform new tasks. Thus, the robot control system 104, including the learning module 104a with learning objectives, is modified by the learning module 108a with selection objectives. The learning module 108a trains the unskilled robot 102 to reuse existing task-agnostic skills to transform the unskilled robot into a learned robot 106. Furthermore, the learning module 108a allows the embodiment to distance itself from the specifics of the new task to "mimic" only the effects or effects of the new task. Additionally or alternatively, the learning module 108a allows some embodiments to adaptively select skills in real time to take into account possible obstacles and the nature of the new task. Furthermore, in some embodiments, the selection objective allows the reward function for reinforcement learning to be simplified. In some embodiments, the learning module 108a uses RL to train the unskilled robot 102 to perform the new task in an efficient manner. Specifically, the learning module 108a uses RL to train the unskilled robot 102 to select skills from a finite library of existing task-agnostic skills. Thus, the selection-based RL of some embodiments replaces the bounded selection of actions with a bounded selection of skills from a finite library of skills.

図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 robot control system 200 for learning and controlling the movement of a robot to perform a task, according to some embodiments. Hereinafter, "robot control system" and "controller" may be used interchangeably and mean the same thing. The controller 200 includes an input interface and an output interface for connecting the controller 200 to other systems and devices. In some embodiments, the input interface includes a human machine interface (HMI) 202 and an imaging interface 220. The HMI 202 may connect the controller 200 to an input device such as a keyboard 230 and/or a pointing device/medium 232. The pointing device 232 may include, for example, a mouse, a trackball, a touchpad, a joystick, a pointing stick, a stylus, or a touch screen. The imaging interface 220 may be adapted to connect the controller 200 to an imaging device 226. The imaging device 226 may include an RGBD camera, a depth camera, an RGB camera, a grayscale camera, a computer, a scanner, a mobile device, a webcam, or any combination thereof. According to some embodiments, the input interface may be configured to receive/accept a current state of the robot 236 for each control step of the robot 236. The input interface further includes a network interface controller (NIC) 212 adapted to connect the controller 200 to the network 234 via the bus 210. The controller 200 receives the current state of the robot 236 for each control step via the network 234, either wirelessly or wired.

いくつかの実施形態によれば、入力インターフェイスは、タスクの実行のセットを受け取るようにさらに構成され得る。実行のセットは、ロボットがタスクを実行するためのタスクのデモンストレーションである。以下、「タスクの実行セット」および「タスクデモンストレーション」は、相互に交換可能に使用され得、同じものを意味する。いくつかの実施形態は、イメージングインターフェイス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 further be configured to receive a set of executions of the task. The set of executions is a demonstration of the task for the robot to execute the task. Hereinafter, "execution set of the task" and "task demonstration" may be used interchangeably and mean the same thing. Some embodiments are based on the recognition that the imaging interface 220 may receive a task demonstration for the robot 236 from the imaging device 226. In some embodiments, the imaging device 226 may provide the task demonstration in image and/or video format. Additionally or alternatively, the controller 200 may include an image processing module 218. The image processing module 218 is configured to process images and videos to provide the task demonstration as an input to the learning module 206d or to store the task demonstration in the task demonstration module 206b. In some embodiments, the image processing 218 may augment the task demonstration input to the learning module 206d or augment the task demonstration stored in the module 206b. Additionally or alternatively, the controller 200 includes a task processing module 216 that may be configured to receive task demonstrations from the robot 236 directly or via the network 234. In some embodiments, the task processing module 216 may be further configured to process the task demonstrations to provide them as input to the learning module 206d or to store them in the task demonstration module 206b. The task processing module 216 takes the task demonstrations in some format and converts them into a sequence of state/action pairs. For example, the tasks may be received as robot commands and the task processing module 216 may convert those commands into state/action pairs. The task processing module 216 may be used in augmenting the task demonstrations from elements provided by the image processing 218.

コントローラ200は、プロセッサ204と、プロセッサ204によって実行可能な命令を格納するメモリ208とをさらに含む。プロセッサ204は、シングルコアプロセッサ、マルチコアプロセッサ、コンピューティングクラスタ、または、任意の数の他の構成であり得る。メモリ208は、ランダムアクセスメモリ(RAM: random access memory)、リードオンリメモリ(ROM: read only memory)、フラッシュメモリ、または、任意の他の適切なメモリシステムを含み得る。プロセッサ204は、バス210を介して1つ以上の入力デバイスおよび出力デバイスに接続される。格納された命令は、タスクを実行するようにロボット(たとえば、ロボット236)の動作を学習および制御するための方法を実現する。 The controller 200 further includes a processor 204 and a memory 208 that stores instructions executable by the processor 204. The processor 204 may be a single-core processor, a multi-core processor, a computing cluster, or any number of other configurations. The memory 208 may include random access memory (RAM), read only memory (ROM), flash memory, or any other suitable memory system. The processor 204 is connected to one or more input and output devices via a bus 210. The stored instructions implement a method for learning and controlling the behavior of a robot (e.g., robot 236) to perform a task.

いくつかの実施形態では、メモリ208は、ストレージ206を含むようにさらに拡張され得る。いくつかの実施形態では、ストレージ206は、ラーニング済スキルライブラリモジュール206a、タスクデモンストレーションモジュール206b、ロボットコントローラ206c、学習モジュール206dおよび実行モジュール206eを含む。スキルライブラリモジュール206aは、スキルのライブラリ(すなわち、複数のスキル)を格納するように構成され得る。スキルは、ロボットの現在の状態を提出することに応答して、アクションまたはアクションにわたる分布を返すロボット(たとえば、ロボット236)の状態の確率関数である。いくつかの実施形態は、モジュール206aにおけるスキルがタスクのサブシーケンスまたはサブタスクであるという認識に基づいている。さらに、各スキルは、時間領域における状態/アクションの対または状態/アクションの対のシーケンスであり得る。そのため、モジュール206aにおけるスキルは、シングルステップスキルまたはマルチステップスキルであり得る。たとえば、状態/アクションの対に対応するスキルは、シングルステップスキルとして作成され(coined)得、状態/アクションの対のシーケンスに対応するスキルは、マルチステップのスキルとして作成され得る。さらに、モジュール206aに格納されるスキルは、図3を参照して詳細に説明される。 In some embodiments, the memory 208 may be further expanded to include a storage 206. In some embodiments, the storage 206 includes a learned skills library module 206a, a task demonstration module 206b, a robot controller 206c, a learning module 206d, and an execution module 206e. The skills library module 206a may be configured to store a library of skills (i.e., a plurality of skills). A skill is a probability function of a state of a robot (e.g., robot 236) that returns an action or a distribution over actions in response to submitting the current state of the robot. Some embodiments are based on the recognition that the skills in module 206a are subsequences or subtasks of a task. Furthermore, each skill may be a state/action pair or a sequence of state/action pairs in the time domain. As such, the skills in module 206a may be single-step or multi-step skills. For example, skills corresponding to state/action pairs may be coined as single-step skills, and skills corresponding to sequences of state/action pairs may be coined as multi-step skills. Further, the skills stored in module 206a are described in more detail with reference to FIG. 3.

いくつかの実施形態は、タスクデモンストレーションモジュール206bがタスクの実行のセット(すなわち、ロボット236のためのタスクデモンストレーション)を格納するように構成され得るという認識に基づいている。いくつかの実施形態では、タスクデモンストレーションは、状態/アクションの対のシーケンスとして入力デバイスによって観察または記録される一方、スキルは未知または未定義である。そのため、タスクデモンストレーションは、状態/アクションの対のシーケンスとしてモジュール206bに格納される。さらに、状態/アクションの対は、スキルよりも重要である。その理由は、状態/アクションの対がロボットの空間領域において実際にタスクを実行する一方で、スキルは、時間領域において状態/アクションの対のシーケンスを接続するからである。ロボットのためのタスクデモンストレーションは、図4A~図4Cを参照して詳細に説明される。 Some embodiments are based on the recognition that the task demonstration module 206b may be configured to store a set of executions of a task (i.e., a task demonstration for the robot 236). In some embodiments, the task demonstration is observed or recorded by an input device as a sequence of state/action pairs, while the skills are unknown or undefined. Therefore, the task demonstration is stored in the module 206b as a sequence of state/action pairs. Furthermore, the state/action pairs are more important than the skills, because the state/action pairs actually perform the task in the spatial domain of the robot, while the skills connect the sequence of state/action pairs in the time domain. Task demonstrations for robots are described in more detail with reference to Figures 4A-4C.

ロボットコントローラ206cは、プロセッサ204による実行時に、ストレージ206内の1つ以上のモジュールを実行する命令を格納するように構成され得る。いくつかの実施形態は、ロボットコントローラ206cがロボットの学習フェーズおよび実行フェーズを管理するという認識に基づいている。 The robot controller 206c may be configured to store instructions that, when executed by the processor 204, execute one or more modules in the storage 206. Some embodiments are based on the recognition that the robot controller 206c manages the learning and execution phases of the robot.

学習モジュール206dは、プロセッサ204によって実行されるとプロセッサ204にスキルを選択するための関数を学習させる命令を格納するように構成され得る。いくつかの実施形態は、各々が状態/アクションの対のシーケンスを定義する、タスクの実行のセットを受け取るための命令と、各状態について、状態/アクションの対のシーケンスから、当該状態について受け取られたアクションにフィットするアクションの分布を決定するための命令と、ある状態について、当該状態について決定されるアクションの分布上でサンプリングされるアクションを返す最も高い確率を有するスキルを決定するための命令とを学習モジュール206dが格納するという認識に基づいている。いくつかの実施形態の目的は、スキル同士の間の切り替えにペナルティを課すスキルを選択するように関数を学習させることである。そのため、いくつかの実施形態は、関数を学習させるために強化学習(RL)を使用する。たとえば、RLは、スキル同士の間での切り替えについてのペナルティと、RLによって選択されたアクションとデモンストレーションされたタスクのアクションとの間の差に基づくペナルティとを含む報酬関数を含む。さらに、タスクを実行するようにロボットを学習させるための学習モジュール206d(すなわち学習フェーズ)が、図5~図6を参照して詳細に説明される。 The learning module 206d may be configured to store instructions that, when executed by the processor 204, cause the processor 204 to learn a function for selecting skills. Some embodiments are based on the recognition that the learning module 206d stores instructions for receiving a set of executions of a task, each of which defines a sequence of state/action pairs, instructions for determining, for each state, a distribution of actions from the sequence of state/action pairs that fit the action received for that state, and instructions for determining, for a state, a skill that has the highest probability of returning an action sampled on the distribution of actions determined for that state. The objective of some embodiments is to learn a function to select skills that penalize switching between skills. To that end, some embodiments use reinforcement learning (RL) to learn the function. For example, RL includes a reward function that includes a penalty for switching between skills and a penalty based on the difference between the action selected by RL and the action of the demonstrated task. Further, the learning module 206d (i.e., the learning phase) for learning a robot to perform a task is described in detail with reference to FIGS. 5-6.

実行モジュール206eは、スキルを選択するための学習済関数を格納するように構成され得る。学習済関数は、単一の引数関数である。いくつかの実施形態では、学習済関数は、ロボットの状態を提出することに応答して、スキルの分布を返すロボットの状態の確率関数である。さらに、実行モジュール206eは、選択されたスキルからアクションを選択する命令を格納するように構成され得る。さらに、実行モジュール206eは、各制御ステップについてスキル選択を実行する命令を格納するように構成され、当該スキルはマルチステップスキルに対応する。さらに、タスクを実行するための実行モジュール206e(すなわち実行フェーズ)は、図7~図9を参照して詳細に説明される。 The execution module 206e may be configured to store a learned function for selecting a skill. The learned function is a single argument function. In some embodiments, the learned function is a probability function of the robot's state that returns a distribution of skills in response to submitting the robot's state. Furthermore, the execution module 206e may be configured to store instructions for selecting an action from the selected skill. Furthermore, the execution module 206e is configured to store instructions for performing a skill selection for each control step, the skill corresponding to a multi-step skill. Further, the execution module 206e for executing a task (i.e., the execution phase) is described in detail with reference to FIGS. 7-9.

出力インターフェイスは、タスクを実行するために、選択されたアクションを実行するようにロボットに命令するように構成され得る。出力インターフェイスは、ディスプレイインターフェイス214およびアプリケーションインターフェイス222を含み得る。ディスプレイインターフェイス214は、コントローラ200をディスプレイデバイス224に接続し得る。ディスプレイデバイス224はたとえば、コンピュータモニタ、カメラ、テレビジョン、プロジェクタ、または、モバイルデバイスを含み得る。アプリケーションインターフェイス222は、コントローラ200をアプリケーションデバイス228に接続し得る。いくつかの実施形態では、アプリケーションデバイスは、コントローラ200内において具現化されてもよい。そのため、アプリケーションデバイス228は、タスクを実行するために、選択されたアクションに基づいて動作する。たとえば、アプリケーションデバイス228は、タスクを実行するために、選択されたアクションを実行するよう、ロボットのための制御信号を提供する。 The output interface may be configured to instruct the robot to perform a selected action to perform the task. The output interface may include a display interface 214 and an application interface 222. The display interface 214 may connect the controller 200 to a display device 224. The display device 224 may include, for example, a computer monitor, a camera, a television, a projector, or a mobile device. The application interface 222 may connect the controller 200 to an application device 228. In some embodiments, the application device may be embodied within the controller 200. As such, the application device 228 operates based on the selected action to perform the task. For example, the application device 228 provides a control signal for the robot to perform the selected action to perform the task.

図3は、いくつかの実施形態に従った、スキルライブラリモジュール206aに格納される例示的なスキルを示す。いくつかの実施形態は、スキルライブラリモジュール206aに格納されるスキルが、移動オプション、回転オプション、停止オプション、ピックオプション、および、配置オプションなどといった基本スキルであるという認識に基づいている。そのため、スキルライブラリモジュール206aは、左への移動302、右への移動304、XYZ方向への移動306、上への移動308、下への移動310、停止312、対象の配置314、対象のピック316、および、工具の回転318などといったスキルを含む。いくつかの実施形態では、スキルライブラリモジュール206aに格納されるスキルは、複雑なスキルに繋がる2つ以上の基本的スキルから構成されてもよい。たとえば、複雑なスキルは、XYZ方向への移動306および対象の配置316といった基本スキルを含み得る。いくつかの実施形態は、1つのタスクまたは複数のタスクを実行するためにモジュール206a内にスキルの複数のライブラリが存在するという認識に基づいている。たとえば、タスクが複数のライブラリからのスキルを要求する場合、モジュール206aは、スキルの複数のライブラリを格納する。いくつかの他の実施形態では、いくつかのタスクデモンストレーションを実行するために新しいスキルをラーニングする必要性があり得る。そのため、ラーニングされた新しいスキルは、既存のスキルのライブラリに格納され得るか、または、ラーニングされた新しいスキルを格納するためにスキルの新しいライブラリが作成され得る。新しいスキルをラーニングする決定は、人間の専門家の決定に完全に依存する。いくつかの実施形態の目的は、タスクを実行するために、スキルライブラリモジュール206aにおけるすべての必要なスキルを維持することである。 3 illustrates an example skill stored in the skill library module 206a according to some embodiments. Some embodiments are based on the recognition that the skills stored in the skill library module 206a are basic skills such as move option, rotate option, stop option, pick option, and place option. Thus, the skill library module 206a includes skills such as move left 302, move right 304, move in XYZ directions 306, move up 308, move down 310, stop 312, place object 314, pick object 316, and rotate tool 318. In some embodiments, the skills stored in the skill library module 206a may be composed of two or more basic skills that lead to a complex skill. For example, a complex skill may include basic skills such as move in XYZ directions 306 and place object 316. Some embodiments are based on the recognition that there are multiple libraries of skills in the module 206a to perform a task or tasks. For example, if a task requires skills from multiple libraries, module 206a stores multiple libraries of skills. In some other embodiments, there may be a need to learn new skills to perform some task demonstrations. Therefore, the learned new skills may be stored in the library of existing skills, or a new library of skills may be created to store the learned new skills. The decision to learn a new skill is entirely dependent on the decision of a human expert. The objective of some embodiments is to maintain all the necessary skills in the skill library module 206a to perform a task.

さらに、各スキルは確率関数としてモジュール206aに格納される。そのため、モジュール206aにおけるスキルは、現在の状態を提出することに応答して、アクションまたはアクションにわたる分布を返すロボットの状態の確率関数である。したがって、数学的に以下のように定義される。 Furthermore, each skill is stored in module 206a as a probability function. Thus, a skill in module 206a is a probability function of the robot's state that returns an action or a distribution over actions in response to submitting the current state. Thus, mathematically, it is defined as follows:

Figure 0007523384000001
Figure 0007523384000001

したがって、モジュール206aにおけるスキルは、 Therefore, the skills in module 206a are:

Figure 0007523384000002
Figure 0007523384000002

などのように数学的に表され得る。 It can be expressed mathematically as follows:

図4Aは、いくつかの実施形態に従った、リモート制御デバイスを使用するロボットのためのタスクデモンストレーションを示す。図4Aに示されるように、リモート制御デバイス402は、ロボット236のためのタスクをデモンストレーションするために使用され得る。いくつかの実施形態は、オペレータ404(たとえば、技術者およびユーザなど)がリモート制御デバイス402を動作し、次いでリモート制御デバイス402が、特定のタスクをデモンストレーションするようロボット236を動作するという認識に基づいている。いくつかの実施形態では、リモート制御デバイス402は、特定のタスクをデモンストレーションするために、ロボット構成設定(すなわち、ロボットの設定)をロボット236に送信する。たとえば、リモート制御デバイス402は、特定のタスクをデモンストレーションするために、XYZ方向への移動のような制御コマンド、速度制御コマンド、および、ジョイント位置コマンドなどを送信する。たとえば、図4Aに示されるように、特定のタスクは、対象をピックするスキルおよび当該対象を上方向に移動するスキルといった2つのスキルによって定義され得る。リモート制御デバイス402は、特定のタスクをデモンストレーションするために、両方のスキルについてのロボット構成設定を送信する。いくつかの他の実施形態では、特定のタスクのデモンストレーションは、制御ステップにおいて行われる。たとえば、リモート制御デバイス402は、各制御ステップについてロボット構成設定を送信する。そのため、ロボット236のためにデモンストレーションされる特定のタスクは、入力デバイスによって状態/アクションの対で記録され得る。入力デバイスは、記録されたデータをコントローラ200に提供し得る。 4A illustrates a task demonstration for a robot using a remote control device, according to some embodiments. As shown in FIG. 4A, the remote control device 402 can be used to demonstrate a task for the robot 236. Some embodiments are based on the recognition that an operator 404 (e.g., a technician, a user, etc.) operates the remote control device 402, which then operates the robot 236 to demonstrate a specific task. In some embodiments, the remote control device 402 transmits robot configuration settings (i.e., robot settings) to the robot 236 to demonstrate a specific task. For example, the remote control device 402 transmits control commands such as movement in XYZ directions, velocity control commands, and joint position commands, etc., to demonstrate a specific task. For example, as shown in FIG. 4A, a specific task can be defined by two skills, such as a skill to pick an object and a skill to move the object upwards. The remote control device 402 transmits the robot configuration settings for both skills to demonstrate a particular task. In some other embodiments, the demonstration of a particular task occurs in a control step. For example, the remote control device 402 transmits the robot configuration settings for each control step. Thus, the particular task to be demonstrated for the robot 236 can be recorded in state/action pairs by the input device. The input device can provide the recorded data to the controller 200.

図4Bは、いくつかの実施形態に従った、手動操作によるロボットのためのタスクデモンストレーションを示す。図4Bに示されるように、ロボット236は、特定のタスクをデモンストレーションするように手動で操作され得る。いくつかの実施形態は、特定のタスクをデモンストレーションするために、オペレータ404が、たとえばモータ、ジョイント、グリッパ、工具、ロボット236の位置といったロボット236の設定を手動で制御するという認識に基づいている。いくつかの実施形態では、手動操作によってデモンストレーションされるタスクは、デモンストレーションされるタスクについてスキルおよびスキル構成を定義しなくてもよい。そのため、タスクデモンストレーションは、時間領域において状態/アクションの対で入力デバイスによって記録される。入力デバイスは、記録されたデータをコントローラ200に提供し得る。 FIG. 4B illustrates a task demonstration for a manually operated robot, according to some embodiments. As shown in FIG. 4B, the robot 236 can be manually operated to demonstrate a specific task. Some embodiments are based on the recognition that to demonstrate a specific task, the operator 404 manually controls the settings of the robot 236, such as the motors, joints, grippers, tools, and position of the robot 236. In some embodiments, a task demonstrated by manual operation may not define skills and skill configurations for the demonstrated task. Therefore, the task demonstration is recorded by an input device in state/action pairs in the time domain. The input device may provide the recorded data to the controller 200.

いくつかの他の実施形態では、タスクのデモンストレーションはシミュレーションによって行われ得る。いくつかの他の実施形態では、タスクデモンストレーションは、たとえば工具といったロボットの端部の動作について、タスクデモンストレーション中に到達する3D空間におけるリストポイントの実行であり得る。いくつかの他の実施形態では、タスクデモンストレーションは、手動操作とリモート制御デバイス操作との組み合わせによって達成され得る。いくつかの他の実施形態では、イメージングデバイス226は、タスクデモンストレーションを記録し得、画像処理218は、視覚的要素によりタスクデモンストレーションを増強するよう、記録されたタスクデモンストレーションを処理し得る。さらに、ロボットのためのタスクデモンストレーションは、上述の例示的な説明に限定され得ない。代わりに、本発明の範囲内にあるすべての種類のデモンストレーションが考慮されるべきである。 In some other embodiments, the task demonstration may be performed by simulation. In some other embodiments, the task demonstration may be the execution of a wrist point in 3D space that is reached during the task demonstration, for example, for the movement of an end of the robot, such as a tool. In some other embodiments, the task demonstration may be achieved by a combination of manual and remote control device operations. In some other embodiments, the imaging device 226 may record the task demonstration, and the image processing 218 may process the recorded task demonstration to augment the task demonstration with visual elements. Furthermore, the task demonstration for the robot may not be limited to the exemplary description above. Instead, all types of demonstrations that are within the scope of the present invention should be considered.

図4Cは、いくつかの実施形態に従った、タスクデモンストレーションモジュール206bに格納される例示的なタスクデモンストレーションを示す。いくつかの実施形態の目的は、入力デバイスから受け取られたタスクの実行のセット(すなわち、ロボットのためのタスクデモンストレーション)を格納することである。いくつかの実施形態は、タスクデモンストレーションが状態/アクションの対で受け取られる一方、スキルは未知または未定義であるという認識に基づいている。さらに、状態/アクションの対は、スキルよりも重要である。その理由は、状態/アクションの対は、ロボットの空間領域において実際にタスクを実行する一方、スキルは時間領域において状態/アクションの対のシーケンスを接続するからである。そのため、受け取られたタスクデモンストレーションは、状態/アクションの対のシーケンスとしてタスクデモンストレーションモジュール206bに格納され得る。いくつかの実施形態では、状態/アクションの対のシーケンスは、時間領域において定義される。たとえば、タスクデモンストレーションは、開始時間から終了時間までの状態/アクションの対のシーケンスとして表される。 4C illustrates an exemplary task demonstration stored in the task demonstration module 206b according to some embodiments. The purpose of some embodiments is to store a set of executions of a task (i.e., a task demonstration for a robot) received from an input device. Some embodiments are based on the recognition that a task demonstration is received in state/action pairs, while skills are unknown or undefined. Furthermore, state/action pairs are more important than skills, because state/action pairs actually perform a task in the spatial domain of the robot, while skills connect a sequence of state/action pairs in the time domain. Thus, a received task demonstration may be stored in the task demonstration module 206b as a sequence of state/action pairs. In some embodiments, the sequence of state/action pairs is defined in the time domain. For example, a task demonstration is represented as a sequence of state/action pairs from a start time to an end time.

特定の時間tにおける状態Sは、ロボットの現在の設定を定義し、その環境からの要素によって増強される場合がある値を含む。いくつかの実施形態では、ロボットの設定は、モータ、ジョイント、グリッパ、工具、位置、画像、または、それらの任意の組み合わせの設定を含むが、これらに限定されない。値は、たとえば、特定のロボット構成のためのジョイント値を表す。その環境における値の例は、1つ以上の対象の位置、1つ以上の障害物の位置、目標位置までの距離、環境の画像である。特定の時間tにおけるアクションAは、ロボットの異なる設定を決定するために値のベクトルを含む。いくつかの実施形態は、アクションがロボットをある状態から次の状態に移行させるという認識に基づいている。このアクションは、本質的に離散的または連続的であり得る。アクションは、単一の値または値のベクトルなどであり得る。 A state S t at a particular time t includes values that define the current configuration of the robot and may be augmented by elements from its environment. In some embodiments, the configuration of the robot includes, but is not limited to, settings of motors, joints, grippers, tools, positions, images, or any combination thereof. Values represent, for example, joint values for a particular robot configuration. Examples of values in the environment are the positions of one or more objects, the positions of one or more obstacles, the distance to a goal position, an image of the environment. An action A t at a particular time t includes a vector of values to determine different configurations of the robot. Some embodiments are based on the realization that an action moves the robot from one state to the next. The action may be discrete or continuous in nature. An action may be a single value or a vector of values, etc.

図4Cでは、ブロック406は、タスクデモンストレーションモジュール206bに格納されるタスクデモンストレーションを示し得る。さらに、タスクデモンストレーションモジュール206bは、タスクデモンストレーション406だけではなく、いくつかのタスクデモンストレーションを格納する。たとえば、タスクデモンストレーションモジュール206bは、有限数のタスクデモンストレーションを格納する。ブロック460は、ロボットのために格納される最後または最終のタスクデモンストレーションを表し得る。タスクデモンストレーション406は、時間tにおいて開始し、時間tにおける状態およびアクション406-0(たとえば、状態/アクションの対であるSt0,t0)を格納する。いくつかの実施形態では、状態(すなわち、St0)について行われるべきアクション(すなわち、At0)は、時間tについての制御ステップとして定義される。タスクデモンストレーションモジュール206bは、タスクデモンストレーション406をタスクデモンストレーション406の終了時間まで格納し続ける。終了時間tにおいて、タスクデモンストレーションモジュール206bは、状態およびアクション406-N(たとえば、状態/アクションの対であるStN,AtN)を格納する。したがって、タスクデモンストレーション406は、N+1個の時間インスタンスについてN+1個の状態/アクションの対を含む。時間tにおいて、最終アクションAtNがタスクデモンストレーション406についてデモンストレーションされると、ロボットは、状態StN+1になる。したがって、タスクデモンストレーション406として、状態406-N+1がさらに格納される。いくつかの実施形態によれば、格納されたタスクデモンストレーション406は、軌道 In FIG. 4C, block 406 may represent a task demonstration stored in task demonstration module 206b. Additionally, task demonstration module 206b stores several task demonstrations, not just task demonstration 406. For example, task demonstration module 206b stores a finite number of task demonstrations. Block 460 may represent the last or final task demonstration stored for the robot. Task demonstration 406 starts at time t0 and stores states and actions 406-0 (e.g., state/action pair S t0, A t0 ) at time t0 . In some embodiments, an action (i.e., A t0 ) to be taken for a state (i.e., S t0 ) is defined as a control step for time t0 . Task demonstration module 206b continues to store task demonstration 406 until the end time of task demonstration 406. At the end time tN , the task demonstration module 206b stores the state and action 406-N (e.g., state/action pair S tN , A tN ). Thus, the task demonstration 406 includes N+1 state/action pairs for N+1 time instances. At time tN , when the final action A tN is demonstrated for the task demonstration 406, the robot is in state S tN+1 . Thus, the state 406-N+1 is further stored as the task demonstration 406. According to some embodiments, the stored task demonstration 406 includes a trajectory

Figure 0007523384000003
Figure 0007523384000003

として表され得る。 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のセット、すなわち、 Additionally, the task demonstration module 206b stores all finite number of task demonstrations as described with reference to the task demonstration 406. According to some embodiments, the task demonstrations in the task demonstration module 206b may have the same or different sequences of state/action pairs. For example, the state/action pairs 460-0 to 460-O may be the same or different from the state/action pairs 406-0' to 406-N. Furthermore, the first state and action pair for a demonstration may be the same or different. Furthermore, the task demonstrations in the task demonstration module 206b may have the same length or different lengths. For example, the task demonstration 460 may include O+1 state/action pairs for O+1 time instances, and the task demonstration 406 may include N+1 state/action pairs for N+1 time instances. Thus, the task demonstration module 206b stores M finite task demonstrations, where M≧1. According to some embodiments, the M finite demonstration tasks are a set of trajectories D, i.e.,

Figure 0007523384000004
Figure 0007523384000004

として表され得る。 can be expressed as:

図5は、いくつかの実施形態に従った、スキルを選択するための関数を学習させるための学習モジュール206dの例示的なアーキテクチャ図を示す。学習モジュール206dは、モジュール206bにおけるタスクデモンストレーションに基づいてスキルライブラリモジュール206aからスキルを選択するための関数を学習させるように構成され得る。関数の学習は、スキルを選択するためにロボットを学習させることとして考えられ得る。いくつかの実施形態では、スキルライブラリモジュール206aにおけるスキルは、タスクを実行するのにタスク不可知論的である。いくつかの実施形態は、特定の状態について特定のアクションを規定するタスクデモンストレーションモジュール206bにおけるタスクデモンストレーションが、タスクを実行するためにどのスキルをスキルライブラリモジュール206aから選択するべきかについての指示を有さないという認識に基づいている。そのため、いくつかの実施形態の目的は、タスクを実行するようにスキルを選択するための関数を学習させることである。 5 shows an example architecture diagram of the learning module 206d for learning a function for selecting a skill, according to some embodiments. The learning module 206d may be configured to learn a function for selecting a skill from the skill library module 206a based on the task demonstration in the module 206b. Learning the function may be considered as training the robot to select a skill. In some embodiments, the skills in the skill library module 206a are task agnostic to perform a task. Some embodiments are based on the recognition that the task demonstration in the task demonstration module 206b, which specifies a specific action for a specific state, does not have an indication of which skill should be selected from the skill library module 206a to perform the task. Thus, the objective of some embodiments is to learn a function for selecting a skill to perform a task.

いくつかの実施形態は、学習モジュール206dが、タスク処理モジュール216、画像処理モジュール218、または、タスクデモンストレーションモジュール206bのうちの少なくとも1つからタスクの実行のセット(すなわち、ロボットのためのタスクデモンストレーション)を受け取るように構成されるという認識に基づいている。受け取られたタスクデモンストレーションは、図4Cに例示的に示されるように、状態/アクションの対のシーケンスである。受け取られたデモンストレーションは、ランタイムにおいてロボットによって実行される必要があるタスクのデモンストレーションである。いくつかの実施形態では、関数を学習させるために、すべてのタスクデモンストレーション(すなわち、特定のタスクについてのM個の有限のタスクデモンストレーションのすべて)が受け取られ得る。いくつかの実施形態では、受け取られたM個の有限のタスクデモンストレーションは、軌道Dのセット、すなわち、 Some embodiments are based on the recognition that the learning module 206d is configured to receive a set of task executions (i.e., task demonstrations for the robot) from at least one of the task processing module 216, the image processing module 218, or the task demonstration module 206b. The received task demonstrations are sequences of state/action pairs, as exemplarily shown in FIG. 4C. The received demonstrations are demonstrations of the tasks that need to be executed by the robot at runtime. In some embodiments, all task demonstrations (i.e., all of the M finite task demonstrations for a particular task) may be received to train the function. In some embodiments, the received M finite task demonstrations are a set of trajectories D, i.e.,

Figure 0007523384000005
Figure 0007523384000005

として表され、当該式は、 The formula is expressed as:

Figure 0007523384000006
Figure 0007523384000006

と等価である。 is equivalent to

いくつかの実施形態は、学習モジュール206dが、軌道Dのセットにおける各状態について、当該状態について受け取られるアクションにフィットするアクションの分布を決定するようにさらに構成されるという認識に基づいている。説明目的のために、状態St0を考える。時間tにおいて、状態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 learning module 206d is further configured to determine, for each state in the set of trajectories D, a distribution of actions that fit the actions received for that state. For illustrative purposes, consider state S t0 . At time t0 , state S t0 receives M finite A t0 actions from M finite task demonstrations in set D. In some embodiments, the M finite A t0 actions from the M finite task demonstrations may be the same or different. Thus, the learning module 206d determines, for state S t0 , a distribution over M finite A t0 actions. Further, the learning module 206d iterates to determine the distribution of actions for each state in the set of trajectories D as described with respect to state S t0 . Thus, the learning module 206d determines the distribution of actions for all states in set D. Further, the learning module 206d for determining, for each state in the set of trajectories D, a distribution of actions that fit the actions received for that state is described in detail with reference to FIG. 9.

いくつかの実施形態では、学習モジュール206dは、軌道Dのセットにおける各状態について、対応する状態について決定されるアクションの分布上のアクションをサンプリングするように構成される。いくつかの実施形態は、サンプリングされたアクションがアクションの分布上の最も高い確率のアクションに対応するという認識に基づいている。実際、いくつかの実施形態の目的は、軌道Dのセットにおける状態について、当該状態についてサンプリングされたアクションに基づいて、モジュール206aについてのスキルを決定することである。そのため、状態について、当該状態について決定されるアクションの分布上でサンプリングされるアクションを返す最も高い確率に対応する、モジュール206aからのスキルを決定するために、関数を学習させる必要がある。 In some embodiments, the learning module 206d is configured to sample, for each state in the set of trajectories D, an action on the distribution of actions determined for the corresponding state. Some embodiments are based on the realization that the sampled action corresponds to the most probable action on the distribution of actions. Indeed, the objective of some embodiments is to determine, for a state in the set of trajectories D, a skill for the module 206a based on the action sampled for that state. Therefore, a function needs to be trained to determine, for a state, a skill from the module 206a that corresponds to the most probable return of the action sampled on the distribution of actions determined for that state.

いくつかの実施形態では、学習モジュール206dは、モジュール206aからのスキルを決定するための関数を学習させるように構成される。さらに、関数の学習は、以下に詳細に記載される。 In some embodiments, learning module 206d is configured to learn a function for determining the skill from module 206a. Learning the function is described in further detail below.

説明の明確性のために、タスクの単一のデモンストレーション、すなわち、M=1を考える。この問題は以下のように定式化される。 For clarity of explanation, we consider a single demonstration of the task, i.e., M=1. The problem is formulated as follows:

利用可能な情報:
アクションのシーケンスは、A=At0:tNとして表される。
Information available:
A sequence of actions is represented as A=A t0:tN .

状態のシーケンスは、S=St0:tN+1として表される。 The sequence of states is represented as S=S t0:tN+1 .

モジュール206aにおける離散的なスキルのセットは、H={H,H,・・・,H}として表される。 The set of discrete skills in module 206a is represented as H={H 1 , H 2 , . . . , H j }.

導出されるべき情報:
尤度を最大化する選択されるスキルのシーケンスを決定することは、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 to be selected that maximizes the likelihood is denoted as L θ (H, S, A). L θ (H, S, A) represents that the discrete skills selected in the sequence from the set of skills H 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 or equal to the set of skills H. Thus, maximizing the sequence of skills H can be achieved from a maximum likelihood optimization. Furthermore, using Bayesian probability theory and eliminating terms that do not play a role in the optimization, maximizing L θ (H, S, A) can be expressed as:

Figure 0007523384000007
Figure 0007523384000007

と等価になる。 is equivalent to

θ(H,S,A)においてHは未知であるので、 Since H is unknown in L θ (H, S, A),

Figure 0007523384000008
Figure 0007523384000008

として以下のように無視する。 and ignore it as follows:

Figure 0007523384000009
Figure 0007523384000009

式(1)におけるπ(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 the skill library module 206a. f θ (S) in equation (1) is a function that returns a skill distribution given a state. For example, the function f θ (S) is a state probability distribution function that returns a distribution over skills given an input state S. According to some embodiments, f θ (S) provides the ability to formulate a termination function. The termination function indicates whether the current skill is terminated (represented by a value of 1) or the current skill continues (represented by a value of 0) given a state S. For example, the termination function is defined as the function β(S)→0/1.

いくつかの実施形態は、状態Sについてπ(A|S)によって与えられるアクションまたはアクションの分布が、状態Sについてスキルπ(A|S)を決定するように、状態Sについて決定されるアクションの分布(すなわち、M個の有限のデモンストレーションから状態Sについて決定されるアクションの分布)に、可能な限り近くなるようマッチするはずであるという認識に基づいている。そのため、学習モジュール206dは、式(1)についての制約を生成し、たとえば、当該制約は、 Some embodiments are based on the realization that the action or distribution of actions given by π h (A|S) for state S t should match as closely as possible to the distribution of actions determined for state S t (i.e., the distribution of actions determined for state S t from M finite demonstrations) to determine the skill π h (A|S) for state S t . To that end, the learning module 206 d generates constraints on equation (1), e.g., the constraints being

Figure 0007523384000010
Figure 0007523384000010

であり得る。当該制約におけるアクションAは、状態Sについて決定されるサンプリングされたアクションであり得る。いくつかの実施形態では、アクションAは、状態Sについて決定されるアクションの分布上のアクションのうちの1つであり得る。 The action A t in the constraint may be a sampled action determined for state S t . In some embodiments, the action A t may be one of the actions on the distribution of actions determined for state S t .

Figure 0007523384000011
Figure 0007523384000011

は、状態Sについてスキル(π(A|S))によって返されるアクションと、状態Sについて決定されるアクションの分布との間の最小の差の値(たとえば確率値または距離のようなメトリック)であり得る。したがって、式(1)は以下のように変換される。 may be the minimum difference value (e.g., a probability value or a metric such as distance) between the action returned by the skill (π h (A|S)) for state S t and the distribution of actions determined for state S t . Thus, equation (1) is transformed as follows:

Figure 0007523384000012
Figure 0007523384000012

式(2)は、制約 Equation (2) is a constraint

Figure 0007523384000013
Figure 0007523384000013

を有する単一の引数関数である。式(2)において、説明の明瞭性のために、タスクデモンストレーションが有限数の時間インスタンスに格納されるという事実は省略されている。時間インスタンスを考慮に入れるために、式(2)は各時間インスタンスtに対して加算和により拡張され得る。さらに、式(2)は、以下のように、デモンストレーションdにおけるすべての状態およびアクションの対に対する和まで拡大され得る。dは、デモンストレーションDのセットに存在する。 is a single argument function with t = t ...

Figure 0007523384000014
Figure 0007523384000014

式(2)は、さまざまな異なる態様で学習され得る。一実施形態では、式(2)は、期待値最大化(EM: expectation-maximization)またはEMの何らかの変形例の周知技術により学習され得る。別の実施形態では、式(2)は、タスクの実行の結果の偏差を最小化する報酬関数を有する強化学習(RL)技術により学習され得る。さらに、RL技術に基づいて学習される関数は、図6を参照して詳細に説明される。そのため、関数は、状態Sについて、当該状態Sについて決定されるアクションの分布上でサンプリングされるアクションを返す最も高い確率に対応するモジュール206aからのスキルを決定するように、学習される(学習済関数502)。たとえば、式(2)における Equation (2) may be trained in a variety of different ways. In one embodiment, equation (2) may be trained by the well-known technique of expectation-maximization (EM) or some variation of EM. In another embodiment, equation (2) may be trained by a reinforcement learning (RL) technique having a reward function that minimizes the deviation of the outcome of the execution of the task. Further, a function trained based on the RL technique is described in detail with reference to FIG. 6 . Thus, a function is trained (trained function 502) to determine, for a state S t , a skill from module 206a that corresponds to the highest probability of returning an action sampled on the distribution of actions determined for said state S t . For example, in equation (2),

Figure 0007523384000015
Figure 0007523384000015

は、状態Sについて決定されるアクションの分布上でサンプリングされるアクションを返す最も高い確率を有するスキルπ(A|S)を、状態Sについて決定する。 determines for state S t the skill π h (A|S) that has the highest probability of returning an action sampled over the distribution of actions determined for state S t .

さらに、制約 Furthermore, constraints

Figure 0007523384000016
Figure 0007523384000016

は、以下のようにソフトな制約(soft constraint)として与えられ得る。 can be given as a soft constraint as follows:

Figure 0007523384000017
Figure 0007523384000017

式(3)において、pはノルムを表し、たとえば0ノルムまたは2ノルムを表し、典型的にはn=1,n=2である。ここで、pおよびnは、いわゆるハイパーパラメータである、すなわち、最終最適化関数を設計する人間によって選択されるパラメータである。いくつかの実施形態では、式(3)は、学習済関数502として、学習モジュール206dの出力であり得る。いくつかの他の実施形態では、学習モジュール206dの出力は、セットDにおけるすべての状態について学習済関数502によって決定されるスキルのシーケンスであり得る。たとえば、セットHは、決定されたスキルをシーケンスで、すなわちH={H,H,...,H}で、格納するために生成され得る。さらに、シーケンスにおいて決定されるスキルはリストLに格納され得る。たとえば、リストLは、アクションまたはアクションの分布をシーケンスで、すなわちL={π(s),π(s),・・・,π(s)}で、格納するために生成され得る。さらに、いくつかの実施形態では、学習モジュール206dは、終了関数β(S)を返す。したがって、終了関数β(S)が1を返すときはいつでも、リストLからの次のスキルに関連付けられる確率関数πhlが選択され、その後実行される。いくつかの実施形態では、終了関数β(S)は、タスクを実行するよう、リストLにおいて現在選択されているスキルを次のスキルに切り替える時間を決定する。 In equation (3), p represents a norm, e.g., 0-norm or 2-norm, typically n=1, n=2. Here, p and n are so-called hyperparameters, i.e., parameters selected by a human who designs the final optimization function. In some embodiments, equation (3) may be the output of the learning module 206d as the learned function 502. In some other embodiments, the output of the learning module 206d may be a sequence of skills determined by the learned function 502 for all states in the set D. For example, a set H may be generated to store the determined skills in a sequence, i.e., H={H 4 , H 7 ,..., H 1 }. Furthermore, the skills determined in the sequence may be stored in a list L. For example, a list L may be generated to store actions or distributions of actions in a sequence, i.e., L={π 4 (s), π 7 (s),...,π 1 (s)}. Further, in some embodiments, the learning module 206d returns a termination function β(S). Thus, whenever the termination function β(S) returns 1, a probability function π h l associated with the next skill from the list L is selected and then executed. In some embodiments, the termination function β(S) determines the time to switch from the currently selected skill in the list L to the next skill to perform the task.

図6は、いくつかの実施形態に従った、選択ベースの強化学習を使用して関数を学習させる例示的なアーキテクチャを示す。強化学習(RL)は、どのようにソフトウェアエージェントが累積的報酬の何らかの概念を最大化するために環境内でアクションを行うべきかに関する機械学習の領域である。RLエージェントは、離散的な時間ステップにおいてその環境と相互作用する。各時間tにおいて、エージェントは、典型的には報酬rを含む観察結果oを受け取る。次いで、RLコントローラは、報酬を増加するよう、利用可能なアクションのセットからアクションaを選択し、当該アクションaは次いで、環境に送られる。しかしながら、ロボット操作のための新しいタスクをラーニングすることについて、多くのアクションは事実上境界がないが、RLはアクションの有限のセットからの選択を期待する。そのため、アクションの境界のない選択を、スキルの有限のライブラリからのスキルの境界のある選択と置き換える選択ベースのRLアーキテクチャが、図6に示される。 FIG. 6 shows an example architecture for learning a function using selection-based reinforcement learning, according to some embodiments. Reinforcement learning (RL) is an area of machine learning that concerns how a software agent should take actions in an environment to maximize some notion of cumulative reward. The RL agent interacts with its environment at discrete time steps. At each time t, the agent receives an observation o t , which typically includes a reward r t . The RL controller then selects an action a t from a set of available actions to increase the reward, which is then sent to the environment. However, for learning new tasks for robotic manipulation, RL expects selection from a finite set of actions, although many actions are effectively unbounded. Therefore, a selection-based RL architecture that replaces the bounded selection of actions with a bounded selection of skills from a finite library of skills is shown in FIG. 6.

図6では、ブロック602は、タスクデモンストレーションモジュール206bを表し得る。ブロック604において、状態オブザーバが、モジュール206bにおいて、時間tにおける状態Sを記録する。ブロック606では、アクションオブザーバが、実行の複数のセット(すなわち、M個の有限のタスクデモンストレーション)から状態Sについて受け取られるアクションを記録する。ブロック608では、タスクの実行の結果の偏差を最小化する、状態Sについての報酬関数が定義される。いくつかの実施形態は、報酬関数がスキルを切り替えることについてのペナルティを含むという認識に基づいている。そのため、報酬関数は、スキルを切り替えるための終了関数β(S)を含む。たとえば、終了関数は、モジュール206bにおいて、現在のスキルを別のスキルに切り替えるための時間を特定する。他の実施形態では、報酬関数は、モジュール206bにおける記録されたアクションと生成されたアクション614との間の差に基づくペナルティを含む。 In FIG. 6, block 602 may represent the task demonstration module 206b. In block 604, a state observer records a state S t at time t in module 206b. In block 606, an action observer records an action received for state S t from a plurality of sets of executions (i.e., M finite task demonstrations). In block 608, a reward function for state S t is defined that minimizes the deviation of the outcome of the execution of the task. Some embodiments are based on the recognition that the reward function includes a penalty for switching skills. As such, the reward function includes a termination function β(S) for switching skills. For example, the termination function identifies a time to switch a current skill to another skill in module 206b. In other embodiments, the reward function includes a penalty based on the difference between the recorded action in module 206b and the generated action 614.

ブロック610では、RLコントローラは、状態Sについて受け取られたアクションからアクションをサンプリングする。サンプリングされたアクションは、状態Sについての最も高い確率のアクションに対応する。さらに、RLコントローラは、状態Sについて、最も高い確率に対応するスキルをモジュール206aから選択して、サンプリングされたアクションまたは状態Sについて受け取られたアクションを返す。そのため、ブロック612では、RLコントローラは、境界のある/有限数のスキルを含むモジュール206aからスキルを選択する。スキルは、所与の状態Sについてアクションまたはアクションの境界のある/有限の分布を返す。ブロック614では、アクションの有限の分布上で最も高い確率を有するアクションが選択される。そのため、いくつかの実施形態の選択ベースのRLは、アクションの境界のない選択を、スキルの有限のライブラリからのスキルの境界のある選択と置き換える。実際、このような選択ベースのRLは、タスク不可知論的スキルのライブラリを使用するタスク固有の関数の学習を簡素化する。たとえば、一実施形態では、深層強化学習者(DRL: deep reinforcement learner)は、各スキルおよびそのアクションについての値を決定する。 In block 610, the RL controller samples an action from the actions received for state S t . The sampled action corresponds to the action with the highest probability for state S t . Furthermore, the RL controller selects the skill from module 206a that corresponds to the highest probability for state S t to return the sampled action or the action received for state S t . So, in block 612, the RL controller selects a skill from module 206a that includes a bounded/finite number of skills. The skill returns an action or a bounded/finite distribution of actions for a given state S t . In block 614, the action with the highest probability on the finite distribution of actions is selected. So, the selection-based RL of some embodiments replaces the bounded selection of actions with a bounded selection of skills from a finite library of skills. In effect, 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 a value for each skill and its action.

異なる実施形態は、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 for learning the parameterized function that forms the RL controller. For example, in some embodiments, the parameterized function is learned using one of a deep deterministic policy gradient method, an advantage-actor critic method, a proximal policy optimization method, a deep Q-network method, or a Monte Carlo policy gradient method.

図7は、いくつかの実施形態に従った、タスクを実行する実行モジュール206eの例示的なアーキテクチャ図を示す。図7に示されるように、ブロック702では、実行モジュール206eは、入力インターフェイスを介して、各制御ステップについてロボット236の現在の状態を受け付けるように構成される。ブロック704では、実行モジュール206eは、タスクを実行するための学習済関数を格納するように構成される。図5に示されるように、学習済関数は、ロボットの状態を提出することに応答したスキルの分布である。ブロック706では、実行モジュール206eは、終了条件に達する制御ステップのシーケンスにおける各制御ステップについて、現在の状態の学習済関数を実行して、スキルの分布上で最も高い確率を有するスキルを選択するように構成される。図3に示されるように、スキルは、現在の状態を提出することに応答してアクションまたはアクションにわたる分布を返すロボットの状態の確率関数である。ブロック708では、実行モジュール206eは、現在の状態について選択されたスキルを実行して、アクションの分布において最も高い確率を有するアクションを選択し、ロボットの状態を現在の状態から次の状態に遷移させるように構成される。ブロック710では、実行モジュール206eは、ロボットにタスクを実行するよう命令するために、出力インターフェイスを介して、選択されたロボットアクションを出力するように構成される。 7 shows an example architecture diagram of the execution module 206e for executing a task, according to some embodiments. As shown in FIG. 7, in block 702, the execution module 206e is configured to accept the current state of the robot 236 for each control step via the input interface. In block 704, the execution module 206e is configured to store a learned function for executing the task. As shown in FIG. 5, the learned function is a distribution of skills in response to submitting the state of the robot. In block 706, the execution module 206e is configured to execute the learned function of the current state for each control step in the sequence of control steps that reaches an end condition to select the skill that has the highest probability on the distribution of skills. As shown in FIG. 3, the skill is a probability function of the state of the robot that returns an action or a distribution over actions in response to submitting the current state. In block 708, the execution module 206e is configured to execute the selected skill for the current state to select the action that has the highest probability in the distribution of actions and transition the state of the robot from the current state to the next state. In block 710, the execution module 206e is configured to output the selected robot action via the output interface to instruct the robot to perform the task.

図8は、いくつかの実施形態に従った、実行モジュール206eによって実行される動作を示すフローチャートである。ブロック802では、実行モジュール206eは、制御ステップについてのロボットの状態を取得するように構成される。いくつかの実施形態では、ロボットの状態は、入力インターフェイスを介して取得される。ブロック804では、実行モジュール206eは、スキルの分布上で最も高い確率を有するスキルを選択するよう、取得された状態についての学習済関数を実行するように構成される。代替的には、実行モジュール206eは、リストLにおいて最も高い確率に対応するスキルを選択するよう、取得された状態についての学習済関数を実行する。選択されたスキルは、シングルステップスキルまたはマルチステップスキルであり得る。いくつかの実施形態では、マルチステップスキルは、複数の制御ステップの複数の状態について実行して、それらの対応する複数のアクションを返すように構成され得るスキルである。ブロック806では、実行モジュール206eは、アクションの分布上で最も高い確率を有するアクションを選択するよう、取得された状態について選択されたスキルを実行するように構成される。ブロック808では、実行モジュール206eは、選択されたアクションを実行するようにロボットに命令するために、選択されたアクションを出力するように構成される。 8 is a flow chart illustrating operations performed by the execution module 206e according to some embodiments. In block 802, the execution module 206e is configured to obtain a state of the robot for a control step. In some embodiments, the state of the robot is obtained via an input interface. In block 804, the execution module 206e is configured to execute a learned function for the obtained state to select a skill that has the highest probability on the distribution of skills. Alternatively, the execution module 206e executes a learned function for the obtained state to select a skill that corresponds to the highest probability in the list L. The selected skill may be a single-step skill or a multi-step skill. In some embodiments, a multi-step skill is a skill that may be configured to execute for multiple states of multiple control steps and return their corresponding multiple actions. In block 806, the execution module 206e is configured to execute the selected skill for the obtained state to select an action that has the highest probability on the distribution of actions. In block 808, the execution module 206e is configured to output the selected action to instruct the robot to execute the selected action.

理解されるべきであるように、選択されたアクションをロボットが実行すると、ロボットは、取得された状態から次の状態に移行する。さらに、実行モジュール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, once the robot executes the selected action, the robot transitions from the acquired state to the next state. Additionally, the execution module 206e acquires the next state for the next control step in block 802. In some embodiments, the execution module 206e executes a termination function β(S) for the next state in block 804, and then executes the learned function for the next state. The termination function β(S) returns 0 for the next state, indicating that the skill should be continued, or 1 for selecting a skill (i.e., the termination condition). In some embodiments, the termination function β(S) returns 0 if the previously selected skill (i.e., the skill selected for the acquired state) is a multi-step skill and corresponds to returning the sampled action with the highest probability for the next state, otherwise the termination function β(S) returns 1. If the termination function returns 0, the execution module 206e skips execution of the learned function for the next state in block 804. If the termination function returns 1, the execution module 206a executes the learned function for the next state in block 804. In some other embodiments, the execution module 206e executes the learned function for the next state without executing the termination condition β(S) in block 804. Thus, the execution module 206e repeats executing the learned function for the next state even if the previously selected skill (i.e., the skill selected for the acquired state) is a multi-step skill and corresponds to returning the sampled action with the highest probability for the next state. The execution module 206e executes the selected skill in block 806 to select the action with the highest probability on the distribution of actions. The execution module 206e outputs the selected action in block 808. The flowchart 800 is further repeated until all control steps of the task are executed.

図9は、いくつかの実施形態に従った、タスクを実行するための例示的な学習フェーズおよび実行フェーズを示す。部分902はタスクを実行するための準備フェーズである。図9に示されるように、準備フェーズ902は、スキルライブラリモジュール206aおよびタスクデモンストレーションモジュール206bを含む。モジュール206aは、境界のある/有限数のスキルを1つのライブラリまたは複数のライブラリの形式で格納する。たとえば、モジュール206aは、スキル906a(すなわち、スキルH1)、スキル908a(すなわち、スキルH2)、および、スキル910a(すなわち、スキルH3)を格納する。当該モジュールにおける各スキルは、現在の状態を提出することに応答して、アクションまたはアクションの分布を返すロボットの状態の確率関数である。たとえば、スキル906aは、状態SについてアクションAを返し、スキル908aは、状態SについてアクションAを返し、スキル910aは、状態SおよびSについてアクションの分布を返す。しかしながら、スキル910aは、Aが状態Sについて最も高い確率であり、Aが状態Sについて最も高い確率であるアクションの分布を返す。いくつかの実施形態は、モジュール206aに格納されるスキルがタスク不可知論的であるという認識に基づいている。 FIG. 9 illustrates an exemplary learning and execution phase for performing a task, according to some embodiments. Part 902 is a preparation phase for performing a task. As illustrated in FIG. 9, preparation phase 902 includes a skill library module 206a and a task demonstration module 206b. Module 206a stores a bounded/finite number of skills in the form of a library or libraries. For example, module 206a stores skill 906a (i.e., skill H1), skill 908a (i.e., skill H2), and skill 910a (i.e., skill H3). Each skill in the module is a probability function of the state of the robot that returns an action or a distribution of actions in response to submitting the current state. For example, skill 906a returns action A0 for state S0 , skill 908a returns action A1 for state S1 , and skill 910a returns a distribution of actions for states S2 and S3 . However, skill 910a returns a distribution of actions where A2 is the most probable for state S2 and A3 is the most probable for state S3 . Some embodiments are based on the recognition that the skills stored in module 206a are task agnostic.

タスクデモンストレーションモジュール206bは、状態/アクションの対でタスク(すなわち{S-A,S-A,S-A,S-A,S})のデモンストレーション(すなわち、複数の実行)を格納する一方、スキルは未知または未定義である。たとえば、タスクデモンストレーションモジュール206bは、タスクデモンストレーション906b(すなわち{S-A,S-A,S-A,S-A,S})、タスクデモンストレーション908b(すなわち、{S-A,S-A,S-A,S-A,S})、および、タスクデモンストレーション910b(すなわち、{S-A,S-A,S-A,S})を格納する。状態Sは、時間tにおけるロボットの設定であり、アクションAは、ロボットを状態Sから次の状態Sに移行する、時間tにおける値のベクトルを表す。図9に示されるように、タスクデモンストレーション906bおよび908bは正しく記録される。しかしながら、何らかのランダムエラーにより、タスクデモンストレーション910bにおいて、状態Sが記録されていない。 The task demonstration module 206b stores demonstrations (i.e., multiple executions) of a task (i.e., {S 0 -A 0 , S 1 -A 1 , S 2 -A 2 , S 3 -A 3 , S 4 }) in state/action pairs while the skills are unknown or undefined. For example, task demonstration module 206b stores task demonstration 906b (i.e., { S0 - A0 , S1 - A1 , S2 - A2 , S3 - A3 , S4 }), task demonstration 908b (i.e., { S0 - A0 , S1 - A1 , S2 - A2 , S3 - A3 , S4 }), and task demonstration 910b (i.e., { S0 - A1 , S2 - A2 , S3 - A3 , S4 }). State S0 is the configuration of the robot at time t0 , and action A0 represents a vector of values at time t0 that transitions the robot from state S0 to the next state S1 . 9, task demonstrations 906b and 908b are recorded correctly. However, due to some random error, state S1 is not recorded in task demonstration 910b.

いくつかの実施形態は、タスクデモンストレーション906b、908bおよび910bが状態/アクションの対のシーケンスであるが、スキルに関する指示を有さないという認識に基づいている。そのため、学習モジュール206dは、モジュール206bにおけるタスクデモンストレーション906b、908bおよび910bに基づいてタスクを実行するために、モジュール206aからスキルを選択するよう関数を学習させる。 Some embodiments are based on the recognition that the task demonstrations 906b, 908b, and 910b are sequences of state/action pairs, but do not have instructions regarding skills. Therefore, the learning module 206d trains a function to select skills from the module 206a to perform a task based on the task demonstrations 906b, 908b, and 910b in the module 206b.

部分904は、タスクを実行する学習フェーズを表す。図9に示されるように、学習モジュール206dは、ブロック906dにおいて、タスクデモンストレーションを受け取るように構成される。たとえば、学習モジュール206dは、3つのデモンストレーション906b、908bおよび910bを受け取る。学習モジュール206dは、ブロック908dにおいて、各状態について、受け取られたタスクデモンストレーション(すなわち、3つのデモンストレーション906b、908b、および910b)から、当該状態について受け取られたアクションにフィットするアクションの分布を決定するように構成される。ブロック908d-0は、状態Sについて決定されたアクションの分布を表し、ブロック908d-1は、状態Sについて決定されたアクションの分布を表し、ブロック908d-2は、状態Sについて決定されたアクションの分布を表し、ブロック908d-3は、状態Sについて決定されたアクションの分布を表す。たとえば、状態Sは、タスクデモンストレーション906bおよび908bから2つのAアクションを受け取り、タスクデモンストレーション910bからアクションAを受け取る。したがって、アクションAおよびAにフィットする状態Sについて、分布908d-0が決定される。さらに、分布908d-0は、2/3の確率を有するアクションAを返し、1/3の確率を有するアクションAを返す。同様に、分布908d-1、908d-2および908d-3が決定される。いくつかの実施形態では、学習モジュール206dは、ブロック908dにおいて、タスクデモンストレーションにおける各状態について、対応する状態について決定されたアクションの分布上のアクションをサンプリングするように構成される。いくつかの実施形態では、サンプリングされたアクションは、アクションの分布上の最も高い確率のアクションに対応する。そのため、状態S、S、SおよびSについてのサンプリングされたアクションは、それぞれA、A、AおよびAである。 Part 904 represents a learning phase of executing a task. As shown in FIG. 9, the learning module 206d is configured to receive task demonstrations in block 906d. For example, the learning module 206d receives three demonstrations 906b, 908b, and 910b. The learning module 206d is configured to determine, for each state, from the received task demonstrations (i.e., the three demonstrations 906b, 908b, and 910b), a distribution of actions that fit the actions received for that state in block 908d. Block 908d-0 represents the distribution of actions determined for state S0 , block 908d-1 represents the distribution of actions determined for state S1 , block 908d-2 represents the distribution of actions determined for state S2 , and block 908d-3 represents the distribution of actions determined for state S3 . For example, state S 0 receives two A 0 actions from task demonstrations 906b and 908b, and action A 1 from task demonstration 910b. Thus, a distribution 908d-0 is determined for state S 0 that fits actions A 0 and A 1. Further, distribution 908d-0 returns action A 0 with a probability of 2/3 and action A 1 with a probability of 1/3. Similarly, distributions 908d-1, 908d-2, and 908d-3 are determined. In some embodiments, the learning module 206d is configured in block 908d to sample an action for each state in the task demonstration on the distribution of actions determined for the corresponding state. In some embodiments, the sampled action corresponds to the action with the highest probability on the distribution of actions. Thus, the sampled actions for states S 0 , S 1 , S 2 , and S 3 are A 0 , A 1 , A 2 , and A 3 , respectively.

いくつかの実施形態では、状態は、デモンストレーション906b、908bおよび910b間で異なり得る。ここで使用されるインデックスおよび表記は、説明の明確性のためである。同じ引数がアクションに適用される。たとえば、状態が異なる場合、タスクデモンストレーション906b、908bおよび910bのうち最も類似した状態に従ってアラインメントを決定するよう、本発明の範囲外の付加的なプロセスが呼び出され得る。そのようなアラインメントの例は、動的時間伸縮法(dynamic time warping)の周知のプロセスであり得る。 In some embodiments, the state may differ between demonstrations 906b, 908b, and 910b. The indexes and notations used here are for clarity of explanation. The same arguments apply to the actions. For example, if the states differ, additional processes outside the scope of the present invention may be invoked to determine alignment according to the most similar state among task demonstrations 906b, 908b, and 910b. An example of such alignment may be the well-known process of dynamic time warping.

学習モジュール206dは、ブロック910dにおいて、ある状態について、当該状態について決定されたアクションの分布上でサンプリングされたアクションを返す最も高い確率を有するスキルを決定するように構成される。そのため、学習モジュール206dは、図5~図6において説明されたように、関数 The learning module 206d is configured to determine, in block 910d, for a state, the skill that has the highest probability of returning a sampled action on the distribution of actions determined for that state. To this end, the learning module 206d performs the function

Figure 0007523384000018
Figure 0007523384000018

を学習させる。学習済関数における The learned function

Figure 0007523384000019
Figure 0007523384000019

は、状態Sについて、当該状態Sについて決定されたアクションの分布上でサンプリングされたアクションを返す最も高い確率を有するスキルを決定する。たとえば、学習モジュール206dは、状態SおよびSについて、それぞれスキルH1およびH2を決定し、状態SおよびSについて、スキルH3を決定する。スキルH3は、マルチステップスキルである。代替的には、学習フェーズにおいて決定されたスキルは、セットHにおいてスキルのシーケンスとして格納され得る。たとえば、セットHはH={H,H,H}であり、セットHにおけるようにロボットによってシーケンスで実行されると、実行フェーズにおいてタスクを完了する。 For state S t , determine the skill that has the highest probability of returning an action sampled on the distribution of actions determined for state S t . For example, the learning module 206d determines skills H1 and H2 for states S 0 and S 1 , respectively, and determines skill H3 for states S 2 and S 3. Skill H3 is a multi-step skill. Alternatively, the skills determined in the learning phase may be stored as a sequence of skills in a set H. For example, set H is H={H 1 , H 2 , H 3 }, which, when executed in sequence by the robot as in set H, completes the task in the execution phase.

理解されるべきであるように、学習フェーズは一旦完了する。フローは実行フェーズに続く。そのため、タスクを実行するために実行モジュール206eが提供される。 As should be appreciated, once the learning phase is complete, flow continues with the execution phase, whereby an execution module 206e is provided to execute the tasks.

実行モジュール206eは、現在の状態を受け取るように構成される。たとえば、実行モジュール206eは、状態Sを受け取る。次に、実行モジュール206eは、スキルの分布上で最も高い確率を有するスキルを選択するよう、状態Sについての学習済関数を実行するように構成される。たとえば、実行モジュール206eは、状態SについてスキルH1が学習フェーズにおいて決定されたスキルであるので、状態SについてスキルH1を選択し、最も高い確率を有するアクションAを返す。さらに、実行モジュール206eは、アクションAを選択するよう、状態Sについて選択されたスキルH1を実行するように構成される。実行モジュール206eは、状態SについてのアクションAを実行するようにロボットに命令する。 The execution module 206e is configured to receive a current state. For example, the execution module 206e receives a state S0 . Then, the execution module 206e is configured to execute the learned function for the state S0 to select a skill with the highest probability on the distribution of skills. For example, the execution module 206e selects a skill H1 for the state S0 because the skill H1 for the state S0 is the skill determined in the learning phase, and returns an action A0 with the highest probability. Further, the execution module 206e is configured to execute the selected skill H1 for the state S0 to select the action A0 . The execution module 206e instructs the robot to execute the action A0 for the state S0 .

理解されるべきであるように、ロボットがアクションAを実行すると、ロボットは状態Sに移行する。実行モジュール206eは、再び状態Sを受け取り、状態Sについて他のスキルを選択するか否かを決定するよう、状態Sについての終了関数β(S)を実行する。スキルH1は、状態Sについてのみアクションまたはアクションの分布を提供する。したがって、終了関数は、状態Sについて1を返す。終了関数が1を返すと、実行モジュール206eは、状態Sに関して説明したように、状態Sについて別のスキルを選択するように構成される。このプロセスは、実行モジュールが状態Sを受け取るまで繰り返される。そのため、実行モジュール206eは、状態SについてのスキルH2と、状態SおよびSについてのスキルH3とを選択する。スキルH3は、それぞれアクションAおよびAを返すよう、実行モジュール206eによって状態SおよびSについて実行されるマルチステップスキルである。アクションAが実行されると、ロボットは、タスク実行の完了を示す状態Sに移行する。これにより、タスクを行うためにロボットによって実行されるべきスキルは、タスク不可知論的なスキルのライブラリから選択され、これによって、ラーニング目的が選択目的に置換される。 As should be understood, when the robot executes the action A0 , the robot transitions to state S1 . The execution module 206e again receives state S1 and executes the termination function β(S) for state S1 to determine whether to select another skill for state S1 . Skill H1 provides an action or a distribution of actions only for state S0 . Thus, the termination function returns 1 for state S1 . When the termination function returns 1, the execution module 206e is configured to select another skill for state S1 as described with respect to state S0 . This process is repeated until the execution module receives state S4 . Thus, the execution module 206e selects skill H2 for state S1 and skill H3 for states S2 and S3 . Skill H3 is a multi-step skill executed by the execution module 206e for states S2 and S3 to return actions A2 and A3 , respectively. Once action A3 is executed, the robot transitions to state S4 , which indicates completion of task execution, whereby the skill to be executed by the robot to perform the task is selected from a library of task-agnostic skills, thereby replacing the learning objective with the selected objective.

上記の説明は、例示的な実施形態のみを提供し、本開示の範囲、利用可能性、または、構成を制限することを意図していない。むしろ、例示的な実施形態の以下の記載は、1つ以上の例示的な実施形態を実現するための実施可能な記載を当業者に提供する。添付の特許請求の範囲に記載されるように開示される主題の精神および範囲から逸脱することがなければ、要素の機能および構成において行われ得るさまざまな変更が企図される。 The above description provides only exemplary embodiments and is not intended to limit the scope, applicability, or configuration of the present disclosure. Rather, the following description of exemplary embodiments will provide one of ordinary skill in the art with an enabling description for implementing one or more exemplary embodiments. Various changes are contemplated that may be made in the function and arrangement of elements without departing from the spirit and scope of the disclosed subject matter as set forth in the appended claims.

具体的な詳細は、実施形態の完全な理解を提供するために以下の記載において与えられる。しかしながら、当業者によって理解される場合、実施形態は、これらの具体的な詳細なしで実施されてもよい。たとえば、開示される主題におけるシステム、プロセス、および他の要素は、実施形態を不必要な詳細で不明瞭にしないために、ブロック図の形態で構成要素として示され得る。他の場合では、実施形態を不明瞭にすることを避けるために、周知のプロセス、構造、および技術は、不必要な詳細なしで示され得る。さらに、さまざまな図面における同様の参照番号および名称は、同様の要素を示す。 Specific details are given in the following description to provide a thorough understanding of the embodiments. However, as will be understood by those skilled in the art, the embodiments may be practiced without these specific details. For example, systems, processes, and other elements in the disclosed subject matter may be shown as components in block diagram form so as not to obscure the embodiments in unnecessary detail. In other cases, well-known processes, structures, and techniques may be shown without unnecessary detail so as to avoid obscuring the embodiments. Additionally, like reference numbers and names in the various drawings indicate like elements.

さらに、個々の実施形態は、フローチャート、フロー図、データフロー図、構造図またはブロック図として示されるプロセスとして説明され得る。フローチャートは、動作をシーケンシャルなプロセスとして記載し得るが、動作の多くは、並列にまたは同時に実行され得る。さらに、動作の順序は、再構成され得る。プロセスは、その動作が完了すると終了され得るが、論じられていないまたは図に含まれていない付加的なステップを有し得る。さらに、任意の特定的に記載されるプロセスにおけるすべての動作が、すべての実施形態において行われ得るわけではない。プロセスは、メソッド、関数、プロシージャ、サブルーチン、サブプログラムなどに対応し得る。プロセスが関数に対応する場合、関数の終了は、呼び出し関数またはメイン関数への関数の復帰に対応し得る。 Furthermore, particular embodiments may be described as a process that is depicted as a flowchart, flow diagram, data flow diagram, structure diagram, or block diagram. Although a flowchart may describe operations as a sequential process, many of the operations may be performed in parallel or simultaneously. Furthermore, the order of operations may be rearranged. A process may be terminated when its operations are completed, but may have additional steps not discussed or included in the diagram. Furthermore, not all operations in any particularly described process may be performed in all embodiments. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, or the like. When a process corresponds to a function, the end of the function may correspond to a return of the function to the calling function or to the main function.

さらに、開示される主題の実施形態は、少なくとも部分的に、手動または自動のいずれかで実現され得る。手動または自動の実現は、マシン、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、もしくは、それらの任意の組み合せの使用を通じて実行され得るか、または、少なくとも支援され得る。ソフトウェア、ファームウェア、ミドルウェア、または、マイクロコードで実現される場合、必要なタスクを実行するべきプログラムコードまたはコードセグメントは、マシン読取可能媒体に格納され得る。プロセッサが必要なタスクを実行し得る。 Furthermore, embodiments of the disclosed subject matter may be implemented, at least in part, either manually or automatically. The manual or automatic implementation may be performed or at least assisted through the use of machines, hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware, or microcode, program code or code segments to perform the necessary tasks may be stored on a machine-readable medium. A processor may perform the necessary tasks.

本明細書において概説されるさまざまな方法またはプロセスは、さまざまなオペレーティングシステムまたはプラットフォームのいずれか1つを使用する1つ以上のプロセッサ上で実行可能なソフトウェアとしてコード化され得る。さらに、そのようなソフトウェアは、多くの好適なプログラミング言語および/またはプログラミングもしくはスクリプトツールのいずれかを使用して記述されてもよく、フレームワークまたは仮想マシン上で実行される実行可能なマシン言語コードまたは中間コードとしてコンパイルされてもよい。典型的には、プログラムモジュールの機能は、さまざまな実施形態において所望のように組み合わせられてもよく、または、分散されてもよい。 The various methods or processes outlined herein may be coded as software executable on one or more processors using any one of a variety of operating systems or platforms. Furthermore, such software may be written using any of a number of suitable programming languages and/or programming or scripting tools, and compiled as executable machine language code or intermediate code that runs on a framework or virtual machine. Typically, the functionality of the program modules may be combined or distributed as desired in various embodiments.

本開示の実施形態は、一例として提供された方法として具現化され得る。本方法の部分として実行される動作は、任意の適切な態様で順序付けられてもよい。したがって、例示的な実施形態ではシーケンシャルな動作として示されているが、いくつかの動作を同時に実行することを含み得る、動作が示されるのとは異なる順序で実行される実施形態が構築され得る。 Embodiments of the present disclosure may be embodied as methods, which are provided by way of example. The operations performed as part of the method may be ordered in any suitable manner. Thus, while shown as sequential operations in the exemplary embodiments, embodiments may be constructed in which operations are performed in an order different from that shown, which may include performing some operations simultaneously.

本開示は、ある好ましい実施形態を参照して記載されているが、本開示の精神および範囲内で、さまざまな他の適応例および修正例がなされ得ることが理解されるべきである。したがって、そのようなすべての変形例および修正例が本開示の真の精神および範囲内にあるようにカバーすることが、添付の特許請求の範囲の局面である。 Although the present disclosure has been described with reference to certain preferred embodiments, it should be understood that various other adaptations and modifications may be made within the spirit and scope of the present disclosure. It is therefore the object of the appended claims to cover all such variations and modifications as come within the true spirit and scope of the present disclosure.

代替的には、実行モジュール206eは、状態Sが受け取られると、終了関数を実行した状態で、状態Sについて学習関数を実行する。 Alternatively, the execution module 206e executes a learning function for state S1 , once state S1 is received, with the execution module 206e executing a termination function.

Claims (14)

タスクを実行するようにロボットの動作を制御するためのコントローラであって、
前記コントローラは、
各制御ステップについて前記ロボットの現在の状態を受け付ける入力インターフェイスと、
メモリとを含み、
前記メモリは、前記ロボットのスキルのライブラリを格納するように構成されており、各スキルは、前記現在の状態を前記入力インターフェイスから入力されることに応答して、アクションの分布を返す前記ロボットの状態の確率関数であり、前記スキルは、タスク不可知論的であり、
前記メモリは、前記タスクについての学習済関数を格納するように構成されており、前記学習済関数は、前記ロボットの前記状態を前記入力インターフェイスから入力されることに応答して、スキルの分布を返す前記ロボットの前記状態の確率関数であり、
前記コントローラはさらに、
プロセッサを含み、前記プロセッサは、終了条件に達する制御ステップのシーケンスにおける各制御ステップについて、スキルの前記分布上で最も高い確率を有するスキルを選択するよう、前記現在の状態についての前記学習済関数を実行し、かつ、前記ロボットの前記状態を前記現在の状態から次の状態に遷移させるために、アクションの前記分布上で最も高い確率を有するアクションを選択するよう、前記現在の状態についての選択された前記スキルを実行するように構成されており、
前記コントローラはさらに、
前記タスクを行なうために、選択された前記アクションを実行するよう前記ロボットに命令するように構成される出力インターフェイスを含み、
前記学習済関数は、報酬関数を有する強化学習に基づいて学習されるか、または、期待値最大化により学習され、
前記報酬関数は、スキル同士の切り替えについてのペナルティ、または選択された前記アクションと、デモンストレーションされた1つまたは複数のアクションとの間の距離に基づくペナルティを含み、前記タスクの実行の結果の偏差を最小化する、コントローラ。
1. A controller for controlling movement of a robot to perform a task, comprising:
The controller:
an input interface for receiving a current state of the robot for each control step;
[0023] a memory;
the memory is configured to store a library of skills for the robot, each skill being a probability function of a state of the robot that returns a distribution of actions in response to the current state being input from the input interface , the skills being task agnostic;
the memory is configured to store a learned function for the task, the learned function being a probability function of the state of the robot that returns a distribution of skills in response to the state of the robot being input from the input interface ;
The controller further comprises:
a processor configured to execute the learned function for the current state to select, for each control step in a sequence of control steps that reaches an exit condition, a skill having a highest probability on the distribution of skills, and to execute the selected skill for the current state to select an action having a highest probability on the distribution of actions for transitioning the state of the robot from the current state to a next state;
The controller further comprises:
an output interface configured to instruct the robot to perform the selected action to perform the task ;
The learned function is learned based on reinforcement learning having a reward function or learned by expectation maximization;
The controller, wherein the reward function includes a penalty for switching between skills or a penalty based on the distance between the selected action and one or more demonstrated actions, minimizing deviation in the outcome of the execution of the task.
前記学習済関数のパラメータは、各可能な状態について、前記スキルによって返されるアクションと、前記現在の状態についての前記タスクの複数の実行対応するアクションとの間の差の確率を最小化する前記スキルをスキルの前記ライブラリから返す確率を最大化するように選択され、前記タスクの各実行は、状態およびアクション値の対のシーケンスによって表される、請求項1に記載のコントローラ。 2. The controller of claim 1, wherein parameters of the learned function are selected to maximize, for each possible state, a probability of returning from the library of skills that minimizes a probability of a difference between an action returned by the skill and an action corresponding to multiple executions of the task for the current state , each execution of the task being represented by a sequence of state and action value pairs. 前記学習済関数は、複数の引数関数である、請求項1に記載のコントローラ。 The controller of claim 1 , wherein the learned function is a multiple argument function. 少なくともいくつかのスキルは、複数の制御ステップについて実行されるように構成されるマルチステップスキルであり、前記プロセッサは、現在選択されている前記スキルがマルチステップスキルである場合でも、各制御ステップについてスキルの前記選択を繰り返す、請求項1に記載のコントローラ。 The controller of claim 1, wherein at least some of the skills are multi-step skills configured to be performed for multiple control steps, and the processor repeats the selection of a skill for each control step even if the currently selected skill is a multi-step skill. スキルを選択するための前記関数は、スキル同士の間の切り替えにペナルティを課すように学習される、請求項1に記載のコントローラ。 The controller of claim 1, wherein the function for selecting skills is learned to penalize switching between skills. 前記学習済関数は、現在のスキルをスキルのシーケンスから切り替える時間を返すこと
によって前記スキルを選択する、請求項1に記載のコントローラ。
The controller of claim 1 , wherein the learned function selects a skill by returning a time to switch a current skill out of a sequence of skills.
前記スキルを選択するための前記関数を学習させるように構成される学習モジュールをさらに含み、
前記関数を学習させるために、前記学習モジュールは、
前記タスクの実行のセットを受け取ることを行うように構成され、各実行は、状態/アクションの対のシーケンスを定義しており、
前記関数を学習させるために、前記学習モジュールはさらに、
各状態について、状態/アクションの対の前記シーケンスから、当該状態について受け取られた前記アクションにフィットするアクションの分布を決定することと、
ある状態について、当該状態について決定されるアクションの前記分布上でサンプリングされるアクションを返す最も高い確率を有するスキルを決定することと
を行うように構成される、請求項1に記載のコントローラ。
a learning module configured to learn the function for selecting the skill;
To train the function, the training module comprises:
receiving a set of executions of the task, each execution defining a sequence of state/action pairs;
To train the function, the training module further comprises:
determining, for each state, a distribution of actions from the sequence of state/action pairs that fit the actions received for that state;
and determining, for a state, the skill that has the highest probability of returning an action sampled on the distribution of actions determined for that state.
タスクを実行するようにロボットの動作を制御するための方法であって、前記方法は、メモリに結合されるプロセッサを使用し、前記メモリは、(1)前記ロボットのスキルのライブラリを格納し、各スキルは、現在の状態を入力インターフェイスから入力されることに応答して、アクションの分布を返す前記ロボットの状態の確率関数であり、前記スキルは、タスク不可知論的であり、前記メモリは、(2)前記タスクについての学習済関数を格納し、前記学習済関数は、前記ロボットの前記状態を前記入力インターフェイスから入力されることに応答して、スキルの分布を返す前記ロボットの前記状態の確率関数であり、前記プロセッサは、格納された命令と結合され、前記方法のステップを行なうよう前記プロセッサによって実行されると、
各制御ステップについて前記ロボットの現在の状態を受け付けることと、
終了条件に達する制御ステップのシーケンスにおける各制御ステップについて、スキルの前記分布上で最も高い確率を有するスキルを選択するよう、前記現在の状態についての前記学習済関数を実行することと、
前記ロボットの前記状態を前記現在の状態から次の状態に遷移させるために、アクションの前記分布上で最も高い確率を有するアクションを選択するよう、前記現在の状態についての選択された前記スキルを実行することと、
前記タスクを行なうために、選択された前記アクションを実行するよう前記ロボットに命令を出力することとを含
前記学習済関数は、報酬関数を有する強化学習に基づいて学習されるか、または、期待値最大化により学習され、
前記報酬関数は、スキル同士の切り替えについてのペナルティ、または選択された前記アクションと、デモンストレーションされた1つまたは複数のアクションとの間の距離に基づくペナルティを含み、前記タスクの実行の結果の偏差を最小化する、方法。
1. A method for controlling the movement of a robot to perform a task, the method using a processor coupled to a memory, the memory storing (1) a library of skills for the robot, each skill being a probability function of a state of the robot that returns a distribution of actions in response to a current state being input from an input interface , the skills being task agnostic, the memory storing (2) a learned function for the task, the learned function being a probability function of the state of the robot that returns a distribution of skills in response to the state of the robot being input from the input interface , the processor coupled to stored instructions that, when executed by the processor to perform steps of the method,
accepting a current state of the robot for each control step;
executing the learned function on the current state to select, for each control step in a sequence of control steps that reaches a termination condition, the skill that has the highest probability on the distribution of skills;
executing the selected skill for the current state to select an action having the highest probability on the distribution of actions to transition the state of the robot from the current state to a next state;
and outputting a command to the robot to perform the selected action to perform the task;
The learned function is learned based on reinforcement learning having a reward function or learned by expectation maximization;
The method of claim 1, wherein the reward function includes a penalty for switching between skills or a penalty based on the distance between the selected action and one or more demonstrated actions, minimizing deviation in the outcome of the performance of the task.
前記学習済関数のパラメータは、各可能な状態について、前記スキルによって返されるアクションと、前記現在の状態についての前記タスクの複数の実行対応するアクションとの間の差の確率を最小化するスキルをスキルの前記ライブラリから返す確率を最大化するように選択され、前記タスクの各実行は、状態およびアクション値の対のシーケンスによって表される、請求項8に記載の方法。 9. The method of claim 8, wherein parameters of the learned function are selected to maximize the probability of returning, for each possible state, a skill from the library of skills that minimizes the probability of a difference between an action returned by the skill and an action corresponding to multiple executions of the task for the current state , each execution of the task being represented by a sequence of state and action value pairs. 前記学習済関数は、複数の引数関数である、請求項8に記載の方法。 The method of claim 8 , wherein the learned function is a multiple argument function. 少なくともいくつかのスキルは、複数の制御ステップについて実行されるように構成されるマルチステップスキルであり、前記プロセッサは、現在選択されている前記スキルがマルチステップスキルである場合でも、各制御ステップについてスキルの前記選択を繰り返す、請求項8に記載の方法。 The method of claim 8, wherein at least some of the skills are multi-step skills configured to be performed for multiple control steps, and the processor repeats the selection of a skill for each control step even if the currently selected skill is a multi-step skill. 前記関数は、スキル同士の間の切り替えにペナルティを課す関数に基づいてスキルを選
択するように学習される、請求項8に記載の方法。
The method of claim 8 , wherein the function is trained to select skills based on a function that penalizes switching between skills.
前記学習済関数は、現在のスキルをスキルのシーケンスから切り替える時間を返すことによって前記スキルを選択する、請求項8に記載の方法。 The method of claim 8, wherein the learned function selects the skill by returning the time to switch the current skill out of the sequence of skills. 前記メモリはさらに、学習モジュールを格納するように構成され、前記方法のステップを行なうよう前記プロセッサによって実行されると、前記スキルを選択するための前記関数を学習させることを含み、
前記関数を学習させることはさらに、
前記タスクの実行のセットを受け取ることを行うことを含み、各実行は、状態/アクションの対のシーケンスを定義しており、
前記関数を学習させることはさらに、
各状態について、状態/アクションの対の前記シーケンスから、当該状態について受け取られた前記アクションにフィットするアクションの分布を決定することと、
ある状態について、当該状態について決定されるアクションの前記分布上でサンプリングされるアクションを返す最も高い確率を有するスキルを決定することと
を含む、請求項8に記載の方法。
the memory is further configured to store a learning module, which when executed by the processor to perform the steps of the method includes learning the function for selecting the skill;
The learning of the function further comprises:
receiving a set of executions of the task, each execution defining a sequence of state/action pairs;
The learning of the function further comprises:
determining, for each state, a distribution of actions from the sequence of state/action pairs that fit the actions received for that state;
and determining for a state the skill that has the highest probability of returning an action sampled on the distribution of actions determined for that state.
JP2021025324A 2020-03-27 2021-02-19 CONTROLLER AND METHOD FOR CONTROLLING THE OPERATION OF A ROBOT TO PERFORM A TASKS - Patent application Active JP7523384B2 (en)

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 (2)

Publication Number Publication Date
JP2021154481A JP2021154481A (en) 2021-10-07
JP7523384B2 true JP7523384B2 (en) 2024-07-26

Family

ID=77916598

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021025324A Active JP7523384B2 (en) 2020-03-27 2021-02-19 CONTROLLER AND METHOD FOR CONTROLLING THE OPERATION OF A ROBOT TO PERFORM A TASKS - Patent application

Country Status (1)

Country Link
JP (1) JP7523384B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7278246B2 (en) * 2020-10-19 2023-05-19 京セラ株式会社 ROBOT CONTROL DEVICE, ROBOT CONTROL METHOD, TERMINAL DEVICE, TERMINAL CONTROL METHOD, AND ROBOT CONTROL SYSTEM
US12257719B2 (en) * 2022-06-02 2025-03-25 Intrinsic Innovation Llc Robot planning for concurrent execution of actions
KR102551333B1 (en) * 2022-12-30 2023-07-04 주식회사 아이브 Apparatus and method for learning the optimal path of a robot arm using hierarchical reinforcement learning

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017030135A (en) 2015-07-31 2017-02-09 ファナック株式会社 Machine learning apparatus, robot system, and machine learning method for learning workpiece take-out operation
WO2018135301A1 (en) 2017-01-18 2018-07-26 ソニー株式会社 Information processing device and information processing method
JP6632095B1 (en) 2019-01-16 2020-01-15 株式会社エクサウィザーズ Learned model generation device, robot control device, and program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017030135A (en) 2015-07-31 2017-02-09 ファナック株式会社 Machine learning apparatus, robot system, and machine learning method for learning workpiece take-out operation
WO2018135301A1 (en) 2017-01-18 2018-07-26 ソニー株式会社 Information processing device and information processing method
JP6632095B1 (en) 2019-01-16 2020-01-15 株式会社エクサウィザーズ Learned model generation device, robot control device, and program

Also Published As

Publication number Publication date
JP2021154481A (en) 2021-10-07

Similar Documents

Publication Publication Date Title
JP7523384B2 (en) CONTROLLER AND METHOD FOR CONTROLLING THE OPERATION OF A ROBOT TO PERFORM A TASKS - Patent application
Mollard et al. Robot programming from demonstration, feedback and transfer
US12539605B2 (en) Robotic demonstration learning
Akan et al. Intuitive industrial robot programming through incremental multimodal language and augmented reality
US9387589B2 (en) Visual debugging of robotic tasks
US11780086B2 (en) Robotic demonstration learning device
US11787048B2 (en) Robot planning from process definition graph
CN116133800A (en) Skill Template for Robot Demonstration Learning
US11524402B2 (en) User feedback for robotic demonstration learning
US12521871B2 (en) Compiling robot behavior trees
US11747787B2 (en) Combining transformers for robotics planning
EP3992856A1 (en) Method and system for operating a device by using hierarchical reinforcement learning
US20260042206A1 (en) Robot control using conversion language model
Pedersen et al. Gesture-based extraction of robot skill parameters for intuitive robot programming
TW202531047A (en) A controller and a non-transitory computer-readable storage medium
Ming et al. HiCRISP: An llm-based hierarchical closed-loop robotic intelligent self-correction planner
Telkes et al. Instructing hierarchical tasks to robots by verbal commands
US11577392B2 (en) Splitting transformers for robotics planning
Hangl et al. A novel skill-based programming paradigm based on autonomous playing and skill-centric testing
US20210060773A1 (en) Robot planning from process definition graph
Sheetz et al. Composable Causality in Semantic Robot Programming
Batti et al. Toward intuitive robot-to-human error reporting to enhance user awareness in space (tele) operation
Von Borstel et al. Model-based development of virtual laboratories for robotics over the Internet
De La Guardia Programming manipulators by instructions
MacDonald et al. Robot programming environments

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

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: 20240618

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240716

R150 Certificate of patent or registration of utility model

Ref document number: 7523384

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150