特許第6439817号(P6439817)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

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

▶ トヨタ自動車株式会社の特許一覧
特許6439817認識的アフォーダンスに基づくロボットから人間への物体ハンドオーバの適合
<>
  • 特許6439817-認識的アフォーダンスに基づくロボットから人間への物体ハンドオーバの適合 図000004
  • 特許6439817-認識的アフォーダンスに基づくロボットから人間への物体ハンドオーバの適合 図000005
  • 特許6439817-認識的アフォーダンスに基づくロボットから人間への物体ハンドオーバの適合 図000006
  • 特許6439817-認識的アフォーダンスに基づくロボットから人間への物体ハンドオーバの適合 図000007
  • 特許6439817-認識的アフォーダンスに基づくロボットから人間への物体ハンドオーバの適合 図000008
  • 特許6439817-認識的アフォーダンスに基づくロボットから人間への物体ハンドオーバの適合 図000009
  • 特許6439817-認識的アフォーダンスに基づくロボットから人間への物体ハンドオーバの適合 図000010
  • 特許6439817-認識的アフォーダンスに基づくロボットから人間への物体ハンドオーバの適合 図000011
  • 特許6439817-認識的アフォーダンスに基づくロボットから人間への物体ハンドオーバの適合 図000012
  • 特許6439817-認識的アフォーダンスに基づくロボットから人間への物体ハンドオーバの適合 図000013
  • 特許6439817-認識的アフォーダンスに基づくロボットから人間への物体ハンドオーバの適合 図000014
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6439817
(24)【登録日】2018年11月30日
(45)【発行日】2018年12月19日
(54)【発明の名称】認識的アフォーダンスに基づくロボットから人間への物体ハンドオーバの適合
(51)【国際特許分類】
   B25J 5/00 20060101AFI20181210BHJP
【FI】
   B25J5/00 E
【請求項の数】13
【全頁数】31
(21)【出願番号】特願2017-64903(P2017-64903)
(22)【出願日】2017年3月29日
(65)【公開番号】特開2017-200718(P2017-200718A)
(43)【公開日】2017年11月9日
【審査請求日】2017年3月29日
(31)【優先権主張番号】15/147,901
(32)【優先日】2016年5月5日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】100100549
【弁理士】
【氏名又は名称】川口 嘉之
(74)【代理人】
【識別番号】100085006
【弁理士】
【氏名又は名称】世良 和信
(74)【代理人】
【識別番号】100113608
【弁理士】
【氏名又は名称】平川 明
(74)【代理人】
【識別番号】100123319
【弁理士】
【氏名又は名称】関根 武彦
(74)【代理人】
【識別番号】100123098
【弁理士】
【氏名又は名称】今堀 克彦
(74)【代理人】
【識別番号】100143797
【弁理士】
【氏名又は名称】宮下 文徳
(74)【代理人】
【識別番号】100138357
【弁理士】
【氏名又は名称】矢澤 広伸
(74)【代理人】
【識別番号】100176201
【弁理士】
【氏名又は名称】小久保 篤史
(72)【発明者】
【氏名】マーティンソン,エリック
(72)【発明者】
【氏名】キム,デヴィッド
(72)【発明者】
【氏名】シシュボット,エムラ アクン
(72)【発明者】
【氏名】中野 雄介
【審査官】 松井 裕典
(56)【参考文献】
【文献】 特開2013−022705(JP,A)
【文献】 国際公開第2009/031486(WO,A1)
【文献】 特開2007−152445(JP,A)
【文献】 特開2004−291228(JP,A)
【文献】 特開2011−245577(JP,A)
【文献】 国際公開第2006/006624(WO,A1)
【文献】 特開2012−139798(JP,A)
【文献】 特開2011−200970(JP,A)
【文献】 特開2015−187856(JP,A)
【文献】 特開2016−012340(JP,A)
【文献】 特開2003−039365(JP,A)
【文献】 特開2002−254376(JP,A)
【文献】 特開2003−271958(JP,A)
【文献】 佐藤 泰成,人の手の姿勢に着目したロボットによる手渡し動作の評価,第33回日本ロボット学会学術講演会予稿集DVD−ROM 2015年 The 33rd Annual Conference of the Robotics Society of Japan
【文献】 山本 智規 Tomonori YAMAMOTO,感性伝達関数を用いた腕型ロボットから人間への手渡し動作 Handing Motion of an Arm Robot to a Human Using "Kansei" Transfer Function,第24回日本ロボット学会学術講演会予稿集CD−ROM 2006年 The 24th Annual Conference of the Robotics Society of Japan 第24回日本ロボット学会学術講演会予稿集,社団法人日本ロボット学会
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 − 21/02
(57)【特許請求の範囲】
【請求項1】
コンピュータによって実行される、ロボットユニットからユーザに物体を直接的または間接的に渡すハンドオーバアクションの実行方法であって、
前記ロボットユニットのセンサから、前記ロボットユニットの周辺状況および前記ロボットユニットによって操作される物体のセンサデータを取得するステップと、
前記物体の種類、前記ユーザがとっている動作の種類、環境の種類、および前記ロボットユニットの電気機械状態の種類の少なくともいずれかについての、認識分類の確率を計算するステップと、
前記認識分類の確率と嗜好モデルとに基づいてハンドオーバアクションを決定するステップと、
決定されたハンドオーバアクションを実行するステップと、
前記ハンドオーバアクションに対するフィードバックを取得するステップと、
前記フィードバックに基づいて、前記嗜好モデルを更新するステップと、
を含む、方法。
【請求項2】
前記ハンドオーバアクションを決定するステップでは、
前記認識分類の確率と嗜好モデルに基づいて、あらかじめ定められた複数のハンドオーバアクションのそれぞれについて適合度を算出し、
最も適合度が高いハンドオーバアクションを選択する、
請求項1に記載の方法。
【請求項3】
前記認識分類の確率を計算するステップは、
前記センサデータから前記物体を表す物体データを抽出するステップと、
前記物体データに基づいて、前記物体の分類を決定するステップと、
前記物体の分類を用いて、当該分類にあてはまる確率を求めるステップと、
を含む、請求項1または2に記載の方法。
【請求項4】
前記認識分類の確率を計算するステップは、
前記センサデータから前記環境を表す環境データを抽出するステップと、
前記環境データに基づいて、前記環境の分類を決定するステップと、
前記環境の分類を用いて、当該分類にあてはまる確率を求めるステップと、
を含む、請求項1から3のいずれか1項に記載の方法。
【請求項5】
前記環境データは、ジオロケーションを表すデータである、
請求項4に記載の方法。
【請求項6】
前記認識分類の確率を計算するステップは、
前記センサデータから前記ユーザがとっている活動を表す活動データを抽出するステップと、
前記活動データに基づいて、前記ユーザがとっている活動の分類を決定するステップと、
前記ユーザがとっている活動の分類を用いて、当該分類にあてはまる確率を求めるステップと、
を含む、請求項1から5のいずれか1項に記載の方法。
【請求項7】
前記認識分類の確率を計算するステップは、
前記センサデータから前記ロボットユニットの電気機械状態を表す状態データを抽出するステップと、
前記状態データに基づいて、前記ロボットユニットの電気機械状態の分類を決定するステップと、
前記ロボットユニットの電気機械状態の分類を用いて、当該分類にあてはまる確率を求めるステップと、
を含む、請求項1から6のいずれか1項に記載の方法。
【請求項8】
前記フィードバックを取得するステップは、前記ハンドオーバアクションの実行を監視して、当該ハンドオーバアクションの実行の成否を間接的なフィードバックとして取得するものであり、
前記嗜好モデルを更新するステップでは、前記間接的なフィードバックに基づいて前記嗜好モデルを更新する、
請求項1から7のいずれか1項に記載の方法。
【請求項9】
前記フィードバックを取得するステップは、前記ユーザから直接的なフィードバックを取得するものであり、
前記嗜好モデルを更新するステップでは、前記直接的なフィードバックに基づいて前記嗜好モデルを更新する、
請求項1から7のいずれか1項に記載の方法。
【請求項10】
前記認識分類の確率を計算するステップでは、前記物体の認識分類の確率を表す第1の確率、前記ユーザがとっている動作の認識分類の確率を表す第2の確率、環境の認識分類の確率を表す第3の確率、および前記ロボットユニットの電気機械状態の認識分類の確率を表す第4の確率を計算し、
前記ハンドオーバアクションを決定するステップでは、前記第1の確率、前記第2の確率、前記第3の確率、前記第4の確率、および前記嗜好モデルに基づいて、ハンドオーバアクションを決定する、
請求項1から9のいずれか1項に記載の方法。
【請求項11】
前記ハンドオーバアクションを決定するステップでは、
地面に前記物体を置く、前記物体を保持したままユーザが前記物体を受け取るまで待つ、前記物体をもってユーザに接近して前記物体を手渡す、ユーザに対してハンオーバアクションが可能な仲介者に前記物体を手渡す、の少なくとも4つから前記ハンドオーバアクションを決定する、
請求項1から10のいずれか1項に記載の方法。
【請求項12】
請求項1から11のいずれか1項に記載の方法の各ステップをコンピュータに実行させるためのコンピュータプログラム。
【請求項13】
プロセッサと、
請求項12に記載のコンピュータプログラムを記憶したメモリと、
を備える、コンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、ロボットと人間のインタラクション(対話、相互作用)に関し、より具体的で非限定的な例として、ロボットから人間への物体ハンドオーバのための技法に関する。
【背景技術】
【0002】
既存の手法において、ロボットが人に物体をハンドオーバするコマンドを受信すると、ロボットは、成功すれば人がロボットから物体を受け取ることができる、あらかじめ決定されたアクションシーケンスを実行する。ロボットは、設計者によって事前プログラムされた1つの実行可能なハンドオーバアクションを実行する。ハンドオーバアクションのパラメータが調整される場合もあるが、アクション自体は変わらない。ロボットが実行するアクションを人が手動で指定可能なインターフェースが存在する場合もある。しかしながら、これらの例では、ロボットは自律的ではない。すなわち、ロボットが、アクション自体を切り替えることはなく、また、どのような状況でどのアクションをとるべきかを学習することもしない。
【0003】
ロボットのハンドオーバアクションを改善する1つの手法は、人がインタラクトしている物体に応じて人間の活動を定義または特定したり、逆に人間の活動から物体を定義または特定したりする(たとえば、非特許文献1、2を参照)。この手法の下で、物体に応じてアフォードする人間の活動が異なり(すなわち、可能な人間の活動が物体に応じて異なるということ)、それらのアフォーダンスを学習することができれば、ロボット/コンピュータシステムは、物体から人間の活動を識別することができることを前提としている。上記の作業は、条件付き確率場(CRF)を使用して、骨格データの組合せから人間の活動を予想し、人間の位置に関連して物体を検出する。しかしながら、骨格情報が利用できないことも多く、また、利用できても骨格情報の一部分が他の物体によって遮られることもあるので、骨格データに依存すると、上記の識別は実現不可能であったり信頼できない結果が得られたりすることになる。
【0004】
別の手法は、ハンドオーバアクションを修正するために人間の嗜好に焦点を当てる(たとえば、非特許文献3を参照)。この手法は、ハンドオーバの位置ではなく、軌跡(trajectory)を重視する。軌跡はハンドオーバアクションを特定するために役立てることがで
きるが、ハンドオーバアクションが行われる位置は、この手法では評価されない。むしろ、本手法はハンドオーバ位置が既知であることと、ハンドオーバ位置のみが、ハンドオーバの品質を改善するためにロボットの動きをどのように適合するかに関するユーザの唯一の期待であることを仮定している。しかしながら、ハンドオーバ位置が既知でないことも多く、また、ハンドオーバ品質を向上させるためには、ハンドオーバ位置以外の要素も重要である。
【0005】
別の手法は、様々なアフォーダンスデータを結合することにより、ハンドオーバの位置を特定することに焦点を当てる(たとえば、非特許文献4を参照)。この手法において重要視されるのは、現在の人間の位置から到達可能なエリアマップを組み込みこと、そして、人およびロボットの視点(たとえば、人間およびロボットがその位置を見る能力)を追加することである。結果としてアフォーダンスグラフが得られ、アフォーダンスグラフでは、各位置において物体をハンドオーバするために必要な労力が到達可能性および可視性を介して推定されている。しかしながら、この手法は、人が物体を取得するために自分の現在の位置から大きく移動しようとしないことを仮定するが、この仮定は、前記の手法のように、真の動的環境においては通常はあてはまらない。
【0006】
別の手法は、物体をハンドオーバする最良の位置を特定する際の人間の参加者の移動性および意思を考慮する(たとえば、非特許文献5を参照)。この手法は、もし、人がハンドオーバに協力することが可能であり、そうすることで迅速にハンドオーバが完了したりユーザのコストを最小限にできたりする場合には、多くのユーザがロボットの方に向かっていくということを考慮する。しかしながら、この手法は、環境、人間の活動、またはハンドオーバされる物体を考慮していない。さらに、ユーザは、自分の位置を変えて、ハンドオーバタスクにおける労力をロボットと共有できる場合でも、ユーザは、取り込み中であったり、ロボットが困難な環境をゆっくりやってくるのを待ちたくなったりする場合もある。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】Hema S.Koppula and Ashutosh Saxena, "Anticipating Human Activities using Object Affordance for Reactive Robotic Response", IEEE Transactions on Pattern Analysis and Machine Intelligence
【非特許文献2】Yun Jiang, Hema S.Koppula, and Ashutosh Saxena, "Modeling 3D Environments through Hidden Human Context", Sexena PAMI 2015
【非特許文献3】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
【非特許文献4】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
【非特許文献5】Jim Mainprice, Mamoun Gharbi, Thierry Sim’eon, and Rachid Alami, "Sharing Effort in Planning Human-Robot Handover Task", IEEE RO-MAN, Paris France, 2011
【発明の概要】
【発明が解決しようとする課題】
【0008】
上述したように、困難な状況において従来よりも自律的・動的・適応的な、ロボットから人間へのハンドオーバアクションが求められている。
【課題を解決するための手段】
【0009】
本明細書は、認識的アフォーダンスを使用してロボットから人間への物体ハンドオーバのための新規の技術を提供することにより、少なくとも部分的に、背景技術セクションにおいて記載されたソリューションの欠陥および制限を克服する。
【0010】
本開示に記載される主題の1つの発明的態様は、コンピュータによって実行される、ロボットユニットからユーザに物体を手渡すハンドオーバアクションの実行方法であって、前記ロボットユニットのセンサから、前記ロボットユニットの周辺状況および前記ロボットユニットによって操作される物体のセンサデータを取得するステップと、前記物体の種類、前記ユーザがとっている動作の種類、環境の種類、および前記ロボットユニットの電気機械状態の種類の少なくともいずれかについての、認識分類の確率を計算するステップと、前記認識分類の確率と嗜好モデルとに基づいてハンドオーバアクションを決定するステップと、決定されたハンドオーバアクションを実行するステップと、を含む。一態様では、前記ハンドオーバアクションを決定するステップでは、前記認識分類の確率と嗜好モデルに基づいて、あらかじめ定められた複数のハンドオーバアクションのそれぞれについて適合度を算出し、最も適合度が高いハンドオーバアクションを選択する。
【0011】
本開示に記載される主題の1つの発明的態様によれば、システムは、1つまたは複数のコンピュータプロセッサ、および、1つまたは複数のプロセッサによって実行されると、センサからセンサデータを受信することであって、センサデータが環境を記述する、受信することと、センサデータに基づいて認識分類の確率を計算することと、嗜好モデルを使用して認識分類に基づいて確率のアフォーダンスを計算することと、アフォーダンスに基づいてハンドオーバアクションを決定することと、ハンドオーバアクションを実行することと、フィードバックに基づいて嗜好モデルを更新することとを含む動作をシステムに実行させる命令を記憶する1つまたは複数のメモリを含む。
【0012】
一般に、本開示に記載される主題の別の発明的態様は、1つまたは複数のコンピュータプロセッサを使用して、センサからセンサデータを受信することであって、センサデータが環境を記述する、受信することと、1つまたは複数のコンピュータプロセッサを使用して、センサデータに基づいて認識分類の確率を計算することと、1つまたは複数のコンピュータプロセッサを使用して、嗜好モデルを使用して認識分類に基づいて確率のアフォーダンスを計算することと、1つまたは複数のコンピュータプロセッサを使用して、アフォーダンスに基づいてハンドオーバアクションを決定することと、1つまたは複数のコンピュータプロセッサを使用して、ハンドオーバアクションを実行することと、1つまたは複数のコンピュータプロセッサを使用して、フィードバックに基づいて嗜好モデルを更新することとを含む、ハンドオーバアクションを実行するための方法において具現化することができる。
【0013】
他の態様は、上記その他の発明的態様のための対応する方法、システム、装置、およびコンピュータプログラム製品を含む。
上記その他の実装形態は、各々、場合によっては、以下の特徴および/または動作のうちの1つまたは複数を含む場合がある。たとえば、特徴および/または動作は、センサデータから物体データを抽出することと、物体データに基づいて物体特性を特定することと、物体特性に基づいて物体分類を特定することと、物体分類の確率を計算することと、センサデータから環境データを抽出することと、環境データに基づいて環境分類を特定することと、環境分類を使用して確率を計算することと、活動データに基づいて人間の活動を抽出することと、人間の活動に基づいて人間の活動分類を特定することと、人間の活動分類を使用して確率を計算することと、センサデータから状態データを抽出することと、状態データに基づいて状態を特定することと、状態に基づいて電気機械状態分類を特定することと、電気機械状態分類を使用して確率を計算することと、実行されたハンドオーバアクションを監視することと、ハンドオーバアクションの成功を判断することと、成功に基づいて間接フィードバックを決定することと、間接フィードバックを使用して嗜好モデルを更新することと、ユーザに直接フィードバックを要求することと、直接フィードバックを使用して嗜好モデルを更新することと、環境データがジオロケーションであることと、センサデータに基づいて認識分類の確率を計算することが、物体分類についての第1の確率を計算すること、人間の活動についての第2の確率を計算すること、環境についての第3の確率を計算すること、および電気機械状態分類についての第4の確率を計算すること、ならびに第1の確率、第2の確率、第3の確率、および第4の確率に基づいてアフォーダンスを計算することを含むこととを含む。
【発明の効果】
【0014】
本技術は、ロボットユニットがアフォーダンスを少しずつ利用してハンドオーバ決定を行うことができるので、特に有利である。ロボットユニットは、環境からデータを収集し、様々なアフォーダンスを使用して様々なハンドオーバアクションを決定することにより、高度意思決定を使用してハンドオーバアクションを実行することができる。さらに、ユーザから直接フィードバックおよび/または間接フィードバックを受信することにより、
ロボットユニットは、個人の嗜好を学習することができる。
【0015】
上記の利点は例として提供されたこと、および本技法は多数の他の利点および利益を有することができることを理解されたい。
【図面の簡単な説明】
【0016】
図1】例示的な物体ハンドオーバシステムを示すブロック図である。
【0017】
図2A】例示的なコンピューティングデバイスのブロック図である。
図2B】例示的な認識分類器のブロック図である。
【0018】
図3】ロボットから人間への物体ハンドオーバを実行するための例示的な方法のフローチャートである。
【0019】
図4A】データを分類する例示的な方法のフローチャートである。
図4B】データを分類する例示的な方法のフローチャートである。
図4C】データを分類する例示的な方法のフローチャートである。
図4D】データを分類する例示的な方法のフローチャートである。
図4E】データを分類する例示的な方法のフローチャートである。
【0020】
図5】嗜好モデルにフィードバックを提供するための例示的な方法のフローチャートである。
【0021】
図6】例示的な物体ハンドオーバシステムを示す高位図である。
【発明を実施するための形態】
【0022】
本明細書は、添付図面の図において限定ではなく例として示され、添付図面では、同様の構成要素を参照するために同様の参照番号が使用される。
【0023】
本明細書は、認識的アフォーダンスを使用してロボットから人間への物体ハンドオーバを適合するための技術を開示する。認識的アフォーダンス(単にアフォーダンスとも称する)は、物(あるいは環境)とユーザの間に存在する行為についての関係性を意味し、ある物に対してユーザが特定の行為が可能であるという関係を意味する。また、そのような関係があることは、「物がユーザに対して当該行為をアフォードする」と表現される。また、上記の関係性を、物体がユーザに対して特定の行動を誘発するものと解釈して、物がユーザの行動を誘発することをアフォーダンスとも称する。さらに、物が行動を誘発する程度(確率)は大小様々であり、本明細書においては、物が特定の行為をどの程度誘発するかという意味でもアフォーダンスという用語を用いる。
本技術は、図1に示されたように、例示的な物体ハンドオーバシステム100を含む。システム100は、任意の数のロボットユニット102を含んでよい。ロボットユニット102は、信号線122によって表されるように、システム100の他のエンティティとの通信のために、ネットワーク120にワイヤレス結合することができる。システム100はさらに、信号線136によって表されるように、ネットワーク120に通信可能に結合されたクライアントデバイス132を含む場合がある。いくつかの実装形態では、クライアントデバイス132は、追加および/または代替として、ワイヤレス接続および/または有線接続などの信号線124を介して、ロボットユニット102に直接結合することができる。ユーザ130は物体を受け取るのを待っている人間であってもよい。ユーザ130は、線134によって表されるように、入出力デバイスを介してクライアントデバイス132とインタラクションすることができる。システム100はさらに、信号線130によって表されるように、ネットワーク120に通信可能に結合することができる、計算
サーバ101を含む場合がある。
【0024】
例示的な実装形態では、ロボットユニット102は物体を保持しており、ロボットユニット102はハンドオーバアクションを使用してこの物体を人間に渡すように構成される。ロボットユニット102は、センサ104を使用してデータを収集し、センサ104によって収集されたデータを分類して利用可能なアフォーダンスを決定し、アフォーダンスに基づいて計算されたハンドオーバアクションを実行する。図6は、ハンドオーバアクションを決定するための例示的なプロセス600の図を示す。
【0025】
ハンドオーバアクションは、ユーザ130に直接的または間接的に物体を渡すための、ロボットユニット102によって実行される任意のアクションであり得る。いくつかの実装形態では、ロボットユニット102によって実行されるハンドオーバアクション606の例として次のような物がある。
・ユーザ130が移動しピックアップために地面等に物体を置く
・物体を保持したままユーザ130がやってきて物体をピックアップするのを待つ
・物体をもってユーザ130に接近し、ユーザ130に物体を手渡す
・仲介者に物体を手渡し、仲介者からユーザ130に物体を手渡させる
【0026】
ロボットユニット102は、認識分類器(perceptual classifier)604を用いて種
々の観点から現在の状況(situation)を分類・特定し、特定された現在の状況において
どのハンドオーバアクション606を実行するべきかを判断する。認識分類器604は、センサ602から受信されたデータに基づいて、様々な観点について、その観点における状況がどのクラスに分類されるかについての確率を計算する。様々な確率は、環境および/またはロボットユニット102の動作状態に基づいて取られ得る様々なアフォーダンスを決定するために使用される。アフォーダンスは、環境および/またはロボットユニット102の動作状態に基づく、エージェントによるアクションを決定する要因となる。たとえば、アフォーダンスは、物体または環境と、エージェントとの間の、エージェントがあるアクションを実行する機会をアフォードする(もたらす)関係を記述する。さらなる例として、アフォーダンスは、我々がエージェントBを有すると仮定して、アクションAの尤度(likelihood)が正確であることに基づいて決定することができる。システム100は、下記でさらに詳細に説明されるように、認識分類器604(たとえば、物体、環境、人間の活動などを分類する分類器)を訓練することができ、分類器604ごとの確率テーブルP(A|B)を学習することができる。
【0027】
ロボットユニット102は、センサ602を使用して、環境の画像、環境のオーディオ、(ジオロケーションなどの)位置データ、ロボットユニット102の動作データなどの、環境および/またはロボットユニット102の動作状態を表すセンサデータを収集することができる。
【0028】
センサ602から収集されたデータは、それぞれ、認識分類器604が、分類に関連する確率を特定するために処理する。たとえば、図6に示されたように、認識分類器604は、物体認識分類器、環境認識分類器、人間アクション認識分類器、電気機械状態認識分類器を含む。物体認識分類器は、物体の画像データおよび物体の重量データなどに基づいて、ハンドオーバされる物体のタイプ(たとえば、ボールなど)を推定する。環境認識分類器は、環境の画像データ、環境のオーディオデータ、(既知の位置を参照して)環境が位置する場所を識別する位置データなどに基づいて、環境(たとえば、近くに障害物がない廊下/研究室など)を推定する。人間アクション認識分類器は、ユーザの画像データ、ユーザのオーディオデータなどを使用して、人間の状態(たとえば、立っている、移動している、アクションを忙しく実行しているなど)を推定する。電気機械状態認識分類器は、対応するセンサデータ(たとえば、バッテリ状態データ、前のインタラクションからの
入力データなど)を使用して、ロボットユニット102の状態(たとえば、低バッテリ電力、以前の試みの成功もしくは失敗の程度など)を推定する。
【0029】
ロボットユニット102は、認識分類器604の出力を使用して、様々なハンドオーバアクション606を計算することができる。これらのハンドオーバアクション606は、様々な状況において広範囲のタスクを実行することができる。さらなる理解のために、以下の非限定的な例が提供される。第1のシナリオとして、ロボットユニット102は、環境が乱雑(cluttered)であり、ロボットユニット102による移動を困難にしていると
判断する場合を考える。環境が乱雑であると推定することに応答して、ロボットユニット102は、物体を地面に置いて、人間が移動してきて物体をピックアップできるようにする。第2のシナリオとして、ロボットユニット102は、環境が乱雑であり、物体が丸いと判断する場合を考える。この場合は、物体が転がってしまう場所に物体を置くのではなく、ロボットユニット102は物体を保持し、人間が接近するまで待ち、物体を直接ハンドオーバする。第3のシナリオでは、ロボットユニット102は、環境が開かれており、通行可能であると判断する場合を考える。この例では、ロボットユニット102は、人間のいる所まで移動し、物体を直接ハンドオーバする。第4のシナリオとして、ロボットユニット102は、最終的なハンドオーバアクション606が可能な仲介者(たとえば、別の人間、別のロボットユニットなど)が環境内に存在すると判断する場合を考える。この場合は、ロボットユニット102は、仲介者まで移動し、物体を仲介者に渡す。いくつかの実装形態では、ロボットユニット102は、本明細書内の他の場所でさらに詳細に説明されるように、ハンドオーバアクションの間/後に直接フィードバックおよび/または間接フィードバックを受信して、個人の嗜好のために次のハンドオーバアクションをパーソナライズすることができる。
【0030】
再び図1を参照すると、図示されるように、ロボットユニット102は、1つまたは複数のセンサ104と、物体ハンドオーバエンジン108のインスタンス108aと、1つまたは複数のアクチュエータ114とを含む。センサ104、物体ハンドオーバエンジン108a、およびアクチュエータ114は、通信バス116によって互いに結合される。ロボットユニット102は、オペレーティングシステム、他のソフトウェア、入出力デバイス、アクチュエータコントローラ、ハウジング、ロボット工学においてしばしば使用される他の機械的および/または電気的構成部品などの、追加のおよび/またはより少ない構成部品を含む場合があることを理解されたい。
【0031】
センサ104は、ロボットユニット102の状態、その構成部品、および/またはその環境を検出することが可能な検知デバイスを含む場合もある。非限定的で例示的な検知デバイスには、ジャイロスコープ、加速度計、熱電対、タッチセンサ、重量センサ、近接センサ、光センサ、2Dカメラ、3Dカメラ、飛行時間(TOF)カメラ、立体カメラ、音声センサ(マイクロフォン)、圧力センサなどが含まれる。他のタイプのセンサも考えられる。
【0032】
インスタンス108aおよび/または108bとして表1に表される物体ハンドオーバエンジン108は、認識的アフォーダンスを使用して、ロボットユニット102からユーザ130への物体ハンドオーバを計算するように動作可能である。物体ハンドオーバエンジン108は、少なくとも図2A図6などを参照して、本明細書内の他の場所でさらに詳細に説明される。
【0033】
アクチュエータ114は、エネルギーを運動に変換することが可能な機械的デバイスおよび/または電気的デバイスを含む。アクチュエータ114は、電気的、空気式、油圧式、磁気的、機械的、および/もしくは磁気的、ならびに/または上記の組合せであり得る。非限定的で例示的なアクチュエータ114には、電気モータ、サーボ機構、油圧シリン
ダ、空気アクチュエータ、対応する伝動装置、コネクタ、およびキネマティック構成部品などが含まれる。アクチュエータ114は、ロボットユニット102のアクチュエータ114を制御するためのアクチュエータコントローラを含む場合がある。たとえば、アクチュエータコントローラは、信号(たとえば、運動コマンド、較正コマンドなど)をアクチュエータ114に送って、ロボットユニット102自体ならびに/またはその付属物および構成部品の方向および速度を含む、ロボットユニット102の動きまたは状態を制御することができる。アクチュエータコントローラは、アクチュエータ114にコマンド(たとえば、運動コマンド、較正コマンドなど)を送って、ロボットユニット102の付属物を使用してハンドオーバアクションを実行することもできる。アクチュエータコントローラは、ハードウェア、ソフトウェア、および/または上記の組合せから構成される場合がある。たとえば、アクチュエータコントローラは、アクチュエータ114を制御するための標準コンピュータ回路、ファームウェアなどを備える場合がある。いくつかの実装形態では、アクチュエータコントローラは、図2Aに示されるプロセッサ202などのプロセッサと一体化される場合があるか、または、プロセッサ202と別個ではあるが、バス116を介してプロセッサ202に結合される場合がある。
【0034】
ロボットユニット102の構成部品は、バス116を介して通信可能に結合され、そのことは、少なくとも図2Aを参照してさらに詳細に説明される。
【0035】
計算サーバ101は、本明細書内の他の場所で説明されるように、データを処理、記憶、および通信する能力を有する、コンピュータのハードウェアおよびソフトウェアを含む。たとえば、計算サーバ101は、1つもしくは複数のハードウェアサーバ、サーバアレイ、ストレージデバイス、および/またはシステムなどを含む場合がある。いくつかの実装形態では、計算サーバ101は、ホストサーバ環境内で動作する1つまたは複数の仮想サーバを含む場合がある。図示されるように、計算サーバ101は、本明細書内の他の場所でさらに詳細に説明される、108bと物体ハンドオーバエンジン108のインスタンス108aを含む場合がある。
【0036】
図2Aは、例示的なコンピューティングデバイス200のブロック図である。図示されるように、コンピューティングデバイス200は、プロセッサ202、メモリ204、通信ユニット206、センサ104、物体ハンドオーバエンジン108、および/またはストレージデバイス212を含む場合があり、それらは、標準通信バス116によって通信可能に結合することができる。図2Aに示されるコンピューティングデバイス200は一例として提供され、本開示の範囲から逸脱することなく、他の形態を取り、(たとえば、ロボットユニット102のアーキテクチャを表す場合)図1に示されるロボットユニット102の構成部品、コマンドの入力、人間とコンピュータのインタラクション、および/もしくは通知の受信などのための標準入出力デバイス(たとえば、ポインタデバイス、キーボード、ディスプレイ、カメラ、マイクロフォンなど)、ならびに/または任意の他の適切なコンピュータ構成部品などの、追加のまたはより少ない構成部品を含む場合があることを理解されたい。
【0037】
プロセッサ202は、様々な入力/出力演算、論理演算、および/または数学演算を実施することによって命令を実行することができる。プロセッサ202は、データ信号を処理する様々な既知のコンピューティングアーキテクチャを有する場合がある。プロセッサ202は、実体および/または仮想であり得るし、単一の処理ユニットまたは複数の処理ユニットを含む場合がある。いくつかの実装形態では、プロセッサ202は、電子表示信号を生成し、ディスプレイデバイス(図示せず)に供給し、画像の表示をサポートし、画像を取り込み送信し、様々なタイプの特徴抽出およびサンプリングなどを含む複雑なタスクを実行することが可能であり得る。いくつかの実装形態では、プロセッサ202は、バス116を介してメモリ204に結合して、メモリ204からデータおよび命令にアクセ
スし、メモリ204にデータを記憶することができる。バス116は、たとえば、メモリ204、センサ104、通信ユニット206、ストレージデバイス212などを含む、1つまたは複数の他の構成部品にプロセッサ202を結合することができる。プロセッサ202は単一のデバイスであり得るか、または複数のタイプのデバイスおよび構成を含む場合があることを理解されたい。
【0038】
メモリ204は、データを記憶し、コンピューティングデバイス200の他の構成部品にデータへのアクセスを提供することができる。いくつかの実装形態では、メモリ204は、プロセッサ202によって実行され得る命令および/またはデータを記憶することができる。たとえば、メモリ204は、物体ハンドオーバエンジン108および/またはその構成部品を記憶することができる。メモリ204はまた、たとえば、オペレーティングシステム、ハードウェアドライバ、他のソフトウェアアプリケーション、データベースなどを含む、他の命令およびデータを記憶することが可能であり得る。メモリ204は、プロセッサ202およびコンピューティングデバイス200の他の構成部品との通信のために、バス116に結合することができる。
【0039】
メモリ204は、プロセッサ202によって、またはプロセッサ202とともに処理するための、命令、データ、コンピュータプログラム、ソフトウェア、コード、ルーチンなどを、含有、記憶、通信、伝搬、または搬送することができる装置またはデバイスを含むことができる、1つまたは複数の非一時的コンピュータ使用可能(たとえば、読取り可能、書込み可能などの)媒体を含む。いくつかの実装形態では、メモリ204は、揮発性メモリおよび不揮発性メモリのうちの1つまたは複数を含む場合がある。たとえば、メモリ204は、限定はしないが、ダイナミックランダムアクセスメモリ(DRAM)デバイス、スタティックランダムアクセスメモリ(SRAM)デバイス、ディスクリートメモリデバイス(たとえば、PROM、FPROM、ROM)、ハードディスクドライブ、光ディスクドライブ(CD、DVD、Blu−ray(登録商標)など)のうちの1つまたは複数を含む場合がある。メモリ204は単一のデバイスであり得るか、または複数のタイプのデバイスおよび構成を含む場合があることを理解されたい。
【0040】
通信ユニット206は、信号線122によって表されるように、ネットワーク120、および/またはシステム100の他の構成部品との有線接続および/またはワイヤレス接続用の1つまたは複数のインターフェースデバイスを含む場合がある。たとえば、通信ユニット206は、限定はしないが、Wi−Fi(登録商標)、Bluetooth(登録商標)、近距離無線通信(NFC)、セルラー通信などを使用して信号を送受信するためのワイヤレストランシーバ、CATタイプインターフェース、USBインターフェース、それらの様々な組合せなどを含む場合がある。通信ユニット206は、バス116を介してコンピューティングデバイス200の他の構成部品に結合することができる。通信ユニット206は、たとえば、本明細書内の他の場所で説明されるプロトコルを含む、様々な標準通信プロトコルを使用して通信することができる。
【0041】
バス116は、コンピューティングシステムの構成部品間、またはコンピューティングシステム間でデータを転送するための通信バス、ネットワーク120および/またはその部分を含むネットワークバスシステム、プロセッサメッシュ、それらの組合せなどを含む場合がある。いくつかの実装形態では、バス116は、業界標準アーキテクチャ(ISA)バス、周辺構成部品相互接続(PCI)バス、ユニバーサルシリアルバス(USB)、または同様の機能を提供するように知られている他の何らかのバスを含む、1つまたは複数のバスを表す場合がある。追加および/または代替として、コンピューティングデバイス200の様々な構成部品は、バス116と連携して実装されるソフトウェア通信機構を介して、協働および通信することができる。ソフトウェア通信機構は、たとえば、プロセス間通信、ローカル関数もしくはローカルプロシージャの呼出し、リモートプロシージャ
の呼出し、オブジェクトブローカ(たとえば、CORBA)、ソフトウェアモジュール間の直接ソケット通信(たとえば、TCP/IPソケット)、UDPのブロードキャストおよび受信、HTTP接続などを含み、かつ/または容易にすることができる。さらに、通信のうちのいずれかまたはすべては、セキュア(たとえば、SSH、HTTPSなど)であり得る。
【0042】
ストレージデバイス212は、データを記憶し、データへのアクセスを提供するための情報ソースである。ストレージデバイス212によって記憶されるデータは、データモデル214に編成することを含む、様々な基準を使用して編成および照会することができる。データモデル214は、認識的アフォーダンスを使用してハンドオーバアクションを実行するためのデータおよびアルゴリズム、たとえば、嗜好モデル、物体モデル、環境モデル、ヒューマンアクションモデル、状態モデル、物体ハンドオーバモデルなどを含む場合がある。これらのモデルは、あらかじめ決定されるか、または物体ハンドオーバエンジン108によって決定および/もしくはさらに学習される場合がある。データモデル214としてストレージデバイス212によって記憶されるデータのタイプの例には、データテーブル、データベース、または本明細書内の他の場所で説明される他の編成された集合が含まれ得る。
【0043】
ストレージデバイス212は、ロボットユニット102に含まれたり、ロボットユニット102とは別個であるが、ロボットユニット102に結合されるかまたはロボットユニット102によってアクセス可能な、別のコンピューティングシステムおよび/もしくはストレージシステムに含まれたりする場合がある。ストレージデバイス212は、データを記憶するための1つまたは複数の非一時的コンピュータ可読媒体を含む。いくつかの実装形態では、ストレージデバイス212は、メモリ204とともに組み込まれる場合があるか、またはメモリ204とは別個の場合がある。いくつかの実装形態では、ストレージデバイス212は、ロボットユニット102上で動作可能なデータベース管理システム(DBMS)に関連するデータを記憶することができる。たとえば、DBMSは、構造化照会言語(SQL)のDBMS、非SQLのDBMS、ファイルシステム、フラットファイル、それらの様々な組合せなどを含む可能性がある。場合によっては、DBMSは、行と列から構成される多次元テーブルにデータを記憶し、プログラムに基づいた演算を使用して、データの行を操作、たとえば、挿入、照会、更新、および/または削除することができる。
【0044】
物体ハンドオーバエンジン108は、ハンドオーバ(ハンドオフ)動作を計算し実行するように実行可能なコンピュータロジックを含む。コンピュータロジックは、当業者なら理解されるように、ソフトウェア、ハードウェア、および/または上記の組合せにおいて実装することができる。たとえば、物体ハンドオーバエンジン108は、本明細書で説明される動作を実行するように、プロセッサ202をプログラムすることができる。たとえば、物体ハンドオーバエンジン108のソフトウェアルーチンは、メモリ204に記憶され、プロセッサ202によって取り出され、実行される場合がある。別の例では、物体ハンドオーバエンジン108は、本明細書で説明される動作および/または機能を実行するように、プロセッサ202によって実装される回路を含む場合がある。回路の非限定的な例には、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、ワイヤリング、標準電子構成部品、ボード、および/または他の適切な回路などが含まれる。
【0045】
本明細書は、時々、物体ハンドオーバエンジン108および/またはその副構成部品を、それらによって遂行される様々な動作を不明瞭にしないように、便宜上主体として(第三人称で)言及する。しかしながら、これらの構成要素は、本明細書に記載される特定の動作を実行するために、プロセッサ202によって実行可能であり、プロセッサ202を
プログラムするなどのロジックであることを理解されたい。
【0046】
図2Aに示されるように、物体ハンドオーバエンジン108は、アクションレンダラ220、アフォーダンス計算器222、および/または認識分類器224などの、様々な副構成部品を含む場合があるが、これらの構成部品のうちの1つまたは複数は、本開示の範囲から逸脱することなく、様々な形態を取る場合があり、一緒に統合され、かつ/またはさらなる構成部品に分割される場合があることを理解されたい。図2Aに示される物体ハンドオーバエンジン108は例として提供され、物体ハンドオーバエンジン108は、本開示の範囲から逸脱することなく、他の形態を取り、追加のまたはより少ない構成部品を含む場合があることを理解されたい。たとえば、いくつかの構成では、物体ハンドオーバエンジン108またはその様々な態様は、異なる位置にある異なるデバイス上にネットワーク120を介して分散される場合があるか、または物体ハンドオーバエンジン108のすべての機能は、単一のコンピューティングデバイスもしくは関連デバイスのグループによって動作可能な常駐コードであり得る。他の構成も可能であり、考えられる。
【0047】
アクションレンダラ220は、アフォーダンス関連データ(affordance-related data
)に基づいて様々なアクションを実行するように動作可能なコンピュータロジックを含む。アフォーダンス関連データは、本明細書内の他の場所で説明されるように、環境、物体、ロボット、ヒューマンアクションなどの、様々な条件によって支持され得る1つまたは複数のアクションの確率(あるいは適合度)を記述するデータである。一例では、アクションレンダラ220は、ロボットユニット102の制御内の物体をユーザ130に渡すように、ハンドオーバアクションを決定することができる。アクションレンダラ220は、アフォーダンス計算器222および/またはデータストアに結合して、アフォーダンス関連データを受信することができる。限定ではなく例として、アクションレンダラ220は、プロシージャ呼出しを行うこと、オブジェクト指向の方法を呼び出すこと、または別の適切なプロセスを起動することによって、実行することができる。たとえば、物体ハンドオーバエンジン108のメインプログラム、アフォーダンス計算器222、外部もしくは内部のAPI、または別の構成部品は、アクションレンダラ220をインスタンス化することができるが、他の実行パスも適用可能であり、考えられる。
【0048】
いくつかの実装形態では、アクションレンダラ220は、バス116を介して、プロセッサ202、メモリ204、および例示的なコンピューティングデバイス200の他の構成部品との協働および通信に適合される。アクションレンダラ220は、ハンドオーバアクションの実行中に受信されたデータおよびコマンドを、メモリ204および/またはストレージデバイス212に記憶することができる。アクションレンダラ220は、出力デバイスに結合して、ユーザ130および/または環境内の他の物体に情報を出力することができる。アクションレンダラ220は、入力デバイスに結合して、ユーザ130および/または環境内の他の物体から情報を受信することができる。アクションレンダラ220は、本明細書内の他の場所で説明されるように、アクチュエータ114を制御するためのアクチュエータコントローラに結合することができる。
【0049】
アフォーダンス計算器222は、認識分類器関連データ(classifier-related data)
に基づいて様々なアフォーダンスを推定するように動作可能なコンピュータロジックを含む。認識分類器関連データは、本明細書内の他の場所で説明されるように、環境および/またはロボットユニット102の動作状態の情報の分類を記述するデータである。一例では、アフォーダンス計算器222は、環境および/またはハンドオーバ物体の1つまたは複数の分類を使用してアフォーダンスを推定し、アフォーダンス関連データとしてアクションレンダラ220にアフォーダンスを渡すことができる。
【0050】
アフォーダンス計算器222は、認識分類器224、アクションレンダラ220、およ
び/またはデータストアに結合して、認識分類器関連データなどのデータを送受信することができる。限定ではなく例として、アフォーダンス計算器222は、プロシージャ呼出しを行うこと、オブジェクト指向の方法を呼び出すこと、または別の適切なプロセスを起動することによって、実行することができる。たとえば、物体ハンドオーバエンジン108のメインプログラム、認識分類器224、外部もしくは内部のAPI、または別の構成部品は、アフォーダンス計算器222をインスタンス化することができるが、他の実行パスも適用可能であり、考えられる。
【0051】
いくつかの実装形態では、アフォーダンス計算器222は、バス116を介して、プロセッサ202、メモリ204、および例示的なコンピューティングデバイス200の他の構成部品との協働および通信に適合される。アフォーダンス計算器222は、アフォーダンスの推定中に受信されたデータおよびコマンドを、メモリ204および/またはストレージデバイス212に記憶することができる。アフォーダンス計算器222は、出力デバイスに結合して、情報を出力することができる。アフォーダンス計算器222は、入力デバイスに結合して、ユーザ130からフィードバックなどの入力を受信し、メモリ204および/またはストレージデバイス212に入力を記憶することができる。アフォーダンス計算器222は、センサ104に結合して、アクションレンダラ220によるハンドオーバアクションの実行中に環境のデータを受信し、受信されたデータをメモリ204および/またはストレージデバイス212に記憶することができる。
【0052】
認識分類器224は、センサ104から受信されたセンサデータに基づいて、様々な認識分類を推定するように動作可能なコンピュータロジックを含む。センサデータは、本明細書内の他の場所で説明されるように、環境および/またはロボットユニット102の動作状態に関するデータであり、センサ104によって取り込まれたデータである。一例では、認識分類器224は、環境のセンサデータを使用して認識分類を推定し、認識分類関連データとしてアフォーダンス計算器222に認識分類を渡すことができる。
【0053】
認識分類器224は、アフォーダンス計算器222、センサ104、および/またはデータストアに結合して、センサデータを受信することができる。限定ではなく例として、認識分類器224は、プロシージャ呼出しを行うこと、オブジェクト指向の方法を呼び出すこと、または別の適切なプロセスを起動することによって、実行することができる。たとえば、物体ハンドオーバエンジン108のメインプログラム、センサ104、外部もしくは内部のAPI、または別の構成部品は、認識分類器224をインスタンス化することができるが、他の実行パスも適用可能であり、考えられる。
【0054】
いくつかの実装形態では、認識分類器224は、バス116を介して、プロセッサ202、メモリ204、および例示的なコンピューティングデバイス200の他の構成部品との協働および通信に適合される。認識分類器224は、アフォーダンスの推定中に受信されたデータおよびコマンドを、メモリ204および/またはストレージデバイス212に記憶することができる。認識分類器224は、出力デバイスに結合して、情報を出力することができる。認識分類器224は、入力デバイスに結合して、ユーザ130からフィードバックなどの入力を受信し、メモリ204および/またはストレージデバイス212に入力を記憶することができる。認識分類器224は、少なくとも図2Bを参照して記載されるように、1つまたは複数の専用分類器を含む場合がある。
【0055】
図2Bは、例示的な認識分類器のブロック図である。認識分類器224は、物体分類器250、環境分類器252、ヒューマンアクション分類器254、および/または電気機械状態分類器256のうちの1つまたは複数を含む場合がある。分類器250、252、254、および/または256は、プロセッサ202、メモリ204、および例示的なコンピューティングデバイス200の他の構成部品との協働および通信に適合することがで
きる。分類器250、252、254、および/または256は、物体ハンドオーバエンジン108の他の構成部品を参照して上記で説明された方式と同様の方式で実行することができる。
【0056】
物体分類器250は、センサ104によって供給されたセンサデータを使用して、ハンドオーバアクションにおいて操作されている物体の物体データを特定することができる。物体分類器250は、センサ104によって供給されたセンサデータから記述および/または抽出された物体データを使用して、1つまたは複数の物体分類を特定し、それぞれ、それらの分類に属する物体の対応する確率を計算することができる。環境分類器252は、センサ104によって供給されたセンサデータから記述および/または抽出された環境データを使用して、1つまたは複数の環境分類を特定し、それぞれ、それらの分類に属する環境の対応する確率を計算することができる。ヒューマンアクション分類器254は、センサ104によって供給されたセンサデータから記述および/または抽出された活動データを使用して、ユーザ130によって実行されている1つまたは複数の人間の活動を分類し、それぞれ、それらの分類に属する人間の活動の対応する確率を計算することができる。電気機械状態分類器256は、センサ104によって供給されたセンサデータから記述および/または抽出された状態データを使用して、1つまたは複数の状態分類を特定し、それぞれ、それらの分類に属する状態の対応する確率を計算することができる。これらの構成部品は、少なくとも図3および図4A図4Eを参照して下記でより詳細に記載される。
【0057】
図3は、認識分類器を使用してロボットユニット102からユーザ130への物体ハンドオーバを決定し、物体ハンドオーバを実行し、かつ嗜好モデル(preference model)を更新するための例示的な方法300のフローチャートである。ブロック302において、認識分類器224は、環境および/またはロボットユニット102の動作状態を記述するセンサデータを、センサ104から受信する。センサデータは、周辺環境、物体の特性(たとえば、重量、形状、包装、量など)、ユーザ130の活動(activities)およびアクション、ならびに/またはロボットユニット102の状態(たとえば、電力レベル、以前の動作の成功/不成功など)などに関するデータを含む場合がある。たとえば、いくつかの実装形態では、センサ104には、物体の重量を測定するためにロボットユニット102によって使用される重量センサ、周辺環境およびユーザ130の情報を取り込むためにロボットユニット102によって使用されるカメラセンサ、ならびに位置データを特定するためにロボットユニット102によって使用されるジオロケーションセンサが含まれ得る。
【0058】
ブロック304において、認識分類器224は、センサデータに基づいて、ハンドオーバ関連分類および対応する確率を特定する。認識分類器224は、センサデータを使用して、分類(C)および当該分類に関する確率を特定する。認識分類(C)は、存在/発生する可能性がある態様を記述し、確率は、あるセンサデータ(S)が与えられた時の当該態様が存在/発生している可能性(chance)を表す。分類は、図4A図4Eを参照してより詳細に記載されるように、様々な物体、環境、ヒューマンアクション、および/または電気機械状態を分類することができる。たとえば、認識分類器224は、P(Cenvironment|SImage, SAudio, Slocation, ...)を使用して環境の確率(P)についての認識
分類を推定することができ、この確率は、センサデータが与えられた時の任意の特定の環境(居間、寝室、台所など)が発生する尤度(likelihood)を表す。たとえば、下記表1および表2に示されるように、環境分類は、環境が特定の場所(位置)であることを示す様々な確率を推定する。表1において、2つの異なる場所(たとえば、簡易台所(キチネット)および台所)は、非常に類似する確率を有し、認識分類器224は、アフォーダンス計算器222にどの場所を供給するべきかを判定する規則を有する場合がある。さらなる実装形態では、認識分類器224は、同様の確率を有する複数の場所をアフォーダンス
計算器222に供給することができる。表2において、「廊下」は、他の場所よりも比較的高い確率を有し、認識分類器224は、「廊下」をアフォーダンス計算器222に供給することができる。
【表1】
【表2】
【0059】
ブロック302において説明された例を参照すると、認識分類器224は、センサから重量センサデータ、カメラデータ、およびジオロケーションデータを受信することができる。認識分類器224は、重量センサデータによって表される重量、ならびに/またはカメラデータに対する画像分析によって表されるサイズおよび形状を使用して、ある特定の確率で物体をスティールボックスとして分類することができる。認識分類器224は、カメラデータに対して画像分析を実行して、物体の形状、サイズ、位置、配色、および/または他の態様を特定し、ならびに画像内のユーザ130の位置を特定することができる。また、認識分類器224は、カメラデータを使用して、ユーザ130が特定の活動(たとえば、横たわっている、歩いている、走っている、物体に寄りかかっている、別の人と話をしているなど)に従事していると推定することができる。認識分類器224は、1つもしくは複数のジオロケーションセンサからの位置データ、および/または1つもしくは複数の画像センサからの多次元画像データ(たとえば、立体画像など)を使用して、ロボットユニット102の位置および/またはユーザの位置を推定することができる。たとえば、多次元画像データは、走査された環境内のユーザ(人間の特性と一致する物体)の特殊座標を表すことができ、GPSデータおよび/または他のマイクロ位置データは、ロボットユニット102の位置座標を表すことができる。さらに、標準的なシーン検出技法を使用して、認識分類器224は、画像データおよび/または他のデータを使用して、ある特定の確率でシーンをある部屋のタイプ(たとえば、研究室など)であると分類することができる。このように、認識分類器225は、複数の観点(この例では、物体の種類、ユーザの活動、環境(シーン))についての分類結果を確率とともに求めることができる。
【0060】
ブロック306において、アフォーダンス計算器222は、嗜好モデルを使用して、認識分類器224によって計算された分類の確率に基づいて、アフォーダンスを計算する。アフォーダンスは、ロボットユニット102と、認識分類器224の出力に基づいて特定
された周辺状況との間の関係である。いくつかの実装形態では、アフォーダンスは、環境および/またはロボットユニット102の動作状態を仮定して、ハンドオーバアクション(H)が正確である尤度を表すことができる。たとえば、環境分類(Cenvironment)は、ある特定の確実性で環境が乱雑であることを示す確率を有する場合がある。この場合、ロボットユニット102は環境内を移動することが困難であると考えられる。アフォーダンス計算器222は、(環境分類(Cenvironment)によって表されるような)環境が支持(support)するアクションの確率を計算することができる。なお、「環境が支持するアク
ションの確率」は、当該環境におけるアクションの適合度・適切度と表現することもできる。この確率(あるいは適合度)は、P(Hplace_object_on_surface|Cenvironment)と記述される。アフォーダンス計算器222は、環境によって最も良く支持されるハンドオーバアクションを選択する。すなわち、現在の周辺状況において最も高い確率(適合度)を有するアクションを選択する。たとえば、ロボットユニット102がユーザ130の所まで物体を持って移動することは、現在の環境では支持確率(適合度)が比較的低いので選択されず、ユーザに渡す物体を地面に置くというアクションの支持確率(適合度)が現在の環境では最も高いので、このアクションがハンドオーバアクションとして選択されて、ロボットユニット102に指示される。
【0061】
さらなる例として、物体をハンドオーバする対象のユーザがある特定のアクション(廊下で立っている)をとっている可能性が最も高いと、認識分類器224によって分類される場合を考える。この場合、アフォーダンス計算器222は、ユーザの位置まで廊下を移動して物体をハンドオフすることが最も高い成功の尤度を有すると計算することができる。この確率はP(Hmove_down_hallway|Chuman_action)によって表される。ハンドオーバア
クションは、現在の周辺状況の様々な観点からの分類結果(物体種類、環境、ユーザの動作、ロボットの状態など)からそれぞれ異なる支持を受ける、すなわち、それぞれの要素に応じて異なる適合度を有する。この例では、アフォーダンスは、物体の種類が直接ハンドオフを支持し、環境がユーザの位置までの移動を支持し、ロボットの状態が当該移動を支持し、かつ/またはユーザの位置・動作が直接ハンドオフを支持することなどを表す。
【0062】
アフォーダンス計算器222は、嗜好モデルを使用してアフォーダンスを決定することができる。嗜好モデルは、条件に応じてハンドオーバアクションを選択するために使用されるモデルである。いくつかの実装形態では、嗜好モデルは、ベイジアンネットワークまたは他の適切なアルゴリズムなどの機械学習を使用して学習される、様々なアフォーダンスおよび/または値についてあらかじめ定義された/デフォルトの値を含む。たとえば、アフォーダンス計算器は、1人または複数のユーザ130からのフィードバックを使用して、嗜好モデル内のアフォーダンス値を適合することができる。詳細には、ロボットユニット102が所与の周辺状況に適用不可能またはあまり適切でないアクションを取る場合、ユーザは、(たとえば、入力デバイスとインタラクションすることにより)そのアクションについてのフィードバックを入力することができ、アフォーダンス計算器222は、そのフィードバックを解釈し、1つまたは複数のアフォーダンス値を増強(augment)す
るために使用することができる。場合によっては、嗜好モデルは、ユーザまたはユーザのセグメントごとに記憶することができ、時間とともにそれらのユーザに適合および/またはカスタマイズすることができる。
【0063】
嗜好モデル内の様々なアフォーダンスの値を設定するために、複数の方法が利用可能であり得る。いくつかの実装形態では、一般的なアフォーダンスは実験ベースの手法を使用することができる。この手法では、多数のユーザ130に、ロボットユニット102とインタラクションし、ロボットユニット102のアクションがどの程度良いものであったかフィードバックをするよう求める。フィードバックは、アンケートまたは情報を受け取る代替方法の形態で提供することができる。フィードバックの結果は、ハンドオーバアクション(H)と分類(C)のすべての組合せについてP(H|C)の一般モデルを構築する
ために使用することができる。一般的なアフォーダンスは、サンプリングされたユーザ130の社会的および文化的な規範(norm)の分布を表す。これらまたは他の実装形態では、アフォーダンス計算器222は、少なくとも図5を参照してより詳細に記載されるように、直接的な人間からのフィードバックまたは間接的な人間からのフィードバックを使用して、様々なアフォーダンス用の嗜好モデル値を設定する。
【0064】
ブロック302および304を参照して上記で説明された例を参照すると、アフォーダンス計算器222は、物体がスティールボックスであり、ユーザが特定の活動(たとえば、机に座っている)に従事しており、環境が研究室であると推定された分類を認識分類器224から受信することができる。アフォーダンス計算器222は、これらの分類を使用して、ロボットユニット102、様々な環境、様々な物体、様々なヒューマンアクションなどによって支持されるか、または支持されない複数のアフォーダンスを推定することができる。上記の例では、アフォーダンスは、ロボットが、ある特定の尤度で、研究室内の障害がない経路に沿って移動すること、物体をカウンタに置くこと、スティールボックスを格納クローゼットなどの別の位置に移動させることなどを含む一連のアクションを実行する可能性があることを表すことができる。さらなる例では、物体の重量に基づいて、アフォーダンス計算器は、物体がロボットユニット102によるユーザへの直接ハンドオフを支持しないと判断し、したがって、ユーザに直接物体をハンドオーバすることに低いスコアを割り当てる。これは、(ユーザ130から受信された以前のフィードバック、あらかじめ定義された設定などに基づいて決定された可能性がある)ユーザ130が扱うことが可能であり得るしきい値を物体の重量が超えることを表す、物体分類に部分的に基づく場合がある。
【0065】
ブロック308において、アフォーダンス計算器222は、アフォーダンス計算器222が計算したアフォーダンスに基づいて、1つまたは複数のハンドオーバアクションを決定する。アフォーダンスは、ロボットユニット102によって取られるべき単一のアクションを表すことができるか、または実行されるべきハンドオーバシーケンス(一連のアクション)全体の一部分を表すことができる。後者の場合、1組のアフォーダンスは、(以後、単にハンドオーバアクションと呼ばれる)ハンドオーバアクション/シーケンスを一括して定義することができる。いくつかの実装形態では、シーケンスは、ロボットユニット102がユーザおよび/または仲介物体(たとえば、テーブル、床、他の人、他のロボットユニット102など)に向かって移動する移動(ナビゲーション)部分、ならびに、ロボットユニット102がユーザおよび/または仲介物体に物体を渡すハンドオフ部分を含む場合がある。アフォーダンス計算器222は、本明細書内の他の場所で説明される、認識環境分類器、物体認識分類器、ヒューマンアクション認識分類器、および/または電気機械状態認識分類器に基づくハンドオーバアクションを含む1つまたは複数のアフォーダンスを決定することができる。ブロック302、304、および306において説明された例を参照すると、アフォーダンス計算器222は、ロボットユニット102が実行する可能性があるか、または実行する可能性がない/実行するべきでないアフォーダンスを使用して、ハンドオーバアクションを達成するはずの一連のアフォーダンスを決定する。たとえば、アフォーダンス計算器222は、ユーザ130が座っている机に向かってロボットユニット102が移動し、ユーザ130の近くの机にスティールボックスを置くことができると推定することができる。
【0066】
いくつかの実施形態では、アフォーダンス計算器は、ハンドオーバアクション決定(たとえば、意思決定)プロセスにおける因果律を表すベイジアン信念ネットワーク(BBN)を利用する。本明細書内の他の場所で説明されるように、どのハンドオーバアクションを選択するべきかを判断することは、ノード(環境、物体、ロボット/ヒューマンアクションなど)が、どのアクションを支持する(または「アフォードする」)かに依存するノードとアクションの関係はアフォーダンスに表されている。BBN内のこれらのノード間
の関係により、システム100が複数の因果律パスのバランスをとることが可能になる。たとえば、環境と、人間の活動とロボットのハンドオーバアクションの両方との間の因果関係(たとえば、環境が人間の活動とロボットのハンドオーバアクションの両方に影響を及ぼす)は、BBNを使用して学習および特定することができる。
【0067】
ブロック310において、アクションレンダラ220はハンドオーバアクションを実行する。アフォーダンス計算器222がハンドオーバアクションを決定すると、アクションレンダラ220はハンドオーバアクションを実行する。アクションレンダラ220は、ロボットユニット102のアクチュエータ114を制御することにより、ハンドオーバアクションを実行する。いくつかの実装形態では、物体ハンドオーバエンジン108は、センサ104を使用して環境やロボットユニット102の動作状態を監視してもよく、あるいは、アクションレンダラ220は、ハンドオーバアクションを実行し、監視されたデータを間接フィードバック用に記憶してもよい。いくつかの実装形態では、アクションレンダラ220は、ハンドオーバアクションまたはアクションのシーケンスを、アクチュエータ114を制御するためにアクチュエータコントローラに送られる信号に変換する。ブロック302、304、306、および308において説明された例を参照すると、アクションレンダラ220は、ロボットユニット102をユーザ130の机に移動させるステップ、およびスティールボックスを置くステップを、アクチュエータコントローラに送られる信号に変換する。アクチュエータコントローラは、それらの信号を処理し、アクチュエータ114とインタラクションして2つのコマンドを実行することができる。
【0068】
ブロック312において、アフォーダンス計算器222は、フィードバックに基づいて嗜好モデルを更新する。フィードバックは、多数のユーザ130から受信されたレビュー(評価)であってもよいし、上述されたように受信された一般的なフィードバックであってもよい。さらなる実装形態では、フィードバックは、少なくとも図5を参照してより詳細に記載されるように、ハンドオーバアクションの一部として物体を受け取った特定のユーザ130から受信された直接的なフィードバックであり得る。さらなる実装形態では、アフォーダンス計算器222は、少なくとも図5を参照してより詳細に記載されるように、特定のハンドオーバアクションの間に取り込まれる監視データの形態で、センサ104から間接フィードバックを受信することができる。ブロック302、304、306、308、および310において説明された例を参照すると、アフォーダンス計算器は、入力デバイスを介して、ユーザ130からハンドオーバアクションの直接フィードバックを受信することができる。フィードバックの一例は、ユーザ130が移動することなくスティールボックスを手に取るには遠すぎる場所にスティールボックスが置かれたことを含む。このフィードバックを直接的に受け取る場合は、ユーザからその旨の入力を受け付ける。このフィードバックを間接的に受け取る場合には、センサ104によってユーザがスティールボックスに手を伸ばしたが届かなかったことや、ユーザが歩いてスティールボックスの所まで移動したことを検出すればよい。アフォーダンス計算器222は、このようなフィードバックを使用して、将来のアクションでは、今回のハンドオーバアクションにおいてスティールボックスが置かれた場所よりもユーザ130に近いところにアフォーダンス計算器222がスティールボックスを置くように、嗜好モデル内の距離値を更新することができる。
【0069】
図4A図4Eは、認識分類器を使用するための例示的な方法400のフローチャートである。いくつかの実装形態では、方法400における動作は、図3のブロック304の下で実行可能な様々な動作を表すことができる。図4Aにおいて、認識分類器224は、様々な分類の確率を推定する。ブロック402において、物体分類器250は、物体を分類するべきかどうかを判定する。物体を分類するべき場合、物体分類器250は、センサデータからの物体データを処理し、図4Bを参照して下記に記載されるように、様々な分類について物体が当該分類に属する確率を推定する。ブロック404において、環境分類
器252は、環境を分類するべきかどうかを判定する。環境を分類するべき場合、環境分類器252は、センサデータからの環境データを処理し、図4Cを参照して下記に記載されるように、様々な分類について当該分類に環境が属する確率を推定する。ブロック406において、ヒューマンアクション分類器254は、ヒューマンアクションを分類するべきかどうかを判定する。ヒューマンアクションを分類するべき場合、ヒューマンアクション分類器254は、センサデータからのヒューマンアクションデータを処理し、図4Dを参照して下記に記載されるように、様々な分類について当該分類にヒューマンアクションが属する確率を推定する。ブロック408において、電気機械状態分類器256は、ロボットユニットの電気機械状態を分類するべきかどうかを判定する。状態を分類するべき場合、電気機械状態分類器256は、センサデータからの状態データを処理し、図4Eを参照して下記に記載されるように、様々な分類について当該分類にロボットユニットの電気機械状態が属する確率を推定する。いくつかの実装形態では、方法304は、上述された分類のすべてを含む場合があるが、他の実装形態では、304は、単一の分類または分類の組合せを使用して確率を推定することができる。
【0070】
図4Bを参照すると、ブロック410において、物体分類器250は、物体(の種類・クラス)が事前指定されているかどうかを判定する。たとえば、ロボットユニット102は、ボールをピックアップし、それらをユーザ130にハンドオフするように事前プログラムすることができる。プロセスを加速するために、いくつかのクラスのボールを事前指定することができ、その結果、種々のボールの種類(クラス)について確率を計算・比較することなく、物体分類器250は指定された種類のボールであると直ちに識別することができる。ブロック410において物体のクラスが事前指定されていると判定された場合、ブロック412において、物体分類器250は、対象物体が事前指定された物体クラスに属する確率を求める。事前指定された物体クラスに属する確率(単に、事前指定された物体(クラス)の確率、とも称する)は、本明細書内の他の場所で説明されるように、さらなる処理のために物体ハンドオーバエンジン108によって使用することができる。
【0071】
ブロック410において物体のクラスが事前指定されなかったと物体分類器250が判定する場合、ブロック414において、物体分類器250はセンサデータから物体データを抽出する。物体データは、物体の物理特性、重量、形状、位置、配色、テクスチャ、量、包装などの、物体のタイプを特定するために使用され得る任意のデータである。いくつかの実装形態では、物体は、ロボットユニット102によってすでに制御されている場合がある。物体の特性を特定するために利用されるセンサ104は、ロボットユニット102の手足などの付属物に取り付けられていたり、物体の方に向けられていたり、あるいは、保持している物体に関する態様を検知するように構成される。さらなる実装形態では、ロボットユニット102は、物体を制御する前に、センサ104を使用して物体に関する情報を取り込むことができる。
【0072】
ブロック416において、物体分類器250は、物体データに基づいて、物体についての分類、およびそれらの分類についての対応する確率を特定する。たとえば、物体分類器250は、センサデータを使用して、物体の特性が軽量および球形であると特定することができる。これらの特性に基づいて、物体分類器250は、ある特定の確率の範囲内で物体をボールとして分類することができる。
【0073】
ブロック418において、物体分類器250は、ブロック416において特定された物体分類に属する物体の確率を推定する。物体分類器250は、物体データが与えられたときの様々な物体分類の確率を計算し、この確率を使用して全体的な確率を特定することができる。いくつかの実装形態では、物体分類器250は、物体データをストレージデバイス212に記憶されたデータモデル214と比較することにより、物体についての適用可能な分類および確率を特定することができる。データモデルの各々は、所与の分類に対応
し、物体特性(たとえば、サイズ、形状、色、重量、使用法など)などの様々なパラメータを含む場合があり、物体分類器250は、操作されている物体について特定された特性をデータモデルのパラメータと比較し、それらがいかに良く一致するかの確率を計算することができる。さらなる実装形態では、各物体特性の確率は、本質的にスカラー(たとえば、割合)、バイナリ値(たとえば、真または偽)などであり得る。
【0074】
図4Cを参照すると、ブロック422において、環境分類器252は、環境(の種類・クラス)が事前指定されているかどうかを判定する。たとえば、ロボットユニット102は、台所で動作するように事前プログラムすることができる。プロセスを加速するために、台所環境に関する情報を事前指定することができ、その結果、種々の環境の種類(クラス)について確率を計算・比較することなく、環境分類器252は、現在の環境が台所(指定された種類の環境)であると直ちに識別することができる。ブロック422において環境のクラスが事前指定されていると判定された場合、ブロック424において、環境分類器252は、事前指定された環境クラスに属する確率を求める。事前指定された環境の確率は、本明細書内の他の場所で説明されるように、さらなる処理のために物体ハンドオーバエンジン108によって使用することができる。
ブロック422において環境のクラスが事前指定されなかったと環境分類器252が判定する場合、ブロック426において、環境分類器252はセンサデータから環境データを抽出する。環境データは、位置、シーン(景観)、開けた空間の判断、ジオロケーションデータなどの、環境を特定するために使用され得る任意のデータである。環境データは、環境分類器252が環境を特定するときに使用するための、環境内の様々な人間の活動を含む場合もある。たとえば、いくつかの実装形態では、作業(人間の活動)は、作業用に設計された環境内で行われる可能性が高い。ブロック428において、いくつかの実装形態では、環境分類器252は、ジオロケーションセンサなどの位置センサ104によって供給される位置データを使用することにより、環境データを特定することができる。
【0075】
ブロック430において、いくつかの実装形態では、環境分類器252は、シーン分析を使用して環境データを特定することができる。いくつかの実装形態では、環境分類器252は、センサデータをデータモデル214のデータベースと比較し、比較に基づいてセンサデータの部分を分類することにより、シーン認識を実行することができる。データモデル214は、様々なセマンティック記述に従って事前に手動で分類された、かつ/または本明細書で説明された方法の事前の繰返しに基づいて(たとえば、直接フィードバックおよび/もしくは間接フィードバックに基づいて)分類された、事前記録されたデータを含む場合がある。比較は、聴覚分析および/または画像分析の両方を含む場合がある。いくつかの実装形態では、環境分類器252は、センサデータ内の物体のタイプを識別し、物体のタイプをデータモデル214と比較し、比較に基づいてセンサデータ内の物体を分類することにより、物体ベースのシーン認識を実行することができる。センサデータは、オーディオデータ、視覚データ、および/または深度画像データであり得る。次いで、環境分類器252は、分類された物体に基づいて環境のタイプを特定することができる。
【0076】
いくつかの実装形態では、環境分類器252は、認識マップを使用してシーン分析を実行することができる。この実装形態では、環境分類器252は、リアルタイムシーン認識を含むセンサデータを使用して、検出された人の位置に応答して環境分類器252によって照会され得るオフラインマップを作成することができる。この方法は、ノイズの多い認識データのうちのいくつかを除去することができる。いくつかの実装形態では、環境分類器252は、手動分類されたマップおよび/または機械学習されたマップを使用して、シーン分析を実行することができる。たとえば、環境のマップは、最初にユーザ130(たとえば、対象ユーザ、管理者など)によって作成される場合があり、環境分類器252は、手動分類されたマップを構造図と重ねて環境を記述することができる。さらなる例では、環境分類器252は、システムによって実行された以前の分類、およびそれらの分類を
使用して実行されたアクションに基づいて受信されたフィードバックに基づいて学習されたマップデータを利用することができる。他の変形形態も可能であり、考えられる。
【0077】
ブロック432において、環境分類器252は、環境データに基づいて、環境についての分類、およびそれらの分類についての対応する確率を特定することができる。たとえば、環境分類器252は、環境データを使用して、ジオロケーション、シーンカテゴリの確率、明暗、温度などを特定して、ある特定の確率の範囲内でその位置が研究室であると分類することができる。
【0078】
いくつかの実装形態では、環境分類器252は、環境データをストレージデバイス212に記憶されたデータモデル214と比較することにより、環境についての適用可能な分類および確率を特定することができる。データモデルの各々は、所与の分類に対応することができ、環境特性(たとえば、ジオロケーション、部屋特性、家具モデルなど)などの様々なパラメータを含む場合があり、環境分類器252は、環境について特定された環境データをデータモデル214のパラメータと比較し、それらがいかに良く一致するかを計算することができる。
【0079】
ブロック434において、環境分類器252は、実際の環境を反映する環境分類についての確率を推定することができる。環境分類器252は、センサデータを仮定して発生する環境の確率を推定し、確率を使用して全体的な確率を特定することができる。さらなる実装形態では、各環境の確率は、本質的にスカラー(たとえば、割合)、バイナリ値(たとえば、真または偽)などであり得る。
【0080】
図4Dを参照すると、ブロック436において、ヒューマンアクション分類器254は、センサ104によって供給されたセンサデータから活動データを抽出する。活動データは、環境、物体、および、ロボットユニット102によって物体がハンドオフされ得る1人または複数のユーザ130のデータを含む場合がある。
【0081】
ブロック438において、ヒューマンアクション分類器254は、活動データに基づいて、ヒューマン活動についての分類、およびそれらの分類についての対応する確率を特定することができる。いくつかの実装形態では、活動データは、ユーザ130の位置、ユーザ130のアクション、および/またはユーザ130の潜在的な将来の活動に関する場合がある。ヒューマンアクション分類器254は、人間の活動をデータモデル214内の認識された活動のデータベースと比較することができる。データモデル214の各々は、所与の分類に対応することができ、ユーザ130の位置、ユーザ130の活動、他のユーザ130の存在などの様々なパラメータを含む場合があり、ヒューマンアクション分類器254は、活動データをデータモデル214のパラメータと比較し、各々がいかに良く一致するかの確率を計算することができる。
【0082】
ブロック440において、ヒューマンアクション分類器254は、比較に基づいて人間の活動分類の確率を識別することができる。さらなる実装形態では、ヒューマンアクション分類器254は、労力決定(effort determination)を使用して人間の活動分類を特定することができる。ヒューマンアクション分類器254は、ユーザ130の位置に基づいて潜在的なアクションを識別し、様々な潜在的なアクションを完了するためにユーザ130によって必要とされる労力レベル(effort level)を決定することができる。たとえば、ユーザ130が立っている場合、労力レベルは、ユーザ130とロボットユニット102の軌跡が交差する場所でユーザ130がロボットユニット102に会うべきことを示しうる。ヒューマンアクション分類器254は、検知データが与えられた時の、人間が行っている活動の確率を推定する。さらなる実装形態では、各ヒューマンアクションの確率は、本質的にスカラー(たとえば、割合)、バイナリ値(たとえば、真または偽)などであ
り得る。
【0083】
図4Eを参照すると、ブロック444において、電気機械状態分類器256は、センサ104によって供給されたセンサデータから状態データを抽出する。状態データは、環境内のバッテリレベル、アクチュエータ114の能力、および/または以前のハンドオフアクションのパフォーマンスなどの、ロボットユニット102の状態を特定するために使用され得る任意のデータを含む場合がある。状態データは、ロボットユニット102の状態を監視する内部センサ104、および/または環境を監視する外部センサ104によって取り込むことができる。
【0084】
ブロック446において、電気機械状態分類器256は、状態データに基づいて、電気機械状態についての分類、およびそれらの分類についての対応する確率を特定することができる。いくつかの実装形態では、電気機械状態分類器256は、状態データを使用して潜在的に実行可能な動作を識別し、センサ104によって検出された状態に基づいて、ロボットユニット102が潜在的に実行可能な動作をいかに良く実行するかを判断することができる。いくつかの実装形態では、電気機械状態分類器256は、ロボットユニット102の物理状態を特定するために、ロボットユニット102の動作状態に関する状態データを使用することもできる。物理状態は、電力レベル、アクチュエータ114のタイプ、運動能力、物理サイズなどを含む場合がある。電気機械状態分類器256は、潜在的に実行可能な動作を識別するプロセスに物理状態を組み込むことができる。
【0085】
ブロック448において、電気機械状態分類器256は、電気機械状態分類に属する電気機械状態の確率を推定することができる。いくつかの実装形態では、電気機械状態分類器256は、推定器を使用して確率を推定することができる。推定器は、ハンドオフ動作を実行するロボットユニット102のパフォーマンスを特定することができる。推定器は、いくつかの方法で実装することができる。いくつかの実装形態では、推定器は、潜在的なハンドオフ動作についての不十分/中立/良好なパフォーマンスの推定値を特定することができる。いくつかの実装形態では、推定器は、実験室試験条件(laboratory testing
conditions)から作成されたエキスパートシステムであり得る。さらなる実装形態では
、推定器は、ユーザ130の家庭または他の環境内部のパフォーマンスに応答して、オンラインで学習することができる。他の適切な変形形態も可能であり、考えられる。
【0086】
図5は、嗜好モデルにフィードバックを提供するための例示的な方法500のフローチャートである。いくつかの実装形態では、方法500における動作は、図3のブロック312の下で実行可能な様々な動作を表すことができる。ブロック502において、アフォーダンス計算器222は、アクションレンダラ220がハンドオフアクションを実行した後、直接フィードバックを要求するべきかどうかを判定する。アフォーダンス計算器222は、ユーザ130から受信された入力に基づいて、直接フィードバックを要求することができる。ブロック504において、アフォーダンス計算器222は、ユーザ130に直接フィードバックを要求する。いくつかの実装形態では、直接フィードバックは、アンケート、格付けの要求、口頭でも質問、または、ユーザ130がハンドオフアクションに関して提供可能な他のタイプのフィードバックの形態であり得る。フィードバックは、ユーザのクライアントデバイスおよび/または場合によってはロボットユニット102に関連付けられた1つもしくは複数の入力デバイスを介して取り込むことができるが、他の適切な変形形態も可能であり、考えられる。
【0087】
ブロック506において、アフォーダンス計算器222は、直接フィードバックを使用して嗜好モデルを更新する。いくつかの実装形態では、アフォーダンス計算器222は、直接フィードバックを使用し、嗜好モデルのアフォーダンス値を更新する。たとえば、アクションレンダラ220は、ユーザ130の位置に移動し、ユーザ130にボールを手渡
すハンドオフアクションを実行する場合がある。ユーザ130は、ハンドオーバアクションの後に、ロボットユニット102がユーザ130の空いている方の手にボールを置かなかったとコメントする場合がある。アフォーダンス計算器222は、ユーザ130から直接フィードバックを受け取り、ボールを使用する次のハンドオフアクションに対して、ロボットユニット102が最初にユーザ130の空いている手を特定し、空いている手へのハンドオフアクションを指示するように、嗜好モデルを更新することができる。
【0088】
ブロック508において、直接フィードバックが要求されないとアフォーダンス計算器222が判定することに応答して、アフォーダンス計算器222は、アクションレンダラ220によって実行されるハンドオフアクションを監視する。いくつかの実装形態では、アフォーダンス計算器222は、直接フィードバックが要求されるか否かに関わらず、ハンドオフアクションを自動的に監視する。アフォーダンス計算器222は、ハンドオフアクション中に、センサ104を使用して環境およびロボットユニット102のパフォーマンス/動作状態についての情報を取り込むことにより、ハンドオフアクションを監視することができる。
【0089】
ブロック510において、アフォーダンス計算器222は、ハンドオフアクションの成功/不成功を判断する。いくつかの実装形態では、成功は、ロボットユニット102がハンドオフアクションを完了したか否かとして識別することができるか、またはさらなる実装形態では、アフォーダンス計算器222は、ハンドオフアクションからの偏差を監視することができ、偏差を追跡し、偏差がしきい値を超えないことに基づいて成功を判断することができる。
【0090】
ブロック512において、いくつかの実装形態では、アフォーダンス計算器222は、ハンドオーバアクションに対する人間の反応を判断する。アフォーダンス計算器222は、監視されたデータを使用して人間の反応を判断する。たとえば、センサ104は、(たとえば、ユーザを描写し、センサ104によって取り込まれた画像データに対して標準技法を使用する表情認識を実行することにより)、ユーザ130の顔の表情(たとえば、微笑)を取り込むことができ、アフォーダンス計算器222は、表情に基づいて、ユーザ130がハンドオフアクションの実行中のロボットユニット102のパフォーマンスに満足したか、または満足しなかったかを判定することができる。データモデル214は、アフォーダンス計算器222が、ユーザ130の人間の反応を使用してハンドオフアクションの成功を判断するために使用することができる、様々な人間の反応を含む場合がある。
【0091】
ブロック514において、アフォーダンス計算器222は、成功および/または人間の反応に基づいて、間接フィードバックを特定することができる。たとえば、ロボットユニット102が狭い部屋を移動してユーザ130に物体を渡すことができなかったので、ハンドオフアクションが成功しなかったとアフォーダンス計算器222が判断した場合、アフォーダンス計算器222は、その部屋における次のハンドオフアクションのために、嗜好モデル内の異なる反応を特定することができる。たとえば、嗜好モデルは、ロボットユニット102を移動して、ユーザ130を移動させずに待機させるハンドオフアクションを上位にランク付けできるように、モデル内の値を変更する。直接フィードバックおよび間接フィードバックを使用することにより、アフォーダンス計算器222は、個々のユーザ130の嗜好が特定のユーザ130についての分類のカスタマイズおよびアフォーダンス決定を可能にすることを学習することかできる場合がある。
【0092】
再び図6を参照すると、分類器604は、ハンドオーバアクション606の決定を行うために順次利用することができる。一つのハンドオーバアクション606の決定に複数の分類器604を統合することにより、ロボットユニット102は、より洗練されたハンドオーバアクション606を行うことか可能である。いくつかの実装形態では、ハンドオー
バシステム600は、一般的な母集団に基づく嗜好モデルを使用することができるか、または代替の実装形態では、ハンドオーバシステム600は、デフォルトモデルとして一般的な母集団に基づく嗜好モデルを使用することができ、特定のユーザ130からの直接フィードバックおよび間接フィードバックに基づいて嗜好モデルをパーソナライズすることができる。
【0093】
以上の説明では、説明の目的で、本明細書を完全に理解するために、多数の具体的な詳細が明記されている。しかしながら、本開示はこれらの具体的な詳細なしに実践され得ることは、当業者には明らかである。場合によっては、説明を不明瞭にすることを回避するために、構造およびデバイスがブロック図の形で示される。たとえば、本実装形態は、主にユーザインターフェースおよび特定のハードウェアを参照して、上記で記載することができる。しかしながら、本実装形態は、データおよびコマンドを受信することができる任意のタイプのコンピューティングデバイス、ならびにサービスを提供する任意の周辺デバイスに適用することができる。
【0094】
本明細書における「いくつかの実装形態」または「いくつかの事例」に対する参照は、その実装形態または事例とともに記載される特定の特徴、構造、または特性が説明の少なくとも1つの実装形態に含まれ得ることを意味する。本明細書における様々な場所での「いくつかの実装形態では」というフレーズの出現は、必ずしもすべてが同じ実装形態を参照しているとは限らない。
【0095】
以下に続く詳細説明のいくつかの部分は、コンピュータメモリ内のデータビット上の演算のアルゴリズムおよびシンボル表現の観点から提示される。これらのアルゴリズム的な記述および表現は、データ処理技術分野の当業者により、他の当業者に自分の仕事の本質を最も効果的に伝達するために使用される手段である。本明細書において、かつ一般的に、アルゴリズムは、望ましい結果に導く自己矛盾のない一連のステップであると考えられる。ステップは、物理量の物理的操作を必要とするステップである。必ずしもそうであるとは限らないが、通常、これらの量は、記憶、転送、合成、比較、および他の方法で操作することが可能な電気信号または磁気信号の形態をとる。主に共通使用の理由で、これらの信号をビット、値、素子、シンボル、文字、用語、番号などとして参照することは、時には好都合であると証明されている。
【0096】
しかしながら、これらおよび同様の用語のすべてが、適切な物理量に関連付けられ、これらの量に適用される便利なラベルにすぎないことは留意されるべきである。以下の説明から明白であると別段に明記されていない限り、説明全体にわたって、「処理」または「計算」または「算出」または「決定」または「表示」などを含む用語を利用する説明は、コンピュータシステムのレジスタおよびメモリ内の物理(電子)量として表されるデータを操作し、コンピュータシステムのメモリもしくはレジスタ、または他のそのような情報を記憶、送信、もしくは表示するデバイス内の物理量と同様に表される他のデータに変換する、コンピュータシステムまたは同様の電子コンピューティングデバイスのアクションおよびプロセスを参照する。
【0097】
本明細書の本実装形態はまた、本明細書において動作を実行するための装置に関係することもできる。この装置は、必要な目的のために特別に構築される場合があるか、またはコンピュータに記憶されたコンピュータプログラムによって、選択的にアクティブ化もしくは再構成される汎用コンピュータを含む場合がある。そのようなコンピュータプログラムは、限定はしないが、各々がコンピュータシステムバスに結合される、フロッピーディスク、光ディスク、CD−ROM、および磁気ディスクを含む任意のタイプのディスク、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気カードもしくは光カード、不揮発性メモリを有するUSBキーを含むフラッ
シュメモリ、または電子命令を記憶するのに適した任意のタイプの媒体を含む、コンピュータ可読記憶媒体に記憶される場合がある。
【0098】
本明細書は、いくつかの全体的にハードウェアの実装形態、いくつかの全体的にソフトウェアの実装形態、またはハードウェアとソフトウェアの両方の構成要素を含んでいるいくつかの実装形態の形態をとることができる。いくつかの好ましい実装形態では、本明細書は、限定はしないが、ファームウェア、常駐ソフトウェア、マイクロコードなどを含む、ソフトウェアに実装される。
【0099】
さらに、説明は、コンピュータまたは任意の命令実行システムが使用するか、またはそれとともに使用されるプログラムコードを提供する、コンピュータ使用可能媒体またはコンピュータ可読媒体からアクセス可能なコンピュータプログラム製品の形態をとることができる。この説明の目的で、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、命令実行装置、または命令実行デバイスが使用するか、またはそれとともに使用されるプログラムを、内蔵、記憶、通信、伝播、または転送することができる任意の装置であり得る。
【0100】
プログラムコードを記憶または実行するのに適したデータ処理システムは、システムバスを介してメモリ素子に直接的または間接的に結合された少なくとも1つのプロセッサを含む。メモリ素子は、プログラムコードの実際の実行中に利用されるローカルメモリ、バルクストレージ、および、実行中にバルクストレージからコードが取り出されねばならない回数を低減するために、少なくともいくつかのプログラムコードの一時的ストレージを提供するキャッシュメモリを含むことができる。
【0101】
(限定はしないが、キーボード、ディスプレイ、ポインティングデバイスなどを含む)入力/出力デバイスまたはI/Oデバイスは、直接または介在するI/Oコントローラを介して、システムに結合することができる。
【0102】
ネットワークアダプタは、データ処理システムが、介在する専用ネットワークまたは公共ネットワークを介して、他のデータ処理システムまたはリモートプリンタまたはストレージデバイスに結合されるようになることを可能にするために、システムに結合される場合もある。モデム、ケーブルモデム、およびイーサネット(登録商標)カードは、現在利用可能なタイプのネットワークアダプタのうちのほんの一部である。
【0103】
最後に、本明細書に提示されたアルゴリズムおよびディスプレイは、任意の特定のコンピュータまたは他の装置に本質的に関係しない。様々な汎用システムは、本明細書における教示によるプログラムとともに使用される場合があるか、または必要な方法ステップを実施するためにより特化した装置を構築することが好都合であると証明する場合がある。様々なこれらのシステムに必要な構造は、下記の説明から明らかになる。加えて、本明細書は、いかなる特定のプログラミング言語も参照して記載されていない。本明細書に記載された明細書の教示を実装するために、様々なプログラミング言語を使用できることが諒解されよう。
【0104】
本明細書の実装形態の上記の説明は、例示および説明の目的で提示されている。本明細書を開示されたそのままの形態に徹底または限定するものではない。上記の教示に照らして、多くの修正形態または変形形態が可能である。本開示の範囲は、この詳細説明によって限定されず、むしろ本出願の特許請求の範囲によって限定されるものである。当業者によって理解されるように、本明細書は、その趣旨または本質的な特性から逸脱することなく、他の固有の形態で具現化される場合がある。同様に、モジュール、ルーチン、特徴、属性、方法、および他の態様の特定の命名および分割は、必須または重要ではなく、本明
細書またはその特徴を実装するメカニズムは、様々な名称、分割、またはフォーマットを有する場合がある。さらに、当業者には明らかなように、本開示のモジュール、ルーチン、特徴、属性、方法、および他の態様は、ソフトウェア、ハードウェア、ファームウェア、またはその3つの任意の組合せとして実装することができる。また、その例がモジュールである本明細書の構成部品がソフトウェアとして実装される場合はいつでも、構成部品は、スタンドアロンプログラムとして、より大きいプログラムの一部として、複数の別々のプログラムとして、静的もしくは動的にリンクされたライブラリとして、カーネルのロード可能なモジュールとして、デバイスドライバとして、または、コンピュータプログラミングの当業者に現在知られているか、もしくは将来知られるすべておよび任意の他の方法で、実装することができる。加えて、本開示は、任意の固有のプログラミング言語における、または任意の固有のオペレーティングシステムもしくは動作環境のための実装に少しも限定されない。したがって、本開示は、以下の特許請求の範囲で明記される本明細書の範囲を限定するものではなく、例示するものである。
【符号の説明】
【0105】
100 物体ハンドオーバシステム
101 計算サーバ
102 ロボットユニット
104 センサ
108 物体ハンドオーバエンジン
114 アクチュエータ
116 通信バス
130 ユーザ
132 クライアントデバイス
200 コンピューティングデバイス
202 プロセッサ
204 メモリ
206 通信ユニット
212 ストレージデバイス
214 データモデル
220 アクションレンダラ
222 アフォーダンス計算器
224 認識分類器
250 物体分類器
252 環境分類器
254 ヒューマンアクション分類器
256 電気機械状態分類器
図1
図2A
図2B
図3
図4A
図4B
図4C
図4D
図4E
図5
図6