(57)【要約】【課題】プログラム作成者が入出力インタフェースデバイスの特徴や違いを意識することなく、共通の情報送受方法でデバイスの制御を行うことができ、また、様々なデバイスやその制御プログラムに対応することが可能な入出力インタフェースシステム及びその方法を提供する。【解決手段】上記の目的を達成するために、本発明に関わる入出力インタフェースシステムは、入力または出力の少なくとも一方の機能を備えたデバイスのライブラリ情報を電子計算機に取得させる機能であるライブラリ情報取得部と、ライブラリ情報から電子計算機にライブラリ使用方法を解析させる機能であるライブラリ使用方法解析部と、電子計算機に前記ライブラリ使用方法解析部により解析された使用方法に基づいてライブラリを使用可能にする機能を生成させる機能であるライブラリ使用方法生成部と、デバイス情報をデバイス部と外部プログラムとの間で共有するデバイス情報共有部とを備えたことを特徴とするものである。【選択図】図１
2008097234.tif 000002
【特許請求の範囲】
【請求項１】
入力または出力の少なくとも一方の機能を備えたデバイスのライブラリ情報を電子計算機に取得させる機能であるライブラリ情報取得部と、ライブラリ情報から電子計算機にライブラリ使用方法を解析させる機能であるライブラリ使用方法解析部と、電子計算機に前記ライブラリ使用方法解析部により解析された使用方法に基づいてライブラリを使用可能にする機能を生成させる機能であるライブラリ使用方法生成部と、デバイス情報をデバイス部と外部プログラムとの間で共有するデバイス情報共有部とを備えたことを特徴とする入出力インタフェースシステム。
【請求項２】
入力または出力の少なくとも一方の機能を備えたデバイスのライブラリ情報を電子計算機に取得させる機能であるライブラリ情報取得部と、ライブラリ情報から電子計算機にライブラリ使用方法を解析させる機能であるライブラリ使用方法解析部と、電子計算機に前記ライブラリ使用方法解析部により解析された使用方法に基づいてライブラリを使用可能にする機能を生成させる機能であるライブラリ使用方法生成部と、各デバイスのパラメータを電子計算機に加工させる機能であるパラメータ加工部と、デバイス情報をデバイス部と前記パラメータ加工部との間で共有するデバイス情報共有部と、前記パラメータ加工部によって加工されたパラメータを外部プログラムと共有するパラメータ共有部とを備えたことを特徴とする入出力インタフェースシステム。
【請求項３】
各デバイスのパラメータを電子計算機に加工させる機能であるパラメータ加工部が、デバイスのパラメータ範囲および初期パラメータを電子計算機に取得させる機能であるデバイスキャリブレーションパラメータ取得部と、前記デバイスキャリブレーションパラメータ取得部により取得したパラメータ範囲を一律に定められた範囲に電子計算機により規格化させる機能とを備えたことを特徴とする請求項２に記載の入出力インタフェースシステム。
【請求項４】
前記パラメータ加工部は、外部情報を電子計算機に取得させる外部情報取得部と、前記外部情報取得部で取得した外部情報を元に電子計算機にパラメータを加工させる機能とを備えたことを特徴とする請求項２に記載の入出力インタフェースシステム
【請求項５】
前記外部情報は、デバイス操作者に関する情報を含む請求項４に記載の入出力インタフェースシステム。
【請求項６】
デバイスは、入力及び出力の両方を備えた入出力インタフェースデバイスであり、かつ、触覚または力覚の少なくとも一方をデバイス操作者に提示することができる触力覚提示デバイスを含むことを特徴とする請求項１から５に記載の入出力インタフェースシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム作成者やデバイス操作者が入出力インタフェースデバイスの特徴や違いを意識することなく、共通のパラメータ共有方法でデバイス情報の入出力を行うことができ、また、様々なデバイスやそのライブラリに対応することが可能な入出力インタフェースシステム及びその方法の技術に関する。
【０００２】
ここで、本発明においてライブラリとは、例えば、前記入出力インタフェースデバイスのデバイスドライバの情報に基づいてデバイス情報の取得や設定を行う機能を提供するプログラムや、プログラムとリンクすることにより別のプログラムの機能を拡張するプログラムなどを含む。
【背景技術】
【０００３】
近年、コンピュータ技術の発展により、マウス、キーボード、ディスプレイといった標準的な入出力インタフェースデバイス以外にも、ジョイスティック、ペンタブレット、触力覚デバイスなど、様々な入出力インタフェースデバイスが開発されてきている。
【０００４】
前記インタフェースデバイスをプログラム内で使用する必要があるプログラム作成者は、各デバイスのデバイスドライバやライブラリを使用するプログラムを作成しデバイスを使用する。
【０００５】
前記インタフェースデバイスにおいては、それぞれのデバイスで、例えば、位置情報の入力方法や、表示するデータの出力方法などや、それらの入出力データのパラメータ範囲等が異なっており、プログラム作成者はそれぞれのデバイスを使用するために個別の操作プログラム・コードを記述する必要があった。また、複数のデバイス操作者が同一デバイスを操作した場合には、力の弱い操作者と力の強い操作者では操作感が異なるなど、操作者の特性により操作性が低下する場合があった。
【０００６】
上記のような問題点を解決するための従来の技術として、デバイス操作者の特性と使用可能なデバイスの情報から、各デバイスの動作調整のためのユーザインタフェース機能、選択操作のためのユーザインタフェース機能、入力操作のためのインタフェース機能、情報出力のためのユーザインタフェース機能を、整合性を保持しながら連携して、複数の特性を持つユーザに適応した一貫性のあるインタフェースを提供することを目的とする入出力インタフェース装置が提供されている（例えば、特許文献１参照）。
【特許文献１】特許  ２７５７８２８号  公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記文献には、新たな入出力インタフェースデバイス及びライブラリに対応する方法が記載されておらず、新規に使用したいデバイスがある場合に即座に対応することができない。
【０００８】
また、触力覚デバイス等の制御が必要なデバイスは、デバイスドライバのみとのデータ入出力でデバイス制御を行うことは困難であり、デバイスを制御するためのライブラリを使用することが殆どである。上記文献ではライブラリを用いたデバイス制御を行うことは考慮されていない。
【０００９】
本発明は、上記問題点を解決するためになされたものであり、プログラム作成者やデバイス操作者に、デバイスの違いやライブラリの違いを意識させることなくデバイス制御を行うことを可能にさせる機能と、容易に新たなデバイスを使用可能な状態にすることが可能な機能を持つことを特徴とする入出力インタフェースシステムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記の目的を達するために、本発明に関わる入出力インタフェースシステムは、入力または出力の少なくとも一方の機能を備えたデバイスのライブラリ情報を電子計算機に取得させる機能であるライブラリ情報取得部と、ライブラリ情報から電子計算機にライブラリ使用方法を解析させる機能であるライブラリ使用方法解析部と、電子計算機に前記ライブラリ使用方法解析部により解析された使用方法に基づいてライブラリを使用可能にする機能を生成させる機能であるライブラリ使用方法生成部と、デバイス情報を外部プログラムと共有するデバイス情報共有部とを備えたことを特徴とするものである。
【００１１】
また本発明は、入力または出力の少なくとも一方の機能を備えたデバイスのライブラリ情報を電子計算機に取得させる機能であるライブラリ情報取得部と、ライブラリ情報から電子計算機にライブラリ使用方法を解析させる機能であるライブラリ使用方法解析部と、電子計算機に前記ライブラリ使用方法解析部により解析された使用方法に基づいてライブラリを使用可能にする機能を生成させる機能であるライブラリ使用方法生成部と、各デバイスのパラメータを電子計算機に加工させる機能であるパラメータ加工部と、デバイス情報を前記パラメータ加工部と共有するデバイス情報共有部と、前記パラメータ加工部によって加工されたパラメータを外部プログラムと共有するパラメータ共有部とを備えたことを特徴とするものである。
【００１２】
ここで、本発明においてライブラリ情報を電子計算機に取得させるとは、電子計算機内のメモリ上や記憶装置内などにライブラリ情報を記録し、プログラムから読み出せる状態にすることを含む。
【００１３】
また本発明は、各デバイスのパラメータを電子計算機に加工させる機能であるパラメータ加工部が、デバイスのパラメータ範囲および初期パラメータを電子計算機に取得させる機能であるデバイスキャリブレーションパラメータ取得部と、前記デバイスキャリブレーションパラメータ取得部により取得したパラメータ範囲を一律に定められた範囲に電子計算機により規格化させる機能とを備えたことを特徴とするものである。
【００１４】
また本発明は、前記パラメータ加工部において、外部情報を電子計算機に取得させる外部情報取得部と、前記外部情報取得部で取得した外部情報を元に電子計算機にパラメータを加工させる機能とを備えたことを特徴とするものである。
【００１５】
また本発明は、前記外部情報が、デバイス操作者に関する情報を含んでいることを特徴とするものである。
【００１６】
また本発明において、デバイスとは、入力及び出力の両方を備えた入出力インタフェースデバイスであり、触覚または力覚の少なくとも一方をデバイス操作者に提示することができる触力覚提示デバイスを含んでも良い。
【００１７】
ここで、本発明において入出力インタフェースデバイスとは、例えば、キーボード、マウス、ディスプレイ、触力覚デバイスなど、入力または出力の少なくとも一方の機能を持つデバイスを含む。
【００１８】
また、本発明において触力覚デバイスとは、触覚または力覚の少なくとも一方をデバイス操作者に提示することが可能な入出力インタフェースデバイスを含む。
【００１９】
また、本発明において入出力インタフェースシステムとは、単一の電子計算機内のプログラムでも良く、複数の電子計算機内に分かれているプログラムでも良く、また、デバイスを含んでも良い。
【発明の効果】
【００２０】
本発明によれば、プログラム作成者やデバイス操作者は入出力インタフェースデバイスの特徴や違いを意識することなく、デバイスの制御または操作を行うことが可能となり、様々なプログラムから入出力インタフェースデバイスのデバイス情報の入出力が容易に行えるようになる。また、新たなデバイスとそのライブラリを容易に使用することができるようになる。
【発明を実施するための最良の形態】
【００２１】
以下に、本発明の実施の形態を示す。
【実施例１】
【００２２】
図１は、本発明の実施の形態に関わるシステムの全体構成を示す図である。デバイス部１０１は、例えば、図１のように、入出力インタフェースデバイスと、電子計算機から入出力デバイスのデバイス情報を入力または出力の少なくとも一方を行うためのデバイスドライバと、前記デバイスドライバからデバイス情報を加工するライブラリで構成される。
【００２３】
本実施例において、入出力インタフェースデバイスとは、例えば、マウス、キーボード、ジョイスティックなどの入力デバイスや、ディスプレイやプリンタなどの出力デバイスを示したり、糸とモータを用いたデバイスで糸の長さによりエンドエフェクタの位置を取得し入力する機能と、モータを制御し糸の張力でデバイス操作者に触力覚を出力する機能の両方の機能を備えた入出力デバイスを指す。糸とモータを用いた触力覚デバイスでは、デバイスから糸の長さの変化情報を取得する手段と、前記手段で取得した糸の長さの変化情報からエンドエフェクタの位置や回転を計算する手段と、前記手段で計算した位置や回転情報を取得する手段と、位置や回転情報を設定する手段と、触力覚情報を設定する手段と、前記設定手段により設定された触力覚情報をモータ制御情報に変換する手段と、前記モータ制御情報によりデバイスのモータを制御する手段を持つ。
【００２４】
プログラム作成者が作成するプログラムの情報入出力部１０３は、例えば、Ｗｅｂブラウザの機能を拡張するプログラムや、Ｗｅｂページ上で３次元空間を構築するＷｅｂ３Ｄ技術に基づいたプログラムや、プログラム作成者がデバイスを使用するＣやＣ＋＋やＪａｖａ（登録商標）で記述されたプログラムなど、プログラム作成者がデバイスを使用したいプログラムにおいて、別のプログラムとデバイス情報を共有することができるプログラムの一部または全部およびそれに関するインタフェースのことである。
【００２５】
デバイス情報共有部（１）１０２は、例えば、デバイス部１０１と情報入出力部１０３との間で電子計算機の同じメモリ領域にデバイス情報を読み書きする手段や、デバイス部１０１と情報入出力部１０３との間でデバイス情報を含むメッセージを送受信する手段など、デバイス情報をデバイス部１０１と情報入出力部１０３との間で共有させるインタフェースとしての役割を果たすプログラムおよびそれに関するインタフェースである。
【００２６】
本実施例において、デバイス情報を共有するとは、例えば、デバイス操作者がデバイスを操作した場合に変化したデバイスの位置情報を共有するために、デバイス情報共有部（１）１０２はデバイス部１０１のデバイスから新たな位置情報を取得する必要があるが、デバイス情報共有部（１）１０２が直接デバイスからデバイス情報を取得することはできないため、まず、デバイスドライバがデバイス情報をデバイス部１０１のデバイスから取得し、次に、ライブラリが前記デバイス情報をデバイスドライバから取得し、最後にデバイス情報共有部（１）１０２が前記デバイス情報をライブラリから取得し、前記取得したデバイス情報を図示していないが電子計算機内のメモリや外部記憶装置などに記録し、情報入出力部１０３から参照できる状態にする手段である。
【００２７】
本実施例において、デバイス情報とは、例えば、デバイスがつながっているかどうか、デバイスを使用する準備ができているかどうか、ボタンが押されているかどうかなどのデバイスの状態や、マウスの場合ではマウスの変位情報、触力覚デバイスではデバイスのエンドエフェクタの位置情報などの入力情報と、デバイス操作者に提示する触力覚情報、ディスプレイの場合には出力画像情報、スピーカーの場合には音声情報などの出力情報であり、入出力デバイスから取得・設定できるデバイス情報を指す。
【００２８】
本実施例において、触力覚情報とは、例えば、３自由度の入出力が可能な触力覚デバイスでは、直行する３つの軸方向へ発生させる力の大きさの情報や、ばね・粘性・摩擦力など、デバイス操作者に提示する触力覚の種類、デバイス操作者に提示する時間などであり、デバイス操作者に触力覚を提示するために必要な情報を指す。
【００２９】
ライブラリ情報取得部１０４は、例えば、入出力デバイスのデバイス情報を取得・設定するために提供されているライブラリにおけるヘッダファイルあるいはライブラリファイルあるいはヘルプファイルなどを、電子計算機内や外部記憶装置に格納されたデータなどから検索する手段や、プログラム作成者が前記ファイルあるいはファイルが存在するフォルダを指定する手段などであり、デバイス部１０１よりライブラリ情報を電子計算機に取得させるプログラムおよびそれに関するインタフェースである。
【００３０】
ライブラリ使用方法解析部１０５は、例えば、ライブラリのヘッダファイルあるいはライブラリファイルあるいはヘルプファイルなどを電子計算機に解析させるプログラムや、プログラム作成者がライブラリの使用方法あるいは使用部分の情報を入力できる手段の提供と、前記入力手段より入力された情報を電子計算機に解析させるプログラムなどであり、ライブラリの使用方法を電子計算機に解析させるプログラムである。
【００３１】
ライブラリ使用方法生成部１０６は、例えば、入出力デバイスの初期化・終了処理や、デバイスの状態の取得・設定や、デバイスの位置・回転状態の取得・設定、デバイスの触力覚情報の取得・設定などを行う機能を電子計算機がプログラム・コードとして生成し、デバイス情報共有部（１）１０２のプログラム・コード部に対し前記機能を追加や拡張を行うプログラムや、前記情報の取得・設定を行う機能を電子計算機が別のプログラムとして生成し、デバイス情報共有部（１）１０２のプログラムとリンクさせることにより前記機能を追加や拡張するプログラムなどであり、電子計算機にライブラリを使用するためのプログラムを生成させるプログラムである。
【００３２】
本実施例において、プログラムとは、ＣやＣ＋＋やＪａｖａ（登録商標）などの言語で記述されたプログラム・コードでも良く、特定の機能を提供するために作成されるライブラリでも良い。
【００３３】
本発明では、デバイス部１０１にプログラム作成者やデバイス操作者が新規に使用するデバイスとそのライブラリがあり、ライブラリ情報取得部１０４がデバイス部１０１よりライブラリ情報を電子計算機に取得させる。
【００３４】
前記ライブラリ情報取得部１０４により取得したライブラリ情報により、ライブラリ使用方法解析部１０５は、ライブラリの使用方法を電子計算機に解析させる。
【００３５】
前記ライブラリ使用方法解析部１０５により解析されたライブラリの使用方法から、ライブラリ使用方法生成部１０６は電子計算機にライブラリを使用するためのプログラムを生成させる。
【００３６】
前記ライブラリ使用方法生成部１０６により、例えば、デバイス情報共有部（１）１０２のプログラム・コードに対して前記ライブラリ使用方法を追加し機能を拡張したプログラムとして再生成する手段や、前記ライブラリ使用方法生成部１０６により生成された別のプログラムとデバイス情報共有部（１）１０２のプログラムをリンクさせることにより、デバイス情報共有部（１）１０２の機能を拡張する手段などにより、デバイス情報共有部（１）１０２において、プログラム作成者やデバイス操作者が新たに使用したいデバイスを含むデバイス部１０１とデバイス情報の共有を行える状態にする。
【００３７】
これにより、プログラム作成者やデバイス操作者は新たなデバイスとそのライブラリを容易に使用することができるようになる。
【００３８】
一般に、プログラム作成者が作成するプログラムでデバイスを使用するためには、デバイスの位置情報や触力覚情報などのデバイス情報をデバイスと入出力する必要がある。前記入出力は、デバイスドライバの情報に基づいて行われる場合が多いが、入力および出力の両方の機能をもつジョイスティックや触力覚デバイスなどのデバイスは、ライブラリを使用してデバイス情報を入出力する場合が殆どである。
【００３９】
本発明では、プログラム作成者が作成するプログラムとデバイスの間で直接デバイス情報を入出力するのではなく、デバイス情報共有部（１）１０２を介してデバイス情報を入出力することにより、プログラム作成者がデバイスやライブラリの違いを意識することなく共通の方法でデバイス情報を入出力することが可能となる。
【００４０】
デバイス部１０１のデバイスをプログラム作成者が使用したい場合には、プログラム作成者が作成するプログラム内の情報入出力部１０３とデバイス情報共有部（１）１０２の間でデバイス情報を共有するプログラムをプログラム作成者がプログラミングする、あるいは電子計算機が生成することにより、デバイス情報をプログラム作成者が作成するプログラム内で使用可能となる。
【００４１】
プログラム作成者は、例えば、作成した３次元バーチャルリアリティ空間内のカーソルを操作するためにデバイス情報の一つであるデバイスの位置情報を使用し、３次元バーチャルリアリティ空間内の物体をデバイス操作者がポインティングすることを可能にすることや、作成した３次元バーチャルリアリティ空間内の物体をデバイス操作者がポインティングした場合に、物体の固さや摩擦力などの情報からプログラムがデバイス情報の一つである触力覚情報を生成し、デバイス操作者に触力覚を提示することを可能にするなど、デバイス情報をプログラム作成者が作成するプログラム内で使用可能とすることで、様々な目的でデバイスを使用したプログラムを作成することが可能となる。
【００４２】
前記情報入出力部１０３により、例えば、デバイス操作者が操作した触力覚デバイスのエンドエフェクタの位置情報を入力情報としてデバイス情報共有部（１）１０２と共有し、プログラム内のカーソル位置を変更することや、オペレーティングシステム内のマウスカーソルの位置を変更することなど、ポインティング手段として使用することができる。
【００４３】
同様に、例えば、デバイス操作者が操作するデバイスにより移動する３次元バーチャルリアリティ空間内のカーソルが物体に衝突した場合に、衝突時の力の方向や強さなどの触力覚情報を出力情報としてデバイス情報共有部（１）１０２と共有し、触力覚情報をデバイス操作者に提示することや、カーソルが水中にある場合に、粘性や水圧などの触力覚情報をデバイス操作者に提示することなどが可能となる。
【００４４】
デバイス情報共有部（１）１０２は、前記入出力情報をデバイス部１０１と共有し、デバイス部１０１は、デバイス情報の取得やデバイス操作者への触力覚情報の提示を行う。
【００４５】
これにより、プログラム作成者やデバイス操作者は入出力インタフェースデバイスの特徴や違いを意識することなく、デバイスの制御を行うことが可能となり、様々なプログラムから入出力インタフェースデバイスのデバイス情報の入出力が容易に行えるようになる。
【実施例２】
【００４６】
図２は、本発明の実施の形態に関わるシステムの全体構成を示す図である。
図２において、デバイス部１０１および情報入出力部１０３およびライブラリ情報取得部１０４およびライブラリ使用方法解析部１０５およびライブラリ使用方法生成部１０６は実施例１に示す各部と同一のものである。デバイス部１０１では、デバイス制御がパラメータを用いて行われる。
【００４７】
本実施例において、パラメータとは、例えば、触力覚デバイスの位置情報の３つの軸方向の範囲を表したり、デバイスの使用準備ができているかできていないかやデバイスが入力の機能や出力の機能を持つかどうか等のデバイスの状態を表すものであり、例えば、位置情報のある軸方向のパラメータ範囲が−１０から１０の値の間であることを表したり、デバイスが使用可能状態であれば１、使用不可能状態であれば０など、数値に置き換わるものである。
【００４８】
デバイスキャリブレーションパラメータ取得部２０５は、例えば、デバイス操作者がパラメータ範囲を入力する手段や、デバイス操作者が入出力デバイスを操作することにより電子計算機にデバイスのパラメータ範囲や初期パラメータを取得させる手段や、ライブラリ情報を解析することにより電子計算機にパラメータ範囲や初期パラメータを選別させる手段など、デバイスのパラメータ範囲や初期パラメータなどを電子計算機に取得させるプログラムおよびそれに関するインタフェースである。
【００４９】
外部情報取得部２０４は、例えば、触力覚デバイスを使用する場合、デバイス操作者が老人である、子供であるという情報や、老人で力が弱いという情報や、デバイス操作者が子供で強い触力覚の出力は危険であるという情報など操作者の特性を入力する手段や、デバイス操作者が使用するデバイスを選択する手段やデバイス操作者が使用する目的を入力する手段を提供し取得する手段や、複数のセンサーを使用しデバイス操作者の体格や体調、例えば、身長、体重、血圧などの情報や、例えば、握力や背筋力などの力の強さの情報や、温度や湿度などの環境情報などを測定し取得する手段などであり、電子計算機に外部情報を取得させるプログラムである。
【００５０】
パラメータ加工部２０２は、例えば、デバイスに固有の情報やパラメータ範囲を規格化し、各デバイスに依存しないパラメータとして電子計算機に加工させるプログラムや、デバイス操作者の特性や使用目的によりパラメータ範囲を電気計算機に加工させるプログラムなど、前記デバイスキャリブレーションパラメータ取得部２０５や外部情報取得部２０４から取得した情報などによりパラメータを電子計算機に加工させるプログラムである。
【００５１】
本実施例において、規格化とは、例えば、デバイス部１０１に関するデバイスが３軸の位置情報を利用し、各々Ａ、Ｂ、Ｃ、Ｄであるとすると、デバイスＡとＢを使用する場合は、デバイスAの位置情報のパラメータ範囲が直行する３つの軸方向へ各−１００から１００の値であり、デバイスＢの位置情報のパラメータ範囲が直行する３つの軸方向へ各−１０から１０の値であった場合に、それぞれを−１から１の範囲に加工する。また、デバイスＣとＤを使用する場合は、デバイスＣの位置情報のパラメータ範囲が直行する３つの軸方向へ各−５０から１００の値であり、デバイスＤの位置情報のパラメータ範囲が直行する３つの軸方向へ各０から６０の値であった場合に、それぞれを−５から１０の範囲に加工することなど、デバイス部１０１のデバイスから取得したパラメータの範囲を一律に定められた範囲に電子計算機に加工させる処理を指す。
【００５２】
本実施例において、デバイス操作者の特性や使用目的によるパラメータ範囲の加工とは、例えば、触力覚デバイスを使用する場合、デバイス操作者が老人で力が弱い場合には、デバイスを操作した場合に一般的な成人のデバイス操作者が操作した場合の２倍の位置情報変位を行うことや、デバイス操作者が使用目的としてモデリングと入力した場合には、精密な操作が要求されるため、出力する触力覚情報の強さを通常の半分にし、かつ、デバイス操作者が操作した場合の位置情報変位を通常の４分の３にするなど、デバイス操作者の特性や使用目的などに合わせてパラメータを電子計算機に加工させる処理を指す。
【００５３】
また、規格化後のパラメータ範囲は、外部情報で取得したり、プログラム作成者が指定したり、パラメータ加工部で自動的に−１から１の値の範囲に設定することもできる。
【００５４】
デバイス情報共有部（２）２０１は、デバイス情報をデバイス部１０１とパラメータ加工部２０２の間で共有するインタフェース手段である。
【００５５】
パラメータ共有部２０３は、パラメータ加工部２０２で加工されたパラメータを情報入出力部１０３と共有するインタフェース手段である。
【００５６】
プログラム作成者が作成する外部プログラム５０１内のポインティング手段として触力覚デバイスを使用したい場合には、プログラム作成者はパラメータ共有部２０３とパラメータを共有する情報入出力部１０３をプログラミングする、あるいは電子計算機が生成する。
【００５７】
プログラム作成者やデバイス操作者が新規に触力覚デバイスＡ、Ｂを使用する場合について実施例２の更なる詳細説明として具体的に述べる。実施例１の場合と同様に、新規ライブラリ対応部５０２と情報管理部５０３により、本システムで新規触力覚デバイスを使用できるようにする。
【００５８】
本発明において、新規ライブラリ対応部５０２は、ライブラリ情報取得部１０４とライブラリ使用方法解析部１０５とライブラリ使用方法生成部１０６から構成され、新規デバイスとそのライブラリをプログラム作成者が使用できる状態にするための機能を持つ。
【００５９】
本発明において、情報管理部５０３は、デバイス情報共有部（２）２０１とパラメータ加工部２０２とパラメータ共有部２０３と外部情報取得部２０４とデバイスキャリブレーションパラメータ取得部２０５から構成され、デバイス部１０１と外部プログラム５０１の間でデバイス情報とその加工された情報を含むパラメータを共有する機能と、外部情報取得部２０４やデバイスキャリブレーションパラメータ取得部２０５から得られた情報からデバイス情報を加工する機能を持つ。
【００６０】
前記新規ライブラリ対応部５０２と情報管理部５０３により使用可能となった触力覚デバイスをキャリブレーションするために、デバイスキャリブレーションパラメータ取得部２０５により触力覚デバイスのパラメータ範囲や初期パラメータを取得し、パラメータ加工部２０２によりパラメータの規格化を行う。
【００６１】
前記情報入出力部１０３により、例えば、デバイス操作者が操作した触力覚デバイスのエンドエフェクタの位置情報を規格化されたパラメータとしてパラメータ共有部２０３と共有し、プログラム内のカーソル位置を変更することや、オペレーティングシステム内のマウスカーソルの位置を変更することなど、ポインティング手段として使用することができる。
【００６２】
同様に、例えば、触力覚デバイスを用いた場合、カーソルが物体に衝突した場合に、衝突時の力の方向や強さなどの触力覚情報を、規格化されたパラメータとしてパラメータ共有部２０３と共有することや、カーソルが水中にある場合に、粘性や水圧などの触力覚の種類によるパラメータやそれぞれの力の強さを規格化したパラメータなどをパラメータ共有部２０３と共有することなど、規格化されたパラメータをパラメータ共有部２０３と共有する。
【００６３】
パラメータ加工部２０２は、前記パラメータ共有部２０３で共有している触力覚情報を各デバイス対応した情報に電子計算機に加工させ、この情報をデバイス情報共有部（２）２０１と共有する。
【００６４】
本実施例において、各デバイスに対応した情報への加工とは、規格化されたパラメータをそのままデバイス部に渡したのでは、パラメータが加工されているため目的のデバイス制御を行うことができないため、各デバイスに対応したパラメータ範囲に規格化されたパラメータに戻す加工させる処理を指す。
【００６５】
例えば、デバイスAとBを使用する場合は、デバイス部１０１のデバイスAの力覚の強さ情報のパラメータ範囲が直行する３つの軸方向へ各−１００から１００の値であった場合に、それぞれを−１から１の値の範囲に加工していた場合は、規格化されたパラメータが（−１、０、０）であった場合には、デバイスＡに対応した力覚の強さ情報としてパラメータを（−１００、０、０）に加工することや、デバイス部１０１のデバイスBの位置情報のパラメータ範囲が直行する３つの軸方向へ各−５０から１００の値であった場合に、それぞれを−５から１０の範囲に加工していた場合は、規格化されたパラメータが（１０、１０、−５）であった場合には、デバイスBに対応した位置情報として（１００，１００、−５０）に加工することなど、規格化されたパラメータをデバイス部１０１のデバイスに対して定められた範囲に電子計算機に加工させる処理を指す。
【００６６】
デバイス情報共有部（２）２０１は、前記パラメータ加工部２０２で加工させたデバイス情報をデバイス部１０１と共有し、デバイス部１０１で触力覚デバイスによりデバイス操作者に触力覚を提示する。
【００６７】
触力覚情報の力の強さがデバイス操作者に対して強すぎる場合や、少しの操作でより多くのカーソル位置変更を行いたい場合などは、外部情報取得部２０４で取得したデータを元に、パラメータ加工部２０２によりデバイス操作者の特性や使用目的に合わせたパラメータ範囲に電子計算機に加工させることで調整することが可能となる。
【００６８】
これにより、プログラム作成者やデバイス操作者は入出力インタフェースデバイスの特徴や違いを意識することなく、デバイスを使用することが可能となり、様々なプログラムから入出力インタフェースデバイスのデバイス情報の入出力が容易に行えるようになる。
【００６９】
また、デバイス操作者の特性や使用目的によりデバイス情報のパラメータを加工することで、操作性の向上が可能となる。
【実施例３】
【００７０】
図３は、本発明の実施の形態に関わるシステムの全体構成を示す図である。実施例３は実施例１の別の形態を示す。図３において、デバイス部１０１およびデバイス情報共有部（１）１０２および情報入出力部１０３は実施例１に示す各部と同一のものである。
【００７１】
ライブラリ情報入力部３０１は、例えば、デバイス部１０１のライブラリのヘッダファイルあるいはライブラリファイルあるいはヘルプファイル等を電子計算機に取得させる手段や、プログラム作成者が前記ファイルを指定し取得させる手段などにより、デバイス部１０１のライブラリ情報を入力する手段である。
【００７２】
ライブラリ提供機能取得部３０２は、前記ライブラリ情報入力部３０１で入力されたライブラリ情報から、ライブラリが提供する機能を取得する手段であり、例えば、ライブラリ情報入力部３０１で入力されたヘッダファイル・ライブラリファイル・ヘルプファイルなどを電子計算機が解析し、ライブラリが提供する可能性を含んでいる機能を取得する手段や、ライブラリファイルを解析するプログラムによりライブラリが提供する可能性を含んでいる機能を取得する。
【００７３】
本実施例において、ライブラリ提供機能取得部３０２が取得する機能とは、例えば、糸を用いた触力覚示デバイスの制御を行うライブラリで初期化を行う場合には、操作を行うためのクラスを宣言し、次にそのクラスが持つデバイスを初期化する関数を実行し、次にそのクラスが持つキャリブレーションを行う関数を実行するという順番で初期化を行うなど、ライブラリが提供する変数や関数、およびその処理手順などを指す。
【００７４】
ライブラリ提供機能選別部３０３は、前記ライブラリ提供機能取得部３０２で取得したライブラリが提供する可能性を含んでいる機能から、少なくとも本システムで使用する機能をまず選別し、候補を列挙する手段であり、例えば、ライブラリ提供機能取得部３０２から取得した関数名を解析し、デバイスの状態や位置・回転情報あるいは触力覚情報を取得・設定するための機能別に選別し、候補を列挙する手段や、ヘルプファイルやヘッダファイル内のコメントあるいは説明文を解析し、デバイスの状態や位置・回転情報あるいは触力覚情報を取得・設定するための機能を選別し、列挙する手段や、ライブラリを使用したサンプルプログラムを解析し、デバイスの状態や位置・回転情報あるいは触力覚情報を取得・設定するための機能を使用している部分を選別し、候補を列挙する手段などを持つことを特徴とする手段である。
【００７５】
本実施例において、前記の選別した結果として候補を列挙する場合には、複数の候補が列挙される場合もあれば、単一の候補が挙げられる場合もある。選別した候補の結果は、電子計算機のメモリや記憶装置に記憶させたり、外部記憶装置に記憶させたりする。
【００７６】
ライブラリ提供機能評価部３０４は、前記ライブラリ提供機能選別部３０３により選別し、列挙された候補結果を評価し、評価結果を入力するための手段であり、例えば、ある機能に対する選別され列挙された関数の候補から決定する。例えば、プログラム作成者がライブラリのヘルプファイルやヘッダファイルやライブラリファイルを参考に、選別し列挙された候補結果が正しいか判断し、その結果を入力する手段や、電子計算機にサンプルプログラムを解析させるプログラムにより、選別され列挙された候補結果を電子計算機に評価させる手段などにより、前記ライブラリ提供機能選別部３０３が選別し、列挙された候補結果のうちいずれかが正しい場合、正しいと評価された候補結果については、本システムに必要な機能と決定し、選別され、列挙された候補結果のうちのいずれも正しくない場合もしくは、間違っていると評価された場合には再度ライブラリ提供機能選別部３０３に選別させる手段を持つことを特徴とする。
【００７７】
ライブラリ使用方法選別部３０５は、例えば、ライブラリのヘルプファイル、あるいはヘッダファイル、あるいはライブラリを使用したサンプルプログラム、あるいはあらかじめ定められた規格に基づいて作成された仕様が記述された仕様書などを電子計算機が解析し、初期化・終了処理方法を選別し、候補を列挙する手段や、プログラム作成者がヘルプファイル・ヘッダファイル・サンプルプログラム・仕様書などを参考に初期化・終了処理方法を入力する手段を提供する手段などであり、ライブラリを使用するために必要な初期化・終了処理やデバイスの位置情報の取得・設定処理などの方法を選別し、候補を列挙する手段を持つことを特徴とする。
【００７８】
ライブラリ使用方法評価部３０６は、ライブラリ使用方法選別部３０５により選別され、候補結果として列挙されたライブラリ使用方法を評価する手段であり、例えば、プログラム作成者がライブラリのヘルプファイルやヘッダファイルやライブラリファイルを参考に、選別し列挙された候補結果が正しいか判断し入力する手段や、電子計算機にサンプルプログラムを解析させるプログラムにより、選別され列挙された候補結果を電子計算機に評価させる手段などにより、前記ライブラリ使用方法選別部３０５で選別され列挙された候補結果が正しいかどうか評価し、列挙された候補結果のうちいずれかが正しい場合、正しいと評価された候補結果については、本システムに必要な機能と決定し、選別し、列挙された候補結果のうちのいずれも正しくない場合もしくは、間違っていると評価された場合には再度ライブラリ使用方法選別部３０５に選別させる手段を持つことを特徴とする手段である。
【００７９】
ライブラリ使用方法生成部３０７は、前記ライブラリ提供機能評価部３０４と、前記ライブラリ使用方法評価部３０６で本システムに必要な機能と決定された機能を利用し、デバイスの初期化・終了処理、およびデバイスの状態の取得・設定、およびデバイスの位置・回転状態の取得・設定、およびデバイスの触力覚情報の取得・設定などを行う機能を提供するプログラムを生成する手段であり、たとえば、デバイス情報共有部（１）１０２のプログラムに新しく生成したコードを追加する手段や、デバイス情報共有部（１）１０２の機能拡張を行う別のプログラムを電子計算機に生成させる手段により、デバイス情報共有部（１）１０２のプログラムと電子計算機にリンクさせることにより機能拡張を行い、でデバイス部１０１と情報入出力部１０３でデバイス情報を共有することができるようにする手段である。
【００８０】
本実施例では、ライブラリ提供機能やライブラリ使用方法を電子計算機に評価させる、あるいはユーザに評価を入力する手段を提供することにより、実施例２の場合と比べてより正確なライブラリ使用方法の解析が可能となり、さらに、結果を評価することにより最適なライブラリ使用方法を発見する時間が短縮され、解析時間の短縮も可能である。
【実施例４】
【００８１】
実施例４は、図３における第２の実施例である。図３において、デバイス部１０１およびデバイス情報共有部（１）１０２および情報入出力部１０３は実施例１に示す各部と同一のものである。
【００８２】
例えば、プログラム作成者やデバイス操作者が新規デバイスとして触力覚デバイスを新規に接続した場合には、電子計算機により新規デバイスが検出され、プログラム作成者やデバイス操作者によりデバイスドライバの登録やデバイスを使用するためのライブラリのインストールが行われている。
【００８３】
ライブラリ情報入力部３０１は、例えば、電子計算機内や外部記憶装置内に格納されたデータを検索し、ライブラリのヘッダファイルやライブラリファイルやヘルプファイルの位置を取得するプログラムや、プログラム作成者が前記ファイルを指定するプログラムなどにより、ライブラリ情報を取得する。
【００８４】
ライブラリ提供機能取得部３０２は、前記ライブラリ情報入力部３０１により入力されたライブラリ情報から、ライブラリが提供する機能を取得する。例えば、ヘッダファイルやヘルプファイルやライブラリファイルの解析や、サンプルプログラムや電子マニュアルの解析を電子計算機に行わせる手段などにより、ライブラリが提供する機能の関数名を選別し、候補を列挙する。
【００８５】
本実施例において、ライブラリ提供機能取得部３０２が取得する機能とは、例えば、糸を用いた触力覚示デバイスの制御を行うライブラリで初期化を行う場合には、操作を行うためのクラスを宣言し、次にそのクラスが持つデバイスを初期化する関数を実行し、次にそのクラスが持つキャリブレーションを行う関数を実行するという順番で初期化を行うなど、ライブラリが提供する変数や関数、およびその処理手順などを指す。
【００８６】
本実施例において、前記の選別した結果として候補を列挙する場合には、複数の候補が列挙される場合もあれば、単一の候補が挙げられる場合もある。選別した候補の結果は、電子計算機のメモリや記憶装置に記憶させたり、外部記憶装置に記憶させたりする。
【００８７】
ライブラリ提供機能選別部３０３は、前記ライブラリ提供取得機能３０２から取得した関数名を解析し、少なくとも本システムに必要な可能性の高い機能の関数を選別する。例えば、デバイスのエンドエフェクタの位置情報を取得する関数を選別する場合には、関数名にＧｅｔおよびＰｏｓまたはＰｏｓｉｔｉｏｎといった文字列が含まれていると仮定し、前記文字列を含む関数名の候補を選別し列挙する手段や、プログラム作成者に位置情報を取得する関数名を入力させる機能を提供するプログラムなどである。
【００８８】
ライブラリ提供機能評価部３０４は、前記ライブラリ提供機能選別部３０３で選別し、列挙された候補結果を評価する。例えば、列挙された候補結果がデバイスのエンドエフェクタの位置情報を取得する機能かどうか評価する場合には、プログラム作成者がマニュアルやヘッダファイルやヘルプファイルなどからデバイスのエンドエフェクタの位置情報を取得するための機能を確認し、ライブラリ提供機能選別部３０３により列挙された候補結果の関数名から選択させる手段を提供することや、ヘルプファイルやヘッダファイルや電子マニュアルなどを電子計算機に解析させ、ライブラリ提供機能選別部３０３により列挙された候補結果の関数名の説明に位置や取得やＧｅｔやＰｏｓといった文字列が存在するかどうかにより評価させる手段などにより選別し、候補結果として列挙された機能のいずれかが正しいかどうか評価し、いずれも正しくないもしくは間違っている場合には再度ライブラリ提供機能選別部３０３に選別させ、候補結果のいずれかが正しいと評価されるまで選別と評価を繰り返す。
【００８９】
ライブラリ使用方法選別部３０５は、ライブラリを使用するために必要な初期化・終了処理方法を選別する。例えば、プログラム作成者がマニュアルやサンプルプログラムなどから初期化・終了処理を行っているプログラム・コードを参照し、初期化・終了処理のプログラム・コードを入力する手段を提供することや、電子マニュアルやサンプルプログラムやヘルプファイルを解析し、初期化・終了・ｉｎｉｔ・ｅｎｄといった文字列を含む部分のプログラム・コードを列挙する手段などにより、ライブラリ使用方法を選別する。
【００９０】
ライブラリ使用方法評価部３０６は、ライブラリ使用方法選別部３０５で選別された使用方法を評価する。例えば、プログラム作成者がマニュアルやサンプルプログラムなどから初期化・終了処理を行っているプログラム・コードかどうか確認し、評価を入力する手段や、プログラム作成者がライブラリ使用方法選別部３０５により列挙されたプログラム・コードの一覧から正しい処理を選択する手段や、電子計算機にヘルプファイルや電子マニュアルなどを解析させ、初期化・終了処理を行うプログラム・コードかを評価する手段などにより、選別された使用方法を評価し、正しくないもしくは間違っていると評価された場合には、正しいと評価されるまで選別と評価を繰り返す。
【００９１】
ライブラリ使用方法生成部３０７は、ライブラリ提供機能評価部３０４とライブラリ使用方法評価部３０６により選別された本システムに必要な機能と決定された機能を利用し、ライブラリを使用するためのプログラムを生成し、例えば、デバイス情報共有部（１）１０２のプログラム・コードに新規デバイスを使用するためのプログラム・コードを追加する手段により機能を拡張する手段や、デバイス情報共有部（１）１０２の機能を拡張する別のプログラムを電子計算機に生成し、デバイス情報共有部（１）１０２のプログラムとリンクさせることにより機能拡張を行う手段などにより、デバイス情報共有部（１）１０２へ新規デバイスを対応させることが可能となる。
【００９２】
本実施例においても、実施例３の場合と同様に、実施例２の場合と比べてより正確なライブラリ使用方法の解析が可能となり、さらに、結果を評価することにより最適なライブラリ使用方法を発見する時間が短縮され、解析時間の短縮も可能である。
【実施例５】
【００９３】
図４は、本発明の実施の形態に関わるシステムの全体構成を示す図である。実施例３は実施例１の別の形態を示す。図４において、デバイス部１０１およびデバイス情報共有部（１）１０２および情報入出力部１０３は実施例１に示す各部と同一のものであり、情報管理部５０３は実施例２に示す各部と同一のものであり、新規ライブラリ対応部５０２は実施例３または実施例４に示す各部と同一のものである。
【００９４】
本実施例により、プログラム作成者は、正確で高速に新規ライブラリに対応することが可能となり、また、デバイス操作者の特性や使用目的によりデバイス情報のパラメータを加工することで、操作性の向上が可能となる。
【実施例６】
【００９５】
図５は、本発明の実施の形態に関わるシステムの全体構成を示す図である。図５において、各部は実施例５に示すものと同一の機能を持ち、デバイス部１０１と外部情報取得部２０４、およびデバイスキャリブレーションパラメータ取得部２０５は、本システムで対応可能なデバイスの数（ｎ個）だけ存在する。
【００９６】
本実施例において、例えば、プログラム作成者がｎ個の触力覚デバイス１〜ｎを使用した外部プログラム５０１をデバイス操作者Aとデバイス操作者Bに提供する場合、触力覚デバイス１〜ｎがそれぞれのデバイス部（１〜ｎ）１０１に含まれ、ライブラリやデバイスドライバが存在し、実施例５の場合と同様に、新規ライブラリ対応部５０２により各デバイス部１０１に対応したライブラリ使用方法が生成される。
【００９７】
例えば、プログラム作成者またはデバイス操作者により、初めてN個のデバイスが電子計算機に接続された場合、1個目のデバイスから順番に最大でN回新規ライブラリ対応部５０２の処理を繰り返し、デバイス情報共有部（２）２０１の機能を拡張する。
【００９８】
本実施例において、同一の種類のデバイスが複数存在し、すでに新規ライブラリ対応部５０２により対応したライブラリ使用方法が生成されている場合は、ライブラリ使用方法が同一のためライブラリ対応部５０２の処理を行わない。
【００９９】
次にｎ個のデバイスが電子計算機に接続される、または既に接続されている場合には、新規ライブラリ対応部５０２の処理を行わず、デバイスが接続されたという情報やどのような種類のデバイスであるかという情報などのデバイス情報をデバイス情報共有部（２）２０１と共有する。
【０１００】
次に、ｎ個のデバイスに対して外部情報取得部２０４やデバイスキャリブレーションパラメータ取得部２０５からどのデバイスを使用するかといった情報やデバイス操作者の特徴などの情報を取得し、パラメータ加工部２０２でデバイス情報の加工を行う。
【０１０１】
本実施例において、外部情報取得部２０４は本システムが対応可能なデバイスの数であるｎ個だけ存在し、例えば、デバイス操作者Ａはデバイス部（１）１０１のデバイスとデバイス部（２）１０１のデバイスを使用し、それ以外のデバイスは使用しないといった情報を入力することができる手段をデバイス操作者に提供することで外部情報を取得する手段や、デバイス操作者Ｂの左手の力が弱い場合に、どのデバイスを左手で使用するかといった情報を入力することができる手段をデバイス操作者に提供することで外部情報を取得する手段など、ｎ個のデバイス部に対する外部情報を取得する。
【０１０２】
本実施例において、デバイスキャリブレーションパラメータ取得部２０５は本システムが対応可能なデバイスの数であるｎ個だけ存在し、触力覚デバイス１の位置情報のパラメータ範囲が直行する３つの軸方向へ各−１００から１００の値であり、触力覚デバイス２の位置情報のパラメータ範囲が直行する３つの軸方向へ各−１０から１０の値であった場合に、それぞれを−１から１の値の範囲に加工し、前記以外のデバイスに対してもそれぞれ加工を行うなど、ｎ個のデバイス部のパラメータ範囲の違いを一律に定められた範囲に加工するための情報を取得する手段を提供する。
【０１０３】
パラメータ加工部２０２では、例えば、デバイス操作者Aはデバイス部（１）１０１のデバイスとデバイス部（２）１０１のデバイスを使用し、それ以外のデバイスは使用しないといった情報からパラメータを加工することや、デバイス操作者Bは老人であるという情報から触力覚の強さを含むパラメータの値を半分に加工することなど、各デバイス部のデバイス情報を外部情報入力部２０４とデバイスキャリブレーションパラメータ取得部２０５から取得した情報に基づいてデバイス情報を加工する。
【０１０４】
パラメータ共有部２０３では、前記パラメータ加工部でデバイス情報が加工されたｎ個のデバイスのパラメータを情報共有部１０３と共有する。
【０１０５】
外部プログラム５０１では、情報共有部１０３で共有されたパラメータからｎ個の触力覚デバイスの位置情報やボタンが押されているかどうかなどの情報を取得する。これにより、例えば、ｎ個の触力覚デバイスを用いた両手操作が可能なモデリングシステムを提供することが可能となる。
【０１０６】
本実施例により、プログラム作成者は、ｎ個のデバイスとそのライブラリを同一の手段で使用することが可能となり、複数のデバイスを使用した外部プログラム５０１の開発を容易に開発できるようになる。また、各デバイスの特性に合わせた使用目的設定やパラメータ加工を行うことで、デバイス操作者の特性や使用目的に合ったインタフェースを提供することが可能となる。
【産業上の利用可能性】
【０１０７】
本発明は、複数デバイスに対応するためのインタフェースシステムを提供する。これにより複数デバイスを使用したバーチャルリアリティシステムなどへの応用が可能である。
【図面の簡単な説明】
【０１０８】
【図１】本発明の実施の形態に関わるシステムの全体構成を示す図
【図２】本発明の実施の形態に関わるシステムの全体構成を示す図
【図３】本発明の実施の形態に関わるシステムの全体構成を示す図
【図４】本発明の実施の形態に関わるシステムの全体構成を示す図
【図５】本発明の実施の形態に関わるシステムの全体構成を示す図
【符号の説明】
【０１０９】
１０１  デバイス部
１０２  デバイス情報共有部（１）
１０３  情報入出力部
１０４  ライブラリ情報取得部
１０５  ライブラリ使用方法解析部
１０６  ライブラリ使用方法生成部
２０１  デバイス情報共有部（２）
２０２  パラメータ加工部
２０３  パラメータ共有部
２０４  外部情報取得部
２０５  デバイスキャリブレーションパラメータ取得部
３０１  ライブラリ情報入力部
３０２  ライブラリ提供機能取得部
３０３  ライブラリ提供機能選別部
３０４  ライブラリ提供機能評価部
３０５  ライブラリ使用方法選別部
３０６  ライブラリ使用方法評価部
３０７  ライブラリ使用方法生成部
５０１  外部プログラム
５０２  新規ライブラリ対応部
５０３  情報管理部
【図１】
2008097234.tif 000003
【図２】
2008097234.tif 000004
【図３】
2008097234.tif 000005
【図４】
2008097234.tif 000006
【図５】
2008097234.tif 000007