JP7765286B2 - Systems, devices, and methods for robotic learning and execution of skills - Google Patents
Systems, devices, and methods for robotic learning and execution of skillsInfo
- Publication number
- JP7765286B2 JP7765286B2 JP2021510317A JP2021510317A JP7765286B2 JP 7765286 B2 JP7765286 B2 JP 7765286B2 JP 2021510317 A JP2021510317 A JP 2021510317A JP 2021510317 A JP2021510317 A JP 2021510317A JP 7765286 B2 JP7765286 B2 JP 7765286B2
- Authority
- JP
- Japan
- Prior art keywords
- robotic device
- environment
- information
- skill
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Program-controlled manipulators
- B25J9/16—Program controls
- B25J9/1615—Program controls characterised by special kind of manipulator, e.g. planar, scara, gantry, cantilever, space, closed chain, passive/active joints and tendon driven manipulators
- B25J9/162—Mobile manipulator, movable base with manipulator arm mounted on it
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Program-controlled manipulators
- B25J9/16—Program controls
- B25J9/1628—Program controls characterised by the control loop
- B25J9/163—Program controls characterised by the control loop learning, adaptive, model based, rule based expert control
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Program-controlled manipulators
- B25J9/16—Program controls
- B25J9/1694—Program controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
- B25J9/1697—Vision controlled systems
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Program-control systems
- G05B19/02—Program-control systems electric
- G05B19/42—Recording and playback systems, i.e. in which the program is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39546—Map human grasps to manipulator grasps
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40116—Learn by operator observation, symbiosis, show, watch
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40391—Human to robot skill transfer
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Orthopedic Medicine & Surgery (AREA)
- Manipulator (AREA)
Description
関連出願の相互参照
[0001] 本出願は、2018年8月28日に出願された、「SYSTEMS, APPARATUS, AND METHODS FOR ROBOTIC LEARNING AND EXECUTION OF SKILLS」という名称の米国仮特許出願第62/723,694号に対する優先権を主張するものである。
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority to U.S. Provisional Patent Application No. 62/723,694, filed August 28, 2018, and entitled "SYSTEMS, APPARATUS, AND METHODS FOR ROBOTIC LEARNING AND EXECUTION OF SKILLS."
[0002] 本出願は、米国仮特許出願第62/723,694号に対する優先権を主張し、且つ2017年2月25日に出願された、「METHOD AND SYSTEM FOR ROBOTIC LEARNING OF EXECUTION PROCESSES RELATED TO PERCEPTUALLY CONSTRAINED MANIPULATION SKILLS」という名称の米国仮特許出願第62/463,628号、及び2017年2月25日に出願された、「METHOD AND SYSTEM FOR ROBOTIC EXECUTION OF A PERCEPTUALLY CONSTRAINED MANIPULATION SKILL LEARNED VIA HUMAN INTERACTION」という名称の米国仮特許出願第62/463,630号に対する優先権を主張する、2018年2月23日に出願された、「SYSTEMS, APPARATUS, AND METHODS FOR ROBOTIC LEARNING AND EXECUTION OF SKILLS」という名称の国際PCT出願第PCT/US2018/019520号の一部継続出願である、2019年6月28日に出願された、「SYSTEMS, APPARATUS, AND METHODS FOR ROBOTIC LEARNING AND EXECUTION OF SKILLS」という名称の米国特許出願第16/456,919号に対する優先権も主張する。 [0002] This application claims priority to U.S. Provisional Patent Application No. 62/723,694, entitled "METHOD AND SYSTEM FOR ROBOTIC LEARNING OF EXECUTION PROCESSES RELATED TO PERCEPTUALLY CONSTRAINED MANIPULATION SKILLS," filed February 25, 2017, and to U.S. Provisional Patent Application No. 62/463,628, entitled "METHOD AND SYSTEM FOR ROBOTIC EXECUTION OF A PERCEPTUALLY CONSTRAINED MANIPULATION SKILL LEARNED VIA HUMAN INTERACTION," filed February 23, 2018, which claims priority to U.S. Provisional Patent Application No. 62/463,630, entitled "METHOD AND SYSTEM FOR ROBOTIC EXECUTION OF A PERCEPTUALLY CONSTRAINED MANIPULATION SKILL LEARNED VIA HUMAN INTERACTION," filed February 25, 2017. This application also claims priority to U.S. patent application Ser. No. 16/456,919, entitled "SYSTEMS, APPARATUS, AND METHODS FOR ROBOTIC LEARNING AND EXECUTION OF SKILLS," filed June 28, 2019, which is a continuation-in-part of International PCT Application No. PCT/US2018/019520, entitled "SYSTEMS, APPARATUS, AND METHODS FOR ROBOTIC LEARNING AND EXECUTION OF SKILLS."
[0003] 本出願は、国際PCT出願第PCT/US2018/019520号の一部継続出願でもある。 [0003] This application is also a continuation-in-part of International PCT Application No. PCT/US2018/019520.
[0004] 上記で言及した各出願の開示内容は、その全体が本明細書に援用される。 [0004] The disclosures of each of the above-referenced applications are incorporated herein by reference in their entirety.
政府支援
[0005] 本発明は、中小企業技術革新制度のフェーズIにより、米国国立科学基金により与えられた、認可番号1621651及び1738375の下で、米国政府支援によって行われたものである。米国政府は、本発明に一定の権利を有する。
government support
[0005] This invention was made with United States government support under Grant Nos. 1621651 and 1738375 awarded by the National Science Foundation under Phase I of the Small Business Innovation Program. The United States government has certain rights in this invention.
技術分野
[0006] 本開示は、一般に、スキルのロボット学習及び実行のためのシステム、装置、及び方法に関する。より詳細には、本開示は、非構造化環境でスキルの学習及び実行が可能なロボット装置に関する。
Technical Field
[0006] This disclosure relates generally to systems, devices, and methods for robotic learning and performance of skills. More particularly, this disclosure relates to robotic devices capable of learning and performing skills in unstructured environments.
背景
[0007] ロボットは、様々なタスクの実施及び自動化のために使用され得る。ロボットは、オフィスの建物又は病院などの環境中を移動することによって、タスクを行うことができる。ロボットは、車輪、トラック、又はロボットが環境内を自律的に動き回ることを可能にする他の可動コンポーネントを装備してもよい。しかし、アーム又は他のマニピュレーターを持たないロボットは、環境内の物体を操作することができない。したがって、これらのロボットは、タスクを行う能力が限定されており、例えば、このようなロボットは、拾い上げる地点又は送り届ける地点に物体を操作する人間がいなければ、物体を拾い上げ、及び送り届けることができない場合がある。
background
[0007] Robots can be used to perform and automate a variety of tasks. Robots can perform tasks by moving through an environment, such as an office building or a hospital. Robots may be equipped with wheels, tracks, or other moving components that enable the robot to move autonomously around the environment. However, robots without arms or other manipulators cannot manipulate objects in the environment. These robots are therefore limited in their ability to perform tasks; for example, such robots may not be able to pick up and deliver objects without a human being present at the pick-up or delivery point to manipulate the object.
[0008] アーム又は他のマニピュレーターを含むロボットは、人間がいなくても、物体を拾い上げ、及び物体をある場所へと送り届けることができ得る。例えば、グリッパーなどのエンドエフェクターを備えたアームを有するロボットは、グリッパーを用いて、複数の異なる場所から1つ又は複数の物体を拾い上げ、これらの物体を新しい場所へと送り届けることが、全て人間の手助けなしに可能である。これらのロボットは、特定のタスクを自動化し、それによって、人間のオペレーターが他のタスクに集中することを可能にするために使用され得る。しかし、ほとんどの商業用ロボットは、マニピュレーターの動作をプログラミングするという課題及び複雑さが原因で、マニピュレーターを含まない。 [0008] Robots that include arms or other manipulators may be able to pick up objects and deliver them to a location without human assistance. For example, a robot with an arm equipped with an end effector, such as a gripper, can use the gripper to pick up one or more objects from several different locations and deliver the objects to a new location, all without human assistance. These robots can be used to automate certain tasks, thereby allowing human operators to focus on other tasks. However, most commercial robots do not include manipulators due to the challenges and complexity of programming the manipulator's movements.
[0009] また、ほとんどの商業用ロボットは、構造化環境(例えば、工場、倉庫など)で動作するように設計される。非構造化環境(例えば、病院及び家などの人間に関与する環境)は、ロボットをプログラミングするためのさらなる課題をもたらし得る。非構造化環境では、ロボットは、その周辺環境の完全な知識に依存することはできないが、周辺環境の変化を認識し、それらの変化に基づいて適応することができなければならない。したがって、非構造化環境では、ロボットは、自律判断を行い、及びタスクを行うことができるためには、環境に関する情報を継続的に獲得しなければならない。しばしば、ロボットの動作(例えば、環境内でのアーム又はエンドエフェクターの動作)は、環境内の物体及び他の障害物によっても制約され、ロボットの知覚及び操作の課題がさらに増す。非構造化環境の不確かで、動的な性質を考えると、ロボットは、一般的に、タスクを行うようにあらかじめプログラムされることが不可能である。 [0009] Additionally, most commercial robots are designed to operate in structured environments (e.g., factories, warehouses, etc.). Unstructured environments (e.g., human-involved environments such as hospitals and homes) can pose additional challenges for programming robots. In unstructured environments, a robot cannot rely on complete knowledge of its surroundings but must be able to recognize changes in its surroundings and adapt based on those changes. Thus, in unstructured environments, a robot must continuously acquire information about the environment to be able to make autonomous decisions and perform tasks. Often, a robot's motion (e.g., the movement of an arm or end effector within the environment) is also constrained by objects and other obstacles in the environment, further increasing the challenges of robot perception and manipulation. Given the uncertain and dynamic nature of unstructured environments, robots generally cannot be pre-programmed to perform tasks.
[0010] したがって、あらかじめプログラムされた操作スキルに依存することなく、動的な、非構造化の環境を認識し、及びそれらの環境に適応することができ、並びに、それらの環境内でタスクを行うことができるロボットシステムに対するニーズがある。 [0010] Therefore, there is a need for a robotic system that can perceive and adapt to dynamic, unstructured environments and perform tasks within those environments without relying on pre-programmed operational skills.
概要
[0011] スキルのロボット学習及び実行のためのシステム、装置、及び方法が記載される。いくつかの実施形態では、装置は、メモリー、プロセッサー、操作要素、及びセンサーのセットを含む。プロセッサーは、メモリー、操作要素、及びセンサーのセットに動作可能に結合され、並びに、センサーのセットからのセンサーのサブセットを用いて、環境の表現を取得することと、環境の表現内で複数のマーカーを識別することであって、複数のマーカーからの各マーカーが、環境内に位置する複数の物理的物体からの物理的物体に関連付けられる、識別することと、環境の表現内で複数のマーカーからの各マーカーの位置を示す情報を提示することと、複数の物理的物体からの物理的物体のセットに関連付けられた、複数のマーカーからのマーカーのセットの選択を受け取ることと、環境内の操作要素の動きに関連する複数の位置からの位置ごとに、操作要素に関連する感覚情報を取得することであって、操作要素の動きが、操作要素と物理的物体のセットとの物理的インタラクションに関連する、取得することと、感覚情報に基づいて、操作要素と物理的物体のセットとの物理的インタラクションを実行するための操作要素の動作を規定するように構成されたモデルを生成することと、を行うように構成されてもよい。
overview
Systems, devices, and methods for robotic learning and execution of skills are described. In some embodiments, the device includes a memory, a processor, a manipulative element, and a set of sensors. The processor is operably coupled to the memory, the manipulative element, and the set of sensors and may be configured to: obtain a representation of an environment using a subset of sensors from the set of sensors; identify a plurality of markers within the representation of the environment, where each marker from the plurality of markers is associated with a physical object from a plurality of physical objects located in the environment; present information indicative of a position of each marker from the plurality of markers within the representation of the environment; receive a selection of a set of markers from the plurality of markers associated with a set of physical objects from the plurality of physical objects; obtain, for each position from the plurality of positions associated with movement of the manipulative element within the environment, sensory information associated with the manipulative element, where the movement of the manipulative element is associated with a physical interaction between the manipulative element and the set of physical objects; and generate, based on the sensory information, a model configured to define a behavior of the manipulative element to perform the physical interaction between the manipulative element and the set of physical objects.
[0012] いくつかの実施形態では、操作要素は、複数の関節及びエンドエフェクターを含んでもよい。いくつかの実施形態では、操作要素は、基部又は搬送要素を含んでもよい。 [0012] In some embodiments, the operating element may include multiple joints and an end effector. In some embodiments, the operating element may include a base or a carrying element.
[0013] 物理的物体のセットは、静止した物体、又は移動する物体であってもよい。いくつかの実施形態では、物理的物体のセットは、備品、収納容器、構造物(例えば、ドア、ハンドル、家具、壁)などを含み得る。いくつかの実施形態では、物理的物体のセットは、人間(例えば、患者、医師、看護師など)を含み得る。 [0013] The set of physical objects may be stationary or moving. In some embodiments, the set of physical objects may include fixtures, storage containers, structures (e.g., doors, handles, furniture, walls), etc. In some embodiments, the set of physical objects may include people (e.g., patients, doctors, nurses, etc.).
[0014] いくつかの実施形態では、複数のマーカーは、基準マーカーであり、環境の表現が、環境の視覚的表現である。 [0014] In some embodiments, the plurality of markers are fiducial markers and the representation of the environment is a visual representation of the environment.
[0015] いくつかの実施形態では、複数のマーカーからの2つ以上のマーカーが、物理的物体のセットからの1つの物理的物体に関連付けられてもよい。代替的又は追加的に、いくつかの実施形態では、複数のマーカーからの1つのマーカーが、物理的物体のセットからの2つ以上の物理的物体に関連付けられてもよい。 [0015] In some embodiments, two or more markers from the plurality of markers may be associated with one physical object from the set of physical objects. Alternatively or additionally, in some embodiments, one marker from the plurality of markers may be associated with two or more physical objects from the set of physical objects.
[0016] いくつかの実施形態では、方法は、センサーのセットを用いて、環境の表現を取得することと、環境の表現内で複数のマーカーを識別することであって、複数のマーカーからの各マーカーが、環境内に位置する複数の物理的物体からの物理的物体に関連付けられる、識別することと、環境の表現内で複数のマーカーからの各マーカーの位置を示す情報を提示することと、上記提示後に、複数の物理的物体からの物理的物体のセットに関連付けられた、複数のマーカーからのマーカーのセットの選択を受け取ることと、環境内の操作要素の動きに関連する複数の位置からの位置ごとに、操作要素に関連する感覚情報を取得することであって、操作要素の動きが、操作要素と物理的物体のセットとの物理的インタラクションに関連する、取得することと、感覚情報に基づいて、操作要素と物理的物体のセットとの物理的インタラクションを実行するための操作要素の動作を規定するように構成されたモデルを生成することと、を含む。 [0016] In some embodiments, a method includes obtaining a representation of an environment using a set of sensors; identifying a plurality of markers within the representation of the environment, where each marker from the plurality of markers is associated with a physical object from a plurality of physical objects located in the environment; presenting information indicative of a position of each marker from the plurality of markers within the representation of the environment; receiving, after the presenting, a selection of a set of markers from the plurality of markers associated with a set of physical objects from the plurality of physical objects; obtaining, for each position from a plurality of positions associated with movement of a control element within the environment, sensory information associated with the control element, where movement of the control element is associated with a physical interaction between the control element and the set of physical objects; and generating, based on the sensory information, a model configured to specify a behavior of the control element to perform the physical interaction between the control element and the set of physical objects.
[0017] いくつかの実施形態では、この方法は、特徴のセットからの第1の特徴のサブセットの選択を受け取ることをさらに含み、ここでは、第1の特徴のサブセットに関連するセンサーデータに基づき、且つ第1の特徴のセットに含まれない、特徴のセットからの第2の特徴のサブセットに関連するセンサーデータには基づかずに、モデルが生成される。 [0017] In some embodiments, the method further includes receiving a selection of a first subset of features from the set of features, wherein the model is generated based on sensor data associated with the first subset of features and not based on sensor data associated with a second subset of features from the set of features that are not included in the first set of features.
[0018] いくつかの実施形態では、方法は、センサーのセットを用いて、環境の表現を取得することと、環境の表現内で複数のマーカーを識別することであって、複数のマーカーからの各マーカーが、環境内に位置する複数の物理的物体からの物理的物体に関連付けられる、識別することと、環境の表現内で複数のマーカーからの各マーカーの位置を示す情報を提示することと、複数の物理的物体からの物理的物体のセットに関連付けられた、複数のマーカーからのマーカーのセットの選択の受け取りに応答して、操作要素と物理的物体のセットとの物理的インタラクションを実行することに関連するモデルを識別することであって、操作要素が、複数の関節及びエンドエフェクターを含む、識別することと、モデルを使用して、物理的インタラクションを実行することに関連する、複数の関節及びエンドエフェクターの動作を規定する、操作要素の軌道を生成することと、を含む。 [0018] In some embodiments, a method includes obtaining a representation of an environment using a set of sensors; identifying a plurality of markers within the representation of the environment, where each marker from the plurality of markers is associated with a physical object from a plurality of physical objects located in the environment; presenting information indicative of a position of each marker from the plurality of markers within the representation of the environment; identifying a model associated with performing a physical interaction between a manipulative element and the set of physical objects in response to receiving a selection of a set of markers from the plurality of markers associated with the set of physical objects from the plurality of physical objects, where the manipulative element includes a plurality of joints and an end effector; and generating a trajectory for the manipulative element using the model, the trajectory defining movement of the plurality of joints and the end effector associated with performing the physical interaction.
[0019] いくつかの実施形態では、上記方法は、環境の表現内で操作要素の軌道をユーザーに表示することと、表示後に、ユーザーから入力を受け取ることと、操作要素の軌道の承認を示す入力に応答して、物理的インタラクションを実行するために、操作要素(例えば、複数の関節、エンドエフェクター、搬送要素)の動作を実施することと、をさらに含む。 [0019] In some embodiments, the method further includes displaying to a user a trajectory of the manipulative element within the representation of the environment; receiving input from the user after the display; and, in response to the input indicating approval of the trajectory of the manipulative element, performing a movement of the manipulative element (e.g., a plurality of joints, an end effector, a transport element) to perform a physical interaction.
[0020] いくつかの実施形態では、モデルが、(i)保存されたマーカーのセットと、(ii)保存されたマーカーのセットに関連する、操作要素(例えば、複数の関節、エンドエフェクター、搬送要素)の保存された軌道に沿った点における操作要素の位置、向き、又は構成の少なくとも1つを示す感覚情報と、に関連付けられる。操作要素の軌道を生成する方法は、例えば、マーカーのセット及び保存されたマーカーのセット間の変換関数を計算することと、点ごとに、変換関数を用いて、操作要素の位置又は向きの少なくとも一方を変換することと、点ごとに、操作要素(例えば、複数の関節、エンドエフェクター、搬送要素)の1つ又は複数のコンポーネントの計画された構成を、保存された軌道に沿った上記コンポーネントの構成に基づいて決定することと、点ごとに、その点に関する上記コンポーネントの計画された構成に基づいて、その点及び連続点間の軌道の一部を決定することと、を含んでもよい。 [0020] In some embodiments, a model is associated with (i) a set of stored markers and (ii) sensory information indicating at least one of a position, orientation, or configuration of a manipulative element (e.g., a plurality of joints, an end effector, a transport element) at points along a stored trajectory of the manipulative element associated with the set of stored markers. A method for generating a trajectory of the manipulative element may include, for example, calculating a transformation function between the set of markers and the set of stored markers; transforming at least one of a position or orientation of the manipulative element using the transformation function for each point; determining, for each point, a planned configuration of one or more components of the manipulative element (e.g., a plurality of joints, an end effector, a transport element) based on the configuration of the components along the stored trajectory; and determining, for each point, a portion of the trajectory between the point and successive points based on the planned configuration of the components with respect to the point.
[0021] いくつかの実施形態では、ロボットデバイスは、搬送要素に関連するスキルを学習し、及び実行するように構成される。搬送要素は、例えば、車輪のセット、トラックのセット、クローラーのセット、又は第1の部屋から第2の部屋へ、若しくは建物の複数の階間などの環境内でのロボットデバイスの移動を可能にする他の適切なデバイスでもよい。ロボットデバイスが、例えば、戸口を通って、又は人間などの物体によって、第1の場所から第2の場所へと移動したときに、ロボットデバイスは、搬送要素、ロボットデバイスの周りの環境、及び/又はロボットデバイスの別のコンポーネントに関連する感覚情報を取得することによって、搬送要素に関連するスキルを学習するように構成されてもよい。感覚情報は、ロボットデバイスの動作中の特定の時点で(例えば、キーフレームで)記録されてもよい。ロボットデバイスは、感覚情報に基づいて、第1の場所から第2の場所へのロボットデバイスの移動を実行するために、搬送要素(又はロボットデバイスの他のコンポーネント(例えば、操作要素))の動作を規定するように構成されたモデルを生成するように構成されてもよい。 [0021] In some embodiments, the robotic device is configured to learn and perform a skill associated with a transport element. The transport element may be, for example, a set of wheels, a set of tracks, a set of crawlers, or any other suitable device that enables movement of the robotic device within an environment, such as from a first room to a second room or between multiple floors of a building. When the robotic device is moved from a first location to a second location, for example, through a doorway or by an object such as a human, the robotic device may be configured to learn the skill associated with the transport element by acquiring sensory information associated with the transport element, the environment around the robotic device, and/or another component of the robotic device. The sensory information may be recorded at specific points (e.g., at key frames) during operation of the robotic device. Based on the sensory information, the robotic device may be configured to generate a model configured to prescribe the behavior of the transport element (or other component of the robotic device (e.g., a manipulation element)) to execute movement of the robotic device from the first location to the second location.
[0022] いくつかの実施形態では、ロボットデバイスは、スキルの汎用バージョンを用いて特化スキルを学習するように構成される。ロボットデバイスは、ある特定の環境で、汎用スキルの実行を開始し、その特定の環境でスキルの特化を必要とする実行の部分にロボットデバイスが到達すると、実行を休止することができる。次に、ロボットデバイスは、スキルのその部分の実演をユーザーに促すことができる。ロボットデバイスは、スキルの実行を続け、及び/又はスキルが完了するまで、スキルの特定の部分の実演をユーザーに促すことができる。次に、ロボットデバイスは、スキルを実行するための特化モデルを生成するために、スキルの特定の部分の実演に基づいて、汎用スキルを適応させる。 [0022] In some embodiments, a robotic device is configured to learn a specialized skill using a generic version of the skill. The robotic device can begin performing the generic skill in a particular environment and pause when the robotic device reaches a portion of the performance that requires specialization of the skill in the particular environment. The robotic device can then prompt the user to perform that portion of the skill. The robotic device can continue performing the skill and/or prompt the user to perform specific portions of the skill until the skill is complete. The robotic device then adapts the generic skill based on the performance of the specific portions of the skill to generate a specialized model for performing the skill.
[0023] いくつかの実施形態では、ロボットデバイスは、環境的制約を学習するように構成される。ロボットデバイスは、それの周辺環境、又はその環境内の物体に関する情報を記録し、環境に関する一般知識を取得することができる。ロボットデバイスは、環境内で実行される異なる複数のスキルに関係するモデルのセットにこの一般知識を適用することができる。 [0023] In some embodiments, the robotic device is configured to learn environmental constraints. The robotic device can record information about its surroundings or objects in that environment to acquire general knowledge about the environment. The robotic device can apply this general knowledge to a set of models related to different skills to be performed in the environment.
[0024] いくつかの実施形態では、ロボットデバイスは、人間の社会環境などの動的環境内で継続的及び自律的に行動するために、挙動アービトレーションを用いることが可能である。ロボットデバイスは、様々なリソース又はコンポーネント(例えば、操作要素、搬送要素、頭部、カメラなど)を有してもよく、これらのリソースをいつ及びどのように使用するかを決定するために、アービトレーションアルゴリズムを適用することができる。アービトレーションアルゴリズムは、ロボットデバイスで捕捉されている情報に基づいて、異なる複数のアクション又は挙動が優先順位を付けられることを可能にするルールのセットを規定することができる。ロボットデバイスは、ロボットデバイスで新しい情報が捕捉されるにつれて、継続的に、異なる複数のアクション及び挙動の実行の中から決める(したがって、異なるリソース又はコンポーネントを使用する)ように構成されてもよい。挙動アービトレーションの一部として、ロボットデバイスは、あるアクションの中断を処理し、新しいアクションに切り替えるように構成されてもよい。ロボットデバイス自体、及びその周辺環境を継続的にモニタリングし、並びに継続的なアービトレーションを行うことによって、ロボットデバイスは、経時的に、社会的に適切な挙動に絶えず従事することができる。 [0024] In some embodiments, a robotic device can use behavior arbitration to continuously and autonomously act within a dynamic environment, such as a human social environment. A robotic device may have various resources or components (e.g., a manipulating element, a carrying element, a head, a camera, etc.) and can apply an arbitration algorithm to determine when and how to use these resources. The arbitration algorithm can define a set of rules that allow different actions or behaviors to be prioritized based on information captured by the robotic device. A robotic device may be configured to continuously decide among the execution of different actions and behaviors (and thus use different resources or components) as new information is captured by the robotic device. As part of behavior arbitration, a robotic device may be configured to handle the interruption of an action and switch to a new action. By continuously monitoring itself and its surrounding environment and performing continuous arbitration, a robotic device can continually engage in socially appropriate behaviors over time.
[0025] いくつかの実施形態では、ロボットデバイスは、環境に関連する社会的コンテキスト情報を受け取り、その情報を環境のナビゲーションマップと組み合わせる(例えば、ナビゲーションマップ上に社会的コンテキスト情報を重ねる)ように構成される。ロボットデバイスは、ユーザー(例えば、人間のオペレーター)によって社会的コンテキスト情報が与えられてもよく、又はロボットデバイスは、環境内のインタラクションを通して、社会的コンテキスト情報を捕捉してもよい。ロボットデバイスが、経時的に環境内で人間とのインタラクションに従事するにつれて、ロボットデバイスは、社会的コンテキスト情報を改良することができる。いくつかの実施形態では、ロボットデバイスは、環境内の特定の場所に関連する社会的コンテキスト情報に基づいて、あるタイプの挙動又はアクションをこれらの場所に関連付けるように構成されてもよい。 [0025] In some embodiments, the robotic device is configured to receive social context information related to an environment and combine that information with a navigation map of the environment (e.g., overlay the social context information on the navigation map). The robotic device may be provided with the social context information by a user (e.g., a human operator), or the robotic device may capture the social context information through interactions within the environment. As the robotic device engages in interactions with humans within the environment over time, the robotic device may refine the social context information. In some embodiments, the robotic device may be configured to associate certain types of behaviors or actions with particular locations within the environment based on the social context information associated with those locations.
[0026] いくつかの実施形態では、ロボットデバイスは、人間のオペレーターと、現場で、又は人間のオペレーターによって操作される遠隔デバイスへのネットワーク接続によって、インタラクトするように構成される。人間のオペレーターは、本明細書では、「ロボットの監督者」と呼ばれ、様々なソフトウェアベースのツールを用いて、周辺環境に関する情報をロボットデバイスに知らせ、及び/又は特定のアクションを行うようにロボットデバイスに指示することができる。これらのアクションには、例えば、ナビゲーション挙動、操作挙動、頭部挙動、音声、ライトなどが含まれ得る。ロボットの監督者は、アクションの学習若しくは実行中に情報を収集し、及び/又はロボットデバイスが、その情報を用いて、今後、異なる複数のアクションの中でアービトレーションを行う能力、若しくはある特定のアクションを実行する能力を向上させることができるように、特定の挙動を良い挙動若しくは悪い挙動とタグ付けするようにロボットデバイスを制御することができる。 [0026] In some embodiments, the robotic device is configured to interact with a human operator, either locally or via a network connection to a remote device operated by the human operator. The human operator, referred to herein as a "robot supervisor," can use various software-based tools to inform the robotic device about its surroundings and/or instruct the robotic device to perform specific actions. These actions may include, for example, navigation behaviors, manipulation behaviors, head behaviors, sounds, lights, etc. The robot supervisor can control the robotic device to collect information while learning or performing an action and/or tag certain behaviors as good or bad so that the robotic device can use that information to improve its ability to arbitrate among different actions or to perform a particular action in the future.
[0027] 以下の図面及び詳細な説明を考察すれば、他のシステム、プロセス、及び特徴が、当業者には明らかとなるだろう。全てのそのような追加のシステム、プロセス、及び特徴が、本明細書の範囲内に含まれること、本発明の範囲内であること、及び添付の特許請求の範囲によって保護されることが意図される。 [0027] Other systems, processes, and features will become apparent to one with skill in the art upon examination of the following drawings and detailed description. All such additional systems, processes, and features are intended to be included within the scope of this specification, be within the scope of the invention, and be protected by the accompanying claims.
図面の簡単な説明
[0028] 図面が主に例示を目的としたものであり、本明細書に記載される発明特定事項の範囲を限定することは意図されないことを当業者は理解するだろう。図面は、必ずしも一定の縮尺ではなく、場合によっては、本明細書に開示される発明特定事項の様々な局面は、異なる複数の特徴の理解を容易にするために、図面において、誇張して、すなわち拡大して示される場合がある。図面では、同様の参照符号は、一般に、同様の特徴(例えば、機能的に類似した、及び/又は構造的に類似した要素)を指す。
BRIEF DESCRIPTION OF THE DRAWINGS
[0028] Those skilled in the art will understand that the drawings are primarily for illustrative purposes and are not intended to limit the scope of the inventive subject matter described herein. The drawings are not necessarily to scale, and in some cases, various aspects of the inventive subject matter disclosed herein may be shown exaggerated or enlarged in the drawings to facilitate an understanding of different features. In the drawings, like reference numerals generally refer to like features (e.g., functionally similar and/or structurally similar elements).
詳細な説明
[0052] 本明細書では、スキルのロボット学習及び実行のためのシステム、装置、及び方法が記載される。いくつかの実施形態では、本明細書に記載されるシステム、装置、及び方法は、人間による実演やインタラクションによってスキルを学習し、学習したスキルを非構造化環境で実行することができるロボット装置に関する。
Detailed Description
[0052] Described herein are systems, devices, and methods for robotic learning and performance of skills. In some embodiments, the systems, devices, and methods described herein relate to robotic devices that can learn skills through human demonstration and interaction and perform the learned skills in unstructured environments.
概要
[0053] いくつかの実施形態では、本明細書に記載されるシステム、装置、及び方法は、Learning from Demonstration(「LfD」)プロセスによってスキル(例えば、操作スキル)を学習することができるロボットに関し、このLfDプロセスでは、人間が、運動感覚教示により(例えば、物理的に、及び/又は遠隔制御により、人間が、アクションを行うようにロボットを指導する)、及び/又は人間自身がアクションを行うことにより、システムにアクションを実演する。このようなシステム、装置、及び方法は、ロボットに操作スキルをあらかじめプログラムする必要がなく、ロボットは、適応性があり、観察によってスキルを学習することができるように設計される。例えば、ロボットは、機械学習技術を用いて、操作スキルを獲得し、実行することができる。スキルの学習後に、ロボットは、異なる複数の環境でスキルを実行することができる。ロボットは、視覚データ(例えば、感知した視覚情報)に基づいて、スキルの学習及び/又は実行を行うことができる。代替的又は追加的に、ロボットは、触覚データ(例えば、トルク、力、及び他の非視覚情報)を用いて、スキルの学習及び/又は実行を行うことができる。ロボット学習は、ロボットの配備前に工場で、又はロボットの配備後に現場で(例えば、病院で)行うことができる。いくつかの実施形態では、ロボットは、ロボット工学及び/又はプログラミングの訓練を受けていないユーザーによって、スキルを教えられ、及び/又はある環境で動作するように適応することができる。例えば、ロボットは、自然な人間の挙動を利用する学習アルゴリズムを有することができ、実演プロセスを行うようにユーザーを指導することができるツールを含むことができる。
overview
In some embodiments, the systems, devices, and methods described herein relate to robots that can learn skills (e.g., manipulation skills) through a Learning from Demonstration (“LfD”) process, in which a human demonstrates an action to a system through kinesthetic teaching (e.g., a human physically and/or remotely directing the robot to perform the action) and/or by performing the action themselves. Such systems, devices, and methods are designed to avoid the need to pre-program the robot with manipulation skills, and to enable the robot to be adaptive and learn skills through observation. For example, a robot can acquire and perform a manipulation skill using machine learning techniques. After learning a skill, the robot can perform the skill in multiple different environments. A robot can learn and/or perform a skill based on visual data (e.g., sensed visual information). Alternatively or additionally, a robot can learn and/or perform a skill using tactile data (e.g., torque, force, and other non-visual information). Robot training can occur in a factory before the robot is deployed or in the field (e.g., in a hospital) after the robot is deployed. In some embodiments, a robot can be taught skills and/or adapted to operate in an environment by a user untrained in robotics and/or programming. For example, a robot can have learning algorithms that utilize natural human behavior and include tools that can guide a user through a demonstration process.
[0054] いくつかの実施形態では、ロボットは、人間とインタラクトし、人間と協力してタスクを行うように設計することができる。いくつかの実施形態では、ロボットは、一般的な社会的挙動を利用して、人間のそばで、社会的に予測可能且つ許容可能なやり方で行動することができる。可動ロボットは、ある環境内で、その環境内の人間とインタラクトしながらナビゲートするように設計することもできる。例えば、ロボットは、人間の周りをナビゲートするために特定の言葉を声に出し、人間が通れるように脇に寄り、及びナビゲーション中に視線を利用して意図的にコミュニケーションするようにプログラムすることができる。いくつかの実施形態では、ロボットは、その周囲の環境内で、ロボットが、人間の感知及び追跡を行い、その情報を用いて視線及び他の社会的挙動を生じさせることを可能にするセンサーを備えてもよい。 [0054] In some embodiments, robots can be designed to interact with humans and collaborate with them to perform tasks. In some embodiments, robots can utilize common social behaviors to behave in a socially predictable and acceptable manner around humans. Mobile robots can also be designed to navigate within an environment while interacting with humans within that environment. For example, a robot can be programmed to vocalize specific phrases to navigate around humans, move aside to allow humans to pass, and use gaze to intentionally communicate while navigating. In some embodiments, a robot may be equipped with sensors that enable the robot to sense and track humans within its surrounding environment and use that information to trigger gaze and other social behaviors.
[0055] いくつかの実施形態では、ロボットは、目標を達成するため、又はLfDプロセス中のアクションを行うためのオプションを提案するように設計することができる。例えば、ロボットは、目標(例えば、物体を拾い上げること)を達成するための数個の異なるオプションを提案することができ、その目標を達成するためには、これらのオプションの内のどれが、効果的及び/又は効率的である可能性が最も高いかを示すことができる。いくつかの実施形態では、ロボットは、ユーザーによる入力に基づいて(例えば、ユーザーが、スキルモデルに含める関連の特徴を示す)、スキルを適応させることができる。 [0055] In some embodiments, the robot can be designed to suggest options for achieving a goal or performing an action during the LfD process. For example, the robot can suggest several different options for achieving a goal (e.g., picking up an object) and indicate which of these options is most likely to be effective and/or efficient for achieving the goal. In some embodiments, the robot can adapt a skill based on user input (e.g., the user indicating relevant features to include in the skill model).
[0056] いくつかの実施形態では、ロボットデバイスは、ロボットデバイスが事前に環境の完全な情報を持たない非構造化環境(例えば、動的及び/又は人間環境)において、スキルの学習及び/又は実行を行うことができ得る。非構造化環境は、例えば、屋内及び屋外状況を含む場合があり、環境内で移動可能な1人又は複数の人間や他の物体を含む場合がある。最も自然な環境、又は現実世界の環境が非構造化であるため、本明細書に記載されるロボットデバイス及び/又はシステムなどの、非構造化環境で適応及び動作できるロボットデバイスは、非構造化環境に適応できない既存のロボットデバイスと比べて著しい向上を提供することができる。非構造化環境には、屋内状況(例えば、建物、オフィス、家、部屋など)及び/又は他のタイプの閉じた空間(例えば、飛行機、電車、及び/又は他のタイプの移動可能な区画)、並びに屋外状況(例えば、公園、ビーチ、外庭、野原)が含まれ得る。ある実施形態では、本明細書に記載されるロボットデバイスは、非構造化病院環境で動作することができる。 [0056] In some embodiments, a robotic device may be capable of learning and/or performing skills in an unstructured environment (e.g., a dynamic and/or human environment) where the robotic device does not have complete information about the environment a priori. An unstructured environment may include, for example, indoor and outdoor situations and may include one or more humans or other objects that are movable within the environment. Because most natural or real-world environments are unstructured, robotic devices that can adapt and operate in unstructured environments, such as the robotic devices and/or systems described herein, may provide a significant improvement over existing robotic devices that cannot adapt to unstructured environments. Unstructured environments may include indoor situations (e.g., buildings, offices, homes, rooms, etc.) and/or other types of enclosed spaces (e.g., airplanes, trains, and/or other types of movable compartments), as well as outdoor situations (e.g., parks, beaches, outdoor yards, fields). In some embodiments, the robotic devices described herein may operate in an unstructured hospital environment.
[0057] 図1は、いくつかの実施形態によるシステム100を示すハイレベルブロック図である。システム100は、非構造化環境において、例えば操作スキルなどのスキルを学習及び実行するように構成することができる。システム100は、単一のデバイスとして実装されてもよく、又はネットワーク105に接続された複数のデバイスにわたって実装されてもよい。例えば、図1に示すように、システム100は、例えば1つ又は複数のロボットデバイス102及び110などの1つ又は複数の計算デバイス、サーバー120、及び1つ又は複数の追加の計算デバイス150を含み得る。4つのデバイスが示されているが、システム100は、具体的に図1に示されていない計算デバイスを含む、任意の数の計算デバイスを含み得ることが理解されるものとする。 [0057] FIG. 1 is a high-level block diagram illustrating a system 100 according to some embodiments. The system 100 can be configured to learn and perform skills, such as operational skills, in an unstructured environment. The system 100 may be implemented as a single device or across multiple devices connected to a network 105. For example, as shown in FIG. 1, the system 100 may include one or more computing devices, such as one or more robotic devices 102 and 110, a server 120, and one or more additional computing devices 150. While four devices are shown, it is understood that the system 100 may include any number of computing devices, including computing devices not specifically shown in FIG. 1.
[0058] ネットワーク105は、有線ネットワーク及び/又は無線ネットワークとして実装され、ロボットデバイス102及び110、サーバー120、及び1つ又は複数の計算デバイス150を含む計算デバイスを動作可能に結合するために使用される、任意のタイプのネットワーク(例えば、ローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)、仮想ネットワーク、電気通信網)でもよい。本明細書でさらに詳細に記載されるように、いくつかの実施形態では、例えば、計算デバイスは、インターネット・サービス・プロバイダー(ISP)及びインターネット(例えば、ネットワーク105)により、互いに接続されたコンピューターである。いくつかの実施形態では、任意の2つの計算デバイス間で、接続をネットワーク105により規定することができる。図1に示すように、例えば、ロボットデバイス102と、ロボットデバイス110、サーバー120、又は1つ若しくは複数の計算デバイス150のいずれか1つとの間で、接続を規定することができる。いくつかの実施形態では、これらの計算デバイスは、互いに通信する(例えば、データの送信及び/又は受信を行う)ことができ、並びに中間ネットワーク及び/又は代替ネットワーク(図1には示されない)を介してネットワーク105と通信することができる。このような中間ネットワーク及び/又は代替ネットワークは、ネットワーク105と同じタイプ及び/又は異なるタイプのネットワークであってもよい。各計算デバイスは、送信するためにネットワーク105上でデータを送信し、及び/又は他の計算デバイスの1つ又は複数からデータを受信するように構成された、任意のタイプのデバイスでもよい。 [0058] Network 105 may be implemented as a wired and/or wireless network and may be any type of network (e.g., a local area network (LAN), a wide area network (WAN), a virtual network, a telecommunications network) used to operatively couple computing devices, including robotic devices 102 and 110, server 120, and one or more computing devices 150. As described in further detail herein, in some embodiments, for example, the computing devices are computers connected to each other by an Internet Service Provider (ISP) and the Internet (e.g., network 105). In some embodiments, a connection may be defined by network 105 between any two computing devices. As shown in FIG. 1, for example, a connection may be defined between robotic device 102 and any one of robotic device 110, server 120, or one or more computing devices 150. In some embodiments, these computing devices may communicate with each other (e.g., send and/or receive data) and with network 105 through intermediate and/or alternative networks (not shown in FIG. 1). Such intermediate and/or alternative networks may be networks of the same type and/or different types than network 105. Each computing device may be any type of device configured to transmit data over network 105 for transmission and/or receive data from one or more of the other computing devices.
[0059] いくつかの実施形態では、システム100は、単一のロボットデバイス(例えば、ロボットデバイス102)を含む。ロボットデバイス102は、環境に関する情報を感知し、人間による実演及びインタラクションによってスキルを学習し、環境とインタラクトし、及び/又は人間による実演や入力によって環境的制約を学習し、及び/又はその環境でそれらのスキルを実行するように構成することができる。いくつかの実施形態では、ロボットデバイス102は、スキル及び/又は環境に関する追加情報を学習するために、自己探索を行うこと、及び/又はユーザー入力を要求することができる。ロボットデバイス例のさらに詳細な図を図2に示す。 [0059] In some embodiments, system 100 includes a single robotic device (e.g., robotic device 102). Robotic device 102 can be configured to sense information about its environment, learn skills through human demonstration and interaction, interact with its environment, and/or learn environmental constraints through human demonstration and input, and/or perform those skills in its environment. In some embodiments, robotic device 102 can self-explore and/or request user input to learn additional information about the skill and/or the environment. A more detailed diagram of an example robotic device is shown in FIG. 2.
[0060] 他の実施形態では、システム100は、複数のロボットデバイス(例えば、ロボットデバイス102及び110)を含む。ロボットデバイス102は、ネットワーク105を介して、ロボットデバイス110にデータを送信し、及び/又はロボットデバイス110からデータを受信することができる。例えば、ロボットデバイス102は、環境(例えば、物体の場所)に関してロボットデバイス102が感知した情報をロボットデバイス110に送信することができ、その環境に関する情報をロボットデバイス110から受信することができる。また、ロボットデバイス102及び110は、スキルの学習及び/又は実行を行うために、互いに対して情報を送信し、及び/又は互いから情報を受信することができる。例えば、ロボットデバイス102は、ある環境でスキルを学習し、その学習したスキルを表すモデルをロボットデバイス110に送信することができ、ロボットデバイス110は、そのモデルを受信すると、それを用いて、同じ又は異なる環境でスキルを実行することができる。ロボットデバイス102は、ロボットデバイス110と同じ又は異なる場所に位置してもよい。例えば、ロボットデバイス102及び110は、一緒にスキルを学習及び/又は実行する(例えば、重い、又は大きな物体を移動させる)ことができるように、ある建物(例えば、病院の建物)の同じ部屋に位置してもよい。或いは、ロボットデバイス102は、ある建物(例えば、病院の建物)の1階に位置し、ロボットデバイス110は、ある建物の2階に位置してもよく、これら2つのロボットデバイスは、異なる階に関する情報(例えば、これらの階で物体がある場所、リソースが存在し得る場所など)を互いに伝えるために、互いに通信することができる。 [0060] In another embodiment, system 100 includes multiple robotic devices (e.g., robotic devices 102 and 110). Robotic device 102 can transmit data to and/or receive data from robotic device 110 via network 105. For example, robotic device 102 can transmit information sensed by robotic device 102 about its environment (e.g., the location of an object) to robotic device 110 and can receive information about the environment from robotic device 110. Robotic devices 102 and 110 can also transmit information to and/or receive information from each other to learn and/or perform a skill. For example, robotic device 102 can learn a skill in an environment and transmit a model representing the learned skill to robotic device 110, which can then use the model to perform the skill in the same or a different environment. Robotic device 102 may be located in the same location as robotic device 110 or in a different location. For example, robotic devices 102 and 110 may be located in the same room of a building (e.g., a hospital building) so that they can learn and/or perform a skill together (e.g., moving a heavy or large object). Alternatively, robotic device 102 may be located on the first floor of a building (e.g., a hospital building) and robotic device 110 may be located on the second floor of the building, and the two robotic devices may communicate with each other to convey information about the different floors (e.g., where objects are located on these floors, where resources may be located, etc.).
[0061] いくつかの実施形態では、システム100は、1つ又は複数のロボットデバイス(例えば、ロボットデバイス102及び/又は110)と、サーバー120とを含む。サーバー120は、ロボットデバイス102及び/又は110を管理する専用サーバーであってもよい。サーバー120は、ロボットデバイス102及び/又は110と同じ又は異なる場所に位置してもよい。例えば、サーバー120は、1つ又は複数のロボットデバイスと同じ建物(例えば、病院の建物)内に位置してもよく、ローカル管理者(例えば、病院管理者)によって管理されてもよい。或いは、サーバー120は、遠隔地(例えば、ロボットデバイスのメーカー又は供給業者に関連する場所)に位置してもよい。 [0061] In some embodiments, system 100 includes one or more robotic devices (e.g., robotic devices 102 and/or 110) and server 120. Server 120 may be a dedicated server that manages robotic devices 102 and/or 110. Server 120 may be located in the same or a different location as robotic devices 102 and/or 110. For example, server 120 may be located in the same building (e.g., a hospital building) as one or more robotic devices and may be managed by a local administrator (e.g., a hospital administrator). Alternatively, server 120 may be located in a remote location (e.g., a location associated with a manufacturer or supplier of the robotic devices).
[0062] いくつかの実施形態では、システム100は、1つ又は複数のロボットデバイス(例えば、ロボットデバイス102及び/又は110)と、追加の計算デバイス150とを含む。計算デバイス150は、特定の機能を起動及び/又は実行するように構成された、任意の適宜の処理デバイスでもよい。例えば、病院の状況では、計算デバイス150は、ネットワーク105に接続し、ロボットデバイス102及び/又は110を含む他の計算デバイスと通信することが可能な診断及び/又は治療デバイスであってもよい。 [0062] In some embodiments, system 100 includes one or more robotic devices (e.g., robotic devices 102 and/or 110) and an additional computing device 150. Computing device 150 may be any suitable processing device configured to initiate and/or perform a particular function. For example, in a hospital setting, computing device 150 may be a diagnostic and/or therapeutic device that can connect to network 105 and communicate with other computing devices, including robotic devices 102 and/or 110.
[0063] いくつかの実施形態では、1つ又は複数のロボットデバイス(例えば、ロボットデバイス102及び/又は110)は、ネットワーク105を介して、サーバー120及び/又は計算デバイス150と通信するように構成されてもよい。サーバー120は、ロボットデバイスから遠隔地にあり、及び/又は敷地内でロボットデバイスの近くに位置する1つ又は複数のコンポーネントを含んでもよい。計算デバイス150は、ロボットデバイスから遠隔地にあり、敷地内でロボットデバイスの近くに位置し、及び/又は1つのロボットデバイスに組み込まれた、1つ又は複数のコンポーネントを含んでもよい。サーバー120及び/又は計算デバイス150は、ユーザー(例えば、近くのユーザー又はロボットの監督者)が、ロボットデバイスの動作を制御することを可能にするユーザーインターフェースを含んでもよい。例えば、ユーザーは、ロボットデバイスによって行われる1つ又は複数のアクションの実行を中断及び/又は修正することができる。これらのアクションには、例えば、ナビゲーション挙動、操作挙動、頭部挙動、音声/ライト、及び/又はロボットデバイスの他のコンポーネントが含まれ得る。いくつかの実施形態では、ロボットの監督者は、遠隔でロボットデバイスをモニタリングし、安全目的で、その動作を制御することができる。例えば、ロボットの監督者は、人間を危険にさらすこと、又はロボットデバイスや環境内の別の物体に損傷を与えることを避けるために、アクションの実行を停止又は修正するように、ロボットデバイスに命令することができる。いくつかの実施形態では、近くのユーザーは、ロボットデバイスに対して、アクションを指導又は実演することができる。いくつかの実施形態では、ロボットデバイスは、アクションの実行時における特定の時点で、ユーザーの介入を求めるように構成されてもよい。例えば、ロボットデバイスが、そのロボットデバイス自体、及び/又はそのロボットデバイス周辺の環境に関する特定の情報を確認できないとき、ロボットデバイスが、あるアクションを完了するため、又はある特定の場所までナビゲートするための軌道を決定できないとき、ロボットデバイスが、(例えば、以下でさらに記載されるように、対話型学習テンプレートを使用した学習中に)ユーザー入力を求めるように、前もってプログラムされたときなどの時点で、ユーザーの介入を求めることができる。いくつかの実施形態では、ロボットデバイスは、学習及び/又は実行中の特定の時点で、ユーザーにフィードバックを要求することができる。例えば、ロボットデバイスは、どんな情報(例えば、操作要素又は搬送要素に関連する情報、周辺環境に関連する情報)を収集すべきか、及び/又はいつ情報を収集すべきか(例えば、実演中のキーフレームのタイミング)を指定するようにユーザーに促すことができる。代替的又は追加的に、ロボットデバイスは、ある特定のコンテキストにおいて、アクションの良い例又は悪い例として、ユーザーがロボットデバイスの過去又は現在の挙動にタグを付けることを要求することができる。ロボットデバイスは、この情報を用いて、その特定のコンテキストにおける、そのアクションの今後の実行を向上させるように構成されてもよい。 [0063] In some embodiments, one or more robotic devices (e.g., robotic devices 102 and/or 110) may be configured to communicate with server 120 and/or computing device 150 via network 105. Server 120 may include one or more components located remotely from the robotic devices and/or near the robotic devices on a premises. Computing device 150 may include one or more components located remotely from the robotic devices, near the robotic devices on a premises, and/or integrated into one of the robotic devices. Server 120 and/or computing device 150 may include a user interface that allows a user (e.g., a local user or a robot supervisor) to control the operation of the robotic device. For example, a user can interrupt and/or modify the execution of one or more actions performed by the robotic device. These actions may include, for example, navigation behavior, manipulation behavior, head behavior, sound/lights, and/or other components of the robotic device. In some embodiments, a robot supervisor can remotely monitor the robotic device and control its operation for safety purposes. For example, a robot supervisor can command the robotic device to stop or modify the execution of an action to avoid endangering a human or damaging the robotic device or another object in the environment. In some embodiments, a nearby user can instruct or demonstrate an action to the robotic device. In some embodiments, the robotic device may be configured to request user intervention at certain points during the execution of an action. For example, user intervention may be requested when the robotic device is unable to ascertain certain information about itself and/or the environment around it, when the robotic device is unable to determine a trajectory for completing an action or navigating to a particular location, when the robotic device has been pre-programmed to request user input (e.g., during learning using an interactive learning template, as described further below), etc. In some embodiments, the robotic device may request user feedback at certain points during learning and/or execution. For example, the robotic device may prompt the user to specify what information to collect (e.g., information related to a manipulation or transport element, information related to the surrounding environment) and/or when information should be collected (e.g., the timing of key frames during a demonstration). Alternatively or additionally, the robotic device may request that the user tag past or current behaviors of the robotic device as good or bad examples of an action in a particular context. The robotic device may be configured to use this information to improve future performance of that action in that particular context.
システム及びデバイス
[0064] 図2は、いくつかの実施形態によるロボットデバイス200を模式的に示す。ロボットデバイス200は、制御ユニット202、ユーザーインターフェース240、少なくとも1つの操作要素250、及び少なくとも1つのセンサー270を含む。追加的に、いくつかの実施形態では、ロボットデバイス200は、任意選択的に、少なくとも1つの搬送要素260を含む。制御ユニット202は、メモリー220、ストレージ230、プロセッサー204、グラフィックプロセッサー205、システムバス206、及び少なくとも1つの入出力インターフェース(「I/Oインターフェース」)208を含む。メモリー220は、例えば、ランダム・アクセス・メモリー(RAM)、メモリーバッファー、ハードドライブ、データベース、消去可能なプログラマブル読み出し専用メモリー(EPROM)、電気的消去可能読み出し専用メモリー(EEPROM)、読み出し専用メモリー(ROM)、及び/又はその他であってもよい。いくつかの実施形態では、メモリー220は、環境のセンシング又はスキャニング、スキルの学習、及び/又はスキルの実行に関連するモジュール、プロセス、及び/又は機能をプロセッサー204に行わせる命令を保存する。ストレージ230は、例えば、ハードドライブ、データベース、クラウドストレージ、ネットワーク接続型ストレージデバイス、又は他のデータストレージデバイスであってもよい。いくつかの実施形態では、ストレージ230は、例えば、ロボットデバイス200の1つ又は複数のコンポーネント(例えば、操作要素250)、学習されたモデル、マーカー位置情報などに関する状態情報を含むセンサーデータを保存することができる。
Systems and Devices
2 schematically illustrates a robotic device 200 according to some embodiments. The robotic device 200 includes a control unit 202, a user interface 240, at least one operating element 250, and at least one sensor 270. Additionally, in some embodiments, the robotic device 200 optionally includes at least one transport element 260. The control unit 202 includes a memory 220, storage 230, a processor 204, a graphics processor 205, a system bus 206, and at least one input/output interface (“I/O interface”) 208. The memory 220 may be, for example, a random access memory (RAM), a memory buffer, a hard drive, a database, an erasable programmable read-only memory (EPROM), an electrically erasable read-only memory (EEPROM), a read-only memory (ROM), and/or the like. In some embodiments, memory 220 stores instructions that cause processor 204 to perform modules, processes, and/or functions related to sensing or scanning an environment, learning a skill, and/or performing a skill. Storage 230 may be, for example, a hard drive, a database, cloud storage, a network-attached storage device, or other data storage device. In some embodiments, storage 230 may store sensor data including, for example, state information about one or more components of robotic device 200 (e.g., manipulative element 250), learned models, marker position information, etc.
[0065] 制御ユニット202のプロセッサー204は、環境の視察、スキルの学習、及び/又はスキルの実行に関連する機能の起動及び/又は実行を行うように構成された、任意の適宜の処理デバイスでもよい。例えば、プロセッサー204は、本明細書でさらに記載されるように、センサー情報に基づいてスキルに関するモデルを生成し、又はモデルを用いて、スキルを行うための軌道を生成することによってスキルを実行するように構成されてもよい。より詳しくは、プロセッサー204は、モジュール、機能、及び/又はプロセスを実行するように構成されてもよい。いくつかの実施形態では、プロセッサー204は、汎用プロセッサー、フィールド・プログラマブル・ゲート・アレイ(FPGA)、特定用途向け集積回路(ASIC)、デジタル信号プロセッサー(DSP)、及び/又は同類のものであってもよい。 [0065] The processor 204 of the control unit 202 may be any suitable processing device configured to initiate and/or perform functions related to inspecting an environment, learning a skill, and/or performing a skill. For example, the processor 204 may be configured to perform a skill by generating a model for the skill based on sensor information or using the model to generate a trajectory for performing the skill, as described further herein. More particularly, the processor 204 may be configured to execute modules, functions, and/or processes. In some embodiments, the processor 204 may be a general-purpose processor, a field programmable gate array (FPGA), an application-specific integrated circuit (ASIC), a digital signal processor (DSP), and/or the like.
[0066] グラフィックプロセッサー205は、1つ又は複数の表示機能(例えば、表示デバイス242に関連する機能)を起動及び/又は実行するように構成された、任意の適宜の処理デバイスでもよい。いくつかの実施形態では、グラフィックプロセッサー205は、例えば、専用グラフィックスカード又は統合グラフィック処理ユニットなどの低電力グラフィック処理ユニットでもよい。 [0066] Graphics processor 205 may be any suitable processing device configured to drive and/or perform one or more display functions (e.g., functions associated with display device 242). In some embodiments, graphics processor 205 may be a low-power graphics processing unit, such as, for example, a dedicated graphics card or an integrated graphics processing unit.
[0067] システムバス206は、プロセッサー204、メモリー220、ストレージ230、及び/又は制御ユニット202の他のコンポーネントが互いに通信することを可能にする、任意の適宜のコンポーネントでもよい。システムバス206に接続された1つ又は複数のI/Oインターフェース208は、制御ユニット202の内部コンポーネント(例えば、プロセッサー204、メモリー220、ストレージ230)と、ユーザーインターフェース240、1つ又は複数の操作要素250、1つ又は複数の搬送要素260、及び1つ又は複数のセンサー270などの外部入出力デバイスとの間の通信を可能にする、任意の適宜のコンポーネントでもよい。 [0067] The system bus 206 may be any suitable component that enables the processor 204, memory 220, storage 230, and/or other components of the control unit 202 to communicate with each other. The one or more I/O interfaces 208 connected to the system bus 206 may be any suitable component that enables communication between the internal components of the control unit 202 (e.g., the processor 204, memory 220, storage 230) and external input/output devices, such as a user interface 240, one or more operating elements 250, one or more transport elements 260, and one or more sensors 270.
[0068] ユーザーインターフェース240は、入力を受け取り、他のデバイス及び/又はデバイスを操作するユーザー(例えば、ロボットデバイス200を操作するユーザー)に出力を送るように構成された、1つ又は複数のコンポーネントを含んでもよい。例えば、ユーザーインターフェース240は、表示デバイス242(例えば、ディスプレイ、タッチスクリーンなど)、オーディオデバイス244(例えば、マイクロホン、スピーカー)、及び任意選択的に、入力を受け取り、及び/又はユーザーに対して出力を生成するように構成された、1つ又は複数の追加の入出力デバイス(「I/Oデバイス」)246を含み得る。 [0068] User interface 240 may include one or more components configured to receive input and provide output to other devices and/or to a user operating a device (e.g., a user operating robotic device 200). For example, user interface 240 may include a display device 242 (e.g., a display, a touchscreen, etc.), an audio device 244 (e.g., a microphone, a speaker), and, optionally, one or more additional input/output devices ("I/O devices") 246 configured to receive input and/or generate output for a user.
[0069] 1つ又は複数の操作要素250は、例えば人間を含む、静止した物体及び/又は移動する物体を操作し、及び/又はそれとインタラクトすることができる、任意の適宜のコンポーネントでもよい。いくつかの実施形態では、1つ又は複数の操作要素250は、1つ若しくは複数の軸に沿った平行移動、及び/又は1つ若しくは複数の軸を中心とした回転を提供することができる関節により互いに結合された複数のセグメントを含んでもよい。1つ又は複数の操作要素250は、任意選択的に、環境内の物体と係合すること、及び/又は別の方法でインタラクトすることができるエンドエフェクターを含んでもよい。例えば、操作要素は、物体を拾い上げるため、及び/又は物体を搬送するために、環境内の物体を解放可能に係合する(例えば、把持する)ことが可能な把持機構を含んでもよい。エンドエフェクターの他の例には、例えば、1つ若しくは複数の真空係合機構、1つ若しくは複数の磁気係合機構、1つ若しくは複数の吸引機構、及び/又はこれらの組み合わせが含まれる。いくつかの実施形態では、1つ又は複数の操作要素250は、ロボットデバイスの1つ又は複数の寸法を縮小させるために、使用していないときは、ロボットデバイス200のハウジング内に格納可能であってもよい。いくつかの実施形態では、1つ又は複数の操作要素250は、環境と、及び/又は人間を含む、環境内の1つ又は複数物体とインタラクトするように構成された頭部又は他の人型コンポーネントを含んでもよい。いくつかの実施形態では、1つ又は複数の操作要素250は、搬送要素又は基部(例えば、1つ又は複数の搬送要素260)を含んでもよい。操作要素例の詳細図が、図4に示される。 [0069] The one or more manipulating elements 250 may be any suitable component capable of manipulating and/or interacting with stationary and/or moving objects, including, for example, a human. In some embodiments, the one or more manipulating elements 250 may include multiple segments coupled to one another by joints capable of providing translation along one or more axes and/or rotation about one or more axes. The one or more manipulating elements 250 may optionally include an end effector capable of engaging and/or otherwise interacting with objects in the environment. For example, the manipulating element may include a gripping mechanism capable of releasably engaging (e.g., grasping) an object in the environment for picking up and/or transporting the object. Other examples of end effectors include, for example, one or more vacuum engagement mechanisms, one or more magnetic engagement mechanisms, one or more suction mechanisms, and/or combinations thereof. In some embodiments, one or more manipulating elements 250 may be retractable within the housing of robotic device 200 when not in use to reduce one or more dimensions of the robotic device. In some embodiments, one or more manipulating elements 250 may include a head or other humanoid component configured to interact with the environment and/or one or more objects within the environment, including humans. In some embodiments, one or more manipulating elements 250 may include a carrier element or base (e.g., one or more carrier elements 260). A detailed view of an example manipulating element is shown in FIG. 4.
[0070] 1つ又は複数の搬送要素260は、例えば、車輪又はトラックなどの、移動用に構成された任意の適宜のコンポーネントでもよい。1つ又は複数の搬送要素260は、ロボットデバイス200が環境内を動き回ることを可能にするために、ロボットデバイス200の基部に設けられてもよい。例えば、ロボットデバイス200は、例えば病院などの建物中をロボットデバイス200がナビゲートすることを可能にする複数の車輪を含んでもよい。1つ又は複数の搬送要素260は、狭い空間及び/又は制限された空間(例えば、小さな通路や廊下、収納庫などの小さな部屋など)を通る移動を容易にするように設計及び/又は寸法決定することができる。いくつかの実施形態では、1つ又は複数の搬送要素260は、ある軸を中心に回転可能であってもよく、及び/又は互いに対して移動可能(例えば、トラックに沿って)であってもよい。いくつかの実施形態では、1つ又は複数の搬送要素260は、ロボットデバイスの1つ又は複数の寸法を縮小させるために、使用していないときは、ロボットデバイス200の基部内に格納可能であってもよい。いくつかの実施形態では、1つ又は複数の搬送要素260は、操作要素(例えば、1つ又は複数の操作要素250)の一部であってもよく、又はその一部を形成してもよい。 [0070] The one or more transport elements 260 may be any suitable component configured for mobility, such as, for example, wheels or tracks. The one or more transport elements 260 may be provided at the base of the robotic device 200 to enable the robotic device 200 to move about an environment. For example, the robotic device 200 may include multiple wheels that enable the robotic device 200 to navigate through a building, such as a hospital. The one or more transport elements 260 may be designed and/or dimensioned to facilitate movement through narrow and/or restricted spaces (e.g., small passageways or hallways, small rooms such as storage rooms, etc.). In some embodiments, the one or more transport elements 260 may be rotatable about an axis and/or movable relative to one another (e.g., along tracks). In some embodiments, the one or more transport elements 260 may be retractable within the base of the robotic device 200 when not in use to reduce one or more dimensions of the robotic device. In some embodiments, one or more of the conveying elements 260 may be part of or form part of an operating element (e.g., one or more of the operating elements 250).
[0071] 1つ又は複数のセンサー270は、環境、及び/又はロボットデバイス200周辺の環境内の物体に関する情報をロボットデバイス200が捕捉することを可能にする任意の適宜のコンポーネントでもよい。1つ又は複数のセンサー270には、例えば、撮像デバイス(例えば、RGB-D(red-green-blue-depth)カメラ又はウェブカメラなどのカメラ)、オーディオデバイス(例えば、マイクロホン)、光センサー(例えば、光検知測距(つまりライダー)センサー、色検出センサー)、固有受容センサー、位置センサー、触覚センサー、力又はトルクセンサー、温度センサー、圧力センサー、運動センサー、音検出器などが含まれ得る。例えば、1つ又は複数のセンサー270は、物体と、ロボットデバイス200の周辺の環境とに関する視覚情報を捕捉するための、カメラなどの少なくとも1つの撮像デバイスを含んでもよい。いくつかの実施形態では、1つ又は複数のセンサー270は、触覚センサー(例えば、力、振動、接触、及び他の非視覚情報をロボットデバイス200に伝達することができるセンサー)を含んでもよい。 [0071] The one or more sensors 270 may be any suitable component that enables the robotic device 200 to capture information about the environment and/or objects in the environment surrounding the robotic device 200. The one or more sensors 270 may include, for example, an imaging device (e.g., a camera such as an RGB-D (red-green-blue-depth) camera or a webcam), an audio device (e.g., a microphone), an optical sensor (e.g., a light detection and ranging (i.e., lidar) sensor, a color detection sensor), a proprioceptive sensor, a position sensor, a tactile sensor, a force or torque sensor, a temperature sensor, a pressure sensor, a motion sensor, a sound detector, etc. For example, the one or more sensors 270 may include at least one imaging device, such as a camera, for capturing visual information about objects and the environment surrounding the robotic device 200. In some embodiments, the one or more sensors 270 may include a tactile sensor (e.g., a sensor that can communicate force, vibration, touch, and other non-visual information to the robotic device 200).
[0072] いくつかの実施形態では、ロボットデバイス200は、人型の特徴(例えば、頭部、胴部、腕、脚、及び/又は基部)を有してもよい。例えば、ロボットデバイス200は、目、鼻、口、及び他の人型の特徴を備えた顔を含んでもよい。これらの人型の特徴は、1つ若しくは複数の操作要素の一部を形成することができ、及び/又は1つ若しくは複数の操作要素の一部であってもよい。模式的に示されないが、ロボットデバイス200は、アクチュエーター、モーター、カプラー、コネクター、電源(例えば、内蔵バッテリー)、及び/又はロボットデバイス200の異なる複数の部分をつなぐ、作動させる、及び/又は駆動する他のコンポーネントも含み得る。 [0072] In some embodiments, the robotic device 200 may have humanoid features (e.g., a head, torso, arms, legs, and/or a base). For example, the robotic device 200 may include a face with eyes, a nose, a mouth, and other humanoid features. These humanoid features may form part of and/or be part of one or more operational elements. Although not schematically shown, the robotic device 200 may also include actuators, motors, couplers, connectors, power sources (e.g., an internal battery), and/or other components that connect, actuate, and/or drive different portions of the robotic device 200.
[0073] 図3は、いくつかの実施形態による制御ユニット302を模式的に示すブロック図である。制御ユニット302は、制御ユニット202と類似したコンポーネントを含んでもよく、制御ユニット202と構造的及び/又は機能的に類似してもよい。例えば、制御ユニット302は、プロセッサー204、メモリー220、1つ又は複数のI/Oインターフェース208、システムバス206、及びストレージ230とそれぞれ構造的及び/又は機能的に類似し得るプロセッサー304、グラフィックプロセッサー305、メモリー320、1つ又は複数のI/Oインターフェース308、システムバス306、及びストレージ330を含む。 [0073] FIG. 3 is a block diagram that schematically illustrates a control unit 302 according to some embodiments. The control unit 302 may include similar components as the control unit 202 and may be structurally and/or functionally similar to the control unit 202. For example, the control unit 302 includes a processor 304, a graphics processor 305, memory 320, one or more I/O interfaces 308, a system bus 306, and storage 330, which may be structurally and/or functionally similar to the processor 204, memory 220, one or more I/O interfaces 208, a system bus 206, and storage 230, respectively.
[0074] メモリー320は、アクティブセンシング322、マーカー識別324、学習及びモデル生成326、軌道の生成及び実行328、並びに成功モニタリング329として示される、モジュール、プロセス、及び/又は機能をプロセッサー304に実行させることができる命令を保存する。アクティブセンシング322、マーカー識別324、学習及びモデル生成326、軌道の生成及び実行328、並びに成功モニタリング329は、ハードウェアコンポーネント(例えば、センサー、操作要素、I/Oデバイス、プロセッサーなど)に結び付けられた1つ又は複数のプログラム及び/又はアプリケーションとして実装され得る。アクティブセンシング322、マーカー識別324、学習及びモデル生成326、軌道の生成及び実行328、並びに成功モニタリング329は、単一のロボットデバイス、又は複数のロボットデバイスによって実装され得る。例えば、ロボットデバイスは、アクティブセンシング322、マーカー識別324、並びに軌道の生成及び実行328を実装するように構成されてもよい。別の例として、ロボットデバイスは、アクティブセンシング322、マーカー識別324、任意選択的に学習及びモデル生成326、並びに軌道の生成及び実行328を実装するように構成されてもよい。別の例として、ロボットデバイスは、アクティブセンシング322、マーカー識別324、軌道の生成及び実行328、並びに任意選択的に成功モニタリング329を実装するように構成されてもよい。図示されないが、メモリー320は、オペレーティングシステム及び一般的なロボット動作(例えば、電源管理、メモリー割り当てなど)に関連するプログラム及び/又はアプリケーションも保存し得る。 [0074] Memory 320 stores instructions that can cause processor 304 to execute modules, processes, and/or functions shown as active sensing 322, marker identification 324, learning and model generation 326, trajectory generation and execution 328, and success monitoring 329. Active sensing 322, marker identification 324, learning and model generation 326, trajectory generation and execution 328, and success monitoring 329 may be implemented as one or more programs and/or applications coupled to hardware components (e.g., sensors, operating elements, I/O devices, processors, etc.). Active sensing 322, marker identification 324, learning and model generation 326, trajectory generation and execution 328, and success monitoring 329 may be implemented by a single robotic device or by multiple robotic devices. For example, a robotic device may be configured to implement active sensing 322, marker identification 324, and trajectory generation and execution 328. As another example, the robotic device may be configured to implement active sensing 322, marker identification 324, optionally learning and model generation 326, and trajectory generation and execution 328. As another example, the robotic device may be configured to implement active sensing 322, marker identification 324, trajectory generation and execution 328, and optionally success monitoring 329. Although not shown, memory 320 may also store programs and/or applications related to an operating system and general robotic operation (e.g., power management, memory allocation, etc.).
[0075] ストレージ330は、スキルの学習及び/又は実行に関連する情報を保存する。ストレージ330は、例えば、状態情報331、1つ又は複数のモデル334、物体情報340、及び機械学習ライブラリー342を保存する。状態情報331は、ロボットデバイス(例えば、ロボットデバイス200)及び/又はロボットデバイスが動作している環境(例えば建物(例えば病院など))の状態に関する情報を含み得る。いくつかの実施形態では、状態情報331は、例えば、部屋、階、閉じた空間などの環境内のロボットデバイスの場所を示してもよい。例えば、状態情報331は、環境のマップ332を含んでもよく、そのマップ332内のロボットデバイスの場所を示すことができる。状態情報331は、環境内(例えば、マップ332内)の1つ又は複数の物体の1つ又は複数の場所(或いは物体を表す、及び/又は物体に関連付けられたマーカー)も含み得る。したがって、状態情報331は、1つ又は複数の物体に対するロボットデバイスの場所を識別することができる。物体には、空間又は開口部を規定する物体(例えば、戸口を規定する面又は壁)を含む、環境内に位置する、あらゆるタイプの物理的物体が含まれ得る。物体は、静止していてもよいし、或いは可動であってもよい。例えば病院などの環境内の物体の例には、設備、備品、機器、器具、家具、及び/又は人間(例えば、看護師、医師、患者など)が含まれる。 [0075] Storage 330 stores information related to the learning and/or execution of skills. Storage 330 stores, for example, state information 331, one or more models 334, object information 340, and machine learning library 342. State information 331 may include information about the state of the robotic device (e.g., robotic device 200) and/or the environment in which the robotic device is operating (e.g., a building, such as a hospital). In some embodiments, state information 331 may indicate the location of the robotic device within the environment, such as a room, floor, or enclosed space. For example, state information 331 may include a map 332 of the environment and may indicate the location of the robotic device within map 332. State information 331 may also include one or more locations of one or more objects (or markers representing and/or associated with the objects) within the environment (e.g., within map 332). Thus, state information 331 may identify the location of the robotic device relative to one or more objects. Objects may include any type of physical object located in the environment, including objects that define a space or opening (e.g., a surface or wall that defines a doorway). Objects may be stationary or movable. Examples of objects in an environment such as a hospital include equipment, fixtures, machinery, tools, furniture, and/or people (e.g., nurses, doctors, patients, etc.).
[0076] いくつかの実施形態では、状態情報331は、図19に示されるような環境の表現又はマップを含み得る。環境のマップは、例えば、ナビゲーション層、静的意味層、社会的層、及び動的層を含み得る。例えば、実演、ユーザー入力、感知したセンサー情報などからロボットデバイスによって学習された情報は、マップの異なる複数の層に送ることができ、このロボットデバイス(及び/又は他のロボットデバイス)による後の参照のために整理することができる。例えば、ロボットデバイスは、本明細書でさらに記載されるように、環境内の異なる複数の物体(例えば、ドア)に関して学習された情報に依存して、異なる挙動(例えば、戸口を通過する前に、閉じた戸口のドアが開けられるのを待つこと、閉じた戸口を通過する前に、ドアを開けるための助けを求めること)間でアービトレーションを行うやり方を決定することができる。 [0076] In some embodiments, the state information 331 may include a representation or map of the environment, such as that shown in FIG. 19. The map of the environment may include, for example, a navigational layer, a static semantic layer, a social layer, and a dynamic layer. Information learned by the robotic device, for example, from demonstrations, user input, sensed sensor information, etc., may be fed into different layers of the map and organized for later reference by the robotic device (and/or other robotic devices). For example, the robotic device may determine how to arbitrate between different behaviors (e.g., waiting for the door of a closed doorway to be opened before passing through the doorway, or requesting help to open the door before passing through the closed doorway) depending on information learned about different objects (e.g., doors) in the environment, as described further herein.
[0077] 物体情報340は、環境内の1つ又は複数の物理的物体に関連する情報を含み得る。例えば、物体情報は、例えば、場所、色、形状、及び表面特徴などの、物体の異なる複数の特徴を識別又は定量化する情報を含み得る。物体情報は、物理的物体に関連付けられたコード、記号、及び他のマーカー(例えば、クイックレスポンス、つまり「QR」コード、バーコード、タグなど)も識別することができる。いくつかの実施形態では、物体情報は、環境内の物体を特徴付ける情報(例えば、戸口又は通路が閉じられている、ドアハンドルがドアハンドルの一種であるなど)を含み得る。物体情報により、制御ユニット302が、環境内で1つ又は複数の物理的物体を識別することを可能にすることができる。 [0077] Object information 340 may include information related to one or more physical objects in the environment. For example, object information may include information that identifies or quantifies different characteristics of an object, such as, for example, location, color, shape, and surface features. Object information may also identify codes, symbols, and other markers associated with a physical object (e.g., quick response or "QR" codes, bar codes, tags, etc.). In some embodiments, object information may include information that characterizes an object in the environment (e.g., a doorway or passageway is closed, a door handle is a type of door handle, etc.). The object information may enable control unit 302 to identify one or more physical objects in the environment.
[0078] 状態情報331及び/又は物体情報340は、本明細書において使用及び記載されるように、環境的制約の例でもよい。環境的制約は、様々な寸法で提示され得る、又は見られ得る環境に関する情報を含み得る。例えば、環境的制約は、場所、時間、社会的インタラクション、具体的なコンテキストなどによって異なり得る。ロボットデバイスは、ユーザー入力、スキルの実演、環境とのインタラクション、自己探索、スキルの実行などから環境的制約を学習することができる。 [0078] State information 331 and/or object information 340 may be examples of environmental constraints, as used and described herein. Environmental constraints may include information about an environment that may be presented or viewed in various dimensions. For example, environmental constraints may vary by location, time, social interaction, specific context, etc. A robotic device may learn environmental constraints from user input, skill demonstrations, interaction with the environment, self-exploration, skill execution, etc.
[0079] 機械学習ライブラリー342は、機械学習及び/又は異なる複数のスキルのモデル生成のための異なる複数のアルゴリズムに関連する複数のモジュール、プロセス、及び/又は機能を含んでもよい。いくつかの実施形態では、機械学習ライブラリーは、隠れマルコフモデル(つまり「HMM」)などの方法を含み得る。Pythonの既存の機械学習ライブラリーの一例は、scikit-learnである。ストレージ330は、例えば、ロボットシミュレーション、モーションプランニング及び制御、運動学教示及び知覚などに関連する追加のソフトウェアライブラリーも含み得る。 [0079] Machine learning library 342 may include modules, processes, and/or functions related to different algorithms for machine learning and/or model generation for different skills. In some embodiments, the machine learning library may include methods such as hidden Markov models (i.e., "HMMs"). An example of an existing machine learning library for Python is scikit-learn. Storage 330 may also include additional software libraries related to, for example, robot simulation, motion planning and control, kinematics teaching and perception, etc.
[0080] 1つ又は複数のスキルモデル334は、異なる複数のアクションを行うために生成されたモデルであり、ロボットデバイスによって学習されたスキルを表す。いくつかの実施形態では、各モデル334は、ある環境内の異なる複数の物理的物体に結び付けられたマーカーのセットに関連付けられる。マーカー情報335は、どのマーカーが、ある特定のモデル334に関連付けられているかを示すことができる。各モデル334は、運動感覚教示及び/又はスキルの他の実演中に、例えばロボットデバイスの1つ又は複数のセンサーによって収集された感覚情報336にも関連付けることができる。感覚情報336には、任意選択的に、実演中にロボットデバイスがアクションを行う際のロボットデバイスの操作要素に関連付けられた操作要素情報337が含まれ得る。操作要素情報337には、例えば、関節の位置及び構成、エンドエフェクターの位置及び構成、基部若しくは搬送要素の位置及び構成、及び/又は関節、エンドエフェクター、搬送要素などに作用する力及びトルクが含まれ得る。操作要素情報337は、スキルの実演及び/又は実行中の特定の時点(例えば、キーフレーム)で、或いはスキルの実演及び/又は実行の間中ずっと記録されてもよい。感覚情報336には、スキルが実演及び/又は実行される環境に関連付けられた情報(例えば、環境内のマーカーの場所)も含まれ得る。いくつかの実施形態では、各モデル334は、成功基準339に関連付けられてもよい。成功基準339を用いて、スキルの実行をモニタリングすることができる。いくつかの実施形態では、成功基準339は、1つ又は複数のセンサー(例えば、カメラ、力/トルクセンサーなど)を用いて感知された視覚及び触覚データに関連付けられた情報を含み得る。成功基準339は、例えば、物体の移動を視覚的に検出すること、ロボットデバイスのコンポーネントに作用する力(例えば、物体の重さ)を検知すること、ロボットデバイスのコンポーネントと物体との係合(例えば、面に作用する圧力又は力の変化)を検知することなどに結び付けられてもよい。操作スキルのロボット学習において触覚データを使用する例は、本明細書に援用される、http://ieeexplore.ieee.org/document/7463165/から入手できる、2016 IEEE Haptics Symposium (HAPTICS) (Philadelphia, PA, 2016, pp.119-125)で公表されたChuらによって執筆された「Learning Haptic Affordances from Demonstration and Human-Guided Exploration」というタイトルの論文に記載されている。操作スキルのロボット学習に視覚データを使用する例は、本明細書に援用される、https://doi.org/10.1007/s10514-015-9448-x(「Akgun論文」)から入手できる、Autonomous Robots (Volume 40, Issue 2, February 2016, pp.211-227)で公表された、Akgunらによって執筆された「Simultaneously Learning Actions and Goals from Demonstration」というタイトルの論文に記載されている。 [0080] One or more skill models 334 are models generated for performing different actions and represent skills learned by the robotic device. In some embodiments, each model 334 is associated with a set of markers attached to different physical objects in an environment. Marker information 335 may indicate which markers are associated with a particular model 334. Each model 334 may also be associated with sensory information 336 collected, for example, by one or more sensors of the robotic device, during kinesthetic teaching and/or other demonstration of a skill. Sensory information 336 may optionally include manipulative element information 337 associated with manipulative elements of the robotic device as the robotic device performs actions during the demonstration. Manipulative element information 337 may include, for example, the position and configuration of joints, the position and configuration of end effectors, the position and configuration of bases or transport elements, and/or the forces and torques acting on joints, end effectors, transport elements, etc. Manipulative element information 337 may be recorded at specific points (e.g., key frames) during the performance and/or execution of a skill, or throughout the performance and/or execution of a skill. Sensory information 336 may also include information associated with the environment in which the skill is being performed and/or executed (e.g., the location of markers within the environment). In some embodiments, each model 334 may be associated with success criteria 339. The success criteria 339 can be used to monitor the performance of a skill. In some embodiments, the success criteria 339 may include information associated with visual and tactile data sensed using one or more sensors (e.g., cameras, force/torque sensors, etc.). The success criteria 339 may be tied, for example, to visually detecting the movement of an object, detecting a force acting on a component of the robotic device (e.g., the weight of the object), detecting an engagement between a component of the robotic device and an object (e.g., a change in pressure or force acting on a surface), etc. An example of the use of haptic data in robotic learning of manipulation skills is described in a paper entitled "Learning Haptic Affordances from Demonstration and Human-Guided Exploration" by Chu et al., published at the 2016 IEEE Haptics Symposium (HAPTICS) (Philadelphia, PA, 2016, pp. 119-125), which is incorporated herein by reference and available at http://ieeexplore.ieee.org/document/7463165/. An example of using visual data to teach robots manipulation skills is described in the paper entitled "Simultaneously Learning Actions and Goals from Demonstration" by Akgun et al., published in Autonomous Robots (Volume 40, Issue 2, February 2016, pp. 211-227), available at https://doi.org/10.1007/s10514-015-9448-x (the "Akgun paper"), which is incorporated herein by reference.
[0081] 任意選択的に、感覚情報336には、搬送要素情報338が含まれてもよい。搬送要素情報338は、ロボットデバイスがスキルの実演を受ける際のロボットデバイスの搬送要素(例えば、1つ又は複数の搬送要素260)の移動(例えば、戸口を通るナビゲーション、物体の搬送など)に関連付けられてもよい。搬送要素情報338は、スキルの実演及び/又は実行中の特定の時点(スキルに関連付けられたキーフレームなど)で、或いはスキルの実演及び/又は実行の間中、記録されてもよい。 [0081] Optionally, sensory information 336 may include transport element information 338. Transport element information 338 may be associated with the movement (e.g., navigation through a doorway, transporting an object, etc.) of a transport element (e.g., one or more transport elements 260) of the robotic device as the robotic device undergoes a skill demonstration. Transport element information 338 may be recorded at specific points during the performance and/or execution of the skill (e.g., keyframes associated with the skill) or throughout the performance and/or execution of the skill.
[0082] いくつかの実施形態では、環境的制約(例えば、状態情報331、物体情報340など)及び/又はスキル(例えば、1つ又は複数のモデル334)の初期セットが、例えば、遠隔の管理者又は監督者によって、ロボットデバイスに提供されてもよい。ロボットデバイスは、環境又は環境内の人間(例えば、患者、看護師、医師など)とのロボットデバイス自体のインタラクション、実演などに基づいて、及び/又は追加のユーザー入力によって、環境的制約及び/又はスキルの知識を適応させ、及び/又は増大させることができる。代替的又は追加的に、ロボットの監督者は、そのロボットデバイス、又は他の1つ若しくは複数のロボットデバイス(例えば、類似した、若しくは同じ環境(例えば、病院)内の他の1つ若しくは複数のロボットデバイス)によって収集された、及び/又は外部関係者(例えば、供給業者、管理者、メーカーなど)によってロボットの監督者に提供された新しい情報に基づいて、環境的制約及び/又はスキルに関するロボットデバイスの知識を更新することができる。このような更新は、環境又はスキルに関する新しい情報が、ロボットデバイス及び/又はロボットの監督者に提供される際に、周期的及び/又は連続的に提供されてもよい。 [0082] In some embodiments, an initial set of environmental constraints (e.g., state information 331, object information 340, etc.) and/or skills (e.g., one or more models 334) may be provided to the robotic device, for example, by a remote manager or supervisor. The robotic device can adapt and/or augment its knowledge of environmental constraints and/or skills based on its own interactions with the environment or humans in the environment (e.g., patients, nurses, doctors, etc.), demonstrations, etc., and/or by additional user input. Alternatively or additionally, the robot supervisor can update the robotic device's knowledge of environmental constraints and/or skills based on new information collected by the robotic device or one or more other robotic devices (e.g., one or more other robotic devices in a similar or same environment (e.g., a hospital)) and/or provided to the robot supervisor by an external party (e.g., a supplier, manager, manufacturer, etc.). Such updates may be provided periodically and/or continuously as new information about the environment or skills is provided to the robotic device and/or robot supervisor.
[0083] 図4は、いくつかの実施形態による操作要素350を模式的に示す。操作要素350は、例えば、ロボットデバイス102及び/又は200などのロボットデバイスの一部を形成してもよい。操作要素350は、関節354によって共に結合された2つ以上のセグメント352を含むアームとして実装されてもよい。関節354により、1つ又は複数の自由度が許容され得る。例えば、関節354は、1つ若しくは複数の軸に沿った平行移動、及び/又は1つ若しくは複数の軸を中心とした回転を提供することができる。ある実施形態では、操作要素350は、関節354によって提供される7つの自由度を有し得る。図4では、4つのセグメント352及び4つの関節354が示されているが、操作要素が異なる数のセグメント及び/又は関節を含み得ることを当業者は理解するだろう。 [0083] FIG. 4 schematically illustrates a manipulating element 350 according to some embodiments. The manipulating element 350 may form part of a robotic device, such as, for example, robotic device 102 and/or 200. The manipulating element 350 may be implemented as an arm including two or more segments 352 joined together by joints 354. The joints 354 may allow one or more degrees of freedom. For example, the joints 354 may provide translation along one or more axes and/or rotation about one or more axes. In some embodiments, the manipulating element 350 may have seven degrees of freedom provided by the joints 354. While FIG. 4 illustrates four segments 352 and four joints 354, one skilled in the art will understand that the manipulating element may include a different number of segments and/or joints.
[0084] 操作要素350は、環境内の物体とインタラクトするために使用することができるエンドエフェクター356を含む。例えば、エンドエフェクター356を使用して、異なる複数の物体と係合することができ、及び/又は異なる複数の物体を操作することができる。代替的又は追加的に、エンドエフェクター356を使用して、例えば、人間を含む、移動可能な物体又は動的物体とインタラクトすることができる。いくつかの実施形態では、エンドエフェクター356は、1つ又は複数の物体を解放可能に係合又は把持することができるグリッパーでもよい。例えば、グリッパーとして実装されたエンドエフェクター356は、物体を拾い上げて、第1の場所(例えば、収納庫)から第2の場所(例えば、オフィス、部屋など)へと移動させることができる。 [0084] Manipulation element 350 includes end effector 356 that can be used to interact with objects in an environment. For example, end effector 356 can be used to engage with and/or manipulate different objects. Alternatively or additionally, end effector 356 can be used to interact with movable or dynamic objects, including, for example, a human. In some embodiments, end effector 356 can be a gripper that can releasably engage or grasp one or more objects. For example, end effector 356 implemented as a gripper can pick up and move an object from a first location (e.g., a storage unit) to a second location (e.g., an office, a room, etc.).
[0085] 複数のセンサー353、355、357、及び358は、操作要素350の異なる複数のコンポーネント(例えば、セグメント352、関節354、及び/又はエンドエフェクター356)上に配置されてもよい。センサー353、355、357、及び358は、環境情報及び/又は操作要素情報を含む感覚情報を測定するように構成されてもよい。センサーの例には、位置エンコーダー、トルク及び/又は力センサー、接触及び/又は触覚センサー、カメラなどの撮像デバイス、温度センサー、圧力センサー、光センサーなどが含まれる。いくつかの実施形態では、セグメント352上に配置されるセンサー353は、環境に関する視覚情報を捕捉するように構成されたカメラでもよい。いくつかの実施形態では、セグメント352上に配置されるセンサー353は、セグメント352の加速度の測定、及び/又はセグメント352の移動速度及び/又は位置の計算を可能にするように構成された加速度計でもよい。いくつかの実施形態では、関節354上に配置されるセンサー355は、関節354の位置及び/又は構成を測定するように構成された位置エンコーダーでもよい。いくつかの実施形態では、関節354上に配置されるセンサー355は、関節354にかかる力又はトルクを測定するように構成された力又はトルクセンサーでもよい。いくつかの実施形態では、エンドエフェクター356上に配置されるセンサー358は、位置エンコーダー及び/又は力若しくはトルクセンサーでもよい。いくつかの実施形態では、エンドエフェクター356上に配置されるセンサー357は、エンドエフェクター356と、環境内の物体との係合を測定するように構成された接触又は触覚センサーでもよい。代替的又は追加的に、センサー353、355、357、及び358の1つ又は複数が、環境内の1つ又は複数の物体及び/又はマーカーに関する情報を記録するように構成されてもよい。例えば、エンドエフェクター356上に配置されるセンサー358は、環境内の物体の場所、及び/又はエンドエフェクター356に対する物体の位置を追跡するように構成されてもよい。いくつかの実施形態では、センサー353、355、357、及び358の1つ又は複数が、環境内で人間などの物体が移動したか否かも追跡することができる。センサー353、355、357、及び358は、ロボットデバイスに位置する計算デバイス(例えば、搭載制御ユニット(例えば、制御ユニット202及び/又は302など))に対して、これらのセンサーが記録した感覚情報を送ることができ、或いは、センサー353、355、357、及び358は、遠隔の計算デバイス(例えばサーバー(例えばサーバー120など))に感覚情報を送ることができる。 [0085] Sensors 353, 355, 357, and 358 may be disposed on different components of operational element 350 (e.g., segment 352, joint 354, and/or end effector 356). Sensors 353, 355, 357, and 358 may be configured to measure sensory information, including environmental information and/or operational element information. Examples of sensors include position encoders, torque and/or force sensors, contact and/or tactile sensors, imaging devices such as cameras, temperature sensors, pressure sensors, light sensors, etc. In some embodiments, sensor 353 disposed on segment 352 may be a camera configured to capture visual information about the environment. In some embodiments, sensor 353 disposed on segment 352 may be an accelerometer configured to measure the acceleration of segment 352 and/or enable calculation of the speed and/or position of movement of segment 352. In some embodiments, sensor 355 disposed on joint 354 may be a position encoder configured to measure the position and/or configuration of joint 354. In some embodiments, sensor 355 disposed on joint 354 may be a force or torque sensor configured to measure a force or torque applied to joint 354. In some embodiments, sensor 358 disposed on end effector 356 may be a position encoder and/or a force or torque sensor. In some embodiments, sensor 357 disposed on end effector 356 may be a contact or tactile sensor configured to measure engagement of end effector 356 with an object in the environment. Alternatively or additionally, one or more of sensors 353, 355, 357, and 358 may be configured to record information about one or more objects and/or markers in the environment. For example, sensor 358 disposed on end effector 356 may be configured to track the location of an object in the environment and/or the position of the object relative to end effector 356. In some embodiments, one or more of sensors 353, 355, 357, and 358 can also track whether an object, such as a human, moves within the environment. Sensors 353, 355, 357, and 358 can send the sensory information they record to a computing device located on the robotic device (e.g., an on-board control unit (e.g., control units 202 and/or 302)), or sensors 353, 355, 357, and 358 can send the sensory information to a remote computing device (e.g., a server (e.g., server 120)).
[0086] 操作要素350は、あるロボットデバイス(本明細書に記載されるロボットデバイスのいずれかのロボットデバイスなど)に対して操作要素350が取り外し可能に結合されることを可能にする結合要素359を任意選択的に含んでもよい。いくつかの実施形態では、操作要素350は、ロボットデバイスの定位置に結合されてもよく、及び/又はロボットデバイスの複数の場所(例えば、図5に示されるように、ロボットデバイスの胴部の右側又は左側)に結合可能であってもよい。結合要素359には、例えば、機械機構(例えば、ファスナー、ラッチ、マウント)、磁気機構、摩擦嵌め合いなどの、操作要素350をロボットデバイスに結合させることができる任意のタイプの機構が含まれ得る。 [0086] Manipulation element 350 may optionally include coupling elements 359 that allow manipulating element 350 to be removably coupled to a robotic device (such as any of the robotic devices described herein). In some embodiments, manipulating element 350 may be coupled to a robotic device in a fixed position and/or may be coupleable to multiple locations on the robotic device (e.g., to the right or left side of the robotic device's torso as shown in FIG. 5). Coupling elements 359 may include any type of mechanism that allows manipulating element 350 to be coupled to a robotic device, such as, for example, a mechanical mechanism (e.g., a fastener, a latch, a mount), a magnetic mechanism, a friction fit, etc.
[0087] 図20は、いくつかの実施形態による、ロボットシステムの制御ユニット1702を模式的に示すブロック図である。制御ユニット1702は、本明細書に記載される他の制御ユニット(例えば、制御ユニット202及び/又は302)と類似したコンポーネントを含み得る。例えば、制御ユニット1702は、制御ユニット202及び/又は302のプロセッサー、メモリー、1つ又は複数のI/Oインターフェース、システムバス、及びストレージとそれぞれ構造的及び/又は機能的に類似し得るプロセッサー1704、グラフィックプロセッサー1705、メモリー1720、1つ又は複数のI/Oインターフェース1708、システムバス1706、及びストレージ1730を含む。制御ユニット1702は、ロボットデバイス上に、及び/又は1つ若しくは複数のロボットデバイスに接続された遠隔サーバーに位置してもよい。 20 is a block diagram that schematically illustrates a control unit 1702 of a robotic system, according to some embodiments. The control unit 1702 may include components similar to those of other control units (e.g., control units 202 and/or 302) described herein. For example, the control unit 1702 includes a processor 1704, a graphics processor 1705, memory 1720, one or more I/O interfaces 1708, a system bus 1706, and storage 1730, which may be structurally and/or functionally similar to the processor, memory, one or more I/O interfaces, a system bus, and storage of the control units 202 and/or 302, respectively. The control unit 1702 may be located on the robotic device and/or on a remote server connected to one or more robotic devices.
[0088] メモリー1720は、アクティブセンシング1722と、スキル及び挙動の学習1724と、アクションの実行1726とを含み、任意選択的に、リソースアービトレーション1728と、データ追跡及び分析1758とを含む、モジュール、プロセス、及び/又は機能をプロセッサー1704に実行させることができる命令を保存した。アクティブセンシング1722、スキル及び挙動の学習1724、アクションの実行1726、リソースアービトレーション1728、並びにデータ追跡及び分析1758は、ハードウェアコンポーネント(例えば、センサー、操作要素、I/Oデバイス、プロセッサーなど)に結び付けられた1つ又は複数のプログラム及び/又はアプリケーションとして実装され得る。アクティブセンシング1722、スキル及び挙動の学習1724、アクションの実行1726、リソースアービトレーション1728、並びにデータ追跡及び分析1758は、単一のロボットデバイス、又は複数のロボットデバイスによって実装され得る。ある実施形態では、アクティブセンシング1722は、本明細書に記載されるように、環境のアクティブセンシング又はスキャニングを含み得る。他の実施形態では、アクティブセンシング1722は、ある環境のアクティブスキャニング、及び/又はその環境、その環境内の1つ若しくは複数の物体(例えば、環境内の人間を含む)、及び/又はロボットデバイス若しくはシステムに関連する1つ若しくは複数の状態に関連する情報の検知若しくは感知を含み得る。 [0088] Memory 1720 stored instructions that can cause processor 1704 to execute modules, processes, and/or functions, including active sensing 1722, skill and behavior learning 1724, action execution 1726, and, optionally, resource arbitration 1728, and data tracking and analysis 1758. Active sensing 1722, skill and behavior learning 1724, action execution 1726, resource arbitration 1728, and data tracking and analysis 1758 may be implemented as one or more programs and/or applications coupled to hardware components (e.g., sensors, operating elements, I/O devices, processors, etc.). Active sensing 1722, skill and behavior learning 1724, action execution 1726, resource arbitration 1728, and data tracking and analysis 1758 may be implemented by a single robotic device or by multiple robotic devices. In some embodiments, active sensing 1722 may include active sensing or scanning of an environment, as described herein. In other embodiments, active sensing 1722 may include active scanning of an environment and/or detecting or sensing information related to the environment, one or more objects within the environment (including, for example, a human within the environment), and/or one or more conditions associated with the robotic device or system.
[0089] ストレージ330と同様に、ストレージ1730は、ある環境及び/又はその環境内の物体、並びにスキルの学習及び/又は実行(例えば、タスク及び/又は社会的挙動)に関連する情報を保存する。ストレージ1730は、例えば、状態情報1732、1つ又は複数のスキルモデル1734、物体情報1740、機械学習ライブラリー1742、及び/又は1つ若しくは複数の環境的制約1754を保存する。任意選択的に、ストレージ1730は、追跡情報1756及び/又は1つ若しくは複数のアービトレーションアルゴリズム1758も保存し得る。 [0089] Similar to storage 330, storage 1730 stores information related to an environment and/or objects within the environment, as well as skill learning and/or performance (e.g., tasks and/or social behaviors). Storage 1730 stores, for example, state information 1732, one or more skill models 1734, object information 1740, machine learning libraries 1742, and/or one or more environmental constraints 1754. Optionally, storage 1730 may also store tracking information 1756 and/or one or more arbitration algorithms 1758.
[0090] 状態情報1732は、ロボットデバイス(本明細書に記載されるロボットデバイスのいずれかのロボットデバイスなど)及び/又はロボットデバイスが動作している環境の状態に関する情報を含む。いくつかの実施形態では、状態情報1732は、環境内の物体に関連する、追加の静的及び/又は動的情報と共に、環境のマップを含んでもよい。例えば、状態情報1732は、ある建物のナビゲーションマップを、その建物内の物体(例えば、備品、設備など)に関する静的及び/又は動的情報、並びに、その建物内の人間及び/又は社会的状況に関連する社会的コンテキスト情報と共に含み得る。図19は、ある建物の例示的なマップ又は表現1600の模式図を提供する。表現1600は、ナビゲーション層1610、静的意味層1620、社会的層1630、及び動的層1640を含む。ナビゲーション層1610は、1つ又は複数の壁1614、1つ又は複数の階段1616、及び建物に組み込まれた他の要素(例えば、通路、開口部、境界線)を有する、1つ又は複数の階1612の数を識別することができる、建物の一般配置図又はマップを提供する。静的意味層1620は、1つ又は複数の部屋1622、1つ又は複数の物体1624、1つ又は複数のドア1626などの、建物内の物体及び/又は空間を識別する。静的意味層1620は、どの1つ又は複数の部屋1622又は他の空間に、ロボットデバイスがアクセスできるか、或いはアクセスできないかを識別することができる。いくつかの実施形態では、静的意味層1620は、ある建物内に位置する物体の3次元マップを提供することができる。社会的層1630は、社会的コンテキスト情報1632を提供する。社会的コンテキスト情報1632は、建物内の人間に関連する情報(1つ又は複数のロボットデバイスと、1人又は複数の人間との過去のインタラクションなど)を含む。社会的コンテキスト情報1632を用いて、1つ又は複数のロボットデバイスと、1人又は複数の人間とのインタラクションを追跡することができ、これらのインタラクションを用いて、あるロボットデバイスと、ある人間との1つ又は複数のインタラクションに関与するスキルの既存のモデルの生成及び/又は適応を行うことができる。例えば、社会的コンテキスト情報1632は、ある人間が、通常、ある特定の場所にいることを示すことができ、それによって、その情報の知識を持つロボットデバイスは、その人間の場所の近くにロボットデバイスが移動することを必要とするスキルの実行を適応させることができる。動的層1640は、時間と共に移動及び/又は変化し得る、建物内の1つ又は複数の物体及び他の要素に関する情報を提供する。例えば、動的層1640は、1つ又は複数の物体1642に関連する、1つ若しくは複数の移動1644及び/又は1つ若しくは複数の変化1646を追跡することができる。ある実施形態では、動的層1640は、ある物体1642の有効期限をモニタリングし、その物体1642の有効期限がいつ切れたかを識別することができる。 [0090] State information 1732 includes information about the state of a robotic device (such as any of the robotic devices described herein) and/or the environment in which the robotic device is operating. In some embodiments, state information 1732 may include a map of the environment, along with additional static and/or dynamic information related to objects in the environment. For example, state information 1732 may include a navigation map of a building, along with static and/or dynamic information about objects within the building (e.g., fixtures, equipment, etc.), and social context information related to people and/or social situations within the building. FIG. 19 provides a schematic diagram of an example map or representation 1600 of a building. Representation 1600 includes a navigation layer 1610, a static semantic layer 1620, a social layer 1630, and a dynamic layer 1640. The navigation layer 1610 provides a general layout or map of the building, which may identify one or more floors 1612, with one or more walls 1614, one or more staircases 1616, and other elements (e.g., hallways, openings, boundaries) incorporated into the building. The static semantic layer 1620 identifies objects and/or spaces within the building, such as one or more rooms 1622, one or more objects 1624, and one or more doors 1626. The static semantic layer 1620 may identify which one or more rooms 1622 or other spaces are or are not accessible to a robotic device. In some embodiments, the static semantic layer 1620 may provide a three-dimensional map of objects located within a building. The social layer 1630 provides social context information 1632. The social context information 1632 includes information related to people within the building, such as past interactions between one or more robotic devices and one or more people. Social context information 1632 can be used to track interactions between one or more robotic devices and one or more humans, and these interactions can be used to generate and/or adapt existing models of skills involved in one or more interactions between a robotic device and a human. For example, social context information 1632 can indicate that a human is typically at a particular location, thereby enabling a robotic device with knowledge of that information to adapt the execution of a skill that requires the robotic device to move closer to the human's location. Dynamic layer 1640 provides information about one or more objects and other elements within a building that may move and/or change over time. For example, dynamic layer 1640 can track one or more movements 1644 and/or one or more changes 1646 associated with one or more objects 1642. In some embodiments, dynamic layer 1640 can monitor the expiration date of an object 1642 and identify when the object 1642 expires.
[0091] 表現1600は、例えばロボットデバイスの制御ユニット1602が利用可能であってもよく、及び/又は制御ユニット1602によって管理されてもよい。制御ユニット1602は、本明細書に記載される他の制御ユニット(例えば、制御ユニット202、302、及び/又は1702)に類似したコンポーネントを含み得る。制御ユニット1602は、表現1600、及び1つ又は複数のロボットデバイスに関連する情報(例えば、あるロボットデバイスの要素の構成、建物内のそのロボットデバイスの場所など)を含む状態情報1604を保存する(例えば、ストレージ330及び/又は1730などの、本明細書に記載される他のストレージ要素に類似した)ストレージを含み得る。制御ユニット1602は、ロボットデバイス上に、及び/又は1つ若しくは複数のロボットデバイスに接続された遠隔サーバーに位置してもよい。1つ又は複数のロボットデバイスが、それらの周辺環境に関する情報を収集する際に、1つ又は複数のロボットデバイスが、建物の表現1600に関連する情報を含む状態情報1604の更新及び保持を行うように構成されてもよい。 [0091] Representation 1600 may be available to and/or managed by, for example, control unit 1602 of a robotic device. Control unit 1602 may include components similar to other control units described herein (e.g., control units 202, 302, and/or 1702). Control unit 1602 may include storage (e.g., similar to other storage elements described herein, such as storage 330 and/or 1730) for storing representation 1600 and state information 1604 including information related to one or more robotic devices (e.g., the configuration of elements of a robotic device, the location of the robotic device within a building, etc.). Control unit 1602 may be located on the robotic device and/or on a remote server connected to one or more robotic devices. As one or more robotic devices collect information about their surrounding environment, one or more robotic devices may be configured to update and maintain state information 1604 including information related to building representation 1600.
[0092] いくつかの実施形態では、制御ユニット1602は、任意選択的に、データ追跡及び分析要素1606も含んでもよい。データ追跡及び分析要素1606は、例えば、1つ又は複数のロボットデバイスによって収集された情報(例えば、表現1600内に含まれる情報及び/又は他の状態情報1604)のデータ追跡及び/又は分析を行うように構成された計算要素(例えば、プロセッサー)でもよい。例えば、データ追跡及び分析要素1606は、在庫を管理する(例えば、有効期限の追跡、在庫品の使用のモニタリング及び記録、新しい在庫品の発注、新しい在庫品の分析及び推薦など)ように構成されてもよい。病院の状況では、データ追跡及び分析要素1606は、医療用品及び/又は設備の使用及び/又は保守を管理することができる。いくつかの実施形態では、データ追跡及び分析要素1606は、集計データ表示(例えば、レポート、チャートなど)を生成することができ、これらを用いて、正式な法律、規則、及び/又は基準に準拠することができる。いくつかの実施形態では、データ追跡及び分析要素1606は、病院内の患者などの人間に関連する情報を分析するように構成されてもよい。例えば、ロボットデバイスは、病院内の1人又は複数の患者に関する情報を収集し、例えば、診断検査及び/又はスクリーニングを含む様々な機能で使用する目的で分析及び/又は要約を行うために、その情報をデータ追跡及び分析要素1606に回すように構成されてもよい。いくつかの実施形態では、データ追跡及び分析要素1606は、第三者システムからの情報(例えば、病院の電子医療記録、セキュリティシステムのデータ、保険のデータ、ベンダーのデータなど)にアクセスし、及び/又はそのような情報を取得し、そのデータを、1つ若しくは複数のロボットデバイスによって収集されたデータと共に、又は1つ若しくは複数のロボットデバイスによって収集されたデータを用いずに、使用及び/又は分析することによって、データの追跡及び/又は分析機能を行うように構成されてもよい。 [0092] In some embodiments, the control unit 1602 may also optionally include a data tracking and analysis element 1606. The data tracking and analysis element 1606 may be, for example, a computational element (e.g., a processor) configured to perform data tracking and/or analysis of information collected by one or more robotic devices (e.g., information included in representation 1600 and/or other state information 1604). For example, the data tracking and analysis element 1606 may be configured to manage inventory (e.g., tracking expiration dates, monitoring and recording inventory usage, ordering new inventory, analyzing and recommending new inventory, etc.). In a hospital setting, the data tracking and analysis element 1606 may manage the use and/or maintenance of medical supplies and/or equipment. In some embodiments, the data tracking and analysis element 1606 may generate aggregate data displays (e.g., reports, charts, etc.), which may be used to comply with official laws, regulations, and/or standards. In some embodiments, the data tracking and analysis component 1606 may be configured to analyze information related to humans, such as patients in a hospital. For example, a robotic device may be configured to collect information about one or more patients in a hospital and pass that information to the data tracking and analysis component 1606 for analysis and/or summarization for use in various functions, including, for example, diagnostic testing and/or screening. In some embodiments, the data tracking and analysis component 1606 may be configured to perform its data tracking and/or analysis functions by accessing and/or obtaining information from third-party systems (e.g., hospital electronic medical records, security system data, insurance data, vendor data, etc.) and using and/or analyzing that data with or without data collected by one or more robotic devices.
[0093] 図20に示されるように、1つ又は複数のスキルモデル1734は、タスク及び/又は挙動を含む、様々なアクション又はスキルの学習及び/又は実行を行うために使用することができるモデルである。1つ又は複数のモデル1734は、図3を参照して本明細書に記載されるような、1つ又は複数のモデル334に類似してもよい。例えば、1つ又は複数のモデル1734は、スキルの実行に関与する1つ又は複数の物体(例えば、ロボットデバイスによって操作される物体、スキルの実行中にロボットデバイスがインタラクトする物体、スキルを実行しながらロボットデバイスが考慮する物体)に関連する情報を含んでもよい。上記の通り、物体の例には、例えば、備品、設備、人間、及び/又は開口部(例えば、戸口)を規定する面などの静止物体及び/又は可動物体が含まれる。1つ又は複数の物体に関連する情報は、例えば、物体及び/又は物体の特徴を識別するマーカーを含み得る。追加的又は代替的に、1つ又は複数のモデル1734は、例えば、スキルの学習及び/又は実行、又はアクティブセンシング中に、ロボットデバイスによって収集された感覚情報を含んでもよい。上記の通り、感覚情報は、スキルの学習及び/又は実行を行う際のロボットデバイスの1つ若しくは複数のコンポーネント(例えば、操作要素、搬送要素)に関連する情報、及び/又はスキルが学習及び/又は実行される環境に関連する情報(例えば、環境内の1つ又は複数の物体の場所、社会的コンテキスト情報など)を含み得る。いくつかの実施形態では、モデル1734は、例えば、スキルの成功した実行を示す、ロボットデバイスの1つ又は複数のセンサーを用いて感知された視覚及び/又は触覚データなどの成功基準に関連付けられてもよい。 20 , the one or more skill models 1734 are models that can be used to learn and/or perform various actions or skills, including tasks and/or behaviors. The one or more models 1734 may be similar to the one or more models 334, as described herein with reference to FIG. 3 . For example, the one or more models 1734 may include information related to one or more objects involved in the performance of a skill (e.g., objects manipulated by the robotic device, objects with which the robotic device interacts while performing a skill, objects considered by the robotic device while performing a skill). As described above, examples of objects include, for example, stationary and/or movable objects, such as furniture, equipment, people, and/or surfaces defining an opening (e.g., a doorway). The information related to the one or more objects may include, for example, markers that identify the objects and/or features of the objects. Additionally or alternatively, the one or more models 1734 may include sensory information collected by the robotic device, for example, during skill learning and/or performance or active sensing. As described above, the sensory information may include information related to one or more components of the robotic device (e.g., manipulation elements, transport elements) in learning and/or performing the skill, and/or information related to the environment in which the skill is learned and/or performed (e.g., the location of one or more objects in the environment, social context information, etc.). In some embodiments, the model 1734 may be associated with success criteria, such as, for example, visual and/or tactile data sensed using one or more sensors of the robotic device, that indicate successful performance of the skill.
[0094] 物体情報1740は、1つ又は複数の物理的物体に関連する情報(例えば、場所、色、形状、表面特徴、及び/又は識別コード)を含み得る。機械学習ライブラリー1742は、機械学習の異なる複数のアルゴリズム及び/又は異なる複数のスキルのモデル生成に関連する複数のモジュール、プロセス、及び/又は機能を含み得る。 [0094] Object information 1740 may include information related to one or more physical objects (e.g., location, color, shape, surface features, and/or identification codes). Machine learning library 1742 may include modules, processes, and/or functions related to generating models of different machine learning algorithms and/or different skills.
[0095] 環境的制約1754は、環境内のロボットデバイスの動作を制限し得る、環境内の物体及び/又は状態に関連する情報を含む。例えば、環境的制約1754は、環境(例えば、備品容器、部屋、戸口など)内の物体のサイズ、構成、及び/又は場所に関連する情報、及び/又は特定のエリア(例えば、部屋、通路など)のアクセスが制限されていることを示す情報を含み得る。環境的制約1754は、環境内の1つ又は複数のアクションの学習及び/又は実行に影響を与え得る。そのため、環境的制約1754は、その環境的制約を含むコンテキスト内で実行されるスキルに関する各モデルの一部となり得る。 [0095] Environmental constraints 1754 include information related to objects and/or conditions in the environment that may limit the operation of the robotic device within the environment. For example, environmental constraints 1754 may include information related to the size, configuration, and/or location of objects within the environment (e.g., a supply bin, a room, a doorway, etc.) and/or information indicating that access to a particular area (e.g., a room, a hallway, etc.) is restricted. Environmental constraints 1754 may affect the learning and/or execution of one or more actions within the environment. As such, environmental constraints 1754 may be part of each model for a skill that is performed within a context that includes the environmental constraint.
[0096] 追跡情報1756は、環境の表現(例えば、表現1600)に関連する情報、及び/又は例えば、データ追跡及び分析要素1606などのデータ追跡及び分析要素、又はデータ追跡及び分析1758を実行するプロセッサー1704によって追跡及び/又は分析される、第三者システムから取得した情報(例えば、病院の電子医療記録、セキュリティシステムのデータ、保険のデータ、ベンダーのデータなど)を含む。追跡情報1756の例には、在庫データ、サプライチェーンデータ、使用時点データ、及び/又は患者データ、並びにそのようなデータからまとめられた集計データが含まれる。 [0096] Tracking information 1756 includes information related to the representation of the environment (e.g., representation 1600) and/or information obtained from third-party systems (e.g., hospital electronic medical records, security system data, insurance data, vendor data, etc.) that is tracked and/or analyzed by a data tracking and analysis component, such as data tracking and analysis component 1606, or processor 1704 executing data tracking and analysis 1758. Examples of tracking information 1756 include inventory data, supply chain data, point-of-use data, and/or patient data, as well as aggregate data compiled from such data.
[0097] 1つ又は複数のアービトレーションアルゴリズム1758は、実行すべき異なるアクション間でアービトレーション又は選択を行うためのアルゴリズムを含む(例えば、ロボットデバイスの異なる複数のリソース又はコンポーネントの使い方)。1つ又は複数のアービトレーションアルゴリズム1758は、ルールでもよく、いくつかの実施形態では、図24を参照してさらに記載されるように学習されてもよい。これらのアルゴリズムは、ロボットデバイスが管理すべき複数のリソース及び/又は目的を持つ場合に、異なる複数のアクションから選択するために、ロボットデバイスによって使用することができる。例えば、非構造化環境及び/又は動的環境(例えば、人間を含む環境)で動作するロボットデバイスは、そのロボットデバイスから異なる複数の挙動又はアクションを要求し得るいずれかの時点で、いくつかの状態にさらされ得る。そのような場合には、ロボットデバイスは、あらかじめ規定されたルール(例えば、感情状態、環境的制約、社会的に規定された制約など)に基づいて異なる優先順位を様々なアクションに割り当て得る、1つ又は複数のアービトレーションアルゴリズム1758に基づいて、異なる複数のアクションから選択するように構成されてもよい。ある実施形態では、アービトレーションアルゴリズム1758は、周辺環境、現在の状態、及び/又は他のファクターに関してロボットデバイスによって収集された情報に基づいて、異なるスコア又は値を複数のアクションに割り当てることができる。 [0097] The one or more arbitration algorithms 1758 include algorithms for arbitrating or selecting between different actions to perform (e.g., how different resources or components of the robotic device are used). The one or more arbitration algorithms 1758 may be rules and, in some embodiments, may be learned as further described with reference to FIG. 24. These algorithms may be used by a robotic device to select among different actions when the robotic device has multiple resources and/or objectives to manage. For example, a robotic device operating in an unstructured and/or dynamic environment (e.g., an environment that includes humans) may be exposed to several conditions at any one time that may require different behaviors or actions from the robotic device. In such cases, the robotic device may be configured to select among different actions based on one or more arbitration algorithms 1758, which may assign different priorities to various actions based on predefined rules (e.g., emotional state, environmental constraints, socially defined constraints, etc.). In some embodiments, the arbitration algorithm 1758 may assign different scores or values to multiple actions based on information gathered by the robotic device regarding the surrounding environment, current conditions, and/or other factors.
[0098] 1つ又は複数のI/Oインターフェース208及び/又は308に類似して、1つ又は複数のI/Oインターフェース1708は、制御ユニット1702の内部コンポーネントと、ユーザーインターフェース、操作要素、搬送要素、及び/又は計算デバイスなどの外部デバイスとの間の通信を可能にする任意の適宜の1つ又は複数のコンポーネントでもよい。1つ又は複数のI/Oインターフェース1708は、制御ユニット1702をネットワーク(例えば、図1に示されるようなネットワーク105)に接続することができるネットワークインターフェース1760を含み得る。ネットワークインターフェース1760は、(ロボットデバイス上、又は1つ若しくは複数のロボットデバイスと通信する別のネットワークデバイス上に位置し得る)制御ユニット1702と、1つ又は複数のロボットデバイスのモニタリング及び/又は制御を行うために、ロボットの監督者によって使用され得る計算デバイスなどの遠隔デバイスとの通信を可能にする。ネットワークインターフェース1760は、無線及び/又は有線接続をネットワークに提供するように構成されてもよい。 [0098] Similar to the one or more I/O interfaces 208 and/or 308, the one or more I/O interfaces 1708 may be any suitable one or more components that enable communication between the internal components of the control unit 1702 and external devices, such as a user interface, an operating element, a transport element, and/or a computing device. The one or more I/O interfaces 1708 may include a network interface 1760 that can connect the control unit 1702 to a network (e.g., network 105 as shown in FIG. 1). The network interface 1760 enables communication between the control unit 1702 (which may be located on the robotic device or on another network device that communicates with one or more robotic devices) and a remote device, such as a computing device that may be used by a robot supervisor to monitor and/or control one or more robotic devices. The network interface 1760 may be configured to provide a wireless and/or wired connection to a network.
[0099] 図5は、いくつかの実施形態によるロボットデバイス400を模式的に示す。ロボットデバイス400は、頭部480、胴部488、及び基部486を含む。頭部480は、セグメント482及び1つ又は複数の関節(図示されない)によって胴部488に接続されてもよい。セグメント482は、頭部480が胴部488に対して移動することを可能にするために、移動可能であってもよく、及び/又は可撓性があってもよい。頭部480、セグメント482などは、1つ又は複数の操作要素の例となることができ、本明細書に記載される1つ又は複数の他の操作要素と類似した機能性及び/又は構造を含み得る。 [0099] FIG. 5 schematically illustrates a robotic device 400 according to some embodiments. The robotic device 400 includes a head 480, a torso 488, and a base 486. The head 480 may be connected to the torso 488 by a segment 482 and one or more joints (not shown). The segment 482 may be movable and/or flexible to allow the head 480 to move relative to the torso 488. The head 480, the segment 482, etc. may be examples of one or more operational elements and may include similar functionality and/or structure as one or more other operational elements described herein.
[0100] 頭部480は、1つ又は複数の撮像デバイス472及び/又は他のセンサー470を含む。撮像デバイス472及び/又は他のセンサー470(例えば、ライダーセンサー、運動センサーなど)は、ロボットデバイス400が環境をスキャンし、その環境の表現(例えば、視覚的表現又は他の意味的表現)を取得することを可能にすることができる。いくつかの実施形態では、撮像デバイス472は、カメラでもよい。いくつかの実施形態では、撮像デバイス472は、ロボットデバイス400の周りの環境の異なる複数のエリアに焦点を合わせるために使用することができるように、移動可能であってもよい。撮像デバイス472及び/又は他のセンサー470は、感覚情報を収集し、ロボットデバイス400に搭載された計算デバイス又はプロセッサー(例えば、制御ユニット202又は302など)に感覚情報を送ることができる。いくつかの実施形態では、ロボットデバイス400の頭部480は、人間の形を有し、1つ又は複数の人間の特徴(例えば、目、鼻、口、耳など)を含んでもよい。このような実施形態では、撮像デバイス472及び/又は他のセンサー470は、1つ又は複数の人間の特徴として実装されてもよい。例えば、撮像デバイス472は、頭部480上の目として実装されてもよい。 [0100] Head 480 includes one or more imaging devices 472 and/or other sensors 470. Imaging device 472 and/or other sensors 470 (e.g., lidar sensors, motion sensors, etc.) can enable robotic device 400 to scan an environment and obtain a representation (e.g., a visual representation or other semantic representation) of that environment. In some embodiments, imaging device 472 may be a camera. In some embodiments, imaging device 472 may be movable so that it can be used to focus on different areas of the environment around robotic device 400. Imaging device 472 and/or other sensors 470 can collect sensory information and send the sensory information to a computing device or processor (e.g., control unit 202 or 302, etc.) onboard robotic device 400. In some embodiments, head 480 of robotic device 400 may have a human form and include one or more human features (e.g., eyes, nose, mouth, ears, etc.). In such an embodiment, the imaging device 472 and/or other sensors 470 may be implemented as one or more human features. For example, the imaging device 472 may be implemented as an eye on the head 480.
[0101] いくつかの実施形態では、ロボットデバイス400は、撮像デバイス472及び/又は他のセンサー470を用いて、環境内の物体(例えば、物理的構造、デバイス、物品、人間など)に関する情報を求めて、環境をスキャンすることができる。ロボットデバイス400は、アクティブセンシングに従事することができ、又はロボットデバイス400は、トリガー(例えば、ユーザーからの入力、環境内の検出事象又は変化)に応答して、センシング又はスキャニングを開始することができる。 [0101] In some embodiments, the robotic device 400 can use the imaging device 472 and/or other sensors 470 to scan the environment for information about objects (e.g., physical structures, devices, items, people, etc.) within the environment. The robotic device 400 can engage in active sensing, or the robotic device 400 can begin sensing or scanning in response to a trigger (e.g., input from a user, a detected event or change in the environment).
[0102] いくつかの実施形態では、ロボットデバイス400は、保存された知識及び/又はユーザー入力に基づいてセンシングを行うことができる適応センシングに従事することができる。例えば、ロボットデバイス400は、ロボットデバイス400が物体に関して有する事前情報に基づいて、物体を求めてスキャンすべき環境内のエリアを識別することができる。図6Aを参照して、ロボットデバイス400は、シーン(例えば、部屋のあるエリア)をスキャンし、そのシーンの表現500を取得することができる。表現500では、ロボットデバイス400は、第1の物体550がエリア510に位置し、第2の物体560がエリア510及び530に位置することを識別する。ロボットデバイス400が、今後スキャンを行うときに、その情報を用いて物体550及び560の位置を特定することができるように、ロボットデバイス400は、それが内的に保存した環境のマップ内に、物体550及び560の場所を保存することができる。例えば、ロボットデバイス400が上記シーンに戻り、そのシーンを2回目にスキャンするときに、ロボットデバイス400は、図6Bに示されるように、シーンの異なるビューを取得してもよい。この2回目のスキャンを行うときは、ロボットデバイス400は、シーンの表現502を取得することができる。表現502で物体550及び560の位置を特定するために、ロボットデバイス400は、シーンの表現500を取得したときに、これらの物体の場所に関してロボットデバイス400が以前に保存した情報を参照することができる。ロボットデバイス400は、環境内でのロボットデバイス400の場所が変わった可能性があることを考慮することができ、物体550及び560が、表現502の異なるエリアに位置し得ることを認識することができる。この情報に基づいて、ロボットデバイス400は、物体550に関してはエリア510を見るが、物体560に関してはエリア520及び540を見ることを知ることができる。物体550及び560の場所に関して以前に保存された情報を用いることによって、ロボットデバイス400は、物体550及び560を求めて、(例えば、ズームインすることによって、エリア内でカメラをゆっくりと移動させることによって)注意深くスキャンすべきエリアを自動的に識別することができる。 [0102] In some embodiments, the robotic device 400 can engage in adaptive sensing, which can perform sensing based on stored knowledge and/or user input. For example, the robotic device 400 can identify areas in an environment to scan for objects based on prior information the robotic device 400 has about the objects. With reference to FIG. 6A , the robotic device 400 can scan a scene (e.g., an area of a room) and obtain a representation 500 of the scene. In representation 500, the robotic device 400 identifies that a first object 550 is located in area 510 and a second object 560 is located in areas 510 and 530. The robotic device 400 can store the locations of objects 550 and 560 in its internally stored map of the environment so that the robotic device 400 can use that information to locate objects 550 and 560 when performing future scans. For example, when the robotic device 400 returns to the scene and scans it a second time, the robotic device 400 may obtain a different view of the scene, as shown in FIG. 6B. When performing this second scan, the robotic device 400 may obtain a representation 502 of the scene. To locate objects 550 and 560 in representation 502, the robotic device 400 may refer to information that it previously stored regarding the location of these objects when it obtained representation 500 of the scene. The robotic device 400 may take into account that its location in the environment may have changed and may recognize that objects 550 and 560 may be located in different areas of representation 502. Based on this information, the robotic device 400 may know that it sees area 510 for object 550, but sees areas 520 and 540 for object 560. By using previously stored information regarding the locations of objects 550 and 560, the robotic device 400 can automatically identify areas to carefully scan (e.g., by zooming in, slowly moving the camera within the area) for objects 550 and 560.
[0103] いくつかの実施形態では、ロボットデバイス400は、人間による入力に基づいて、シーンの異なるエリアのセンシング又はスキャニングをより注意深く行うことも知ることができる。例えば、人間は、あるシーンの特定のエリアが、関心のある1つ又は複数の物体を含むことをロボットデバイス400に示すことができ、ロボットデバイス400は、それらの物体を識別するために、それらのエリアをより注意深くスキャンすることができる。このような実施形態では、ロボットデバイス400は、図5に模式的に示されるように、キーボード若しくは他の入力デバイスを備えたディスプレイ、及び/又はタッチスクリーンなどの入出力デバイス440を含んでもよい。 [0103] In some embodiments, the robotic device 400 may also know to more carefully sense or scan different areas of a scene based on human input. For example, a human may indicate to the robotic device 400 that certain areas of a scene contain one or more objects of interest, and the robotic device 400 may scan those areas more carefully to identify those objects. In such embodiments, the robotic device 400 may include an input/output device 440, such as a display with a keyboard or other input device and/or a touchscreen, as shown schematically in FIG. 5.
[0104] いくつかの実施形態では、ロボットデバイス400は、環境をスキャンし、例えば人間などの物体が、環境内で移動していることを識別することができる。例えば、図7A及び7Bに示されるように、物体650が静止したままである一方で、物体660は、環境内で移動している場合がある。図7Aは、物体660がエリア610及び630内にあることを示すシーンの表現600を示し、図7Bは、物体660がエリア620及び640内にあることを示すシーンの表現602を示す。両表現600及び602では、物体650は、エリア610の同じ場所にとどまり得る。ロボットデバイス400は、物体660がシーン内で移動したことを識別し、それに応じて、ロボットデバイス400のアクションを調整することができる。例えば、ロボットデバイス400が、物体660とインタラクトする予定であった場合、ロボットデバイス400は、その軌道を変えること(例えば、物体660の近くに移動すること)、及び/又は操作要素若しくは物体660とインタラクトするように構成された他のコンポーネントの軌道を変えることができる。代替的又は追加的に、ロボットデバイス400が、物体650(及び/又はシーン内の別の物体)とインタラクトする予定であった場合、ロボットデバイス400は、物体650とインタラクトするためのコースを計画する間に、物体660の移動を考慮に入れることができる。いくつかの実施形態では、ロボットデバイス400は、ロボットデバイス400のアクションをほぼリアルタイムで調整することができるように、アクティブセンシングに従事することができる。 [0104] In some embodiments, the robotic device 400 can scan the environment and identify that an object, such as a human, is moving within the environment. For example, as shown in FIGS. 7A and 7B, an object 660 may be moving within the environment while an object 650 remains stationary. FIG. 7A shows a representation 600 of a scene showing that object 660 is within areas 610 and 630, and FIG. 7B shows a representation 602 of a scene showing that object 660 is within areas 620 and 640. In both representations 600 and 602, object 650 may remain in the same location in area 610. The robotic device 400 can identify that object 660 has moved within the scene and adjust its actions accordingly. For example, if the robotic device 400 is to interact with the object 660, the robotic device 400 may change its trajectory (e.g., move closer to the object 660) and/or change the trajectory of a manipulative element or other component configured to interact with the object 660. Alternatively or additionally, if the robotic device 400 is to interact with the object 650 (and/or another object in the scene), the robotic device 400 may take the movement of the object 660 into account while planning a course for interacting with the object 650. In some embodiments, the robotic device 400 may engage in active sensing such that the actions of the robotic device 400 can be adjusted in near real time.
[0105] 図5に模式的に示されるように、基部486は、車輪460として実装される1つ又は複数の搬送要素を任意選択的に含んでもよい。車輪460により、ロボットデバイス400が環境(例えば、病院)内を動き回ることを可能にすることができる。ロボットデバイス400は、アーム450として実装される少なくとも1つの操作要素も含む。アーム450は、本明細書に記載される他の操作要素(例えば、操作要素350)に構造的及び/又は機能的に類似してもよい。アーム450は、ロボットデバイス400の胴部488に固定的に取り付けられてもよく、又は任意選択的に、操作要素450は、ロボットデバイス400の結合部分484に付着し得る結合要素(例えば、結合要素359)により、胴部488に取り外し可能に結合されてもよい。結合部分484は、結合要素359と係合し、並びに、搭載計算デバイス(例えば、制御ユニット202又は302)が、アーム450のコンポーネントに電力を供給し、及び/又はそれらのコンポーネントを制御し、操作要素450上に配置されたセンサー(例えば、センサー353、355、357、及び358)によって収集された情報を受信することができるように、アーム450と搭載計算デバイスとの電気的接続を提供するように構成されてもよい。 5, base 486 may optionally include one or more transport elements implemented as wheels 460. Wheels 460 may enable robotic device 400 to move about within an environment (e.g., a hospital). Robotic device 400 also includes at least one manipulating element implemented as arm 450. Arm 450 may be structurally and/or functionally similar to other manipulating elements described herein (e.g., manipulating element 350). Arm 450 may be fixedly attached to torso 488 of robotic device 400, or optionally, manipulating element 450 may be removably coupled to torso 488 by a coupling element (e.g., coupling element 359) that may attach to coupling portion 484 of robotic device 400. Coupling portion 484 may be configured to engage coupling element 359 and provide an electrical connection between arm 450 and an on-board computing device (e.g., control unit 202 or 302) so that the on-board computing device can power and/or control components of arm 450 and receive information collected by sensors (e.g., sensors 353, 355, 357, and 358) located on operating element 450.
[0106] 任意選択的に、ロボットデバイス400は、セグメント482、胴部488、基部486、及び/又はロボットデバイス400の他の部分上に位置する、1つ又は複数の追加のセンサー470も含み得る。1つ又は複数のセンサー470は、例えば、撮像デバイス、力若しくはトルクセンサー、運動センサー、光センサー、圧力センサー、及び/又は温度センサーでもよい。センサー470により、環境に関する視覚情報及び非視覚情報をロボットデバイス400が捕捉することを可能にすることができる。 [0106] Optionally, the robotic device 400 may also include one or more additional sensors 470 located on the segments 482, the torso 488, the base 486, and/or other portions of the robotic device 400. The one or more sensors 470 may be, for example, an imaging device, a force or torque sensor, a motion sensor, an optical sensor, a pressure sensor, and/or a temperature sensor. The sensors 470 may enable the robotic device 400 to capture visual and non-visual information about the environment.
方法
[0107] 図8~11は、いくつかの実施形態による、1つ又は複数のロボットデバイスを含むロボットシステム(例えば、ロボットシステム100)によって行われ得る方法700を示すフロー図である。例えば、方法700の全て又は一部は、単一のロボットデバイス(本明細書に記載されるロボットデバイスのいずれかのロボットデバイスなど)によって行われてもよい。或いは、方法700の全てが、それぞれが順番に方法700の一部を行う複数のロボットデバイスによって、連続的に行われてもよい。或いは、方法700の全て又は一部は、複数のロボットデバイスによって同時に行われてもよい。
method
8-11 are flow diagrams illustrating a method 700 that may be performed by a robotic system (e.g., robotic system 100) including one or more robotic devices, according to some embodiments. For example, all or a portion of method 700 may be performed by a single robotic device (such as any of the robotic devices described herein). Alternatively, all of method 700 may be performed sequentially by multiple robotic devices, each performing a portion of method 700 in turn. Alternatively, all or a portion of method 700 may be performed simultaneously by multiple robotic devices.
[0108] 図8に示されるように、ロボットデバイスは、702において、環境をスキャンし、環境の表現を取得することができる。ロボットデバイスは、1つ又は複数のセンサー(例えば、1つ若しくは複数のセンサー270若しくは470、及び/又は1つ若しくは複数の撮像デバイス472)を用いて、環境をスキャンすることができる。いくつかの実施形態では、ロボットデバイスは、移動可能カメラを用いて環境をスキャンすることができ、カメラの位置及び/又は焦点は、環境のシーン内の複数のエリアを捕捉するために調整することができる。704では、センシング中に収集された情報に基づいて、ロボットデバイスは、データを分析することにより、捕捉された環境の表現内の1つ又は複数のマーカーを識別することができる。マーカーは、視覚マーカー又は基準マーカー(例えば、QRコード(登録商標)、バーコード、タグなどの可視マーカー)を用いて印が付けられたシーン内の1つ又は複数の物体に関連付けられてもよい。代替的又は追加的に、ロボットデバイスは、ロボットデバイス上のメモリー(例えば、ストレージ330)に保存された物体情報(例えば、物体情報340)を用いて、物体認識により、環境内の1つ又は複数の物体に関連付けられたマーカーを識別することができる。物体情報には、例えば、場所、色、形状、及び表面特徴などの、物体の異なる複数の特徴を示す情報が含まれ得る。ある実施形態では、物体情報は、特徴空間と呼ばれる場合がある、物体の異なる複数の特徴を表す数値として、整理することができる。 8, the robotic device may scan an environment and obtain a representation of the environment at 702. The robotic device may scan the environment using one or more sensors (e.g., one or more sensors 270 or 470 and/or one or more imaging devices 472). In some embodiments, the robotic device may scan the environment using a movable camera, and the position and/or focus of the camera may be adjusted to capture multiple areas within the environmental scene. At 704, based on the information collected during sensing, the robotic device may identify one or more markers within the captured representation of the environment by analyzing the data. The markers may be associated with one or more objects within the scene marked with visual or fiducial markers (e.g., visible markers such as QR codes, bar codes, tags, etc.). Alternatively or additionally, the robotic device may identify markers associated with one or more objects within the environment through object recognition using object information (e.g., object information 340) stored in memory (e.g., storage 330) on the robotic device. The object information may include information that describes different characteristics of the object, such as location, color, shape, and surface features. In some embodiments, the object information may be organized as a set of numerical values that represent different characteristics of the object, sometimes referred to as a feature space.
[0109] 1つ又は複数のマーカーを識別した後に、706において、ロボットデバイスは、任意選択的に、環境の表現内で、1つ又は複数のマーカーを提示することができる。いくつかの実施形態では、環境の表現は、例えば、環境の拡張ビューなどの視覚的表現でもよい。このような実施形態では、ロボットデバイスは、例えば表示画面上に、環境の視覚的表現を表示し、環境の視覚的表現内に、1つ又は複数のマーカーの場所を表示することができる。代替的又は追加的に、環境の表現は、環境内で意味マーカーによって示される1つ又は複数のマーカーの場所を有する、環境の意味的表現でもよい。 [0109] After identifying the one or more markers, at 706, the robotic device may optionally present the one or more markers within a representation of the environment. In some embodiments, the representation of the environment may be a visual representation, such as, for example, an augmented view of the environment. In such embodiments, the robotic device may display the visual representation of the environment, for example, on a display screen, and display the locations of the one or more markers within the visual representation of the environment. Alternatively or additionally, the representation of the environment may be a semantic representation of the environment, with the locations of the one or more markers indicated by semantic markers within the environment.
[0110] いくつかの実施形態では、ロボットデバイスは、1つ又は複数のマーカーを有する、環境の表現をユーザーに提示することができ、任意選択的に、708において、例えばユーザーインターフェース又は他のタイプのI/Oデバイスを用いて、環境の表現内の1つ又は複数のマーカーを承認するか、又は拒否するようにユーザーに促すことができる。ユーザーが1つ又は複数のマーカーを承認しない場合(708:NO)、方法700は、702に戻り、ロボットデバイスは、環境を再スキャンすることにより、環境の第2の表現を取得することができる。ユーザーが1つ又は複数のマーカーを承認する場合(708:YES)、方法700は、708に進み、そこで、ロボットデバイスは、マーカーに関連付けられた情報(例えば、場所、特徴など)をメモリー(例えば、ストレージ330)に保存することができる。例えば、ロボットデバイスは、1つ又は複数のマーカーの場所を環境の内部マップ(例えば、マップ332)に保存することができる。 [0110] In some embodiments, the robotic device may present a representation of the environment with one or more markers to the user and, optionally, at 708, may prompt the user, e.g., using a user interface or other type of I/O device, to accept or reject one or more markers in the representation of the environment. If the user does not accept one or more markers (708: NO), method 700 may return to 702, where the robotic device may obtain a second representation of the environment by rescanning the environment. If the user accepts one or more markers (708: YES), method 700 may proceed to 708, where the robotic device may store information associated with the markers (e.g., locations, features, etc.) in memory (e.g., storage 330). For example, the robotic device may store the locations of one or more markers in an internal map of the environment (e.g., map 332).
[0111] いくつかの実施形態では、ロボットデバイスは、704において、1つ又は複数のマーカーを識別し、1つ又は複数のマーカーを承認するようにユーザーに促すことなく、そのまま、710で、1つ又は複数のマーカーの場所及び/又はマーカーに関連付けられた他の情報の保存を開始してもよい。このような実施形態では、ロボットデバイスは、1つ又は複数のマーカーの場所を、それらの場所を保存する前に分析することができる。例えば、ロボットデバイスは、(例えば、環境の以前のスキャン中に獲得された、及び/又はユーザー若しくは計算デバイスによってロボットデバイスに入力された)1つ又は複数のマーカーの場所に関する、以前に保存された情報を有し、1つ又は複数のマーカーの場所を、その以前に保存された情報と比較することによって、精度のチェック及び/又はマーカーの場所の変化を識別することができる。具体的には、ある特定のマーカーが、ロボットデバイスによって識別された場所とは異なる場所に位置すべきであることを以前に保存された情報が示す場合には、ロボットデバイスは、環境の追加的スキャンを開始することにより、マーカーの場所を保存する前に、その場所を検証することができる。代替的又は追加的に、ロボットデバイスは、マーカーの場所が変わったことを示す通知をユーザーに送ることができる。このような場合には、ロボットデバイスは、マーカーの新しい場所を保存することができるが、マーカーの場所に変化があったことを示すメッセージも保存することができる。その場合、ユーザー又は計算デバイスは、後に、メッセージを見直し、マーカーの場所の変化を一致させることができる。 [0111] In some embodiments, the robotic device may identify one or more markers at 704 and immediately begin saving the locations of the one or more markers and/or other information associated with the markers at 710 without prompting the user to approve the one or more markers. In such embodiments, the robotic device may analyze the locations of the one or more markers before saving them. For example, the robotic device may have previously stored information regarding the locations of one or more markers (e.g., obtained during a previous scan of the environment and/or input to the robotic device by a user or computing device) and may compare the locations of the one or more markers to the previously stored information to check accuracy and/or identify changes in the marker locations. Specifically, if the previously stored information indicates that a particular marker should be located in a location different from the location identified by the robotic device, the robotic device may verify the location by initiating an additional scan of the environment before saving the marker location. Alternatively or additionally, the robotic device may send a notification to the user indicating that the marker location has changed. In such cases, the robotic device may store the new location of the marker, but may also store a message indicating that the marker's location has changed, so that the user or computing device can later review the message and reconcile the change in the marker's location.
[0112] 図9に示されるように、方法700は、任意選択的に、712に進み、そこで、ロボットデバイスは、例えばユーザーインターフェース又は他のタイプのI/Oデバイスを用いて、環境の表現で識別された1つ又は複数のマーカーからマーカーのセットを選択するようにユーザーに促すことができる。714において、ユーザーは、選択を行うことができ、ロボットデバイスは、ユーザーから選択を受け取ることができる。或いは、いくつかの実施形態では、選択を行うようにユーザーに促す代わりに、ロボットデバイスは、マーカーのセットを自動的に選択することができる。ロボットデバイスは、特定のあらかじめ規定された、又は学習されたルール及び/又は条件に基づいて、マーカーを選択するようにプログラムされてもよい。例えば、ロボットデバイスは、1日のうちの特定の時間の間、又は建物内の人通りが少ないときに、ある特定のタイプの物体(例えば、供給品)に関連付けられたマーカーを選択するように指示され得る。後者の場合、ロボットデバイスは、建物中を能動的に移動すること(例えば、通路及び部屋を巡回及びモニタリングすること)、並びに環境のセンシング又はスキャニングを行うことによって、建物内の人通りがいつ少ないかを決定することができる。そうすることで、ロボットデバイスは、建物内の人通りが他のほとんどの時よりも少ないときに、特定の物体に関連付けられたマーカーを選択することを知ることができる。 9 , method 700 optionally proceeds to 712, where the robotic device can prompt a user, e.g., using a user interface or other type of I/O device, to select a set of markers from one or more markers identified in the representation of the environment. At 714, the user can make a selection, and the robotic device can receive the selection from the user. Alternatively, in some embodiments, instead of prompting the user to make a selection, the robotic device can automatically select a set of markers. The robotic device may be programmed to select markers based on certain predefined or learned rules and/or conditions. For example, the robotic device may be instructed to select markers associated with a particular type of object (e.g., supplies) during a particular time of day or when foot traffic in the building is low. In the latter case, the robotic device can determine when foot traffic in the building is low by actively moving through the building (e.g., patrolling and monitoring hallways and rooms) and sensing or scanning the environment. That way, the robotic device knows to select the marker associated with a particular object when there is less foot traffic in the building than at most other times.
[0113] ロボットデバイスが、マーカーのセットの選択をユーザーから受け取り、及び/又はマーカーのセットを自動的に選択した後に、方法700は、716のスキルの学習、又は718のスキルの実行に進むことができる。 [0113] After the robotic device receives a selection of a set of markers from a user and/or automatically selects a set of markers, method 700 may proceed to learning the skill at 716 or performing the skill at 718.
[0114] どのような特定のスキルに関しても、ロボットデバイスがスキルを実行又は実施する前に、ロボットデバイスが、スキルを教示されることが可能である。例えば、操作スキルを獲得するために、ロボットデバイスは、ユーザー(例えば、近くのユーザー、又は遠隔に位置するロボットの監督者)又は他のロボットデバイスが、ロボットデバイスにスキルを実演することができるLfD(例えば、運動感覚教示)により、教示されることが可能である。例えば、ロボットデバイスのアームなどの操作要素は、物体とインタラクトするために、一連のウェイポイントを通って移動することができる。別の例として、ロボットデバイスの可動基部(例えば、車輪、トラック、クローラーなどの搬送要素を備えた基部)が、ユーザーによって(例えば、ジョイスティック、ユーザーインターフェース、又はその他のタイプの物理的若しくは仮想制御デバイスを用いることによって、或いはロボットデバイスを物理的に指導し、又は移動させる(例えば、引き寄せる、押す)ことによって)環境内の物体を避けてナビゲートされ得る。 [0114] For any particular skill, the robotic device can be taught the skill before it can execute or perform the skill. For example, to acquire a manipulation skill, the robotic device can be taught through LfD (e.g., kinesthetic teaching), in which a user (e.g., a nearby user or a remotely located robot supervisor) or another robotic device can demonstrate the skill to the robotic device. For example, a manipulation element such as an arm of the robotic device can move through a series of waypoints to interact with an object. As another example, a mobile base of the robotic device (e.g., a base with transport elements such as wheels, tracks, crawlers, etc.) can be navigated around objects in an environment by a user (e.g., by using a joystick, user interface, or other type of physical or virtual control device, or by physically directing or moving (e.g., pulling, pushing) the robotic device).
[0115] 運動感覚教示の場合、ユーザーは、ロボットデバイスに対してスキルを物理的に実演することができる。スキルの汎用的動作を表す集約モデルを用いて、ロボットデバイスが教示され得る、大量生産状況(例えば、製造環境など)において、訓練又は教示が行われ得る。代替的又は追加的に、ロボットデバイスが、特定の現場環境でスキルを行うことを学習できるように、ロボットデバイスが(例えば病院に)配備された後に、教示を現場で行うことができる。いくつかの実施形態では、ロボットデバイスは、現場状況で教示されることが可能であり、その後、学習したスキルに関連する情報を1つ又は複数の別のロボットデバイスに送信することによって、これらの別のロボットデバイスも、同じ現場状況で動作するときに、教示されたスキルの知識を持つことができる。このような実施形態は、複数のロボットデバイスが単一の現場で配備されている場合に役に立ち得る。その場合、各ロボットデバイスは、他のロボットデバイスに対して、それらの他のロボットデバイスが、その現場環境に関するスキルのセットをまとめて学習することができるように情報の送受信を行うことができる。 [0115] With kinesthetic teaching, a user can physically demonstrate a skill to a robotic device. Training or teaching can occur in a mass-production setting (e.g., a manufacturing environment) where the robotic device can be taught using an aggregate model that represents the generic behavior of the skill. Alternatively or additionally, teaching can occur in the field after the robotic device is deployed (e.g., in a hospital) so that the robotic device can learn to perform the skill in a specific field environment. In some embodiments, a robotic device can be taught in the field setting and then send information related to the learned skill to one or more other robotic devices so that these other robotic devices also have knowledge of the taught skill when operating in the same field setting. Such an embodiment can be useful when multiple robotic devices are deployed at a single field setting, where each robotic device can send and receive information to the other robotic devices so that the other robotic devices can collectively learn a set of skills related to the field environment.
[0116] 図10に示される学習モードでは、方法700は、720~724に進み、ここでは、ユーザーは、LfD教示プロセスを用いて、ロボットデバイスにスキルを教示することができる。ある実施形態では、スキルは、ある特定の場所にある物体を把持すること、その物体を拾い上げること、その物体を別の場所に移動させること、及びその物体をその別の場所に降ろすこととして規定され得る。別の実施形態では、スキルは、ロボットデバイスの周囲の環境(例えば、ドア)とのインタラクションに関与し得る。 [0116] In the learning mode shown in FIG. 10, method 700 proceeds to 720-724, where a user can teach a skill to a robotic device using an LfD teaching process. In one embodiment, a skill may be defined as grasping an object at a particular location, picking up the object, moving the object to another location, and setting the object down at the other location. In another embodiment, a skill may involve interacting with the robotic device's surrounding environment (e.g., a door).
[0117] 720では、ユーザー(又は別のロボットデバイス)が、操作要素(例えば、操作要素250、350、若しくは450)及び/又は搬送要素(例えば、1つ若しくは複数の搬送要素260、460)を含むロボットデバイスに動作を指導することができる。例えば、ユーザーは、ある特定のスキル(例えば、人間とのインタラクション、物体との係合及び/又は物体の操作、及び/又は1人若しくは複数の人間及び/又は周辺環境との他のインタラクション)の実行に関連する実演により、ロボットデバイスの操作要素(及び/又はロボットデバイスの他のコンポーネント(例えば、搬送要素))を指導することができる。ある実施形態では、ユーザーは、ドアとインタラクトするやり方及び/又はドアを通ってナビゲートするやり方をロボットデバイスに実演することができる。ユーザーは、どのようにロボットデバイスが、例えば、それの1つ又は複数の操作要素を用いて、ドアハンドルとインタラクトするかを実演することができる。例えば、アームなどの、ロボットデバイスの操作要素は、(例えば、視覚入力によって入れられた、又は基準マーカーによって識別された)ドアハンドルに対する一連の動きを指導され得る。例えば操作要素を用いて、ドアハンドルが回される間、又はドアハンドルが回された後に、ロボットデバイスは、例えば1つ又は複数の搬送要素を移動させることによって、ドアを押し開くことを実演により指導され得る。以下でさらに説明されるように、1つ又は複数の操作要素及び1つ又は複数の搬送要素の動きの組み合わせを用いることによって、そのドア及び/又は類似のドアとの今後のインタラクションのために、スキル又は挙動を実行するためのモデルを構築することができる。 [0117] At 720, a user (or another robotic device) can teach a robotic device, including a manipulation element (e.g., manipulation element 250, 350, or 450) and/or a transport element (e.g., one or more transport elements 260, 460), actions. For example, a user can teach a robotic device's manipulation element (and/or other components of the robotic device (e.g., a transport element)) through demonstrations related to performing a particular skill (e.g., interacting with a human, engaging with and/or manipulating an object, and/or other interactions with one or more humans and/or the surrounding environment). In some embodiments, a user can demonstrate to a robotic device how to interact with and/or navigate through a door. The user can demonstrate how the robotic device, for example, interacts with a door handle using one or more of its manipulation elements. For example, a robotic device's manipulation element, such as an arm, can be taught a series of movements relative to a door handle (e.g., entered by visual input or identified by a fiducial marker). For example, while or after a door handle is turned using a manipulating element, the robotic device may be demonstrated to push the door open, for example, by moving one or more conveying elements. As described further below, a combination of the movements of one or more manipulating elements and one or more conveying elements may be used to build a model for performing a skill or behavior for future interactions with that door and/or similar doors.
[0118] いくつかの実施形態では、ロボットデバイスは、局所的に存在するユーザーによって(例えば、ロボットデバイスを物理的に移動させている、及び/又はロボットデバイスに入力を与えているユーザーによって)指導されることが可能である。いくつかの実施形態では、ロボットデバイスは、例えば、遠隔又はクラウドインターフェースを用いて、ロボットデバイスから遠隔に位置するユーザー(例えば、ロボットの監督者)によって指導されることが可能である。 [0118] In some embodiments, the robotic device can be supervised by a locally present user (e.g., by a user physically moving the robotic device and/or providing input to the robotic device). In some embodiments, the robotic device can be supervised by a user (e.g., a robot supervisor) located remotely from the robotic device, for example, using a remote or cloud interface.
[0119] 操作要素(及び/又はロボットデバイスの他のコンポーネント)に動作を指導しながら、ユーザーは、操作要素の状態(例えば、関節の構成、関節力及び/又は関節トルク、エンドエフェクターの構成、エンドエフェクターの位置)、ロボットデバイスの別のコンポーネント、及び/又は環境(例えば、選択されたマーカーに関連付けられた物体の場所、及び/又は環境内の他の物体)に関する情報を捕捉すべき時をロボットデバイスに示すことができる。例えば、ロボットデバイスは、722において、操作要素の動作中のウェイポイント又はキーフレームで、操作要素及び/又は環境に関する情報を捕捉するための信号をユーザーから受信することができる。信号の受信に応答して、724において、ロボットデバイスは、そのキーフレームにおいて、操作要素、ロボットデバイスの他のコンポーネント、及び/又は環境に関する情報を捕捉することができる。操作要素情報には、例えば、関節の構成、関節トルク、エンドエフェクターの位置、及び/又はエンドエフェクタートルクが含まれ得る。環境情報は、例えば、エンドエフェクターに対する、選択されたマーカーの位置を含み、環境内の物体がいつ動いた可能性があるかをロボットデバイスに示すことができる。動作がまだ続いている場合には(728:NO)、ロボットデバイスは、さらなる複数のキーフレームで、操作要素及び/又は環境に関する情報を捕捉することを待つことができる。いくつかの実施形態では、ロボットデバイスは、ユーザーから信号を受信することなく、キーフレーム情報を捕捉するようにプログラムされてもよい。例えば、操作要素がユーザーによって動かされている間に、ロボットデバイスは、操作要素のセグメント及び関節の変化をモニタリングし、それらの変化が閾値を超えたとき、又はセグメント若しくは関節の軌道の方向変化があったときに、ロボットデバイスは、その時点がキーフレームであると自律的に選択し、そのキーフレームにおける操作要素及び/又は環境に関する情報を記録することができる。 [0119] While directing a manipulative element (and/or other components of the robotic device) to move, a user can indicate to the robotic device when to capture information about the state of the manipulative element (e.g., joint configuration, joint forces and/or joint torques, end effector configuration, end effector position), other components of the robotic device, and/or the environment (e.g., location of an object associated with a selected marker and/or other objects in the environment). For example, the robotic device can receive a signal from the user at 722 at a waypoint or keyframe during movement of the manipulative element to capture information about the manipulative element and/or the environment. In response to receiving the signal, the robotic device can capture information about the manipulative element, other components of the robotic device, and/or the environment at that keyframe at 724. Manipulative element information can include, for example, joint configuration, joint torque, end effector position, and/or end effector torque. Environmental information can include, for example, the position of a selected marker relative to the end effector, indicating to the robotic device when objects in the environment may have moved. If the operation is still continuing (728: NO), the robotic device may wait to capture information about the operational element and/or the environment at additional key frames. In some embodiments, the robotic device may be programmed to capture key frame information without receiving a signal from the user. For example, while the operational element is being moved by the user, the robotic device may monitor changes in the segments and joints of the operational element. When these changes exceed a threshold or when there is a directional change in the trajectory of a segment or joint, the robotic device may autonomously select that point in time as a key frame and record information about the operational element and/or the environment at that key frame.
[0120] 操作要素(及び/又はロボットデバイスの他のコンポーネント(例えば、搬送要素))の動作中に、ロボットデバイスは、730において、ユーザーから信号を受信することなく、感覚情報(例えば、操作要素、ロボットデバイスの他の1つ又は複数の要素(例えば、搬送要素)、及び/又は環境に関する情報)も、連続的又は周期的に記録することができる。例えば、ユーザーが実演を通して操作要素を動かす際に、ロボットデバイスは、セグメント及び関節の軌道、並びにそれらの構成に関する情報を記録することができる。実演中に、ロボットデバイスは、1つ又は複数の環境的制約に関する情報(例えば、環境内の1つ若しくは複数の物体に関する静的情報(例えば、戸口、備品容器などの場所若しくはサイズ)及び/又は環境内の1つ若しくは複数の物体に関する動的情報(例えば、部屋内の人通りのレベル、ロボットデバイスの周りのユーザーの動きなど))も記録することができる。いくつかの実施形態では、実演中にロボットデバイスによって記録された感覚情報は、例えば図19に示されるような環境のマップの1つ又は複数の層に対して追加及び/又は変更を行うことができる。 [0120] During operation of the manipulative element (and/or other components of the robotic device (e.g., the transport element)), the robotic device may also continuously or periodically record sensory information (e.g., information about the manipulative element, one or more other elements of the robotic device (e.g., the transport element), and/or the environment) at 730, without receiving a signal from the user. For example, as the user moves the manipulative element throughout a demonstration, the robotic device may record information about the trajectories of the segments and joints and their configurations. During the demonstration, the robotic device may also record information about one or more environmental constraints (e.g., static information about one or more objects in the environment (e.g., location or size of doorways, supply bins, etc.) and/or dynamic information about one or more objects in the environment (e.g., traffic levels in a room, user movement around the robotic device, etc.)). In some embodiments, the sensory information recorded by the robotic device during the demonstration can be added to and/or modified in one or more layers of a map of the environment, such as that shown in FIG. 19.
[0121] いくつかの実施形態では、ロボットデバイスは、例えばマイクロホンなどのオーディオデバイス(例えば、244)を含んでもよく、キーフレームの画定は、音声コマンドによって制御されてもよい。例えば、ユーザーは、「指導します(I will guide you)」と話すことによって、実演する予定であることをロボットデバイスに示すことができる。「ここから開始(start here)」と話すことによって、ユーザーが最初のキーフレームを示したときに、実演が始まり得る。「ここは継続(go here)」と話すことによって、中間キーフレームを示すことができる。そして、「ここで終了(end here)」と話すことによって、実演の終了を表す最後のキーフレームを示すことができる。実演教示の適切な例が、Akgunの論文に提供されている。 [0121] In some embodiments, the robotic device may include an audio device (e.g., 244), such as a microphone, and the definition of key frames may be controlled by voice commands. For example, a user can indicate to the robotic device that they are going to demonstrate by saying, "I will guide you." A demonstration may begin when the user indicates the first key frame by saying, "start here." An intermediate key frame may be indicated by saying, "go here." And the final key frame, representing the end of the demonstration, may be indicated by saying, "end here." Suitable examples of demonstration teaching are provided in Akgun's paper.
[0122] いくつかの実施形態では、ロボットデバイスにスキルを実演しながら、ユーザーは、例えば、ロボットデバイスへの1つ又は複数の入力により、スキルのどの1つ又は複数の部分が汎用的なものであり、スキルのどの1つ又は複数の部分が、特定の環境又は状況に対してより固有のものであるかを示すことができる。例えば、第1の場所から第2の場所(例えば、ある部屋)へと備品を移動させ、それらの備品を第2の場所に降ろすやり方をロボットデバイスに実演しながら、第1の場所から第2の場所へとナビゲートするアクションは、汎用的なものであるが、第2の場所に備品を降ろすアクションは固有のものであり、実施するためには、環境に固有の情報(例えば、備品を降ろすための具体的なタグ又はマーカー)をさらに必要とすることを、ユーザーはロボットデバイスに示すことができる。ロボットデバイスが、後に、そのスキルに関するモデルを使用して、異なる場所間で備品を移動させるときに、ロボットデバイスは、スキルを実行する前に、荷降ろしに関する特定の情報を要求すること、及び/又はその特定の情報をスキャンすること(例えば、荷降ろしを行う前に、その場所を決定するための特定のタグに関する情報を要求及び/又はスキャンすること)を知ることができる。 [0122] In some embodiments, while demonstrating a skill to a robotic device, a user can indicate, e.g., through one or more inputs to the robotic device, which one or more portions of the skill are generic and which one or more portions of the skill are more specific to a particular environment or situation. For example, while demonstrating to a robotic device how to move furniture from a first location to a second location (e.g., a room) and then drop the furniture off at the second location, the user can indicate to the robotic device that the action of navigating from the first location to the second location is generic, but the action of dropping the furniture off at the second location is specific and requires additional information specific to the environment to perform (e.g., a specific tag or marker for dropping the furniture off). When the robotic device later uses the model for the skill to move equipment between different locations, the robotic device may know to request and/or scan specific information regarding unloading before performing the skill (e.g., request and/or scan information regarding a specific tag to determine the location before unloading).
[0123] いくつかの実施形態では、ユーザーは、ロボットデバイスにスキルを実演した後に、汎用的若しくは固有であるスキルの部分を示し、及び/又は汎用的若しくは固有であるとユーザーが以前に示したスキルの部分を変更することができる。いくつかの実施形態では、ロボットデバイスは、スキルのセットを学習した後に、スキルのセットの部分が汎用的又は固有であるかを決定することができる。いくつかの実施形態では、ロボットデバイスは、スキルのセットの部分が汎用的又は固有であることをユーザーに推薦し、ユーザーに確認を要求することができる。ユーザーの確認に基づいて、ロボットデバイスは、このスキルのセットに関連する今後のスキルの学習及び/又は実行時に参照するために、この情報を保存することができる。代替的に、ロボットデバイスは、ユーザーの入力なしに、スキルの異なる複数の部分が汎用的又は固有であると自動的に決定及び分類することができる。 [0123] In some embodiments, after demonstrating a skill to the robotic device, the user can indicate which portions of the skill are generic or specific and/or change which portions of the skill the user previously indicated as generic or specific. In some embodiments, the robotic device can determine whether portions of a set of skills are generic or specific after learning a set of skills. In some embodiments, the robotic device can recommend to the user that portions of the set of skills are generic or specific and request confirmation from the user. Based on the user's confirmation, the robotic device can store this information for reference when learning and/or performing future skills related to this set of skills. Alternatively, the robotic device can automatically determine and classify different portions of a skill as generic or specific without user input.
[0124] 動作又は実演が完了すると(728:YES)、ロボットデバイスは、記録された全ての感覚情報のサブセット(例えば、操作要素情報、搬送要素情報、環境情報)に基づいて、実演されたスキルのモデルを生成することができる。例えば、732において、ロボットデバイスは、任意選択的に、例えばユーザーインターフェース又は他のタイプのI/Oデバイスを用いて、スキルの学習に関連した特徴の選択をユーザーに促すことができ、734において、ロボットデバイスは、特徴の選択をユーザーから受け取ることができる。代替的又は追加的に、ロボットデバイスは、ユーザーからの以前の命令に基づいて、モデルの生成に使用すべき特定の特徴を選択することを知ることができる。例えば、ロボットデバイスは、例えば感覚情報に基づいて、物体の拾い上げが実演されていることを認識することができ、例えば同じ又は異なる物体の拾い上げに関する過去の実演に基づいて、スキルモデルを生成するための関連特徴として含むべき、感覚情報の1つ又は複数の特徴(例えば、関節の構成、関節トルク、エンドエフェクタートルク)を自動的に選択することができる。 [0124] Upon completion of the action or demonstration (728: YES), the robotic device may generate a model of the demonstrated skill based on a subset of all recorded sensory information (e.g., manipulation element information, transport element information, environmental information). For example, at 732, the robotic device may optionally prompt the user, e.g., using a user interface or other type of I/O device, to select features relevant to learning the skill, and at 734, the robotic device may receive the feature selection from the user. Alternatively or additionally, the robotic device may know to select specific features to use in generating the model based on previous instructions from the user. For example, the robotic device may recognize, e.g., based on the sensory information, that object picking is being demonstrated, and may automatically select one or more features of the sensory information (e.g., joint configuration, joint torque, end effector torque) to include as relevant features for generating the skill model, e.g., based on previous demonstrations of picking up the same or different objects.
[0125] 736では、ロボットデバイスは、選択された特徴を用いて、スキルのモデルを生成することができる。モデルは、保存された機械学習ライブラリー又はアルゴリズム(例えば、機械学習ライブラリー342)を用いて生成されてもよい。いくつかの実施形態では、モデルは、例えば、いくつかの隠れ状態、特徴空間(例えば、特徴ベクトルに含まれる特徴)、及びガウス分布としてモデル化された各状態に関する放出分布などの複数のパラメーターを含むHMMアルゴリズムとして表されてもよい。いくつかの実施形態では、モデルは、例えば、カーネルタイプ(例えば、線形、放射状、多項式、S字状)、費用パラメーター又は費用関数、重み(例えば、均等、クラス平衡)、損失タイプ又は損失関数(例えば、ヒンジ、方形ヒンジ)、及び解答タイプ又は問題タイプ(例えば、二重、プライマル)などのパラメーターを含み得る、サポート・ベクター・マシン、すなわち「SVM」モデルとして表されてもよい。モデルは、関連する感覚情報、及び/又はスキルの実演中にロボットデバイスによって記録された他の感覚情報に関連付けられてもよい。モデルは、スキルの実演中に操作されたマーカーのセットを示すマーカー情報、及び/又はそれらのマーカーに結び付けられた1つ若しくは複数の物理的物体に関連付けられた特徴にも関連付けることができる。ロボットデバイスは、738において、モデルをメモリー(例えば、ストレージ230又は330)に保存することができる。 [0125] At 736, the robotic device can generate a model of the skill using the selected features. The model may be generated using a stored machine learning library or algorithm (e.g., machine learning library 342). In some embodiments, the model may be represented as an HMM algorithm including multiple parameters, such as, for example, a number of hidden states, a feature space (e.g., features included in a feature vector), and an emission distribution for each state modeled as a Gaussian distribution. In some embodiments, the model may be represented as a support vector machine, or "SVM," model, which may include parameters, such as, for example, a kernel type (e.g., linear, radial, polynomial, sigmoidal), a cost parameter or function, weights (e.g., equal, class balanced), a loss type or function (e.g., hinge, rectangular hinge), and an answer type or problem type (e.g., dual, primal). The model may be associated with relevant sensory information and/or other sensory information recorded by the robotic device during the performance of the skill. The model may also be associated with marker information indicating the set of markers manipulated during the performance of the skill and/or features associated with one or more physical objects bound to those markers. The robotic device may store the model in memory (e.g., storage 230 or 330) at 738.
[0126] いくつかの実施形態では、実演に関連する情報(例えば、感覚情報、モデルなど)を用いて、例えば図19に示される表現1600などの、環境のマップ又は表現の層に追加及び/又は変更を行うことができる。例えば、図21は示す [0126] In some embodiments, information related to the performance (e.g., sensory information, models, etc.) can be used to add to and/or modify layers of a map or representation of the environment, such as the representation 1600 shown in FIG. 19. For example, FIG. 21 shows
[0127] 任意選択的に、740において、ロボットデバイスは、ユーザーが、スキルの別の実演を行うか否かを決定することができる。別の実演が行われる場合には(740:YES)、方法700は、720に戻り、そこで、ユーザー(又は他のロボットデバイス)は、ロボットデバイスに追加の実演を指導することができる。実演が完了した場合には(740:NO)、方法700は、任意選択的に、最初に戻り、環境の新規のスキャンを行うことができる。或いは、いくつかの実施形態では、方法700は、終了してもよい。 [0127] Optionally, at 740, the robotic device may determine whether the user will perform another demonstration of the skill. If another demonstration is to be performed (740: YES), method 700 may return to 720, where the user (or another robotic device) may direct the robotic device for additional demonstrations. If the demonstration is complete (740: NO), method 700 may optionally return to the beginning and perform a new scan of the environment. Alternatively, in some embodiments, method 700 may end.
[0128] 別の実施形態では、スキルは、2つの場所間のナビゲーション、又は環境内の物体の周り、及び/又は環境内の物体の中を通るナビゲーションなどのナビゲーション挙動でもよい。本明細書に記載されるような、操作要素を用いたスキルの学習に類似して、720において、ユーザー(又は他のロボットデバイス)は、搬送要素(例えば、1つ又は複数の搬送要素260、460)のセットを含むロボットデバイスにナビゲーション挙動を指導することができる。例えば、ユーザーは、ジョイスティック又は他の制御デバイスを使用して、搬送要素のセット(及び/又はロボットデバイスの他のコンポーネント(例えば、操作要素))の動きを制御し、及び/又はロボットデバイスがナビゲーション挙動を行うことができるように、そのような要素を物理的に指導する(例えば、ロボットデバイスを押す又は引き寄せる)ことができる。搬送要素のセット(及び/又はロボットデバイスの他のコンポーネント)の動きを制御しながら、ユーザーは、搬送要素のセットの状態(例えば、各搬送要素の角度、各搬送要素の構成、もし互いに対して移動可能であれば、搬送要素間の間隔など)、ロボットデバイスの他のコンポーネント、及び/又は環境(例えば、マップ内のロボットデバイスの場所、環境内の物体の場所及び/又は境界線)に関する情報などの感覚情報を捕捉すべき時についてロボットデバイスに信号を送ることができる。ユーザーは、搬送要素のセット(及び/又はロボットデバイスの他のコンポーネント)の移動中のキーフレームで、例えば、開始時、終了時、及び/又は第1の方向に搬送要素のセットを移動させることと、第2の方向に搬送要素のセットを移動させることとの間の転移点で、ロボットデバイスに信号を送ることができる。722でユーザーから信号を受信したことに応答して、ロボットデバイスは、移動のスナップショット(搬送要素のセット、ロボットデバイスの他のコンポーネント、及び/又は環境に関する情報を含む)をキーフレームで捕捉することができる。代替的又は追加的に、ロボットデバイスは、移動のスナップショットを捕捉すべき、搬送要素のセット(及び/又はロボットデバイスの他のコンポーネント)の移動中の時点を自律的に選択するように構成されてもよい。例えば、ロボットデバイスは、(例えば、ユーザーがロボットデバイスの制御を引き継いだとき(例えば、制御デバイスを訴えるロボットデバイスを制御することによって、又はロボットデバイスを押すことによって)などに)搬送要素のセットの角度及び/又は構成をモニタリングすることができ、ロボットデバイスが、角度及び/又は構成の変化を検出するたびに、その情報のスナップショットを自動的に捕捉することができる。いくつかの実施形態では、ロボットデバイスは、ユーザーが、ロボットデバイスの移動を制御している間、搬送要素のセット、ロボットデバイスの他のコンポーネント、及び/又は環境に関する情報を連続的に収集するように構成されてもよい。 [0128] In another embodiment, the skill may be a navigation behavior, such as navigation between two locations or navigation around and/or through objects in an environment. Similar to learning a skill using a manipulative element as described herein, at 720, a user (or other robotic device) can teach a navigation behavior to a robotic device including a set of transport elements (e.g., one or more transport elements 260, 460). For example, the user can use a joystick or other control device to control the movement of the set of transport elements (and/or other components of the robotic device (e.g., manipulative elements)) and/or physically guide such elements (e.g., push or pull the robotic device) to enable the robotic device to perform a navigation behavior. While controlling the movement of the set of transport elements (and/or other components of the robotic device), the user can signal the robotic device when to capture sensory information, such as information about the state of the set of transport elements (e.g., the angle of each transport element, the configuration of each transport element, the spacing between transport elements if movable relative to one another, etc.), other components of the robotic device, and/or the environment (e.g., the location of the robotic device in a map, the location and/or boundaries of objects in the environment). The user can signal the robotic device at key frames during the movement of the set of transport elements (and/or other components of the robotic device), e.g., at the beginning, end, and/or transition points between moving the set of transport elements in a first direction and moving the set of transport elements in a second direction. In response to receiving a signal from the user at 722, the robotic device can capture snapshots of the movement (including information about the set of transport elements, other components of the robotic device, and/or the environment) at the key frames. Alternatively or additionally, the robotic device may be configured to autonomously select points during the movement of the set of transport elements (and/or other components of the robotic device) at which to capture snapshots of the movement. For example, the robotic device may monitor the angle and/or configuration of the set of transport elements (e.g., when a user takes over control of the robotic device (e.g., by controlling the robotic device suing a control device, by pushing the robotic device, etc.)) and may automatically capture a snapshot of that information each time the robotic device detects a change in angle and/or configuration. In some embodiments, the robotic device may be configured to continuously collect information about the set of transport elements, other components of the robotic device, and/or the environment while a user controls the movement of the robotic device.
[0129] 本明細書に記載されるような、操作要素を用いたスキルの学習に類似して、ロボットデバイスは、動作が完了する(728:YES)まで、搬送要素(及び/又はロボットデバイスの他のコンポーネント)の動作に関連する感覚情報の捕捉を継続することができる。ロボットデバイスは、732~734で、任意選択的に、ナビゲーション挙動の学習に関連する特徴の選択を受け取り、及び/又は収集された感覚情報中の関連特徴を自律的に識別する(例えば、ある特定のナビゲーションスキルが実演されていることを認識し、そのスキルの学習に関連する上記特徴を識別することによって)ことができる。次に、ロボットデバイスは、736において、関連特徴に関連する感覚情報に基づいて、ナビゲーション挙動に関するモデルを生成することができ、738において、実行するロボットデバイスの軌道を生成するために後で使用することができるように、そのモデル及び感覚情報を保存することができる。 [0129] Similar to learning a skill using a manipulative element as described herein, the robotic device may continue to capture sensory information related to the operation of the transport element (and/or other components of the robotic device) until the operation is completed (728: YES). At 732-734, the robotic device may optionally receive a selection of features relevant to learning the navigation behavior and/or autonomously identify relevant features in the collected sensory information (e.g., by recognizing that a particular navigation skill is being demonstrated and identifying the features relevant to learning that skill). The robotic device may then generate a model for the navigation behavior based on the sensory information related to the relevant features at 736 and store the model and sensory information at 738 for later use in generating a trajectory for the robotic device to execute.
[0130] ナビゲーション挙動の一例は、戸口を通ってナビゲートすることである。ロボットデバイスは、建物内の標準戸口を通ってナビゲートするように構成されることが可能であるが、ロボットデバイスは、非標準戸口(例えば、小さい戸口又は異形の戸口)を通ってナビゲートすることができないことがある。したがって、ロボットデバイスは、どのようにロボットデバイスが、安全に戸口を通ってナビゲートすることができるかをロボットデバイスに実演するようにユーザーに促してもよい。ロボットデバイスは、戸口の一方の側へとナビゲートし、その後、ユーザーに、他方の側へと戸口を通過するやり方をロボットデバイスに対して実演させることができる。実演中に、ロボットデバイスは、マップ内のロボットデバイスの場所、及び/又はセンサーデータ(例えば、ドアの境界線、搬送要素及び/又は操作要素の構成、並びに本明細書に記載されるような他の感覚情報)などの情報を受動的に記録することができる。いくつかの実施形態では、ロボットデバイスは、図16を参照して本明細書でさらに述べられるように、インタラクティブ学習テンプレートを用いて、戸口を通ってナビゲートするやり方を学習することができる。 [0130] An example of a navigation behavior is navigating through a doorway. While a robotic device can be configured to navigate through standard doorways in a building, the robotic device may be unable to navigate through non-standard doorways (e.g., small or irregularly shaped doorways). Thus, the robotic device may prompt a user to demonstrate to the robotic device how it can safely navigate through a doorway. The robotic device may navigate to one side of a doorway and then have the user demonstrate to the robotic device how to pass through the doorway to the other side. During the demonstration, the robotic device may passively record information such as the location of the robotic device within a map and/or sensor data (e.g., door boundaries, configuration of transport and/or operating elements, and other sensory information as described herein). In some embodiments, the robotic device may learn how to navigate through a doorway using an interactive learning template, as further described herein with reference to FIG. 16 .
[0131] いくつかの実施形態では、ユーザーは、ロボットデバイスの近くの現場にいてもよい。他の実施形態では、ユーザーは、遠隔地に位置してもよく、(例えば、図1に示され、上記に記載したような)ロボットデバイスに対するネットワーク接続により、計算デバイス(例えば、サーバー120、計算デバイス150)から、ロボットデバイスを制御してもよい。 [0131] In some embodiments, the user may be on-site near the robotic device. In other embodiments, the user may be located remotely and control the robotic device from a computing device (e.g., server 120, computing device 150) via a network connection to the robotic device (e.g., as shown in FIG. 1 and described above).
[0132] 本明細書に記載されるような、いくつかの実施形態では、ロボットデバイスは、環境内の変化をモニタリングするために、その周辺環境を能動的にスキャンすることができる。したがって、学習及び/又は実行中に、ロボットデバイスは、環境の継続的なセンシング又はスキャニングに従事し、それに応じて、環境の表現及びそのロボットデバイスが保存した環境情報を更新することができる。 [0132] In some embodiments, as described herein, a robotic device may actively scan its surrounding environment to monitor changes in the environment. Thus, during learning and/or execution, the robotic device may engage in continuous sensing or scanning of the environment and update its representation of the environment and the environmental information stored by the robotic device accordingly.
[0133] いくつかの実施形態では、ロボットデバイスは、社会的に適切な挙動、すなわち、人間とのインタラクションを考慮したアクションを学習するように構成することができる。例えば、ロボットデバイスは、人間の周りで行われる操作スキル又はナビゲーションスキルを学習するように構成することができる。ロボットデバイスは、人間のオペレーター(例えば、近くのユーザー、又は遠隔に位置するロボットの監督者)による実演によって、社会的に適切な挙動を学習することができる。いくつかの実施形態では、ロボットデバイスは、インタラクティブな状況で(例えば、人間のオペレーターが、ロボットデバイスによるスキルの自律実行に介入し、スキルを実行するやり方をロボットデバイスに実演することによって)、挙動を学習するように構成されてもよい。ロボットデバイスは、人間のオペレーターによる介入(例えば、看護師がロボットデバイスを片側に押しやること)を検出すると、ロボットデバイスが人間のオペレーターによって制御され、実演に関連する情報及び実演が行われる知覚コンテキストを受動的に記録する学習モードへと切り替えるように構成されてもよい。ロボットデバイスは、この情報を用いて、スキルの修正モデルを生成し、ロボットデバイスがそのスキルを後で実行すべき適切な社会的コンテキストにそのモデルを関連付けることができる。一例として、ロボットデバイスは、人間のオペレーターがナビゲーション計画の自律実行に介入したことを検出することができ、介入の検出に応答して、人間のオペレーターによって制御される学習モデルへと切り替えることができる。人間がいるところでは、どのようにナビゲーション計画が修正されるべきであるかを(例えば、通路が空くのを待つ代わりに、ロボットデバイスが人間を通すように通路の脇に寄るべきであることを)人間のオペレーターが実演するときに、ロボットデバイスは、その周辺環境及びそのロボットデバイス自体の動作に関する情報を記録することができる。インタラクティブ学習に関するさらなる詳細は、図16を参照して、本明細書に記載される。 [0133] In some embodiments, a robotic device can be configured to learn socially appropriate behaviors, i.e., actions that take into account interactions with humans. For example, a robotic device can be configured to learn manipulation or navigation skills to be performed around humans. The robotic device can learn socially appropriate behaviors through demonstration by a human operator (e.g., a nearby user or a remotely located robot supervisor). In some embodiments, a robotic device may be configured to learn behaviors in an interactive context (e.g., by a human operator intervening in the robotic device's autonomous performance of a skill and demonstrating to the robotic device how to perform the skill). Upon detecting human operator intervention (e.g., a nurse pushing the robotic device to one side), the robotic device may be configured to switch to a learning mode in which the robotic device is controlled by the human operator and passively records information related to the demonstration and the perceptual context in which the demonstration takes place. The robotic device can use this information to generate a revised model of the skill and associate the model with the appropriate social context in which the robotic device should later perform the skill. As an example, the robotic device can detect when a human operator intervenes in the autonomous execution of the navigation plan and, in response to the detected intervention, switch to a learning model controlled by the human operator. In the presence of a human, the robotic device can record information about its surroundings and its own behavior as the human operator demonstrates how the navigation plan should be modified (e.g., that instead of waiting for a clear aisle, the robotic device should move to the side of the aisle to let the human through). Further details regarding interactive learning are described herein with reference to FIG. 16.
[0134] 図11に示される実行モードでは、ロボットデバイスは、任意選択的に、750において、例えば、ユーザーインターフェース又は他のタイプのI/Oデバイスを用いて、学習モードでロボットデバイスによって以前に生成されたモデルなどのモデルを選択するようにユーザーに促すことができる。ロボットデバイスは、752において、モデルの選択を受け取ることができる。いくつかの実施形態では、ロボットデバイスは、ユーザーからモデルの選択を受け取ることができ、又は代替的に、ロボットデバイスは、特定のルール及び/又は条件に基づいて、モデルを自動的に選択することができる。例えば、ロボットデバイスは、それが建物のある特定のエリアにいるときに(例えば、それがある特定の部屋又は階にいるときに)、特定の時間又は曜日中などにモデルを選択するようにプログラムされてもよい。代替的又は追加的に、ロボットデバイスは、選択されたマーカーのセットに基づいて、ある特定のモデルを選択することを知ることができる。754では、ロボットデバイスは、軌道を生成し、選択されたマーカーに対してスキルを実行する前に、選択されたマーカーの近くに移動するか否かを決定することができる。例えば、ロボットデバイスは、選択されたマーカーのセット及び選択されたモデルに基づいて、スキルを実行するためにより望ましい場所に配置されるように(例えば、マーカーに対してより近く、又はより近接するように、ある特定の角度からマーカーに面するように)ロボットデバイスが移動すべきか否かを決定することができる。ロボットデバイスは、スキルの実演中に記録された感覚情報に基づいて、この決定を下してもよい。例えば、ロボットデバイスは、スキルを実演されたときに、ロボットデバイスがマーカーのより近くに配置されたことを認識し、それに応じて、その位置を調整することができる。 11 , the robotic device can optionally prompt the user at 750, e.g., using a user interface or other type of I/O device, to select a model, such as a model previously generated by the robotic device in learn mode. The robotic device can receive the model selection at 752. In some embodiments, the robotic device can receive the model selection from the user, or alternatively, the robotic device can automatically select a model based on certain rules and/or conditions. For example, the robotic device may be programmed to select a model when it is in a particular area of a building (e.g., when it is in a particular room or floor), during a particular time or day of the week, etc. Alternatively or additionally, the robotic device can know to select a particular model based on a selected set of markers. At 754, the robotic device can determine whether to move near the selected markers before generating a trajectory and performing a skill on the selected markers. For example, the robotic device can determine whether to move to be more desirable for performing the skill (e.g., closer or closer to the markers, facing the markers from a particular angle) based on the selected set of markers and the selected model. The robotic device may make this determination based on sensory information recorded during the performance of the skill. For example, the robotic device may recognize that it was positioned closer to a marker when the skill was performed and adjust its position accordingly.
[0135] ロボットデバイスが、選択されたマーカーに対して移動することを決定すると(754:YES)、ロボットデバイスは、756において、その位置を移動する(例えば、その場所及び/又は向きを調整する)ことができ、方法700は、702に戻ることができ、そこでロボットデバイスは、環境の表現を取得するために環境を再びスキャンする。方法700は、様々なステップを進んで754に戻ることができる。ロボットデバイスが、選択されたマーカーに対して移動しないことを決定すると(754:NO)、ロボットデバイスは、例えばロボットデバイスの操作要素に関するアクションの軌道を生成することができる。 [0135] If the robotic device determines to move relative to the selected marker (754: YES), the robotic device may move its position (e.g., adjust its location and/or orientation) at 756, and method 700 may return to 702, where the robotic device again scans the environment to obtain a representation of the environment. Method 700 may proceed through various steps and return to 754. If the robotic device determines not to move relative to the selected marker (754: NO), the robotic device may generate a trajectory of action, for example, for a manipulative element of the robotic device.
[0136] 具体的には、758において、ロボットデバイスは、選択されたマーカーのセットと、本明細書において「保存されたマーカー」又は「保存されたマーカーのセット」と呼ばれる、選択されたモデルに関連付けられたマーカーのセット(例えば、ロボットデバイスがスキルを学習したとき、すなわち、選択されたモデルを生成したときに選択された1つ又は複数のマーカー)との間の変換(例えば、平行移動)を行う関数を計算することができる。例えば、ロボットデバイスは、例えばエンドエフェクターなどのロボットデバイスの一部に対して、1つ若しくは複数の特定の場所及び/又は1つ若しくは複数の向きに存在した第1のマーカーのセットを用いて、スキルを教示されることが可能であり、後に、ロボットデバイスは、操作要素に対して、1つ若しくは複数の異なる場所及び/又は1つ若しくは複数の異なる向きに存在する第2のマーカーのセットを用いて、そのスキルを実行することができる。このような場合、ロボットデバイスは、第1のマーカーのセットの1つ若しくは複数の位置及び/又は1つ若しくは複数の向きと、第2のマーカーのセットの1つ若しくは複数の位置及び/又は1つ若しくは複数の向きとの間の変換を行う変換関数を計算することができる。 [0136] Specifically, at 758, the robotic device can calculate a function that transforms (e.g., translates) between the selected set of markers and the set of markers associated with the selected model (e.g., one or more markers selected when the robotic device learned the skill, i.e., generated the selected model), referred to herein as the "saved markers" or "saved set of markers." For example, a robotic device can be taught a skill using a first set of markers that were present in one or more particular locations and/or one or more orientations relative to a portion of the robotic device, such as an end effector. The robotic device can later perform the skill using a second set of markers that are present in one or more different locations and/or one or more different orientations relative to the manipulative element. In such a case, the robotic device can calculate a transformation function that transforms between one or more positions and/or one or more orientations of the first set of markers and one or more positions and/or one or more orientations of the second set of markers.
[0137] 760では、ロボットデバイスは、スキルが教示されたときに記録された各キーフレームにおいて、計算された変換関数を使用して、操作要素の一部(例えば、操作要素のエンドエフェクター)の位置及び向きを変換することができる。任意選択的に、762において、ロボットデバイスは、あらゆる環境的制約、例えば、サイズ、構成、及び/又は場所などの、環境内の物体及び/又はエリアの特徴を考慮に入れることができる。ロボットデバイスは、環境的制約に基づいて、操作要素の動作を制限することができる。例えば、ロボットデバイスは、それが備品室でスキルを実行しようとしていることを認識すると、ロボットデバイスは、操作要素の一部が備品収納庫内で壁又は他の物理的構造と接触することを回避するために、操作要素の位置及び向きを変換するときに、備品室のサイズを考慮に入れることができる。ロボットデバイスは、例えば、備品室内の容器のサイズ、備品室内の棚の場所などの、備品室に関連する他の環境的制約も考慮に入れることができる。ロボットデバイスは、図17を参照して本明細書にさらに記載されるように、1つ又は複数の環境的制約を有する状況におけるスキルの実行に先立って、1つ若しくは複数の環境的制約に関する情報が与えられること、及び/又は1つ若しくは複数の環境的制約が教示されることが可能である。 [0137] At 760, the robotic device may use the calculated transformation function at each keyframe recorded as the skill was taught to transform the position and orientation of a portion of the manipulative element (e.g., the end effector of the manipulative element). Optionally, at 762, the robotic device may take into account any environmental constraints, e.g., characteristics of objects and/or areas in the environment, such as size, configuration, and/or location. The robotic device may limit the movement of the manipulative element based on the environmental constraints. For example, if the robotic device recognizes that it is attempting to perform a skill in a supply room, the robotic device may take into account the size of the supply room when transforming the position and orientation of the manipulative element to avoid contact of a portion of the manipulative element with walls or other physical structures within the supply closet. The robotic device may also take into account other environmental constraints related to the supply room, such as the size of bins in the supply room, the location of shelves within the supply room, etc. The robotic device may be provided with information about and/or taught one or more environmental constraints prior to performing a skill in a situation having one or more environmental constraints, as further described herein with reference to FIG. 17 .
[0138] 任意選択的に、762において、ロボットデバイスは、逆運動学方程式又はアルゴリズムを使用して、762において、キーフレームごとに操作要素の関節の構成を決定することができる。エンドエフェクター及びマーカーのセットの位置及び向きは、タスク空間(例えば、ロボットデバイスが動作しているデカルト空間)で提供されてもよく、関節の向きは、関節又は構成空間(例えば、ロボットデバイスが点で表され、nが操作要素の自由度の数である、操作要素の構成に関連付けられたn次元空間)で提供され得る。いくつかの実施形態では、逆運動学計算は、ロボットデバイスがスキルを教示されたときに記録された関節構成情報(例えば、操作要素を用いた教示実演中に記録された関節の構成)によって誘導され得る。例えば、逆運動学計算は、各キーフレームで記録された関節構成を用いて、シード値が与えられること(例えば、計算の最初の推測が与えられること、又はバイアスが与えられること)が可能である。例えば、計算された関節構成が、隣接するキーフレームの関節構成から、あらかじめ規定された量を超えて逸脱しないことを必要とするなどの追加の条件も、逆運動学計算に課され得る。764では、ロボットデバイスは、操作要素がスキルを実行するための完全な軌道を生成するために、例えば関節空間において、あるキーフレームから次のキーフレームへの関節構成間の軌道を計画することができる。任意選択的に、ロボットデバイスは、本明細書で述べられるような環境的制約を考慮に入れることができる。 Optionally, at 762, the robotic device may use inverse kinematics equations or algorithms to determine 762 the joint configurations of the manipulative elements for each keyframe. The positions and orientations of the end effector and marker set may be provided in task space (e.g., the Cartesian space in which the robotic device is operating), and the joint orientations may be provided in joint or configuration space (e.g., an n-dimensional space associated with the configuration of the manipulative elements, where the robotic device is represented by a point and n is the number of degrees of freedom of the manipulative elements). In some embodiments, the inverse kinematics calculations may be guided by joint configuration information recorded when the robotic device was taught a skill (e.g., joint configurations recorded during a teaching demonstration using the manipulative elements). For example, the inverse kinematics calculations may be seeded (e.g., provided as an initial guess for the calculations or provided with a bias) using the joint configurations recorded at each keyframe. Additional conditions may also be imposed on the inverse kinematics calculations, such as requiring that the calculated joint configurations not deviate from the joint configurations of adjacent keyframes by more than a predefined amount. At 764, the robotic device can plan a trajectory between joint configurations, e.g., in joint space, from one key frame to the next, to generate a complete trajectory for the manipulative element to perform the skill. Optionally, the robotic device can take into account environmental constraints as described herein.
[0139] いくつかの実施形態では、ロボットデバイスが、操作要素(例えば、エンドエフェクター)の一部の位置及び向きを変換した後に、ロボットデバイスは、タスク空間における操作要素の軌道を計画することができる。このような実施形態では、方法700は、760から直接764へと進むことができる。 [0139] In some embodiments, after the robotic device transforms the position and orientation of a portion of a manipulative element (e.g., an end effector), the robotic device can plan a trajectory for the manipulative element in task space. In such embodiments, method 700 can proceed directly from 760 to 764.
[0140] 766及び768では、ロボットデバイスは、任意選択的に、ユーザーに軌道を提示し、例えば、ユーザーインターフェース又は他のI/Oデバイスを用いて、軌道の承認又は拒否をユーザーに促すことができる。代替的に、ロボットデバイスは、内部ルール及び/又は条件に基づいて、並びに関連の感覚情報を分析することによって、軌道を承認又は拒否してもよい。軌道が拒否された場合(768:NO)、ロボットデバイスは、任意選択的に、770において、選択されたモデルの1つ又は複数のパラメーターを修正することができ、758~764において、第2の軌道を生成することができる。モデルのパラメーターは、例えば、モデル生成に含める異なる特徴(例えば、異なる感覚情報)を選択することによって修正することができる。モデルがHMMモデルである、いくつかの実施形態では、ロボットデバイスは、決定された成功又は失敗に基づいて、モデルのパラメーターを変更することができ、ここでは、ロボットデバイスは、異なるパラメーターを有する異なるモデルの対数尤度を追跡し、他のモデルよりも高い対数尤度を有するモデルを選択する。モデルがSVMモデルである、いくつかの実施形態では、ロボットデバイスは、本明細書に記載されるように、特徴空間又は構成パラメーター(例えば、カーネルタイプ、費用パラメーター又は費用関数、重み)を変更することによって、パラメーターを変更することができる。 [0140] At 766 and 768, the robotic device can optionally present the trajectory to the user and prompt the user to approve or reject the trajectory, for example, using a user interface or other I/O device. Alternatively, the robotic device may approve or reject the trajectory based on internal rules and/or conditions and by analyzing associated sensory information. If the trajectory is rejected (768: NO), the robotic device can optionally modify one or more parameters of the selected model at 770 and generate a second trajectory at 758-764. The model parameters can be modified, for example, by selecting different features (e.g., different sensory information) to include in the model generation. In some embodiments where the model is an HMM model, the robotic device can change the model parameters based on the determined success or failure, where the robotic device tracks the log-likelihood of different models with different parameters and selects the model with a higher log-likelihood than the other models. In some embodiments where the model is an SVM model, the robotic device can change the parameters by changing the feature space or configuration parameters (e.g., kernel type, cost parameters or cost functions, weights) as described herein.
[0141] 軌道が承認された場合には(768:YES)、ロボットデバイスは、772において、生成された軌道を実行するために操作要素を動かすことができる。操作要素が計画された軌道を実行している間、ロボットデバイスは、774において、例えば、操作要素及びロボットデバイスの他のコンポーネント上の1つ又は複数のセンサーを用いて、例えば操作要素及び/又は環境に関する情報などの感覚情報の記録及び/又は保存を行うことができる。 [0141] If the trajectory is approved (768: YES), the robotic device may move the manipulative element to execute the generated trajectory at 772. While the manipulative element executes the planned trajectory, the robotic device may record and/or store sensory information, e.g., information about the manipulative element and/or the environment, at 774, e.g., using one or more sensors on the manipulative element and other components of the robotic device.
[0142] 任意選択的に、774において、ロボットデバイスは、スキルの実行が成功したか否か(例えば、物体とのインタラクションが、あらかじめ規定された成功基準を満たすか否か)を決定することができる。例えば、ロボットデバイスは、環境をスキャンし、例えば、1つ若しくは複数の物体の場所、及び/又は操作要素若しくはロボットデバイスの別のコンポーネントに対する、それらの物体の位置若しくは向きを含む、環境及びロボットデバイスの現在の状態を決定し、その現在の状態が、あらかじめ規定された成功基準と合致するか否かを決定することができる。あらかじめ規定された成功基準及び/又は学習された成功基準は、ユーザーによって提供されてもよく、又はいくつかの実施形態では、異なるロボットデバイス及び/又は計算デバイスによって提供されてもよい。あらかじめ規定された成功基準及び/又は学習された成功基準は、成功に関連する環境及び/又はロボットデバイスの異なる特徴に関する情報を示してもよい。いくつかの実施形態では、ユーザーは、実行が成功したことをロボットデバイスに示す入力も提供することができる。 Optionally, at 774, the robotic device can determine whether the execution of the skill was successful (e.g., whether the interaction with the object met predefined success criteria). For example, the robotic device can scan the environment, determine the current state of the environment and the robotic device, including, for example, the location of one or more objects and/or the position or orientation of those objects relative to a manipulative element or another component of the robotic device, and determine whether the current state matches the predefined success criteria. The predefined and/or learned success criteria may be provided by a user or, in some embodiments, may be provided by a different robotic device and/or computing device. The predefined and/or learned success criteria may indicate information about different characteristics of the environment and/or robotic device that are associated with success. In some embodiments, the user can also provide input to the robotic device indicating that the execution was successful.
[0143] ある特定の場所で物体を把持し、及び物体を拾い上げることであるとスキルが規定される、ある特定の例では、スキルの成功は、物体に関連付けられた1つ又は複数のマーカーが、互いに対して、及び/又はロボットデバイスに対して特定の関係にあることを検出すること、又はエンドエフェクター若しくは操作要素の関節(例えば、手首関節)によって十分な力若しくはトルクが経験されている(若しくは経験された)こと(これは、操作要素が物体の重さを支えており、したがって物体を拾い上げたことを意味する)を検出することとして教示及び/又は規定され得る。実行が成功しなかった場合(776:NO)、ロボットデバイスは、任意選択的に、770において、モデルのパラメーターを修正し、及び/又は758~764において、新しい軌道を生成してもよい。実行が成功した場合(776:YES)、成功したインタラクションに関連するデータ(例えば、実行が成功したこと、及びどのようにそれが成功したかを示すデータ)が記録されてもよく、方法700は、任意選択的に、最初に戻り、環境の新規のスキャンを行い得る。或いは、いくつかの実施形態では、方法700は、終了してもよい。 [0143] In a particular example where a skill is defined as grasping an object at a particular location and picking up the object, success of the skill may be taught and/or defined as detecting one or more markers associated with the object in a particular relationship relative to each other and/or to the robotic device, or detecting that sufficient force or torque is (or was) experienced by an end effector or joint (e.g., a wrist joint) of a manipulative element (meaning that the manipulative element is supporting the weight of the object and thus has picked up the object). If the execution was unsuccessful (776: NO), the robotic device may optionally modify model parameters at 770 and/or generate a new trajectory at 758-764. If the execution was successful (776: YES), data related to the successful interaction (e.g., data indicating that the execution was successful and how it was successful) may be recorded, and method 700 may, optionally, start over and perform a new scan of the environment. Alternatively, in some embodiments, method 700 may end.
[0144] いくつかの実施形態では、ロボットデバイスは、操作要素、搬送要素、及び/又はロボットデバイスの別のコンポーネント(例えば、頭部、目、センサーなど)の1つ又は複数の動作に関与するスキルを実行するように構成される。ロボットデバイスは、操作要素に関して上記に記載したことに類似して、スキルの軌道を計画するように構成され得る。例えば、750~752において、ロボットデバイスは、スキルのモデルのユーザー選択を促し、それを受け取ることができ、又は或いは、スキルのモデルを自律的に選択することができる。758では、ロボットデバイスは、環境内で現在識別されているマーカーのセットと、選択されたモデルに関連付けられた、保存されたマーカーのセット(例えば、ロボットデバイスがスキルを学習したときに識別され、スキルのモデルと共に保存された1つ又は複数のマーカー)との間の変換を行う関数を計算することができる。このような変換は、搬送要素又はロボットデバイスの他のコンポーネントに関連付けられたキーフレームの変換を含み得る。760では、ロボットデバイスは、計算された関数を使用して、各キーフレームで、ロボットデバイスの1つ又は複数のコンポーネントの構成を変換することができる。764では、ロボットデバイスは、各変換されたキーフレーム間のロボットデバイスの1つ又は複数のコンポーネントの軌道を計画することができる。キーフレームの変換及び/又は軌道の計画を行う間、ロボットデバイスは、任意選択的に、スキルが実行されている状況に関連するいずれかの環境的制約を考慮に入れることができる。772では、ロボットデバイスは、計画された軌道に従って、ロボットデバイスの1つ又は複数のコンポーネントの動作を実施することができる。いくつかの実施形態では、ロボットデバイスは、762において、関節構成を決定し、766において、計画された軌道をユーザーに提示し、及び/又は図11に示されるような他のオプションのステップを行ってもよい。搬送要素の動作に関与するスキルの一例は、ドアを開けることの場合がある。ユーザー(例えば、近くのユーザー、又は遠隔に位置するロボットの監督者)は、ロボットの基部を用いて(例えば、ドアを押し開くことによって)、ドアを開けることをロボットデバイスに指導することができる。ユーザーは、例えば、ジョイスティックなどの制御デバイスを使用して、又は基部を用いてドアを開けるアクションをロボットデバイスに物理的に指導すること(例えば、ロボットデバイスを押す、又は引き寄せること)によって、ロボットデバイスを指導することができる。ロボットデバイスは、ユーザーが動作を指導している間、情報の検知及び記録を行い、その情報を使用してスキルモデルを生成することができる。ロボットデバイスは、後に、そのスキルモデルを使用して、例えば、ユーザーのスキルの実演中の搬送要素に関連付けられたキーフレームを変換することによって、そのドア又は環境内の他のドアを開けるアクションを実行することができる。 [0144] In some embodiments, the robotic device is configured to perform a skill involving one or more movements of a manipulating element, a transport element, and/or another component of the robotic device (e.g., head, eyes, sensors, etc.). The robotic device may be configured to plan a trajectory for the skill, similar to that described above with respect to the manipulating element. For example, at 750-752, the robotic device may prompt and receive a user selection of a model for the skill, or alternatively, may autonomously select a model for the skill. At 758, the robotic device may calculate a function that transforms between a set of markers currently identified in the environment and a set of stored markers associated with the selected model (e.g., one or more markers identified when the robotic device learned the skill and stored with the model of the skill). Such transformations may include transforming key frames associated with the transport element or other component of the robotic device. At 760, the robotic device may use the calculated function to transform the configuration of one or more components of the robotic device at each key frame. At 764, the robotic device may plan a trajectory for one or more components of the robotic device between each transformed key frame. While transforming the key frames and/or planning the trajectory, the robotic device can optionally take into account any environmental constraints related to the context in which the skill is being performed. At 772, the robotic device can perform movement of one or more components of the robotic device according to the planned trajectory. In some embodiments, the robotic device may determine the joint configuration at 762, present the planned trajectory to the user at 766, and/or perform other optional steps as shown in FIG. 11 . An example of a skill involving the movement of a transport element may be opening a door. A user (e.g., a nearby user or a remotely located robot supervisor) can instruct the robotic device to open the door using the robot's base (e.g., by pushing the door open). The user can instruct the robotic device, for example, using a control device such as a joystick or by physically instructing the robotic device to perform the action of opening the door using the base (e.g., pushing or pulling the robotic device). The robotic device can sense and record information while the user is instructing the movement and use that information to generate a skill model. The robotic device can later use the skill model to perform actions to open that door or other doors in the environment, for example, by transforming keyframes associated with transport elements during the user's skill demonstration.
[0145] 図12は、いくつかの実施形態による、ユーザーによって行われるアクションを含む、ロボット学習及び実行のためのシステムアーキテクチャを示すブロック図である。システム800は、ロボット学習及び実行のために構成することができる。システム800は、本明細書に記載されるロボットデバイスのいずれかのロボットデバイスなどの、1つ又は複数のロボットデバイスを含んでもよく、アクティブセンシング822、マーカー識別824、学習及びモデル生成826、軌道の生成及び実行828、並びに成功モニタリング829として図12に示される、モジュール、プロセス、及び/又は機能を実行することができる。アクティブセンシング822、マーカー識別824、学習及びモデル生成826、軌道の生成及び実行828、並びに成功モニタリング829は、図8~11に示される方法700を参照して記載されたような、ロボットデバイスによって行われる1つ又は複数のステップに対応し得る。例えば、アクティブセンシング822は、方法700のステップ702を含み、マーカー識別824は、方法700のステップ704~710の1つ又は複数を含んでもよく、学習及びモデル生成826は、ステップ712~738の1つ又は複数を含んでもよく、軌道の生成及び実行828は、ステップ712、714、718、及び750~774の1つ又は複数を含んでもよく、成功モニタリング829は、ステップ774及び776の1つ又は複数を含んでもよい。 [0145] FIG. 12 is a block diagram illustrating a system architecture for robot learning and execution, including actions performed by a user, according to some embodiments. System 800 can be configured for robot learning and execution. System 800 may include one or more robotic devices, such as any of the robotic devices described herein, that can perform the modules, processes, and/or functions illustrated in FIG. 12 as active sensing 822, marker identification 824, learning and model generation 826, trajectory generation and execution 828, and success monitoring 829. Active sensing 822, marker identification 824, learning and model generation 826, trajectory generation and execution 828, and success monitoring 829 may correspond to one or more steps performed by the robotic device, as described with reference to method 700 shown in FIGS. 8-11. For example, active sensing 822 may include step 702 of method 700, marker identification 824 may include one or more of steps 704-710 of method 700, learning and model generation 826 may include one or more of steps 712-738, trajectory generation and execution 828 may include one or more of steps 712, 714, 718, and 750-774, and success monitoring 829 may include one or more of steps 774 and 776.
[0146] システム800は、例えば、1つ又は複数のカメラ872、(グリッパー856、及び1つ又は複数のセンサー870を含む)アーム850、表示デバイス842、並びにマイクロホン844を含む、1つ又は複数のデバイスと接続(例えば、通信)することができる。システム800は、表示デバイス842、マイクロホン844、及び/又は他のI/Oデバイス(図示されない)を用いて、1つ又は複数のユーザーアクション880に関連するユーザーから入力を受け取ることができる。ユーザーアクション880は、例えば、ユーザーがマーカーを承認し、又は環境の再スキャンを要求する882、ユーザーが1つ又は複数のマーカーを選択する884、ユーザーが関連情報を選択してモデルを生成する886、ユーザーがスキルを実行するためのモデルを選択する888、ユーザーがスキルを実行するための軌道を承認する890、ユーザーが実行されたスキルの成功を確認する892、ユーザーが運動感覚学習によってスキルを教示する894を含み得る。 [0146] The system 800 can be connected to (e.g., in communication with) one or more devices, including, for example, one or more cameras 872, an arm 850 (including a gripper 856 and one or more sensors 870), a display device 842, and a microphone 844. The system 800 can receive input from a user using the display device 842, the microphone 844, and/or other I/O devices (not shown) related to one or more user actions 880. User actions 880 can include, for example, a user approving a marker or requesting a rescan of the environment 882, a user selecting one or more markers 884, a user selecting relevant information and generating a model 886, a user selecting a model for performing a skill 888, a user approving a trajectory for performing a skill 890, a user confirming the success of the performed skill 892, and a user teaching a skill through kinesthetic learning 894.
[0147] アクティブセンシング822に関して、システム800は、1つ又は複数のカメラ872を用いて環境をスキャンし、その環境に関する感覚情報(環境内の1つ又は複数のマーカーに関連付けられた情報を含む)を記録する。マーカー識別824に関して、システム800は、感覚情報を分析することにより、環境内の1つ又は複数のマーカーを識別し、例えば表示デバイス842を用いて、1つ又は複数の入力をユーザーから受け取ることができる(ユーザーがマーカーを承認し、又は環境の再スキャンを要求する822を示す)。学習及びモデル生成826に関して、システム800は、1つ若しくは複数のカメラ872及び/又はアーム850上の1つ若しくは複数のセンサー870によって収集された感覚情報を受信し、その情報を用いて、スキルのモデルを生成することができる。学習及びモデル生成826の一部として、システム800は、例えば表示デバイス842及び/又はマイクロホン844を用いて、1つ又は複数の入力をユーザーから受け取ることができる(スキルを教示するための1つ若しくは複数のマーカーのセットをユーザーが選択した884、モデルの生成に使用するための、記録された感覚情報の特定の特徴をユーザーが選択した886、及び/又はユーザーがスキルを実演している894を示す)。軌道の生成及び実行828に関して、システム800は、計画された軌道を生成し、その軌道を実行するためにアーム850の動作を制御することができる。軌道の生成及び実行828の一部として、システム800は、例えば表示デバイス842を用いて、1つ又は複数の入力をユーザーから受け取ることができる(軌道を生成するためのモデルをユーザーが選択した888、及び/又はユーザーが生成された軌道を承認又は拒否した890を示す)。成功モニタリング829に関して、システム800は、スキルの実行中に1つ又は複数のセンサー870によって記録された感覚情報を分析することによって、スキルの実行が成功したか否かを決定することができる。成功モニタリング829の一部として、システム800は、例えば表示デバイス842及び/又はマイクロホン844を用いて、1つ又は複数の入力をユーザーから受け取ることができる(実行が成功したことをユーザーが確認した892を示す)。 [0147] With respect to active sensing 822, system 800 scans the environment using one or more cameras 872 and records sensory information about the environment, including information associated with one or more markers in the environment. With respect to marker identification 824, system 800 may analyze the sensory information to identify one or more markers in the environment and receive one or more inputs from the user, for example, using display device 842 (shown 822 with the user approving the marker or requesting a rescan of the environment). With respect to learning and model generation 826, system 800 may receive sensory information collected by one or more cameras 872 and/or one or more sensors 870 on arm 850 and use that information to generate a model of the skill. As part of learning and model generation 826, system 800 can receive one or more inputs from the user, for example, using display device 842 and/or microphone 844 (showing user selection of one or more sets of markers for teaching the skill 884, user selection of particular features of recorded sensory information for use in generating a model 886, and/or user demonstrating the skill 894). Regarding trajectory generation and execution 828, system 800 can generate a planned trajectory and control the movement of arm 850 to execute the trajectory. Regarding trajectory generation and execution 828, system 800 can receive one or more inputs from the user, for example, using display device 842 (showing user selection of a model for generating a trajectory 888, and/or user approval or rejection of the generated trajectory 890). Regarding success monitoring 829, system 800 can determine whether the skill was successfully performed by analyzing sensory information recorded by one or more sensors 870 during the skill's performance. As part of success monitoring 829, system 800 may receive one or more inputs from the user (shown 892 with user confirmation that execution was successful), for example, using display device 842 and/or microphone 844.
[0148] 特定の1つ若しくは複数のデバイス、及び/又はシステム800と、上記1つ若しくは複数のデバイスとの間の接続が図12に示されるが、本明細書に記載される実施形態のいずれによっても、追加の1つ又は複数のデバイス(図示されない)が、システム800と通信することによって、システム800から情報を受信し、及び/又はシステム800に情報を送信することが可能であることが理解される。 [0148] While particular one or more devices and/or connections between system 800 and such one or more devices are shown in FIG. 12, it is understood that any of the embodiments described herein may enable one or more additional devices (not shown) to communicate with system 800 to receive information from and/or transmit information to system 800.
[0149] 図13~17は、本明細書に記載される実施形態による、1つ又は複数のロボットデバイスを含むロボットシステム(例えば、ロボットシステム100)によって行われ得る方法1300及び1400を示すフロー図である。例えば、方法1300及び/又は1400は、単一のロボットデバイス及び/又は複数のロボットデバイスによって行われ得る。 [0149] Figures 13-17 are flow diagrams illustrating methods 1300 and 1400 that may be performed by a robotic system (e.g., robotic system 100) including one or more robotic devices, according to embodiments described herein. For example, methods 1300 and/or 1400 may be performed by a single robotic device and/or multiple robotic devices.
[0150] 図13に示されるように、ロボットデバイスは、1301において、実行モードで動作するように構成される。実行モードでは、ロボットデバイスは、環境内で、自律的にアクションを計画し、実行することができる。どのアクションを実行すべきかを決定し、及び/又はアクションを実行するやり方を計画するために、ロボットデバイスは、1304において、環境をスキャンし、並びに環境及び/又は環境内の物体に関する情報を収集することができ、1305において、この情報を用いて、環境の表現又はマップ(例えば、表現1600)を構築及び/又は変更することができる。ロボットデバイスは、繰り返し(例えば、あらかじめ規定された時刻及び/又は時間間隔で)又は継続的に環境をスキャンし、環境に関してそれが収集した情報に基づいて、環境の表現を更新することができる。上記の方法に類似して、ロボットデバイスは、1つ又は複数のセンサー(例えば、1つ若しくは複数のセンサー270若しくは470、及び/又は1つ若しくは複数の撮像デバイス472)を用いて、環境に関する情報を収集することができる。 [0150] As shown in FIG. 13 , the robotic device is configured to operate in an execution mode at 1301. In execution mode, the robotic device can autonomously plan and execute actions within an environment. To determine which actions to perform and/or plan how to perform the actions, the robotic device can scan the environment and collect information about the environment and/or objects within the environment at 1304 and use this information to build and/or modify a representation or map of the environment (e.g., representation 1600) at 1305. The robotic device can repeatedly (e.g., at predefined times and/or time intervals) or continuously scan the environment and update the representation of the environment based on the information it collects about the environment. Similar to the methods described above, the robotic device can collect information about the environment using one or more sensors (e.g., one or more sensors 270 or 470 and/or one or more imaging devices 472).
[0151] いくつかの実施形態では、ロボットデバイスは、1307におけるデータ追跡及び/又は分析のために、1304において、環境を繰り返し及び/又は継続的にスキャンすることができる。例えば、ロボットデバイスは、自律的に、又は(例えば、ロボットの監督者によって)遠隔駆動されて、環境(例えば、病院などの建物)中を移動し、環境、環境内の物体などに関するデータを収集することができる。この情報は、例えば、病院の備品及び/又は設備を管理するデータ追跡及び分析要素(例えば、データ追跡及び分析要素1606)によって使用され得る。いくつかの実施形態では、ロボットデバイスは、様々な人間(例えば、患者)に関する情報を、そのような患者の挙動を追跡し(例えば、薬物及び/又は治療の順守)、診断検査を行い、及び/又はスクリーニングなどを実施するために収集することができる。 [0151] In some embodiments, the robotic device can repeatedly and/or continuously scan an environment at 1304 for data tracking and/or analysis at 1307. For example, the robotic device can move through an environment (e.g., a building such as a hospital) autonomously or remotely driven (e.g., by a robot supervisor) and collect data about the environment, objects within the environment, etc. This information can be used, for example, by a data tracking and analysis component (e.g., data tracking and analysis component 1606) that manages hospital supplies and/or equipment. In some embodiments, the robotic device can collect information about various people (e.g., patients) to track the behavior of such patients (e.g., compliance with medications and/or treatments), perform diagnostic tests, and/or conduct screenings, etc.
[0152] いくつかの実施形態では、ロボットデバイスは、1309におけるモデル化及び学習目的で、1304において、環境を繰り返し及び/又は継続的にスキャンすることができる。例えば、ロボットデバイスは、それの環境及び/又はその環境内の物体に関するデータ(例えば、人間と、ロボットのアクションに応答した人間の挙動とを含む)を収集し、その情報を用いて、新しい挙動及び/又はアクションを開発することができる。いくつかの実施形態では、ロボットデバイスは、ある環境に関する大量の情報を収集することができ、この情報は、その環境に固有のモデルをさらに改良及び/又は生成するために、ロボットデバイスによって使用され得る。いくつかの実施形態では、ロボットデバイスは、この情報を使用して、ある特定の環境にロボットデバイスをさらに適応させることができる(例えば、その環境内でスキルモデル及び/又は挙動の生成及び/又は修正を行うことによって)ロボットの監督者(例えば、遠隔のユーザー)にこの情報を提供することができる。ロボットの監督者は、そのロボットデバイス及び/又は他のロボットデバイスによって収集された情報、及び/又はロボットが使用しているモデルのパラメーターを繰り返し(例えば、特定の時間間隔で)及び/又は継続的に(例えば、リアルタイムで)微調整することができる。いくつかの実施形態では、ロボットの監督者は、ロボットデバイスとのこの能動的な情報交換により、繰り返し及び/又は継続的に、ある特定の環境にロボットデバイスを適応させることができる。例えば、ロボットの監督者は、環境中を通ってナビゲートするためにロボットデバイスが使用中であり得る、計画された経路を修正することができ、これは、次に、その搬送要素の動きを生成するためにロボットデバイスによって使用される情報及び/又は1つ若しくは複数のモデルを変更することができる。共に、ロボットの監督者によって提供され、及び/又はロボットデバイスによって行われるこれらの変更は、環境のマップ(例えばマップ1600)の1つ又は複数の層(例えば、マップの社会的層又は意味層など)に供給され得る。 [0152] In some embodiments, the robotic device can repeatedly and/or continuously scan its environment at 1304 for modeling and learning purposes at 1309. For example, the robotic device can collect data about its environment and/or objects within that environment (e.g., including humans and their behavior in response to robot actions) and use that information to develop new behaviors and/or actions. In some embodiments, the robotic device can collect a large amount of information about an environment, which can be used by the robotic device to further refine and/or generate a model specific to that environment. In some embodiments, the robotic device can provide this information to a robot supervisor (e.g., a remote user), who can use this information to further adapt the robotic device to a particular environment (e.g., by generating and/or modifying skill models and/or behaviors within that environment). The robot supervisor can repeatedly (e.g., at specific time intervals) and/or continuously (e.g., in real time) fine-tune the information collected by the robotic device and/or other robotic devices and/or the parameters of the models the robot is using. In some embodiments, this active exchange of information with the robotic device allows the robotic supervisor to repeatedly and/or continuously adapt the robotic device to a particular environment. For example, the robotic supervisor can modify a planned path that the robotic device may be using to navigate through an environment, which in turn can change the information and/or one or more models used by the robotic device to generate the movements of its transport elements. These changes, both provided by the robotic supervisor and/or implemented by the robotic device, can be fed into one or more layers (e.g., the social layer or semantic layer of the map) of the environment (e.g., map 1600).
[0153] 1306では、ロボットデバイスは、環境内でどの1つ又は複数のアクションを実行すべきかを決定すること、すなわち、特定のアクションを実行可能なリソース又はコンポーネントのセットに関するアービトレーションを行うことができる。ロボットデバイスは、1つ又は複数のアービトレーションアルゴリズム(例えば、1つ又は複数のアービトレーションアルゴリズム1758)に基づいて、異なるアクション間で選択することができる。ロボットデバイスは、自律的に、及び/又はユーザー入力を用いて、アービトレーションを行うことができる。例えば、ロボットデバイスが、そのコンポーネントの1つ若しくは複数、及び/又は環境内の物体の現在の状態を決定することができないとき、又はロボットデバイスが、どのアクションを実行すべきかを決定すること、及び/又は選択されたスキルを実行するやり方を計画することができないときに、ロボットデバイスは、ユーザー入力を要求するように構成されてもよい。いくつかの実施形態では、ロボットデバイスが、ある特定の状況を熟知している(例えば、その状況においてアクションを以前に学習及び/又は実行した)場合には、アクションのセットの中から自律的に選択し、ロボットデバイスが、新しい状況に遭遇した場合には、ユーザー入力を要求するように構成されてもよい。ロボットデバイスが新しい状況に遭遇したときに、ロボットデバイスが実行すべき適切なアクションをユーザーが選択することをロボットデバイスが要求することができ、又は代替的に、ロボットデバイスが、アクションを選択し、そのアクションの選択を確認するようにユーザーに促すことができる。 [0153] At 1306, the robotic device may determine which one or more actions to perform in the environment, i.e., arbitrate among a set of resources or components on which a particular action can be performed. The robotic device may select among different actions based on one or more arbitration algorithms (e.g., one or more arbitration algorithms 1758). The robotic device may arbitrate autonomously and/or with user input. For example, the robotic device may be configured to request user input when it is unable to determine the current state of one or more of its components and/or objects in the environment, or when it is unable to determine which action to perform and/or plan how to perform a selected skill. In some embodiments, the robotic device may be configured to autonomously select from among a set of actions when it is familiar with a particular situation (e.g., has previously learned and/or performed actions in that situation) and to request user input when it encounters a new situation. When the robotic device encounters a new situation, the robotic device may request that the user select an appropriate action for the robotic device to perform, or alternatively, the robotic device may prompt the user to select an action and confirm the selection of the action.
[0154] いくつかの実施形態では、人間のオペレーター(例えば、ロボットの監督者)は、ロボットデバイスをモニタリングし、人間のオペレーターがロボットデバイスによるアクションの実行に介入したいときに、ロボットデバイスに信号を送ることもできる。人間のオペレーターは、ロボットデバイスの近くに、及び/又はロボットデバイス、若しくはロボットデバイスをモニタリングするために使用され得る近くのデバイスにネットワークを介して接続された遠隔計算デバイスに位置してもよい。例えば、人間のオペレーターが、安全上の理由から(例えば、人間若しくはロボットデバイスの周囲の環境への害を阻止するため)、及び/又はロボットデバイスに対する損傷を防止するために、新しいスキル又は挙動をロボットデバイスに教示したいときに、人間のオペレーターは、ロボットデバイスによるアクションの実行に介入することを決断し得る。 [0154] In some embodiments, a human operator (e.g., a robot supervisor) may monitor the robotic device and send a signal to the robotic device when the human operator wishes to intervene in the performance of an action by the robotic device. The human operator may be located near the robotic device and/or on a remote computing device connected via a network to the robotic device or a nearby device that may be used to monitor the robotic device. For example, the human operator may decide to intervene in the performance of an action by the robotic device when the human operator wishes to teach the robotic device a new skill or behavior for safety reasons (e.g., to prevent harm to the environment surrounding the human or the robotic device) and/or to prevent damage to the robotic device.
[0155] (例えば、不慣れな状況のため、又はユーザーからの信号に応答して)ユーザー入力が必要であるとの決定に応答して(1312:YES)、ロボットデバイスは、任意選択的に、1314において、ユーザー入力を提供するようにユーザーに促すことができる。例えば、ロボットデバイスは、搭載ディスプレイ又は遠隔デバイスに位置するディスプレイに(例えば、遠隔又はクラウドインターフェースを用いて)、ユーザー入力を要求するプロンプトをユーザーに対して表示させることができる。ロボットデバイスは、1315において、ユーザー入力を受け取り、そのユーザー入力に基づいてアービトレーションを行うことができる。ユーザー入力が必要とされない場合には(1312:NO)、ロボットデバイスは、自律的にアービトレーションを行うことを継続する。 [0155] In response to determining that user input is required (e.g., due to an unfamiliar situation or in response to a signal from the user) (1312: YES), the robotic device may optionally prompt the user to provide user input at 1314. For example, the robotic device may display a prompt to the user requesting user input on an on-board display or a display located on a remote device (e.g., using a remote or cloud interface). The robotic device may receive the user input at 1315 and perform arbitration based on the user input. If user input is not required (1312: NO), the robotic device continues to perform arbitration autonomously.
[0156] ロボットデバイスが、実行すべきアクションを選択した後に、ロボットデバイスは、1308において、アクションを計画及び実行することができる。上述の通り、アクションは、(例えば、本明細書に記載される操作要素などの操作要素に関与する)操作アクション、又は(例えば、本明細書に記載される搬送要素などの搬送要素に関与する)移動、及び/又は社会的挙動などのタスクに関連付けられ得る。アクションを実行する間、ロボットデバイスは、1304において、その周辺環境をスキャンし続けることができる。ロボットデバイスが、それの現在の状態及び/又は環境(例えば、環境内の物体の場所)の状態の変化を検出すると、ロボットデバイスは、1310において、ロボットデバイスがアクションの実行を中断すべきか否かを決定するために、その変化を評価することができる。例えば、ロボットデバイスは、そのコンポーネントの1つ若しくは複数と、環境内の人間若しくは他の物体との物理的係合の検出に応答して(例えば、人間のオペレーターが、操作要素、搬送要素などと接触したとき)、又はすぐ近くに人間若しくは他の物体の存在を検出したときに、アクションの実行を中断することを決定し得る。追加的又は代替的に、ロボットデバイスは、ユーザー(例えば、ロボットの監督者)からの信号の受信に応答して、アクションの実行を中断することを決定し得る。いくつかの実施形態では、ロボットデバイスは、アクションの実行中の特定の時点で、例えば、ロボットデバイスが、インタラクティブ学習テンプレートに規定されるように、ユーザーがアクションの一部を実演することを必要とし得るときに、アクションの実行を中断するように前もって構成されてもよい。インタラクティブ学習テンプレートを使用した学習に関するさらなる詳細は、図15を参照して、本明細書に説明される。 [0156] After the robotic device selects an action to perform, the robotic device can plan and execute the action at 1308. As described above, the action can be associated with a task, such as a manipulation action (e.g., involving a manipulating element, such as a manipulating element described herein), or a movement (e.g., involving a transport element, such as a transport element described herein), and/or a social behavior. While performing the action, the robotic device can continue to scan its surrounding environment at 1304. If the robotic device detects a change in its current state and/or the state of the environment (e.g., the location of an object within the environment), the robotic device can evaluate the change at 1310 to determine whether the robotic device should abort the execution of the action. For example, the robotic device may decide to abort the execution of the action in response to detecting physical engagement of one or more of its components with a human or other object in the environment (e.g., when a human operator contacts a manipulating element, transport element, etc.), or when it detects the presence of a human or other object in the immediate vicinity. Additionally or alternatively, the robotic device may decide to suspend execution of an action in response to receiving a signal from a user (e.g., a robot supervisor). In some embodiments, the robotic device may be pre-configured to suspend execution of an action at a particular point during execution of the action, for example, when the robotic device may require the user to demonstrate part of the action as defined in the interactive learning template. Further details regarding learning using interactive learning templates are described herein with reference to FIG. 15.
[0157] ロボットデバイスが、アクションの実行の中断を決定した場合には(1310:YES)、ロボットデバイスは、1312において、ユーザー入力が必要とされるか否かを決定することができる。上述の通り、ユーザー入力が必要とされることをロボットデバイスが決定した場合には(1312:YES)、ロボットデバイスは、任意選択的に、1314~1315において、ユーザー入力を促し、及び/又はユーザー入力を受け取ることができる。次いで、ロボットデバイスは、1304における、周辺環境のセンシング又はスキャニング、1306における、リソースのセットに関するアービトレーションの実施、及び/又は1308における、アクションの実行に戻ることができる。任意選択的に、図14及び15に示されるように、ユーザー入力が必要とされることをロボットデバイスが決定すると、ロボットデバイスは、1402において学習モードに切り替え、次に、1404におけるスキルの学習、又は1406における環境的制約の学習に進み得る。ユーザー入力が必要とされないことをロボットデバイスが決定した場合には(1312:NO)、ロボットデバイスは、1304における、周辺環境のセンシング又はスキャニング、1306における、リソースのセットに関するアービトレーションの実施、及び/又は1308における、アクションの実行に戻ることができる。アクションが中断される必要がないことをロボットデバイスが決定した場合には(1310:NO)、ロボットデバイスは、1308において、アクションの実行を継続することができる。 [0157] If the robotic device determines to abort the execution of the action (1310: YES), the robotic device may determine at 1312 whether user input is required. As described above, if the robotic device determines that user input is required (1312: YES), the robotic device may optionally prompt and/or receive user input at 1314-1315. The robotic device may then return to sensing or scanning the surrounding environment at 1304, arbitrating for a set of resources at 1306, and/or performing actions at 1308. Optionally, as shown in FIGS. 14 and 15 , once the robotic device determines that user input is required, the robotic device may switch to a learning mode at 1402 and then proceed to learning a skill at 1404 or learning environmental constraints at 1406. If the robotic device determines that user input is not required (1312: NO), the robotic device can return to sensing or scanning the surrounding environment at 1304, arbitrating for a set of resources at 1306, and/or performing an action at 1308. If the robotic device determines that the action does not need to be interrupted (1310: NO), the robotic device can continue performing the action at 1308.
[0158] いくつかの実施形態では、例えば、ロボットデバイスが、ある特定のタスク又は挙動を実行することを助けるために、ロボットデバイスは、いつロボットデバイスがユーザー入力を求める必要があり得るかを決定するように構成されてもよい。このような手助けは、特定のアクションの実行中、及び/又はロボットデバイスが環境中をナビゲートしている間の両方で要求され得る。ロボットデバイスは、それの学習済みモデル、並びに環境及びその環境内の物体に関する情報を使用して、1312において、ロボットデバイスがいつユーザー入力を求める必要があるか、及びそのユーザー入力を求めるやり方を決定するように構成されてもよい。例えば、ロボットデバイスは、それの環境内のドアのタイプ及び異なる複数のユーザーの知識を用いて、助けを求めるとき、及びそのやり方(例えば、異なる複数のユーザーに、異なる複数のタイプのドア(例えば、特定の許可又は知識を必要とするキーパッドを備えたドア)を開けることを手伝うように求めること、及び他の人たちよりも手助けを提供する傾向がより高い可能性がある特定のタイプのユーザーに依頼することを知ること(例えば、看護師対医師))を決定することができる。 [0158] In some embodiments, the robotic device may be configured to determine when it may need to ask for user input, for example, to help it perform a particular task or behavior. Such assistance may be requested both during the performance of a particular action and/or while the robotic device is navigating an environment. The robotic device may be configured to use its learned model and information about the environment and objects within that environment to determine 1312 when it needs to ask for user input and how to ask for that user input. For example, the robotic device may use knowledge of the types of doors and different users in its environment to determine when and how to ask for help (e.g., asking different users to help open different types of doors (e.g., doors with keypads that require specific permissions or knowledge), and knowing to ask certain types of users who may be more likely to provide help than others (e.g., nurses vs. doctors)).
[0159] いくつかの実施形態では、例えば、1315においてロボットデバイスによって受け取られたユーザー入力には、スキルの選択及び/又は実行が、適切であったか否か、及び/又は成功したか否かに関するユーザーからのフィードバックが含まれ得る。例えば、ユーザーは、アクションの良い例又は悪い例として、ロボットデバイスによって実行されている(又はロボットデバイスによって以前に実行された)アクション(例えば、タスク又は挙動)にタグを付けることができる。ロボットデバイスは、このフィードバックを(例えば、このアクション及び/又は他のアクションに関連付けられた成功基準として)保存し、それを使用して、今後、そのアクション又は他のアクションの選択及び/又は実行を調整することができる。 [0159] In some embodiments, for example, the user input received by the robotic device at 1315 may include feedback from the user regarding whether the selection and/or execution of the skill was appropriate and/or successful. For example, the user may tag an action (e.g., a task or behavior) being performed by the robotic device (or previously performed by the robotic device) as a good or bad example of the action. The robotic device may store this feedback (e.g., as success criteria associated with this action and/or other actions) and use it to adjust the selection and/or execution of that or other actions in the future.
[0160] いくつかの実施形態では、ロボットデバイスは、社会的に適切な挙動に従事するように構成される。ロボットデバイスは、人間のいる環境で動作するように設計され得る。人間の周りで動作するときに、1306~1308において、ロボットデバイスは、そのアクションが人間によってどのように認識され得るかを絶えず計画するように構成され得る。例えば、ロボットデバイスが移動しているときに、ロボットデバイスは、1304において、人間を探して、その周辺環境をモニタリングし、1308において、それが遭遇した人間との社会的インタラクションに従事することができる。ロボットデバイスが、タスクを全く実行していない(例えば、静止している)ときは、ロボットデバイスは、1304において、人間を探して、その周辺環境をモニタリングすることを継続し、1306において、人間がロボットデバイスの存在をどのように認識し得るかに基づいて、ロボットデバイスが、1つ又は複数の社会的に適切な挙動を実行する必要があり得るか否かを決定することができる。このような実施形態では、ロボットデバイスは、特定のコンテキスト又は状況を所与として、社会的に適切な挙動を計画及び実行する基礎的フレームワーク(例えば、1つ又は複数のアービトレーションアルゴリズム)を用いて構成され得る。ロボットデバイスは、複数のリソース(例えば、操作要素、搬送要素、頭部又は目などの人型コンポーネント、音生成器など)を管理し、これらのリソースの1つ又は複数に基づいて、適切な挙動を生成するように構成され得る。 [0160] In some embodiments, the robotic device is configured to engage in socially appropriate behaviors. The robotic device may be designed to operate in an environment where humans are present. When operating around humans, the robotic device may be configured to continually plan 1306-1308 how its actions may be perceived by humans. For example, when the robotic device is moving, the robotic device may monitor its surroundings in search of humans in 1304 and engage in social interactions with humans it encounters in 1308. When the robotic device is not performing any tasks (e.g., is stationary), the robotic device may continue to monitor its surroundings in search of humans in 1304 and determine 1306 whether the robotic device may need to perform one or more socially appropriate behaviors based on how humans may perceive the robotic device's presence. In such embodiments, the robotic device may be configured with an underlying framework (e.g., one or more arbitration algorithms) to plan and execute socially appropriate behaviors given a particular context or situation. The robotic device may be configured to manage multiple resources (e.g., manipulation elements, carrying elements, humanoid components such as heads or eyes, sound generators, etc.) and generate appropriate behaviors based on one or more of these resources.
[0161] 図18は、注目機構(例えば、目要素)に関するアービトレーションを行う、ロボットデバイスのコンポーネントの一例を提供する。例えば、ロボットデバイスは、カメラ、又は視線(例えば、目要素)を有すると人間によって認識され得る他の要素を有してもよい。ロボットデバイスの近くの人間は、目要素が向けられた方向をロボットデバイスが注目しているものとして認識し得る。したがって、ロボットデバイスは、ロボットデバイスが動作しているとき、及び/又は人間の近くにいるときに、目要素がどこに向けられているかを決定するように構成されてもよい。ロボットデバイスが、人間の周りで動作するとき、及び/又は人間がいるところで、社会的に適切な挙動を維持するように、ロボットデバイスは、目要素の使用のアービトレーションを絶えず行うことができる。 [0161] FIG. 18 provides an example of a component of a robotic device that arbitrates regarding an attention mechanism (e.g., an eye element). For example, a robotic device may have a camera or other element that can be perceived by a human as having a line of sight (e.g., an eye element). A human near the robotic device may recognize the direction the eye element is pointed as the robotic device's attention. Thus, the robotic device may be configured to determine where the eye element is pointed when the robotic device is operating and/or near a human. The robotic device may continually arbitrate the use of the eye element so that the robotic device maintains socially appropriate behavior when operating around and/or in the presence of humans.
[0162] 図18に示されるように、ロボットデバイスの異なる複数のコンポーネントが、視線ターゲット(例えば、ある特定の方向に目要素を向けさせること)を要求し得る。アクティブセンシングに関連する第1のコンポーネント(例えば、カメラ、レーザー、又は他のセンサー)は、1510において、物体が目要素の視野内にあることを決定することができる。第1のコンポーネントはさらに、1514において、物体が人間であることを決定することができる。物体が人間であるとの決定に応答して、第1のコンポーネントは、人間の顔に目要素を向けさせるために、要求1516を中央リソースマネージャー1508(例えば、制御ユニット(例えば、1つ又は複数の制御ユニット202、302及び/又は1702)及び/又は制御ユニットのコンポーネント)に送ることができる。ナビゲーションアクションに関連する第2のコンポーネント(例えば、カメラ、レーザー、又は他のセンサー)は、1520において、ある特定の場所(例えば、ナビゲーションの中間又は最終目的地)が、目要素の視界内にあることを決定することができる。その場所が視界内にあるとの決定に応答して、第2のコンポーネントは、その場所に目要素を向けさせるために、要求1522を中央リソースマネージャー1508に送ることができる。操作アクションに関連する第3のコンポーネント(例えば、操作要素上のセンサー、カメラ、又は他のセンサー)は、1530において、ロボットデバイスが、物体と係合していること(例えば、ロボットデバイスが物体を運んでいること、人間がロボットデバイスに接触したこと)を決定することができる。ロボットデバイスが物体と係合しているとの決定に応答して、第3のコンポーネントは、物体に目要素を向けさせるために、要求1532を中央リソースマネージャー1508に送ることができる。 [0162] As shown in FIG. 18 , different components of the robotic device may request a gaze target (e.g., pointing the eye element in a particular direction). A first component associated with active sensing (e.g., a camera, laser, or other sensor) may determine 1510 that an object is within the field of view of the eye element. The first component may further determine 1514 that the object is a human. In response to determining that the object is a human, the first component may send a request 1516 to the central resource manager 1508 (e.g., a control unit (e.g., one or more control units 202, 302, and/or 1702) and/or components of the control unit) to point the eye element toward the human's face. A second component associated with navigation actions (e.g., a camera, laser, or other sensor) may determine 1520 that a particular location (e.g., an intermediate or final navigation destination) is within the field of view of the eye element. In response to determining that the location is within line of sight, the second component can send a request 1522 to the central resource manager 1508 to direct an eye element to the location. A third component associated with the manipulation action (e.g., a sensor on the manipulation element, a camera, or other sensor) can determine 1530 that the robotic device is engaged with an object (e.g., the robotic device is carrying an object, a human has touched the robotic device). In response to determining that the robotic device is engaged with the object, the third component can send a request 1532 to the central resource manager 1508 to direct an eye element to the object.
[0163] 中央リソースマネージャー1508は、ロボットデバイスのコンポーネントから要求1516、1522、及び1532を受け取り、1540において、どの方向に目要素を向けるべきかを決定するためにアービトレーションを行うことができる。どの方向に目要素を向けるべきかを決定するときに、中央リソースマネージャー1508は、規定されたルール又は制約(例えば、社会的に適切な制約)を考慮に入れることができる。これらの規定されたルールには、例えば、あらかじめ規定された期間(例えば、約5秒)の間、目要素を2回動かさないこと、少なくとも、あらかじめ規定された最短期間(例えば、約5秒)の間、目要素をある方向に向けさせること、非人間物体と人間とで異なり得る、あらかじめ規定された最長期間の後に、目要素を動かすことなどが含まれ得る。規定されたルールは、視線リソースを管理するためのアービトレーションアルゴリズムにエンコードされ得る。 [0163] The central resource manager 1508 receives requests 1516, 1522, and 1532 from the components of the robotic device and can arbitrate 1540 to determine in which direction the eye element should be pointed. When determining in which direction the eye element should be pointed, the central resource manager 1508 can take into account specified rules or constraints (e.g., socially appropriate constraints). These specified rules can include, for example, not moving the eye element twice for a predefined period of time (e.g., approximately 5 seconds), having the eye element point in a direction for at least a predefined minimum period of time (e.g., approximately 5 seconds), moving the eye element after a predefined maximum period of time, which can differ for non-human objects and humans, etc. The specified rules can be encoded into an arbitration algorithm for managing gaze resources.
[0164] いくつかの実施形態では、中央リソースマネージャー1508は、社会的コンテキスト及び環境に関して収集された他の情報に基づいて、視線リソースのアービトレーションを行うことができる。例えば、ロボットデバイスは、ある挙動を特定の場所に関連付けるように構成されてもよい(例えば、混雑した戸口又は通路を通ってナビゲートしようと試みる前に、人がその戸口又は通路を通過するのを待つこと、静かなエリアでは、より小さい音で動作する(例えば、サウンド及び/又はスピーチ機能性の使用を控える)ことなど)。ロボットデバイスは、このような場所に関連する社会的コンテキスト情報を捕捉し、それをナビゲーションに使用される(図19を参照して本明細書に記載されるような)環境の表現に加えるように構成されてもよい。いくつかの実施形態では、人間のオペレーターが、社会的コンテキスト情報をロボットデバイスに提供することも可能であり、ロボットデバイスが、それが動作する環境に関してより多くを学習するにつれて、ロボットデバイスは、経時的に、この情報を適応させることができる。 [0164] In some embodiments, the central resource manager 1508 can arbitrate gaze resources based on social context and other information collected about the environment. For example, a robotic device may be configured to associate certain behaviors with particular locations (e.g., waiting for a person to pass through a crowded doorway or hallway before attempting to navigate through the doorway or hallway, operating quieter in quiet areas (e.g., refraining from using sound and/or speech functionality), etc.). The robotic device may be configured to capture social context information associated with such locations and add it to a representation of the environment (as described herein with reference to FIG. 19) used for navigation. In some embodiments, a human operator may also provide social context information to the robotic device, and the robotic device can adapt this information over time as it learns more about the environment in which it operates.
[0165] 図15~17は、学習モードで動作するロボットデバイスのフロー図を示す。上述の通り、ロボットデバイスは、実行モードで動作し、例えば、1312において、ロボットデバイスがユーザー入力を必要とすることを決定したときに、学習モードでの動作に切り替えることができる。代替的又は追加的に、ロボットデバイスは、例えばロボットデバイスが新しい環境(例えば、新しいエリア、建物など)に最初に配備されたときに、学習モードで動作するように設定されてもよい。ロボットデバイスは、ロボットデバイスが実行モードでの動作に切り替え可能であることをユーザーがロボットデバイスに示すまで、及び/又はロボットデバイスが実行モードでの動作に切り替え可能であることをロボットデバイスが決定するまで、学習モードで動作してもよい。 [0165] FIGS. 15-17 show flow diagrams of a robotic device operating in learn mode. As described above, the robotic device may operate in run mode and switch to operate in learn mode, for example, at 1312, when the robotic device determines that it requires user input. Alternatively or additionally, the robotic device may be configured to operate in learn mode, for example, when the robotic device is initially deployed to a new environment (e.g., a new area, building, etc.). The robotic device may operate in learn mode until a user indicates to the robotic device that it is capable of switching to operate in run mode and/or until the robotic device determines that it is capable of switching to operate in run mode.
[0166] 学習モードで動作するときに、ロボットデバイスは、1404において、スキルを学習すること、及び/又は1406において、環境的制約を学習することができる。ロボットデバイスは、スキルの既存のモデル(例えば、スキルの汎用モデル)を用いて、又は用いずに、スキルを学習するように構成されてもよい。既存のモデルを用いずにスキルを学習する(例えば、予備知識に頼ることなくスキルを学習する)場合には、ロボットデバイスは、図10を参照して本明細書に記載されるように、スキルの実演が指導された後に、スキルのモデルを生成することができる。既存のモデル(例えば、スキルの汎用モデル)を用いてスキルを学習する場合には、ロボットデバイスは、既存のモデルを用いてスキルの実行を開始し、ユーザーがスキルの一部を実演することをロボットデバイスが必要とするときに、ユーザー入力を要求することができる。スキルの既存のモデルは、インタラクティブ学習テンプレート(すなわち、スキルの実行中の指定された時点で、ユーザーからの入力を用いてスキルを学習するようにロボットデバイスに指導するためのテンプレート)の一部であってもよく、又はその一部を形成してもよい。 [0166] When operating in the learning mode, the robotic device may learn a skill at 1404 and/or learn environmental constraints at 1406. The robotic device may be configured to learn a skill with or without an existing model of the skill (e.g., a generic model of the skill). When learning a skill without an existing model (e.g., learning a skill without relying on prior knowledge), the robotic device may generate a model of the skill after being taught performance of the skill, as described herein with reference to FIG. 10. When learning a skill using an existing model (e.g., a generic model of the skill), the robotic device may begin performing the skill using the existing model and request user input when the robotic device requires the user to demonstrate a portion of the skill. The existing model of the skill may be part of, or form part of, an interactive learning template (i.e., a template for teaching the robotic device to learn a skill with input from a user at specified points during performance of the skill).
[0167] 図16は、インタラクティブ学習テンプレートを用いてスキルを学習するプロセスを示す。ロボットデバイスは、ある特定の状況(例えば、建物)に配備され得る。ロボットデバイスは、1410において、スキルの既存のモデルの選択を行うことができる。スキルの既存のモデルは、ロボットデバイスが動作している環境又は状況に特化していない、スキルの汎用モデルでもよい。1412において、ロボットデバイスは、図11を参照して本明細書に述べられたプロセスに類似のプロセスに従って、スキルモデルを使用してスキルを実行する計画を生成することができる。1414では、ロボットデバイスは、ユーザー入力及び/又は特化を必要としない、スキルの1つ又は複数のステップ又は部分を行うことによって、スキルの実行を開始することができる。スキルの一部(例えば、ロボットデバイスが実行の仕方を決定できない部分、又はロボットデバイスがスキルを実行している状況への特化を必要とするスキルの部分)に到達すると(1416:YES)、ロボットデバイスは、1418において、スキルのその部分の実演を提供するようにユーザーに促すことができる。いくつかの実施形態では、インタラクティブ学習テンプレートは、ロボットデバイスがユーザーに実演を促すべき時をロボットデバイスに示すことができる。代替的又は追加的に、例えば、ロボットデバイスが、環境内の物体の状態を決定することができず、及び/又は環境によって課される制約を所与として、スキルのある特定の部分を実行する計画を生成することができない場合に、ロボットデバイスがスキルの一部を実行できるためにはユーザー入力を必要とすることをロボットデバイスは自律的に決定することができる。いくつかの実施形態では、ユーザー(例えば、ロボットの監督者)は、ロボットデバイスのスキルの実行もモニタリングし、ユーザーがロボットデバイスに対してスキルの一部を実演したいときに、ロボットデバイスに信号を送ることができる。ロボットデバイスは、ユーザーから信号を受信すると、1418に進むことを決定することができる。 [0167] FIG. 16 illustrates a process for learning a skill using an interactive learning template. A robotic device may be deployed in a particular context (e.g., a building). The robotic device may select an existing model of the skill at 1410. The existing model of the skill may be a generic model of the skill that is not specific to the environment or context in which the robotic device is operating. At 1412, the robotic device may generate a plan to perform the skill using the skill model, following a process similar to that described herein with reference to FIG. 11. At 1414, the robotic device may begin performing the skill by performing one or more steps or portions of the skill that do not require user input and/or specialization. Upon reaching a portion of the skill (e.g., a portion of the skill that the robotic device cannot determine how to perform or that requires specialization to the context in which the robotic device is performing the skill) (1416: YES), the robotic device may prompt the user to provide a demonstration of that portion of the skill at 1418. In some embodiments, the interactive learning template may indicate to the robotic device when the robotic device should prompt the user for a demonstration. Alternatively or additionally, the robotic device may autonomously determine that user input is required before the robotic device can perform a portion of a skill, for example, if the robotic device is unable to determine the state of objects in the environment and/or unable to generate a plan to perform a particular portion of a skill given constraints imposed by the environment. In some embodiments, a user (e.g., a robot supervisor) may also monitor the robotic device's performance of a skill and send a signal to the robotic device when the user wants the robotic device to demonstrate a portion of a skill. Upon receiving a signal from the user, the robotic device may decide to proceed to 1418.
[0168] 1420では、ユーザーは、ロボットデバイスに動作を指導することができる。例えば、ユーザーは、ロボットデバイスの1つ又は複数のコンポーネント(例えば、操作要素、搬送要素など)を動かすことにより、スキルの一部を実演することができる。ロボットデバイスに動作を指導する間、ユーザーは、任意選択的に、1422において、ロボットデバイスのコンポーネントの1つ若しくは複数、及び/又は環境の状態に関する情報を捕捉すべき時をロボットデバイスに示すことができる。例えば、ロボットデバイスは、ロボットデバイスの動作中のキーフレームにおいて、操作要素、搬送要素、及び/又は環境に関する情報を含む感覚情報を捕捉するための信号をユーザーから受信することができる。代替的に、ロボットデバイスは、感覚情報を捕捉すべき時を自律的に決定することができる。例えば、ロボットデバイスがユーザーによって動かされている間、ロボットデバイスは、そのコンポーネントの1つ又は複数の変化をモニタリングすることができ、それらの変化が閾値を超えたとき、又はコンポーネントの軌道に方向変化が生じたときに、ロボットデバイスは、自律的に、その時点をキーフレームとして選択し、そのキーフレームにおけるロボットデバイス及び/又は環境に関する情報を記録することができる。ユーザーからの信号の受信、又は自律的な感覚情報を捕捉する決定に応答して、ロボットデバイスは、1424において、そのセンサーの1つ又は複数を用いて、感覚情報を捕捉することができる。ロボットデバイスの動作中に、ロボットデバイスは、1430において、継続的又は周期的に、ユーザーから信号を受信することなく、感覚情報を記録することもできる。 At 1420, a user can teach the robotic device an action. For example, the user can demonstrate a portion of a skill by moving one or more components (e.g., a manipulation element, a transport element, etc.) of the robotic device. While teaching the robotic device an action, the user can optionally indicate to the robotic device at 1422 when it should capture information about the state of one or more of the components of the robotic device and/or the environment. For example, the robotic device can receive a signal from the user at key frames during the robotic device's movement to capture sensory information, including information about the manipulation element, the transport element, and/or the environment. Alternatively, the robotic device can autonomously determine when to capture sensory information. For example, while the robotic device is being moved by the user, the robotic device can monitor changes in one or more of its components, and when those changes exceed a threshold or a directional change occurs in the trajectory of a component, the robotic device can autonomously select that time as a key frame and record information about the robotic device and/or the environment at that key frame. In response to receiving a signal from a user or determining to autonomously capture sensory information, the robotic device can capture sensory information using one or more of its sensors at 1424. During operation of the robotic device, the robotic device can also record sensory information continuously or periodically at 1430 without receiving a signal from a user.
[0169] 動作又は実演が完了すると(1426:YES)、ロボットデバイスは、任意選択的に、1432において、実演されたスキルの一部を学習することに関連する特徴の選択を受け取ることができる。いくつかの実施形態では、ロボットデバイスは、1432において、自律的に、特徴の選択を行い、及び/又はロボットデバイスによって行われた選択を確認するようにユーザーに促すことができる。1436では、ロボットデバイスは、実演に関連する情報を保存することができる。スキルの実行が完了していない場合には(1417:NO)、ロボットデバイスは、1414において、スキルの実行を継続し、必要であれば、1418において、スキルの部分のさらなる実演をユーザーに促すことができる。ロボットデバイスは、アクションの実行が完了するまで(1417:YES)インタラクティブな学習プロセスを繰り返し続けることができ、このアクションの実行の完了時点で、ロボットデバイスは、1438において、ロボットデバイスがスキルを実行した状況に特化した部分を有するスキルのモデルを生成することができる。次に、ロボットデバイスは、別のスキル及び/又は環境的制約を学習することができる。代替的に、ロボットデバイスが、別のスキル及び/又は環境的制約を学習する必要がない場合には、ロボットデバイスは、1301において、実行モードに切り替わり、環境のセンシング又はスキャニング、アービトレーションの実施、及び/又はアクションの実行を開始することができる。 [0169] Upon completion of the action or performance (1426: YES), the robotic device may optionally receive, at 1432, a selection of features relevant to learning the portion of the skill that was demonstrated. In some embodiments, the robotic device may autonomously perform the feature selection and/or prompt the user to confirm the selection made by the robotic device, at 1432. At 1436, the robotic device may save information related to the performance. If skill performance is not complete (1417: NO), the robotic device may continue performing the skill, at 1414, and, if necessary, prompt the user for further performance of portions of the skill, at 1418. The robotic device may continue to repeat the interactive learning process until action performance is complete (1417: YES), at which point the robotic device may generate, at 1438, a model of the skill having portions specific to the context in which the robotic device performed the skill. The robotic device may then learn another skill and/or environmental constraints. Alternatively, if the robotic device does not need to learn additional skills and/or environmental constraints, the robotic device may switch to execution mode at 1301 and begin sensing or scanning the environment, performing arbitration, and/or performing actions.
[0170] インタラクティブ学習テンプレートを用いて、ロボットデバイスは、スキル用のモデルの初期セットが教示及び/又は提供される。ロボットデバイスが、ある特定の環境(例えば、病院)において現場で配備される前に、モデルの初期セットが開発されてもよい。例えば、このモデルの初期セットは、工場の状況下で、又は訓練場所で開発され、ロボットデバイスに利用可能にされてもよい。一旦現場で配備されると、ロボットデバイスは、例えば、本明細書に記載されるようなインタラクティブ学習セッションによって、モデルの初期セットを環境に適応又は特化させることができる。また、新しいモデルの開発(例えば、工場又は訓練場所においてオフサイトで)に伴って、新しいモデルは、例えば、ネットワーク接続により、ロボットデバイスに利用可能にされてもよい。したがって、本明細書に記載されるシステム及び方法により、これらのロボットデバイスが現場に配備された後であっても、ユーザー及び/又はエンティティーが、スキルの新しいモデルを開発し、それらをロボットデバイスに提供し続けることが可能となる。 [0170] Using interactive learning templates, robotic devices are taught and/or provided with an initial set of models for skills. The initial set of models may be developed before the robotic devices are deployed in the field in a particular environment (e.g., a hospital). For example, this initial set of models may be developed and made available to the robotic devices in a factory setting or at a training site. Once deployed in the field, the robotic devices can adapt or specialize the initial set of models to the environment, for example, through interactive learning sessions as described herein. Additionally, as new models are developed (e.g., off-site at a factory or training site), the new models may be made available to the robotic devices, for example, via a network connection. Thus, the systems and methods described herein enable users and/or entities to continue developing new models of skills and providing them to robotic devices even after those robotic devices are deployed in the field.
[0171] インタラクティブ学習セッションの一例は、アイテムを部屋の中に移動させるための汎用モデルを適応させることに関与し得る。ロボットデバイスは、汎用モデルを備え、病院において現場で配備され得る。病院に配備されると、ロボットデバイスは、1412~1414において、アイテムを患者の部屋の中に移動させるスキルの実行を自律的に開始することができる。例えば、ロボットデバイスは、病院のマップを使用して、患者の部屋まで自律的にナビゲートすることができる。ロボットデバイスが、患者の部屋までのナビゲートを終えると、ロボットデバイスは、患者の部屋の中のどこにアイテムを降ろすべきかをユーザーが実演することをロボットデバイスが必要とすることを決定することができる(1416:YES)。ロボットデバイスは、1418において、それを特定の荷降ろし場所まで動かすことをユーザーに促すことができる。ユーザーは、1420において、例えば、ジョイスティック又は他のタイプの制御デバイスを用いて、ロボットデバイスの動作を制御することができる。上述の通り、ユーザーは、ロボットデバイスの近くの現場にいてもよく、又は遠隔地に位置してもよい。ユーザーがロボットデバイスを荷降ろし場所まで移動させる間、ロボットデバイスは、1424及び/又は1430において、それの現在の状態及び/又はそれの周辺環境に関する感覚情報を捕捉することができる。荷降ろし場所に到着すると、ロボットデバイスは、1414において、自律実行に戻るように切り替えることができる。例えば、ロボットデバイスは、既知のアームの動き(例えば、ロボットデバイスに搭載されたコンテナ内でアイテムの位置を特定し、操作要素を用いてアイテムをつかみ、及びアイテムを解放する汎用位置にその操作要素を位置付けること)を実行することができる。ロボットデバイスは、スキルの一部(例えば、アイテムを棚の上に降ろすこと)をユーザーが実演することをロボットデバイスが必要としているという2度目の決定を行うことができる(1416:YES)。ロボットデバイスは、1418において、別の実演をユーザーに促すことができ、ユーザーは、アイテムが棚の上の適所に位置するように操作要素を動かすことができる。ロボットデバイスは、1424及び/又は1430において、操作要素の動作中に、感覚情報を再び捕捉することができる。ロボットデバイスは、1414において、制御を再度取り戻し、自律的に、操作要素のグリッパーを開いて棚の上にアイテムを降ろし、その後、操作要素を静止位置に戻るように格納することができる。次に、ロボットデバイスは、実行が完了したことを決定し(1417:YES)、1438において、2つのユーザー実演中にロボットデバイスが捕捉した情報に基づいて、スキルの特化モデルを生成することができる。 [0171] An example of an interactive learning session may involve adapting a generic model for moving an item into a room. A robotic device may be equipped with the generic model and deployed on-site at a hospital. Once deployed at the hospital, the robotic device may autonomously begin performing the skill of moving an item into a patient's room, 1412-1414. For example, the robotic device may autonomously navigate to the patient's room using a hospital map. Once the robotic device has navigated to the patient's room, the robotic device may determine that the robotic device needs a user to demonstrate where in the patient's room the item should be dropped off (1416: YES). The robotic device may prompt the user to move it to a specific drop-off location, 1418. The user may control the operation of the robotic device, 1420, using, for example, a joystick or other type of control device. As described above, the user may be on-site near the robotic device or may be located remotely. While the user moves the robotic device to the unloading location, the robotic device can capture sensory information about its current state and/or its surrounding environment at 1424 and/or 1430. Upon arriving at the unloading location, the robotic device can switch back to autonomous execution at 1414. For example, the robotic device can perform known arm movements (e.g., locating an item in a container loaded on the robotic device, grasping the item with a manipulative element, and positioning the manipulative element in a generic position to release the item). The robotic device can make a second determination (1416: YES) that the robotic device needs the user to demonstrate a portion of a skill (e.g., lowering an item onto a shelf). The robotic device can prompt the user for another demonstration at 1418, and the user can move the manipulative element to place the item in place on the shelf. The robotic device can again capture sensory information during the operation of the manipulative element at 1424 and/or 1430. The robotic device may regain control at 1414 and autonomously open the gripper of the manipulative element to place the item on the shelf, then retract the manipulative element back to its resting position. The robotic device may then determine that execution is complete (1417: YES) and generate a specialized model of the skill at 1438 based on the information captured by the robotic device during the two user demonstrations.
[0172] インタラクティブ学習セッションの他の例には、例えば、上述のように、ある特定の通路及び/又は戸口を通ってナビゲートするために、ナビゲーションアクションを適応させることが含まれ得る。 [0172] Other examples of interactive learning sessions may include adapting navigation actions to navigate through certain corridors and/or doorways, for example, as described above.
[0173] いくつかの実施形態では、ユーザー(又はロボットデバイス)は、スキルのモデルを、そのスキルが実演された後、及び/又はそのスキルのモデルが生成された後に修正することができる。例えば、ユーザーは、スキルの実演中に捕捉されたキーフレームを反復し、これらのキーフレームの保持、修正、及び/又は削除を行うか否かを決定することができる。1つ又は複数のキーフレームの修正及び/又は削除を行うことによって、ユーザーは、これらのキーフレームに基づいて生成されたスキルのモデルを修正することができる。キーフレームに基づいた実演の反復及び適応バージョンを使用する例は、本明細書に援用される、Proceedings of the 7th Annual ACM/IEEE International Conference on Human-Robot Interaction (2012), pp.391-98で公表され、Akgunらによって執筆された、「Trajectories and keyframes for kinesthetic teaching: a human-robot interaction perspective」というタイトルの論文に記載されている。別の例として、インタラクティブなグラフィカル・ユーザー・インターフェース(「GUI」)を使用して、計画された実行中に、ロボットデバイスのコンポーネントの位置、向きなどに関連する分散がどのくらい許容可能であるかをユーザーが示すことができるように、スキルの実演中に捕捉されたキーフレームをユーザーに表示することができる。キーフレームと共にGUIを使用する例は、参照により本明細書に援用される、http://sim.ece.utexas.edu/static/papers/kurenkov_iros2015.pdfから入手できる、IEEE/RSJ International Conference on Intelligent Robots and Systems (2015)で公表された、Kurenkovらによって執筆された、「An Evaluation of GUI and Kinesthetic Teaching Methods for Constrained-Keyframe Skills」というタイトルの論文に記載されている。これらの例により、スキルの学習後に、スキルのモデルの修正が可能となる。本明細書に記載されるシステム及び方法によって、ロボットデバイスがスキルの特定の部分の計画及び実行を行う一方で、現在進行中のスキルの実行中に、スキルの他の部分をユーザー実演に委ねることを可能にする学習テンプレートがさらに提供される。また、本明細書に記載されるシステム及び方法によって、例えば、自律的に、又は学習プロセスに先立ってロボットデバイスに提供された情報に基づいて、いつデータを収集すべきか、及び/又はいつスキルの一部の実演を要求すべきかを決定することができるロボットデバイスが提供される。 [0173] In some embodiments, a user (or robotic device) can modify a model of a skill after the skill is demonstrated and/or after the model of the skill is generated. For example, a user can iterate through keyframes captured during a skill performance and decide whether to retain, modify, and/or delete these keyframes. By modifying and/or deleting one or more keyframes, the user can modify the model of the skill generated based on these keyframes. An example of using iterative and adaptive versions of keyframe-based performances is described in a paper entitled "Trajectories and keyframes for kinesthetic teaching: a human-robot interaction perspective" by Akgun et al., published in Proceedings of the 7th Annual ACM/IEEE International Conference on Human-Robot Interaction (2012), pp. 391-98, which is incorporated herein by reference. As another example, an interactive graphical user interface ("GUI") can be used to display keyframes captured during a skill performance to a user so that the user can indicate how much variance is acceptable associated with the position, orientation, etc., of the robotic device's components during the planned execution. Examples of using a GUI with keyframes are described in a paper by Kurenkov et al. entitled "An Evaluation of GUI and Kinesthetic Teaching Methods for Constrained-Keyframe Skills," published at the IEEE/RSJ International Conference on Intelligent Robots and Systems (2015), available at http://sim.ece.utexas.edu/static/papers/kurenkov_iros2015.pdf, which is incorporated herein by reference. These examples enable modification of a skill model after the skill has been learned. The systems and methods described herein further provide learning templates that enable a robotic device to plan and execute certain portions of a skill while leaving other portions of the skill to user demonstration during ongoing execution of the skill. The systems and methods described herein also provide a robotic device that can determine, for example, autonomously or based on information provided to the robotic device prior to the learning process, when to collect data and/or when to request the demonstration of a portion of a skill.
[0174] 図17は、環境的制約を学習するプロセスを示す。上記の通り、ロボットデバイスは、環境的制約を学習するように構成することができ、環境的制約は、その環境的制約を含む状況において学習及び/又は実行されるスキルのセットに適用可能となり得る。1450では、ロボットデバイスは、任意選択的に、制約のタイプ及び/又はその制約に関連する物体の選択をユーザーに促すことができる。制約のタイプは、例えば、障壁(例えば、壁、面、境界線)、サイズ及び/又は寸法、立入禁止区域、物体の場所、時間的制約などでもよい。1452において、ロボットデバイスは、制約のタイプ及び/又は物体の選択を受け取ることができる。任意選択的に、1454において、ユーザー(又は他のロボットデバイス)は、環境的制約を実演するための動作をロボットデバイスに指導することができる。例えば、ユーザーは、備品容器の1つ又は複数のエッジに沿ってロボットデバイスの操作要素を移動させることによって、容器のサイズをロボットデバイスに実演することができる。別の例として、ユーザーは、棚の表面に沿ってロボットデバイスの操作要素を移動させることによって、棚の場所を実演することができる。ロボットデバイスの動作中、ロボットデバイスは、1456において、1つ又は複数のセンサー(例えば、カメラ、レーザー、触覚など)を用いて、制約に関連する情報を捕捉することができる。1458では、ロボットデバイスは、環境的制約を含む状況で実行されるスキルのモデルと共に使用する、環境的制約に関連する捕捉情報を保存することができる。いくつかの実施形態では、ロボットデバイスは、上記状況で実行されるスキルの各モデルに、環境的制約に関連する情報を含めることができる。代替的に、ロボットデバイスは、上記状況でスキルを計画及び/又は実行するときに、環境的制約に関連する情報を参照するように構成されてもよい。いくつかの実施形態では、環境的制約は、環境の表現(例えば、表現1600)に加えられてもよい。 17 illustrates a process for learning environmental constraints. As described above, a robotic device can be configured to learn environmental constraints, which can be applicable to a set of skills to be learned and/or performed in a situation that includes the environmental constraints. At 1450, the robotic device can optionally prompt the user to select a type of constraint and/or an object associated with the constraint. The type of constraint may be, for example, a barrier (e.g., a wall, a surface, a boundary), a size and/or dimension, a restricted area, an object location, a time constraint, etc. At 1452, the robotic device can receive the selection of the type of constraint and/or object. Optionally, at 1454, a user (or another robotic device) can direct the robotic device in actions to demonstrate the environmental constraints. For example, a user can demonstrate the size of an equipment container to the robotic device by moving a manipulative element of the robotic device along one or more edges of the container. As another example, a user can demonstrate a shelf location by moving a manipulative element of the robotic device along the surface of the shelf. During operation of the robotic device, the robotic device may capture 1456 information related to the constraints using one or more sensors (e.g., cameras, lasers, haptics, etc.). At 1458, the robotic device may store the captured information related to the environmental constraints for use with models of skills to be performed in the situation that include the environmental constraints. In some embodiments, the robotic device may include information related to the environmental constraints in each model of a skill to be performed in the situation. Alternatively, the robotic device may be configured to reference information related to the environmental constraints when planning and/or performing a skill in the situation. In some embodiments, the environmental constraints may be added to a representation of the environment (e.g., representation 1600).
[0175] いくつかの実施形態では、ロボットデバイスは、ユーザーの実演又はロボットデバイスの動作を必要とすることなく、環境的制約を学習することができる。例えば、1452において、制約のタイプ及び/又は物体の選択を受け取った後に、ロボットデバイスは、1456において、環境的制約に関連する関連情報を求めて環境をスキャンするように構成されてもよい。いくつかの実施形態では、どの情報が環境的制約に関連するかをユーザーが確認及び/又は修正できるように、ロボットデバイスは、それが捕捉し、及び/又は環境的制約に関連すると決定した情報をユーザーに提示することができる。次に、ロボットデバイスは、1458において、関連情報を保存することができる。 [0175] In some embodiments, the robotic device can learn environmental constraints without requiring user demonstration or robotic device movement. For example, after receiving a constraint type and/or object selection at 1452, the robotic device may be configured to scan the environment for relevant information related to the environmental constraints at 1456. In some embodiments, the robotic device can present the information it has captured and/or determined to be relevant to the environmental constraints to the user so that the user can review and/or modify which information is relevant to the environmental constraints. The robotic device can then store the relevant information at 1458.
[0176] いくつかの実施形態では、ロボットデバイスは、搬送要素(例えば、車輪又はトラック)を用いて、環境内を動き回り、1つ又は複数の環境的制約を学習することができる。例えば、ロボットデバイスは、例えば、実演を受け、及び/又はスキルを実行しながら、廊下又は通路を進み、その廊下が、特定の時間フレーム中は混雑することを学習することができる。いくつかの実施形態では、ロボットデバイスは、様々な環境的制約及び/又は挙動を学習し、それらを異なる条件(例えば、時間、場所など)に関連付けることができる。例えば、ロボットデバイスは、それの1つ又は複数のセンサーによって収集された情報、ユーザー入力、及び/又は(例えば、スキルの実演及び/又は実行中に)検知された情報から導出された情報に基づいて、廊下が混雑していることを認識することができる。別の例として、ロボットデバイスは、ユーザーがある特定の部屋に入ったときに、1日のうちの様々な時間で、ロボットデバイスが「こんにちは(hello)」又は「おやすみなさい(good night)」と応答すべきかを決定することができる。 [0176] In some embodiments, a robotic device can use transport elements (e.g., wheels or tracks) to navigate an environment and learn one or more environmental constraints. For example, a robotic device can navigate a hallway or corridor while, e.g., receiving demonstrations and/or performing skills, and learn that the hallway is crowded during a particular time frame. In some embodiments, a robotic device can learn various environmental constraints and/or behaviors and associate them with different conditions (e.g., time, location, etc.). For example, a robotic device can recognize that a hallway is crowded based on information collected by one or more of its sensors, user input, and/or information derived from sensed information (e.g., during the demonstration and/or performance of a skill). As another example, a robotic device can determine whether the robotic device should respond "hello" or "good night" when a user enters a particular room at various times of day.
[0177] いくつかの実施形態では、ロボットデバイスは、自律的又はインタラクティブに、環境的制約を学習することができる。例えば、ロボットデバイスは、1458において、環境中を移動する(例えば、廊下又は通路を進む)ことによって、環境的制約の初期セットを獲得することができる。ユーザー(例えば、ロボットの監督者又はローカルユーザー)は、制約を見直し、1459において、制約を直接修正することによって、及び/又は実演によって、制約を調整すべきか否かを決定することができる。例えば、いくつかの制約は、ロボットデバイスとのインタラクション(例えば、実演)を通して提供され、他の制約(例えば、物体の場所(例えば、棚が壁から延在する距離など))は、(例えば、ユーザーインターフェース(例えば、ユーザーインターフェース240など)への)入力によって提供され得る。 [0177] In some embodiments, the robotic device can learn environmental constraints autonomously or interactively. For example, the robotic device can acquire an initial set of environmental constraints by moving through an environment (e.g., navigating a hallway or corridor) at 1458. A user (e.g., a robot supervisor or local user) can review the constraints and determine whether to adjust them at 1459 by directly modifying the constraints and/or by demonstration. For example, some constraints may be provided through interaction with the robotic device (e.g., demonstration), while other constraints (e.g., object locations (e.g., the distance a shelf extends from a wall)) may be provided by input (e.g., to a user interface (e.g., user interface 240)).
[0178] 図21は、マップ2120(例えば、建物(例えば、病院など)のマップ)を出入りする情報の一例を示す。マップ2120は、本明細書に記載されるようなロボットデバイスのいずれかのロボットデバイスなどの、1つ又は複数のロボットデバイスによって保存及び/又は保持され得る。マップ2120は、図19に示されるようなマップ1600に類似し得る。例えば、マップ2120は、例えばナビゲーション層、静的層、動的層、及び社会的層などの1つ又は複数の層2122を含み得る。 [0178] FIG. 21 illustrates an example of a map 2120 (e.g., a map of a building (e.g., a hospital, etc.)) for entry and exit information. The map 2120 may be stored and/or maintained by one or more robotic devices, such as any of the robotic devices described herein. The map 2120 may be similar to the map 1600 shown in FIG. 19. For example, the map 2120 may include one or more layers 2122, such as, for example, a navigational layer, a static layer, a dynamic layer, and a social layer.
[0179] マップ2120は、学習モード2102又は実行モード2112で動作しながらロボットデバイスが使用できる情報を提供することができる。例えば、学習モード2102で動作しているロボットデバイスは、マップ2120にアクセスすることによって、(例えば、状態情報331、1732、物体情報340、1740、1つ又は複数の環境的制約1754、社会的コンテキスト1632などに類似した)1つ若しくは複数の環境的制約、1つ若しくは複数の物体、及び/又は1つ若しくは複数の社会的コンテキストに関する情報を取得することができる。このような情報は、本明細書に記載されるように、1つ又は複数の物体の場所を決定すること、1つ又は複数の物体の1つ又は複数の特性を識別すること、1つ又は複数の環境的制約を分析すること、使用すべき1つ又は複数のスキルモデルを選択すること、1つ又は複数の入力を1人又は複数人のユーザーに促すことなどをロボットデバイスが行うことを可能にすることができる。追加的又は代替的に、実行モード2112で動作しているロボットデバイスは、マップ2120にアクセスすることによって、1つ若しくは複数の環境的制約、1つ若しくは複数の物体、及び/又は1つ若しくは複数の社会的コンテキストに関する情報を取得し、その情報を使用して、環境を評価すること、異なる挙動若しくはスキル間のアービトレーションを行うこと、どのスキルを実行すべきかを決定すること、及び/又はある特定の環境に適合するように、挙動若しくはスキルを適応させることができる。 [0179] Map 2120 can provide information that the robotic device can use while operating in learn mode 2102 or run mode 2112. For example, a robotic device operating in learn mode 2102 can access map 2120 to obtain information about one or more environmental constraints, one or more objects, and/or one or more social contexts (e.g., similar to state information 331, 1732, object information 340, 1740, one or more environmental constraints 1754, social context 1632, etc.). Such information can enable the robotic device to determine the location of one or more objects, identify one or more characteristics of one or more objects, analyze one or more environmental constraints, select one or more skill models to use, prompt one or more users for one or more inputs, etc., as described herein. Additionally or alternatively, a robotic device operating in execution mode 2112 may access map 2120 to obtain information about one or more environmental constraints, one or more objects, and/or one or more social contexts and use that information to assess the environment, arbitrate between different behaviors or skills, determine which skills to perform, and/or adapt behaviors or skills to suit a particular environment.
[0180] 学習モード2102で動作しているロボットデバイスは、マップ2120内の情報に加えられ、及び/又はマップ2120内の情報を変更する情報も提供することができる。例えば、ロボットデバイスは、検知された情報2104(例えば、ロボットデバイスの1つ若しくは複数のセンサーによって収集された情報)及び/又は導出された情報2106(例えば、例えば検知された情報2104の分析に基づいて、ロボットデバイスによって導出された情報)をマップ2120に組み込むことができる。ロボットデバイスは、このような情報を、情報をマップ2120に追加すること、及び/又はマップ2120内の既存の情報を適応させることによって組み込むことができる。追加的に、実行モード2112で動作しているロボットデバイスは、マップ2120内の情報に追加され、及び/又はマップ2120内の情報を変更する情報(例えば、検知された情報2114、導出された情報2116)を提供することができる。 [0180] A robotic device operating in learn mode 2102 can also provide information that adds to and/or modifies information in map 2120. For example, the robotic device can incorporate sensed information 2104 (e.g., information collected by one or more sensors of the robotic device) and/or derived information 2106 (e.g., information derived by the robotic device based on, for example, an analysis of sensed information 2104) into map 2120. The robotic device can incorporate such information by adding information to map 2120 and/or adapting existing information in map 2120. Additionally, a robotic device operating in execute mode 2112 can provide information (e.g., sensed information 2114, derived information 2116) that adds to and/or modifies information in map 2120.
[0181] 一例として、戸口を通ってナビゲートするやり方の(例えば、図10及び16に示される実演のような)実演を受けているロボットデバイスは、マップ2120の1つ又は複数の層2122に供給される情報を実演中に収集することができる。戸口は、例えば、マップ2122に示されるように、建物中の様々な場所に存在する特定の戸口でもよい。戸口の特性及び/又は性質は、ロボットデバイス上の様々なセンサーによって記録され、及び/又は検知された情報に基づいて、ロボットデバイスによって導出され得る。例えば、ロボットデバイスは、戸口のサイズを検知し、戸口が狭い戸口であることを決定することができる。ロボットデバイスは、例えば、1つ又は複数の意味ラベルを使用して、生センサー情報又は処理されたセンサー情報として、導出されたルールとしてなど、戸口に関するこの情報をマップ2120に追加することができる。ロボットデバイスは、この情報を使用することによって、マップのコンテキスト層(例えば、マップの社会的層又は挙動層(例えば、図19に示される社会的層1630など))を適応させることもできる。例えば、ロボットデバイスは、戸口が狭い戸口であることに基づいて、例えば、ユーザー(又は他の1つ若しくは複数のロボットデバイス)に続いて及び/又は並行して戸口を通過する代わりに、ユーザー(又は他の1つ若しくは複数のロボットデバイス)によって戸口が開けられたときに戸口を通過すること、(例えば、戸口を開けておくこと、及び/又はロボットデバイスに様々な1つ若しくは複数のアクションを指導することによって)ロボットデバイスがその戸口を通ってナビゲートすることを手助けする、その戸口を熟知した特定のユーザーを探すことなどを含む、特定の1つ若しくは複数の挙動及び/又は1つ若しくは複数のアクションに従事することを決定することができる。 [0181] As an example, a robotic device undergoing a demonstration of how to navigate through doorways (e.g., such as the demonstrations shown in FIGS. 10 and 16) can collect information during the demonstration that is provided to one or more layers 2122 of map 2120. The doorways may be specific doorways located in various locations throughout a building, as shown in map 2122, for example. The characteristics and/or properties of the doorways may be derived by the robotic device based on information recorded and/or sensed by various sensors on the robotic device. For example, the robotic device may sense the size of the doorway and determine that it is a narrow doorway. The robotic device can add this information about the doorway to map 2120, such as using one or more semantic labels, as raw or processed sensor information, as derived rules, etc. The robotic device can also use this information to adapt the context layer of the map (e.g., the social or behavioral layer of the map (e.g., the social layer 1630 shown in FIG. 19)). For example, based on the doorway being a narrow doorway, the robotic device may determine to engage in particular behavior(s) and/or action(s), including, for example, passing through the doorway when opened by the user (or one or more other robotic devices) instead of following and/or parallelly passing through the doorway with the user (or one or more other robotic devices), helping the robotic device navigate through the doorway (e.g., by holding the doorway open and/or directing the robotic device to perform various one or more actions), seeking out a particular user familiar with the doorway, etc.
[0182] いくつかの実施形態では、マップ2120は、本明細書に記載される1つ又は複数のロボットデバイスに対して一元的に保持されてもよい。例えば、マップ2120は、遠隔の計算デバイス(例えば、サーバー)上に保存され、例えば病院内で一緒に動作するロボットデバイスのグループに対して一元的にホスティングされてもよい。マップ2120は、ロボットデバイスのグループが学習モード2102及び/又は実行モード2112で動作するときに、これらのロボットデバイスから情報(例えば、検知された情報2104、2114、及び導出された情報2106、2116)が受け取られる際に更新され、アクション、挙動などを実行するために、必要に応じて各ロボットデバイスに提供されてもよい。マップ2120の1つ又は複数の層2122が適応されるように、グループ内の個々のロボットデバイスが新しい情報を学習するため、この情報は、他のロボットデバイスが類似の環境に遭遇したとき、及び/又は類似のスキル(例えば、アクション、挙動)を実行するときに、それらのロボットデバイスと共有され得る。いくつかの実施形態では、マップ2120のローカルコピーが、各ロボットデバイスに保存されてもよく、このローカルコピーは、(例えば、所定の間隔で、休みの時間又はダウンタイム中に)マップ2120の一元的に保持されたコピーを用いて更新又は同期され得る。(例えば、検知された情報2104、2114、及び導出された情報2106、2116などの新しく収集された情報を用いて)マップを定期的に更新し、及び/又は複数のロボットデバイス間でマップを共有することによって、各ロボットデバイスは、その周辺環境とインタラクトし、及び/又はその周辺環境内でスキルを実行するためのより正確な情報をロボットデバイスに提供する、より包括的なマップにアクセスすることができる。 [0182] In some embodiments, map 2120 may be maintained centrally for one or more robotic devices described herein. For example, map 2120 may be stored on a remote computing device (e.g., a server) and centrally hosted for a group of robotic devices operating together, for example, in a hospital. Map 2120 may be updated as information (e.g., sensed information 2104, 2114 and derived information 2106, 2116) is received from the group of robotic devices as they operate in learn mode 2102 and/or perform mode 2112, and provided to each robotic device as needed to perform actions, behaviors, etc. This information may be shared with other robotic devices as they encounter similar environments and/or perform similar skills (e.g., actions, behaviors), as individual robotic devices in the group learn new information so that one or more layers 2122 of map 2120 may be adapted. In some embodiments, a local copy of the map 2120 may be stored on each robotic device, and this local copy may be updated or synchronized (e.g., at predetermined intervals, during rest or downtime) with a centrally maintained copy of the map 2120. By periodically updating the map (e.g., with newly collected information such as sensed information 2104, 2114 and derived information 2106, 2116) and/or sharing the map among multiple robotic devices, each robotic device may have access to a more comprehensive map that provides the robotic device with more accurate information for interacting with and/or performing skills within its surrounding environment.
[0183] いくつかの実施形態では、マップ2120は、情報(例えば、1つ又は複数の環境的制約、1つ又は複数のルール、1つ又は複数のスキルなど)が、(例えば、学習2102及び/又は実行2112中に)学習され、及び/又は(例えば、ユーザー入力2130を用いて)ユーザーによって提供され得る混合イニシアチブマップでもよい。例えば、ロボットデバイスは、ユーザー(例えば、ロボットの監督者若しくはローカルユーザー)によって直接与えられた情報、実演及び/又は実行を通して学習された情報、又は実演及び/又は実行と、(例えば、リアルタイムで、若しくは遡及的にインタラクションに関してロボットデバイスによって要求された)ユーザー入力との組み合わせによってインタラクティブに提供された情報を組み込むことによって、マップ2120を構築することができる。例えば、ロボットデバイスがマップ2120上のある領域(例えば、狭い又は混雑した通路)をよりゆっくりと進むべきであることをユーザーはロボットデバイスに示すことができる。いくつかの実施形態では、ロボットデバイスはマップをユーザーに提示し、ユーザーはマップ上に領域を描き、ロボットがその領域をよりゆっくりと進むべきであることを示すことができる。ロボットデバイスは、複数回、マップ2120上のその領域を進むことを試み、1日のうちの特定の時間では、その領域が(例えば、過密により)避けられるべきであることを学習し得る。代替的又は追加的に、ロボットデバイスは、ロボットデバイスが自律的に対処することに慣れていない新しい状況(例えば、通路が区切られている)に遭遇し得る。このような場合には、ロボットデバイスは、その領域に関するさらなる情報を取得し、及び/又はその領域をあちこちナビゲートするやり方を決定するために、ユーザー(例えば、ロボットの監督者及び/又はローカルユーザー)とコミュニケーションを取ることができる。ユーザーの入力を要求するときに、ロボットデバイスは、状況に関して広く尋ね、及び/又は(例えば、ロボットデバイスが適切な挙動を自律的に導出することを可能にするために)ユーザーがラベル付けする例のリストを提供してもよい。いくつかの実施形態では、ロボットデバイスは、ユーザー入力なしに、ある領域に関する情報の検出及び/又は導出を行い、その領域に関連付けられた1つ又は複数のルールを確認のためにユーザーに提案することができる。いくつかの実施形態では、ユーザーは、提案されたルール及び/又はロボットデバイスからの他の情報を見たときに、それを承認する前に、そのルール及び/又は他の情報を修正することができる。以下で説明される図24は、このようなプロセスのより詳細な説明を提供する。 [0183] In some embodiments, map 2120 may be a mixed-initiative map in which information (e.g., one or more environmental constraints, one or more rules, one or more skills, etc.) may be learned (e.g., during learning 2102 and/or execution 2112) and/or provided by a user (e.g., with user input 2130). For example, the robotic device may construct map 2120 by incorporating information provided directly by a user (e.g., a robot supervisor or local user), information learned through demonstration and/or execution, or information provided interactively by a combination of demonstration and/or execution and user input (e.g., requested by the robotic device in real time or retrospectively in connection with an interaction). For example, a user may indicate to the robotic device that the robotic device should proceed more slowly through a certain area on map 2120 (e.g., a narrow or crowded passage). In some embodiments, the robotic device presents the map to the user, and the user may draw an area on the map and indicate that the robot should proceed more slowly in that area. The robotic device may attempt to navigate the area on the map 2120 multiple times and learn that the area should be avoided at certain times of day (e.g., due to overcrowding). Alternatively or additionally, the robotic device may encounter a new situation (e.g., a partitioned passage) that the robotic device is not accustomed to dealing with autonomously. In such cases, the robotic device may communicate with a user (e.g., a robot supervisor and/or a local user) to obtain more information about the area and/or determine how to navigate around the area. When requesting user input, the robotic device may broadly inquire about the situation and/or provide a list of examples that the user labels (e.g., to enable the robotic device to autonomously derive appropriate behavior). In some embodiments, the robotic device may detect and/or derive information about an area without user input and propose one or more rules associated with the area to the user for confirmation. In some embodiments, the user, upon viewing the proposed rule and/or other information from the robotic device, may modify the rule and/or other information before accepting it. Figure 24, described below, provides a more detailed description of this process.
[0184] 図22~25は、ロボットデバイス(例えば、例えば(例えば、ロボットデバイス102、110、200、400など)を含む、本明細書に記載されるロボットデバイスのいずれかが、1つ又は複数のスキル、1つ又は複数の環境的制約などを学習することができる異なる複数の手段を示すフロー図である。いくつかの実施形態では、本明細書に記載される方法に従って動作するロボットデバイスは、常に学習(例えば、学習モードで動作)していてもよい。例えば、ロボットデバイスは、それが環境中をナビゲートし、及び/又は特定の挙動若しくはアクションに従事するときに、継続的に情報の収集、保存、分析、及び/又は更新を行い、学習された情報(例えば、スキル、挙動、環境的制約、マップなど)のライブラリーに対して適応及び/又は追加を行うことができる。他の実施形態では、ロボットデバイスは、学習モードでの動作と実行モードでの動作との切り替えを行うことができる。学習モード2202で動作する間、本明細書に記載されるロボットデバイスが、実演2204により、実行2206により、探索2208により、導出/ユーザー入力2210、及び/又はこれらの任意の組み合わせにより学習することができるようなロボットデバイス。 [0184] 22-25 are flow diagrams illustrating different means by which any of the robotic devices described herein, including, for example, robotic devices 102, 110, 200, 400, etc., may learn one or more skills, one or more environmental constraints, etc. In some embodiments, a robotic device operating according to the methods described herein may be constantly learning (e.g., operating in a learning mode). For example, the robotic device may continuously collect, store, analyze, and/or update information as it navigates through an environment and/or engages in particular behaviors or actions, adapting and/or adding to its library of learned information (e.g., skills, behaviors, environmental constraints, maps, etc.). In other embodiments, the robotic device may switch between operating in a learning mode and an execution mode. While operating in a learning mode 2202, the robotic devices described herein may learn by demonstration 2204, by execution 2206, by exploration 2208, by derivation/user input 2210, and/or any combination thereof.
[0185] いくつかの実施形態では、ロボットデバイスは、例えば、図8~10を参照して上記で示され、及び説明されたように、実演2204によって学習することができる。例えば、ロボットデバイスは、LfD教示プロセスを使用したスキルの実演によって、新しいスキル又は環境的制約を学習することができる。ロボットデバイスは、人間環境における過去のスキルの実演からの情報を分析及び抽出することができる。一例として、ユーザーは、ロボットデバイスに対して、人間及びロボットデバイスがいる備品室内で、ロボットデバイスの操作要素(例えば、アーム)の動かし方を実演することができる。1つ又は複数の実演から、ロボットデバイスは、1つ又は複数の既存の実演の動きに対して、今後スキルを計画し、及び/又は実行するときに、ロボットデバイスの動きを制限する1つ又は複数の環境的制約を規定することができる。ロボットデバイスは、それぞれがノード及び動きのn次元空間を通る経路を提供する、既存の実演(例えば、1つ又は複数のキーフレームのシーケンス)を用いて、動きを生成し、グラフ(環境的制約がエンコードされる)を構築することができる。その後、ロボットデバイスが、新しい環境を提示され、その新しい環境にスキルを適応させる必要があれば、ロボットデバイスは、構築されたグラフを用いて、既存の実演された動きのセットから効率的にサンプリングを行い、新しい環境用の動きを計画することができる。そのような環境的制約の学習をスキルの初期実演に組み入れることによって、ロボットデバイスは、新しい環境的制約が規定されることを必要とせずに、新しい環境に素早く適応することができる。新しい環境では、ロボットデバイスは、その環境及び/又は環境内の1つ若しくは複数の物体(例えば、人間、備品、ドアなど)に関する追加情報を取得するために環境をスキャンし、その後、既存のスキルモデルを使用して、既存の実演された動きのセットから大きく逸脱することなく、新しい環境を通る動作軌道を計画することができる。 [0185] In some embodiments, the robotic device can learn by demonstration 2204, for example, as shown and described above with reference to FIGS. 8-10. For example, the robotic device can learn new skills or environmental constraints by demonstrating a skill using the LfD teaching process. The robotic device can analyze and extract information from past demonstrations of a skill in a human environment. As an example, a user can demonstrate to the robotic device how to move a control element (e.g., an arm) of the robotic device in an equipment room with a human and the robotic device. From one or more demonstrations, the robotic device can define one or more environmental constraints for the movements of one or more existing demonstrations that constrain the movements of the robotic device when planning and/or executing future skills. The robotic device can generate movements and build a graph (in which environmental constraints are encoded) using existing demonstrations (e.g., a sequence of one or more keyframes), each of which provides a path through an n-dimensional space of nodes and movements. Subsequently, when the robotic device is presented with a new environment and needs to adapt its skills to the new environment, it can use the constructed graph to efficiently sample from its existing set of demonstrated moves to plan moves for the new environment. By incorporating such environmental constraint learning into the initial skill demonstration, the robotic device can quickly adapt to the new environment without requiring new environmental constraints to be defined. In the new environment, the robotic device can scan the environment to obtain additional information about the environment and/or one or more objects within the environment (e.g., people, furniture, doors, etc.), and then use the existing skill model to plan a motion trajectory through the new environment without significantly deviating from its existing set of demonstrated moves.
[0186] いくつかの実施形態では、ロボットデバイスは、実演2204及びユーザー入力2210によって学習することができる。例えば、ロボットデバイスは、例えばインタラクティブ学習テンプレートを用いた、ユーザーとのインタラクティブ学習に従事することができる。上記の通り、インタラクティブ学習を用いた場合、ロボットデバイス及び/又はスキルモデルの初期セットを提供した。モデルの初期セットは、工場の状況で、他のロボットデバイス、及び/又は1つ若しくは複数の状況でロボットデバイス自体によって開発されてもよい。ある特定の環境で動作する間、ロボットデバイスは、インタラクティブ学習セッション(このセッションでは、ロボットデバイスが、スキルの特定の部分を自律的に実施する一方で、他の部分をユーザーによる実演に委ねることができる)によって、このスキルの初期セットの適応又は特化を行うことができる。さらに、このようなインタラクティブ学習プロセスのさらなる詳細は、図16を参照して説明される。 [0186] In some embodiments, the robotic device can learn through demonstration 2204 and user input 2210. For example, the robotic device can engage in interactive learning with a user, e.g., using an interactive learning template. As described above, with interactive learning, an initial set of robotic device and/or skill models is provided. The initial set of models may be developed by other robotic devices in a factory setting and/or by the robotic device itself in one or more settings. While operating in a particular environment, the robotic device can adapt or specialize this initial set of skills through interactive learning sessions in which the robotic device can autonomously perform certain portions of the skills while leaving others to user demonstration. Further details of such an interactive learning process are described with reference to FIG. 16.
[0187] いくつかの実施形態では、ロボットデバイスは、スキルを実行2206しながら学習することができる。例えば、ロボットデバイスは、ロボットデバイスが挙動、アクションなどを実行するときに、情報の収集、保存、分析、及び/又は更新を行うことができる(例えば、図11の774、図13の1304、1305、及び1307で)。ある実施形態では、ロボットデバイスは、1日に数回、ロボットデバイスが通路を移動することを必要とするスキルを実行することができる。ロボットデバイスは、1日のうちの特定の時間に、通路の通行量がより多いことを学習することができる。その後、ロボットデバイスは、例えば、通行量の多い、それらの時間中は、その通路を通過することを避けるように(例えば、別のルートを行くことによって、及び/又は通行量の少ない時間にその通路を通過するように待つことによって)、その挙動を適応させることができる。 [0187] In some embodiments, the robotic device can learn skills as it executes 2206 them. For example, the robotic device can collect, store, analyze, and/or update information as the robotic device executes behaviors, actions, etc. (e.g., at 774 in FIG. 11 and 1304, 1305, and 1307 in FIG. 13). In some embodiments, the robotic device can execute a skill that requires the robotic device to navigate a hallway several times a day. The robotic device can learn that a hallway has higher traffic during certain times of day. The robotic device can then adapt its behavior, for example, to avoid traversing that hallway during those high traffic times (e.g., by taking an alternate route and/or by waiting to traverse that hallway at a time with less traffic).
[0188] いくつかの実施形態では、ロボットデバイスは、探索2208によって学習することができる。図23は、探索による学習の例示的方法を示すフロー図である。ロボットデバイスは、2302において、環境をスキャンし、環境及び/又は環境内の物体に関する情報を収集することができる。任意選択的に、ロボットデバイスが収集した情報に基づいて、ロボットデバイスは、スキルを実行することによって、環境を探索することを決定することができる。スキルを実行するために、ロボットデバイスは、2304において、既存のスキルモデルを選択し、2306において、スキルモデルを使用してスキルの実行を計画し、及び2308において、スキルを実行することができる。例えば、ロボットデバイスは、環境をスキャンし、戸口を識別することができる。ロボットデバイスは、ドアを開けるステップ及び戸口を通って移動するステップを含むスキルの実行を決定することができる。2304では、ロボットデバイスは、戸口を通ってナビゲートするために、これまでに提供及び/又は学習された既存のスキルモデルを選択することができる。2306では、ロボットデバイスは、既存のスキルを使用して(例えば、図11を参照して述べられたプロセスに類似したプロセスに従って)、ドアを開け、及び戸口を通って移動する計画を生成することができる。そして、2308において、ロボットデバイスは、生成された計画に従ってスキルを実行することができる。2310において、スキルを実行する間、ロボットデバイスは、環境及び/又はスキルの実行に関する情報を収集し、その情報を、戸口との以前のインタラクション中に収集された情報と比較することができる。この比較に基づいて、ロボットデバイスは、それの戸口とのインタラクションが成功であったか、或いは失敗であったかを(例えば、上記のような成功基準に基づいて)評価することができる。ロボットデバイスは、任意選択的に、2312において、それのスキルの実行に基づいて、その戸口に固有のスキルモデルを生成することができる。 23 is a flow diagram illustrating an exemplary method for learning by exploration. The robotic device may scan an environment and collect information about the environment and/or objects within the environment at 2302. Optionally, based on the information collected by the robotic device, the robotic device may determine to explore the environment by executing a skill. To execute the skill, the robotic device may select an existing skill model at 2304, plan the execution of the skill using the skill model at 2306, and execute the skill at 2308. For example, the robotic device may scan the environment and identify a doorway. The robotic device may determine the execution of a skill that includes steps of opening the door and moving through the doorway. At 2304, the robotic device may select an existing skill model previously provided and/or learned to navigate through the doorway. At 2306, the robotic device may generate a plan to open the door and move through the doorway using the existing skill (e.g., following a process similar to the process described with reference to FIG. 11 ). The robotic device can then execute the skill according to the generated plan at 2308. While executing the skill, the robotic device can collect information about the environment and/or the execution of the skill and compare that information with information collected during previous interactions with the doorway at 2310. Based on this comparison, the robotic device can evaluate whether its interaction with the doorway was successful or unsuccessful (e.g., based on success criteria such as those described above). The robotic device can optionally generate a skill model specific to the doorway at 2312 based on its execution of the skill.
[0189] いくつかの実施形態では、ロボットデバイスは、スキルの実行を開始し、そのスキルをさらに完了させるためにはユーザー入力が必要とされることを決定することができる。例えば、図16を参照して上記に記載したように、ロボットデバイスは、スキルの実行を開始し、実行の仕方をロボットデバイスが決定できないスキルの部分に到達すると、スキルの実行を進めるために、ユーザー入力を求めることができる。 [0189] In some embodiments, a robotic device may begin performing a skill and determine that user input is required to further complete the skill. For example, as described above with reference to FIG. 16, when a robotic device begins performing a skill and reaches a portion of the skill that the robotic device cannot determine how to perform, it may request user input to proceed with the skill.
[0190] いくつかの実施形態では、ロボットデバイスは、スキルを実行し、その実行が失敗したことを決定することができる。例えば、ロボットデバイスは、戸口を通る動作を計画し、及び/又は実行することができるが、(例えば、ドアを開ける試み、又は狭い戸口の向こう側にナビゲートする試みの失敗により)戸口を通って移動できなかったことを検出し得る。ロボットデバイスは、環境を再度スキャンすることを決定し(2314:YES)、2306~2308において、スキルの再計画及び再実行を行うことができる。いくつかの実施形態では、ロボットデバイスは、2304において、別のスキル(例えば、狭い戸口に対して、より固有のスキル)を選択し、次に、その別のスキルに基づいて、再計画及び再実行を行うことができる。ロボットデバイスが、それがある目的を満たした(例えば、所定の回数、又は所定数のやり方で、成功裏にスキルを実行した、環境に関する十分な情報を学習したなど)と決定するまで、ロボットデバイスは、スキルの再検知、再計画、及び再実行を行うことによって、探索により学習を続けることができる。2316では、ロボットデバイスは、環境及び/又は環境内の物体に関するそれが収集した情報、並びに任意選択的に、環境内のスキルの実行に基づいて、それが適応させるか又は生成したモデルを保存することができる。 [0190] In some embodiments, the robotic device can execute a skill and determine that the execution failed. For example, the robotic device may plan and/or execute a movement through a doorway, but detect that it was unable to move through the doorway (e.g., due to a failed attempt to open the door or navigate through a narrow doorway). The robotic device may decide to scan the environment again (2314: YES) and re-plan and re-execute the skill at 2306-2308. In some embodiments, the robotic device may select a different skill at 2304 (e.g., a skill more specific to the narrow doorway) and then re-plan and re-execute based on the different skill. The robotic device may continue to learn by exploration by resensing, re-planning, and re-executing the skill until the robotic device determines that it has met a certain objective (e.g., successfully executed the skill a predetermined number of times or in a predetermined number of ways, learned sufficient information about the environment, etc.). At 2316, the robotic device may store information it has collected about the environment and/or objects in the environment, and optionally, models it has adapted or generated based on the performance of skills in the environment.
[0191] いくつかの実施形態では、ロボットデバイスは、ユーザー入力2210を用いた、探索2208による学習に従事することができる。例えば、ロボットデバイスは、ある特定の環境を探索し、及び/又はその環境に関してさらに多くの情報を学習するために、その環境において、1つ又は複数のスキルを実行することができる。ロボットデバイスが探索を行っている間に、ユーザー(例えば、遠隔の監督者又はローカルユーザー)は、(例えば、環境内にいることによって直接的に、及び/又はロボットデバイスを通して)ユーザーが認識した、及び/又は環境に関して学習した情報に基づいて、入力をロボットデバイスに提供することができる。そのとき、ユーザーは、環境の探索をさらに指導する1つ又は複数の入力をロボットデバイスに提供することができる。例えば、戸口に遭遇したロボットデバイスは、その戸口を通ってナビゲートするための1つ又は複数の動作を計画することができる。それらの動作を実行した際に、ロボットデバイスは、その戸口を通ってナビゲートすることに失敗する場合がある。ユーザーは、ロボットデバイスによる試みの失敗を見て、戸口を通ってナビゲートする2度目の試みにおいて、ロボットデバイスを指導するための1つ又は複数の入力をロボットデバイスに提供することができる。例えば、ユーザーは、戸口が狭い戸口であることを決定し、ロボットデバイスが、その戸口を通ってナビゲートする前に、まずドアを開けることを近くのユーザー又はロボットデバイスに求めるべきであることをロボットデバイスに示すことができる。ユーザー入力を受け取ると、ロボットデバイスは、戸口を通ってナビゲートする前に、ドアを開けることをユーザーに求めることができる。 [0191] In some embodiments, the robotic device can engage in learning by exploration 2208 using user input 2210. For example, the robotic device can perform one or more skills in a particular environment to explore and/or learn more information about the environment. While the robotic device is exploring, a user (e.g., a remote supervisor or a local user) can provide input to the robotic device based on information the user perceives and/or learns about the environment (e.g., directly by being in the environment and/or through the robotic device). The user can then provide one or more inputs to the robotic device that further guide its exploration of the environment. For example, a robotic device that encounters a doorway can plan one or more actions to navigate through the doorway. Upon executing those actions, the robotic device may fail to navigate through the doorway. The user, upon observing the failed attempt by the robotic device, can provide one or more inputs to the robotic device to guide the robotic device in a second attempt to navigate through the doorway. For example, a user may determine that a doorway is a narrow doorway and indicate to the robotic device that the robotic device should first ask a nearby user or robotic device to open the door before navigating through the doorway. Upon receiving the user input, the robotic device may ask the user to open the door before navigating through the doorway.
[0192] いくつかの実施形態では、ロボットデバイスは、環境及び/又は環境内の物体に関する情報をユーザーから受け取ること、又はモデルの初期セット、ルールなどをユーザーから受け取ることによって、ユーザー入力2210によって学習することができる。いくつかの実施形態では、ロボットデバイスは、最初に、(例えば、図10を参照して上記に記載したように)実演によってスキルを学習し、ユーザー入力に基づいて、そのスキルを適応させることを学習してもよい。例えば、ロボットデバイスは、第1の場所から第2の場所へと備品を移動させ、その後、備品を第2の場所に降ろすスキルを学習することができる。スキルのユーザー実演中に、ユーザーは、第2の場所に備品を降ろすことが、環境又は状況に固有の特定情報を必要とすることをロボットデバイスに示すことができる。ユーザーは、後に、異なる複数の備品及び/又は異なる複数の場所に関して、備品を降ろす間、ロボットデバイスが観察すべき特有の情報を指定する入力をロボットデバイスに提供することができる。例えば、ユーザーは、ロボットデバイスがどこに備品を降ろすべきかを識別するタグ又はマーカーに関する情報を提供することができる。 [0192] In some embodiments, the robotic device can learn through user input 2210 by receiving information from the user about the environment and/or objects in the environment, or by receiving an initial set of models, rules, etc. In some embodiments, the robotic device may initially learn a skill by demonstration (e.g., as described above with reference to FIG. 10 ) and learn to adapt the skill based on user input. For example, the robotic device can learn the skill of moving equipment from a first location to a second location and then dropping off the equipment at the second location. During user demonstration of the skill, the user can indicate to the robotic device that dropping off the equipment at the second location requires specific information specific to the environment or situation. The user can later provide input to the robotic device specifying specific information for the robotic device to observe while dropping off the equipment for different pieces of equipment and/or different locations. For example, the user can provide information regarding a tag or marker that identifies where the robotic device should drop off the equipment.
[0193] いくつかの実施形態では、ロボットデバイスは、保存された情報及び/又はユーザー入力2210に基づいて、挙動又はルール(例えば、上記のような、1つ又は複数のアービトレーションアルゴリズム1858)を学習することができる。図24は、挙動及び/又はルールのロボット学習の例示的方法のフローチャートである。ロボットデバイスは、2402において、保存された情報(例えば、1つ又は複数のマップ、1つ又は複数のモデル、1つ又は複数のユーザー入力)を分析することができる。ロボットデバイスは、2404において、保存された情報の分析に基づいて、挙動及び/又はルールを導出することができる。例えば、ユーザー(例えば、ロボットの監督者又はローカルユーザー)は、より多くの人間がロボットデバイスの近くにいるときは、より対話型となるように、ロボットデバイスに関するルールを規定することができる。ロボットデバイスは、保存された情報の分析に基づいて、1日のうちのある特定の時間中(例えば、昼食時間頃)に、より多くの人間がそれの近くにいることを決定し得る。したがって、ロボットデバイスはさらに、1日のうちのその時間中は、それがより対話型となるべきであることを導出し得る。いくつかの実施形態では、ロボットデバイスは、新しいルールとして、この挙動を自動的に実施することができる。代替的に、ロボットデバイスは、2406において、ユーザーに対する新しいルールとして、1日のうちのその時間に、より対話型となることを提案することができる。ロボットデバイスは、2408において、ルールの提案に応答して、ユーザー入力を受け取ることができる。例えば、ユーザーは、ロボットデバイスのローカル及び/又は遠隔のディスプレイ上でルールを見て、それを承認又は拒否することを選択することができる。ユーザー入力に基づいて、ロボットデバイスは、2410において、その挙動及び/又はルールを修正することができる。例えば、ルールを承認可能であることをユーザーが示す場合には、ロボットデバイスは、その新しいルールを保存し、今後、それを実施することができる。或いは、ルールは、承認可能であるが、さらなる微調整又は変更を伴うことをユーザーが示す場合には(例えば、カフェテリア内でのみ、昼食時間頃に、より対話型となること)、ロボットデバイスは、そのルールを適応させ、今後の実施のために、適応させたルールを保存することができる。 [0193] In some embodiments, the robotic device can learn behaviors or rules (e.g., one or more arbitration algorithms 1858, as described above) based on stored information and/or user input 2210. FIG. 24 is a flowchart of an exemplary method of robot learning of behaviors and/or rules. The robotic device can analyze stored information (e.g., one or more maps, one or more models, one or more user inputs) at 2402. The robotic device can derive behaviors and/or rules based on the analysis of the stored information at 2404. For example, a user (e.g., a robot supervisor or local user) can define a rule for the robotic device to be more interactive when more humans are near the robotic device. The robotic device may determine, based on the analysis of the stored information, that more humans are near it during certain times of the day (e.g., around lunchtime). Thus, the robotic device may further derive that it should be more interactive during that time of day. In some embodiments, the robotic device can automatically implement this behavior as a new rule. Alternatively, the robotic device can suggest 2406 a new rule to the user to be more interactive at that time of day. The robotic device can receive 2408 user input in response to the rule suggestion. For example, the user can view the rule on a local and/or remote display of the robotic device and choose to accept or reject it. Based on the user input, the robotic device can modify 2410 its behavior and/or rule. For example, if the user indicates that the rule is acceptable, the robotic device can save the new rule and implement it in the future. Alternatively, if the user indicates that the rule is acceptable but with further tweaking or modification (e.g., to be more interactive only in the cafeteria around lunchtime), the robotic device can adapt the rule and save the adapted rule for future implementation.
[0194] いくつかの実施形態では、ロボットデバイスは、ユーザー入力に基づいて、既存のスキル及び/又は環境的制約を適応させることによって、スキル及び/又は環境的制約を学習することができる。図25は、ユーザー入力に基づいて、スキル及び/又は環境的制約を適応させる例示的方法のフロー図である。ロボットデバイスは、2502において、ユーザー入力を受け取ることができる。ロボットデバイスは、2504において、ユーザー入力を1つ又は複数のスキル及び/又は環境的制約に関連付けることができる。このような関連付けは、例えば、ユーザーによるさらなる入力(例えば、ユーザーが、入力が関係するスキル及び/又は環境的制約を指定すること)、及び/又はロボットデバイスによる導出(例えば、このような入力が、ある特定のスキル又は環境的制約に関連することを、この入力、及び/又はこの特定のスキル若しくは環境的制約に関連する、1つ又は複数のルール、属性などに基づいて、ロボットデバイスが決定することに基づいてもよい。例えば、ユーザーは、QRコード(登録商標)、バーコード、タグなどの物体を識別するための新しい情報をロボットデバイスに提供することができる。ユーザーは、この新しい情報が、ある特定の物体に関するものであることを指定することができ、ロボットデバイスは、新しい情報をこの物体に関連付けることができる。ロボットデバイスは、その物体に関する新しい情報を、その物体とのインタラクションに関与する1つ又は複数のスキル(例えば、つかむスキル又は移動スキル)にさらに関連付けることができる。ロボットデバイスは、任意選択的に、2506~2508において、入力に基づいて、スキル又は環境的制約の修正及び/又は生成を行うことができる。 [0194] In some embodiments, a robotic device can learn skills and/or environmental constraints by adapting existing skills and/or environmental constraints based on user input. FIG. 25 is a flow diagram of an example method for adapting skills and/or environmental constraints based on user input. The robotic device can receive user input at 2502. The robotic device can associate the user input with one or more skills and/or environmental constraints at 2504. Such association may be based, for example, on further input by the user (e.g., the user specifying the skill and/or environmental constraint to which the input pertains) and/or derivation by the robotic device (e.g., the robotic device determining that such input is relevant to a particular skill or environmental constraint based on the input and/or one or more rules, attributes, etc. associated with the particular skill or environmental constraint). For example, the user may provide the robotic device with new information for identifying an object, such as a QR code, barcode, tag, etc. The user may specify that the new information pertains to a particular object, and the robotic device may associate the new information with the object. The robotic device may further associate the new information about the object with one or more skills (e.g., a grasping skill or a movement skill) involved in interacting with the object. The robotic device may optionally modify and/or create the skill or environmental constraint based on the input at 2506-2508.
[0195] いくつかの実施形態では、ロボットデバイスは、スキル及び/又は環境的制約に関連する情報をユーザーが遡及的にラベル付けすることを可能にすることができる。例えば、ロボットは、例えばユーザーインターフェース(例えば、ユーザーインターフェース240)及び/又は遠隔のインターフェースを用いて、スキル又は環境的制約をユーザーに提示することができる。ユーザーは、スキル又は環境的制約に関連付けられたラベルの追加、修正、及び/又は除去を行うことを選択することができ、このような入力は、2502において、ロボットデバイスで受け取られ得る。その後、ロボットデバイスは、2504において、入力をスキル又は環境的制約に関連付けることができ、2506~2508において、入力に基づいて、新しいスキル又は環境的制約の修正及び/又は生成を行うことができる。 [0195] In some embodiments, the robotic device may allow a user to retroactively label information related to skills and/or environmental constraints. For example, the robot may present skills or environmental constraints to the user, for example, using a user interface (e.g., user interface 240) and/or a remote interface. The user may choose to add, modify, and/or remove labels associated with the skills or environmental constraints, and such input may be received at the robotic device at 2502. The robotic device may then associate the input with the skills or environmental constraints at 2504 and may modify and/or create new skills or environmental constraints based on the input at 2506-2508.
実施例
[0196] 本開示は、以下の実施例のいずれか1つから最大で全てを含み得ることが認識されるだろう。
Example
[0196] It will be appreciated that the present disclosure may include any one up to all of the following examples.
[0197] 実施例1:メモリー、プロセッサー、操作要素、及びセンサーのセットを有する装置であって、プロセッサーが、メモリー、操作要素、及びセンサーのセットに動作可能に結合され、並びに、センサーのセットからのセンサーのサブセットを用いて、環境の表現を取得することと、環境の表現内で複数のマーカーを識別することであって、複数のマーカーからの各マーカーが、環境内に位置する複数の物理的物体からの物理的物体に関連付けられる、識別することと、環境の表現内で複数のマーカーからの各マーカーの位置を示す情報を提示することと、複数の物理的物体からの物理的物体のセットに関連付けられた、複数のマーカーからのマーカーのセットの選択を受け取ることと、環境内の操作要素の動きに関連する複数の位置からの位置ごとに、操作要素に関連する感覚情報を取得することであって、操作要素の動きが、操作要素と物理的物体のセットとの物理的インタラクションに関連する、取得することと、感覚情報に基づいて、操作要素と物理的物体のセットとの物理的インタラクションを実行するための操作要素の動作を規定するように構成されたモデルを生成することと、を行うように構成された、装置。 [0197] Example 1: A device having a memory, a processor, a control element, and a set of sensors, the processor being operatively coupled to the memory, the control element, and the set of sensors and configured to: obtain a representation of an environment using a subset of sensors from the set of sensors; identify a plurality of markers within the representation of the environment, where each marker from the plurality of markers is associated with a physical object from a plurality of physical objects located in the environment; present information indicative of a position of each marker from the plurality of markers within the representation of the environment; receive a selection of a set of markers from the plurality of markers associated with a set of physical objects from the plurality of physical objects; obtain, for each position from a plurality of positions associated with movement of the control element within the environment, sensory information associated with the control element, where movement of the control element is associated with a physical interaction between the control element and the set of physical objects; and generate, based on the sensory information, a model configured to specify a behavior of the control element to perform the physical interaction between the control element and the set of physical objects.
[0198] 実施例2:物理的物体のセットが、人間を含む、実施例1の装置。 [0198] Example 2: The apparatus of Example 1, wherein the set of physical objects includes a person.
[0199] 実施例3:操作要素が、物理的物体のセットからの物理的物体のサブセットと係合するように構成されたエンドエフェクターを含む、実施例1又は2に記載の装置。 [0199] Example 3: The apparatus of Examples 1 or 2, wherein the manipulating element includes an end effector configured to engage a subset of physical objects from the set of physical objects.
[0200] 実施例4:センサーのサブセットが、第1のセンサーのサブセットであり、プロセッサーが、センサーのセットからの第2のセンサーのサブセットを用いて感覚情報を取得するように構成され、第2のセンサーのサブセットが、第1のセンサーのサブセットとは異なる、実施例1~3のいずれか1つに記載の装置。 [0200] Example 4: The device of any one of Examples 1 to 3, wherein the subset of sensors is a subset of a first sensor, and the processor is configured to acquire sensory information using a second subset of sensors from the set of sensors, the second subset of sensors being different from the first subset of sensors.
[0201] 実施例5:操作要素が、複数の関節によって連結された複数の可動コンポーネントを含み、センサーのセットが、複数の関節からの関節に作用する力を測定するように構成されたセンサー、又は複数の可動コンポーネントからの可動コンポーネントと、物理的物体のセットからの物理的物体との係合を検出するように構成されたセンサーの少なくとも一方を含む、実施例1~4のいずれか1つに記載の装置。 [0201] Example 5: The apparatus of any one of Examples 1 to 4, wherein the operating element includes a plurality of movable components connected by a plurality of joints, and the set of sensors includes at least one of a sensor configured to measure a force acting on a joint from the plurality of joints, or a sensor configured to detect engagement of a movable component from the plurality of movable components with a physical object from the set of physical objects.
[0202] 実施例6:センサーのセットが、装置の一部に対する、関節又は可動コンポーネントの位置を測定するように構成されたセンサーをさらに含む、実施例5に記載の装置。 [0202] Example 6: The device of Example 5, wherein the set of sensors further includes a sensor configured to measure the position of a joint or moving component relative to a portion of the device.
[0203] 実施例7:センサーのセットが、光センサー、温度センサー、音声捕捉デバイス、及びカメラの少なくとも1つをさらに含む、実施例5に記載の装置。 [0203] Example 7: The apparatus of Example 5, wherein the set of sensors further includes at least one of a light sensor, a temperature sensor, an audio capture device, and a camera.
[0204] 実施例8:操作要素が、(i)複数の関節と、(ii)物理的物体のセットからの物理的物体を移動させるように構成されたエンドエフェクターと、を含み、センサーのセットが、エンドエフェクターが物理的物体を移動させるときに、エンドエフェクター、又はエンドエフェクターに結合された複数の関節からの関節の少なくとも一方にかかる力を測定するように構成されたセンサーを含む、実施例1に記載の装置。 [0204] Example 8: The apparatus of Example 1, wherein the manipulating element includes (i) a plurality of joints and (ii) an end effector configured to move a physical object from the set of physical objects, and the set of sensors includes a sensor configured to measure a force on the end effector or at least one of the joints from the plurality of joints coupled to the end effector when the end effector moves the physical object.
[0205] 実施例9:感覚情報が、特徴のセットに関連するセンサーデータを含み、プロセッサーが、特徴のセットからの第1の特徴のサブセットの選択を受け取るようにさらに構成され、プロセッサーが、第1の特徴のサブセットに関連するセンサーデータに基づき、且つ第1の特徴のセットに含まれない、特徴のセットからの第2の特徴のサブセットに関連するセンサーデータには基づかずに、モデルを生成するように構成される、実施例1~8のいずれか1つに記載の装置。 [0205] Example 9: The apparatus of any one of Examples 1 to 8, wherein the sensory information includes sensor data associated with a set of features, the processor is further configured to receive a selection of a first subset of features from the set of features, and the processor is configured to generate the model based on the sensor data associated with the first subset of features and not based on sensor data associated with a second subset of features from the set of features that is not included in the first set of features.
[0206] 実施例10:ユーザーによって行われた選択に応答して、プロセッサーが、第1の特徴のサブセットの選択を受け取るように、特徴のセットからの少なくとも1つの特徴を選択するようにユーザーに促すようにプロセッサーがさらに構成される、実施例9に記載の装置。 [0206] Example 10: The apparatus of Example 9, wherein the processor is further configured to prompt the user to select at least one feature from the set of features in response to a selection made by the user, such that the processor receives a selection of the first subset of features.
[0207] 実施例11:複数のマーカーが、基準マーカーであり、環境の表現が、環境の視覚的表現である、実施例1~10のいずれか1つに記載の装置。 [0207] Example 11: The device described in any one of Examples 1 to 10, wherein the plurality of markers are fiducial markers and the representation of the environment is a visual representation of the environment.
[0208] 実施例12:プロセッサーが、モデル及びモデルに関連する情報をメモリーに保存するようにさらに構成され、モデルに関連する情報が、(i)マーカーのセット及び(ii)感覚情報を含む、実施例1~11のいずれか1つに記載の装置。 [0208] Example 12: The device of any one of Examples 1 to 11, wherein the processor is further configured to store a model and information associated with the model in memory, the information associated with the model including (i) a set of markers and (ii) sensory information.
[0209] 実施例13:操作要素が、複数の関節を含み、感覚情報が、操作要素の動きに関連する複数の位置からの位置ごとに、複数の関節からの各関節の現在の状態を示す情報を含む、実施例1に記載の装置。 [0209] Example 13: The device described in Example 1, wherein the operating element includes a plurality of joints, and the sensory information includes, for each position from a plurality of positions associated with movement of the operating element, information indicating a current state of each joint from the plurality of joints.
[0210] 実施例14:ユーザーによって行われた選択に応答して、プロセッサーが、マーカーのセットの選択を受け取るように、プロセッサーが、上記提示後に、複数のマーカーからの少なくとも1つのマーカーを選択するようにユーザーに促すようにさらに構成される、実施例1~13のいずれか1つに記載の装置。 [0210] Example 14: The device of any one of Examples 1 to 13, wherein the processor is further configured to prompt the user to select at least one marker from the plurality of markers after the presentation, such that in response to a selection made by the user, the processor receives a selection of the set of markers.
[0211] 実施例15:プロセッサーが、センサーのセットを用いて、環境内の関心のある領域のセンシング又はスキャニングによって、環境の表現を取得するように構成される、実施例1~14のいずれか1つに記載の装置。 [0211] Example 15: The apparatus of any one of Examples 1 to 14, wherein the processor is configured to obtain a representation of the environment by sensing or scanning an area of interest within the environment using a set of sensors.
[0212] 実施例16:センサーのセットを用いて、環境の表現を取得することと、環境の表現内で複数のマーカーを識別することであって、複数のマーカーからの各マーカーが、環境内に位置する複数の物理的物体からの物理的物体に関連付けられる、識別することと、環境の表現内で複数のマーカーからの各マーカーの位置を示す情報を提示することと、上記提示後に、複数の物理的物体からの物理的物体のセットに関連付けられた、複数のマーカーからのマーカーのセットの選択を受け取ることと、環境内の操作要素の動きに関連する複数の位置からの位置ごとに、操作要素に関連する感覚情報を取得することであって、操作要素の動きが、操作要素と物理的物体のセットとの物理的インタラクションに関連する、取得することと、感覚情報に基づいて、操作要素と物理的物体のセットとの物理的インタラクションを実行するための操作要素の動作を規定するように構成されたモデルを生成することと、を有する方法。 [0212] Example 16: A method comprising: acquiring a representation of an environment using a set of sensors; identifying a plurality of markers within the representation of the environment, each marker from the plurality of markers associated with a physical object from a plurality of physical objects located in the environment; presenting information indicative of a position of each marker from the plurality of markers within the representation of the environment; and after the presenting, receiving a selection of a set of markers from the plurality of markers associated with a set of physical objects from the plurality of physical objects; acquiring, for each position from a plurality of positions associated with movement of a control element within the environment, sensory information associated with a control element, the movement of the control element being associated with a physical interaction between the control element and the set of physical objects; and generating, based on the sensory information, a model configured to define a behavior of the control element to perform a physical interaction between the control element and the set of physical objects.
[0213] 実施例17:感覚情報が、特徴のセットに関連するセンサーデータを含み、方法が、特徴のセットからの第1の特徴のサブセットの選択を受け取ることをさらに有し、上記生成することが、第1の特徴のサブセットに関連するセンサーデータに基づき、且つ第1の特徴のセットに含まれない、特徴のセットからの第2の特徴のサブセットに関連するセンサーデータには基づかずに、モデルを生成することを含む、実施例16に記載の方法。 [0213] Example 17: The method of Example 16, wherein the sensory information includes sensor data associated with a set of features, the method further comprising receiving a selection of a first subset of features from the set of features, and wherein generating includes generating the model based on sensor data associated with the first subset of features and not based on sensor data associated with a second subset of features from the set of features that is not included in the first set of features.
[0214] 実施例18:ユーザーによって行われた選択に応答して、第1の特徴のサブセットの選択が受け取られるように、特徴のセットからの少なくとも1つの特徴を選択するようにユーザーに促すことをさらに有する、実施例17に記載の方法。 [0214] Example 18: The method of Example 17, further comprising prompting the user to select at least one feature from the set of features, such that, in response to a selection made by the user, a selection of the first subset of features is received.
[0215] 実施例19:複数のマーカーが、基準マーカーであり、環境の表現が、環境の視覚的表現である、実施例16~18のいずれか1つに記載の方法。 [0215] Example 19: The method of any one of Examples 16-18, wherein the plurality of markers are fiducial markers and the representation of the environment is a visual representation of the environment.
[0216] 実施例20:操作要素が、複数の関節を含み、感覚情報が、操作要素の動きに関連する複数の位置からの位置ごとに、複数の関節からの各関節の現在の状態を示す情報を含む、実施例16~19のいずれか1つに記載の方法。 [0216] Example 20: The method of any one of Examples 16 to 19, wherein the operating element includes a plurality of joints, and the sensory information includes, for each position from a plurality of positions associated with movement of the operating element, information indicating a current state of each joint from the plurality of joints.
[0217] 実施例21:ユーザーによって行われた選択に応答して、マーカーのセットの選択が受け取られるように、上記提示後に、複数のマーカーからの少なくとも1つのマーカーを選択するようにユーザーに促すことをさらに有する、実施例16~20のいずれか1つに記載の方法。 [0217] Example 21: The method of any one of Examples 16-20, further comprising, after the presentation, prompting the user to select at least one marker from the plurality of markers, such that a selection of the set of markers is received in response to a selection made by the user.
[0218] 実施例22:環境の表現を取得することが、センサーのセットを用いて、環境内の関心のある領域のセンシング又はスキャニングを行うことを含む、実施例16~21のいずれか1つに記載の方法。 [0218] Example 22: The method of any one of Examples 16-21, wherein obtaining a representation of the environment includes sensing or scanning an area of interest within the environment using a set of sensors.
[0219] 実施例23:プロセッサーによって実行される命令を表すコードを保存する、非一時的なプロセッサー可読媒体であって、コードが、センサーのセットを用いて、環境の表現を取得することと、環境の表現内で複数のマーカーを識別することであって、複数のマーカーからの各マーカーが、環境内に位置する複数の物理的物体からの物理的物体に関連付けられる、識別することと、環境の表現内で複数のマーカーからの各マーカーの位置を示す情報を提示することと、複数の物理的物体からの物理的物体のセットに関連付けられた、複数のマーカーからのマーカーのセットの選択の受け取りに応答して、操作要素と物理的物体のセットとの物理的インタラクションを実行することに関連するモデルを識別することであって、操作要素が、複数の関節及びエンドエフェクターを含む、識別することと、モデルを使用して、物理的インタラクションを実行することに関連する、複数の関節及びエンドエフェクターの動作を規定する、操作要素の軌道を生成することと、をプロセッサーに行わせるコードを有する、非一時的なプロセッサー可読媒体。 [0219] Example 23: A non-transitory processor-readable medium storing code representing instructions to be executed by a processor, the code causing the processor to: obtain a representation of an environment using a set of sensors; identify a plurality of markers within the representation of the environment, each marker from the plurality of markers associated with a physical object from a plurality of physical objects located in the environment; present information indicative of a position of each marker from the plurality of markers within the representation of the environment; identify a model associated with performing a physical interaction between a manipulative element and the set of physical objects in response to receiving a selection of a set of markers from the plurality of markers associated with the set of physical objects from the plurality of physical objects, the manipulative element including a plurality of joints and an end effector; and generate a trajectory for the manipulative element defining a movement of the plurality of joints and the end effector associated with performing the physical interaction using the model.
[0220] 実施例24:物理的インタラクションを実行することに関連するモデルを識別することをプロセッサーに行わせるコードが、モデルを識別するようにユーザーに促すことをプロセッサーに行わせるコードを含む、実施例23に記載の非一時的なプロセッサー可読媒体。 [0220] Example 24: The non-transitory processor-readable medium of Example 23, wherein the code for causing the processor to identify a model associated with performing a physical interaction comprises code for causing the processor to prompt a user to identify the model.
[0221] 実施例25:物理的インタラクションを実行することに関連するモデルを識別することをプロセッサーに行わせるコードが、マーカーのセットの選択に基づいて、プロセッサーにモデルを識別させるコードを含む、実施例23又は24に記載の非一時的なプロセッサー可読媒体。 [0221] Example 25: The non-transitory processor-readable medium of Example 23 or 24, wherein the code for causing the processor to identify a model associated with performing a physical interaction comprises code for causing the processor to identify the model based on a selection of a set of markers.
[0222] 実施例26:環境の表現内で操作要素の軌道をユーザーに表示することと、表示後に、ユーザーから入力を受け取ることと、操作要素の軌道の承認を示す入力に応答して、物理的インタラクションを実行するために、複数の関節及びエンドエフェクターの動作を実施することと、をプロセッサーに行わせるコードをさらに有する、実施例23~25のいずれか1つに記載の非一時的なプロセッサー可読媒体。 [0222] Example 26: The non-transitory processor-readable medium of any one of Examples 23-25, further comprising code that causes a processor to: display a trajectory of the manipulative element to a user within a representation of the environment; receive input from the user after the display; and, in response to the input indicating approval of the trajectory of the manipulative element, perform movement of a plurality of joints and an end effector to perform a physical interaction.
[0223] 実施例27:軌道が、第1の軌道であり、非一時的なプロセッサー可読媒体が、操作要素の軌道の承認を示さない入力に応答して、モデルに関連するパラメーターのセットを修正することによって修正モデルを生成することと、修正モデルを使用して、操作要素の第2の軌道を生成することと、をプロセッサーに行わせるコードをさらに有する、実施例23~26のいずれか1つに記載の非一時的なプロセッサー可読媒体。 [0223] Example 27: The non-transitory processor-readable medium of any one of Examples 23-26, wherein the trajectory is a first trajectory, and the non-transitory processor-readable medium further comprises code that causes a processor to: generate a modified model by modifying a set of parameters associated with the model in response to an input that does not indicate approval of the trajectory of the manipulative element; and generate a second trajectory of the manipulative element using the modified model.
[0224] 実施例28:軌道が、第1の軌道であり、モデルが、第1のモデルであり、非一時的なプロセッサー可読媒体が、操作要素の軌道の承認を示さない入力に応答して、第1のモデルを生成するために使用された特徴のセットとは異なる特徴のセットに関連するセンサーデータに基づいて、第2のモデルを生成することと、第2のモデルを使用して、操作要素の第2の軌道を生成することと、をプロセッサーに行わせるコードをさらに有する、実施例23~26のいずれか1つに記載の非一時的なプロセッサー可読媒体。 [0224] Example 28: The non-transitory processor-readable medium of any one of Examples 23-26, wherein the trajectory is a first trajectory, the model is a first model, and the non-transitory processor-readable medium further comprises code that causes a processor to, in response to an input that does not indicate approval of the trajectory of the manipulative element, generate a second model based on sensor data associated with a set of features different from the set of features used to generate the first model, and generate a second trajectory of the manipulative element using the second model.
[0225] 実施例29:物理的インタラクションを実行するために、複数の関節及びエンドエフェクターの動作を実施することと、物理的インタラクションの実行に関連する感覚情報を取得することと、感覚情報に基づいて、物理的インタラクションの実行が、あらかじめ規定及び/又は学習された成功基準を満たすか否かを決定することと、をプロセッサーに行わせるコードをさらに有する、実施例23~28のいずれか1つに記載の非一時的なプロセッサー可読媒体。 [0225] Example 29: The non-transitory processor-readable medium of any one of Examples 23 to 28, further comprising code that causes a processor to: perform movements of a plurality of joints and an end effector to perform a physical interaction; acquire sensory information related to the performance of the physical interaction; and determine, based on the sensory information, whether the performance of the physical interaction meets pre-defined and/or learned success criteria.
[0226] 実施例30:物理的インタラクションの実行が、あらかじめ規定及び/又は学習された成功基準を満たすという決定に応答して、物理的インタラクションが成功したことを示す信号を生成することと、物理的インタラクションの実行が、あらかじめ規定及び/又は学習された成功基準を満たさないという決定に応答して、感覚情報に基づいてモデルを修正することによって、修正モデルを生成することと、修正モデルを用いて、操作要素の第2の軌道を生成することと、をプロセッサーに行わせるコードをさらに有する、実施例29に記載の非一時的なプロセッサー可読媒体。 [0226] Example 30: The non-transitory processor-readable medium of Example 29, further comprising code that causes a processor to: generate a signal indicating that the physical interaction was successful in response to a determination that the performance of the physical interaction meets pre-defined and/or learned success criteria; and generate a modified model by modifying the model based on the sensory information in response to a determination that the performance of the physical interaction does not meet the pre-defined and/or learned success criteria; and generate a second trajectory for the manipulative element using the modified model.
[0227] 実施例31:モデルが、(i)保存されたマーカーのセットと、(ii)保存されたマーカーのセットに関連する、操作要素の保存された軌道に沿った点における操作要素の位置又は向きの少なくとも一方を示す感覚情報と、(iii)保存された軌道に沿った点における、複数の関節の構成を示す感覚情報と、に関連付けられ、操作要素の軌道を生成することをプロセッサーに行わせるコードが、マーカーのセット及び保存されたマーカーのセット間の変換関数を計算することと、点ごとに、変換関数を用いて、操作要素の位置又は向きの少なくとも一方を変換することと、点ごとに、保存された軌道に沿った点における複数の関節の構成に基づいて、複数の関節の計画された構成を決定することと、点ごとに、その点に関する複数の関節の計画された構成に基づいて、その点及び連続点間の軌道の一部を決定することと、をプロセッサーに行わせるコードを含む、実施例23~30のいずれか1つに記載の非一時的なプロセッサー可読媒体。 [0227] Example 31: The non-transitory processor-readable medium of any one of Examples 23-30, wherein the model is associated with (i) a set of stored markers; (ii) sensory information indicative of at least one of a position or orientation of the manipulative element at points along a stored trajectory of the manipulative element associated with the set of stored markers; and (iii) sensory information indicative of a configuration of a plurality of joints at the points along the stored trajectory, and the code for causing the processor to generate a trajectory for the manipulative element includes code for causing the processor to: calculate a transformation function between the set of markers and the stored set of markers; transform, for each point, at least one of a position or orientation of the manipulative element using the transformation function; determine, for each point, a planned configuration of the plurality of joints based on the configuration of the plurality of joints at the point along the stored trajectory; and determine, for each point, a portion of the trajectory between the point and successive points based on the planned configuration of the plurality of joints relative to the point.
[0228] 実施例32:モデルが、(i)保存されたマーカーのセットと、(ii)保存されたマーカーのセットに関連する、操作要素の保存された軌道に沿った点における操作要素の位置又は向きの少なくとも一方を示す感覚情報と、に関連付けられ、操作要素の軌道を生成することをプロセッサーに行わせるコードが、マーカーのセット及び保存されたマーカーのセット間の変換関数を計算することと、点ごとに、変換関数を用いて、操作要素の位置又は向きの少なくとも一方を変換することと、点ごとに、複数の関節の計画された構成を決定することと、点ごとに、その点に関する複数の関節の計画された構成に基づいて、その点及び連続点間の軌道の一部を決定することと、をプロセッサーに行わせるコードを含む、実施例23~30のいずれか1つに記載の非一時的なプロセッサー可読媒体。 [0228] Example 32: The non-transitory processor-readable medium of any one of Examples 23-30, wherein the model is associated with (i) a set of stored markers and (ii) sensory information indicative of at least one of a position or orientation of the manipulative element at points along the stored trajectory of the manipulative element associated with the set of stored markers, and the code for causing the processor to generate a trajectory for the manipulative element includes code for causing the processor to: calculate a transformation function between the set of markers and the set of stored markers; transform, for each point, at least one of the position or orientation of the manipulative element using the transformation function; determine, for each point, a planned configuration of a plurality of joints; and determine, for each point, a portion of the trajectory between the point and successive points based on the planned configuration of the plurality of joints relative to the point.
[0229] 実施例33:操作要素の第1の場所と、物理的物体のセットからの物理的物体の場所との間の距離に基づいて、操作要素の場所を変更するか否かを決定することと、操作要素の場所を変更するとの決定に応答して、物理的物体の場所により近接する第2の場所へと操作要素を第1の場所から移動させることと、をプロセッサーに行わせるコードをさらに有し、操作要素の軌道を生成することをプロセッサーに行わせるコードが、上記移動後に、操作要素の第2の場所に対する物理的物体の場所に基づいて、軌道を生成することをプロセッサーに行わせるコードを含む、請求項23~32のいずれか一項に記載の非一時的なプロセッサー可読媒体。 [0229] Example 33: The non-transitory processor-readable medium of any one of claims 23 to 32, further comprising code that causes a processor to: determine whether to change a location of the manipulative element based on a distance between a first location of the manipulative element and a location of a physical object from a set of physical objects; and, in response to determining to change the location of the manipulative element, move the manipulative element from the first location to a second location that is closer to the location of the physical object; and the code that causes the processor to generate a trajectory for the manipulative element includes code that causes the processor to generate the trajectory based on the location of the physical object relative to the second location of the manipulative element after the movement.
[0230] 様々な発明の実施形態を本明細書に記載及び図示したが、当業者は、本明細書に記載される機能を行い、及び/又は本明細書に記載される結果及び/又は利点の1つ若しくは複数を得るための様々な他の手段及び/又は構造を容易に想像し、そのような変形形態及び/又は変更形態のそれぞれは、本明細書に記載される発明の実施形態の範囲内であると見なされる。より一般的に、本明細書に記載される全てのパラメーター、寸法、材料、及び構成が、例示的であることを意図されていることと、実際のパラメーター、寸法、材料、及び/又は構成が、本発明の教示が使用される具体的な1つ又は複数の適用例によって決まることとを当業者は容易に理解するだろう。当業者は、本明細書に記載される具体的な発明の実施形態の多数の均等物を認識し、又はありふれた実験を行うだけで、それらを解明できるだろう。したがって、上述の実施形態が、単なる例として提示されること、並びに添付の特許請求の範囲及びその均等物の範囲内で、発明の実施形態が、具体的に記載及び請求された以外の方法で実施され得ることが理解されるものとする。本開示の発明の実施形態は、本明細書に記載される個々の特徴、システム、製品、材料、キット、及び/又は方法に向けられる。さらに、2つ以上のこのような特徴、システム、製品、材料、キット、及び/又は方法の任意の組み合わせは、それらの特徴、システム、製品、材料、キット、及び/又は方法が互いに矛盾しなければ、本開示の発明範囲内に含まれる。 [0230] While various inventive embodiments have been described and illustrated herein, those skilled in the art will readily envision numerous other means and/or structures for performing the functions described herein and/or obtaining one or more of the results and/or advantages described herein, and each such variation and/or modification is deemed to be within the scope of the inventive embodiments described herein. More generally, those skilled in the art will readily appreciate that all parameters, dimensions, materials, and configurations described herein are intended to be exemplary, and that the actual parameters, dimensions, materials, and/or configurations will depend on the specific application or applications for which the teachings of the present invention are used. Those skilled in the art will recognize, or will be able to ascertain using no more than routine experimentation, many equivalents to the specific inventive embodiments described herein. Accordingly, it is to be understood that the above-described embodiments are presented by way of example only, and that, within the scope of the appended claims and their equivalents, inventive embodiments may be practiced otherwise than as specifically described and claimed. The inventive embodiments of the present disclosure are directed to each individual feature, system, product, material, kit, and/or method described herein. Furthermore, any combination of two or more such features, systems, products, materials, kits, and/or methods is within the inventive scope of the present disclosure, provided those features, systems, products, materials, kits, and/or methods are not mutually inconsistent.
[0231] また、様々な発明概念が、1つ又は複数の方法として具現化されることが可能であり、その一例を提供した。方法の一部として行われるアクトは、任意の適切なやり方で順序付けられてもよい。したがって、例示されたものとは異なる順序でアクトが行われる実施形態が構築されることが可能であり、これらの実施形態は、例示的実施形態では、逐次的アクトとして示されているが、いくつかのアクトを同時に行うことを含み得る。 [0231] Also, various inventive concepts may be embodied as one or more methods, examples of which have been provided. Acts performed as part of a method may be ordered in any suitable manner. Accordingly, embodiments may be constructed in which acts are performed in an order different from that illustrated, and these embodiments may include performing some acts simultaneously even though, in the illustrative embodiment, acts are shown as sequential.
[0232] 本明細書に記載される、いくつかの実施形態及び/又は方法は、(ハードウェア上で実行される)別のソフトウェア、ハードウェア、又はそれらの組み合わせによって行われ得る。ハードウェアモジュールは、例えば、汎用プロセッサー、フィールド・プログラマブル・ゲート・アレイ(FPGA)、及び/又は特定用途向け集積回路(ASIC)を含み得る。(ハードウェア上で実行される)ソフトウェアモジュールは、C、C++、Java(商標)、Ruby、Visual Basic(商標)、及び/又は他のオブジェクト指向、手続き型、若しくは他のプログラミング言語及び開発ツールを含む、様々なソフトウェア言語(例えば、コンピューターコード)で表現され得る。コンピューターコードの例には、マイクロコード又はマイクロ命令、コンパイラーによって生成されるようなマシン命令、ウェブサービスを生み出すために使用されるコード、及びインタープリターを用いてコンピューターによって実行される高水準命令を含むファイルが含まれるが、これらに限定されない。例えば、実施形態は、命令型プログラミング言語(例えば、C、Fortranなど)、関数型プログラミング言語(Haskell、Erlangなど)、論理型プログラミング言語(例えば、Prolog)、オブジェクト指向プログラミング言語(例えば、Java、C++など)、又は他の適宜のプログラミング言語及び/又は開発ツールを用いて実施され得る。コンピューターコードの追加例には、制御信号、暗号化コード、及び圧縮コードが含まれるが、これらに限定されない。 [0232] Some embodiments and/or methods described herein may be performed by other software (executed on hardware), hardware, or a combination thereof. Hardware modules may include, for example, general-purpose processors, field programmable gate arrays (FPGAs), and/or application-specific integrated circuits (ASICs). Software modules (executed on hardware) may be expressed in various software languages (e.g., computer code), including C, C++, Java™, Ruby, Visual Basic™, and/or other object-oriented, procedural, or other programming languages and development tools. Examples of computer code include, but are not limited to, microcode or microinstructions, machine instructions such as those produced by a compiler, code used to create web services, and files containing high-level instructions executed by a computer using an interpreter. For example, embodiments may be implemented using imperative programming languages (e.g., C, Fortran, etc.), functional programming languages (e.g., Haskell, Erlang, etc.), logic programming languages (e.g., Prolog), object-oriented programming languages (e.g., Java, C++, etc.), or other suitable programming languages and/or development tools. Additional examples of computer code include, but are not limited to, control signals, encryption code, and compression code.
[0233] 様々な要素を描写するために、「第1の」、「第2の」、「第3の」などの用語が本明細書で使用される場合があるが、これらの要素は、これらの用語によって限定されるものではないことが理解されるだろう。これらの用語は、ある要素を別の要素と区別するためだけに使用される。したがって、本明細書で述べられる第1の要素は、本開示の教示から逸脱することなく、第2の要素と名付けられ得る。 [0233] While terms such as "first," "second," and "third" may be used herein to describe various elements, it will be understood that these elements are not limited by these terms. These terms are used only to distinguish one element from another. Thus, a first element described herein could be termed a second element without departing from the teachings of the present disclosure.
[0234] 本明細書で使用される用語は、単に、特定の実施形態を説明する目的のためのものであり、制限的であることが意図されるものではない。本明細書で使用されるように、単数形「a」、「an」、及び「the」は、文脈上明らかに他の意味を示す場合を除き、複数形も含むことが意図される。本明細書で使用される「有する」という用語(「comprises」及び/又は「comprising」)、又は「含む」という用語(「includes」及び/又は「including」)は、明記された特徴、領域、整数値、ステップ、動作、要素、及び/又はコンポーネントの存在を指定するが、1つ又は複数の他の特徴、領域、整数値、ステップ、動作、要素、コンポーネント、及び/又はこれらの群の存在又は追加を除外しないことがさらに理解されるだろう。 [0234] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting. As used herein, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms "comprises" and/or "comprising" or "includes" and/or "including" as used herein specify the presence of stated features, regions, integers, steps, operations, elements, and/or components, but do not exclude the presence or addition of one or more other features, regions, integers, steps, operations, elements, components, and/or groups thereof.
Claims (18)
表面に沿って移動するように構成された搬送要素と、
センサーのセットと、
メモリーと、
前記メモリー、前記操作要素、前記搬送要素、及び前記センサーのセットに動作可能に結合されたプロセッサーであって、
前記センサーのセットを用いて、非構造化環境である環境の情報と、前記ロボットデバイスの現在の状態とを取得することであって、前記ロボットデバイスの前記現在の状態は、前記搬送要素及び前記操作要素の現在の状態であり、前記センサーのセットを用いて取得される情報は、前記環境内の物理的対象の位置の情報と、前記操作要素の前記複数の関節の構成の情報とを含む、取得することと、
前記環境の前記情報に基づいて、ユーザー入力が必要とされることを決定することと、
前記ユーザー入力が必要とされるとの決定に応答して、ユーザーからの前記ユーザー入力を要求することと、
アービトレーションアルゴリズムを用いて、前記環境の前記情報と、前記ロボットデバイスの前記現在の状態と、前記ユーザー入力とに基づいて複数のスキルから実行するスキルを選択することであって、前記スキルの前記実行は、前記操作要素と前記環境内の前記物理的対象との間の物理的インタラクションを含む、前記選択することと、
前記スキルの少なくとも一部を実行するためのモデルを使用して、前記環境の前記情報と、前記ロボットデバイスの前記現在の状態と、前記ユーザー入力との少なくとも1つに基づいて前記スキルの前記一部を実行する計画であって、前記操作要素又は前記搬送要素の少なくとも一方の1つ又は複数の動作を含む計画を生成することと、
前記計画に基づいて、前記操作要素又は前記搬送要素の前記少なくとも一方を動かすことと、
を行うように構成されたプロセッサーと、
を有する、ロボットデバイス。 an operating element including a plurality of joints ;
a conveying element configured to move along a surface;
A set of sensors and
Memory and
a processor operatively coupled to the memory, the operating element, the transport element, and the set of sensors,
acquiring, using the set of sensors, information about an environment, which is an unstructured environment, and a current state of the robotic device , wherein the current state of the robotic device is a current state of the transport element and the manipulating element, and the information acquired using the set of sensors includes information about positions of physical objects in the environment and information about configurations of the plurality of joints of the manipulating element;
determining, based on the information of the environment, that user input is required; and
In response to determining that the user input is required, requesting the user input from a user;
selecting, using an arbitration algorithm, a skill to execute from a plurality of skills based on the information of the environment, the current state of the robotic device , and the user input, wherein the execution of the skill includes a physical interaction between the operational element and the physical object in the environment ;
generating a plan for executing at least a portion of the skill based on at least one of the information of the environment, the current state of the robotic device, and the user input using a model for executing at least a portion of the skill, the plan including one or more movements of at least one of the manipulation element or the transport element;
moving the at least one of the operating element or the conveying element based on the plan;
a processor configured to:
A robotic device comprising:
前記スキルの第2の部分が、前記環境に対する特化を必要とすることを決定することと、
前記スキルの前記第2の部分が特化を必要とするとの決定に応答して、ユーザーからの第2のユーザー入力を要求することと、
前記第2のユーザー入力の受け取りに応答して、前記第2のユーザー入力に基づいて前記スキルの前記第2の部分を実行する計画を生成することと、
前記スキルの前記第2の部分を実行する前記計画に基づいて、前記操作要素及び前記搬送要素の前記少なくとも一方を動かすことと、
をさらに行うように構成される、請求項1に記載のロボットデバイス。 the portion of the skill is a first portion, and the processor:
determining that a second portion of the skills requires specialization for the environment;
In response to determining that the second portion of the skill requires specialization, requesting second user input from a user;
In response to receiving the second user input, generating a plan to perform the second portion of the skill based on the second user input;
moving the at least one of the operating element and the transport element based on the plan to perform the second portion of the skill;
The robotic device of claim 1 , further configured to:
前記スキルの第2の部分が、前記環境に対する特化を必要とすることを決定することと、
前記スキルの前記第2の部分が特化を必要とするとの決定に応答して、ユーザーに実演を要求することと、
前記実演に関連する複数の位置からの各位置に関して、前記センサーのセットによって収集され、及び前記環境、前記操作要素、又は前記搬送要素の少なくとも1つに関連する情報を取得することと、
前記モデル及び前記センサーのセットによって収集された前記情報を用いて、前記環境で前記スキルを実行するための特化モデルを生成することと、
をさらに行うように構成される、請求項1に記載のロボットデバイス。 the portion of the skill is a first portion, and the processor:
determining that a second portion of the skills requires specialization for the environment;
In response to determining that the second portion of the skill requires specialization, requesting a performance from the user;
acquiring, for each location from a plurality of locations associated with the demonstration, information collected by the set of sensors and relating to at least one of the environment, the operating element, or the transport element;
generating a specialized model for performing the skill in the environment using the model and the information collected by the set of sensors ; and
The robotic device of claim 1 , further configured to:
前記操作要素又は前記搬送要素の前記少なくとも一方が、前記計画に基づいて、動いているときに、前記センサーのセットを用いて、前記環境、前記操作要素、又は前記搬送要素の少なくとも1つの情報を取得することと、
前記環境、前記操作要素、又は前記搬送要素の前記少なくとも1つの前記情報に基づいて、前記操作要素又は前記搬送要素の前記少なくとも一方の前記動作が、1つ又は複数の成功基準を満たせなかったことを決定することと、
前記動作が前記1つ又は複数の成功基準を満たせなかったとの決定に応答して、前記スキルの少なくとも一部を実行するために、前記計画を修正することと、
前記修正計画に基づいて、前記操作要素又は前記搬送要素の前記少なくとも一方を動かすことと、
をさらに行うように構成される、請求項1に記載のロボットデバイス。 the processor:
acquiring information of at least one of the environment, the operation element, or the transport element using the set of sensors when the at least one of the operation element or the transport element is moving based on the plan;
determining, based on the information of the at least one of the environment, the operating element, or the transport element, that the operation of the at least one of the operating element or the transport element failed to meet one or more success criteria;
modifying the plan to perform at least a portion of the skill in response to determining that the action failed to meet the one or more success criteria;
moving the at least one of the operating element or the conveying element based on the correction plan;
The robotic device of claim 1 , further configured to:
前記操作要素又は前記搬送要素の前記少なくとも一方が、前記計画に基づいて、動いているときに、前記センサーのセットを用いて、前記環境、前記操作要素、又は前記搬送要素の少なくとも1つの情報を取得することと、
前記環境、前記操作要素、又は前記搬送要素の前記少なくとも1つの前記情報に基づいて、前記環境のマップを更新することと、
をさらに行うように構成される、請求項1に記載のロボットデバイス。 the processor:
acquiring information of at least one of the environment, the operation element, or the transport element using the set of sensors when the at least one of the operation element or the transport element is moving based on the plan;
updating a map of the environment based on the information of the at least one of the environment, the operating element, or the transport element;
The robotic device of claim 1 , further configured to:
前記環境内の1つ又は複数の物体に関連する情報を前記意味層に保存することと、
前記1つ又は複数の物体に関連する前記情報に基づいて、前記1つ又は複数の物体の近くで実行する1つ又は複数の挙動を決定することと、
前記1つ又は複数の挙動を前記コンテキスト層に保存することと、
によって、前記環境の前記マップを更新するように構成される、請求項5に記載のロボットデバイス。 the map of the environment includes at least a semantic layer and a context layer, and the processor:
storing information related to one or more objects in the environment in the semantic layer;
determining one or more behaviors to perform near the one or more objects based on the information related to the one or more objects;
storing the one or more behaviors in the context layer;
6. The robotic device of claim 5, configured to update the map of the environment by:
前記スキルの前記少なくとも一部を実行する前記計画をユーザーに表示することと、
前記表示後に、前記スキルの前記少なくとも一部の実行を始める確認を示す第3のユーザー入力を受け取ることと、
をさらに行うように構成され、
前記プロセッサーが、前記第3のユーザー入力の受け取りに応答して、前記操作要素又は前記搬送要素の前記少なくとも一方を動かすように構成される、請求項1に記載のロボットデバイス。 the processor:
displaying the plan to execute the at least some of the skills to a user; and
receiving, after the display, a third user input indicating a confirmation to initiate performance of the at least part of the skill;
and further configured to:
The robotic device of claim 1 , wherein the processor is configured to move the at least one of the manipulation element or the transport element in response to receiving the third user input.
前記スキルの前記少なくとも一部を実行する前記計画をユーザーに表示することと、
前記表示後に、前記計画に対する変更を示す第4のユーザー入力を受け取ることと、
前記第4のユーザー入力に基づいて、前記計画を修正することと、
をさらに行うように構成され、
前記プロセッサーが、前記計画の修正後に、前記計画に基づいて、前記操作要素又は前記搬送要素の前記少なくとも一方を動かすように構成される、請求項1に記載のロボットデバイス。 the processor:
displaying the plan to execute the at least some of the skills to a user; and
receiving a fourth user input after said display indicating a change to said plan;
modifying the plan based on the fourth user input; and
and further configured to:
The robotic device of claim 1 , wherein the processor is configured to move the at least one of the manipulation element or the transport element based on the plan after modifying the plan.
前記センサーのセットが、
前記複数の関節からの関節に作用するトルクを測定するように構成されたセンサー、又は
前記複数の可動コンポーネントからの可動コンポーネントと、前記物理的対象のセットからの物理的対象との係合を検出するように構成されたセンサー、
の少なくとも一方を含む、請求項1に記載のロボットデバイス。 the operating element includes a plurality of movable components connected by a plurality of joints;
the set of sensors
a sensor configured to measure a torque acting on a joint from the plurality of joints; or a sensor configured to detect engagement of a moving component from the plurality of moving components with a physical object from the set of physical objects;
The robotic device of claim 1 , comprising at least one of:
前記環境の前記情報をユーザーに提示することと、
第5のユーザー入力を受け取ることであって、前記第5のユーザー入力が、社会的挙動を実行する命令を含み、前記スキルの前記一部が、少なくとも1人の人間とのインタラクションに関与する、受け取ることと、
前記環境内の前記少なくとも1人の人間を識別することと、
前記少なくとも1人の人間の近くで前記社会的挙動を実行することと、
をさらに行うように構成される、請求項1に記載のロボットデバイス。 the processor:
presenting the information of the environment to a user;
receiving a fifth user input, the fifth user input including an instruction to perform a social behavior, the portion of the skill involving an interaction with at least one human;
identifying the at least one human in the environment;
performing the social behavior in proximity to the at least one human; and
The robotic device of claim 1 , further configured to:
前記センサーのセットを用いて、前記環境の前記一部とは異なる環境の他の一部の情報を取得することと、
前記環境の前記他の一部において前記スキルの他の一部を実行するためにユーザーの入力が要求されるとの決定に応答して、前記スキルの前記他の一部を実行することに関連する第6のユーザー入力を提供することをユーザーに促すことと、
前記第6のユーザー入力に基づいて、前記スキルの前記他の一部を実行する他の一つの計画を生成することと、
をさらに行うように構成される、請求項1に記載のロボットデバイス。 the processor:
acquiring information about another portion of the environment that is different from the portion of the environment using the set of sensors;
In response to determining that user input is required to perform another portion of the skill in the other portion of the environment, prompting a user to provide a sixth user input related to performing the other portion of the skill;
generating another plan to execute the other portion of the skill based on the sixth user input; and
The robotic device of claim 1 , further configured to:
前記環境の追加情報を取得する間に、前記スキルの前記一部を実行する前記計画に基づいて前記操作要素及び前記搬送要素を動かすことと、
前記環境の前記追加情報に基づいて前記環境内の変化を特定することに応答して、前記スキルの前記実行を中断することと、
前記環境内の前記変化に基づいて前記ユーザーにフィードバックを提供することを促すことと、
前記フィードバックに基づいて前記スキルの他の一部を実行する他の一つの計画を生成することと、
をさらに行うように構成される、請求項1に記載のロボットデバイス。 the processor:
moving the manipulation element and the transport element based on the plan to perform the portion of the skill while acquiring additional information about the environment;
suspending the execution of the skill in response to identifying a change in the environment based on the additional information of the environment;
prompting the user to provide feedback based on the changes in the environment; and
generating another plan to execute another portion of the skill based on the feedback; and
The robotic device of claim 1 , further configured to:
前記環境の前記情報に基づいて、ユーザー入力が必要とされることを決定することと、
前記ユーザー入力が必要とされるとの決定に応答して、ユーザーからの前記ユーザー入力を要求することと、
アービトレーションアルゴリズムを用いて、前記環境の前記情報と、前記ロボットデバイスの前記現在の状態と、前記ユーザー入力とに基づいて複数のスキルから実行するスキルを選択することであって、前記スキルの前記実行は、前記操作要素と前記環境内の前記物理的対象との間の物理的インタラクションを含む、前記選択することと、
前記スキルの一部を実行するためのモデルを使用して、前記環境の前記情報と、前記ロボットデバイスの前記現在の状態と、前記ユーザー入力との少なくとも1つに基づいて前記スキルの前記一部を実行する計画であって、前記ロボットデバイスの操作要素又は搬送要素の少なくとも一方の1つ又は複数の動作を含む計画を生成することと、
前記計画に基づいて、前記操作要素又は前記搬送要素の前記少なくとも一方を動かすことと、
を有する、方法。 acquiring, using a set of sensors of a robotic device, information of an environment, the environment being an unstructured environment, and a current state of the robotic device, the current state of the robotic device being a current state of a transport element and a manipulation element of the robotic device, the information acquired using the set of sensors including information of positions of physical objects in the environment and information of configurations of the plurality of joints of the manipulation element;
determining, based on the information of the environment, that user input is required; and
In response to determining that the user input is required, requesting the user input from a user;
selecting, using an arbitration algorithm, a skill to execute from a plurality of skills based on the information of the environment, the current state of the robotic device , and the user input, wherein the execution of the skill includes a physical interaction between the operational element and the physical object in the environment ;
generating a plan for executing the portion of the skill based on at least one of the information of the environment, the current state of the robotic device, and the user input using a model for executing the portion of the skill, the plan including one or more movements of at least one of a manipulation element or a transport element of the robotic device;
moving the at least one of the operating element or the conveying element based on the plan;
A method comprising:
前記環境、前記操作要素、又は前記搬送要素の前記少なくとも1つの前記情報に基づいて、前記メモリーに保存された前記環境のマップを更新することと、
前記環境の前記マップに対する前記更新を示す情報を計算デバイスに送ることと、
前記ロボットデバイス以外のロボットデバイスのセットから前記計算デバイスによって受け取られた、前記環境の前記マップに対する更新を示す情報を前記計算デバイスから受け取ることと、
をさらに有する、請求項14に記載の方法。 acquiring information of at least one of the environment, the operating element, or the transport element using the set of sensors of the robotic device when the at least one of the operating element or the transport element is moving based on the plan;
updating a map of the environment stored in the memory based on the information of the at least one of the environment, the operating element, or the transport element;
sending information indicative of the update to the map of the environment to a computing device;
receiving information from the computing device indicative of updates to the map of the environment received by the computing device from a set of robotic devices other than the robotic device;
The method of claim 14 further comprising:
前記環境の前記他の一部において前記スキルの他の一部を実行するためにユーザーの入力が要求されるとの決定に応答して、前記スキルの前記他の一部を実行することに関連する第2のユーザー入力を提供することをユーザーに促すことと、
前記第2のユーザー入力に基づいて、前記スキルの前記他の一部を実行する他の一つの計画を生成することと、
をさらに有する、請求項14に記載の方法。 acquiring information about another portion of the environment that is different from the portion of the environment using the set of sensors;
In response to determining that user input is required to perform another portion of the skill in the other portion of the environment, prompting a user to provide a second user input related to performing the other portion of the skill;
generating another plan to execute the other portion of the skill based on the second user input;
The method of claim 14 further comprising:
前記環境の前記追加情報に基づいて前記環境内の変化を特定することに応答して、前記スキルの前記実行を中断することと、
前記環境内の前記変化に基づいて前記ユーザーにフィードバックを提供することを促すことと、
前記フィードバックに基づいて前記スキルの他の一部を実行する他の一つの計画を生成することと、
をさらに有する、請求項14に記載の方法。 moving the manipulation element and the transport element based on the plan to perform the portion of the skill while acquiring additional information about the environment;
suspending the execution of the skill in response to identifying a change in the environment based on the additional information of the environment;
prompting the user to provide feedback based on the changes in the environment; and
generating another plan to execute another portion of the skill based on the feedback; and
The method of claim 14 further comprising:
前記環境、前記操作要素、又は前記搬送要素の前記少なくとも1つの前記情報に基づいて、前記操作要素又は前記搬送要素の前記少なくとも一方の前記動作が、1つ又は複数の成功基準を満たせなかったことを決定することと、
前記動作が前記1つ又は複数の成功基準を満たせなかったとの決定に応答して、前記スキルの少なくとも一部を実行するために、前記計画を修正することと、
前記修正計画に基づいて、前記操作要素又は前記搬送要素の前記少なくとも一方を動かすことと、
をさらに有する、請求項15に記載の方法。 acquiring information of at least one of the environment, the operation element, or the transport element using the set of sensors when the at least one of the operation element or the transport element is moving based on the plan;
determining, based on the information of the at least one of the environment, the operating element, or the transport element, that the operation of the at least one of the operating element or the transport element failed to meet one or more success criteria;
modifying the plan to perform at least a portion of the skill in response to determining that the action failed to meet the one or more success criteria;
moving the at least one of the operating element or the conveying element based on the correction plan;
16. The method of claim 15, further comprising:
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2024096683A JP2024138277A (en) | 2018-08-28 | 2024-06-14 | Systems, Apparatus, and Methods for Robotic Learning and Execution of Skills - Patent application |
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201862723694P | 2018-08-28 | 2018-08-28 | |
| US62/723,694 | 2018-08-28 | ||
| US16/456,919 US11148288B2 (en) | 2017-02-25 | 2019-06-28 | Systems, apparatus, and methods for robotic learning and execution of skills |
| US16/456,919 | 2019-06-28 | ||
| PCT/US2019/048601 WO2020047120A1 (en) | 2018-08-28 | 2019-08-28 | Systems, apparatus, and methods for robotic learning and execution of skills |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2024096683A Division JP2024138277A (en) | 2018-08-28 | 2024-06-14 | Systems, Apparatus, and Methods for Robotic Learning and Execution of Skills - Patent application |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JP2021534988A JP2021534988A (en) | 2021-12-16 |
| JP2021534988A5 JP2021534988A5 (en) | 2022-09-05 |
| JP7765286B2 true JP7765286B2 (en) | 2025-11-06 |
Family
ID=69645343
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2021510317A Active JP7765286B2 (en) | 2018-08-28 | 2019-08-28 | Systems, devices, and methods for robotic learning and execution of skills |
| JP2024096683A Pending JP2024138277A (en) | 2018-08-28 | 2024-06-14 | Systems, Apparatus, and Methods for Robotic Learning and Execution of Skills - Patent application |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2024096683A Pending JP2024138277A (en) | 2018-08-28 | 2024-06-14 | Systems, Apparatus, and Methods for Robotic Learning and Execution of Skills - Patent application |
Country Status (3)
| Country | Link |
|---|---|
| EP (1) | EP3843952A1 (en) |
| JP (2) | JP7765286B2 (en) |
| WO (1) | WO2020047120A1 (en) |
Families Citing this family (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11833684B2 (en) | 2017-02-25 | 2023-12-05 | Diligent Robotics, Inc. | Systems, apparatus, and methods for robotic learning and execution of skills |
| US11534913B2 (en) | 2020-05-21 | 2022-12-27 | Intrinsic Innovation Llc | Integrating sensor streams for robotic demonstration learning |
| US11685047B2 (en) | 2020-05-21 | 2023-06-27 | Intrinsic Innovation Llc | Skill template distribution for robotic demonstration learning |
| US11524402B2 (en) | 2020-05-21 | 2022-12-13 | Intrinsic Innovation Llc | User feedback for robotic demonstration learning |
| US11679497B2 (en) * | 2020-05-21 | 2023-06-20 | Intrinsic Innovation Llc | Distributed robotic demonstration learning |
| US11986958B2 (en) | 2020-05-21 | 2024-05-21 | Intrinsic Innovation Llc | Skill templates for robotic demonstration learning |
| EP4191606A4 (en) * | 2020-07-31 | 2024-01-24 | Sony Group Corporation | Medical assistance system, medical assistance method, and computer program |
| WO2022170279A1 (en) | 2021-02-08 | 2022-08-11 | Diligent Robotics, Inc. | Systems, apparatuses, and methods for robotic learning and execution of skills including navigation and manipulation functions |
| CN116964593A (en) * | 2021-02-25 | 2023-10-27 | 纳米电子成像有限公司 | Imitation learning in manufacturing environments |
| US11717974B1 (en) * | 2022-06-10 | 2023-08-08 | Sanctuary Cognitive Systems Corporation | Haptic photogrammetry in robots and methods for operating the same |
| CN118254150B (en) * | 2022-12-26 | 2026-03-24 | 广东美的制冷设备有限公司 | 7-DOF Redundant Robotic Arm and its Inverse Kinematics Solution Method |
| WO2024237329A1 (en) * | 2023-05-17 | 2024-11-21 | 国立研究開発法人理化学研究所 | System |
| WO2025222202A1 (en) | 2024-04-19 | 2025-10-23 | Diligent Robotics, Inc. | Multi-sensor perception model, and systems, devices, and methods thereof |
| WO2025248735A1 (en) * | 2024-05-30 | 2025-12-04 | Ntt株式会社 | Robot control device |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003271975A (en) | 2002-03-15 | 2003-09-26 | Sony Corp | Planar extraction method, its apparatus, its program, its recording medium, and robot apparatus equipped with plane extraction apparatus |
| JP2004049731A (en) | 2002-07-23 | 2004-02-19 | Yaskawa Electric Corp | Teaching method of limb driving device |
| JP2005131713A (en) | 2003-10-28 | 2005-05-26 | Advanced Telecommunication Research Institute International | Communication robot |
| JP2014194658A (en) | 2013-03-28 | 2014-10-09 | Kobe Steel Ltd | Work route information setting device, program, and work route information setting method |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005115654A (en) * | 2003-10-08 | 2005-04-28 | Sony Corp | Information processing apparatus and method, program storage medium, and program |
| WO2006006624A1 (en) * | 2004-07-13 | 2006-01-19 | Matsushita Electric Industrial Co., Ltd. | Article holding system, robot and robot control method |
| JP2006110707A (en) * | 2004-09-14 | 2006-04-27 | Sony Corp | Robot equipment |
| JP2009113190A (en) * | 2007-11-09 | 2009-05-28 | Toyota Motor Corp | Autonomous robot and autonomous robot control method |
| JP2010052079A (en) * | 2008-08-27 | 2010-03-11 | Tokai Rubber Ind Ltd | Joint device of robot |
| US9085080B2 (en) * | 2012-12-06 | 2015-07-21 | International Business Machines Corp. | Human augmentation of robotic work |
| US9597797B2 (en) * | 2013-11-01 | 2017-03-21 | Brain Corporation | Apparatus and methods for haptic training of robots |
| JP2015182172A (en) * | 2014-03-24 | 2015-10-22 | トヨタ自動車株式会社 | Robot and control method thereof |
| US10022867B2 (en) * | 2014-11-11 | 2018-07-17 | X Development Llc | Dynamically maintaining a map of a fleet of robotic devices in an environment to facilitate robotic action |
-
2019
- 2019-08-28 WO PCT/US2019/048601 patent/WO2020047120A1/en not_active Ceased
- 2019-08-28 EP EP19766410.5A patent/EP3843952A1/en active Pending
- 2019-08-28 JP JP2021510317A patent/JP7765286B2/en active Active
-
2024
- 2024-06-14 JP JP2024096683A patent/JP2024138277A/en active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003271975A (en) | 2002-03-15 | 2003-09-26 | Sony Corp | Planar extraction method, its apparatus, its program, its recording medium, and robot apparatus equipped with plane extraction apparatus |
| JP2004049731A (en) | 2002-07-23 | 2004-02-19 | Yaskawa Electric Corp | Teaching method of limb driving device |
| JP2005131713A (en) | 2003-10-28 | 2005-05-26 | Advanced Telecommunication Research Institute International | Communication robot |
| JP2014194658A (en) | 2013-03-28 | 2014-10-09 | Kobe Steel Ltd | Work route information setting device, program, and work route information setting method |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2021534988A (en) | 2021-12-16 |
| EP3843952A1 (en) | 2021-07-07 |
| WO2020047120A1 (en) | 2020-03-05 |
| JP2024138277A (en) | 2024-10-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11298825B2 (en) | Systems, apparatus, and methods for robotic learning and execution of skills | |
| US12172314B2 (en) | Systems, apparatus, and methods for robotic learning and execution of skills | |
| JP7765286B2 (en) | Systems, devices, and methods for robotic learning and execution of skills | |
| US12202142B2 (en) | Systems, apparatuses, and methods for robotic learning and execution of skills including navigation and manipulation functions | |
| JP2024001106A (en) | Systems, devices and methods for robots to learn and perform skills | |
| Pérez-D'Arpino et al. | C-learn: Learning geometric constraints from demonstrations for multi-step manipulation in shared autonomy | |
| US20210346557A1 (en) | Robotic social interaction | |
| US11559902B2 (en) | Robot system and control method of the same | |
| US20220410391A1 (en) | Sensor-based construction of complex scenes for autonomous machines | |
| Pedersen et al. | Gesture-based extraction of robot skill parameters for intuitive robot programming | |
| US10933526B2 (en) | Method and robotic system for manipulating instruments | |
| Falck et al. | Robot DE NIRO: a human-centered, autonomous, mobile research platform for cognitively-enhanced manipulation | |
| US20260061617A1 (en) | Systems, apparatuses, and methods for automated elevator navigation of a robotic device | |
| Harada et al. | Service robots: A unified framework for detecting, opening and navigating through doors | |
| WO2025222202A1 (en) | Multi-sensor perception model, and systems, devices, and methods thereof |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220826 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220826 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230619 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20230913 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20231114 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231219 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20240214 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240614 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240624 |
|
| A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20240711 |
|
| A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20240816 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20251024 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7765286 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |