IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

特許7733829ロボットデバイスと追加のコンピューティングデバイスとの選択的インタラクション
<>
  • 特許-ロボットデバイスと追加のコンピューティングデバイスとの選択的インタラクション 図1A
  • 特許-ロボットデバイスと追加のコンピューティングデバイスとの選択的インタラクション 図1B
  • 特許-ロボットデバイスと追加のコンピューティングデバイスとの選択的インタラクション 図1C
  • 特許-ロボットデバイスと追加のコンピューティングデバイスとの選択的インタラクション 図1D
  • 特許-ロボットデバイスと追加のコンピューティングデバイスとの選択的インタラクション 図1E
  • 特許-ロボットデバイスと追加のコンピューティングデバイスとの選択的インタラクション 図2
  • 特許-ロボットデバイスと追加のコンピューティングデバイスとの選択的インタラクション 図3
  • 特許-ロボットデバイスと追加のコンピューティングデバイスとの選択的インタラクション 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-08-26
(45)【発行日】2025-09-03
(54)【発明の名称】ロボットデバイスと追加のコンピューティングデバイスとの選択的インタラクション
(51)【国際特許分類】
   G06F 3/01 20060101AFI20250827BHJP
   G06F 3/0487 20130101ALI20250827BHJP
   G06F 3/16 20060101ALI20250827BHJP
   B25J 5/00 20060101ALI20250827BHJP
【FI】
G06F3/01 510
G06F3/0487
G06F3/16 630
B25J5/00 E
【請求項の数】 7
(21)【出願番号】P 2024534079
(86)(22)【出願日】2022-10-07
(65)【公表番号】
(43)【公表日】2025-01-28
(86)【国際出願番号】 US2022046060
(87)【国際公開番号】W WO2023107189
(87)【国際公開日】2023-06-15
【審査請求日】2024-06-06
(31)【優先権主張番号】63/286,298
(32)【優先日】2021-12-06
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/544,117
(32)【優先日】2021-12-07
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】マシュー・シャリフィ
(72)【発明者】
【氏名】ヴィクター・カルブネ
【審査官】仲野 一秀
(56)【参考文献】
【文献】特開2003-345435(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01
G06F 3/0487
G06F 3/16
B25J 5/00
(57)【特許請求の範囲】
【請求項1】
1つ以上のプロセッサによって実行される方法であって、
ユーザー及びロボットコンピューティングデバイスの環境内の特定のオブジェクトの位置を特定するように前記ロボットコンピューティングデバイスに要求するユーザー入力を、前記ロボットコンピューティングデバイスにおいて受信することと、
前記ユーザー入力に応答して、前記ロボットコンピューティングデバイスが前記環境内の前記特定のオブジェクトの前記位置をしきい値の信頼度で特定できるかどうかを判断することと、
前記ロボットコンピューティングデバイスが、前記しきい値の信頼度で、前記環境内の前記特定のオブジェクトの前記位置を特定できない場合、
前記ロボットコンピューティングデバイスが前記しきい値の信頼度で前記位置を特定しないことに基づいて、前記ロボットコンピューティングデバイスを、前記環境内で、追加のコンピューティングデバイスにより近い別の位置に向かって移動させることと、
前記ロボットコンピューティングデバイスによって、ロボット入力を前記ロボットコンピューティングデバイスによって生成させ、前記追加のコンピューティングデバイスへの入力として、前記ロボットコンピューティングデバイスによって前記ロボット入力を提供させることであって、前記ロボット入力は、前記特定のオブジェクトに関連付けられる情報を前記追加のコンピューティングデバイスに要求するコンテンツを含む、提供させることと、
前記ロボットコンピューティングデバイスにより、前記ロボット入力に応答した前記追加のコンピューティングデバイスから、前記特定のオブジェクトに関連付けられる特定の情報を特徴付ける応答出力を受信することと、
前記特定の情報に基づいて、前記ロボットコンピューティングデバイスに、前記ユーザーのため、前記環境内の前記特定のオブジェクトの前記位置を特定させることと、
を含む、方法。
【請求項2】
前記ロボットコンピューティングデバイスに前記特定のオブジェクトの前記位置を特定させることは、
前記特定のオブジェクトの位置の特定を促進するために、前記ロボットコンピューティングデバイスを前記環境内の別の位置に移動させることを含む、請求項1に記載の方法。
【請求項3】
前記追加のコンピューティングデバイスからの前記応答出力を受信することは、
前記追加のコンピューティングデバイスの表示パネルの画像をキャプチャすることを含み、
前記画像がキャプチャされるとき、前記表示パネルは、前記ロボットコンピューティングデバイスに対して前記特定の情報をレンダリングしている、請求項1に記載の方法。
【請求項4】
前記ロボットコンピューティングデバイスが前記しきい値の信頼度で前記環境内の前記特定のオブジェクトの前記位置を特定できるかどうかを判断することは、
前記ユーザー及び前記ロボットコンピューティングデバイスが存在する前記環境のさまざまな特徴の位置を特徴付けるホームグラフデータを処理することと、
前記ホームグラフデータを処理することに基づいて、前記環境の前記さまざまな特徴のうちの特定の特徴が前記特定のオブジェクトに対応する確率を特徴付ける信頼性メトリックを生成することと、
前記信頼性メトリックを前記しきい値の信頼度と比較することと、
を含む、請求項1に記載の方法。
【請求項5】
前記ロボットコンピューティングデバイスが、前記しきい値の信頼度で、前記環境内の前記特定のオブジェクトの前記位置を特定できる場合、
前記ロボットコンピューティングデバイスに前記環境内の前記特定のオブジェクトの前記位置を特定させること
をさらに含む、請求項1に記載の方法。
【請求項6】
1つ以上のプロセッサと、
命令を記憶するメモリであって、前記命令は、実行されるとき、請求項1~のうちのいずれか一項に記載の方法を前記1つ以上のプロセッサに実行させる、前記メモリと、
を備える、モバイルロボットコンピューティングデバイス。
【請求項7】
実行されると、1つ以上のプロセッサに請求項1~のいずれか一項に記載の方法を実行させる命令を含むコンピュータプログラム。
【発明の詳細な説明】
【背景技術】
【0001】
自動アシスタントは、多くの家庭で広く導入されており、インターネットからの情報にハンズフリーでアクセスしたり、家庭内外のその他の周辺機器を制御したりしている。しばしば、アシスタント対応デバイスは静的なデバイスであり、家庭内のさまざまな場所への移動機能を有していない場合がある。その結果、自動アシスタントによって実行される操作は、ユーザーが設置時にアシスタント対応デバイスを配置した場所に応じて、地理的に制限される可能性がある。これは、ユーザーがインターネット検索クエリ(たとえば「Joseph Fourierとは誰ですか?」)を出す場合など、特定のタスクを実行する場合には特に非効率的ではないかもしれない。しかし、ユーザー間の通信及び/または移動中のユーザーへの出力のレンダリングを含む別のタスクは、静的デバイスまたは静的デバイスのネットワークによって実行されると、非効率的または非効果的であることが明らかになる場合がある。たとえば、キッチンアシスタントデバイスによってレンダリングされる通話音声を聞いているユーザーは、キッチンからアシスタント対応デバイスがない廊下に移動すると、音声を聞けなくなる場合がある。その結果、ユーザーは電話の相手に言ったことを繰り返してもらうよう頼んだり、及び/または、部屋を出る必要があるときに通話を一時停止したりしなければならなくなり、時間と計算リソースが浪費されることがある。
【0002】
場合によって、アシスタント対応デバイスは、別のアシスタント対応デバイスにクエリに応答する出力をレンダリングさせることで、ユーザーからのクエリに応答できる場合がある。しかし、この方法で特定の操作の実行を委任しようとすると、複数のアシスタントデバイスが異なるソフトウェアプロバイダー及び/またはユーザーアカウントに関連付けられているマルチアシスタント環境では、効果的でない場合がある。その結果、他のより適切なデバイス(たとえば、より良い音質、より強い信号、より効率的な電力利用などのデバイス)が利用可能であるにもかかわらず、あまり適していないアシスタントデバイスに特定の操作の実行が委任される場合がある。たとえば、ユーザー間の通信タスクは、デフォルトでは、ユーザーからの対応する要求を受信したアシスタントデバイスによって実行できる。しかし、そのような要求を遂行するために他のより適切なデバイスが利用可能である場合、及び/または、デフォルトのデバイスが特定のユーザーのいずれとも効果的に通信できるように配置されていない場合、インタラクトするデバイスの能力が不足すると、リソースがさらに浪費される可能性がある。
【発明の概要】
【課題を解決するための手段】
【0003】
本明細書で説明する実施形態は、ロボットコンピューティングデバイスであって、(場合により、人間のユーザーに共通する技術を使用して)近くの他のデバイスとインタラクトすることができ、ユーザーからロボットコンピューティングデバイスへの要求を遂行することを容易にするロボットコンピューティングデバイスに関する。ロボットコンピューティングデバイスは、たとえば、ユーザーからロボットコンピューティングデバイスに出される要求を遂行するために、近くのアシスタント対応デバイスに音声コマンドをレンダリングすることができる。たとえば、ユーザーはロボットコンピューティングデバイスに「エマが車のおもちゃを見つけるのを手伝ってくれませんか?」などの音声発話をすることがあり、これは、ロボットコンピューティングデバイスに対するユーザーの自宅にある特定のオブジェクトを特定するための要求であり得る。ロボットコンピューティングデバイスは、音声発話の受信に応答して、ロボットコンピューティングデバイスに保存されている「車のおもちゃ」の適切な説明を特定する情報を検索した結果、正確な説明に至らないと判断することがある。たとえば、ロボットコンピューティングデバイスにはインターネット検索機能があるが、「エマの車のおもちゃ」または「車のおもちゃ」というフレーズの検索結果が、ユーザーが言っているオブジェクトの正確な説明を提供しない場合がある。したがって、ロボットコンピューティングデバイスは、ユーザーからの事前の許可または現在の許可を得て、代わりに、ユーザーの自宅内にある1つ以上の他のコンピューティングデバイスに提供されるべき出力コマンドを生成し、ユーザーが言っているオブジェクトに関するより正確な詳細を得られるようにすることができる。
【0004】
いくつかの実施形態では、ロボットコンピューティングデバイスは、「アシスタント、『エマの車のおもちゃ』とは何ですか?」などの自然言語コンテンツを生成し、その後、自然言語コンテンツを近くのコンピューティングデバイスへ音声出力としてレンダリングしてもよい。これに応答して、近くのコンピューティングデバイス(たとえば、別のアシスタント対応デバイス)に、「エマの車のおもちゃ」の画像を表示パネルにレンダリングさせてもよい。表示された画像の1つ以上のカメラ画像を、ユーザーからの事前の許可を得て、ロボットコンピューティングデバイスのカメラによってキャプチャしてもよく、ロボットコンピューティングデバイスは、これらのカメラ画像を利用して、「エマの車のおもちゃ」の可能性が高い位置を推定してもよい。たとえば、ロボットコンピューティングデバイスによってキャプチャされホームグラフ上の位置に関連付けられた事前の画像は、カメラ画像内のオブジェクトが事前の画像のいずれかにキャプチャされているものであるかどうか判断するように処理されてもよい。特定の事前の画像にオブジェクト(たとえば「エマの車のおもちゃ」)が含まれていると判断される場合、特定の事前の画像に関連付けられて保存されたマップ位置を、ロボットコンピューティングデバイスは、特定し、利用してもよい。その後、ロボットコンピューティングデバイスは、ロボットコンピューティングデバイスの現在の位置(たとえば、ロボットコンピューティングデバイスが近くのデバイスに可聴出力を発した位置)から、特定のカメラ画像内のオブジェクトに対応するマップ位置までナビゲートしてもよい。代替的にまたは追加的に、ロボットコンピューティングデバイスは、地図上の位置を表す追加の自然言語コンテンツを生成し、ユーザーに対して追加の自然言語コンテンツを表す別の出力(たとえば、「車のおもちゃはキッチンテーブルの下にあります」という可聴出力または表示出力)をレンダリングしてもよい。
【0005】
いくつかの実施形態では、ロボットコンピューティングデバイスは、アクションを他の近くのデバイスに委任するかどうかを判断し、人間とコンピュータのインタラクションに類似した1つ以上の手法を使用して、そのような委任を実行してもよい。すなわち、ロボットコンピューティングデバイスは、要求されたアクションを実行するには別のコンピューティングデバイスの方がより適している可能性があると判断した場合、ロボットコンピューティングデバイスは、人間にも認識可能なコマンドをその別のコンピューティングデバイスに出してもよい。たとえば、ユーザーはロボットコンピューティングデバイスに「料理をしている間、音楽をかけて」などの音声発話をすることがある。これに応答して、ロボットコンピューティングデバイスは、少なくとも部分的に、ロボットコンピューティングデバイスがバッテリー電源を使用して動作しているという理由から、コンセントにつながっているデバイスのほうがこの要求を遂行するのにより適していると判断してもよい。この判断に基づいて、ロボットコンピューティングデバイスは、ユーザーからの要求をより効率的に遂行できる近くのデバイスを特定してもよい。
【0006】
たとえば、ロボットコンピューティングデバイスは、音声コンテンツをレンダリングするために、ユーザーからしきい値距離内にあるキッチンスマートディスプレイ(つまり、スタンドアローンディスプレイデバイス)を特定してもよい。いくつかの実施形態では、ロボットコンピューティングデバイスは、デバイス名またはキッチンスマートディスプレイの種類を特定し、キッチンスマートディスプレイの名前または種類に基づいて、ロボットコンピューティングデバイスのコマンドをレンダリングしてもよい。たとえば、近くにあるデバイスの種類を特定することに基づいて、ロボットコンピューティングデバイスは、その特定の種類のデバイスの呼び出しフレーズ(たとえば「いいですか、スマートデバイス...」)を特定してもよい。この呼び出しフレーズを使用し、ユーザーから事前に許可を得た上で、ロボットコンピューティングデバイスは、「いいですか、スマートデバイス、料理をしている間、音楽をかけて」などの可聴出力をレンダリングしてもよい。それに応えて、キッチンスマートディスプレイは音楽のレンダリングを開始することができる。このようにして、キッチンスマートディスプレイがロボットコンピューティングデバイスからタスクを委任されるように特別に事前構成されていない場合でも、ロボットコンピューティングデバイスは、ユーザーとそのすべてのスマートデバイスとの間のインターフェースとして動作できる。タスクを委任することが、能力及び/または効率に基づいて実行されると、ユーザーの自宅にあるスマートデバイスは、ロボットコンピューティングデバイスの指示に従って、帯域幅や電力などのリソースを節約できる。
【0007】
いくつかの実施形態では、ロボットコンピューティングデバイスは、別のデバイスが自分よりも早く要求されたタスクを完了できると判断した場合、他のデバイスの機能を活用してもよい。このような事例は、スタンドアローンデバイス及び/またはその他のロボットコンピューティングデバイスが、タスクを完了する要求を最初に受信したロボットコンピューティングデバイスよりも、タスクの場所に近いと判断された場合に、起こることがある。たとえば、ユーザー(「カイザー」)は、ロボットコンピューティングデバイスに対して「カルマに上の階のヒーターをオフにするように伝えてください」などの発話をすることがある。ロボットコンピューティングデバイスは、スタンドアローンコンピューティングデバイスとともにユーザーの自宅の1階に位置することがあり、別のスタンドアローンコンピューティングデバイスは、別のユーザー(「カルマ」)に近い自宅2階に位置することがある。ロボットコンピューティングデバイスは、ユーザーからの音声発話を受信すると、自宅内の人物(複数可)からの事前の許可を得て、その別のユーザーが自宅内でロボットコンピューティングデバイスとは別の階にいることを判断してもよい。この判断に基づいて、ロボットコンピューティングデバイスは、2階にある別のスタンドアローンコンピューティングデバイスに対し、その別のユーザーにメッセージを送るようにさせてもよい。
【0008】
いくつかの実施形態では、ロボットコンピューティングデバイスは、別のスタンドアローンコンピューティングデバイスにさまざまな異なる方法でメッセージを送らせることができる。たとえば、ロボットコンピューティングデバイスは、1階のスタンドアローンコンピューティングデバイスと通信して、2階の別のスタンドアローンコンピューティングデバイスにメッセージ(たとえば「カイザーはあなたにヒーターをオフにしてほしいようです。」)を送らせるようにしてもよい。ロボットコンピューティングデバイスとスタンドアローンコンピューティングデバイスとの間の通信は、ローカルエリアネットワーク(LAN)、インターネットなどのワイドエリアネットワーク(WAN)、可聴周波数または不可聴周波数、Bluetooth通信、及び/またはデバイス間の通信に使用するその他の媒体を介して行うことができる。たとえば、ロボットコンピューティングデバイスは、1階のスタンドアローンスピーカーデバイスに送るべきコマンドに対応する自然言語コンテンツを生成してもよい。自然言語コンテンツは、スタンドアローンのスピーカーデバイスへの可聴メッセージまたは非可聴メッセージ(たとえば「いいですかスマートデバイス、カルマに2階のヒーターをオフにするように伝えるメッセージを送ってください。」)に具現化してもよい。これに応答して、2階にある別のスタンドアローンコンピューティングデバイスは、可聴出力及び/または視覚メッセージ(たとえば「2階のヒーターをオフにしてください」など)をレンダリングしてもよい。ユーザーの自宅内の他のコンピュータとインターフェースできるロボットコンピューティングデバイスを提供することで、自宅内のリソースをより効率的に活用できると同時に、要求されたタスクの完了時間を最小限に抑えることができる。
【0009】
上記の説明は、本開示のいくつかの実施形態の概要として提供されている。これらの実施形態及びその他の実施形態について、以下でさらに詳しく説明する。
【0010】
他の実施形態には、上記方法及び/または本明細書の他の箇所で説明する方法の1つ以上等の方法を実行するために、1つ以上のプロセッサ(たとえば、中央処理装置(CPU)(複数可)、グラフィックス処理装置(GPU)(複数可)、及び/またはテンソル処理装置(TPU)(複数可))によって実行可能な命令を格納する非一時的なコンピュータ読み取り可能な記憶媒体が含まれてもよい。さらに他の実施形態には、上記方法及び/または本明細書の他の箇所で説明する方法の1つ以上等の方法を実行するために、格納された命令を実行するように動作可能な1つ以上のプロセッサを含む1つ以上のコンピュータのシステムが含まれてもよい。
【0011】
明らかなとおり、前述の概念と本明細書でより詳細に説明する追加の概念のすべての組み合わせは、本明細書で開示される主題の一部として考慮されるものである。たとえば、本開示の最後にある請求項に記載の主題のすべての組み合わせは、本明細書に開示される主題の一部として考慮されるものである。
【図面の簡単な説明】
【0012】
図1A】近くにある他のコンピューティングデバイスの支援を利用してユーザーを支援するように動作するロボットコンピューティングデバイスを示す図である。
図1B】近くにある他のコンピューティングデバイスの支援を利用してユーザーを支援するように動作するロボットコンピューティングデバイスを示す図である。
図1C】近くにある他のコンピューティングデバイスの支援を利用してユーザーを支援するように動作するロボットコンピューティングデバイスを示す図である。
図1D】近くにある他のコンピューティングデバイスの支援を利用してユーザーを支援するように動作するロボットコンピューティングデバイスを示す図である。
図1E】近くにある他のコンピューティングデバイスの支援を利用してユーザーを支援するように動作するロボットコンピューティングデバイスを示す図である。
図2】要求を遂行するために、及び/または、特定のタスクを他の近くのデバイスに委任するために、該他の近くのデバイスから追加情報を求めることができるロボットコンピューティングデバイスを操作するシステムを示す図である。
図3】1つ以上の他のコンピューティングデバイスにパフォーマンスを委任することにより、及び/または、1つ以上の他のコンピューティングデバイスから追加情報を収集することにより、ロボットコンピューティングデバイスを制御してユーザーからの要求を遂行する方法を示す図である。
図4】コンピュータシステムの一例のブロック図である。
【発明を実施するための形態】
【0013】
図1A図1B図1C図1D、及び図1Eは、近くにある他のコンピューティングデバイスの支援を利用してユーザー102を支援するように動作するロボットコンピューティングデバイス104の光景100、光景120、光景140、光景160、及び光景180を示している。ロボットコンピューティングデバイス104は、さまざまな要因、たとえば、ロボットコンピューティングデバイス104がユーザーからの要求を正確に遂行できる信頼度、1つ以上のデバイスで消費されると予想されるエネルギー量、1つ以上のデバイスで要求を遂行するのにかかる時間、1つ以上のデバイスで消費される処理帯域幅の量、及び/または特定のデバイスにタスクを委任する及び/または特定のデバイスからタスクを委任されるときに考慮できるその他の要因などに基づいて、追加のコンピューティングデバイスの支援を求めるかどうかを決定することができる。たとえば、ロボットコンピューティングデバイス104とユーザー102は、ユーザー102が、音声発話110(たとえば「ルークの日記を探すのを手伝ってくれませんか?」など)を提供するときに、環境106(たとえば、ユーザー102の自宅)内に位置する可能性がある。ロボットコンピューティングデバイス104は、音声発話110に応答して、応答出力108(たとえば「はい、ルークの日記を探すのをお手伝いできます」など)を提供することができる。
【0014】
いくつかの実施形態では、ロボットコンピューティングデバイス104は、音声発話110を受信することに応答して、音声発話110に対応する音声データを処理して、音声発話110に応答して実行する1つ以上の操作を特定してもよい。たとえば、ロボットコンピューティングデバイス104は、ユーザー102が環境106内のオブジェクトの位置を特定する支援を要求していると判断してもよい。いくつかの実施形態では、この要求は、特定すべきオブジェクトに関連付けられたスロット値を持つインテントを少なくとも実行することによって満たされてもよい。たとえば、インテントのスロット値は、オブジェクトの画像を含んでもよい。ただし、ロボットコンピューティングデバイス104は、オブジェクトに類似する、及び/または、オブジェクトに関連付けられる可能性のある複数の画像にアクセスできるが、ロボットコンピューティングデバイス104は、それら複数の画像がしきい値の信頼度に対して適切でないと判断してもよい。その結果、ロボットコンピューティングデバイス104は、要求の遂行を別のデバイスに委任するかどうか、及び/または、環境106内(または環境106外)の別のデバイス及び/またはユーザーから追加情報を求めるかどうかを判断してもよい。
【0015】
たとえば、ロボットコンピューティングデバイス104がしきい値の信頼度で要求を遂行することができない可能性があると判断することに対応して、ロボットコンピューティングデバイス104は、要求の遂行を支援するために別のデバイスが利用可能かどうかを判断してもよい。たとえば、ロボットコンピューティングデバイス104は、センサーデータ及び/またはロボットコンピューティングデバイス104で利用可能なその他のデータを使用して、環境106に、追加情報を提供するために呼び出すことができる1つ以上のその他のデバイスが含まれているかどうかを判断してもよい。いくつかの実施形態では、そのようなデータは、家庭内のユーザーからの事前の許可を得てロボットコンピューティングデバイス104によりキャプチャされる画像データ及び/または音声データを含み得る。たとえば、ロボットコンピューティングデバイス104によってキャプチャされた画像を処理して、環境106に1つ以上の他のコンピューティングデバイスが含まれているかどうかを判定し、及び/または、環境106内の1つ以上の他のコンピューティングデバイスの種類を判定してもよい。ロボットコンピューティングデバイス104が、スマートディスプレイデバイス124及び/またはスマートスピーカーデバイス122(「スマート」は、デバイスがインターネットにアクセスし、ユーザー入力に応答する機能を備えていることを示し得る)を特定すると、ロボットコンピューティングデバイス104は、特定されたデバイスを呼び出すために呼び出しフレーズが必要かどうかを判断してもよい。たとえば、ロボットコンピューティングデバイス104は、インターネット検索及び/またはその他データベース検索を実行して、特定のデバイスに追加情報を要求する方法を決定してもよい。
【0016】
図1Bの光景120に示すように、ロボットコンピューティングデバイス104は、スマートディスプレイデバイス124が存在する環境106の領域にナビゲートしてもよく、決定された呼び出しフレーズを使用してスマートディスプレイデバイス124に追加情報を要求してもよい。たとえば、ロボットコンピューティングデバイス104は、環境の領域にナビゲートする際にその車輪(複数可)及び/または走路(複数可)を利用してもよく、その際、場合によって、事前に作成された環境マップ及び/またはナビゲーション法(複数可)(たとえば、地図と位置の同時推定(SLAM))を利用してもよい。図1B及び他の図には特定のロボットコンピューティングデバイス104が図示されているが、当然のことながら、本明細書に開示される実施形態は、追加または代替のモバイルロボットコンピューティングデバイスにおいても実行できる。たとえば、車輪(複数可)、走路(複数可)、脚(複数可)(たとえば、多足ロボットなど)、ローター(たとえば、無人航空機ロボットなど)、及び/または翼(複数可)を使用して自己ナビゲート移動できるその他のモバイルコンピューティングデバイス(複数可)で実行してもよい。さらに、ロボットコンピューティングデバイス104は、ロボットコンピューティングデバイス104によってスマートディスプレイデバイス124に提供されるロボット入力のコンテンツを生成してもよい。コンテンツは、1つ以上の発見的プロセス及び/または1つ以上の訓練された機械学習モデル(たとえば、言語モデル)を使用して生成してもよい。たとえば、ロボットコンピューティングデバイス104が、特定のオブジェクトの外観に関して、しきい値の信頼度を有していない場合があるため、ロボットコンピューティングデバイス104は、特定のオブジェクトの特徴を説明する要求を具現化するコンテンツを生成してもよい。前述の例によれば、ロボットコンピューティングデバイス104は、呼び出しフレーズを意味し得る「アシスタント、…」などのコンテンツや、スマートディスプレイデバイス124から追加情報を要求するコマンドを意味し得る「…ルークの日記はどんな外観ですか?」などのコンテンツを含む音声出力130をレンダリングしてもよい。
【0017】
音声出力130に応答して、スマートディスプレイデバイス124は、図1Cの光景140に示すように、スマートディスプレイデバイス124のディスプレイインターフェース144に検索結果142をレンダリングしてもよい。代替的にまたは追加的に、スマートディスプレイデバイス124は、「『ルークの日記』の検索結果はこちらです」などの音声応答146を提供してもよく、その後、ロボットコンピューティングデバイス104が問い合わせているオブジェクトの特徴の音声説明を提供してもよい。いくつかの実施形態では、スマートディスプレイデバイス124がオブジェクトの検索結果142及び/または音声説明をレンダリングしているときに、ロボットコンピューティングデバイス104は、スマートディスプレイデバイス124がレンダリングしている出力に基づくデータをキャプチャしてもよい。たとえば、ロボットコンピューティングデバイス104は、1つ以上のカメラ166及び/または1つ以上のマイクを使用して、スマートディスプレイデバイス124がレンダリングしている出力をキャプチャしてもよい。スマートディスプレイデバイス124は、検索結果142の画像をキャプチャしてもよい。この画像は、1人以上のユーザーが最近インターネットで検索した日記の画像を含み得る。この画像は、ユーザー102からの要求を遂行するため、ロボットコンピューティングデバイス104が利用してもよい。
【0018】
いくつかの実施形態では、ロボットコンピューティングデバイス104によってキャプチャされたデータは、ユーザー102が問い合わせたオブジェクトの位置を決定するため、ユーザー(複数可)からの事前の許可を得て、プライベートホームナレッジグラフデータ及び/またはパブリックホームナレッジグラフデータと比較されてもよい。ナレッジグラフに格納される値は、テキスト値(たとえば、オブジェクトの名前、場所の名前、エンティティのその他のテキスト記述子)、数値(たとえば、エンティティの種類、使用データ、年齢、身長、体重、その他の特徴データ、エンティティに関連付けられたその他の数値情報)、またはユーザー固有の値に対するポインター(たとえば、ユーザーのナレッジグラフ内のエンティティに対するメモリ内の位置、ユーザーのナレッジグラフ内の2つ以上のエンティティを関連付けるメモリ内の位置など)を含んでもよい。すなわち、ユーザー及び/または環境(たとえば、特定の自宅)に固有の値は、さまざまな形式をとり得、記録スキーマによって定義される個人記録のフィールドに固有のものとなり得る。この値は、ユーザーに固有の実際の情報を示してもよく、あるいは、ユーザー及び/または環境に固有の情報を取得できるメモリの位置及び/またはデバイスの指定であってもよい。
【0019】
場合によって、スマートディスプレイデバイス124によって提示されるデータと、パーソナルナッレッジグラフ及び/またはホームナッレッジグラフにグラフ化されたデータとの比較により、ロボットコンピューティングデバイス104がユーザー102からの要求を遂行するのに役立つ情報が特定されてもよい。たとえば、ロボットコンピューティングデバイス104は、キャプチャされている類似のオブジェクトと、ユーザー102のホームナレッジグラフに保存されている位置データとに基づいて、特定されたオブジェクトの位置を決定してもよい。位置が特定されると、ロボットコンピューティングデバイス104は、場合により、その位置がしきい値の確実性または信頼度で決定されたかどうかを判断してもよい。ロボットコンピューティングデバイス104は、しきい値の信頼度で、ユーザーによって特定されたオブジェクト(たとえば、ルークの日記)がその場所にあると判断すると、ロボットコンピューティングデバイス104は、ユーザー102に対して指示をレンダリングしてもよい。
【0020】
たとえば、図1Dの光景160に示すように、ロボットコンピューティングデバイス104は、ユーザー102がロボットコンピューティングデバイス104に助けを求めた環境106内の領域から別の領域にナビゲートしてもよい。その別の領域は、ユーザー102からの事前の許可を得てロボットコンピューティングデバイス104が予測した場所であって、ユーザー102が移動した場所であり得る。ユーザー102に対してレンダリングされる出力に応じて、ロボットコンピューティングデバイス104は、ユーザー102の位置にナビゲートしたり、及び/または、別のコンピューティングデバイスにユーザー102への出力をレンダリングするよう要求したりしてもよい。たとえば、ユーザー102が別のデバイスに近い場所にいると予測される場合、ロボットコンピューティングデバイス104は、その別のコンピューティングデバイスと通信して(たとえば、Wi-Fiネットワーク経由で)、その別のコンピューティングデバイスにユーザー102への出力をレンダリングさせてもよい。そうでない場合、ロボットコンピューティングデバイス104は、ユーザー102の近くの場所にナビゲートして、可聴出力162及び/または視覚出力をレンダリングしてもよい。たとえば、ロボットコンピューティングデバイス104がユーザー102からの要求を遂行するための情報を決定すると、ロボットコンピューティングデバイス104は「ルークの日記はキッチンにあります。ルークの日記の場所まで連れて行ってあげましょう。」などの可聴出力1062をレンダリングしてもよい。これに応答して、ユーザー102は「わかりました、ありがとう」などの肯定的な回答164を提供し、ユーザー102が指定されたオブジェクトの位置まで案内されることを希望していることを確認することができる。
【0021】
ロボットコンピューティングデバイス104からのオブジェクトへの誘導の申し出を確認したユーザー102に応答して、ロボットコンピューティングデバイス104は環境106内の別の領域に移動してもよい。この別の領域は、たとえば、目的のオブジェクトが置かれているカウンターを含むキッチンなどである。場合によって、図1Eの光景180に示すように、ユーザー102はロボットコンピューティングデバイス104に別の要求を出すことがある。別の要求は、たとえば、「ルークに彼の日記がキッチンにあることを伝えてください」のような音声発話182である。この要求は、別のユーザーにメッセージを伝達するようユーザー102がロボットコンピューティングデバイス104に要請することであり得る。いくつかの実施形態では、ロボットコンピューティングデバイス104は、ユーザー102からのこの入力を処理し、要求の遂行を委任するかどうか決定してもよい。たとえば、ホームナレッジグラフデータ及び/またはその他のデータを使用して、ロボットコンピューティングデバイス104は、1つ以上の他のデバイスがユーザー102からの要求をより効果的に遂行できるかどうか判断してもよい。
【0022】
場合によって、ロボットコンピューティングデバイス104は、ユーザー(複数可)からの事前の許可を得て、ユーザーであるルークの予測位置を決定し、ロボットコンピューティングデバイス104がルークと効果的にコミュニケーションを取ることができるかどうか、あるいは別のデバイスがルークとより効果的にコミュニケーションを取ることができるかどうかを推定してもよい。たとえば、ロボットコンピューティングデバイス104は、パーソナルナレッジグラフデータに基づいて、ユーザーであるルークが自分の部屋において携帯電話で遊んでいることや、スマートスピーカーデバイスが自分の部屋にあることを判断してもよい。この判断に基づいて、ロボットコンピューティングデバイス104は、別のデバイスの支援がなければ、ロボットコンピューティングデバイス104がルークとコミュニケーションを取るためにより多くのエネルギーを消費すること、及び/または、より長い時間がかかることを決定してもよい。したがって、ロボットコンピューティングデバイス104は、スマートスピーカーデバイス188が近くにあると判断し、スマートデバイスの種類に基づき、ユーザーであるルークにメッセージを送るようスマートスピーカーデバイス188を呼び出すことができる。たとえば、ロボットコンピューティングデバイス104は、「アシスタント、ルークに彼の日記がキッチンにあることを伝えてください」などの可聴出力のコンテンツを生成してもよい。この可聴出力により、スマートスピーカーデバイス188及び/または1つ以上の他のコンピューティングデバイスは、「ルーク、あなたの日記はキッチンにあります」などの出力190をレンダリングできるようになる。
【0023】
いくつかの実施形態では、ロボットコンピューティングデバイス104は、スマートスピーカーデバイス188、スマートディスプレイデバイス124、及び/またはその他のコンピューティングデバイスを使って、ロボットコンピューティングデバイス104が特定したオブジェクト186(たとえば、ルークの日記)が、ユーザー102が見つけようとしていたオブジェクトであることを確認してもよい。たとえば、ロボットコンピューティングデバイス104は、オブジェクト186を特定し、ロボットコンピューティングデバイス104のアームまたは他の部分を操作してオブジェクト186を拾い上げ、オブジェクト186をスマートディスプレイデバイス124またはスマートスピーカーデバイス188(たとえば、スマートスピーカーデバイス188にカメラが含まれている場合)の位置に運んでもよい。次に、ロボットコンピューティングデバイス104は、スマートディスプレイデバイス124(または他のデバイス)に、オブジェクト186がユーザー102の言っているオブジェクトであるかどうかを確認するよう要求してもよい。
【0024】
たとえば、ロボットコンピューティングデバイス104は、ロボットコンピューティングデバイス104が保持しているものの画像をスマートディスプレイデバイス124にキャプチャするよう要求する呼び出しフレーズとコンテンツとを含むコマンドを生成してもよい。たとえば、コマンドは「スマートデバイス、これはルークの日記ですか?」であってもよい。いくつかの実施形態では、このコマンドは、ユーザー102とスマートディスプレイデバイス124との間の事前のインタラクションに基づいて生成してもよい。そのような事前のインタラクションは、ロボットコンピューティングデバイス104にスマートディスプレイデバイス124の機能を知らせるものである。代替的にまたは追加的に、このコマンドは、スマートディスプレイデバイス124が応答するコマンドの種類を決定するためのデータベース、インターネット、またはその他の情報源の検索に基づいて生成してもよい。
【0025】
いくつかの実施形態では、ロボットコンピューティングデバイス104は、ロボットコンピューティングデバイス104の特定したオブジェクト186がユーザー102の言っているオブジェクトであることをユーザー102または別のユーザーに確認してもよい。たとえば、ロボットコンピューティングデバイス104は、スマートディスプレイデバイス124にロボットコンピューティングデバイス104とのビデオ通話を実行するコマンドを提供することにより、別のユーザー(たとえば、ルーク)にオブジェクト186の名前を確認してもらう要求を初期化してもよい。たとえば、ロボットコンピューティングデバイス124は、「スマートデバイス、ビデオ通話でルークを呼び出してください」などのコマンドを生成し、そのコマンドをスマートディスプレイデバイス124への音声出力としてレンダリングしてもよい。これに応答して、スマートディスプレイデバイス124は、ロボットコンピューティングデバイス124と他のユーザーとの間のビデオ通話を初期化してもよい(他のユーザーからの事前の許可を得て)。場合によって、他のユーザーが環境106内にいない場合もあるが、ロボットコンピューティングデバイス104はそれでもなお環境106内の別のコンピューティングデバイスを介して他のユーザーとの通信を初期化してもよい。スマートディスプレイデバイス124でビデオ通話が初期化されると、ロボットコンピューティングデバイス104はオブジェクト186を持ち上げて、他のユーザーにオブジェクト186の名前を確認するように要求してもよい(たとえば、「こんにちは、ルーク。これはあなたの日記ですか?」)。これに応答して、他のユーザーがオブジェクト186の名前を確認した場合、ロボットコンピューティングデバイス104は、ユーザー102からの要求が遂行されたとみなしてもよい。
【0026】
図2は、要求を遂行するために、及び/または、特定のタスクを他の近くのデバイスに委任するために、該他の近くのデバイスから追加情報を求めることができるロボットコンピューティングデバイス(たとえばコンピューティングデバイス202)を操作するシステム200を示す図である。ロボットコンピューティングデバイスは、自動アシスタント204を含んでもよい。自動アシスタント204は、コンピューティングデバイス202及び/またはサーバーデバイスなどの1つ以上のコンピューティングデバイスで提供されるアシスタントアプリケーションの一部として動作してもよい。ユーザーは、アシスタントインターフェース(複数可)220を介して自動アシスタント204とインタラクトできる。アシスタントインターフェース(複数可)220は、マイク、カメラ、タッチスクリーンディスプレイ、ユーザーインターフェース、及び/またはユーザーとアプリケーション間のインターフェースを提供できるその他の装置であり得る。たとえば、ユーザーは、アシスタントインターフェース220に口頭入力、テキスト入力、及び/またはグラフィック入力を提供することにより、自動アシスタント204を初期化し、自動アシスタント204に1つ以上のアクションを初期化させ(たとえば、データを提供させる、周辺機器を制御させる、エージェントにアクセスさせる、入力及び/または出力を生成させる等)ことができる。あるいは、自動アシスタント204を、1つ以上の訓練された機械学習モデルを使用してコンテキストデータ236を処理することに基づき、初期化してもよい。コンテキストデータ236は、自動アシスタント204にアクセスできる環境の1つ以上の特徴、及び/または自動アシスタント204とインタラクトする意図があると予測されるユーザーの1つ以上の特徴を特徴付けしてもよい。コンピューティングデバイス202は、ディスプレイデバイスを含んでもよい。ディスプレイデバイスは、タッチインターフェースを介してユーザーがコンピューティングデバイス202のアプリケーション234を制御できるようにするタッチ入力及び/またはジェスチャを受信するためのタッチインターフェースを含む表示パネルであってもよい。いくつかの実施形態では、コンピューティングデバイス202は、ディスプレイデバイスを有さず、したがって、グラフィカルユーザーインターフェース出力を提供せずに、可聴ユーザーインターフェース出力を提供してもよい。さらに、コンピューティングデバイス202は、ユーザーからの音声による自然言語入力を受信するためのマイクなどのユーザーインターフェースを提供してもよい。いくつかの実施形態では、コンピューティングデバイス202は、タッチインターフェースを含んでもよく、カメラがなくてもよいが、場合により1つ以上の他のセンサーを含んでもよい。
【0027】
コンピューティングデバイス202及び/またはその他のサードパーティクライアントデバイスは、インターネットなどのネットワークを介してサーバーデバイスと通信してもよい。さらに、コンピューティングデバイス202及び他のコンピューティングデバイスは、Wi-Fiネットワークなどのローカルエリアネットワーク(LAN)を介して相互に通信してもよい。コンピューティングデバイス202は、コンピューティングデバイス202の計算リソースを節約するために、計算タスクをサーバーデバイスに委ねてもよい。たとえば、サーバーデバイスは自動アシスタント204をホストしてもよく、及び/またはコンピューティングデバイス202は、1つ以上のアシスタントインターフェース220で受信した入力をサーバーデバイスに送信してもよい。しかし、いくつかの実施形態では、自動アシスタント204はコンピューティングデバイス202でホストされてもよく、自動アシスタント操作に関連し得るさまざまなプロセスは、コンピューティングデバイス202で実行されてもよい。
【0028】
さまざまな実施形態では、自動アシスタント204のすべての部分またはすべてではない部分は、コンピューティングデバイス202で実行されてもよい。これらの実施形態のいくつかでは、自動アシスタント204のある部分は、コンピューティングデバイス202を介して実行されてもよく、自動アシスタント204の他の部分を実行できるサーバーデバイスとインターフェースしてもよい。サーバーデバイスは、場合によって、複数のスレッドを介して複数のユーザーとそれらに関連するアシスタントアプリケーションのために機能してもよい。自動アシスタント204のすべての部分またはすべてではない部分がコンピューティングデバイス202を介して実行される実施形態では、自動アシスタント204は、コンピューティングデバイス202のオペレーティングシステムとは別のアプリケーション(たとえば、オペレーティングシステムの「上に」インストールされる)であってもよく、あるいはコンピューティングデバイス202のオペレーティングシステムによって直接実行されてもよい(たとえば、オペレーティングシステムのアプリケーションであるが、オペレーティングシステムと一体であると見なされるもの)。
【0029】
いくつかの実施形態では、自動アシスタント204は、入力処理エンジン206を含んでもよい。入力処理エンジン206は、コンピューティングデバイス202及び/またはサーバーデバイスの入力及び/または出力を処理する複数の異なるモジュールを採用してもよい。たとえば、入力処理エンジン206は、音声処理エンジン208を含んでもよく、音声処理エンジン208は、アシスタントインターフェース220で受信した音声データを処理して、音声データに含まれるテキストを特定してもよい。音声データは、たとえば、コンピューティングデバイス202の計算リソースを節約するために、コンピューティングデバイス202からサーバーデバイスに送信されてもよい。追加的または代替的に、音声データをコンピューティングデバイス202で排他的に処理してもよい。
【0030】
音声データをテキストに変換するプロセスは、ニューラルネットワークを採用できる音声認識アルゴリズムを含んでもよく、及び/または、単語やフレーズに対応する音声データのグループを識別するための統計モデルを含んでもよい。音声データから変換されたテキストは、データ構文解析エンジン210によって構文解析されてもよく、さらに、テキストデータとして自動アシスタント204に利用可能なものにされてもよい。そのようなテキストデータは、コマンドフレーズ(複数可)、インテント(複数可)、アクション(複数可)、スロット値(複数可)、及び/またはユーザーが指定したその他のコンテンツを生成及び/または特定するために使用できるものである。いくつかの実施形態では、データ構文解析エンジン210によって提供される出力データをパラメータエンジン212に提供して、自動アシスタント204により実行可能な、及び/または、自動アシスタント204を介してアクセスできるアプリケーションまたはエージェントにより実行可能な、特定のインテント、アクション、及び/またはルーチンに対応する入力をユーザーが提供したかどうかを判断してもよい。たとえば、アシスタントデータ238を、サーバーデバイス及び/またはコンピューティングデバイス202に保存してもよく、アシスタントデータ238は、自動アシスタント204によって実行可能な1つ以上のアクションを定義するデータ、及び当該アクションを実行するのに必要なパラメータを含んでもよい。パラメータエンジン212は、インテント、アクション、及び/またはスロット値に対して1つ以上のパラメータを生成してもよく、その1つ以上のパラメータを出力生成エンジン214に提供してもよい。出力生成エンジン214は、その1つ以上のパラメータを使用して、アシスタントインターフェース220と通信し、ユーザーに出力を提供したり、及び/または、1つ以上のアプリケーション234と通信し、1つ以上のアプリケーション234に出力を提供したりしてもよい。
【0031】
いくつかの実施形態では、自動アシスタント204は、アプリケーションであってもよい。該アプリケーションは、コンピューティングデバイス202のオペレーティングシステムの「上に」インストールできるものであり、及び/または、それ自体がコンピューティングデバイス202のオペレーティングシステムの一部(または全体)を形成できるものである。自動アシスタントアプリケーションは、オンデバイス音声認識、オンデバイス自然言語理解、及びオンデバイスフルフィルメントを含むものであり、及び/または、オンデバイス音声認識、オンデバイス自然言語理解、及びオンデバイスフルフィルメントにアクセスできるものである。たとえば、オンデバイス音声認識は、オンデバイス音声認識モジュールを使用して実行してもよい。該オンデバイス音声認識モジュールは、コンピューティングデバイス202にローカルに保存されているエンドツーエンドの音声認識機械学習モデルを使用して音声データ(マイク(複数可)によって検出される)を処理するものである。オンデバイス音声認識は、音声データに存在する音声発話(もしあれば)に対して認識されたテキストを生成する。また、たとえば、オンデバイス自然言語理解(NLU)は、オンデバイスNLUモジュールを使用して実行してもよい。該オンデバイスNLUモジュールは、オンデバイス音声認識を使用して生成された、認識されたテキストを処理し、場合により、コンテキストデータを処理してNLUデータを生成するものである。
【0032】
NLUデータは、音声発話に対応するインテント(複数可)と、場合により、そのインテント(複数可)のパラメータ(複数可)(たとえば、スロット値)を含んでもよい。オンデバイスフルフィルメントは、オンデバイスフルフィルメントモジュールを使用して実行してもよい。該オンデバイスフルフィルメントモジュールは、NLUデータ(オンデバイスNLUから)と、場合により、その他のローカルデータとを使用して、音声発話のインテント(複数可)(及び場合により、該インテントのパラメータ(複数可))を解決するために実行すべきアクション(複数可)を決定するものである。これは、以下のことを含み得る。音声発話に対するローカル及び/またはリモートの応答(例えば回答)を決定すること、音声発話に基づいて実行すべきローカルにインストールされたアプリケーション(複数可)とのインタラクション(複数可)を決定すること、音声発話に基づいてモノのインターネット(IoT)デバイス(複数可)に送信するコマンド(複数可)(直接または対応するリモートシステム(複数可)を介して)を決定すること、及び/または、音声発話に基づいて実行すべきその他の解決アクション(複数可)を決定すること。その後、オンデバイスフルフィルメントは、決定されたアクション(複数可)のローカル及び/またはリモートでの遂行/実行を開始して、音声発話を解決してもよい。
【0033】
さまざまな実施形態では、リモート音声処理、リモートNLU、及び/またはリモートフルフィルメントを少なくとも選択的に利用してもよい。たとえば、認識されたテキストは、リモートNLU及び/またはリモートフルフィルメントのために、少なくとも選択的にリモート自動アシスタントのコンポーネント(複数可)に送信されてもよい。たとえば、認識されたテキストは、場合により、オンデバイスでの遂行と並行してリモートでの遂行用に送信されてもよいし、あるいは、オンデバイスNLU及び/またはオンデバイスフルフィルメントの失敗に応答して送信されてもよい。ただし、オンデバイス音声処理、オンデバイスNLU、オンデバイスフルフィルメント、及び/またはオンデバイス実行は、少なくとも、音声発話を解決するときにもたらされる待ち時間の削減のため、優先されてもよい(音声発話を解決するためにクライアントとサーバーの往復(複数可)が必要ないため)。さらに、オンデバイス機能は、ネットワーク接続がないまたはネットワーク接続が制限されている状況で利用できる唯一の機能であってもよい。
【0034】
いくつかの実施形態では、コンピューティングデバイス202は、1つ以上のアプリケーション234を含んでもよい。該1つ以上のアプリケーション234は、コンピューティングデバイス202及び/または自動アシスタント204を提供したエンティティとは異なるサードパーティエンティティによって提供できるものである。自動アシスタント204及び/またはコンピューティングデバイス202のアプリケーション状態エンジンは、アプリケーションデータ230にアクセスして、1つ以上のアプリケーション234によって実行可能な1つ以上のアクションを決定してもよく、さらに、1つ以上のアプリケーション234の各アプリケーションの状態、及び/またはコンピューティングデバイス202に関連付けられているそれぞれのデバイスの状態を決定してもよい。自動アシスタント204及び/またはコンピューティングデバイス202のデバイス状態エンジンは、デバイスデータ232にアクセスして、コンピューティングデバイス202及び/またはコンピューティングデバイス202に関連付けられている1つ以上のデバイスによって実行可能な1つ以上のアクションを決定してもよい。さらに、アプリケーションデータ230及び/またはその他のデータ(たとえば、デバイスデータ232)は、コンテキストデータ236を生成する自動アシスタント204によってアクセスされてもよい。コンテキストデータ236は、特定のアプリケーション234及び/またはデバイスが実行されているコンテキスト、及び/または特定のユーザーがコンピューティングデバイス202(アプリケーション234及び/またはその他のデバイスもしくはモジュールにアクセスしている)にアクセスしているコンテキストを特徴付けてもよい。
【0035】
コンピューティングデバイス202で1つ以上のアプリケーション234が実行されている間、デバイスデータ232は、コンピューティングデバイス202で実行されている各アプリケーション234の現在の動作状態を特徴付けてもよい。さらに、アプリケーションデータ230は、1つ以上のアプリケーション234の指示でレンダリングされる1つ以上のグラフィカルユーザーインターフェースのコンテンツなど、実行中のアプリケーション234の1つ以上の機能を特徴付けてもよい。代替的にまたは追加的に、アプリケーションデータ230は、それぞれのアプリケーションの現在の動作状態に基づいて、それぞれのアプリケーション及び/または自動アシスタント204によって更新できるアクションスキーマを特徴付けてもよい。代替的にまたは追加的に、1つ以上のアプリケーション234の1つ以上のアクションスキーマは、静止したままでもよいが、自動アシスタント204を介して初期化する適切なアクションを決定するために、アプリケーション状態エンジンによってアクセスされてもよい。
【0036】
コンピューティングデバイス202は、アシスタント呼び出しエンジン222をさらに含んでもよい。アシスタント呼び出しエンジン222は、1つ以上の訓練された機械学習モデルを使用して、アプリケーションデータ230、デバイスデータ232、コンテキストデータ236、及び/またはコンピューティングデバイス202がアクセス可能なその他のデータを処理できるものである。アシスタント呼び出しエンジン222は、このデータを処理して、ユーザーが呼び出しフレーズをはっきり発話して自動アシスタント204を呼び出すのを待つかどうか、または、ユーザーに呼び出しフレーズをはっきり発話させる代わりに、自動アシスタントを呼び出すユーザーの意図をデータが示していると見なすかどうかを、決定してもよい。たとえば、1つ以上の訓練された機械学習モデルは、訓練データのインスタンスを使用して訓練されてもよい。訓練データのインスタンスは、複数のデバイス及び/またはアプリケーションがさまざまな動作状態を示している環境にユーザーがいるシナリオに基づくものである。訓練データのインスタンスは、ある訓練データを取得するために生成してもよい。その訓練データは、ユーザーが自動アシスタントを呼び出すコンテキストと、ユーザーが自動アシスタントを呼び出さないその他のコンテキストとを特徴付けるものである。1つ以上の訓練された機械学習モデルがこれらの訓練データのインスタンスに基づいて訓練されると、アシスタント呼び出しエンジン222は、コンテキスト及び/または環境の特徴に基づいて、自動アシスタント204にユーザーからの音声呼び出しフレーズを検出させたり、その検出を制限させたりしてもよい。
【0037】
いくつかの実施形態では、アシスタント呼び出しエンジン222は、自動アシスタント204のインスタンス及び/または別のアシスタントアプリケーションへのアクセスを提供する近くのデバイスを呼び出す方法を決定するために、データを処理してもよい。たとえば、コンピューティングデバイス202のカメラでキャプチャされた画像データを処理して、コンピューティングデバイス202と同じ環境内に配置されているコンピューティングデバイスの種類を判別してもよい。次に、コンピューティングデバイス202は、このタイプのコンピューティングデバイスが、特定の呼び出しフレーズを使用して呼び出すことができる特定の自動アシスタントへのアクセスを提供するものであると判断してもよい。この判断に基づいて、コンピューティングデバイス202は、コンピューティングデバイス202が近くのデバイスから追加情報を求めること及び/または近くのデバイスにタスクを委任することを決定すると、出力生成エンジン214を初期化して呼び出しフレーズをレンダリングしてもよい。次いで、出力生成エンジン214は、コンピューティングデバイス202によって生成された要求の呼び出しフレーズとコンテンツを含む出力(たとえば、可聴出力、Bluetoothコマンド、非可聴要求など)をレンダリングしてもよい。
【0038】
いくつかの実施形態では、システム200は、要求及び/または要求の一部の遂行を別のコンピューティングデバイスに委任するかどうか決定できる委任エンジン216を含んでもよい。いくつかの実施形態では、委任エンジン216は、ユーザーからの事前の許可を得て、特定のタスクを委任することができるユーザーに関連付けられたデバイス及び/またはアプリケーションの状態を判断するために、データを処理してもよい。委任エンジン216によって処理されるデータは、ユーザーが提供した要求に応じて選択してもよく、これにより、コンピューティングデバイス202は、要求ごとに特定のタスクの委任をカスタマイズできるようになる。たとえば、委任エンジン216がユーザーのために音楽をレンダリングするタスクを委任するかどうかを決定しているとき、データは、デバイスの特定のインターフェースが使用されているかどうかを示している。代替的にまたは追加的に、委任エンジン216は、さまざまな種類の要求を委任するかどうかを決定するときに、電力使用率データを処理して、商用電源に接続されているかまたはバッテリー電源を使用している近くのデバイスを特定してもよい。このようにして、コンピューティングデバイス202は、タスクを完了するのに最適な電源を備えていない可能性のある近くのデバイスに特定のタスクを委任することを回避できる。
【0039】
いくつかの実施形態では、委任エンジン216は、1人または2人以上の異なるユーザーのパーソナルナレッジグラフデータ及び/またはホームグラフデータにアクセスして(ユーザーからの事前の許可を得て)、要求を遂行する特定のタスクを委任することについて決定を行ってもよい。たとえば、ホームグラフデータは、ユーザーからの事前の許可を得て、ユーザーの自宅内の特定のオブジェクト及び/または機能の位置、特定のデバイスの状態(たとえば、処理帯域幅、信号強度、バッテリー充電)、及び/またはデバイスやオブジェクトのその他のプロパティを示すものであってもよい。代替的にまたは追加的に、ホームグラフデータは、家庭内でアクセスされている特定のデバイス及び/またはアプリケーションの状態を示すものであってもよい。またパーソナルナレッジグラフデータが、特定のタスクを特定のデバイスに委任するかどうかを決定するために、委任エンジン216によって利用されてもよい。たとえば、パーソナルナレッジグラフデータは、特定の操作を特定のデバイスに実行させることに関するユーザーの好み、及び/またはデバイスに保存できるその他の好みを示すものであってもよい。コンピューティングデバイス202は、そのようなデータを使用して、ユーザーが別のデバイスで実行されるのを好むタスクを委任してもよい(ユーザーがそれに対応する要求をコンピューティングデバイス202に出しているにもかかわらずである)。
【0040】
いくつかの実施形態では、ロボットコンピューティングデバイスによって生成されたデータを使用して、ホームグラフデータ及び/またはパーソナルナレッジグラフデータを更新してもよい。たとえば、ロボットコンピューティングデバイスが環境内を移動する際にユーザーからの事前の許可を得てロボットコンピューティングデバイスによってキャプチャされた画像データ及び/または音声データを利用して、ホームグラフデータ及び/またはパーソナルナレッジグラフデータを更新してもよい。いくつかの実施形態では、ロボットコンピューティングデバイスは、ホームグラフデータ及び/またはパーソナルナレッジグラフデータの特定の部分が少なくともしきい値の期間更新されていない場合、そのようなデータを積極的に生成してもよい。代替的にまたは追加的に、ロボットコンピューティングデバイスが特定のオブジェクト及び/または環境の特定の部分を少なくともしきい値の期間にわたって観測しなかった場合、その特定のオブジェクト及び/または環境の特定の部分に関するデータを更新してもよい。
【0041】
いくつかの実施形態では、コンピューティングデバイス202は、情報要求エンジン218を含んでもよい。情報要求エンジン218は、ユーザーからの要求を遂行するために追加の情報を求めるかどうかを判断するためにデータを処理できるものである。少なくとも追加情報を要求しなければしきい値の信頼度で特定の要求を遂行することができないと情報要求エンジン218が判断した場合、追加情報を別のデバイス及び/またはアプリケーションから要求してもよい。いくつかの実施形態では、追加情報を要求するかどうか及び/または特定のタスクを委任するかどうかの決定は、1つ以上のヒューリスティックプロセス及び/または1つ以上の訓練された機械学習モデルに基づいて行ってもよい。たとえば、ユーザーがコンピューティングデバイス202に要求を出すと、委任エンジン216及び/または情報要求エンジン218は、要求を遂行するためタスクを委任する必要があるかどうか、及び/または、追加情報を求める必要があるかどうかを示す信頼性メトリックを生成してもよい。
【0042】
たとえば、要求を具現化する入力を処理して、要求を遂行するための信頼性メトリックを決定してもよい。代替的にまたは追加的に、候補応答をコンピューティングデバイス202によって生成し、処理して、候補応答に対する信頼性メトリックを決定してもよい。信頼性メトリックのいずれかがタスクを委任するための信頼性メトリックを満たさない場合、委任エンジン216は、タスクを委任するべき適切なデバイスを決定するプロセスを初期化してもよい。信頼性メトリックのいずれかが追加情報を要請するための信頼性メトリックを満たさない場合、情報要求エンジン218は、追加情報を求めるべき適切なデバイスを決定するプロセスを初期化してもよい。いくつかの実施形態では、情報要求エンジン218が、特定の要求に対して追加情報を要求する必要があるかどうかを最初に決定し、その後、委任エンジン216が、要求について1つ以上のタスクを別のデバイスに委任する必要があるかどうかを決定してもよい。たとえば、コンピューティングデバイス202が、メッセージを別のデバイスに送る要求を受け取り、最初に、情報要求エンジン218が、しきい値の信頼度で、要求を遂行するために追加情報を要求する必要がないことを決定してもよい。その後または同時に、委任エンジン216は、特定のコンピューティングデバイスがメッセージを送るタスクを実行するのにより適していることを決定してもよい。次に、委任エンジン216は、アシスタント呼び出しエンジン222が使用するデータを生成してもよい。そのようなデータは、コンピューティングデバイス202から特定のコンピューティングデバイスに要求を出力して特定のコンピューティングデバイスに要求を実行させる(たとえば、メッセージを送らせる)ために、アシスタント呼び出しエンジン222が使用するものである。
【0043】
図3は、ロボットコンピューティングデバイスを制御して、1つ以上の他のコンピューティングデバイスにパフォーマンスを委任することにより、及び/または、1つ以上の他のコンピューティングデバイスから追加情報を収集することにより、ユーザーからの要求を遂行する方法300を示している。方法300は、自動アシスタントに関連付けることができる1つ以上のコンピューティングデバイス、アプリケーション、及び/または他の任意の装置もしくはモジュールによって実行することができる。方法300は、ロボットコンピューティングデバイスがユーザー入力を受信したかどうかを判断する操作302を含んでもよい。ユーザー入力は、たとえば、ロボットコンピューティングデバイスにユーザーの自宅内のオブジェクトの位置を提供するよう要求するものである。たとえば、ユーザーは「マギーのドローンはどこですか?」などの音声発話をする。これは、ユーザーと同じ環境(たとえば、自宅)にいる別のユーザーが所有するおもちゃのドローンを指している。ユーザーは、ロボットコンピューティングデバイスに音声発話を提供し、ユーザー及び他のユーザーがオブジェクト(たとえば「マギーのドローン」)を見つけるのを支援するようロボットコンピューティングデバイスを積極的に動員する。
【0044】
方法300は、操作302から操作304に進むことができる。操作304は、ロボットコンピューティングデバイスが要求の遂行を環境内の別のデバイスに委任する必要があるかどうかを判断することを含んでもよい。ある場合、環境は、ユーザーの自宅であり、1つ以上の異なる自動アシスタントアプリケーションへのアクセスを提供する複数の異なるデバイスを含むことができる。たとえば、環境は、第1アシスタントデバイスがあるオフィスと、第2アシスタントデバイスがあるキッチンとを含むことができる。ロボットコンピューティングデバイスがユーザー入力を受信すると、ロボットコンピューティングデバイスは、ユーザー入力を処理し、ユーザーがロボットコンピューティングデバイスによってオブジェクトの位置を特定することを要求していると判断することができる。この判断に基づいて、ロボットコンピューティングデバイスは、オブジェクトの位置と、位置の推定に関する信頼性メトリックの大きさを推定してもよい。
【0045】
いくつかの実施形態では、位置の推定は、ユーザーからのユーザー入力の受信に応じて実行される画像の検索に基づいて行うことができる。画像検索から特定された1つ以上の画像結果は、ロボットコンピューティングデバイスが環境内を移動する際に、ユーザーの事前の許可を得て、ロボットコンピューティングデバイスによってキャプチャされた1つ以上の画像と比較してもよい。ロボットコンピューティングデバイス及び/または別のデバイス(たとえば、サーバーデバイス)は、ユーザーによって特定されたオブジェクトが、しきい値の信頼度で、キャプチャされた画像内で特定されるアイテムに対応するかどうかを判断してもよい。たとえば、画像検索結果(複数可)とキャプチャされた画像(複数可)の比較に基づいて信頼性メトリックを生成し、特定のオブジェクトを特定するための信頼度を定量化してもよい。その信頼度が特定の信頼度しきい値に満たない場合、ロボットコンピューティングデバイスは、特定を要求された特定のオブジェクトに関する追加情報を求めることを決定してもよい。ただし、その信頼度が特定のしきい値を満たす場合、ロボットコンピューティングデバイスは、特定のオブジェクトを特定するという要求されたアクションを実行してもよいし、あるいは、そのタスクを別のデバイスに委任してもよい。
【0046】
いくつかの実施形態では、アクションの委任は、さまざまな要因に基づくことができ、そのような要因には、たとえば、アクションを委任することによって消費電力が削減されるか、デバイスでのネットワーク及び/または処理帯域幅の制限が軽減されるか、アクションがより速く完了するか、及び/またはデバイス間でアクションを委任するとき考慮するのに適したその他の要因などがある。たとえば、ロボットコンピューティングデバイスは、追加のデバイス(たとえば、別のロボットデバイス、または他のスマートデバイス)がオブジェクトの予測位置により近いと判断してもよい。この判断に基づいて、ロボットコンピューティングデバイスは、オブジェクトの位置を確認するアクションを委任すれば、少なくともロボットコンピューティングデバイスがアクションを実行する場合よりも、エネルギー消費が少なくなると判断してもよい。
【0047】
ロボットコンピューティングデバイスが、1つ以上の異なる要因に基づいて1つ以上のアクションを委任することを決定した場合、方法300は、操作304から操作314に進むことができる。操作314は、ロボットコンピューティングデバイスがそこから追加のコンピューティングデバイスに入力を提供することを含んでもよい。前述の例によれば、この入力は、ロボットコンピューティングデバイスと別のコンピューティングデバイスとの間の通信(たとえば、オーディオ、ビジュアル、ワイヤレス、Bluetoothなど)であってもよい。通信の内容は、他のコンピューティングデバイスがオブジェクト(たとえば、マギーのドローン)の位置まで移動したり、及び/または、オブジェクトの位置を確認したりすることの要求を具現化してもよい。方法300は、操作314から操作316に進むことができる。操作316は、追加のコンピューティングデバイスに、要求の遂行を促進するため、アクションを実行させることを含んでもよい。
【0048】
たとえば、ロボットコンピューティングデバイスが、しきい値の信頼度で、オブジェクトの位置がロボットコンピューティングデバイスによって特定できると判断すると、ロボットコンピューティングデバイスは、追加のコンピューティングデバイスと通信して、オブジェクトの位置を特定してもよい。ロボットコンピューティングデバイスからの通信は、音声通信、画像通信、無線通信、及び/またはデバイス間で提供できる任意のその他の通信であり得る。いくつかの実施形態では、ロボットコンピューティングデバイスは、本来人間が検出できる周波数よりも高い周波数または低い周波数で音声出力を提供してもよい。代替的にまたは追加的に、ロボットコンピューティングデバイスからの通信は、無線通信プロトコル(たとえば、Bluetooth、Wi-Fi、LTE、及び/またはその他の任意の通信プロトコル)を介した通信として追加のコンピューティングデバイスに提供されてもよい。通信は、追加のコンピューティングデバイスによって処理され、その結果、追加のコンピューティングデバイスは1つ以上の異なるプロセスに従ってオブジェクトの位置を検索してもよい。たとえば、追加のコンピューティングデバイスは、ロボットコンピューティングデバイスからの通信を受信するとロボットコンピューティングデバイスとは異なる環境領域をナビゲートできる別のロボットコンピューティングデバイスであってもよい。追加のコンピューティングデバイスがオブジェクトの位置を特定すると、追加のコンピューティングデバイスはオブジェクトの位置をロボットコンピューティングデバイスに伝達してもよい。
【0049】
ロボットコンピューティングデバイスが、操作304でアクションを別のコンピューティングデバイスに委任しないことを決定すると、方法300は、操作304から操作306に進むことができる。操作306は、別のコンピューティングデバイス及び/または別のユーザーから(別のユーザーからの事前の許可を得て)追加情報を要求するかどうかを判断することを含んでもよい。いくつかの実施形態では、この判断は、信頼度がしきい値の信頼度及び/または1つ以上の他のしきい値を満たすかどうかに基づくことができる。たとえば、信頼性メトリックの大きさが別の信頼性メトリックを満たさない場合、ロボットコンピューティングデバイスは、追加のコンピューティングデバイスから情報を求めることを決定してもよい(たとえば、操作306から操作308に移る)。代替的にまたは追加的に、ロボットコンピューティングデバイスは、追加情報を要求するかどうかを判断するために、1つ以上のヒューリスティックプロセス及び/または1つ以上の訓練された機械学習モデルに依存してもよい。たとえば、ユーザーからの入力を、1つ以上の訓練された機械学習モデルを使用して処理し、潜在空間にマッピングされた既存の埋め込みと比較できる埋め込みを生成してもよい。生成された埋め込みと既存の埋め込みとの間の埋め込み距離がしきい値を満たす場合、方法300は操作306から操作312に進むことができる。
【0050】
操作312は、要求の遂行を促進するためにロボットコンピューティングデバイスに1つ以上のアクション(つまり操作)を実行させることを含んでもよい。たとえば、前述の例によれば、ロボットコンピューティングデバイスは、しきい値の信頼度でオブジェクトの位置を特定し、その位置をユーザーに示してもよい。いくつかの実施形態では、ロボットコンピューティングデバイスは、ロボットコンピューティングデバイス及び/または別のコンピューティングデバイスの1つ以上のインターフェースで可聴出力及び/または視覚出力を提供することによって、位置を示してもよい。代替的にまたは追加的に、ロボットコンピューティングデバイスは、オブジェクトの位置への移動を提案すること(たとえば「わかりました。マギーのおもちゃのところに連れて行ってあげましょう。」)によってオブジェクトの位置を示し、その後オブジェクトの位置に移動してもよい。
【0051】
ロボットコンピューティングデバイスが別のコンピューティングデバイスから追加情報を要求することを決定した場合、方法300は操作306から操作308に進むことができる。操作308は、ロボットコンピューティングデバイスを追加のコンピューティングデバイスに向かって移動させ、追加のコンピューティングデバイスと通信させることを含んでもよい。たとえば、追加のコンピューティングデバイスは、ディスプレイデバイスやスピーカーデバイスなどのスタンドアローンコンピューティングデバイスであってもよい。ロボットコンピューティングデバイスは、ユーザーが事前に追加のコンピューティングデバイスとインタラクトしたことがあるという判断に基づいて、通信する追加のコンピューティングデバイスを選択してもよい。たとえば、ユーザーからの事前の許可があれば、ロボットコンピューティングデバイスは、ユーザーが事前にインタラクトしたことがある1つ以上のデバイスを特定し、その1つ以上のデバイスが自動アシスタントへのアクセスを提供するかどうかを判断してもよい。ロボットコンピューティングデバイスは、特定の追加デバイスが自動アシスタントへのアクセスを提供するものであると判断すると、自動アシスタントとの通信を初期化してもよい。たとえば、ロボットコンピューティングデバイスは、追加のコンピューティングデバイスを介してアクセス可能な自動アシスタントの種類を特定し、自動アシスタントの種類に基づいて、自動アシスタントと通信するための呼び出しフレーズを決定してもよい。たとえば、ロボットコンピューティングデバイスは、追加のコンピューティングデバイスの呼び出しフレーズを特定するために、アプリケーションプログラミングインターフェース(API)を使用してもよく、及び/またはインターネット検索を実行してもよい。
【0052】
呼び出しフレーズが特定されると、ロボットコンピューティングデバイスは、呼び出しフレーズと自動アシスタントに対する特定の要求を含む自然言語コンテンツを生成してもよい。呼び出しフレーズは、たとえば「アシスタント…」などであり、特定の要求は、たとえば「マギーのドローンはどんな外観をしていますか?」などである。特定の要求のコンテンツは、ロボットコンピューティングデバイスにとって不確かである可能性のあるユーザー入力の特徴に基づいてもよい。追加情報を取得するための基礎として特定される機能は、ユーザーからの要求の遂行を促進するためにロボットコンピューティングデバイスによって実行されるアクションの1つ以上のパラメータ及び/またはスロット値に基づいて、選択されてもよい。たとえば、特定のスロット値は、位置特定すべきオブジェクトの識別子に基づいてもよい。したがって、識別子を生成するために、ロボットコンピューティングデバイスは、位置特定すべきオブジェクトに関する追加情報を追加のコンピューティングデバイスに要求してもよい。次に、方法300は、操作308から操作310に進むことができる。
【0053】
操作310は、追加のコンピューティングデバイスから要求に関する情報を受け取ることを含んでもよい。追加情報は、ロボットコンピューティングデバイスが追加のコンピューティングデバイスと通信したのと同じモダリティを介して伝達されてもよい。代替的にまたは追加的に、追加のコンピューティングデバイスは、ロボットコンピューティングデバイスが追加のコンピューティングデバイスと通信したモダリティとは異なるモダリティを介してロボットコンピューティングデバイスと通信してもよい。たとえば、ロボットコンピューティングデバイスは、追加のコンピューティングデバイスへの音声出力を介して追加情報の要求を伝えてもよい。いくつかの実施形態では、ロボットコンピューティングデバイスからの音声出力は、ビームフォーミングを介して、及び/または音声出力及び/またはその他の出力を特定の追加のコンピューティングデバイスに選択的に向けることによって、追加のコンピューティングデバイスに提供されてもよい。いくつかの実施形態では、ロボットコンピューティングデバイスの音声出力は、ユーザーからの事前の許可を得て、追加のコンピューティングデバイスによって利用される話者識別(「ID」)プロセスに受け入れられる音声を具現化するよう、レンダリングされてもよい。音声は、ユーザーによって選択されてもよく、及び/または、ロボットコンピューティングデバイスと追加のコンピューティングデバイスとの間の事前のインタラクションに基づいてもよい。いくつかの実施形態では、ビームフォーミング出力の技術は、ロボットコンピューティングデバイスによって提供される出力を検出できる1つ以上のマイク及び/またはアンテナを使用して実行されてもよい。各マイク及び/またはアンテナで検出される信号の相対的な振幅及び/または位相に基づいて、各個別の出力インターフェース(たとえば、スピーカー、送信機など)を調整し、建設的干渉によって追加のコンピューティングデバイスへの送信を容易にしてもよい。いくつかの実施形態では、このビームフォーミング技術は、ロボットコンピューティングデバイスがタスク(すなわち、アクション)を別のコンピューティングデバイスに委任すること及び/または別のコンピューティングデバイスから追加情報を求めることを決定したことに応じて、利用されてもよい。
【0054】
ロボットコンピューティングデバイスからの音声出力に応答して、追加のコンピューティングデバイスは、その表示パネルに画像をレンダリングしてもよい。その後、ロボットコンピューティングデバイスは、表示パネルの画像をキャプチャし及び/または無線通信プロトコル(たとえば、Bluetooth、Wi-Fiなど)を介して画像をダウンロードしてもよい。その後、追加のコンピューティングデバイスによって提供される追加情報に基づいて、方法300は、操作310から進み、操作304に戻って、アクションを別のデバイスに委任するか、アクションを実行するか、及び/または別のデバイスからさらなる情報を要求するかを決定してもよい。
【0055】
図4は、コンピュータシステム410の一例のブロック図400である。コンピュータシステム410は、典型的に、バスサブシステム412を介して複数の周辺機器と通信する少なくとも1つのプロセッサ414を含む。これらの周辺機器は、たとえばメモリ425及びファイルストレージサブシステム426を含むストレージサブシステム424、ユーザーインターフェース出力デバイス420、ユーザーインターフェース入力デバイス422、及びネットワークインターフェースサブシステム416を含んでもよい。入力デバイスと出力デバイスにより、ユーザーはコンピュータシステム410とインタラクションできるようになる。ネットワークインターフェースサブシステム416は、外部ネットワークへのインターフェースを提供し、他のコンピュータシステム内の対応するインターフェースデバイスに結合される。
【0056】
ユーザーインターフェース入力デバイス422は、キーボード、ポインティングデバイス(たとえば、マウス、トラックボール、タッチパッド、グラフィックタブレットなどの)、スキャナー、ディスプレイに組み込まれたタッチスクリーン、音声認識システムなどの音声入力デバイス、マイク、及び/またはその他の種類の入力デバイスを含んでもよい。一般に「入力デバイス」という用語の使用は、コンピュータシステム410または通信ネットワークに情報を入力するためのあらゆる可能なタイプのデバイス及び方法を包含することを意図している。
【0057】
ユーザーインターフェース出力デバイス420は、ディスプレイサブシステム、プリンタ、ファックス機、または音声出力デバイスなどの非視覚ディスプレイを含んでもよい。ディスプレイサブシステムは、ブラウン管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、投影デバイス、または可視画像を作るためのその他のメカニズムを含んでもよい。またディスプレイサブシステムは、音声出力デバイスなどを介して非視覚的表示を行ってもよい。一般に「出力デバイス」という用語の使用は、コンピュータシステム410からユーザーまたは別のマシンまたはコンピュータシステムに情報を出力するためのあらゆる可能な種類のデバイス及び方法を包含することを意図している。
【0058】
ストレージサブシステム424は、本明細書で説明するモジュールの一部またはすべての機能を提供するプログラミング及びデータ構造を格納する。たとえば、ストレージサブシステム424は、方法300の選択された態様を実行するロジック、及び/または本明細書で説明するロボットコンピューティングデバイス104、システム200、及び/またはその他の任意のアプリケーション、デバイス、装置、及び/またはモジュールの1つ以上を実現するロジックを含んでもよい。
【0059】
これらのソフトウェアモジュールは、通常、プロセッサ414単独で実行されるか、プロセッサ414と他のプロセッサとの組み合わせで実行される。ストレージサブシステム424で使用されるメモリ425は、プログラム実行中に命令とデータを格納するためのメインランダムアクセスメモリ(RAM)430、及び固定命令が格納される読み取り専用メモリ(ROM)432など、複数のメモリを含んでもよい。ファイルストレージサブシステム426は、プログラムファイル及びデータファイルの永続的記憶を行うことができ、ハードディスクドライブ、フロッピーディスクドライブとそれに関連するリムーバブルメディア、CD-ROMドライブ、光学ドライブ、またはリムーバブルメディアカートリッジを含んでもよい。特定の実装の機能を実行するモジュールは、ストレージサブシステム424内のファイルストレージサブシステム426によって格納されてもよく、あるいはプロセッサ(複数可)414によってアクセス可能な他のマシンに格納されてもよい。
【0060】
バスサブシステム412は、コンピュータシステム410のさまざまなコンポーネントとサブシステムが意図したとおりに相互に通信できるようにするメカニズムを提供する。バスサブシステム412を単一のバスとして概略的に示しているが、バスサブシステムの代替的実施形態は、複数のバスを使用してもよい。
【0061】
コンピュータシステム410は、ワークステーション、サーバー、コンピューティングクラスター、ブレードサーバー、サーバーファーム、またはその他の任意のデータ処理システムまたはコンピューティングデバイスなど、さまざまな種類であり得る。コンピュータとネットワークの機能は常に変化するため、図4に示すコンピュータシステム410の説明は、いくつかの実施形態を説明するための一具体例にすぎないものである。コンピュータシステム410について、図4に示すコンピュータシステムよりも多くのコンポーネントまたは少ないコンポーネントを有する他の多くの構成が可能である。
【0062】
本明細書で説明するシステムがユーザー(あるいは本明細書で「参加者」としばしば呼ばれる)に関する個人情報を収集する場合、または個人情報を利用する可能性がある場合、プログラムまたは機能がユーザー情報(たとえば、ユーザーのソーシャルネットワーク、ソーシャルアクションまたはアクティビティ、職業、ユーザーの好み、またはユーザーの現在の地理的位置に関する情報など)を収集するかどうかをコントロールする機会がユーザーに提供されてもよく、あるいは、ユーザーにとってより関連性の高いコンテンツをコンテンツサーバーから受信するかどうか及び/またはどのように受信するかをコントロールする機会がユーザーに提供されてもよい。さらに、特定のデータを、保存または使用の前に、1つまたは複数の方法で処理して、個人を特定できる情報を削除してもよい。たとえば、ユーザーのアイデンティティを処理して、ユーザーに対し個人情報を特定できないようにしてもよく、あるいは、地理的位置情報(たとえば、市、郵便番号、または州レベルなどについて)を取得する場合、ユーザーの地理的位置を一般化して、ユーザーの特定の地理的位置を特定できないようにしてもよい。したがって、ユーザーは、ユーザーに関する情報がどのように収集され、使用されるかをコントロールすることができる。
【0063】
本明細書においていくつかの実施形態を説明し図示してきたが、本明細書で説明した機能を実行するために、及び/または本明細書で説明した結果及び/または1つ以上の利点を得るために、他のさまざまな手段及び/または構造を利用することができ、そのような変形及び/または変更のそれぞれは、本明細書で説明した実施形態の範囲内にあるとみなされるものである。より一般的には、本明細書で説明するすべてのパラメータ、寸法、材料、及び構成は例示を目的としており、実際のパラメータ、寸法、材料、及び/または構成は、本開示が利用される特定の用途(複数化)によって異なってくる。当業者は、単なる日常実験によって、本明細書に記載される特定の実施形態に対する多くの等価物を認識することになり、あるいは確認することができる。したがって、当然のことながら、上記実施形態は例示のみを目的として提示されており、添付の特許請求の範囲及びその等価物の範囲内で、具体的に説明及び請求されている以外の実施形態を実施することができる。本開示の実施形態は、本明細書に記載される個々の特徴、システム、物品、材料、キット、及び/または方法に関するものである。さらに、そのような特徴、システム、物品、材料、キット、及び/または方法が相互に矛盾しない限り、2つ以上のそのような特徴、システム、物品、材料、キット、及び/または方法の任意の組み合わせは、本開示の範囲に含まれる。
【0064】
いくつかの実施形態では、1つ以上のプロセッサによって実行される方法が提供され、方法は、ユーザー及びロボットコンピューティングデバイスの環境内の特定のオブジェクトの位置を特定するようにロボットコンピューティングデバイスに要求するユーザー入力を、ロボットコンピューティングデバイスにおいて受信することを含む。方法はさらに、ユーザー入力に応答して、ロボットコンピューティングデバイスが環境内の特定のオブジェクトの位置をしきい値の信頼度で特定できるかどうかを判断することを含んでもよい。方法はさらに、ロボットコンピューティングデバイスがしきい値の信頼度で環境内の特定のオブジェクトの位置を特定できない場合、ロボットコンピューティングデバイスがしきい値の信頼度で位置を特定していないことに基づいて、ロボットコンピューティングデバイスを環境内で、追加のコンピューティングデバイスにより近い別の位置に向かって移動させることを含んでもよい。方法はさらに、ロボットコンピューティングデバイスによってロボット入力を生成させ、ロボットコンピューティングデバイスによってロボット入力を追加のコンピューティングデバイスへの入力として提供させることを含んでもよく、ロボット入力は、特定のオブジェクトに関連付けられる情報を追加のコンピューティングデバイスに要求するコンテンツを含む。方法はさらに、ロボットコンピューティングデバイスにより、ロボット入力に応答した他のコンピューティングデバイスから、特定のオブジェクトに関連付けられる特定の情報を特徴付ける応答出力を受信することを含んでもよい。方法はさらに、特定の情報に基づいて、ロボットコンピューティングデバイスに、ユーザーのため、環境内の特定のオブジェクトの位置を特定させることを含んでもよい。
【0065】
本明細書に開示する技術のこれらの実施態様及び他の実施形態は、以下の特徴の1つ以上を含んでもよい。
【0066】
いくつかの実施形態では、ロボットコンピューティングデバイスに特定のオブジェクトの位置を特定させることは、特定のオブジェクトの位置の特定を促進するために、ロボットコンピューティングデバイスを環境内の別の位置に移動させることを含んでもよい。
【0067】
いくつかの実施形態では、追加のコンピューティングデバイスから応答出力を受信することは、追加のコンピューティングデバイスの表示パネルの画像をキャプチャすることを含んでもよく、画像がキャプチャされるとき、表示パネルはロボットコンピューティングデバイスに対して特定の情報をレンダリングしている。
【0068】
いくつかの実施形態では、ロボットコンピューティングデバイスが環境内の特定のオブジェクトの位置をしきい値の信頼度で特定できるかどうかを判断することは、ユーザー及びロボットコンピューティングデバイスが存在する環境のさまざまな特徴の位置を特徴付けるホームグラフデータを処理することと、環境のさまざまな特徴のうち特定の特徴が特定のオブジェクトに対応する確率を特徴付ける信頼性メトリックを生成することと、を含む。信頼性メトリックは、しきい値の信頼度と比較される。
【0069】
いくつかの実施形態では、方法はさらに、ロボットコンピューティングデバイスが、しきい値の信頼度で、環境内の特定のオブジェクトの位置を特定できる場合、ロボットコンピューティングデバイスに、環境内の特定のオブジェクトの位置を特定させることを含んでもよい。
【0070】
いくつかの実施形態では、1つ以上のプロセッサによって実行される方法が提供され、方法は、ロボットコンピューティングデバイスに操作の実行を支援してもらう要求を具現化するユーザー入力を、ロボットコンピューティングデバイスにおいて受信することを含む。ロボットコンピューティングデバイスは、ユーザー及び1つ以上の他のコンピューティングデバイスとともに環境に存在している。方法はさらに、ユーザー入力に応答して、1つ以上の他のコンピューティングデバイスのうちの追加のコンピューティングデバイスが、ロボットコンピューティングデバイスの現在の状態と比較して、操作の実行を初期化するのにより適した状態を示しているかどうかを判断することを含んでもよい。方法はさらに、1つ以上の他のコンピューティングデバイスのうちの追加のコンピューティングデバイスが、操作の実行を初期化するのにより適した状態を示していると判断された場合、ロボットコンピューティングデバイスによってロボット入力を、ロボットコンピューティングデバイスによって生成させると共に追加のコンピューティングデバイスへの入力として提供させることを含んでもよい。ロボット入力は、追加のコンピューティングデバイスに操作の実行を初期化するよう要求するコンテンツを含む。ロボット入力を提供することは、追加のコンピューティングデバイスに、ロボット入力に基づいて操作の実行を初期化させる。
【0071】
本明細書に開示する技術のこれらの実施態様及び他の実施形態は、以下の特徴の1つ以上を含んでもよい。
【0072】
いくつかの実施形態では、他のコンピューティングデバイス(複数可)のうちの追加のコンピューティングデバイスが、(a)追加のコンピューティングデバイスが商用電源に接続されていること、及び(b)ロボットコンピューティングデバイスの現在の状態がバッテリー駆動状態であることに基づいて、操作の実行を初期化するのにより適した状態を示していると決定される。
【0073】
いくつかの実施形態では、他のコンピューティングデバイス(複数可)のうちの追加のコンピューティングデバイスは、現在の状態のロボットコンピューティングデバイスによって示される信号強度よりも大きい信号強度を追加のコンピューティングデバイスが示していることに基づいて、操作の実行を初期化するのにより適した状態を示していると判断される。
【0074】
いくつかの実施形態では、他のコンピューティングデバイス(複数可)のうちの追加のコンピューティングデバイスは、現在の状態のロボットコンピューティングデバイスによって示される処理帯域幅よりも大きい処理帯域幅を追加のコンピューティングデバイスが示していることに基づいて、操作の実行を初期化するのにより適した状態を示していると判断される。
【0075】
いくつかの実施形態では、追加のコンピューティングデバイスが操作の実行を初期化するのにより適した状態を示していないと判断される場合、方法は、ロボットコンピューティングデバイスに操作の実行を初期化させることをさらに含む。
【0076】
いくつかの実施形態では、ロボット入力を、ロボットコンピューティングデバイスによって生成させると共に追加のコンピューティングデバイスへの入力として提供させることは、ロボットコンピューティングデバイスに、ロボットコンピューティングデバイスの音声インターフェースを介して音声出力をレンダリングさせることを含む。
【0077】
いくつかの実施形態では、ロボット入力をロボットコンピューティングデバイスによって生成させると共に追加のコンピューティングデバイスへの入力として提供させることは、追加のコンピューティングデバイスの位置を決定することと、ロボットコンピューティングデバイスに音声出力を追加のコンピューティングデバイスの位置に向けてレンダリングさせることと、を含む。これらの実施形態のいくつかの態様では、ロボットコンピューティングデバイスに、ロボットコンピューティングデバイスの音声インターフェースを介して音声出力をレンダリングさせることは、ロボット及び/またはロボットの1つ以上のコンポーネントの位置を変えて、音声出力を発するロボットの1つ以上のスピーカーが追加のコンピューティングデバイスの位置の方向を向くようにすることを含む。場合により、ロボットコンピューティングデバイスに、ロボットコンピューティングデバイスの音声インターフェースを介して音声出力をレンダリングさせることは、人間の可聴周波数範囲を超える周波数で音声出力をレンダリングすることを含む。
【0078】
いくつかの実施形態では、1つ以上のプロセッサによって実行される方法が提供され、方法は、ロボットコンピューティングデバイスに操作の実行を支援してもらう要求を具現化するユーザー入力を、ロボットコンピューティングデバイスにおいて受信することを含む。ロボットコンピューティングデバイスは、ユーザー及び1つ以上の他のコンピューティングデバイスとともに環境に存在する。方法はさらに、ユーザー入力に応答して、1つ以上の他のコンピューティングデバイスのうちの追加のコンピューティングデバイスがロボットコンピューティングデバイスよりも効果的に操作を実行できるかどうかを、追加のコンピューティングデバイスの位置により、判断することを含んでもよい。方法はさらに、ロボットコンピューティングデバイスが、追加のコンピューティングデバイスの位置により、追加のコンピューティングデバイスが操作をより効果的に実行できると判断した場合、追加のコンピューティングデバイスに操作を実行させることを促進するため、ロボットコンピューティングデバイスから追加のコンピューティングデバイスにロボット入力を提供することを含んでもよい。ロボット入力は、追加のコンピューティングデバイスに、操作の実行を初期化させ、ユーザー入力に具現化された要求を遂行させる。
【0079】
本明細書に開示する技術のこれらの実施態様及び他の実施形態は、以下の特徴の1つ以上を含んでもよい。
【0080】
いくつかの実施形態では、追加のコンピューティングデバイスの位置により、追加のコンピューティングデバイスがロボットコンピューティングデバイスよりも効果的に操作を実行できるかどうかを判断することは、追加のコンピューティングデバイスの位置がロボットコンピューティングデバイスよりも環境の特定の領域に近いと判断することを含む。すなわち、追加のコンピューティングデバイスの位置がロボットコンピューティングデバイスのロボット位置よりも特定の領域に近いと判断する。
【0081】
いくつかの実施形態では、追加のコンピューティングデバイスの位置により、追加のコンピューティングデバイスがロボットコンピューティングデバイスよりも効果的に操作を実行できるかどうかを判断することは、追加のコンピューティングデバイスの位置がロボットコンピューティングデバイスよりも環境内の別のユーザーに近いと判断することを含む。すなわち、追加のコンピューティングデバイスの位置がロボットコンピューティングデバイスのロボット位置よりも別のユーザーに近いこと(つまり、ロボット位置が追加のコンピューティングデバイスの位置よりも別のユーザーから遠いこと)を判断する。これらの実施形態では、要求を遂行することは、別のユーザーとコミュニケーションを取ることを含む。
【0082】
いくつかの実施形態では、追加のコンピューティングデバイスに操作を実行させることを促進するため、ロボットコンピューティングデバイスから追加のコンピューティングデバイスにロボット入力を提供することは、追加のコンピューティングデバイスに操作を実行するように指示する自然言語コンテンツを具現化する可聴出力を、ロボットコンピューティングデバイスにおいてレンダリングすることを含む。これらの実施形態のいくつかの態様では、追加のコンピューティングデバイスが自動アシスタントへのアクセスを提供し、自然言語コンテンツは、自動アシスタントを呼び出す呼び出しフレーズを含む。呼び出しフレーズの実施形態のいくつかにおいて、方法はさらに、ロボットコンピューティングデバイスによって、追加のコンピューティングデバイスのある特定のタイプを特定することと、もしあれば特定のタイプに対する呼び出しフレーズを特定することに応答して、ロボットコンピューティングデバイスにより、自然言語コンテンツに呼び出しフレーズを含めることと、を含む。追加のコンピューティングデバイスの特定のタイプを特定することは、場合により、ロボットコンピューティングデバイスのカメラによってキャプチャされた画像データを処理することと、画像データを処理することに基づいて特定のタイプを特定することをと、を含んでもよい。これらの実施形態のいくつかの追加または代替の態様では、操作は、別のユーザーにメッセージを送ることを含み、自然言語コンテンツは、別のユーザーに対して追加のコンピューティングデバイスにより送られるメッセージを特徴付けるものである。
図1A
図1B
図1C
図1D
図1E
図2
図3
図4