(57)【特許請求の範囲】
【請求項１】
ユーザにより入力された走行経路に基づいて移動可能な第２の装置を遠隔操作する第１の装置であって、
前記移動可能な第２の装置から受信した視覚データを表示する表示部と、
ユーザにより前記視覚データ上に描画入力された前記移動可能な第２の装置の走行経路を受信し、前記移動可能な第２の装置のセンサデータから１つ以上の障害物を識別し、受信された前記走行経路が識別された１つ以上の前記障害物と交差する少なくとも１つの部分を有することを判定し、受信された前記走行経路とは異なる１つ以上の部分を備える代替走行経路を前記表示部に提供するプロセッサと、
を含む、第１の装置。
【請求項２】
前記表示部は、前記移動可能な第２の装置から受信した視覚データ上に受信された前記走行経路を重ねて表示し、
前記プロセッサは、識別された１つ以上の前記障害物の近接閾値内にある受信された前記走行経路の１つ以上の部分を、前記表示部上で強調する、
請求項１に記載の第１の装置。
【請求項３】
前記プロセッサは前記移動可能な第２の装置へ命令を送信し、前記命令は、前記識別された１つ以上の障害物からの距離に対する速度に関連するマッピング関数に基づく速度で受信された前記走行経路を走行させることを含む、請求項２に記載の第１の装置。
【請求項４】
前記表示部は、前記移動可能な第２の装置から受信した視覚データ上に受信された前記走行経路を重ねて表示し、
前記プロセッサは、識別された１つ以上の前記障害物と交差する受信された前記走行経路の１つ以上の部分を前記表示部上で強調する、
請求項１に記載の第１の装置。
【請求項５】
前記プロセッサは識別された１つ以上の前記障害物を前記表示部上で強調する、請求項１に記載の第１の装置。
【請求項６】
前記プロセッサは、前記移動可能な第２の装置の位置と識別された１つ以上の前記障害物とに基づいて、前記移動可能な第２の装置から受信した視覚データ上に重ねて表示する１つ以上のオーバーレイを取り出す、請求項１〜請求項５の何れか１項に記載の第１の装置。
【請求項７】
ユーザにより入力された走行経路に基づいて移動可能装置を遠隔操作する方法であって、
プロセッサが、
移動可能装置から受信した視覚データ上にユーザにより描画入力された移動可能装置の走行経路を受信し、
前記移動可能装置のセンサデータから１つ以上の障害物を識別し、
受信された前記走行経路が識別された１つ以上の前記障害物と交差する少なくとも１つの部分を有することを判定し、
受信された前記走行経路とは異なる、１つ以上の部分を備える代替走行経路を表示部上に提供する、
方法。
【請求項８】
前記表示部上で、前記移動可能装置から受信した視覚データの上に受信された前記走行経路を重ねて表示し、
前記表示部上で、識別された１つ以上の前記障害物の近接閾値内にある受信された前記走行経路の１つ以上の部分を強調する、
ことをさらに含む、請求項７に記載の方法。
【請求項９】
前記移動可能装置へ命令を送信することをさらに含み、
前記命令は、識別された１つ以上の前記障害物からの距離に対する速度に関連するマッピング関数に基づく速度で前記受信された走行経路を走行させることを含む、請求項８に記載の方法。
【請求項１０】
前記表示部上で、前記移動可能装置から受信した視覚データの上に受信された前記走行経路を重ねて表示し、
前記表示部上で、識別された１つ以上の障害物と交差する受信された前記走行経路の１つ以上の部分を強調する、
ことをさらに含む、請求項７に記載の方法。
【請求項１１】
前記表示部上で識別された１つ以上の障害物を強調する、
ことをさらに含む、請求項７に記載の方法。
【請求項１２】
前記移動可能装置の位置と識別された１つ以上の前記障害物とに基づいて、前記移動可能装置からの視覚データ上に重ねて表示する１つ以上のオーバーレイを取り出す、
ことをさらに含む、請求項７〜請求項１１の何れか１項に記載の方法。
【請求項１３】
ユーザにより入力された走行経路に基づいて移動可能装置を遠隔操作するためのプログラムであって、
移動可能装置から受信した視覚データ上にユーザにより描画入力された移動可能装置の走行経路を受信し、
前記移動可能装置のセンサデータから障害物を識別し、
受信された前記走行経路が識別された１つ以上の前記障害物と交差する少なくとも１つの部分を有することを判定し、
受信された前記走行経路とは異なる１つ以上の部分を備える代替走行経路を表示部上に提供する、
処理をコンピュータに実行させるためのプログラム。
【請求項１４】
前記処理は、
前記表示部上で、前記移動可能装置から受信した視覚データの上に受信された前記走行経路を重ねて表示し、
前記表示部上で、識別された１つ以上の前記障害物の近接閾値内にある受信された前記走行経路の１つ以上の部分を強調する、
ことをさらに含む、
請求項１３に記載のプログラム。
【請求項１５】
前記処理は、前記移動可能装置へ命令を送信する、ことをさらに含み、
前記命令は、識別された１つ以上の前記障害物からの距離に対する速度に関連するマッピング関数に基づく速度で受信された前記走行経路を走行させることを含む、
請求項１４に記載のプログラム。
【請求項１６】
前記処理は、
前記表示部上で、前記移動可能装置から受信した視覚データの上に受信された前記走行経路を重ねて表示し、
前記表示部上で、識別された１つ以上の前記障害物と交差する受信された前記走行経路の１つ以上の部分を強調する、
ことをさらに含む、
請求項１３に記載のプログラム。
【請求項１７】
前記処理は、識別された１つ以上の前記障害物を前記表示部上で強調する、ことを含む、請求項１３に記載のプログラム。
【請求項１８】
前記処理は、前記移動可能装置の位置と前記識別された１つ以上の障害物とに基づいて、前記移動可能装置からの視覚データ上に重ねて表示する１つ以上のオーバーレイを取り出す、ことをさらに含む、請求項１３〜請求項１７の何れか１項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動可能な装置のための遠隔操作装置、方法及びプログラムに関する。
【背景技術】
【０００２】
自律的な位置推定と走行のための関連技術の方法には、同時位置推定地図構築手法によって地図を作成し、レーザスキャナまたはビーコンを利用してその地図内に位置を特定することが含まれる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】ベーカー（Baker）ら、「都市における探索及び救援のための人ロボットインターフェイスの改良（Improved Interfaces for Human-Robot Interaction in Urban Search and Rescue）」、ＩＥＥＥ  システム、人及びサイバネティクス（SMC(3)）、２００４年、頁２９６０〜２９６５
【非特許文献２】コルティン（Coltin）ら、「効率的半自律遠隔テレプレゼンス（Effective semi-autonomous telepresence）」、コンピュータサイエンス講義メモ（Lecture Notes in Computer Science 7416）、２０１２年、頁３６５〜３７６
【非特許文献３】クロニス（Chronis）ら、「可動ロボットのためのスケッチベースナビゲーション（Sketch-Based Navigation for Mobile Robots）」、ＩＥＥＥ  ファジィシステムに関する第１２回国際会議（IEEE International Conference on Fuzzy Systems）、２００３年、頁２８４〜２８９
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、ユーザがロボットのカメラビュー上で移動経路コマンドを直接描画することができ、かつ、不可能な移動経路コマンドをユーザが描画することを防止することを目的とする。
【課題を解決するための手段】
【０００５】
実装例は、ロボットの移動を遠隔制御するシステム及び方法を含んでいる。このシステムでは、ユーザには、抽出されたセンサデータで増強された、ロボットのカメラからの映像を含むことが可能な表示が提示される。このシステムは、ユーザがロボットのカメラビュー上で移動経路コマンドを直接描画できるようにする。障害物に対するシーン解析が遂行されて、インタラクティブにコマンドの描画が可能であり、不可能な経路をユーザが描画することが防止される。経路のスケッチがロボット座標系に変換されて、それを用いてロボットを所望位置に移動させるコマンドが生成される。センサデータはまたカメラビューの増強にも利用され、詳細には、危険物及び障害物が強調される。
【０００６】
第１の実施形態は、ユーザにより入力された走行経路に基づいて移動可能な第２の装置を遠隔操作する第１の装置であって、前記移動可能な第２の装置から受信した視覚データを表示する表示部と、ユーザにより前記視覚データ上に描画入力された前記移動可能な第２の装置の走行経路を受信し、前記移動可能な第２の装置のセンサデータから１つ以上の障害物を識別し、受信された前記走行経路が識別された１つ以上の前記障害物と交差する少なくとも１つの部分を有することを判定し、受信された前記走行経路とは異なる１つ以上の部分を備える代替走行経路を前記表示部に提供するプロセッサと、を含む。
【０００７】
第２の実施形態は、第１の実施形態の第１の装置であって、前記表示部は、前記移動可能な第２の装置から受信した視覚データ上に受信された前記走行経路を重ねて表示し、前記プロセッサは、識別された１つ以上の前記障害物の近接閾値内にある受信された前記走行経路の１つ以上の部分を、前記表示部上で強調する。
【０００８】
第３の実施形態は、第２の実施形態の第１の装置であって、前記プロセッサは前記移動可能な第２の装置へ命令を送信し、前記命令は、前記識別された１つ以上の障害物からの距離に対する速度に関連するマッピング関数に基づく速度で受信された前記走行経路を走行させることを含む。
【０００９】
第４の実施形態は、第１の実施形態の第１の装置であって、前記表示部は、前記移動可能な第２の装置から受信した視覚データ上に受信された前記走行経路を重ねて表示し、前記プロセッサは、識別された１つ以上の前記障害物と交差する受信された前記走行経路の１つ以上の部分を前記表示部上で強調する。
【００１０】
第５の実施形態は、第１の実施形態の第１の装置であって、前記プロセッサは識別された１つ以上の前記障害物を前記表示部上で強調する。
【００１１】
第６の実施形態は、第１〜第５の何れかの第１の装置であって、前記プロセッサは、前記移動可能な第２の装置の位置と識別された１つ以上の前記障害物とに基づいて、前記移動可能な第２の装置から受信した視覚データ上に重ねて表示する１つ以上のオーバーレイを取り出す。
【００１２】
第７の実施形態は、ユーザにより入力された走行経路に基づいて移動可能装置を遠隔操作する方法であって、プロセッサが、移動可能装置から受信した視覚データ上にユーザにより描画入力された移動可能装置の走行経路を受信し、前記移動可能装置のセンサデータから１つ以上の障害物を識別し、受信された前記走行経路が識別された１つ以上の前記障害物と交差する少なくとも１つの部分を有することを判定し、受信された前記走行経路とは異なる、１つ以上の部分を備える代替走行経路を表示部上に提供する。
【００１３】
第８の実施形態は、第７の実施形態の方法であって、前記表示部上で、前記移動可能装置から受信した視覚データの上に受信された前記走行経路を重ねて表示し、前記表示部上で、識別された１つ以上の前記障害物の近接閾値内にある受信された前記走行経路の１つ以上の部分を強調する、ことをさらに含む。
【００１４】
第９の実施形態は、第８の実施形態の方法であって、前記移動可能装置へ命令を送信することをさらに含み、前記命令は、識別された１つ以上の前記障害物からの距離に対する速度に関連するマッピング関数に基づく速度で前記受信された走行経路を走行させることを含む。
【００１５】
第１０の実施形態は、第７の実施形態の方法であって、前記表示部上で、前記移動可能装置から受信した視覚データの上に受信された前記走行経路を重ねて表示し、前記表示部上で、識別された１つ以上の障害物と交差する受信された前記走行経路の１つ以上の部分を強調する、ことをさらに含む。
【００１６】
第１１の実施形態は、第７の実施形態の方法であって、前記表示部上で識別された１つ以上の障害物を強調する、ことをさらに含む。
【００１７】
第１２の実施形態は、第７〜第１１の何れかの実施形態の方法であって、前記移動可能装置の位置と識別された１つ以上の前記障害物とに基づいて、前記移動可能装置からの視覚データ上に重ねて表示する１つ以上のオーバーレイを取り出す、ことをさらに含む。
【００１８】
第１３の実施形態は、ユーザにより入力された走行経路に基づいて移動可能装置を遠隔操作するためのプログラムであって、移動可能装置から受信した視覚データ上にユーザにより描画入力された移動可能装置の走行経路を受信し、前記移動可能装置のセンサデータから障害物を識別し、受信された前記走行経路が識別された１つ以上の前記障害物と交差する少なくとも１つの部分を有することを判定し、受信された前記走行経路とは異なる１つ以上の部分を備える代替走行経路を表示部上に提供する、処理をコンピュータに実行させるためのプログラムである。
【００１９】
第１４の実施形態は、第１３の実施形態のプログラムであって、前記処理は、前記表示部上で、前記移動可能装置から受信した視覚データの上に受信された前記走行経路を重ねて表示し、前記表示部上で、識別された１つ以上の前記障害物の近接閾値内にある受信された前記走行経路の１つ以上の部分を強調する、ことをさらに含む。
【００２０】
第１５の実施形態は、第１４の実施形態のプログラムであって、前記処理は、前記移動可能装置へ命令を送信する、ことをさらに含み、前記命令は、識別された１つ以上の前記障害物からの距離に対する速度に関連するマッピング関数に基づく速度で受信された前記走行経路を走行させることを含む。
【００２１】
第１６の実施形態は、第１３の実施形態のプログラムであって、前記処理は、前記表示部上で、前記移動可能装置から受信した視覚データの上に受信された前記走行経路を重ねて表示し、前記表示部上で、識別された１つ以上の前記障害物と交差する受信された前記走行経路の１つ以上の部分を強調する、ことをさらに含む。
【００２２】
第１７の実施形態は、第１３の実施形態のプログラムであって、前記処理は、識別された１つ以上の前記障害物を前記表示部上で強調する、ことを含む。
【００２３】
第１８の実施形態は、第１３〜第１７の何れかの実施形態のプログラムであって、前記処理は、前記移動可能装置の位置と前記識別された１つ以上の障害物とに基づいて、前記移動可能装置からの視覚データ上に重ねて表示する１つ以上のオーバーレイを取り出す、ことをさらに含む。
【発明の効果】
【００２４】
本発明によれば、ユーザがロボットのカメラビュー上で移動経路コマンドを直接描画することができ、かつ、不可能な移動経路コマンドをユーザが描画することを防止する。
【図面の簡単な説明】
【００２５】
【図１】一実装例による、ユーザが特定した移動可能装置用の経路を示す図である。
【図２】一実装例による、増強されたカメラナビゲーションビュー内にセンサ情報を提示する一例を示す図である。
【図３Ａ】一実装例による、ロボット経路の視覚表示の増強（近傍に障害物）を示す図である。
【図３Ｂ】一実装例による、ロボット経路の視覚表示の増強（不可能な経路）を示す図である。
【図３Ｃ】一実装例による、ロボット経路の視覚表示の増強（代替経路）を示す図である。
【図３Ｄ】一実装例による、ロボット経路の視覚表示の増強（障害物検出及び分類）を示す図である。
【図４】一実装例による、ＲＧＢＤ（赤緑青＋奥行）センサからのカメラビューの一例を示す図である。
【図５】一実装例による、ナビゲーションカメラビューをグローバル経路計画補助及びＰＯＩマーカで重ねて表示した一例を示す図である。
【図６Ａ】一実装例による、インタフェースのためのフロー図である。
【図６Ｂ】一実装例による、インタフェースのためのフロー図である。
【図７】一実装例による、移動可能装置のためのフローの一例を示す図である。
【図８】実装例での使用に適した例示的コンピュータ装置を有する、コンピュータ環境の例を示す図である。
【図９】一実装例による、移動可能装置のためのハードウェアの一例を示す図である。
【発明を実施するための形態】
【００２６】
以下の詳細な説明において、図面及び本発明の実施例の更なる詳細を提供する。図面間での冗長な要素の参照符号及び記述は、簡潔にするために省略されている。説明に使用されている用語は、例として与えられているものであり、制限することを意図するものではない。例えば、「自動的」という用語の使用は、本発明の実装を実行する当業者の所望の実装に依存して、完全に自動的な実装であってもよいし、ユーザまたはオペレータがその実装の特定の態様を制御することを含む半自動の実装であってもよい。さらに、本明細書で記述する実装例は移動可能ロボットを背景として説明されているが、実装例は任意の移動可能装置（例えば遠隔制御自動車）に適用可能であって、ロボットに限定されるものではない。
【００２７】
実装例は、ロボットを運転する環境の先験的な知識を必要としないシステム及び方法を含む。実装例においては、ロボットのセンサからのライブセンサデータが、直近の環境内でのロボットの自動運転を可能とし、かつナビゲーションに使用されるカメラのユーザビューをリアルタイムで増強するために利用される。例えば実装例は、内蔵カメラからの２Ｄカメラフィードを介してロボットの走行目的地の選択を支援することが可能である。実装例はまた、表示部上に表示されているフロア上への描画入力を処理可能とする。ロボットのフロア面は、以下で述べるようにロボットセンサによって検出可能である。
【００２８】
本開示の実装例には、障害物検出情報（例えばロボットのセンサを介して収集される情報）と（例えばローカルナビゲーションアルゴリズムを介して生成される）経路計画情報とを利用する、ナビゲーションユーザインタフェース（ＵＩ）が含まれる。障害物検出情報及び経路計画情報はユーザには隠されている場合がある。この隠された情報をユーザに伝送して障害物を回避するようにユーザを案内すれば、ＵＩを介するロボット遠隔操作タスクの入力提供において、隠された情報を活用して人の技術を増強することが可能である。実装例には、（１）検出された障害物をロボットからのライブカメラフィード内で可視化する方法の説明と、（２）ロボットからのライブカメラフィードに基づいて、ローカル経路計画を可視化してユーザインタフェース内でインタラクティブにする方法の説明と、による、ユーザへの情報の可視化が含まれている。
【００２９】
移動ロボットの遠隔操作のための関連技術のＵＩは、ロボット移動の前方方向に向いたビューをユーザに示す、２次元（２Ｄ）カメラフィードを頼りにしている。このビューはロボット上に固定的に取りつけられたカメラによるもので、視野が限られている。この取り付け構成では、走行タスク中のユーザの状況認知が不足する結果となる可能性がある。さらに、待ち時間によって、実際のロボットの運転に係わる速度での制御が困難となる可能性があり、ジョイスティック、マウスまたはキーボード、あるいはタッチスクリーンによって関連技術のユーザインタフェース（ＵＩ）を介してロボットを運転する際にロボットに適用可能な実際の応用範囲が大幅に減少する可能性がある。
【００３０】
実装例において、２Ｄカメラビューは、ロボット遠隔操作のためのＵＩの能動部品として活用される。関連技術において行われるように（ソフトウェア）ジョイスティック、マウス、キーボード及び／もしくは、タッチスクリーンなどのような入力装置を介して移動コマンドを直接入力するよりは、実装例では、ユーザに「スクリーンを通して届く」方式で２Ｄカメラと対話させるようにする。ここで、ユーザは２Ｄカメラにより提供される表示と直接対話することができる。ロボットの内蔵センサを利用して、ロボット制御に係わる環境内の注目する物体をＵＩ内で強調することができる。
【００３１】
関連技術による実装では、スクリーンインタフェース上のスケッチ入力を介してロボット制御することが含まれる。ただしそのような関連技術のシステムは、ロボットの操作環境のトップダウンの抽出を行うようになっていて、ライブカメラビューなどのようなセンサフィードは含まない。カメラによるロボット走行を含む関連技術の実装に関しては、マウスなどの入力装置で特定のポイントを選択させる関連技術のシステムがある。ただし、この関連技術実装では経路描画が、描画された経路に対して障害物のロボットへの近接度合いを解析されるようにはなっていない。さらに、実装例においてライブカメラフィードによってロボット経路描画を登録することにより、関連技術の手法とは違って、ロボットのカメラを介してユーザがより直接的で自然なロボットとのインタラクションをとることが可能であり、ユーザはロボットの周囲環境をより視覚的に認知することが可能となる。
【００３２】
こうして実装例において、ロボットのカメラビューをロボット走行用の主たるユーザインタフェース部品として利用可能である。このような実装では、矢印ボタンなどの他のＵＩウィジェットが不必要となる。矢印ボタンやソフトジョイスティックなどのような、標準的な関連技術のＵＩウィジェットはロボットの手動操作に対してはあまり十分な働きをしない傾向があるが、この実装例においては、フレキシブルな経路スケッチインタフェースを提供することによってその可用性を改善することができる。本明細書で説明する経路スケッチの実装を介して、ロボットの移動は事前に計画することが可能であってユーザによる直接制御は必要でない。そのような実装では、したがって、ロボットのカメラフィードの本質的な遅れ、並びに移動コマンドのロボットへの送信に要する時間に対する補償を行うことが可能である。こうして、以下で説明する実装例における自律的手法と、人間の遠隔操作のインタフェースとの組み合わせにより、関連技術の手法における問題点に対処することが可能である。
【００３３】
図１は一実装例による、移動可能装置のユーザが特定した経路を示す図である。経路１００がカメラビュー１０１の上にユーザによってスケッチされている。次に、移動ロボットがこの経路１００に従って障害物１０２の周りを走行する。ユーザによって移動コース全体を通してロボットに明示的な移動コマンド（例えばその都度ロボットは移動の変更を行う必要がある）を送信する代わりに、ユーザは増強されたナビゲーションビュー内に所望の経路をスケッチすることができる。そうしてロボットはユーザがスケッチした経路の走行（例えば、それに沿う移動）を進める。図１の実装例においては、走行はロボットのローカル座標系内で遂行され、グローバル位置推定（例えばＧＰＳやその他の追跡装置などの外部方法によりロボットの位置を特定すること）や、ロボットを走行させる環境の地図構築を必要としない。
【００３４】
ただし、カメラベースのナビゲーションビューでは、ロボットから遠隔の場所にいるロボットオペレータに距離情報を伝達するには不十分な場合がある。距離情報は、障害物の検出及び回避（例えば、ロボット操作の安全性と、目標の時間内完了）には有用であり得る。したがって、移動ロボットには他のセンサ（たとえば奥行カメラまたはレーザ距離計）が装備されていて、ロボット環境における距離情報を収集するために使用することができてもよい。使用されるセンサの種類は本明細書に列挙したものに限らず、本実装例の発明範囲から乖離せずに他のセンサを使用することができる。
【００３５】
図２は一実装例による、増強されたカメラナビゲーションビュー内にセンサ情報を提示する一例を示している。図２の例において、レーザ距離計（すなわち、レーザ投射によって距離を測定するセンサ）がカメラナビゲーションビュー上に重ねて表示されて、カメラナビゲーションビューがセンサデータ２００によって増強されている。そのようにセンサ情報を重ねて表示することで、センサ情報（例えばレーザ距離計によって提供されたような）をすぐ見えるようにでき、かつ、カメラビュー内にユーザに提供されている（例えば見ている）ものに対して正確にマッピング可能となる。関連技術の実装では、遠隔操作ユーザインタフェースに、レーザ距離計のセンサデータを有するロボットの表示が含まれていたが、関連技術ではそのようなオーバーレイを利用してセンサ情報をカメラの座標系内に表示することはしていない。つまり、２Ｄカメラビュー上にレーザ距離計のセンサデータを直接活用することによって、ロボット環境に関するより正確な情報をユーザに与えることが可能となる。
【００３６】
図２の実装例においては、ライダー（ＬＩＤＡＲ）レーザスキャナを用いて、障害物回避のためのデータを提供する。図２は、カメラの座標系に向けて投射されたセンサからのセンサの未処理データ２００を示している。人間は２Ｄ画像の空間コンテンツを迅速に解釈することが可能であるが、レーザスキャンによって、照明が暗いシーンや環境などの、処理が困難なシーンの曖昧さをなくすようにユーザを支援することが可能である。この実装例は、後処理を含むように展開して、スキャンデータ内の線分を検出することで潜在的な物体の境界を判定するようなことも可能である。
【００３７】
図３Ａ〜図３Ｄは、一実装形態による、ロボット経路の視覚表示の増強を示している。環境から収集されたセンサデータを利用して、ロボット経路の視覚表示を増強し得る。例として、ＵＩによって経路の各部分を異なる色、パターン、及び／または強調によって、ロボットが自由に走行可能なロボット経路部分と、潜在的な障害物に近い部分と、行き止まりのためにロボットが走行できない部分と、に区別してもよい。こうすることで、潜在的な障害物の近くであるか、または行き止まりのために修正を必要とする経路部分をユーザに迅速に案内できる視覚表示が与えられる。
【００３８】
図３Ａにおいて、識別された１つ以上の障害物に近接する経路部分に追加の強調が施されて示されている。経路上のどの部分を強調するべきかの判定は、インタフェースのユーザによって設定される閾値（例えば、障害物からの指定された距離内、例えば、ロボットの幅１つ分、の強調された経路部分）に依存し得る。それによってＵＩがカメラビュー内で障害物を識別し、その識別された１つ以上の障害物に対して閾値以内にある経路部分を強調することが可能である。図３Ｂには、走行が不可能な（例えば、識別された１つ以上の障害物にロボットが衝突してしまうような）経路部分を示す追加の強調が与えられている。
【００３９】
ロボットのナビゲーションソフトウェアは、ユーザが所望する経路に正確に一致することが不可能な場合がある（例えば、図３Ｂに示すように識別された１つ以上の障害物に衝突するために）。しかしそのような状況においても、システムはユーザの所望の終点に向かう１つまたは複数の代替経路を判定して、この情報をユーザに提供することが可能な場合がある。このように、ユーザが提供する修正版の経路を増強されたカメラウィンドウ内に示すことが可能である。修正経路と元の経路とを並列して示すことも可能であり、図３Ｃにそれが示されている。
【００４０】
別の実装例では、ユーザが無効な経路を実行しようとすると、インタフェースがその経路を受け入れずに、代替経路案を提供するように構成することができる。図３Ｂの例では、ユーザが経路を実行しようとする場合に、インタフェースがそのコマンドを拒否して、図３Ｃに示すような案を提供してもよい。他の実装例では、インタフェースがユーザに新経路を描画する必要があることを示唆してもよい。他の実装例では、ユーザが障害物に近付くと、合成経路図面上でラバーバンディング法を適用することができ、これが描画された経路を通路の周りで自動的にラバーバンドさせる。ラバーバンディング法は、ユーザの動作に拘わらず、所定の入力制約条件（例えば障害物からの距離）を自動的に維持する処理である。ラバーバンディング法はロボットと障害物の間の最小距離の閾値に基づくことが可能であって、それを修正経路のベースとして活用することができる。
【００４１】
さらには、移動ロボットのセンサを通して収集される距離情報を増強されたカメラナビゲーションビューに適用して、潜在的な障害物または、ロボットを通すには狭すぎる空間や、階段の始まり部分や、信号受信の弱い領域のような、ロボット操作が可能でない区域を強調することが可能である。障害物の検出と分類（例えば３Ｄ点群情報を用いた）を利用して、ドアや家具や人のような、その環境内の別の種類の障害物を強調することも可能である。図３Ｄは一実装例に従って、識別された障害物が強調及び分類されたカメラビューの例を示している。
【００４２】
実装例において、ＲＧＢＤカメラをロボットに取り付けて色及び奥行の画像を提供することができる。奥行画像から、シーン内の平面をランダムサンプルコンセンサス（ＲＡＮＳＡＣ）法で検出することは可能であるが、他の手法（例えば固有値解析）もまた所望の実装によっては適用することができる。本開示はこれらに限定されない。ロボットに対するカメラ姿勢は既知であるので、フロア面は特定可能である。そのような実装例は、図３Ｃに示すように、ユーザが特定した経路を検証して修正することを可能とする。フロア面が特定されると、そのシーン内の他の大きな平面物体は壁であるとみなすことができる。残りの物体は区分して分類することができ、それによって図３Ｄの増強ビューを提供することができる。さらには、ＲＧＢＤカメラは人を検出できるソフトウェア構成を含んでもよく、これもまた強調及び障害物回避に利用することができる。
【００４３】
実装例では、行程力学（stroke dynamics）もまたコマンド発行に活用可能である。行程力学は速度、加速度などの行程特性の解析を含むことができる。行程力学を、例えば、移動ロボットの行程経路の走行速度決定に利用してもよい。行程力学を経路計画にマッピングする実装例では、行程の速度または加速度が経路計画の障害物回避耐性にマッピングされる。例えば、遅い行程（これはユーザによってより正確に描画され得る）はロボットが障害物のより近くを移動可能とし、他方、早い行程（これは精度が下がることがある）ではロボットが自分自身と障害物との間の距離をより広く取る結果となり得る。
【００４４】
行程力学に加えて、速度と加速度の特性は描画された経路の様々な部分に関連し得る。そのような実装例においては、障害物の閾値距離内にある経路部分に対し、ロボットはその経路部分においてはゆっくりと走行し、かつユーザの行程入力に拘わらず、経路上のそのような部分に到達する前に加速度を下げるようになっていてもよい。障害物の近くではない経路部分に関しては、行程及び関連する速度と加速度とに基づいて、ロボットは、障害物に近い経路部分とは異なる速度及び加速度で走行するようになっていてもよい。
【００４５】
インタフェースの他の実装例では、目的地へ向かう終点に対する入力を受信することが含まれ、それを受信すると、インタフェースは、検出され識別された障害物の位置に基づいて経路を判断する。そのような実装では、当技術分野で周知の任意の方法によって生成される一組の異なる経路を生成して評価し、そうして所望の基準に基づいて選択するか、または経路をユーザに提示して選択させることができる。そのような実装例では、フロア面のコストマップを活用して、所望の基準に基づく経路評価を行うことができる。
【００４６】
図４は、一実装形態による、ＲＧＢＤセンサからのカメラビューの一例を示す図である。この実装例においては、ソフトウェア構成を用いてカメラのライブフィードに障害物の強調４００を行う。さらに、実装例には、フロア面の分割と、ＲＧＢＤセンサから取得した点群の通常解析が含まれる。２Ｄカメラのナビゲーションビューの出力に関して、フロアまたは障害物として分類されたポイントの位置座標は、その点群における３Ｄ位置から、ロボットの走行に利用されるＲＧＢ画像の対応２Ｄ座標へ変換される。図４の例においては、実装例を利用してフロア４０１には、障害物及び壁４００とは異なる強調が行われている。フロアと障害物（例えば壁、椅子）とを分けて分類することは、ＲＧＢＤセンサからの色及び奥行の情報から導くことが可能であり、ここではフロアに対して平面を導くことができる。フロアに対して平面が導かれると、実装例においてその平面より上方にあるすべてを障害物としてみなすことが可能であり、さらにその平面より下の物体が検出されて別のタイプの障害物（例えば階段吹き抜け、穴）として識別することができる。こうして、実装例においては、フロア平面から外れた検出物体を区分することによって障害物が求められる。
【００４７】
ユーザが特定した経路に沿ってロボットが進行する際、ＲＧＢと奥行画像からの特徴が抽出されてロボットの更新された位置が判定される。そして経路の検証処理が反復されて、上記のような物体及びフロア面の再帰的検出に基づいて現在の経路がまだ有効かどうかが判定される。そのような実装例では、更新は更新経路としてＵＩに明示することができる。この更新経路は新規の障害物が検出されると変化し得る。この形式の走行は自己充足型とすることができ、ロボットのグローバル位置推定に頼る必要がない。
【００４８】
ただし、実装例において、移動ロボットがグローバル環境に自分自身を位置付ける（すなわちグローバル位置推定）能力を持っている場合には、増強されたカメラナビゲーションビュー上に、関連の（グローバル）背景情報を重ねることも可能である。そのような情報の例には、図５に示すような、仮想的な部屋標識、注目点（ＰＯＩ）への方向指示、またはユーザの所望目的地への経路誘導指示などがあってよい。このように実装例では、位置推定システムが備えられていてロボット位置が地図内で判定可能である場合には、図５に示すように２Ｄユーザインタフェース内で注目点を強調することが可能である。
【００４９】
図５は一実装例に従って、ナビゲーションカメラビューにグローバル経路計画支援５００及びＰＯＩマーカ５０１を重ねて表示した例を示している。このような増強されたビュー内の標識は対話形式で作成することもできる。例えば、図５に示すような「Ｒｏｂｏｔｉｃｓ  Ｌａｂ」という標識５０１をユーザが選択した場合、ロボットは、そのターゲットに向かって自律的に走行を開始するか、またはそのターゲットに到達するための最適な向きに自分自身を向けるか、あるいは、新規目的地に向かってユーザを案内するために経路計画のオーバーレイを更新するか、の何れかを行う。
【００５０】
グローバル測位環境で既知である静止物体上に拡張現実（ＡＲ）オーバーレイを描画することに加え、実装例では可動（例えば移動）物体上にＡＲを描画することも可能となる。この場合、グローバル位置推定とローカル物体検出との組合せが利用可能である。このようにして、グローバル位置推定によって取得される位置情報で拘束される空間において、特定のタイプの可動物体上のオーバーレイに関するメタデータを（例えば、点群登録や、他の特殊な基準や、物体の視覚表現を介して）生成することが可能である。
【００５１】
カメラのナビゲーションビューに関する拡張現実の関連技術による実装では、環境内に配置された基準点（例えば、マーカ）が識別されて、そのマーカの検出位置にＡＲコンテンツが重ねて表示される。ただし実装例においては、関連技術におけるような環境内の物理的マーカを頼りにするのではなく、ロボットの位置推定を利用してオーバーレイコンテンツの表示位置が決定される。このような実装例においては、地図上の位置によって既知の特定の障害物の検出及び識別を利用してコンテンツを重ねて表示することができる。例えば、センサデータ及び位置推定情報から検出されて識別された部屋内の柱は、対応するオーバーレイをナビゲーションカメラビュー上に配置させることができる。これにより関連技術の実装におけるような、ＡＲ情報を重ねて表示するために環境内に物理的な視覚タグを置く必要性が排除される。
【００５２】
スケッチベースの移動入力の補足として、ロボットのナビゲーションビューでセンサデータを更に可視化することができる。カメラビューを増強することは関連技術のシステムで提案されていたが、そのようなシステムでは、例えばロボットのカメラビュー内に直接可視化されたレーザラインスキャナからの直接的なセンサ測定値と、ロボットの位置推定システムにより提供される位置情報と、に基づいてロボットのカメラに表示された拡張コンテンツを利用しない。
【００５３】
図６Ａは、一実装例によるインタフェースのフロー図を示す。ステップ６００でセンサデータが表示部に表示される。そのようなセンサデータには、カメラで検出されたデータの２Ｄ画像を提示するナビゲーションカメラ画像を含むことができ、及び／または、ＲＧＢＤデータ、レーザラインスキャン、またはロボットのその他のセンサデータもまた含むことができる。ステップ６０１で、所望のロボット走行経路を記述する自由形式の経路を入力するために、ユーザが入力を行う（例えば、インタフェース上に行程を配置するか、またはジェスチャを行う）。ユーザは、ユーザインタフェースに示される２Ｄカメラ画像へ、走行経路行程を直接入力することができる。ステップ６０１において、インタフェースが経路を処理して、識別された障害物の近傍にある経路部分を検出する。入力された走行行程経路に近い物体を判定するために、入力行程はカメラ座標系からロボットのローカル座標系へ変換される。ステップ６０２の判定で、通路が障害物の近傍にある場合（肯定の場合）には、フローはステップ６０３に進んで、その通路が不可能かどうかを判定する。その場合（肯定の場合）には、次にフローはステップ６０５に進んで、通路が障害物を横断するために走行不可能であるので、その部分を強調する。そうでない場合（否定の場合）、フローはステップ６０４に進み、障害物近傍にある部分を強調するが、まだ走行可能である。ステップ６０６において、インタフェースは、インタフェース上に示唆（例えば代替経路、または適切な経路へのラバーバンディング）を提供するか、あるいはユーザに経路を再度描画することを指示することができる。ステップ６０７において、最終走行経路が、移動可能装置用の移動コマンドに変換される。
【００５４】
図６Ｂは、一実装例によるセンサデータを処理して障害物を識別するフロー図である。ステップ６１０において、インタフェースがセンサデータを受信して、フロア面を処理する。フロア面の処理は、奥行データで行うことができる。あるいは、カメラビューまたは図４に関して前述した所望の実装に依存するその他の方法で識別することもできる。ステップ６１１において、インタフェースが次に、フロア面上にない物体を障害物として処理する。次にステップ６１２において、インタフェースは物体を障害物として識別して、障害物の種類（例えば、壁、柱、フロア面の上方であればテーブル、底部フロア上の穴または階段）を識別する。
【００５５】
図７は、一実装例による移動可能装置のためのフロー図の一例を示す。ステップ７０１において、移動可能装置がインタフェースから経路を受信し、それをプラットホーム固有の移動コマンドに変換する。ステップ７０２で、移動可能装置は受信した経路に沿って第１設定速度で進行する。ステップ７０３で移動可能装置は、障害物の近傍にあるとしてマークされた経路部分に沿っているかどうか、または、内蔵センサを用いて、移動可能装置の閾値内の近傍に障害物が検出されないかどうか、を判定する。ステップ７０３の判定が肯定された場合（Ｙｅｓの場合）、フローはステップ７０４に進んで、速度をより低速に変更する。より低速の固定速度の代わりとして、移動可能装置とその最近接の障害物との間の距離に比例して減速を設定することができる。ステップ７０３の判定が否定された場合（Ｎｏの場合）、フローはステップ７０５に進んで、最初の設定速度を継続する。ステップ７０６において、経路を横断し終わるまでループが反復され、横断し終わるとフローを終了して次の経路の受信を待つ。
【００５６】
図８は、別の移動可能装置の走行機能を支援する装置などのような、いくつかの実装例における使用に適した例示的コンピュータ装置を有する、コンピュータ環境の例を示す。コンピュータ環境８００におけるコンピュータ装置８０５は、１つ以上の処理ユニット、コアすなわちプロセッサ８１０、メモリ８１５（例えば、ＲＡＭ、ＲＯＭ、など）、内部ストレージ８２０（例えば、磁気、光学、固体記憶装置、及び／またはオーガニックストレージ）、及び／またはＩ／Ｏインタフェース８２５を含むことができ、これらの何れも通信機構または情報を通信するためのバス８３０に接続可能であるか、またはコンピュータ装置８０５に埋め込み可能である。
【００５７】
コンピュータ装置８０５は、入力／ユーザインタフェース８３５と、出力装置／インタフェース８４０に通信可能に接続することができる。入力／ユーザインタフェース８３５及び出力装置／インタフェース８４０の一方または両方が、有線または無線のインタフェースであり、着脱可能である。入力／ユーザインタフェース８３５は、入力の提供に使用可能な任意の装置、コンポーネント、センサ、または物理的または仮想的なインタフェース（例えば、ボタン、タッチスクリーンインタフェース、キーボード、ポインティング／カーソル制御、マイク、カメラ、点字、モーションセンサ、光学読取装置、など）を含んでもよい。出力装置／インタフェース８４０は、ディスプレイ、テレビ、モニタ、プリンタ、スピーカ、点字、などを含んでもよい。いくつかの実装例では、入力／ユーザインタフェース８３５及び出力装置／インタフェース８４０はコンピュータ装置８０５に埋め込まれるかまたは物理的に接続することができる。別の実装例では、他のコンピュータ装置が、コンピュータ装置８０５に対する入力／ユーザインタフェース８３５及び出力装置／インタフェース８４０として機能するかまたはその機能を提供してもよい。
【００５８】
コンピュータ装置８０５の例としては、高度なモバイル装置（例えば、スマートフォン、車両や他の機械における装置、人間または動物が携行する装置、など）、モバイル装置（例えば、タブレット、ノートブック、ラップトップ、パーソナルコンピュータ、携帯テレビ、ラジオ、など）、及び携帯用に設計されていない装置（例えば、デスクトップコンピュータ、その他のコンピュータ、情報キオスク、１つ以上のプロセッサが内蔵及び／または接続されたテレビ、ラジオ、など）が含まれてもよい。ただし、これらに限るものではない。
【００５９】
コンピュータ装置８０５は、外部ストレージ８４５と、任意の数のネットワークコンポーネント、装置、及び同一または異なる構成の１つ以上のコンピュータ装置を含むシステムと通信するためのネットワーク８５０に（例えばＩ／Ｏインタフェース８２５を介して）通信可能に接続されていてよい。コンピュータ装置８０５または任意の接続されたコンピュータ装置は、サーバ、クライアント、シンサーバ、汎用装置、特殊用途装置、または別の標識、として機能するか、それらのサービスを提供するか、またはそのような装置として参照されてもよい。
【００６０】
Ｉ／Ｏインタフェース８２５には、コンピュータ環境８００における少なくともすべての接続されたコンポーネント、装置、及びネットワークとの間で一方向または双方向に情報を通信するための、任意の通信またはＩ／Ｏプロトコルまたは標準（例えば、イーサネット（登録商標）、８０２．１１ｘ、ユニバーサルシステムバス、ワイマックス、モデム、移動体通信ネットワークプロトコル、など）を利用する有線及び／または無線インタフェースが含まれる。ただし、これらに限るものではない。ネットワーク８５０は任意のネットワークまたは複数のネットワークの組み合せ（例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、電話ネットワーク、移動体通信ネットワーク、衛星ネットワーク、など）であってよい。
【００６１】
コンピュータ装置８０５は、一時媒体及び非一時媒体を含む、コンピュータ使用可能媒体またはコンピュータ可読媒体を使用可能であり、及び／またはそれらを用いた通信が可能である。一時媒体には、伝送媒体（例えば金属ケーブル、光ファイバ）、信号、搬送波、などが含まれる。非一時媒体には、磁気媒体（例えば、ディスクとテープ）、光学媒体（例えば、ＣＤ  ＲＯＭ、デジタルビデオディスク、ブルーレイディスク）、固体素子媒体（例えば、ＲＡＭ、ＲＯＭ、フラッシュメモリ、固体記憶装置）、及びその他の不揮発性記憶装置またはメモリが含まれる。
【００６２】
コンピュータ装置８０５は、いくつかの例示的コンピューティング環境において、技術、方法、アプリケーション、処理、またはコンピュータ実行可能命令の実装に使用できる。コンピュータ実行可能命令は一時媒体から取り出し、非一時媒体に格納してそこから取り出すことができる。実行可能命令は、１つ以上の任意のプログラミング言語、スクリプティング言語、及び機械言語（例えば、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）、Ｖｉｓｕａｌ  Ｂａｓｉｃ、Ｐｙｔｈｏｎ、Ｐｅｒｌ、ＪａｖａＳｃｒｉｐｔ（登録商標）、その他）に基づくものであってよい。
【００６３】
プロセッサ８１０は、ネイティブまたはバーチャルな環境において、任意のオペレーティングシステム（ＯＳ）の下で実行可能である。論理ユニット８６０と、アプリケーションプログラミングインタフェース（ＡＰＩ）ユニット８６５と、入力ユニット８７０と、出力ユニット８７５と、異なるユニットが互いに通信するためのユニット間通信機構８９５と、を含む１つ以上のアプリケーションを、ＯＳ及び他のアプリケーション（表示せず）を用いて展開することが可能である。上記のユニット及び要素は、設計、機能、構成、または実装における変形が可能であり、上記説明に限定されない。
【００６４】
いくつかの実装例において、ＡＰＩユニット８６５が情報または実行命令を受信すると、１つ以上の他のユニット（例えば、論理ユニット８６０、入力ユニット８７０、出力ユニット８７５）に対して、当該情報または実行命令が通信されてもよい。いくつかの例では、論理ユニット８６０がユニット間の情報の流れを制御し、ＡＰＩユニット８６５により提供されるサービスを、前述のいくつかの実装例において入力ユニット８７０や出力ユニット８７５へ指示してもよい。例えば、１つ以上の処理や実装の流れが、論理ユニット８６０単独で制御されてもよいし、ＡＰＩユニット８６５と協同して制御されてもよい。入力ユニット８７０は実装例で説明した計算のための入力を取得するように構成され、出力ユニット８７５は、実装例で説明した計算に基づく出力を提供するように構成されていてもよい。
【００６５】
プロセッサ８１０は、ロボットなどの移動可能装置に対して提案された走行経路を、図６Ａ及び図６Ｂのフロー図に従って処理し、提案された走行経路に、移動可能装置のセンサデータにより識別される障害物と交差する部分がある場合には、その部分を判定するように構成できる。もしそのような部分が存在すれば、プロセッサ８１０は出力装置８４０にそのような部分を強調させるとともに、代替の走行経路を表示させることが可能である。この代替の走行経路には、提案された走行経路と異なる代替走行経路部分の強調も含まれている。プロセッサ８１０は、また、識別された１つ以上の障害物から近接閾値内にある提案された走行経路部分を強調するように構成されている。近接閾値は、移動可能装置の工場出荷時の設定であってもよいし、入力／ユーザインタフェース８３５を介してインタフェースのオペレータによって設定されてもよい。
【００６６】
プロセッサ８１０は、出力装置８４０が、移動可能装置からの視覚データに提案された走行経路を表示するように構成することもできる。プロセッサ８１０は、Ｉ／Ｏインタフェース８２５を利用して移動可能装置へ命令を送信して第１の速度で提案された走行経路を走行させ、そして、提案された走行経路の強調部分を、第１の速度とは異なる第２の速度で走行させるように構成されている。強調された部分に対しては、障害物に近接しているために速度を下げてもよい。これらの速度は、移動可能装置の工場出荷時の設定であってもよいし、インタフェースのオペレータが入力／ユーザインタフェース８３５を介して設定してもよい。また、速度は、識別された１つ以上の障害物からの距離に対する速度に関連するマッピング関数（例えば、移動可能装置が障害物の近傍に近いほど速度が減少する）の形態で設定されてもよい。プロセッサ８１０はまた、提案された走行経路の、特定された１つ以上の障害物と交差する部分と、特定された１つ以上の障害物そのものに強調を施すような構成とすることもできる。障害物をさらに識別するために、プロセッサ８１０はまた、移動可能装置の位置と識別された１つ以上の障害物とに基づいて、移動可能装置からの視覚データ上に重ねて表示するための１つ以上のオーバーレイを取り出すように構成することもできる。建物内の移動可能装置の位置に関する情報などのような位置情報を適用して、障害物を具体的な物体（例えば、柱、壁、椅子、など）として識別することが可能であり、またオペレータを所望の部屋または位置へ案内するためのオーバーレイを配置するために利用することも可能である。
【００６７】
図９は一実装例による、移動可能装置のためのハードウェア図の一例を示している。移動可能装置９００は、プロセッサ９０１、メモリ９０２、ベースバンドプロセッサを有する通信インタフェース９０３、１つ以上のセンサ９０４、及び１つ以上のアクチュエータ９０５を含んでいてもよい。メモリ９０２は、プロセッサ９０１にロードして、例えば図７に示すようなフロー図を実行する命令を格納することができる。通信インタフェース９０３は、図６Ａ及び図６Ｂに示すようなインタフェースから命令を受信し、プロセッサで実行させるためにメモリ９０２内に命令を格納するように構成されていてもよい。センサ９０４は、カメラ、ＲＧＢＤセンサ、レーザ、及びセンサデータを収集して通信インタフェース９０３を介してインタフェースへ送り戻す他のセンサ、を含むことができる。アクチュエータ９０５は移動可能装置９００を走行させて移動させるように構成可能である。
【００６８】
詳細な記述のある部分は、アルゴリズムとコンピュータ内の操作の記号表現で提示される。これらのアルゴリズム表記と記号表現はデータ処理技術の当業者により、その新技術の本質を他の当業者へ伝達するために利用される手段である。アルゴリズムは、所望の最終状態または結果に至る、一連の定義されたステップである。実装例において、遂行されるステップは、明確な結果を得るために実体量の物理的操作を必要とする。
【００６９】
議論から明らかなように、特にそうでないことが記載されない限り、本記述の全体に亘って、「処理する」、「計算する」、「算出する」、「判定する」、「表示する」、あるいはそれに類する用語を用いた議論は、コンピュータシステムのレジスタ及びメモリ内に物理的（電子的）量として表されるデータを操作して、コンピュータシステムのメモリ、レジスタ、他の情報記憶装置、伝送装置または表示装置内の物理量として同様に表される他のデータへ変形する、コンピュータシステムまたは他の情報処理装置のアクション及び処理を含むことが理解される。
【００７０】
実施例はまた、本明細書における操作を実行するための装置にも関する。この装置は、所要目的のために特別に構成されていてもよいし、あるいは１つ以上のコンピュータプログラムによって選択的に作動されるか再構成された、１つ以上の汎用コンピュータを含んでいてもよい。そのようなコンピュータプログラムは、コンピュータ可読記憶媒体またはコンピュータ可読信号媒体などの、コンピュータ可読媒体中に格納されてもよい。コンピュータ可読記憶媒体は、光ディスク、磁気ディスク、読出し専用メモリ、ランダムアクセスメモリ、固体素子デバイスと駆動装置、または電子情報の格納に適したその他の任意の種類の有形または非一時的な媒体、などのような有形の媒体を含むことができる。コンピュータ可読信号媒体は、搬送波などの媒体を含むことができる。本明細書に示すアルゴリズム及び表示は、特定のコンピュータまたは他の装置の何れかに固有的に関係するものではない。コンピュータプログラムは、所望の実装操作を遂行する命令を含む、純粋なソフトウェア実装を含むことができる。
【００７１】
様々な汎用システムが、本明細書の例に従うプログラム及びモジュールと共に使用可能であり、または所望の方法ステップを遂行するためにより特殊化した装置を構築することが便宜的である場合もある。さらに、実装例は、いかなる特定のプログラミング言語に関連して記述されるものでもない。多様なプログラミング言語が、本明細書に記載の実装例の教示を実装するために使用可能であることが理解される。プログラミング言語の命令は、１つ以上の処理装置、例えば中央処理ユニット（ＣＰＵ）、プロセッサ、またはコントローラで実行されてもよい。
【００７２】
当技術分野において周知のように、上記の操作は、ハードウェア、ソフトウェア、またはソフトウェアとハードウェアのある組合せによって遂行可能である。実装例の様々な態様は、回路及び論理デバイス（ハードウェア）を用いて実装可能であり、その一方で他の態様は、機械可読媒体上に格納された命令（ソフトウェア）を用いて実装可能である。これがプロセッサで実行されると、プロセッサに本発明の実装を遂行する方法を実行させる。さらに、本発明のいくつかの実装例は、ハードウェアのみで遂行可能であり、他の実装例はソフトウェアのみで遂行可能である。さらには、説明された様々な機能は、単一のユニットで遂行することが可能であり、あるいは任意の数の方法で複数の構成要素にわたって展開することも可能である。ソフトウェアによって遂行される場合には、本方法は、コンピュータ可読媒体上に格納された命令に基づいて、汎用コンピュータなどのプロセッサによって実行され得る。所望により、命令は圧縮フォーマット及び／または暗号化フォーマットで媒体中に格納することも可能である。
【００７３】
さらに本発明の他の実装形態が、明細書を考察し、本発明の教示を実行することにより当業者には明らかとなるであろう。説明した実装例の様々な態様及び／または構成要素は、単独もしくは任意の組み合せで使用可能である。明細書及び実装例は例示としてのみ考慮されるべきであり、本発明の真の範囲と趣旨は以下の特許請求の範囲によって示される。
【符号の説明】
【００７４】
８００  コンピュータ環境
８０５  コンピュータ装置
８１０  プロセッサ
８１５  メモリ
【図１】
0006665506.tif 000002
【図２】
0006665506.tif 000003
【図３Ａ】
0006665506.tif 000004
【図３Ｂ】
0006665506.tif 000005
【図３Ｃ】
0006665506.tif 000006
【図３Ｄ】
0006665506.tif 000007
【図４】
0006665506.tif 000008
【図５】
0006665506.tif 000009
【図６Ａ】
0006665506.tif 000010
【図６Ｂ】
0006665506.tif 000011
【図７】
0006665506.tif 000012
【図８】
0006665506.tif 000013
【図９】
0006665506.tif 000014