(57)【特許請求の範囲】
【請求項１】
コンピュータによって実行される、ロボットユニットからユーザに物体を直接的または間接的に渡すハンドオーバアクションの実行方法であって、
前記ロボットユニットのセンサから、前記ロボットユニットの周辺状況および前記ロボットユニットによって操作される物体のセンサデータを取得するステップと、
前記物体の種類、前記ユーザがとっている動作の種類、環境の種類、および前記ロボットユニットの電気機械状態の種類の少なくともいずれかについての、認識分類の確率を計算するステップと、
前記認識分類の確率と嗜好モデルとに基づいてハンドオーバアクションを決定するステップと、
決定されたハンドオーバアクションを実行するステップと、
前記ハンドオーバアクションに対するフィードバックを取得するステップと、
前記フィードバックに基づいて、前記嗜好モデルを更新するステップと、
を含む、方法。
【請求項２】
前記ハンドオーバアクションを決定するステップでは、
前記認識分類の確率と嗜好モデルに基づいて、あらかじめ定められた複数のハンドオーバアクションのそれぞれについて適合度を算出し、
最も適合度が高いハンドオーバアクションを選択する、
請求項１に記載の方法。
【請求項３】
前記認識分類の確率を計算するステップは、
前記センサデータから前記物体を表す物体データを抽出するステップと、
前記物体データに基づいて、前記物体の分類を決定するステップと、
前記物体の分類を用いて、当該分類にあてはまる確率を求めるステップと、
を含む、請求項１または２に記載の方法。
【請求項４】
前記認識分類の確率を計算するステップは、
前記センサデータから前記環境を表す環境データを抽出するステップと、
前記環境データに基づいて、前記環境の分類を決定するステップと、
前記環境の分類を用いて、当該分類にあてはまる確率を求めるステップと、
を含む、請求項１から３のいずれか１項に記載の方法。
【請求項５】
前記環境データは、ジオロケーションを表すデータである、
請求項４に記載の方法。
【請求項６】
前記認識分類の確率を計算するステップは、
前記センサデータから前記ユーザがとっている活動を表す活動データを抽出するステップと、
前記活動データに基づいて、前記ユーザがとっている活動の分類を決定するステップと、
前記ユーザがとっている活動の分類を用いて、当該分類にあてはまる確率を求めるステップと、
を含む、請求項１から５のいずれか１項に記載の方法。
【請求項７】
前記認識分類の確率を計算するステップは、
前記センサデータから前記ロボットユニットの電気機械状態を表す状態データを抽出するステップと、
前記状態データに基づいて、前記ロボットユニットの電気機械状態の分類を決定するステップと、
前記ロボットユニットの電気機械状態の分類を用いて、当該分類にあてはまる確率を求めるステップと、
を含む、請求項１から６のいずれか１項に記載の方法。
【請求項８】
前記フィードバックを取得するステップは、前記ハンドオーバアクションの実行を監視して、当該ハンドオーバアクションの実行の成否を間接的なフィードバックとして取得するものであり、
前記嗜好モデルを更新するステップでは、前記間接的なフィードバックに基づいて前記嗜好モデルを更新する、
請求項１から７のいずれか１項に記載の方法。
【請求項９】
前記フィードバックを取得するステップは、前記ユーザから直接的なフィードバックを取得するものであり、
前記嗜好モデルを更新するステップでは、前記直接的なフィードバックに基づいて前記嗜好モデルを更新する、
請求項１から７のいずれか１項に記載の方法。
【請求項１０】
前記認識分類の確率を計算するステップでは、前記物体の認識分類の確率を表す第１の確率、前記ユーザがとっている動作の認識分類の確率を表す第２の確率、環境の認識分類の確率を表す第３の確率、および前記ロボットユニットの電気機械状態の認識分類の確率を表す第４の確率を計算し、
前記ハンドオーバアクションを決定するステップでは、前記第１の確率、前記第２の確率、前記第３の確率、前記第４の確率、および前記嗜好モデルに基づいて、ハンドオーバアクションを決定する、
請求項１から９のいずれか１項に記載の方法。
【請求項１１】
前記ハンドオーバアクションを決定するステップでは、
地面に前記物体を置く、前記物体を保持したままユーザが前記物体を受け取るまで待つ、前記物体をもってユーザに接近して前記物体を手渡す、ユーザに対してハンドオーバアクションが可能な仲介者に前記物体を手渡す、の少なくとも４つから前記ハンドオーバアクションを決定する、
請求項１から１０のいずれか１項に記載の方法。
【請求項１２】
請求項１から１１のいずれか１項に記載の方法の各ステップをコンピュータに実行させるためのコンピュータプログラム。
【請求項１３】
プロセッサと、
請求項１２に記載のコンピュータプログラムを記憶したメモリと、
を備える、コンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、ロボットと人間のインタラクション（対話、相互作用）に関し、より具体的で非限定的な例として、ロボットから人間への物体ハンドオーバのための技法に関する。
【背景技術】
【０００２】
既存の手法において、ロボットが人に物体をハンドオーバするコマンドを受信すると、ロボットは、成功すれば人がロボットから物体を受け取ることができる、あらかじめ決定されたアクションシーケンスを実行する。ロボットは、設計者によって事前プログラムされた１つの実行可能なハンドオーバアクションを実行する。ハンドオーバアクションのパラメータが調整される場合もあるが、アクション自体は変わらない。ロボットが実行するアクションを人が手動で指定可能なインターフェースが存在する場合もある。しかしながら、これらの例では、ロボットは自律的ではない。すなわち、ロボットが、アクション自体を切り替えることはなく、また、どのような状況でどのアクションをとるべきかを学習することもしない。
【０００３】
ロボットのハンドオーバアクションを改善する１つの手法は、人がインタラクトしている物体に応じて人間の活動を定義または特定したり、逆に人間の活動から物体を定義または特定したりする（たとえば、非特許文献１、２を参照）。この手法の下で、物体に応じてアフォードする人間の活動が異なり（すなわち、可能な人間の活動が物体に応じて異なるということ）、それらのアフォーダンスを学習することができれば、ロボット／コンピュータシステムは、物体から人間の活動を識別することができることを前提としている。上記の作業は、条件付き確率場（ＣＲＦ）を使用して、骨格データの組合せから人間の活動を予想し、人間の位置に関連して物体を検出する。しかしながら、骨格情報が利用できないことも多く、また、利用できても骨格情報の一部分が他の物体によって遮られることもあるので、骨格データに依存すると、上記の識別は実現不可能であったり信頼できない結果が得られたりすることになる。
【０００４】
別の手法は、ハンドオーバアクションを修正するために人間の嗜好に焦点を当てる（たとえば、非特許文献３を参照)。この手法は、ハンドオーバの位置ではなく、軌跡（trajectory）を重視する。軌跡はハンドオーバアクションを特定するために役立てることがで
きるが、ハンドオーバアクションが行われる位置は、この手法では評価されない。むしろ、本手法はハンドオーバ位置が既知であることと、ハンドオーバ位置のみが、ハンドオーバの品質を改善するためにロボットの動きをどのように適合するかに関するユーザの唯一の期待であることを仮定している。しかしながら、ハンドオーバ位置が既知でないことも多く、また、ハンドオーバ品質を向上させるためには、ハンドオーバ位置以外の要素も重要である。
【０００５】
別の手法は、様々なアフォーダンスデータを結合することにより、ハンドオーバの位置を特定することに焦点を当てる（たとえば、非特許文献４を参照）。この手法において重要視されるのは、現在の人間の位置から到達可能なエリアマップを組み込みこと、そして、人およびロボットの視点（たとえば、人間およびロボットがその位置を見る能力）を追加することである。結果としてアフォーダンスグラフが得られ、アフォーダンスグラフでは、各位置において物体をハンドオーバするために必要な労力が到達可能性および可視性を介して推定されている。しかしながら、この手法は、人が物体を取得するために自分の現在の位置から大きく移動しようとしないことを仮定するが、この仮定は、前記の手法のように、真の動的環境においては通常はあてはまらない。
【０００６】
別の手法は、物体をハンドオーバする最良の位置を特定する際の人間の参加者の移動性および意思を考慮する（たとえば、非特許文献５を参照）。この手法は、もし、人がハンドオーバに協力することが可能であり、そうすることで迅速にハンドオーバが完了したりユーザのコストを最小限にできたりする場合には、多くのユーザがロボットの方に向かっていくということを考慮する。しかしながら、この手法は、環境、人間の活動、またはハンドオーバされる物体を考慮していない。さらに、ユーザは、自分の位置を変えて、ハンドオーバタスクにおける労力をロボットと共有できる場合でも、ユーザは、取り込み中であったり、ロボットが困難な環境をゆっくりやってくるのを待ちたくなったりする場合もある。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】Hema S.Koppula and Ashutosh Saxena, "Anticipating Human Activities using Object Affordance for Reactive Robotic Response", IEEE Transactions on Pattern Analysis and Machine Intelligence
【非特許文献２】Yun Jiang, Hema S.Koppula, and Ashutosh Saxena, "Modeling 3D Environments through Hidden Human Context", Sexena PAMI 2015
【非特許文献３】M.Cakmak, S.S.Srinivasa, Min Kyung Lee, J.Forlizzi, and S.Kiesler, "Human Preferences for Robot-Human Hand-over Configurations", Intelligent Robots and Systems(IROS), 2011
【非特許文献４】A.K.Pandey and R.Alami, "Affordance Graph:A Framework to Encode Perspective Taking and Effort Based Affordances for day-to-day Human Robot Interaction", Intelligent Robots and Systems(IROS), 2013
【非特許文献５】Jim Mainprice, Mamoun Gharbi, Thierry Sim’eon, and Rachid Alami, "Sharing Effort in Planning Human-Robot Handover Task", IEEE RO-MAN, Paris France, 2011
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述したように、困難な状況において従来よりも自律的・動的・適応的な、ロボットから人間へのハンドオーバアクションが求められている。
【課題を解決するための手段】
【０００９】
本明細書は、認識的アフォーダンスを使用してロボットから人間への物体ハンドオーバのための新規の技術を提供することにより、少なくとも部分的に、背景技術セクションにおいて記載されたソリューションの欠陥および制限を克服する。
【００１０】
本開示に記載される主題の１つの発明的態様は、コンピュータによって実行される、ロボットユニットからユーザに物体を手渡すハンドオーバアクションの実行方法であって、前記ロボットユニットのセンサから、前記ロボットユニットの周辺状況および前記ロボットユニットによって操作される物体のセンサデータを取得するステップと、前記物体の種類、前記ユーザがとっている動作の種類、環境の種類、および前記ロボットユニットの電気機械状態の種類の少なくともいずれかについての、認識分類の確率を計算するステップと、前記認識分類の確率と嗜好モデルとに基づいてハンドオーバアクションを決定するステップと、決定されたハンドオーバアクションを実行するステップと、を含む。一態様では、前記ハンドオーバアクションを決定するステップでは、前記認識分類の確率と嗜好モデルに基づいて、あらかじめ定められた複数のハンドオーバアクションのそれぞれについて適合度を算出し、最も適合度が高いハンドオーバアクションを選択する。
【００１１】
本開示に記載される主題の１つの発明的態様によれば、システムは、１つまたは複数のコンピュータプロセッサ、および、１つまたは複数のプロセッサによって実行されると、センサからセンサデータを受信することであって、センサデータが環境を記述する、受信することと、センサデータに基づいて認識分類の確率を計算することと、嗜好モデルを使用して認識分類に基づいて確率のアフォーダンスを計算することと、アフォーダンスに基づいてハンドオーバアクションを決定することと、ハンドオーバアクションを実行することと、フィードバックに基づいて嗜好モデルを更新することとを含む動作をシステムに実行させる命令を記憶する１つまたは複数のメモリを含む。
【００１２】
一般に、本開示に記載される主題の別の発明的態様は、１つまたは複数のコンピュータプロセッサを使用して、センサからセンサデータを受信することであって、センサデータが環境を記述する、受信することと、１つまたは複数のコンピュータプロセッサを使用して、センサデータに基づいて認識分類の確率を計算することと、１つまたは複数のコンピュータプロセッサを使用して、嗜好モデルを使用して認識分類に基づいて確率のアフォーダンスを計算することと、１つまたは複数のコンピュータプロセッサを使用して、アフォーダンスに基づいてハンドオーバアクションを決定することと、１つまたは複数のコンピュータプロセッサを使用して、ハンドオーバアクションを実行することと、１つまたは複数のコンピュータプロセッサを使用して、フィードバックに基づいて嗜好モデルを更新することとを含む、ハンドオーバアクションを実行するための方法において具現化することができる。
【００１３】
他の態様は、上記その他の発明的態様のための対応する方法、システム、装置、およびコンピュータプログラム製品を含む。
上記その他の実装形態は、各々、場合によっては、以下の特徴および／または動作のうちの１つまたは複数を含む場合がある。たとえば、特徴および／または動作は、センサデータから物体データを抽出することと、物体データに基づいて物体特性を特定することと、物体特性に基づいて物体分類を特定することと、物体分類の確率を計算することと、センサデータから環境データを抽出することと、環境データに基づいて環境分類を特定することと、環境分類を使用して確率を計算することと、活動データに基づいて人間の活動を抽出することと、人間の活動に基づいて人間の活動分類を特定することと、人間の活動分類を使用して確率を計算することと、センサデータから状態データを抽出することと、状態データに基づいて状態を特定することと、状態に基づいて電気機械状態分類を特定することと、電気機械状態分類を使用して確率を計算することと、実行されたハンドオーバアクションを監視することと、ハンドオーバアクションの成功を判断することと、成功に基づいて間接フィードバックを決定することと、間接フィードバックを使用して嗜好モデルを更新することと、ユーザに直接フィードバックを要求することと、直接フィードバックを使用して嗜好モデルを更新することと、環境データがジオロケーションであることと、センサデータに基づいて認識分類の確率を計算することが、物体分類についての第１の確率を計算すること、人間の活動についての第２の確率を計算すること、環境についての第３の確率を計算すること、および電気機械状態分類についての第４の確率を計算すること、ならびに第１の確率、第２の確率、第３の確率、および第４の確率に基づいてアフォーダンスを計算することを含むこととを含む。
【発明の効果】
【００１４】
本技術は、ロボットユニットがアフォーダンスを少しずつ利用してハンドオーバ決定を行うことができるので、特に有利である。ロボットユニットは、環境からデータを収集し、様々なアフォーダンスを使用して様々なハンドオーバアクションを決定することにより、高度意思決定を使用してハンドオーバアクションを実行することができる。さらに、ユーザから直接フィードバックおよび／または間接フィードバックを受信することにより、
ロボットユニットは、個人の嗜好を学習することができる。
【００１５】
上記の利点は例として提供されたこと、および本技法は多数の他の利点および利益を有することができることを理解されたい。
【図面の簡単な説明】
【００１６】
【図１】例示的な物体ハンドオーバシステムを示すブロック図である。
【００１７】
【図２Ａ】例示的なコンピューティングデバイスのブロック図である。
【図２Ｂ】例示的な認識分類器のブロック図である。
【００１８】
【図３】ロボットから人間への物体ハンドオーバを実行するための例示的な方法のフローチャートである。
【００１９】
【図４Ａ】データを分類する例示的な方法のフローチャートである。
【図４Ｂ】データを分類する例示的な方法のフローチャートである。
【図４Ｃ】データを分類する例示的な方法のフローチャートである。
【図４Ｄ】データを分類する例示的な方法のフローチャートである。
【図４Ｅ】データを分類する例示的な方法のフローチャートである。
【００２０】
【図５】嗜好モデルにフィードバックを提供するための例示的な方法のフローチャートである。
【００２１】
【図６】例示的な物体ハンドオーバシステムを示す高位図である。
【発明を実施するための形態】
【００２２】
本明細書は、添付図面の図において限定ではなく例として示され、添付図面では、同様の構成要素を参照するために同様の参照番号が使用される。
【００２３】
本明細書は、認識的アフォーダンスを使用してロボットから人間への物体ハンドオーバを適合するための技術を開示する。認識的アフォーダンス（単にアフォーダンスとも称する）は、物（あるいは環境）とユーザの間に存在する行為についての関係性を意味し、ある物に対してユーザが特定の行為が可能であるという関係を意味する。また、そのような関係があることは、「物がユーザに対して当該行為をアフォードする」と表現される。また、上記の関係性を、物体がユーザに対して特定の行動を誘発するものと解釈して、物がユーザの行動を誘発することをアフォーダンスとも称する。さらに、物が行動を誘発する程度（確率）は大小様々であり、本明細書においては、物が特定の行為をどの程度誘発するかという意味でもアフォーダンスという用語を用いる。
本技術は、図１に示されたように、例示的な物体ハンドオーバシステム１００を含む。システム１００は、任意の数のロボットユニット１０２を含んでよい。ロボットユニット１０２は、信号線１２２によって表されるように、システム１００の他のエンティティとの通信のために、ネットワーク１２０にワイヤレス結合することができる。システム１００はさらに、信号線１３６によって表されるように、ネットワーク１２０に通信可能に結合されたクライアントデバイス１３２を含む場合がある。いくつかの実装形態では、クライアントデバイス１３２は、追加および／または代替として、ワイヤレス接続および／または有線接続などの信号線１２４を介して、ロボットユニット１０２に直接結合することができる。ユーザ１３０は物体を受け取るのを待っている人間であってもよい。ユーザ１３０は、線１３４によって表されるように、入出力デバイスを介してクライアントデバイス１３２とインタラクションすることができる。システム１００はさらに、信号線１３０によって表されるように、ネットワーク１２０に通信可能に結合することができる、計算
サーバ１０１を含む場合がある。
【００２４】
例示的な実装形態では、ロボットユニット１０２は物体を保持しており、ロボットユニット１０２はハンドオーバアクションを使用してこの物体を人間に渡すように構成される。ロボットユニット１０２は、センサ１０４を使用してデータを収集し、センサ１０４によって収集されたデータを分類して利用可能なアフォーダンスを決定し、アフォーダンスに基づいて計算されたハンドオーバアクションを実行する。図６は、ハンドオーバアクションを決定するための例示的なプロセス６００の図を示す。
【００２５】
ハンドオーバアクションは、ユーザ１３０に直接的または間接的に物体を渡すための、ロボットユニット１０２によって実行される任意のアクションであり得る。いくつかの実装形態では、ロボットユニット１０２によって実行されるハンドオーバアクション６０６の例として次のような物がある。
・ユーザ１３０が移動しピックアップために地面等に物体を置く
・物体を保持したままユーザ１３０がやってきて物体をピックアップするのを待つ
・物体をもってユーザ１３０に接近し、ユーザ１３０に物体を手渡す
・仲介者に物体を手渡し、仲介者からユーザ１３０に物体を手渡させる
【００２６】
ロボットユニット１０２は、認識分類器（perceptual classifier）６０４を用いて種
々の観点から現在の状況（situation）を分類・特定し、特定された現在の状況において
どのハンドオーバアクション６０６を実行するべきかを判断する。認識分類器６０４は、センサ６０２から受信されたデータに基づいて、様々な観点について、その観点における状況がどのクラスに分類されるかについての確率を計算する。様々な確率は、環境および／またはロボットユニット１０２の動作状態に基づいて取られ得る様々なアフォーダンスを決定するために使用される。アフォーダンスは、環境および／またはロボットユニット１０２の動作状態に基づく、エージェントによるアクションを決定する要因となる。たとえば、アフォーダンスは、物体または環境と、エージェントとの間の、エージェントがあるアクションを実行する機会をアフォードする（もたらす）関係を記述する。さらなる例として、アフォーダンスは、我々がエージェントＢを有すると仮定して、アクションＡの尤度（likelihood）が正確であることに基づいて決定することができる。システム１００は、下記でさらに詳細に説明されるように、認識分類器６０４（たとえば、物体、環境、人間の活動などを分類する分類器）を訓練することができ、分類器６０４ごとの確率テーブルＰ（Ａ｜Ｂ）を学習することができる。
【００２７】
ロボットユニット１０２は、センサ６０２を使用して、環境の画像、環境のオーディオ、（ジオロケーションなどの）位置データ、ロボットユニット１０２の動作データなどの、環境および／またはロボットユニット１０２の動作状態を表すセンサデータを収集することができる。
【００２８】
センサ６０２から収集されたデータは、それぞれ、認識分類器６０４が、分類に関連する確率を特定するために処理する。たとえば、図６に示されたように、認識分類器６０４は、物体認識分類器、環境認識分類器、人間アクション認識分類器、電気機械状態認識分類器を含む。物体認識分類器は、物体の画像データおよび物体の重量データなどに基づいて、ハンドオーバされる物体のタイプ（たとえば、ボールなど）を推定する。環境認識分類器は、環境の画像データ、環境のオーディオデータ、（既知の位置を参照して）環境が位置する場所を識別する位置データなどに基づいて、環境（たとえば、近くに障害物がない廊下／研究室など）を推定する。人間アクション認識分類器は、ユーザの画像データ、ユーザのオーディオデータなどを使用して、人間の状態（たとえば、立っている、移動している、アクションを忙しく実行しているなど）を推定する。電気機械状態認識分類器は、対応するセンサデータ（たとえば、バッテリ状態データ、前のインタラクションからの
入力データなど）を使用して、ロボットユニット１０２の状態（たとえば、低バッテリ電力、以前の試みの成功もしくは失敗の程度など）を推定する。
【００２９】
ロボットユニット１０２は、認識分類器６０４の出力を使用して、様々なハンドオーバアクション６０６を計算することができる。これらのハンドオーバアクション６０６は、様々な状況において広範囲のタスクを実行することができる。さらなる理解のために、以下の非限定的な例が提供される。第１のシナリオとして、ロボットユニット１０２は、環境が乱雑（cluttered）であり、ロボットユニット１０２による移動を困難にしていると
判断する場合を考える。環境が乱雑であると推定することに応答して、ロボットユニット１０２は、物体を地面に置いて、人間が移動してきて物体をピックアップできるようにする。第２のシナリオとして、ロボットユニット１０２は、環境が乱雑であり、物体が丸いと判断する場合を考える。この場合は、物体が転がってしまう場所に物体を置くのではなく、ロボットユニット１０２は物体を保持し、人間が接近するまで待ち、物体を直接ハンドオーバする。第３のシナリオでは、ロボットユニット１０２は、環境が開かれており、通行可能であると判断する場合を考える。この例では、ロボットユニット１０２は、人間のいる所まで移動し、物体を直接ハンドオーバする。第４のシナリオとして、ロボットユニット１０２は、最終的なハンドオーバアクション６０６が可能な仲介者（たとえば、別の人間、別のロボットユニットなど）が環境内に存在すると判断する場合を考える。この場合は、ロボットユニット１０２は、仲介者まで移動し、物体を仲介者に渡す。いくつかの実装形態では、ロボットユニット１０２は、本明細書内の他の場所でさらに詳細に説明されるように、ハンドオーバアクションの間／後に直接フィードバックおよび／または間接フィードバックを受信して、個人の嗜好のために次のハンドオーバアクションをパーソナライズすることができる。
【００３０】
再び図１を参照すると、図示されるように、ロボットユニット１０２は、１つまたは複数のセンサ１０４と、物体ハンドオーバエンジン１０８のインスタンス１０８ａと、１つまたは複数のアクチュエータ１１４とを含む。センサ１０４、物体ハンドオーバエンジン１０８ａ、およびアクチュエータ１１４は、通信バス１１６によって互いに結合される。ロボットユニット１０２は、オペレーティングシステム、他のソフトウェア、入出力デバイス、アクチュエータコントローラ、ハウジング、ロボット工学においてしばしば使用される他の機械的および／または電気的構成部品などの、追加のおよび／またはより少ない構成部品を含む場合があることを理解されたい。
【００３１】
センサ１０４は、ロボットユニット１０２の状態、その構成部品、および／またはその環境を検出することが可能な検知デバイスを含む場合もある。非限定的で例示的な検知デバイスには、ジャイロスコープ、加速度計、熱電対、タッチセンサ、重量センサ、近接センサ、光センサ、２Ｄカメラ、３Ｄカメラ、飛行時間（ＴＯＦ）カメラ、立体カメラ、音声センサ（マイクロフォン）、圧力センサなどが含まれる。他のタイプのセンサも考えられる。
【００３２】
インスタンス１０８ａおよび／または１０８ｂとして表１に表される物体ハンドオーバエンジン１０８は、認識的アフォーダンスを使用して、ロボットユニット１０２からユーザ１３０への物体ハンドオーバを計算するように動作可能である。物体ハンドオーバエンジン１０８は、少なくとも図２Ａ〜図６などを参照して、本明細書内の他の場所でさらに詳細に説明される。
【００３３】
アクチュエータ１１４は、エネルギーを運動に変換することが可能な機械的デバイスおよび／または電気的デバイスを含む。アクチュエータ１１４は、電気的、空気式、油圧式、磁気的、機械的、および／もしくは磁気的、ならびに／または上記の組合せであり得る。非限定的で例示的なアクチュエータ１１４には、電気モータ、サーボ機構、油圧シリン
ダ、空気アクチュエータ、対応する伝動装置、コネクタ、およびキネマティック構成部品などが含まれる。アクチュエータ１１４は、ロボットユニット１０２のアクチュエータ１１４を制御するためのアクチュエータコントローラを含む場合がある。たとえば、アクチュエータコントローラは、信号（たとえば、運動コマンド、較正コマンドなど）をアクチュエータ１１４に送って、ロボットユニット１０２自体ならびに／またはその付属物および構成部品の方向および速度を含む、ロボットユニット１０２の動きまたは状態を制御することができる。アクチュエータコントローラは、アクチュエータ１１４にコマンド（たとえば、運動コマンド、較正コマンドなど）を送って、ロボットユニット１０２の付属物を使用してハンドオーバアクションを実行することもできる。アクチュエータコントローラは、ハードウェア、ソフトウェア、および／または上記の組合せから構成される場合がある。たとえば、アクチュエータコントローラは、アクチュエータ１１４を制御するための標準コンピュータ回路、ファームウェアなどを備える場合がある。いくつかの実装形態では、アクチュエータコントローラは、図２Ａに示されるプロセッサ２０２などのプロセッサと一体化される場合があるか、または、プロセッサ２０２と別個ではあるが、バス１１６を介してプロセッサ２０２に結合される場合がある。
【００３４】
ロボットユニット１０２の構成部品は、バス１１６を介して通信可能に結合され、そのことは、少なくとも図２Ａを参照してさらに詳細に説明される。
【００３５】
計算サーバ１０１は、本明細書内の他の場所で説明されるように、データを処理、記憶、および通信する能力を有する、コンピュータのハードウェアおよびソフトウェアを含む。たとえば、計算サーバ１０１は、１つもしくは複数のハードウェアサーバ、サーバアレイ、ストレージデバイス、および／またはシステムなどを含む場合がある。いくつかの実装形態では、計算サーバ１０１は、ホストサーバ環境内で動作する１つまたは複数の仮想サーバを含む場合がある。図示されるように、計算サーバ１０１は、本明細書内の他の場所でさらに詳細に説明される、１０８ｂと物体ハンドオーバエンジン１０８のインスタンス１０８ａを含む場合がある。
【００３６】
図２Ａは、例示的なコンピューティングデバイス２００のブロック図である。図示されるように、コンピューティングデバイス２００は、プロセッサ２０２、メモリ２０４、通信ユニット２０６、センサ１０４、物体ハンドオーバエンジン１０８、および／またはストレージデバイス２１２を含む場合があり、それらは、標準通信バス１１６によって通信可能に結合することができる。図２Ａに示されるコンピューティングデバイス２００は一例として提供され、本開示の範囲から逸脱することなく、他の形態を取り、（たとえば、ロボットユニット１０２のアーキテクチャを表す場合）図１に示されるロボットユニット１０２の構成部品、コマンドの入力、人間とコンピュータのインタラクション、および／もしくは通知の受信などのための標準入出力デバイス（たとえば、ポインタデバイス、キーボード、ディスプレイ、カメラ、マイクロフォンなど）、ならびに／または任意の他の適切なコンピュータ構成部品などの、追加のまたはより少ない構成部品を含む場合があることを理解されたい。
【００３７】
プロセッサ２０２は、様々な入力／出力演算、論理演算、および／または数学演算を実施することによって命令を実行することができる。プロセッサ２０２は、データ信号を処理する様々な既知のコンピューティングアーキテクチャを有する場合がある。プロセッサ２０２は、実体および／または仮想であり得るし、単一の処理ユニットまたは複数の処理ユニットを含む場合がある。いくつかの実装形態では、プロセッサ２０２は、電子表示信号を生成し、ディスプレイデバイス（図示せず）に供給し、画像の表示をサポートし、画像を取り込み送信し、様々なタイプの特徴抽出およびサンプリングなどを含む複雑なタスクを実行することが可能であり得る。いくつかの実装形態では、プロセッサ２０２は、バス１１６を介してメモリ２０４に結合して、メモリ２０４からデータおよび命令にアクセ
スし、メモリ２０４にデータを記憶することができる。バス１１６は、たとえば、メモリ２０４、センサ１０４、通信ユニット２０６、ストレージデバイス２１２などを含む、１つまたは複数の他の構成部品にプロセッサ２０２を結合することができる。プロセッサ２０２は単一のデバイスであり得るか、または複数のタイプのデバイスおよび構成を含む場合があることを理解されたい。
【００３８】
メモリ２０４は、データを記憶し、コンピューティングデバイス２００の他の構成部品にデータへのアクセスを提供することができる。いくつかの実装形態では、メモリ２０４は、プロセッサ２０２によって実行され得る命令および／またはデータを記憶することができる。たとえば、メモリ２０４は、物体ハンドオーバエンジン１０８および／またはその構成部品を記憶することができる。メモリ２０４はまた、たとえば、オペレーティングシステム、ハードウェアドライバ、他のソフトウェアアプリケーション、データベースなどを含む、他の命令およびデータを記憶することが可能であり得る。メモリ２０４は、プロセッサ２０２およびコンピューティングデバイス２００の他の構成部品との通信のために、バス１１６に結合することができる。
【００３９】
メモリ２０４は、プロセッサ２０２によって、またはプロセッサ２０２とともに処理するための、命令、データ、コンピュータプログラム、ソフトウェア、コード、ルーチンなどを、含有、記憶、通信、伝搬、または搬送することができる装置またはデバイスを含むことができる、１つまたは複数の非一時的コンピュータ使用可能（たとえば、読取り可能、書込み可能などの）媒体を含む。いくつかの実装形態では、メモリ２０４は、揮発性メモリおよび不揮発性メモリのうちの１つまたは複数を含む場合がある。たとえば、メモリ２０４は、限定はしないが、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）デバイス、スタティックランダムアクセスメモリ（ＳＲＡＭ）デバイス、ディスクリートメモリデバイス（たとえば、ＰＲＯＭ、ＦＰＲＯＭ、ＲＯＭ）、ハードディスクドライブ、光ディスクドライブ（ＣＤ、ＤＶＤ、Ｂｌｕ−ｒａｙ（登録商標）など）のうちの１つまたは複数を含む場合がある。メモリ２０４は単一のデバイスであり得るか、または複数のタイプのデバイスおよび構成を含む場合があることを理解されたい。
【００４０】
通信ユニット２０６は、信号線１２２によって表されるように、ネットワーク１２０、および／またはシステム１００の他の構成部品との有線接続および／またはワイヤレス接続用の１つまたは複数のインターフェースデバイスを含む場合がある。たとえば、通信ユニット２０６は、限定はしないが、Ｗｉ−Ｆｉ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、近距離無線通信（ＮＦＣ）、セルラー通信などを使用して信号を送受信するためのワイヤレストランシーバ、ＣＡＴタイプインターフェース、ＵＳＢインターフェース、それらの様々な組合せなどを含む場合がある。通信ユニット２０６は、バス１１６を介してコンピューティングデバイス２００の他の構成部品に結合することができる。通信ユニット２０６は、たとえば、本明細書内の他の場所で説明されるプロトコルを含む、様々な標準通信プロトコルを使用して通信することができる。
【００４１】
バス１１６は、コンピューティングシステムの構成部品間、またはコンピューティングシステム間でデータを転送するための通信バス、ネットワーク１２０および／またはその部分を含むネットワークバスシステム、プロセッサメッシュ、それらの組合せなどを含む場合がある。いくつかの実装形態では、バス１１６は、業界標準アーキテクチャ（ＩＳＡ）バス、周辺構成部品相互接続（ＰＣＩ）バス、ユニバーサルシリアルバス（ＵＳＢ）、または同様の機能を提供するように知られている他の何らかのバスを含む、１つまたは複数のバスを表す場合がある。追加および／または代替として、コンピューティングデバイス２００の様々な構成部品は、バス１１６と連携して実装されるソフトウェア通信機構を介して、協働および通信することができる。ソフトウェア通信機構は、たとえば、プロセス間通信、ローカル関数もしくはローカルプロシージャの呼出し、リモートプロシージャ
の呼出し、オブジェクトブローカ（たとえば、ＣＯＲＢＡ）、ソフトウェアモジュール間の直接ソケット通信（たとえば、ＴＣＰ／ＩＰソケット）、ＵＤＰのブロードキャストおよび受信、ＨＴＴＰ接続などを含み、かつ／または容易にすることができる。さらに、通信のうちのいずれかまたはすべては、セキュア（たとえば、ＳＳＨ、ＨＴＴＰＳなど）であり得る。
【００４２】
ストレージデバイス２１２は、データを記憶し、データへのアクセスを提供するための情報ソースである。ストレージデバイス２１２によって記憶されるデータは、データモデル２１４に編成することを含む、様々な基準を使用して編成および照会することができる。データモデル２１４は、認識的アフォーダンスを使用してハンドオーバアクションを実行するためのデータおよびアルゴリズム、たとえば、嗜好モデル、物体モデル、環境モデル、ヒューマンアクションモデル、状態モデル、物体ハンドオーバモデルなどを含む場合がある。これらのモデルは、あらかじめ決定されるか、または物体ハンドオーバエンジン１０８によって決定および／もしくはさらに学習される場合がある。データモデル２１４としてストレージデバイス２１２によって記憶されるデータのタイプの例には、データテーブル、データベース、または本明細書内の他の場所で説明される他の編成された集合が含まれ得る。
【００４３】
ストレージデバイス２１２は、ロボットユニット１０２に含まれたり、ロボットユニット１０２とは別個であるが、ロボットユニット１０２に結合されるかまたはロボットユニット１０２によってアクセス可能な、別のコンピューティングシステムおよび／もしくはストレージシステムに含まれたりする場合がある。ストレージデバイス２１２は、データを記憶するための１つまたは複数の非一時的コンピュータ可読媒体を含む。いくつかの実装形態では、ストレージデバイス２１２は、メモリ２０４とともに組み込まれる場合があるか、またはメモリ２０４とは別個の場合がある。いくつかの実装形態では、ストレージデバイス２１２は、ロボットユニット１０２上で動作可能なデータベース管理システム（ＤＢＭＳ）に関連するデータを記憶することができる。たとえば、ＤＢＭＳは、構造化照会言語（ＳＱＬ）のＤＢＭＳ、非ＳＱＬのＤＢＭＳ、ファイルシステム、フラットファイル、それらの様々な組合せなどを含む可能性がある。場合によっては、ＤＢＭＳは、行と列から構成される多次元テーブルにデータを記憶し、プログラムに基づいた演算を使用して、データの行を操作、たとえば、挿入、照会、更新、および／または削除することができる。
【００４４】
物体ハンドオーバエンジン１０８は、ハンドオーバ（ハンドオフ）動作を計算し実行するように実行可能なコンピュータロジックを含む。コンピュータロジックは、当業者なら理解されるように、ソフトウェア、ハードウェア、および／または上記の組合せにおいて実装することができる。たとえば、物体ハンドオーバエンジン１０８は、本明細書で説明される動作を実行するように、プロセッサ２０２をプログラムすることができる。たとえば、物体ハンドオーバエンジン１０８のソフトウェアルーチンは、メモリ２０４に記憶され、プロセッサ２０２によって取り出され、実行される場合がある。別の例では、物体ハンドオーバエンジン１０８は、本明細書で説明される動作および／または機能を実行するように、プロセッサ２０２によって実装される回路を含む場合がある。回路の非限定的な例には、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、ワイヤリング、標準電子構成部品、ボード、および／または他の適切な回路などが含まれる。
【００４５】
本明細書は、時々、物体ハンドオーバエンジン１０８および／またはその副構成部品を、それらによって遂行される様々な動作を不明瞭にしないように、便宜上主体として（第三人称で）言及する。しかしながら、これらの構成要素は、本明細書に記載される特定の動作を実行するために、プロセッサ２０２によって実行可能であり、プロセッサ２０２を
プログラムするなどのロジックであることを理解されたい。
【００４６】
図２Ａに示されるように、物体ハンドオーバエンジン１０８は、アクションレンダラ２２０、アフォーダンス計算器２２２、および／または認識分類器２２４などの、様々な副構成部品を含む場合があるが、これらの構成部品のうちの１つまたは複数は、本開示の範囲から逸脱することなく、様々な形態を取る場合があり、一緒に統合され、かつ／またはさらなる構成部品に分割される場合があることを理解されたい。図２Ａに示される物体ハンドオーバエンジン１０８は例として提供され、物体ハンドオーバエンジン１０８は、本開示の範囲から逸脱することなく、他の形態を取り、追加のまたはより少ない構成部品を含む場合があることを理解されたい。たとえば、いくつかの構成では、物体ハンドオーバエンジン１０８またはその様々な態様は、異なる位置にある異なるデバイス上にネットワーク１２０を介して分散される場合があるか、または物体ハンドオーバエンジン１０８のすべての機能は、単一のコンピューティングデバイスもしくは関連デバイスのグループによって動作可能な常駐コードであり得る。他の構成も可能であり、考えられる。
【００４７】
アクションレンダラ２２０は、アフォーダンス関連データ（affordance-related data
）に基づいて様々なアクションを実行するように動作可能なコンピュータロジックを含む。アフォーダンス関連データは、本明細書内の他の場所で説明されるように、環境、物体、ロボット、ヒューマンアクションなどの、様々な条件によって支持され得る１つまたは複数のアクションの確率（あるいは適合度）を記述するデータである。一例では、アクションレンダラ２２０は、ロボットユニット１０２の制御内の物体をユーザ１３０に渡すように、ハンドオーバアクションを決定することができる。アクションレンダラ２２０は、アフォーダンス計算器２２２および／またはデータストアに結合して、アフォーダンス関連データを受信することができる。限定ではなく例として、アクションレンダラ２２０は、プロシージャ呼出しを行うこと、オブジェクト指向の方法を呼び出すこと、または別の適切なプロセスを起動することによって、実行することができる。たとえば、物体ハンドオーバエンジン１０８のメインプログラム、アフォーダンス計算器２２２、外部もしくは内部のＡＰＩ、または別の構成部品は、アクションレンダラ２２０をインスタンス化することができるが、他の実行パスも適用可能であり、考えられる。
【００４８】
いくつかの実装形態では、アクションレンダラ２２０は、バス１１６を介して、プロセッサ２０２、メモリ２０４、および例示的なコンピューティングデバイス２００の他の構成部品との協働および通信に適合される。アクションレンダラ２２０は、ハンドオーバアクションの実行中に受信されたデータおよびコマンドを、メモリ２０４および／またはストレージデバイス２１２に記憶することができる。アクションレンダラ２２０は、出力デバイスに結合して、ユーザ１３０および／または環境内の他の物体に情報を出力することができる。アクションレンダラ２２０は、入力デバイスに結合して、ユーザ１３０および／または環境内の他の物体から情報を受信することができる。アクションレンダラ２２０は、本明細書内の他の場所で説明されるように、アクチュエータ１１４を制御するためのアクチュエータコントローラに結合することができる。
【００４９】
アフォーダンス計算器２２２は、認識分類器関連データ（classifier-related data）
に基づいて様々なアフォーダンスを推定するように動作可能なコンピュータロジックを含む。認識分類器関連データは、本明細書内の他の場所で説明されるように、環境および／またはロボットユニット１０２の動作状態の情報の分類を記述するデータである。一例では、アフォーダンス計算器２２２は、環境および／またはハンドオーバ物体の１つまたは複数の分類を使用してアフォーダンスを推定し、アフォーダンス関連データとしてアクションレンダラ２２０にアフォーダンスを渡すことができる。
【００５０】
アフォーダンス計算器２２２は、認識分類器２２４、アクションレンダラ２２０、およ
び／またはデータストアに結合して、認識分類器関連データなどのデータを送受信することができる。限定ではなく例として、アフォーダンス計算器２２２は、プロシージャ呼出しを行うこと、オブジェクト指向の方法を呼び出すこと、または別の適切なプロセスを起動することによって、実行することができる。たとえば、物体ハンドオーバエンジン１０８のメインプログラム、認識分類器２２４、外部もしくは内部のＡＰＩ、または別の構成部品は、アフォーダンス計算器２２２をインスタンス化することができるが、他の実行パスも適用可能であり、考えられる。
【００５１】
いくつかの実装形態では、アフォーダンス計算器２２２は、バス１１６を介して、プロセッサ２０２、メモリ２０４、および例示的なコンピューティングデバイス２００の他の構成部品との協働および通信に適合される。アフォーダンス計算器２２２は、アフォーダンスの推定中に受信されたデータおよびコマンドを、メモリ２０４および／またはストレージデバイス２１２に記憶することができる。アフォーダンス計算器２２２は、出力デバイスに結合して、情報を出力することができる。アフォーダンス計算器２２２は、入力デバイスに結合して、ユーザ１３０からフィードバックなどの入力を受信し、メモリ２０４および／またはストレージデバイス２１２に入力を記憶することができる。アフォーダンス計算器２２２は、センサ１０４に結合して、アクションレンダラ２２０によるハンドオーバアクションの実行中に環境のデータを受信し、受信されたデータをメモリ２０４および／またはストレージデバイス２１２に記憶することができる。
【００５２】
認識分類器２２４は、センサ１０４から受信されたセンサデータに基づいて、様々な認識分類を推定するように動作可能なコンピュータロジックを含む。センサデータは、本明細書内の他の場所で説明されるように、環境および／またはロボットユニット１０２の動作状態に関するデータであり、センサ１０４によって取り込まれたデータである。一例では、認識分類器２２４は、環境のセンサデータを使用して認識分類を推定し、認識分類関連データとしてアフォーダンス計算器２２２に認識分類を渡すことができる。
【００５３】
認識分類器２２４は、アフォーダンス計算器２２２、センサ１０４、および／またはデータストアに結合して、センサデータを受信することができる。限定ではなく例として、認識分類器２２４は、プロシージャ呼出しを行うこと、オブジェクト指向の方法を呼び出すこと、または別の適切なプロセスを起動することによって、実行することができる。たとえば、物体ハンドオーバエンジン１０８のメインプログラム、センサ１０４、外部もしくは内部のＡＰＩ、または別の構成部品は、認識分類器２２４をインスタンス化することができるが、他の実行パスも適用可能であり、考えられる。
【００５４】
いくつかの実装形態では、認識分類器２２４は、バス１１６を介して、プロセッサ２０２、メモリ２０４、および例示的なコンピューティングデバイス２００の他の構成部品との協働および通信に適合される。認識分類器２２４は、アフォーダンスの推定中に受信されたデータおよびコマンドを、メモリ２０４および／またはストレージデバイス２１２に記憶することができる。認識分類器２２４は、出力デバイスに結合して、情報を出力することができる。認識分類器２２４は、入力デバイスに結合して、ユーザ１３０からフィードバックなどの入力を受信し、メモリ２０４および／またはストレージデバイス２１２に入力を記憶することができる。認識分類器２２４は、少なくとも図２Ｂを参照して記載されるように、１つまたは複数の専用分類器を含む場合がある。
【００５５】
図２Ｂは、例示的な認識分類器のブロック図である。認識分類器２２４は、物体分類器２５０、環境分類器２５２、ヒューマンアクション分類器２５４、および／または電気機械状態分類器２５６のうちの１つまたは複数を含む場合がある。分類器２５０、２５２、２５４、および／または２５６は、プロセッサ２０２、メモリ２０４、および例示的なコンピューティングデバイス２００の他の構成部品との協働および通信に適合することがで
きる。分類器２５０、２５２、２５４、および／または２５６は、物体ハンドオーバエンジン１０８の他の構成部品を参照して上記で説明された方式と同様の方式で実行することができる。
【００５６】
物体分類器２５０は、センサ１０４によって供給されたセンサデータを使用して、ハンドオーバアクションにおいて操作されている物体の物体データを特定することができる。物体分類器２５０は、センサ１０４によって供給されたセンサデータから記述および／または抽出された物体データを使用して、１つまたは複数の物体分類を特定し、それぞれ、それらの分類に属する物体の対応する確率を計算することができる。環境分類器２５２は、センサ１０４によって供給されたセンサデータから記述および／または抽出された環境データを使用して、１つまたは複数の環境分類を特定し、それぞれ、それらの分類に属する環境の対応する確率を計算することができる。ヒューマンアクション分類器２５４は、センサ１０４によって供給されたセンサデータから記述および／または抽出された活動データを使用して、ユーザ１３０によって実行されている１つまたは複数の人間の活動を分類し、それぞれ、それらの分類に属する人間の活動の対応する確率を計算することができる。電気機械状態分類器２５６は、センサ１０４によって供給されたセンサデータから記述および／または抽出された状態データを使用して、１つまたは複数の状態分類を特定し、それぞれ、それらの分類に属する状態の対応する確率を計算することができる。これらの構成部品は、少なくとも図３および図４Ａ〜図４Ｅを参照して下記でより詳細に記載される。
【００５７】
図３は、認識分類器を使用してロボットユニット１０２からユーザ１３０への物体ハンドオーバを決定し、物体ハンドオーバを実行し、かつ嗜好モデル（preference model）を更新するための例示的な方法３００のフローチャートである。ブロック３０２において、認識分類器２２４は、環境および／またはロボットユニット１０２の動作状態を記述するセンサデータを、センサ１０４から受信する。センサデータは、周辺環境、物体の特性（たとえば、重量、形状、包装、量など）、ユーザ１３０の活動（activities）およびアクション、ならびに／またはロボットユニット１０２の状態（たとえば、電力レベル、以前の動作の成功／不成功など）などに関するデータを含む場合がある。たとえば、いくつかの実装形態では、センサ１０４には、物体の重量を測定するためにロボットユニット１０２によって使用される重量センサ、周辺環境およびユーザ１３０の情報を取り込むためにロボットユニット１０２によって使用されるカメラセンサ、ならびに位置データを特定するためにロボットユニット１０２によって使用されるジオロケーションセンサが含まれ得る。
【００５８】
ブロック３０４において、認識分類器２２４は、センサデータに基づいて、ハンドオーバ関連分類および対応する確率を特定する。認識分類器２２４は、センサデータを使用して、分類（Ｃｉ）および当該分類に関する確率を特定する。認識分類（Ｃｉ）は、存在／発生する可能性がある態様を記述し、確率は、あるセンサデータ（Ｓ）が与えられた時の当該態様が存在／発生している可能性（chance）を表す。分類は、図４Ａ〜図４Ｅを参照してより詳細に記載されるように、様々な物体、環境、ヒューマンアクション、および／または電気機械状態を分類することができる。たとえば、認識分類器２２４は、P(Cenvironment|SImage, SAudio, Slocation, ...）を使用して環境の確率（Ｐ）についての認識
分類を推定することができ、この確率は、センサデータが与えられた時の任意の特定の環境（居間、寝室、台所など）が発生する尤度（likelihood）を表す。たとえば、下記表１および表２に示されるように、環境分類は、環境が特定の場所（位置）であることを示す様々な確率を推定する。表１において、２つの異なる場所（たとえば、簡易台所（キチネット）および台所）は、非常に類似する確率を有し、認識分類器２２４は、アフォーダンス計算器２２２にどの場所を供給するべきかを判定する規則を有する場合がある。さらなる実装形態では、認識分類器２２４は、同様の確率を有する複数の場所をアフォーダンス
計算器２２２に供給することができる。表２において、「廊下」は、他の場所よりも比較的高い確率を有し、認識分類器２２４は、「廊下」をアフォーダンス計算器２２２に供給することができる。
【表１】
0006439817.tif 000002
【表２】
0006439817.tif 000003
【００５９】
ブロック３０２において説明された例を参照すると、認識分類器２２４は、センサから重量センサデータ、カメラデータ、およびジオロケーションデータを受信することができる。認識分類器２２４は、重量センサデータによって表される重量、ならびに／またはカメラデータに対する画像分析によって表されるサイズおよび形状を使用して、ある特定の確率で物体をスティールボックスとして分類することができる。認識分類器２２４は、カメラデータに対して画像分析を実行して、物体の形状、サイズ、位置、配色、および／または他の態様を特定し、ならびに画像内のユーザ１３０の位置を特定することができる。また、認識分類器２２４は、カメラデータを使用して、ユーザ１３０が特定の活動（たとえば、横たわっている、歩いている、走っている、物体に寄りかかっている、別の人と話をしているなど）に従事していると推定することができる。認識分類器２２４は、１つもしくは複数のジオロケーションセンサからの位置データ、および／または１つもしくは複数の画像センサからの多次元画像データ（たとえば、立体画像など）を使用して、ロボットユニット１０２の位置および／またはユーザの位置を推定することができる。たとえば、多次元画像データは、走査された環境内のユーザ（人間の特性と一致する物体）の特殊座標を表すことができ、ＧＰＳデータおよび／または他のマイクロ位置データは、ロボットユニット１０２の位置座標を表すことができる。さらに、標準的なシーン検出技法を使用して、認識分類器２２４は、画像データおよび／または他のデータを使用して、ある特定の確率でシーンをある部屋のタイプ（たとえば、研究室など）であると分類することができる。このように、認識分類器２２５は、複数の観点（この例では、物体の種類、ユーザの活動、環境（シーン））についての分類結果を確率とともに求めることができる。
【００６０】
ブロック３０６において、アフォーダンス計算器２２２は、嗜好モデルを使用して、認識分類器２２４によって計算された分類の確率に基づいて、アフォーダンスを計算する。アフォーダンスは、ロボットユニット１０２と、認識分類器２２４の出力に基づいて特定
された周辺状況との間の関係である。いくつかの実装形態では、アフォーダンスは、環境および／またはロボットユニット１０２の動作状態を仮定して、ハンドオーバアクション（Ｈ）が正確である尤度を表すことができる。たとえば、環境分類（Cenvironment）は、ある特定の確実性で環境が乱雑であることを示す確率を有する場合がある。この場合、ロボットユニット１０２は環境内を移動することが困難であると考えられる。アフォーダンス計算器２２２は、（環境分類（Cenvironment）によって表されるような）環境が支持（support）するアクションの確率を計算することができる。なお、「環境が支持するアク
ションの確率」は、当該環境におけるアクションの適合度・適切度と表現することもできる。この確率（あるいは適合度）は、P(Hplace_object_on_surface|Cenvironment)と記述される。アフォーダンス計算器２２２は、環境によって最も良く支持されるハンドオーバアクションを選択する。すなわち、現在の周辺状況において最も高い確率（適合度）を有するアクションを選択する。たとえば、ロボットユニット１０２がユーザ１３０の所まで物体を持って移動することは、現在の環境では支持確率（適合度）が比較的低いので選択されず、ユーザに渡す物体を地面に置くというアクションの支持確率（適合度）が現在の環境では最も高いので、このアクションがハンドオーバアクションとして選択されて、ロボットユニット１０２に指示される。
【００６１】
さらなる例として、物体をハンドオーバする対象のユーザがある特定のアクション（廊下で立っている）をとっている可能性が最も高いと、認識分類器２２４によって分類される場合を考える。この場合、アフォーダンス計算器２２２は、ユーザの位置まで廊下を移動して物体をハンドオフすることが最も高い成功の尤度を有すると計算することができる。この確率はP(Hmove_down_hallway|Chuman_action)によって表される。ハンドオーバア
クションは、現在の周辺状況の様々な観点からの分類結果（物体種類、環境、ユーザの動作、ロボットの状態など）からそれぞれ異なる支持を受ける、すなわち、それぞれの要素に応じて異なる適合度を有する。この例では、アフォーダンスは、物体の種類が直接ハンドオフを支持し、環境がユーザの位置までの移動を支持し、ロボットの状態が当該移動を支持し、かつ／またはユーザの位置・動作が直接ハンドオフを支持することなどを表す。
【００６２】
アフォーダンス計算器２２２は、嗜好モデルを使用してアフォーダンスを決定することができる。嗜好モデルは、条件に応じてハンドオーバアクションを選択するために使用されるモデルである。いくつかの実装形態では、嗜好モデルは、ベイジアンネットワークまたは他の適切なアルゴリズムなどの機械学習を使用して学習される、様々なアフォーダンスおよび／または値についてあらかじめ定義された／デフォルトの値を含む。たとえば、アフォーダンス計算器は、１人または複数のユーザ１３０からのフィードバックを使用して、嗜好モデル内のアフォーダンス値を適合することができる。詳細には、ロボットユニット１０２が所与の周辺状況に適用不可能またはあまり適切でないアクションを取る場合、ユーザは、（たとえば、入力デバイスとインタラクションすることにより）そのアクションについてのフィードバックを入力することができ、アフォーダンス計算器２２２は、そのフィードバックを解釈し、１つまたは複数のアフォーダンス値を増強（augment）す
るために使用することができる。場合によっては、嗜好モデルは、ユーザまたはユーザのセグメントごとに記憶することができ、時間とともにそれらのユーザに適合および／またはカスタマイズすることができる。
【００６３】
嗜好モデル内の様々なアフォーダンスの値を設定するために、複数の方法が利用可能であり得る。いくつかの実装形態では、一般的なアフォーダンスは実験ベースの手法を使用することができる。この手法では、多数のユーザ１３０に、ロボットユニット１０２とインタラクションし、ロボットユニット１０２のアクションがどの程度良いものであったかフィードバックをするよう求める。フィードバックは、アンケートまたは情報を受け取る代替方法の形態で提供することができる。フィードバックの結果は、ハンドオーバアクション（Ｈ）と分類（Ｃ）のすべての組合せについてＰ（Ｈ｜Ｃ）の一般モデルを構築する
ために使用することができる。一般的なアフォーダンスは、サンプリングされたユーザ１３０の社会的および文化的な規範（norm）の分布を表す。これらまたは他の実装形態では、アフォーダンス計算器２２２は、少なくとも図５を参照してより詳細に記載されるように、直接的な人間からのフィードバックまたは間接的な人間からのフィードバックを使用して、様々なアフォーダンス用の嗜好モデル値を設定する。
【００６４】
ブロック３０２および３０４を参照して上記で説明された例を参照すると、アフォーダンス計算器２２２は、物体がスティールボックスであり、ユーザが特定の活動（たとえば、机に座っている）に従事しており、環境が研究室であると推定された分類を認識分類器２２４から受信することができる。アフォーダンス計算器２２２は、これらの分類を使用して、ロボットユニット１０２、様々な環境、様々な物体、様々なヒューマンアクションなどによって支持されるか、または支持されない複数のアフォーダンスを推定することができる。上記の例では、アフォーダンスは、ロボットが、ある特定の尤度で、研究室内の障害がない経路に沿って移動すること、物体をカウンタに置くこと、スティールボックスを格納クローゼットなどの別の位置に移動させることなどを含む一連のアクションを実行する可能性があることを表すことができる。さらなる例では、物体の重量に基づいて、アフォーダンス計算器は、物体がロボットユニット１０２によるユーザへの直接ハンドオフを支持しないと判断し、したがって、ユーザに直接物体をハンドオーバすることに低いスコアを割り当てる。これは、（ユーザ１３０から受信された以前のフィードバック、あらかじめ定義された設定などに基づいて決定された可能性がある）ユーザ１３０が扱うことが可能であり得るしきい値を物体の重量が超えることを表す、物体分類に部分的に基づく場合がある。
【００６５】
ブロック３０８において、アフォーダンス計算器２２２は、アフォーダンス計算器２２２が計算したアフォーダンスに基づいて、１つまたは複数のハンドオーバアクションを決定する。アフォーダンスは、ロボットユニット１０２によって取られるべき単一のアクションを表すことができるか、または実行されるべきハンドオーバシーケンス（一連のアクション）全体の一部分を表すことができる。後者の場合、１組のアフォーダンスは、（以後、単にハンドオーバアクションと呼ばれる）ハンドオーバアクション／シーケンスを一括して定義することができる。いくつかの実装形態では、シーケンスは、ロボットユニット１０２がユーザおよび／または仲介物体（たとえば、テーブル、床、他の人、他のロボットユニット１０２など）に向かって移動する移動（ナビゲーション）部分、ならびに、ロボットユニット１０２がユーザおよび／または仲介物体に物体を渡すハンドオフ部分を含む場合がある。アフォーダンス計算器２２２は、本明細書内の他の場所で説明される、認識環境分類器、物体認識分類器、ヒューマンアクション認識分類器、および／または電気機械状態認識分類器に基づくハンドオーバアクションを含む１つまたは複数のアフォーダンスを決定することができる。ブロック３０２、３０４、および３０６において説明された例を参照すると、アフォーダンス計算器２２２は、ロボットユニット１０２が実行する可能性があるか、または実行する可能性がない／実行するべきでないアフォーダンスを使用して、ハンドオーバアクションを達成するはずの一連のアフォーダンスを決定する。たとえば、アフォーダンス計算器２２２は、ユーザ１３０が座っている机に向かってロボットユニット１０２が移動し、ユーザ１３０の近くの机にスティールボックスを置くことができると推定することができる。
【００６６】
いくつかの実施形態では、アフォーダンス計算器は、ハンドオーバアクション決定（たとえば、意思決定）プロセスにおける因果律を表すベイジアン信念ネットワーク（ＢＢＮ）を利用する。本明細書内の他の場所で説明されるように、どのハンドオーバアクションを選択するべきかを判断することは、ノード（環境、物体、ロボット／ヒューマンアクションなど）が、どのアクションを支持する（または「アフォードする」）かに依存するノードとアクションの関係はアフォーダンスに表されている。ＢＢＮ内のこれらのノード間
の関係により、システム１００が複数の因果律パスのバランスをとることが可能になる。たとえば、環境と、人間の活動とロボットのハンドオーバアクションの両方との間の因果関係（たとえば、環境が人間の活動とロボットのハンドオーバアクションの両方に影響を及ぼす）は、ＢＢＮを使用して学習および特定することができる。
【００６７】
ブロック３１０において、アクションレンダラ２２０はハンドオーバアクションを実行する。アフォーダンス計算器２２２がハンドオーバアクションを決定すると、アクションレンダラ２２０はハンドオーバアクションを実行する。アクションレンダラ２２０は、ロボットユニット１０２のアクチュエータ１１４を制御することにより、ハンドオーバアクションを実行する。いくつかの実装形態では、物体ハンドオーバエンジン１０８は、センサ１０４を使用して環境やロボットユニット１０２の動作状態を監視してもよく、あるいは、アクションレンダラ２２０は、ハンドオーバアクションを実行し、監視されたデータを間接フィードバック用に記憶してもよい。いくつかの実装形態では、アクションレンダラ２２０は、ハンドオーバアクションまたはアクションのシーケンスを、アクチュエータ１１４を制御するためにアクチュエータコントローラに送られる信号に変換する。ブロック３０２、３０４、３０６、および３０８において説明された例を参照すると、アクションレンダラ２２０は、ロボットユニット１０２をユーザ１３０の机に移動させるステップ、およびスティールボックスを置くステップを、アクチュエータコントローラに送られる信号に変換する。アクチュエータコントローラは、それらの信号を処理し、アクチュエータ１１４とインタラクションして２つのコマンドを実行することができる。
【００６８】
ブロック３１２において、アフォーダンス計算器２２２は、フィードバックに基づいて嗜好モデルを更新する。フィードバックは、多数のユーザ１３０から受信されたレビュー（評価）であってもよいし、上述されたように受信された一般的なフィードバックであってもよい。さらなる実装形態では、フィードバックは、少なくとも図５を参照してより詳細に記載されるように、ハンドオーバアクションの一部として物体を受け取った特定のユーザ１３０から受信された直接的なフィードバックであり得る。さらなる実装形態では、アフォーダンス計算器２２２は、少なくとも図５を参照してより詳細に記載されるように、特定のハンドオーバアクションの間に取り込まれる監視データの形態で、センサ１０４から間接フィードバックを受信することができる。ブロック３０２、３０４、３０６、３０８、および３１０において説明された例を参照すると、アフォーダンス計算器は、入力デバイスを介して、ユーザ１３０からハンドオーバアクションの直接フィードバックを受信することができる。フィードバックの一例は、ユーザ１３０が移動することなくスティールボックスを手に取るには遠すぎる場所にスティールボックスが置かれたことを含む。このフィードバックを直接的に受け取る場合は、ユーザからその旨の入力を受け付ける。このフィードバックを間接的に受け取る場合には、センサ１０４によってユーザがスティールボックスに手を伸ばしたが届かなかったことや、ユーザが歩いてスティールボックスの所まで移動したことを検出すればよい。アフォーダンス計算器２２２は、このようなフィードバックを使用して、将来のアクションでは、今回のハンドオーバアクションにおいてスティールボックスが置かれた場所よりもユーザ１３０に近いところにアフォーダンス計算器２２２がスティールボックスを置くように、嗜好モデル内の距離値を更新することができる。
【００６９】
図４Ａ〜図４Ｅは、認識分類器を使用するための例示的な方法４００のフローチャートである。いくつかの実装形態では、方法４００における動作は、図３のブロック３０４の下で実行可能な様々な動作を表すことができる。図４Ａにおいて、認識分類器２２４は、様々な分類の確率を推定する。ブロック４０２において、物体分類器２５０は、物体を分類するべきかどうかを判定する。物体を分類するべき場合、物体分類器２５０は、センサデータからの物体データを処理し、図４Ｂを参照して下記に記載されるように、様々な分類について物体が当該分類に属する確率を推定する。ブロック４０４において、環境分類
器２５２は、環境を分類するべきかどうかを判定する。環境を分類するべき場合、環境分類器２５２は、センサデータからの環境データを処理し、図４Ｃを参照して下記に記載されるように、様々な分類について当該分類に環境が属する確率を推定する。ブロック４０６において、ヒューマンアクション分類器２５４は、ヒューマンアクションを分類するべきかどうかを判定する。ヒューマンアクションを分類するべき場合、ヒューマンアクション分類器２５４は、センサデータからのヒューマンアクションデータを処理し、図４Ｄを参照して下記に記載されるように、様々な分類について当該分類にヒューマンアクションが属する確率を推定する。ブロック４０８において、電気機械状態分類器２５６は、ロボットユニットの電気機械状態を分類するべきかどうかを判定する。状態を分類するべき場合、電気機械状態分類器２５６は、センサデータからの状態データを処理し、図４Ｅを参照して下記に記載されるように、様々な分類について当該分類にロボットユニットの電気機械状態が属する確率を推定する。いくつかの実装形態では、方法３０４は、上述された分類のすべてを含む場合があるが、他の実装形態では、３０４は、単一の分類または分類の組合せを使用して確率を推定することができる。
【００７０】
図４Ｂを参照すると、ブロック４１０において、物体分類器２５０は、物体（の種類・クラス）が事前指定されているかどうかを判定する。たとえば、ロボットユニット１０２は、ボールをピックアップし、それらをユーザ１３０にハンドオフするように事前プログラムすることができる。プロセスを加速するために、いくつかのクラスのボールを事前指定することができ、その結果、種々のボールの種類（クラス）について確率を計算・比較することなく、物体分類器２５０は指定された種類のボールであると直ちに識別することができる。ブロック４１０において物体のクラスが事前指定されていると判定された場合、ブロック４１２において、物体分類器２５０は、対象物体が事前指定された物体クラスに属する確率を求める。事前指定された物体クラスに属する確率（単に、事前指定された物体（クラス）の確率、とも称する）は、本明細書内の他の場所で説明されるように、さらなる処理のために物体ハンドオーバエンジン１０８によって使用することができる。
【００７１】
ブロック４１０において物体のクラスが事前指定されなかったと物体分類器２５０が判定する場合、ブロック４１４において、物体分類器２５０はセンサデータから物体データを抽出する。物体データは、物体の物理特性、重量、形状、位置、配色、テクスチャ、量、包装などの、物体のタイプを特定するために使用され得る任意のデータである。いくつかの実装形態では、物体は、ロボットユニット１０２によってすでに制御されている場合がある。物体の特性を特定するために利用されるセンサ１０４は、ロボットユニット１０２の手足などの付属物に取り付けられていたり、物体の方に向けられていたり、あるいは、保持している物体に関する態様を検知するように構成される。さらなる実装形態では、ロボットユニット１０２は、物体を制御する前に、センサ１０４を使用して物体に関する情報を取り込むことができる。
【００７２】
ブロック４１６において、物体分類器２５０は、物体データに基づいて、物体についての分類、およびそれらの分類についての対応する確率を特定する。たとえば、物体分類器２５０は、センサデータを使用して、物体の特性が軽量および球形であると特定することができる。これらの特性に基づいて、物体分類器２５０は、ある特定の確率の範囲内で物体をボールとして分類することができる。
【００７３】
ブロック４１８において、物体分類器２５０は、ブロック４１６において特定された物体分類に属する物体の確率を推定する。物体分類器２５０は、物体データが与えられたときの様々な物体分類の確率を計算し、この確率を使用して全体的な確率を特定することができる。いくつかの実装形態では、物体分類器２５０は、物体データをストレージデバイス２１２に記憶されたデータモデル２１４と比較することにより、物体についての適用可能な分類および確率を特定することができる。データモデルの各々は、所与の分類に対応
し、物体特性（たとえば、サイズ、形状、色、重量、使用法など）などの様々なパラメータを含む場合があり、物体分類器２５０は、操作されている物体について特定された特性をデータモデルのパラメータと比較し、それらがいかに良く一致するかの確率を計算することができる。さらなる実装形態では、各物体特性の確率は、本質的にスカラー（たとえば、割合）、バイナリ値（たとえば、真または偽）などであり得る。
【００７４】
図４Ｃを参照すると、ブロック４２２において、環境分類器２５２は、環境（の種類・クラス）が事前指定されているかどうかを判定する。たとえば、ロボットユニット１０２は、台所で動作するように事前プログラムすることができる。プロセスを加速するために、台所環境に関する情報を事前指定することができ、その結果、種々の環境の種類（クラス）について確率を計算・比較することなく、環境分類器２５２は、現在の環境が台所（指定された種類の環境）であると直ちに識別することができる。ブロック４２２において環境のクラスが事前指定されていると判定された場合、ブロック４２４において、環境分類器２５２は、事前指定された環境クラスに属する確率を求める。事前指定された環境の確率は、本明細書内の他の場所で説明されるように、さらなる処理のために物体ハンドオーバエンジン１０８によって使用することができる。
ブロック４２２において環境のクラスが事前指定されなかったと環境分類器２５２が判定する場合、ブロック４２６において、環境分類器２５２はセンサデータから環境データを抽出する。環境データは、位置、シーン（景観）、開けた空間の判断、ジオロケーションデータなどの、環境を特定するために使用され得る任意のデータである。環境データは、環境分類器２５２が環境を特定するときに使用するための、環境内の様々な人間の活動を含む場合もある。たとえば、いくつかの実装形態では、作業（人間の活動）は、作業用に設計された環境内で行われる可能性が高い。ブロック４２８において、いくつかの実装形態では、環境分類器２５２は、ジオロケーションセンサなどの位置センサ１０４によって供給される位置データを使用することにより、環境データを特定することができる。
【００７５】
ブロック４３０において、いくつかの実装形態では、環境分類器２５２は、シーン分析を使用して環境データを特定することができる。いくつかの実装形態では、環境分類器２５２は、センサデータをデータモデル２１４のデータベースと比較し、比較に基づいてセンサデータの部分を分類することにより、シーン認識を実行することができる。データモデル２１４は、様々なセマンティック記述に従って事前に手動で分類された、かつ／または本明細書で説明された方法の事前の繰返しに基づいて（たとえば、直接フィードバックおよび／もしくは間接フィードバックに基づいて）分類された、事前記録されたデータを含む場合がある。比較は、聴覚分析および／または画像分析の両方を含む場合がある。いくつかの実装形態では、環境分類器２５２は、センサデータ内の物体のタイプを識別し、物体のタイプをデータモデル２１４と比較し、比較に基づいてセンサデータ内の物体を分類することにより、物体ベースのシーン認識を実行することができる。センサデータは、オーディオデータ、視覚データ、および／または深度画像データであり得る。次いで、環境分類器２５２は、分類された物体に基づいて環境のタイプを特定することができる。
【００７６】
いくつかの実装形態では、環境分類器２５２は、認識マップを使用してシーン分析を実行することができる。この実装形態では、環境分類器２５２は、リアルタイムシーン認識を含むセンサデータを使用して、検出された人の位置に応答して環境分類器２５２によって照会され得るオフラインマップを作成することができる。この方法は、ノイズの多い認識データのうちのいくつかを除去することができる。いくつかの実装形態では、環境分類器２５２は、手動分類されたマップおよび／または機械学習されたマップを使用して、シーン分析を実行することができる。たとえば、環境のマップは、最初にユーザ１３０（たとえば、対象ユーザ、管理者など）によって作成される場合があり、環境分類器２５２は、手動分類されたマップを構造図と重ねて環境を記述することができる。さらなる例では、環境分類器２５２は、システムによって実行された以前の分類、およびそれらの分類を
使用して実行されたアクションに基づいて受信されたフィードバックに基づいて学習されたマップデータを利用することができる。他の変形形態も可能であり、考えられる。
【００７７】
ブロック４３２において、環境分類器２５２は、環境データに基づいて、環境についての分類、およびそれらの分類についての対応する確率を特定することができる。たとえば、環境分類器２５２は、環境データを使用して、ジオロケーション、シーンカテゴリの確率、明暗、温度などを特定して、ある特定の確率の範囲内でその位置が研究室であると分類することができる。
【００７８】
いくつかの実装形態では、環境分類器２５２は、環境データをストレージデバイス２１２に記憶されたデータモデル２１４と比較することにより、環境についての適用可能な分類および確率を特定することができる。データモデルの各々は、所与の分類に対応することができ、環境特性（たとえば、ジオロケーション、部屋特性、家具モデルなど）などの様々なパラメータを含む場合があり、環境分類器２５２は、環境について特定された環境データをデータモデル２１４のパラメータと比較し、それらがいかに良く一致するかを計算することができる。
【００７９】
ブロック４３４において、環境分類器２５２は、実際の環境を反映する環境分類についての確率を推定することができる。環境分類器２５２は、センサデータを仮定して発生する環境の確率を推定し、確率を使用して全体的な確率を特定することができる。さらなる実装形態では、各環境の確率は、本質的にスカラー（たとえば、割合）、バイナリ値（たとえば、真または偽）などであり得る。
【００８０】
図４Ｄを参照すると、ブロック４３６において、ヒューマンアクション分類器２５４は、センサ１０４によって供給されたセンサデータから活動データを抽出する。活動データは、環境、物体、および、ロボットユニット１０２によって物体がハンドオフされ得る１人または複数のユーザ１３０のデータを含む場合がある。
【００８１】
ブロック４３８において、ヒューマンアクション分類器２５４は、活動データに基づいて、ヒューマン活動についての分類、およびそれらの分類についての対応する確率を特定することができる。いくつかの実装形態では、活動データは、ユーザ１３０の位置、ユーザ１３０のアクション、および／またはユーザ１３０の潜在的な将来の活動に関する場合がある。ヒューマンアクション分類器２５４は、人間の活動をデータモデル２１４内の認識された活動のデータベースと比較することができる。データモデル２１４の各々は、所与の分類に対応することができ、ユーザ１３０の位置、ユーザ１３０の活動、他のユーザ１３０の存在などの様々なパラメータを含む場合があり、ヒューマンアクション分類器２５４は、活動データをデータモデル２１４のパラメータと比較し、各々がいかに良く一致するかの確率を計算することができる。
【００８２】
ブロック４４０において、ヒューマンアクション分類器２５４は、比較に基づいて人間の活動分類の確率を識別することができる。さらなる実装形態では、ヒューマンアクション分類器２５４は、労力決定（effort determination）を使用して人間の活動分類を特定することができる。ヒューマンアクション分類器２５４は、ユーザ１３０の位置に基づいて潜在的なアクションを識別し、様々な潜在的なアクションを完了するためにユーザ１３０によって必要とされる労力レベル（effort level）を決定することができる。たとえば、ユーザ１３０が立っている場合、労力レベルは、ユーザ１３０とロボットユニット１０２の軌跡が交差する場所でユーザ１３０がロボットユニット１０２に会うべきことを示しうる。ヒューマンアクション分類器２５４は、検知データが与えられた時の、人間が行っている活動の確率を推定する。さらなる実装形態では、各ヒューマンアクションの確率は、本質的にスカラー（たとえば、割合）、バイナリ値（たとえば、真または偽）などであ
り得る。
【００８３】
図４Ｅを参照すると、ブロック４４４において、電気機械状態分類器２５６は、センサ１０４によって供給されたセンサデータから状態データを抽出する。状態データは、環境内のバッテリレベル、アクチュエータ１１４の能力、および／または以前のハンドオフアクションのパフォーマンスなどの、ロボットユニット１０２の状態を特定するために使用され得る任意のデータを含む場合がある。状態データは、ロボットユニット１０２の状態を監視する内部センサ１０４、および／または環境を監視する外部センサ１０４によって取り込むことができる。
【００８４】
ブロック４４６において、電気機械状態分類器２５６は、状態データに基づいて、電気機械状態についての分類、およびそれらの分類についての対応する確率を特定することができる。いくつかの実装形態では、電気機械状態分類器２５６は、状態データを使用して潜在的に実行可能な動作を識別し、センサ１０４によって検出された状態に基づいて、ロボットユニット１０２が潜在的に実行可能な動作をいかに良く実行するかを判断することができる。いくつかの実装形態では、電気機械状態分類器２５６は、ロボットユニット１０２の物理状態を特定するために、ロボットユニット１０２の動作状態に関する状態データを使用することもできる。物理状態は、電力レベル、アクチュエータ１１４のタイプ、運動能力、物理サイズなどを含む場合がある。電気機械状態分類器２５６は、潜在的に実行可能な動作を識別するプロセスに物理状態を組み込むことができる。
【００８５】
ブロック４４８において、電気機械状態分類器２５６は、電気機械状態分類に属する電気機械状態の確率を推定することができる。いくつかの実装形態では、電気機械状態分類器２５６は、推定器を使用して確率を推定することができる。推定器は、ハンドオフ動作を実行するロボットユニット１０２のパフォーマンスを特定することができる。推定器は、いくつかの方法で実装することができる。いくつかの実装形態では、推定器は、潜在的なハンドオフ動作についての不十分／中立／良好なパフォーマンスの推定値を特定することができる。いくつかの実装形態では、推定器は、実験室試験条件（laboratory testing
conditions）から作成されたエキスパートシステムであり得る。さらなる実装形態では
、推定器は、ユーザ１３０の家庭または他の環境内部のパフォーマンスに応答して、オンラインで学習することができる。他の適切な変形形態も可能であり、考えられる。
【００８６】
図５は、嗜好モデルにフィードバックを提供するための例示的な方法５００のフローチャートである。いくつかの実装形態では、方法５００における動作は、図３のブロック３１２の下で実行可能な様々な動作を表すことができる。ブロック５０２において、アフォーダンス計算器２２２は、アクションレンダラ２２０がハンドオフアクションを実行した後、直接フィードバックを要求するべきかどうかを判定する。アフォーダンス計算器２２２は、ユーザ１３０から受信された入力に基づいて、直接フィードバックを要求することができる。ブロック５０４において、アフォーダンス計算器２２２は、ユーザ１３０に直接フィードバックを要求する。いくつかの実装形態では、直接フィードバックは、アンケート、格付けの要求、口頭でも質問、または、ユーザ１３０がハンドオフアクションに関して提供可能な他のタイプのフィードバックの形態であり得る。フィードバックは、ユーザのクライアントデバイスおよび／または場合によってはロボットユニット１０２に関連付けられた１つもしくは複数の入力デバイスを介して取り込むことができるが、他の適切な変形形態も可能であり、考えられる。
【００８７】
ブロック５０６において、アフォーダンス計算器２２２は、直接フィードバックを使用して嗜好モデルを更新する。いくつかの実装形態では、アフォーダンス計算器２２２は、直接フィードバックを使用し、嗜好モデルのアフォーダンス値を更新する。たとえば、アクションレンダラ２２０は、ユーザ１３０の位置に移動し、ユーザ１３０にボールを手渡
すハンドオフアクションを実行する場合がある。ユーザ１３０は、ハンドオーバアクションの後に、ロボットユニット１０２がユーザ１３０の空いている方の手にボールを置かなかったとコメントする場合がある。アフォーダンス計算器２２２は、ユーザ１３０から直接フィードバックを受け取り、ボールを使用する次のハンドオフアクションに対して、ロボットユニット１０２が最初にユーザ１３０の空いている手を特定し、空いている手へのハンドオフアクションを指示するように、嗜好モデルを更新することができる。
【００８８】
ブロック５０８において、直接フィードバックが要求されないとアフォーダンス計算器２２２が判定することに応答して、アフォーダンス計算器２２２は、アクションレンダラ２２０によって実行されるハンドオフアクションを監視する。いくつかの実装形態では、アフォーダンス計算器２２２は、直接フィードバックが要求されるか否かに関わらず、ハンドオフアクションを自動的に監視する。アフォーダンス計算器２２２は、ハンドオフアクション中に、センサ１０４を使用して環境およびロボットユニット１０２のパフォーマンス／動作状態についての情報を取り込むことにより、ハンドオフアクションを監視することができる。
【００８９】
ブロック５１０において、アフォーダンス計算器２２２は、ハンドオフアクションの成功／不成功を判断する。いくつかの実装形態では、成功は、ロボットユニット１０２がハンドオフアクションを完了したか否かとして識別することができるか、またはさらなる実装形態では、アフォーダンス計算器２２２は、ハンドオフアクションからの偏差を監視することができ、偏差を追跡し、偏差がしきい値を超えないことに基づいて成功を判断することができる。
【００９０】
ブロック５１２において、いくつかの実装形態では、アフォーダンス計算器２２２は、ハンドオーバアクションに対する人間の反応を判断する。アフォーダンス計算器２２２は、監視されたデータを使用して人間の反応を判断する。たとえば、センサ１０４は、（たとえば、ユーザを描写し、センサ１０４によって取り込まれた画像データに対して標準技法を使用する表情認識を実行することにより）、ユーザ１３０の顔の表情（たとえば、微笑）を取り込むことができ、アフォーダンス計算器２２２は、表情に基づいて、ユーザ１３０がハンドオフアクションの実行中のロボットユニット１０２のパフォーマンスに満足したか、または満足しなかったかを判定することができる。データモデル２１４は、アフォーダンス計算器２２２が、ユーザ１３０の人間の反応を使用してハンドオフアクションの成功を判断するために使用することができる、様々な人間の反応を含む場合がある。
【００９１】
ブロック５１４において、アフォーダンス計算器２２２は、成功および／または人間の反応に基づいて、間接フィードバックを特定することができる。たとえば、ロボットユニット１０２が狭い部屋を移動してユーザ１３０に物体を渡すことができなかったので、ハンドオフアクションが成功しなかったとアフォーダンス計算器２２２が判断した場合、アフォーダンス計算器２２２は、その部屋における次のハンドオフアクションのために、嗜好モデル内の異なる反応を特定することができる。たとえば、嗜好モデルは、ロボットユニット１０２を移動して、ユーザ１３０を移動させずに待機させるハンドオフアクションを上位にランク付けできるように、モデル内の値を変更する。直接フィードバックおよび間接フィードバックを使用することにより、アフォーダンス計算器２２２は、個々のユーザ１３０の嗜好が特定のユーザ１３０についての分類のカスタマイズおよびアフォーダンス決定を可能にすることを学習することかできる場合がある。
【００９２】
再び図６を参照すると、分類器６０４は、ハンドオーバアクション６０６の決定を行うために順次利用することができる。一つのハンドオーバアクション６０６の決定に複数の分類器６０４を統合することにより、ロボットユニット１０２は、より洗練されたハンドオーバアクション６０６を行うことか可能である。いくつかの実装形態では、ハンドオー
バシステム６００は、一般的な母集団に基づく嗜好モデルを使用することができるか、または代替の実装形態では、ハンドオーバシステム６００は、デフォルトモデルとして一般的な母集団に基づく嗜好モデルを使用することができ、特定のユーザ１３０からの直接フィードバックおよび間接フィードバックに基づいて嗜好モデルをパーソナライズすることができる。
【００９３】
以上の説明では、説明の目的で、本明細書を完全に理解するために、多数の具体的な詳細が明記されている。しかしながら、本開示はこれらの具体的な詳細なしに実践され得ることは、当業者には明らかである。場合によっては、説明を不明瞭にすることを回避するために、構造およびデバイスがブロック図の形で示される。たとえば、本実装形態は、主にユーザインターフェースおよび特定のハードウェアを参照して、上記で記載することができる。しかしながら、本実装形態は、データおよびコマンドを受信することができる任意のタイプのコンピューティングデバイス、ならびにサービスを提供する任意の周辺デバイスに適用することができる。
【００９４】
本明細書における「いくつかの実装形態」または「いくつかの事例」に対する参照は、その実装形態または事例とともに記載される特定の特徴、構造、または特性が説明の少なくとも１つの実装形態に含まれ得ることを意味する。本明細書における様々な場所での「いくつかの実装形態では」というフレーズの出現は、必ずしもすべてが同じ実装形態を参照しているとは限らない。
【００９５】
以下に続く詳細説明のいくつかの部分は、コンピュータメモリ内のデータビット上の演算のアルゴリズムおよびシンボル表現の観点から提示される。これらのアルゴリズム的な記述および表現は、データ処理技術分野の当業者により、他の当業者に自分の仕事の本質を最も効果的に伝達するために使用される手段である。本明細書において、かつ一般的に、アルゴリズムは、望ましい結果に導く自己矛盾のない一連のステップであると考えられる。ステップは、物理量の物理的操作を必要とするステップである。必ずしもそうであるとは限らないが、通常、これらの量は、記憶、転送、合成、比較、および他の方法で操作することが可能な電気信号または磁気信号の形態をとる。主に共通使用の理由で、これらの信号をビット、値、素子、シンボル、文字、用語、番号などとして参照することは、時には好都合であると証明されている。
【００９６】
しかしながら、これらおよび同様の用語のすべてが、適切な物理量に関連付けられ、これらの量に適用される便利なラベルにすぎないことは留意されるべきである。以下の説明から明白であると別段に明記されていない限り、説明全体にわたって、「処理」または「計算」または「算出」または「決定」または「表示」などを含む用語を利用する説明は、コンピュータシステムのレジスタおよびメモリ内の物理（電子）量として表されるデータを操作し、コンピュータシステムのメモリもしくはレジスタ、または他のそのような情報を記憶、送信、もしくは表示するデバイス内の物理量と同様に表される他のデータに変換する、コンピュータシステムまたは同様の電子コンピューティングデバイスのアクションおよびプロセスを参照する。
【００９７】
本明細書の本実装形態はまた、本明細書において動作を実行するための装置に関係することもできる。この装置は、必要な目的のために特別に構築される場合があるか、またはコンピュータに記憶されたコンピュータプログラムによって、選択的にアクティブ化もしくは再構成される汎用コンピュータを含む場合がある。そのようなコンピュータプログラムは、限定はしないが、各々がコンピュータシステムバスに結合される、フロッピーディスク、光ディスク、ＣＤ−ＲＯＭ、および磁気ディスクを含む任意のタイプのディスク、読取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気カードもしくは光カード、不揮発性メモリを有するＵＳＢキーを含むフラッ
シュメモリ、または電子命令を記憶するのに適した任意のタイプの媒体を含む、コンピュータ可読記憶媒体に記憶される場合がある。
【００９８】
本明細書は、いくつかの全体的にハードウェアの実装形態、いくつかの全体的にソフトウェアの実装形態、またはハードウェアとソフトウェアの両方の構成要素を含んでいるいくつかの実装形態の形態をとることができる。いくつかの好ましい実装形態では、本明細書は、限定はしないが、ファームウェア、常駐ソフトウェア、マイクロコードなどを含む、ソフトウェアに実装される。
【００９９】
さらに、説明は、コンピュータまたは任意の命令実行システムが使用するか、またはそれとともに使用されるプログラムコードを提供する、コンピュータ使用可能媒体またはコンピュータ可読媒体からアクセス可能なコンピュータプログラム製品の形態をとることができる。この説明の目的で、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、命令実行装置、または命令実行デバイスが使用するか、またはそれとともに使用されるプログラムを、内蔵、記憶、通信、伝播、または転送することができる任意の装置であり得る。
【０１００】
プログラムコードを記憶または実行するのに適したデータ処理システムは、システムバスを介してメモリ素子に直接的または間接的に結合された少なくとも１つのプロセッサを含む。メモリ素子は、プログラムコードの実際の実行中に利用されるローカルメモリ、バルクストレージ、および、実行中にバルクストレージからコードが取り出されねばならない回数を低減するために、少なくともいくつかのプログラムコードの一時的ストレージを提供するキャッシュメモリを含むことができる。
【０１０１】
（限定はしないが、キーボード、ディスプレイ、ポインティングデバイスなどを含む）入力／出力デバイスまたはＩ／Ｏデバイスは、直接または介在するＩ／Ｏコントローラを介して、システムに結合することができる。
【０１０２】
ネットワークアダプタは、データ処理システムが、介在する専用ネットワークまたは公共ネットワークを介して、他のデータ処理システムまたはリモートプリンタまたはストレージデバイスに結合されるようになることを可能にするために、システムに結合される場合もある。モデム、ケーブルモデム、およびイーサネット（登録商標）カードは、現在利用可能なタイプのネットワークアダプタのうちのほんの一部である。
【０１０３】
最後に、本明細書に提示されたアルゴリズムおよびディスプレイは、任意の特定のコンピュータまたは他の装置に本質的に関係しない。様々な汎用システムは、本明細書における教示によるプログラムとともに使用される場合があるか、または必要な方法ステップを実施するためにより特化した装置を構築することが好都合であると証明する場合がある。様々なこれらのシステムに必要な構造は、下記の説明から明らかになる。加えて、本明細書は、いかなる特定のプログラミング言語も参照して記載されていない。本明細書に記載された明細書の教示を実装するために、様々なプログラミング言語を使用できることが諒解されよう。
【０１０４】
本明細書の実装形態の上記の説明は、例示および説明の目的で提示されている。本明細書を開示されたそのままの形態に徹底または限定するものではない。上記の教示に照らして、多くの修正形態または変形形態が可能である。本開示の範囲は、この詳細説明によって限定されず、むしろ本出願の特許請求の範囲によって限定されるものである。当業者によって理解されるように、本明細書は、その趣旨または本質的な特性から逸脱することなく、他の固有の形態で具現化される場合がある。同様に、モジュール、ルーチン、特徴、属性、方法、および他の態様の特定の命名および分割は、必須または重要ではなく、本明
細書またはその特徴を実装するメカニズムは、様々な名称、分割、またはフォーマットを有する場合がある。さらに、当業者には明らかなように、本開示のモジュール、ルーチン、特徴、属性、方法、および他の態様は、ソフトウェア、ハードウェア、ファームウェア、またはその３つの任意の組合せとして実装することができる。また、その例がモジュールである本明細書の構成部品がソフトウェアとして実装される場合はいつでも、構成部品は、スタンドアロンプログラムとして、より大きいプログラムの一部として、複数の別々のプログラムとして、静的もしくは動的にリンクされたライブラリとして、カーネルのロード可能なモジュールとして、デバイスドライバとして、または、コンピュータプログラミングの当業者に現在知られているか、もしくは将来知られるすべておよび任意の他の方法で、実装することができる。加えて、本開示は、任意の固有のプログラミング言語における、または任意の固有のオペレーティングシステムもしくは動作環境のための実装に少しも限定されない。したがって、本開示は、以下の特許請求の範囲で明記される本明細書の範囲を限定するものではなく、例示するものである。
【符号の説明】
【０１０５】
１００  物体ハンドオーバシステム
１０１  計算サーバ
１０２  ロボットユニット
１０４  センサ
１０８  物体ハンドオーバエンジン
１１４  アクチュエータ
１１６  通信バス
１３０  ユーザ
１３２  クライアントデバイス
２００  コンピューティングデバイス
２０２  プロセッサ
２０４  メモリ
２０６  通信ユニット
２１２  ストレージデバイス
２１４  データモデル
２２０  アクションレンダラ
２２２  アフォーダンス計算器
２２４  認識分類器
２５０  物体分類器
２５２  環境分類器
２５４  ヒューマンアクション分類器
２５６  電気機械状態分類器
【図１】
0006439817.tif 000004
【図２Ａ】
0006439817.tif 000005
【図２Ｂ】
0006439817.tif 000006
【図３】
0006439817.tif 000007
【図４Ａ】
0006439817.tif 000008
【図４Ｂ】
0006439817.tif 000009
【図４Ｃ】
0006439817.tif 000010
【図４Ｄ】
0006439817.tif 000011
【図４Ｅ】
0006439817.tif 000012
【図５】
0006439817.tif 000013
【図６】
0006439817.tif 000014