(57)【要約】【課題】ロボットを用いてユーザの補助を行うシステムにおいて、安全性や快適性を向上させる。【解決手段】ロボットを用いて、ユーザ環境内にいるユーザの補助を行うシステムが実行する方法であって、前記ユーザ環境内におけるユーザの現在位置を取得する位置取得ステップと、前記ユーザ環境内にある障害物を検出する障害物検出ステップと、前記ユーザに関連付いた電子健康記録（ＥＨＲ）に基づいて、前記ユーザの身体的能力を推定する能力推定ステップと、前記ユーザ環境内にある障害物と、前記ユーザの身体的能力と、に基づいて、前記ロボットがタスクを実行するための命令を生成する命令生成ステップと、前記生成した命令をロボットに送信する命令送信ステップと、を含む。【選択図】図１Ａ
2016159155.tif 000002
【特許請求の範囲】
【請求項１】
ロボットを用いて、ユーザ環境内にいるユーザの補助を行うシステムが実行する方法であって、
前記ユーザ環境内におけるユーザの現在位置を取得する位置取得ステップと、
前記ユーザ環境内にある障害物を検出する障害物検出ステップと、
前記ユーザに関連付いた電子健康記録（ＥＨＲ）に基づいて、前記ユーザの身体的能力を推定する能力推定ステップと、
前記ユーザ環境内にある障害物と、前記ユーザの身体的能力と、に基づいて、前記ロボットがタスクを実行するための命令を生成する命令生成ステップと、
前記生成した命令をロボットに送信する命令送信ステップと、
を含む方法。
【請求項２】
前記ロボットに対する命令は、前記ユーザに対して物体を手渡しするために、前記物体を所定の位置および向きに再配置させる命令である、
請求項１に記載の方法。
【請求項３】
前記電子健康記録に基づいて、前記ユーザのロボットに近い側の手が不自由か否かを判定する判定ステップをさらに含み、
前記命令生成ステップでは、前記判定結果に基づいて、前記物体を、不自由ではない手の側に移動させる命令を生成する、
請求項２に記載の方法。
【請求項４】
前記ユーザの状態を監視する監視ステップと、
前記ユーザの状態の変化に応じて、前記ロボットに対する命令を変更する命令変更ステップと、
前記ユーザの状態の変化を、前記電子健康記録に反映させる反映ステップと、
をさらに含む、
請求項１から３のいずれかに記載の方法。
【請求項５】
前記電子健康記録は、前記ユーザの現在および過去における医学的状態を表した情報である、
請求項１から４のいずれかに記載の方法。
【請求項６】
前記電子健康記録は、前記ユーザが動ける範囲、前記ユーザの手が届く範囲、前記ユーザの筋肉の状態、前記ユーザの快適度、前記ユーザの嗜好、前記ユーザが前記ロボットから物体を受け取るのにかかる時間、手渡し動作の後で前記ユーザが前記ロボットと接する時間、タスクを完了するのにかかる時間、の少なくともいずれかを含む、
請求項１から５のいずれかに記載の方法。
【請求項７】
前記ロボットに対して発行される命令は、前記ユーザを誘導するために前記ロボットを所定のパスに沿って移動させる命令であり、
前記所定のパスは、前記ユーザの移動速度、前記ユーザに対する相対位置、誘導の複雑度、前記ロボットがユーザに対して提供する情報の量、の少なくともいずれかに基づいて決定される、
請求項１から４のいずれかに記載の方法。
【請求項８】
前記電子健康記録に基づいて、前記ロボットが前記ユーザに対して取るべき間隔を決定するステップをさらに含み、
前記所定のパスは、前記間隔を維持するように決定される、
請求項７に記載の方法。
【請求項９】
前記能力推定ステップでは、取得した電子健康記録に基づいてシミュレーションを行うことで、前記ユーザの身体的能力を推定する、
請求項１から８のいずれかに記載の方法。
【請求項１０】
前記能力推定ステップでは、前記ユーザに関連付いた状態を識別するために、分類器と、トレーニングデータセットを生成する、
請求項９に記載の方法。
【請求項１１】
請求項１から１０のいずれかに記載の方法の各ステップをコンピュータに実行させるプログラム。
【請求項１２】
ユーザの補助を行うロボットの制御を行う方法であって、
前記ユーザの身体的能力が記述されている電子健康記録（ＥＨＲ）が記録されているサーバに対してクエリを発行し、対応する電子健康記録を取得するステップと、
取得した電子健康記録に基づいて、前記ロボットの挙動を決定するプログラムのうち、初期プログラムである第一のプログラムを実行した際の結果をシミュレーションしたデータであるシミュレーションデータを生成するステップと、
前記第一のプログラムと、前記シミュレーションデータと、に基づいて、前記ユーザの身体的能力に応じた、第二のプログラムを生成するステップと、
を含む方法。
【請求項１３】
前記第二のプログラムを前記ロボットに適用するステップと、
前記第二のプログラムの実行結果に基づいて、フィードバックデータを生成するステップと、
をさらに含む、
請求項１２に記載の方法。
【請求項１４】
前記フィードバックデータに基づいて、前記第二のプログラムを修正するステップをさらに含む、
請求項１３に記載の方法。
【請求項１５】
前記シミュレーションデータ、前記第二のプログラム、前記フィードバックデータに基づいて、前記ユーザに対応する第三のプログラムを生成するステップをさらに含む、
請求項１３に記載の方法。
【請求項１６】
前記フィードバックデータを前記電子健康記録に追加するステップと、
前記電子健康記録に含まれるフィードバックデータに基づいて、新たなシミュレーションデータを生成するステップと、をさらに含む、
請求項１２から１５のいずれかに記載の方法。
【請求項１７】
ユーザの補助を行うロボットのユーザ認識をカスタマイズする方法であって、
前記ユーザの健康状態が記述されている電子健康記録（ＥＨＲ）が記録されているデータベースに対してクエリを発行し、対応する電子健康記録を取得するステップと、
前記電子健康記録に基づいて、前記ユーザの身体的能力を決定するステップと、
前記ユーザの状態または身体的な制限に基づいて、トレーニングデータとして用いる複数の画像を選択するステップと、
前記電子健康記録およびトレーニングデータに基づいて、前記ユーザに対応する視覚分類器を生成するステップと、
前記視覚分類器に基づいて、前記ロボットのユーザ認識をカスタマイズするステップと、
を含む方法。
【請求項１８】
前記複数の画像は、前記ユーザの一つ以上の身体的能力に応じて選択される、
請求項１７に記載の方法。
【請求項１９】
前記視覚分類器は、前記電子健康記録に対応するユーザにサービスを提供する際に前記ロボットによって使用される、
請求項１７または１８に記載の方法。
【請求項２０】
前記視覚分類器は、前記電子健康記録に記述されたユーザの状態または身体的制限に基づいて生成され、
前記ロボットは、ユーザの状態または身体的制限に適合するようにユーザ認識を行う
請求項１７から１９のいずれかに記載の方法。
【請求項２１】
ユーザの補助を行うロボットの制御を行う方法であって、
前記ユーザの健康状態が記述されている電子健康記録（ＥＨＲ）に基づいて、前記ユーザの身体的能力を決定する決定ステップと、
前記電子健康記録に基づいて、前記ロボットを制御するプログラムの修正内容を決定する修正ステップと、
前記ロボットの挙動が、前記ユーザの身体的能力に適合するように、前記修正内容に基づいて、前記ロボットのプログラムを修正する適用ステップと、
を含む、方法。
【請求項２２】
前記電子健康記録は、前記ユーザの視力が低いことを示すものであり、
前記修正ステップが決定する修正内容は、通常のプログラムと比べて、ロボットとユーザとの距離をより近くする、または、減速度をより大きくするものである、
請求項２１に記載の方法。
【請求項２３】
前記電子健康記録は、前記ユーザのいずれかの耳の聴力が低いことを示すものであり、
前記修正ステップが決定する修正内容は、聴力が低い耳と反対側の耳の側にロボットを配置するものである、
請求項２１または２２に記載の方法。
【請求項２４】
ロボットを用いて、ユーザ環境内にいるユーザの補助を行うシステムが実行する方法であって、
補助対象のユーザを決定するステップと、
前記補助対象のユーザの身体的能力が記述されている電子健康記録（ＥＨＲ）を取得するステップと、
前記ユーザ環境内にある障害物を検出する障害物検出ステップと、
前記ユーザ環境内にある障害物と、前記ユーザの身体的能力に基づいて、前記ロボットがタスクを実行するための命令を修正する命令修正ステップと、
前記修正した命令をロボットに送信する命令送信ステップと、
を含む、方法。
【請求項２５】
前記ロボットに対する命令は、前記ユーザに対して物体を手渡しするために、前記物体を所定の位置および向きに再配置させる命令である、
請求項２４に記載の方法。
【請求項２６】
前記ロボットに対する命令は、前記ユーザの元へ物体を運ぶ命令である、
請求項２４に記載の方法。
【請求項２７】
前記電子健康記録は、前記ユーザの現在および過去における医学的状態を表した情報である、
請求項２４から２６のいずれかに記載の方法。
【請求項２８】
前記ユーザ環境内におけるユーザの現在位置を取得する位置取得ステップをさらに含む、
請求項２４から２７のいずれかに記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザの健康記録に基づいてパーソナライズされた看護の提供に関する。
【背景技術】
【０００２】
（関連出願への相互参照）
本出願は、"PROVIDING PERSONALIZED PATIENT CARE BASED ON ELECTRONIC HEALTH RECORD ASSOCIATED WITH A USER"と題され、２０１５年２月２６日に出願された、米国特許出願第１４／６３２，１６５号の優先権を主張する。当該出願は、その全体が本明細書中に参照として組み込まれる。
【０００３】
身体的な制限を有するユーザは、日常的な作業を行ううえで支援を必要とすることが多い。例えば、車椅子の利用を必須とするユーザは、床から物を拾い上げたり、環境内において物体を受け取ることに苦労する場合がある。
一方で、このようなユーザを補助するためのロボットが存在する。例えば、ロボットは、床から物を拾い上げることが難しいユーザに対して、物体を受け渡せるように構成されることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、ロボットを用いてユーザの補助を行うシステムにおいて、安全性や快適性を向上させることを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するための、本発明の革新的な一形態に係る方法は、ユーザに関連付いた電子健康記録に基づいて、カスタマイズされた患者のケアを提供するための方法である。
具体的には、ロボットを用いて、ユーザ環境内にいるユーザの補助を行うシステムが実行する方法であって、前記ユーザ環境内におけるユーザの現在位置を取得する位置取得ステップと、前記ユーザ環境内にある障害物を検出する障害物検出ステップと、前記ユーザに関連付いた電子健康記録（ＥＨＲ）に基づいて、前記ユーザの身体的能力を推定する能力推定ステップと、前記ユーザ環境内にある障害物と、前記ユーザの身体的能力と、に基づいて、前記ロボットがタスクを実行するための命令を生成する命令生成ステップと、前記生成した命令をロボットに送信する命令送信ステップと、を含むことを特徴とする。
また、前記ロボットに対する命令は、前記ユーザに対して物体を手渡しするために、前記物体を所定の位置および向きに再配置させる命令であってもよい。
また、前記電子健康記録に基づいて、前記ユーザのロボットに近い側の手が不自由か否かを判定する判定ステップをさらに含み、前記命令生成ステップでは、前記判定結果に基づいて、前記物体を、不自由ではない手の側に移動させる命令を生成してもよい。
また、前記ユーザの状態を監視する監視ステップと、前記ユーザの状態の変化に応じて、前記ロボットに対する命令を変更する命令変更ステップと、前記ユーザの状態の変化を、前記電子健康記録に反映させる反映ステップと、をさらに含んでいてもよい。
また、前記電子健康記録は、前記ユーザの現在および過去における医学的状態を表した情報であってもよい。
【０００６】
一実施形態において、ユーザ環境の空間内における位置および向きは、三次元の地点を含む。三次元の地点とは、例えば、ユーザが物体を受け取るために体を動かした際に届く（あるいは、ほぼ届く）、ユーザ環境に含まれる空間内の直交座標系における点（Ｘ，Ｙ
，Ｚ）である。この三次元の地点は、手渡しイベントが発生しうる空間における「位置」を表す。
ユーザ環境とは、ユーザの周囲にあるエリアである。三次元の地点は、ユーザ環境に含まれる「面」であってもよい。例えば、物体をテーブルの表面や、他のユーザ環境内にある面に配置できるように、三次元の地点を設定してもよい。また、三次元の地点は、ユーザがロボットから物体を受け取る際に手が届く、空間内のある点であってもよい。このようにすることで、自然な手渡しを行うことができる。
【０００７】
ユーザ環境の空間における位置と向きは、例えば、ロール、ピッチ、ヨーのような三つの異なる次元によって定義された回転を含んでいてもよい。ロール、ピッチ、ヨーは、手渡し位置にいるとき、または、手渡し位置に移動する際のロボットのアクチュエータの回転様態を表す。ロール、ピッチ、ヨーは、アクチュエータが空間内のある点から次の点に移動する時間の経過とともに変化してもよい。
このように、手渡し位置が静的なのに対して、アクチュエータの回転は動的であってもよい。
一実装例において、ロボットは、環境内で発生する、手渡し位置の変化をもたらすイベントを検出してもよい。このような場合、手渡し位置も動的になりうる。
【０００８】
ユーザ環境の空間における位置と向きは、空間内におけるアームジョイントの姿勢や、アームジョイントの軌跡に関連する他の数値や次元を含んでいてもよい。
【０００９】
ユーザの一つ以上の身体的能力は、当該ユーザに関連付いたＥＨＲによって示される、ユーザの状態や制限である。一実施例において、ユーザの一つ以上の身体的能力は、ユーザの心理的特性を含んでいてもよい。例えば、ＥＨＲに、ユーザの心理状態を示す情報が含まれている場合、ロボットによってユーザが驚かないように、ロボットに対して、ロボットの動きの加減速を緩慢にする命令を生成するようにしてもよい。例えば、ロボットのアクチュエータの加速度を、３インチ／Ｓｅｃ2から、１インチ／Ｓｅｃ2に抑えてもよい。
【００１０】
また、これらの形態の一つ以上の他の実装として、方法、システム、装置、これらのためのコンピュータプログラム、その他の実装などが含まれる。
【００１１】
また、上記の態様は、以下の特徴うちの一つまたは複数を含んでいてもよい。
例えば、前記電子健康記録は、前記ユーザが動ける範囲、前記ユーザの手が届く範囲、前記ユーザの筋肉の状態、前記ユーザの快適度、前記ユーザの嗜好、前記ユーザが前記ロボットから物体を受け取るのにかかる時間、手渡し動作の後で前記ユーザが前記ロボットと接する時間、タスクを完了するのにかかる時間、の少なくともいずれかを含んでいてもよい。
また、前記ロボットに対して発行される命令は、前記ユーザを誘導するために前記ロボットを所定のパスに沿って移動させる命令であり、前記所定のパスは、前記ユーザの移動速度、前記ユーザに対する相対位置、誘導の複雑度、前記ロボットがユーザに対して提供する情報の量、の少なくともいずれかに基づいて決定してもよい。
また、前記電子健康記録に基づいて、前記ロボットが前記ユーザに対して取るべき間隔を決定するステップをさらに含み、前記所定のパスは、前記間隔を維持するように決定されてもよい。
また、前記能力推定ステップでは、取得した電子健康記録に基づいてシミュレーションを行うことで、前記ユーザの身体的能力を推定してもよい。
また、前記能力推定ステップでは、前記ユーザに関連付いた状態を識別するために、分類器と、トレーニングデータセットを生成してもよい。
【００１２】
本明細書によって開示される発明は、特にいくつかの面において有利である。
例えば、相互作用のための新しいロボットの動きを構築するために患者の医療履歴を役立てることができる。
加えて、ユーザに関連付いたＥＨＲから知識を取り入れることで、特定の患者に対して用いる分類器を高性能化することができる。
そして、ロボットのタスクをカスタマイズすることができ、利用における汎用性を高め、ユーザのフラストレーションを抑えることができる。例えば、ロボットは、環境内から物体を探索し、取得する時間を短くするためにＥＨＲを用いる。他の例では、ロボットは、ＥＨＲに基づいて、ユーザに対してナビゲーション支援を提供する。これにより、ユーザ環境内の障害物を回避することができる。
【００１３】
なお、本明細書にて述べるシステムの利点はあくまで例であり、他の多数の利点および利益を有し得る。
【発明の効果】
【００１４】
本発明によると、ロボットによって物体を手渡すシステムにおいて、安全性や快適性を向上させることができる。
【図面の簡単な説明】
【００１５】
【図１Ａ】ＥＨＲに基づいてパーソナライズされた患者ケアを提供するシステムの例を表したブロック図である。
【図１Ｂ】ＥＨＲに基づいてパーソナライズされた患者ケアを提供する処理フローの例を表したブロック図である。
【図１Ｃ】ユーザに固有な視覚分類器を学習させるためのトレーニングデータの例を表したブロック図である。
【図１Ｄ】ナビゲーションアシスタンスを提供する際にロボットの動作を修正する動き推定アプリケーションの例を表したブロック図である。
【図２】動き推定デバイスの例を表したブロック図である。
【図３】医療履歴を提供するためのユーザ入力を受け付けるユーザインタフェースを示した図である。
【図４】ＥＨＲに基づいてパーソナライズされた患者ケアを提供する方法の例を表したフローチャート図である。
【図５】ロボットによって実行される手渡し動作を決定する方法の例を表したフローチャート図である。
【図６】対象ユーザを発見して認識し、タスクを実行する方法の例を表したフローチャート図である。
【発明を実施するための形態】
【００１６】
以下の説明および添付の図面は本発明を説明するための例示であり、本発明を限定するものではない。図面においては、同様の要素には同一の参照符号を付してある。
なお、明細書の説明において、プログラムとは、ユーザに対するロボットの振る舞いを定義するためのデータであるものとする。また、プログラムや命令を修正ないしカスタマイズするとは、ロボットが行うべき動作の内容を、ユーザの状況に応じて本則から修正するといった意味で用いる。
【００１７】
（システム概要）
ロボットは、ユーザにサービスを提供する。例えば、ロボットは、病院、高齢者ケアセンター、ホスピス、患者宅や他の施設において、ユーザのためにタスクを実行する。
これらのサービスは、以下のうちの一つ以上を含む。
・ユーザのモニタリング（監視）
・ユーザのための物体の操作
・環境内におけるユーザに対する案内
【００１８】
ロボットが、身体的制限を有するユーザに対して動作する場合、問題が起こりうる。
身体的な制限とは、年齢、病気、一時的または恒久的な障害などに起因して発生する。その結果、ユーザの視力、聴力、脚力、歩行、握力や他の能力を制限する一つ以上の症状の影響をユーザが受けるため、ロボットのプログラマは、ユーザが「健常である」と推測することができない。
もしロボットが、これらのユーザの状態や制限を考慮せずにプログラムされていた場合、ロボットはユーザを傷つけてしまうおそれがある。
また、ロボットのプログラマは、全てのユーザが制約または制限を有していると仮定することもできない。ユーザの期待に背き、ロボットが最終的に放棄されうるためである。
【００１９】
既存のソリューションでは、ユーザの制約や制限を判定し、ロボットの振る舞いを適合させることで、ユーザを苛立たせることなく危険から保護するということを可能にするという問題を解決することができなかった。
【００２０】
例えば、いくつかのソリューションでは、ロボットが電子健康記録を利用している。しかし、これらのソリューションでは、ユーザを識別し、当該ユーザに関連付いた電子健康記録に基づいて自己のプログラムを修正するようなロボットの能力について触れられていない。
代わりに、このようなソリューションでは、ロボットが、患者に会う医師や他の管理者の代理として行動するロボットについて触れている。このようなロボットは、医師と患者とを対話可能にするような技術を備えている。
従って、このようなソリューションは、電子健康記録について触れられているかもしれないが、ユーザを傷つけないようにするために、「ユーザを識別し、当該ユーザに関連付いた電子健康記録に基づいて自己のプログラムを修正する」という問題を解決するには不十分である。
これと比較して、本明細書の開示は、ユーザを識別し、当該ユーザに関連付いた電子健康記録に基づいて自己のプログラムを修正することで、ロボットのパフォーマンスを有益に向上させる「動き推定アプリケーション」を含んでいる。
【００２１】
いくつかの既存のソリューションは、ユーザの電子健康記録にアクセスし、当該電子健康記録に基づいて、ユーザに対して実行するアクティビティを決定することに触れられている。
しかし、これらのソリューションは、ロボットがユーザに害をなしたり、脅かしたりしないように、電子健康記録に示されたユーザの制限に基づいて、これらのアクティビティを実行する方法をカスタマイズしていない。
従って、これらのソリューションでは、ロボットが、患者を傷つけたり脅かしたりしないように振る舞うため、自己のプログラムを動的に修正したいという問題を解決することができない。
これと比較して、本明細書に記載された動き推定アプリケーションでは、患者を傷つけたり脅かしたりしないように振る舞うため、自己のプログラムを動的に修正可能にすることにより、ロボットのパフォーマンスを有益に向上させることができる。
【００２２】
いくつかのソリューションは、視覚分類器（すなわち、取得した画像に基づいてユーザの状態を判定する分類器）を学習させることを含んでいる。
しかし、このような分類器の学習は、ノイズが多いと考えられる。なぜなら、本プロセスは、容認できないほどの多くの誤りを本質的に含んでいるためである。
新しい分類器を生成する場合、ノイズを克服するための多くの画像（例えば、千〜百万
枚の画像）が必要となる。結果として、視覚分類器の学習は、長時間を要し、このような理由により好ましくない。
これとは対照的に、本明細書に記載の動き推定アプリケーションは、視覚分類器のための学習セットの品質を向上させる機能を有している。そして、視覚分類器の学習速度と精度を向上させることができる。
さらに、動き推定アプリケーションは、ユーザの電子健康記録に部分的に基づいて、各ユーザに対応するカスタマイズされた分類器を生成する機能を有している。
カスタマイズされた分類器は、一人のユーザに対応付けられてもよく、ユーザの電子健康記録によって示された当該ユーザの固有の特性に基づいて、ロボットが当該ユーザのためにプログラムをカスタマイズするように構成されてもよい。
【００２３】
新しいプログラムの学習は、成功と失敗の双方を含む多くの例を必要とする。
いくつかのソリューションでは、新しいアルゴリズムを学習するために必要な例を多数取得し、シミュレーションの繰り返し適用に基づいて、ロボットのための新たな制御動作を決定している。
しかし、これらのソリューションは、ユーザの電子健康記録に基づいて、特定のユーザのためにシミュレーションをカスタマイズすることはしていない。
これと比較して、動き推定アプリケーションは、特定のユーザのニーズ（ユーザのために実行される特定のタスク、および、電子健康記録に記されたユーザの症状および制限に基づいて、それらのタスクをユーザに対して実行することができる方法を含む）に合わせたカスタマイズ可能なシミュレーションを行う。
【００２４】
動き推定アプリケーションは、ロボットまたはコンピュータの性能を向上させるための、他の多くの利益を提供する。例えば、動き推定アプリケーションは、ロボットの制御および認識プログラムを、一つ以上の障害を持った一人以上のユーザ向けにカスタマイズ（ロボットの動きまたは知覚の観点からロボットの振る舞いを修正）する。
動き推定アプリケーションは、ユーザの電子健康記録にアクセスし、一つ以上の肯定的および否定的な例を生成し、それに基づいて、新しいロボットのプログラムを学習させてもよいし、ユーザのためにカスタマイズされたプログラムを提供するように既存の動作を適合させてもよい（例えば図１Ｂの符号１５６）。
【００２５】
動き推定アプリケーションは、図１Ａを参照して以下で説明するように、有線または無線ネットワーク経由で電子健康記録にアクセスする。例えば、電子健康記録は、図１Ａを参照して以下で説明するように、ヘルスサーバ１１０のようなクラウドサーバに記録され、アクセスされてもよい。
【００２６】
いくつかの実装例において、動き推定アプリケーションは、シミュレーションを行うために電子健康記録を使用してもよい。このように、シミュレーションは、動き推定アプリケーションによって取得された電子健康記録によって示されたような、特定のユーザの障害または能力に応じてカスタマイズされてもよい。
シミュレーションは、例えば、電子健康記録によって表されたユーザの状態や制限に基づいて、ユーザが何をできるか、または感知できるかを表すデータを含んでいてもよい。
シミュレーションは、図２を参照して以下で説明するメモリ２２７のような、動き推定アプリケーションに関連付いた実メモリに保存されてもよい。
【００２７】
動き推定アプリケーションは、プロセッサおよび実記憶媒体を含んでいてもよい。
例えば、動き推定アプリケーションは、ロボット（あるいはコンピュータ）の構成要素である。動き推定アプリケーションによって行われるシミュレーションは、ロボットの性能を有益に向上させる。例えば、動き推定アプリケーションは、一つ以上のユーザに特化された視覚分類器を有している。当該視覚分類器は、特定のユーザに関連付いたものであ
る。
動き推定アプリケーションは、視覚分類器が特定のユーザの特性に適合するように、視覚分類器を学習させるための、例えば、１００から１００万以上の肯定的または否定的な例を生成する。いくつかの実施例における、視覚分類器を学習させるための肯定的または否定的な例（例えばトレーニングデータ１７０）は、図１Ｃを参照しながらのちほど説明する。
【００２８】
動き推定アプリケーションによって行われるシミュレーションは、以下の技術のうちの一つ以上を用いて、異なる制御ストラテジーの効果をシミュレーションすることで、ロボットのパフォーマンスを有益に向上させることができる。
・機械学習
・システム識別
・適応制御
・シミュレーションアダプティブ法
・ロボットのコードまたはルーチンに対する入力パラメータのどのような変更が成功率に影響を与えるかについてのシミュレーション
【００２９】
動き推定アプリケーションによって行われるシミュレーションは、ロボットによる物体受け渡しまたは人物検出タスクのサーチ空間を絞り込むことで、ロボットのパフォーマンスを有益に向上させることができる。
例えば、ユーザの近くにある環境から物体（ユーザオブジェクト）を取り出すタスクをロボットが行うと仮定する。動き推定アプリケーションによって行われるシミュレーションが無い場合、ロボットは、環境センサ（例えば外部カメラ等）を用いて当該環境内をサーチしたり、物体取り出しのためのアクチュエータを用いて環境内を探索したりする必要がある。しかし、動き推定アプリケーションによって提供される一つ以上のシミュレーションは、当該環境および環境内に含まれる物体を表すデータを含む。したがって、当該シミュレーションを用いることで、ロボットは、物体を識別、物体へのナビゲート、物体を無事に取り出すために分析および検索するべき環境内の空間を絞り込むことができる。
【００３０】
上述した利点の結果、動き推定アプリケーションは、ロボットプログラム（および、当該プログラムを実行することによる、ロボットの動きやロボットの認識といったようなロボットの動作）のパフォーマンスを有益に向上させることができる。
動き推定アプリケーションによって提供される一つ以上のシミュレーションは、ロボットによってサービスを提供される特定のユーザに対応する電子健康記録に基づいて、一つ以上のロボットプログラムをカスタマイズされるためにも使用される。
このように、動き推定アプリケーションは、障害や能力制限を持つ特定のユーザに対応するロボットプログラムを有益にカスタマイズすることができる。
ロボットは、ユーザに対応する、異なる視覚分類器や電子健康記録を利用し、異なるユーザに対して当該プロセスを繰り返してもよい。これにより、個々のユーザと、類似または異なる障害や能力制限を有する他のユーザに対して、ロボットをより便利にすることができる。
【００３１】
図１Ａは、ユーザに関連付いた電子健康記録に基づいてパーソナライズされた患者ケアを提供するシステム１００の、一実施形態におけるブロック図を例示したものである。
システム１００は、信号線１０４を介してネットワーク１０５に接続されたコンピュータ１０７と、信号線１１８を介してネットワーク１０５に接続されたロボット１９０と、信号線１１２を介してネットワーク１０５に接続されたヘルスサーバ１１０と、信号線１１９を介してネットワーク１０５に、信号線１２０を介してロボット１９０に接続されたユーザ１０１と、を含む。
【００３２】
なお、図１Ａには一人のユーザ１０１、一つのコンピュータ１０７、一つのヘルスサーバ１１０および一つのロボット１９０が示されているが、本発明を適用可能なシステムのアーキテクチャは、一人以上のユーザ１０１、一つ以上のコンピュータ１０７、一つ以上のヘルスサーバ１１０、および一つ以上のロボット１９０を含むことができる。
さらに、図１Ａには、システム１００の構成要素に接続された一つのネットワーク１０５が示されているが、実際には、様々なタイプの一つ以上のネットワーク１０５が、これらの構成要素に接続されていてもよい。
【００３３】
ネットワーク１０５は、有線ネットワークであっても無線ネットワークであってもよく、また、スター型、トークンリング型や当業者に知られているその他の構成を取ることができる。さらに、ネットワーク１０５は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）（例えばインターネット）、または、複数の装置が通信に用いる相互接続されたその他の任意のデータパスであってもよい。さらに別の形態では、ネットワーク１０５はピアツーピアネットワークであってもよい。ネットワーク１０５は、複数の異なる通信プロトコルでデータ送信するための通信ネットワークと接続されたり、このような通信ネットワークを含んだりしてもよい。
ある実施形態では、ネットワーク１０５は、Ｂｌｕｅｔｏｏｔｈ（登録商標）通信ネットワークや、携帯電話通信ネットワークを含み、ＳＭＳ（ショートメッセージサービス）、ＭＭＳ（マルチメディアメッセージサービス）、ＨＴＴＰ（ハイパーテキスト転送プロトコル）、直接データ接続、ＷＡＰ、電子メールなどのデータを送受信する。
ある実施形態では、ネットワーク１０５は、ロボット１９０に対してＧＰＳナビゲーションを提供するためのＧＰＳ衛星を含んでいてもよい。
また、ネットワーク１０５は、例えば、３Ｇ、４Ｇ、ＬＴＥ、ボイスオーバーＬＴＥ（ＶｏＬＴＥ）といったモバイルデータネットワーク、他のモバイルデータネットワーク、または、モバイルデータネットワークの組合せであってもよい。
一実施形態において、ネットワーク１０５は、異なるネットワークの組合せであってもよい。
【００３４】
ヘルスサーバ１１０は、プロセッサおよびメモリを含み、ネットワークへアクセス可能なハードウェアサーバである。ヘルスサーバ１１０は、電子健康記録（ＥＨＲ）データ１１１を生成または記憶する。例えば、ヘルスサーバ１１０は、ユーザにＥＨＲデータを提供する集中型システムの一部であってもよく、ヘルスサーバ１１０は、単一のヘルスケア機関（例えば病院や診療所等）に対応したものであってもよい。
ヘルスサーバ１１０は、コンピュータ１０７やロボット１９０からリクエストを受信し、ユーザ１０１に対応するＥＨＲを送信する。
ヘルスサーバ１１０は、米国ＨＩＰＡＡ（医療保険の相互運用性と説明責任に関する法令、Health Insurance Portability and Accountability Act of 1996）に従って、暗号
化されたＥＨＲを送信するために、ＨＬ７メッセージングを利用してもよい。
【００３５】
一実施形態において、動き推定アプリケーション１９９ａは、ロボット１９０によって実行可能である。ロボット１９０は、メモリ、プロサッサ、およびロボット１９０の駆動を補助するハードウェアを含む。
ロボット１９０は、ユーザ１０１に対してタスクを実行する。例えば、ロボットは、物体を掴み上げ、空間内の特定の位置および向きに移動させることで、物体を元の場所から、ユーザ空間のある位置および向きに物体を移動させる「手渡し動作」を実行する。
他の例において、ロボット１９０は、ユーザを経路に沿ってガイドする。さらに他の例において、ロボットは、ユーザ１０１のために物体を運搬する。
ユーザ１０１は、ロボット１９０の動き推定アプリケーション１９９ａに対して、音声コマンドによってインタラクションしてもよい。また、ロボット１９０の動き推定アプリケーション１９９ａにデータを送信する機能を有する、コンピュータ１０７に搭載された
動き推定アプリケーション１９９ｂに対してインタラクションすることで、ロボット１９０の動き推定アプリケーション１９９ａに対してインタラクションしてもよい。
【００３６】
ある実施例において、空間内の地点および向きは、ユーザ環境に含まれる空間内の直交座標系（Ｘ，Ｙ，Ｚ）における地点であって、ユーザが物体を受け取るために体を動かした際に届く（あるいは、ほぼ届く）地点を含む。
空間内の地点および向きはまた、回転を表す回転データを含んでいてもよい。例えば、空間内の地点および向きは、ロボット１９０や、ロボット１９０が有するアクチュエータのロール・ピッチ・ヨーの角度を表す回転データを含んでいてもよい。
【００３７】
一実施例において、三次元の地点および回転データ（ロール・ピッチ・ヨー）は、ロボットに対する一つ以上のシミュレーションを表すシミュレーションデータに基づいて決定される。例えば、シミュレーションデータは、「ロボットから物体を受け取るためにユーザがどのように体を動かすか」を表したデータを含む、リーチシミュレーションを表すデータである。
【００３８】
ユーザ環境とは、ユーザの周囲にあるエリアである。
三次元の地点は、ユーザ環境に含まれる「面」であってもよい。例えば、三次元の地点は、テーブルの表面や、ユーザ環境内の他の面など、物体を配置できるような地点であってもよい。三次元の地点は、物体を空間内の空の地点（Empty point）（ユーザがロボッ
トから物体を受け取るために自然な動きによって手が届く地点）に移動するための地点であってもよい。
【００３９】
いくつかの実施例において、シミュレーションデータは、他のタイプのシミュレーションを表すものであってもよい。例えば、シミュレーションデータは、ユーザ環境内において案内されるユーザがどのように歩くか（走るか）を表すデータであってもよい。
【００４０】
いくつかの実施例において、動き推定アプリケーション１９９ｂは、コンピュータ１０７上で実行される。
コンピュータ１０７は、メモリとプロセッサを含むコンピュータであり、例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、携帯電話、スマートフォン、個人情報端末（ＰＤＡ）、モバイル電子メール装置、スマートウォッチを含むウェアラブル装置、携帯ゲーム装置、携帯音楽プレーヤ、ネットワーク１０５へのアクセスが可能なその他の電子機器などである。
コンピュータ１０７は、サーバの一部であって、ブラウザを介してユーザ１０１が利用できるものであってもよい。
【００４１】
動き推定アプリケーション１９９ａおよび１９９ｂは個別の名称であり、全体的には「動き推定アプリケーション１９９」と称する。
いくつかの実施例において、動き推定アプリケーション１９９のモジュールは、一つのサーバまたは装置に格納されてもよい。いくつかの他の実施例において、動き推定アプリケーション１９９のモジュールは、複数の装置やサーバに分散して格納されてもよい。
例えば、ロボット１９０が有する動き推定アプリケーション１９９ａは、ユーザ１０１に対する現在位置を判定し、位置をコンピュータ１０７上の動き推定アプリケーション１９９ｂに送信し、およびコンピュータ１０７上の動き推定アプリケーション１９９ｂから命令を受信してタスクを実行してもよい。
さらに、本明細書で説明される実施形態における種々のコンポーネント、モジュール、およびサーバの分離は、全ての実施形態においてそのような分離を必要とすると理解するべきではない。一実施形態では、説明されるコンポーネント、モジュール、デバイス、またはサーバは概して、単一のコンポーネント、モジュール、デバイス、またはサーバに一
体に統合されてもよい。
【００４２】
動き推定アプリケーション１９９は、ユーザ１０１の現在位置を判定するためのコードおよびルーチンを含む。例えば、ロボット１９０は、ユーザ１０１の画像を取り込んで、ロボット１９０に対するユーザ１０１の位置を判定するカメラを含む。また、動き推定アプリケーション１９９は、環境内の障害物を検出する。例えば、動き推定アプリケーション１９９は、床の上にある物体の位置および出入口の幅を検出する。
動き推定アプリケーション１９９は、ユーザ１０１に関連付いたＥＨＲに基づいて、ユーザ１０１の一つ以上の身体的能力を推定する。例えば、ＥＨＲによって、ユーザ１０１が、目が不自由であることを識別してもよい。ＥＨＲは、ヘルスサーバ１１０から受信されてもよく、または動き推定アプリケーション１９９によって生成されてもよい。
動き推定アプリケーション１９９は、環境内の障害物およびユーザ１０１の一つ以上の身体的能力に基づいて、タスクを実行するためのロボット１９０に対する命令を生成する。例えば、目が不自由なユーザ１０１は、ユーザに床上の障害物を警告し、および出入口を通ってユーザを案内することを支援するガイドとして動作するロボット１９０によって支援される。動き推定アプリケーション１９９は、タスクを実行するようにロボット１９０に指示する。
【００４３】
一実施形態において、動き推定アプリケーション１９９は、ＦＰＧＡやＡＳＩＣを含むハードウェアによって実装される。また、一実施形態において、動き推定アプリケーション１９９は、ハードウェアとソフトウェアの組み合わせによって実装される。動き推定アプリケーション１９９は、装置およびサーバの組み合わせに格納されていてもよいし、装置またはサーバのいずれかに格納されていてもよい。
【００４４】
図１Ｂは、ユーザ１０１に関連付いた電子健康記録に基づいて、パーソナライズされた患者ケアを提供するための例示的な処理フロー１４０を示すブロック図である。処理フロー１４０は、図１Ａを参照して説明した、システム１００の一つ以上の要素によって実装されてもよい。例えば、処理フロー１４０は、動き推定アプリケーション１９９およびヘルスサーバ１１０によって実装されてもよい。要素１４８，１５０，１５３，１５５，１５７および１５８は、動き推定アプリケーション１９９によって実行されてもよい。また、要素１５１および１５２の問い合わせ処理は、ヘルスサーバ１１０によって部分的に実行されてもよい。図１Ｂに示した実施形態では、電子健康記録データ１１１が、ヘルスサーバ１１０によってホスティングされるデータベースに記憶されてもよい。また、動き推定アプリケーション１９９は、要素１４８，１５０，１５３，１５５，１５７および１５８のうちの一つ以上を参照しながら以下で説明する機能を提供するように構成されたコードおよびルーチンを含んでいてもよい。
【００４５】
処理フロー１４０は、４つのステージを含む。
まず、処理フローが開始される（ステップ１４８）。このとき、タスクおよびターゲット識別子が、動き推定アプリケーション１９９に提供されてもよい。当該タスクは、ロボット１９０またはコンピュータ１０７によって実行されるタスクを表すデータを含んでいてもよい。また、ターゲット識別子は、タスクと関連付いた、環境内のユーザ１０１または位置を識別するデータを含んでいてもよい。
次に、動き推定アプリケーション１９９が、タスクおよびターゲット識別子に基づいて、ＥＨＲクエリ１５１を構築する（ステップ１５０）。動き推定アプリケーション１９９は、ユーザ１０１と関連付いた電子健康記録データ１１１を取り出すために、ＥＨＲクエリ１５１を使用する。
次に、動き推定アプリケーション１９９は、取得した電子健康記録データ１１１に基づいて、シミュレータ１５４を生成する（ステップ１５３）。
次に、動き推定アプリケーション１９９は、シミュレータ１５４に基づいて、ロボット
１９０またはコンピュータ１０７の振る舞いを適合させる（ステップ１５５）。
このようにして、動き推定アプリケーション１９９は、ロボットまたはコンピュータ１０７に対するカスタマイズされたプログラム１５６を得ることができる。カスタマイズされたプログラム１５６は、ユーザ１０１に対する電子健康記録データ１１１に基づいてカスタマイズされたものである。
そして、動き推定アプリケーション１９９は、カスタマイズされたプログラム１５６を実行する（ステップ１５７）。
なお、オプションとして、動き推定アプリケーション１９９は、カスタマイズされたプログラム１５６の実行結果に基づいて、パフォーマンスフィードバック１５８を行ってもよい。例えば、パフォーマンスフィードバック１５８は、サービスをユーザ１０１に提供した際の、カスタマイズされたプログラムの性能、成功、または失敗を表すデータを含む。
また、動き推定アプリケーション１９９は、カスタマイズされたプログラム１５６の性能をさらに改善するために、パフォーマンスフィードバックを使用してもよい。例えば、パフォーマンスフィードバック１５８を表すパフォーマンスフィードバックデータを、ユーザ１０１に関連付いた電子健康記録データ１１１に追加してもよい。このようにして、動き推定アプリケーション１９９は、ロボット１９０またはコンピュータ１０７の性能を改善させることができる。
【００４６】
図１Ｃは、ユーザに固有な視覚分類器をトレーニングするための例示的なトレーニングデータ１７０を示すブロック図である。図２を参照して以下で説明される分類器データ２９２は、とりわけ、一つ以上のユーザに固有な視覚分類器を表すデータを含んでいてもよい。トレーニングデータ１７０は、図２を参照して以下で説明されるメモリ２２７などの実メモリに記憶されてもよい。例えば、トレーニングデータ１７０は、分類器データ２９２の要素に含まれていてもよい。
【００４７】
動き推定アプリケーション１９９は、トレーニングデータ１７０を使用して、一つ以上のユーザに固有な視覚分類器をトレーニングするためのコードおよびルーチンを含む。動き推定アプリケーション１９９は、トレーニングデータ１７０を使用して、ユーザに固有な視覚分類器を新たに構築し、または、既存のユーザに固有な視覚分類器を更新する。ユーザに固有な視覚分類器は、ロボット１９０が個々のユーザ１０１に接触し、または個々のユーザ１０１に対して実行されることになる一つ以上の現在または後のタスクに応答する前に、オフラインで構築または更新されてもよい。
【００４８】
一実施形態では、トレーニングデータ１７０は、ロボット１９０の、ユーザ、物体、タスクに対する認識をカスタマイズするように構成されてもよい。
【００４９】
トレーニングデータ１７０は、数百から数百万の画像を含んでいてもよい。例えば、図１Ｃに示される例示的なトレーニングデータ１７０は、第１の画像１６１、第２の画像１６３、第３の画像１６５、第４の画像１６７、第５の画像１６９、および第６の画像１７１を含む。図１Ｃの例では、限られた画像が示されているが、不図示のさらなる画像を含んでいてもよい。したがって、図１Ｃに示される例は、例示的かつ非限定的な意図がある。
【００５０】
トレーニングデータ１７０に含まれる画像は、２つの異なる組にグループ化されている。第１の組１７１は、ユーザ１０１が実行する通常のデータイム活動に対応する画像である。例えば、画像は、走っている状態（１６１）、かがんでいる状態（１６３）、立っている状態（１６５）、または座っている状態（１６７）を表す。
第２の組１７３は、足に負荷をかけられないユーザの画像である。例えば、画像は、寝ている状態（１６９および１７１）、座っている状態（１６７）を表す。
ここで、座っている状態（１６７）は、いずれのクラスにも関連付けることができるため、画像１６７は、組１７１にも組１７３にも含まれることに留意すべきである。言い換えると、「座っている」という活動は、通常のデータイム活動にもなり得るし、足に負荷をかけられないユーザに関連付いた活動にもなり得る。
【００５１】
動き推定アプリケーション１９９は、画像の組１７１および１７３の一つ以上を使用して、ユーザに固有な視覚分類器をトレーニングする。また、動き推定アプリケーション１９９は、ユーザ１０１に関連付いたＥＨＲデータ１１１に基づいて、ユーザ１０１に固有な視覚分類器をトレーニングするのに使用される画像を選択してもよい。
例えば、ＥＨＲデータ１１１が、患者が足を骨折していること、または下半身が麻痺していることを示している場合、動き推定アプリケーション１９９は、第２の組１７３から画像を選択する。これらの画像が、当該ユーザ１０１の障害および能力と関連付いている可能性がより高いためである。
【００５２】
組１７１および１７３は、例示的なものであり非限定的なものである。実際には、トレーニングデータ１７０は、ユーザ１０１またはロボット１９０に対する活動のいずれかのクラスを表す画像の一つ以上の組を含んでいてもよい。また、クラスは、ＥＨＲデータ１１１に含まれる個々の症状によってカスタマイズされていてもよい。例えば、トレーニングデータ１７０は、パーキンソン病、アルツハイマー病、心臓病、様々な癌、脚の損傷、腕の損傷、手の損傷、足の損傷、または、個々のＥＨＲデータ１１１においてユーザ１０１に対して説明できる任意の他の症状もしくは障害、と関連付いた画像のクラスを含んでいてもよい。
【００５３】
一実施形態では、動き推定アプリケーション１９９は、トレーニングデータ１７０に含まれる画像の数を増やすことによって性能を改善することができる。動き推定アプリケーション１９９の性能はまた、トレーニングデータに含まれる画像が、ロボット１９０が実行する実際のタスクに沿ったものである場合に、さらに改善される。一実施形態では、動き推定アプリケーション１９９は、さらなる画像、またはロボット１９０によって実行されるタスクに固有な画像を含むために、トレーニングデータ１７０をオンザフライで作成、または更新できるように構成してもよい。
【００５４】
一実施形態では、ロボット１９０の認識は、トレーニングデータ１７０を使用してトレーニングされた、ユーザに固有な視覚分類器に基づいて修正される。例えば、ロボット１９０は、環境を認識するための一つ以上のセンサを含む。ロボット１９０は、環境内のユーザ１０１を識別してもよい。また、ロボット１９０は、識別されたユーザ１０１に関連付いた、ユーザに固有な視覚分類器を取得してもよい。また、ロボット１９０は、ユーザ１０１に関連付いた、ユーザに固有な視覚分類器に基づいて、ユーザ１０１のアクティブまたは非アクティブ状態を認識または解釈してもよい。
【００５５】
図１Ｄは、ユーザ１０１に対してナビゲーション支援を提供する際に、ロボット１９０の振る舞いを修正する、動き推定アプリケーション１９９の例１８０を示すブロック図である。図１Ｄは、ユーザ１０１がロボット１９０（不図示）によって廊下を案内されている、３つの例示的なシナリオ１８１、１８３、１８５を表す。矢印は、ロボット１９０が廊下の該当する位置にいた場合における、動くべき方向を示す。また、矢印が長いほど、ロボット１９０の移動速度が速いことを表す。
【００５６】
通常の移動（符号１８１）の場合、ロボット１９０は、ロボット１９０がユーザ１０１から見えるように、ユーザ１０１の前にとどまり、また、ユーザ１０１のすぐ前方に位置する。例えば、ロボットは、歩いている間、ユーザ１０１から１．５〜３メートルの距離を維持してもよい。
【００５７】
シナリオ１８３では、ＥＨＲデータ１１１が、ユーザ１０１の視力が低いことを示していると動き推定アプリケーション１９９が判定している。したがって、動き推定アプリケーション１９９は、シナリオ１８１のときよりも、ロボット１９０がよりユーザ１０１の近くに位置するように、ロボット１９０に対するプログラムを、ユーザ１０１に対してカスタマイズすべきであると判定する。
動き推定アプリケーション１９９は、ロボット１９０がよりユーザ１０１の近くに位置するように（それにより、ロボット１９０がユーザ１０１から見えるようになるため）、ロボット１９０のプログラムをカスタマイズする。例えば、ロボット１９０は、ユーザ１０１から０．３〜１．５メートルの距離を維持してもよい。なお、ロボット１９０は、ユーザ１０１のより近くに位置するため、動き推定アプリケーション１９９はまた、ロボット１９０がシナリオ１８１よりも遅く、または減速して移動するように、ロボット１９０に対するプログラムをカスタマイズしてもよい。例えば、シナリオ１８１では毎秒１．２メートルなのに対し、シナリオ１８３では、ユーザ１０１の一つ以上の身体的能力に応じて、毎秒１．０メートル以下としてもよい。
同様に、ロボット１９０は、シナリオ１８３において、シナリオ１８１と比較して１０〜２０％減速させてもよい。シナリオ１８３における短い矢印は、ロボット１９０がシナリオ１８１および１８５よりも低速で移動することを示す。
【００５８】
シナリオ１８５では、ＥＨＲデータ１１１が、ユーザ１０１の左耳が不自由であることを示していると動き推定アプリケーション１９９が判定している。したがって、動き推定アプリケーション１９９は、ロボット１９０がシナリオ１８３のとき（毎秒１．０メートル）よりも早く動くように（毎秒１．２メートル）、ユーザ１０１に対してカスタマイズする。
例えば、ユーザ１０１は、部分的に耳が不自由であっても、ロボット１９０を見ることができ、また、ロボット１９０をより速く移動させることによって、ユーザを害するリスクを減らせる。動き推定アプリケーション１９９はまた、ユーザ１０１がロボット１９０の音を聞くのに苦労するため、ロボット１９０がユーザ１０１のより近くにとどまるように、ロボット１９０のプログラムをカスタマイズしてもよい。例えば、ロボット１９０は、ユーザ１０１から０．３〜１．５メートルの距離を維持してもよい。また、動き推定アプリケーション１９９はさらに、左耳が不自由であることを示すＥＨＲデータ１１１に基づいて、「ユーザ１０１が主に右耳を使う可能性が高いため、ロボット１９０が、ユーザ１０１の右側かつ右耳の範囲にとどまる」ように、ロボット１９０に対するプログラムをカスタマイズしてもよい。
【００５９】
これらのシナリオ１８１，１８３，１８５の各々について、動き推定アプリケーション１９９は、ロボット１９０がユーザ１０１に対して移動する際の機能的な距離または位置を推定するためのシミュレーションを構築してもよい。このようなシミュレーションを構築することを、「視点取得（perspective taking）」と称する。視点取得の品質は、ＥＨＲデータ１１１に含まれるデータに基づいて向上する。
【００６０】
（動き推定アプリケーションの例）
図２は、動き推定デバイス２００の例を示すブロック図である。一実施形態では、動き推定デバイス２００は、図２を参照して以下に説明する機能の一部または全てを提供するように構成された専用のコンピュータを含んでいてもよい。
【００６１】
動き推定デバイス２００は、図１Ａに示されるシステム１００におけるロボット１９０またはコンピュータ１０７であってもよく、これらを含んでもよく、もしくはこれらに含まれてもよい。動き推定デバイス２００は、いくつかの例に従って、動き推定アプリケーション１９９、プロセッサ２２５、メモリ２２７、通信ユニット２４５、センサ２４７、
カメラ２４９、モータ２５１、モバイルハードウェア２５３、およびスピーカ２６７を含んでいてもよい。また、動き推定アプリケーション１９９は、通信モジュール２０２、位置モジュール２０４、検出モジュール２０６、推定モジュール２０８、状態モジュール２１０、ユーザモジュール２１２、およびユーザインタフェースモジュール２１４を含む。動き推定デバイス２００のコンポーネントは、バス２２０によって通信可能に結合されている。
【００６２】
プロセッサ２２５は、算術論理ユニット、マイクロプロセッサ、汎用コントローラ、または、計算を実行して表示装置に表示信号を提供する他のプロセッサアレイ等を含む。
プロセッサ２２５は、データ信号を処理し、ＣＩＳＣ（Complex Instruction Set Computer）、ＲＩＳＣ（Reduced Instruction Set Computer）、ＧＰＵ（グラフィック処理ユニット）、命令セットの組合せとして実装されたアーキテクチャなど様々なアーキテクチャを含みうる。なお、図２には一つのプロセッサ２２５だけが示されているが、複数のプロセッサ２２５が含まれていてもよい。上記以外のプロセッサ、オペレーティングシステム、センサ、表示装置、あるいは物理的構成も採用可能である。
一実施形態において、プロセッサ２２５は、図４および図５に示した方法４００および５００の一つ以上のブロックを実行するようにプログラムされる。プロセッサ２２５は、バス２２０に接続され、信号線２２６を介して他のコンポーネントと通信する。
【００６３】
メモリ２２７は、プロセッサ２２５が実行可能な命令やデータを格納する。格納される命令やデータは、本明細書に示す技術を実行するためのコードを含んでいてもよい。
メモリ２２７は、ＤＲＡＭ、ＳＲＡＭ、フラッシュメモリやその他の既存のメモリ装置であってもよい。一実施形態において、メモリ２２７は、ハードディスクドライブ、フロッピー（登録商標）ディスクドライブ、ＣＤ−ＲＯＭ装置、ＤＶＤ−ＲＯＭ装置、ＤＶＤ−ＲＡＭ装置、ＤＶＤ−ＲＷ装置、フラッシュメモリ装置や情報記憶の分野において既知のその他の大容量記憶装置などの、非一時的（non-volatile）メモリや永久記憶装置を含んでいてもよい。メモリ２２７は、バス２２０に接続され、信号線２２８を介して他のコンポーネントと通信する。
【００６４】
図２に示すように、メモリ２２７は、分類器データ２９２およびユーザデータ２９７を記憶する。メモリ２２７はまた、本明細書で説明される機能を提供するための他のデータを記憶してもよい。
【００６５】
分類器データ２９２は、異なるタイプの病状に対応するロボット１９０に対する命令を含んだデータである。例えば、ユーザ１０１と関連付いた病状が、車椅子なしでは歩くことが不可能なものである場合、ロボット１９０に対する命令は、車椅子を使用することを妨げる障害物を識別するものとなる。また、「車椅子に座っているユーザ１０１の手の高さに近い３次元空間の地点に物体を運ぶ手渡し動作」を用いることによって、物体をユーザ１０１に提供する命令を含んでいてもよい。
一実施形態では、動き推定アプリケーション１９９は、分類器を生成するためのシミュレーションにおいてユーザ１０１およびロボット１９０を観察する。
【００６６】
ユーザデータ２９７は、ユーザ１０１に関する情報を含んだデータである。当該情報は、ユーザ識別子（ＩＤ）、ユーザ１０１のユーザ名およびパスワード、ヘルスサーバ１１０から取得または動き推定アプリケーション１９９によって生成される、ユーザ１０１のＥＨＲを含む。ＥＨＲは、ユーザ１０１に関連付いた病状を含む。また、動き推定アプリケーション１９９は、ユーザ１０１に関連付いた病状を、分類器データ２９２の一部である分類器と比較して、ロボット１９０に対する命令を識別して、タスクを実行してもよい。
【００６７】
通信ユニット２４５は、システム１００に含まれるサーバ１０７、ロボット１９０、ヘルスサーバ１１０の少なくとも一つに対してデータを送受信する手段である。通信ユニット２４５は、信号線２３０を通してバス２２０に接続される。ある実施形態では、第一の通信ユニット２４５は、ネットワーク１０５や他の通信チャネルへの直接的な物理的接続のためのポートを含む。例えば、通信ユニット２４５は、システム１００の他の構成要素と有線通信を行うためのＵＳＢ、ＳＤ、ＣＡＴ−５または類似のポートを含む。
一実施形態において、通信ユニット２４５は、ＩＥＥＥ８０２．１１、ＩＥＥＥ８０２．１６、ＢｌｕｅＴｏｏｔｈ（登録商標）、または他の適切な無線通信方式を含む、一つまたは複数の無線通信方式を用いて、システム１００の他の構成要素や他の通信チャネルとデータを交換するための無線送受信部を含んでいてもよい。
【００６８】
一実施形態において、通信ユニット２４５は、携帯電話ネットワークを介して、ショートメッセージサービス（ＳＭＳ）、マルチメディアメッセージサービス（ＭＭＳ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、直接的データ接続、ＷＡＰ、電子メールやその他の適切な種類の電子的通信を含むデータを送信するための携帯無線送受信機を含む。
通信ユニット２４５は、ＴＣＰ／ＩＰ、ＨＴＴＰ、ＨＴＴＰＳ、ＳＭＴＰなどを含む標準ネットワークプロトコルを用いて、ファイルやメディアオブジェクトを配布するために、ネットワーク１０５への従来型の接続を提供することもできる。
【００６９】
センサ２４７は、物理的な変化を感知する任意の装置である。センサ２４７は、信号線２３２を介してバス２２０に接続されている。
一実施形態において、センサ２４７はモーションディテクタである。例えば、センサ２４７は、ロボット１９０の姿勢を検出するジャイロスコープである。
また、他の実施形態において、センサ２４７は、ロボット１９０の加速度を測るのに用いられる加速度計である。さらに別の例では、センサ２４７は、例えば、ＧＰＳ衛星や、無線情報によってＧＰＳ座標を取得することで位置検出を行う。
一実施形態において、センサ２４７は、通信モジュール２０２を介して位置情報を位置モジュール２０４に送る。
他の実施形態において、センサ２４７は、分類器データ２９２の一部として位置情報をメモリ２２７に保存する。
【００７０】
一実施形態において、センサ２４７は深さセンサを含む。
一実施形態において、深さセンサは、例えば赤外線レーザ光のスペックルパターンのような構造化光（structured light）を用いて深さを決定する。
他の実施形態において、深さセンサは、カメラから対象物まで光信号が進むのにかかる時間に基づいて深さを決定する、飛行時間計測式（time-of-flight）の技術を用いて深さを決定する。例えば、深さセンサはレーザ測距器である。
深さセンサは、地上における深さの変化や、変化の大きさを識別するために用いられる。
一実施形態において、センサ２４７は、ユーザ１０１や障害物の位置を識別するために、深さ情報を位置モジュール２０４に送信する。
【００７１】
一実施形態において、センサ２４７は、音を電気信号に変換するためのマイクを含む。マイクは、視覚障害のあるユーザ１０１から、要求を満たすための命令を取得する。例えば、マイクは、視覚障害のあるユーザ１０１のために物体を拾い上げるという命令を取得する。マイクは、命令を処理するために、電気信号を動き推定アプリケーション１９９、例えば、ステータスの変化を識別する命令を処理する状態モジュール２１０に送信する。
【００７２】
カメラ２４９は、信号線２３４を介してバス２２０に接続された、画像を取得するための物理デバイスである。一実施形態において、カメラ２４９は電気的な画像を取り込む。
カメラ２４９は、ＣＣＤ（charge-coupled device）やＣＭＯＳ（complementary metal-oxide semiconductor）といった、視覚的イメージを電気信号に変換するイメージセンサを含む。
一実施形態において、カメラは、電気信号を、ユーザ１０１の位置を識別するために位置モジュール２０４に送信し、環境内の障害物の位置を検出するために検出モジュール２０６に送信し、また、ユーザ１０１の状態に変化がないか判定するために状態モジュール２１０に送信する。
他の実施形態において、カメラ２４９は、分類器データ２９２やユーザデータ２９７の一部として電気信号をメモリ２２７に格納する。
【００７３】
動き推定デバイス２００がロボット１９０の一部である実施形態では、動き推定デバイス２００は、モータ２５１およびモバイルハードウェア２５３を含んでいる。モータ２５１は、信号線２３６を介してバス２２０に結合されている。また、モバイルハードウェア２５３は、信号線２３８を介してバス２２０に結合されている。
モータ２５１は、モバイルハードウェア２５３を駆動するためのハードウェアである。また、モバイルハードウェア２５３は、ホイールなどの、ロボット１９０を移動させるハードウェアである。モータ２５１およびモバイルハードウェア２５３は、ロボット１９０を移動させるために使用される。
例えば、推定モジュール２０８は、モバイルハードウェア２５３を駆動して、環境内の障害物およびユーザ１０１の一つ以上の身体的能力に基づいてタスクを実行するようにモータ２５１に指示する。
【００７４】
スピーカ２６７は、信号線２５４を介してバス２２０に結合された、音声指示を流すためのオプションのハードウェアである。例えば、動き推定デバイス２００がロボット１９０である場合、スピーカ２６７は、目の不自由なユーザ１０１に音声指示を提供するための信号を推定モジュール２０８から受信する。
【００７５】
一実施形態では、動き推定アプリケーション１９９におけるモジュール２０２、２０４、２０６、２０８、２１０、２１２、および２１４のそれぞれは、以下に説明する機能を提供するための、プロセッサ２２５によって実行可能な命令の組を含む。他の実施形態では、モジュール２０２、２０４、２０６、２０８、２１０、２１２、および２１４のそれぞれはメモリに記憶され、システムのプロセッサ２２５によってアクセス可能かつ実行可能であってもよい。また、モジュール２０２、２０４、２０６、２０８、２１０、２１２、および２１４のそれぞれは、動き推定デバイス２００のプロセッサ２２５および他のコンポーネントとの協調および通信に適合されてもよい。一実施形態では、モジュール２０２、２０４、２０６、２０８、２１０、２１２、および２１４のそれぞれは、動き推定デバイス２００のプロセッサによって記憶および実行される一つ以上のシンクライアントとして機能するように適合されてもよい。
【００７６】
通信モジュール２０２は、動き推定アプリケーション１９９と動き推定デバイス２００の他のコンポーネントとの間の通信を扱うためのルーチンを含むソフトウェアである。一実施形態では、通信モジュール２０２は、通信を扱うための以下に説明する機能を提供するための、プロセッサ２２５によって実行可能な命令の組を含む。通信モジュール２０２は、信号線２０３を介してバス２２０に通信可能に結合されている。
【００７７】
通信モジュール２０２は、通信ユニット２４５を介して、コンピュータ１０７、ロボット１９０、およびヘルスサーバ１１０の一つ以上に対してデータを送受信する。例えば、通信モジュール２０２は、通信ユニット２４５を介して、ヘルスサーバ１１０から電子健康記録データ１１１を受信する。
【００７８】
一実施形態では、通信モジュール２０２は、動き推定アプリケーション１９９のコンポーネントからデータを受信し、およびメモリ２２７にデータを記憶させる。一実施形態では、通信モジュール２０２は、メモリ２２７からデータを取得し、動き推定アプリケーション１９９の一つ以上のコンポーネントにデータを送信する。例えば、通信モジュール２０２は、カメラ２４９からの画像を、ユーザデータ２９７として記憶させてもよい。一実施形態では、通信モジュール２０２は、動き推定アプリケーション１９９のコンポーネント間の通信を扱ってもよい。例えば、通信モジュール２０２は、ユーザ１０１の位置に関するデータを位置モジュールから受信し、当該データを推定モジュール２０８に送信する。
【００７９】
位置モジュール２０４は、ロボット１９０の現在位置を判定し、ならびにユーザ１０１の位置、方向および速度に関するセンサデータを受信するためのルーチンを含むソフトウェアである。一実施形態では、位置モジュール２０４は、ロボット１９０およびユーザ１０１の位置を判定するための、以下に説明する機能を提供するためのプロセッサ２２５によって実行可能な命令の組を含む。位置モジュール２０４は、信号線２０５を介してバス２２０に通信可能に結合されている。
【００８０】
一実施形態では、位置モジュール２０４は、センサ２４７から、ロボット１９０の位置に関する位置情報を受信する。例えば、位置モジュール２０４は、センサ２４７からＧＰＳ座標を受信する。別の例では、位置モジュール２０４は、既知の位置情報（例えば、携帯電話の基地局、ＷｉＦｉホットスポットなど）および信号強度を受信する。位置モジュール２０４は、ロボット１９０の現在位置を判定してもよい。例えば、位置モジュール２０４は、ＧＰＳ座標、ＷｉＦｉを使用した三角測量信号などに基づいてロボット１９０の位置を判定する。別の例では、位置モジュール２０４は、カメラ２４９から画像を取得し、画像中の既知の物体の位置をロボット１９０と比較することによって、ロボット１９０の現在位置を判定する。
【００８１】
一実施形態では、位置モジュール２０４は、ユーザ１０１に関連付いた病状に基づいて、ユーザ１０１の位置を判定する。例えば、位置モジュール２０４は、ユーザ１０１が病状の通りであるとの予測に基づいて、通信モジュール２０２を介して、カメラ２４９から画像を取得する。
例えば、ユーザ１０１が足に負荷をかけられない状態である場合、ユーザ１０１は、座り、寄りかかり、または横たわっている可能性が高い。よって、位置モジュール２０４は、「足に負荷をかけられないユーザ」に対応する分類器を使用することができる。当該分類器は、ユーザ１０１が健常である場合よりも低い高さでユーザを探すような命令を含む。
【００８２】
一実施形態では、位置モジュール２０４は、カメラ２４９から取得した画像から、ユーザ１０１の位置および方位を認識する。位置は、直交座標系に従って、経度および緯度として表されてもよい。また、位置モジュール２０４は、ユーザの胴体の方向を識別し、当該ユーザ１０１の胴体の方向に基づいて、ユーザ１０１が向いている方位を判定してもよい。また、位置モジュール２０４は、ユーザ１０１の顔の向きを判定してもよい。胴体の方向および顔の方向の組み合わせによって、方位を構成することができる。
【００８３】
検出モジュール２０６は、環境内の障害物を検出するためのルーチンを含むソフトウェアである。一実施形態では、検出モジュール２０６は、環境内の障害物を検出するための、以下に説明する機能を提供するための、プロセッサ２２５により実行可能な命令の組を含む。検出モジュール２０６は、信号線２０７を介してバス２２０に通信可能に結合されている。
【００８４】
一実施形態では、検出モジュール２０６は、環境内にある物体を識別する。例えば、検出モジュール２０６は、カメラ２４９から画像を取得し、環境内の障害物を識別する。障害物とは、静止した物体であり、例えば、テーブル、いす、出入口、およびユーザ１０１の経路を妨げる他の物などである。障害物はまた、動いている物体であってもよく、例えば、自動車、スケートボード、自転車、人、および動物などである。また、検出モジュール２０６は、障害物の位置を表すマップを生成してもよい。
【００８５】
一実施形態では、検出モジュール２０６は、ユーザ１０１に関連付いたＥＨＲに基づいて障害物を識別する。例えば、ユーザ１０１が車椅子に乗っている場合、一部の狭い出入口が、ユーザ１０１によって通行不可となることがある。別の例では、ユーザ１０１の目が不自由である場合、杖で物体を検出できないことがあるため、地面に広がっている物体がユーザ１０１にとって危険なことがある。
【００８６】
推定モジュール２０８は、ユーザ１０１に関連付いたＥＨＲに基づいて、ユーザ１０１の一つ以上の身体的能力を推定し、また、環境内の障害物およびユーザ１０１の一つ以上の身体的能力に基づいてタスクを実行するために、ロボット１９０に対する命令を生成するためのルーチンを含むソフトウェアである。
一実施形態では、推定モジュール２０８は、ユーザ１０１の一つ以上の身体的能力を推定し、およびタスクを実行するためのロボット１９０に対する命令を生成するために、以下に説明する機能を提供するための、プロセッサ２２５によって実行可能な命令の組を含む。推定モジュール２０８は、信号線２０９を介してバス２２０に通信可能に結合されている。
【００８７】
推定モジュール２０８は、通信モジュール２０２を介してユーザモジュール２１２またはヘルスサーバ１１０からＥＨＲを受信する。なお、推定モジュール２０８は、ユーザ１０１に関連付いた病状をＥＨＲから識別し、当該病状に基づいて、ユーザ１０１の一つ以上の身体的能力を推定してもよい。
【００８８】
一実施形態では、推定モジュール２０８は、ユーザ１０１の現在の病状に基づいて、ユーザ１０１の一つ以上の身体的能力を推定する。例えば、ユーザ１０１が、右のかかとの手術を受けている場合、推定モジュール２０８は、ユーザ１０１が、右のかかとを動かす能力が制限されていると判定する。一実施形態では、推定モジュール２０８は、ユーザ１０１の過去の病状に基づいて、ユーザ１０１の一つ以上の身体的能力を推定する。例えば、推定モジュール２０８は、ある期間にわたってなされた観察に基づいて、ユーザ１０１の右肩の怪我を理由に、ユーザ１０１がその右半身を動かす能力が制限されていると判定してもよい。また、推定モジュール２０８は、ユーザ１０１の現在の病状または過去の病状に基づいて、ＥＨＲを更新するようにユーザモジュール２１２に指示してもよい。
【００８９】
一実施形態では、推定モジュール２０８は、ユーザ１０１に関連付いたＥＨＲ、ユーザ１０１の現在の病状、ユーザ１０１の過去の病状などに基づいて、コスト式（cost equation）を生成する。推定モジュール２０８は、ユーザ１０１に関連付いた観察結果に基づ
いて、コスト式に重み付けをしてもよい。推定モジュール２０８に対する変数は、ユーザ１０１についての、可動範囲、到達可能性、筋肉の緊張、快適感、好み、ロボット１９０から物体を受け取るのに要す時間、ロボット１９０が手渡し動作を実行した後にロボット１９０と接する時間、およびタスクにかかる時間を含んでいてもよい。
【００９０】
推定モジュール２０８は、病状にそれぞれ対応する分類器に基づいて、ユーザ１０１の一つ以上の身体的能力を推定してもよい。一実施形態では、推定モジュール２０８は、既知の病状を有さない（すなわち、少なくとも学習に影響する病状ではない）ユーザ１０１のアクティブまたは非アクティブ状態を観察し、既知の病状を有するユーザ１０１と比較
することによって、分類器を生成する。推定モジュール２０８は、期間を拡張してトレーニングデータを収集してもよい。例えば、推定モジュール２０８は、２４時間の間（または１２時間、４８時間など）、病状を有するユーザ１０１を観察してもよい。
【００９１】
例えば、推定モジュール２０８は、足に負荷がかからないユーザ１０１に対する分類器の組を作成してもよい。推定モジュール２０８は、既知の病状を有さない（すなわち、ユーザ１０１の足に影響する病状ではない）対象を、足に負荷がかからないユーザ１０１と比較する。対照させるユーザ１０１は、立つこと、歩くこと、物体を拾い上げること、コンピュータデスクで働くことなどを含む種々の活動を行うことができる。一方、足に負荷がかからないユーザ１０１は、座ること、寄りかかること、および横たわることに大部分の時間を費やす。推定モジュール２０８は、これらの相違に基づいて分類器を生成し、分類器を分類器データ２９２の一部としてメモリ２２７に記憶させる。
【００９２】
一実施形態では、推定モジュール２０８は、メモリ２２７に記憶された分類器データ２９２から分類器を取り出す。分類器は、ユーザ１０１と独立してオフラインで生成されてもよく、または、ユーザ１０１のアクティブもしくは非アクティブ状態を観察するステップに対応して生成されてもよい。一実施形態では、推定モジュール２０８は、ユーザ１０１のさらなる３次元ビューを取得するように、ロボット１９０の外部カメラから画像を取得する。
【００９３】
推定モジュール２０８は、ユーザ１０１を観察した後で、ユーザ１０１に対する分類器を生成してもよい。推定モジュール２０８は、パーソナライズされた分類器、ユーザ１０１が有する病状に関連付いた分類器、または両方のタイプの分類器の組み合わせに基づいて、ユーザ１０１の一つ以上の身体的能力を推定してもよい。
【００９４】
推定モジュール２０８は、環境内にある障害物およびユーザ１０１の一つ以上の身体的能力に基づいてタスクを実行するための、ロボット１９０に対する命令を生成する。推定モジュール２０８は、ユーザ１０１の可動性に基づいてユーザ１０１がどのように移動するか、ならびに、環境内の障害物およびユーザ１０１の一つ以上の身体的能力に基づいて、タスクを完了するためにロボット１９０がどのように移動するべきかについてのシミュレーションを生成してもよい。
例えば、ユーザ１０１の左耳が不自由な場合、推定モジュール２０８は、「病状を有しないユーザ１０１に対してロボット１９０がどのように移動するか」と比較して、ユーザ１０１により近く、およびユーザ１０１の右に移動するようにロボット１９０に指示してもよい。
シミュレーションを生成するために、シミュレーションは、ユーザ１０１に関連付いた病状に対応する分類器を使用してもよい。一実施形態では、推定モジュール２０８は、機械学習、システム識別、適応制御、または類似の適応方法に基づいて、シミュレーションを修正する。
【００９５】
代わりに、または追加として、推定モジュール２０８は、入力パラメータおよびタスク実行の成功率に基づいてシミュレーションを生成する。入力パラメータとは、ユーザ１０１の速度、ユーザ１０１に対するロボット１９０の相対位置、タスクの困難度、および、ロボット１９０が案内のためにユーザ１０１に中継する情報の量などである。
推定モジュール２０８は、入力パラメータが成功率にどのように影響するかをシミュレートしてもよい。
【００９６】
推定モジュール２０８は、タスクを実行するようにロボット１９０に指示する。命令は、シミュレーションに基づいたものであってもよい。タスクとは、ユーザ１０１のために物体を取得すること、物体をユーザ１０１に提供すること、ユーザ１０１から物体を受け
取ること、ユーザ１０１に対してナビゲーション支援を提供すること、ユーザ１０１に対して物体を運ぶこと等である。推定モジュール２０８は、タスクに対する成功率を最大化するために振る舞いを選択、適合、生成してもよい。
【００９７】
一実施形態では、推定モジュール２０８は、物体に対するリクエストをユーザ１０１から取得し、当該物体を環境内で探索し、環境内にある物体を識別し、リクエストを行ったユーザ１０１を識別し、識別された物体を取得することによって、ユーザへ提供すべき物体を取得する。推定モジュール２０８は、口頭による命令を検出するマイクロフォンを含むセンサ２４７によって、ユーザ１０１からのリクエストを取得してもよい。また、推定モジュール２０８は、ＥＨＲに基づいて、環境における物体を識別してもよい。例えば、ユーザ１０１が車椅子に座っている場合、推定モジュール２０８は、車椅子に座っているユーザ１０１がアクセス可能な環境内のエリアを判定する。また、推定モジュール２０８は、例えば、位置モジュール２０４から得た情報、および、口頭によるリクエストが来た方向に基づいて、要求を行ったユーザ１０１を判定してもよい。
物体の取得を実行する上記ステップを実行することで、環境を探索する時間、および物体の取り出しの時間が有利に減少し、それによって、ロボット１９０がユーザ１０１にとってより有益となる。
【００９８】
ユーザ１０１に対する物体の提供は、元の位置からユーザ環境の空間内における位置および向きに物体を移動させる「手渡し動作」を含んでいてもよい。これは、ユーザが車椅子に束縛され、または、かがんで物体を拾うことが困難な場合に有益となる。別の例では、推定モジュール２０８は、坐骨神経痛のユーザ１０１の病状に基づいて、「ユーザ１０１が２０ポンド（または、１０ポンド、３０ポンドなど）よりも重たい物体を運ぶ場合にユーザ１０１が痛みを受ける」と判定する。推定モジュール２０８は、対象のスーツケースが２０ポンドよりも重たいことを理由に、ユーザの手からスーツケースを受け取り、運ぶようにロボット１９０に指示してもよい。
【００９９】
一実施形態では、推定モジュール２０８は、ロボット１９０に近い側の手が不自由であるかを、当該手の可動範囲、当該手の到達可能性の少なくとも一つに基づいて判定したうえで、手渡し動作を実行する。ロボットに近い側にある手が不自由である場合、推定モジュール２０８は、元の位置から、ロボットから離れた側にある遠方の手の側に物体を移動させ、手渡し動作を実行するようにロボット１９０に対する命令を生成してもよい。
【０１００】
推定モジュール２０８は、ナビゲーション支援をユーザ１０１に提供してもよい。これは、ユーザ１０１が視覚障害者である場合に特に有益である。一実施形態では、推定モジュール２０８は、経路に沿ってユーザ１０１を追跡および案内するため、ロボット１９０に対する経路を生成する。推定モジュール２０８は、視覚障害のあるユーザ１０１が経路に沿って移動する間、環境内で障害物に遭遇するかを判定し、視覚障害のあるユーザ１０１の一つ以上の身体的能力に基づいて経路を生成する。例えば、視覚障害のあるユーザ１０１が、車椅子に座ってレストラン内を移動している場合、ロボット１９０は、テーブルと椅子との間隔が、視覚障害のあるユーザ１０１の車椅子が通るために十分に広いような、レストラン内の経路を選択してもよい。
【０１０１】
推定モジュール２０８は、ユーザ１０１からのユーザ入力に基づいて、経路の始点および終点を判定してもよい。例えば、ユーザ１０１は、マイクロフォンとして機能するセンサ２４７により、目的地を取得するための命令をロボットに提供することを口頭でリクエストしてもよい。推定モジュール２０８は、リクエストについて発話からテキストへの変換を実行して、機械が理解できる言語を生成し、命令を生成してもよい。経路の始点は、ユーザ１０１が向いている方位に基づいてもよい。例えば、ユーザ１０１が、終点に到達するために移動するべき方向とは逆を向いている場合、推定モジュール２０８は、正しい
方向に移動するようユーザ１０１を案内する経路を生成する。
【０１０２】
一実施形態では、推定モジュール２０８は、ユーザ１０１の過去の振る舞いに基づいて、経路の始点および終点を判定する。例えば、視覚障害のあるユーザ１０１が月曜日から金曜日までの午前８時に同一の経路をとる場合であって、ユーザ１０１が週末の午前８時に経路をリクエストした場合、推定モジュール２０８は、同一の終点を持った経路であって、環境内の障害物に応じて変化する経路を生成する。
【０１０３】
推定モジュール２０８は、スピーカ２６７から流れる音を生成することによって、経路に沿ってユーザ１０１を案内してもよい。代わりに、または追加として、ロボット１９０は、ユーザ１０１と身体的に接触し、経路に沿って進むために異なる方向に移動するようユーザ１０１をガイドする触覚フィードバックデバイスに命令を送信してもよい。
【０１０４】
状態モジュール２１０は、ユーザ１０１に関連付いた状態を追跡するためのルーチンを含むソフトウェアである。一実施形態では、状態モジュール２１０は、ユーザ１０１の状態を追跡するために、以下に説明する機能を提供するためのプロセッサ２２５によって実行可能な命令の組を含む。状態モジュール２１０は、信号線２１１を介してバス２２０に通信可能に結合されている。
【０１０５】
一実施形態では、状態モジュール２１０は、推定モジュール２０８により生成されたシミュレーションに対する入力のいずれかが変化したかを判定することで、ユーザ１０１に関連付いた状態を追跡する。例えば、タスクがユーザ１０１を案内するものであって、ユーザ１０１の速度が変化した場合、状態モジュール２１０は、ユーザ１０１の速度をアップデートすることで、シミュレーションを調節するように、通信モジュール２０２を介して推定モジュール２０８に指示する。代わりに、または追加として、状態モジュール２１０は、ユーザ１０１からのフィードバックを検出してもよい。例えば、ユーザ１０１は、口頭で、または、ユーザインタフェースモジュール２１４によって生成されるユーザインタフェースを通じてフィードバックを行ってもよい。フィードバックは、ロボット１９０が自動的に支援しない場合にロボット１９０に支援をリクエストするものであってもよいし、ロボット１９０が受け取った物体が誤っていたことをロボット１９０に伝えるものであってもよい。また、ロボット１９０がある場所を通過した場合に当該場所に物体を置くようにロボット１９０に指示するもの等であってもよい。
【０１０６】
一実施形態では、状態モジュール２１０は、フィードバックに基づいてＥＨＲを更新する。フィードバックは、ユーザ１０１の病状の誤認識に関するものであってもよい。例えば、ユーザ１０１が、以前に足を怪我しており、治療を受けた場合、ユーザ１０１は、「足の怪我がすでに治っている」というフィードバックを提供してもよい。また、状態モジュール２１０は、ＥＨＲを更新するようにユーザモジュール２１２に指示してもよい。ユーザ１０１は、口頭によるフィードバック、またはユーザインタフェースモジュール２１４により生成されるユーザインタフェースを通じたフィードバックを提供してもよい。
【０１０７】
ユーザモジュール２１２は、ユーザデータ２９７を生成するためのルーチンを含むソフトウェアである。一実施形態では、ユーザモジュール２１２は、ユーザデータ２９７を生成するために、以下に説明する機能を提供するためのプロセッサ２２５により実行可能な命令の組を含む。ユーザモジュール２１２は、信号線２１３を介してバス２２０に通信可能に結合されている。
【０１０８】
一実施形態では、ユーザモジュール２１２は、ユーザ１０１を登録する。ユーザモジュール２１２は、ユーザ１０１から情報を受信するユーザインタフェースを表示するための命令を、ユーザインタフェースモジュール２１４に送信してもよい。例えば、ユーザイン
タフェースは、ユーザ名、人口学的情報、ユーザ１０１に関連付いた病状を含む医療履歴、ユーザ１０１に関連付いた好みなどを提供するための、ユーザ１０１に対応するフィールドを含む。ユーザの好みとは、例えば、ユーザ１０１に対して一定重量より重い物体を取得するロボット１９０に対する好みを含んでいてもよい。ユーザモジュール２１２は、通信モジュール２０２を介してユーザインタフェースモジュール２１４からユーザ入力を受信し、ユーザ１０１に固有なＥＨＲを生成してもよい。また、ユーザモジュール２１２は、ＥＨＲを、ユーザデータ２９７の一部として記憶してもよい。
【０１０９】
代わりに、または追加として、ユーザモジュール２１２は、動き推定デバイス２００の外部にあるデータソースから情報を受信してもよい。例えば、ユーザモジュール２１２は、医療履歴クエリを生成し、および、通信モジュール２０２を介して医療履歴クエリをヘルスサーバ１１０に送信することで、電子健康記録データ１１１を取得してもよい。また、ユーザモジュール２１２は、電子健康記録データ１１１からユーザ１０１に対するＥＨＲを識別してもよい。また、ユーザモジュール２１２は、ＨＩＰＡＡに準拠して暗号化されたＥＨＲを受信してもよい。例えば、ユーザモジュール２１２は、ＥＨＲを受信するためにＨＬ７メッセージングを使用してもよい。また、ユーザモジュール２１２は、ＥＨＲを復号化し、および復号化したＥＨＲをユーザデータ２９７として記憶してもよい。
【０１１０】
ユーザインタフェースモジュール２１４は、ユーザインタフェースを提供するための、グラフィカルデータを生成するためのコードおよびルーチンを含むモジュールである。一実施形態では、ユーザインタフェースモジュール２１４は、ユーザインタフェースを提供するために、グラフィカルデータを生成するための以下に説明する機能を提供するためのプロセッサ２２５により実行可能な命令の組を含む。一実施形態では、ユーザインタフェースモジュール２１４は、動き推定デバイス２００のメモリ２２７に記憶されてもよく、プロセッサ２２５によってアクセス可能および実行可能としてもよい。ユーザインタフェースモジュール２１４は、信号線２１５を介してバス２２０に結合される。
【０１１１】
一実施形態では、ユーザインタフェースモジュール２１４は、ユーザ１０１の登録に際してユーザ１０１がユーザ情報を入力するためのユーザインタフェースを生成する命令を、ユーザモジュール２１２から受信する。例えば、ユーザインタフェースは、ユーザ名を入力するためのフィールド、パスワードを入力するためのフィールド、および医療履歴を入力するための一つ以上のフィールドなどを含んでいてもよい。また、ユーザインタフェースは、ユーザインタフェースとヘルスサーバ１１０から得たＥＨＲとをリンクさせるオプションを含んでいてもよい。
【０１１２】
一実施形態では、ユーザインタフェースモジュール２１４は、ユーザ１０１がフィードバックを提供するためのユーザインタフェースを生成する命令を状態モジュール２１０から受信する。フィードバックは、医療履歴を医療情報によって更新するというオプションを含んでいてもよい。例えば、ユーザ１０１は、新たに診断された病状を追加し、治療された現在の病状を削除してもよい。
【０１１３】
図３は、ユーザインタフェースの例である。図３は、医療履歴を提供するためのユーザ入力を受け付けるユーザインタフェース３００をグラフィカルに示したものである。ユーザインタフェース３００は、ユーザインタフェースモジュール２１４によって生成されたトップパネル３０５とボトムパネル３１０に分割される。トップパネル３０５は、「以下の症状のいずれかを経験したことがありますか？」という質問を含む。この例では、質問への回答として、糖尿病のアイコン３１５、脳卒中のアイコン３２０、および心臓発作のアイコン３２５を選択するためのボタンが表示される。回答のいずれかを選択することによって、ユーザインタフェースモジュール２１４が、回答に関する追加的な質問を有するユーザインタフェースを生成する。例えば、心臓発作のアイコン３２５を選択することに
よって、ユーザインタフェースモジュール２１４が、ユーザ１０１が経験した心臓発作の回数、心臓発作の日付、心臓発作と関連付いた症状を治療するためにユーザ１０１が薬剤投与を受けているかなど、に関してユーザ１０１に問い合わせるユーザインタフェースを生成する。ユーザモジュール２１２は、回答に基づいてＥＨＲを生成してもよい。
【０１１４】
トップパネル３０５はまた、ＥＨＲアップロードアイコン３３０を含む。アイコン３３０が選択されると、ユーザインタフェースモジュール２１４に、ユーザインタフェースをユーザ１０１に対するＥＨＲにリンクさせるためのユーザインタフェースを生成させる。これにより、ユーザ１０１が医療履歴を入力するのに費やす時間を減らすことができ、また、ユーザによって提供された不正確な情報ではなく、医師の所見に基づいたより正確な医療履歴を含ませることができるため、有利である。
【０１１５】
ボトムパネル３１０には、選択することで、ユーザインタフェースモジュール２１４に、アイコンに対応するユーザインタフェースを生成させる他のアイコンを含む。アイコンは、ユーザ設定（好み）、健康状態、ロボット命令、場所、および設定を含む。
【０１１６】
（方法の例）
図４を参照して、ユーザの一つ以上の身体的能力に基づいてロボットのタスクを決定する例示的な方法４００のフローチャートを説明する。
一実施形態では、方法４００の一つ以上のステップは、方法４００の一つ以上のステップを実行するためにプログラミングされた、プロセッサベースのコンピュータによって実行されてもよい。例えば、方法４００の一つ以上のステップは、方法４００の一つ以上のステップを実行するためにプログラミングされたモバイルコンピュータによって実行されてもよい。代わりに、または追加として、方法４００は、図１Ａにおけるコンピュータ１０７、または、ロボット１９０に記憶された動き推定アプリケーション１９９のモジュールによって実行されてもよい。例えば、動き推定アプリケーション１９９は、図２の位置モジュール２０４、検出モジュール２０６、および推定モジュール２０８を含んでいてもよい。
【０１１７】
まず、ステップ４０２において、環境におけるユーザの現在位置を判定する。例えば、位置モジュール２０４が、環境におけるユーザ１０１の現在位置を判定する。位置は、センサ２４７によって提供される情報に基づいて判定されてもよい。例えば、位置モジュール２０４が、センサ２４７によって提供されるＧＰＳ座標からロボット１９０の位置を判定してもよい。また、位置モジュール２０４は、ロボット１９０に関連するユーザ１０１の位置を判定するために、カメラ２４９から受信した画像を使用してもよい。代わりに、または追加として、位置モジュール２０４は、ユーザ１０１の位置、方向、および速度に関するセンサ出力を受信してもよい。
【０１１８】
ステップ４０４では、環境内の障害物を検出する。例えば、検出モジュール２０６が、静止した物体（例えば、テーブルおよびイス）、ならびに動いている物体（例えば、人および自転車）を含む環境内の障害物を検出する。
【０１１９】
ステップ４０６では、ユーザの一つ以上の身体的能力を、ユーザに関連付いたＥＨＲに基づいて推定する。推定モジュール２０８は、ユーザ１０１に関連付いたＥＨＲに基づいて、ユーザ１０１の一つ以上の身体的能力を推定してもよい。例えば、推定モジュール２０８が、「ユーザ１０１の身体的能力が視力の低下によって制限されている」と推定してもよい。
【０１２０】
ステップ４０８では、環境内の障害物、および、ユーザの一つ以上の身体的能力に基づいて、タスクを実行するロボットに対する命令が生成される。推定モジュール２０８が、
環境内の障害物、および、ユーザ１０１の一つ以上の身体的能力に基づいてタスクを実行するようにロボット１９０に指示してもよい。タスクとは、例えば、ナビゲーション支援を提供し、および、ユーザ１０１に対して荷物を運ぶことによって、施設内を移動するユーザ１０１を支援するものであってもよい。
また、推定モジュール２０８は、「ユーザ１０１が、ロボット１９０が目に見える範囲にいることを必要としているため、ユーザ１０１が通常の視覚を有している場合よりも、ロボット１９０をユーザ１０１のより近くに移動させるべき」と判定してもよい。結果として、推定モジュール２０８は、通常の視覚を有する人と比較して、ロボット１９０をより遅く移動させるべきと判定する。
【０１２１】
ステップ４１０では、ロボットに対してタスクを実行する指示を行う。ロボット１９０がタスクを実行するように指示されてもよい。例えば、推定モジュール２０８が、ナビゲーション支援および荷物の搬送を実行するためのモバイルハードウェア２５３を制御するモータ２５１に命令を送信することによって、タスクを実行するようにロボット１９０に指示する。
【０１２２】
図５は、ロボットによって実行される手渡し動作を決定する例示的な方法５００のフローチャートである。
一実施形態では、方法５００の一つ以上のステップは、方法５００の一つ以上のステップを実行するようにプログラミングされたプロセッサベースのコンピュータによって実行されてもよい。例えば、方法５００の一つ以上のステップは、方法５００の一つ以上のステップを実行するようにプログラミングされたモバイルコンピュータによって実行されてもよい。代わりに、または追加として、方法５００は、図１Ａにおけるコンピュータ１０７またはロボット１９０に記憶された動き推定アプリケーション１９９のモジュールによって実行されてもよい。例えば、動き推定アプリケーション１９９は、図５の位置モジュール２０４、検出モジュール２０６、推定モジュール２０８、状態モジュール２１０、およびユーザモジュール２１２を含んでいてもよい。
【０１２３】
まず、ステップ５０２において、環境におけるユーザの現在位置を判定する。例えば、位置モジュール２０４が、環境におけるユーザ１０１の現在位置を判定する。位置モジュール２０４は、センサ２４７からの情報に基づいて、ユーザ１０１に対する現在位置を判定してもよい。
【０１２４】
ステップ５０４では、環境内の障害物を判定する。例えば、検出モジュール２０６が、環境内の障害物を検出する。検出モジュール２０６は、静止した物体および動いている物体の位置を検出してもよい。
【０１２５】
ステップ５０６では、ユーザに関連付いたＥＨＲに基づいて、ユーザの一つ以上の身体的能力を推定する。推定モジュール２０８が、ユーザ１０１に関連付いたＥＨＲに基づいて、ユーザ１０１の一つ以上の身体的能力を推定してもよい。例えば、推定モジュール２０８は、ＥＨＲに基づいて、ユーザ１０１の左ひじが弱っていることを判定する。
また、推定モジュール２０８は、ユーザ１０１の一つ以上の身体的能力を判定するためのシミュレーションを生成してもよい。当該シミュレーションは、弱っている左ひじの制限についての入力パラメータや、ユーザ１０１がベッドに横たわっており、容易に立つことができず、右手に不快度レベルを生じさせる静脈点滴注射をしているといった観察データなどを含む。
推定モジュール２０８は、シミュレーションに基づいて、ユーザ１０１が、ユーザの１０１の体の近くで、左手で物体を保持する場合に楽に保持することができると判定する。
【０１２６】
ステップ５０８では、環境内の障害物およびユーザの一つ以上の身体的能力に基づいて
、元の位置からユーザ環境の空間内における位置および向きに物体を移動させるための手渡し動作を実行するためのロボットに対する命令を生成する。例えば、推定モジュール２０８が、環境内の障害物およびユーザ１０１の一つ以上の身体的能力に基づいて、元の位置から、ユーザ環境の空間内における位置および向きに物体を移動させるための、手渡し動作を実行するためのロボット１９０に対する命令を生成してもよい。上記例では、推定モジュール２０８が、ユーザ１０１の不自由な右手を回避するため、左手をターゲットとした手渡し動作を実行するためにロボット１９０に対する命令を生成する。
【０１２７】
ステップ５１０では、ロボットに対して手渡し動作を実行するように指示する。推定モジュール２０８が、手渡し動作を実行するようにロボット１９０に指示してもよい。例えば、推定モジュール２０８が、モバイルハードウェア２５３を制御するモータ２５１に命令を送信することによって、手渡し動作を実行するようにロボット１９０に指示する。
【０１２８】
ステップ５１２では、ユーザの状態を追跡する。例えば、状態モジュール２１０が、ユーザ１０１の状態を追跡する。状態モジュール２１０は、カメラ２４９から画像を取得し、シミュレーションに対する入力パラメータが変化したかを判定することによって状態を追跡してもよい。例えば、ユーザ１０１が着座状態から起立状態に変化した場合、状態モジュール２１０は、ユーザ１０１の状態が変化したと判定する。
【０１２９】
ステップ５１４では、ユーザの状態の変化に応答して、手渡し動作を実行するためのロボットに対する修正された命令を生成する。例えば、ユーザの状態の変化に応答して、状態モジュール２１０が、手渡し動作を実行するためのロボット１９０に対する修正された命令を生成してもよい。状態モジュール２１０は、座っているのではなく、立っているユーザ１０１に物体を手渡すことによって、手渡し動作を実行するようにロボット１９０に指示してもよい。
【０１３０】
ステップ５１６では、ユーザの状態の変更を含ませるようにＥＨＲを更新する。ユーザモジュール２１２が、ユーザの状態の変更を含ませるようにＥＨＲを更新してもよい。例えば、ユーザモジュール２１２は、ユーザ１０１が起立可能であることを反映するようにＥＨＲを更新してもよい。
【０１３１】
ここで図６を参照して、ターゲットユーザを発見および認識するタスクを実行する例示的な方法６００のフローチャートを説明する。一実施形態では、方法６００の一つ以上のステップは、方法６００の一つ以上のステップを実行するようにプログラミングされたプロセッサベースのコンピュータによって実行されてもよい。例えば、方法６００の一つ以上のステップは、方法６００の一つ以上のステップを実行するようにプログラミングされたモバイルコンピュータによって実行されてもよい。代わりに、または追加として、方法６００は、図１Ａにおけるコンピュータ１０７またはロボット１９０に記憶された動き推定アプリケーション１９９のモジュールによって実行されてもよい。例えば、動き推定アプリケーション１９９は、図２の位置モジュール２０４、検出モジュール２０６、および推定モジュール２０８を含んでいてもよい。
【０１３２】
ステップ６０２で、ターゲットユーザを判定する。例えば、位置モジュール２０４が、ユーザ１０１がターゲットユーザであると判定する。一実施形態では、医師または看護師などの医療の専門家が、ロボット１９０に対するターゲットユーザを定義してもよい。例えば、看護師が、ロボット１９０に対するターゲットユーザである患者にコップ一杯の水を提供するようにロボット１９０に指示してもよい。
【０１３３】
ステップ６０４では、ターゲットユーザに対するＥＨＲデータ１１１を取得する。例えば、動き推定アプリケーション１９９が、ヘルスサーバ１１０またはロボット１９０に記
憶されたデータベースから、ターゲットユーザに関連付いたＥＨＲデータ１１１を取得するためのクエリを生成してもよい。ＥＨＲデータ１１１は、ターゲットユーザの一つ以上の身体的能力を表すものであってもよい。
【０１３４】
ステップ６０６では、環境内の障害物を検出する。例えば、検出モジュール２０６が、静止した物体（例えば、テーブルおよびイス）、ならびに動いている物体（例えば、人および自転車）を含む環境内の障害物を検出してもよい。
【０１３５】
ステップ６０８では、環境内の障害物およびＥＨＲデータ１１１に基づいて、ターゲットユーザに対して一つ以上のタスクを実行するため、ロボット１９０に対するカスタマイズされた命令を生成する。このように、タスクを実行するための命令は、環境内の障害物、および、ＥＨＲデータ１１１に記述されたユーザの一つ以上の身体的能力に基づいてカスタマイズされてもよい。一実施形態では、タスクは、環境におけるターゲットユーザを発見および認識することを含んでいてもよい。タスクはさらに、物体をターゲットユーザに渡すことを含んでいてもよい。例えば、ロボット１９０が、コップ一杯の水をターゲットユーザに渡してもよい。
【０１３６】
ステップ６１０では、ロボット１９０が、カスタマイズされた命令に基づいて、ターゲットユーザに対して一つ以上のタスクを実行する。例えば、ロボット１９０は、ターゲットユーザを発見および認識し、次いで看護師に指示されたようにコップ一杯の水をターゲットユーザに提供してもよい。
【０１３７】
以上の説明では、本発明を十分に理解できるように、多くの詳細について説明した。しかしながら、各実施形態はこれらの具体的な詳細無しでも良いことは当業者にとって明らかであろう。また、説明が不明瞭になることを避けるために、構造や装置をブロック図の形式で表すこともある。例えば、実施形態は、ユーザインタフェースおよび特定のハードウェアとともに説明される。しかし、ここでの説明は、データおよびコマンドを受信する任意のタイプの計算装置および任意の周辺機器について適用できる。
【０１３８】
本明細書における「一実施形態」または「他の実施形態」等という用語は、その実施形態と関連づけて説明される特定の特徴・構造・性質が少なくとも本発明の一つの実施形態に含まれることを意味する。「一つの実施形態における」等という用語は本明細書内で複数用いられるが、これらは必ずしも同一の実施形態を示すものとは限らない。
【０１３９】
本明細書の詳細な説明の一部は、非一時的（non-transitory）なコンピュータ可読記憶媒体に記憶されたデータビットに対する動作のアルゴリズムおよび記号的表現として提供される。これらのアルゴリズム的な説明および表現は、データ処理技術分野の当業者によって、他の当業者に対して自らの成果の本質を最も効果的に説明するために用いられるものである。なお、本明細書において（また一般に）アルゴリズムとは、所望の結果を得るための論理的な手順を意味する。処理のステップは、物理量を物理的に操作するものである。必ずしも必須ではないが、通常は、これらの量は記憶・伝送・結合・比較およびその他の処理が可能な電気的または磁気的信号の形式を取る。通例にしたがって、これらの信号をビット・値・要素・エレメント・シンボル・キャラクタ・項・数値などとして称することが簡便である。
【０１４０】
なお、これらの用語および類似する用語はいずれも、適切な物理量と関連付いているものであり、これら物理量に対する簡易的なラベルに過ぎないということに留意する必要がある。以下の説明から明らかなように、特に断らない限りは、本明細書において「処理」「計算」「コンピュータ計算（処理）」「判断」「表示」等の用語を用いた説明は、コンピュータシステムや類似の電子的計算装置の動作および処理であって、コンピュータシス
テムのレジスタやメモリ内の物理的（電子的）量を、他のメモリやレジスタまたは同様の情報ストレージや通信装置、表示装置内の物理量として表される他のデータへ操作および変形する動作および処理を意味する。
【０１４１】
本発明は、本明細書で説明される動作を実行する装置にも関する。この装置は要求される目的のために特別に製造されるものであっても良いし、汎用コンピュータを用いて構成しコンピュータ内に格納されるプログラムによって選択的に実行されたり再構成されたりするものであっても良い。このようなコンピュータプログラムは、コンピュータのシステムバスに接続可能な、例えばフロッピー（登録商標）ディスク・光ディスク・ＣＤ−ＲＯＭ・ＭＯディスク・磁気ディスクなど任意のタイプのディスク、読み込み専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気カード、フラッシュメモリ、光学式カード、電子的命令を格納するために適した任意のタイプの媒体などのコンピュータ可読記憶媒体に記憶される。
【０１４２】
発明の具体的な実施形態は、完全にハードウェアによって実現されるものでも良いし、完全にソフトウェアによって実現されるものでも良いし、ハードウェアとソフトウェアの両方によって実現されるものでも良い。好ましい実施形態は、ソフトウェアによって実現される。ここでソフトウェアとは、ファームウェア、常駐ソフトウェア、マイクロコードやその他のソフトウェアを含むものである。
【０１４３】
さらに、ある実施形態は、コンピュータが利用あるいは読み込み可能な記憶媒体からアクセス可能なコンピュータプログラムプロダクトの形態を取る。この記憶媒体は、コンピュータや任意の命令実行システムによってあるいはそれらと共に利用されるプログラムコードを提供する。コンピュータが利用あるいは読み込み可能な記憶媒体とは、命令実行システムや装置によってあるいはそれらと共に利用されるプログラムを、保持、格納、通信、伝搬および転送可能な任意の装置を指す。
【０１４４】
プログラムコードを格納・実行するために適したデータ処理システムは、システムバスを介して記憶素子に直接または間接的に接続された少なくとも一つのプロセッサを有する。記憶素子は、プログラムコードの実際の実行に際して使われるローカルメモリや、大容量記憶装置や、実行中に大容量記憶装置からデータを取得する回数を減らすためにいくつかのプログラムコードを一時的に記憶するキャッシュメモリなどを含む。
【０１４５】
入力／出力（Ｉ／Ｏ）装置は、例えばキーボード、ディスプレイ、ポインティング装置などであるが、これらはＩ／Ｏコントローラを介して直接あるいは間接的にシステムに接続される。
【０１４６】
システムにはネットワークアダプタも接続されており、これにより、私的ネットワークや公共ネットワークを介して他のデータ処理システムやリモートにあるプリンタや記憶装置に接続される。モデム、ケーブルモデム、イーサネット（登録商標）は、現在利用可能なネットワークアダプタのほんの一例である。
【０１４７】
最後に、本明細書において提示されるアルゴリズムおよび表示は特定のコンピュータや他の装置と本来的に関連するものではない。本明細書における説明にしたがったプログラムを有する種々の汎用システムを用いることができるし、また要求された処理ステップを実行するための特定用途の装置を製作することが適した場合もある。これら種々のシステムに要求される構成は、以下の説明において明らかにされる。さらに、本発明は、特定のプログラミング言語と関連づけられるものではない。本明細書で説明される本発明の内容を実装するために種々のプログラミング言語を利用できることは明らかであろう。
【０１４８】
実施形態の前述の説明は、例示と説明を目的として行われたものである。したがって、開示された実施形態が本発明の全てではないし、本発明を上記の実施形態に限定するものでもない。本発明は、上記の開示にしたがって、種々の変形が可能である。本発明の範囲は上述の実施形態に限定解釈されるべきではなく、特許請求の範囲にしたがって解釈されるべきである。本発明の技術に詳しい者であれば、本発明はその思想や本質的特徴から離れることなくその他の種々の形態で実現できることを理解できるであろう。同様に、モジュール・処理・特徴・属性・方法およびその他の本発明の態様に関する名前付けや分割方法は必須なものでものないし重要でもない。また、本発明やその特徴を実装する機構は異なる名前や分割方法や構成を備えていても構わない。さらに、当業者であれば、モジュール・処理・特徴・属性・方法およびその他の本発明の態様は、ソフトウェア、ハードウェア、ファームウェアもしくはこれらの組合せとして実装できることを理解できるであろう。また、本発明をソフトウェアとして実装する場合には、モジュールなどの各要素は、どのような様式で実装されても良い。例えば、スタンドアローンのプログラム、大きなプログラムの一部、異なる複数のプログラム、静的あるいは動的なリンクライブラリー、カーネルローダブルモジュール、デバイスドライバー、その他コンピュータプログラミングの当業者にとって既知な方式として実装することができる。さらに、本発明の実装は特定のプログラミング言語に限定されるものではないし、特定のオペレーティングシステムや環境に限定されるものでもない。以上のように、上記の本発明の説明は限定的なものではなく例示的なものであり、本発明の範囲は添付の特許請求の範囲にしたがって定められる。
【符号の説明】
【０１４９】
１０１  ユーザ
１０５  ネットワーク
１０７  コンピュータ
１１０  ヘルスサーバ
１１１  電子健康記録データ
１９０  ロボット
１９９  動き推定アプリケーション
２０２  通信モジュール
２０４  位置モジュール
２０６  検出モジュール
２０８  推定モジュール
２１０  状態モジュール
２１２  ユーザモジュール
２１４  ユーザインタフェースモジュール
２２５  プロセッサ
２２７  メモリ
２４５  通信ユニット
２４７  センサ
２４９  カメラ
２５１  モータ
２５３  モバイルハードウェア
２６７  スピーカ
２９２  分類器データ
２９７  ユーザデータ
【図１Ａ】
2016159155.tif 000003
【図１Ｂ】
2016159155.tif 000004
【図１Ｃ】
2016159155.tif 000005
【図１Ｄ】
2016159155.tif 000006
【図２】
2016159155.tif 000007
【図３】
2016159155.tif 000008
【図４】
2016159155.tif 000009
【図５】
2016159155.tif 000010
【図６】
2016159155.tif 000011