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

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

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

特表2024-524808適応型ユーザ対話を用いたロボットコンピューティングデバイス
<>
  • 特表-適応型ユーザ対話を用いたロボットコンピューティングデバイス 図1A
  • 特表-適応型ユーザ対話を用いたロボットコンピューティングデバイス 図1B
  • 特表-適応型ユーザ対話を用いたロボットコンピューティングデバイス 図2A
  • 特表-適応型ユーザ対話を用いたロボットコンピューティングデバイス 図2B
  • 特表-適応型ユーザ対話を用いたロボットコンピューティングデバイス 図2C
  • 特表-適応型ユーザ対話を用いたロボットコンピューティングデバイス 図3
  • 特表-適応型ユーザ対話を用いたロボットコンピューティングデバイス 図4
  • 特表-適応型ユーザ対話を用いたロボットコンピューティングデバイス 図5
  • 特表-適応型ユーザ対話を用いたロボットコンピューティングデバイス 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-07-09
(54)【発明の名称】適応型ユーザ対話を用いたロボットコンピューティングデバイス
(51)【国際特許分類】
   G05D 1/247 20240101AFI20240702BHJP
   G10L 15/10 20060101ALI20240702BHJP
   G10L 15/00 20130101ALI20240702BHJP
   G05D 1/246 20240101ALI20240702BHJP
   G06F 3/16 20060101ALI20240702BHJP
   G05D 1/2285 20240101ALN20240702BHJP
【FI】
G05D1/247
G10L15/10 200W
G10L15/00 200H
G05D1/246
G06F3/16 650
G05D1/2285
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023558843
(86)(22)【出願日】2021-12-13
(85)【翻訳文提出日】2023-11-08
(86)【国際出願番号】 US2021063125
(87)【国際公開番号】W WO2023091160
(87)【国際公開日】2023-05-25
(31)【優先権主張番号】63/281,375
(32)【優先日】2021-11-19
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/533,873
(32)【優先日】2021-11-23
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ヴィクター・カルブネ
(72)【発明者】
【氏名】マシュー・シャリフィ
【テーマコード(参考)】
5H301
【Fターム(参考)】
5H301AA02
5H301AA10
5H301CC03
5H301CC06
5H301CC10
5H301DD06
5H301GG03
5H301GG09
(57)【要約】
本明細書に記載される実装形態は、ユーザのいくつかの選好に従って、共通空間においてユーザ間で通信することなど、いくつかの動作を実施することができるロボットコンピューティングデバイスに関する。特定のユーザと対話するとき、ロボットコンピューティングデバイスは、特定のユーザの明確なまたは暗示される選好に基づいて、その特定のユーザに対する選好されるロケーションにおいて動作を実施することができる。たとえば、いくつかのタイプの動作が、部屋内の第1のロケーションにおいて実施され得、他のタイプの動作が、部屋内の第2のロケーションにおいて実施され得る。動作が、ユーザに追従することまたはユーザを案内することに関与するとき、ロボットコンピューティングデバイスを駆動するためのパラメータは、ユーザの選好、および/またはロボットコンピューティングデバイスがユーザと対話しているコンテキスト(たとえば、コンテキストがある量の緊急性を示すか否か)に基づいて選択され得る。
【特許請求の範囲】
【請求項1】
1つまたは複数のプロセッサによって実装される方法であって、前記方法は、
モバイルロボットコンピューティングデバイスによって、および前記モバイルロボットコンピューティングデバイスのセンサー観測に少なくとも部分的に基づいて生成されたマップに基づいて、前記モバイルロボットコンピューティングデバイスが、構造物の特定のエリア内に現在位置すると決定するステップと、
前記モバイルロボットコンピューティングデバイスが、前記特定のエリア内に位置する間、
スマートデバイスの第1のサブセットに、各々、1つまたは複数の第1の出力を放出させるステップであって、前記1つまたは複数の第1の出力が可聴および/または視覚のものであり、前記1つまたは複数の第1の出力は、スマートデバイスの前記第1のサブセットが、各々、ホームグラフ中の第1のセマンティックラベルを割り当てられることに応答して、第1の時間ウィンドウ中に、および/または1つまたは複数の第1の特性を伴って、放出させられる、ステップと、
前記スマートデバイスの第2のサブセットに、各々、1つまたは複数の第2の出力を放出させるステップであって、前記1つまたは複数の第2の出力が可聴および/または視覚のものであり、前記1つまたは複数の第2の出力は、スマートデバイスの前記第2のサブセットが、各々、前記ホームグラフ中の第2のセマンティックラベルを割り当てられることに応答して、第2の時間ウィンドウ中に、および/または1つまたは複数の第2の特性を伴って、放出させられる、ステップと、
前記1つまたは複数の第1の出力と前記1つまたは複数の第2の出力との前記放出中にセンサーデータを取得するステップであって、前記センサーデータが、前記モバイルロボットコンピューティングデバイスの1つまたは複数のセンサーによって生成される、ステップと、
前記センサーデータの解析に基づいて、スマートデバイスの前記第1のサブセットが、前記特定のエリアにおいてロボットとコロケートされたと決定するステップであって、スマートデバイスの前記第1のサブセットが、前記特定のエリアにおいて前記ロボットとコロケートされたと決定するステップは、
前記第1の時間ウィンドウ中のものであり、および/または前記1つまたは複数の第1の特性にマッチする、検出された出力を前記解析が示すこと、ならびに/あるいは
前記第1の時間ウィンドウ中のものであり、および/または前記1つまたは複数の第1の特性にマッチする、前記検出された出力の大きさ
に基づく、ステップと、
スマートデバイスの前記第1のサブセットが、所与の部屋において前記ロボットとコロケートされたとの決定に応答して、
推論されたセマンティックラベルを前記特定のエリアに割り当てるステップであって、前記推論されたセマンティックラベルが、前記ホームグラフ中のスマートデバイスの前記第1のサブセットに割り当てられた前記第1のセマンティックラベルと同じであるか、またはそれから導出される、ステップと
を含む、方法。
【請求項2】
前記1つまたは複数の第1の出力が前記第1の時間ウィンドウ中に放出され、前記1つまたは複数の第2の出力が前記第2の時間ウィンドウ中に放出され、スマートデバイスの前記第1のサブセットが、前記特定のエリアにおいて前記ロボットとコロケートされたと決定するステップは、
前記検出された出力が、前記第1の時間ウィンドウ中に発生すると決定するステップと、前記第2の時間ウィンドウ中に発生する、検出された出力がないと決定するステップと
を含む、請求項1に記載の方法。
【請求項3】
前記1つまたは複数の第1の出力が前記第1の時間ウィンドウ中に放出され、前記1つまたは複数の第2の出力が前記第2の時間ウィンドウ中に放出され、スマートデバイスの前記第1のサブセットが、前記特定のエリアにおいて前記ロボットとコロケートされたと決定するステップは、
前記第1の時間ウィンドウ中に発生する前記検出された出力の前記大きさが、前記第2の時間ウィンドウ中に発生する追加の検出された出力の追加の大きさよりも大きいと決定するステップ
を含む、請求項1に記載の方法。
【請求項4】
前記1つまたは複数の第1の出力が前記第1の特性を有し、前記1つまたは複数の第2の出力が前記第2の特性を有し、スマートデバイスの前記第1のサブセットが、前記特定のエリアにおいて前記ロボットとコロケートされたと決定するステップは、
前記検出された出力が前記第1の特性にマッチすると決定するステップと、前記第2の特性にマッチする検出された出力がないと決定するステップと
を含む、請求項1または請求項2に記載の方法。
【請求項5】
前記1つまたは複数の第1の特性が第1の周波数を備え、前記1つまたは複数の第2の特性が第2の周波数を備える、請求項4に記載の方法。
【請求項6】
前記第1の出力が視覚出力を備え、前記第1の周波数が第1の視覚周波数であり、
前記第2の出力が視覚出力を備え、前記第2の周波数が第2の視覚周波数である、
請求項5に記載の方法。
【請求項7】
前記1つまたは複数の第1の出力が前記第1の特性を有し、前記1つまたは複数の第2の出力が前記第2の特性を有し、スマートデバイスの前記第1のサブセットが、前記特定のエリアにおいて前記ロボットとコロケートされたと決定するステップは、
前記検出された出力における前記第1の特性の大きさが、前記検出された出力における前記第2の特性の追加の大きさよりも大きいと決定するステップ
を含む、請求項1または請求項3に記載の方法。
【請求項8】
前記1つまたは複数の第1の特性が第1の周波数を備え、前記1つまたは複数の第2の特性が第2の周波数を備える、請求項7に記載の方法。
【請求項9】
前記第1の出力が可聴出力を備え、前記第1の周波数が、人間の聴覚の前記範囲の外側にある第1の可聴周波数であり、
前記第2の出力が可聴出力を備え、前記第2の周波数が、人間の聴覚の前記範囲の外側にある第2の可聴周波数である、
請求項8に記載の方法。
【請求項10】
スマートデバイスの前記第1のサブセットが、スタンドアロン自動アシスタントデバイスを備え、前記1つまたは複数の第1の出力が、前記スタンドアロン自動アシスタントデバイスのハードウェアスピーカーを介した第1の可聴出力を備える、請求項1から9のいずれか一項に記載の方法。
【請求項11】
スマートデバイスの前記第1のサブセットが、スタンドアロン自動アシスタントデバイスを備え、前記1つまたは複数の第1の出力が、前記自動アシスタントデバイスのハードウェアディスプレイを介した、または前記自動アシスタントデバイスの発光ダイオードを介した第1の視覚出力を備える、請求項1から10のいずれか一項に記載の方法。
【請求項12】
スマートデバイスの前記第1のサブセットが、スマートライト、スマートテレビジョン、またはスマートサーモスタットを備える、請求項1から11のいずれか一項に記載の方法。
【請求項13】
前記ホームグラフ中の前記第1のセマンティックラベルが、第1の明示的ユーザ入力に基づいてスマートデバイスの前記第1のサブセットに前に割り当てられた、構造物内の第1の部屋の、第1の記述子であり、
前記ホームグラフ中の前記第2のセマンティックラベルが、第2の明示的ユーザ入力に基づいてスマートデバイスの前記第2のサブセットに前に割り当てられた、構造物内の第2の部屋の、第2の記述子である、
請求項1から12のいずれか一項に記載の方法。
【請求項14】
前記推論されたセマンティックラベルを前記特定のエリアに割り当てるステップが、
前記推論されたセマンティックラベルを、前記モバイルロボットデバイスによる使用のために前記マップ中の前記特定のエリアに自動的に割り当てるステップ
を含む、請求項1から13のいずれか一項に記載の方法。
【請求項15】
前記推論されたセマンティックラベルを、前記モバイルロボットデバイスによる使用のために前記マップ中の前記特定のエリアに自動的に割り当てた後に、
前記モバイルロボットデバイスのナビゲーションを制御する際に、前記推論されたセマンティックラベルを使用するステップ
をさらに含む、請求項14に記載の方法。
【請求項16】
前記モバイルロボットデバイスのナビゲーションを制御する際に、前記推論されたセマンティックラベルを使用するステップは、
前記モバイルロボットデバイスの1つまたは複数のマイクロフォンにおいて検出された口頭の入力を処理することに基づいて、前記口頭の入力の1つまたは複数の用語が、前記推論されたセマンティックラベルにマッチすると決定するステップと、
前記1つまたは複数の用語が、前記推論されたセマンティックラベルにマッチすると決定したことに基づいて、および前記推論されたセマンティックラベルが、前記マップ中の前記特定のエリアに割り当てられることに基づいて、前記ロボットに、前記特定のエリアまでナビゲートさせるステップと
を含む、請求項15に記載の方法。
【請求項17】
前記推論されたセマンティックラベルを前記特定のエリアに割り当てるステップは、
グラフィカルユーザインターフェースにおいてユーザに、前記推論されたセマンティックラベルが、前記モバイルロボットデバイスによる使用のために前記マップ中の前記特定のエリアに割り当てられることを提案するステップと、
前記提案に応答する、前記ユーザの肯定的ユーザインターフェース入力の受信に応答して、前記推論されたセマンティックラベルを、前記モバイルロボットデバイスによる使用のために前記マップ中の前記特定のエリアに割り当てるステップと
を含む、請求項1から13のいずれか一項に記載の方法。
【請求項18】
1つまたは複数のプロセッサによって実装される方法であって、前記方法は、
ロボットコンピューティングデバイスによって、ユーザが、前記ユーザが特定のコンピューティングデバイスのロケーションに確信がないことを示す口頭の発話を発したと決定するステップであって、
前記口頭の発話は、前記ロボットコンピューティングデバイスが前記特定のコンピューティングデバイスの前記ロケーションを識別するための明確な要求を具現しない、ステップと、
前記ロボットコンピューティングデバイスによって、前記ロボットコンピューティングデバイスの出力インターフェースに、前記ロボットコンピューティングデバイスが前記特定のコンピューティングデバイスの前記ロケーションを決定することが可能であるという指示を前記ユーザに提供させるステップと、
前記ロボットコンピューティングデバイスによって、前記ユーザが、前記ロボットコンピューティングデバイスが前記特定のコンピューティングデバイスの前記ロケーションのほうへ前記ユーザを導くことを可能にする意思があるかどうかを決定することを促進するために、前記ロボットコンピューティングデバイスの1つまたは複数の入力インターフェースからの入力データを処理するステップと、
前記ロボットコンピューティングデバイスは、前記ユーザが、前記ロボットコンピューティングデバイスが前記特定のコンピューティングデバイスの前記ロケーションのほうへ前記ユーザを導くことを可能にする意思があると決定したとき、
前記ロボットコンピューティングデバイスに、前記ロボットコンピューティングデバイスに対する前記特定のコンピューティングデバイスの相対ロケーションを推定することを促進するために、前記特定のコンピューティングデバイスと通信させるステップと、
前記ロボットコンピューティングデバイスに、前記特定のコンピューティングデバイスの前記相対ロケーションのほうへ移動させるステップと、
を含む、方法。
【請求項19】
前記ロボットコンピューティングデバイスに、前記特定のコンピューティングデバイスの前記相対ロケーションのほうへ移動させるステップは、
前記ロボットコンピューティングデバイスに、前記特定のコンピューティングデバイスを介してアクセス可能であるアプリケーションのステータスに基づいて選択される速度において、前記特定のコンピューティングデバイスの前記相対ロケーションのほうへ移動させるステップ
を含む、請求項18に記載の方法。
【請求項20】
前記アプリケーションが、ボイス呼アプリケーションを含み、前記アプリケーションの前記ステータスは、前記ユーザが特定の連絡先からの呼を逃したことを示す、請求項19に記載の方法。
【請求項21】
前記ロボットコンピューティングデバイスに、前記ロボットコンピューティングデバイスに対する前記特定のコンピューティングデバイスの前記相対ロケーションを推定することを促進するために、前記特定のコンピューティングデバイスと通信させるステップが、
前記ロボットコンピューティングデバイスと前記特定のコンピューティングデバイスとの間の通信に基づく、信号メトリックを決定するステップであって、
前記信号メトリックが、前記ロボットコンピューティングデバイスからの前記特定のコンピューティングデバイスの相対距離を示す、ステップ
を含む、請求項20に記載の方法。
【請求項22】
前記信号メトリックは、前記特定のコンピューティングデバイスによってレンダリングされる、オーディオ出力のオーディオ振幅を含む、請求項21に記載の方法。
【請求項23】
前記ユーザが、前記ロボットコンピューティングデバイスが前記特定のコンピューティングデバイスの前記ロケーションのほうへ前記ユーザを導くことを可能にする意思があるかどうかを決定することを促進するために、前記入力データを処理するステップが、
前記ロボットコンピューティングデバイスのほうへの前記ユーザの動きを示す画像データを処理するステップ
を含む、請求項18から22のいずれか一項に記載の方法。
【請求項24】
前記入力データは、前記ロボットコンピューティングデバイスが前記特定のコンピューティングデバイスの前記相対ロケーションを決定するための、前記ユーザからの明確な要請を特徴づけるオーディオデータがない、請求項18から23のいずれか一項に記載の方法。
【請求項25】
1つまたは複数のプロセッサによって実装される方法であって、前記方法は、
ロボットコンピューティングデバイスにおいて、前記ロボットコンピューティングデバイスが複数の異なる部屋を含む空間に位置する特定の部屋において動作を実施することをユーザが要求したと決定するステップと、
前記ロボットコンピューティングデバイスによって、前記複数の異なる部屋のうちの1つまたは複数の部屋における1つまたは複数のデバイスに、前記ロボットコンピューティングデバイスによって検出可能な1つまたは複数のそれぞれの出力を提供させるステップと、
前記1つまたは複数のそれぞれの出力に基づいて、前記ロボットコンピューティングデバイスの現在のロケーションが前記特定の部屋に対応するかどうかを決定するステップと、
前記ロボットコンピューティングデバイスの前記現在のロケーションが前記特定の部屋に対応しないとき、
前記ロボットコンピューティングデバイスの前記現在のロケーションが前記特定の部屋に対応しないことに基づいて、前記ロボットコンピューティングデバイスに、前記特定の部屋に移らせるステップと、
前記ロボットコンピューティングデバイスに、前記ロボットコンピューティングデバイスが前記特定の部屋に位置するとき、前記動作を実施させるステップと
を含む、方法。
【請求項26】
前記ロボットコンピューティングデバイスに、前記特定の部屋に移らせるステップは、
前記動作に対応する特定のタイプの動作を実施するために、前記特定の部屋の特定の部分が、前記ユーザによって、選好されると決定するステップと、
前記ロボットコンピューティングデバイスに、前記特定の部屋の前記特定の部分に移らせるステップと
を含む、請求項25に記載の方法。
【請求項27】
前記ロボットコンピューティングデバイスに、前記特定の部屋に移らせるステップは、
前記動作に対応しない特定のタイプの動作を実施するために、前記特定の部屋の特定の部分が、前記ユーザによって、選好されると決定するステップと、
前記ロボットコンピューティングデバイスに、前記特定の部屋の異なる部分に移らせるステップと
を含む、請求項25に記載の方法。
【請求項28】
前記ロボットコンピューティングデバイスの前記現在のロケーションが前記特定の部屋に対応するとき、
前記ロボットコンピューティングデバイスに、前記ロボットコンピューティングデバイスが位置する現在の部屋内で、前記動作を実施するための選好される部分である前記現在の部屋の部分を識別させるステップ
をさらに含む、請求項25に記載の方法。
【請求項29】
前記ロボットコンピューティングデバイスに、前記動作を実施するための前記部屋の前記選好される部分である前記現在の部屋の前記部分を識別させるステップは、
前記ユーザが前記動作を要求することに基づいて、前記ユーザが、前記ロボットコンピューティングデバイスに、前記部屋の前記選好される部分において、前記動作に対応する特定のタイプの動作を実施することを前に要求したと決定するステップ
を含む、請求項25から28のいずれか一項に記載の方法。
【請求項30】
前記ロボットコンピューティングデバイスの前記現在のロケーションが前記特定の部屋に対応しないとき、
前記ロボットコンピューティングデバイスが前記動作を実施するより前に、前記ロボットコンピューティングデバイスに、前記ロボットコンピューティングデバイスの今のロケーションが前記動作を実施するために承認されることを確認することを前記ユーザに要請する出力をレンダリングさせるステップ
をさらに含む、請求項25から29のいずれか一項に記載の方法。
【請求項31】
前記ロボットコンピューティングデバイスの前記現在のロケーションが前記特定の部屋に対応するとき、
前記ロボットコンピューティングデバイスに、前記ロボットコンピューティングデバイスが位置する現在の部屋内で、前記ユーザが前記特定の部屋の別の部分に移っている間に前記動作を実施するとき、前記ユーザに追従するための相対距離を識別させるステップ
をさらに含む、請求項25から30のいずれか一項に記載の方法。
【請求項32】
1つまたは複数のプロセッサによって実装される方法であって、前記方法は、
ロボットコンピューティングデバイスによって、前記ロボットコンピューティングデバイスおよび第2のユーザとともにある空間に位置する第1のユーザからの口頭の発話を受信するステップと、
前記口頭の発話に基づいて、前記第1のユーザが前記ロボットコンピューティングデバイスを前記第2のユーザと通信するように導いたと決定するステップであって、
前記第2のユーザが、前記第1のユーザの第1のユーザロケーションとは異なる第2のユーザロケーションに位置する、ステップと、
前記口頭の発話に応答して、前記ロボットコンピューティングデバイスに、前記第2のユーザロケーションに移動させ、前記第2のユーザのための出力をレンダリングさせるステップであって、
前記出力が、前記第1のユーザからの前記口頭の発話に基づく自然言語質問を具現する、ステップと、
前記ロボットコンピューティングデバイスによって、前記第2のユーザからの応答する入力を受信するステップであって、
前記応答する入力が、前記ロボットコンピューティングデバイスからの前記出力において具現された前記自然言語質問に応答する自然言語コンテンツを具現する、ステップと、
前記ロボットコンピューティングデバイスが前記第2のユーザのための前記出力を提供した後に、前記ロボットコンピューティングデバイスに、前記第1のユーザロケーションに移動させ、前記第1のユーザのための別の出力をレンダリングさせるステップであって、
前記別の出力が、前記第2のユーザからの前記応答する入力を特徴づけ、前記第2のユーザからの前記応答する入力において具現された前記自然言語コンテンツとは異なる他の自然言語コンテンツを具現する、ステップと
を含む、方法。
【請求項33】
前記ロボットコンピューティングデバイスに、前記第2のユーザロケーションに移動させるステップは、
前記第2のユーザに関連付けられたロケーション選好を決定するステップであって、
前記ロケーション選好が、前記ロボットコンピューティングデバイスが前記第2のユーザと通信するときの前記ロボットコンピューティングデバイスのための選好されるロケーションを示す、ステップと、
前記ロボットコンピューティングデバイスに、前記ロケーション選好によって示された前記選好されるロケーションに対応する特定のロケーションに移動させるステップと
を含む、請求項32に記載の方法。
【請求項34】
前記選好されるロケーションが、前記第2のユーザからの前記ロボットコンピューティングデバイスの選好される距離を示し、前記特定のロケーションが、前記第2のユーザの前記第2のロケーションから、少なくとも、前記選好される距離離れている、請求項33に記載の方法。
【請求項35】
前記ロボットコンピューティングデバイスに、前記第1のユーザロケーションに移動させるステップは、
前記第1のユーザに関連付けられたロケーション選好を決定するステップであって、
前記ロケーション選好が、前記ロボットコンピューティングデバイスが前記第1のユーザのための特定のタイプの出力をレンダリングするときの前記ロボットコンピューティングデバイスのための選好されるロケーションを示す、ステップと、
前記ロボットコンピューティングデバイスに、前記ロケーション選好によって示された前記選好されるロケーションに対応する特定のロケーションに移動させるステップと
を含む、請求項32から34のいずれか一項に記載の方法。
【請求項36】
前記特定のタイプの出力が、前記ロボットコンピューティングデバイスのオーディオ出力インターフェースを介して提供される可聴出力、または前記ロボットコンピューティングデバイスのディスプレイインターフェースを介して提供される視覚出力を含む、請求項32から35のいずれか一項に記載の方法。
【請求項37】
前記特定のタイプの出力が、別のユーザからのメッセージを特徴づけるコンテンツを伴う前記可聴出力である、請求項36に記載の方法。
【請求項38】
コンピューティングシステムの1つまたは複数のプロセッサによって実行されたとき、前記コンピューティングシステムに、請求項1から37のいずれか一項に記載の方法を実施させる命令を備える、コンピュータプログラム。
【請求項39】
請求項1から37のいずれか一項に記載の方法を実施するように構成された1つまたは複数のコンピューティングデバイスを備えるシステム。
【請求項40】
前記1つまたは複数のコンピューティングデバイスが、モバイルロボットコンピューティングデバイスを備える、請求項39に記載のシステム。
【請求項41】
請求項1から37のいずれか一項に記載の方法を実施するために、コンピューティングシステムの1つまたは複数のプロセッサによって実行可能な命令を記憶する、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
適応型ユーザ対話を用いたロボットコンピューティングデバイスに関する。
【背景技術】
【0002】
コンピューティングデバイスが、自動アシスタントとユーザとの間の対話を可能にするとき、大部分のコンピューティングデバイスは、ユーザによって手動で制御されることなしに、様々な目的地まで自律的にナビゲートすることができない。これは、ユーザのほうへおよび/またはユーザから離れてナビゲートすることに関与し得るいくつかのタスクの援助を提供するための、いくつかの自動アシスタントの能力を制限することがある。たとえば、あるオーディオコンテンツをレンダリングするというタスクをユーザの自動アシスタントに与えるユーザは、ユーザがオーディオコンテンツを知覚することができるロケーションの中に制限され得る。これは、オーディオコンテンツが、しばしばコンセントに近い、ユーザによって手動で配置されなければならないスタンドアロンスピーカーデバイスおよび/または他のコンピューティングデバイスを介してレンダリングされることから生じ得る。
【0003】
いくつかの事例では、ユーザが、自動アシスタントが地理的ロケーション間(たとえば、住宅内の異なる部屋間)で動くことを必要とし得る特定のアクションを実施することを要求するとき、いくつかのタスクは、そのアクションを実施することが可能であるデバイスに委譲され得る。しかしながら、しばしばそのようなデバイスは、様々なアクションに対処することが可能でないことがある。たとえば、自律掃除機は、自動アシスタントの要求時にデフォルトの掃除動作を始動することが可能であり得るが、特異性をもつ他の掃除関係動作を実施することが可能でないことがある。これは、自動アシスタントおよび/または自律掃除機が、ユーザによって自動アシスタントに提示された要求を変換するための機構を有しないことの結果であり得る。これは、ロボットホームデバイスが、特定のアシスタント要求を履行する(fulfill)ために必要であり得るいくつかのインターフェース(たとえば、スピーカー、センサーなど)を有するが、ロボットホームデバイスが、特定のアシスタント要求を、ロボットホームデバイスによって実施され得る実行可能動作に変換するための機構を有しないとき、特に非効率的であることがある。
【発明の概要】
【課題を解決するための手段】
【0004】
本明細書に記載される実装形態は、ロボットデバイスが特定の目的のためにユーザまでナビゲートすることおよび/またはユーザ間である情報を通信することに関与することができる、様々なタスクを実施することができるロボットデバイスに関する。たとえば、ロボットデバイスは、ユーザの自宅において動作し、ユーザから、「ロボット、エリが学校の準備ができているかどうかをエリに尋ねて」などの口頭の(spoken)発話を受信することができる。この状況において、ユーザは、ユーザからの問合せの対象者である人、「エリ」の父親であり得る。口頭の発話に応答して、および自宅における人からの事前許可を伴って、ロボットデバイスは、ロボットデバイスとユーザとが最初に位置したリビングルームからナビゲートし、エリの部屋のほうへ移動することができる。いくつかの実装形態では、ロボットデバイスは、自宅におけるいくつかのロケーションをいくつかの名称(たとえば、「エリの部屋」)に相関させることができるデータにアクセスすることによって、エリの確からしいロケーションを決定することができる。代替または追加として、ロボットデバイスは、ロボットデバイスとエリとの間の前の対話に基づいて、エリの確からしいロケーションを決定することができる。たとえば、他方のユーザ、エリは、ロボットデバイスとエリとの間の最も最近の対話中に、自宅のオフィスエリアに位置していたことがある。この決定に基づいて、および父親からの口頭の発話に応答して、ロボットデバイスは、エリ、すなわち他方のユーザを見つけるために自宅のオフィスエリアまでナビゲートすることができる。
【0005】
いくつかの実装形態では、ロボットコンピューティングデバイスは、他方のユーザが別のデバイスと最近どこで対話したかを示すことができる対話データにアクセスすることによって、他方のユーザ、「エリ」の確からしいロケーションを決定することができる。たとえば、ユーザが上述の口頭の発話を提供する直前に、他方のユーザは、ユーザの自宅のキッチンにおいてスタンドアロンディスプレイデバイスと対話していたことがある。ホームグラフ(home graph)データは、スタンドアロンディスプレイデバイスが、ホームグラフデータにおいて、「キッチンディスプレイ」など、ラベルを有することに少なくとも基づいて、スタンドアロンディスプレイデバイスと自宅のキッチンとの相関を提供することができる。代替または追加として、部屋についてのセマンティックラベルは、たとえば、(たとえば、1つまたは複数のセンサーおよび1つまたは複数のオブジェクト認識技法を使用しながら決定されたように)部屋が食器洗い器具と電子レンジとをもつ住宅における唯一の部屋であることに基づいて、この部屋が「キッチン」とラベル付けされることなど、部屋の特徴から推論され得る。いくつかの実装形態では、ロボットコンピューティングデバイスまたはスタンドアロンディスプレイデバイスは、1つまたは複数のユーザ検証技法(たとえば、ボイス検証、顔認識など)を使用して、この前の対話が他方のユーザ、エリに関与したと決定することができる。したがって、このデータを使用して、ロボットコンピューティングデバイスは、他方のユーザが、特定のデバイス(たとえば、キッチンディスプレイ)と最近対話したと決定し、特定のデバイスが自宅のキッチンに位置すると決定することができる。この決定に基づいて、ロボットコンピューティングデバイスは、他方のユーザ、エリとの問答を始動することを促進するために、自宅のキッチンのほうへナビゲートすることによってユーザからの上述の口頭の発話に応答することができる。
【0006】
ロボットデバイスが口頭の発話の対象者である他方のユーザのロケーションを識別したとき、ロボットデバイスは、他方のユーザからの事前許可を伴って、ロボットデバイスの出力インターフェース(たとえば、ディスプレイインターフェース、オーディオインターフェースなど)を介して出力を発することができる。たとえば、他方のユーザに発せられる出力は、「ハイ、エリ、あなたの父親は、優しく、あなたが学校の準備ができているかどうかを知りたいと望んでいます」などの誠実な(cordial)オーディオ出力であり得る。ロボットデバイスが、オーディオ出力を発し、および/またはエリのロケーションを識別したとき、ロボットデバイスは、エリからの入力を受信するために1つまたは複数の入力インターフェースをアクティブ化することができる。たとえば、エリは、ユーザが、エリが学校の準備ができているかどうかを質問するようにロボットデバイスに依頼するのを耳にしていたことがあり、結果として、ロボットデバイスがオーディオ出力をレンダリングするための機会を有する前に、応答する入力をロボットデバイスに提供し得る。そのような状況では、ロボットデバイスの1つまたは複数のマイクロフォンが、他方のユーザのロケーションに到着する前に先制してアクティブ化されることになるので、ロボットデバイスは、エリからの入力をキャプチャすることが可能であることになる。他の場合、他方のユーザ、エリが、ロボットデバイスが可聴出力をレンダリングした後に入力を提供するとき、他方のユーザは、「私はもうほとんど準備ができていると、お父さんに言って」などの応答する入力を提供することができる。
【0007】
ロボットデバイスが他方のユーザから応答する入力を受信したとき、ロボットデバイスは、応答する入力が処理されることを引き起こし、また最初の口頭の発話を提供したユーザまでナビゲートし始めることができる。いくつかの実装形態では、ロボットデバイスは音声処理モジュールにアクセスすることができ、音声処理モジュールは、1つまたは複数のトレーニングされた機械学習モデルを使用してオーディオデータおよび/またはテキストデータを処理することができる。たとえば、1つまたは複数のトレーニングされた機械学習モデルは、応答する入力を有意味な出力にコンバートするために採用され得る、トランスフォーマニューラルネットワークおよび/または他の言語モデルを含むことができる。たとえば、ロボットデバイスは、ユーザからの口頭の発話および/または他方のユーザからの別の口頭の発話に対応するオーディオ入力データが、オーディオ出力データを生成することを引き起こすことができる。オーディオ出力データは、「エリは、エリが行く準備がほとんどできていることを優しく示しました」などの誠実な自然言語出力を特徴づけることができる。このようにして、より自然なタイプの問答が、応答するユーザが述べていたことがあることの逐語的な具陳をもっぱら提供することとは対照的に、ロボットデバイスと各ユーザとの間で作成され得る。これは、ユーザとユーザのロボットデバイスとの間のより明瞭な対話を可能にし、ロボットデバイスが、別のユーザがロボットデバイスに述べていたことがあることを繰り返すように依頼される事例を低減することができる。バッテリー寿命および処理帯域幅など、いくつかのリソースが、結果として保持され得る。
【0008】
いくつかの実装形態では、ロボットコンピューティングデバイスは、ユーザが特定のデバイスを見つけることをロボットコンピューティングデバイスに明確に要請し得なかった状況において、ユーザが特定のデバイスおよび/または特定のデバイスのロケーションを識別するのを支援することができる。いくつかの事例では、ロボットコンピューティングデバイスは、特定のデバイスが、ユーザが特定のデバイスに十分に近くないのでおよび/またはデバイスがサイレントモードで動作しているのでユーザは確認応答し得ないという通知をレンダリングしているとき、そのような動作を実施することができる。たとえば、ユーザの自宅におけるセルラーフォンは、セルラーフォンが着信電話呼を受信するとき、サイレントモードで動作していることがある。セルラーフォンは、サイレントモードで振動し得るが、ユーザは、ユーザとセルラーフォンとが異なる部屋にあるとき、セルラーフォンが振動していると決定することが可能でないことがある。しかしながら、ロボットコンピューティングデバイスは、ローカルエリアネットワーク(たとえば、Wi-Fi)を介しておよびユーザからの事前許可を伴って、セルラーフォンが着信呼を受信しているという通知を受信することができる。
【0009】
通知の受信に応答して、ロボットコンピューティングデバイスは、「サー(Sir)、あなたのフォンが、サイレントで鳴っています」などの出力をレンダリングすることができる。この出力は、ロボットコンピューティングデバイスがユーザのしきい値距離内に位置するとき、および/またはロボットコンピューティングデバイスが通知に応答してユーザのほうへナビゲートした後に、レンダリングされ得る。ユーザは、ロボットコンピューティングデバイスからの出力が聞こえるとき、ユーザは、「ああ、ありがとう、私は、私のフォンがちょうどここにあると思っていました」などの口頭の発話で応答することができる。この口頭の発話は、ロボットコンピューティングデバイスのオーディオインターフェースを介してロボットコンピューティングデバイスによってキャプチャされ、オーディオデータにコンバートされ得、オーディオデータは、ユーザからの事前許可を伴って、ロボットコンピューティングデバイスおよび/または別の特定のコンピューティングデバイス(たとえば、サーバなどのネットワークデバイス)において処理され得る。オーディオデータは、ロボットコンピューティングデバイスの支援を明示的に要求しなかったにもかかわらず、ロボットコンピューティングデバイスによって支援されたいというユーザの意思を決定するために処理され得る。
【0010】
たとえば、オーディオデータおよび/または他のデータは、1つまたは複数のヒューリスティックプロセスおよび/または1つまたは複数のトレーニングされた機械学習モデル(たとえば、トランスフォーマニューラルネットワークモデル、畳み込みニューラルネットワーク、リカレントニューラルネットワーク、および/または他のモデル)を使用して処理され得る。いくつかの実装形態では、ロボットコンピューティングデバイスは、ユーザからの事前許可を伴って、ユーザが、質問するトーンおよび/またはある量の不確実性を呈したかどうかを決定するために、ニューラルネットワークベースのシーケンス分類モデルを採用することができる。たとえば、オーディオデータは、ユーザの口頭の発話および/またはロボットコンピューティングデバイスからの出力において具現される主題に関してユーザが呈していることがある不確実性の量についてのメトリックを生成するために処理され得る。メトリックが特定のメトリックしきい値を満たすとき、オーディオデータは、ユーザがユーザの不確実性および/または質問を分析するのを支援し得る、情報を決定するためにおよび/または動作を識別するために、さらに処理され得る。たとえば、セルラーフォンのロケーションを識別する動作は、ロボットコンピューティングデバイスによって、ユーザの検出された不確実性を分析するために有用であると決定され得る。
【0011】
この決定に基づいて、ロボットコンピューティングデバイスは、「よろしければ、私があなたをフォンまで連れて行きましょうか」などの別の出力をレンダリングすることによって、動作を実行することを申し出ることができる。いくつかの実装形態では、ユーザは、「もちろんです」などの明示的応答入力を提供することによって、ロボットコンピューティングデバイスがユーザをセルラーフォンまで連れ行くことを可能にすることを同意することができる。代替または追加として、ユーザは、ユーザがロボットコンピューティングデバイスによってセルラーフォンまで導かれたいという意思を示す身体言語および/または他の特徴を呈することによって、ロボットコンピューティングデバイスがユーザをセルラーフォンまで連れて行くための承認を提供することができる。たとえば、ロボットコンピューティングデバイスが他の出力を提供したことに応答して、ユーザは、彼らが座っているところから立ち上がり、ロボットコンピューティングデバイスのほうへ歩くことができる。いくつかの実装形態では、ユーザからの事前許可を伴ってロボットコンピューティングデバイスによってキャプチャされるオーディオデータおよび/または画像データは、ユーザがロボットコンピューティングデバイスからの申出に対して肯定のおよび/または承認する応答(すなわち、他の出力)を呈しているかどうかを決定するために処理され得る。いくつかの実装形態では、オーディオデータおよび/または画像データは、ユーザからの口頭の発話を処理するために使用されたものと同じまたは異なるトレーニングされた機械学習モデルのうちの1つまたは複数を使用して処理され得る。たとえば、ユーザからの事前許可を伴って、キャプチャされた複数の画像は、ユーザがユーザの座席から立ち上がっているとき、ユーザの軌道がロボットコンピューティングデバイスのほうへのものであると決定するために処理され得る。この決定に基づいて、ロボットコンピューティングデバイスは、ユーザが、ロボットコンピューティングデバイスによってセルラーフォンまで導かれたいという意思を呈したと結論することができる。
【0012】
いくつかの実装形態では、ロボットコンピューティングデバイスのスピードまたは加速度および/あるいはロボットコンピューティングデバイスが反応する緊急性は、ロボットコンピューティングデバイスが移動を初期化した、コンテキストの1つまたは複数の特徴に基づくことができる。たとえば、別のコンピューティングデバイスからのロボットコンピューティングデバイスによって受信される通知のタイプは、通知の緊急性を示し、したがって、ロボットコンピューティングデバイスが進行するスピードについての基礎を提供することができる。たとえば、ロボットコンピューティングデバイスは、ロボットコンピューティングデバイスが、鳴っているセルラーフォンを見つけようと試みているとき、第1のスピードに従って動作することができる。しかしながら、ロボットコンピューティングデバイスは、ロボットコンピューティングデバイスが、着信テキストメッセージに応答してセルラーフォンを見つけようと試みているとき、第1のスピードよりも低い第2のスピードに従って動作することができる。代替または追加として、ロボットコンピューティングデバイスは、ユーザのボイスにおいて検出する緊急性、特定の通知のコンテンツ、特定の通知のソース(たとえば、ロボットコンピューティングデバイスは、知人がテキストメッセージを送ったときと比較して、配偶者がテキストメッセージを送ったときにより速く移動し得る)、通知が受信される時刻、通知のソースであるアプリケーション(たとえば、ロボットコンピューティングデバイスは、通知を提供するソーシャルメディアアプリケーションと比較して、ショッピングアプリケーションから配信通知が受信されるときにより速く移動し得る)、および/またはロボットコンピューティングデバイスが異なるロケーションに移動するための基礎であり得るデータの任意の他のソースなど、1つまたは複数の異なるファクタに基づいて、特定のロケーションに移動するためのスピードを確立することができる。
【0013】
いくつかの実装形態では、ロボットコンピューティングデバイスは、ロボットコンピューティングデバイスによって実施されている動作、および/またはロボットコンピューティングデバイスが動作を実施しているコンテキストの1つまたは複数の特徴に依存して、特定の部屋内の特定のロケーションに移動することができる。たとえば、ゲストのためのディナーを準備しているユーザは、ユーザの自宅のキッチンにおいて音楽を再生することをロボットコンピューティングデバイスに要請することができる。(たとえば、「何か音楽を再生して。」などの口頭の発話を提供することによって)ロボットコンピューティングデバイスに明確に要請することに応答して、ロボットコンピューティングデバイスは、ゲストが自宅の中にいるときに音楽を再生するために、自宅のリビングルームにおける特定のロケーションに移動することができる。いくつかの実装形態では、この特定のロケーションは、ロボットコンピューティングデバイスによって学習され、および/またはユーザによって明確に識別され得る(たとえば、「ゲストがここにいるとき、リビングルームおけるこの特定のロケーションにおいて音楽を再生して。」)。
【0014】
その上、様々な実装形態では、この特定のロケーションは、実施されている動作に固有であり得る。たとえば、「音楽を演奏する」動作を実行するとき、ロボットコンピューティングデバイスは、部屋における第1のロケーションに移動することができ、「私にニュースを読んで(read me the news)」動作を実行するとき、ロボットコンピューティングデバイスは、部屋における別個の第2のロケーションに移動することができ、「スマートカメラからビデオをストリーミングして」動作を実行するとき、ロボットコンピューティングデバイスは、部屋におけるさらなる別個の第3のロケーションに移動することができる。いくつかの実装形態では、ユーザは、記述自然言語入力(descriptive natural language input)を提供することによって、動作、または動作のタイプを実施するための部屋内のロケーションを指定することができる(たとえば、「あなたがビデオを再生するときはいつでも、カウチの北側の1メートル前でそれらを再生して。」)。代替または追加として、ユーザは、ユーザ自身を所望のロケーションに移すことによって、動作、または動作のタイプを実施するための部屋内のロケーションを指定することができる(たとえば、「あなたが私にニュースを告げるときはいつでも、ちょうどここで私にニュースを告げて[ユーザは、所望のロケーションまで歩いて行って、そこに立つ]。」)。ロボットコンピューティングデバイスは、次いで、ユーザからの事前許可を伴って、画像データ(および/または他のセンサーデータ)をキャプチャし、ユーザがどこに立っているかおよび/または面しているかの座標ならびに/あるいはそれらについての推論されたセマンティックラベルを決定するために、画像データを処理することができる。代替または追加として、ユーザは、ロボットコンピューティングデバイスまたは別個のデバイスのグラフィカルユーザインターフェース(GUI)と対話することによって、動作、または動作のタイプを実施するための部屋内のロケーションを指定することができる。たとえば、第1のユーザは、いくつかのタイプの動作(たとえば、ニュースを可聴的にレンダリングすること)がどこで実施されるべきであるかを指定するために、第1のユーザの自宅のマップに注釈を付けるためにGUIと対話することができる。いくつかの実装形態では、マップは、ロボットコンピューティングデバイスの1つまたは複数のセンサーからのデータを処理することによって生成されるセマンティックラベルをもつ、自宅または他の構造物のグラフィカル表現であり得る。代替または追加として、第2のユーザも、いくつかの他のタイプの動作(たとえば、ビデオ呼を可能にすること)がどこで実施されるべきであるかを指定するために、GUIのインスタンスと対話することができる。
【0015】
様々な実装形態では、ロボットコンピューティングデバイスがいくつかの動作、および/または動作のタイプを実施するためのロケーションに関する選好が、ユーザ固有選好として記憶され得る。たとえば、第1のユーザは、ロボットコンピューティングデバイスを、自宅におけるリビングルームの第1のロケーションにおいて音楽タイプの動作を実施するように導くことができ、第2のユーザは、ロボットコンピューティングデバイスを、リビングルームにおける第1のロケーションとは異なる第2のロケーションにおいて音楽タイプの動作の実施するように導くことができる。したがって、ロボットコンピューティングデバイスが「リビングルームにおいて音楽を再生する」ことを第1のユーザが要求することに応答して、ロボットコンピューティングデバイスは、第1のユーザが要求を提供していることを検証し、第1のユーザの指定された選好に従って、リビングルーム内の第1のロケーションに移ることができる。
【0016】
たとえば、ゲストが到着するより前に、ユーザは、ロボットコンピューティングデバイスが、任意のオーディオおよび/またはビデオレンダリングを実施するとき、リビングルームにとどまるための命令を提供することができる。ユーザは、「ゲストが到着したとき、そこで、カウチの隣で音楽だけを再生してください」などの口頭の発話を介して、これらの命令を提供することができる。ユーザは、随意に、(たとえば、「...そこで...」と発するとき)ロケーションをポイントすることができ、ロボットコンピューティングデバイスは、ユーザが指している正確なロケーションを決定するために(ユーザからの事前許可を伴って)ユーザがポイントしている画像データをキャプチャすることができる。たとえば、ユーザが指している選好される「音楽」ロケーションを決定するために、ユーザの自宅を特徴づける地理的レイアウトデータが、ユーザの「ポイント」している指の推定された軌道と比較され得る。代替または追加として、ユーザは、ユーザがいくつかのタイプの動作がどこで実施されることを選好するであろうかを指定するために、ユーザの自宅のマップに注釈を付けるためにGUIと対話することができる。その後、ゲストが到着する前に、ロボットコンピューティングデバイスは、ユーザがゲストの到着に備えるとき、(音楽を再生しながらまたは再生することなしに)自宅の周りでユーザに追従し得る。ゲストが到着したとき、ロボットコンピューティングデバイスは、リビングルームにおけるカウチに隣接するロケーションに移動し、音楽を再生するか、またはロボットコンピューティングデバイスが音楽を再生することをユーザが明確に要求するのを(たとえば、「何か音楽を再生して。」を)待つかのいずれかを行うことができる。
【0017】
いくつかの実装形態では、ユーザからのこの要求は、選好データを生成するために処理され得、選好データは、ユーザからのその後の要求に応答するときに利用され得る。たとえば、ユーザが、後続の週末にわたって異なるゲストを有するとき、ユーザは、ユーザのリビングルームにおけるカウチに隣接するロケーションに移動することによって、音楽を再生するための要求に応答することができる。いくつかの実装形態では、いくつかの動作についてのいくつかの選好を実装する前に、ロボットコンピューティングデバイスによってユーザ検証が実施され得る。たとえば、ユーザが音楽を再生することを要求することに応答して、ボイス検証および/または顔認識が実施され得る。要求元ユーザが、音楽を再生するための特定のロケーション選好をもつユーザに対応しないとき、ロボットコンピューティングデバイスは、1つまたは複数のヒューリスティックプロセスおよび/または1つまたは複数のトレーニングされた機械学習モデルに基づいて、ロケーションを選択することができる。たとえば、いくつかの動作のためのロケーションについての明確な選好を提供しなかったユーザは、ユーザとロボットコンピューティングデバイスとの間の前の対話に基づいて推論された、いくつかの選好を有し得る。
【0018】
いくつかの実装形態では、ロボットコンピューティングデバイスのロケーションは、いくつかの動作についておよび/またはいくつかのユーザの選好について動的であり得る。たとえば、ユーザは、ロボットコンピューティングデバイスがある持続時間(たとえば、10分)の後にアラームを発するための要求を提供することができる。応答して、ロボットコンピューティングデバイスは、最初に、ユーザに追従しないことがあるが、アラームが特定の値に達する前に、持続時間の後に「追う」動作を初期化し得る。いくつかの実装形態では、この特定の値は、アラーム要求、要求されたアラームの理由、ロボットコンピューティングデバイスに対するユーザの推定された相対ロケーション、および/またはユーザがアラームを要求したコンテキストの1つまたは複数の特徴に基づき得る。いくつかの実装形態では、ユーザは、ロボットコンピューティングデバイスがユーザに追従することをユーザが明確に要求することなしに、ロボットコンピューティングデバイスがユーザを追う(たとえば、追従する)ことを引き起こすことができる要求をロボットコンピューティングデバイスに提供することができる。この挙動は、ロボットコンピューティングデバイスとの対話を通して経時的に学習され、および/またはユーザからの明確な要求に基づいて学習され得る。たとえば、ユーザは、ロボットコンピューティングデバイスがいくつかの状況においてユーザを追うこと、または他の状況においてユーザを追うことを停止することを明確に要求することができる。そのような事例は、ロボットコンピューティングデバイスにユーザを追わせるための要求をユーザが明確に提供することなしに、いくつかの状況においてユーザを追うように、および/または追わないようにロボットコンピューティングデバイスをトレーニングするために利用され得る、フィードバックデータを提供することができる。
【0019】
たとえば、ユーザは、ロボットコンピューティングデバイスが音楽を再生することを要求することができ、応答して、ロボットコンピューティングデバイスは、追う動作および音楽レンダリング動作を初期化することができる。いくつかの実装形態では、追う動作は、ユーザが、手近に別のオーディオデバイスを有しないと決定され、および/またはオーディオデバイスのほうへ歩いていないと決定される、いくつかのコンテキストにおいて初期化され得る。たとえば、ユーザが、廊下に沿って歩いており、「何か音楽を再生して」などの口頭の発話を提供するとき、ロボットコンピューティングデバイスは、廊下が、存在するオーディオデバイスを有しないと決定することができる。代替または追加として、ロボットコンピューティングデバイスは、オーディオデバイスを有しない部屋の方向において廊下に沿ってユーザが歩いていると決定することができる。口頭の発話に応答して、ロボットコンピューティングデバイスは、ユーザが廊下に沿って部屋の中へ歩いている間、ユーザが音楽を聞くことができるように、音楽のレンダリングを初期化し、また、追う動作を初期化することができる。そうではなく、部屋がオーディオデバイスを有すると決定されるとき、ロボットコンピューティングデバイスは、ユーザが廊下にいる間、音楽を再生することを初期化するが、ユーザが部屋に入ると、音楽を再生することを、部屋におけるオーディオデバイスに委譲することができる。その後、ユーザが部屋の中にいるとき、ロボットコンピューティングデバイスは、随意に、少なくとも、ユーザの決定された選好に従って、部屋の外側に残り、追う動作を中止することができる。
【0020】
いくつかの実装形態では、追う動作の特徴は、ロボットコンピューティングデバイスによって実施されているアクションおよび/または実施されているアクションのタイプ、ならびに/あるいはロボットコンピューティングデバイスがアクションを実施するための要求を提供している特定のユーザに依存し得る。たとえば、ロボットコンピューティングデバイスは、音楽を再生する動作を実施するとき、距離「x」だけユーザを追うが、ビデオ呼またはオーディオ呼を可能にするとき、異なる距離「y」においてユーザを追うことができる。代替または追加として、ロボットコンピューティングデバイスは、特定のユーザの選好および/または実施されているアクションまたはアクションのタイプに従って、特定の速度でユーザを追うことができる。いくつかの実装形態では、追う動作の特徴は、ロボットコンピューティングデバイスがどこに位置するか、および/またはロボットコンピューティングデバイスが、特定の推論されたセマンティックラベルを有する部屋に位置するかどうかに基づき得る。たとえば、ロボットコンピューティングデバイスは、「キッチン」にあるとき、ある距離および/または速度に従って追う動作を実施するが、「ガレージ」にあるとき、異なる距離および異なる速度に従って追う動作を実施することができる。
【0021】
上記の説明は、本開示のいくつかの実装形態の概観として提供される。それらの実装形態のさらなる説明および他の実装形態が、以下でより詳細に説明される。
【0022】
他の実装形態は、本明細書の上記で説明されたおよび/または他の場所で説明される方法のうちの1つまたは複数など、方法を実施するための、1つまたは複数のプロセッサ(たとえば、中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、および/またはテンソル処理ユニット(TPU))によって実行可能な命令を記憶する、非一時的コンピュータ可読記憶媒体を含み得る。また他の実装形態は、本明細書の上記で説明されたおよび/または他の場所で説明される方法のうちの1つまたは複数など、方法を実施するための、記憶された命令を実行するように動作可能な1つまたは複数のプロセッサを含む、1つまたは複数のコンピュータのシステムを含み得る。
【0023】
本明細書においてより詳細に説明される上記の概念および追加の概念のすべての組合せが、本明細書において開示される主題の一部であるものとして企図されることを諒解されたい。たとえば、本開示の最後に現れる請求される主題のすべての組合せが、本明細書において開示される主題の一部であるものとして企図される。
【図面の簡単な説明】
【0024】
図1A】ユーザが、通知を提供しているデバイスまで導かれることをユーザが望むかどうかを、明確な要請なしに、推論することができるロボットコンピューティングデバイスと対話する、図である。
図1B】ユーザが、通知を提供しているデバイスまで導かれることをユーザが望むかどうかを、明確な要請なしに、推論することができるロボットコンピューティングデバイスと対話する、図である。
図2A】ユーザが、学習された選好されるロケーションにおいてユーザ間で通信し、ユーザと対話することができるロボットコンピューティングデバイスと対話する、図である。
図2B】ユーザが、学習された選好されるロケーションにおいてユーザ間で通信し、ユーザと対話することができるロボットコンピューティングデバイスと対話する、図である。
図2C】ユーザが、学習された選好されるロケーションにおいてユーザ間で通信し、ユーザと対話することができるロボットコンピューティングデバイスと対話する、図である。
図3】ユーザ間での通信を可能にするようにロボットコンピューティングデバイスを動作させ、ユーザからの明確な要請なしに動作を完了するために特定のロケーションに進行することができる、システムを示す図である。
図4】第1のユーザから第2のユーザにロボットコンピューティングデバイスによって中継され得るユーザ入力および/またはユーザ応答を言い換える(paraphrase)ように、ロボットコンピューティングデバイスを動作させるための方法を示す図である。
図5】ユーザ選好に従っていくつかのアクションがいくつかのエリアにおいて実施されることを保証することを促進するために、セマンティックラベルを空間または構造物のエリアに自律的に割り当てるように、ロボットコンピューティングデバイスを動作させるための方法を示す図である。
図6】例示的なコンピュータシステムのブロック図である。
【発明を実施するための形態】
【0025】
図1Aおよび図1Bは、ユーザ102が、通知を提供しているデバイスまで導かれることをユーザが望むかどうかを推論することができるロボットコンピューティングデバイス104と対話する、図100および図120を示す。代替または追加として、ロボットコンピューティングデバイスは、通知が提供されているコンテキストの1つまたは複数の特徴に基づいて選択される駆動動作パラメータに従って、デバイスおよび/または特定のロケーションに移動することができる。たとえば、ロボットコンピューティングデバイス104は、ユーザ102が、セルラーフォンなど、別個のデバイスにおいて、セルラーフォンがサイレントモード(たとえば、振動のみモード)で動作しているとき、テキストメッセージを受信したと決定することができる。セルラーフォンおよびロボットコンピューティングデバイス104の各々は、ローカルエリアネットワークにアクセスすることができ、ローカルエリアネットワークは、ユーザ102の部屋106においてロボットコンピューティングデバイス104にとってワイヤレスにアクセス可能であり得る。いくつかの実装形態では、およびユーザ102からの事前許可を伴って、ロボットコンピューティングデバイス104は、ユーザ102がテキストメッセージに確認応答したかどうか、および/またはユーザ102がテキストメッセージの受信を検出することができるエリアにユーザ102が位置するかどうかを決定することができる。ロボットコンピューティングデバイス104が、ユーザ102が、テキストメッセージに確認応答しておらず、および/またはテキストメッセージの検出が可能であるエリアに位置しないことを予測するとき、ロボットコンピューティングデバイス104は、「あなたは、ジュリアンからテキストメッセージを受信しました」などの可聴出力108をレンダリングすることができる。代替または追加として、ロボットコンピューティングデバイス104は、セルラーフォンがテキストメッセージを受信したとき、可聴出力108をプロアクティブにレンダリングすることができる。
【0026】
いくつかの実装形態では、ロボットコンピューティングデバイス104は、ユーザ102からの事前許可を伴って、ユーザ102がセルラーフォンがどこに位置するかに気づいているかどうかに関する予測を生成することができる。予測は、たとえば、ユーザ102がセルラーフォンのロケーションに気づいていないことを示す口頭の発話110に基づき得る。口頭の発話110は、「私は、私のフォンがどこにあるかさえ知りません」などのコンテンツを含むことができる。代替または追加として、画像データおよび/またはオーディオデータは、ユーザ102からの事前許可を伴って、ユーザ102がセルラーフォンがどこにあるかを知っているかどうかを決定するために処理され得る。たとえば、可聴出力108に応答して、ユーザ102は、ユーザ102のセルラーフォンを求めて辺りを見回す(たとえば、ユーザ102の左およびユーザ102の右を見る)ことができ、これは、ユーザ102がユーザ102のセルラーフォンがどこに位置するかに気づいていないという指示であり得る。これらのコンテキスト特徴のうちの1つまたは複数に基づいて、ロボットコンピューティングデバイス104は、ユーザ102がユーザ102のセルラーフォンがどこに位置するかに気づいていないと決定し、「よろしければ、私があなたに示すことができます」などの別の可聴出力112を提供することができる。
【0027】
いくつかの実装形態では、ロボットコンピューティングデバイス104は、ユーザ102が、セルラーフォンまでユーザ102を先導するようにロボットコンピューティングデバイス104を明確に導く入力をユーザ102が提供することなしに、ユーザ102のセルラーフォンまで導かれることに関心があると推論することができる。たとえば、コンテキストの特徴114は、ユーザ102が、ロボットコンピューティングデバイス104からの他の可聴出力の後に、ユーザ102の座席から立ち上がることを含むことができる。この特徴114は、ユーザ102が、ロボットコンピューティングデバイス104によってユーザ102のセルラーフォンまで導かれる意思があるという肯定的な指示であり得る。たとえば、図1B図120に示されているように、ロボットコンピューティングデバイス104は、ユーザ102を、ユーザ102のセルラーフォンなど、デバイス124に導くことを促進するために、部屋106を出て、別の部屋126に入ることができる。このようにして、ユーザ102は、いくつかの利益を達成するために、必ずしもユーザ102のアシスタントデバイスとの明確な会話に関与しなければならないとは限らない。これは、動作の実施を初期化する前に、より少ない処理および記憶域が消費され得るので、ロボットコンピューティングデバイス104および/または他のデバイスの計算リソースを保持することができる。
【0028】
図2A図2B、および図2Cは、ユーザ202が、学習された選好されるロケーションにおいてユーザ間で通信し、ユーザと対話することができるロボットコンピューティングデバイス204と対話する、図200図220、および図240を示す。たとえば、ユーザ202が、「ジミーが彼の部屋をきれいにしたかどうかを見に行って」などの口頭の発話208を提供することができる。口頭の発話は、ユーザ202とともに部屋206に位置し得る、ロボットコンピューティングデバイス204まで導かれ得る。口頭の発話208の検出に応答して、ロボットコンピューティングデバイス204は、「オーケー、私が、彼の部屋に行って、チェックします」などの可聴出力210をレンダリングすることができる。いくつかの実装形態では、ロボットコンピューティングデバイス204は、ロボットコンピューティングデバイス204が1つまたは複数の動作を実施するための1つまたは複数の要求を、口頭の発話208が具現すると決定することができる。1つまたは複数の動作は、「ジミーの」部屋についてのロケーションを決定することと、その部屋が「きれいにされた」かどうかを決定することとを含むことができる。
【0029】
いくつかの実装形態では、ロボットコンピューティングデバイス204は、ロボットコンピューティングデバイス204のしきい値距離内に位置する、および/またはロボットコンピューティングデバイス204とともに共通ネットワークに接続された、他のコンピューティングデバイスと通信することによって、ジミーの部屋のロケーションを決定することができる。たとえば、要求された動作の決定に応答して、ロボットコンピューティングデバイス204は、部屋206の中および部屋206の外の1つまたは複数のデバイスが、ロボットコンピューティングデバイス204によって検出され得る1つまたは複数の異なるタイプの出力(たとえば、視覚、オーディオ、アンテナなど)をレンダリングすることを引き起こし得る。ロボットコンピューティングデバイス204は、これらの出力に基づいて、デバイスのうちの1つまたは複数が「ジミーの」部屋に対応すると決定することができる。代替または追加として、ロボットコンピューティングデバイス204は、時間ウィンドウまたは持続時間内に随意に検出された1つまたは複数の信号メトリック(たとえば、信号品質)に基づいて、1つまたは複数のスマートデバイスからのロボットコンピューティングデバイス204の相対距離を決定することができる。いくつかの実装形態では、特定のデバイスについてのユーザ指定の名前は、「ジミーのスピーカー」、および/または「ジミーのスマートライト」であり得、したがって、特定のデバイスのロケーションがジミーの部屋に対応するという証拠を提供することができる。代替または追加として、特定のデバイスとロボットコンピューティングデバイス204との間での通信に関連付けられた1つまたは複数の信号メトリックが、ロボットコンピューティングデバイス204からの特定のデバイスの相対距離および/または相対ロケーションを示すことができる。
【0030】
いくつかの実装形態では、デバイスについてのそのようなラベルは、ロボットコンピューティングデバイス204にとってアクセス可能であるスマートホームグラフ、アシスタントアプリケーション、および/あるいはユーザ202に関連付けられ得る任意の他のアプリケーションまたはモジュールを介して識別され得る。代替または追加として、ロボットコンピューティングデバイス204は、1つまたは複数のユーザからの事前許可を伴って、ジミーが前に位置したおよび/または現在位置する特定の部屋を決定することができる。たとえば、ロボットコンピューティングデバイス204にとってアクセス可能な履歴対話データは、図2Bに示されているように、ロボットコンピューティングデバイス204と他方のユーザ(すなわち、ジミー)との間の対話の大部分が別の部屋226において生じたことを示すことができる。この決定と、競合するデータ(たとえば、部屋226がジミーの部屋でないことを示すデータ)がないこととに基づいて、ロボットコンピューティングデバイス204は、ユーザ202からの要求を履行するために部屋226までナビゲートすることができる。
【0031】
ロボットコンピューティングデバイス204が別の部屋226に到着したとき、ロボットコンピューティングデバイス204は、ロボットコンピューティングデバイス204の1つまたは複数のインターフェースを使用して、および/または別の部屋226内の1つまたは複数の他のデバイスと対話して、別の部屋226に関するデータを集めることができる。たとえば、ロボットコンピューティングデバイス204は、別の部屋226の1つまたは複数の画像をキャプチャするために1つまたは複数のカメラを利用することができる。1つまたは複数の画像は、別の部屋226が「きれい」として分類されるべきであるかどうかを決定するために、1つまたは複数のトレーニングされた機械学習モデルを使用して処理され得る。いくつかの実装形態では、ロボットコンピューティングデバイス204は、それ自体を、ユーザ202および/または他方のユーザ222の選好に基づいて別の部屋226に配置することができる。たとえば、別の部屋226内のロボットコンピューティングデバイス204についての第1のロケーション選好は、データを収集するためにロボットコンピューティングデバイス204が配置されるべきであるロケーションに対応することができる。代替または追加として、別の部屋226内のロボットコンピューティングデバイス204についての第2のロケーション選好は、他方のユーザ222と対話するためにロボットコンピューティングデバイス204が配置されるべきである別のロケーションに対応することができる。
【0032】
いくつかの実装形態では、ロボットコンピューティングデバイス204は、ユーザが部屋内のいくつかのロケーションにおいてロボットコンピューティングデバイス204と関与する、周波数に基づいて、ロケーション選好を推論することができる。代替または追加として、ロボットコンピューティングデバイス204は、ユーザからの明確な命令に基づいてユーザのロケーション選好を決定することができる。たとえば、ユーザは、ロボットコンピューティングデバイス204がいくつかの選好される距離のみにおいておよび/または部屋の特定の部分のみにおいて視覚出力および/またはビデオ呼を可能にするための、明確な要求を提供することができる。代替または追加として、ユーザは、ロボットコンピューティングデバイス204が他の距離のみにおいておよび/または部屋の別の部分のみにおいて視覚出力および/またはビデオ呼を可能にするための、明確な要求を提供することができる。これらの命令は、受信され、選好データになるように生成され得、選好データは、その後、1人または複数のユーザと対話するとき、ロボットコンピューティングデバイス204によって利用され得る。
【0033】
上述の例によれば、ロボットコンピューティングデバイス204は、ユーザ202からの要求を履行することを促進するために、別の部屋226に入り、随意に、他方のユーザ222に対して出力228をレンダリングすることができる。たとえば、他の出力228は、ロボットコンピューティングデバイス204がユーザ202からの要求を履行するのを支援することができる情報についての要請であり得る、「あなたは部屋をきれいにしましたか?」であり得る。応答して、他方のユーザ222(すなわち、ジミー)は、「はい、私はそれに取り組んでいます」などの口頭の発話230を提供することができる、 この情報は、随意に、ユーザ202からの要求を履行するためにロボットコンピューティングデバイス204によって生成された他のデータと組み合わせて利用され得る。たとえば、この情報および/またはデータを受信すると、図2Cに示されているように、ロボットコンピューティングデバイス204はユーザ202までナビゲートすることができる。
【0034】
いくつかの実装形態では、ロボットコンピューティングデバイス204は、ユーザ202の選好に基づいて部屋206内の特定のロケーション246までナビゲートすることができる。たとえば、ユーザ202は、ロボットコンピューティングデバイス204が可聴応答を提供するために部屋206に入りつつあるとき、ロボットコンピューティングデバイス204が特定のロケーション246においてその応答を提供するべきであることを選好することができる。代替または追加として、ユーザ202は、ポイントするジェスチャー(たとえば、特定のロケーション246のほうへとポイントする動き)と組み合わせてフェッチ(fetch)コマンド(たとえば、「ここに来て。」)を提供することによって、特定のロケーション246までロボットコンピューティングデバイス204を導くことの履歴を有することができる。これらの履歴対話に基づいて、ロボットコンピューティングデバイス204は、ユーザ202が部屋206内の特定のロケーション246においてロボットコンピューティングデバイス204からの応答を聞くことを選好すると決定することができる。いくつかの実装形態では、選好される距離および/または選好されるロケーションは、部屋ごとに、ならびに/あるいは異なる動作および/または異なるタイプの出力について変動することがある。たとえば、ユーザ202は、ロボットコンピューティングデバイス204がユーザ202のベッドルーム中にあるとき、ロボットコンピューティングデバイス204がベッドの端部からの「ニュース」を提供することを選好するが、ロボットコンピューティングデバイス204がユーザ202のベッドルーム中にあるとき、ベッドの側部からのオーディオ電話呼を可能にすることができる。
【0035】
ロボットコンピューティングデバイス204が、要求を履行するために特定のロケーション246に到着したとき、ロボットコンピューティングデバイス204は、「部屋はきれいに見えます、ジミーは彼がそれに取り組んでいると言っています」などの可聴出力242をレンダリングすることができる。この可聴出力242は、1つまたは複数の言語モデル(たとえば、リカレントニューラルネットワーク、トランスフォーマネットワークモデルなど)を使用して生成され得る。いくつかの実装形態では、可聴出力242は、他方のユーザ222が提供したものとは異なるコンテンツを含むことがあるが、それでも、同様の結論を伝達する。代替または追加として、可聴出力242は、ユーザ222からの応答と、ロボットコンピューティングデバイス204の1つまたは複数のインターフェース(たとえば、カメラ)を使用して生成されたデータとに基づくコンテンツを含むことができる。このようにして、ロボットコンピューティングデバイス204からのレンダリングされたコンテンツは、ユーザ202からの要求を履行することを促進するために、取得されたデータと情報とを特徴づける自然言語コンテンツを具現することができる。
【0036】
図3は、ユーザ間での通信を可能にするようにロボットコンピューティングデバイスを動作させ、ユーザからの明確な要請なしに動作を完了するために特定のロケーションに進行することができる、システム300を示す。システム300は、ロボットコンピューティングデバイスであり得るコンピューティングデバイス302を含むことができ、これは、ロボットコンピューティングデバイスがユーザとインターフェースすることを可能にするための1つまたは複数のアプリケーションを含む。たとえば、ロボットコンピューティングデバイスは、自動アシスタント304を含むことができる。自動アシスタント304は、1つまたは複数の他のコンピューティングデバイスおよび/またはサーバデバイスにおいて提供されるアシスタントアプリケーションの一部として動作することができる。ユーザは、マイクロフォン、カメラ、タッチスクリーンディスプレイ、ユーザインターフェース、および/またはユーザとアプリケーションとの間のインターフェースを提供することが可能な任意の他の装置であり得る、アシスタントインターフェース320を介して、自動アシスタント304と対話することができる。たとえば、ユーザは、自動アシスタント304が1つまたは複数のアクション(たとえば、データを提供する、周辺デバイスを制御する、エージェントにアクセスする、入力および/または出力を生成するなど)を初期化することを引き起こすために、アシスタントインターフェース320に、言語的、テキストの、および/またはグラフィカル入力を提供することによって、自動アシスタント304を初期化することができる。代替的に、自動アシスタント304は、1つまたは複数のトレーニングされた機械学習モデルを使用してコンテキストデータ336を処理することに基づいて、初期化され得る。
【0037】
コンテキストデータ336は、自動アシスタント304がアクセス可能である環境の1つまたは複数の特徴、および/または自動アシスタント304と対話することを意図していると予測されるユーザの1つまたは複数の特徴を特徴づけることができる。コンピューティングデバイス302は、ディスプレイデバイスを含むことができ、ディスプレイデバイスは、ユーザがタッチインターフェースを介してコンピューティングデバイス302のアプリケーション334を制御することを可能にするための、タッチ入力および/またはジェスチャーを受信するためのタッチインターフェースを含むディスプレイパネルであり得る。いくつかの実装形態では、コンピューティングデバイス302は、ディスプレイデバイスがなく、それにより、グラフィカルユーザインターフェース出力を提供することなしに、可聴ユーザインターフェース出力を提供することができる。さらに、コンピューティングデバイス302は、ユーザからの口頭の自然言語入力を受信するための、マイクロフォンなど、ユーザインターフェースを提供することができる。いくつかの実装形態では、コンピューティングデバイス302は、タッチインターフェースを含むことができ、カメラがないことがあるが、随意に、1つまたは複数の他のセンサーを含むことができる。
【0038】
コンピューティングデバイス302および/または他のサードパーティクライアントデバイスは、インターネットなど、ネットワークを介してサーバデバイスと通信していることがある。さらに、コンピューティングデバイス302および任意の他のコンピューティングデバイスは、Wi-Fiネットワークなど、ローカルエリアネットワーク(LAN)を介して互いに通信していることがある。コンピューティングデバイス302は、コンピューティングデバイス302における計算リソースを節約するために、計算タスクをサーバデバイスにオフロードすることができる。たとえば、サーバデバイスは、自動アシスタント304をホストすることができ、および/またはコンピューティングデバイス302は、1つまたは複数のアシスタントインターフェース320において受信された入力をサーバデバイスに送信することができる。しかしながら、いくつかの実装形態では、自動アシスタント304は、コンピューティングデバイス302においてホストされ得、自動アシスタント動作に関連付けられ得る様々なプロセスが、コンピューティングデバイス302において実施され得る。
【0039】
様々な実装形態では、自動アシスタント304のすべての態様またはすべての態様よりも少ない態様が、コンピューティングデバイス302上で実装され得る。それらの実装形態のうちのいくつかでは、自動アシスタント304の態様は、コンピューティングデバイス302を介して実装され、自動アシスタント304の他の態様を実装することができるサーバデバイスとインターフェースすることができる。サーバデバイスは、随意に、複数のスレッドを介して複数のユーザおよびユーザの関連付けられた補助アプリケーションをサービスすることができる。自動アシスタント304のすべての態様またはすべての態様よりも少ない態様がコンピューティングデバイス302を介して実装される実装形態では、自動アシスタント304は、コンピューティングデバイス302のオペレーティングシステムとは別個である(たとえば、オペレーティングシステムの「上に」インストールされた)アプリケーションであり得るか、または、代替的に、コンピューティングデバイス302のオペレーティングシステムによって直接実装され得る(たとえば、オペレーティングシステムの、ただしオペレーティングシステムと一体の、アプリケーションと見なされる)。
【0040】
いくつかの実装形態では、自動アシスタント304は入力処理エンジン306を含むことができ、入力処理エンジン306は、コンピューティングデバイス302および/またはサーバデバイスのための入力および/または出力を処理するために複数の異なるモジュールを採用することができる。たとえば、入力処理エンジン306は、音声処理エンジン308を含むことができ、音声処理エンジン308は、オーディオデータにおいて具現されたテキストを識別するために、アシスタントインターフェース320において受信されたオーディオデータを処理することができる。オーディオデータは、たとえば、コンピューティングデバイス302における計算リソースを保持するためにコンピューティングデバイス302からサーバデバイスに送信され得る。追加または代替として、オーディオデータは、もっぱら、コンピューティングデバイス302において処理され得る。
【0041】
オーディオデータをテキストにコンバートするためのプロセスは、ニューラルネットワークを採用することができる音声認識アルゴリズム、および/あるいはワードまたはフレーズに対応するオーディオデータのグループを識別するための統計モデルを含むことができる。オーディオデータからコンバートされたテキストは、データ構文解析エンジン310によって構文解析(parse)され、コマンドフレーズ、意図、アクション、スロット値、および/またはユーザによって指定された任意の他のコンテンツを生成および/または識別するために使用され得るテキストデータとして、自動アシスタント304にとって利用可能にされ得る。いくつかの実装形態では、データ構文解析エンジン310によって提供された出力データは、ユーザが、自動アシスタント304によって実施されることが可能な特定の意図、アクション、および/またはルーチン、ならびに/あるいは自動アシスタント304を介してアクセスされることが可能であるアプリケーションまたはエージェントに対応する入力を提供したかどうかを決定するために、パラメータエンジン312に提供され得る。たとえば、アシスタントデータ338は、サーバデバイスおよび/またはコンピューティングデバイス302において記憶され得、自動アシスタント304によって実施されることが可能な1つまたは複数のアクションを定義するデータ、ならびにそれらのアクションを実施するために必要なパラメータを含むことができる。パラメータエンジン312は、意図、アクション、および/またはスロット値についての1つまたは複数のパラメータを生成し、1つまたは複数のパラメータを出力生成エンジン314に提供することができる。出力生成エンジン314は、ユーザに出力を提供するためのアシスタントインターフェース320と通信するために、および/または1つまたは複数のアプリケーション334に出力を提供するための1つまたは複数のアプリケーション334と通信するために、1つまたは複数のパラメータを使用することができる。
【0042】
いくつかの実装形態では、自動アシスタント304は、コンピューティングデバイス302のオペレーティングシステム「の上に」インストールされ得るアプリケーションであり得、および/またはそれ自体でコンピューティングデバイス302のオペレーティングシステムの一部(またはその全体)を形成することができる。自動アシスタントアプリケーションは、オンデバイス音声認識、オンデバイス自然言語理解、およびオンデバイス履行(fulfillment)を含み、ならびに/またはそれらへのアクセスを有する。たとえば、オンデバイス音声認識は、コンピューティングデバイス302においてローカルに記憶されたエンドツーエンド音声認識機械学習モデルを使用して、(マイクロフォンによって検出された)オーディオデータを処理するオンデバイス音声認識モジュールを使用して実施され得る。オンデバイス音声認識は、オーディオデータ中に存在する口頭の発話(もしあれば)についての認識されたテキストを生成する。また、たとえば、オンデバイス自然言語理解(NLU)は、NLUデータを生成するために、オンデバイス音声認識を使用して生成された認識されたテキストと、随意に、コンテキストデータとを処理するオンデバイスNLUモジュールを使用して実施され得る。
【0043】
NLUデータは、口頭の発話に対応する意図と、随意に、その意図についてのパラメータ(たとえば、スロット値)とを含むことができる。オンデバイス履行は、口頭の発話の意図(および随意に、その意図についてのパラメータ)を分析するためにとるべきアクションを決定するために、(オンデバイスNLUからの)NLUデータと、随意に、他のローカルデータとを利用するオンデバイス履行モジュールを使用して実施され得る。これは、口頭の発話に対するローカルおよび/またはリモート応答(たとえば、回答)、口頭の発話に基づいて実施するためのローカルにインストールされたアプリケーションとの対話、口頭の発話に基づいて(直接、または対応するリモートシステムを介して)モノのインターネット(IoT)デバイスに送信するためのコマンド、および/または口頭の発話に基づいて実施するための他の分析アクションを決定することを含むことができる。オンデバイス履行は、次いで、口頭の発話を分析するために決定されたアクションのローカルおよび/またはリモート実施/実行を始動し得る。
【0044】
様々な実装形態では、リモート音声処理、リモートNLU、および/またはリモート履行は、少なくとも選択的に利用され得る。たとえば、認識されたテキストは、リモートNLUおよび/またはリモート履行のためにリモート自動アシスタント構成要素に少なくとも選択的に送信され得る。たとえば、認識されたテキストは、随意に、オンデバイス実施と並行して、またはオンデバイスNLUおよび/またはオンデバイス履行の失敗に応答して、リモート実施のために送信され得る。しかしながら、オンデバイス音声処理、オンデバイスNLU、オンデバイス履行、および/またはオンデバイス実行は、少なくとも、口頭の発話を分析するときにそれらが提供するレイテンシ低減により(口頭の発話を分析するためにクライアントサーバラウンドトリップが必要とされないことにより)、優先され得る。さらに、オンデバイス機能は、ネットワーク接続性がないかまたは限定されている状況において利用可能である唯一の機能であり得る。
【0045】
いくつかの実装形態では、コンピューティングデバイス302は、コンピューティングデバイス302および/または自動アシスタント304を提供したエンティティとは異なるサードパーティエンティティによって提供され得る、1つまたは複数のアプリケーション334を含むことができる。自動アシスタント304および/またはコンピューティングデバイス302のアプリケーション状態エンジンは、1つまたは複数のアプリケーション334によって実施されることが可能な1つまたは複数のアクション、ならびに1つまたは複数のアプリケーション334の各アプリケーションの状態および/またはコンピューティングデバイス302に関連付けられたそれぞれのデバイスの状態を決定するために、アプリケーションデータ330にアクセスすることができる。自動アシスタント304および/またはコンピューティングデバイス302のデバイス状態エンジンは、コンピューティングデバイス302および/またはコンピューティングデバイス302に関連付けられた1つまたは複数のデバイスによって実施されることが可能な1つまたは複数のアクションを決定するために、デバイスデータ332にアクセスすることができる。さらに、アプリケーションデータ330および/または任意の他のデータ(たとえば、デバイスデータ332)は、コンテキストデータ336を生成するために自動アシスタント304によってアクセスされ得、コンテキストデータ336は、特定のアプリケーション334および/またはデバイスが実行している、コンテキスト、ならびに/あるいは特定のユーザが、コンピューティングデバイス302にアクセスしている、アプリケーション334、および/または任意の他のデバイスもしくはモジュールにアクセスしている、コンテキストを特徴づけることができる。
【0046】
1つまたは複数のアプリケーション334がコンピューティングデバイス302において実行している間、デバイスデータ332は、コンピューティングデバイス302において実行している各アプリケーション334の現在の動作状態を特徴づけることができる。さらに、アプリケーションデータ330は、1つまたは複数のグラフィカルユーザインターフェースのコンテンツが1つまたは複数のアプリケーション334の方向においてレンダリングされることなど、実行アプリケーション334の1つまたは複数の特徴を特徴づけることができる。代替または追加として、アプリケーションデータ330はアクションスキーマを特徴づけることができ、アクションスキーマは、それぞれのアプリケーションの現在の動作ステータスに基づいて、それぞれのアプリケーションによっておよび/または自動アシスタント304によって更新され得る。代替または追加として、1つまたは複数のアプリケーション334についての1つまたは複数のアクションスキーマは、静的なままであり得るが、自動アシスタント304を介して初期化すべき好適なアクションを決定するために、アプリケーション状態エンジンによってアクセスされ得る。
【0047】
コンピューティングデバイス302はアシスタント呼出しエンジン322をさらに含むことができ、アシスタント呼出しエンジン322は、アプリケーションデータ330、デバイスデータ332、コンテキストデータ336、および/またはコンピューティングデバイス302にとってアクセス可能である任意の他のデータを処理するために、1つまたは複数のトレーニングされた機械学習モデルを使用することができる。アシスタント呼出しエンジン322は、自動アシスタント304を呼び出すためにユーザが呼出しフレーズを明示的に口頭で伝える(speak)のを待つべきか否かを決定するためにこのデータを処理することができ、またはそのデータが、ユーザが呼出しフレーズを明示的に口頭で伝えることを必要とする代わりに、自動アシスタントを呼び出そうというユーザによる意図を示すと見なすことができる。たとえば、1つまたは複数のトレーニングされた機械学習モデルは、複数のデバイスおよび/またはアプリケーションが様々な動作状態を呈している環境にユーザがいるシナリオに基づくトレーニングデータの事例を使用して、トレーニングされ得る。トレーニングデータの事例は、ユーザが自動アシスタントを呼び出すコンテキストと、ユーザが自動アシスタントを呼び出さない他のコンテキストとを特徴づけるトレーニングデータをキャプチャするために、生成され得る。1つまたは複数のトレーニングされた機械学習モデルが、トレーニングデータのこれらの事例に従ってトレーニングされるとき、アシスタント呼出しエンジン322は、コンテキストおよび/または環境の特徴に基づいて、自動アシスタント304にユーザからの口頭の呼出しフレーズを検出させるか、または検出することを制限させることができる。
【0048】
いくつかの実装形態では、アシスタント呼出しエンジン322は、ユーザが自動アシスタント304および/またはロボットコンピューティングデバイスの動作から恩恵を受けたいという意思を表現しているかどうかを決定するために、1つまたは複数のアシスタントインターフェース320を使用して生成されたデータを処理することができる。たとえば、1つまたは複数のアシスタントインターフェース320を介してキャプチャされたデータは、ユーザの口頭の発話、非言語的ジェスチャー、非流暢性(disfluency)、および/または他の動きが、ロボットコンピューティングデバイスに対する呼出しと見なされ得るかどうかを決定するために、アシスタント呼出しエンジン322によって処理され得る。代替または追加として、データは、ユーザがそのような入力および/または動きを提供した、コンテキストを決定するために、処理され得る。ユーザの決定されたコンテキストおよび/または表現に基づいて、ロボットコンピューティングデバイスは、ユーザが、ロボットコンピューティングデバイスが特定の動作を実施することを可能にする意思があるかどうかを決定することができる。動作は、たとえば、ロボットコンピューティングデバイスがそうすることの明確な要請をユーザが提供しないにもかかわらず、ユーザに情報を提供することおよび/またはユーザを特定のロケーションまで導くことであり得る。
【0049】
いくつかの実装形態では、システム300は、駆動パラメータエンジン316を含むことができ、駆動パラメータエンジン316は、いくつかのコンテキストにおいておよび/またはいくつかのデータに基づいて、ロボットコンピューティングデバイスを移動するための1つまたは複数のパラメータを決定することができる。たとえば、特定の動作がロボットコンピューティングデバイスによって実施されるための基礎を提供するデータは、特定の動作を履行するときにロボットコンピューティングデバイスをどのように移動すべきかを決定するために、駆動パラメータエンジン316によって処理され得る。たとえば、アプリケーションデータ330、デバイスデータ332、および/またはコンテキストデータ336は、ユーザからの特定の要求に関連付けられた緊急性および/または時間制限があるかどうかを決定するために、処理され得る。いくつかの実装形態では、これは、1つまたは複数のヒューリスティックプロセスおよび/または1つまたは複数のトレーニングされた機械学習モデルを使用して決定され得る。代替または追加として、要求に関連付けられたデータは、潜在空間にマッピングされ得る埋込みを生成するために駆動パラメータエンジン316によって処理され得、あるポイントおよび/またはエリアまでの潜在空間における距離は、要求が緊急であるか否かを示すことができる。駆動パラメータエンジン316によるこの処理は、速度、加速度、進行時間、電力制限、および/またはロボットデバイスを駆動することに関連付けられ得る任意の他のパラメータなど、駆動パラメータを決定するために利用され得る。
【0050】
たとえば、アプリケーションデータ330は、緊急の通知を提供したデバイスのロケーションまで導かれることをユーザが要求したことを示すことができる。アプリケーションデータ330は、アプリケーションが特定のステータスを呈しており、その特定のステータスが、他の通知および/または他のアプリケーションステータスに対して特に緊急であると予測されると決定するために、駆動パラメータエンジン316によって処理され得る。いくつかの実装形態では、この決定は、アプリケーションステータスが時間品質を有するかどうかに基づき得る(たとえば、電話が鳴っており、重要な連絡先が発呼しており、したがって、その電話呼に答えるためにある量の時間しかない)。この決定に基づいて、駆動パラメータエンジン316は、デバイスのロケーションまで導かれるための要求を履行するとき、ロボットコンピューティングデバイスの1つまたは複数のモーターを制御するための速度パラメータを識別することができる。いくつかの実装形態では、システム300はレイアウト検出エンジン318を含むことができ、レイアウト検出エンジン318は、ロボットコンピューティングデバイスが、ロボットコンピューティングデバイスが位置する空間または構造物内の部屋の相対ロケーションおよび/または他の特徴を決定することを可能にすることができる。たとえば、レイアウト検出エンジン318は、ロボットコンピューティングデバイスによって、ユーザからの入力に応答して、デバイス、ユーザ、部屋のロケーション、ならびに/あるいは空間および/または構造物の特徴を識別することを試みるときに利用され得る。
【0051】
いくつかの実装形態では、レイアウト検出エンジン318は、他のデバイスに、ロボットコンピューティングデバイスが位置する空間の他の部分に対するロボットコンピューティングデバイスの今のロケーションを決定するのを支援するための出力を提供させることができる。たとえば、レイアウト検出エンジン318は、特定の部屋の中のデバイスが、特定の部屋についての名称(たとえば、「ランドリールーム」)を示すことができるユーザ定義されたラベル(たとえば、「ランドリールームスピーカー」)を有すると決定するために、アプリケーションデータ330を処理することができる。ロボットコンピューティングデバイスが、特定の部屋に入るように導かれたとき、レイアウト検出エンジン318は、デバイスが出力を提供する(たとえば、ライトまたはディスプレイを照らす、オーディオをレンダリングする、アンテナ信号を送信するなど)ことを引き起こすことができる。レイアウト検出エンジン318は、ロボットコンピューティングデバイスの今のロケーションと比較して特定の部屋の相対ロケーションを決定するために、時間ウィンドウまたは持続時間内に受信された、1つまたは複数の異なるデバイスからの出力(たとえば、信号品質、振幅、大きさ、オーディオ周波数、光周波数など)の1つまたは複数の異なる特性(たとえば、信号メトリック)を識別することができる。
【0052】
たとえば、ロボットコンピューティングデバイスは、ロボットコンピューティングデバイスが、ユーザ要求によって指定されたまたはそれから推論された部屋に関連付けられたセマンティックラベルを有する1つまたは複数のデバイスとコロケートされたかどうかを決定することができる。この決定に基づいて、レイアウト検出エンジン318は、ロボットコンピューティングデバイスを、ロボットコンピューティングデバイスの今のロケーションから所望の部屋のロケーションにどのように移動すべきかを決定することができる。いくつかの実装形態では、構造物(たとえば、自宅または会社)内のロケーションは、パブリック知識グラフ解析および/またはパーソナル知識グラフ解析を使用してマッピングされ得る。パブリック知識グラフは、1人または複数のユーザ、人、および1つまたは複数の他のアプリケーションの間の事前対話に基づいて生成され得る。代替または追加として、プライベート知識グラフは、ユーザと1つまたは複数のアプリケーション(たとえば、アシスタントアプリケーションおよび/またはIoTアプリケーション)との間の事前対話に基づいて生成され得る。
【0053】
いくつかの実装形態では、システム300は、いくつかの動作を実施し、特定のユーザと対話し、および/または場合によってはロボットコンピューティングデバイスを測位するための、ロボットコンピューティングデバイスの選好されるロケーションを決定することができる、位置選好エンジン326を含むことができる。位置選好エンジン326は、ロボットコンピューティングデバイスの現在の位置がユーザからの要求を履行するのに好適であるかどうかを決定するために、1つまたは複数のヒューリスティックプロセスおよび/またはトレーニングされた機械学習モデルを使用して、データを処理することができる。いくつかの実装形態では、選好される位置が、ユーザによって直接要求され、および/または1人または複数のユーザとの1つまたは複数の事前対話から推論され得る。たとえば、ユーザは、ロボットコンピューティングデバイスが部屋内の第1のロケーションにおいていくつかの動作(たとえば、電話呼またはビデオ呼を可能にすること)を実施し、部屋内の第2のロケーションにおいて他の動作(たとえば、音楽を再生すること)を実施することを、明確にまたは間接的に要求することができる。これらの選好されるロケーションは、異なるユーザについておよび/または異なる部屋について異なり得る。
【0054】
たとえば、第1のユーザがロボットコンピューティングデバイスを介してボイス呼を受信するとき、ロボットコンピューティングデバイスは、部屋における第1のロケーションまでナビゲートし得る。しかしながら、第2のユーザがボイス呼を受信するとき、ロボットコンピューティングデバイスは、第2のユーザがロボットコンピューティングデバイスを介してボイス呼を受信することができるように、部屋における第2のロケーションまでナビゲートし得る。いくつかの実装形態では、位置選好エンジン326は、ロボットコンピューティングデバイスについての動的位置を決定することができる。たとえば、第1のユーザは、ロボットコンピューティングデバイスが、音楽を再生するときに距離x(ここで、xは任意の距離値である)だけ第1のユーザを追うことを選好することができる。しかしながら、第2のユーザは、ロボットコンピューティングデバイスが、ニュースレポートおよび会議呼をレンダリングするときに異なる距離y(ここで、yは任意の距離値である)だけ第2のユーザを追うことを選好することができる。
【0055】
図4は、第1のユーザから第2のユーザにロボットコンピューティングデバイスによって中継され得るユーザ入力および/またはユーザ応答を言い換えるように、ロボットコンピューティングデバイスを動作させるための方法400を示す。ロボットコンピューティングデバイスは、ロボットコンピューティングデバイスに明確に提供されたおよび/またはロボットコンピューティングデバイスによって推論された入力のタイプに従って、異なる速度においてロケーション間でメッセージを中継することができる。方法400は、自動アシスタントに関連付けられ得る1つまたは複数のコンピューティングデバイス、アプリケーション、および/あるいは任意の他の装置またはモジュールによって実施され得る。方法400は、口頭の発話および/または他のユーザ入力がロボットコンピューティングデバイスに提供されたかどうかを決定する動作402を含むことができる。ロボットコンピューティングデバイスは、ユーザの自宅内の様々なロケーションに移動し、データを送信および受信するために1つまたは複数の異なるネットワークに接続することができる、コンピューティングデバイスであり得る。口頭の発話または他のユーザ入力がロボットコンピューティングデバイスにおいて検出されたとき、方法400は動作404に進むことができる。他の場合、ロボットコンピューティングデバイスは、引き続き、ユーザが入力を提供したかどうかを決定することができる。
【0056】
動作404は、ユーザが、進行を必要とし得る動作を実施するようにロボットコンピューティングデバイスを導いたかどうかを決定することを含むことができる。進行を必要とし得る動作は、ロボットコンピューティングデバイスが可聴音および/または可視オーディオを出すことができる距離内に位置しないことがある別のユーザに、メッセージを中継することを含むことができる。たとえば、第1のユーザからの口頭の発話は、ロボットコンピューティングデバイスが、第1のユーザとは異なる部屋に位置する第2のユーザに可聴メッセージを提供するための要求を含むことができる。第1のユーザからの口頭の発話は、たとえば、「シェリがちょうど家の前に停車したところなので、私は出発する必要があるとフェニックスに告げて」であり得る。この口頭の発話は、ロボットコンピューティングデバイスが、少なくとも、第2のユーザ(たとえば、「フェニックス」)のロケーションに移動する動作と、第2のユーザにメッセージ(たとえば、「シェリがちょうど家の前に停車したところなので、マークは今、出発しようとしています。」)を提供する別の動作とを実施するための要求を具現することができる。ロボットコンピューティングデバイスが別のロケーションに進行するための要求が、受信されたと決定されるとき、方法400は、動作404から動作406に進むことができる。他の場合、方法400は、動作404から動作410に進むことができる。
【0057】
動作406は、ユーザからの要求が、増加された相対的重要性を有するかどうかを決定することを含むことができる。増加された相対的重要性は、ユーザおよび/または1人または複数の他のユーザによって提示された他の要求に対する、要求の優先度または重大度を指すことができる。たとえば、いくつかの実装形態では、口頭の発話が、増加された相対的重要性を有することが意図されるかどうかを決定するために、口頭の発話の声の特性(たとえば、調子(cadence)、1秒当たりのワードなど)が識別および処理され得る。いくつかの実装形態では、時間イベントに対応する動作要求が、要求の相対的重要性を示すことができる。たとえば、少なくとも、しきい値持続時間内に変化しない特定の確率を有する、状況に関連付けられた要求は、増加されない相対的重要性のものと見なされ得る。しかしながら、少なくとも、しきい値持続時間内に変化する特定の確率を有する、状況に関連付けられた異なる要求は、増加された相対的重要性のものと見なされ得る。
【0058】
口頭の発話「シェリがちょうど家の前に停車したところなので、私は出発する必要があるとフェニックスに告げて」が、ロボットコンピューティングデバイスによって受信されるとき、口頭の発話は、増加された相対的重要性の要求を具現すると決定され得る。この決定は、1つまたは複数のヒューリスティックプロセスおよび/または1つまたは複数のトレーニングされた機械学習モデルに少なくとも部分的に基づき得る。たとえば、ロボットコンピューティングデバイスおよび/または他のコンピューティングデバイスは、口頭の発話において具現される要求が、時間イベント(たとえば、ユーザが出発する必要があること)を特徴づけ、および/または緊急性を示すトーン(たとえば、「...私は...出発する...必要が..ある...」などのユーザのボイスの調子)で提供されると決定することができる。ユーザとロボットコンピューティングデバイス、および/または1つまたは複数の他のアプリケーションとの間の履歴対話に基づいて、ロボットコンピューティングデバイスは、この調子が、ユーザの一般的な調子とは異なり、緊急性の意味を示すと決定することができる。
【0059】
ユーザが、増加された相対的重要性を有する要求を提供したと決定されるとき、方法400は、動作408に進むことができる。他の場合、方法400は、動作412に進むことができる。動作408は、ロボットコンピューティングデバイスに、第1の駆動パラメータに従って進行させることを含むことができる。たとえば、第1の駆動パラメータは、限定はしないが、ユーザからの要求を履行するために利用される加速度の量、速度の量、および/またはエネルギーの量を含むことができる。第1の駆動パラメータが選択されるとき、ロボットコンピューティングデバイスの消費されるエネルギーおよび/または速度の量は、増加されない相対的重要性の要求のために選択される他の値に対して、増加されるように選択され得る。たとえば、動作412は、ロボットコンピューティングデバイスに、第1の駆動パラメータとは異なり得る第2の駆動パラメータに従って進行させることを含むことができる。第2の駆動パラメータは、第1の駆動パラメータに対応する設定よりも低くなり得る速度設定および/または加速度設定を特徴づけることができる。第1の駆動パラメータおよび/または第2の駆動パラメータがロボットコンピューティングデバイスの進行動作を制御するために採用されるとき、方法400は、動作408または動作412から、動作410に進むことができる。
【0060】
動作410は、ロボットコンピューティングデバイスに、要求された動作を実施させることを含むことができる。動作410は、ユーザが目的地に到着したとき、および/または対応する目的地へ向かう途中で実施され得る。要求された動作は、たとえば、別のユーザに対して出力をレンダリングすること、別のコンピューティングデバイスのロケーションを識別すること、目的地において利用可能である情報を検索すること、および/またはコンピューティングデバイスが実施することを要求され得る任意の他の動作であり得る。上述の例を促進するために、ロボットコンピューティングデバイスは、第2のユーザ(すなわち、フェニックス)に対して、「シェリがちょうど家の前に停車したところなので、マークは今、出発しようとしています」などの可聴出力をレンダリングすることができる。いくつかの実装形態では、ロボットコンピューティングデバイスからの出力は、第1のユーザからの口頭の発話とは異なり得るが、第1のユーザによって提供された情報を伝達することができる。方法400は、動作410から、第1のユーザ、第2のユーザ、または別のユーザがロボットコンピューティングデバイスに追加の要求を提供すると予測されるかどうかを決定する動作414に進むことができる。
【0061】
ロボットコンピューティングデバイスは、ユーザによって実施された1つまたは複数の直接的および/または間接的ジェスチャーに基づいて、ユーザがロボットコンピューティングデバイスに追加の要求を提供すると予測されるかどうかを決定することができる。たとえば、ロボットコンピューティングデバイスは、ユーザからの事前許可を伴って、ユーザが、デバイスを凝視した、ユーザのボイスをデバイスまで導いた、デバイスのほうへ動いた、および/またはユーザがロボットコンピューティングデバイスに追加の要求を提供することに対する関心を示すジェスチャーを実施したと、決定することができる。上述の例を促進するために、動作414は、第1のユーザおよび/または第2のユーザに関して実施され得る。たとえば、ロボットコンピューティングデバイスが、第2のユーザに達し、可聴出力を提供するとき、ロボットコンピューティングデバイスは、第2のユーザからの事前許可を伴って、第2のユーザがロボットコンピューティングデバイスに入力を提供すると予測されるかどうかを決定することができる。代替または追加として、動作414は、ロボットコンピューティングデバイスが、第2のユーザに可聴出力を提供した後に、第1のユーザに戻るときに実施され得る。ユーザがロボットコンピューティングデバイスに追加の入力を提供すると予測されるとき、方法400は、動作416に進むことができる。他の場合、方法400は、入力がロボットコンピューティングデバイスに提供されたかどうかを決定するための動作402に戻ることができる。
【0062】
動作416は、予測された入力のタイプに従って、ロボットコンピューティングデバイスにユーザを追わせること、または場合によってはユーザとともに移動させることを含むことができる。たとえば、ロボットコンピューティングデバイスが、第2のユーザが可聴出力に応答して入力を提供することになると予測したとき、ロボットコンピューティングデバイスは、第2のユーザとともに移動することができる。いくつかの実装形態では、ロボットコンピューティングデバイスは、予測された入力のタイプおよび/または入力予測についての信頼性スコアに対応する、持続時間の間、第2のユーザとともに移動することができる。たとえば、ロボットコンピューティングデバイスが、第1の信頼性スコアをもつ今度の入力を予測するとき、ロボットコンピューティングデバイスは、第1の持続時間の間、ユーザを追うことができる。しかしながら、ロボットコンピューティングデバイスが、第1の信頼性スコアよりも大きい第2の信頼性スコアをもつ別の今度の入力を予測するとき、ロボットコンピューティングデバイスは、第1の持続時間よりも長い第2の持続時間の間、ユーザを追うことができる。その後、方法400は、ユーザがロボットコンピューティングデバイスに入力を提供したかどうかを決定するための動作402に戻ることができる。
【0063】
図5は、セマンティックラベルを、1人または複数のユーザおよび/またはロボットコンピューティングデバイスによって占有される空間または構造物内の1つまたは複数のエリアに自律的に割り当てるように、ロボットコンピューティングデバイスを動作させるための方法500を示す。セマンティックラベルは、ロボットコンピューティングデバイスがユーザ選好に従っていくつかのエリアにおいていくつかのアクションを実施することを保証することを促進するために、いくつかのロケーションに割り当てられ得る。方法500は、任意のコンピューティングデバイス、アプリケーション、および/あるいはロボットコンピューティングデバイスと対話することが可能な任意の装置またはモジュールによって実施され得る。方法500は、ロボットコンピューティングデバイスによって占有される空間のエリアが、セマンティックラベルに関連付けられないかどうかを決定する動作502を含むことができる。たとえば、ロボットコンピューティングデバイスは、1人または複数のユーザ(たとえば、母ユーザおよび娘ユーザ)によって占有される自宅において動作することができ、自宅は、様々な異なるエリア(たとえば、リビングルーム、キッチン、オフィス、ベッドルームなどの異なる部分)を含むことができる。動作502は、ユーザがロボットコンピューティングデバイスに入力を提供するより前に、またはそれに応答して、ロボットコンピューティングデバイスが自宅のキッチンに位置するときに初期化され得る。このようにして、各セマンティックラベルは、ロボットコンピューティングデバイスにおけるおよび/またはその近くのロケーションに関係する情報を用いてより効果的に実施され得る特定のアクションを、ロボットコンピューティングデバイスが実行するのを支援することができる。たとえば、ロボットコンピューティングデバイスが、自宅内の第2のユーザと通信するように第1のユーザによって導かれるとき、ロボットコンピューティングデバイスは、第2のユーザからの事前許可を伴って、第2のユーザのロケーションと、随意に、その後、第1のユーザのロケーションとを予測するために、自宅の異なる部分についてのセマンティックラベルにアクセスすることができる。
【0064】
ロボットコンピューティングデバイスは、ロボットコンピューティングデバイスによって占有されるまたはその近くの空間がセマンティックラベルに関連付けられないと決定するとき、方法500は、動作502から動作504に進むことができる。他の場合、ロボットコンピューティングデバイスは、引き続き、ロボットコンピューティングデバイスにおけるまたはその近くの空間がセマンティックラベルに関連付けられるかどうかを決定することができる。動作504は、スマートデバイスの第1のセットに、第1の時間ウィンドウ中に1つまたは複数の第1の出力を放出させることを含むことができる。スマートデバイスの第1のセットは、スマートデバイスの第1のセットが、関係するコンテンツをもつラベル(たとえば、「キッチンカウンタースピーカー」、「冷蔵庫スマートディスプレイ」など)を割り当てられたことに基づいて、1つまたは複数の第1の出力を放出するために選択され得る。代替または追加として、スマートデバイスの第1のセットは、ロボットコンピューティングデバイスの1つまたは複数のセンサーからのデータを使用して経時的に生成されるマップ上の1つまたは複数の特定のロケーションに位置する、いくつかのデバイスを含むことができる。たとえば、ロボットコンピューティングデバイスが、第1のユーザの自宅内の異なるロケーションに移動するとき、ロボットコンピューティングデバイスは、自宅内のいくつかのデバイスのいくつかのロケーションを特徴づけるデータを(自宅内のユーザからの事前許可を伴って)キャプチャすることができる。このデータは、これらのデバイスを、ロボットコンピューティングデバイスおよび/または1つまたは複数の他のデバイスによって生成されるマッピング上のロケーションと相関させるために利用され得る。
【0065】
方法500は、動作504から、スマートデバイスの第2のセットに、第2の時間ウィンドウ中に1つまたは複数の第2の出力を放出させることを含むことができる、動作506に進むことができる。いくつかの実装形態では、1つまたは複数の第1の出力および1つまたは複数の第2の出力は、オーディオ出力および/または視覚出力を含むことができる。たとえば、1つまたは複数の第1の出力は、同じであるかまたは1つまたは複数の第2の出力の1つまたは複数の他の特性とは異なる、1つまたは複数の特性を含むことができる。たとえば、1つまたは複数の第1の出力は、1つまたは複数の第2の出力によって具現される1つまたは複数の他の周波数(たとえば、オーディオおよび/または視覚)とは異なる、1つまたは複数の周波数(たとえば、オーディオおよび/または視覚)を具現することができる。いくつかの実装形態では、スマートデバイスの第2のセットは、ロボットコンピューティングデバイスが、スマートデバイスの第2のセットがスマートデバイスの第1のセットとは異なる、空間の部屋および/またはエリアに位置すると決定したことに基づいて、1つまたは複数の第2の出力を放出するために選択され得る。
【0066】
方法500は、動作506から、ロボットコンピューティングデバイスの1つまたは複数のセンサーによって生成されたセンサーデータを処理することを含むことができる、動作508に進むことができる。いくつかの実装形態では、第1の時間ウィンドウと第2の時間ウィンドウとは、少なくとも部分的に重複しているか、または重複してない持続時間であり得る。たとえば、第1の時間ウィンドウ中にキャプチャされたセンサーデータは、第2の時間ウィンドウ中にキャプチャされた他のセンサーデータと同じ、または他のセンサーデータとは異なるタイムスタンプを有することができる。いくつかの実装形態では、ロボットコンピューティングデバイスおよび/または1つまたは複数の他のコンピューティングデバイスによってキャプチャされたセンサーデータは、スマートデバイスの第1のセットおよび/またはスマートデバイスの第2のセットがロボットコンピューティングデバイスとコロケートされたかどうかを決定するために、処理され得る。たとえば、第1の時間ウィンドウ中の検出された出力の大きさが、第2の時間ウィンドウ中の別の検出された出力の大きさと比較され得る。この比較は、スマートデバイスの第1のセットまたはスマートデバイスの第2のセットが、ロボットコンピューティングデバイスによって占有されるエリアにおいてまたはその近くでコロケートされたかどうかを示すことができる。代替または追加として、検出された出力の1つまたは複数の特性が、決定され、特性の第1のセットおよび/または特性の第2のセットと比較され得る。特性の第1のセットが、ロボットコンピューティングデバイスによって検出された出力において具現されるものとして検出されるとき、ロボットコンピューティングデバイスは、スマートデバイスの第1のセットがロボットコンピューティングデバイスにおいてまたはその近くでコロケートされたと決定することができる。代替または追加として、特性の第2のセットが、ロボットコンピューティングデバイスによって検出された出力において具現されるものとして検出され、随意に、特性の第2のセットがないとき、ロボットコンピューティングデバイスは、スマートデバイスの第2のセットがロボットコンピューティングデバイスにおいてまたはその近くでコロケートされたと決定することができる。
【0067】
いくつかの実装形態では、検出された特性は、出力の大きさ、出力の周波数、(たとえば、設定された大きさと比較された)出力の大きさの変化、(たとえば、設定された周波数と比較された)出力の周波数の変化または変調、および/またはレンダリングされた出力に関連付けられ得る任意の他の特性を含むことができる。いくつかの実装形態では、オーディオおよび/または視覚出力は、自然の人間および/または非固有の特徴によって支援されない人間によって、視覚的に検出可能でないおよび/または可聴的に検出可能でないことがある1つまたは複数の周波数においてレンダリングされ得る。いくつかの実装形態では、デバイスのセットによってレンダリングされた出力は、デバイスの別のセットによってレンダリングされた他の出力と区別され得る1つまたは複数の異なる出力(たとえば、異なるインターフェースモダリティによってレンダリングされた出力)の組合せを含むことができる。
【0068】
ロボットコンピューティングデバイスが、スマートデバイスの特定のセット(たとえば、第1のセットおよび/または第2のセット)とコロケートされたと決定されるとき、方法500は、動作510から動作512に進むことができる。動作512は、ロボットコンピューティングデバイスによって現在占有されている空間内のエリアについてのセマンティックラベルを生成することを含むことができる。いくつかの実装形態では、スマートデバイスのセットは、限定はしないが、スマートライト、スマートテレビジョン、スマートサーモスタット、スマートスピーカー、ならびに/あるいはユーザに関連付けられ得、別個のデバイスおよび/またはアプリケーションを介して制御され得る任意の他のデバイスを含むことができる。いくつかの実装形態では、セマンティックラベルは、空間または構造物内の部屋の既存の記述子に基づき得、その記述子は、スマートデバイスの検出されたセットに前に割り当てられた。たとえば、スマートデバイスの検出されたセットは、自動アシスタントおよび/あるいは他のデバイスまたはアプリケーションへの明確なユーザ入力に応答して、ユーザによって記述子(たとえば、「サムの部屋[デバイスタイプ]」)を割り当てられ得る。代替または追加として、スマートデバイスの検出されたセットは、1つまたは複数のヒューリスティックプロセスおよび/または1つまたは複数の機械学習モデルを使用してデータを処理することに基づいて生成され得る記述子を割り当てられ得る。ロボットコンピューティングデバイスによって占有されるエリアがセマンティックラベルを割り当てられるとき、セマンティックラベルは、空間または構造物内のロケーション間で移動するためにロボットコンピューティングデバイスによって利用され得る生成されたマップ上のロケーションに関連して、記憶され得る。
【0069】
ユーザが、たとえば、セマンティックラベルと同義である口頭の入力を提供するとき、ロボットコンピューティングデバイスは、口頭の入力を、セマンティックラベルが割り当てられるエリアと相関させることができる。このようにして、ロボットコンピューティングデバイスは、ユーザが、ロボットコンピューティングデバイスに対して、自宅内のエリアを明確に識別する必要なしに、ユーザの自宅をマッピングするための既存のデータおよび/または他の情報を利用することができる。これは、ロボットコンピューティングデバイスが、より少ない情報がユーザによって明確に提供される、いくつかの要求を履行することを可能にし、それにより、ロボットコンピューティングデバイスの計算リソースを保持することができる。たとえば、セマンティックラベル(たとえば、「シェリの部屋」)がマップのエリアに割り当てられるとき、ロボットコンピューティングデバイスは、いくつかの事例では、ロボットコンピューティングデバイスに提供された自然言語入力(たとえば、「ディナーの準備ができているとシェリに言いに行って」)において、セマンティックラベル(または、セマンティックラベルの同義の用語および/または部分)が識別されるとき、そのエリアまでナビゲートすることができる。ロボットコンピューティングデバイスが、スマートデバイスのいずれのセットもロボットコンピューティングデバイスとコロケートされないと決定するとき、方法500は、動作510から動作514に進むことができる。動作514は、ロボットコンピューティングデバイスに、ユーザおよび/またはロボットコンピューティングデバイスによって占有される空間(たとえば、自宅)の異なるエリアに移らせ、随意に動作502を実施させることを含むことができる。
【0070】
図6は、例示的コンピュータシステム610のブロック図600である。コンピュータシステム610は、一般に、バスサブシステム612を介していくつかの周辺デバイスと通信する、少なくとも1つのプロセッサ614を含む。これらの周辺デバイスは、たとえば、メモリ626およびファイル記憶サブシステム626を含む記憶サブシステム624と、ユーザインターフェース出力デバイス620と、ユーザインターフェース入力デバイス622と、ネットワークインターフェースサブシステム616とを含み得る。入力デバイスおよび出力デバイスは、コンピュータシステム610とのユーザ対話を可能にする。ネットワークインターフェースサブシステム616は、外部ネットワークへのインターフェースを提供し、他のコンピュータシステム中の対応するインターフェースデバイスに結合される。
【0071】
ユーザインターフェース入力デバイス622は、キーボード、マウス、トラックボール、タッチパッド、またはグラフィックスタブレットなどのポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、ボイス認識システム、マイクロフォンなどのオーディオ入力デバイス、および/あるいは他のタイプの入力デバイスを含み得る。概して、「入力デバイス」という用語の使用は、情報をコンピュータシステム610の中にまたは通信ネットワーク上に入力するためのすべての可能なタイプのデバイスおよび方法を含むことが意図される。
【0072】
ユーザインターフェース出力デバイス620は、ディスプレイサブシステム、プリンタ、ファックス機械、またはオーディオ出力デバイスなどの非視覚的ディスプレイを含み得る。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、投影デバイス、または視覚画像を作成するための何らかの他の機構を含み得る。ディスプレイサブシステムはまた、オーディオ出力デバイスを介してなど、非視覚的ディスプレイを提供し得る。概して、「出力デバイス」という用語の使用は、コンピュータシステム610からユーザにあるいは別の機械またはコンピュータシステムに情報を出力するためのすべての可能なタイプのデバイスおよび方法を含むことが意図される。
【0073】
記憶サブシステム624は、本明細書において説明されるモジュールの一部または全部の機能を提供する、プログラミングおよびデータ構成を記憶する。たとえば、記憶サブシステム624は、方法400、方法500の選択された態様を実施するための、ならびに/あるいはシステム300、ロボットコンピューティングデバイス104、ロボットコンピューティングデバイス204、自動アシスタント、および/または本明細書において説明される任意の他のアプリケーション、デバイス、装置、および/もしくはモジュールのうちの1つまたは複数を実装するための、論理を含み得る。
【0074】
これらのソフトウェアモジュールは、概して、プロセッサ614によって単独で、または他のプロセッサと組み合わせて実行される。記憶サブシステム624において使用されるメモリ626は、プログラム実行中に命令およびデータを記憶するためのメインランダムアクセスメモリ(RAM)630、ならびに固定命令が記憶される読取り専用メモリ(ROM)632を含む、いくつかのメモリを含むことができる。ファイル記憶サブシステム626は、プログラムおよびデータファイルのための永続記憶装置を提供することができ、ハードディスクドライブ、関連付けられたリムーバブルメディアとともにフロッピーディスクドライブ、CD-ROMドライブ、光ドライブ、またはリムーバブルメディアカートリッジを含み得る。いくつかの実装形態の機能を実装するモジュールは、ファイル記憶サブシステム626によって、記憶サブシステム624に、またはプロセッサ614によってアクセス可能な他の機械に、記憶され得る。
【0075】
バスサブシステム612は、コンピュータシステム610の様々な構成要素およびサブシステムを、意図されるように互いに通信させるための機構を提供する。バスサブシステム612は、単一のバスとして概略的に示されているが、バスサブシステムの代替実装形態は、複数のバスを使用し得る。
【0076】
コンピュータシステム610は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、あるいは任意の他のデータ処理システムまたはコンピューティングデバイスを含む、異なるタイプのものであり得る。コンピュータおよびネットワークの絶え間なく変化する性質により、図6に示されたコンピュータシステム610の説明は、いくつかの実装形態を示すための特定の例にすぎないものとする。図6に示されたコンピュータシステムよりも多いかまたは少ない構成要素を有する、コンピュータシステム610の多数の他の構成が可能である。
【0077】
本明細書において説明されるシステムが、ユーザ(または、本明細書においてしばしば「参加者」と呼ばれる)についての個人情報を収集するか、または個人情報を利用することがある状況では、ユーザに、プログラムまたは特徴がユーザ情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルアクションもしくはアクティビティ、職業、ユーザの選好、またはユーザの現在の地理的位置についての情報)を収集するかどうかを制御するための、あるいは、ユーザにより関連があり得る、コンテンツサーバからのコンテンツを受信するかどうか、および/またはどのように受信するかを制御するための機会が提供され得る。また、あるデータは、個人を識別可能な情報が除去されるように、記憶または使用される前に1つまたは複数の方法で扱われ得る。たとえば、ユーザの識別情報は、個人を識別可能な情報がユーザについて決定され得ないように扱われ得、または、ユーザの地理的ロケーションは一般化され得、その場合、地理的ロケーション情報は、ユーザの特定の地理的ロケーションが決定され得ないように(市、郵便番号、または州レベルなどまで)取得される。したがって、ユーザは、情報がユーザについてどのように収集されおよび/または使用されるかに対する制御を有し得る。
【0078】
いくつかの実装形態について、本明細書において説明および例示されたが、機能を実施し、ならびに/あるいは、結果および/または本明細書において説明される利点のうちの1つまたは複数を取得するための、様々な他の手段および/または構造が利用されることがあり、そのような変形形態および/または変更形態の各々は、本明細書において説明される実装形態の範囲内であると見なされる。当業者は、本明細書において説明される特定の実装形態に対する多くの等価物を、認識するようになるか、または日常の実験だけを使用して確認することが可能になる。したがって、上記の実装形態は、例として提示されるにすぎず、添付の特許請求の範囲およびその等価物の範囲内で、実装形態が、具体的に説明および請求されるもの以外で実践され得ることを理解されたい。本開示の実装形態は、本明細書において説明される各個々の特徴、システム、物品、材料、キット、および/または方法を対象とする。加えて、2つまたはそれ以上のそのような特徴、システム、物品、材料、キット、および/または方法のいかなる組合せも、そのような特徴、システム、物品、材料、キット、および/または方法が互いに矛盾しない場合、本開示の範囲内に含まれる。
【0079】
いくつかの実装形態では、1つまたは複数のプロセッサによって実装される方法が、提供され、ロボットコンピューティングデバイスによって、ユーザが、ユーザが特定のコンピューティングデバイスのロケーションに確信がないことを示す口頭の発話を発したと決定するステップを含む。口頭の発話は、ロボットコンピューティングデバイスが特定のコンピューティングデバイスのロケーションを識別するための明確な要求を具現しない。方法は、ロボットコンピューティングデバイスによって、ロボットコンピューティングデバイスの出力インターフェースに、ロボットコンピューティングデバイスが特定のコンピューティングデバイスのロケーションを決定することが可能であるという指示をユーザに提供させるステップをさらに含むことができる。方法は、ロボットコンピューティングデバイスによって、ユーザが、ロボットコンピューティングデバイスが特定のコンピューティングデバイスのロケーションのほうへユーザを導くことを可能にする意思があるかどうかを決定することを促進するために、ロボットコンピューティングデバイスの1つまたは複数の入力インターフェースからの入力データを処理するステップをさらに含むことができる。方法は、ロボットコンピューティングデバイスが、ユーザが、ロボットコンピューティングデバイスが特定のコンピューティングデバイスのロケーションのほうへユーザを導くことを可能にする意思があると決定したとき、ロボットコンピューティングデバイスに、ロボットコンピューティングデバイスに対する特定のコンピューティングデバイスの相対ロケーションを推定することを促進するために、特定のコンピューティングデバイスと通信させるステップと、ロボットコンピューティングデバイスに、特定のコンピューティングデバイスの相対ロケーションのほうへ移動させるステップとをさらに含むことができる。
【0080】
本明細書において開示される技術のこれらおよび他の実装形態は、以下の特徴のうちの1つまたは複数を随意に含むことができる。
【0081】
いくつかの実装形態では、ユーザが、ロボットコンピューティングデバイスが特定のコンピューティングデバイスのロケーションのほうへユーザを導くことを可能にする意思があるかどうかを決定することを促進するために、入力データを処理するステップは、ロボットコンピューティングデバイスのほうへのユーザの動きを示す画像データを処理するステップを含む。いくつかの実装形態では、入力データは、ロボットコンピューティングデバイスが特定のコンピューティングデバイスの相対ロケーションを決定するための、ユーザからの明確な要請を特徴づけるオーディオデータがない。いくつかの実装形態では、ロボットコンピューティングデバイスに、特定のコンピューティングデバイスの相対ロケーションのほうへ移動させるステップは、ロボットコンピューティングデバイスに、特定のコンピューティングデバイスを介してアクセス可能であるアプリケーションのステータスに基づいて選択される速度において、特定のコンピューティングデバイスの相対ロケーションのほうへ移動させるステップを含む。それらの実装形態のうちのいくつかでは、アプリケーションは、ボイス呼アプリケーションを含み、アプリケーションのステータスは、ユーザが特定の連絡先からの呼を逃したことを示す。いくつかの実装形態では、ロボットコンピューティングデバイスに、ロボットコンピューティングデバイスに対する特定のコンピューティングデバイスの相対ロケーションを推定することを促進するために、特定のコンピューティングデバイスと通信させるステップが、ロボットコンピューティングデバイスと特定のコンピューティングデバイスとの間の通信に基づく、信号メトリックを決定するステップであって、信号メトリックが、ロボットコンピューティングデバイスからの特定のコンピューティングデバイスの相対距離を示す、ステップを含む。それらの実装形態のうちのいくつかでは、信号メトリックは、特定のコンピューティングデバイスによってレンダリングされる、オーディオ出力のオーディオ振幅を含む。
【0082】
いくつかの実装形態では、1つまたは複数のプロセッサによって実装される方法が、提供され、ロボットコンピューティングデバイスによって、ロボットコンピューティングデバイスおよび第2のユーザとともにある空間に位置する第1のユーザからの口頭の発話を受信するステップを含む。方法は、口頭の発話に基づいて、第1のユーザがロボットコンピューティングデバイスを第2のユーザと通信するように導いたと決定するステップをさらに含むことができる。第2のユーザは、第1のユーザの第1のユーザロケーションとは異なる第2のユーザロケーションに位置する。方法は、口頭の発話に応答して、ロボットコンピューティングデバイスに、第2のユーザロケーションに移動させ、第2のユーザのための出力をレンダリングさせるステップをさらに含むことができる。出力は、第1のユーザからの口頭の発話に基づく自然言語質問を具現する。方法は、ロボットコンピューティングデバイスによって、第2のユーザからの応答する入力を受信するステップをさらに含むことができる。応答する入力は、ロボットコンピューティングデバイスからの出力において具現された自然言語質問に応答する自然言語コンテンツを具現する。方法は、ロボットコンピューティングデバイスが第2のユーザのための出力を提供した後に、ロボットコンピューティングデバイスに、第1のユーザロケーションに移動させ、第1のユーザのための別の出力をレンダリングさせるステップをさらに含むことができる。別の出力は、第2のユーザからの応答する入力を特徴づけ、第2のユーザからの応答する入力において具現された自然言語コンテンツとは異なる他の自然言語コンテンツを具現する。
【0083】
本明細書において開示される技術のこれらおよび他の実装形態は、以下の特徴のうちの1つまたは複数を随意に含むことができる。
【0084】
いくつかの実装形態では、ロボットコンピューティングデバイスに、第2のユーザロケーションに移動させるステップは、第2のユーザに関連付けられたロケーション選好を決定するステップを含む。それらの実装形態のいくつかのバージョンでは、ロボットコンピューティングデバイスに、第2のユーザロケーションに移動させるステップは、ロボットコンピューティングデバイスに、ロケーション選好によって示された選好されるロケーションに対応する特定のロケーションに移動させるステップを含む。ロケーション選好は、ロボットコンピューティングデバイスが第2のユーザと通信するときのロボットコンピューティングデバイスのための選好されるロケーションを示すことができる。それらのバージョンのうちのいくつかでは、選好されるロケーションは、第2のユーザからのロボットコンピューティングデバイスの選好される距離を示し、特定のロケーションは、第2のユーザの第2のロケーションから、少なくとも、選好される距離離れている。いくつかの実装形態では、ロボットコンピューティングデバイスに、第1のユーザロケーションに移動させるステップは、第1のユーザに関連付けられたロケーション選好を決定するステップと、ロボットコンピューティングデバイスに、ロケーション選好によって示された選好されるロケーションに対応する特定のロケーションに移動させるステップとを含む。ロケーション選好は、ロボットコンピューティングデバイスが第1のユーザのための特定のタイプの出力をレンダリングするときのロボットコンピューティングデバイスのための選好されるロケーションを示すことができる。たとえば、特定のタイプの出力は、ロボットコンピューティングデバイスのオーディオ出力インターフェースを介して提供される可聴出力、またはロボットコンピューティングデバイスのディスプレイインターフェースを介して提供される視覚出力を含む。たとえば、特定のタイプの出力は、別のユーザからのメッセージを特徴づけるコンテンツを伴う可聴出力であり得る。
【0085】
いくつかの実装形態では、1つまたは複数のプロセッサによって実装される方法が、提供され、ロボットコンピューティングデバイスにおいて、ロボットコンピューティングデバイスが複数の異なる部屋を含む空間に位置する特定の部屋において動作を実施することをユーザが要求したと決定するステップを含む。方法は、ロボットコンピューティングデバイスによって、複数の異なる部屋のうちの1つまたは複数の部屋における1つまたは複数のデバイスに、ロボットコンピューティングデバイスによって検出可能な1つまたは複数のそれぞれの出力を提供させるステップをさらに含むことができる。方法は、1つまたは複数のそれぞれの出力に基づいて、ロボットコンピューティングデバイスの現在のロケーションが特定の部屋に対応するかどうかを決定するステップをさらに含むことができる。方法は、ロボットコンピューティングデバイスの現在のロケーションが特定の部屋に対応しないとき、ロボットコンピューティングデバイスの現在のロケーションが特定の部屋に対応しないことに基づいて、ロボットコンピューティングデバイスに、特定の部屋に移らせるステップと、ロボットコンピューティングデバイスに、ロボットコンピューティングデバイスが特定の部屋に位置するとき、上記動作を実施させるステップとをさらに含むことができる。
【0086】
本明細書において開示される技術のこれらおよび他の実装形態は、以下の特徴のうちの1つまたは複数を随意に含むことができる。
【0087】
いくつかの実装形態では、ロボットコンピューティングデバイスに、特定の部屋に移らせるステップは、上記動作に対応する特定のタイプの動作を実施するために、特定の部屋の特定の部分が、ユーザによって、選好されると決定するステップと、ロボットコンピューティングデバイスに、特定の部屋の特定の部分に移らせるステップとを含む。いくつかの実装形態では、ロボットコンピューティングデバイスに、特定の部屋に移らせるステップは、上記動作に対応しない特定のタイプの動作を実施するために、特定の部屋の特定の部分が、ユーザによって、選好されると決定するステップと、ロボットコンピューティングデバイスに、特定の部屋の異なる部分に移らせるステップとを含む。いくつかの実装形態では、方法は、ロボットコンピューティングデバイスの現在のロケーションが特定の部屋に対応するとき、ロボットコンピューティングデバイスに、ロボットコンピューティングデバイスが位置する現在の部屋内で、上記動作を実施するための選好される部分である現在の部屋の部分を識別させるステップをさらに含むことができる。それらの実装形態のうちのいくつかでは、ロボットコンピューティングデバイスに、上記動作を実施するための部屋の選好される部分である現在の部屋の部分を識別させるステップは、ユーザが上記動作を要求することに基づいて、ユーザが、ロボットコンピューティングデバイスに、部屋の選好される部分において、上記動作に対応する特定のタイプの動作を実施することを前に要求したと決定するステップを含む。いくつかの実装形態では、方法は、ロボットコンピューティングデバイスの現在のロケーションが特定の部屋に対応しないとき、ロボットコンピューティングデバイスが上記動作を実施するより前に、ロボットコンピューティングデバイスに、ロボットコンピューティングデバイスの今のロケーションが上記動作を実施するために承認されることを確認することをユーザに要請する出力をレンダリングさせるステップをさらに含むことができる。いくつかの実装形態では、方法は、ロボットコンピューティングデバイスの現在のロケーションが特定の部屋に対応するとき、ロボットコンピューティングデバイスに、ロボットコンピューティングデバイスが位置する現在の部屋内で、ユーザが特定の部屋の別の部分に移っている間に上記動作を実施するとき、ユーザに追従するための相対距離を識別させるステップをさらに含むことができる。
【0088】
いくつかの実装形態では、1つまたは複数のプロセッサによって実装される方法が、提供され、モバイルロボットコンピューティングデバイスによって、およびモバイルロボットコンピューティングデバイスのセンサー観測に少なくとも部分的に基づいて生成されたマップに基づいて、モバイルロボットコンピューティングデバイスが、構造物の特定のエリア内に(たとえば、自宅の部屋内に)現在位置すると決定するステップを含む。方法は、モバイルロボットコンピューティングデバイスが、特定のエリア内に位置する間、スマートデバイスの第1のサブセットに、各々、1つまたは複数の第1の出力を放出させるステップと、スマートデバイスの第2のサブセットに、各々、1つまたは複数の第2の出力を放出させるステップとをさらに含むことができる。1つまたは複数の第1の出力は可聴および/または視覚のものであり、1つまたは複数の第1の出力は、スマートデバイスの第1のサブセットが、各々、ホームグラフ中の第1のセマンティックラベルを割り当てられることに応答して、第1の時間ウィンドウ中に、および/または1つまたは複数の第1の特性を伴って、放出させられる。1つまたは複数の第2の出力は可聴および/または視覚のものであり、1つまたは複数の第2の出力は、スマートデバイスの第2のサブセットが、各々、ホームグラフ中の第2のセマンティックラベルを割り当てられることに応答して、第2の時間ウィンドウ中に、および/または1つまたは複数の第2の特性を伴って、放出させられる。方法は、1つまたは複数の第1の出力と1つまたは複数の第2の出力との放出中にセンサーデータを取得するステップをさらに含むことができる。センサーデータは、モバイルロボットコンピューティングデバイスの1つまたは複数のセンサーによって生成される。方法は、センサーデータの解析に基づいて、スマートデバイスの第1のサブセットが、特定のエリアにおいてロボットとコロケートされたと決定するステップをさらに含むことができる。スマートデバイスの第1のサブセットが、特定のエリアにおいてロボットとコロケートされたと決定するステップは、(1)第1の時間ウィンドウ中のものであり、および/または1つまたは複数の第1の特性にマッチする、検出された出力を解析が示すこと、ならびに/あるいは(2)第1の時間ウィンドウ中のものであり、および/または1つまたは複数の第1の特性にマッチする、検出された出力の大きさ、に基づく。方法は、スマートデバイスの第1のサブセットが、所与の部屋においてロボットとコロケートされたとの決定に応答して、推論されたセマンティックラベルを特定のエリアに割り当てるステップをさらに含むことができる。推論されたセマンティックラベルは、ホームグラフ中のスマートデバイスの第1のサブセットに割り当てられた第1のセマンティックラベルと同じであるか、またはそれから導出され得る。
【0089】
本明細書において開示される技術のこれらおよび他の実装形態は、以下の特徴のうちの1つまたは複数を随意に含むことができる。
【0090】
いくつかの実装形態では、1つまたは複数の第1の出力は第1の時間ウィンドウ中に放出され、1つまたは複数の第2の出力は第2の時間ウィンドウ中に放出される。それらの実装形態のいくつかのバージョンでは、スマートデバイスの第1のサブセットが、特定のエリアにおいてロボットとコロケートされたと決定するステップは、検出された出力が、第1の時間ウィンドウ中に発生すると決定するステップと、第2の時間ウィンドウ中に発生する、検出された出力がないと決定するステップとを含む。それらの実装形態のいくつかの追加または代替のバージョンでは、スマートデバイスの第1のサブセットが、特定のエリアにおいてロボットとコロケートされたと決定するステップは、第1の時間ウィンドウ中に発生する検出された出力の大きさが、第2の時間ウィンドウ中に発生する追加の検出された出力の追加の大きさよりも大きいと決定するステップを含む。いくつかの実装形態では、1つまたは複数の第1の出力は第1の特性を有し、1つまたは複数の第2の出力は第2の特性を有する。それらの実装形態のいくつかのバージョンでは、スマートデバイスの第1のサブセットが、特定のエリアにおいてロボットとコロケートされたと決定するステップは、検出された出力が第1の特性にマッチすると決定するステップと、第2の特性にマッチする検出された出力がないと決定するステップとを含む。それらのバージョンのうちのいくつかでは、1つまたは複数の第1の特性は第1の周波数を含み、1つまたは複数の第2の特性は第2の周波数を備える。たとえば、第1の出力は視覚出力を含むことができ、第1の周波数は第1の視覚周波数であり得、第2の出力は第2の視覚出力を含むことができ、第2の周波数は第2の視覚周波数であり得る。いくつかの実装形態では、1つまたは複数の第1の出力は第1の特性を有し、1つまたは複数の第2の出力は第2の特性を有し、スマートデバイスの第1のサブセットが、特定のエリアにおいてロボットとコロケートされたと決定するステップは、検出された出力における第1の特性の大きさが、検出された出力における第2の特性の追加の大きさよりも大きいと決定するステップを含む。それらの実装形態のいくつかのバージョンでは、1つまたは複数の第1の特性は第1の周波数を含み、1つまたは複数の第2の特性を第2の周波数を含む。たとえば、第1の出力は可聴出力を含むことができ、第1の周波数は、人間の聴覚の範囲の外側にある第1の可聴周波数であり、第2の出力は可聴出力を含むことができ、第2の周波数は、人間の聴覚の範囲の外側にある第2の可聴周波数である。
【0091】
いくつかの実装形態では、スマートデバイスの第1のサブセットは、スタンドアロン自動アシスタントデバイスを含み、1つまたは複数の第1の出力は、自動アシスタントデバイスのハードウェアスピーカーを介した第1の可聴出力を含む。いくつかの実装形態では、スマートデバイスの第1のサブセットは、スタンドアロン自動アシスタントデバイスを含み、1つまたは複数の第1の出力は、自動アシスタントデバイスのハードウェアディスプレイを介した、または自動アシスタントデバイスの発光ダイオードを介した第1の視覚出力を含む。いくつかの実装形態では、スマートデバイスの第1のサブセットは、スマートライト、スマートテレビジョン、および/またはスマートサーモスタットを含む。いくつかの実装形態では、ホームグラフ中の第1のセマンティックラベルは、第1の明示的ユーザ入力に基づいてスマートデバイスの第1のサブセットに前に割り当てられた、構造物内の第1の部屋の、第1の記述子であり、および/または、ホームグラフ中の第2のセマンティックラベルは、第2の明示的ユーザ入力に基づいてスマートデバイスの第2のサブセットに前に割り当てられた、構造物内の第2の部屋の、第2の記述子である。いくつかの実装形態では、推論されたセマンティックラベルを特定のエリアに割り当てるステップは、推論されたセマンティックラベルを、モバイルロボットデバイスによる使用のためにマップ中の特定のエリアに自動的に割り当てるステップを含む。それらの実装形態のいくつかのバージョンでは、方法は、推論されたセマンティックラベルを、モバイルロボットデバイスによる使用のためにマップ中の特定のエリアに自動的に割り当てた後に、モバイルロボットデバイスのナビゲーションを制御する際に、推論されたセマンティックラベルを使用するステップをさらに含むことができる。それらのバージョンのうちのいくつかでは、モバイルロボットデバイスのナビゲーションを制御する際に、推論されたセマンティックラベルを使用するステップは、モバイルロボットデバイスの1つまたは複数のマイクロフォンにおいて検出された口頭の入力を処理することに基づいて、口頭の入力の1つまたは複数の用語が、推論されたセマンティックラベルにマッチすると決定するステップと、1つまたは複数の用語が、推論されたセマンティックラベルにマッチすると決定したことに基づいて、および推論されたセマンティックラベルが、マップ中の特定のエリアに割り当てられることに基づいて、ロボットに、特定のエリアまでナビゲートさせるステップとを含む。いくつかの実装形態では、推論されたセマンティックラベルを特定のエリアに割り当てるステップは、グラフィカルユーザインターフェースにおいてユーザに、推論されたセマンティックラベルが、モバイルロボットデバイスによる使用のためにマップ中の特定のエリアに割り当てられることを提案するステップと、提案に応答する、ユーザの肯定的ユーザインターフェース入力の受信に応答して、推論されたセマンティックラベルを、モバイルロボットデバイスによる使用のためにマップ中の特定のエリアに割り当てるステップとを含む。
【符号の説明】
【0092】
102 ユーザ
104 ロボットコンピューティングデバイス
106 部屋
108 可聴出力
110 口頭の発話
112 別の可聴出力
114 特徴
124 デバイス
126 別の部屋
202 ユーザ
204 ロボットコンピューティングデバイス
206 部屋
208 口頭の発話
210 可聴出力
222 他方のユーザ、ユーザ
226 別の部屋、部屋
228 出力、他の出力
230 口頭の発話
242 可聴出力
246 特定のロケーション
300 システム
302 コンピューティングデバイス
304 自動アシスタント
306 入力処理エンジン
308 音声処理エンジン
310 データ構文解析エンジン
312 パラメータエンジン
314 出力生成エンジン
316 駆動パラメータエンジン
318 レイアウト検出エンジン
320 アシスタントインターフェース
322 アシスタント呼出しエンジン
326 位置選好エンジン
330 アプリケーションデータ
332 デバイスデータ
334 アプリケーション
336 コンテキストデータ
338 アシスタントデータ
610 コンピュータシステム
612 バスサブシステム
614 プロセッサ
616 ネットワークインターフェースサブシステム
620 ユーザインターフェース出力デバイス
622 ユーザインターフェース入力デバイス
624 記憶サブシステム
626 メモリ、ファイル記憶サブシステム
630 ランダムアクセスメモリ(RAM)
632 読取り専用メモリ(ROM)
図1A
図1B
図2A
図2B
図2C
図3
図4
図5
図6
【手続補正書】
【提出日】2023-11-08
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
1つまたは複数のプロセッサによって実装される方法であって、前記方法は、
モバイルロボットコンピューティングデバイスによって、および前記モバイルロボットコンピューティングデバイスのセンサー観測に少なくとも部分的に基づいて生成されたマップに基づいて、前記モバイルロボットコンピューティングデバイスが、構造物の特定のエリア内に現在位置すると決定するステップと、
前記モバイルロボットコンピューティングデバイスが、前記特定のエリア内に位置する間、
スマートデバイスの第1のサブセットに、各々、1つまたは複数の第1の出力を放出させるステップであって、前記1つまたは複数の第1の出力が可聴および/または視覚のものであり、前記1つまたは複数の第1の出力は、スマートデバイスの前記第1のサブセットが、各々、ホームグラフ中の第1のセマンティックラベルを割り当てられることに応答して、第1の時間ウィンドウ中に、および/または1つまたは複数の第1の特性を伴って、放出させられる、ステップと、
前記スマートデバイスの第2のサブセットに、各々、1つまたは複数の第2の出力を放出させるステップであって、前記1つまたは複数の第2の出力が可聴および/または視覚のものであり、前記1つまたは複数の第2の出力は、スマートデバイスの前記第2のサブセットが、各々、前記ホームグラフ中の第2のセマンティックラベルを割り当てられることに応答して、第2の時間ウィンドウ中に、および/または1つまたは複数の第2の特性を伴って、放出させられる、ステップと、
前記1つまたは複数の第1の出力と前記1つまたは複数の第2の出力との前記放出中にセンサーデータを取得するステップであって、前記センサーデータが、前記モバイルロボットコンピューティングデバイスの1つまたは複数のセンサーによって生成される、ステップと、
前記センサーデータの解析に基づいて、スマートデバイスの前記第1のサブセットが、前記特定のエリアにおいてロボットとコロケートされたと決定するステップであって、スマートデバイスの前記第1のサブセットが、前記特定のエリアにおいて前記ロボットとコロケートされたと決定するステップは、
前記第1の時間ウィンドウ中のものであり、および/または前記1つまたは複数の第1の特性にマッチする、検出された出力を前記解析が示すこと、ならびに/あるいは
前記第1の時間ウィンドウ中のものであり、および/または前記1つまたは複数の第1の特性にマッチする、前記検出された出力の大きさ
に基づく、ステップと、
スマートデバイスの前記第1のサブセットが、所与の部屋において前記ロボットとコロケートされたとの決定に応答して、
推論されたセマンティックラベルを前記特定のエリアに割り当てるステップであって、前記推論されたセマンティックラベルが、前記ホームグラフ中のスマートデバイスの前記第1のサブセットに割り当てられた前記第1のセマンティックラベルと同じであるか、またはそれから導出される、ステップと
を含む、方法。
【請求項2】
前記1つまたは複数の第1の出力が前記第1の時間ウィンドウ中に放出され、前記1つまたは複数の第2の出力が前記第2の時間ウィンドウ中に放出され、スマートデバイスの前記第1のサブセットが、前記特定のエリアにおいて前記ロボットとコロケートされたと決定するステップは、
前記検出された出力が、前記第1の時間ウィンドウ中に発生すると決定するステップと、前記第2の時間ウィンドウ中に発生する、検出された出力がないと決定するステップと
を含む、請求項1に記載の方法。
【請求項3】
前記1つまたは複数の第1の出力が前記第1の時間ウィンドウ中に放出され、前記1つまたは複数の第2の出力が前記第2の時間ウィンドウ中に放出され、スマートデバイスの前記第1のサブセットが、前記特定のエリアにおいて前記ロボットとコロケートされたと決定するステップは、
前記第1の時間ウィンドウ中に発生する前記検出された出力の前記大きさが、前記第2の時間ウィンドウ中に発生する追加の検出された出力の追加の大きさよりも大きいと決定するステップ
を含む、請求項1に記載の方法。
【請求項4】
前記1つまたは複数の第1の出力が前記第1の特性を有し、前記1つまたは複数の第2の出力が前記第2の特性を有し、スマートデバイスの前記第1のサブセットが、前記特定のエリアにおいて前記ロボットとコロケートされたと決定するステップは、
前記検出された出力が前記第1の特性にマッチすると決定するステップと、前記第2の特性にマッチする検出された出力がないと決定するステップと
を含む、請求項1または請求項2に記載の方法。
【請求項5】
前記1つまたは複数の第1の特性が第1の周波数を備え、前記1つまたは複数の第2の特性が第2の周波数を備える、請求項4に記載の方法。
【請求項6】
前記第1の出力が視覚出力を備え、前記第1の周波数が第1の視覚周波数であり、
前記第2の出力が視覚出力を備え、前記第2の周波数が第2の視覚周波数である、
請求項5に記載の方法。
【請求項7】
前記1つまたは複数の第1の出力が前記第1の特性を有し、前記1つまたは複数の第2の出力が前記第2の特性を有し、スマートデバイスの前記第1のサブセットが、前記特定のエリアにおいて前記ロボットとコロケートされたと決定するステップは、
前記検出された出力における前記第1の特性の大きさが、前記検出された出力における前記第2の特性の追加の大きさよりも大きいと決定するステップ
を含む、請求項1または請求項3に記載の方法。
【請求項8】
前記1つまたは複数の第1の特性が第1の周波数を備え、前記1つまたは複数の第2の特性が第2の周波数を備える、請求項7に記載の方法。
【請求項9】
前記第1の出力が可聴出力を備え、前記第1の周波数が、人間の聴覚の範囲の外側にある第1の可聴周波数であり、
前記第2の出力が可聴出力を備え、前記第2の周波数が、人間の聴覚の前記範囲の外側にある第2の可聴周波数である、
請求項8に記載の方法。
【請求項10】
スマートデバイスの前記第1のサブセットが、スタンドアロン自動アシスタントデバイスを備え、前記1つまたは複数の第1の出力が、前記スタンドアロン自動アシスタントデバイスのハードウェアスピーカーを介した第1の可聴出力を備える、請求項1から9のいずれか一項に記載の方法。
【請求項11】
スマートデバイスの前記第1のサブセットが、スタンドアロン自動アシスタントデバイスを備え、前記1つまたは複数の第1の出力が、前記スタンドアロン自動アシスタントデバイスのハードウェアディスプレイを介した、または前記スタンドアロン自動アシスタントデバイスの発光ダイオードを介した第1の視覚出力を備える、請求項1から10のいずれか一項に記載の方法。
【請求項12】
スマートデバイスの前記第1のサブセットが、スマートライト、スマートテレビジョン、またはスマートサーモスタットを備える、請求項1から11のいずれか一項に記載の方法。
【請求項13】
前記ホームグラフ中の前記第1のセマンティックラベルが、第1の明示的ユーザ入力に基づいてスマートデバイスの前記第1のサブセットに前に割り当てられた、構造物内の第1の部屋の、第1の記述子であり、
前記ホームグラフ中の前記第2のセマンティックラベルが、第2の明示的ユーザ入力に基づいてスマートデバイスの前記第2のサブセットに前に割り当てられた、構造物内の第2の部屋の、第2の記述子である、
請求項1から12のいずれか一項に記載の方法。
【請求項14】
前記推論されたセマンティックラベルを前記特定のエリアに割り当てるステップが、
前記推論されたセマンティックラベルを、前記モバイルロボットコンピューティングデバイスによる使用のために前記マップ中の前記特定のエリアに自動的に割り当てるステップ
を含む、請求項1から13のいずれか一項に記載の方法。
【請求項15】
前記推論されたセマンティックラベルを、前記モバイルロボットコンピューティングデバイスによる使用のために前記マップ中の前記特定のエリアに自動的に割り当てた後に、
前記モバイルロボットコンピューティングデバイスのナビゲーションを制御する際に、前記推論されたセマンティックラベルを使用するステップ
をさらに含む、請求項14に記載の方法。
【請求項16】
前記モバイルロボットコンピューティングデバイスのナビゲーションを制御する際に、前記推論されたセマンティックラベルを使用するステップは、
前記モバイルロボットコンピューティングデバイスの1つまたは複数のマイクロフォンにおいて検出された口頭の入力を処理することに基づいて、前記口頭の入力の1つまたは複数の用語が、前記推論されたセマンティックラベルにマッチすると決定するステップと、
前記1つまたは複数の用語が、前記推論されたセマンティックラベルにマッチすると決定したことに基づいて、および前記推論されたセマンティックラベルが、前記マップ中の前記特定のエリアに割り当てられることに基づいて、前記ロボットに、前記特定のエリアまでナビゲートさせるステップと
を含む、請求項15に記載の方法。
【請求項17】
前記推論されたセマンティックラベルを前記特定のエリアに割り当てるステップは、
グラフィカルユーザインターフェースにおいてユーザに、前記推論されたセマンティックラベルが、前記モバイルロボットコンピューティングデバイスによる使用のために前記マップ中の前記特定のエリアに割り当てられることを提案するステップと、
前記提案に応答する、前記ユーザの肯定的ユーザインターフェース入力の受信に応答して、前記推論されたセマンティックラベルを、前記モバイルロボットコンピューティングデバイスによる使用のために前記マップ中の前記特定のエリアに割り当てるステップと
を含む、請求項1から13のいずれか一項に記載の方法。
【請求項18】
コンピューティングシステムの1つまたは複数のプロセッサによって実行されたとき、前記コンピューティングシステムに、請求項1から17のいずれか一項に記載の方法を実施させる命令を備える、コンピュータプログラム。
【請求項19】
請求項1から17のいずれか一項に記載の方法を実施するように構成された1つまたは複数のコンピューティングデバイスを備えるシステム。
【請求項20】
前記1つまたは複数のコンピューティングデバイスが、モバイルロボットコンピューティングデバイスを備える、請求項19に記載のシステム。
【請求項21】
請求項1から17のいずれか一項に記載の方法を実施するために、コンピューティングシステムの1つまたは複数のプロセッサによって実行可能な命令を記憶する、コンピュータ可読記憶媒体。
【国際調査報告】