(57)【要約】  ロボットの操作に関するデータを表示するユーザインターフェース画面であって、他のウィンドウ用にスペースをあけるために、回転し、その後アイコンに最小化することが可能な一つ以上のウィンドウを含む、ユーザインターフェース画面を提供する。ウィンドウを移動させるためのユーザ入力を受信すると、当該ウィンドウは、縁部へ移動する。さらにユーザ入力を受信すると、ウィンドウは軸を中心に回転し、その後、アイコンに最小化される。このようにして、ユーザは、画面に表示されているウィンドウを直観的に操作することが出来る。
2014522541.tif 000002
【特許請求の範囲】
【請求項１】
ウィンドウによって画定される、画面の一領域内に、データを表示するステップと、
第一のユーザ入力の受信に応じて、前記画面の所定の領域に前記ウィンドウを移動するステップと、
前記画面の前記所定の領域に前記ウィンドウが到達した後に、第二のユーザ入力の受信に応じて、軸を中心としたウィンドウの回転を表示するステップとを有する、コンピュータによって実行される、データの画面表示方法であって、
前記ウィンドウを表示する前記画面の前記一領域のサイズは、前記ウィンドウの前記回転によって小さくなることを特徴とする方法。
【請求項２】
前記ウィンドウが所定の角度回転した後に、
第三のユーザ入力の受信に応じて、前記ウィンドウをアイコンに縮小するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記第一のユーザ入力と、前記第二のユーザ入力と、前記第三のユーザ入力は、ユーザ入力機器を同じ方向へドラッギングすることによって引き起こされることを特徴とする請求項２に記載の方法。
【請求項４】
前記画面の前記領域は、前記画面の複数の縁部を含むことを特徴とする請求項１に記載の方法。
【請求項５】
第一のアプリケーションを実行して、前記ウィンドウによって画定される、前記画面の前記一領域に表示するための前記データを含む第一の画像を生成するステップと、
第二のアプリケーションを実行して、第二の画像を生成するステップと、
前記ウィンドウとは別のウィンドウによって画定された、前記画面の前記第一の領域とは別の領域に前記第二の画像を表示するステップと、をさらに含むことを特徴とする、請求項１に記載の方法。
【請求項６】
前記第一のアプリケーションと前記第二のアプリケーションは、ロボットの操作に関連することを特徴とする、請求項５に記載の方法。
【請求項７】
前記第一のアプリケーションは、
（i） 幾何学的モデルをロードまたは生成する現場形状管理 アプリケーション、
（ii） 前記ロボットに搭載されたカメラによってキャプチャされた、もしくは、ファイルに記録されたビデオストリームを記憶したり、表示したりするビデオストリームアプリケーション、
（iii） 前記ロボットの周辺の座標に物体をマッピングし、前記ロボットに対するパノラマディスプレイを生成するパノラマ式注意アプリケーション、
（iv） 前記ロボットにコマンドを送信するための、指示アプリケーション、
（v）  前記ロボットの前記動作に関するデータのストリームをプロットする、プロッティングアプリケーション、
（vi） メッセージを遮断し、その遮断したメッセージに関連するイベントが起こった時間を記録する記録アプリケーション
のうちの一つであることを特徴とする請求項６に記載の方法。
【請求項８】
前記第一の画像と前記第二の画像は、半透明であることを特徴とする請求項５に記載の方法。
【請求項９】
前記第一のアプリケーションと前記第二のアプリケーションは、ミドルウェアにおいてプリミティブを共有することを特徴とする請求項５に記載の方法。
【請求項１０】
データを処理するアプリケーションと、 
前記アプリケーションに関連付けられたウィンドウマネージャーとを備え、
前記ウィンドウマネージャーは、ウィンドウによって画定される画面の一領域内に、前記アプリケーションによって生成された画像を表示し、
第一のユーザ入力の受信に応じ、前記ウィンドウを前記画面の所定の領域に移動させ、
前記ウィンドウが前記画面の前記所定の領域に移動した後に、第二のユーザ入力の受信に応じて、軸を中心にした前記ウィンドウの回転を表示するように構成され、
前記ウィンドウを表示する前記画面の前記一領域の大きさは、前記ウィンドウの回転によって、縮小されることを特徴とするコンピュータ機器。
【請求項１１】
ユーザ入力を処理して、処理後のユーザ入力信号を生成する入力ハンドラを備え、
前記処理後のユーザ入力信号は、前記ウィンドウを移動したり、回転したりするために、前記アプリケーションもしくは前記ウィンドウマネージャーに提供されることを特徴とする請求項１０に記載のコンピュータ機器。 
【請求項１２】
前記ウィンドウマネージャーは、前記ウィンドウがある特定の角度回転させられた後に、第三のユーザ入力の受信に応じて、前記ウィンドウをアイコンに縮小するようにさらに構成されていることを特徴とする請求項１０に記載のコンピュータ機器。
【請求項１３】
前記第一のユーザ入力、前記第二のユーザ入力及び前記第三のユーザ入力は、ユーザ入力機器を同じ方向にドラッギングすることによって生成されることを特徴とする請求項１２に記載のコンピュータ機器。
【請求項１４】
前記画面の前記所定の領域は、前記画面の複数の縁部を含むことを特徴とする請求項１０に記載のコンピュータ機器。
【請求項１５】
前記アプリケーションは、ロボットの操作に関連付けられ、
少なくとも、もう一つのアプリケーションを有し、
前記もう一つのアプリケーションは、前記ウィンドウとは別のウィンドウによって画定される、前記画面の前記一領域とは別の領域に、前記ロボットの前記操作に関連付けられた別のセットの画像を表示するように構成されていることを特徴とする請求項１０に記載のコンピュータ機器。
【請求項１６】
前記アプリケーションと前記もう一つのアプリケーションは、複数のプリミティブをミドルウェアにおいて共有していることを特徴とする請求項１５に記載のコンピュータ機器。
【請求項１７】
前記アプリケーションは、
（i） 幾何学的モデルをロードまたは生成する現場形状管理 アプリケーション、
（ii）前記ロボットに搭載されたカメラによってキャプチャされた、もしくは、ファイルに記録されたビデオストリームを記憶したり、表示したりするビデオストリームアプリケーション、
（iii） 前記ロボットの周辺の座標に物体をマッピングし、前記ロボットに対してパノラマディスプレイを生成するためのパノラマ式注意アプリケーション、
（iv）前記ロボットにコマンドを送信するための、指示アプリケーション、
（v）前記ロボットの前記動作に関するデータのストリームをプロットする、プロッティングアプリケーション、
（vi）メッセージを遮断し、その遮断したメッセージに関連するイベントが起こった時間を記録するための、記録アプリケーション
のうちの一つであることを特徴とする請求項１５に記載のコンピュータ機器。      
【請求項１８】
実行されると、プロセッサに、
ウィンドウによって画定される画面の一領域内に、データを表示させ、
第一のユーザ入力の受信に応じて、前記画面の所定の領域に前記ウィンドウを移動させ、
前記ウィンドウが前記画面の前記所定の領域に到達した後、第二のユーザ入力の受信に応じて、軸を中心にした前記ウィンドウの回転を表示させるインストラクションを記憶した、コンピュータが読み取り可能な不揮発性記憶媒体であって、
前記ウィンドウを表示する前記画面の前記一領域の大きさは、前記ウィンドウの回転によって縮小されることを特徴とする、前記不揮発性記憶媒体。
【請求項１９】
前記ウィンドウを所定の角度回転させた後に、第三のユーザ入力の受信に応じて、前記ウィンドウをアイコンに縮小するインストラクションをさらに含むことを特徴とする請求項１８に記載のコンピュータが読み取り可能な記憶媒体。
【請求項２０】
前記第一のユーザ入力、前記第二のユーザ入力及び前記第三のユーザ入力は、ユーザ入力機器を同じ方向へドラッギングすることによって引き起こされることを特徴とする請求項１９に記載のコンピュータが読み取り可能な記憶媒体。 
【請求項２１】
前記画面の前記所定の領域は、前記画面の複数の縁部を含むことを特徴とする、請求項１８に記載のコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ機器上に情報を表示するためのユーザインターフェースに関するものである。
【背景技術】
【０００２】
デスクトップコンピュータ、ラップトップコンピュータ、自動車に備えられる車載テレマティックス装置、モバイル機器 （例えば、スマートフォン）、コンソールなどのコンピュータ機器の操作中には、様々なデータが収集され、処理される。これらのコンピュータ機器の多くにおいて、情報は、表示装置の一定の範囲に表示されるウィンドウの形で、ユーザに提示される。コンピュータ機器の操作中には、ある特定のウィンドウを拡大、縮小、もしくは移動したりして、ユーザによる操作を容易にすることができる。 
【０００３】
例えば、ロボットの動作の制御や監視に関するコンピュータ機器の場合、ロボットの動作や制御に関する様々なデータが表示装置に表示されることがある。その様々なデータは、例えば、複数のセンサーからの信号、一つ以上の関節の角度、ロボットの周りの物体の位置、ロボットの残りの計算容量や記憶容量などを含んでいる場合もある。そのようなデータは、ロボットとは離れた位置に置かれ、ユーザが必要に応じて見たり操作したりすることが可能なコンピュータ機器へ、そのロボットから転送することも出来る。 
【０００４】
多くの場合において、単一のウィンドウでは、ユーザーはコンピュータ機器上である特定の情報を見たり、所定の機能を実行することしかできない。そのため、様々な情報を見たり、様々な機能をコンピュータ機器で実行するためには、そのコンピュータ機器上に、他のウィンドウを立ち上げる（起動する）必要がある場合がある。上記の理由やその他の理由により、ユーザは表示装置上に複数のウインドウを立ち上げることがよくある。 
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、表示装置上にあまりに多くのウィンドウが開かれていると、ユーザにとって、自身に関連する情報を特定、追跡するのが難しい時がある。表示装置に開かれるウィンドウを削減するために、ユーザは、比較的重要でない情報を表示しているウィンドウを閉じたり、そのウィンドウのサイズを小さくするなどすることもでき、ユーザは、それにより、より重要な情報を表示しているウィンドウに集中することが出来る。しかしながら、ウィンドウを閉じたり、ウィンドウのサイズを小さくしたりすることは、直観的でも便利でもない操作をユーザに課すことになる場合がある。
【課題を解決するための手段】
【０００６】
本発明の実施形態は、画面上に、他のウィンドウのためのスペースを作るためのユーザ入力の受信に応じて、ウィンドウの回転によってウィンドウのサイズが小さくされた画面上に、データを表示する技術に関するものである。コンピュータ機器で処理されたデータは、ウィンドウによって画定された画面のある範囲内に表示される。ウィンドウは、第一のユーザ入力を受信した後に、画面の所定の範囲に移動される。ウィンドウが画面の所定の範囲に移動した後、第二のユーザ入力を受信したことに応じて、ウィンドウはある軸を中心に回転される。そのウィンドウのサイズは、ウィンドウの回転によって小さくされる。
【０００７】
一実施形態においては、ウィンドウが所定の角度回転された後、第三のユーザ入力を受信したことに応じて、そのウィンドウはアイコンにまで縮小される。
【０００８】
一実施形態においては、第一のユーザ入力、第二のユーザ入力、第三のユーザ入力は、ユーザ入力装置を同じ方向にドラッギングすることによって行われる。
【０００９】
一実施形態においては、画面の所定の領域は、画面の縁部の領域を含んでいる。
【００１０】
一実施形態においては、表示されるデータは、ロボットの操作に関連するデータを含んでいる。 
【００１１】
本明細書に記載された特徴及び利点は、包括的なものではない。図面、明細書、特許請求の範囲を参照することにより、当業者にとっては、多くの付加的な特徴や利点が明らかになるであろう。さらに、本明細書で使われる用語は、読みやすさや説明を第一義的な目的として選ばれたものであり、本発明の主題を限定するように選ばれたものではないことを理解されたい。 
【図面の簡単な説明】
【００１２】
以降の詳細な説明と添付の図面を参照することによって、本明細書によって開示される教示は、容易に理解することができる。 
【００１３】
【図１】一実施形態による、ロボットと、ロボットと通信を行うリモートコンピュータの概略図である。
【００１４】
【図２】一実施形態によるリモートコンピュータのブロック図である。
【００１５】
【図３】一実施形態による、リモートコンピュータのメモリに記憶されたソフトウェアコンポーネントのブロック図である。
【００１６】
【図４】（ａ）から（ｃ）は、前記画面の前記左縁部までウィンドウを移動するユーザ入力の受信に応じた、一実施形態による、画面上の折り畳み式ウィンドウの遷移を図示した図である。
【００１７】
【図５】（ａ）から（ｃ）は、前記画面の前記下端部まで前記ウィンドウを移動させる、ユーザ入力の受信に応じた、一実施形態による、画面上の折り畳み式 ウィンドウの遷移を図示した図である。
【００１８】
【図６】一実施形態によるウィンドウのサイズを縮小する処理を図示したフローチャートである。
【発明を実施するための形態】
【００１９】
図面を参照しながら、本発明の好ましい実施形態を以下に説明する。図面内の同一の参照番号は、同一の要素もしくは機能的に類似した要素を表すものとする。
【００２０】
明細書中の「一実施形態において」という言葉は、実施形態と関連して説明されるある特定の機能、構造、特徴が本発明の実施形態の少なくとも一つに含まれる、という意味であり、常に同一の実施形態を表すものではない。
【００２１】
以下の詳細な説明には、コンピュータ・メモリ内のデータビット操作のアルゴリズム及び記号表現によって表された部分がある。このようなアルゴリズム記述及び表現は、データ処理技術分野において、当業者が研究内容を他の当業者に最も効率的に伝えるために用いる手段である。あるアルゴリズムがあり、それが概して期待した結果に至る筋の通ったステップの系列だと理解されるとする。それらのステップは、物理量の物理的処理を要するステップである。必ずという訳ではないが、これらの物理量は記憶、転送、結合、比較、その他処理が可能な電気的または磁気的信号の形をとるのが普通である。これらの信号をビット、値、要素、記号、文字、術語、番号などで表わすのが、主に慣用上の理由から便利な場合があることが分かっている。さらに、一般性を損なうわけではないが、物理量の物理的処理を要するステップのある特定の配列を、モジュールもしくはコードデバイスなどと表すのが便利な場合があることが分かっている。
【００２２】
しかしながら、このような術語や同様の用語はすべて適切な物理量に関連付けられるべきであり、また、それら物理量に付けた便宜上のラベルに過ぎないということに留意すべきである。以下の説明より明らかなように、特に断わらない限り、「処理」、「演算」、「計算」、「判定」、「表示」などの術語によって論じられることは、コンピュータシステムのレジスタ及びメモリの内部の物理的（電子的）な量として表現されたデータを処理して、コンピュータシステムのメモリやレジスタ、その他同様の情報記憶装置、情報伝送装置又は表示装置の内部の同様に物理量として表現された他のデータへ変換する、コンピュータシステムや同様の電子的演算装置の作用及びプロセスを意味する。
【００２３】
本発明のある側面は、アルゴリズムの形で記述されたプロセス・ステップ及び命令を含んでいる。本発明におけるそれらのプロセス・ステップ及び命令は、ソフトウェア、ファームウェア、もしくはハードウェアのいずれでも実現することが可能であり、ソフトウェアによって実現する場合、ダウンロードして様々なオペレーティングシステム上の各種プラットフォームに駐在させて動作させることも出来る。
【００２４】
本発明は、本明細書に述べた処理を実行するための装置にも関係するものである。このような装置は、所要目的のために専用に作られてもよいし、汎用コンピュータを内蔵のコンピュータ・プログラムによって選択駆動もしくは再構成したものでもよい。そのようなコンピュータ・プログラムは、コンピュータが読み取り可能な記憶媒体、限定するわけではないが例えば、フロッピー（登録商標）ディスク、光ディスク、ＣＤ−ＲＯＭ、光磁気ディスクなどの任意の種類のディスク、リードオンリーメモリ（ＲＯＭ）やランダムアクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気カード又は光カードなど、コンピュータのシステムバスに接続された電子的命令の記憶に適した任意種類の媒体に格納することができる。さらに、明細書中でコンピュータと呼ばれるものは、１つのプロセッサのみを含むものでもよいし、演算能力の向上のために設計されたマルチプロセッサ構成を実装したものでもよい。
【００２５】
本明細書で提示したアルゴリズム及び表示は、本質的に、いかなる特定のコンピュータ、その他の装置とも関わりがない。様々な汎用マシンを、本明細書に述べる内容に従ったプログラムで使用し得るが、所要の手順のステップの実行のために、より特化した装置を作るほうが好都合であるかもしれない。そのような多様なシステムに必要とされる構造は以下の説明から明らかになろう。さらに、どのような特定のプログラミング言語とも関連付けることなく本発明を説明する。 本明細書に述べる本発明の内容を実現するために様々なプログラミング言語を使用し得ることを理解されよう。本明細書における、特定のプログラミング言語に関する言及は、本発明の実施可能性及び最良の実施形態を開示するためである。
【００２６】
さらに、本明細書における用語は原則的に可読性及び説明の便宜上選択されたものであり、発明の主題を特定、制限するために選択されたものではない。したがって、本発明の開示は説明のためのものであり、請求の範囲に記載された発明の範囲を制限するものではない。
【００２７】
本発明の実施形態は、ユーザインターフェース画面が、他のウィンドウのためのスペースを作るために、回転可能で、かつ、アイコンに最小化可能な一つ以上のウィンドウを含むコンピュータ機器での処理に関するデータを表示するユーザインターフェース画面を提供する技術に関するものである。ウィンドウを移動させるためのユーザ入力を受け付けると、ウィンドウは、画面の縁部領域に移動する。さらに、ユーザ入力を受け付けると、ウィンドウは、ある軸を中心に回転し、そして、アイコンに最小化される。このようにして、ユーザは、画面にあるウィンドウのサイズを、直観的に縮小することが出来る。
【００２８】
本明細書で使われている、「ウィンドウ」とは、画像を表示するための画面上におけるある所定の領域のことを指している。ウィンドウは、通常、サイズを大きくしたり、小さくしたりすることが可能な長方形の形をとっている。また、一つのウィンドウがその画面の一部もしくは全体の領域を占める場合もある。 
【００２９】
以下、本発明の実施形態を、ロボットの動作を制御または監視するコンピュータ機器を参照しながら説明する。ロボットの動作に関する実施形態の説明は例に過ぎず、他の実施形態においては、ロボットの動作に関連しない他のタイプのデータの提示などの、別のタイプの操作にも使用することが出来る。例えば、他の実施形態においては、連絡先情報の提示、コミュニケーションの初期化、モバイルコンピュータ機器（例えば、スマートフォン）を使用したインターネットの閲覧などに関連する場合もある。
ロボットとリモートコンピュータの概要 
【００３０】
図１は、本発明の一実施形態による、ロボット１００及びロボット１００と通信を行うリモートコンピュータ１５０の概略図である。ロボット１００は、特に、複数の体部位、複数の体部位間の相対的な動きを引き起こす複数のアクチュエータと、ローカルコンピュータ１４０と、複数のセンサと、複数の出力装置（例えば、スピーカー）とを備えることができる。複数の体部位は、例えば、腕、手、胴体、頭、脚、足などを含んでいてもよい。これらの体部位の相対的な動きは、モータなどのアクチュエータによって引き起こされる。視覚映像もしくは音声信号を取り込む他に、ロボット１００の姿勢を検知するために、体部位にセンサを取り付けてもよい。
【００３１】
ローカルコンピュータ１４０は、センサ信号やその他の入力コマンドを処理する、ハードウェア、ソフトウェア、ファームウエア、もしくは、それらの組み合わせであり、アクチュエータ信号を生成し、他のコンピュータ機器と通信を行う。一実施形態において、ローカルコンピュータ１４０は、チャネル１５２を介してリモートコンピュータ１５０と通信を行い、データを送受信する。チャネル１５２は、有線技術を使用して実装してもよいし、無線技術を使用して実装してもよい。 
【００３２】
リモートコンピュータ１５０は、ユーザが使うことによって、ロボット１００の動作に関する情報を収集したり、ロボット１００に命令を送ったりする。リモートコンピュータ１５０は、未加工のデータもしくは処理データを、チャネル１５２を介してロボット１００から受信する。チャネル１５２を介して送受信されるデータは、特に、ロボット１００に取り付けられた一つ以上のカメラによって取り込まれたストリーム画像、センサ信号、ロボット１００の周囲で検出された物体の座標とＩＤ、ロボット１００に取り付けられたマイクロフォンで取り込んだ音声信号、ロボット１００にある動作をさせるための命令などである。
【００３３】
図１では、人型ロボットを図示しているが、本発明の実施形態は、その他の様々な構成のロボットに使用することが出来る。例えば、ロボットは、単一のアームを有する工業用ロボットであってもよい。
リモートコンピュータの構成の一例
【００３４】
図２は、一実施形態による、リモートコンピュータ１５０のブロック図である。リモートコンピュータ１５０は、特に、プロセッサ２１４、ディスプレイインターフェース ２１８、画面２２０、入力インターフェース２２２、メモリ２３０、ネットワークインターフェース２３４及び、これらの構成部を接続するバス２４２などを備えている。リモートコンピュータ１５０は、図２に図示されていないその他の構成部を含んでいてもよい。 
【００３５】
プロセッサ２１４は、命令を読み取って実行し、この命令の実行の結果として処理データを出力するハードウェアコンポーネントである。プロセッサ２１４は、データ処理の容量やスピードを増加させるために、一つ以上の処理コアを備えていてもよい。
【００３６】
ディスプレイインターフェース２１８は、信号を生成して、リモートコンピュータ１５０の画面２２０上に、画像を表示するためのハードウェアコンポーネントである。ディスプレイインターフェース２１８は、メモリ２３０上の命令モジュールに従って、信号を生成する。一実施形態においては、ディスプレイインターフェース２１８は、ビデオカードである。
【００３７】
入力インターフェース２２２は、マウス、キーボード、タッチパッドなどの、ユーザ入力装置とのインターフェースとなるコンポーネントである。入力インターフェース２２２は、ユーザが発した音声コマンドを認識するためのハードウェア、ソフトウェア、ファームウェアの組み合わせとして実装してもよい。
【００３８】
メモリ２３０ は、プロセッサ２１４でデータ処理動作を行うための命令モジュールやデータを記憶する、コンピュータが読み取り可能な記憶媒体である。メモリ２３０内の命令モジュールの詳細は、図３を参照しながら、以下で説明する。 
【００３９】
ネットワークインターフェース２３４は、ロボット１００とのチャネル １５２を確立する。ネットワークインターフェース２３４ は、IEEE１３９４、Wi-Fi、Ｂlootooth、ユニバーサルシリアルバス （USB）などのプロトコルを使って、チャネル １５２を介して、データの送信を制御することもできる。
【００４０】
図３は、一実施形態による、リモートコンピュータ１５０のソフトウェアコンポーネントを図示したブロック図である。図３に例示した一つ以上のソフトウェアコンポーネントは、専用のハードウェアコンポーネントもしくはファームウェアとして実装することも出来る。メモリ２３０は、特に、オペレーティングシステム３１０、ミドルウェア３２０、複数のアプリケーション３３０Ａから３３０Ｎ（以降、「アプリケーション３３０」として総称する）を記憶する。メモリ２３０は、図３に図示した、一つ以上のソフトウェアコンポーネントを全て記憶することが出来る、複数のメモリ装置を含んでいてもよい。
【００４１】
オペレーティングシステム３１０は、リモートコンピュータ１５０のリソースを管理して、アプリケーション３３０のための共通サービスを提供する。オペレーティングシステム３１０は、特に、LINUX（登録商標）、UNIX（登録商標）、MICROSOFT WINDOWS（登録商標）、IOS、MAC OSX、ANDROID（登録商標）などを含んでいてもよい。
【００４２】
ミドルウェア３２０は、アプリケーション３３０の一部もしくは全てのアプリケーション３３０のためのライブラリや関数を提供する。ミドルウェア３２０は、特に、ウィンドウマネージャー３１８及び入力ハンドラ３２４を含んでいてもよい。ウィンドウマネージャー３１８は、画面２２０に表示された一つ以上のウィンドウを管理する。ウィンドウマネージャー３１８は、アプリケーション３３０が、画面２２０上の一つ以上のウィンドウを生成、移動、修正もしくは削除することを可能にするライブラリと関数を提供する。図４（ａ）から図４（ｃ）を参照しながら以降で詳述するように、一実施形態において、ウィンドウマネージャー３１８は、ユーザ入力の受信に応じてウィンドウを回転させたり、アイコンにしたりすることを可能にする。 
【００４３】
入力ハンドラ３２４は、入力インターフェース２２２を介して、ユーザインターフェース機器（例えば、マウス、キーボード、タッチ画面）からユーザ入力を受信し、ユーザ入力を処理し、そのユーザ入力に基づいた動作を行うように、その処理後の信号をアプリケーション３３０やウィンドウマネージャー３１８に提供する。
【００４４】
それぞれのアプリケーション３３０は、チャネル１５２を介して、ロボット１００からデータを受信し、これらのアプリケーション３３０の一部は、ウィンドウマネージャー３１８を使用して、画面２２０上に画像を表示させる。また、アプリケーション３３０は、ローカルコンピュータ１４０と独立して演算動作（例えば、軌道計画）を行ってもよいし、ローカルコンピュータ１４０と協同して演算動作を行ってもよい。アプリケーション３３０は、自身の動作を行うために、ウィンドウマネージャー３１８や入力ハンドラ３２４などのミドルウェア３２０から利用可能なライブラリと関数を使用することもできる。
【００４５】
アプリケーション３３０の例としては、以下のものが挙げられる。（i）ロボット１００のセンサで検出したイベントに基づいて、幾何学的モデルをロードし、 幾何学的モデルのインスタンスを生成する、３D 現場形状管理 アプリケーション、（ii）ロボットに取り付けられたカメラからのビデオストリームやファイルに記憶されたビデオストリームを記憶したり、表示したりする、ビデオストリームアプリケーション、（iii）ロボット１００の周辺の座標に物体をマッピングし、マッピングされた物体を含むパノラマディスプレイを生成するための、パノラマ式注意アプリケーション、（iv）ロボット１００にハイレベルなコマンドを送信するための指示アプリケーション、（v）ロボット１００の動作に関連するデータのストリームをプロットする、プロッティングアプリケーション、（vi）ミドルウェア３２０からのメッセージを遮断し、その遮断したメッセージに関連するイベントが起こった時間を記録するための、記録アプリケーション。
【００４６】
一実施形態において、ミドルウェア３２０は、アプリケーション３３０が画面２２０上に画像を描くことを可能にする、再利用可能で拡張可能なプリミティブのセットのための関数とライブラリを提供する。ミドルウェア３２０内のプリミティブを使用することで、様々なアプリケーション３３０を容易にコンパクトな形にプログラムすることが出来る。プリミティブは、動的プラグインによってアプリケーション３３０の機能を拡張するための基礎として使用することも出来る。動的プラグインを使用することで、既存のアプリケーション３３０を再編集したり、修正したりする必要性を軽減することが出来る。
折り畳み式ウィンドウ 
【００４７】
図４（ａ）から図４（ｃ）は、ウィンドウ４１８Ａを画面４１０の左端に移動するユーザ入力の受信に応じた、本発明の一実施形態による画面４１０上の折り畳み式ウィンドウ４１８Ａの遷移を示した図である。画面４１０上がウィンドウでいっぱいになるのを軽減するために、ユーザは、ウィンドウのサイズを小さくするように決定することが出来る。ウィンドウマネージャー３１８は、ウィンドウを回転させる方法や直観的にウィンドウをアイコン化する方法を提供する。
【００４８】
図４（ａ）は、２つのウィンドウ４１８Ａ、４１４が重なって表示されている画面４１０を示している。画面４１０を片づけてウィンドウ４１４を表示するために、ウィンドウ４１８Ａを左側方向（矢印で示す方向）に移動させる入力（例えば、ウィンドウ ４１８Ａを選択し、マウスを左方向へドラッギングするマウスの入力）をユーザが提供したため、ウィンドウ ４１８Ａは、フラットな状態で画面４１０の左端へ移動させられている。フラットな状態とは、ウィンドウが回転もアイコン化もされていない状態のことを指す。
【００４９】
図４中の矢印の方向のユーザ入力（例えば、左方向へのマウスのドラッギング）を受信しているので、ウィンドウ４１８Ａが、左端、もしくは、左端からある特定の距離の範囲内にある領域に達すると、（ウィンドウ４１８Ａに対応する）ウィンドウ４１８Ｂは、４２０を中心に回転させられる。つまり、ウィンドウ４１８Ａを投影する仮想平面が軸４２０を中心に回転させられ、その仮想平面とウィンドウ４１８Ｂが画面４１０の右正面側に向かっているような三次元的な知覚を与える。ウィンドウ４１８Ｂを回転させることで、ウィンドウ ４１４Ｂが画面４１０内であまりスペースをとることはなくなり、ウィンドウ ４１４を邪魔することが少なくなる。ウィンドウ４１８Ｂが画面４１０の右前側に向かっている状態のまま、ウィンドウ４１８Ｂが回転された状態を保つ一方、 画像はウィンドウ４１８Ｂ上に表示され続けることが出来る。さらに、ウィンドウ４１８Ｂの他のユーザインターフェースエレメント（例えば、アイコン、制御、メニューなど）は、予定された位置で操作可能な状態を維持しており、ウィンドウ４１８Ｂを拡大することなく、ユーザが必要な動作を行うことを可能にしている。
【００５０】
一実施形態においては、ウィンドウ４１８Ｂが回転させられる一方、ウィンドウ４１８Ｂの一端は、その位置を維持している。図４（ｂ）の例においては、ウィンドウ４１８Ｂの右端４１３が、ウィンドウ４１８Ｂの回転に伴って、漸進的に左側へ移動し、ウィンドウ４１８Ｂの全体の大きさを小さくする一方、ウィンドウ４１８Ｂの左端４１１が同じ状態に保たれる。ユーザは、ウィンドウ４１４に表示される画像に集中する一方、関連するデータをウィンドウ４１８Ｂから見ることが出来るように、ウィンドウ４１８Ｂをその回転された位置のままにしておくことも出来る。
【００５１】
また、ユーザは、ある特定の角度（例えば、４５度）を超えて、軸４２０に沿って、ウィンドウ４１８Ｂを回転した後、同じ入力 （例えば、左側にマウスをドラッギングするなど）を提供し続けることにより、ウィンドウ４１８Ｂをアイコン ４１８Cにすることも出来る。一実施形態においては、ウィンドウ ４１８Ｂがアイコンになる角度は、ウィンドウ４１８Ｂのユーザインターフェースエレメントの構成によって決まる。ウィンドウ４１８Ｂのユーザインターフェースエレメントのサイズが小さい場合、ウィンドウ４１８Ｂの回転角度が小さい場合でも、ウィンドウ４１８Ｂをアイコンにしてもよい。対照的に、ウィンドウ４１８Ｂのユーザインターフェースエレメントのサイズが大きい場合、ユーザは、大きな回転角度でもユーザインターフェースエレメント上で操作を行うこともできるため、ウィンドウ４１８Ｂがより大きな角度まで回転させられたときに、ウィンドウ４１８Ｂをアイコンにするようにしてもよい。ウィンドウをアイコンにすることで、他のウィンドウやユーザインターフェースエレメントからの情報を表示するために、より多くのスペースが利用可能となる。
【００５２】
一実施形態においては、所定のユーザ入力 （例えば、アイコン４１８Cのダブルクリック等）を提供することにより、アイコン４１８Cを、回転したウィンドウ４１８Ｂもしくはフラットな状態のウィンドウ４１８Ａに拡大することが出来る。２つ以上のアイコン４１８Cは、画面４１０に駐在させて、ユーザが関連するアイコンを見つけて拡大することが容易になるようすることも出来る。
【００５３】
図５（ａ）から図５（ｃ）は、画面５１０の下端へウィンドウを移動するユーザ入力の受信に応じた、一実施形態による画面上の折り畳み式ウィンドウ５１８Ａの遷移を表わした図である。
【００５４】
ユーザが、ウィンドウ５１８Ａを下側方向（矢印で示す方向）へ移動させる入力を提供するのにしたがって、ウィンドウ５１８Ａは、フラットな状態のまま、画面５１０の下端へ移動する。下端もしくは、下端に近い位置へ到達した後にも、ユーザ入力 （例えば、マウスの下側方向へのドラッギング）が入力ハンドラ３２４を介してユーザから入力されているため、ウィンドウ５１８Ｂ （ウィンドウ５１８Ａに対応する） は、軸５２０を中心に回転させられる。
【００５５】
ある特定の角度（例えば４５度）を超えて、軸５２０に沿ってウィンドウ５１８Ｂが回転した後にも、ユーザが同じ入力（例えば、マウスの下側方向へのドラッギングなど）を提供し続けることにより、ウィンドウ ５１８Ｂをアイコン５１８Ｃに縮小することも可能である。 
【００５６】
図４（ａ）から図５（ｃ）は、ウィンドウ４１８Ｂを画面の左端または下端に移動した後、垂直軸４２０または水平軸５２０について、ウィンドウ４１８Ｂを回転させる様子を図示しているが、ウィンドウ４１８Ｂを画面の上端もしくは右端に移動させた後に、垂直軸または水平軸についてウィンドウ４１８Ｂを回転させることも出来る。
【００５７】
ウィンドウを回転したり、アイコンにしたりするユーザ入力は、リモートコンピュータ１５０を操作するのに使用する入力機器のタイプによって異なっていてもよい。マウスなどのポインティングデバイスを使用する場合、ウィンドウをクリックして、移動動作（つまり、ドラッギング）を行うことで、ウィンドウを画面の端へ移動させて、さらに、ウィンドウを回転させたり、アイコンにしたりすることができる。または、ウィンドウの最初のダブルクリックによって、ウィンドウを軸を中心に回転させて、同じウィンドウを二回目にダブルクリックすることによって、ウィンドウをアイコンにするようにしてもよい。タッチ画面においては、ウィンドウをスクロールすることによって、ウィンドウを画面端へ移動させた後、ウィンドウを回転したり、アイコンにしたりしてもよい。
【００５８】
一実施形態においては、一つ以上のウィンドウをフラットな状態もしくは回転させた状態で、半透明にしておくことも出来る。半透明なウィンドウは、その半透明なウィンドウによって視界を遮られた、他のウィンドウや画面上の画像をユーザが見ることを可能にする一方で、半透明なウィンドウ上に表示されたデータをユーザが見ることを可能にしている。一実施形態においては、ユーザ入力 （例えば、マウスホイールのスクロール）によって、選択したウィンドウの透明性を修正するようにすることもできる。
画面上に表示されたウィンドウを並進させる方法 
【００５９】
図６は、ウィンドウのサイズを小さくする処理を表わしたフローチャートである。一実施形態によるリモートコンピュータ１５０は、ユーザ入力機器を介して、ユーザ入力を受信（Ｓ６０６）して、ウィンドウの並進移動を行う。
【００６０】
並進移動の結果、ウィンドウは、画面４１０の端（例えば、図４（ｂ）に示す、画面４１０の左端）へ移動（６１０）する。リモートコンピュータ１５０は、画面４１０の端へウィンドウが到達した後、同じユーザ入力を受信し続ける（６１４）。それに応じて、ウィンドウは、軸（例えば、垂直軸４２０）を中心に回転する（６１８）。ウィンドウを回転させることによって、画面４１０上の他のウィンドウは、その回転したウィンドウによって視界を遮られなくすることができ、画面４１０上の他のウィンドウをユーザが視認可能とすることが出来る。 
【００６１】
ある特定の角度までウィンドウを回転した後もさらに、リモートコンピュータ１５０が同じユーザ入力を受信し続けた（６２２）場合、そのウィンドウはアイコンになる（６２８）。アイコンになったウィンドウは、画面４１０上で占めるスペースが小さくなるため、残ったスペースを他のウィンドウやユーザインターフェースエレメントが利用できるようになる。
【００６２】
上記の実施形態は、ロボットの制御やロボットの情報の表示について説明したが、異なる実施形態を、ロボットの操作とは関係のないデータの表示に使用することもできる。例えば、折り畳み式ウィンドウを、ウエブブラウザ、ワードプロセッサ、スプレッドシートなどの、他のアプリケーションに関連する画像を表示するために使うこともできる。    
【００６３】
幾つかの実施形態を説明してきたが、本発明の範囲内において様々な修正を行うことも可能である。したがって、本発明の開示は説明を目的とするものであって、添付の特許請求の範囲に記載される本発明の範囲を限定するものではない。
【図１】
2014522541.tif 000003
【図２】
2014522541.tif 000004
【図３】
2014522541.tif 000005
【図４】
2014522541.tif 000006
【図５】
2014522541.tif 000007
【図６】
2014522541.tif 000008
【国際調査報告】
2014522541.tif 000009