以下に、本願の開示する位置算出装置、位置算出方法および位置算出プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
図1は、本実施例1に係る位置算出システムの構成を示す図である。図1に示すように、この位置算出システムは、超音波発信機10、超音波受信機20a〜20c、位置算出装置100を有する。超音波受信機20a〜20cと位置算出装置100は、それぞれ有線により接続される。超音波発信機10と位置算出装置100は、無線により接続される。本実施例1では一例として、超音波発信機10は、利用者1の手首に設置される。また、超音波受信機20a〜20cは、利用者1の胸部にそれぞれ設置される。利用者1の腕は可動部の一例である。利用者1の胸部は、可動部に接続された本体部の一例である。
超音波発信機10は、超音波を発信する装置である。超音波発信機10が発信する超音波は、超音波受信機20a〜20cによって受信される。また、超音波発信機10は、超音波を発信するタイミングで、LED(Light Emitting Diode)を発光させることで、超音波の発信時間を位置算出装置100に通知する。
超音波受信機20a〜20cは、超音波発信機10からの超音波を受信する装置である。超音波受信機20a〜20cは、超音波を受信した受信時間を位置算出装置100に通知する。
位置算出装置100は、超音波発信機10から発信された超音波が超音波受信機20a〜20cに到着するまでの到達時間に基づいて、超音波発信機10の位置を順次算出する装置である。本実施例1では、利用者1は手首に超音波発信機10を装着しているので、位置算出部100が算出する位置は、利用者1の手の位置を算出するに等しい。
更に、位置算出装置100は、利用者1の人体の特徴に基づいて、到達時間を算出し直すか否かを判定する。具体的に、位置算出装置100は、超音波発信機10から超音波受信機20a〜20cに超音波が到達するまでの最大到達時間を算出する。例えば、位置算出装置100は、利用者1の腕の長さを超音波の音速で割った時間を最大到達時間として算出する。位置算出装置100は、到達時間が最大到達時間を超える場合には、到達時間を算出し直す。
位置算出装置100が、到達時間を算出し直す場合には、超音波発信機10に超音波の再発信要求を行う。この再発信要求により、超音波発信機10は超音波を再発信し、超音波受信機20a〜20cは超音波の受信時間を位置算出装置100に通知し、位置算出装置100は、到達時間を再度算出する。
到達時間が最大到達時間を超えるような場合には、超音波発信機10と超音波受信機20a〜20cとの間に障害物が存在し、超音波が適切に届いていないと考えられる。位置算出装置100は、利用者1の人体の特徴に基づいて、最大到達時間を求めることで、適切でない到達時間を除外し、手の位置の誤検出を防止する。
本実施例1にかかる位置算出装置100は、3点測量の要領で、超音波発信機10の位置を算出するものとする。位置算出装置100が3点測量の要領で超音波発信機10の位置を算出するためには、それぞれ位置の異なる位置から超音波受信機までの距離が、最低3種類必要となる。このため、位置算出装置100は、超音波受信機20a〜20cを利用して、超音波受信機20aと超音波発信機10との距離、超音波受信機20bと超音波発信機10との距離、超音波受信機20cと超音波発信機10との距離を求める。
次に、図1に示した超音波発信機10の構成について説明する。図2は、本実施例1にかかる超音波発信機の構成を示す図である。図2に示すように、超音波発信機10は、超音波発信部11、LED発光部12、無線通信部13、超音波発信制御部14を有する。また、超音波発信機10は、入力装置15に接続される。例えば、入力装置15は、超音波発信機10に超音波の送信要求を行うスイッチに対応する。例えば、利用者が入力装置15のスイッチを押すことにより、入力装置15から超音波発信機10に超音波の送信要求が出力される。
超音波発信部11は、超音波発信制御部14の発信命令を受けた場合に、超音波を発信する装置である。例えば、超音波発信部11は、一定の周期T毎に超音波を発信する。図3は、超音波の波形の一例を示す図である。図3の横軸は時間を示し、縦軸は超音波の強さを示す。図3に示すように、超音波発信部11は、一時的に信号強度が高くなる超音波を、一定の周期毎に発信する。
なお、超音波発信部11は、超音波発信制御部14から再発信命令を受ける場合がある。超音波発信部11は、再発信命令を受けた場合には、通常の周期Tよりも短い周期で、超音波を発信する。例えば、超音波発信部11は、周期T/n毎に超音波を発信する。nは、2以上の整数である。
LED発光部12は、超音波発信制御部14の発光命令を受けた場合に、LEDを発光させる装置である。LEDが発光するタイミングは、超音波発信部11が超音波を発信するタイミングと同じタイミングである。例えば、LED発光部12は、超音波発信部11の発信タイミングに合わせて、LEDを発光させてもよい。
無線通信部13は、位置算出装置100との間で無線通信を行う装置である。例えば、無線通信部13は、位置算出装置100から、超音波の再発信要求を受信した場合には、再発信要求を超音波発信制御部14に出力する。
超音波発信制御部14は、入力装置15から超音波の送信要求を受けた場合に、超音波の発信命令を超音波発信部11に出力し、LEDの発光命令をLED発光部12に出力する。超音波発信制御部14が超音波の発信命令を出力するタイミング、およびLEDの発光命令を出力するタイミングは、同じタイミングとする。
また、超音波発信制御部14は、位置算出装置100からの再発信要求を受信した場合には、再発信命令を超音波発信部11に出力し、発光命令をLED発光部12に出力する。超音波発信制御部14が、再発信命令を出力するタイミング、および発光命令を出力するタイミングは、同じタイミングとする。
次に、図1に示した位置算出装置100の構成について説明する。図4Aは、本実施例1にかかる位置算出装置の構成を示す図である。図4Aに示すように、この位置算出装置100は、無線通信部110、LED受光部120、記憶部130、判定部140、位置算出部150、位置情報通知部160を有する。また、位置算出装置100は、超音波受信機20a〜20c、PC(Personal Computer)200に接続される。
無線通信部110は、超音波発信機10との間で無線通信を行う装置である。例えば、無線通信部110は、判定部140から超音波の再発信要求を受けた場合には、再発信要求を超音波発信機10に送信する。例えば、無線通信部110と超音波発信機10とは、ブルートゥース(登録商法)、その他無線通信規格に基づいて、無線通信を実行する。
LED受光部120は、超音波発信機10のLEDから発光される光を受光する装置である。LED受光部120は、受光した時間を判定部140に出力する。ここで、超音波発信機10は、超音波を発信すると共に、LEDを発光させる。また、光の速さは、音速に比べて十分早いため、LED受光部120がLEDの光を受光した時間は、超音波発信機10から超音波が発信された時間に相当する。以下の説明において、LED受光部120が、LEDの光を受光した時間を、超音波発信時間と表記する。
記憶部130は、人体情報131および位置情報テーブル132を記憶する記憶部である。このうち、人体情報131は、利用者の身体の特徴を含む。例えば、人体情報131は、利用者1の腕の長さの情報などを含む。
図4Bは、人体情報のデータ構造の一例を示す図である。図4Bに示すように、人体情報131は、利用者ID、腕の長さ、足の長さを対応づけて記憶する。図4Bに示す例では、利用者ID「1」の利用者の腕の長さは「0.37m」、足の長さは「0.65m」である。腕の長さや足の長さは、腕や足の可動域といえる。
位置情報テーブル132は、手の位置情報を含むテーブルである。例えば、位置情報テーブル132は、時間毎の手の位置情報を保持する。図4Cは、位置情報テーブルのデータ構造の一例を示す図である。図4Cに示すように、位置情報テーブル132は、時間と、位置座標とを対応づけて記憶する。時間は、例えば、超音波発信機10がLEDを発光させた超音波発信時間に対応する。位置座標は、ある時間の超音波発信機10の3次元座標である。例えば、時間t1に対する、超音波発信機10aの位置座標は「x1、y1、z1」である。
判定部140は、超音波発信時間と、超音波受信機20a〜20cの超音波受信時間とを基にして、超音波発信機10から超音波受信機20a〜20cまでの超音波の到達時間を求め、到達時間が最大到達時間を超えるか否かを判定する処理部である。
判定部140は、最大到達時間を超える到達時間が一つでも存在する場合には、再発信要求を無線通信部110に出力する。無線通信部110に出力された再発信要求は、超音波発信機10に送信される。これに対して、判定部140は、最大到達時間を超える到達時間が存在しない場合には、超音波発信時間と各到達時間とを対応づけて位置算出部150に出力する。
ここで、判定部140が、各到達時間を算出する処理の一例について順に説明する。判定部140は、超音波受信機20a〜20cから受信時間をそれぞれ取得する。判定部140は、超音波受信機20aの受信時間から超音波発信時間を減算することで、超音波受信機20aの到達時間を算出する。判定部140は、超音波受信機20bの受信時間から超音波発信時間を減算することで、超音波受信機20bの到達時間を算出する。判定部140は、超音波受信機20cの受信時間から超音波発信時間を減算することで、超音波受信機20cの到達時間を算出する。
判定部140が、最大到達時間を算出する処理の一例について説明する。判定部140は、人体情報131から、利用者1の腕の長さの情報を取得する。そして、判定部140は、腕の長さを超音波の音速で割り算することで、最大到達時間を算出する。なお、判定部140は、腕の長さを音速で割り算した値に、所定の補正数を加算することで、最大到達時間を補正してもよい。
図1に示す例では、超音波発信機10が手首に取り付けられており、超音波受信機20a〜20cが利用者の胸部に取り付けられている。超音波発信機10から、超音波受信機20a〜20cまでの最大の距離は、利用者が腕を伸ばした状態であり、利用者1の腕の長さに相当する。この最大の距離を超音波の音速で割り算すれば、超音波発信機10から、超音波受信機20a〜20cまでの音波の最大到達時間を算出することができる。この最大到達時間を経過することは物理的にあり得ないので、超音波発信機20と超音波受信機20a〜20cとの間に障害物等が存在しているものと考えられる。
位置算出部150は、超音波受信機20a〜20cの到達時間を基にして、利用者1の手首に装着された超音波発信機10の3次元位置を計算する処理部である。例えば、位置算出部150は、超音波発信機10と超音波受信機20a〜20cとの距離を求め、各距離を利用して、位置を算出する。
超音波発信機10の位置を算出する場合の処理について説明する。位置算出部150は、超音波受信機20aの到達時間と音速とをかけたものを半径として算出し、超音波受信機20aの位置を中心とした球を算出する。また、位置算出部150は、超音波受信機20bの到達時間と音速とをかけたものを半径として算出し、超音波受信機20bの位置を中心とした球を算出する。また、位置算出部150は、超音波受信機20cの到達時間と音速とをかけたものを半径として算出し、超音波受信機20cの位置を中心とした球を算出する。
位置算出部150は、超音波受信機20a〜20cを中心とした球を算出した後に、各球の交点の3次元座標を、超音波発信機10の3次元位置として算出する。位置算出部150は、3次元位置の情報と、超音波発信時間に対応する時間とを対応づけて、位置情報テーブル132に記録する。
位置情報通知部160は、位置情報テーブル132の情報を、PC200に通知する処理部である。位置情報通知部160は、位置情報テーブル132が更新される度に、位置情報テーブル132の情報をPC200に通知しても良いし、所定の時間毎に位置情報テーブル132の情報をPC200に通知しても良い。
また、位置情報通知部160は、位置情報テーブル132に記憶された位置情報を基にして、ベクトル成分を計算し、手の動作を推定する。位置情報通知部160は、推定した手の動作をPC200に通知する。
次に、本実施例1にかかる位置算出装置100の処理手順について説明する。図5は、本実施例1の位置算出装置の処理手順を示すフローチャートである。例えば、図5に示す処理は、位置算出装置100がLEDの光を受光したことを契機にして実行される。図5に示すように、位置算出装置100は、LEDからの光を受光し(ステップS101)、超音波発信時間を測定する(ステップS102)。
位置算出装置100は、超音波受信機20a〜20cから超音波の受信時間を取得し(ステップS103)、到達時間を計算する(ステップS104)。位置算出装置100は、人体情報131から導かれる最大到達時間よりも、到達時間が大きいかを判定する(ステップS105)。
位置算出装置100は、到達時間が最大到達時間よりも大きい場合には(ステップS106,Yes)、再発信要求を超音波発信機10に送信し(ステップS107)、ステップS101に移行する。
一方、位置算出装置100は、到達時間が最大到達時間以下の場合には(ステップS106,No)、手の3次元位置を算出する(ステップS108)。位置算出装置100は、位置情報を位置情報テーブル132に記録し(ステップS109)、位置情報テーブル132の位置情報をPC200に通知する(ステップS110)。
次に、本実施例1に係る位置算出装置100の効果について説明する。位置算出装置100は、利用者の人体情報131を基にして最大到達時間を算出する。また、位置算出装置100は、超音波受信機20a〜20cの到達時間が、最大到達時間を超えていない場合には、各到達時間に基づいて、利用者の手の位置を算出する。これに対して、位置算出装置100は、超音波受信機20a〜20cの到達時間のいずれかが、最大到達時間を超えている場合には、再発信要求を超音波発信機10に発信する。このように、位置算出装置100は、利用者の人体の特徴を基に、到達時間が適切であるか否かを判定した後に、手の位置を算出するので、手の位置の誤検出を防止することができる。
また、位置算出装置100は、利用者の人体の特徴から最大到達時間を算出し、各到達時間が最大到達時間を超えているか否かを判定している。このように、利用者の人体の特徴から最大到達時間を算出する手法は、複雑な装置や処理を必要としないので、コストを削減することができる。
また、位置算出装置100が超音波発信機10に再発信要求を行うと、超音波発信機10は、通常の周期よりも短い周期で、超音波を再送する。このため、障害物等の影響により、到達時間を適切に求められなくても、最適な到達時間を迅速に得ることができる。例えば、超音波発信機10と超音波受信機20a〜20cの間に、超音波を遮る障害物が存在したとしても、利用者1の身体の動きによって障害物による超音波の遮断が一時的に解除される場合がある。そこで、超音波が、通常の周期よりも短い周期で再送されることによって、障害物による超音波の一時的な遮断のタイミングを捉え、最適な到達時間を得ることができる場合がある。
なお、実施例1では、最大到達時間を超える到達時間が一つでも存在する場合には、判定部140が、再発信要求を無線通信部110に出力していたが、これに限定されるものではない。例えば、最大到達時間を超える到達時間が一つでも存在する場合に、再発信要求を出力する発信制御部を位置算出装置100に設けてもよい。
次に、本実施例2にかかる位置算出システムの構成について説明する。図6は、本実施例2にかかる位置算出システムの構成を示す図である。図6に示すように、この位置算出システムは、超音波発信機10、超音波受信機20a〜20c、位置算出装置300を有する。
超音波発信機10は、超音波を発信する装置である。超音波発信機10に関するその他の説明は、実施例1に示した超音波発信機10の説明と同様である。超音波受信機20a〜20cは、超音波発信機10からの超音波を受信する装置である。超音波受信機20a〜20cに関するその他の説明は、実施例1に示した超音波受信機20a〜20cの説明と同様である。
位置算出装置300は、超音波発信機10から発信された超音波が超音波受信機20a〜20cに到着するまでの到達時間に基づいて、超音波発信機10の位置を順次算出する装置である。本実施例2では、利用者1は手首に超音波発信機10を装着しているので、位置算出部300が算出する位置は、利用者1の手の位置を算出することに等しい。
更に、位置算出装置300は、利用者1の人体の特徴に基づいて、到達時間が適切であるか否かを判定する。具体的に、位置算出装置300は、超音波発信機10から超音波受信機20a〜20cに超音波が到達するまでの最大到達時間を算出する。例えば、位置算出装置300は、利用者1の腕の長さを音速で割った時間を最大到達時間として算出する。
位置算出装置300は、到達時間が最大到達時間を超える場合には、前回算出した到達時間を利用して、利用者1の手の位置を算出する。利用者1の動作速度は、それほど急激に変化しないという特性に鑑みれば、前回の到達時間を利用しても問題はない。
次に、図6に示した位置算出装置300の構成について説明する。図7は、本実施例2にかかる位置算出装置の構成を示す図である。図7に示すように、この位置算出装置300は、無線通信部110、LED受光部120、位置算出部150、位置情報通知部160、記憶部310、判定部320を有する。
このうち、無線通信部110、LED受光部120、位置算出部150、位置情報通知部160に関する説明は、図4Aの無線通信部110、LED受光部120、位置算出部150、位置情報通知部160の説明と同様である。
記憶部310は、人体情報131、位置情報テーブル132、到達時間情報311を記憶する記憶部である。人体情報131および位置情報テーブル132の説明は、実施例1の人体情報131および位置情報テーブル132の説明と同様である。到達時間情報311は、判定部320が算出する到達時間の履歴を含む情報である。
判定部320は、超音波発信時間と、超音波受信機20a〜20cの超音波受信時間とを基にして、超音波発信機10から超音波受信機20a〜20cまでの超音波の到達時間を求め、到達時間が最大到達時間を超えるか否かを判定する処理部である。
判定部320は、最大到達時間を超える到達時間が一つでも存在する場合には、前回算出した到達時間を到達時間情報311から取得する。そして、判定部320は、前回の到達時間を位置算出部150に出力する。これに対して、判定部320は、最大到達時間を超える到達時間が存在しない場合には、各到達時間を位置算出部150に出力する。
次に、本実施例2にかかる位置算出装置300の処理手順について説明する。図8は、本実施例2の位置算出装置の処理手順を示すフローチャートである。例えば、図8に示す処理は、位置算出装置300がLEDの光を受光したことを契機にして実行される。図6に示すように、位置算出装置300は、LEDからの光を受光し(ステップS201)、超音波発信時間を測定する(ステップS202)。
位置算出装置300は、超音波受信機20a〜20cから超音波の受信時間を取得し(ステップS203)、到達時間を計算する(ステップS204)。位置算出装置300は、人体情報131から導かれる最大到達時間よりも、到達時間が大きいかを判定する(ステップS205)。
位置算出装置300は、到達時間が最大到達時間よりも大きい場合には(ステップS206,Yes)、前回の到達時間を利用して、手の3次元位置を計算し(ステップS207)、ステップS209に移行する。
一方、位置算出装置300は、到達時間が最大到達時間以下の場合には(ステップS206,No)、到達時間から手の3次元位置を計算する(ステップS208)。ステップS208において、位置算出装置300は、3点測量の要領で、3次元位置を計算する。位置算出装置300は、超音波受信機20aの到達時間と音速とをかけたものを半径として算出し、超音波受信機20aの位置を中心とした球を算出する。また、位置算出装置300は、超音波受信機20bの到達時間と音速とをかけたものを半径として算出し、超音波受信機20bの位置を中心とした球を算出する。また、位置算出装置300は、超音波受信機20cの到達時間と音速とをかけたものを半径として算出し、超音波受信機20cの位置を中心とした球を算出する。そして、位置算出装置300は、超音波受信機20a〜20cを中心とした球を算出した後に、各球の交点の3次元座標を、超音波発信機10の3次元位置として算出する。例えば、各球の交点の座標が「x1、y1、z1」となる場合には、位置算出装置300は、超音波発信機10の3次元位置を「x1、y1、z1」とする。
位置算出装置300は、位置情報を位置情報テーブル132に記録し(ステップS209)、位置情報テーブル132の位置情報をPC200に通知する(ステップS210)。
次に、本実施例2にかかる位置算出装置300の効果について説明する。位置算出装置300は、利用者の人体情報131を基にして最大到達時間を計算する。また、位置算出装置300は、超音波受信機20a〜20cの到達時間が、最大到達時間を超えていない場合には、各到達時間に基づいて、利用者の手の位置を算出する。これに対して、位置算出装置300は、超音波受信機20a〜20cの到達時間のいずれかが、最大到達時間を超えている場合には、前回の到達時間を利用して、利用者の手の位置を算出する。利用者の動作速度は、それほど急激に変化しないという特性に鑑みれば、前回の到達時間を利用しても手の位置の誤差は僅かであり、問題はない。このため、簡易的な方法により、到達時間を補完することができ、利用者の位置情報を連続的に算出できる。
次に、本実施例3にかかる位置算出システムの構成について説明する。図9は、本実施例3にかかる位置算出システムの構成を示す図である。図9に示すように、この位置算出システムは、超音波発信機10、超音波受信機20a〜20c、位置算出装置400を有する。
超音波発信機10は、超音波を発信する装置である。超音波発信機10に関するその他の説明は、実施例1に示した超音波発信機10の説明と同様である。超音波受信機20a〜20cは、超音波発信機10からの超音波を受信する装置である。超音波受信機20a〜20cに関するその他の説明は、実施例1に示した超音波受信機20a〜20cの説明と同様である。
位置算出装置400は、超音波発信機10から発信された超音波が超音波受信機20a〜20cに到着するまでの到達時間に基づいて、超音波発信機10の位置を順次算出する装置である。本実施例3では、利用者1は手首に超音波発信機10を装着しているので、位置算出部400が算出する位置は、利用者1の手の位置を算出することに等しい。
更に、位置算出装置400は、利用者1の人体の特徴に基づいて、到達時間が適切であるか否かを判定する。具体的に、位置算出装置400は、超音波発信機10から超音波受信機20a〜20cに超音波が到達するまでの最大到達時間を算出する。例えば、位置算出装置400は、利用者1の腕の長さを音速で割った時間を最大到達時間として算出する。
位置算出装置400は、到達時間が最大到達時間を超える場合には、可操作度を評価関数として利用し、利用者の手の位置を推測することで、手の位置を補完する。可操作度は、ロボット技術の分野利用されており、あるロボットの姿勢において、あらゆる方向にどれくらいの速度でアーム等を移動させることができるのかを評価するための尺度である。この可操作度の評価関数を利用することで、利用者の手の動きを予測することができる。
次に、図9に示した位置算出装置400の構成について説明する。図10は、本実施例3にかかる位置算出装置の構成を示す図である。図10に示すように、この位置算出装置400は、無線通信部110、LED受光部120、位置情報通知部160、記憶部410、判定部420、位置算出部430を有する。
このうち、無線通信部110、LED受光部120、位置情報通知部160に関する説明は、図4Aの無線通信部110、LED受光部120、位置情報通知部160の説明と同様である。
記憶部410は、人体情報131、位置情報テーブル132、評価関数情報411を記憶する記憶部である。人体情報131および位置情報テーブル132の説明は、実施例1の人体情報131および位置情報テーブル132の説明と同様である。評価関数情報411は、可操作度の評価関数の情報である。
判定部420は、超音波発信時間と、超音波受信機20a〜20cの超音波受信時間とを基にして、超音波発信機10から超音波受信機20a〜20cまでの超音波の到達時間を求め、到達時間が最大到達時間を超えるか否かを判定する処理部である。
判定部420は、最大到達時間を超える到達時間が一つでも存在する場合には、評価関数による位置情報の算出依頼を位置算出部430に出力する。これに対して、判定部420は、最大到達時間を超える到達時間が存在しない場合には、各到達時間を位置算出部430に出力する。
位置算出部430は、超音波受信機20a〜20cの到達時間を基にして、利用者1の手首に装着された超音波発信機10の3次元位置を計算する処理部である。例えば、位置算出部430は、3点測量の原理に基づいて、超音波発信機10の位置を算出する。
また、位置算出部430は、評価関数による位置情報の算出依頼を受けた場合には、評価関数情報411の可操作度の評価関数を利用して、利用者の手の位置を算出する。例えば、可操作度の評価関数は、式(1)で定義される。ここでは、式(1)を用いて位置座標を算出する場合の処理の一例を説明する。
式(1)において、vは、手先速度を示し、J(q)はヤコビ行列を示し、
は、関節の角速度を示す。位置算出部430は、式(1)によって求められる手先速度と、前回の位置座標を基にして、今回の位置座標を算出する。
例えば、位置算出部430は、手先速度vに含まれるx、y、z方向の速度と、時間間隔とをそれぞれ乗算して、x、y、z方向の変化量を算出する。時間間隔は、前回の位置座標を算出した時間から、今回の位置座標を算出するまでの時間である。位置算出部430は、前回のx座標、y座標、z座標にそれぞれ変化量を加えることで、今回の位置座標を算出する。例えば、x、y、z方向の変化量をそれぞれa、b、cとし、前回の位置座標をx1、y1、z1とする。この場合には、今回の位置座標は(x1+a、y1+b、z1+c)となる。位置算出部430は、3次元位置の情報と、超音波発信時間とを対応づけて、位置情報テーブル132に記録する。
次に、本実施例3にかかる位置算出装置400の処理手順について説明する。図11は、本実施例3の処理手順を示すフローチャートである。例えば、図11に示す処理は、位置算出装置400がLEDの光を受光したことを契機にして実行される。図11に示すように、位置算出装置400は、LEDからの光を受光し(ステップS301)、超音波発信時間を測定する(ステップS302)。
位置算出装置400は、超音波受信機20a〜20cから超音波の受信時間を取得し(ステップS303)、到達時間を計算する(ステップS304)。位置算出装置400は、人体情報131から導かれる最大到達時間よりも、到達時間が大きいかを判定する(ステップS305)。
位置算出装置400は、到達時間が最大到達時間よりも大きい場合には(ステップS306,Yes)、評価関数を利用して、位置情報を計算し(ステップS307)、ステップS309に移行する。
一方、位置算出装置400は、到達時間が最大到達時間以下の場合には(ステップS306,No)、到達時間から手の3次元位置を計算する(ステップS308)。位置算出装置400は、位置情報を位置情報テーブル132に記録し(ステップS309)、位置情報テーブル132の位置情報をPC200に通知する(ステップS310)。
次に、本実施例3にかかる位置算出装置400の効果について説明する。位置算出装置400は、利用者の人体情報131を基にして最大到達時間を計算する。また、位置算出装置400は、超音波受信機20a〜20cの到達時間が、最大到達時間を超えていない場合には、各到達時間に基づいて、利用者の手の位置を算出する。これに対して、位置算出装置400は、超音波受信機20a〜20cの到達時間のいずれかが、最大到達時間を超えている場合には、評価関数を利用して、利用者の手の位置を算出する。利用者は、手をランダムに動かしているつもりであっても、手の動きは利用者固有の規則性がある。このため、評価関数を利用することで、到達時間を正確に求められなくても、手の位置を補完することができる。
次に、本実施例4にかかる位置算出システムの構成について説明する。図12は、本実施例4にかかる位置算出システムの構成を示す図である。図12に示すように、この位置検出システムは、接触センサ5、超音波発信機500、超音波受信機20a〜20c、位置算出装置100を有する。
接触センサ5は、例えば、利用者1の指先に装着される。利用者1が物体4をつかむと接触センサ5が物体4に触れ、接触センサ5は、接触を知らせる信号を超音波発信機500に通知する。
超音波発信機500は、接触センサ5から信号を受けたことを契機にして、超音波を発信する装置である。
超音波受信機20a〜20cは、超音波発信機500からの超音波を受信する装置である。超音波受信機20a〜20cに関するその他の説明は、実施例1に示した超音波受信機20a〜20cの説明と同様である。
位置算出装置100は、超音波発信機500から発信された超音波が超音波受信機20a〜20cに到着するまでの到達時間に基づいて、超音波発信機500の位置を順次算出する装置である。位置算出装置100に関するその他の説明は、実施例1に示した位置算出装置100の説明と同様である。
次に、図12に示した超音波発信機500の構成について説明する。図13は、本実施例4にかかる超音波発信機の構成を示す図である。図13に示すように、超音波発信機500は、超音波発信部11、LED発光部12、無線通信部13、超音波発信制御部510を有する。また、超音波発信機500は、接触センサ5に接続される。
超音波発信部11、LED発光部12、無線通信部13に関する説明は、実施例1に示した超音波発信部11、LED発光部12、無線通信部13に関する説明と同様である。
超音波発信制御部510は、接触センサ5から信号を受けた場合に、超音波の発信命令を超音波発信部11に出力し、LEDの発光命令をLED発光部12に出力する。超音波発信制御部510が超音波の発信命令を出力するタイミング、およびLEDの発光命令を出力するタイミングは、同じタイミングとする。
また、超音波発信制御部510は、位置算出装置100からの再発信要求を受信した場合には、再発信命令を超音波発信部11に出力し、発光命令をLED発光部12に出力する。超音波発信制御部510が、再発信命令を出力するタイミング、および発光命令を出力するタイミングは、同じタイミングとする。
次に、本実施例4にかかる位置算出システムの効果について説明する。本実施例4にかかる位置算出システムは、利用者1が自発的にスイッチなどを操作しなくても、手の位置の算出処理を開始することができる。また、接触センサ5を用いることで、処理開始時の意味づけが可能となる。
なお、本実施例4では、接触センサ5を例に説明したがこれに限られるものではない。例えば、接触センサの代わりに、加速度センサ、圧力センサ、RFID(Radio Frequency Identification)等を利用して、利用者の行動開始点を特定し、処理を開始してもよい。
上記実施例1〜4では、超音波発信機10を手先に装着し、手先が体の前面にあることを想定して説明を行ったが、手先が体の後に移動することも考えられる。このような場合には、利用者1の前面に超音波受信機20a〜20cを装着させ、利用者1の背面に超音波受信機20d〜20fを装着させる。超音波受信機20d〜20fは、超音波受信機20a〜20cと同様にして、超音波発信機10からの超音波受信し、超音波を受信した受信時間を位置算出装置に通知する。手先の位置が前面にある場合には、超音波受信機20a〜20cが、超音波の受信時間を位置算出装置に通知し、手先の位置が背面にある場合には、超音波受信機20d〜20fが、超音波の受信時間を位置算出装置に通知する。このようにすることで、位置算出装置は、手先の位置によらず、超音波発信機10の位置を算出することができる。
また、上記実施例1〜4では、超音波発信機10が利用者1の手先に装着されている場合を例にして説明したが、超音波発信機10を利用者1の足先に装着しても良い。利用者1の足先に超音波発信機10を取り付けた場合には、判定部140は、人体情報131から、利用者の足の長さの情報を取得し、足の長さを超音波の音速で割り算することで、最大到達時間を算出する。判定部140が、腕の長さを利用して、最大到達時間を算出するのか、足の長さを利用して、最大到達時間を算出するのかは、予め設定されているものとする。
また、上記実施例1〜4では、超音波発信機10、超音波受信機20a〜20fを利用者に装着する例を示したがこれに限定されるものではない。例えば、ロボットの腕または足に超音波発信機10を装着し、ロボットの胴体部に超音波受信機20a〜20fを装着し、ロボットの腕の位置、足の位置を算出しても良い。
ところで、位置算出装置100の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、位置算出装置100の分散、統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、位置算出装置100は、有線によって、超音波発信機10と通信を行ってもよい。位置算出装置300、400も同様である。
また、位置算出装置100は、既知の移動体通信端末またはPDAなどの情報処理装置に、位置算出装置100の各機能を搭載することによって実現することもできる。位置算出装置300、400も同様である。
図14は、実施例にかかる位置算出装置を構成するコンピュータのハードウェア構成を示す図である。図14に示すように、このコンピュータ600は、各種演算処理を実行するCPU(Central Processing Unit)601と、ユーザからのデータの入力を受け付ける入力装置602と、ディスプレイ603とを有する。また、コンピュータ600は、記憶媒体からプログラム等を読み取る読み取り装置604と、超音波受信機やLED受信装置と接続するインターフェース装置605と、超音波発信機と無線通信を行う無線通信装置606とを有する。また、コンピュータ600は、各種情報を一時記憶するRAM(Random Access Memory)607と、フラッシュメモリ等の記憶装置608とを有する。各装置601〜608は、バス609に接続される。
記憶装置608は、判定プログラム608a、位置算出プログラム608bを記憶する。
CPU601は、記憶装置608に記憶された各プログラム608a、608dを読み出して、RAM607に展開する。これにより、判定プログラム608aは、判定プロセス607aとして機能する。位置算出プログラム608bは、位置算出プロセス607bとして機能する。
判定プロセス607aは、図4Aの判定部140に対応する。位置算出プロセス607bは、図4Aの位置算出部150に対応する。各プロセス607a、607bにより、CPU601は、手の位置情報を算出する。
なお、上記のプログラム608a、608bは、必ずしも記憶装置608に格納されている必要はない。例えば、CD−ROM等の記憶媒体に記憶されたプログラム608a、608bを、コンピュータ600が読み出して実行するようにしてもよい。また、公衆回線、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)等に接続された記憶装置に、各プログラム608a、608bを記憶させておいてもよい。この場合、コンピュータ600がこれらから各プログラム608a、608bを読み出して実行するようにしてもよい。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)可動部に取り付けられた音波を発信する音波発信機と、前記可動部に接続される本体部に取り付けられ、前記音波発信機から音波を受信する複数の音波受信機とに接続される位置算出装置であって、
前記複数の音波受信機から音波の受信時間を取得して、前記音波発信機から音波が発信された時間から前記音波受信機に音波が到達するまでの到達時間を音波受信機毎に特定し、特定した複数の到達時間と、前記可動部の可動域から導かれる音波の基準到達時間とを基にして、到達時間を利用して前記発信機の位置を算出するか否かを判定する判定部と、
前記判定部の判定結果に応じて、前記複数の到達時間に基づき前記発信機の位置を算出する位置算出部と
を有することを特徴とする位置算出装置。
(付記2)前記判定部によって、前記到達時間が、前記基準到達時間を超えていると判定された場合に、前記音波発信機に音波を再発信させる発信制御部を更に有することを特徴とする付記1に記載の位置算出装置。
(付記3)前記発信制御部は、前記音波発信機に音波を再発信させる場合に、基準の間隔よりも短い間隔で音波を発信させることを特徴とする付記2に記載の位置算出装置。
(付記4)前記位置算出部は、前記音波受信機から前回取得した到達時間を利用して、前記音波発信機の位置を算出することを特徴とする付記1に記載の位置算出装置。
(付記5)前記位置算出部は、前記判定部によって前記音波受信機から取得した到達時間が、前記基準到達時間を超えていると判定された場合に、前記音波発信機の過去の位置情報と、評価関数とを利用して、前記音波発信機の位置を算出することを特徴とする付記1に記載の位置算出装置。
(付記6)可動部に取り付けられた音波を発信する音波発信機と、前記可動部に接続される本体部に取り付けられ、前記音波発信機から音波を受信する複数の音波受信機と接続されるコンピュータの位置算出方法であって、
前記複数の音波受信機から音波の受信時間を取得して、前記音波発信機から音波が発信された時間から前記音波受信機に音波が到達するまでの到達時間を音波受信機毎に特定し、特定した複数の到達時間と、前記可動部の可動域から導かれる音波の基準到達時間とを基にして、到達時間を利用して前記発信機の位置を算出するか否かを判定し、
判定結果に応じて、前記複数の到達時間に基づき前記発信機の位置を算出することを特徴とする位置算出方法。
(付記7)前記到達時間が前記基準到達時間を超えていると判定した場合に、前記音波発信機に音波を再発信させることを特徴とする付記6に記載の位置算出方法。
(付記8)前記音波発信機に音波を再発信させる場合に、基準の間隔よりも短い間隔で音波を発信させることを特徴とする付記7に記載の位置算出方法。
(付記9)前記到達時間が前記基準到達時間を超えていると判定した場合に、前記音波受信機から前回取得した到達時間を利用して、前記音波発信機の位置を算出することを特徴とする付記6に記載の位置算出方法。
(付記10)前記音波受信機から取得した到達時間が、前記基準到達時間を超えていると判定された場合に、前記音波発信機の過去の位置情報と、評価関数とを利用して、前記音波発信機の位置を算出することを特徴とする付記6に記載の位置算出方法。
(付記11)可動部に取り付けられた音波を発信する音波発信機と、前記可動部に接続される本体部に取り付けられ、前記音波発信機から音波を受信する複数の音波受信機とに接続されるコンピュータに、
前記複数の音波受信機から音波の受信時間を取得して、前記音波発信機から音波が発信された時間から前記音波受信機に音波が到達するまでの到達時間を音波受信機毎に特定し、特定した複数の到達時間と、前記可動部の可動域から導かれる音波の基準到達時間とを基にして、到達時間を利用して前記発信機の位置を算出するか否かを判定し、
判定結果に応じて、前記複数の到達時間に基づき前記発信機の位置を算出する処理を実行させる位置算出プログラム。
(付記12)前記到達時間が前記基準到達時間を超えていると判定した場合に、前記音波発信機に音波を再発信させることを特徴とする付記11に記載の位置算出プログラム。
(付記13)前記音波発信機に音波を再発信させる場合に、基準の間隔よりも短い間隔で音波を発信させることを特徴とする付記12に記載の位置算出プログラム。
(付記14)前記到達時間が前記基準到達時間を超えていると判定した場合に、前記音波受信機から前回取得した到達時間を利用して、前記音波発信機の位置を算出することを特徴とする付記11に記載の位置算出プログラム。
(付記15)前記音波受信機から取得した到達時間が、前記基準到達時間を超えていると判定された場合に、前記音波発信機の過去の位置情報と、評価関数とを利用して、前記音波発信機の位置を算出することを特徴とする付記11に記載の位置算出プログラム。