(57)【特許請求の範囲】
【請求項１】
視覚障害ユーザと他のユーザとの衝突を避けるため、前記視覚障害ユーザをロボットによって誘導するシステムが実行する方法であって、
プロセッサを有するコンピュータを搭載したロボットの現在位置を判定するステップと、
視覚障害ユーザおよび他のユーザの、位置、進行方向、進行速度を表すセンサ情報を取得するステップと、
前記視覚障害ユーザおよび他のユーザの動きを表すモデルであって、各ユーザの運動一貫性の大小に関する情報を含んだモデルを生成するステップと、
前記モデルに基づいて、前記他のユーザと、前記視覚障害ユーザおよびロボットのうちの少なくともいずれかとの衝突を予測するためのマップである安全マップを生成するステップと、
前記視覚障害ユーザおよびロボットのどちらかに衝突の危険があることを判定するステップと、
前記衝突の危険に応じて、前記視覚障害ユーザの経路であるユーザ経路または前記ロボットの経路であるロボット経路の少なくともいずれかを更新するステップと、
を含み、
前記モデルを生成するステップは、
各ユーザの胴体の向きを時刻の関数として表したデータである胴体ムーブメントデータを取得するステップと、
各ユーザの歩行方向を判定するステップと、
前記胴体ムーブメントデータに含まれる胴体の向きと、前記歩行方向に基づいて、各ユーザの運動一貫性の大小を判定するステップと、
を含む、方法。
【請求項２】
前記衝突の危険の有無に応じて、前記ユーザ経路に基づき、前記視覚障害ユーザに指示を行うステップと、
をさらに含む、請求項１に記載の方法。
【請求項３】
前記ロボットに対して、前記ロボット経路を辿るように指示を行うステップと、
前記視覚障害ユーザに対して、前記ユーザ経路に基づいて指示を行うステップと、
をさらに含む、請求項１に記載の方法。
【請求項４】
確率的手法を使用して、前記胴体ムーブメントデータに含まれる胴体の向きと、前記歩行方向との間における分散スケールパラメータに基づいて、前記運動一貫性の大小を判定する、
請求項１から３のいずれかに記載の方法。
【請求項５】
前記安全マップを生成するステップは、
前記視覚障害ユーザと、他の各ユーザとの間のペアを生成するステップと、
前記ペアを構成するメンバ間の、所定の場所に対する到達時間の差を判定するステップと、
前記到達時間の差が、境界パラメータよりも小さいかを判定するステップと、
をさらに含む、請求項１から４のいずれかに記載の方法。
【請求項６】
前記到達時間の差が、前記境界パラメータよりも小さい場合に、衝突可能性を増加させ、
各ペアに対応する衝突可能性に基づいて、安全マップを生成する、
請求項５に記載の方法。
【請求項７】
前記到達時間の差が、前記境界パラメータよりも大きい場合に、衝突可能性をゼロに設定し、
各ペアに対応する衝突可能性に基づいて、安全マップを生成する、
請求項５または６に記載の方法。
【請求項８】
請求項１から７のいずれかに記載の方法の各ステップをコンピュータに実行させるためのプログラム。
【請求項９】
視覚障害ユーザと他のユーザとの衝突を避けるため、前記視覚障害ユーザをロボットによって誘導するシステムであって、
前記ロボットの現在位置を判定する手段と、
視覚障害ユーザおよび他のユーザの、位置、進行方向、進行速度を表すセンサ情報を取得する手段と、
前記視覚障害ユーザおよび他のユーザの動きを表すモデルであって、各ユーザの運動一貫性の大小に関する情報を含んだモデルを生成する手段と、
前記モデルに基づいて、前記他のユーザと、前記視覚障害ユーザおよびロボットのうちの少なくともいずれかとの衝突を予測するマップである安全マップを生成する手段と、
前記視覚障害ユーザおよびロボットのどちらかに衝突の危険があることを判定する手段と、
前記衝突の危険に応じて、前記視覚障害ユーザの経路であるユーザ経路または前記ロボットの経路であるロボット経路の少なくともいずれかを更新する手段と、
を含み、
前記モデルを生成する手段は、
各ユーザの胴体の向きを時刻の関数として表したデータである胴体ムーブメントデータを取得する手段と、
各ユーザの歩行方向を判定する手段と、
前記胴体ムーブメントデータに含まれる胴体の向きと、前記歩行方向に基づいて、各ユーザの運動一貫性の大小を判定する手段と、
を含む、システム。
【請求項１０】
前記衝突の危険の有無に応じて、前記ユーザ経路に基づき、前記視覚障害ユーザに指示
を行う手段と、
をさらに含む、請求項９に記載のシステム。
【請求項１１】
前記ロボットに対して、前記ロボット経路を辿るように指示を行う手段と、
前記視覚障害ユーザに対して、前記ユーザ経路に基づいて指示を行う手段と、
をさらに含む、請求項９に記載のシステム。
【請求項１２】
確率的手法を使用して、前記胴体ムーブメントデータに含まれる胴体の向きと、前記歩行方向との間における分散スケールパラメータに基づいて、前記運動一貫性の大小を判定する、
請求項９から１１のいずれかに記載のシステム。
【請求項１３】
前記安全マップを生成する手段は、
前記視覚障害ユーザと、他の各ユーザとの間のペアを生成する手段と、
前記ペアを構成するメンバ間の、所定の場所に対する到達時間の差を判定する手段と、
前記到達時間の差が、境界パラメータよりも小さいかを判定する手段と、
をさらに含む、請求項９から１２のいずれかに記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、人の動きに基づいてロボットの経路を決定する技術に関する。
【背景技術】
【０００２】
（関連出願への相互参照）
本出願は、"ROBOT MOTION REPLANNING BASED ON USER MOTION"と題され、２０１４年９月１２日に出願された、米国特許出願第１４／４８５，４９１号の優先権を主張する。当該出願は、その全体が本明細書中に参照として組み込まれる。
【０００３】
視覚障害を持った人々は、ショッピングセンターや歩道など、公共の場所での行動において、ハンディキャップを有している。例えば、視力がある人は、他の歩行者の歩く方向や速度を知ることができるため、衝突を回避することができるが、視力障害がある人は、これらの情報を得ることができないためである。
【０００４】
既存の技術として、障害物を回避するためのシステムが存在する。しかし、これらのシステムは、障害物が同じ速さで進行するものと仮定しているため、精度に問題があり、時として衝突を発生させることがある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４５７６４４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、上記の問題点を考慮してなされたものであり、視覚障害者を誘導する、安全性の高い方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するための、本発明の革新的な一形態に係るシステムは、
視覚障害者と他のユーザとの衝突を避けるため、前記視覚障害者をロボットによって誘導するシステムであって、前記ロボットの現在位置を判定する手段と、視覚障害者および他のユーザの、位置、進行方向、進行速度を表すセンサ情報を取得する手段と、前記視覚障害者および他のユーザの動きを表すモデルであって、前記視覚障害者の経路であるユーザ経路と、前記ロボットの経路であるロボット経路を含むモデルを生成する手段と、前記他のユーザと、前記視覚障害者およびロボットのうちの少なくともいずれかとの衝突を予測するためのマップである安全マップを生成する手段と、前記視覚障害者およびロボットのどちらかに衝突の危険があることを判定する手段と、前記衝突の危険に応じて、前記ユーザ経路またはロボット経路の少なくともいずれかを更新する手段と、を含むことを特徴とする。
【０００８】
また、本発明の革新的な一形態に係る方法は、
視覚障害者と他のユーザとの衝突を避けるため、前記視覚障害者をロボットによって誘導するシステムが実行する方法であって、プロセッサを有するコンピュータを搭載したロボットの現在位置を判定するステップと、視覚障害者および他のユーザの、位置、進行方向、進行速度を表すセンサ情報を取得するステップと、前記視覚障害者および他のユーザの動きを表すモデルであって、前記視覚障害者の経路であるユーザ経路と、前記ロボットの経路であるロボット経路を含むモデルを生成するステップと、前記他のユーザと、前記
視覚障害者およびロボットのうちの少なくともいずれかとの衝突を予測するためのマップである安全マップを生成するステップと、前記視覚障害者およびロボットのどちらかに衝突の危険があることを判定するステップと、前記衝突の危険に応じて、前記ユーザ経路またはロボット経路の少なくともいずれかを更新するステップと、を含むことを特徴とする。
【０００９】
また、これらの形態の一つ以上の他の実装として、方法、システム、装置、これらのためのコンピュータプログラム、その他の実装などが含まれる。
【００１０】
これらの実装例は、以下の特徴のうち一つ以上を任意に含んでいてもよい。
例えば、衝突の危険の有無に応じて、前記ユーザ経路に基づき、前記視覚障害者に指示を行ってもよい。
また、前記ロボットに対して、前記ロボット経路を辿るように指示を行い、前記視覚障害者に対して、前記ユーザ経路に基づいて指示を行ってもよい。
例えば、モデルの生成においては、各ユーザの胴体の向きを時刻の関数として表したデータである胴体ムーブメントデータを取得し、各ユーザの歩行方向を判定し、前記胴体ムーブメントデータに含まれる胴体の向きと、前記歩行方向に基づいて、各ユーザの運動一貫性の大小を判定し、前記運動一貫性に基づいて、人の運動の不確実性を判定してもよい。
また、確率的手法を使用して、前記胴体ムーブメントデータに含まれる胴体の向きと、前記歩行方向との間における分散スケールパラメータを取得し、人の挙動を推定してもよい。
また、前記安全マップの生成においては、前記視覚障害者と、他の各ユーザとの間のペアを生成し、前記ペアを構成するメンバ間の、所定の場所に対する到達時間の差を判定し、前記到達時間の差が、境界パラメータよりも小さいかを判定してもよい。
また、前記到達時間の差が、前記境界パラメータよりも小さい場合に、衝突可能性を増加させ、各ペアに対応する衝突可能性に基づいて、安全マップを生成してもよい。
また、前記到達時間の差が、前記境界パラメータよりも大きい場合に、衝突可能性をゼロに設定し、各ペアに対応する衝突可能性に基づいて、安全マップを生成してもよい。
【００１１】
本明細書において、「データ」という語は、本明細書に記載された関数や操作を受ける任意のデジタルデータを指す語として用いる。
デジタルデータとは、例えば、ネットワークサービスデータ、連結性マップデータ、移動（journey）データ、ユーザプロファイルデータ、時刻同期データ、移動履歴データ、
嗜好階層データ、デッドゾーンデータ、ナビゲーション地図データ、メッシュネットワークデータ、速度データ、二つ以上の構成要素（サーバ、車両システム、モバイルデバイス、クライアントデバイス等）によって共有されるデータ、当該二つ以上の構成要素間で転送されるデータなどであるが、これらに限られない。
【００１２】
本明細書によって開示される発明は、特にいくつかの面において有利である。
例えば、本発明に係るシステムは、より正確で、より少ない衝突をもたらすことができる。更に、本発明に係るロボットは、信頼に値し、人々をより快適にさせることができる。
更に、本発明に係るシステムは、視覚障害者をより多くの場所に出入り可能にするという利点を有している。
【００１３】
なお、本明細書にて述べるシステムの利点はあくまで例であり、他の多数の利点および利益を有し得る。
【発明の効果】
【００１４】
本発明によると、視覚障害者を誘導する、安全性の高い方法を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】ユーザの動きに基づいてロボットの経路を決定するシステムを例示するブロック図である。
【図２】ムーブメントシステムを例示するブロック図である。
【図３Ａ】運動一貫性に基づいてユーザの移動方向を予測する例を示す図である。
【図３Ｂ】ユーザの動きに基づいて経路が変更されるシナリオの例を示す図である。
【図４】ユーザの動きに基づいてロボット経路を決定する処理の一例を示すフローチャートである。
【図５】モーションのモデルを生成する処理の一例を示すフローチャートである。
【図６】安全マップを生成する処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１６】
（システム概要）
図１は、ある実施形態において、ユーザの動きに基づいて、視覚障害者を誘導するロボットの経路（以下、ロボット経路）を決定するシステム１００のブロック図を例示したものである。
システム１００は、信号線１０４を介してネットワーク１０５に接続されたサーバ１０７、信号線１１８を介してネットワーク１０５に接続されたロボット１９０からなる。また、符号１０１は視覚障害者であり、符号１０３ａおよび１０３ｂは他のユーザである。
なお、本明細書において、「ユーザ」とは、視覚障害者および一般の歩行者を指す語として用いる。ユーザとは、必ずしも本システムの利用者である必要はない。また、「他のユーザ」とは、視覚障害者またはロボットと衝突する可能性がある一般の歩行者を指す語として用いる。
【００１７】
なお、図１には一人の視覚障害者１０１、一つのサーバ１０７、一つのロボット１９０が示されているが、本発明を適用可能なシステムアーキテクチャは、一人以上の視覚障害者１０１、一つ以上のサーバ１０７、一つ以上のロボット１９０を含むことができる。
さらに、図１には、システム１００の構成要素に接続された一つのネットワーク１０５が示されているが、実際には、様々なタイプの一つ以上のネットワーク１０５が、これらの構成要素に接続されていてもよい。また、図１には、他のユーザ１０３ａおよび１０３ｂの二人が示されているが、ユーザ１０３は二人以上であってもよい。
【００１８】
ネットワーク１０５は、有線ネットワークであっても無線ネットワークであってもよく、また、スター型、トークンリング型や当業者に知られているその他の構成を取ることができる。さらにまた、ネットワーク１０５は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）（例えばインターネット）、または、複数の装置が通信に用いる相互接続されたその他の任意のデータパスであってもよい。さらに別の形態では、ネットワーク１０５はピアツーピアネットワークであってもよい。ネットワーク１０５は、複数の異なる通信プロトコルでデータ送信するための通信ネットワークと接続されたり、このような通信ネットワークを含んだりしてもよい。
ある実施形態では、ネットワーク１０５は、Ｂｌｕｅｔｏｏｔｈ（登録商標）通信ネットワークや、携帯電話通信ネットワークを含み、ＳＭＳ（ショートメッセージサービス）、ＭＭＳ（マルチメディアメッセージサービス）、ＨＴＴＰ（ハイパーテキスト転送プロトコル）、直接データ接続、ＷＡＰ、電子メールなどのデータを送受信する。
ある実施形態では、ネットワーク１０５は、ロボット１９０に対してＧＰＳナビゲーションを提供するためのＧＰＳ衛星を含んでいてもよい。
また、ネットワーク１０５は、例えば、３Ｇ、４Ｇ、ＬＴＥ、ボイスオーバーＬＴＥ（ＶｏＬＴＥ）といったモバイルデータネットワーク、他のモバイルデータネットワーク、
または、モバイルデータネットワークの組合せであってもよい。
一実施形態において、ネットワーク１０５は、異なるネットワークの組合せであってもよい。
【００１９】
ロボット１９０は、メモリとプロセッサを含むコンピュータであり、例えば、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、携帯電話、個人情報端末（ＰＤＡ）、モバイル電子メール装置、携帯ゲーム装置、携帯音楽プレーヤ、コネクテッドデバイスやウェアラブルコンピュータ（スマートウォッチ、スマートグラス、フィットネストラッカー等）、一つ以上のプロセッサが内蔵または接続されたテレビ、車両、ネットワーク１０５へのアクセスが可能なその他の電子機器などである。ロボット１９０は、必ずしも自律移動体である必要はない。
ロボット１９０は、ユーザの動きに基づいてロボット経路を決定するためのシステムである、ムーブメントシステム１９９を備える。
【００２０】
ロボット１９０は、ユーザに対してネットワークサービスを提供するための機能を有していてもよい。ネットワークサービスとは、ネットワーク１０５を通してアクセスできる任意のサービスである。例えば、ネットワークサービスは、ナビゲーション指示、オーディオストリーミングやビデオストリーミング（例えば、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（登録商標）等）などである。
【００２１】
一実施形態において、ムーブメントシステム１９９は、サーバ１０７にも格納される。図１中の点線は、ムーブメントシステム１９９がサーバ１０７に任意に格納されうることを示す。
サーバ１０７は、メモリとプロセッサを含む。
一実施形態において、ムーブメントシステム１９９は、その一部がロボット１９０に、その一部がサーバ１０７に格納されてもよい。例えば、ロボット１９０は、自分の位置についての情報をサーバ１０７に送信し、サーバ１０７が、ロボット経路を演算および修正し、経路についての指示をロボット１９０に戻すようにしてもよい。
【００２２】
ムーブメントシステム１９９は、視覚障害者１０１および他のユーザ１０３の動きに基づいてロボット経路を決定するためのコードおよびルーチンを含む。なお、視覚障害者１０１は、盲目であってもよいし、一時的な視力喪失状態であってもよい。また、視覚障害をもたらす何らかの状態であってもよい。
ムーブメントシステム１９９は、ロボットの現在位置を取得し、また、視覚障害者および他のユーザの位置、方向、速度を表すセンサ情報を取得する。
また、ムーブメントシステム１９９は、視覚障害者および他のユーザの動きを表すモデルを生成する。当該モデルは、視覚障害者に対応するユーザ経路と、ロボットに対応するロボット経路を含む。
また、当該モデルは、「他のユーザの動きは、その歩き方によってある程度推定できる」という事実を考慮したものである。例えば、尻を大きく振りながら歩いているユーザは、より予測できない方向に動くことがある。
【００２３】
ムーブメントシステム１９９は、ロボット、視覚障害者、他のユーザのいずれか同士の衝突を予測するためのマップである安全マップを生成する。例えば、安全マップは、ロボットまたは視覚障害者が、他のユーザと接触する可能性がある位置を表すマップである。安全マップは、視覚障害者の動きを表すモデルに基づいて生成される。
例えば、尻を大きく振りながら歩いているなど、動きに一貫性を示さないユーザは、より不安定な動きをしているとみなされる。結果として、ムーブメントシステム１９９は、彼らの動きは予測が難しいものであるとして、高い衝突危険性が存在するものと判定する。
ムーブメントシステム１９９は、視覚障害者やロボットのどちらかに衝突の危険性があることを判定し、衝突の危険性がある場合に、ユーザ経路またはロボット経路の少なくともいずれかを更新する。
【００２４】
一実施形態において、ムーブメントシステム１９９は、ＦＰＧＡ（Field Programmable
Gate Array）やＡＳＩＣ（Application Specific Integrated Circuit）などのハードウェア、コンピュータのプロセッサで実行可能なソフトウェア、または、それらの組み合わせを用いて実装される。
ある実施形態では、ムーブメントシステム１９９は、装置とサーバの両方に分散して格納されてもよいし、装置とサーバのいずれかのみに格納されてもよい。
【００２５】
（ムーブメントシステムの例）
図２を参照して、ムーブメントシステム１９９の例についてより詳しく説明する。
図２は、システム２００のブロック図である。システム２００は、図１に示したシステム１００における、ロボット１９０およびサーバ１０７のいずれかである。また、システム２００は、例として、ムーブメントシステム１９９、プロセッサ２２５、メモリ、通信ユニット２４５、センサ２４７、カメラ２４９、モータ２５１、モバイルハードウェア２５３、スピーカ２６７などを含んでいてもよい。システム２００が有する構成要素は、バス２２０によって通信可能に接続される。
【００２６】
プロセッサ２２５は、算術論理ユニット、マイクロプロセッサ、汎用コントローラ、または、計算を実行して表示装置に表示信号を提供する他のプロセッサアレイ等を含む。
プロセッサ２２５は、バス２２０に結合され、信号線２２６を介して他の構成要素と通信する。
プロセッサ２２５は、データ信号を処理し、そのアーキテクチャは、ＣＩＳＣ（Complex Instruction Set Computer）、ＲＩＳＣ（Reduced Instruction Set Computer）、これら両方の命令セットの組合せとして実装されたアーキテクチャなど様々なアーキテクチャでありうる。なお、図２には一つのプロセッサ２２５だけが示されているが、複数のプロセッサ２２５が含まれていてもよい。上記以外のプロセッサ、オペレーティングシステム、センサ、表示装置、あるいは物理的構成も採用可能である。
【００２７】
メモリ２２７は、プロセッサ２２５が実行可能な命令やデータを格納する手段である。
メモリ２２７は、バス２２０に結合され、信号線２２８を介して他の構成要素と通信する。格納される命令やデータは、本明細書に示す技術を実行するためのコードを含んでもよい。
メモリ２２７は、ＤＲＡＭ、ＳＲＡＭ、フラッシュメモリやその他の既存のメモリ装置であってもよい。一実施形態において、メモリ２２７は、ハードディスクドライブ、フロッピー（登録商標）ディスクドライブ、ＣＤ−ＲＯＭ装置、ＤＶＤ−ＲＯＭ装置、ＤＶＤ−ＲＡＭ装置、ＤＶＤ−ＲＷ装置、フラッシュメモリ装置や情報記憶の分野において既知のその他の大容量記憶装置などの、非一時的（non-volatile）メモリや永久記憶装置を含んでもよい。
【００２８】
図２に示したように、メモリ２２７は、モーションデータ２９２と経路データ２９７を格納する。メモリ２２７は、本明細書において説明される機能を提供するための他のデータを格納してもよい。
【００２９】
モーションデータ２９２は、視覚障害者１０１、他のユーザ１０３、ロボット１９０の位置、方向、速さを表すデータを含むが、これに限定されるものではない。
例えば、モーションデータ２９２は、センサモジュール２０４によって決定された位置情報や、胴体ムーブメントデータ（後述）を含む。
モーションデータ２９２は、モーションエンジン２０６で生成された、視覚障害者と他のユーザの動きを表すモデルを含んでいてもよい。
また、モーションデータ２９２は、衝突予測エンジン２０８で生成された安全マップを含んでいてもよい。
【００３０】
経路データ２９７は、視覚障害者１０１に対応するユーザ経路と、ロボット１９０に対応するロボット経路を含む。
経路データ２９７は、安全マップを生成し、潜在的衝突を識別する衝突予測エンジン２０８によって生成される、ユーザ経路とロボット経路のレビジョンを含んでいてもよい。
【００３１】
通信ユニット２４５は、システム１００に含まれるサーバ１０７とロボット１９０の少なくとも一つに対してデータを送受信する手段である。通信ユニット２４５は、信号線２３０を通してバス２２０に結合する。ある実施形態では、通信ユニット２４５は、ネットワーク１０５や他の通信チャネルへの直接的な物理的接続のためのポートを含む。
例えば、通信ユニット２４５は、システム１００の他の構成要素と有線通信を行うためのＵＳＢ、ＳＤ、ＣＡＴ−５または類似のポートを含む。
一実施形態において、通信ユニット２４５は、ＩＥＥＥ８０２．１１、ＩＥＥＥ８０２．１６、ＢｌｕｅＴｏｏｔｈ（登録商標）、または他の適切な無線通信方式を含む、一つまたは複数の無線通信方式を用いて、システム１００の他の構成要素や他の通信チャネルとデータを交換するための無線送受信部を含むことができる。
【００３２】
ある実施形態では、通信ユニット２４５は、携帯電話ネットワークを介して、ショートメッセージサービス（ＳＭＳ）、マルチメディアメッセージサービス（ＭＭＳ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、直接的データ接続、ＷＡＰ、電子メールやその他の適切な種類の電子的通信を含むデータを送信するための携帯無線送受信機を含む。
一実施形態において、通信ユニット２４５は有線ポートとワイヤレストランシーバを含む。
通信ユニット２４５は、ＴＣＰ／ＩＰ、ＨＴＴＰ、ＨＴＴＰＳ、ＳＭＴＰなどを含む標準ネットワークプロトコルを用いて、ファイルやメディアオブジェクトを配布するために、ネットワーク１０５への従来型の接続を提供することもできる。
【００３３】
図２に図示された実装例では、ムーブメントシステム１９９は、通信モジュール２０２、センサモジュール２０４、モーションエンジン２０６、衝突予測エンジン２０８、コントローラ２１０と通知モジュール２１２を含む。
ムーブメントシステム１９９のこれらのモジュールは、バス２２０によって互いに通信可能に結合する。
【００３４】
ある実施形態では、ムーブメントシステム１９９のモジュールは、装置とサーバのいずれかのみに格納されてもよいし、複数の装置やサーバに分散して格納および配信されてもよい。
さらに、本実施形態で述べるコンポーネント、モジュール、サーバの分離は、全ての実
施形態において必要とは限らないことを理解されるべきである。
一実施形態において、記載された構成要素、モジュール、装置またはサーバは、通常、一つの構成要素、モジュール、装置またはサーバに集積されることができる。
【００３５】
センサ２４７は、物理的な変化を感知する任意の装置である。センサ２４７は、信号線２３２を介してバス２２０に結合されている。
一実施形態において、センサ２４７はモーションディテクタである。例えば、センサ２４７は、ロボット１９０の方向を検出するジャイロスコープである。別の例では、センサ２４７は、ロボット１９０の加速度を測るのに用いられる加速度計である。
さらに別の例では、センサ２４７は、ＧＰＳや、無線ネットワークを通じた三角測量等によって位置検出を行う。
一実施形態において、センサ２４７は、通信モジュール２０２を介して位置情報をセンサモジュール２０４に送る。一実施形態において、センサ２４７は、通信モジュール２０２を介して位置情報をモーションエンジン２０６、衝突予測エンジン２０８、またはコントローラ２１０に送る。
他の実施形態において、センサ２４７は、メモリ２２７の中にモーションデータ２９２の一部として位置情報を保存する。
【００３６】
一実施形態において、センサ２４７は深さセンサを含む。
一実施形態において、深さセンサは、例えば赤外線レーザ光のスペックルパターンのような構造化光（structured light）を用いて深さを決定する。
他の実施形態において、深さセンサは、カメラから対象物まで光信号が進むのにかかる時間に基づいて深さを決定する、飛行時間計測式（time-of-flight）の技術を用いて深さを決定する。例えば、深さセンサは、レーザ測距器である。
深さセンサは、段差や、当該段差の範囲を深さとともに検出するのに用いられてもよい。
一実施形態において、センサ２４７は、深さ情報を、視覚障害者１０１、他のユーザ１０３、ロボット１９０の位置を識別するためにセンサモジュール２０４に送信し、また、視覚障害者１０１および他のユーザ１０３がどの程度の運動一貫性を持っているかを決定するためにモーションエンジン２０６に送信し、また、ユーザ間の衝突可能性を識別するために衝突予測エンジン２０８に送信し、あるいは、ロボットに、ロボット経路を辿るように指示する命令を生成するためにコントローラ２１０に送信する。
他の実施形態において、センサ２４７は、モーションデータ２９２の一部として深さデータをメモリ２２７に格納する。
【００３７】
一実施形態において、センサ２４７は、音を電気信号に変えるためのマイクを含む。マイクは、視覚障害者１０１から、「視覚障害者１０１に指示を提供する」といったリクエストを要求する命令の入力を受け取ってもよい。マイクは、命令を処理するために、電気信号をムーブメントシステム１９９に送信する。
【００３８】
カメラ２４９は、信号線２３４を通してバス２２０に結合された、画像を取得するための物理デバイスである。一実施形態において、カメラ２４９は電気的な画像を取り込む。カメラ２４９は、ＣＣＤやＣＭＯＳといった、視覚的イメージを電気信号に変換するイメージセンサを含む。
一実施形態において、カメラ２４９は、電気信号を、視覚障害者１０１、他のユーザ１０３、ロボット１９０の位置を識別するためにセンサモジュール２０４に送信し、また、視覚障害者１０１および他のユーザ１０３がどの程度の運動一貫性を持っているかを決定するためにモーションエンジン２０６に送信し、また、ユーザ間の衝突可能性を識別するために衝突予測エンジン２０８に送信し、あるいは、ロボットに、ロボット経路を辿るように指示する命令を生成するためにコントローラ２１０に送信する。
他の実施形態において、カメラ２４９は、モーションデータ２９２の一部として電気信号をメモリ２２７に格納する。
【００３９】
システム２００がロボット１９０である場合、システム２００は、モータ２５１とモバイルハードウェア２５３を含む。
モータ２５１は、モータ２５１は、信号線２３６を通してバス２２０に結合する。また、モバイルハードウェア２５３は、信号線２３８を通してバス２２０に結合する。
モータ２５１は、モバイルハードウェア２５３を駆動するためのハードウェアである。また、モバイルハードウェア２５３は、ロボット１９０を動かすためのハードウェア（例えば車輪）である。
モータ２５１とモバイルハードウェア２５３は、ロボット１９０を動かすために用いられる。例えば、衝突予測エンジン２０８が、モータ２５１に、モバイルハードウェア２５３を駆動させ、ユーザと危険物との間に位置するロボット１９０を再配置するよう命令を行う。
【００４０】
スピーカ２６７は、信号線２５４を通してバス２２０に結合された、音声指示を発行するためのオプションのハードウェアである。例えば、システム２００がロボット１９０である場合、スピーカ２６７は、通知モジュール２１２から、視覚障害者１０１に指示を提供するための命令を受信する。
【００４１】
一実施形態において、ムーブメントシステム１９９のモジュール２０２，２０４，２０６，２０８，２１０，２１２のそれぞれは、以下に記す機能を提供する、プロセッサ２２５で実行可能な一組の命令である。
他の実施形態において、モジュール２０２，２０４，２０６，２０８，２１０，２１２のそれぞれは、メモリ２２７に格納され、システムのプロセッサ２２５によってアクセスされ、実行されてもよい。
モジュール２０２，２０４，２０６，２０８，２１０，２１２のそれぞれは、プロセッサ２２５や、コンピュータ２００の他の構成要素と協調や通信を行うように構成される。
一実施形態において、モジュール２０２，２０４，２０６，２０８，２１０，２１２のそれぞれは、格納され、システム２００のプロセッサによって実行される一つ以上のシンクライアントとして機能してもよい。
【００４２】
通信モジュール２０２は、ムーブメントシステム１９９とシステム２００の他の構成要素との間の通信を処理するためのルーチンを含むソフトウェアである。
一実施形態において、通信モジュール２０２は、プロセッサ２２５で実行可能な一組の命令であり、通信を取り扱うために下記の機能を提供する。
通信モジュール２０２は、信号線２２２を通してバス２２０に通信可能に結合してもよい。
【００４３】
通信モジュール２０２は、通信ユニット２４５を介して、サーバ１０７とロボット１９０との間でデータを送受信する。
例えば、通信モジュール２０２は、「ユーザ経路が修正されなければ、視覚障害者１０１が他のユーザ１０３と衝突する」という情報を、通信ユニット２４５を介して受信する。
【００４４】
一実施形態において、通信モジュール２０２は、ムーブメントシステム１９９の構成要素からデータを受信し、メモリ２２７に保存する。
一実施形態において、通信モジュール２０２はメモリ２２７からデータを取得し、ムーブメントシステム１９９の一つ以上の構成要素に送信する。
一実施形態において、通信モジュール２０２は、ムーブメントシステム１９９の構成要
素間の通信を処理してもよい。例えば、通信モジュール２０２は、一つのモジュールからデータを取得し、別のモジュールに送信する。
【００４５】
センサモジュール２０４は、ロボット１９０の現在の位置を決定し、視覚障害者１０１と他のユーザ１０３の位置、方向、速度を表すセンサ情報を取得するためのルーチンを含むソフトウェアである。
一実施形態において、センサモジュール２０４は、ユーザとロボット１９０をセンシングするために以下に記す機能を提供する、プロセッサ２２５で実行可能な一組の命令である。
センサモジュール２０４は、信号線２２４を通してバス２２０に通信可能に結合する。
【００４６】
一実施形態において、センサモジュール２０４は通信モジュール２０２を介してカメラ２４９から画像を取得する。
センサモジュール２０４は、画像から、ユーザの位置と方向を判定する。
位置は、直交座標系による緯度と経度等によって表されてもよい。また、センサモジュール２０４は、ユーザの胴の向きを判定し、当該向きからユーザの顔の向きを決定してもよい。
また、センサモジュール２０４は、カメラ２４９が取得した画像を用い、ユーザの胴体の方向を連続した画像で比較することで、ユーザの胴体の方向を時刻の関数として表したデータである胴体ムーブメントデータを識別する。モーションエンジン２０６は、各時刻におけるユーザの胴体の方向を、胴体ムーブメントのタイプを分類するために用いる。
【００４７】
センサモジュール２０４は、ロボット１９０の現在の位置を決定する。
例えば、センサモジュール２０４は、ＧＰＳや、ＷｉＦｉ（登録商標）による三角測量信号などによって、ロボット１９０の位置を決定するために、ロボット１９０の一部であるセンサ２４７を用いる。他の例では、センサモジュール２０４は、カメラ２４９から画像を取得し、画像中の、ロボット１９０に対する既知のオブジェクトと比較することでロボット１９０の現在位置を決定する。
【００４８】
モーションエンジン２０６は、ユーザのモーションのモデルを生成するためのルーチンを含むソフトウェアである。
一実施形態において、モーションエンジン２０６は、モーションのモデルを生成するために、以下に記す機能を提供する、プロセッサ２２５で実行可能な一組の命令である。
モーションエンジン２０６は、信号線２２６を通してバス２２０に通信可能に結合する。
【００４９】
一実施形態において、モーションエンジン２０６は、視覚障害者１０１に対応するユーザ経路と、ロボット１９０に対応するロボット経路を生成する。
一実施形態において、ユーザ経路とロボット経路は同一であるが、視覚障害者１０１とロボット１９０との間の距離に基づいて調整されたものである。例えば、ロボット１９０は、視覚障害者１０１を危険から保護するために、５フィートだけ先行する経路を辿る。
【００５０】
ユーザ経路は、視覚障害者１０１から得た情報によって決定されてもよい。
例えば、視覚障害者がロボット１９０に対して、目的地へ到達するための指示を得るため、マイクとして機能するセンサ２４７にリクエストを発話するようにしてもよい。
モーションエンジン２０６は、ユーザリクエストを機械が理解できる言語に翻訳して、それに応じて指示を生成するための、発話をテキストに変換するサブコンポーネントを含んでいてもよい。
他の実施形態において、モーションエンジン２０６は、視覚障害者１０１の行動に基づいてユーザ経路を決定する。例えば、視覚障害者１０１が、月曜日から金曜日までの間、
毎日午前８時に同じ経路をとっている場合、モーションエンジン２０６は、当該時間に同様の経路を生成する。
【００５１】
モーションエンジン２０６は、視覚障害者１０１と他のユーザ１０３のモーションのモデルを生成する。一実施形態において、モーションエンジン２０６は、各ユーザに対応する胴体ムーブメントデータを取得してモデルを生成する。
胴体ムーブメントデータは、センサモジュール２０４から通信モジュール２０２を介して取得してもよいし、モーションエンジン２０６が、モーションデータ２９２の一部としてメモリ２２７に記憶されたものを取得してもよい。
モーションエンジン２０６は、胴体ムーブメントデータに基づいて、各ユーザの顔の方向を決定する。そして、顔の方向から、モーションエンジン２０６は、各ユーザの歩行方向を決定する。
【００５２】
モーションエンジン２０６は、胴体の方向と歩行方向に基づいて、各ユーザが、高い運動一貫性を持っているか、低い運動一貫性を持っているかを判定する。
低い運動一貫性を持っている人は、尻を大きく振りながら歩いているような人である。すなわち、胴体の方向と歩行方向との間の一貫性が少ない。低い運動一貫性は、運動の不確実性がより高いことを意味する。ユーザが向かっている方向が明確でないためである。
反対に、高い運動一貫性を示す人は、軍隊行進のような歩き方をしている人である。すなわち、胴体の方向と歩行方向との間の一貫性が高い。高い運動一貫性は、運動の不確実性がより低いことを意味する。ユーザは尻に対して垂直な方向に歩いている可能性が高いためである。
一実施形態において、モーションエンジン２０６は、確率的手法を使用して、胴体ムーブメントデータに含まれる胴体の向きと、現在の動き（歩行方向）との間における分散スケールパラメータを取得ないし更新することにより、人の挙動を推定する。例えば、モーションエンジン２０６は、確率的手法としてベイジアンフィルタを用いる。
【００５３】
図３Ａは、側面図および上面図であり、グラフィック３００は、低い運動一貫性３０５を持つ人と、高い運動一貫性３１０を持つ人における重みを、ユーザの胴体に対する角度の関数として図示したものである。グラフィック３００は、低い運動一貫性を持つユーザが、高い運動一貫性を持つユーザと比べて、より予想できない方向に動くことを示している。
【００５４】
衝突予測エンジン２０８は安全マップを生成し、衝突の危険性があるかどうかを判定し、衝突の危険性に応じて、経路を更新するためのルーチンを含むソフトウェアである。
一実施形態において、衝突予測エンジン２０８は、新しい経路を生成するために以下に記す機能を提供する、プロセッサ２２５で実行可能な一組の命令である。衝突予測エンジン２０８は、信号線２２９を通してバス２２０に通信可能に結合する。
【００５５】
一実施形態において、衝突予測エンジン２０８は、視覚障害者１０１および他のユーザ１０３からなるペアにおける衝突の危険度合いを判定し、当該ペアにおける衝突可能性を判定することによって、安全マップを生成する。
一実施形態において、衝突予測エンジン２０８は、同様に、ロボット１９０および他のユーザ１０３からなるペアを用いて安全マップを生成する。
【００５６】
一実施形態において、衝突予測エンジン２０８は、視覚障害者と他のユーザとの間でペアを生成する。衝突予測エンジン２０８は、各ペアのメンバ同士の、所定の地点に対する到達時間の差を判定し、当該到達時間が境界パラメータよりも少ないかを判定する。
例えば、衝突予測エンジン２０８は、地点Ｘ１にいる視覚障害者の移動先を地点Ｘ０とする。他のユーザ１０３は地点Ｘ２にいる。このとき、衝突予測エンジン２０８は、視覚
障害者１０１の到達時間、すなわち、Ｘ１からＸ０に移動するのにかかる時間（例えば５．５秒とする）を判定する。また、衝突予測エンジン２０８は、他のユーザ１０３がＸ２からＸ０まで移動するのにかかる到達時間（例えば５．２５秒とする）を判定する。
衝突予測エンジン２０８は、当該到達時間の差が、境界パラメータよりも小さいか否かを判定する。例えば、境界パラメータが０．５秒であって、到達時間の差が０．２５秒である場合、０．２５秒は０．５という境界パラメータよりも小さい。この場合、衝突予測エンジン２０８は、衝突可能性を増加させる。
【００５７】
到達時間の差が、境界パラメータよりも大きい場合（例えば１秒である場合）、衝突予測エンジン２０８は、衝突可能性を０まで減少させる。例えば、境界パラメータが０．７５秒であって、到達時間の差が１．５秒である場合、衝突予測エンジン２０８は、衝突可能性を０に設定する。時間の差が境界パラメータよりも大きいためである。
衝突予測エンジン２０８が、衝突可能性を生成するために、各ペア（Ｘ２…Ｘｎ）に対応する到達時間の差の算出をそれぞれ行ったのち、衝突予測エンジン２０８は、各ペアに対応する衝突可能性に基づいて、安全マップを生成する。
【００５８】
ここで、図３Ｂを参照し、ユーザの動きに基づいて経路が修正された場合のシナリオを例示する。
環境マップ３２０は、視覚障害者３０１ａ、二人のユーザ３０１ｂおよび３０１ｃ、ロボット１９０を含んでいる。ユーザ経路３２１は直線である。本例では、ロボット１９０の経路は、ユーザ経路３２１の数秒前方を進むという点を除いて、ユーザ経路３２１と同一である。
モーションエンジン２０６は、視覚障害者３０１ａ、他のユーザ３０１ｂおよび３０１ｃのモーションのモデルを生成する。本例では、第一のユーザ３０１ｂは、高い運動一貫性が関連付けられた、予測されたモーションベクタ３２３を有している。また、第二のユーザ３０１ｃは、低い運動一貫性が関連付けられた、予測されたモーションベクタ３２３を有している。
衝突予測エンジン２０８は、第一のユーザ３０１ｂとの衝突可能性が０であって、第二のユーザ３０１ｃとの衝突可能性が高いことを予測する安全マップを生成する。
高い衝突可能性は、第二のユーザ３０１ｃの位置と、第二のユーザ３０１ｃに関連付いた運動の不確実性に基づいて得られたものである。
結果として、衝突予測エンジン２０８は、第二のユーザ３０１ｃとの衝突を避けるため、ユーザ経路を、符号３２４で示された経路（破線）に変更する。
【００５９】
コントローラ２１０は、ロボット１９０にロボット経路を辿るように指示するためのルーチンを含むソフトウェアである。コントローラ２１０は、信号線２２９を通してバス２２０に通信可能に結合する。
【００６０】
一実施形態において、コントローラ２１０は、可能な限りロボット経路の近傍を辿るように、速さについての制約を生成してもよい。例えば、コントローラ２１０は、ロボット経路に沿って移動するための方向と速さを決定する。
コントローラ２１０が速さについての制約を生成したのち、コントローラ２１０は、モータ２５１に対して、モバイルハードウェア２５３を駆動し、ロボット１９０をロボット経路に沿って動かすための指示を行う。
【００６１】
通知モジュール２１２は、ユーザ経路に基づいて、指示を視覚障害者に通知するためのルーチンを含むソフトウェアである。
一実施形態において、通知モジュール２１２は、指示を提供するために以下に記す機能を提供する、プロセッサ２２５で実行可能な一組の命令である。
また、通知モジュール２１２は、信号線２３１を介して、プロセッサ２２５や、コンピ
ュータ２００の他の構成要素と協調や通信を行うように構成される。
【００６２】
通知モジュール２１２は、衝突予測エンジン２０８からユーザ経路を受信し、あるいは、メモリ２２７から経路データ２９７の一部としてユーザ経路を取得する。
通知モジュール２１２は、コードを人間が理解できる音声に変換し、通信モジュール２０２を経由して、通知をスピーカ２６７に送る。また、一実施形態において、通知モジュール２１２は、視覚障害者１０１と、他のユーザ１０３や障害物とが衝突する可能性がある場合における警告といった、追加の通知を提供する。
【００６３】
（方法）
次に、図４を参照して、ユーザの動きに基づいてロボット経路を決定する方法４００の例を示す。
一実施形態において、方法４００は、サーバ１０７またはロボット１９０に格納されたムーブメントシステム１９９のモジュールによって実行されてもよい。例えば、ムーブメントシステム１９９は、センサモジュール２０４、モーションエンジン２０６、衝突予測エンジン２０８、コントローラ２１０と通知モジュール２１２を含んでいてもよい。
【００６４】
まず、センサモジュール２０４が、ロボット１９０の現在の位置を決定する（ステップ４０２）。例えば、センサモジュール２０４は、ロボットの現在の位置を決定するために、センサ２４７が決定したＧＰＳ座標を用いる。
次に、センサモジュール２０４が、視覚障害者１０１と他のユーザ１０３の位置、方向、速さを表すセンサ情報を取得する。（ステップ４０４）。例えば、センサモジュール２０４は、センサ２４７から座標情報を取得、あるいは、センサモジュール２０４がユーザの位置、方向、速さを取得するために用いるカメラ２４９から画像を取得する。
【００６５】
次に、モーションエンジン２０６が、視覚障害者１０１および他のユーザ１０３のモーションのモデルであって、視覚障害者に対応するユーザ経路と、ロボット１９０に対応するロボット経路を含んでいるモデルを生成する（ステップ４０６）。
当該モデルは、ユーザが有している運動一貫性によって決定される不確実性モデル（uncertainty model）であってもよい。
次に、衝突予測エンジン２０８が、ロボット、視覚障害者、他のユーザのいずれかの間における衝突を予測するための安全マップを生成する（ステップ４０８）。
例えば、衝突予測エンジン２０８は、視覚障害者１０１および他のユーザ１０３のペアと、当該ペアにおける到達時間の差に基づいて安全マップを生成する。
次に、衝突予測エンジン２０８が、視覚障害者およびロボットのどちらかについて、衝突の危険性があるか否かを判定する（ステップ４１０）。
もし、衝突の危険性がある場合、衝突予測エンジン２０８が、ユーザ経路とロボット経路の少なくとも片方を更新し（ステップ４１４）、コントローラ２１０が、ロボット１９０に対して、ロボット経路を辿るように指示を行う（ステップ４１６）。
もし、衝突の危険性が無い場合、コントローラ２１０は、ロボット１９０に対して、ロボット経路を辿るように指示を行う（ステップ４１６）。
次に、通知モジュール２１２が、ユーザ経路に基づいて視覚障害者に指示を行う（ステップ４１８）。
そして、ロボットの現在位置を決定し、再度前述した方法が実行される。
【００６６】
図５は、視覚障害者と他のユーザのモーションのモデルを生成する方法５００を例示したフローチャートである。
まず、モーションエンジン２０６が、各ユーザに対応する胴体ムーブメントデータを取得する（ステップ５０２）。例えば、モーションエンジン２０６は、ユーザが尻を振って歩いているか、軍隊行進のような歩き方をしているか表すデータを取得する。
次に、モーションエンジン２０６が、各ユーザの顔の方向を判定する（ステップ５０４）。
次に、モーションエンジン２０６が、顔の方向に基づいて、各ユーザの歩行方向を判定する（ステップ５０６）。
次に、モーションエンジン２０６が、胴体の方向と歩行方向に基づいて、各ユーザが、低い運動一貫性を示しているか、高い運動一貫性を示しているかを判定する（ステップ５０８）。
次に、モーションエンジン２０６が、当該運動一貫性に基づいて、人の動きの不確実性を判定する（ステップ５１０）。
【００６７】
図６は、安全マップを生成する方法６００を例示したフローチャートである。
まず、衝突予測エンジン２０８が、視覚障害者と他の各ユーザとの間でペアを生成する（ステップ６０２）。
次に、衝突予測エンジン２０８が、各ペアのメンバ間における到達時間の差を判定する（ステップ６０４）。例えば、視覚障害者１０１が、所定の場所に、他のユーザ１０３の２秒後に到達する。
次に、衝突予測エンジン２０８が、到達時間の差が境界パラメータよりも小さいか否かを判定する（ステップ６０６）。
もし、差が境界パラメータよりも小さい場合、衝突予測エンジン２０８は、衝突可能性を増加させる（ステップ６０８）。また、差が境界パラメータよりも大きい場合、衝突予測エンジン２０８は、衝突可能性を０に設定する（ステップ６１０）。
次に、衝突予測エンジン２０８が、各ペアにおける衝突可能性に基づいて、安全マップを生成する（ステップ６１２）。
【００６８】
以上の説明では、本発明を十分に理解できるように、多くの詳細について説明した。しかしながら、各実施形態はこれらの具体的な詳細無しでも良いことは当業者にとって明らかであろう。また、説明が不明瞭になることを避けるために、構造や装置をブロック図の形式で表すこともある。例えば、実施形態は、ユーザインタフェースおよび特定のハードウェアとともに説明される。しかし、ここでの説明は、データおよびコマンドを受信する任意のタイプの計算装置および任意の周辺機器について適用できる。
【００６９】
本明細書における「一実施形態」または「他の実施形態」等という用語は、その実施形態と関連づけて説明される特定の特徴・構造・性質が少なくとも本発明の一つの実施形態に含まれることを意味する。「１つの実施形態における」等という用語は本明細書内で複数用いられるが、これらは必ずしも同一の実施形態を示すものとは限らない。
【００７０】
本明細書の詳細な説明の一部は、非一時的（non-transitory）なコンピュータ可読記憶媒体に記憶されたデータビットに対する動作のアルゴリズムおよび記号的表現として提供される。これらのアルゴリズム的な説明および表現は、データ処理技術分野の当業者によって、他の当業者に対して自らの成果の本質を最も効果的に説明するために用いられるものである。なお、本明細書において（また一般に）アルゴリズムとは、所望の結果を得るための論理的な手順を意味する。処理のステップは、物理量を物理的に操作するものである。必ずしも必須ではないが、通常は、これらの量は記憶・伝送・結合・比較およびその他の処理が可能な電気的または磁気的信号の形式を取る。通例にしたがって、これらの信号をビット・値・要素・エレメント・シンボル・キャラクタ・項・数値などとして称することが簡便である。
【００７１】
なお、これらの用語および類似する用語はいずれも、適切な物理量と関連付いているものであり、これら物理量に対する簡易的なラベルに過ぎないということに留意する必要がある。以下の説明から明らかなように、特に断らない限りは、本明細書において「処理」
「計算」「コンピュータ計算（処理）」「判断」「表示」等の用語を用いた説明は、コンピュータシステムや類似の電子的計算装置の動作および処理であって、コンピュータシステムのレジスタやメモリ内の物理的（電子的）量を、他のメモリやレジスタまたは同様の情報ストレージや通信装置、表示装置内の物理量として表される他のデータへ操作および変形する動作および処理を意味する。
【００７２】
本発明は、本明細書で説明される動作を実行する装置にも関する。この装置は要求される目的のために特別に製造されるものであっても良いし、汎用コンピュータを用いて構成しコンピュータ内に格納されるプログラムによって選択的に実行されたり再構成されたりするものであっても良い。このようなコンピュータプログラムは、コンピュータのシステムバスに接続可能な、例えばフロッピー（登録商標）ディスク・光ディスク・ＣＤ−ＲＯＭ・ＭＯディスク・磁気ディスクなど任意のタイプのディスク、読み込み専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気カード、フラッシュメモリ、光学式カード、電子的命令を格納するために適した任意のタイプの媒体などの、非一時的なコンピュータ可読記憶媒体に記憶される。
【００７３】
発明の具体的な実施形態は、完全にハードウェアによって実現されるものでも良いし、完全にソフトウェアによって実現されるものでも良いし、ハードウェアとソフトウェアの両方によって実現されるものでも良い。好ましい実施形態は、ソフトウェアによって実現される。ここでソフトウェアとは、ファームウェア、常駐ソフトウェア、マイクロコードやその他のソフトウェアを含むものである。
【００７４】
さらに、ある実施形態は、コンピュータが利用あるいは読み込み可能な記憶媒体からアクセス可能なコンピュータプログラムプロダクトの形態を取る。この記憶媒体は、コンピュータや任意の命令実行システムによってあるいはそれらと共に利用されるプログラムコードを提供する。コンピュータが利用あるいは読み込み可能な記憶媒体とは、命令実行システムや装置によってあるいはそれらと共に利用されるプログラムを、保持、格納、通信、伝搬および転送可能な任意の装置を指す。
【００７５】
プログラムコードを格納・実行するために適したデータ処理システムは、システムバスを介して記憶素子に直接または間接的に接続された少なくとも１つのプロセッサを有する。記憶素子は、プログラムコードの実際の実行に際して使われるローカルメモリや、大容量記憶装置や、実行中に大容量記憶装置からデータを取得する回数を減らすためにいくつかのプログラムコードを一時的に記憶するキャッシュメモリなどを含む。
【００７６】
入力／出力（Ｉ／Ｏ）装置は、例えばキーボード、ディスプレイ、ポインティング装置などであるが、これらはＩ／Ｏコントローラを介して直接あるいは間接的にシステムに接続される。
【００７７】
システムにはネットワークアダプタも接続されており、これにより、私的ネットワークや公共ネットワークを介して他のデータ処理システムやリモートにあるプリンタや記憶装置に接続される。モデム、ケーブルモデム、イーサネット（登録商標）は、現在利用可能なネットワークアダプタのほんの一例である。
【００７８】
最後に、本明細書において提示されるアルゴリズムおよび表示は特定のコンピュータや他の装置と本来的に関連するものではない。本明細書における説明にしたがったプログラムを有する種々の汎用システムを用いることができるし、また要求された処理ステップを実行するための特定用途の装置を製作することが適した場合もある。これら種々のシステムに要求される構成は、以下の説明において明らかにされる。さらに、本発明は、特定のプログラミング言語と関連づけられるものではない。本明細書で説明される本発明の内容
を実装するために種々のプログラミング言語を利用できることは明らかであろう。
【００７９】
実施形態の前述の説明は、例示と説明を目的として行われたものである。したがって、開示された実施形態が本発明の全てではないし、本発明を上記の実施形態に限定するものでもない。本発明は、上記の開示にしたがって、種々の変形が可能である。本発明の範囲は上述の実施形態に限定解釈されるべきではなく、特許請求の範囲にしたがって解釈されるべきである。本発明の技術に詳しい者であれば、本発明はその思想や本質的特徴から離れることなくその他の種々の形態で実現できることを理解できるであろう。同様に、モジュール・処理・特徴・属性・方法およびその他の本発明の態様に関する名前付けや分割方法は必須なものでものないし重要でもない。また、本発明やその特徴を実装する機構は異なる名前や分割方法や構成を備えていても構わない。さらに、当業者であれば、モジュール・処理・特徴・属性・方法およびその他の本発明の態様は、ソフトウェア、ハードウェア、ファームウェアもしくはこれらの組合せとして実装できることを理解できるであろう。また、本発明をソフトウェアとして実装する場合には、モジュールなどの各要素は、どのような様式で実装されても良い。例えば、スタンドアローンのプログラム、大きなプログラムの一部、異なる複数のプログラム、静的あるいは動的なリンクライブラリー、カーネルローダブルモジュール、デバイスドライバー、その他コンピュータプログラミングの当業者にとって既知な方式として実装することができる。さらに、本発明の実装は特定のプログラミング言語に限定されるものではないし、特定のオペレーティングシステムや環境に限定されるものでもない。以上のように、上記の本発明の説明は限定的なものではなく例示的なものであり、本発明の範囲は添付の特許請求の範囲にしたがって定められる。
【符号の説明】
【００８０】
１０１  視覚障害者
１０３  ユーザ
１０５  ネットワーク
１０７  サーバ
１９０  ロボット
１９９  ムーブメントシステム
２０２  通信モジュール
２０４  センサモジュール
２０６  モーションエンジン
２０８  衝突予測エンジン
２１０  コントローラ
２１２  通知モジュール
２２５  プロセッサ
２２７  メモリ
２４５  通信ユニット
２４７  センサ
２４９  カメラ
２５１  モータ
２５３  モバイルハードウェア
２６７  スピーカ
２９２  モーションデータ
２９７  経路データ
【図１】
0006657580.tif 000002
【図２】
0006657580.tif 000003
【図３Ａ】
0006657580.tif 000004
【図３Ｂ】
0006657580.tif 000005
【図４】
0006657580.tif 000006
【図５】
0006657580.tif 000007
【図６】
0006657580.tif 000008