(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023182550
(43)【公開日】2023-12-26
(54)【発明の名称】運動ガイダンス及び自然言語コマンドベースのロボットシステム
(51)【国際特許分類】
B25J 13/00 20060101AFI20231219BHJP
G06N 20/00 20190101ALI20231219BHJP
【FI】
B25J13/00 Z
G06N20/00
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023096250
(22)【出願日】2023-06-12
(31)【優先権主張番号】17/840,070
(32)【優先日】2022-06-14
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100092624
【弁理士】
【氏名又は名称】鶴田 準一
(74)【代理人】
【識別番号】100147555
【弁理士】
【氏名又は名称】伊藤 公一
(74)【代理人】
【識別番号】100123593
【弁理士】
【氏名又は名称】関根 宣夫
(74)【代理人】
【識別番号】100133835
【弁理士】
【氏名又は名称】河野 努
(72)【発明者】
【氏名】トーマス コラー
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS15
3C707AS34
3C707CS08
3C707DS01
3C707HS27
3C707JS07
3C707KS09
3C707KS31
3C707KS34
3C707KS36
3C707KS39
3C707KT01
3C707KT05
3C707KV18
3C707LS02
3C707LW12
3C707WA16
3C707WL07
3C707WM07
3C707WM30
(57)【要約】
【課題】ロボットシステムを提供すること。
【解決手段】本ロボットシステムは、カメラ、マイク、メモリ及びコントローラを含むロボットを備え、該コントローラは、実世界環境内で行動を実施するための自然言語コマンドを受信し、自然言語コマンドを解析し、行動を、行動を実施するためのガイダンスあるいは機械学習に関連するものとして分類し、行動を実施するためのガイダンスを受信し、ガイダンスは、行動を実施するために実世界環境内でロボットの少なくとも一部に適用される運動を含み、ロボットの少なくとも一部に適用される運動と相関させて自然言語コマンドをメモリに保存するように構成される。
【選択図】
図1A
【特許請求の範囲】
【請求項1】
ロボットの計算装置によって実施される方法であって、前記方法は、
実世界環境内で行動を実施するための自然言語コマンドを受信することと、
前記計算装置によって、前記自然言語コマンドを解析することと、
前記行動を、前記行動を実施するためのガイダンスに関連付けられているものとして分類することと、
前記行動を実施するための前記ガイダンスを受信することであって、前記ガイダンスは、前記行動を実施するために前記実世界環境内で前記ロボットの少なくとも一部に適用される運動を含む、ことと、
前記自然言語コマンドを、前記運動と相関させて前記計算装置のメモリに保存することと、を含む、方法。
【請求項2】
前記行動を、前記行動を実施するための前記ガイダンスに関連するものとして分類すると、訓練モードに入ることをさらに含む、請求項1に記載の方法。
【請求項3】
前記実世界環境内で前記行動を実施するための追加の自然言語コマンドを受信することと、
前記計算装置によって、前記追加の自然言語コマンドを解析することと、
前記追加の自然言語コマンドの前記行動を学習サブルーチンとして分類することと、
をさらに含む、請求項1に記載の方法。
【請求項4】
前記学習サブルーチンは、ナビゲーション動作又は掃除動作のうちの少なくとも1つである、請求項3に記載の方法。
【請求項5】
前記ガイダンスとは無関係に、前記実世界環境内で前記行動を自動的に実施することをさらに含む、請求項3に記載の方法。
【請求項6】
前記実世界環境内で追加の行動を実施するための追加の自然言語コマンドを受信することと、
前記ロボットに固有の事前にプログラムされた能力に基づいて、前記追加の行動を設計サブルーチンとして分類することと、
をさらに含む、請求項1に記載の方法。
【請求項7】
前記追加の行動を前記設計サブルーチンとして分類することに応答して、前記実世界環境内で前記追加の行動を自動的に実施することをさらに含む、請求項6に記載の方法。
【請求項8】
前記設計サブルーチンは、把持動作、載置動作、拭き取り動作又は工具交換動作のうちの少なくとも1つである、請求項7に記載の方法。
【請求項9】
順序に従って複数の行動を実施するための追加の自然言語コマンドを受信することであって、前記順序は、設計サブルーチンタスクである第1の行動と、学習サブルーチンである第2の行動とを含む、ことをさらに含む、請求項1に記載の方法。
【請求項10】
前記順序に従って前記複数の行動のそれぞれを自動的に実施することをさらに含む、請求項9に記載の方法。
【請求項11】
前記設計サブルーチンは、前記実世界環境内の物体の寸法を識別すること及び前記ロボットの事前定義された範囲内でこれらの物体のうちの1つ又は複数を移動させることのうちの1つ又は複数を含む、請求項6に記載の方法。
【請求項12】
ロボットであって、
カメラと、
マイクと、
メモリと、
コントローラであって、
実世界環境内で行動を実施するための自然言語コマンドを受信し、
前記自然言語コマンドを解析し、
前記行動を、前記行動を実施するためのガイダンスに関連付けられているものとして分類し、
前記行動を実施するための前記ガイダンスを受信し、前記ガイダンスは、前記行動を実施するために前記実世界環境内で前記ロボットの少なくとも一部に適用される運動を含み、
前記自然言語コマンドを前記運動と相関させて前記メモリに保存する、
ように構成された、コントローラと、
を含む、ロボットを具備する、
ロボットシステム。
【請求項13】
前記コントローラは、前記行動を、前記行動を実施するための前記ガイダンスに関連するものとして分類すると、訓練モードに入るようにさらに構成される、請求項12に記載のロボットシステム。
【請求項14】
前記コントローラは、
前記実世界環境内で前記行動を実施するための追加の自然言語コマンドを受信し、
前記追加の自然言語コマンドを解析し、
前記追加の自然言語コマンドの前記行動を、学習サブルーチンとして分類する、
ようにさらに構成される、請求項12に記載のロボットシステム。
【請求項15】
前記学習サブルーチンは、ナビゲーション動作又は掃除動作のうちの少なくとも1つである、請求項14に記載のロボットシステム。
【請求項16】
前記コントローラは、前記ガイダンスとは無関係に、前記実世界環境内で前記行動を自動的に実施するようにさらに構成される、請求項14に記載のロボットシステム。
【請求項17】
前記コントローラは、
前記実世界環境内で追加の行動を実施するための追加の自然言語コマンドを受信し、
前記ロボットに固有の事前にプログラムされた能力に基づいて、前記追加の行動を、設計サブルーチンとして分類する、
ようにさらに構成される、請求項12に記載のロボットシステム。
【請求項18】
前記設計サブルーチンは、把持動作、載置動作、拭き取り動作又は工具交換動作のうちの少なくとも1つである、請求項17に記載のロボットシステム。
【請求項19】
前記コントローラは、
順序に従って複数の行動を実施するための追加の自然言語コマンドを受信し、前記順序は、設計サブルーチンである第1のタスクと、学習サブルーチンである第2のタスクとを含む、ようにさらに構成される、請求項12に記載のロボットシステム。
【請求項20】
前記コントローラは、前記順序に従って前記複数の行動のそれぞれを自動的に実施するようにさらに構成される、請求項19に記載のロボットシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書に記載の実施形態は、ロボットシステムに概ね関し、さらに具体的には、自然言語コマンドの1つ又は複数の行動を、学習サブルーチン又は設計サブルーチン(learned or engineering subroutines)、あるいは追加のガイダンスを必要とする行動として分類するロボットシステムに関する。分類に応じて、ロボットシステムは、ロボットシステムにさまざまな行動を実施するように自動的に指示するか、ユーザがロボットの1つ又は複数の部品に適用した1つ又は複数の運動を受信して保存する場合がある。適用される1つ又は複数の運動は、追加のガイダンスを必要とする行動として分類される自然言語コマンドと相関させて保存され得ることに留意されたい。
【背景技術】
【0002】
従来のロボットでは、操作者からの口頭指示の受信に応じて、1つ又は複数のタスクを実施する場合がある。しかし、操作者が発する可能性のある口頭指示のさまざまな順列と組み合わせと、このような口頭指示に存在する可能性のある曖昧さのレベルとにより、ロボットがこのようなタスクを正しく実施することができない場合がある。さらに、口頭指示では、非常に複雑なタスクを説明する場合があり、操作者からのタスク固有のガイダンスが必要である。
【0003】
このため、ロボットがタスク又は一連のタスクを正確かつ効率的に実施することができるようにするロボットシステムが必要とされている。
【発明の概要】
【0004】
一実施形態では、ロボットを訓練する方法を提供する。この方法は、実世界環境内で行動を実施するための自然言語コマンドを受信することと、計算装置(computing device)によって自然言語コマンドを解析することと、行動を、行動を実施するためのガイダンスに関連付けられているものとして分類することと、行動を実施するためのガイダンスを受信することであって、ガイダンスは、行動を実施するために実世界環境内のロボットの少なくとも一部に適用される運動を含む、ことと、ロボットの少なくとも一部に適用される運動と相関させて自然言語コマンドを保存することと、を含む。
【0005】
別の実施形態では、ロボットシステムを提供する。ロボットシステムは、カメラ、マイク、メモリ及びコントローラを備えるロボットを備える。コントローラは、実世界環境内で行動を実施するための自然言語コマンドを受信し、自然言語コマンドを解析し、行動を、行動を実施するためのガイダンスに関連付けられているものとして分類し、行動を実施するためのガイダンスを受信し、ガイダンスは、行動を実施するために実世界環境内でロボットの少なくとも一部に適用される運動を含み、ロボットの少なくとも一部に適用される運動と相関させて自然言語コマンドをメモリに保存するように構成される。
【0006】
これまでに挙げた特徴と、本明細書に記載の実施形態が提供する追加の特徴は、図面と併せて以下の詳細な説明を検討することにより、さらに全体的に理解されるであろう。
【0007】
図面に記載の実施形態は、本質的に例示的で典型的なものであり、特許請求の範囲によって定義される主題を限定することを意図するものではない。例示的な実施形態の以下の詳細な説明は、類似の構造を類似の参照番号で示している以下の図面と併せて読むと理解することができる。
【図面の簡単な説明】
【0008】
【
図1A】本開示に記載のロボットシステムの実装例を示す図である。
【
図1B】本明細書で説明し図示する1つ又は複数の実施形態による、本開示のロボットの動作例のフローチャートを示す図である。
【
図2A】本明細書で説明し図示する1つ又は複数の実施形態による、設計サブルーチンに関連付けられた行動を実施するロボットを示す図である。
【
図2B】本明細書で説明し図示する1つ又は複数の実施形態による、設計サブルーチンに対応する別の行動を実施するロボットを示す図である。
【
図3A】本明細書で説明し図示する1つ又は複数の実施形態による、操作者とロボットとの間の相互作用し、その相互作用の結果、ロボットが訓練モードに入ることを示す図である。
【
図3B】本明細書で説明し図示する1つ又は複数の実施形態による、部屋の隅にあるテーブルを掃除するタスクの完了を容易にするために、ロボットに一連の運動を適用することによってロボットにガイダンスを提供する操作者を示す図である。
【
図4A】本明細書で説明し図示する1つ又は複数の実施形態による、順序に従って複数の行動を実施するための例示的な自然言語コマンドを出力する操作者を示す図である。
【
図4B】本明細書で説明し図示する1つ又は複数の実施形態による、
図4Aの例示的な自然言語コマンドに含まれる一連の行動の第1の行動を実施するロボットを示す図である。
【
図4C】本明細書で説明し図示する1つ又は複数の実施形態による、
図4Aに示す例示的な自然言語コマンドに含まれる一連の行動の第2の行動を実施するロボットを示す図である。
【
図5】本明細書で説明し図示する1つ又は複数の実施形態による、本開示に記載の特徴及び機能のうちの1つ又は複数を実施するように構成されたコントローラの非限定的な例を示す図である。
【発明を実施するための形態】
【0009】
上述のように、従来のロボット及びロボットシステムでは、操作者からの口頭コマンドに応答していくつかのタスクを実施することができる場合があるが、このようなタスクを実施する有効性は、さまざまな要因によって制限される。特に、口頭コマンドが曖昧であり、特定のタスクが複雑であると、このようなロボットがさまざまなタスクを正確に実施するのを妨げる可能性がある。
【0010】
本開示のロボットシステムは、このような欠陥に対処し、克服する。特に、本開示のロボットシステムは、ロボットシステムが高レベルの複雑さを伴うタスクを実施することができるようにする、即ち、自然言語コマンドを分析し、このようなコマンドに含まれる1つ又は複数の行動を、操作者から受信した外部ガイダンスと相関させることによって実施することができるようにする複数の構成要素及び機能を備える。外部ガイダンスは、ロボットの1つ又は複数の部品に適用される特定の運動の形式であってもよい。動作中、本開示のロボットシステムは、操作者から自然言語コマンドを受信し、自然言語コマンドに含まれる用語を解析し、コマンドで言及された1つ又は複数の行動又はタスクをガイダンスに関連するものとして分類してもよい。行動のうちの1つ又は複数を、関連付けられたガイダンスとして分類すると、ロボットシステムは、追加のガイダンスを要求する音声コマンドを出力してもよい。このコマンドに応答して、操作者がロボットの少なくとも一部に1つ又は複数の運動を直接適用してもよい。例えば、「部屋の隅にあるテーブルを掃除してください」という特定のタスクを完了するための追加のガイダンスを要求する音声コマンドに応答して、操作者はロボットを部屋内の経路に沿って、部屋の隅に位置決めされたテーブルに移送してもよく、例えば、障害物を避けてロボットを移動させ、例えば、ロボット102のアームをテーブルの表面全体にわたって移動させて、テーブルを掃除するなど、ロボットの1つ又は複数の部分を動かして、さまざまな行動を実施する。
【0011】
実施形態では、このような誘導運動は、自然言語コマンドで指定された行動又はタスクと相関させて、ロボットのメモリに保存されてもよい。実施形態では、将来の日付で「部屋の隅にあるテーブルを掃除してください」と実質的に類似するか、同一の自然言語コマンドを操作者が発する場合、ロボットは、部屋の隅のテーブルを掃除するタスクと相関させて保存された誘導運動にアクセスし、追加のガイダンスなしでタスクを実施してもよい。このようにして、ロボットは高レベルの複雑なタスクを効率的かつ正確に実施可能である可能性がある。ロボットはこのほか、操作者からの事前のガイダンスなしで特定のタスクを実施するように事前にプログラムされ得ることに留意されたい。例えば、ロボットの近傍内にある物体を拾い上げる、拭き取り動作、載置動作、把持動作などを実施するというような基本的なタスクが、ロボットが実施することができる事前にプログラムされたタスクであってもよい。対照的に、部屋の中を進行する、部屋の床を掃除するなどのタスクが、追加のガイダンスに関連するか、必要なタスク又は行動であってもよい。
【0012】
図1Aは、本開示に記載のロボットシステムの実施例を示す。実施形態では、
図1Aのロボットシステム100は、ロボットのアーム上にエンドエフェクタ103を有するロボット102を備える。エンドエフェクタ103は、さまざまな外部物体を把持し、移動させ、回転させ、他の方法で操作するために、互いに遠ざかったり近づいたりするように構成されてもよい。別の実施形態では、ロボット102は、コントローラ104(例えば、計算装置)及びアクチュエータを使用して操作されても、制御されてもよい。コントローラ104は、アクチュエータに命令を提供してもよい。この命令に基づいて、実世界環境内、例えば、ユーザの住居内、ユーザの職場内などでさまざまなタスクを実施するために、アクチュエータが、ロボット102の他の部品に加えて、アーム及びロボットエンドエフェクタ103を動かすように動作してもよい。実施形態では、ロボット102はこのほか、カメラ(即ち、以下で詳細に説明し、
図5に示すカメラ514)及びマイク(即ち、
図5に示すマイク516)を備えてもよい。アクチュエータは、例えば、Dynamixel XM540-W270-Rモータなどのモータであってもよい。
【0013】
実施形態では、ロボット102のアーム上のエンドエフェクタ103は、変形可能センサが配置された変形可能把持部の形態であり得ることに留意されたい。変形可能センサは、変形可能把持部のそれぞれの内部に位置決めされてもよく、高空間分解能が可能なカメラ又は同等のセンサであってもよい。変形可能把持部のそれぞれの内部に位置決めされた変形可能センサは、例えば、人間の指に関連する感触に匹敵する細かい触覚をロボットに提供する高密度の張力感知センサであってもよい。変形可能なセンサはこのほか、センサに向かう動きとセンサから離れる動きを測定するための奥行き分解能を有してもよい。
【0014】
実施形態では、
図1Aに示すように、例えば、操作者、エンジニア、技術者、消費者などのユーザが、ロボット102のマイクによって取り込まれ得る自然言語コマンドを発してもよい。例えば、ユーザは、「この部屋のテーブルを掃除してください」、「地面にある花瓶を拾い上げてください」などの自然言語コマンドを発してもよい。自然言語コマンドは、ロボット102のマイクによって受信されてもよく、これに応答して、実施形態では、ロボット102は、自然言語コマンドで指定された行動を自動的に、ユーザの介入なしに実施してもよい。他の実施形態では、ロボット102は、自然言語コマンドを受信すると、ユーザからの明確化を要求する音声コマンド、例えば、「タスクが理解できない」、「明確にしてください、支援が必要です」などを出力してもよい。
【0015】
実施形態では、ロボット102は、明確化の要求を出力すると、訓練モードに入ってもよい。訓練モードでは、ロボット102は、例えば、操作者によって、ロボット102の1つ又は複数の部分に適用される任意の運動を保存してもよい。例えば、「テーブルを掃除する」などのタスクに固有の明確化の要求がロボット102によって出力されると、ユーザは、ロボット102の1つ又は複数の部品を直接操作するか誘導して、特定の運動を実施してもよい。例えば、ユーザは、ロボット102を、部屋のドアの近くの場所から、テーブル108が位置づけられた部屋の隅まで、物理的に誘導するか移動させてもよい。ナビゲーションは、経路110に沿って、ダイニングテーブル106周りでロボット102を物理的に誘導することを含んでもよい。ロボット102の物理的な誘導又は移動は、ユーザが命令を無線で(あるいは有線接続を介して)コントローラ104に送信することによって発生し、コントローラ104は、部屋のある場所から別の場所へのロボット102の移動を制御してもよい。これとは別に、ユーザは、ロボット102に物理的に接触し、ロボットを部屋のある場所から別の場所に移動させてもよい。さらに、ユーザはこのほか、ロボット102のアーム上でエンドエフェクタ103を物理的に誘導するか移動させて、テーブル108上でエンドエフェクタ103によって実施される拭き取り運動を含み得る掃除運動を実施してもよい。実施形態では、近接センサ及び接触センサが、エンドエフェクタ103を誘導してこのような行動、例えば、掃除運動、拭き取り運動などを実施させるために、ユーザによる接触を検出する役割を演じてもよい。
【0016】
実施形態では、コントローラ104は、ユーザが発した自然言語コマンドに関連して、ユーザがロボット102に適用した運動、例えば、部屋のある場所から別の場所へのロボットのナビゲート又は誘導、テーブル108上のエンドエフェクタ103を使用した拭き取り運動の実施など、を保存してもよい。換言すれば、コントローラ104は、「この部屋のテーブルを掃除してください」という自然言語コマンドと相関させて、ユーザがロボット102に適用した運動を保存してもよい。その結果、将来、例えば「部屋のテーブルを掃除してください」などの別の自然言語コマンドをユーザが発した場合、ロボット102は、自動的に、ユーザの介入なしに、部屋内のある場所から、テーブル108が位置決めされた別の場所に進行して、テーブル108を掃除してもよい。実施形態では、コントローラ104はこのほか、例えば、「地面にある物体を拾い上げてください」、「テーブルを掃除してください」という、ユーザが発する特定の自然言語コマンドで指定された一連のタスクを実施することができてもよい。
【0017】
図1Bは、本明細書で説明し図示した1つ又は複数の実施形態による、ロボット102の動作例のフローチャート120を示す。実施形態では、ブロック122にて、上記のように、実世界環境内で行動を実施するための自然コマンドをロボット102のマイクによって受信してもよい。ユーザが発した自然言語コマンドを正確に取り込むために、ロボット102に複数のマイクを設置し得ることに留意されたい。
【0018】
実施形態では、ブロック124にて、自然言語コマンドを解析してもよい。特に、コントローラ104は、1つ又は複数の自然言語音声認識技術を使用して自然言語コマンドを分析し、ロボット102が実施する必要がある可能性がある1つ又は複数の特定の行動又はステップを識別してもよい。例えば、コントローラ104は、「拾い」、「上げる」、「物体」、「上」及び「地面」の用語のそれぞれを分割することによって、「地面上の物体を拾い上げてください」という発言を解析してもよい。次いで、コントローラ104は、このような用語を分析することによって、実施する必要がある可能性がある特定の行動又は行動のセットを識別してもよい。
【0019】
実施形態では、ブロック126にて、自然言語コマンドで指定された行動は、行動を実施するためのガイダンスに関連するものとして分類されてもよい。例えば、実施形態では、コントローラ104は、受信した自然言語コマンドを解析し、自然言語コマンドに含まれる用語を分析し、自然言語コマンドで指定された行動が追加のガイダンスに関連付けられ得ると判定してもよい。例えば、実施形態では、ロボット102は、室内の特定のエリアに位置決めされ、その位置からテーブルの場所までナビゲートすることができない場合があるため、コントローラ104は、「この部屋のテーブルを掃除してください」という自然言語コマンドを、追加のガイダンスに関連付けられているものとして分析してもよい。さらに、テーブルを掃除する必要があり得る様態が明確でない場合がある。
【0020】
例えば、コントローラ104は、掃除動作、例えば、拭き取り動作を実施するために必要な行動の記録を有していない場合がある。このため、そのような状況では、コントローラ104は、行動を追加のガイダンスに関連するものとして分類し、例えば、「タスクを明確にしてください、支援が必要です」又は「タスクが不明確です」などのように示す音声メッセージをユーザに出力してもよい。そのような状況では、ロボット102は訓練モードに入り得ることに留意されたい。これとは別に、実施形態では、自然言語コマンドの行動が、コントローラ104のメモリ(即ち、
図5に示すメモリ502)に保存された特定のステップに関連付けられている場合、ロボット102は、自動的に、ユーザの介入なしで、このようなステップを実施してもよい。
【0021】
例えば、ロボット102のマイクが、例えば、「あなたの前方の地面から物体を拾い上げてください」などの自然言語コマンドを受信した場合、ロボット102は、このタスクを設計サブルーチン(例えば、事前にプログラムされた能力)として分類し、自動的に、ユーザの介入なしに、1つ又は複数の行動の実施を開始してもよい。実施形態では、ロボット102は、ロボット102の本体の上部を下方に曲げ、エンドエフェクタ103を本体から特定の距離だけ延ばし、例えば、1メートル内、2メートル内などのロボットの特定の近傍内に位置する1つ又は複数の物体を把持してもよい。実施形態では、地面上の1つ又は複数の物体を把持する前に、ロボット102上に位置決めされたカメラは、ロボット102の特定の近傍内の地面に位置決めされた1つ又は複数の物体の1つ又は複数の画像を取り込んでもよく、コントローラ104は、このような画像を分析し、エンドエフェクタ103を操作して、1つ又は複数の物体の把持及び拾い上げを容易にしてもよい。
【0022】
ブロック128では、ロボット102は、ブロック126にて、追加のガイダンスに関連するものとして分類された行動を実施するためのガイダンスを受信してもよい。特に、ガイダンスは、ロボット102の少なくとも一部に適用される運動を含んでもよい。上記のように、自然言語コマンドが「この部屋のテーブルを掃除してください」であり、コントローラ104が追加のガイダンスに関連付けられているものとして分類した場合、コントローラ104は、自然言語コマンドのタスク又は行動をロボット102が実施することができず、そのコマンドは追加のガイダンスに関連付けられ得ることを、ロボット102のスピーカから、出力してもよい。これに応答して、上述のように、ユーザは、ロボット102の1つ又は複数の部分に1つ又は複数の運動を直接適用してもよく、例えば、テーブルへの経路に沿ってロボット102を物理的に移送するか移動させ、ロボット102のエンドエフェクタを把持し、このようなエンドエフェクタ103をテーブルの周囲全体にわたって移動させ、それによって掃除運動を実施する。ブロック130では、コントローラ104は、ロボットの少なくとも一部に適用される運動に関連して自然言語コマンドを保存することになる。ロボット102は、カメラに加えて、近接センサと接触センサの組み合わせを含み得ることにさらに留意されたい。近接センサ及び接触センサは、エンドエフェクタ103を誘導してこのような行動、例えば、掃除行動、拭き取り運動などを実施するために、ユーザによる接触を検出する働きをしてもよい。
【0023】
図2Aは、本明細書で説明し図示した1つ又は複数の実施形態による、設計サブルーチンに対応する行動を実施するロボット102を示す。具体的には、
図2Aは、操作者202が「テーブルの上の花瓶を拾い上げてください」などの例示的な自然言語コマンド203を出力する動作例を説明している。実施形態では、コントローラ104は、例示的な自然言語コマンド203を解析し、コマンドに含まれる行動を、ロボット102が実施するように事前にプログラムされた1つ又は複数の行動である設計サブルーチンに相関するか関連するものとして分類してもよい。換言すると、コントローラ104は、自然言語コマンド203の用語を分析すると、操作者202からの追加のガイダンスもなく、ロボット102が自然言語コマンド203に含まれる行動を実施することができると判定してもよい。
図2Aに示すように、「テーブル上の花瓶を拾い上げてください」という自然言語コマンドの受信に応答して、ロボット102は、カメラを起動し、例示的なテーブル206上の花瓶208の位置の1つ又は複数の画像を取り込み、画像を分析して、例示的なテーブル206上の花瓶208の場所を特定し、エンドエフェクタ103を花瓶208に向かって延ばし、その花瓶を把持してもよい。
【0024】
図2Bは、本明細書で説明し図示した1つ又は複数の実施形態による、設計サブルーチンに対応する別の行動を実施するロボット102を示す。具体的には、
図2Bは、例えば、「テーブルを拭いてください」などの自然言語コマンド214を発する操作者202を示す。これに応答して、ロボット102のコントローラ104は、自然言語コマンド214を解析し、コマンドに含まれる行動を、ロボット102が実施するように事前にプログラムされている1つ又は複数の行動(即ち、設計サブルーチン)に相関するか関連するものとして分類してもよい。例えば、実施形態では、コントローラ104は、テーブルを拭くためのコマンドを受信すると、ロボット102のメモリ(即ち、
図5に示すメモリ502)に保存された、テーブルを拭くための特定の運動と相関する命令にアクセスし、このような命令を実行してもよい。その結果、ロボット102は、自動的に、ユーザの介入なしに、例示的なテーブル216上で拭き取り行動を実施してもよい。実施形態では、コントローラ104は、拭き取り行動を実施する前に、例示的なテーブル216の複数の画像を撮影し、このような画像を分析して、ロボット102と例示的なテーブル216との間の距離などを判定することに加えて、例示的なテーブル216の寸法を判定するようにカメラに命令してもよい。そのようなデータに基づいて、コントローラ104は拭き取り行動の実施を容易にしてもよい。
【0025】
図3Aは、本明細書で説明し図示した1つ又は複数の実施形態による、操作者202とロボット102との間の相互作用を示し、その相互作用の結果、ロボット102は訓練モードに入る。特に、
図3Aでは、操作者202は、ロボット102上に位置決めされたマイクによって受信され得る、例えば、「部屋の隅にあるテーブルを掃除してください」などの例示的な自然言語コマンド302を発してもよい。コントローラ104は、コマンドに含まれる主題(例えば、個々の用語)を解析し、このような用語を分析し、このような用語で言及された行動を特定のカテゴリ、例えば、設計サブルーチン、学習サブルーチン、あるいは追加のガイダンスに関連付けられ得る行動に分類してもよい。実施形態では、例えば、ロボット102は、部屋の隅にあるテーブルの場所に気づかない可能性があり、物が置かれているテーブルを掃除するように訓練されていない可能性があるため、
図3Aに示すように、コントローラ104は、部屋の隅にあるテーブルを掃除するタスクが、追加のガイダンスに関連する行動として分類されるべきであると判定してもよい。このように、例示的な自然言語コマンド302に応答して、コントローラ104は、操作者202が自身の指示を明確にしなければならず、ロボット102が例示的な自然言語コマンド302に含まれるタスクを完了するために支援を必要としていることを示す例示的な音声コマンド304を出力してもよい。
【0026】
図3Bは、本明細書で説明し図示する1つ又は複数の実施形態による、部屋の隅にあるテーブルを掃除するタスクの完了を容易にするためにロボット102に一連の運動を適用することによってロボット102にガイダンスを提供する操作者202を示す。実施形態では、コントローラ104が、自然言語コマンド302を明確にする必要性を示す例示的な音声コマンド304を出力すると、操作者202は、ロボット102の1つ又は複数の部分に特定の運動を適用することによってガイダンスを提供してもよい。特に、操作者202は、経路110に沿って、例えば、例示的なダイニングテーブル106周りにロボット102を移送し、ロボット102を例示的なテーブル108から約半フィート以内に位置決めしてもよい。さらに、操作者202は、エンドエフェクタ103が物体310のそれぞれを把持し、物体310を例示的なテーブル108の特定の側(例えば、テーブルの右側)に移動させ得るように、エンドエフェクタ103を誘導してもよい。操作者202は、エンドエフェクタ103が例示的なテーブル108の左側で拭き取り運動を実施し得るように、エンドエフェクタ103をさらに誘導してもよい。その後、エンドエフェクタ103は、物体310をテーブルの左側に移動させるように誘導されてもよく、その後、例示的なテーブル108の右側で追加の拭き取り運動を実施してもよい。
【0027】
このようなタスクの間、ロボット102上に位置決めされたカメラを起動してもよく、操作者202によって提供されるガイダンスのライブストリームを取り込んでもよい。ロボット102の1つ又は複数の構成要素のこのような画像及び物理的な動きは、ロボット102のメモリに保存されてもよい。例示的な自然言語コマンド302は、ロボットのメモリ内のロボット102の1つ又は複数の部分に適用される運動又は行動と相関させて保存され得ることにさらに留意されたい。さらに、将来、操作者202が例示的な自然言語コマンド302(即ち、「部屋の隅にあるテーブルを掃除してください」)を発する場合、ロボット102は、自動的に、ユーザの介入なしに、経路110に沿って移動し始め、例示的なテーブル108の前で停止し、上記のように、例えば、テーブルの上に位置決めされた物体をテーブルの一方の側に移動させ、テーブルの他方の側を掃除し、物体を他方の側に移動させるなどを実施することによって、部屋の隅にあるテーブル108を掃除する。
【0028】
図4Aは、本明細書で説明し図示する1つ又は複数の実施形態による、順序に従って複数の行動を実施するための例示的な自然言語コマンドを出力する操作者202を示す。
図4Aに示すように、操作者202は、例示的な自然言語コマンド402を発し、例えば、「部屋の隅にあるテーブルを掃除してください」及び「キッチンカウンターを掃除してください」など、実施される複数の行動を指定してもよい。そのようなコマンドは、上記で詳細に説明したように、ロボット102のマイクによって受信され、コントローラ104によって分析されてもよい。特に、コントローラ104は、例示的な自然言語コマンド402の用語を解析し、例示的な自然言語コマンド402に含まれる複数の行動のそれぞれを、例えば、設計サブルーチン、学習サブルーチン、あるいはガイダンスに関連するか、ガイダンスが必要である行動として分類してもよい。実施形態では、部屋の隅にあるテーブルを掃除する行動及びキッチンカウンターを掃除する行動は、学習サブルーチンとして分類されてもよい。換言すれば、最初に、自然言語コマンドをロボット102の1つ又は複数のスピーカが発し、受信した可能性があり、特定の一連の行動を操作者がロボット102の1つ又は複数の部品に適用した可能性がある。特定の順序の適用された行動は、自然言語コマンドに関連付けて保存され、その結果、将来のインスタンスで、操作者は、自然言語コマンドを発してもよく、ロボット102は、以前に適用され、現在は自然言語コマンドと関連付けて保存されている特定の順序の行動の実施を自動的に開始してもよい。上記のように、「部屋の隅にあるテーブルを掃除してください」又は「キッチンカウンターを掃除してください」という自然言語コマンドのいずれかが追加のガイダンスを必要とする行動であった場合、ロボット102は、追加のガイダンスの要求を出力してもよい。これに応答して、操作者又はユーザが、ロボット102の1つ又は複数の部品に1つ又は複数の運動、例えば、ロボット102のアームの物理的な移動を直接適用してもよい。その後、適用された運動及び自然言語コマンドは、ロボット102のメモリ内に相互に関連付けて保存されてもよい。
【0029】
上記の例に戻ると、操作者202が以前にロボット102の少なくとも一部にさまざまな特定の運動を適用したことに基づいて、このような運動を、操作者202が発した自然言語コマンドと相関させて保存してもよい。分類に続いて、コントローラ104は、「部屋の隅にあるテーブルを掃除し、キッチンカウンターを掃除してください」という例示的な自然言語コマンドを保存し得るロボット102のメモリに保存され、学習サブルーチンにアクセスし、このような運動の実施を自動的に、ユーザの介入なしに、開始してもよい。しかし、実施形態では、ロボット102は、例示的な自然言語コマンド402を受信すると、例えば、「これらのタスクを完了させます」などの音声コマンド403を出力してもよい。ロボット102のメモリに保存された学習サブルーチンは、複雑さが変化し得ることに留意されたい。
【0030】
図4Bは、本明細書で説明し図示する1つ又は複数の実施形態によって、
図4Aに示す例示的な自然言語コマンド402に含まれる行動の順序内の第1の行動を実施するロボット102を示す。特に、
図4Bに示すように、ロボット102は、コントローラ104がロボットのメモリにアクセスし、学習サブルーチンに対応する保存された命令を実施することに基づいて、部屋の隅にあるテーブルを掃除する行動を実施してもよい。ロボット102の少なくとも一部に以前適用され、学習サブルーチンの形態で記憶された1つ又は複数の運動に基づいて、ロボット102は、自動的に、ユーザの介入なしに、経路110に沿って特定の場所から、テーブル108が位置する部屋の隅に移動してもよい。
【0031】
さらに、実施形態では、ロボット102は、部屋の隅にあるテーブル108に到達すると、ロボット102上に位置決めされたカメラを起動し、テーブル108上に位置決めされた外部物体404の1つ又は複数の画像を取り込んでもよい。次いで、ロボット102は、エンドエフェクタ103が位置決めされているアームが外部物体404に向かって延在し、このような外部物体のそれぞれを把持し、このような物体をテーブルの特定の側、例えば、テーブル108の右側に移動させてもよいように、エンドエフェクタ103の動作を始動させてもよい。その後、エンドエフェクタ103は、テーブル108の左側で1つ又は複数の拭き取り動作を実施してもよい。次に、エンドエフェクタ103は、外部物体404をテーブル108の右側からテーブル108の左側に移動させ、テーブル108の右側で1つ又は複数の拭き取り動作を実施してもよい。このようにして、ロボット102は、自動的に、ユーザの介入なしに、部屋の隅にあるテーブル108を掃除する行動を実施してもよい。
【0032】
図4Cは、本明細書で説明し図示する1つ又は複数の実施形態による、
図4Aに示す例示的な自然言語コマンド402に含まれる行動の順序内の第2の行動を実施するロボット102を示す。特に、ロボット102のコントローラ104は、キッチンカウンターを掃除する行動を実施するようにロボット102を誘導するために、操作者202が以前に適用した1つ又は複数の運動に対応する学習サブルーチンにアクセスしてもよい。特に、コントローラ104は、ロボット102のメモリに保存された学習サブルーチンにアクセスした後、ロボット102が、テーブル108を掃除する行動を完了すると、キッチンカウンター406に移動し、1つ又は複数の拭き取り動作を実施することになる命令を実行してもよい。このようにして、ロボット102は、自動的に、ユーザの介入なしに、キッチンカウンター406を掃除する行動を実施してもよい。
【0033】
図5は、本明細書で説明し図示する1つ又は複数の実施形態による、本開示で説明する特徴及び機能のうちの1つ又は複数を実施するように構成されたコントローラ104(計算装置)の非限定的な例を示す。図示のように、コントローラ104は、プロセッサ506、入出力ハードウェア508、ネットワークインターフェースハードウェア510、データストレージコンポーネント512、メモリ502、マイク516及びカメラ514を備える。メモリ502は、揮発性メモリ及び/又は不揮発性メモリとして構成されてもよく、このため、(SRAM、DRAM及び/又は他のタイプのRAMをはじめとする)ランダムアクセスメモリ、フラッシュメモリ、セキュアデジタル(SD)メモリ、レジスタ、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)(ローカルかクラウドベースかを問わず)及び/又は他のタイプの非一時的コンピュータ可読媒体メモリを含んでもよい。特定の実施形態に応じて、このような非一時的コンピュータ可読媒体は、計算装置及び/又はコントローラ104の外部にある装置内に常駐してもよい。
【0034】
メモリ502は、動作命令(operating instructions)503を保存してもよく、その各々を、コンピュータプログラム、ファームウェアなどとして具現化してもよい。メモリ602は、プロセッサ506が動作命令503にアクセスすることができるように、RAM、ROM、フラッシュメモリ、ハードドライブ、あるいは動作命令503を保存可能な任意の装置を含んでもよい。動作命令503は、機械可読命令及び実行可能命令にコンパイルされるかアセンブルされ、メモリ502に保存され得る言語、例えば、コントローラ104によって直接実行され得る機械語、あるいはアセンブリ言語、オブジェクト指向プログラミング(OOP)言語、スクリプト言語、マイクロコードなどの任意の世代(例えば、1GL、2GL、3GL、4GL又は5GL)の任意のプログラミング言語などで記述されたロジック又はアルゴリズムを含でもよい。これとは別に、動作命令503は、フィールドプログラマブルゲートアレイ(FPGA)構成又は特定用途向け集積回路(ASIC)、あるいはその同等物を介して実装されたロジックなどのハードウェア記述言語(HDL)で記述されてもよい。このため、本明細書に記載の方法は、事前にプログラムされたハードウェア要素として、あるいはハードウェアコンポーネントとソフトウェアコンポーネントの組み合わせとして、任意の従来のコンピュータプログラミング言語で実装されてもよい。プロセッサ506は、メモリ602と共に、コントローラ104のコントローラとして動作してもよい。
【0035】
このほか、ローカルインターフェース504が
図5に含まれ、コントローラ104の構成要素間の通信を容易にするために、バス又は他の通信インターフェースとして実装されてもよい。プロセッサ506は、メモリ502から(データストレージコンポーネント512及び/又はメモリ502などから)動作命令503を受信して実行するように動作可能な任意の処理コンポーネントを含んでもよい。このため、プロセッサ506は、集積回路、マイクロチップ、コンピュータ又は任意の他の計算装置であってもよい。上記のように、入力/出力ハードウェア508は、スピーカ、マイク及び/又は他の入力/出力部品を含んだり、及び/又はここに挙げた部品と相互作用するように構成されたりしてもよい。
【0036】
動作命令503は、コントローラ104の構成要素を管理するためのオペレーティングシステム及び/又は他のソフトウェアを含んでもよい。
図5の構成要素を、コントローラ104内に常駐するものとして示しているが、これは単なる例であることを理解されたい。いくつかの実施形態では、構成要素のうちの1つ又は複数が、コントローラ104の外部又は他の装置内に常駐してもよい。コントローラ104を単一の装置として示しているが、これも単なる例であることを理解されたい。例として、本明細書で説明する機能及び/又は構成要素のうちの1つ又は複数を、コントローラ104が提供してもよい。特定の実施形態に応じて、このような装置のいずれかが、
図5に示すものとほぼ同じ構成要素を有してもよい。この目的のために、このような装置のいずれかが、本明細書に記載の機能を実施するための命令を含んでもよい。
【0037】
カメラ514は、紫外波長帯域、可視光波長帯域又は赤外波長帯域の放射を検出可能な感知装置のアレイを有する任意の装置であってもよい。カメラは任意の解像度を有してもよい。いくつかの実施形態では、ミラー、魚眼レンズ又は任意の他のタイプのレンズなどの1つ又は複数の光学部品をカメラに光学的に結合してもよい。カメラ514は、150度から180度の弧の範囲内でデジタルコンテンツを取り込むことを可能にする広角機能を有してもよい。これとは別に、カメラ514は、例えば、60度から90度の弧の範囲などの狭い弧の範囲内でデジタルコンテンツを取り込むことを可能にする狭角機能を有してもよい。実施形態では、カメラ514は、720ピクセル解像度、1080ピクセル解像度などで標準解像度又は高解像度の画像を取り込み可能であってもよい。これとは別に、あるいはこれに加えて、カメラ514は、所定の期間にわたって連続的なリアルタイムビデオストリームを取り込む機能を有してもよい。
【0038】
ここで、本開示の実施形態は、ロボットを訓練し操作するための方法を対象としていることを理解されたい。この方法は、実世界環境内で行動を実施するための自然言語コマンドを受信することと、計算装置によって自然言語コマンドを解析することと、行動を実施するためのガイダンスに関連付けられているものとして行動を分類することと、行動を実施するためのガイダンスを受信することであって、ガイダンスは行動を実施するために実世界環境内のロボットの少なくとも一部に適用される運動を含む、ことと、ロボットの少なくとも一部に適用される運動と相関して自然言語コマンドを保存することと、を含む。ここで、本開示の実施形態はこのほか、カメラ、マイク、メモリ及びコントローラを備えるロボットを備えるロボットシステムを対象としていることを理解されたい。このコントローラは、実世界環境内で行動を実施するための自然言語コマンドを受信し、自然言語コマンドを解析し、行動を、行動を実施するためのガイダンスに関連付けられているものとして分類し、行動を実施するためのガイダンスを受信し、ガイダンスは行動を実施するために実世界環境内のロボットの少なくとも一部に適用される運動を含み、ロボットの少なくとも一部に適用される運動と相関させて自然言語コマンドをメモリに保存する、ように構成される。
【0039】
第1の態様では、ロボットの計算装置によって実施される方法には、実世界環境内で行動を実施するための自然言語コマンドを受信することと、計算装置によって自然言語コマンドを解析することと、行動を、行動を実施するためのガイダンスと関連するものとして分類することと、行動を実施するためのガイダンスを受信することであって、ガイダンスは、行動を実施するために実世界環境内でロボットの少なくとも一部に適用される運動を含む、ことと、運動に相関する自然言語コマンドを計算装置のメモリに保存することと、が含まれる。
【0040】
第2の態様では、第1の態様の方法は、行動を実施するためのガイダンスに関連するものとして行動を分類すると、訓練モードに入ることをさらに含む。
【0041】
第3の態様では、第1の態様又は第2の態様の方法は、実世界環境内で行動を実施するための追加の自然言語コマンドを受信することと、計算装置によって追加の自然言語コマンドを解析することと、追加の自然言語コマンドを学習サブルーチンとして分類することと、をさらに含む。
【0042】
第4の態様では、第3の態様の方法にて、学習サブルーチンは、ナビゲーション動作又は掃除動作のうちの少なくとも1つである。
【0043】
第5の態様では、第3の態様の方法は、ガイダンスとは無関係に実世界環境内で行動を自動的に実施することをさらに含む。
【0044】
第6の態様では、第1から第5の態様のいずれかの方法は、実世界環境内で追加の行動を実施するための追加の自然言語コマンドを受信することと、ロボットに固有の事前にプログラムされた能力に基づいて、追加の行動を設計サブルーチンとして分類することとをさらに含む。
【0045】
第7の態様では、第6の態様の方法にて、設計サブルーチンは、把持動作、載置動作、拭き取り動作又は工具交換動作のうちの少なくとも1つである。
【0046】
第8の態様では、第7の態様の方法にて、設計サブルーチンは、把持動作、載置動作、拭き取り動作又は工具交換動作のうちの少なくとも1つである。
【0047】
第9の態様では、第1から第9の態様の方法は、順序に従って複数の行動を実施するための追加の自然言語コマンドを受信することをさらに含む。順序は、設計サブルーチンタスクである第1の行動及び学習サブルーチンである第2の行動を含む。
【0048】
第10の態様では、第9の態様の方法は、順序に従って複数の行動のそれぞれを自動的に実施することをさらに含む。
【0049】
第11の態様では、第6の態様の方法にて、設計サブルーチンは、実世界環境内の物体の寸法を識別すること及びロボットの事前定義された範囲内でこのような物体の1つ又は複数を移動させることのうちの1つ又は複数を含む。
【0050】
第12の態様では、ロボットシステムが、カメラ、マイク、メモリ、コントローラを備えるロボットを備える。コントローラは、実世界環境内で行動を実施するための自然言語コマンドを受信し、自然言語コマンドを解析し、行動を、行動を実施するためのガイダンスに関連付けられているものとして分類し、行動を実施するためのガイダンスを受信し、ガイダンスは、行動を実施するために実世界環境内でロボットの少なくとも一部に適用される運動を含み、運動に相関する自然言語コマンドをメモリに保存するように構成される。
【0051】
第13の態様では、第12の態様のロボットシステムにて、コントローラは、行動を実施するためのガイダンスに関連するものとして行動を分類すると、訓練モードに入るようにさらに構成される。
【0052】
第14の態様では、第12の態様又は第13の態様のロボットシステムにて、コントローラは、実世界環境内で行動を実施するための追加の自然言語コマンドを受信し、追加の自然言語コマンドを解析し、追加の自然言語コマンドの行動を学習サブルーチンとして分類するようにさらに構成される。
【0053】
第15の態様では、第14の態様のロボットシステムにて、コントローラは、実世界環境内で行動を実施するための追加の自然言語コマンドを受信し、追加の自然言語コマンドを解析し、追加の自然言語コマンドの行動を学習サブルーチンとして分類するようにさらに構成される。
【0054】
第16の態様では、第14の態様のロボットシステムにて、コントローラは、ガイダンスとは無関係に実世界環境内で行動を自動的に実施するようにさらに構成される。
【0055】
第17の態様では、第12の態様のロボットシステムにて、コントローラは、実世界環境内で追加の行動を実施するための追加の自然言語コマンドを受信し、事前にプログラムされたロボット固有の能力に基づいて、追加の行動を設計サブルーチンとして分類するようにさらに構成される。
【0056】
第18の態様では、第17の態様のロボットシステムにて、設計サブルーチンは、把持動作、載置動作、拭き取り動作又は工具交換動作の少なくとも1つである。
【0057】
第19の態様では、第12から第18の態様のいずれかのロボットシステムにて、コントローラは、順序に従って複数の行動を実施するための追加の自然言語コマンドを受信するようにさらに構成され、順序は、設計サブルーチンである第1のタスク及び学習サブルーチンである第2のタスクを含む。
【0058】
第20の態様では、第19の態様のロボットシステムにて、コントローラは、順序に従って複数の行動のそれぞれを自動的に実施するようにさらに構成される。
【0059】
本明細書で使用する用語は、特定の態様を説明することのみを目的としており、限定することを意図するものではない。本明細書で使用する場合、単数形「a」、「an」及び「the」は、内容に明確な指示がない限り、「少なくとも1つ」を含む複数形を含むことを意図するものである。「又は」は「及び/又は」を意味する。本明細書で使用する場合、「及び/又は」という用語は、関連するリスト項目の1つ又は複数のありとあらゆる組み合わせを含む。本明細書で使用する場合、「備える」及び/又は「備えている」、又は「含む」及び/又は「含んでいる」という用語は、記載した特徴、領域、整数、ステップ、操作、要素及び/又は構成要素の存在を特定するが、1つ又は複数の他の特徴、領域、整数、ステップ、操作、要素、構成要素及び/又はそのグループの存在又は追加を排除するものではないことがさらに理解されよう。「又はその組み合わせ」という用語は、前述の要素の少なくとも1つを含む組み合わせを意味する。
【0060】
「実質的に」及び「約」という用語は、任意の定量的比較、値、測定又は他の表現に起因する可能性がある固有の不確実性の程度を表すために本明細書で利用され得ることに留意されたい。このような用語はこのほか、問題となっている主題の基本的な機能に変化をもたらすことなく、定量的表現が記載された基準から変化し得る程度を表すために本明細書で使用する。
【0061】
本明細書では特定の実施形態を例示し説明してきたが、特許請求される主題の精神及び範囲から逸脱することなく、他のさまざまな変更及び修正を施し得ることを理解されたい。さらに、特許請求される主題のさまざまな態様を本明細書で説明してきたが、そのような態様を組み合わせて利用する必要はない。このため、添付の特許請求の範囲は、特許請求された主題の範囲内にあるあらゆるそのような変更及び修正を網羅することを意図するものである。
【外国語明細書】