(57)【要約】  物体を検出する方法は、ＬＥＤがＯＮである間にイメージセンサによって露光画像をキャプチャするステップと、第１の画像信号のレベルを第１の基準レベルと比較することにより、イメージセンサからの露光画像信号を第１のディジタル信号にダウンサンプリングするステップと、ＬＥＤがＯＦＦである間にイメージセンサによって暗画像をキャプチャするステップと、第２の画像信号を第２の基準レベルと比較することによってイメージセンサからの第２の画像信号を第２のディジタル信号にダウンサンプリングするステップと、露光画像と暗画像との差分画像を計算するステップと、差分画像中の明点の場所を特定することによって物体の画像を特定するステップと、を含む。
2008525051.tif 000002
【特許請求の範囲】
【請求項１】
反射物体の画像を検出する方法であって、
発光素子の発光中に撮像素子によって第１の画像をキャプチャするステップと、
第１の画像信号のレベルを予め定められた第１の基準レベルと比較することによって撮像素子から出力された第１の画像信号を第１のディジタル信号にダウンサンプリングするステップと、
発光素子が発光していない間に撮像素子によって第２の画像をキャプチャするステップと、
第２の画像信号のレベルを予め定められた第２の基準レベルと比較することによって撮像素子から出力された第２の画像信号を第２のディジタル信号にダウンサンプリングするステップと、
第２のディジタル信号を第１のディジタル信号から減算することによって第１の画像と第２の画像との差分画像を計算するステップと、
差分画像中に残る明点の位置を特定することにより、反射物体の画像を特定するステップと、を含む、方法。
【請求項２】
予め定められた第１の基準レベルは予め定められた第２の基準レベルと同じであり、
第１の画像信号をダウンサンプリングするステップは、
第１の画像のレベルを予め定められた量だけ低下させるステップと、
レベルを低下させた第１の画像信号のレベルを予め定められた第２の基準レベルと比較することにより、レベルを低下させた第１の画像信号をダウンサンプリングするステップと、を含む、請求項１に記載の方法。
【請求項３】
予め定められた第１の基準レベルは予め定められた第２の基準レベルより予め定められた量だけ高く選択される、請求項１に記載の方法。
【請求項４】
発光素子は不可視波長の光を射出する発光ダイオードを含み、
第１の画像をキャプチャするステップは発光素子が発光中に可視光を実質的にブロックするフィルタを備えた撮像素子によって第１の画像をキャプチャするステップを含み、
第２の画像をキャプチャするステップは、発光素子が発光していない間に、フィルタを備えた撮像素子で第２の画像をキャプチャするステップを含む、請求項１に記載の方法。
【請求項５】
発光ダイオードは赤外光を射出し、フィルタは赤外光以外の光をブロックするように選択される、請求項４に記載の方法。
【請求項６】
計算するステップが、第２のディジタル信号を第１のディジタル信号から画素ごとに減算することによって、第１の画像と第２の画像との差分画像を計算するステップを含む、請求項１に記載の方法。
【請求項７】
反射物体の画像を検出するための装置であって、
発光素子と、
撮像素子と、
発光素子及び撮像素子を、撮像素子が第１の画像と第２の画像とを含む２つの連続した画像をキャプチャし、ここで第１の画像は発光素子が発光中にキャプチャされ、第２の画像は発光素子が発光していない間にキャプチャされるように制御する制御ユニットと、
撮像素子の出力を受けるように接続され、撮像素子から出力された第１の画像と第２の画像との画像信号をダウンサンプリングするためのダウンサンプリングユニットと、
第２の画像のダウンサンプリングされた画像信号を第１の画像のダウンサンプリングされた画像信号から減算することによって差分画像を計算するように動作する差分画像計算ユニットと、
差分画像中の明点を特定することによってその差分画像中の反射物体の位置を特定するように動作するユニットと、を含む、装置。
【請求項８】
発光素子の発光が許可される期間と、発光素子の発光が禁止される期間とをそれぞれ示す予め定められた第１のレベル又は予め定められた第２のレベルをとる光制御信号を出力する光制御ユニットをさらに含み、
ダウンサンプリングユニットは、撮像素子の出力を受けるように接続され、光制御信号が第１のレベルにあるとき撮像素子の出力レベルを予め定められた量だけ低下させ、光制御信号が第２のレベルにあるとき撮像素子の出力レベルを予め定められた量だけ上昇させる電位分割調整器を含む、請求項７に記載の装置。
【請求項９】
電位分割調整器は、
撮像素子の出力端子と接地電位との間に直列に接続されて電位分割器を形成する第１及び第２の抵抗器と、
一端が第１及び第２の抵抗器の接続ノードに接続された第３の抵抗器と、
第３の抵抗器の他方端と接地電位との間に接続され、第３の抵抗器の他方端と接地電位との接続を、光制御信号に応答して制御するスイッチング素子と、を含む、請求項８に記載の装置。
【請求項１０】
スイッチング素子は、エミッタとコレクタとがそれぞれ第３の抵抗器の前記他方端と接地電位とに接続され、ベースが前記光制御信号によって制御されるように接続されたトランジスタを含む、請求項９に記載の装置。
【請求項１１】
スイッチング素子は、
アノードが前記第３の抵抗器の前記他方端に接続された第１のダイオードと、
第１のダイオードのカソードに接続されてカソードの電位レベルを制御するように動作し、それによって第１のダイオードの導通状態を切替えるユニットと、を含む、請求項９に記載の装置。
【請求項１２】
一端が接続ノードに接続された第４の抵抗器をさらに含み、
スイッチング素子はアノードが第４の抵抗器の他方端に接続された第２のダイオードと、
第２のダイオードのカソードに接続されて第２のダイオードのカソードの電位レベルを制御するように動作し、それによって第２のダイオードの導通状態を切替えるユニットと、をさらに含む、請求項１１に記載の装置。
【請求項１３】
コンピュータシミュレーションプログラム製品であって、
コンピュータで実行可能なシミュレーションプログラムを記憶するコンピュータで読出し可能な記憶媒体を含み、
シミュレーションプログラムは、
コンピュータに、シミュレーション中にユーザによって動かされる架空物体の画像と、シミュレーション中にユーザによって動かされる架空物体が移動すべき目標方向を示す方向指示表示とを生成させるように動作する、第１のコンピュータ読出し可能プログラムコードユニットと、
コンピュータに、シミュレーションのコントローラの位置データを含む時系列データを準備させるように動作する第２のコンピュータ読出し可能プログラムコードユニットと、を含み、位置データは予め定められた座標系に対しある時点でのコントローラの代表点の位置を示し、プログラムはさらに、
コンピュータに、準備された時系列の位置データに応答して架空物体の軌跡を計算させるように動作する第３のコンピュータ読出し可能プログラムコードユニットを含み、軌跡は、架空物体の移動方向が位置データに基づいて目標方向を基準として用いて決定されるように計算される、コンピュータプログラムシミュレーション製品。
【請求項１４】
コントローラは、シミュレーション中で架空物体を仮想的に打つための代表面を有し、
時系列データはさらに、ある時点でのコントローラの代表面の角度を示す角度データを含み、
第３のコンピュータ読出し可能プログラムコードユニットは、位置データと角度データとの受信した時系列データに応答して架空物体の軌跡を計算し、軌跡は、架空物体の移動方向が位置データと角度データとに基づいて、目標方向を基準として用いて決定されるように計算される、請求項１３に記載のコンピュータシミュレーションプログラム製品。
【請求項１５】
時系列データはコントローラの一連の画像をキャプチャするための画像面を有する撮像素子によって生成され、画像面は、座標系の一軸方向を規定する予め定められた基準軸を有し、
コントローラの代表点の移動方向が予め定められた基準軸の方向であるとき、軌跡は架空物体が目標方向に向かって動くように計算される、請求項１３に記載のコンピュータシミュレーションプログラム製品。
【請求項１６】
矩形物体の位置を検出する方法であって、
４つのエッジを有する矩形画像面を有する撮像素子によって、矩形物体の画像をキャプチャするステップと、
４つのエッジの各々について、前記各エッジに最も近い矩形物体の画像の点への距離を検出するステップと、
検出された距離に基づいて、矩形物体の画像の予め規定された点の位置を決定するステップと、を含む、方法。
【請求項１７】
決定するステップは、距離に基づいて、矩形物体の画像の中心点の位置を決定するステップを含む、請求項１６に記載の方法。
【請求項１８】
第１の軸と第２の軸とを有する座標系が矩形画像面に規定され、座標系の第１の軸は矩形画像面の第１の対向するエッジ対に垂直であり、座標系の第２の軸は第２の他方の対向するエッジ対に垂直であり、
中心点の位置を決定するステップは
第１のエッジ対のそれぞれのエッジに最も近い点の第１軸の座標を決定するステップと、
第１軸の座標を決定するステップにおいて決定された第１軸の座標の平均を求めることにより中心点の第１軸座標を計算するステップと、
第２のエッジ対のそれぞれのエッジに最も近い点の第２軸の座標を決定するステップと、
第２軸の座標を決定するステップにおいて決定された第２軸の座標の平均を求めることにより中心点の第２軸座標を計算するステップと、を含む、請求項１７に記載の方法。
【請求項１９】
矩形物体の画像のエッジの１つが矩形画像面の４つのエッジの１つと形成する角度θを、第１軸座標を決定するステップで決定された第１軸座標と、第２軸座標を決定するステップで決定された第２軸座標とを用いて計算するステップをさらに含む、請求項１８に記載の方法。
【請求項２０】
第１軸座標を決定するステップで決定された第１軸座標はＲ１ｘ＞Ｌ１ｘである座標値Ｒ１ｘとＬ１ｘとを含み、
第２軸座標を決定するステップで決定された第２軸座標はＢ１ｙ＞Ｔ１ｙである座標値Ｔ１ｙ及びＢ１ｙを含み、角度を計算するステップは、以下の式に従って角度θを計算するステップを含む、請求項１９に記載の方法
【数１】
2008525051.tif 000010
【請求項２１】
角度θを、予め定められた角度の組のうち最も近いものに丸めるステップをさらに含む、請求項２０に記載の方法。
【請求項２２】
予め定められた角度の組は、特定の差分で増大する一連の角度を含む、請求項２１に記載の方法。
【請求項２３】
矩形物体は矩形再帰反射ストリップを含み、
キャプチャするステップは
照明装置をオンにするステップと、
照明装置がオンである間に、撮像装置により矩形物体の第１の画像をキャプチャして記憶するステップと、
照明装置をオフにするステップと、
照明装置がオフである間に、撮像装置により矩形物体の第２の画像をキャプチャして記憶するステップと、
第２の画像を第１の画像から減算するステップと、を含む、請求項１６に記載の方法。
【請求項２４】
撮像装置の矩形画像面は、各々が複数の信号レベルを有する画素信号を生成する複数個の画素を有し、
前記方法は、撮像装置の複数個の画素の画素信号を１ビット信号にダウンサンプリングするステップをさらに含む、請求項２３に記載の方法。
【請求項２５】
検出するステップは、矩形画像面の４つのエッジの各々のエッジについて、ダウンサンプリングされた矩形画像面を、各エッジから反対のエッジに向かう方向に、予め定められた第１の値を有する点が見つかるまで走査するステップを含む、請求項２４に記載の方法。
【請求項２６】
矩形物体の位置を検出するための物体検出器であって、
４つのエッジを有する矩形画像面を有する撮像素子と、
４つのエッジの各々のエッジについて、前記各エッジに最も近い矩形物体の画像の点への距離を検出する距離検出器と、
検出された距離に基づいて、矩形物体の予め規定された点の位置を決定する位置決定器とを含む、物体検出器。
【請求項２７】
位置決定器は、検出された距離に基づいて、矩形物体の画像の中心点の位置を決定する中心位置決定器を含む、請求項２６に記載の物体検出器。
【請求項２８】
矩形画像面には第１の軸と第２の軸とを有する座標系が規定され、座標系の第１の軸は画像面の第１の対向するエッジ対に垂直であり、座標系の第２の軸は画像面の第２の他方の対向するエッジ対に垂直であり、
中心位置決定器は
第１のエッジ対のそれぞれのエッジに最も近い点の第１軸座標を決定する第１軸座標決定器と、
第１軸座標決定器によって決定された第１軸座標の平均を求めることにより第１軸の座標を計算する第１軸座標計算器と、
第２のエッジ対のそれぞれのエッジに最も近い点の第２軸座標を決定する第２軸座標決定器と、
第２軸座標決定器によって決定された第２軸座標の平均を求めることにより第２軸の座標を計算する第２軸座標計算器とを含む、請求項２７に記載の物体検出器。
【請求項２９】
矩形物体の画像のエッジの１つが矩形画像面の４つのエッジの１つと形成する角度θを、第１軸座標決定器で決定された第１軸座標と、第２軸座標決定器で決定された第２軸座標とを用いて計算する角度計算器をさらに含む、請求項２８に記載の物体検出器。
【請求項３０】
第１軸座標決定器で決定された第１軸座標はＲ１ｘ＞Ｌ１ｘである座標値Ｒ１ｘとＬ１ｘとを含み、
第２軸座標決定器で決定された第２軸座標はＢ１ｙ＞Ｔ１ｙである座標値Ｔ１ｙ及びＢ１ｙを含み、
角度計算器は、以下の式に従って角度θを計算するステップを含む、請求項２９に記載の物体検出器。
【数２】
2008525051.tif 000011
【請求項３１】
角度θを無線通信により送信する無線送信機をさらに含む、請求項２９に記載の物体検出器。
【請求項３２】
矩形物体は矩形再帰反射ストリップを含み、
物体検出器はさらに、
光源と、
光源に周期的に発光させる光源コントローラと、
撮像装置に、光源が発光中に第１の画像をキャプチャさせ、光源が発光していない間に第２の画像をキャプチャさせる、露光コントローラと、
第２の画像から第１の画像を減算する画像減算器と、をさらに含む、請求項２６に記載の物体検出器。
【請求項３３】
撮像装置の矩形画像面は、各々が複数の信号レベルを有する画素信号を生成する複数個の画素を有し、
物体検出器は、撮像装置の複数個の画素の画素信号を１ビット信号にダウンサンプリングするダウンサンプリングユニットをさらに含む、請求項２６に記載の物体検出器。
【請求項３４】
ダウンサンプリングユニットは、第１の入力が画素信号を受けるように接続され第２の入力が予め定められたしきい値レベルの電圧に接続された、比較器を含む、請求項３３に記載の物体検出器。
【請求項３５】
矩形物体の画像の予め定められた点の位置を無線通信によって送信する無線送信機をさらに含む、請求項２６に記載の物体検出器。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は一般にある物体の位置と特定の基準に対するその角度とを検出する方法及び装置に関し、特に、シミュレーション等の対話型コンピュータアプリケーションにおいて用いられる道具の位置とその角度とを正確に検出する方法及び装置に関する。
【背景技術】
【０００２】
この出願は、本件出願人による以下の２件の出願の優先権を主張するものである。
【０００３】
（１）「矩形物体の位置を検出する方法及び物体検出器」と題された出願（２００４年１２月２８日出願の米国特許出願連続番号第１１／０２２，７７４号）及び
（２）「反射物体の像を検出するための方法及び装置」と題された出願（２００５年５月２７日出願の米国特許出願連続番号第１１／１３８，４１０）、これは上記’７４４号出願の一部継続出願である。
【０００４】
上述の資料をここで引用により援用する。
【０００５】
野球、サッカー、ゴルフ、テニス、卓球、ボーリング等に関するスポーツコンピュータゲームはコンピュータゲームの一分野を構成する。これらのスポーツゲームのほとんどは、プレイするのに関連した道具を必要とする。野球にはバット、テニス及び卓球にはラケット、ボーリングにはボーリングの球、などである。ゲーム機のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：中央処理装置）で実行されるゲームプログラムは、ユーザがプレイヤとなる仮想ゲーム状況を造出し、周囲の映像を生成し、その像をテレビ（ＴＶ）上に示す。ある特定の状況が生じると、プレイヤは道具を用いて何らかの行為を行うよう求められる。プレイヤの行為に応じて、ゲームプログラムが仮想状況を変化させ、プレイヤは次の行為を行うように求められる。従って、ゲームプログラムがプレイヤの行為を正確に知ることが不可欠である。
【０００６】
ゴルフゲームを例にとって考える。ゲーム開始時に、ゴルフゲームプログラムはティーグラウンドのシーンを生成する。ティーグラウンドの後ろ側にグリーンが見え、仮想のゴルフボールがティーグラウンドの中央（またはどこか他の場所）に置かれる。その後、プレイヤは床に置かれたイメージセンサユニットに「アドレス」して、仮想ボールをクラブで打つことになる、すなわち、イメージセンサユニット上方でクラブをスイングする。
【０００７】
プレイヤがクラブをスイングさせると、イメージセンサは動くクラブヘッドの画像を撮像する。クラブヘッドの画像はゴルフゲームプログラムに与えられる。これに応答して、ゴルフゲームプログラムは画像に基づくクラブヘッドの位置を計算し、位置にもとづいてクラブヘッドの方向と速度とを計算し、クラブヘッドの方向と速度とに従って架空のゴルフクラブによって打たれた架空のゴルフボールの結果として生じる軌跡を計算し、ゴルフボールの新たな位置に従って、ゲームの新たな状況を生成する。
【０００８】
クラブヘッドの位置を検出するには、当然、特定のハードウェアが必要である。特許文献１は、ゲーム用の道具のこのような位置を検出する装置を開示している。この装置はコンピュータゴルフゲームに用いられる。この装置は、４個のＬＥＤ（ｌｉｇｈｔ  ｅｍｉｔｔｉｎｇ  ｄｉｏｄｅｓ：発光ダイオード）を有するストロボスコープと、ＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ−Ｏｘｉｄｅ  Ｓｉｌｉｃｏｎ：相補型金属酸化物シリコン）イメージセンサ（以下「ＣＩＳ」と称する）と、プロセッサとを含む。クラブヘッド又はパターヘッドの底（ソール）に反射体が付けられる。反射体は、長手の矩形形状であり、端部が丸くなっている。装置はＴＶモニタに接続される。プロセッサ上で実行されるゴルフゲームプログラムは、クラブ又はパターを使ったプレイヤによる行為に応じて、仮想ゴルフコースの映像を生成する。
【０００９】
動作において、ＣＩＳは２種類の画像をキャプチャする。ストロボスコープのＬＥＤがオンであるとき（発光中）の画像と、ストロボスコープのＬＥＤがオフであるときの画像とである。画像信号はプロセッサに与えられ、ここで必要な計算が行われる。
【００１０】
ＬＥＤが発光中であるとき、反射体は光をＣＩＳに反射する。従って、ＣＩＳは反射体の画像を形成する。他の光源もまた、ＣＩＳ上に画像を形成する。ＬＥＤがオフの時は、反射体は光を反射しない。画像は形成されない。他の光源がそれらの画像を形成するのみである。これら２種類の画像の差分をプロセッサで計算することによって、プロセッサは反射体からの画像を他の画像から分離して検出できる。
【００１１】
プロセッサは反射体の画像中で互いに最も遠い２点を検出する。これら２個の点は反射体の中央線の２つの端部を示す。これらの点のＸ及びＹ座標を知ることで、プロセッサはクラブヘッドまたはパターヘッドの中心の位置を、これら２点の平均として知ることができる。キャプチャされた画像の各々についてこれら２点の平均を計算することで、プロセッサはクラブヘッドの動きの方向と速度とを計算する。さらに、プロセッサは反射体の２個の端点を結ぶ線と所定の基準線とのなす角度θを計算することもできる。この角度θから、クラブフェイスの角度を計算できる。
【００１２】
プロセッサ上で実行されるゴルフゲームプログラムは、これらのデータを処理し、仮想ゴルフボールの軌跡を判定し、次の仮想状況を生成する。
【００１３】
しかし、反射体の画像中で互いに最も遠い２点を決定するためには、プロセッサは反射体の画像中の２点の組合せの各々の距離を計算しなければならない。これはかなり複雑な動作であって、かなりの計算時間を必要とする。さらに、ＣＩＳは、画素あたり８ビットである、３２×３２画素面を有する。従って、１画像のデータサイズは８１９２ビット＝１０２４バイトに及ぶ。プロセッサはＣＩＳからデータを受取り、データを記憶し、記憶されたデータに対して上述の計算を行わなければならない。
【００１４】
従って、ゲーム又はシミュレーションをリアルタイムで行うのに必要な計算を行おうとすれば、比較的高性能のプロセッサが必要である。さらに、プロセッサは、ＣＩＳから出力されるデータを記憶するに十分な記憶容量を必要とする。この結果、コンピュータゲーム機及びコンピュータシミュレーション機が比較的高価になる。もしゲーム機及びシミュレーション機を多くの人に使ってもらおうとすれば、リアルタイムで完全に動作するのに十分な性能を持ちながら、安価でなければならない。
【００１５】
さらに、ゲーム機及びシミュレーション機がユーザの動作に応答することは基本的要求であるから、反射体の画像は正確に検出できなければならない。
【特許文献１】特開２００４−８５５２４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
従って、この発明の目的は、簡単な動作で反射物体の位置を検出する、反射物体の画像を検出する方法及び装置を提供することである。
【００１７】
この発明の別の目的は、先行技術に比べて少ない計算量で反射物体の位置を検出する、反射物体の画像を検出する方法及び装置を提供することである。
【００１８】
この発明のさらに別の目的は、簡単な動作で反射物体の位置を正確に検出する、反射物体の画像を検出する方法及び装置を提供することである。
【００１９】
この発明のさらに別の目的は、先行技術に比べて少ない計算量で反射物体の位置を検出する、簡単な構造を有する、反射物体の画像を検出する方法及び装置を提供することである。
【００２０】
この発明の更なる目的は、先行技術に比べて少ない計算量で反射物体の位置を検出する、簡単な構造を有する装置を提供することである。
【課題を解決するための手段】
【００２１】
この発明の第１の局面に従えば、反射物体の画像を検出する方法は、発光素子の発光中に撮像素子によって第１の画像をキャプチャするステップと、第１の画像信号のレベルを予め定められた第１の基準レベルと比較することによって撮像素子から出力された第１の画像信号を第１のディジタル信号にダウンサンプリングするステップと、発光素子が発光していない間に撮像素子によって第２の画像をキャプチャするステップと、第２の画像信号のレベルを予め定められた第２の基準レベルと比較することによって撮像素子から出力された第２の画像信号を第２のディジタル信号にダウンサンプリングするステップと、第２のディジタル信号を第１のディジタル信号から減算することによって第１の画像と第２の画像との差分画像を計算するステップと、差分画像中に残る明点の位置を特定することにより、反射物体の画像を特定するステップと、を含む。
【００２２】
第１及び第２の画像はダウンサンプリングされ、差分画像がこれらの画像に基づいて計算される。画像データはディジタル形式であるので、計算は簡単であり、比較的低性能のＣＰＵ又はＭＣＵであっても、反射物体の動きに即座に応答するに十分な短期間のうちに計算を実行できる。
【００２３】
好ましくは、第１の基準レベルは第２の基準レベルと同じである。第１の画像信号をダウンサンプリングするステップは、第１の画像のレベルを予め定められた量だけ低下させるステップと、レベルを低下させた第１の画像信号のレベルを予め定められた第２の基準レベルと比較することにより、レベルを低下させた第１の画像信号をダウンサンプリングするステップと、を含む。
【００２４】
これに代えて、第１の基準レベルは第２の基準レベルより予め定められた量だけ高く選択される。
【００２５】
さらに好ましくは、発光素子は不可視波長、例えば赤外波長の光を射出する発光ダイオードを含み、第１の画像をキャプチャするステップは発光素子が発光中に可視光を実質的にブロックするフィルタを備えた撮像素子によって第１の画像をキャプチャするステップを含み、第２の画像をキャプチャするステップは、発光素子が発光していない間に、フィルタを備えた撮像素子で第２の画像をキャプチャするステップを含む。
【００２６】
計算するステップは、第２のディジタル信号を第１のディジタル信号から画素ごとに減算することによって、第１の画像と第２の画像との差分画像を計算するステップを含んでもよい。
【００２７】
この発明の第２の局面に従えば、反射物体の画像を検出するための装置は、発光素子と、撮像素子と、発光素子及び撮像素子を、撮像素子が第１の画像と第２の画像とを含む２つの連続した画像をキャプチャし、ここで第１の画像は発光素子が発光中にキャプチャされ、第２の画像は発光素子が発光していない間にキャプチャされるように制御する制御ユニットと、撮像素子の出力を受けるように接続され、撮像素子から出力された第１の画像と第２の画像との画像信号をダウンサンプリングするためのダウンサンプリングユニットと、第２の画像のダウンサンプリングされた画像信号を第１の画像のダウンサンプリングされた画像信号から減算することによって差分画像を計算する差分画像計算ユニットと、差分画像中の明点を特定することによってその画像中の反射物体の位置を特定するように動作するユニットと、を含む。
【００２８】
装置は、発光素子の発光が許可される期間と、発光素子の発光が禁止される期間とをそれぞれ示す予め定められた第１のレベル又は予め定められた第２のレベルをとる光制御信号を出力する光制御ユニットをさらに含む。ダウンサンプリングユニットは、撮像素子の出力を受けるように接続され、光制御信号が第１のレベルにあるとき撮像素子の出力レベルを予め定められた量だけ低下させ、光制御信号が第２のレベルにあるとき撮像素子の出力レベルを予め定められた量だけ上昇させる電位分割調整器を含む。
【００２９】
好ましくは、電位分割調整器は、撮像素子の出力端子と接地電位との間に直列に接続されて電位分割器を形成する第１及び第２の抵抗器と、一端が第１及び第２の抵抗器の接続ノードに接続された第３の抵抗器と、第３の抵抗器の他方端と接地電位との間に接続され、第３の抵抗器の他方端と接地電位との接続を、光制御信号に応答して制御するスイッチング素子と、を含む。
【００３０】
この発明の第３の局面に従えば、コンピュータシミュレーションプログラム製品は、コンピュータで実行可能なシミュレーションプログラムを記憶するコンピュータで読出し可能な記憶媒体を含む。シミュレーションプログラムは、コンピュータに、シミュレーション中でユーザによって動かされる架空物体の画像と、シミュレーション中でユーザによって動かされる架空物体が移動すべき目標方向を示す方向指示表示とを生成させる、第１のコンピュータ読出し可能プログラムコードユニットと、コンピュータに、シミュレーションのコントローラの位置データを含む時系列データを受取らせる第２のコンピュータ読出し可能プログラムコードユニットと、を含み、位置データは予め定められた座標系に対しある時点でのコントローラの代表点の位置を示し、プログラムはさらに、コンピュータに、受取られた時系列の位置データに応答して架空物体の軌跡を計算させる第３のコンピュータ読出し可能プログラムコードユニットを含み、軌跡は、架空物体の移動方向が位置データに基づいて目標方向を基準として用いて決定されるように計算される。
【００３１】
この発明の第４の局面に従えば、矩形物体の位置を検出する方法は、４つのエッジを有する矩形画像面を有する撮像素子によって、矩形物体の画像をキャプチャするステップと、４つのエッジの各々について、前記各エッジに最も近い矩形物体の画像の点への距離を検出するステップと、検出された距離に基づいて、矩形物体の画像の予め規定された点の位置を決定するステップと、を含む。
【００３２】
矩形画像面のそれぞれのエッジに最も近い４点の距離が簡単な動作で検出され、大量の計算時間を必要としない。従って、簡単な動作で物体の位置を検出できる方法が提供される。
【００３３】
決定するステップは、距離に基づいて、矩形物体の画像の中心点の位置を決定するステップを含む。
【００３４】
好ましくは、第１の軸と第２の軸とを有する座標系が矩形画像面に規定される。座標系の第１の軸は矩形画像面の第１の対向するエッジ対に垂直であり、座標系の第２の軸は第２の他方の対向するエッジ対に垂直である。中心点の位置を決定するステップは第１のエッジ対のそれぞれのエッジに最も近い点の第１軸の座標を決定するステップと、第１軸の座標を決定するステップにおいて決定された第１軸の座標の平均を求めることにより中心点の第１軸座標を計算するステップと、第２のエッジ対のそれぞれのエッジに最も近い点の第２軸の座標を決定するステップと、第２軸の座標を決定するステップにおいて決定された第２軸の座標の平均を求めることにより中心点の第２軸座標を計算するステップと、を含む。
【００３５】
矩形の画像面を、エッジから始めて走査してそれぞれ４つのエッジに最も近い４点を探すことは、簡単なアルゴリズムで実現できる。これら４点を検出することで、矩形物体の画像の中心点は簡単に計算できる。従って、物体の位置を検出する簡単な方法が提供できる。
【００３６】
より好ましくは、方法は矩形物体の画像のエッジの１つが矩形画像面の４つのエッジの１つと形成する角度θを、第１軸座標を決定するステップで決定された第１軸座標と、第２軸座標を決定するステップで決定された第２軸座標とを用いて計算するステップをさらに含む。
【００３７】
さらに好ましくは、第１軸座標を決定するステップで決定された第１軸座標はＲ１ｘ＞Ｌ１ｘである座標値Ｒ１ｘとＬ１ｘとを含み、第２軸座標を決定するステップで決定された第２軸座標はＢ１ｙ＞Ｔ１ｙである座標値Ｔ１ｙ及びＢ１ｙを含み、角度を計算するステップは、以下の式に従って角度θを計算するステップを含む。
【００３８】
【数１】
2008525051.tif 000003
単に４点の４個の座標値Ｔ１ｙ、Ｂ１ｙ、Ｒ１ｘ及びＬ1ｘを検出するだけで、角度θを計算できる。４点の８個全ての座標値を知る必要はない。
【００３９】
さらに好ましくは、矩形物体は矩形再帰反射ストリップを含み、キャプチャするステップは照明装置をオンにするステップと、照明装置がオンである間に、撮像装置により矩形物体の第１の画像をキャプチャして記憶するステップと、照明装置をオフにするステップと、照明装置がオフである間に、撮像装置により矩形物体の第２の画像をキャプチャして記憶するステップと、第２の画像を第１の画像から減算するステップと、を含む。
【００４０】
撮像装置の矩形画像面は、各々が複数の信号レベルを有する画素信号を生成する複数個の画素を有し、この方法は、撮像装置の複数個の画素の画素信号を１ビット信号にダウンサンプリングするステップをさらに含む。
【００４１】
好ましくは、検出するステップは、矩形画像面の４つのエッジの各々のエッジについて、ダウンサンプリングされた矩形画像面を、各エッジから反対のエッジに向かう方向に、予め定められた第１の値を有する点が見つかるまで走査するステップを含む。
【００４２】
この発明の第５の局面に従った矩形物体の位置を検出するための物体検出器は、４つのエッジを有する矩形画像面を有する撮像素子と、４つのエッジの各々のエッジについて、前記各エッジに最も近い矩形物体の画像の点への距離を検出する距離検出器と、検出された距離に基づいて、矩形物体の予め規定された点の位置を決定する位置決定器とを含む。
【００４３】
好ましくは、矩形物体は矩形再帰反射ストリップを含み、物体検出器はさらに、光源と、光源に周期的に発光させる光源コントローラと、撮像装置に、光源が発光中に第１の画像をキャプチャさせ、光源が発光していない間に第２の画像をキャプチャさせる、露光コントローラと、第２の画像から第１の画像を減算する画像減算器と、をさらに含む。
【００４４】
さらに好ましくは、撮像装置の矩形画像面は、各々が複数の信号レベルを有する画素信号を生成する複数個の画素を有し、物体検出器は、撮像装置の複数個の画素の画素信号を１ビット信号にダウンサンプリングするダウンサンプリングユニットをさらに含む。
【００４５】
さらに好ましくは、物体検出器は矩形物体の画像の予め定められた点の位置を無線通信によって送信する無線送信機をさらに含む。
【００４６】
この発明の上述の及び他の目的、特徴、局面及び利点は、添付の図面と共に以下の発明の詳細な説明からより明らかになるであろう。
【発明を実施するための最良の形態】
【００４７】
［第１の実施の形態］
システムの概観構成
図１はこの発明の一実施の形態に従ったゴルフシミュレーションシステム３０の全体構成を示す図である。図１を参照して、ゴルフシミュレーションシステム３０は、無線ＩＲ（Ｉｎｆｒａｒｅｄ：赤外）通信能力とケーブル５２によるＴＶ４８への接続設備とを備えたアダプタ４６と、アダプタ４６に装着されるシステムカートリッジ７６とを含む。
【００４８】
図２を参照して、アダプタ４６はハウジング７２と、ハウジング７２内で上下に動く受け台７４とを含む。コネクタ（図示せず）がアダプタ４６のハウジング７２内に設けられ、受け台７４を押下げると、コネクタが露出する。アダプタ４６はさらに、ＩＲ通信のためのＩＲ受信窓７０を有する。
【００４９】
システムカートリッジ７６はコネクタピンＴｎを備えたコネクタ７８を有する。システムカートリッジ７６を受け台７４に置き、押下げてアダプタ４６の前面に向かって滑らせると、コネクタ７８がアダプタ４６側のコネクタに結合される。図示しないが、システムカートリッジ７６はゴルフシミュレーションプログラムを記憶したメモリとプロセッサとを含む。システムカートリッジ７６のプロセッサはアダプタ４６のＩＲ通信能力を利用できる。さらに、プロセッサは図１に示すＴＶ４８に、ゴルフシミュレーションの映像信号を与えることもできる。
【００５０】
図１を参照して、ゴルフシミュレーションシステム３０はさらに、プレイヤ４０がゴルフシミュレーションを行うのに用いるゴルフクラブ型のコントローラ４２と、コントローラ４２のヘッドの位置を検出し、コントローラ４２のクラブフェイスの予め規定された基準方向に対する角度を検出するためのスイング検出器４４と、を含む。スイング検出器４４も無線ＩＲ通信能力を有し、コントローラ４２のヘッドの検出された位置とクラブフェイスの角度とをＩＲ光５０によってアダプタ４６へ送信できる。
【００５１】
スイング検出器４４の概観
図３を参照して、スイング検出器４４は比較的平板なハウジング８０を含む。スイング検出器４４はさらに、ＩＲフィルタ１０００と、電源スイッチ９０と、スイング検出器４４の機能を調整するための４個のボタン９８、１００、１０２及び１０４と、ＩＲフィルタ１００２と、ＣＩＳ１４６の両側に設けられた、露光用ＩＲＬＥＤ９４及び９６と、を含み、これらは全て、ハウジング８０の上面に配置されている。
【００５２】
ＩＲフィルタ１０００及び１００２は赤外光のみを透過する。データ送信用ＬＥＤ１０６とＣＩＳ１４６とはそれぞれ、ＩＲフィルタ１０００及び１００２の下に置かれる。スイング検出器４４内の回路構成については、図５を参照して後述する。
【００５３】
図４を参照して、コントローラ４２は、シャフト１２０と、シャフト１２０に接続されたネック１２１を備えたクラブヘッド１２２とを含む。クラブヘッド１２２の底（ソール）には、矩形の反射ストリップ１２４が付けられる。
【００５４】
反射ストリップは、例えば再帰反射シートである。反射ストリップ１２４は２組のエッジを有する。長いエッジと短いエッジとである。反射ストリップ１２４は、長いエッジがクラブフェイスの長いエッジと平行になるように、クラブヘッド１２２に付けられる。
【００５５】
スイング検出器４４の内部構造
図５を参照して、ＩＲＬＥＤ９４及び９６と４個のボタン９８、１００、１０２及び１０４とに加えて、スイング検出器４４はその内部回路として、３２Ｈ（水平）×３２Ｖ（垂直）解像度を有し、一連のアナログ画素値を含むＶＯＵＴＳ信号を出力するＣＩＳ１４６と、ＣＩＳ１４６からのＶＯＵＴＳ信号を受信しＶＯＵＴＳ信号をダウンサンプリングして１ビットの２進信号にするダウンサンプリングコンパレータ１５０と、ダウンサンプリングコンパレータ１５０の出力を受け、クラブヘッドの中心点の位置とクラブフェイスの角度とを計算するＭＣＵ（Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌｌｅｒ  Ｕｎｉｔ：マイクロ制御ユニット）１４８と、データを送信するためのＩＲＬＥＤ１０６と、図３に示した電源キー９０内に埋込まれ、電源のオン／オフを示す電源ＬＥＤ１５２と、を含む。図示しないが、ＭＣＵ１４８は内部メモリ、レジスタ及びＣＰＵを含む。
【００５６】
ダウンサンプリングコンパレータ１５０はシュミットトリガを含む。この実施の形態では、シュミットトリガの正方向しきい値と負方向しきい値とは同じＶＴＨである。入力アナログ信号のレベルがしきい値ＶＴＨと等しいかこれより高くなると、ダウンサンプリングコンパレータ１５０の出力は即座にハイになる。入力アナログ信号のレベルがしきい値ＶＴＨより低いレベルになると、ダウンサンプリングコンパレータ１５０の出力は即座にローになる。従って、アナログ信号であるＶＯＵＴＳ信号は、１ビットの２進信号に変換される。
【００５７】
スイング検出器４４はさらに、電源キー９０に動作的に結合されたバッテリボックス１４０と、バッテリボックス１４０から出力される電圧を調整するとともに電源線を介してスイング検出器４４内のＭＣＵ１４８及び他の回路に電力を供給する電圧調整器回路１４２と、ＭＣＵ１４８の制御下で、電圧調整器回路１４２からの電力をＣＩＳ１４６に供給する電力制御スイッチ１４４と、を含む。電力制御スイッチ１４４とＣＩＳ１４６とは制御バス１４９を介してＭＣＵ１４８から制御指令を受ける。ＣＩＳ１４６とダウンサンプリングコンパレータ１５０との出力は、データバス１５１を介してＭＣＵ１４８の入力に接続される。
【００５８】
図６を参照して、ＭＣＵ１４８は、反射ストリップ１２４の画像１８２の長いほうのエッジの１つが、ＣＩＳ１４６の画像面のエッジの１つと形成する角度θを以下のように見出す。最初に、ＭＣＵ１４８はＣＩＳ１４６によってキャプチャされた画像１８０を頂部から底部まで１行づつ走査して反射ストリップ１２４の画像１８２を探す。Ｙ座標がＴ１ｙである行の最初の明点が画像１８２の最も上の角１９０を示す。この目的で、画像１８０（すなわちＣＩＳ１４６の画像面）上に座標系が定義される。同様に、ＭＣＵ１４８は画像１８０を最も右の列から１列づつ、最も右の明点を見出すまで、走査する。Ｘ座標がＲ１ｘである列のこの点が、画像１８２の角１９２を示す。同様に、ＭＣＵ１４８はＸ座標がＬ１ｘである最も左の明点１９６と、Ｙ座標がＢ１ｙである底の明点１９４とを見出す。ここで、Ｔ１ｙ＞Ｂ１ｙの関係が成立する。同様に、Ｒ１ｘ＞Ｌ１ｘの関係も成立する。言い換えれば、この動作において、画像１８２のそれぞれのエッジから画像１８０のそれぞれのエッジに最も近い４点１９０、１９２、１９４及び１９６が検出されそのＸ又はＹ座標値が計算される。
【００５９】
点１９０、１９２、１９４及び１９６は反射ストリップ１２４の画像１８２の４つの角に相当する。反射ストリップ１２４の画像１８２の中心点１９８は、従って、以下のように計算される。
【００６０】
X=(L1x+R1x)/2
Y=(T1y+B1y)/2.
反射ストリップ１２４の画像１８２の長いほうのエッジがＸ軸と成す角θは、以下のように定められる。
【００６１】
【数２】
2008525051.tif 000004
上述の簡単な計算により、反射ストリップ１２４の中心点１９８の位置と、これがＸ軸と成す角度θとを求めることができる。先行技術と比べて、必要とされる計算量は比較的少ない。
【００６２】
図７は、図５に示すＣＩＳ１４６、ＭＣＵ１４８及びダウンサンプリングコンパレータ１５０間の信号波形を示す図である。図７を参照して、「ＦＳ」はＣＩＳ１４６外部の回路の同期のためのフレーム信号である。信号ＦＳの１サイクル周期はクロック信号（ＳＣＬＫ）によって予め定められており、この実施の形態では、これは１２２８８クロックサイクルに等しい。この実施の形態では、ＣＩＳ１４６は信号ＦＳがローレベルである間に画像をキャプチャする。この周期を以下、露光時間「Ｔｅｘｐ」と称する。ＣＩＳ１４６がキャプチャした画像信号を出力する準備が整うと、信号ＦＳはハイレベルとなる。
【００６３】
ＣＩＳ１４６がある画像をキャプチャするのに要する時間（以下「内部露光時間」）は、ＣＩＳ１４６内部の特定の８ビットレジスタＥ０（７：０）の設定に依存する。この設定は外部から変更できる。露光時間Ｔｅｘｐは２５５の部分に分割される。ＣＩＳ１４６は内部露光時間を、Ｔｅｘｐにレジスタ値Ｅ０（７：０）を乗じ、これを２５５で除したものとして決定する。すなわち、レジスタ値Ｅ０（７：０）が１６であれば、図７に示すように、内部露光時間はＴｅｘｐ＊１６／２５５となる。
【００６４】
信号ＦＳがハイレベルである時、すなわち信号ＦＳがデータ転送期間を示すとき、ＣＩＳ１４６はキャプチャされた画像データＶＯＵＴＳを転送する準備ができている。信号／ＳＴＲの立下りは、ダウンサンプリングコンパレータ１５０でのＶＯＵＴＳのデータホールド及びサンプリングのタイミングを示す。データ転送期間中、信号／ＳＴＲは３２×３２＋１個のパルスを含む。これらパルスの立下りごとに、ダウンサンプリングコンパレータ１５０がＶＯＵＴＳ信号２２０のサンプリングを行い、ＶＯＵＴＳ信号２２０のレベルをしきい値レベルＶＴＨ２２１と比較し、結果を１ビット信号２２２として出力する（図９参照）。ＶＯＵＴＳ信号２２０の最初のデータはダミーであって、破棄される。従って、ダウンサンプリングコンパレータ１５０はデータ転送期間内に３２×３２個の画素データを出力する。付記すれば、ＶＯＵＴＳ信号２２０はキャプチャされた画像の強度を示すアナログ信号である。ＶＯＵＴＳ信号２２０の画素データの各々は１ビットのディジタル信号に変換され、ＭＣＵ１４８に与えられる。
【００６５】
画像信号が、各々が１ビットの３２×３２個の画素信号に減じられるので、画像データを記憶するのに必要とされるＭＣＵ１４８のメモリ容量は大幅に減じられ、比較的安価なＭＣＵを用いることができる。
【００６６】
図８はＦＳ、／ＳＴＲ及びＶＯＵＴＳ信号に加えて、ＣＩＳ１４６の露光を制御するための信号ＩＲ−ＣＴＬ、ＩＲ−ＬＥＤ及びＥＸＰ信号を示す。
【００６７】
ＩＲ−ＣＴＬ信号は、ＦＳの立下りに同期して、交互にハイレベルとローレベルとになる。ＩＲ−ＣＴＬ信号がハイレベルの時、ＩＲＬＥＤ９４及び９６がＩＲ光を射出する。それ以外の場合、発光は禁止される。
【００６８】
ＩＲ−ＬＥＤ信号は、ＦＳ信号がローレベルでありＩＲ−ＣＴＬ信号がハイレベルであって、ＩＲ−ＬＥＤ９４及び９６を駆動しているときに、ハイレベルとなる。それ以外の場合、ＩＲ−ＬＥＤ信号はローレベルのままであり、ＩＲＬＥＤ９４及び９６は発光しない。
【００６９】
ＥＸＰ信号は内部露光時間を規定する。ＥＸＰがハイレベルであるとき、ＣＩＳ１４６が画像をキャプチャする。ＥＸＰ信号はＦＳ信号の立下りごとにこれに応答してハイレベルとなる。内部露光時間は、上述の通り、Ｔｅｘｐにレジスタ値を乗じ、これを２５５で除したものと定義される。
【００７０】
要約すれば、ＩＲ−ＣＴＬ信号の各サイクルで、ＣＩＳ１４６によって２枚の画像がキャプチャされる。一方はＩＲＬＥＤ９４及び９６がＩＲ光を射出中にキャプチャされ、他方はＩＲＬＥＤ９４及び９６がＩＲ光を射出していない間にキャプチャされる。前者を露光データと呼び、後者を暗データと呼ぶ。
【００７１】
図９はダウンサンプリングコンパレータ１５０によって実行されるダウンサンプリングを示す。ＣＩＳ１４６から出力されたＶＯＵＴＳは波形２２０で示すようなアナログ信号である（図９（ｂ））。ダウンサンプリングコンパレータ１５０はＶＯＵＴＳのレベルを予め定められたしきい値レベルＶＴＨ２２１と比較して、結果として生じる１ビットの２進信号を波形２２２で示すように出力する（図９（ａ））。
【００７２】
この実施の形態では、ＣＩＳ１４６は物体のＩＲ画像をキャプチャすることに注意されたい。ＩＲＬＥＤ９４及び９６からのＩＲ光はコントローラ４２の反射ストリップ１２４によって反射され、ＣＩＳ１４６によってキャプチャされる。従って、露光データは反射ストリップ１２４の画像を含むことになる。
【００７３】
しかし、ＩＲ光は周囲環境に豊富に存在する。例えば、家屋、ホテルの受付、会議場などの照明器具はＩＲ光を射出する。太陽光もＩＲを含んでおり、窓から差し込んでＣＩＳ１４６にあたる太陽光もＣＩＳ１４６の画像面に画像を形成するであろう。従って、ＣＩＳ１４６は反射ストリップ１２４のみならず反射ストリップ１２４以外のＩＲ光源からもＩＲ光を受ける。ＣＩＳ１４６は反射ストリップ１２４からの画像を他のＩＲ光源からのものから分離しなければならない。
【００７４】
これは高性能のＣＰＵを用いれば実現できるが、そのような高性能のＣＰＵは高価である。電子シミュレーション装置は購入しやすいものでなければならず、従ってそのような高価なＣＰＵを含めることはできない。このため、反射ストリップ１２４の画像を安価なＣＰＵで分離することが重要となる。この実施の形態のＣＩＳ１４６は、露光データと暗データとを用いて、この課題を以下のようにして解決する。
【００７５】
図１０（Ａ）はＣＩＳ１４６によってキャプチャされた露光データの一例を示す図である。画像はいくつかの光源からの画像２３０、２３２及び２３４を含み、このうち画像２３４が反射ストリップ１２４の画像である。
【００７６】
図１０（Ｂ）はＣＩＳ１４６によってキャプチャされた暗データの一例を示す図である。光源の配置は図１０（Ａ）のものと同じである。図１０（Ｂ）を参照して、暗データでは光源２３０及び２３２の画像が依然として存在する。しかし、反射ストリップ１２４の画像２３４は存在しない。これは、反射ストリップ１２４が受動的光源だからである。ＩＲＬＥＤ９４及び９６がＩＲ光を射出していないときは、反射ストリップ１２４はＩＲ光を反射しない。従って、暗データは画像２３４を含まない。
【００７７】
図１０（Ｃ）は図１０（Ａ）と図１０（Ｂ）との差分を示す図である。図１０（Ｃ）に示すように、差分データは反射ストリップ１２４の画像２３４のみを含む。こうして、ＣＩＳ１４６は反射ストリップ１２４の画像２３４を他の画像から分離する。
【００７８】
スイング検出器４４のプログラム構造
図１１から図１４はスイング検出器４４のＭＣＵ１４８で実行されて、ＣＩＳ１４６を制御し、反射ストリップ１２４の画像をキャプチャし、その中心点の位置とＸ軸に対する角度θとを計算するためのプログラムの全体の制御構造を示す図である。
【００７９】
図１１を参照して、電源オンの後、プログラムはステップ２４０で開始し、ここでＭＣＵ１４８のレジスタが初期化される。ステップ２４２で、ＭＵＣ１４８はそのＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ：ランダムアクセスメモリ）をクリアする。その後、ステップ２４４で、ＭＣＵ１４８のＰＩＯ（Ｐｒｏｇｒａｍｍｅｄ  ｉｎｐｕｔ／ｏｕｔｐｕｔ:プログラムされた入出力）設定が行われる。ステップ２４６で、ＭＣＵ１４８はオプションコード設定を読み、ＣＩＳ１４６をリセットし、ＣＩＳ１４６のレジスタをオプションコード設定に従ってセットアップする。ステップ２４８で、監視タイマがリセットされる。
【００８０】
ステップ２５０で、信号ＦＳがローか否かが判定される。もしローでなければ、制御はステップ２５０に戻り、信号ＦＳがローになるまで判定が繰返される。信号ＦＳがローであれば、ＭＣＵ１４８は露光ＩＲＬＥＤ９４及び９６をオンにする（図３及び図５を参照）。ステップ２５４で、露光ＩＲＬＥＤ９４及び９６は信号ＦＳがハイになるまで、オンに維持される。信号ＦＳがハイになったと認められると、露光ＩＲＬＥＤ９４及び９６はステップ２５６でオフされる。
【００８１】
図１２を参照して、ＭＣＵ１４８はステップ２５８で信号／ＳＴＲが立下がるまで待つ。ステップ２６０において、信号／ＳＴＲの立下りで、ＭＣＵ１４８はダウンサンプリングコンパレータ１５０によってダウンサンプリングされたＶＯＵＴＳを読出す。
【００８２】
ステップ２６２で、ＣＩＳ１４６から３２×３２のデータ全てが受信されたか否かが判定される。受信されていなければ、制御はステップ２５８に戻る。３２×３２のデータ全てを受信済みであれば、制御はステップ２６６に進む。ステップ２５８から２６２で受信される３２×３２のデータが、露光データを構成する。
【００８３】
ステップ２６６で、ＭＣＵ１４８はキープレスデータを獲得しようとする。ステップ２６８で、ＭＣＵ１４８内のスリープカウンタ（図示せず）がチェックされ、スリープカウンタがオーバーフローしたか否かが判定される。もしオーバーフローしていれば、制御はステップ２７０に進み、そうでなければステップ２８０に進む（図１３）。
【００８４】
ステップ２７０で、ＭＣＵ１４８は電力制御スイッチ１４４を制御してＣＩＳ１４６への給電を中止し、スリープモードに入る。ステップ２７２で、ＭＣＵ１４８はスリープＬＥＤをオンにする。このＬＥＤ１５２を図５に示す。ステップ２７４で、ＭＣＵ１４８は遅延ループにより予め定められた期間だけ待つ。予め定められた期間の後、ＭＣＵ１４８はステップ２７６でスリープＬＥＤをオフにする。ステップ２７８で、キーが押されたか否かが判定される。キーが押されていなければ、制御はステップ２７０に戻り、ＭＣＵ１４８は再びスリープモードに入る。キーが押されれば、制御はステップ２４０に戻り、ＭＣＵはステップ２４０以降の処理を再び実行する。
【００８５】
ステップ２６８でスリープカウンタがオーバーフローしていないと判定されれば、制御は図１３のステップ２８０に進む。図１３を参照して、ステップ２８０で、ＭＣＵ１４８は信号ＦＳがローになるのを待つ。信号ＦＳがローになると、ＭＣＵ１４８はステップ２８２で電源ＬＥＤ１５２をオンにし、ステップ２８４で信号ＦＳがハイになるのを待つ。電源ＬＥＤ１５２をオンすることによって、ＭＣＵ１４８はＭＣＵ１４８及びＣＩＳ１４６が動作していることを示す。信号ＦＳがハイになると、ＭＣＵ１４８はステップ２８６で電源ＬＥＤ１５２をオフにする。電源ＬＥＤ１５２をオフにすることによって、電力消費を削減する。
【００８６】
次に、ステップ２８８で、ＭＣＵ１４８は信号／ＳＴＲの立下りを待つ。信号／ＳＴＲの立下りで、ＭＣＵ１４８はステップ２９０で再びＶＯＵＴＳを読出す。ステップ２９２で３２×３２のデータが受信されたと判定されるまで、ステップ２８８及び２９０が繰返される。ステップ２８８から２９２で受信した３２×３２のデータが暗データを構成する。その後制御はステップ２９４に進み、ここでＭＣＵ１４８が露光データから暗データを減算する。この動作により、反射ストリップ１２４以外の光源からの画像が３２×３２の露光データから除去される。制御は図１４に示すステップ２９６に進む。
【００８７】
ステップ２９６で、画像中に明点がないか、又はキーが押されていないかを判定する。明点があるか、キーが押されている場合は、制御はステップ２９８に進む。そうでなければ、制御はステップ３１８に進む。
【００８８】
ステップ２９８で、画像中に明点がないがキーが押されたか否かを判定する。明点がなく、キーが押された場合、制御はステップ３１４に進む。そうでなければ、制御はステップ３００に進む。
【００８９】
ステップ３００で、ＭＣＵ１４８は３２×３２の画像を頂部から底部へ一行づつ走査して、最も上の明点Ｔ１ｙを得る。ステップ３０２で、ＭＣＵ１４８は画像を底部から頂部へ走査して最も低い明点Ｂ１ｙを得る。ステップ３０４で、ＭＣＵ１４８は画像を左から右へ走査して、最も左の明点Ｌ１ｘを得る。最後に、ステップ３０６で、ＭＣＵ１４８は画像を右から左へ走査して、最も右の明点Ｒ１ｘを得る。
【００９０】
ステップ３０８で、ＭＣＵ１４８は以下の式（１）に従って、反射ストリップ１２４の画像の中心点（Ｘ，Ｙ）を計算する。
【００９１】
X = (L1x+R1x)/2
Y = (T1y+B1y)/2                          (1)
ステップ３１０で、シミュレーションが、ゴルフシミュレーションにおいてクラブフェイスの角度を考慮する角度モードにあるか否かが判定される。もし角度モードでなければ、制御はステップ３１４に進む。そうでなければ、制御はステップ３１２に進み、ここではクラブの角度θが以下の式（２）に従って計算される。
【００９２】
θ= tan-1(B1y-T1y)/(R1x-L1x)                   (2)
その後制御はステップ３１４に進む。ステップ３１４で、ＭＣＵ１４８は、計算された結果に従って、アダプタ４６へのＩＲ通信のためのＩＲ出力パターンをセットアップする。
【００９３】
ＩＲ通信のための位置データ及び角度データのデータ形式は、２２ビットを含む。最初のビットは開始ビットであって、常に１である。次の１３ビットは中心点のＸ座標及びＹ座標を表し、パリティビットを含む。ＸとＹとは０から３１までの範囲にあるので（３２画素）、Ｘ座標及びＹ座標の各々を表すのに５ビットを要する。パリティビットは３ビットである。
【００９４】
次の４ビットはクラブの角度を表す。ステップ３１２で計算された角度は、図２０のθ１からθ１２で示す１５度（１５°）刻みの１２の角度のうち最も近いものに丸められる。これらの角度は、それぞれ１から１２の数字で示される。従って、クラブ角度は、送信に４ビットを要する。この実施の形態では、θ１からθ１２はそれぞれ０°、１５°、３０°、４５°、６０°、７５°、９０°、−７５°、−６０°、−４５°、−３０°及び−１５°を示す。変換はシミュレーションプログラムによって行われる。
【００９５】
次の３ビットは押されたキーを示す。キーが押されていなければ、これら３ビットは送信されない。最後のビットは終了ビットである。
【００９６】
図１４に戻って、ステップ３１６で、ＭＣＵ１４８はスリープモードカウンタをリセットする。ステップ３２０で、ＭＣＵ１４８はステップ３１４でセットアップされたＩＲデータを出力する。システムカートリッジ７６で実行されるゴルフシミュレーションプログラムは、こうして、データを利用しシミュレーションの状況を変更できる。ステップ３２０の後、制御は図１１に示すステップ２４８に戻る。
【００９７】
ステップ２９６で３２×３２の画像中に明点がない、又はキーが押されていない、と判定されると、制御はステップ３１８に進む。ステップ３１８で、ＭＣＵ１４８はＩＲ出力パターンをクリアする。その後制御はステップ３２０に進み、ここでクリアされたＩＲ出力パターンがアダプタ４６に出力される。
【００９８】
スイング検出器４４の動作
この実施の形態のスイング検出器４４は以下のように動作する。電源がオンされると、スイング検出器４４のＭＣＵ１４８はそのレジスタ（図１１、ステップ２４０）を初期化し、そのＲＡＭをクリアし（ステップ２４２）、ＰＩＯ設定をセットアップし（ステップ２４４）、オプションコード設定を読出し、ＣＩＳ１４６への給電を開始する（ステップ２４６）。給電に応答して、ＣＩＳ１４６は画像のキャプチャを開始する。露光期間中、ＣＩＳ１４６は信号ＦＳをローレベルに設定し、転送期間中、ＣＩＳ１４６は信号ＦＳをハイレベルに設定する。
【００９９】
ステップ２４８で、ＭＣＵ１４８は監視タイマーをリセットし、ＣＩＳ１４６からの信号ＦＳがローになるのを待つ（図１１、ステップ２５０）。信号ＦＳがローになると、これはＣＩＳ１４６が露光期間にあることを示すので、ＭＣＵ１４８は露光のためＩＲＬＥＤ９４及び９６をオンにする。ＣＩＳ１４６は露光期間中の画像をキャプチャする。ＭＣＵ１４８はステップ２５４で信号ＦＳがハイになるのを待つ。ＣＩＳ１４６がＶＯＵＴＳを出力する準備が整うと、これは信号ＦＳをハイレベルに設定する。ＭＣＵ１４８はステップ２５６で露光用ＩＲＬＥＤ９４及び９６をオフにする。
【０１００】
図８を参照して、転送期間中は、信号ＦＳはハイレベルのままであり、信号／ＳＴＲは特定の時間期間ごとに交互にローレベルとハイレベルとになる。信号／ＳＴＲの立下りごとに、ダウンサンプリングコンパレータ１５０は図９（ｂ）に示すように、キャプチャされた画像の画素の光強度を示すデータＶＯＵＴＳの入力を開始する。
【０１０１】
ダウンサンプリングコンパレータ１５０の出力は、ＶＯＵＴＳのレベルが正方向しきい値に等しいかそれより高い場合にはハイレベルに上昇する。ＶＯＵＴＳのレベルが負方向しきい値より低い場合は、ローレベルに下がる。ダウンサンプリングコンパレータ１５０の出力の一例を図９（ａ）に示す。上述の通り、正方向しきい値と負方向しきい値とは、同じＶＴＨである。
【０１０２】
再び図１２を参照して、ステップ２５８から２６２で、信号／ＳＴＲの立下りごとに、ＶＯＵＴＳが安定するのに十分な所定の遅延をもって、ＭＣＵ１４８はダウンサンプリングコンパレータ１５０がダウンサンプリングしたＶＯＵＴＳを読出す。３２×３２のデータが受信されると、ＭＣＵ１４８はキーデータを獲得しようとする。受信したデータが露光データを構成する。
【０１０３】
ステップ２６８でスリープカウンタがオーバーフローしたと認められると、ＭＣＵ１４８は、いずれかのキーが押されるまで、スリープモードに入る。もしスリープカウンタがオーバーフローしていなければ、ＭＣＵ１４８はステップ２８０で信号ＦＳがローになるまで待つ（図１３）。信号ＦＳがローであれば、ＣＩＳ１４６は再び露光期間にあり、ＭＣＵ１４８はステップ２８２でＬＥＤ１５２をオンにして（図１３）、ＭＣＵ１４８とＣＩＳ１４６とが動作中であることを示す。その後、ＭＣＵ１４８はステップ２８４で信号ＦＳがハイになるまで待つ。この期間中、ＣＩＳ１４６はＩＲＬＥＤ９４及び９６の発光なしで画像をキャプチャする。信号ＦＳがハイになると、ＣＩＳ１４６は転送モードとなり、ＭＣＵ１４８はＬＥＤ１５２の電源をオフにする。
【０１０４】
ステップ２８８から２９２で、ＭＣＵ１４８はＣＩＳ１４６から出力されダウンサンプリングコンパレータ１５０によってダウンサンプリングされた３２×３２の画像データＶＯＵＴＳを受ける。この画像が暗データとなる。
【０１０５】
ステップ２９４で、ＭＣＵ１４８はステップ２８８から２９２（図１３）で受けた暗データをステップ２５８から２６２（図１２）で受けた露光データから減算する。結果として得られるデータは、もしあれば、反射ストリップ１２４の露光データのみを含むことになる。
【０１０６】
ステップ２９６から２９８（図１４）で、ＭＣＵ１４８は結果として得られる画像が明点を含むか否かを判定し、もし明点があれば、図６を参照して、ＭＣＵ１４８は画像を上から下の行へと走査して、ステップ３００で最も上の明点Ｔ１ｙを見出し、下から上の行へと走査してステップ３０２で最も下の明点Ｂ１ｙを得、左から右の列へと走査してステップ３０４で最も左の明点Ｌ１ｘを得、右から左の列へと走査してステップ３０６で最も右の明点Ｒ１ｘを得る。
【０１０７】
ステップ３０８で、ＭＣＵ１４８は式（１）により反射ストリップ１２４の画像の座標（Ｘ，Ｙ）を計算する。もしシミュレーションが角度モードであれば、ＭＣＵ１４８は式（２）により、クラブヘッドの角度を計算する。
【０１０８】
ステップ３１４で、ＭＣＵ１４８はＩＲ出力パターンをセットアップする。これはステップ３１６でスリープモードカウンタをリセットし、図５に示すＩＲＬＥＤ１０６を利用してステップ３２０でＩＲデータをアダプタ４６に出力する。
【０１０９】
上述の動作を繰返すことにより、スイング検出器４４は反射ストリップ１２４（図４）の位置、すなわちコントローラ４２のヘッドの位置と、クラブの角度とを検出し、検出したデータをアダプタ４６に送信できる。アダプタ４６はデータを受け、アダプタ４６に挿入されたシステムカートリッジ７６が架空のゴルフボールの軌跡を計算し、シミュレーション状況を変更する。
【０１１０】
クラブ角度の利用
アダプタ４６に挿入されたシステムカートリッジ７６のプロセッサ上で実行されるゴルフシミュレーションプログラムは、クラブヘッド中心のＸ及びＹ座標と、コントローラ４２のクラブ角度との情報を利用できる。第１に、異なる時点で検出された座標間の差を計算することで、シミュレーションプログラムはクラブヘッドの移動方向を計算できる。この情報とクラブ角度とを用いて、シミュレーションプログラムは以下のように、架空のゴルフボールの軌跡の方向を計算できる。
【０１１１】
これに関連して、システムカートリッジ７６上で実行されるゴルフシミュレーションプログラムは、ゴルフボールの軌跡の方向を判定する新規な方法を採用している。図２１を参照して、３２×３２の画像面５４０におけるクラブヘッドの移動方向５４４（反射ストリップ１２４の中心点の移動）が、画像面５４０のＹ軸に平行な基準線５４２と角度θｓを成すと仮定する。
【０１１２】
先行技術では、図２２に示すように、ゴルフシミュレーションプログラムはゴルフシミュレーションスクリーン５８０上にゴルフホール（図示せず）に向かう目標の矢印５８４を示し、スクリーン５８０のｙ軸に平行な基準線５８２と角度θｓを成す方向５８６を架空のゴルフボールの軌跡と判定していた。
【０１１３】
この構成では、もし矢印５８４が下向きであると、プレイヤはコントローラを後ろ向きにスイングしなければならなくなる。状況によっては、プレイヤはゴルフシミュレーションスクリーン５８０と反対方向を向いてスイング検出器４４にアドレスしなければならない。さらに、架空のゴルフボールと目標のホールとの間に何か障害物が位置していれば、プレイヤはこのボールを目標の方向とは違う方向に向けたいと思うだろう。このような状況では、正しいスイングの方向を決定するのは困難である。というのも、プレイヤはゴルフシミュレーションスクリーン５８０には示されていない垂直の基準線５８２を基準にしてスイングの方向を決めなければならないからである。
【０１１４】
これに対して、システムカートリッジ７６上で実行されるゴルフシミュレーションプログラムは、以下のようにして架空のゴルフボールの軌跡を決定する。
【０１１５】
図２３を参照して、架空のゴルフボール６０７と矢印６０４とがＴＶ４８のスクリーン６００に表示される。所与の角度θｓについて、この実施の形態のシミュレーションプログラムは、角度θｓをスクリーン６００上の基準線６０２ではなく、ターゲットゴルフホールに向けられた矢印６０４の方向に加えるので、結果は方向６０６となる。
【０１１６】
この構成により、もしプレイヤがコントローラ４２をＣＩＳ１４６の画像面のＹ軸方向にスイングすれば、角度θｓはゼロになる。従って、架空のゴルフボールはターゲットホールの方向に向かう。もしターゲット矢印６０４が下向きであっても、プレイヤはコントローラ４２を後ろ向きにスイングする必要はない。スイング検出器４４上での通常のストレートなスイングは、架空のゴルフボール６０７を目標矢印６０４の方向にまっすぐ飛ばす。プレイヤは正しい角度の正しい場所を見出すためにスイング検出器４４の周りをまわってみる必要がなくなる。従って、先行技術と対照的に、この実施の形態に従った構成のほうがゴルフシミュレーションを行うのがずっと簡単である。
【０１１７】
さらに、架空のゴルフボールとターゲットホールとの間に障害物があると仮定する。この実施の形態では、プレイヤがスイングの方向を容易に決めることができる。というのも、スクリーン６００上に目標矢印６０４があり、必要なのは所望の方向がターゲット矢印６０４と成す偏向角を見ることだけだからである。一旦偏向角がわかれば、プレイヤは、スイング検出器４４のストレートなスイング線（すなわち線５４２）とスイングの方向とがこの偏向角を成すように、コントローラ４２をスイングできる。
【０１１８】
図２４を参照して、この実施の形態のスイング検出器４４で検出されたクラブ角度がθ２であると仮定する。これは、クラブフェイス６２８がＣＩＳ１４６のＸ座標に対応する線６２６と成す角度がθ２である、ということを意味する。さらに、プレイヤがコントローラ４２を、ＣＩＳ１４６のＹ座標に対応する線６２４の方向にスイングすると仮定する。図２３の例では、架空のゴルフボール６２０の軌跡はターゲット矢印６２２の方向に定められる。しかし、ゴルフシミュレーションプログラムは、架空のゴルフボール６２０の軌跡を以下のように決定することもできる。付記すれば、もし軌跡を計算するのに物理法則を用いれば、架空のゴルフボール６２０はクラブフェイスの法線に対応する方向に移動するはずである。
【０１１９】
図２５を参照して、ＴＶ４８のスクリーン６４０上に架空のゴルフボール６４２が表示される。目標矢印６４４もまた、ターゲットゴルフホールを指して表示されている。所与のクラブ角度θ２とクラブヘッド移動の偏移角θｓとについて、プログラムはまず、角度θｓを矢印６４４の角度に加える。この結果が、方向６４６である。さらにプログラムは、クラブフェイス角度θ２の訂正値α×θ２（０≦α＜１）を方向６４６に加え、この結果、目標矢印６４４からさらにずれた方向６４８が結果として得られる。
【０１２０】
この構成により、ゴルフシミュレーションは先行技術のゴルフゲームよりずっと面白いものになる。
【０１２１】
上述の通り、スイング検出器４４はクラブの中心点の位置を検出することができ、さらに、クラブフェイスの角度を検出することもできる。これらのデータシーケンスがＩＲ通信によってアダプタ４６（図１）に送信される。従って、アダプタ４６に挿入されたシステムカートリッジ７６のプロセッサ上で実行されるゴルフシミュレーションプログラムは、これらのデータを利用することができ、その結果ゴルフシミュレーションは先行技術よりずっと面白くなる。
【０１２２】
ゴルフシミュレーションの制御構造
アダプタ４６に挿入されたシステムカートリッジ７６のプロセッサ上で実行されるゴルフシミュレーションプログラムはスイング検出器４４からの情報を用いてシミュレーションプロセスを制御する。図１５はゴルフシミュレーションプログラムの状態図である。
【０１２３】
図１５を参照して、シミュレーションプログラムは初期状態３４０から始まる。初期状態３４０が完了すると、シミュレーションプログラムはシミュレーションモード選択状態３４２に入る。ここで、シミュレーションプログラムはＴＶ４８のスクリーン上にメニューを示す。メニューは、設定が異なるいくつかのシミュレーションを示す。ユーザが所望のシミュレーションを選択すると、シミュレーションプログラムは「スイング前」状態３４４に入る。
【０１２４】
「スイング前」状態３４４では、シミュレーションプログラムはスイング検出器４４からのデータを用いて、ユーザがコントローラ４２をスイングしたかどうかを判定する。もしスイングが検出されると、シミュレーションプログラムはボール移動状態３４６に入り、ここではシミュレーションプログラムが架空のボールの方向と速度とを計算し、その後架空のゴルフコースにおけるボールの軌跡を計算する。この状態では、ゴルフシミュレーションプログラムは架空のゴルフボールの移動を示す画像シーケンスと、ゴルフコースの変わっていく背景シーンとを生成する。
【０１２５】
架空のゴルフボールが止まると、シミュレーションプログラムはスコアリング及び結果判定状態３４８に入る。ここで、シミュレーションプログラムは架空のゴルフボールがどこにあるかを判定し、ユーザのスコアを計算する。
【０１２６】
もしシミュレーションが終了したと判定されると、シミュレーションプログラムはシミュレーションモード選択状態３４２に戻る。そうでなければ、シミュレーションプログラムはスイング前状態３４４に戻る。
【０１２７】
図１６は上述のシミュレーションプログラムの全体の制御構造を示す。図１６を参照して、シミュレーションプログラムが活性化されると、これはメモリを初期化し、予め定められた初期値を登録し、ステップ３６０でシミュレーション状態を「シミュレーションモード選択」状態に設定する。ステップ３６２で、シミュレーションプログラムはシミュレーション状態に従ってＴＶ４８のスクリーンを更新する。
【０１２８】
ステップ３４６で、シミュレーションプログラムはシミュレーション状態をチェックし、シミュレーションプログラムがシミュレーションモード選択状態３４２、スイング前状態３４４、ボール移動状態３４６、スコアリング及び結果判定状態のいずれにあるかによって、それぞれ、ステップ３６６、３６８、３７０又は３７２に進む。ステップ３６６及び３６８の詳細は図１７及び図１８をそれぞれ参照して後述する。ステップ３７０及び３７２はこの実施の形態に関連がないので、それらの詳細はここでは説明しない。
【０１２９】
ステップ３６６、３６８、３７０又は３７２の後、制御はステップ３７４に進み、ここでプログラムはビデオ同期割り込みを待つ。これはタイマ（図示せず）によって行われるものである。タイマは、予め定められた周期で、ビデオ同期割込みを行う。
【０１３０】
ビデオ同期割込みがあると、制御はステップ３６２に進む。そうでなければ、ステップ３７４に戻る。こうして、ゴルフシミュレーションプログラムは各タイマ間隔でステップ３６２から３７４を繰返す。
【０１３１】
図１７は図１６に示すステップ３６６のシミュレーションモード選択の詳細な制御構造を示す。図１７を参照して、ステップ４００で、プログラムはＣＩＳ１４６の出力を読出す。ステップ４０２で、プログラムはデータがキー（ボタン）９８、１００、１０２及び１０４（図３）のいずれかが押されたことを示しているかどうか判定する。もしデータがいずれかのキーが押されたことを示していない場合、プログラムはこのルーチンを出る。もしデータがいずれかのキーが押されたことを示している場合には、制御はステップ４０４に進む。
【０１３２】
ステップ４０４で、プログラムは、キーが「アップ」ボタン９８（図３）であるか否かを判定する。もしそうであれば制御はステップ４１４に進み、ここで、変数「ｉｔｅｍ＿ｎｏ」が減分される。変数「ｉｔｅｍ＿ｎｏ」はメニュー上で選択された項目を示す。もしユーザが「アップ」ボタン９８を押せば、それまで選択されていた項目の選択がはずされ、その選択をはずされた項目のすぐ上の項目が選択される。ステップ４１４の後、制御はこのルーチンを出る。
【０１３３】
ステップ４０４でキーが「アップ」ボタン９８でないと判定されると、制御はステップ４０６に進み、ここでプログラムは、キーが「ダウン」ボタン１００（図３）であるか否かを判定する。もしそうであれば、制御はステップ４１６に進む。そうでなければ、制御はステップ４０８に進む。ステップ４１６では、変数「ｉｔｅｍ＿ｎｏ」が増分される。ステップ４１６で、制御はこのルーチンを出る。
【０１３４】
ステップ４０８で、プログラムはキーが「ＥＮＴＥＲ」ボタン１０４（図３）であるか否かを判定する。もしそうであれば、制御はステップ４１８に進む。そうでなければ、ステップ４１０に進む。ステップ４１８で、プログラムはシミュレーションモード、シミュレーション状態及び変数Ｎ１を「ｓｉｍｕｌａｔｉｏｎ  （ｉｔｅｍ＿ｎｏ）」、「ｓｗｉｎｇ＿ｄｅｔｅｃｔｉｏｎ」及び「０」にそれぞれ設定する。ｓｉｍｕｌａｔｉｏｎ（）はシミュレーションモード特定情報を記憶するアレイである。変数「ｉｔｅｍ＿ｎｏ」はこのアレイへのインデックスである。このステップにより、シミュレーションモードが選択される。ステップ４１８の後、制御はこのルーチンを出る。変数Ｎ１はステップ３６８のスイング検出ステップで用いられ、その詳細は後述する。
【０１３５】
ステップ４１０で、プログラムはキーが「ＣＡＮＣＥＬ」ボタン１０２（図３）であるか否かを判定する。もしそうであれば、制御はステップ４１２に進み、ここでプログラムはプログラム設定をクリアする。ステップ４１２の後、制御はこのルーチンを出る。もしステップ４１２でキーが「ＣＡＮＣＥＬ」ボタン１０２でないと判定されれば、制御は即座にこのステップから出る。
【０１３６】
図１８はステップ３６８（図１６）のスイング検出処理の制御フローを示す。この処理は、ユーザがコントローラ４２をスイング検出器４４の上方でスイングしたか否かを判定する。
【０１３７】
この処理はステップ４３０で始まり、ここでプログラムはＣＩＳデータを読出す。ステップ４３２で、プログラムはＣＩＳデータが、ユーザがボタン９８、１００、１０２及び１０４の１つを押したことを示すキーデータを含むか否かを判定する。もしＣＩＳデータがキーデータを含んでいれば、制御はステップ４６８に進む。そうでなければ、制御はステップ４３４に進む。
【０１３８】
ステップ４６８で、プログラムはキーが「ＣＡＮＣＥＬ」ボタン１０２（図３）であるか否かを判定する。もしそうであれば、制御はステップ４７０に進み、ここでプログラムはシミュレーションの状態を「ｓｉｍｕｌａｔｉｏｎ＿ｍｏｄｅ＿ｓｅｌｅｃｔｉｏｎ」に設定しこのルーチンを出る。そうでなければ、プログラムは即座にこのルーチンを出る。
【０１３９】
ステップ４３２でもしＣＩＳデータがキーデータを含んでいなければ、制御はステップ４３４に進み、ここでは変数Ｎ１に１が加算され、結果が別の変数Ｎ２に記憶される。変数Ｎ１及びＮ２はともに１ビットの変数である。すなわち、もしＮ１が０であれば、Ｎ２は１となり、Ｎ１が１であれば、Ｎ２は０となる。
【０１４０】
ステップ４３６で、ＣＩＳデータに含まれる座標Ｘ及びＹがアレイ要素ＰＸ［Ｎ２］及びＰＹ［Ｎ２］にそれぞれ記憶される。アレイＰＸ［］及びＰＹ［］はそれぞれ２つの要素ＰＸ［０］、ＰＸ［１］とＰＹ［０］、ＰＹ［１］とを有する。図１９は反射ストリップ１２４の移動の一例を示す図である。前時点５５２での反射ストリップ１２４の中心位置が、（ＰＸ［Ｎ１］，ＰＹ［Ｎ１］）で示され、一方現時点５５４での中心点が（ＰＸ［Ｎ２］，ＰＹ［Ｎ２］）で示される。
【０１４１】
ステップ４３８で、シミュレーションが「ａｎｇｌｅ＿ｍｏｄｅ」シミュレーションであるか否かが判定される。この「ａｎｇｌｅ＿ｍｏｄｅ」シミュレーションでは、コントローラ４２のクラブフェイスの角度θを利用する。他のモードでは、シミュレーションは角度θを用いない。もしシミュレーションが「ａｎｇｌｅ＿ｍｏｄｅ」シミュレーションであれば、制御はステップ４４０に進み、ここではＣＩＳデータに含まれる角度θがアレイ要素θ［Ｎ２］に記憶され、制御はステップ４４２に進む。そうでなければ制御は即座にステップ４４２に進む。θ［］は２要素のアレイであり、その要素はθ［０］とθ［１］とを含む。
【０１４２】
ステップ４４２で、ＰＸ［Ｎ２］−ＰＸ［Ｎ１］が計算され、その結果がアレイ要素ＶＸ［Ｎ２］に記憶される。同様に、ＰＹ［Ｎ２］−ＰＹ［Ｎ１］の結果がＶＹ［Ｎ２］に記憶される。アレイＶＸ［］及びＶＹ［］は２要素のアレイであり、それぞれＶＸ［０］、ＶＸ［１］とＶＹ［０］、ＶＹ［１］とを含む。
【０１４３】
ステップ４４４で、以下の値が計算され、その結果がアレイ要素Ｖ［Ｎ２］に記憶される。
【０１４４】
【数３】
2008525051.tif 000005
このアレイＶ［］は2要素のアレイであって、Ｖ［０］とＶ［１］とを含む。Ｖ［Ｎ２］は反射ストリップ１２４の中心が前回の測定から移動した距離を示す。従って、Ｖ［Ｎ２］もまた、コントローラ４２のクラブヘッドの移動速度を示す。
【０１４５】
ステップ４４６で、プログラムはステップ４４４で計算された距離Ｖ［Ｎ２］が予め定められた第１のしきい値Ｖｔｈ１より大きいか否かを判定する。もしそうであれば、制御はステップ４５２に進み、ここでフラグｓが１にセットされる。そうでなければ、制御はステップ４４８に進む。フラグｓは１であればスイングが検出されたことを示し、０であればスイングが検出されなかったことを示す。
【０１４６】
ステップ４４８で、プログラムは今回検出された中心点ＰＮ２＝（ＰＸ［Ｎ２］，ＰＹ［Ｎ２］）と前回検出された中心点ＰＮ１＝（ＰＸ［Ｎ１］，ＰＹ［Ｎ１］）とを結ぶ線分＿ＰＮ２ＰＮ１（＿は本来はＰＮ２ＰＮ１の上のオーバーバーを示す）を決定する。さらにプログラムは、線分＿ＰＮ２ＰＮ１がＣＩＳ画像面の中央の予め選択された区域上を横切るか否かを判定する。もしそうなら、制御はステップ４５０に進み、そうでなければ制御はステップ４６６に進む。
【０１４７】
ステップ４６６で、フラグｓがゼロにリセットされ、制御はステップ４６４に進む。
【０１４８】
ステップ４５０で、プログラムは距離Ｖ［Ｎ２］が予め定められた第２のしきい値Ｖｔｈ２より大きいか否かを判定する。第２のしきい値Ｖｔｈ２はステップ４４６で用いられる第１のしきい値Ｖｔｈ１より小さくなるように選択される。もしＶ［Ｎ２］が第２のしきい値Ｖｔｈ２より大きければ、制御はステップ４５２に進む。そうでなければ制御はステップ４６６に進む。ステップ４５２で、上述の通りフラグｓが１に設定される。
【０１４９】
従って、コントローラ４２のクラブヘッドの検出された速度が第１のしきい値Ｖｔｈ１より大きければプログラムはスイングが検出されたと判定し、コントローラ４２のクラブヘッドの速度が第１のしきい値Ｖｔｈ１と等しいかこれより小さければ、プログラムは、クラブヘッドがＣＩＳ１４６の中心点上を通過すると同時にその速度が第２のしきい値Ｖｔｈ２より大きいときのみ、スイングを検出する。
【０１５０】
図１９を参照して、プログラムはスライス角θｋを以下のように計算する。Ｘ軸とＹ軸とが図１９に示されるようにとられたと仮定し、線分＿ＰＮ２ＰＮ１と垂直線５６２とが角度θｊを成すと仮定する。所与の２つの座標データＰＮ１（ＰＸ［Ｎ１］，ＰＹ［Ｎ１］）とＰＮ２（ＰＸ［Ｎ２］，ＰＹ［Ｎ２］）とについて、プログラムは角度θｊを以下のように計算する。
【０１５１】
【数４】
2008525051.tif 000006
ここで、図１９において、角度は反時計方向に測定している。さらに、線５６４が反射ストリップ１２４の画像５５４の長軸を延長したものであると仮定し、線５６０は線分＿ＰＮ２ＰＮ１を延長したものであると仮定する。線５６４と水平線５６６とで形成されるフェイス角度θ［Ｎ２］はＣＩＳ１４６によって与えられる。
【０１５２】
プログラムはさらに、角度θｋをθｋ＝θｊ＋α×θ［Ｎ２］として計算し、ここでθｊとα×θ［Ｎ２］とはそれぞれ図２５のθｓとα×θ２とに対応し、αは正の定数である。好ましくはαは［０，１］の範囲にある。プログラムはこの角度θｋを用いて上述の通り、「ａｎｇｌｅ＿ｍｏｄｅ」シミュレーションにおいて架空のゴルフボールの軌跡を決定できる。
【０１５３】
再び図１８を参照して、ステップ４５４で、プログラムは角度θｊを以下のように計算する。
【０１５４】
【数５】
2008525051.tif 000007
ステップ４５６で、プログラムはシミュレーションが「ａｎｇｌｅ＿ｍｏｄｅ」であるか否かを判定する。もしそうであれば、制御はステップ４５８に進んでθｋがθｋ＝θｊ＋α×θ［Ｎ２］として計算される。そうでなければ、制御はステップ４６０に進み、ここでθｋはθｊに設定される。
【０１５５】
次に、ステップ４６２で、架空のゴルフボールの初期速度Ｖ０が計算される。具体的には、架空のゴルフボールは目標矢印から角度θｋだけずれた方向に飛ぶ。
【０１５６】
ステップ４６４で、プログラムはＮ１にＮ２を代入する。ステップ４６４の後、制御はこのルーチンを出る。
【０１５７】
この実施の形態では、角度θｋは主にθｊに依存して定められる。従って、架空のゴルフボールは実質的にコントローラ４２のスイングの方向に飛ぶ。従って、プレイヤはクラブの角度にそれほど注意を向けなくてもシミュレーションを楽しむことができる。もしクラブ角度θ［Ｎ２］がゼロでなければ、ゴルフボールのコースは目標の矢印からθｋだけそれることになる。
【０１５８】
さらに、項α×θ［Ｎ２］はシミュレーションを洗練させる。しかし、項α×θ［Ｎ２］に関するずれの量は大きくなく、シミュレーションを損なうことはない。クラブ角度がボールのコースに影響を与えるので、シミュレーションはやや難しくなるが、楽しみをそぐほどに困難にはならない。
【０１５９】
この実施の形態では角度θｋはθｋ＝θｊ＋α×θ［Ｎ２］として定められるが、これは結果として得られるシミュレーションが適度に興味を引くものであるかぎり、θｊ又はθ［Ｎ２］に基づいてどのように計算してもよい。例えば、角度θｋはθｋ＝θｊ＋α×θ［Ｎ２］に代えて、θｋ＝θ［Ｎ２］＋β×θｊ（０≦β＜１）として定められてもよい。架空のゴルフボールの動きは必ずしも厳密に物理法則に従うものでなくてよい。
【０１６０】
［第２の実施の形態］
第１の実施の形態では、ＣＩＳ１４６は処理サイクルの各々について２つの画像をキャプチャする。露光データと暗データである。その後ＣＩＳ１４６の出力は１ビットのシリアルデータにダウンサンプリングされる。露光データと暗データとのダウンサンプリングされた画像間の差分を計算することで、スイング検出器４４は反射ストリップ１２４の画像の位置と角度とを検出できる。
【０１６１】
この構成により、スイング検出器４４の画像処理が簡潔になり、比較的低性能のＣＰＵ又はＭＣＵを用いることができる。
【０１６２】
しかし、変動のある強いＩＲ光源が存在するような環境では、第１の実施の形態に従ったスイング検出器４４の動作には誤差が生じうる。この実施の形態は、第１の実施の形態の改良である。
【０１６３】
図２６を参照して、このような環境で引起される問題についてはじめに説明する。クロック信号６６２がＣＩＳ１４６のサンプリングタイミングを規定し、ＣＩＳ１４６に近いＩＲ光源がＩＲ光を射出し、その強度が波形６６０で示すように変動すると仮定する。ＣＩＳ１４６がそれぞれ時間ｔ１とｔ２で露光データと暗データとをキャプチャすると仮定する。ここで、ＩＲ光源からのＩＲ光の強度はそれぞれ点６７０及び６７２で示される。
【０１６４】
図２７（Ｂ）を参照して、露光データ７００は、ダウンサンプリングされると、ＩＲ光源の画像７０４と反射ストリップ１２４の画像７０８とを含むことになる。ダウンサンプリングされた暗データは、ＩＲ光源の画像７０６をも含むであろう。
【０１６５】
図２７（Ａ）は図２７（Ｂ）に示された線６８０上の画素のＣＩＳ出力の強度波形６８２の例を示す図である。図２７（Ａ）を参照して、波形６８２はＩＲ光源によって引起される２つのピーク６９０及び６９２を有する。これらのピークは望ましくないものであって、露光データから暗データを減算することにより除去すべきものである。
【０１６６】
しかし、ＩＲ光源の強度が変動するため、問題が生じる。露光データ７００はＩＲ光の強度が高いとき（図２６の時刻ｔ１）にキャプチャされているが、一方暗データ７０２は強度が低いとき（図２６の時刻ｔ２）にキャプチャされている。従って、ピーク６９０の高さはピーク６９２の高さより高くなり、従って、しきい値レベル６９４でダウンサンプリングされると、画像７０４は画像７０６より大きくなってしまう。このような状況では、暗データ７０２を露光データ７００から減算すると、結果として得られる画像は図２７（Ｃ）に示すようになる。
【０１６７】
第１の実施の形態では、画素の減算は以下のテーブル１に示す規則に従って行われている。テーブル１において、「１」は明画素を示し、「０」は暗画素を示す。各欄は、露光データ画素値から暗データ画素値を減算した結果を示す。
【０１６８】
【表１】
2008525051.tif 000008
図２７（Ｃ）を参照して、結果として得られる画像７１０は、反射ストリップ１２４の画像７０８の他に、画像７０４と７０６との差を反映した、残った画像７１４を含む。プログラムは、この画像７１４を誤って反射ストリップ１２４のものと解釈するおそれがある。もしこのような誤りが起こると、スイングコントローラ４２のコースを適切に検出できず、シミュレーションがだめになってしまうだろう。この実施の形態はこのような問題に対処するために、露光データの電圧レベルを所定の量だけ低下させて、露光データ中の変動するＩＲ光源の画像が暗データのそれより大きくならないようにする。
【０１６９】
図２８はこの発明の第２の実施の形態に従ったスイング検出器７２０を示すブロック図である。図２８を参照して、スイング検出器７２０は第１の実施の形態のスイング検出器４４と以下の点で異なる。すなわち、スイング検出器７２０のＭＣＵ１４８は図８に示すＩＲ−ＣＴＬ信号を出力し、さらに、スイング検出器７２０は、ＣＩＳ１４６からの出力ＶＯＵＴＳ、／ＳＴＲ及びＦＳ信号と、ＭＣＵ１４８からのＩＲ−ＣＴＬ信号とを受けるように接続され、ＩＲ−ＣＴＬ信号がハイレベルである間はダウンサンプリングコンパレータ１５０に与えられる出力ＶＯＵＴＳの電圧レベルがローになり、ＩＲ−ＣＴＬ信号がローレベルである間は通常レベルに戻るように、ＶＯＵＴＳの電圧レベルを調整する、電位分割調整器７３０を含む。
【０１７０】
図２９を参照して、この実施の形態の電位分割調整器７３０は２個のＰＮＰトランジスタＴＲ１及びＴＲ３と、ＮＰＮトランジスタＴＲ２と、４個の抵抗器Ｒ１（１００ｋΩ）、Ｒ２（１００ｋΩ）、Ｒ３（１００ｋΩ）及びＲ４（１８ｋΩ）と、キャパシタＣ１と、を含む。
【０１７１】
トランジスタＴＲ１はベースが抵抗器Ｒ１を介してＦＳ信号を受けるように接続され、コレクタがＩＲ−ＣＴＬを受けるように接続され、エミッタが抵抗器Ｒ２の一方端に接続される。トランジスタＴＲ２はベースが抵抗器Ｒ２の他方端に接続され、コレクタが抵抗器Ｒ３の一方端に接続され、エミッタが接地される。抵抗器Ｒ３の他方端は電源Ｖｃｃ（３．６Ｖ）に接続される。トランジスタＴＲ１のエミッタと接地との間に、キャパシタＣ１が接続される。
【０１７２】
トランジスタＴＲ３はベースがトランジスタＴＲ２のコレクタに接続され、コレクタが接地され、エミッタが抵抗器Ｒ４の一方端に接続される。抵抗器Ｒ４の他方端は線７３２に接続される。
【０１７３】
２個の抵抗器Ｒ６（１ｋΩ）とＲ５（８．２ｋΩ）とが、それぞれ一方端で線７３２に接続されている。抵抗器Ｒ６の他方端はＶＯＵＴＳを受けるように接続される。抵抗器Ｒ５の他方端は接地されている。線７３２はさらに、ダウンサンプリングコンパレータ１５０の入力に接続される（図２８）。
【０１７４】
図３０は、図２９に示した、ＩＲ−ＣＴＬとＦＳとの電位レベルの組合せ、対応するトランジスタＴＲ１、ＴＲ２、ＴＲ３の状態、電位ＶＡ、ＶＢ、ＶＣ、及び抵抗器Ｒ４とＲ５との合成抵抗ＲＣを説明する図である。ＶＡはトランジスタＴＲ１のエミッタと抵抗器Ｒ２との接続部での電位を示す。ＶＢはトランジスタＴＲ２のコレクタと抵抗器Ｒ３との接続部での電位を示す。ＶＣはＴＲ３のエミッタと抵抗器Ｒ４との接続部での電位を示す。
【０１７５】
図３０から明らかなように、ＩＲ−ＣＴＬがハイレベルであるとき、トランジスタＴＲ３はコレクタ電流をオンに切替える。ＶＯＵＴＳからの電流は抵抗器Ｒ４及びＲ５を介して接地に流れ、この結果電位ＶＤ（図２９）はＦＳのレベルに関わりなく、比較的低いレベルになる。ＩＲ−ＣＴＬがローレベルであるとき、トランジスタＴＲ３はコレクタ電流をオフに切替え、これによって抵抗器Ｒ４とトランジスタＴ３との間の接続ノードをハイインピーダンス状態にする。この状況では、ＶＯＵＴＳからの電流は抵抗器Ｒ５のみを通って流れるので、電位レベルＶＤは比較的高くなる。この電位ＶＤの変化を図３１に示す。図３１において、「ＲＣ」は抵抗器Ｒ４及びＲ５の合成抵抗を示し、これは抵抗器Ｒ６とともに、電位分割器として作用する。
【０１７６】
このため、以下のような結果となる。図３２（Ａ）を参照して、ＣＩＳ１４６の出力ＶＯＵＴＳの波形７５２の前半は、図２７で示した波形６８２より低くなる。後半は波形６８２と同じレベルとなる。このため、ＩＲ光源によって引起されるピーク７６０は、図２７で示すピーク６９０より低くなり、一方ピーク６９２の高さは変わらない。
【０１７７】
この結果、図３２（Ｂ）を参照して、信号レベルを同じしきい値６９４と比較すると、ピーク７６０のために露光データ７４０中に形成される画像７４４は図２７に示した画像７０４より小さくなり、一方暗データ７４２中に形成される画像７４６はその大きさが同じままである。抵抗器Ｒ４、Ｒ５及びＲ６の抵抗を適切に選択すれば、画像７４６は常に画像７４４より大きくなる。画像７４６を画像７４４から減算すると、テーブル１に示す減算規則により、図３２（Ｃ）で差分画像７７０として示すように、何も残らない。従って、変動するＩＲ光源６９４によって引起される問題は解消される。
【０１７８】
これに代えて、ＶＯＵＴＳの電位レベルに対するしきい値６９４を、ＩＲ−ＣＴＬサイクルの前半では上昇させ、後半では元通り下げるようにしてもよい。これを図３３の波形６８２と可変しきい値７８０で示す。図３３を参照して、しきい値７８０はＩＲ−ＣＴＬサイクルの前半では引上げられ、後半ではその通常レベルに下げられる。波形６８２としきい値７８０との比較は、本質的には図３２（Ａ）に示した波形７５２と固定しきい値６９４とのそれと同じである。この結果、ピーク６９０によって形成される画像７８２はピーク６９２によって形成された画像７０６より小さくなり、これによって、変動するＩＲ光源によって引起される問題は解消される。
【０１７９】
上述の第２の実施の形態は、ハードウェア回路（電位分割調整器７３０）によってＶＯＵＴＳの電位の調整を実現している。しかし、このような調整は、ＭＣＵ等のプロセッサと少量のハードウェアで実現することもできる。
【０１８０】
図３４は電位分割調整器の別の例を示す図である。図２９及び図３４において、同様の要素は同じ参照符号で示す。
【０１８１】
図３４を参照して、この電位分割調整器７９０は、直列に接続された抵抗器Ｒ４とダイオードＤ１とを含む。ダイオードＤ１のアノードは抵抗器Ｒ４の一方端に接続される。抵抗器Ｒ４の他方端は線７３２に接続される。ダイオードＤ１のカソードは、線７３２の電位を調整するためのＭＣＵ７９２の出力端子７９４に接続される。
【０１８２】
抵抗器Ｒ６の一方端はＣＩＳ１４６の出力（ＶＯＵＴＳ）を受けるように接続され、他方端は線７３２に接続される。抵抗器Ｒ５は線７３２と接地との間に接続される。
【０１８３】
ＩＲ−ＣＴＬがハイレベルであるとき、ＭＣＵ７９２はダイオードＤ１が接続されているその出力端子７９４にローレベルの信号を出力する。ダイオードＤ１は順方向バイアスされており、導通する。電流は抵抗器Ｒ４及びダイオードＤ１を通って流れ、この結果抵抗器Ｒ４とＲ５との合成抵抗は以下の値より小さくなり、従って線７３２の電位を下げる。
【０１８４】
【数６】
2008525051.tif 000009
ＩＲ−ＣＴＬがローレベルのとき、ＭＣＵ７９２はダイオードＤ１に接続されたその出力７９４の電位を上昇させる。ダイオードＤ１は逆方向バイアスされ、導通しなくなる。抵抗器Ｒ４及びダイオードＤ１を流れる電流が止まる。この結果、抵抗器Ｒ４及びＲ５の合成抵抗は大きくなり（Ｒ５）、線７３２の電位は通常レベルまで上がる。
【０１８５】
電位分割調整器の別の例を図３５に示す。図２９、図３４及び図３５において、同様の要素は同じ参照符号で示す。図３５を参照して、この例の電位分割調整器８００は、抵抗器Ｒ４１及びＲ４２と、ダイオードＤ１１及びＤ１２と、を含む。ダイオードＤ１１及びＤ１２のアノードは抵抗器Ｒ４１及びＲ４２のそれぞれの一方端に接続されている。抵抗器Ｒ４１及びＲ４２の他方端は線７３２に接続されている。ダイオードＤ１１及びＤ１２のカソードはそれぞれＭＣＵ８０２の出力端子８０４及び８０６に接続され、抵抗器Ｒ４１、Ｒ４２及びＲ５の合成抵抗を制御する。この例では、抵抗器Ｒ４１とＲ４２とは相互に異なるものである。
【０１８６】
この構成では、ＭＣＵ８０２は線７３２の電位を４つのレベルのいずれにも調整できる。ＭＣＵ８０２がその出力端子８０４及び８０６でハイレベルの信号を出力するとき、抵抗器Ｒ４１、Ｒ４２及びＲ５の合成抵抗は最も高くなり、線７３２の電位も最高となる。ＭＣＵ８０２がその出力端子８０４及び８０６でローレベルの信号を出力するとき、抵抗器Ｒ４１、Ｒ４２及びＲ５の合成抵抗は最も低くなり、線７３２の電位も最低となる。ＭＣＵ８０２がその出力端子８０４及び８０６の一方でハイレベルの信号を出力し、他方でローレベルの信号を出力すると、線７３２の電位は、抵抗器４１、Ｒ４２及びＲ５の抵抗値に応じて、最高レベルと最低レベルとの間の２つのレベルのうちいずれかとなる。
【０１８７】
従って、電位分割調整器８００はフィールドプログラマブルとなる。ＣＩＳ１４６の出力ＶＯＵＴＳの平均レベルに依存して、電位分割調整器８００は誤りをうまく解消するために導通すべきダイオードを選択できる。
【０１８８】
任意の数の抵抗器及びダイオードを用いてよいことは、当業者には容易に理解されるであろう。
【０１８９】
図２８に示すＭＣＵ１４８に代えてＭＣＵ７９２又は８０２が用いられ、上述のＭＣＵ１４８の機能を有することに注目されたい。
【０１９０】
この発明をコンピュータゴルフシミュレーションに関する実施の形態を用いて説明したが、発明はこれに限定されるものではない。この発明は、どのような位置検出器にも適用可能である。さらに、反射ストリップを使用する必要はない。対象物が光を反射する限り、この発明はいかなる種類の位置検出器にも適用できる。
【０１９１】
反射物体はいかなる形状であってもよい。好ましくは、反射体は対称形である。今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味および範囲内でのすべての変更を含む。
【産業上の利用可能性】
【０１９２】
この発明はシミュレーション機、電子ゲーム、及びリモートセンサの分野に適用可能である。
【図面の簡単な説明】
【０１９３】
【図１】この発明の第１の実施の形態に従ったゴルフシミュレーションシステム３０の全体構成を示す図である。
【図２】プロセッサとゴルフシミュレーションプログラムを記憶したメモリとを含むシステムカートリッジ、及びＴＶ接続能力とＩＲ通信能力とを有するアダプタ４６を示す図である。
【図３】実施の形態に従ったクラブヘッドを検出するためのスイング検出器４４の斜視図である。
【図４】図３に示すスイング検出器４４と共に用いられるゴルフシミュレーションのためのコントローラ４２を示す図である。
【図５】第１の実施の形態に従ったスイング検出器４４の機能的ブロック図である。
【図６】図５に示すスイング検出器４４のＣＩＳ１４６の画像面と、図４に示すコントローラ４２の反射ストリップ１２４の画像とを概略的に示す図である。
【図７】図３に示すスイング検出器４４内のＦＳ、／ＳＴＲ及びＶＯＵＴＳ信号のタイミング設定を示す波形図である。
【図８】図３に示すスイング検出器４４内の信号の波形図である。
【図９】ＣＩＳ１４６から図５に示すダウンサンプリングコンパレータ１５０に出力された画像信号と、ダウンサンプリングコンパレータ１５０によってダウンサンプリングされた画像信号との波形図である。
【図１０】露光データから暗データを減算することにより、どのようにして反射体の画像を抽出するかを概略的に示す図である。
【図１１】スイング検出器４４のＭＣＵ１４８で実行されるゴルフクラブ検出プログラムの全体の制御構造を示す図である。
【図１２】スイング検出器４４のＭＣＵ１４８で実行されるゴルフクラブ検出プログラムの全体の制御構造を示す図である。
【図１３】スイング検出器４４のＭＣＵ１４８で実行されるゴルフクラブ検出プログラムの全体の制御構造を示す図である。
【図１４】スイング検出器４４のＭＣＵ１４８で実行されるゴルフクラブ検出プログラムの全体の制御構造を示す図である。
【図１５】システムカートリッジ７６に記憶されたゴルフシミュレーションプログラムの状態遷移図である。
【図１６】ゴルフシミュレーションプログラムのメインルーチンを示す図である。
【図１７】ゴルフシミュレーションプログラムのシミュレーションモード選択処理の制御構造を示す図である。
【図１８】ゴルフシミュレーションプログラムのスイング検出処理の制御構造を示す図である。
【図１９】反射ストリップ１２４の中心の移動の例を示す図である。
【図２０】スイング検出器４４で検出されうるクラブフェイスの角度を示す図である。
【図２１】予め定められた基準方向５４２に対するゴルフクラブの移動の検出された方向５４４を示す図である。
【図２２】ゴルフクラブで打たれたゴルフボールの方向を判定する従来の方法を示す図である。
【図２３】第１の実施の形態に従ってゴルフボールの方向を判定する新規な方法を示す図である。
【図２４】第１の実施の形態に従って検出されたクラブフェイスの角度θ２を示す図である。
【図２５】この発明の実施の形態においてスクリーン中のゴルフボールの位置をどのようにして判定するかを示す図である。
【図２６】ＩＲ光源の波形と、ＣＩＳ１４６のサンプリングタイミングを規定するクロック信号の波形とを示す図である。
【図２７】ＩＲ光源からの光がどのようにＣＩＳ１４６における反射ストリップ１２４の検出に問題を生じさせるかを示す図である。
【図２８】第２の実施の形態に従ったスイング検出器７２０の機能的ブロック図である。
【図２９】スイング検出器７２０内の電位分割調整器７３０の回路図である。
【図３０】電位分割調整器７３０の動作を示す表である。
【図３１】スイング検出器７２０内の信号の波形図である。
【図３２】第２の実施の形態のスイング検出器７２０において、ＩＲ光源からの光によって引起される問題にどのように対処するかを示す図である。
【図３３】別の実施の形態において、ＩＲ光源からの光によって引起される問題にどのように対処するかを示す図である。
【図３４】さらに別の実施の形態において、ＩＲ光源からの光によって引起される問題に対処するための構成を示す図である。
【図３５】問題に対処するためのさらに別の構成を示す図である。
【図１】
2008525051.tif 000012
【図２】
2008525051.tif 000013
【図３】
2008525051.tif 000014
【図４】
2008525051.tif 000015
【図５】
2008525051.tif 000016
【図６】
2008525051.tif 000017
【図７】
2008525051.tif 000018
【図８】
2008525051.tif 000019
【図９】
2008525051.tif 000020
【図１０】
2008525051.tif 000021
【図１１】
2008525051.tif 000022
【図１２】
2008525051.tif 000023
【図１３】
2008525051.tif 000024
【図１４】
2008525051.tif 000025
【図１５】
2008525051.tif 000026
【図１６】
2008525051.tif 000027
【図１７】
2008525051.tif 000028
【図１８】
2008525051.tif 000029
【図１９】
2008525051.tif 000030
【図２０】
2008525051.tif 000031
【図２１】
2008525051.tif 000032
【図２２】
2008525051.tif 000033
【図２３】
2008525051.tif 000034
【図２４】
2008525051.tif 000035
【図２５】
2008525051.tif 000036
【図２６】
2008525051.tif 000037
【図２７】
2008525051.tif 000038
【図２８】
2008525051.tif 000039
【図２９】
2008525051.tif 000040
【図３０】
2008525051.tif 000041
【図３１】
2008525051.tif 000042
【図３２】
2008525051.tif 000043
【図３３】
2008525051.tif 000044
【図３４】
2008525051.tif 000045
【図３５】
2008525051.tif 000046
【国際調査報告】
2008525051.tif 000047
2008525051.tif 000048