(57)【特許請求の範囲】
【請求項１】
ロボット上でソフトウェアアプリケーションを処理する方法であって、前記ロボットは、複数のソフトウェアアプリケーションを実行し、少なくとも２つのソフトウェアアプリケーションが実行に関して競合し、前記方法は、
前記少なくとも２つのソフトウェアアプリケーションのうち少なくとも１つのソフトウェアアプリケーションの前記実行を監視するステップと、
修正要求を受信することに応じて、前記少なくとも１つのソフトウェアアプリケーションを修正するステップと、
前記修正されたソフトウェアアプリケーションを前記ロボット上で実行するステップとを含み、
ソフトウェアアプリケーションは、システム的リスクを示す少なくとも１つの事前定義された修正ルールと関連付けられ、前記ソフトウェアアプリケーションを修正する前記ステップは、前記修正ルールを検証して成功するステップを含み、
ソフトウェアアプリケーションを修正するステップは、前記ソフトウェアアプリケーションを有するプログラムコードを修正するステップを含む、方法。
【請求項２】
ソフトウェアアプリケーションを修正するステップは、前記ソフトウェアアプリケーションと関連付けられた実行ルールを修正するステップを含む、請求項１に記載の方法。
【請求項３】
ソフトウェアアプリケーションを監視するステップは、前記ソフトウェアアプリケーションと関連付けられた実行または使用データを監視するステップを含み、前記データは、頻度、日付、時間、地理的位置、ユーザデータフィードバックまたは入力、ユーザの感情的反応、対話するユーザのプロファイル、対話期間、誤り、関数呼び出し、トリガ条件、およびそれらの組み合わせに関するパラメータを含む群から選択される、請求項１または２に記載の方法。
【請求項４】
前記実行または使用データから統計データを導出するステップをさらに含む、請求項３に記載の方法。
【請求項５】
前記統計データを表示するステップをさらに含む、請求項４に記載の方法。
【請求項６】
ソフトウェアアプリケーションは、人間の監視下で修正される、請求項５に記載の方法。
【請求項７】
ソフトウェアアプリケーションは、人間の監視なしで前記修正要求を受信すると直接修正される、請求項１〜４のいずれか一項に記載の方法。
【請求項８】
ソフトウェアアプリケーションを修正する前にユーザの確認を受信するステップをさらに含む、請求項１〜６のいずれか一項に記載の方法。
【請求項９】
修正要求は、ロボットロジックおよび／またはロボット製造者および／またはアプリケーションプロバイダから受信される、請求項１〜８のいずれか一項に記載の方法。
【請求項１０】
ユーザとの対話中に、前記ロボットにおいて欠落したアプリケーションを識別し、前記欠落したソフトウェアアプリケーションを読み出し、および前記欠落したソフトウェアアプリケーションを前記ロボットにインストールするステップをさらに含む、請求項１〜９のいずれか一項に記載の方法。
【請求項１１】
コンピュータプログラムであって、前記コンピュータプログラムがコンピュータデバイス上で実行されるときに、請求項１〜１０のいずれかに一項に記載の方法のステップを実行する命令を含む、コンピュータプログラム。
【請求項１２】
請求項１〜１０のいずれかに一項に記載の方法のステップを実行するように適合された手段を含む、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本特許は、デジタルデータ処理の分野、特に、人間型ロボットによって実行されるソフトウェアアプリケーションの監視に関する。
【背景技術】
【０００２】
ロボットとのマンマシン対話は、パーソナルコンピュータとの対話と著しく異なる。コンパニオンロボットは、具体的現実における双方向対話および物理的行動により、人間との感情的関係を有利に確立することができる。コンパニオン人間型ロボットに関連して、人間のユーザとの対話モデルは、パーソナルコンピュータ（およびタブレットＰＣまたはスマートフォンなどのそれらの異なる形式）との対話モデルと比較したときに著しく変化する。
【０００３】
センサおよびアクチュエータに加え、コンパニオンロボットは、処理、メモリ、記憶およびＩ／Ｏ手段が備えられる。コンパニオンロボットはまた、特定のソフトウェアアプリケーション（「ａｐｐ」）を組み込み、および実装する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ロボット、特に、ロボットにインストールされたソフトウェアアプリケーションの動作監視の方法およびシステムに対する必要性が存在する。
【課題を解決するための手段】
【０００５】
ロボット上でソフトウェアアプリケーションを処理するコンピュータ実装方法が開示され、前記ロボットは、複数のソフトウェアアプリケーションを実行し、少なくとも２つのソフトウェアアプリケーションが実行に関して競合し、方法は、少なくとも１つのソフトウェアアプリケーションの実行を監視するステップと、修正要求を受信することに応じて、前記少なくとも１つのソフトウェアアプリケーションを修正するステップと、修正されたソフトウェアアプリケーションをロボット上で実行するステップとを含む。
【０００６】
ロボット上では、（少なくとも類似の）ソフトウェアアプリケーションは実行に関して競合する。実施形態では、ソフトウェアアプリケーションは、アプリケーションをどのように、およびいつ実行するかを指定する実行ルールと関連付けられる。ロボットのセンサによって感知されるときの環境に応じて、実行ルールが継続的に適用され、および競合するソフトウェアアプリケーションが比較される。ソフトウェアアプリケーションはまた、実行優先度レベルと関連付けられてもよい。実行ルールおよび／または優先度レベルを検査すると、ソフトウェアアプリケーションが選択および実行される。実行するソフトウェアアプリケーションの全てまたは大部分が監視される（非実行アプリケーションとともに）。前記監視の結果として、１つまたは複数のソフトウェアアプリケーションが修正されてもよい。
【０００７】
発展形態において、ソフトウェアアプリケーションは、システム的リスクを示す少なくとも１つの事前定義された修正ルールと関連付けられ、ソフトウェアアプリケーションを修正するステップは、前記修正ルールを検証して成功するステップを含む。この実施形態は、ロボットの自律性の程度に関する。修正ルールは、例えば、実行の緊急度によってソフトウェアアプリケーションをグループ化することによって、起こり得るシステム的リスクを回避するフィルタとしての役割を果たす。
【０００８】
発展形態において、ソフトウェアアプリケーションを修正するステップは、前記ソフトウェアアプリケーションと関連付けられた実行ルールを修正するステップを含む。この実施形態は、ソフトウェアアプリケーションの実行の条件が変更されてもよいことを指定する。実行ルールは、多くの実行できるパラメータを含む。例えば、アプリケーションの実行の順序または優先度が変更されてもよい。例えば、天気情報は、ニュースＲＳＳの発表よりも高い優先度と関連付けられ得る。或るａｐｐをいくつかの他のものよりも頻繁に開始する（例えば、話すことよりもダンスすること）ためにバイアスが導入されてもよい。最大数の実行が定義されてもよい。発話の全期間が定義されてもよい。最小および／または最大対話時間が定義されてもよい。アプリケーションを開始するために、感知されたコンテキスト（例えば、カテゴリー化されたイベント）が要求されることがある（例えば、笑っている顔の子供の存在または不存在）。実行ルールはまた、任意選択で実行に必要なメタデータ（暗号鍵、セキュアブートなど）を含むことができる。
【０００９】
発展形態において、ソフトウェアアプリケーションを修正するステップは、前記ソフトウェアアプリケーションを有するプログラムコードを修正するステップを含む。ソフトウェアアプリケーションと関連付けられた実行の条件またはメタデータに加え、またはそれを補足して、プログラム自体（コードのライン）が修正されてもよい。アプリケーションの実行のモードが様々な程度に変更されてもよい。換言すると、条件をトリガすることが変更されてもよいだけでなく、アプリケーションの範囲がまた変更されてもよい。
【００１０】
発展形態において、ソフトウェアアプリケーションを監視するステップは、ソフトウェアアプリケーションと関連付けられた実行または使用データを監視するステップを含み、前記データは、頻度、日付、時間、地理的位置、ユーザデータフィードバックまたは入力、ユーザの感情的反応、対話するユーザのプロファイル、対話期間、誤り、関数呼び出し、トリガ条件、およびそれらの組み合わせなどのパラメータを含む群から選択される。
【００１１】
特定の実施形態では、正常に動作しないロボットは、ロボット製造者によってホストされる集中型システムに通知されてもよい。基本的および進化した統計が、詳細な実行データ（アプリケーションが何をするか、例えば、実行された行動、呼び出された関数、入力もしくは出力）および／または使用データ（例えば、コンテキスト、イベント、ユーザ関連データ）から導出されてもよい。
【００１２】
発展形態において、方法は、前記使用実行または使用データから統計データを導出するステップをさらに含む。生データが最初に収集される。次いで、前記生データから統計または分析が導出されてもよい。
【００１３】
発展形態において、方法は、前記統計データを表示するステップをさらに含む。統計は、多くの異なるパーティ、例えば、アプリケーションプロバイダ、ロボット製造者および／またはロボットのユーザ所有者に表示されてもよい。この段階で、人間の監視が行われてもよい。
【００１４】
発展形態において、ソフトウェアアプリケーションは、人間の監視下で修正される。この実施形態は、監視の技術的手段（例えば、通信および表示）を示唆する。それは、「開ループ」構成または機構に対応する。人間は「ループ内」に留まる。実際に、人間の管理者または監視者は、収集されたデータを分析し、さらに、もしあれば矯正行動（ｃｏｒｒｅｃｔｉｖｅ  ａｃｔｉｏｎ）を決定する。ロボティックシステムが人間の環境に適合するためにスクラッチ（ｓｃｒａｔｃｈ）（例えば、上流の）から設計される場合でさえ、このモードは、さらなる規制（すなわち、下流の行動）を可能にする。
【００１５】
発展形態において、ソフトウェアアプリケーションは、人間の監視なしで修正要求を受信すると直接修正されてもよい。この実施形態は、閉ループ規制機構に対応する。Ａｐｐ基準および／または統計がソフトウェアアプリケーションに直接結び付けられる。例えば、事前定義されたロジック（例えば、閾値および完了ルール）に基づいて、自動化ロジックは、フィードバックループを判定および実装することができる。統計が決定支援に対する基準（ｂａｓｉｓ）を構成することができる場合でさえ、導出された統計を表示する必要性は存在しない。実施形態では、（概して管理可能な）遅延を方法として、矯正または順応性（ｐｒｏａｃｔｉｖｅ）行動が、一連のロボット間で伝播されてもよい。いくつかの実施形態では、ローカルルール（例えば、ユーザプロファイル、ユーザ嗜好、またはＡｓｉｍｏｖ「ロボット工学の３つの法則」などのロボット所有ゴールデンセキュリティルール）は、全体的または大規模更新にも関わらず、（全体的にまたは構成可能な程度に）従来のシステムを不変に維持し得る。説明されたロボットヘルス監視モジュールはまた、例えば、ソフトウェアアプリケーションにおける変更を許可または禁止することができる。開ループおよび閉ループスキームが組み合わされてもよい。
【００１６】
いくつかのルールが定義されてもよく、およびａｐｐの適切な監視に基づいてそのような反動フィードバックを管理するために適用されてもよい。例えば、ａｐｐが非常に一般的であると統計が示す場合、対応するアプリケーションのランク付けは、アプリケーションの実行を支持することにつながることがある。ランク付けは、絶対的であってもよく、または実行のコンテキストに依存してもよい。ロボットの介入は概して、ユーザの反応に基づいてスコア付けされてもよく、および関連付けられた関与するアプリケーションは、良好なスコアを引き継ぐことができる。コンピューティングリソースの消費は、アプリケーションの監視を考慮して調整されてもよい（未利用または過度な利用が補償されてもよい）。
【００１７】
発展形態において、方法は、ソフトウェアアプリケーションを修正する前にユーザの確認を受信するステップをさらに含む。この実施形態は、任意の状況で、ユーザ所有者が依然として決定権を有し得ることを強調する。
【００１８】
発展形態において、修正要求は、ロボットロジックおよび／またはロボット製造者および／またはアプリケーションプロバイダから受信される。異なるエンティティは、ソフトウェアアプリケーション上で取られる行動を制御することができる。ロボットの内部ロジック（「意識（ｍｉｎｄ）」）は、ソフトウェアアプリケーションと関連付けられたルールの実行を継続して更新することができ、前記ルールは、例えば、もしあれば衝突を解決するための優先度および／または手段を定義する。ソフトウェアアプリケーションはまた、外部パーティによって制御されてもよい。例えば、ロボットプロバイダ（またはロボッティックプラットフォームオペレータもしくはロボットの製造者）は、制御する（例えば、任意の時点で更新する）ことができる。中間的な解決策または状態が可能であり、ロボットおよび／または他のエンティティ（すなわち、人間および／または他のロボット）は、ロボットを集合的に制御することができる（いくつかの特徴が、事前定義されたパーティによって排他的に制御可能であってもよく、例えば、所与のリアルタイム制約および接続条件）。
【００１９】
発展形態において、方法は、ユーザとの対話中に、ロボットにおいて欠落したアプリケーションを識別し、前記欠落したソフトウェアアプリケーションを読み出し、および前記欠落したソフトウェアアプリケーションをロボットにインストールするステップをさらに含む。
【００２０】
方法の１つまたは複数のステップを実行する命令を含むコンピュータプログラムが開示され、前記コンピュータプログラムは、適切なコンピュータデバイスまたはロボッティックデバイス上で実行される。方法の１つまたは複数のステップを実行するように適合された手段を含むシステムが開示される。
【００２１】
有利には、ａｐｐの動作の監視  −  およびさらにロボットに提供される矯正行動  −  は、ａ）汎用目的でロボッティックプラットフォームオペレータに対して、ｂ）ａｐｐプロバイダに対して（ａｐｐを改善するために、コンテンツを改善するために、例えば、「ジョーク」アプリケーションの場合、ジョークのコンテンツを改善し、バグまたは不正確もしくは最適化されていないルールを補正し、投資、費やされた時間に対する利益を改善するなどのために）、およびｃ）ユーザ自体に対して（ａｐｐの発見、コンパニオンの監視など）、重要である。
【００２２】
ａｐｐプロバイダに対する利点は、例えば、ロボットのインストールされた基盤のより良好な制御を含む。製造者は、ロボットに関する（残余の）法的責任の義務を負っている（または負っていない）ことがある。説明される実施形態は、関連するリスクを軽減し、および対応する操作を処理することを可能にする。プログラムコードの重要な部分は、制御下に残ることができ、他の部分は、クラウドソーシングに移譲またはさらに開放されてもよい。特定の実施形態では、ライセンシングモデルは、ダウンロード毎の支払いであってもよいが、使用毎の支払い（または使用毎の収入）であってもよく、後者のモデルがロボット上のソフトウェアアプリケーションの「競合的実行」に対応する。
【００２３】
アプリケーションプロバイダに対する利点は、ａｐｐの使用に関するローカルな（より狭い）視点にアクセスすることによる、考慮されるアプリケーションの継続的な改善の可能性を含む。アプリケーションとともに費やされる時間は、例えば、全体的に分析されてもよい。さらなる詳細では、アプリケーションの開始のコンテキスト的な条件は、徹底して調査されてもよい。そのような分析はさらに、ａｐｐプロバイダが開始条件を改善し、および／または他の類似のアプリケーションとより良好に競合することを可能にする。
【００２４】
人間のユーザに対する利点は、より良好なユーザ経験、パーソナルロボットのより高速な進化、増大した信頼性、およびロボットの安全性を含む。
【００２５】
ここで、本発明の実施形態が、添付図面を参照して例として説明され、図面では、同様の参照符号が類似の要素を示す。
【図面の簡単な説明】
【００２６】
【図１】本発明の全体的な技術的環境を示す。
【図２】方法の実施形態のいくつかの態様を詳細に示す。
【発明を実施するための形態】
【００２７】
人間型ロボットは、「ソーシャル技術」の形式で現れている。コンパニオンロボットとして、人間型ロボットは、人間のユーザによりパートナとしてますます考慮され、感情的でないにしても持続的な関係および継続的な学習（相互に、すなわち、ロボットがユーザから学習し、逆もまたそうである）を維持している。例えば、マシンのみが存在する場合でさえ、パーソナルロボットは、動作（例えば、ダイエット、スポーツ、または教育）を指導するための大きい価値を提示する。パーソナルコンピュータと比較して、シミュレートされた感情およびボディランゲージは、より魅力的であり、説得力があり、納得させ、または他に信頼できる関係を可能にする。
【００２８】
人間型ロボットは、情報処理マシンであり、したがって、パーソナルコンピュータとの広範囲な比較を確立することができる。いくつかの態様が共通点（ｃｏｍｍｏｎ  ｇｒｏｕｎｄ）と考えられ得る。いくつかの他の態様は、パーソナルロボットおよびパーソナルコンピュータと比較するときに著しく異なる。
【００２９】
例えば、「ソフトウェアアプリケーション」の態様に関し、いくつかの非常に大きい差異が簡潔に強調されてもよい。第１の著しい差異は、パーソナルロボットの多様な特性にあり、すなわち、設計による。コンパニオンロボットは、その所有者に従うことができ（すなわち、転移能力（ｄｉｓｐｌａｃｅｍｅｎｔ  ｃａｐａｂｉｌｉｔｙ）を示す）、および対象物に接触しまたはその環境と対話することができる。設計によって、パーソナルコンピュータは、そのような種々の環境的フィードバックを欠いている。この「多様な」特徴または特性は、ロボット上のアプリケーションの管理に関する深い結論を示唆する。例えば、１つの区別できる態様に従って、複数のソフトウェアアプリケーションは、ロボット上で実行されている間に競合してもよい。そのようなシナリオは、パーソナルコンピュータとは共通していない。
【００３０】
別の差異は、それ自体のマンマシンインタフェースと関連付けられる。パーソナルコンピュータでは、マルチタスキングがソフトウェアアプリケーションを並列して実行することを可能にする場合でさえ、主たる視覚的ヒューマン−マシンインタフェースは通常、一度に１つの主要なソフトウェアアプリケーション（例えば、文書処理）をレンダリングし、ユーザの注意は、１つの主要な認識の動作に少なくとも向けられる。加えて、ユーザは概して、アプリケーションまたは動作をトリガする際に能動的および決定的な役割を有する。パーソナルコンピュータはむしろ受動的である。コンパニオンロボットでは、それらの態様が異なる。ロボットは、音声コマンドを通じて命令に応答することができるが、コンパニオンロボットは概して、さらに「自律的」であり、すなわち、ユーザによってほとんど間接的にトリガされる行動（例えば、ボディランゲージおよび会話）を順応的に開始する。当然のことながら、自律的および多様な特徴は例にすぎず、パーソナルコンピュータとパーソナルロボットとの間にさらなる差異が存在する。
【００３１】
パーソナルコンピュータとパーソナルロボットとの間の差異は、わずかに異なる視点から再度議論される。タブレットまたはスマートフォン上で、所与のアプリケーションの実行が、ユーザによる意図でトリガされる。コンパニオンロボットに関連して、アプリケーションの実行はほとんど自動的に、およびときにはユーザのクエリに応答して（例えば、音声コマンドにより明示的にか、または例えば、ユーザの笑顔の検出により暗示的にかのいずれかで）トリガされる。注目すべきは、アプリケーションの実行は、人間の検知に対して連続的順序でなされる（異なるアプリケーションがバックグラウンドで並列して動作することができないことを意味せず、かつ示唆しない）。例えば、アプリケーション「天気」の実行は、アプリケーション「株取引」の実行に先行することができる。アプリケーション「株取引」がユーザによって中断されると直ちに、アプリケーション「天気」が引き渡され得る。換言すると、コンパニオンロボットとの会話中に捕捉された単語の流れは、アプリケーションの開始に対する案内としての役割を果たす。したがって、まさしくコンパニオンロボットとの対話の特性は、「対話の会話モード」の不足に起因して、タブレットとの通常の対話とは著しく異なる。このモードは特に、設計により多様である。例えば、ユーザの笑顔の検出は、能動的なフィードバックに即時に変換されてもよい。理論的には、タブレットは、タブレットに組み込まれたカメラを通じてユーザの感情を検出することを実装してもよいが、設計によって、タブレットとの対話の従来モードは異なり、およびそのような解決策が開示されず、なおさら実装されないでいた。
【００３２】
要するに、人間型コンパニオンロボット上のソフトウェアアプリケーションの実行を処理するための決定ロジックは、パーソナルコンピュータで実施されているロジックとは著しく異なる。
【００３３】
この態様に関して、ロボット上の（例えば、競合する）ソフトウェアアプリケーションの微妙な「動作」の検出は、新たなサービスの様々な範囲の機会を広げ、新たなサービスは、次いで、より良好なユーザ経験につながることがある。
【００３４】
そのような新たなサービスを説明する前に、いくつかの技術的用語がここで定義される。
【００３５】
ロボットにインストールされたソフトウェアアプリケーションは、いくつかの処理手段によって実行されるときに１つまたは複数の方法ステップを実行することができるコンピュータプログラムコードである。コンパニオンまたは人間型ロボット上のソフトウェアアプリケーションは、対話（例えば、予期される質問に対する応答を含む、事前定義された文の集合）、行動（例えば、ダンスもしくは物理的行動の実行）、および／またはアニメーション（例えば、頭の移動、もしあれば雷の活性化など）、ならびにそれらの組み合わせ（例えば、ダンス中の対話）と関連付けられてもよい。さらに全体的に、ソフトウェアアプリケーションは、他のアプリケーションとの対話もしくは対話能力を有し、またはそれらを有しないスタンドアロンアプリケーションであってもよい。
【００３６】
ロボットに対するソフトウェアアプリケーションの例は、ローカルな天気状態を（例えば、発表し、または発声し、または音声出力を返すことによって）提供するように適合された天気アプリケーション、ゲームアプリケーション、ダンスアプリケーション、物語アプリケーションなどを含む。特に、ロボットに対するソフトウェアアプリケーションがロボットの物理的行動の組（ダンス、移動、対象物をつかみ、および移すこと）につながり得ることに注目すべきである。スマートフォンまたはタブレットに対するソフトウェアアプリケーションは概して、物理的な世界における実際の具体的行動を含まない。
【００３７】
ソフトウェアアプリケーションは相互依存であってもよい。例えば、ソフトウェアアプリケーションは、複合対象物を表すことができるため、先天的に異なるソフトウェアアプリケーション間で観察される「遷移」が存在することがある。タブレットコンピュータ上で、天気ソフトウェアアプリケーションは、気象データを提供し、描画ソフトウェアアプリケーションは、描画ツールを提供する。ロボット上で、「外は−１０℃である」と話した結果がロボットに伴い、ならびに／またはロボットが、紙に雪だるまを描く（および／もしくはジェスチャの組み合わせによって外の寒さを記号で表す）ことが想定可能である。換言すると、多様な出力の結果として、ソフトウェアアプリケーションがさらに組み合わされてもよい（出力レベルにおいて、またはより低いレベルにおいて、例えば、変数、パラメータまたはスクリプトがソフトウェアアプリケーション間で共有または修正されてもよい）。
【００３８】
図１は、本発明の全体的および技術的環境を示す。ロボット１３０は、センサおよびアクチュエータを備える。ロジックすなわち「意識」１００は、ロボットで実装され、またはそれと関連付けられ（例えば、リモートに）、ならびにソフトウェア１１０およびハードウェアコンポーネント１２０の集合を含む。ロボット１３０は、１つまたは複数のユーザ１５０と（１つまたは複数の対話セッションを含む、両側または双方向通信１４０によって）対話している。前記１つまたは複数のユーザは、（サーバのクラウドおよび／または一連の他のロボットもしくは接続された対象物などと通信している）接続されたデバイスであってもよい他のコンピューティングデバイス１６０（例えば、ウェアラブルコンピュータ、スマートフォンまたはタブレットなどのパーソナルコンピュータ）にアクセスすることができる。特に、接続されたデバイスは、ウェアラブルコンピュータ（例えば、時計、メガネ、没入型ヘルメットなど）であってもよい。
【００３９】
図における特定のロボット１３０は、本発明を実装することができる人間型ロボットの例としてのみ見なされる。図におけるロボットの下肢は、歩くために機能しないが、それが置かれる面上を回転するその基盤上において、任意の方向に移動することができる。本発明は、歩くために適合されたロボットで容易に実装されてもよい。
【００４０】
本発明のいくつかの実施形態では、ロボットは、種々のセンサを備えることができる。それらのいくつかは、ロボットの位置および移動を制御するために使用される。これは、例えば、３軸角速度計および３軸加速度計を備えたロボットの胴体に位置する慣性ユニットのケースである。ロボットはまた、ロボットの前額部（最上部および最下部）に２つの２ＤカラーＲＧＢカメラを含むことができる。３Ｄセンサはまた、ロボットの目の背後に含まれてもよい。ロボットはまた任意選択で、その環境における対象物／存在に対するその相対的位置を検知することが可能なように、例えば、頭部および基盤にレーザラインジェネレータを備えることができる。ロボットはまた、その環境において音を検知することが可能なマイクロフォンを含むことができる。本発明のロボットはまた、その環境における対象物／人間に対する距離を測定するために、場合によってはその基盤の前方および背面に位置する超音波センサを含むことができる。ロボットはまた、人間との対話を可能にするために、その頭部およびその手に触知センサを含むことができる。それはまた、その経路上で直面する障害物を検知するために、その基盤上に緩衝器を含むことができる。その感情を変換し、およびその環境で人間と通信するために、本発明のロボットはまた、例えば、その目、耳に、ならびにその肩および拡声器（例えば、その耳に位置する）上にＬＥＤを含むことができる。ロボットは、種々のネットワーク（３Ｇ、４Ｇ／ＬＴＥ、Ｗｉｆｉ、ＢＬＥ、メッシュなど）を通じて、基地局と、他の接続されたデバイスと、または他のロボットと通信することができる。ロボットは、バッテリまたはエネルギー源を備える。ロボットは、それが含むバッテリのタイプに対して適合された充電所にアクセスすることができる。ロボットの位置／移動は、センサの測定を考慮して、各肢によって画定されたチェーン（ｃｈａｉｎ）を活性化するアルゴリズム、および各肢の端において画定されたエフェクタを使用して、そのモータによって制御される。
【００４１】
特定の実施形態では、ロボットは、それがメッセージ（音声、ビデオ、ウェブページ）をその環境に通信し、またはタブレットの触知インタフェースを通じてユーザからの入力を受信することができるタブレットを組み込むことができる。別の実施形態では、ロボットは、スクリーンを組み込まず、かつ示さないが、それは、データまたは情報をロボットの近辺で表面上に投影することができるビデオプロジェクタを有する。前記表面は、平坦であってもよく（例えば、床）、または平坦でなくてもよい（例えば、突出面の変形が実質的に平坦な投影を得るために補償される）。両実施形態（スクリーンを有し、および／またはプロジェクタを有する）では、本発明の実施形態は有効なままであり、特許請求される対話モデルは、視覚的対話手段によって単に補足または相補される。任意のケースでは、グラフィカル手段は適切でなく、または目的のために不活性化され、従来のモードの対話が残る。
【００４２】
実施形態では、ロボットは、そのようなグラフィカルユーザインタフェース手段を備えない。既存の人間型ロボットは概して、進化した会話能力が備えられるが、概して、ＧＵＩは備えられない。ユーザのますます増大するコミュニティは、ロボットと通信するために、補足としてであっても、選択および／または必要性（若者、怪我人、現実的な状況によるなど）により、グラフィカル手段（例えば、タブレット、スマートフォン）を使用しない可能性が高い。
【００４３】
ソフトウェア１１０の集合は、（包括的にではなく）「エクストラクタ」１１１、「動作示唆」１１２、「意識優先付け」１１３、「パッケージマネージャ」１１４、「ユーザ履歴データ」１１５、「集中自律的動作」１１６および「集中対話トピック」１１７、ならびに「ヘルス監視サービス」１１８を含む、相互の対話におけるソフトウェアモジュールもしくはオブジェクト、またはソフトウェアコード部分を含む。
【００４４】
「エクストラクタサービス」１１１は概して、ロボットの内部または外部にあるものを検知または感知し、および短期間データをロボットのメモリに提供する。エクストラクタサービスは、ロボットセンサから入力読取値を受信し、それらのセンサ読取値は、ロボットの位置、その環境における対象物／人間の識別、前記対象物／人間の距離、人間により発声された単語、またはその感情に関連する適切なデータを抽出するように事前処理される。エクストラクタサービスは特に、顔認識、人感知、従事区間、振動検出、笑顔検出、凝視検出、感情検出、音声分析、会話認識、音源定位、動作検出、パノラミックコンパス、ロボットの姿勢、ロボットヘルス診断、バッテリ、ＱＲコード（登録商標）処理、ホームオートメーション、家族、時間およびスケジュールを含む。
【００４５】
「アクチュエータサービス」は、ロボット１３０に行動を行わせ、または行動を実行させる。動作トラッカ、ＬＥＤ、挙動マネージャが「アクチュエータサービス」の例である。
【００４６】
「データサービス」は、長期間記憶されたデータを提供する。データサービスの例は、ユーザデータおよびユーザのロボットに対する経験の履歴を記憶するユーザセッションサービス１１５、ならびにそれらの高レベルの定義、開始条件、およびタグを有する、ロボットによって実行される手順の拡張可能な記憶を提供するパッケージマネージャサービス１１４である。「パッケージマネージャ」は特に、動作、対話、およびマニフェストの拡張可能な記憶を提供する。「マニフェスト」は、開始条件、タグ、および高レベルの記述などのメタデータを含む。
【００４７】
「意識サービス」（例えば、サービス意識優先付け１１３）は、ロボットが行動を開始しているときにその中央の「意識」によって制御される１つである。「意識サービス」は、「アクチュエータサービス」１３０、「エクストラクタサービス」１１１および「データサービス」１１５をともに結び付ける。基本的意識（Ｂａｓｉｃ  Ａｗａｒｅｎｅｓｓ）は「意識サービス」である。それは、意識サービスに移動することを伝えるために、人間感知、移動検出、および音源定位などの「エクストラクタサービス」に同意する。「意識」１１３は、状況に基づいて基本的意識の挙動を構成する。他のときには、基本的意識は自然に動作するか、または稼動している動作によって構成されているかのいずれかである。
【００４８】
「自律的生活」（Ａｕｔｏｎｏｍｏｕｓ  Ｌｉｆｅ）は、意識サービスである。それは、挙動の動作を実行する。状況のコンテキストに基づいて、意識は、どのような動作に集中するかを自律的生活に伝えることができる（「集中自律的動作」１１６）。マニフェストにおけるメタデータは、この情報を意識に結び付ける。任意の動作は、オペレーティングシステムＡＰＩのうちの１つまたは複数へのアクセスを有することができる。動作はまた、どのような動作に集中するかを自律的生活に直接伝えることができ、またはどのようなトピックに集中するかを対話サービスに伝えることができる。
【００４９】
「対話」サービスは、意識サービスとして構成されてもよい。それは、会話認識エクストラクタに同意し、および話すために「アニメ化会話アクチュエータサービス」を使用することができる。状況のコンテキストに基づいて、意識は、どのようなトピックに集中するか（「対話トピック」）を対話に伝えることができる。「対話」サービスはまた、会話を管理するためのそのアルゴリズムを有し、および通常は、自然に動作している。対話サービスの１つのコンポーネントは、「集中対話トピック」サービス１１７であってもよい。対話トピックは、プログラム的に、任意の時点で、異なる動作または対話トピックに注意を切り替える（または実行もしくは開始することを）ことを意識に伝えることができる。対話トピックを判定するための考えられる方法の１つの例は、対話トピックもしくは動作の開始条件が真もしくは偽になるときに、その瞬間に対する考えられる全ての動作または対話トピックのリストが意識に送信され、動作優先付けに従ってリストがフィルタリングされ、リストの順序がランダム化され、「一意」であり、および頻度が低く開始されている動作もしくは対話トピックに優先権を与えるためにリストが分類され（もしくはスコア付けされ）、このリストにおける最上位の対話トピックもしくは動作が実行される前の動作と同一の動作でないことを保証するための、特殊なチェックを含むことができる。リストは、ユーザの優先権に従って、再度分類およびフィルタリングされてもよい。
【００５０】
ロボットは、「ヘルス監視」サービス１１８を実装することができる。そのようなサービスは、ロボットの異なる優先度を参照、制御または規制するためのデーモンまたは「ウォッチドッグ」として動作することができる。そのようなサービスは、ロボットの内部コンポーネントの状態を（継続して、間欠的に、または周期的に）監視することができ、およびハードウェア障害を測定、予期、予想、もしくは修正することができる。発展形態では、一連の（例えば、インストールベースの）ロボットが監視される。組み込みサービスは、障害状況を継続的に検知することができ、およびそれらを「クラウド」サービスと同期させることができる（例えば、毎分）。
【００５１】
ハードウェアコンポーネント１２０は、処理手段１２１、メモリ手段１２２、入力／出力Ｉ／Ｏ手段１２３、大容量記憶手段１２４およびネットワークアクセス手段１２５を備え、前記手段は相互に対話する（キャッシュ、スワッピング、分散コンピューティング、負荷分散など）。処理手段１２１は、ＣＰＵ（マルチコアもしくは多数コア）またはＦＰＧＡであってもよい。メモリ手段１２２は、フラッシュメモリまたはランダムアクセスメモリのうちの１つまたは複数を備える。Ｉ／Ｏ手段１２３は、スクリーン（例えば、タッチスクリーン）、光もしくはＬＥＤ、触知フィードバック、バーチャルキーボード、マウス、トラックボール、ジョイスティックまたはプロジェクタ（レーザプロジェクタを含む）のうちの１つまたは複数を備えることができる。記憶手段１２４は、ハードドライブまたはＳＳＤのうちの１つまたは複数を備えることができる。ネットワークアクセス手段は、３Ｇ、４Ｇ／ＬＴＥ、Ｗｉｆｉ、ＢＬＥまたはメッシュネットワークなどの１つまたは複数のネットワークへのアクセスを提供することができる。ネットワークトラフィックは暗号化されてもよい（例えば、トンネリング、ＳＳＬなど）。
【００５２】
実施形態では、コンピューティングリソース（計算、メモリ、Ｉ／Ｏ手段、記憶および接続）は、例えば、ローカルリソース（ロボット自体に利用可能な）に対して補足するものとしてリモートにアクセスされてもよい。例えば、さらなるＣＰＵユニットが、音声認識コンピューティングタスクのためにクラウドを通じてアクセスされてもよい。コンピューティングリソースがまた共有されてもよい。特に、複数のロボットは、リソースを共有することができる。ロボットの近辺における接続されたデバイスはまた、例えば、セキュアプロトコルを介してある程度までリソースを共有することができる。表示手段がまた共有されてもよい。例えば、その傍を通るときにロボットによるさらなる表示としてテレビが使用されてもよい。
【００５３】
図２は、方法の実施形態のいくつかの態様を詳述する。
【００５４】
概要として、図は、少なくとも１人の人間のユーザ１５０との対話１４０におけるロボット１３０（例えば、人間型ロボット）を示す。対話は、音声対話、視覚対話およびボディランゲージを含む。さらなる詳細では、処理ロジック２１０（例えば、「意識」１００）は、ロボットの挙動を制御する。ロジックは、ソフトウェアアプリケーションの実行を制御する。例えば、ロジックは、Ａｐｐ２１１およびＡｐｐ  Ｎ２１３などの競合するアプリケーション（「Ａｐｐ」）の開始および経過を監視する。前記アプリケーションは、「ａｐｐ監視モジュール」２２０によって監視されてもよい。実施形態では、前記モジュール２２０は、ロジック２１０から独立している。実施形態では、モジュール２２０は、ロジック２１０（例えば、ウォッチドッグ）に対する少なくともいくつかの制御を有することができる。監視要素（コンポーネント、ソフトウェアアプリケーション、ａｐｐまたはウェブサービス）は、その統計または生データを含むソフトウェアアプリケーションへの直接アクセスを有することができる（またはロジック２１０を介して間接アクセスを取得することができる）。監視モジュールは、知識ベース２３０（以下で説明されるように、生データ、ａｐｐの使用に関する統計）を供給および集約する。知識ベースはまた、示されるように、他のロボット１３１および／または他のユーザ１５１によって供給されてもよい。知識ベース２３０から、１つまたは複数の反動フィードバックまたはループ２４０が行われてもよい。実施形態では、ロジック２１０は、「ロジック修正子モジュール」によってパス２２３を介して修正されてもよい。例えば、対応する分析の結果として、ソフトウェアアプリケーションに対する優先権が変更されてもよい（実行の順序または優先度、実行のモードなど）。例えば、或るアプリケーションは、他よりも（または通常よりも）多い頻度で開始されてもよい。別のアプリケーションはまた、或るコンテキストのみに制限されてもよい。前記１つまたは複数の反動ループ２４０は、ロジック（出力）として動作することができる。前記１つまたは複数の反動ループ２４０は、１つまたは複数のエンティティまたはパーティ（入力）によって制御されてもよい。実施形態では、サードパーティ２５２（アプリケーションプロバイダなど）は、ａｐｐの規制を（ある程度まで）制御することができる。例えば、天気アプリケーションのプロバイダは、利用可能およびアクセス可能である場合に、テレビ上の天気マップの同時表示に天気の対話が良好に伴うことを理解することができる。それを行うことが許可される場合、アプリケーションプロバイダは、天気アプリケーションと関連付けられた実行ルールを変更することができ、およびそのような変更は、即時にロボットに適用されてもよい。実施形態では、ロボット製造者または商業プロバイダ２５１は、場合によっては、ロボットに対するいくつかのさらなる制御を有する別個のまたは補足的な役割を有することができる。示されるように、ロボットの製造者２５１は、ロボットへの直接アクセスを有することができる（例えば、専用通信チャネルによって）。実施形態では、人間のユーザ（例えば、適切な認証証明またはアクセス���を有するロボットの所有者）は、ロボット２５３を自ら修正することができる。実施形態では、人間のユーザは、ロボット製造者からそのいくつかの部分を修正する許可を取得することができる。実施形態では、人間のユーザは、ロボット製造者（またはアプリケーションプロバイダ）によって収集され、および後に許可される（またはされない）１つまたは複数の修正を示唆することができる。
【００５５】
ここで、実施形態がさらに詳細に説明される。ａｐｐの動作のデータ（Ａ）の監視に基づき、さらなる行動（Ｂ）が異なるエンティティ（Ｃ）によって取られてもよく、および前記行動が異なる方式（Ｄ）で規制されてもよい。
【００５６】
監視されている動作（Ａ）の態様に関して、ここで、いくつかの実施形態が説明される。様々なアプリケーション（２１１、２１３など）が、インストールベース（または一連などのその下位部分）の各ロボットにインストールされてもよい。各ソフトウェアアプリケーションは、所与の特定の基準と関連付けられてもよい。複数の基準は、集約および／または統合されてもよく、ならびにさらに分析されてもよい。換言すると、前記アプリケーションの異なる動作について、定量的測定が実行されてもよい。そのような基準は、例えばどの地理で、所与のソフトウェアアプリケーションが何回開始されたか、どの程度の期間に開始されたか、ユーザの応答（例えば、感情、笑顔、雰囲気、回答）がどのようであったかの測定を含むことができる。実施形態では、監視されている動作は、時間および頻度（例えば、日毎、週毎、または月毎の実行の頻度、例えば、日曜日の午前または午後にａｐｐが最も多く開始されるときのユーザ要求の頻度など）、費やされた時間（例えば、総対話時間）、地理的位置（例えば、アプリケーションがさらなる成功を有する場所を分析するため）、誤り（例えば、ソフトウェアおよび／またはロボットのバグまたはクラッシュ、不正確なルール、聞き取れない文、ユーザの悪い応答など）、アプリケーション間の遷移（例えば、アプリケーション間の遷移を示す「Ｍａｒｋｏｖ」モデル、例えば、天気ａｐｐは、ニュースａｐｐと強く結び付けられることがあるが、調理ａｐｐとの結びつきは弱い）、ａｐｐ性能統計（例えば、誤りを除き、どの程度の速度でデータが読み出され、およびアプリケーションが実行されたかなど）、ユーザの満足（例えば、感知された感情または能動的もしくは暗示的に捕捉された雰囲気、積極的におよび明確に集約されるときの満足の宣言）、トリガ条件（例えば、ソフトウェアアプリケーションがなぜ開始され、およびいつ開始されたかを理解することを可能にする統計）、対話しているユーザ（例えば、ユーザのプロファイル、性別、年齢など）などのパラメータ、値または基準を含むことができる。
【００５７】
ａｐｐの使用データの知識、および前記ａｐｐの使用データから導出されたさらなる集約された統計は、さらなる行動（Ｂ）につながることがある。
【００５８】
実施形態では、異なるアプリケーションの「ランク付け」が維持される。前記ランク付けは、動的および／またはコンテキスト的であってもよい。例えば、アプリケーションが成功することを証明する場合、前記アプリケーションは、好ましくはさらなるコンテキストで開始されてもよい。使用の別の例は、全体的なリソースの消費にある。例えば、ネットワークを通じてアクセス可能なオンライン音声認識モジュールへのアクセスが（より良好なコンピューティングリソースに起因したより高い性能のために）最適化されてもよい。所与のロボットが非常に多くのリソースを必要とすると測定される場合、対応する消費は、リソース消費を平衡させるために減少することがある。反対に、未利用が検出および補償されてもよい。集約された統計は、正常に動作しないロボットを通知するため、およびまたは１つもしくは複数のサービスメッセージを１つもしくは複数のロボットに通知するために使用されてもよい。一般的に言えば、ロボッティックプラットフォームオペレータは、個々の対話を統合することができ、およびさらに、全体的な（すなわち、統合、集約された）ソーシャル対話モデル（ユーザとの、複数のユーザとの、代表的なユーザとのなど）を構築することができる。
【００５９】
ａｐｐの使用データに基づいて取られることになる行動を制御することができる異なるエンティティの識別（Ｃ）の態様に関して、ここで、いくつかの実施形態が説明される。ロボットの自律性のモードは、コンテキスト（例えば、ロボットによって感知された）を含む複数のパラメータ、制御エンティティ、および／またはアクセスレベルによって判定されてもよい。したがって、以下の実施形態が少なくとも部分的に組み合わされてもよい。
【００６０】
実施形態では、ロボットの内部のロジック２１０は、ソフトウェアアプリケーションと関連付けられた実行ルールを継続的に更新し、前記ルールは、例えば、もしあれば衝突を解決するための優先度および／または手段を定義する。そのような実施形態では、ロボットは自律的なままであり、およびもしあれば矯正行動を「自己定義」する。
【００６１】
別の実施形態では、外部パーティによってロジックが制御される。例えば、ロボットプロバイダ（またはロボッティックプラットフォームオペレータもしくはロボットの製造者）は、ロジック２１０、したがって、ロボット１３０を制御する（例えば、任意の時点で更新する）ことができる。ある程度まで、異なるソフトウェアアプリケーションのプロバイダが役割を果たす。
【００６２】
中間的な解決策または状態が可能であり、ロボットおよび／または他のエンティティ（すなわち、人間および／または他のロボット）は、ロボットを制御することができる。多種多様な状況が説明される。いくつかのケースでは、ロボットの或る下位部分は、ロボットの製造者によって排他的に制御可能であってもよく、ロジック２１０の他の下位部分は、ロボット自体によって自律的に（および／または排他的に）処理されてもよい。リアルタイム制約および接続性の問題は、全体的に自律的に処理されることになる或る下位部分を必要とすることがある。いくつかのケースでは、いくつかの接続性を信頼して保証することができる場合、待ち時間を低減させることができ、それは、一連のロボットを管理するホストされたサービス（クラウドにおける）を有することが可能となり、前記ロボットは、全体的に制御下にある。いくつかの他のケースでは、安全目的で（例えば、重いロボットの近くの赤ん坊の存在において）、それは、自律モードが回避されることとであり得る。そのようなケースでは、ロボットが非活性化（またはさらにブートすることを不可能に）されてもよい。
【００６３】
（ｉ）アプリケーションの監視の特性および程度、（ｉｉ）取られることになる矯正行動の特性、（ｉｉｉ）そのような行動を呼び出す異なるエンティティの識別に応じて、多様な規制スキームが可能である。２つの主な規制スキーム、開ループ規制および閉ループ規制が説明される。
【００６４】
実施形態では、開ループ規制機構が実装される。データが収集され、およびそのさらなる統計が前記データから導出された後、統計のヒューマン分析が実行されてもよく、およびさらなる補正（例えば、ソフトウェア更新）または行動（例えば、サービスのリエンジニアリング）が取られてもよい。有利には、前記補正および／または行動は良質なものとすることができる（変更がロボットに即時に、または急速に提供されない場合でさえ）。実際に、人間の管理者または監視者は、収集されたデータを分析し、およびさらに、もしあれば矯正行動を決定する。
【００６５】
実施形態では、閉ループ規制機構が実装される。Ａｐｐ基準および／または統計がソフトウェアアプリケーションに直接結び付けられる。有利には、バグ報告およびなおさらにゼロデイ攻撃（ｚｅｒｏ  ｄａｙ  ｅｘｐｌｏｉｔ）は、自動的および「即時的」更新またはパッチをトリガする。ソフトウェアアプリケーションによって、ユーザ経験の影響の任意のレベルにおいて変更が伝播されてもよい。例えば、天気ａｐｐがニュースａｐｐと大きく結び付けられることを統計が示す場合、ソフトウェア更新は、天気が発表された後にニュースを体系的に提案するように一連のロボットを管理することができる。そのような更新の待ち時間を、意図とともに減少させることができる。いくつかのケースでは、ローカルルール（例えば、ユーザプロファイルまたは優先権）は、全体的な更新に関わらず従来のシステムを維持することができる。アプリケーションの検証可能性（ｆｉａｂｉｌｉｔｙ）が増大するにつれて（信頼できるデータならびに／または動的および体系的挙動）、閉ループシステムが実装されてもよい。
【００６６】
他の実施形態では、開ループスキームおよび閉ループスキームが組み合わされてもよい。例えば、矯正行動は、人間の監視が必要とされるか否かを示すグループに分類されてもよい（例えば、事前定義された関連付けられたメタデータはそのような区画定義（ｄｅｌｉｍｉｔａｔｉｏｎ）を促進することができる）。他の基準のなかでも、システム的リスクの評価が使用されてもよい。行動と関連付けられたシステム的リスクは、考えられる行動が、システムとして考えられるロボットのコード安定性（または安全性）を脅かすことがあるときに存在する。例えば、天気対話中に天気マップを適時的に表示することを含む矯正行動は概して、いかなる安全性の問題も生じさせず、またはロボットにバグが発生するリスクを生じさせない。反対に、或るコンテキスト（例えば、重いロボット）でダンスをトリガすることを含む矯正行動は、例えば、近くにいる子供の存在が適切に検出されない場合に、いくつかの問題を生じさせることがある。
【００６７】
開示される実施形態は、全体的なハードウェア実施形態（例えば、ＦＰＧＡ）、全体的なソフトウェア実施形態、またはハードウェアおよびソフトウェア要素の両方を含む実施形態の形式を取ることができる。ソフトウェア実施形態は、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むが、それらに限定されない。本発明は、コンピュータまたは任意の命令実行システムによって、またはそれらと関連して使用するためのプログラムコードを提供するコンピュータ使用可能またはコンピュータ可読媒体からアクセス可能なコンピュータプログラム製品の形式を取ることができる。コンピュータ使用可能またはコンピュータ可読は、命令実行システム、装置、またはデバイスによって、またはそれらと関連して使用するためのプログラムを含み、記憶し、通信し、伝播し、または搬送することができる任意の装置であってもよい。媒体は、電子、磁気、光学、電磁気、赤外線、半導体システム（または装置もしくはデバイス）、または伝播媒体であってもよい。
【図１】
0006368796.tif 000002
【図２】
0006368796.tif 000003