(57)【要約】【課題】ロボットによって物体を手渡すシステムにおいて、安全性や快適性を向上させる。【解決手段】ロボットを用いて、ユーザ環境内に位置するユーザに物体を手渡すシステムが実行する方法であって、前記ユーザ環境内にある地点にユーザが手を伸ばした場合における、当該ユーザの関節にかかるモーメントを表したデータであるシミュレーションデータを取得するシミュレーションデータ取得ステップと、前記シミュレーションデータを分析し、前記ユーザが、前記ユーザ環境内の三次元座標に手を伸ばした場合における、当該ユーザの関節にかかるモーメントを表す値を、前記三次元座標と関連付ける評価ステップと、前記三次元座標に関連付いた値に基づいて、前記ユーザ環境内において前記ロボットが前記ユーザに物体を手渡す領域の候補である候補ゾーンを生成する、候補ゾーン生成ステップと、を含む。【選択図】図１
2016068253.tif 000002
【特許請求の範囲】
【請求項１】
ロボットを用いて、ユーザ環境内に位置するユーザに物体を手渡すシステムが実行する方法であって、
前記ユーザ環境内にある地点にユーザが手を伸ばした場合における、当該ユーザの関節にかかるモーメントを表したデータであるシミュレーションデータを取得するシミュレーションデータ取得ステップと、
前記シミュレーションデータを分析し、前記ユーザが、前記ユーザ環境内の三次元座標に手を伸ばした場合における、当該ユーザの関節にかかるモーメントを表す値を、前記三次元座標と関連付ける評価ステップと、
前記三次元座標に関連付いた値に基づいて、前記ユーザ環境内において前記ロボットが前記ユーザに物体を手渡す領域の候補である候補ゾーンを生成する、候補ゾーン生成ステップと、
を含む方法。
【請求項２】
前記物体を受け取るユーザにかかる負荷、または、ユーザの快適性に影響を与える要素に関するデータであるユーザ情報データを取得するユーザ情報データ取得ステップをさらに含み、
前記評価ステップでは、前記ユーザ情報データに基づいた適合度を表す値を、前記三次元座標にさらに関連付ける、
請求項１に記載の方法。
【請求項３】
前記ユーザ情報データは、前記ユーザに対する医学的情報に基づいて生成されたデータ、または、前記ユーザをセンシングした結果に基づいて生成されたデータである、
請求項２に記載の方法。
【請求項４】
前記評価ステップでは、前記モーメントを表す値、および、前記適合度を表す値を複数の前記三次元座標に関連付け、
前記候補ゾーン生成ステップでは、前記三次元座標を、当該三次元座標に関連付けられた値、または、ユーザ環境内における位置に基づいてクラスタリングすることで、候補ゾーンを生成する、
請求項２または３に記載の方法。
【請求項５】
前記候補ゾーン生成ステップで生成されたクラスタが複数ある場合に、当該クラスタにて物体を手渡した場合におけるリスクまたは快適性を評価し、当該評価の結果に基づいて、各クラスタにスコアを付与するスコア付与ステップをさらに含む、
請求項４に記載の方法。
【請求項６】
前記スコア付与ステップでは、評価対象のクラスタにおいて物体を手渡した場合に、ユーザの関節にかかる負荷が少ないほど、より高いスコアを当該クラスタに付与する、
請求項５に記載の方法。
【請求項７】
前記シミュレーションデータ取得ステップは、
前記ユーザの姿勢を表す第一の身体データを取得するステップと、
前記ユーザの身体的特徴を表す第二の身体データを取得するステップと、
前記第一および第二の身体データに基づいて、前記ユーザの身体をモデルで表したデータであるユーザモデルを生成するステップと、
前記ユーザモデルを用いてシミュレーションを行うことで、前記シミュレーションデータを生成するステップと、
からなる、請求項１から６のいずれかに記載の方法。
【請求項８】
前記ユーザモデルは、生体力学モデルまたはリンクモデルのいずれかである、
請求項７に記載の方法。
【請求項９】
生成した前記候補ゾーンに基づいて、前記ロボットが前記物体を前記ユーザに手渡しする際にとる姿勢である物体移動ポーズを決定する決定ステップと、
前記物体移動ポーズに基づいて、ロボットの駆動を行う駆動ステップと、をさらに含む、
請求項１から８のいずれかに記載の方法。
【請求項１０】
ロボットを用いて、ユーザ環境内に位置するユーザに物体を手渡すシステムが実行する方法であって、
前記ユーザ環境内において前記ロボットが前記ユーザに物体を手渡す領域の候補である複数の候補ゾーンを生成する、候補ゾーン生成ステップと、
前記候補ゾーンにて物体を手渡した場合におけるリスクまたは快適性を評価し、当該評価の結果に基づいて、前記候補ゾーンをフィルタリングするフィルタリングステップと、
フィルタリング後の候補ゾーンに基づいて、前記ロボットが前記物体を前記ユーザに手渡しする際にとる姿勢である物体移動ポーズを決定する決定ステップと、
前記物体移動ポーズに基づいて、ロボットの駆動を行う駆動ステップと、
を含む方法。
【請求項１１】
前記フィルタリングステップでは、前記ユーザ、前記ロボット、前記物体、前記ユーザ環境のうちの一つ以上の状況に基づいて、リスクまたは快適性を評価する、
請求項１０に記載の方法。
【請求項１２】
前記フィルタリングステップでは、前記物体を受け取ったユーザが次に取る行動を推定し、当該推定の結果をさらに用いて、前記候補ゾーンをフィルタリングする、
請求項１０または１１に記載の方法。
【請求項１３】
ロボットを用いて、ユーザ環境内に位置するユーザに物体を手渡すシステムであって、
前記ユーザ環境内にある地点にユーザが手を伸ばした場合における、当該ユーザの関節にかかるモーメントを表したデータであるシミュレーションデータを取得するシミュレーションデータ取得手段と、
前記シミュレーションデータを分析し、前記ユーザが、前記ユーザ環境内の三次元座標に手を伸ばした場合における、当該ユーザの関節にかかるモーメントを表す値を、前記三次元座標と関連付ける評価手段と、
前記三次元座標に関連付いた値に基づいて、前記ユーザ環境内において前記ロボットが前記ユーザに物体を手渡す領域の候補である候補ゾーンを生成する、候補ゾーン生成手段と、
を有するシステム。
【請求項１４】
ロボットを用いて、ユーザ環境内に位置するユーザに物体を手渡すシステムであって、
前記ユーザ環境内において前記ロボットが前記ユーザに物体を手渡す領域の候補である複数の候補ゾーンを生成する、候補ゾーン生成手段と、
前記候補ゾーンにて物体を手渡した場合におけるリスクまたは快適性を評価し、当該評価の結果に基づいて、前記候補ゾーンをフィルタリングするフィルタリング手段と、
フィルタリング後の候補ゾーンに基づいて、前記ロボットが前記物体を前記ユーザに手渡しする際にとる姿勢である物体移動ポーズを決定する決定手段と、
前記物体移動ポーズに基づいて、ロボットの駆動を行う駆動手段と、
を有するシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザに物体を手渡すために用いられるロボットに関する。
【背景技術】
【０００２】
（関連出願への相互参照）
本出願は、"ANTICIPATORY ROBOT NAVIGATION"と題され、２０１４年９月１２日に出願
された、米国特許出願第１４／４８５，５２６号の記載内容を援用する。
また、本出願は、"ROBOTIC HANDOVER SYSTEM NATURAL FOR HUMANS"と題され、２０１４年９月３０日に出願された、米国特許出願第１４／５０２，９５１号の優先権を主張する。当該出願は、その全体が本明細書中に参照として組み込まれる。
【０００３】
近年、サービスロボットが普及し始めている。サービスロボットとは、老人や病人などに対してアシスタンスを行うロボットである。サービスロボットは様々なタスクを行うことができる。例えば、ある物体をユーザに手渡すことができるサービスロボットがある。
しかし、静的な環境において、ロボットが物体を持ちあげ、置くための処理は緩慢であり、当該処理を、ロボットとユーザとの間で行われる物体の手渡しに利用しようとすると、効率が悪い。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、上記の問題点を考慮してなされたものであり、ロボットによって物体を手渡すシステムにおいて、安全性や快適性を向上させることを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するための、本発明の革新的な一形態に係る方法は、物体をユーザに手渡すロボットが、前記ユーザに物体を手渡す領域の候補である候補ゾーンを決定するための方法である。
具体的には、ロボットを用いて、ユーザ環境内に位置するユーザに物体を手渡すシステムが実行する方法であって、前記ユーザ環境内にある地点にユーザが手を伸ばした場合における、当該ユーザの関節にかかるモーメントを表したデータであるシミュレーションデータを取得するシミュレーションデータ取得ステップと、前記シミュレーションデータを分析し、前記ユーザが、前記ユーザ環境内の三次元座標に手を伸ばした場合における、当該ユーザの関節にかかるモーメントを表す値を、前記三次元座標と関連付ける評価ステップと、前記三次元座標に関連付いた値に基づいて、前記ユーザ環境内において前記ロボットが前記ユーザに物体を手渡す領域の候補である候補ゾーンを生成する、候補ゾーン生成ステップと、を含むことを特徴とする。
【０００６】
また、本発明の革新的な一形態に係る方法は、物体をユーザに手渡すための物体移動ポーズを決定するための方法である。
具体的には、ロボットを用いて、ユーザ環境内に位置するユーザに物体を手渡すシステムが実行する方法であって、前記ユーザ環境内において前記ロボットが前記ユーザに物体を手渡す領域の候補である複数の候補ゾーンを生成する、候補ゾーン生成ステップと、前記候補ゾーンにて物体を手渡した場合におけるリスクまたは快適性を評価し、当該評価の結果に基づいて、前記候補ゾーンをフィルタリングするフィルタリングステップと、フィルタリング後の候補ゾーンに基づいて、前記ロボットが前記物体を前記ユーザに手渡しする際にとる姿勢である物体移動ポーズを決定する決定ステップと、前記物体移動ポーズに基づいて、ロボットの駆動を行う駆動ステップと、を含むことを特徴とする。
【０００７】
また、これらの形態の一つ以上の他の実装として、方法、システム、装置、これらのためのコンピュータプログラム、その他の実装などが含まれる。
【０００８】
本明細書において、「データ」という語は、本明細書に記載された関数や操作を受ける任意のデジタルデータを指す語として用いる。
デジタルデータとは、例えば、ネットワークサービスデータ、連結性マップデータ、移動（journey）データ、ユーザプロファイルデータ、時刻同期データ、移動履歴データ、
嗜好階層データ、デッドゾーンデータ、ナビゲーション地図データ、メッシュネットワークデータ、速度データ、二つ以上の構成要素（サーバ、車両システム、モバイルデバイス、クライアントデバイス等）によって共有されるデータ、当該二つ以上の構成要素間で転送されるデータなどであるが、これらに限られない。
【０００９】
本明細書によって開示される発明は、特にいくつかの面において有利である。
例えば、ロボットは、ユーザ情報や、医学的な事情を考慮して、物体をユーザに手渡すことができる。
ユーザに対する物体の手渡しは、ユーザに固有な一つ以上のユーザモデルに基づいて行うことができる。例えば、ユーザモデルは、３次元、非対称モーメント、ユーザがロボットから物体を受け取ろうとした際のユーザの関節における力の分散をシミュレーションするためのモデルであって、ユーザの身長や体重に基づくものであってもよい。
【００１０】
なお、本明細書にて述べるシステムの利点はあくまで例であり、他の多数の利点および利益を有し得る。
【発明の効果】
【００１１】
本発明によると、ロボットによって物体を手渡すシステムにおいて、安全性や快適性を向上させることができる。
【図面の簡単な説明】
【００１２】
【図１】ユーザに物体を手渡すロボットを用いたシステムを例示するブロック図である。
【図２Ａ】ゾーンシステムを例示するブロック図である。
【図２Ｂ】ポーズシステムを例示するブロック図である。
【図３】物体移動ポーズを決定する処理の一例を示すフローチャートである。
【図４】候補ゾーンを決定する処理の一例を示すフローチャートである。
【図５】物体移動ポーズを決定する処理の一例を示すフローチャートである。
【図６Ａ】ユーザモデルの例を示すグラフィック表現である。
【図６Ｂ】ユーザモデルの例を示すグラフィック表現である。
【図７Ａ】ユーザリーチシナリオの例を示すブロック図である。
【図７Ｂ】ユーザリーチシミュレーションマップの二次元の例を示す図である。
【図７Ｃ】ユーザリーチシミュレーションマップの二次元の例を示す図である。
【図７Ｄ】ユーザリーチシミュレーションマップの二次元の例を示す図である。
【図７Ｅ】ユーザリーチシミュレーションマップの二次元の例を示す図である。
【図８】後続アクションシミュレーションの三次元の例を示す図である。
【発明を実施するための形態】
【００１３】
以下の説明および添付の図面は本発明を説明するための例示であり、本発明を限定するものではない。図面においては、同様の要素には同一の参照符号を付してある。
【００１４】
手渡しを確実に行うために、ロボットは、ユーザに特有な情報、体形、体に関する制限
などを正確に考慮できるようプログラムされていてもよい。
例えば、ロボットがユーザに対して、一本のボトルに入った水を渡すものとする。
ロボットは、ユーザがロボットから水のボトルを取るために、どの程度の労力を要するかを判定および考慮するようにプログラムされてもよい。
このようなシナリオでは、ロボットは、ユーザがかける労力の最小化と、手渡しに要する時間とのバランスを取れる最適なポジションを決定するようにプログラムされる。
また、ユーザが、関節における動きの制限（例えば、怪我、筋肉の凝り、関節における筋力喪失、四肢の震え等）といった、特定の健康状態を有する場合、ロボットは、（１）これらの健康状態を判定し、（２）当該健康状態を考慮して、ユーザが物体を握れる最適な位置を決定するようプログラムされていてもよい。
また、ロボットは、ユーザの病状、現在の観察状況や、物理的な状況に基づいて、手渡しを直接行うべきか否かを決定するようにプログラムすることができる。もし、手渡しのリスクが高い場合や、手渡しが不可能である場合、ロボットは、ユーザが届く範囲に水のボトルを置くようにしてもよい。
【００１５】
本明細書では、ユーザに物体を手渡すロボットがとる、物体を手渡す際のポーズ（以下、物体移動ポーズ）を決定するシステムまたは方法が開示される。
一実施形態において、ロボットは、以下の情報に部分的に基づいて、物体移動ポーズを決定するようプログラムされる。
（１）ユーザの生体力学的な特性（例えば、ユーザの物理的・医学的なコンディション）（２）ユーザの周辺環境
（３）物体を受け取った後のユーザの動き
ロボットは、物体を受け取った、または掴んだ後のユーザの動きを推定するようにプログラムされてもよい。また、一実施形態において、ロボットは、物体を受け取った、または掴んだ後のユーザの動きを表す明示的な情報を取得してもよい。
【００１６】
ユーザに関する情報は、ユーザの明示的な入力に基づいて決定されてもよいし、センサまたは医師、看護師、介助者など（以下、医療プロバイダ）によって収集されたデータに基づいて推定されてもよい。一実施形態において、ユーザへの物体の手渡しは、医療プロバイダからデータを取得し、考慮することでよりよいものとなる。
【００１７】
（システム概要）
図１は、ユーザ１０１に物体１８８を手渡すためのロボット１９０を用いたシステム１００の、一実施形態におけるブロック図を例示したものである。
システム１００は、信号線１０４を介してネットワーク１０５に接続されたサーバ１０７と、信号線１８８を介してネットワーク１０５に接続されたロボット１９０と、ユーザ１０１と、医療プロバイダ１７０を含む。
【００１８】
なお、図１には一人のユーザ１０１、一つのサーバ１０７、一つのロボット１９０、一つの物体１８８、一つの医療プロバイダ１７０が示されているが、本発明を適用可能なシステムのアーキテクチャは、一人以上のユーザ１０１、一つ以上のサーバ１０７、一つ以上のロボット１９０、一つ以上の物体１８８、一つの以上医療プロバイダ１７０を含むことができる。
さらに、図１には、システム１００の構成要素に接続された一つのネットワーク１０５が示されているが、実際には、様々なタイプの一つ以上のネットワーク１０５が、これらの構成要素に接続されていてもよい。
【００１９】
ネットワーク１０５は、有線ネットワークであっても無線ネットワークであってもよく、また、スター型、トークンリング型や当業者に知られているその他の構成を取ることができる。さらにまた、ネットワーク１０５は、ローカルエリアネットワーク（ＬＡＮ）、
ワイドエリアネットワーク（ＷＡＮ）（例えばインターネット）、または、複数の装置が通信に用いる相互接続されたその他の任意のデータパスであってもよい。さらに別の形態では、ネットワーク１０５はピアツーピアネットワークであってもよい。ネットワーク１０５は、複数の異なる通信プロトコルでデータ送信するための通信ネットワークと接続されたり、このような通信ネットワークを含んだりしてもよい。
ある実施形態では、ネットワーク１０５は、Ｂｌｕｅｔｏｏｔｈ（登録商標）通信ネットワークや、携帯電話通信ネットワークを含み、ＳＭＳ（ショートメッセージサービス）、ＭＭＳ（マルチメディアメッセージサービス）、ＨＴＴＰ（ハイパーテキスト転送プロトコル）、直接データ接続、ＷＡＰ、電子メールなどのデータを送受信する。
ある実施形態では、ネットワーク１０５は、ロボット１９０に対してＧＰＳナビゲーションを提供するためのＧＰＳ衛星を含んでいてもよい。
また、ネットワーク１０５は、例えば、３Ｇ、４Ｇ、ＬＴＥ、ボイスオーバーＬＴＥ（ＶｏＬＴＥ）といったモバイルデータネットワーク、他のモバイルデータネットワーク、または、モバイルデータネットワークの組合せであってもよい。
一実施形態において、ネットワーク１０５は、異なるネットワークの組合せであってもよい。
【００２０】
ユーザ１０１は、ロボットのユーザであり、人間である。
一実施形態において、ユーザ１０１は、ロボット１９０のアシストを受ける高齢者または病人である。また、物体１８８は、任意の有形の物体である。ロボット１９０は、物体１８８をユーザ１０１に手渡すことで、ユーザ１０１に対するアシストを行うロボットである。
【００２１】
ロボット１９０は、ユーザ環境１９８内において、ユーザ１０１に物体１８８を手渡す。また、ユーザ環境１９８は、ユーザ１０１の周囲にあるエリア、または、当該エリアに存在する物体である。例えば、ユーザ環境１９８は、部屋と、当該部屋にあってユーザ環境１９８を構成する、テーブル、椅子、雑誌、他の有形のオブジェクトといった全ての物体である。
【００２２】
ロボット１９０は、以下に説明する方法の一つ以上を実行するようにプログラムされた、プロセッサベースのデバイスである。例えば、ロボットは、図３または図５を参照して説明する、以下に記す方法の一部もしくは全部を実行するようにプログラムされる。
ロボット１９０は、実メモリに記憶され、プロセッサで実行されるプログラムによって可動部を動かすモータおよびコントローラを含んでいてもよい。
ロボット１９０は、ユーザ１０１に物体１８８を手渡すようにプログラムされる。
一実施形態において、ロボット１９０は、図３，図４，図５を参照して説明する、以下に記す方法３００，方法４００，方法５００のいずれかのステップを実行するようにプログラムされた、専用のプロセッサベースのデバイスであってもよい。
【００２３】
一実施形態において、ロボット１９０は、実メモリまたは非一時的記憶媒体と、プロセッサとを含むコンピュータである。
例えば、ロボット１９０は、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、携帯電話、個人情報端末（PDA）、モバイル電子メール装置、
携帯ゲームプレーヤ、携帯音楽プレーヤ、コネクテッドデバイスやウェアラブルコンピュータ（スマートウォッチ、スマートグラス、フィットネストラッカー等）、一つまたは複数のプロセッサを備えるテレビ受信機、自動車、ネットワーク１０５へアクセス可能なその他の電子機器などである。
一実施形態において、ロボット１９０は、自律走行車両または半自律走行車両であってもよい。
【００２４】
ロボット１９０は、ユーザに対してネットワークサービスを提供するための機能を有していてもよい。ネットワークサービスとは、ネットワーク１０５を通してアクセスできる任意のサービスである。例えば、ネットワークサービスは、ナビゲーション指示、オーディオストリーミングやビデオストリーミング（例えば、Pandora（登録商標）、Spotify（登録商標）、iTunes（登録商標）、Google Play（登録商標）、Youtube（登録商標）等）、ソーシャルネットワーキング（例えば、Facebook（登録商標）、Google+（登録商標）
、LinkedIn（登録商標）、Tinder（登録商標）、QQ（登録商標）等）、マイクロブログ（例えばTwitter（登録商標）、Tumblr（登録商標）等）、オンラインチャット（例えばSnapChat（登録商標）、WhatsApp（登録商標）等）、オンラインコンテンツシェアリング（
例えばInstagram（登録商標）、Pinterest（登録商標）等）、Ｅメール（例えばGmail（
登録商標）、Outlook（登録商標）、Yahooメール（登録商標）等）、ファイル共有（例えばDropBox（登録商標）、GoogleDrive（登録商標）、MS One Drive（登録商標）、Evernote（登録商標）等）、カレンダとスケジュールサービス（例えばGoogle Calendar（登録
商標）、MS Outlook（登録商標）等）などである。
【００２５】
一実施形態において、ロボット１９０は、ポーズシステム１９９を含んでいる。
ポーズシステム１９９は、物体１８８をユーザ１０１に手渡す際のポーズである「物体移動ポーズ」を決定するためのコードおよびルーチンである。ポーズシステム１９９については、図２Ａ〜図８を参照して後ほど詳しく説明する。
【００２６】
一実施形態において、ポーズシステム１９９は、サーバ１０７にも格納される。図１中の点線は、ポーズシステム１９９がサーバ１０７に任意に格納されうることを示す。
一実施形態において、ポーズシステム１９９は、その一部がロボット１９０に、その一部がサーバ１０７に格納されてもよい。
【００２７】
ロボット１９０は、一つ以上のセンサ１９６を有している。
なお、図１には一つのセンサ１９６だけが示されているが、実際には、ロボット１９０は、複数のセンサ１９６を有していてもよい。
センサ１９６は、物理的な変化を感知する任意の装置である。例えば、センサ１９６は、ユーザ環境１９８内で発生している物理的な変化を検出する。センサ１９６は、ユーザ１０１を監視するのに用いられてもよい。また、ユーザ１０１の監視結果を表すセンサデータを、ネットワーク１０５を介して、ロボット１９０からゾーンシステム１９７に送信してもよい。また、ゾーンシステム１９７は、当該センサデータを解析し、ユーザ１０１に関する情報（以下、「ユーザ情報」または「ユーザの情報」と称する）を推定する機能を有していてもよい。
【００２８】
センサデータは、物体１８８をユーザ１０１に手渡す際の物体移動ポーズを決定するために、ロボット１９０によって、リアルタイムまたは近リアルタイムで使用される。
物体移動ポーズとは、物体１８８をユーザ１０１に手渡す際のロボット１９０の姿勢である。例えば、物体移動ポーズは、ロボットに、ユーザ環境１９８内の３次元または６次元空間上の地点（物体１８８をユーザ１０１に渡すのに最適または適した地点）に物体１８８を配置するための姿勢である。
物体をユーザに渡すのに最適または適した地点とは、ユーザ情報に適合した地点、および／または、ユーザ１０１の関節にかかるモーメントや力を最小限にする地点である。
ユーザ情報とは、以下のような、当該ユーザに関する情報などである。
・ユーザが物体１８８を受け取る際の姿勢
・ユーザが物体１８８を受け取りたいと考える、空間上の位置
・ユーザ１０１や医療プロバイダ１７０が考える、かかるモーメントや力をより小さくすべき、特定の関節または関節の組み合わせ
すなわち、ユーザ情報とは、ユーザにかかる負荷や、ユーザの快適性に影響を与える要
素に関する情報であるとも言える。
【００２９】
センサ１９６については、図２Ａおよび図２Ｂを参照して、のちほど詳しく説明する。
【００３０】
サーバ１０７は、実メモリまたは非一時的記憶媒体と、プロセッサとを含むコンピュータである。例えば、サーバ１０７は、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、携帯電話、個人情報端末（PDA）、モバイル電子メール
装置、携帯ゲームプレーヤ、携帯音楽プレーヤ、コネクテッドデバイスやウェアラブルコンピュータ（スマートウォッチ、スマートグラス、フィットネストラッカー等）、一つまたは複数のプロセッサを備えるテレビ受信機、車両、ネットワーク１０５へアクセス可能なその他の電子機器などである。
【００３１】
サーバ１０７は、ユーザデータ１９２、物体データ１９４、ゾーンシステム１９７を有している。ユーザデータ１９２または物体データ１９４は、サーバ１０７またはロボット１９０が有している、実メモリまたは非一時的記憶媒体に格納される。
【００３２】
ユーザデータ１９２は、ユーザ１０１についての情報を表す任意のデータである。
一実施形態において、ユーザデータ１９２は、一般的なユーザではなく、ロボット１９０の支援を受ける特定のユーザ１０１についての情報を表すデータである。
一実施形態において、ユーザデータ１９２は、以下のうちの一つ以上を表すデータである。
・ユーザ１０１の体重
・ユーザ１０１の身長
・ユーザ１０１が有する一つ以上の関節（例えば、肩、肘、手首、椎など）の可動範囲
・ユーザ１０１が有する関節の可動制限（例えば、図７Ｂ〜図７Ｅに示すような動き）
・ユーザ１０１についての一般的かつ明示的な情報
・ロボット１９０から物体１８８を受け取る際のユーザ１０１についての明示的な情報
・センサ１９６によるユーザ１０１の監視結果に基づいて推定されたユーザ１０１の情報・医療プロバイダ１７０から提供された情報に基づいて推定されたユーザ１０１の情報
・明示的な、または、ゾーンシステム１９７が推定した、ユーザ１０１に関する他の生体力学的なデータ
一実施形態において、ユーザデータ１９２は、図２Ａを参照して以下に説明するデータ２７１〜２７６を含んでいる。
【００３３】
物体データ１９４は、物体１８８に関する任意のデータである。
例えば、物体データ１９４は、物体１８８の物理的な寸法、物体１８８の密度、物体１８８の重心、物体１８８上のホットスポット（例えば、温度が９０度以上、あるいは、明示的または推定されたユーザ１０１の情報によって特定された温度以上である物体上の領域やエリア等）、物体１８８上のコールドスポット（例えば、温度が１０度、あるいは、明示的または推定されたユーザ１０１の情報によって特定された温度以下である物体上の領域やエリア等）、物体１８８の物理モデルや物体１８８上にある関心地点の位置（例えば、物体１８８が有する取手、物体１８８が容器である場合は開け口や取り出し口、鋭い場所、鋭いエッジ、柔らかい場所、柔らかいエッジの位置等）などを含む。
【００３４】
ゾーンシステム１９７は、物体１８８をユーザ１０１に手渡す場所についての候補（以下、候補ゾーン）を決定するためのコードおよびルーチンである。候補ゾーンは、ユーザ環境１９８内の三次元空間上の地点によって表され、物体１８８をユーザ１０１に渡すのに最適な、または、適した場所を表したものである。ゾーンシステム１９７については、図２Ａ〜図８を参照しながら、のちほど詳しく説明する。
【００３５】
一実施形態において、ゾーンシステム１９７は、ロボット１９０にも格納される。図１中の点線は、ゾーンシステム１９７がロボット１９０に任意に格納されうることを示す。
一実施形態において、ゾーンシステム１９７は、その一部がロボット１９０に、その一部がサーバ１０７に格納されてもよい。
【００３６】
一実施形態において、ポーズシステム１９９やゾーンシステム１９７は、ＦＰＧＡ（Field Programmable Gate Array）やＡＳＩＣ（Application Specific Integrated Circuit）などのハードウェアを用いて実装される。一実施形態において、ポーズシステム１９９やゾーンシステム１９７は、ハードウェアとソフトウェアの組み合わせを用いて実装される。
ある実施形態では、ポーズシステム１９９やゾーンシステム１９７は、装置とサーバの両方に分散して格納されてもよいし、装置とサーバのいずれかのみに格納されてもよい。
【００３７】
（ゾーンシステムの例）
次に、図２を参照して、ゾーンシステム１９７の例についてより詳しく説明する。
図２Ａは、システム２００のブロック図である。システム２００は、図１に示したシステム１００における、ロボット１９０およびサーバ１０７のいずれかである。また、システム２００は、例として、ゾーンシステム１９７、第一のプロセッサ２２５、第一のメモリ２２７、第一の通信ユニット２４５を含んでいる。システム２００が有する構成要素は、バス２２０によって通信可能に接続される。
なお、図２には、一つのゾーンシステム１９７、一つの第一のプロセッサ２２５、一つの第一のメモリ２２７、一つの第一の通信ユニット２４５が示されているが、実際は、システム２００は、二つ以上のゾーンシステム１９７、二つ以上の第一のプロセッサ２２５、二つ以上の第一のメモリ２２７、二つ以上の第一の通信ユニット２４５を含んでいてもよい。
【００３８】
プロセッサ２２５は、算術論理ユニット、マイクロプロセッサ、汎用コントローラ、または、計算を実行して表示装置に表示信号を提供する他のプロセッサアレイ等を含む。
プロセッサ２２５は、バス２２０に接続され、信号線２２６を介して他の構成要素と通信する。
プロセッサ２２５は、データ信号を処理し、そのアーキテクチャは、ＣＩＳＣ（Complex Instruction Set Computer）、ＲＩＳＣ（Reduced Instruction Set Computer）、これら両方の命令セットの組合せとして実装されたアーキテクチャなど様々なアーキテクチャでありうる。なお、図２には一つのプロセッサ２２５だけが示されているが、複数のプロセッサ２２５が含まれていてもよい。上記以外のプロセッサ、オペレーティングシステム、センサ、表示装置、あるいは物理的構成も採用可能である。
【００３９】
一実施形態において、第一のプロセッサ２２５は、以下に記載する方法の一つ以上のステップを実行するようにプログラムされる。例えば、第一のプロセッサ２２５は、図３，４，５に示す、方法３００，４００，５００の一つ以上のステップを実行するようにプログラムされる。なお、第一のプロセッサ２２５やシステム２００は、方法３００，４００，５００の一つ以上のステップを実行されるよう構成されたハードウェア回路を含んでいてもよい。
【００４０】
第一のメモリ２２７は、実メモリまたは非一時的な、コンピュータで読み取り可能なメモリである。第一のメモリ２２７は、第一のプロセッサ２２５が実行可能な命令やデータを格納する。第一のメモリ２２７は、バス２２０に接続され、信号線２２８を介して他の構成要素と通信する。格納される命令やデータは、本明細書に示す技術を実行するためのコードを含んでもよい。
第一のメモリ２２７は、ＤＲＡＭ、ＳＲＡＭ、フラッシュメモリやその他の既存のメモ
リ装置であってもよい。一実施形態において、第一のメモリ２２７は、ハードディスクドライブ、フロッピー（登録商標）ディスクドライブ、ＣＤ−ＲＯＭ装置、ＤＶＤ−ＲＯＭ装置、ＤＶＤ−ＲＡＭ装置、ＤＶＤ−ＲＷ装置、フラッシュメモリ装置や情報記憶の分野において既知のその他の大容量記憶装置などの、非一時的（non-volatile）メモリや永久記憶装置を含んでもよい。
【００４１】
図２Ａに示したように、第一のメモリ２２７は、姿勢データ２７１、ユーザ情報データ２７２、医療データ２７３、ユーザモデルデータ２７４、リーチシミュレーションデータ２７５、ゾーンデータ２７６を格納する。第一のメモリ２２７は、本明細書において説明される機能を提供するための他のデータを格納してもよい。
【００４２】
姿勢データ２７１は、ユーザ１０１が左右の手を様々な場所に伸ばした際の姿勢を表すデータである。姿勢データ２７１は、センサ１９６が行った監視結果、または、医療プロバイダ１７０から得られた情報に基づいたデータであってもよい。また、姿勢データ２７１は、特定のユーザ１０１に対応するものであってもよい。
【００４３】
ユーザ情報データ２７２は、ユーザ１０１に関する情報を表すデータである。ユーザ情報データ２７２は、ユーザ１０１によって明示的に入力された情報に基づくものであってもよい。例えば、ユーザ１０１が、ロボット１９０から物体１８８を受け取る際の好みに関する質問に対して答えを入力し、当該答えをユーザ情報データ２７２に記録してもよい。
また、ユーザ情報データ２７２は、医療プロバイダ１７０から提供された、ユーザ１０１に関する情報に基づくものであってもよい。また、ユーザ情報データ２７２は、ユーザ１０１を監視する一つ以上のセンサ１９６によって得られたセンサデータに基づくものであってもよい。また、ユーザ情報モジュール２０６は、ユーザ１０１についての情報を推定するため、当該センサデータを受信し、解析してもよい。
一実施形態において、ユーザ情報データ２７２は、ユーザ１０１についての、明示的あるいは推定された情報の組み合わせに基づいたものであってもよい。
【００４４】
医療データ２７３は、医療プロバイダ１７０によって提供された入力に基づいた任意のデータである。
【００４５】
ユーザモデルデータ２７４は、ユーザの身体的なモデル（以下、ユーザモデル）をひとつ以上含んだデータである。ユーザモデルデータ２７４は、特定のユーザ１０１に対応したものであってもよい。
ユーザモデルデータ２７４は、ユーザデータ１９２、物体データ１９４、センサ１９６が取得したセンサデータ等に基づいて、ゾーンシステム１９７が有するモデルモジュール２０８によって生成される。
ユーザモデルデータ２７４は、ユーザ１０１に対応する一つ以上のユーザモデルを表したものである。ユーザモデルデータ２７４によって表されたユーザモデルとは、ユーザ１０１を表した運動モデル（Kinematic model）、ユーザ１０１を表した生体力学モデル（Biomechanical model）、ユーザ１０１を表したリンクモデル（Link model）のうちの一つ以上である。
【００４６】
一実施形態において、モデルモジュール２０８は、ユーザデータ１９２、物体データ１９４、センサデータや、これらの組み合わせを解析し、ユーザ１０１の一つ以上の関節におけるモーメントの静的な分布または力ベクトルを取得して、ユーザ１０１に対応する生体力学モデルを表したユーザモデルデータ２７４を生成する。例えば、ユーザモデルデータ２７４は、図６Ａに示したような、生体力学モデルを表したデータを含んでいてもよい。
【００４７】
一実施形態において、モデルモジュール２０８は、ユーザ１０１の生体力学モデル、ユーザデータ１９２、物体データ１９４、センサデータや、これらの組み合わせを解析し、リンク表現を生成することで、ユーザ１０１に対応するリンクモデルを表したユーザモデルデータ２７４を生成する。例えば、ユーザモデルデータ２７４は、図６Ｂに示したような、リンクモデルを表したデータを含んでいてもよい。
【００４８】
リーチシミュレーションデータ２７５は、ユーザ１０１に対応する一つ以上のリーチシミュレーション結果を含んだデータである。リーチシミュレーションとは、ユーザが特定の場所に手を伸ばした場合の状況をシミュレーションしたものである。リーチシミュレーションデータ２７５は、特定のユーザ１０１に対応したものであってもよい。
リーチシミュレーションデータ２７５は、センサ１９６が取得したセンサデータや、前述したデータ２７１〜２７４、これらの組み合わせに基づいて、シミュレーションモジュール２１０によって生成される。
例えば、リーチシミュレーションデータは、（１）一つ以上のセンサ１９６が行った監視結果や、医療プロバイダ１７０によって提供された情報から推定された、ユーザ１０１についての情報、（２）ユーザ１０１に対応する生体力学モデル、などに基づいて生成される。一実施形態において、リーチシミュレーションとは、リーチシミュレーションマップである。
【００４９】
ゾーンデータ２７６は、物体１８８をユーザ１０１に手渡す際の候補となるゾーン（候補ゾーン）を表したデータを一つ以上含んだデータである。
【００５０】
第一の通信ユニット２４５は、システム１００に含まれるサーバ１０７とロボット１９０の少なくとも一つに対してデータを送受信する手段である。第一の通信ユニット２４５は、信号線２３０を通してバス２２０に接続される。ある実施形態では、第一の通信ユニット２４５は、ネットワーク１０５や他の通信チャネルへの直接的な物理的接続のためのポートを含む。
例えば、第一の通信ユニット２４５は、システム１００の他の構成要素と有線通信を行うためのＵＳＢ、ＳＤ、ＣＡＴ−５または類似のポートを含む。
一実施形態において、や、これらの組み合わせを通信ユニット２４５は、ＩＥＥＥ８０２．１１、ＩＥＥＥ８０２．１６、ＢｌｕｅＴｏｏｔｈ（登録商標）、または他の適切な無線通信方式を含む、一つまたは複数の無線通信方式を用いて、システム１００の他の構成要素や他の通信チャネルとデータを交換するための無線送受信部を含むことができる。
【００５１】
ある実施形態では、通信ユニット２４５は、携帯電話ネットワークを介して、ショートメッセージサービス（ＳＭＳ）、マルチメディアメッセージサービス（ＭＭＳ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、直接的データ接続、ＷＡＰ、電子メールやその他の適切な種類の電子的通信を含むデータを送信するための携帯無線送受信機を含む。
一実施形態において、通信ユニット２４５は有線ポートとワイヤレストランシーバを含む。
通信ユニット２４５は、ＴＣＰ／ＩＰ、ＨＴＴＰ、ＨＴＴＰＳ、ＳＭＴＰなどを含む標準ネットワークプロトコルを用いて、ファイルやメディアオブジェクトを配布するために、ネットワーク１０５への従来型の接続を提供することもできる。
【００５２】
図２Ａに図示した実装例では、ゾーンシステム１９７は、第一の通信モジュール２０２、姿勢モジュール２０４、ユーザ情報モジュール２０６、モデルモジュール２０８、シミュレーション２１０と候補ゾーンモジュール２１２を含む。ゾーンシステム１９７のこれらのモジュールは、バス２２０によって互いに通信可能に接続される。
【００５３】
一実施形態において、ゾーンシステム１９７のモジュールは、装置とサーバのいずれかのみに格納されてもよいし、複数の装置やサーバに分散して格納および配信されてもよい。
さらに、本実施形態で述べるコンポーネント、モジュール、サーバの分離は、全ての実施形態において必要とは限らないことを理解されるべきである。
一実施形態において、記載された構成要素、モジュール、装置またはサーバは、通常、一つの構成要素、モジュール、装置またはサーバに集積されることができる。
【００５４】
一実施形態において、ゾーンシステム１９７のモジュール２０２，２０４，２０６，２０８，２１０，２１２のそれぞれは、以下に記す機能を提供する、第一のプロセッサ２２５で実行可能な一組の命令である。
他の実施形態において、モジュール２０２，２０４，２０６，２０８，２１０，２１２のそれぞれは、第一のメモリ２２７に格納され、システムの第一のプロセッサ２２５によってアクセスされ、実行されてもよい。
モジュール２０２，２０４，２０６，２０８，２１０，２１２のそれぞれは、第一のプロセッサ２２５や、コンピュータ２００の他の構成要素と協調や通信を行うように構成される。
一実施形態において、モジュール２０２，２０４，２０６，２０８，２１０，２１２のそれぞれは、格納され、システム２００のプロセッサによって実行される一つ以上のシンクライアントとして機能してもよい。
【００５５】
第一の通信モジュール２０２は、ゾーンシステム１９７とシステム２００の他の構成要素との間の通信を処理するためのルーチンを含むソフトウェアである。
一実施形態において、第一の通信モジュール２０２は、プロセッサ２２５で実行可能な一組の命令であり、通信を取り扱うために下記の機能を提供する。第一の通信モジュール２０２は、信号線２２２を介してバス２２０に通信可能に接続される。
【００５６】
第一の通信モジュール２０２は、通信ユニット２４５を介して、サーバ１０７とロボット１９０との間でデータを送受信する。
例えば、第一の通信モジュール２０２は、ユーザ１０１についての明示的または推定された情報を表すセンサデータを、ロボット１９０から、通信ユニット２４５を介して受信する。
【００５７】
一実施形態において、第一の通信モジュール２０２は、ゾーンシステム１９７の構成要素からデータを受信し、第一のメモリ２２７に保存する。一実施形態において、第一の通信モジュール２０２は第一のメモリ２２７からデータを取得し、ゾーンシステム１９７の一つ以上の構成要素に送信する。
一実施形態において、第一の通信モジュール２０２は、ゾーンシステム１９７の構成要素間の通信を処理してもよい。例えば、第一の通信モジュール２０２は、ゾーンシステム１９７の一つのモジュールからデータを取得し、ゾーンシステム１９７の別のモジュールに送信する。
一実施形態において、第一の通信モジュール２０２は、センサデータ、ユーザデータ１９２、物体データ１９４や、これらの組み合わせを受信する。
ユーザデータ１９２は、特に、医療データ２７３や、ユーザ１０１の明示的な入力を表すデータである。一実施形態において、医療データ２７３は、医療プロバイダ１７０が行った記録を分析することで生成される。また、医療データ２７３は、医療プロバイダ１７０から電子的またはハードコピーで寄せられた、アンケートに対する回答をゾーンシステム１９７が分析することで生成してもよい。
【００５８】
姿勢モジュール２０４は、センサデータ、ユーザデータ１９２、物体データ１９４や、
これらの組み合わせに基づいて、ユーザの姿勢を表すデータである姿勢データ２７１を生成するためのルーチンを含むソフトウェアである。
例えば、姿勢モジュール２０４は、センサによって観察されたユーザ１０１の姿勢を表すセンサデータと、医療プロバイダ１７０によって観察されたユーザ１０１の姿勢を表す医療データ２７３を分析する。そして、姿勢モジュール２０４は、当該分析結果に基づいて、ユーザ１０１の姿勢を表すデータを生成する。
【００５９】
姿勢モジュール２０４はまた、ユーザ１０１に対応する生体力学データを生成する。例えば、姿勢モジュール２０４は、センサデータ、ユーザデータ１９２、医療データ２７３、ユーザ１０１の明示的な入力や、これらの組み合わせに基づいて、特定のユーザ１０１に対応する生体力学データを生成する。
一実施形態において、姿勢モジュール２０４は、センサデータ、ユーザデータ１９２、医療データ２７３、ユーザ１０１の明示的な入力のうちの一つ以上を分析し、次のうちの一つ以上を決定する。
・ユーザ１０１の体重
・ユーザ１０１の身長
・ユーザ１０１の一つ以上の関節（例えば、ユーザ１０１の肩、肘、手首、椎などのうちの一つ以上）の可動範囲
・ユーザ１０１の関節の可動制限（例えば、図７Ｂ〜７Ｅに示すような動き）
・明示的な、あるいは、ゾーンシステム１９７によって推定された、ユーザ１０１に関する他の生体力学データ
【００６０】
姿勢モジュール２０４は、信号線２２４を介してバス２２０に通信可能に接続される。
【００６１】
ユーザ情報モジュール２０６は、ユーザ情報データ２７２を生成するためのルーチンを含むソフトウェアである。例えば、ユーザ情報モジュール２０６は、センサデータ、ユーザデータ１９２、物体データ１９４、医療データ２７３、ユーザ１０１の明示的な入力や、これらの組み合わせに基づいて、ユーザ情報データを生成する。
一実施形態において、ユーザ情報モジュール２０６は、センサデータ、ユーザデータ１９２、物体データ１９４、医療データ２７３、ユーザ１０１の明示的な入力のうちの一つ以上を分析し、次のうちの一つ以上を決定する。
・ユーザ１０１の一般的かつ明示的な情報
・ロボット１９０から物体１８８を受け取る際のユーザ１０１についての明示的な情報
・センサ１９６が取得したユーザ１０１の監視結果に基づく、推定されたユーザ１０１の情報
・医療プロバイダ１７０から提供された情報に基づいて推定された、ユーザ１０１の情報
【００６２】
ユーザ情報モジュール２０６は、信号線２２６を介してバス２２０に通信可能に接続される。
【００６３】
モデルモジュール２０８は、ユーザモデルデータ２７４を生成するためのルーチンを含むソフトウェアである。
例えば、モデルモジュール２０８は、センサデータ、ユーザデータ１９２、（物体データ１９４によって示された）物体を扱う上での制約、医療データ２７３、ユーザ１０１の明示的な入力、姿勢データ２７１、ユーザ１０１の生物力学データ、ユーザ情報データ２７２や、これらの組み合わせに基づいて、ユーザモデルデータ２７４を生成する。
一実施形態において、モデルモジュール２０８は、センサデータ、ユーザデータ１９２、物体データ１９４、医療データ２７３、ユーザ１０１の明示的な入力のうちの一つ以上を分析して、以下のうちの一つ以上を生成する。
・ユーザ１０１の運動モデル
・ユーザ１０１の生体力学モデル
・ユーザ１０１のリンクモデル
【００６４】
一実施形態において、モデルモジュール２０８は、ユーザデータ１９２、物体データ１９４、センサデータや、これらの組み合わせを分析することで、ユーザ１０１の一つ以上の関節における、モーメントの静的な分布や力ベクトルを取得し、ユーザ１０１に対応する生体力学モデルを表すユーザモデルデータ２７４を生成する。
例えば、ユーザモデルデータ２７４は、図６Ａを参照して以下に説明する生体力学モデルを表すデータを含む。
【００６５】
一実施形態において、モデルモジュール２０８は、ユーザ１０１の生体力学モデル、ユーザデータ１９２、物体データ１９４、センサデータや、これらの組み合わせを分析することで、リンク表現を取得し、ユーザ１０１に対応するリンクモデルを表すユーザモデルデータ２７４を生成する。
例えば、ユーザモデルデータ２７４は、図６Ｂを参照して以下に説明するリンクモデルを表すデータを含む。
【００６６】
モデルモジュール２０８は、信号線２３３を介してバス２２０に通信可能に接続される。
【００６７】
シミュレーションモジュール２１０は、リーチシミュレーションデータ２７５を生成するためのルーチンを含むソフトウェアである。
例えば、シミュレーションモジュール２１０は、センサデータ、ユーザデータ１９２、物体データ１９４、医療データ２７３、ユーザ１０１の明示的な入力、姿勢データ２７１、ユーザ情報データ２７２、ユーザモデルデータ２７４や、これらの組み合わせに基づいてユーザモデルデータ２７４を生成する。
一実施形態において、シミュレーションモジュール２０８は、センサデータ、ユーザデータ１９２、物体データ１９４、医療データ２７３、ユーザ１０１の明示的な入力、姿勢データ２７１、ユーザ情報データ２７２、ユーザモデルデータ２７４のうち一つ以上を分析することで、ユーザ１０１に対する一つ以上のリーチシミュレーション結果を生成する。
ユーザ１０１に対するリーチシミュレーション結果の例については、図７Ｂ〜図７Ｅを参照して後ほど説明する。
【００６８】
シミュレーションモジュール２１０は、信号線２２９を介してバス２２０に通信可能に接続される。
【００６９】
候補ゾーンモジュール２１２は、一つ以上の候補ゾーンを決定するためのルーチンを含むソフトウェアである。例えば、候補ゾーンモジュール２１２は、一つ以上の候補ゾーンを、リーチシミュレーションデータ２７５によって表されるリーチシミュレーション結果に基づいて生成する。
【００７０】
一実施形態において、候補ゾーンモジュール２１２は、リーチシミュレーションデータ２７５によって表されるリーチシミュレーション結果に対して反復的な機械学習アプローチを適用することで、一つ以上の候補ゾーンを決定する。
【００７１】
一実施形態において、候補ゾーンモジュール２１２は、一つ以上の候補ゾーンを決定する。
例えば、候補ゾーンモジュール２１２は、反復的な分析によって、候補ゾーンを、類似する候補ゾーンのグループに置くことで、一つ以上の候補ゾーンを決定する。一実施形態
において、反復的な分析は、クラスタ分析であってもよい。
例えば、候補ゾーンモジュール２１２は、リーチシミュレーションデータ２７５によって表されたリーチシミュレーション結果を、類似する地点のクラスタに分割する。
【００７２】
一実施形態において、地点とは、空間内の直交座標系（Ｘ，Ｙ，Ｚ）における地点であって、与えられたリーチシミュレーション結果によって、ユーザ１０１が体を動かした際に届く（あるいは、ほぼ届く）とされた地点であってもよい。
候補ゾーンモジュール２１２は、異なるリーチシミュレーション結果によって表された複数の座標（Ｘ，Ｙ，Ｚ）を決定し、当該リーチシミュレーション結果を、類似した地点にクラスタ分類してもよい。
例えば、候補ゾーンモジュール２１２は、複数の地点にユーザが手を伸ばした場合において、ユーザの特定の関節にかかるトルク量や力が類似する場合に、当該二つ以上の地点が類似していると判定してもよい。
他の例では、候補ゾーンモジュール２１２が、ユーザ環境１９８における三次元空間を、クラスタ分析によって三次元の領域に分割し、二つ以上の地点が同一の領域に含まれる場合に、当該二つ以上の地点が類似すると判定してもよい。
【００７３】
一実施形態において、地点とは、空間内の六次元の地点であって、与えられたリーチシミュレーション結果によって、ユーザ１０１が体を動かした際に届く（あるいは、ほぼ届く）とされた地点であってもよい。
また、候補ゾーンモジュール２１２は、三つの方向（ピッチ、ヨー、ロール等）と同様に、異なるリーチシミュレーション結果によって表された複数の座標（Ｘ，Ｙ，Ｚ）を決定し、リーチシミュレーション結果を類似した地点にクラスタ化してもよい。
【００７４】
一実施形態において、ユーザリーチシミュレーション結果は、ユーザ環境１９８における一つ以上の地点に対応する値を含む。また、一実施形態において、ユーザリーチシミュレーション結果は、ユーザ環境１９８における、三次元または六次元の各地点に対応する値を含む。
【００７５】
例えば、ユーザリーチシミュレーション結果は、ユーザリーチシナリオ（例えば、図７Ａにおける符号７００を参照）において、ユーザ１０１の一つ以上の関節にかかる一つ以上のモーメントまたは力を表す。
ユーザリーチシミュレーション結果は、ユーザ環境１９８内のある地点に手を伸ばすユーザ１０１に対応する。また、ユーザリーチシミュレーション結果は、ユーザ環境１９８内の一つ以上の地点に手を伸ばすユーザ１０１に対するシミュレーションに基づいてもよい。例えば、ユーザリーチシミュレーションは、ユーザ環境１９８内の三次元の各地点に手を伸ばすユーザ１０１に対するシミュレーションに基づく。
なお、ユーザリーチシミュレーション結果や候補ゾーンの生成においては、リーチシミュレーション結果の分析をさらに行い、ユーザ環境１９８内の各三次元地点（または六次元地点）に値を割り当ててもよい。
割り当てる値は、例えば、以下のうちの一つ以上に基づいたものである。
（１）ユーザ環境１９８内のある地点に手を伸ばしたユーザ１０１の、一つ以上の関節にかかるモーメントや力
（２）ロボット１９０から物体１８８を受け取る際の地点、モーメント、力が、ユーザ情報と適合しているか否か
各々の値は、シミュレーションモジュール２１０や候補ゾーンモジュール２１２によって、ユーザ情報データ２７２およびリーチシミュレーションデータ２７５に少なくとも部分的に基づいて決定されてもよい。これらのデータは、ユーザリーチシミュレーションに対応する空間内の三次元または六次元の地点に手を伸ばす際の、ユーザの一つ以上の関節にかかるモーメントや力を表すデータを含む。
このように、ゾーンシステム１９７は、ユーザ環境における各地点を考慮し、ユーザ１０１の関節にかかるモーメントや力を最小化し、かつ、ユーザ１０１の情報に適合する地点のゾーンを決定する。
候補ゾーンや物体移動ポーズを決定する際に、ユーザの情報を考慮することは、本発明における利点の一つである。
【００７６】
一実施形態において、クラスタは類似した値を持つ地点の集合からなる。例えば、クラスタは、ユーザ情報と、ユーザの関節にかかるモーメントや力に基づいて決定される。
【００７７】
クラスタは、ゾーンデータ２７６として、第一のメモリ２２７に格納されてもよい。また、クラスタは、順序つきクラスタのリストとして格納されてもよい。
候補ゾーンモジュール２１２は、接続性に基づく（階層型）クラスタリング、分布（密度）に基づくクラスタリング、またはこれに類似する方法によってクラスタを生成してもよい。
【００７８】
一実施形態において、シミュレーションにおけるクラスタは、ロボット１９０が掴んでいる物体に１８８にユーザ１０１が手を伸ばす際に予想されるリスクまたは危害を最小化するように順序付けされる。
例えば、シミュレーションにおけるクラスタは、ユーザ１０１の特定の状態に基づいて、ユーザ１０１にかかるモーメント（例えばトルク）や力が少なくなるように順序付けされる。
例えば、もしユーザ１０１が左肩を負傷している場合、リーチシミュレーションのクラスタは、物体１８８を受け取る際に、ユーザの左肩にかかるモーメントを最小化するように順序付けされる。
順序付けされたクラスタのリストは、物体１８８をユーザ１０１に手渡す際のロボット１９０の物体移動ポーズを示すため、ロボットの候補ゾーンモジュール２１２やポーズシステム１９９によって分析される。
このように、物体移動ポーズは、ユーザ１０１に対するリスクや危害を制限するように最適化される。
【００７９】
候補ゾーンモジュール２１２は、信号線２３１を介してバス２２０に通信可能に接続される。
【００８０】
（ポーズシステムの例）
次に、図２Ｂを参照しながら、ポーズシステム１９９の例について、より詳しく説明する。
図２Ｂは、システム２９８のブロック図である。システム２９８は、図１のシステム１００におけるサーバ１０７またはロボット１９０であってもよい。
いくつかの例において、システム２９８は、ポーズシステム１９９，第二のプロセッサ２８５、第二のメモリ２８１、第二の通信ユニット２８３、スピーカ２８７、センサ１９６、モータ２５１、モバイルハードウェア２４３、アクチュエータ２４１を含んでいてもよい。
システム２９８の構成要素は、バス２５０を介して通信可能に接続される。
なお、図２Ｂには、一つのポーズシステム１９９，一つの第二のプロセッサ２８４、一つの第二のメモリ２８１、一つの第二の通信ユニット２８３、一つのスピーカ２８７、一つのセンサ１９６、一つのモータ２５１、一つのモバイルハードウェア２４３、一つのアクチュエータ２４１が図示されているが、実際は、システム２９８は、二つ以上のポーズシステム１９９、二つ以上の第二のプロセッサ２８５、二つ以上の第二のメモリ２８１、二つ以上の第二の通信ユニット２８３、二つ以上のスピーカ２８７、二つ以上のセンサ１９６、二つ以上のモータ２５１、二つ以上のモバイルハードウェア２４３、二つ以上のア
クチュエータ２４１を含んでいてもよい。
【００８１】
第二のプロセッサ２８５、第二の通信ユニット２８３、第二のメモリ２８１は、第一のプロセッサ２２５、第一の通信ユニット２４５、第一のメモリ２２７と類似した機能を含むため、これらの構成要素の説明は省略する。
【００８２】
図２Ｂに示したように、第二のメモリ２８１は、ゾーンデータ２７６、評価基準データ２６１、後続アクションデータ２６３、センサデータ２４９を格納する。第二のメモリ２８１は、本明細書において説明される機能を提供するための他のデータを格納してもよい。
【００８３】
ゾーンデータ２７６については、図２Ａを参照しながら説明したため、説明は省略する。
第一の通信ユニット２４５は、ゾーンデータ２７６を、ネットワーク１０５を介して第二の通信ユニット２８３に送信してもよい。また、第二の通信ユニット２８３は、ゾーンデータ２７６を第二のメモリ２８１に格納してもよいし、ゾーンデータ２７６を、ポーズシステム１９９の他の構成要素に送信するため、第二の通信モジュール２６２に送信してもよい。
【００８４】
センサデータ２４９は、一つ以上のセンサ１９６のセンシング結果を表すものであれば、どのようなデータを含んでいてもよい。
【００８５】
評価基準データは、ゾーンデータ２７６によって表された候補ゾーンを評価するための評価基準を表すデータである。
候補ゾーンは、評価モジュール２６８によって、一つ以上のセンサ１９６のセンシング結果ないし監視結果を用いて得られた、ユーザ環境１９８における現在の状況に基づいて評価される。
評価基準データ２６１は、センサデータ２４９に基づいて、判定モジュール２６４によって生成される。
例えば、評価基準データ２６１は、「一つ以上のセンサ１９６による、ユーザ１０１、物体１８８やユーザ環境１９８の現在の監視結果」、「ロボット１９０が物体移動ポーズをとり始めてから、ユーザ１０１が物体１８８に手を伸ばすのにかかる推定時間」、「ユーザ１０１の現在の快適レベルまたはストレスレベル」、「一つ以上のセンサ１９６によって得られた、最も高いランクの候補ゾーンに対する視界（見通し）」などを表したデータである。
【００８６】
一実施形態において、物体１８８は、ナイフのような鋭い物体であり、ロボット１９０または物体１８８と、ユーザ１０１の頭または体との距離が、判定モジュール２６４によって決定された評価基準に含まれる。
【００８７】
他の実施形態において、判定モジュール２６４は、「ユーザ１０１の手が他の物体によって塞がっているか否か」を表す評価基準を生成する。
評価モジュール２６８は、この基準を分析し、もしユーザ１０１の右手が塞がっている場合に、物体１８８をユーザ１０１の左手側に配置するという物体移動ポーズを決定する。
【００８８】
後続アクションデータ２６３は、ロボット１９０から物体１８８を受け取った後にユーザが取る見込みのアクションを表すデータである。後続アクションデータ２６３は、明示的な入力に基づくものであってもよい。例えば、後続アクションデータ２６３は、ユーザ１０１や医療プロバイダ１７０から得られた明示的な入力に基づいたものである。
【００８９】
一実施形態において、システム２９８のセンサ１９６は、マイクと、ユーザ１０１の発話をテキストに変換する機能を有していてもよい。
例えば、ユーザ１０１が、物体１８８を受け取った後の次のアクションを発話し、システム２９８が、当該入力を後続アクションデータ２６３に変換してもよい。
他の実施形態において、コンピュータ、スマートフォン、ウェアラブルデバイス、あるいはユーザ１０１が有するプロセッサベースの類似するデバイスが、ユーザ１０１の発話をテキストに変換する機能と、当該テキストをシステム２９８の第二の通信ユニット２８３に送信する機能を有していてもよい。例えば、ユーザ１０１が、発話によるロボット１９０への明示的な指示をスマートフォンに向けて行い、スマートフォンが、発話をテキストに変換し、当該ユーザの明示的な指示を表すデータを、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＷｉＦｉ、ＵＳＢ、または、スマートフォンとシステム２９８とを接続する他の手段によって、システム２９８に送信するようにしてもよい。
また、医療プロバイダ１７０は、同様の方法で指示をロボット１９０に行ってもよい。
【００９０】
一実施形態において、システム２９８は、キーボードあるいは他の入力周辺機器を含んでおり、ユーザ１０１や医療プロバイダ１７０は、テキストや他の明示的な入力によって、後続アクションデータ２６３を提供してもよい。
テキストベースの入力は、コンピュータ、スマートフォン、ウェアラブルデバイス、または、ユーザ１０１が有するプロセッサベースの類似するデバイスによって提供されてもよく、システム２９８の第二の通信ユニット２８３に送信されてもよい。
【００９１】
一実施形態において、判定モジュール２６４は、センサデータ２４９、医療データ２７３、ユーザ情報データ２７２、またはこれらの組み合わせを、ユーザ１０１の習慣やパターンを決定するために分析する機能を有していてもよい。
また、センサデータ２４９、医療データ２７３、ユーザ情報データ２７２、またはこれらの組み合わせによって表された、類似した状況における、ユーザ１０１の習慣やパターンに基づいて、推定されたユーザ１０１の次のアクションを決定する機能を有していてもよい。
【００９２】
図２Ｂに図示された実装例では、ポーズシステム１９９は、第二の通信モジュール２６２、センサモジュール２４８、判定モジュール２６４、後続アクションモジュール２６６，評価モジュール２６８、コントローラ２８９を含んでいる。これらのポーズシステム１９９の構成要素は、バス２５０を介して互いに通信可能に接続される。
【００９３】
一実施形態において、ポーズシステム１９９のモジュールは、一つの装置またはサーバに格納されてもよいし、複数の装置やサーバに分散して格納および配信されてもよい。
さらに、本実施形態で述べるコンポーネント、モジュール、サーバの分離は、全ての実施形態において必要とは限らないことを理解されるべきである。
一実施形態において、記載された構成要素、モジュール、装置またはサーバは、通常、一つの構成要素、モジュール、装置またはサーバに集積されることができる。
【００９４】
センサ１９６は、物理的な変化を感知する任意の装置である。センサ１９６は、信号線２５７を介してバス２５０に接続されている。
一実施形態において、センサ１９６はモーションディテクタである。例えば、センサ１９６は、ロボット１９０、ユーザ１０１、物体１８８、または、ユーザ環境内にある他の要素の姿勢を検出するジャイロスコープである。
また、他の実施形態において、センサ１９６は、ロボット１９０、ユーザ１０１、物体１８８、または、ユーザ環境１９８内にある他の要素の加速度を測るのに用いられる加速度計である。さらに別の例では、センサ１９６は、ＧＰＳや、無線ネットワークを通じた
三角測量等によって位置検出を行う。
一実施形態において、センサ１９６は、第二の通信モジュール２６２を介して位置情報をセンサモジュール２４８に送る。
他の実施形態において、センサ１９６は、第二のメモリ２８１に、センサデータ２４９あるいは評価基準データ２６１の一部として位置情報を保存する。
【００９５】
一実施形態において、センサ１９６は深さセンサを含む。
一実施形態において、深さセンサは、例えば赤外線レーザ光のスペックルパターンのような構造化光（structured light）を用いて深さを決定する。
他の実施形態において、深さセンサは、カメラから対象物まで光信号が進むのにかかる時間に基づいて深さを決定する、飛行時間計測式（time-of-flight）の技術を用いて深さを決定する。
例えば、深さセンサはレーザ測距器である。
深さセンサは、ユーザ環境１９８内にある要素を、深さとともに検出するのに用いられてもよい。
一実施形態において、センサ１９６は、ロボット１９０、ユーザ１０１、物体１８８、またはユーザ環境１９８にある他の要素を識別するために、深さ情報をセンサモジュール２４８に送信する。
他の実施形態において、センサ１９６は、深さデータを、センサデータ２４９あるいは評価基準データ２６１の一部としてメモリ２２７に格納する。
【００９６】
一実施形態において、センサ１９６は、音を電気信号に変換するためのマイクを含む。マイクは、ユーザ１０１や医療プロバイダ１７０から、ロボット１９０に対する明示的な命令あるいは入力といったような、要求を満たすための命令を取得してもよい。マイクは、命令を処理するために、電気信号をセンサモジュール２４８に送信する。
【００９７】
センサ１９６は、カメラであってもよい。カメラは、画像を取得するための物理デバイスである。一実施形態において、カメラは電気的な画像を取り込む。カメラは、ＣＣＤ（charge-coupled device）やＣＭＯＳ（complementary metal-oxide semiconductor）といった、視覚的イメージを電気信号に変換するイメージセンサを含む。
一実施形態において、カメラは、電気信号を、ユーザ１０１、物体１８８、ロボット１９０の位置を識別するためにセンサモジュール２４８に送信し、また、選択された物体移動ポーズを評価し、ユーザ１０１のリスクを表す新しいデータに基づいて新しい物体移動ポーズを決定するため、評価モジュール２６８に送信する。
他の実施形態において、カメラは、位置データ２９２の一部として電気信号をメモリ２２７に格納する。
【００９８】
システム２９８がロボット１９０である場合において、システム２９８は、モータ２５１、モバイルハードウェア２４３と、アクチュエータ２４１を含む。
モータ２５１は、信号線２６７を通してバス２５０に接続される。また、モバイルハードウェア２４３は、信号線２４４を通してバス２５０に接続される。アクチュエータ２４１は、信号線２４６を通してバス２５０に接続される。
【００９９】
モータ２５１は、モバイルハードウェア２４３を駆動するためのハードウェアを含む。
モバイルハードウェア２４３は、ロボット１９０を動かすためのハードウェア（例えば車輪）である。モータ２５１とモバイルハードウェア２４３は、ロボット１９０を動かすために用いられる。例えば、コントローラ２８９が、モータ２５１に、モバイルハードウェア２４３を駆動させ、例えば、ポーズシステム１９９によって選択された物体移動ポーズに基づいて、ロボット１９０を再配置するよう命令を行う。
【０１００】
アクチュエータ２４１は、ポーズシステム１９９によって選択された物体移動ポーズに基づいて、物体１８８を握り、ユーザ１０１への手渡しを行うための、物体１８８のポジショニングを行うためのハードウェアである。
アクチュエータ２４１は、モータを内蔵していてもよいし、ロボット１９０が有する一つ以上のモータ２５１によって駆動されてもよい。例えば、アクチュエータ２４１のモータはサーボモータであってもよい。
アクチュエータ２４１が、モータを内蔵している実施形態において、コントローラ２８９は、物体移動ポーズに基づいて、アクチュエータ２４１にポジショニングを行う命令を発行し、ユーザ１０１に物体１８８を手渡ししてもよい。
また、アクチュエータ２４１が、ロボット１９０のモータ２５１によって駆動される実施形態において、コントローラ２８９は、物体移動ポーズに基づいて、アクチュエータ２４１のポジショニングを行うためにモータ２５１に命令を発行し、ユーザ１０１に物体１８８を手渡ししてもよい。
【０１０１】
スピーカ２６７は、信号線２５５を通してバス２５０に接続された、音声による通知を発するためのオプションのハードウェアである。
例えば、システム２９８がロボット１９０である場合、スピーカは、評価モジュール２６８から命令を受信し、ユーザ１０１に対して、「もたらされるリスクが所定の値よりも高い状況にあると評価モジュール２６８が判断したため、物体１８８の手渡しが行えない」という通知を行う。
【０１０２】
一実施形態において、ポーズシステム１９９の各モジュール２６２，２４８，２６４，２６６，２６８，２８９のそれぞれは、以下に記す機能を提供する、第二のプロセッサ２８５で実行可能な一組の命令である。
他の実施形態において、モジュール２６２，２４８，２６４，２６６，２６８，２８９のそれぞれは、第二のメモリ２８１に格納され、システム２９８の第二のプロセッサ２８５によってアクセスされ、実行されてもよい。
モジュール２６２，２４８，２６４，２６６，２６８，２８９のそれぞれは、第二のプロセッサ２８５や、システム２９８の他の構成要素と協調や通信を行うように構成される。
一実施形態において、モジュール２６２，２４８，２６４，２６６，２６８，２８９のそれぞれは、格納され、システム２９８の第二のプロセッサ２８５によって実行される一つ以上のシンクライアントとして機能してもよい。
【０１０３】
第二の通信モジュール２６２は、第一の通信モジュール２０２等と類似した機能を提供するものであるため、詳細な説明は省略する。第二の通信モジュール２６２は、信号線２５２を介して、バス２５０に通信可能に接続される。
【０１０４】
センサモジュール２４８は、ユーザ１０１を検出し、ユーザ１０１の位置、向き、評価基準を推定し、ロボット１９０の現在位置を判定し、物体１８８の位置、向き、評価基準を判定し、ユーザ環境１９８にある他の要素を検出し、当該ユーザ環境１９８にある要素の位置、向き、評価基準を推定するためのルーチンを含むソフトウェアである。
一実施形態において、センサモジュール２４８は、以下に記すような、ユーザ１０１、ロボット１９０、物体１８８、ユーザ環境１９８にある他の要素をセンシングするための機能を提供する、第二のプロセッサ２８５で実行可能な一組の命令である。
センサモジュール２４８は、信号線２４７を通してバス２５０に通信可能に接続される。
【０１０５】
一実施形態において、センサモジュール２４８は、カメラであるセンサ１９６から、第二の通信モジュール２６２を介して画像を受信する。
そしてセンサモジュール２４８は、画像から、ユーザ１０１、ロボット１９０、物体１８８、またはユーザ環境１９８にある他の要素の位置および向きを識別する。
位置は、直交座標系における緯度と経度等によって表されてもよい。
例えば、センサモジュール２４８は、物体１８８と、物体１８８の端に存在する鋭いエッジを識別する。また、センサモジュール２４８は、ユーザ１０１の右手が空いており、左手が塞がっていることを識別する。センサモジュール２４８は、評価モジュール２６８およびコントローラ２８９と協働し、物体１８８が有する鋭いエッジに関連付いたリスクと、ユーザ１０１の左手が塞がっていることを識別し、ロボット１９０が、ユーザ１０１の右手側に物体１８８を配置し、かつ、鋭いエッジがユーザ１０１の手指から離れるような向きで物体１８８を配置するように処理を行う。
【０１０６】
センサモジュール２４８は、ユーザ１０１、ロボット１９０、物体１８８、ユーザ環境１９８にある他の要素の現在位置を判定する。
例えば、センサモジュール２４８は、ＧＰＳ装置、ＷｉＦｉを用いた三角測量装置など、ロボット１９０に含まれるセンサ１９６を、ロボット１９０の位置を識別するために用いる。
他の例において、センサモジュール２４８は、カメラ２４９から画像を受信し、画像に含まれる既知の物体の位置と、ロボット１９０の既知の位置（例えばロボット１９０のＧＰＳ座標）とを比較することで、ユーザ１０１の現在位置を識別する。
【０１０７】
センサモジュール２４８は、信号線２４７を介して、バス２５０に通信可能に接続される。
【０１０８】
判定モジュール２６４は、センサデータ２４９や他のデータを分析し、評価基準データ２６１を生成するためのルーチンを含むソフトウェアである。
例えば、判定モジュール２６１は、「表情がストレスを感じているか」「右手や左手が塞がっているか」等を判定するために、センサデータ２４９に含まれるユーザ１０１の画像を分析する。
ユーザ１０１のこれらのステータスは、ポーズシステム１９９が、どのような物体移動ポーズを選択するかに影響を及ぼす、評価基準となる。
【０１０９】
判定モジュール２６４は、センサデータ２４９を分析し、評価基準として、「ユーザ１０１、物体１８８、ユーザ環境１９８の現在の監視結果」、「ロボット１９０が物体移動ポーズをとり始めてから、ユーザ１０１が物体１８８に手を伸ばすのにかかる推定時間」、「ユーザ１０１の現在の快適レベルまたはストレスレベル」、「一つ以上のセンサ１９６によって得られた、最も高いランクの候補ゾーンに対する視界（見通し）」等を決定する。
判定モジュール２６４は、センサデータ２４９に基づいて、他の評価基準データ２６１を生成してもよい。
【０１１０】
判定モジュール２６４は、信号線２５４を介してバス２５０に通信可能に接続される。
【０１１１】
後続アクションモジュール２６６は、ユーザ１０１がロボット１９０から物体１８８を受け取った後のアクション（後続アクション）を決定するためのルーチンを含むソフトウェアである。例えば、後続アクションモジュール２６６は、後続アクションデータ２６３に基づいて、ユーザ１０１が物体１８８を受け取った後の後続アクションを決定する。
【０１１２】
後続アクションモジュール２６６は、信号線２６６を介してバス２５０に通信可能に接続される。
【０１１３】
評価モジュール２６８は、ロボット１９０が物体１８８をユーザ１０１に手渡しする際の物体移動ポーズを選択するためのルーチンを含むソフトウェアである。
例えば、評価モジュール２６８は、ゾーンデータ２７６、評価基準データ２６１、またはこれらの組み合わせに基づいて、物体移動ポーズを選択する。
ゾーンデータ２７６は、ユーザ１０１に物体１８８を手渡しする候補ゾーンを表すデータである。候補ゾーンは、「物体移動ポーズにおいて、ロボット１９０のアクチュエータ２４１から物体を受け取る際に、どの候補ゾーンを用いれば、最も少ないモーメント（例えばトルク）や力で手渡しができるか」に基づいてランク付けされてもよい。
また、評価基準データ２６１は、センサ１９６の現在の監視結果に基づいて、候補ゾーンのランクを更新するために用いられてもよい。
例えば、センサ１９６は、評価モジュール２６８に、候補ゾーンのランクを更新させるため、ロボット１９０、ユーザ１０１、物体１８８、ユーザ環境１９８の他の要素についての状態を示してもよい。
このように、評価モジュール２６８は、候補ゾーンをフィルタし、ユーザ１０１が物体１８８を受け取る際のリスクを最小にする物体移動ポーズを決定するために、評価基準データ２６１を用いてもよい。
例えば、ユーザ１０１のリスクを最小にする物体移動ポーズとは、ユーザ１０１が物体１８８に手を伸ばす際にかかるトルクや力を最小にするものであってもよい。
他の例では、評価基準は、ユーザ環境１９８にある他の要素であって、ユーザ１０１が物体１８８に手を伸ばす際に脅威（例えば、つまずき、よろめき等）となるものを表してもよく、ユーザ１０１のリスクを最小にする物体移動ポーズとは、ユーザ１０１が物体１８８に手を伸ばす際の事故発生率を最小にするものであってもよい。
評価モジュール２６８は、このようなフィルタリングによって一つ以上の候補ゾーンを選択し、当該候補ゾーンに基づいて物体移動ポーズを決定する。
【０１１４】
評価モジュール２６８は、信号線２５８を介して、バス２５０に通信可能に接続される。
【０１１５】
コントローラ２１０は、モータ２５１、モバイルハードウェア２４３、アクチュエータ２４１を動作させるためのルーチンを含むソフトウェアである。
例えば、コントローラ２１０は、評価モジュール２６１から物体移動ポーズを表すデータを受信し、物体１８８をユーザ１０１に手渡しするために、当該物体移動ポーズに従ってアクチュエータ２４１を動かす。
【０１１６】
コントローラ２１０は、物体１８８をユーザ１０１に手渡しする際の、モータ２５１、モバイルハードウェア２４３、アクチュエータ２４１が従うべき速度制約を生成してもよい。例えば、コントローラ２１０は、物体移動ポーズに従ってパスに沿った動作をする際の速度と方向を決定する。
コントローラ２１０が速度制約を生成すると、コントローラ２１０は、アクチュエータ２４１やモータ２５１に対して、物体移動ポーズに従って動くように指示する。
センサ１９６が、ユーザ１０１に対する衝突可能性を検知したような場合、コントローラ２１０は、衝突を避けるための新しい速度制約を生成するか、アクチュエータ２４１やモータ２５１に対して、動作を止める指示を行う。
【０１１７】
（方法例）
次に、図３〜図５を参照して、システムが実行する方法のフローチャートについて説明する。図３に示した処理は、候補ゾーンを生成せず、評価基準のみに基づいて手渡しを行う場合の例である。また、図４および図５に示した処理は、リーチシミュレーションに基づいて候補ゾーンを生成し、評価基準を用いて候補ゾーンをフィルタリングしたうえで物体移動ポーズを決定し、手渡しを行う場合の例である。
まず、図３を参照して、物体１８８をユーザ１０１に手渡すための物体移動ポーズ３０８を生成する方法３００の例を示す。
一実施形態において、ゾーンシステム１９７、ポーズシステム１９９、またはこれらの組み合わせは、方法３００の一つ以上を実行されるようにプログラムされた、プロセッサベースのコンピュータであってもよい。
【０１１８】
まず、ステップ３０２で、ユーザデータ１９２を受信する。
次に、ステップ３０６で、物体データ１９４を受信する。
次に、ステップ３０６で、センサデータ２４９を受信する。
次に、ステップ３０８で、物体１８８をユーザ１０１に手渡しするための物体移動ポーズを決定する。
次に、ステップ３１０で、物体１８８を受け取った後のユーザアクションを決定する。
次に、ステップ３１１で、物体１８８をユーザ１０１に手渡すか否かを決定する。例えば、一つ以上の評価基準を生成し、当該評価基準がユーザ１０１に対するリスクを示している場合、物体１８８をユーザ１０１に手渡さないという決定を行う。
【０１１９】
もし、ステップ３１１で、物体１８８をユーザ１０１に手渡さないという決定が行われた場合、方法３００は終了するか、他のステップへ遷移する。例えば、方法３００はステップ３０６へ遷移する。
【０１２０】
もし、ステップ３１１で、物体１８８をユーザ１０１に手渡すという決定が行われた場合、方法３００はステップ３１２へ進む。
ロボット１９０は、物体移動ポーズに基づいて、どのように動くかを決定し、ステップ３１２にて、物体移動ポーズを形成するための駆動を開始する。そして、ユーザ１０１は、ロボット１９０から物体１８８を受け取る。
また、ロボット１９０は、ユーザ１０１のリスク評価を継続し、ユーザ１０１のリスクを減らすような駆動方法を決定し、ユーザ１０１のリスクを減らすための応答を行う。
【０１２１】
次に、図４を参照して、ゾーンデータ２７６を生成する方法４００の例を示す。
一実施形態において、ゾーンシステム１９７、ポーズシステム１９９、またはこれらの組み合わせは、方法４００の一つ以上を実行されるようにプログラムされた、プロセッサベースのコンピュータであってもよい。
例えば、ゾーンシステム１９７は、方法４００の一つ以上を実行されるようにプログラムされる。また、ゾーンシステム１９７は、方法４００の一つ以上を実行されるようにプログラムされた、特別な目的を持つコンピュータであってもよい。
まず、ステップ４０２で、センサデータ２４９を受信する。
【０１２２】
次に、ステップ４０４で、ユーザデータ１９４を受信する。ユーザデータ１９４は、例えば、医療データ２７３や、ユーザ１０１から明示的に入力されたデータを含む。ユーザ１０１から明示的に入力されたデータとは、ユーザ１０１に関する一つ以上の情報を明示的に表したものであってもよい。
次に、ステップ４０５で、物体データ１９６を受信する。
次に、ステップ４０８で、姿勢データ２７１を生成する。ステップ４０８では、ユーザ１０１に対応する生体力学データを生成してもよい。また、ユーザに対応する生体力学データは、姿勢データ２７１を構成する要素であってもよい。
次に、ステップ４１０で、ユーザ情報データ２７２を生成する。
次に、ステップ４１２で、一つ以上のユーザモデルを表すユーザモデルデータ２７４を生成する。
次に、ステップ４１４で、一つ以上のユーザリーチシミュレーションマップを生成する。ユーザリーチシミュレーションマップは、リーチシミュレーションデータ２７５によっ
て表されてもよい。
次に、ステップ４１６で、一つ以上のユーザリーチシミュレーションマップを分析し、類似する地点のクラスタを生成する。ステップ４１６で行われる分析は、反復的な分析であってもよい。
次に、ステップ４１８で、物体を手渡しする候補ゾーンを表すゾーンデータ２７６を生成する。ゾーンデータ２７６によって表される候補ゾーンは、ランク付けされていてもよい。例えば、ゾーンデータ２７６は、一つ以上の候補ゾーンをランク付けしたリストであってもよい。
【０１２３】
次に、図５を参照して、物体移動ポーズを決定する方法５００の例を示す。
まず、ステップ５０２で、センサデータ２４９を受信する。
次に、ステップ５０４で、評価基準データ２６１を生成する。評価基準は、センサデータ２４９に基づいて生成されてもよい。
次に、ステップ５０６で、ゾーンデータ２７６を受信する。
次に、ステップ５０８で、物体移動ポーズを生成する。物体移動ポーズは、例えば、ゾーンデータ２７６によって表された候補ゾーンを、評価基準データ２６１を用いてフィルタリングすることで生成される。このように、候補ゾーンのリストを、現在の監視状態に基づいて更新してもよい。
ステップ５１０では、物体１８８を受け取った後のユーザ１０１のアクションを決定する。
【０１２４】
次に、ステップ５１２で、物体１８８をユーザ１０１に手渡すか否かを決定する。例えば、評価基準データ２６１が、ユーザ１０１に対する物体の手渡しが、安全ではないか、リスクがあるという状況を示している場合がある。
一実施形態において、ポーズシステム１９９は、リスクに関する閾値を有している。そして、評価モジュール２６８は、評価基準データ２６１を分析し、閾値を超えているか否かを判定する。もし、閾値を超えている場合、方法５００はステップ５０８へ遷移し、評価モジュール２６８は、リスクを減らせる他の物体移動ポーズを選択する。
このように、方法は、許容できる物体移動ポーズを識別できるまで、所定の回数だけ繰り返されてもよい。もし、許容できる物体移動ポーズが見つからなかった場合、方法５００は終了してもよいし、第二の通信ユニット２８３が、ユーザ１０１や医療プロバイダ１７０から新たな指示を仰ぐようにしてもよい。
または、所定の回数だけ繰り返しても、許容できる物体移動ポーズが見つからなかった場合、ポーズシステム１９９は、センサデータ２４９を分析し、ユーザ環境１９８にある平らな面を識別したうえで、ロボット１９０が、物体を当該平面に移動させ、配置するための駆動と移動ベクトルを決定するようにしてもよい。このようにすることで、ユーザ１０１が物体を受け取ることができるようになる。
【０１２５】
もし、ステップ５１２において、物体１８８をユーザ１０１に手渡しするという決定がされた場合、方法５００はステップ５１６へ遷移し、ロボット１９０が、物体移動ポーズに従った駆動や動作を開始する。
【０１２６】
（ユーザモデルの例）
次に、図６Ａを参照して、ユーザ１０１に対応する生体力学モデル６１０の例を示す。
符号６００は、生体力学モデル６１０に対応する座標系（Ｘ，Ｙ，Ｚ）を表す。
生体力学モデル６１０は、ユーザ１０１の各関節における、モーメントおよび力ベクトルの静的な分布を表すものである。生体力学モデル６１０は、当該生体力学モデルに対応するユーザ１０１についてのユーザ情報１９２を含んでいてもよい。例えば、生体力学モデルは、対応するユーザ１０１の身長および体重を含んでいてもよい。
【０１２７】
次に、図６Ｂを参照して、ユーザ１０１に対応するリンクモデル６２０の例を示す。
符号６９０は、リンクモデル６２０に対応する座標系（Ｘ，Ｙ，Ｚ）を表す。また、符号６９９は、リンクモデル６２０に含まれる各リンクの重心を表す。
一実施形態において、リンクモデル６２０の各リンクは、ユーザ１０１の関節間にある領域に対応する。例えば、ユーザ１０１の大腿骨は、ユーザ１０１の膝と尻の間にあるため、モデル６２０のリンクによって表すことができる。
【０１２８】
一実施形態において、リンクモデル６２０は、ゾーンシステム１９７のモデルモジュール２０８によって、ユーザ情報１９２や、ユーザ１０１に対応する生体力学データに少なくとも部分的に基づいて生成される。例えば、リンクモデル６２０は、以下のうちの一つ以上に基づいて、モデルモジュール２０８によって生成される。
（１）ユーザ１０１の身長および体重に関連する、各リンクにおける重さや長さの割合
（２）ユーザ１０１の身長に関連する、各リンクの重心のオフセット
（３）ユーザ１０１の各関節における、各軸に沿った可動範囲
一実施形態において、リンクモデル６２０を表したユーザモデルデータ２７４は、以下を決定するために、シミュレーションモジュール２１０によって利用される。
（１）ユーザ１０１の手にある物体１８８の重心からスタートする、Ｘ，Ｙ，Ｚ軸周りのモーメントを表したリーチシミュレーションデータ２７５（もしあれば）
（２）ユーザ１０１の手首から、Ｌ５／Ｓ１脊椎骨までの、ユーザ１０１の関節にかかる負荷
（３）ユーザ１０１の足首から、Ｌ５／Ｓ１脊椎骨までの、ユーザ１０１の関節にかかる負荷
【０１２９】
一実施形態において、ユーザ１０１の手にかかる負荷の分布は、モデルモジュール２０８によって、「ユーザ１０１が物体１８８をどのように持つか」に基づいて生成される。また、ユーザ１０１の足にかかる荷重の分布は、モデルモジュール２０８によって、「ユーザ１０１が両足で立っているか否か」を考慮して生成される。
このように、ユーザ情報１９２、姿勢データ２７１、ユーザ情報データ２７２によって表された要素を用いてリンクモデル６２０を生成するようにしてもよい。
【０１３０】
（リーチシミュレーションの例）
次に、図７Ａを参照して、図７Ｂ〜７Ｅに表したリーチシミュレーション７９０，７９１，７９１，７９３を生成するために用いられるユーザリーチシナリオ７００の例を示す。
本シナリオ７００では、ユーザ７２０が、テーブル７１０の上にある物体７３０に手を伸ばしている。図７Ｂ〜７Ｅは、テーブル７１０に着席し、物体７３０に手を伸ばすことで、異なるユーザ７２０が本シナリオを試みた場合の例である。
図７Ｂ〜７Ｅに示すように、右手を用いて同じ位置に手を伸ばす場合であっても、異なるユーザにそれぞれかかるモーメントには差がある。
異なるユーザ７２０にかかるモーメントの差は、ユーザ情報１９２によって表される、ユーザ７２０の身長、体重、他の生体力学データの違いなどに起因して発生する。
【０１３１】
図７Ｂ〜７Ｅに、互いに異なる第一のユーザ７２０Ａおよび第二のユーザ７２０Ｂに対応するユーザリーチシミュレーション７９０，７９１，７９２，７９３の例を示す。
これらのユーザリーチシミュレーション７９０，７９１，７９２，７９３は、図７Ａに示した同じユーザリーチシナリオ７００によって手を伸ばす場合に、異なるユーザ７２０Ａおよび７２０Ｂの関節に異なるモーメントがかかることを表している。
ユーザリーチシミュレーション７９０，７９１，７９２，７９３は、ユーザ環境において、ある地点に手を伸ばすユーザ７２０Ａおよび７２０Ｂに対応する。
また、ユーザリーチシミュレーション７９０，７９１，７９２，７９３は、ユーザ環境
において、一つ以上の地点に手を伸ばすユーザ７２０Ａおよび７２０Ｂをシミュレーションした結果に基づく。例えば、ユーザリーチシミュレーション７９０，７９１，７９２，７９３は、ユーザ環境の各地点に手を伸ばすユーザ７２０Ａおよび７２０Ｂをシミュレーションした結果に基づく。
なお、ユーザリーチシミュレーション７９０，７９１，７９２，７９３や候補ゾーンの生成においては、リーチシミュレーション結果の分析をさらに行い、ユーザ環境内の各三次元地点（または六次元地点）に値を割り当ててもよい。
前述した値は、以下のうちの一つ以上に基づいてもよい。
（１）ユーザ環境内のある地点に手を伸ばしたユーザ７２０Ａ，７２０Ｂの関節にかかるモーメントや力
（２）ロボットから物体を受け取る際の地点、モーメント、力が、ユーザ情報と適合しているか否か
【０１３２】
一実施形態において、値は、シミュレーションモジュール２１０または候補ゾーンモジュール２１２によって、ユーザ情報データ２７２、リーチシミュレーションデータ２７５の少なくともいずれかに部分的に基づいて決定される。これらのデータは、ユーザリーチシミュレーション７９０，７９１，７９２，７９３に対応する空間内の三次元または六次元座標に手を伸ばした際にユーザの一つ以上の関節にかかるモーメントや力を表すデータを含む。
このように、ゾーンシステム１９７は、ユーザ環境における各地点を考慮して、ユーザの関節にかかるモーメントや力を最小化し、かつ、ユーザ情報に適合する地点のゾーンを決定してもよい。
【０１３３】
次に、図８を参照して、ユーザの後続アクションのシミュレーション結果である、シミュレーション８９０，８９１，８９３の三次元空間における例８００を示す。
シミュレーション８９０，８９１，８９３は、ユーザがロボットから物体を受け取った後の異なるポーズの例を示したものである。
シミュレーション８９０は、運動モデルに基づいた物体移動ポーズを用いた場合における、ロボットから物体を受け取った後のユーザのポーズの例を表す。当該物体移動ポーズは、モーメントのユーザの関節への影響があるため、医療プロバイダによって、望ましくないものとならないように考慮される。
シミュレーション８９１は、前述した方法３００，４００，５００と、前述した技術によって決定された物体移動ポーズを用いた場合における、ロボットから物体を受け取った後のユーザのポーズの例を表す。例えば、ロボットのポーズは、あるユーザに対応した生体力学モデルであって、ユーザ情報を表す入力や、医療プロバイダによって提供された入力を含む生体力学モデルに部分的に基づいたものである。
シミュレーション８９１に示した姿勢は、より快適で、便利な手渡しポーズをもたらすように、医療プロバイダによって望ましいと考えられたものである。例えば、ロボットのポーズシステムは、手渡しイベントの後、ユーザがカップの中身を飲むということを知っている。シミュレーション８９３は、姿勢８９１をとった後において、カップの飲み物を飲んでいるユーザを表したものである。
【０１３４】
以上の説明では、本発明を十分に理解できるように、多くの詳細について説明した。しかしながら、各実施形態はこれらの具体的な詳細無しでも良いことは当業者にとって明らかであろう。また、説明が不明瞭になることを避けるために、構造や装置をブロック図の形式で表すこともある。例えば、実施形態は、ユーザインタフェースおよび特定のハードウェアとともに説明される。しかし、ここでの説明は、データおよびコマンドを受信する任意のタイプの計算装置および任意の周辺機器について適用できる。
【０１３５】
本明細書における「一実施形態」または「他の実施形態」等という用語は、その実施形
態と関連づけて説明される特定の特徴・構造・性質が少なくとも本発明の一つの実施形態に含まれることを意味する。「１つの実施形態における」等という用語は本明細書内で複数用いられるが、これらは必ずしも同一の実施形態を示すものとは限らない。
【０１３６】
本明細書の詳細な説明の一部は、非一時的（non-transitory）なコンピュータ可読記憶媒体に記憶されたデータビットに対する動作のアルゴリズムおよび記号的表現として提供される。これらのアルゴリズム的な説明および表現は、データ処理技術分野の当業者によって、他の当業者に対して自らの成果の本質を最も効果的に説明するために用いられるものである。なお、本明細書において（また一般に）アルゴリズムとは、所望の結果を得るための論理的な手順を意味する。処理のステップは、物理量を物理的に操作するものである。必ずしも必須ではないが、通常は、これらの量は記憶・伝送・結合・比較およびその他の処理が可能な電気的または磁気的信号の形式を取る。通例にしたがって、これらの信号をビット・値・要素・エレメント・シンボル・キャラクタ・項・数値などとして称することが簡便である。
【０１３７】
なお、これらの用語および類似する用語はいずれも、適切な物理量と関連付いているものであり、これら物理量に対する簡易的なラベルに過ぎないということに留意する必要がある。以下の説明から明らかなように、特に断らない限りは、本明細書において「処理」「計算」「コンピュータ計算（処理）」「判断」「表示」等の用語を用いた説明は、コンピュータシステムや類似の電子的計算装置の動作および処理であって、コンピュータシステムのレジスタやメモリ内の物理的（電子的）量を、他のメモリやレジスタまたは同様の情報ストレージや通信装置、表示装置内の物理量として表される他のデータへ操作および変形する動作および処理を意味する。
【０１３８】
本発明は、本明細書で説明される動作を実行する装置にも関する。この装置は要求される目的のために特別に製造されるものであっても良いし、汎用コンピュータを用いて構成しコンピュータ内に格納されるプログラムによって選択的に実行されたり再構成されたりするものであっても良い。このようなコンピュータプログラムは、コンピュータのシステムバスに接続可能な、例えばフロッピー（登録商標）ディスク・光ディスク・ＣＤ−ＲＯＭ・ＭＯディスク・磁気ディスクなど任意のタイプのディスク、読み込み専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気カード、フラッシュメモリ、光学式カード、電子的命令を格納するために適した任意のタイプの媒体などのコンピュータ可読記憶媒体に記憶される。
【０１３９】
発明の具体的な実施形態は、完全にハードウェアによって実現されるものでも良いし、完全にソフトウェアによって実現されるものでも良いし、ハードウェアとソフトウェアの両方によって実現されるものでも良い。好ましい実施形態は、ソフトウェアによって実現される。ここでソフトウェアとは、ファームウェア、常駐ソフトウェア、マイクロコードやその他のソフトウェアを含むものである。
【０１４０】
さらに、ある実施形態は、コンピュータが利用あるいは読み込み可能な記憶媒体からアクセス可能なコンピュータプログラムプロダクトの形態を取る。この記憶媒体は、コンピュータや任意の命令実行システムによってあるいはそれらと共に利用されるプログラムコードを提供する。コンピュータが利用あるいは読み込み可能な記憶媒体とは、命令実行システムや装置によってあるいはそれらと共に利用されるプログラムを、保持、格納、通信、伝搬および転送可能な任意の装置を指す。
【０１４１】
プログラムコードを格納・実行するために適したデータ処理システムは、システムバスを介して記憶素子に直接または間接的に接続された少なくとも１つのプロセッサを有する。記憶素子は、プログラムコードの実際の実行に際して使われるローカルメモリや、大容
量記憶装置や、実行中に大容量記憶装置からデータを取得する回数を減らすためにいくつかのプログラムコードを一時的に記憶するキャッシュメモリなどを含む。
【０１４２】
入力／出力（Ｉ／Ｏ）装置は、例えばキーボード、ディスプレイ、ポインティング装置などであるが、これらはＩ／Ｏコントローラを介して直接あるいは間接的にシステムに接続される。
【０１４３】
システムにはネットワークアダプタも接続されており、これにより、私的ネットワークや公共ネットワークを介して他のデータ処理システムやリモートにあるプリンタや記憶装置に接続される。モデム、ケーブルモデム、イーサネット（登録商標）は、現在利用可能なネットワークアダプタのほんの一例である。
【０１４４】
最後に、本明細書において提示されるアルゴリズムおよび表示は特定のコンピュータや他の装置と本来的に関連するものではない。本明細書における説明にしたがったプログラムを有する種々の汎用システムを用いることができるし、また要求された処理ステップを実行するための特定用途の装置を製作することが適した場合もある。これら種々のシステムに要求される構成は、以下の説明において明らかにされる。さらに、本発明は、特定のプログラミング言語と関連づけられるものではない。本明細書で説明される本発明の内容を実装するために種々のプログラミング言語を利用できることは明らかであろう。
【０１４５】
実施形態の前述の説明は、例示と説明を目的として行われたものである。したがって、開示された実施形態が本発明の全てではないし、本発明を上記の実施形態に限定するものでもない。本発明は、上記の開示にしたがって、種々の変形が可能である。本発明の範囲は上述の実施形態に限定解釈されるべきではなく、特許請求の範囲にしたがって解釈されるべきである。本発明の技術に詳しい者であれば、本発明はその思想や本質的特徴から離れることなくその他の種々の形態で実現できることを理解できるであろう。同様に、モジュール・処理・特徴・属性・方法およびその他の本発明の態様に関する名前付けや分割方法は必須なものでものないし重要でもない。また、本発明やその特徴を実装する機構は異なる名前や分割方法や構成を備えていても構わない。さらに、当業者であれば、モジュール・処理・特徴・属性・方法およびその他の本発明の態様は、ソフトウェア、ハードウェア、ファームウェアもしくはこれらの組合せとして実装できることを理解できるであろう。また、本発明をソフトウェアとして実装する場合には、モジュールなどの各要素は、どのような様式で実装されても良い。例えば、スタンドアローンのプログラム、大きなプログラムの一部、異なる複数のプログラム、静的あるいは動的なリンクライブラリー、カーネルローダブルモジュール、デバイスドライバー、その他コンピュータプログラミングの当業者にとって既知な方式として実装することができる。さらに、本発明の実装は特定のプログラミング言語に限定されるものではないし、特定のオペレーティングシステムや環境に限定されるものでもない。以上のように、上記の本発明の説明は限定的なものではなく例示的なものであり、本発明の範囲は添付の特許請求の範囲にしたがって定められる。
【符号の説明】
【０１４６】
１０１  ユーザ
１０５  ネットワーク
１０７  サーバ
１７０  医療プロバイダ
１８８  物体
１９０  ロボット
１９２  ユーザデータ
１９４  物体データ
１９６  センサ
１９７  ゾーンシステム
１９９  ポーズシステム
２０２  第一の通信モジュール
２０４  姿勢モジュール
２０６  ユーザ情報モジュール
２０８  モデルモジュール
２１０  シミュレーションモジュール
２１２  候補ゾーンモジュール
２２５  第一のプロセッサ
２２７  第一のメモリ
２４１  アクチュエータ
２４３  モバイルハードウェア
２４５  第一の通信ユニット
２４８  センサモジュール
２５１  モータ
２６２  第二の通信モジュール
２６４  判定モジュール
２６６  後続アクションモジュール
２６８  評価モジュール
２８１  第二のメモリ
２８３  第二の通信ユニット
２８５  第二のプロセッサ
２８７  スピーカ
２８９  コントローラ
【図１】
2016068253.tif 000003
【図２Ａ】
2016068253.tif 000004
【図２Ｂ】
2016068253.tif 000005
【図３】
2016068253.tif 000006
【図４】
2016068253.tif 000007
【図５】
2016068253.tif 000008
【図６Ａ】
2016068253.tif 000009
【図６Ｂ】
2016068253.tif 000010
【図７Ａ】
2016068253.tif 000011
【図７Ｂ】
2016068253.tif 000012
【図７Ｃ】
2016068253.tif 000013
【図７Ｄ】
2016068253.tif 000014
【図７Ｅ】
2016068253.tif 000015
【図８】
2016068253.tif 000016