(57)【特許請求の範囲】
【請求項１】
ユーザによる押圧の強さを検知するセンサ部、
現在が、前記検知された押圧の強さが所定の第１閾値以上である期間が所定の第１閾時間連続して以降、当該押圧の強さが所定の第２閾値以下である期間が所定の第２閾時間連続するまでの出力期間であるか否かを判断する判断部、
前記判断部により当該出力期間が開始したと判定されると、当該出力期間の開始時点に先行する所定の第３閾時間の期間に検知された押圧の強さの平均を基準値として取得する取得部、
前記判断部により当該出力期間であると判定されている間、前記検知された押圧の強さから、前記取得された基準値を減算した結果を、指示値として出力する出力部
を備えることを特徴とする入力装置。
【請求項２】
請求項１に記載の入力装置であって、
前記センサ部は、複数の圧力検知素子により、
（ａ）当該出力期間でない間は、当該複数の圧力検知素子により検知された圧力の総和を、
（ｂ）当該出力期間である間は、当該複数の圧力検知素子のうち、当該出力期間に先行する当該所定の第１閾時間の間に圧力を検知した圧力検知素子により検知された圧力の総和を、
当該押圧の強さとする
ことを特徴とする入力装置。
【請求項３】
請求項１または２に記載の入力装置と、
前記入力装置により出力される指示値により、移動体を制御する制御部と、
を備える制御装置であって、
当該入力装置のセンサ部は、当該移動体に表面に貼付され、
当該制御部は、当該指示値が正である場合、当該センサ部を押す方向に当該移動体を移動するように制御し、当該指示値が負である場合、当該センサ部を引く方向に当該移動体を移動するように制御する
ことを特徴とする制御装置。
【請求項４】
ユーザによる押圧の強さおよび位置を検知するセンサ部、
現在が、前記検知された押圧の強さが所定の第１閾値以上である期間が所定の第１閾時間連続して以降、当該押圧の強さが所定の第２閾値以下である期間が所定の第２閾時間連続するまでの出力期間であるか否かを判断する判断部、
前記判断部により当該出力期間が開始したと判定されると、当該出力期間の開始時点に先行する所定の第３閾時間の期間に検知された押圧の強さおよび位置の平均を基準値および基準位置として取得する取得部、
前記判断部により当該出力期間であると判定されている間、前記検知された押圧の強さから、前記取得された基準値を減算した結果を、指示値とし、前記取得された基準位置に対する前記検知された位置の相対的な位置を、指示位置として、出力する出力部
を備えることを特徴とする入力装置。
【請求項５】
請求項４に記載の入力装置であって、
前記センサ部は、複数の圧力検知素子により、
（ａ）当該出力期間でない間は、当該複数の圧力検知素子により検知された圧力の総和および検知された圧力を重みとする当該圧力検知素子の位置の重み付き平均を、
（ｂ）当該出力期間である間は、当該複数の圧力検知素子のうち、当該出力期間に先行する当該所定の第１閾時間の間に圧力を検知しなかった圧力検知素子により検知された圧力の総和および検知された圧力を重みとする当該圧力検知素子の位置の重み付き平均を、
当該押圧の強さおよび位置とする
ことを特徴とする入力装置。
【請求項６】
請求項４または５に記載の入力装置と、
前記入力装置により出力される指示値により、移動体を制御する制御部と、
を備える制御装置であって、
当該入力装置のセンサ部は、当該移動体に表面に貼付され、
当該制御部は、当該指示位置の方向に当該移動体を移動するように制御する
ことを特徴とする制御装置。
【請求項７】
センサ部、取得部、判断部、出力部を有する入力装置が実行する入力方法であって、
前記センサ部が、ユーザによる押圧の強さを検知するセンサ工程、
現在が、前記検知された押圧の強さが所定の第１閾値以上である期間が所定の第１閾時間連続して以降、当該押圧の強さが所定の第２閾値以下である期間が所定の第２閾時間連続するまでの出力期間であるか否かを、前記判断部が判断する判断工程、
前記判断工程にて当該出力期間が開始したと判定されると、当該出力期間の開始時点に先行する所定の第３閾時間の期間に検知された押圧の強さの平均を基準値として取得する取得工程、
前記判断工程にて当該出力期間であると判定されている間、前記出力部が、前記検知された押圧の強さから、前記取得された基準値を減算した結果を、指示値として出力する出力工程
を備えることを特徴とする入力方法。
【請求項８】
請求項７に記載の入力方法であって、
前記センサ工程は、複数の圧力検知素子により、
（ａ）当該出力期間でない間は、当該複数の圧力検知素子により検知された圧力の総和を、
（ｂ）当該出力期間である間は、当該複数の圧力検知素子のうち、当該出力期間に先行する当該所定の第１閾時間の間に圧力を検知した圧力検知素子により検知された圧力の総和を、
当該押圧の強さとする
ことを特徴とする入力方法。
【請求項９】
請求項７または８に記載の入力方法を実行する入力装置、および、制御部が実行する制御方法であって、
前記入力装置が前記出力工程にて出力する指示値を、前記制御部に入力する入力工程、
前記制御部が、前記入力工程にて入力された指示値により、移動体を制御する制御工程
を備え、
当該入力装置のセンサ部は、当該移動体に表面に貼付され、
当該制御工程では、当該指示値が正である場合、当該センサ部を押す方向に当該移動体を移動するように制御し、当該指示値が負である場合、当該センサ部を引く方向に当該移動体を移動するように制御する
ことを特徴とする制御方法。
【請求項１０】
センサ部、取得部、判断部、出力部を有する入力装置が実行する入力方法であって、
前記センサ部が、ユーザによる押圧の強さおよび位置を検知するセンサ工程、
現在が、前記検知された押圧の強さが所定の第１閾値以上である期間が所定の第１閾時間連続して以降、当該押圧の強さが所定の第２閾値以下である期間が所定の第２閾時間連続するまでの出力期間であるか否かを、前記判断部が、判断する判断工程、
前記判断工程にて、当該出力期間が開始したと判定されると、当該出力期間の開始時点に先行する所定の第３閾時間の期間に検知された押圧の強さおよび位置の平均を基準値および基準位置として取得する取得工程、
前記判断工程にて当該出力期間であると判定されている間、出力部が、前記検知された押圧の強さから、前記取得された基準値を減算した結果を、指示値とし、前記取得された基準位置に対する前記検知された位置の相対的な位置を、指示位置として、出力する出力工程
を備えることを特徴とする入力方法。
【請求項１１】
請求項１０に記載の入力方法であって、
前記センサ工程では、複数の圧力検知素子により、
（ａ）当該出力期間でない間は、当該複数の圧力検知素子により検知された圧力の総和および検知された圧力を重みとする当該圧力検知素子の位置の重み付き平均を、
（ｂ）当該出力期間である間は、当該複数の圧力検知素子のうち、当該出力期間に先行する当該所定の第１閾時間の間に圧力を検知しなかった圧力検知素子により検知された圧力の総和および検知された圧力を重みとする当該圧力検知素子の位置の重み付き平均を、
当該押圧の強さおよび位置とする
ことを特徴とする入力方法。
【請求項１２】
請求項１０または１１に記載の入力方法を実行する入力装置、および、制御部が実行する制御方法であって、
前記入力装置が前記出力工程にて出力する指示値を、前記制御部に入力する入力工程、
前記制御部が、前記入力工程にて入力された指示値により、移動体を制御する制御工程
を備え、
当該入力装置のセンサ部は、当該移動体に表面に貼付され、
当該制御工程では、当該指示位置の方向に当該移動体を移動するように制御する
ことを特徴とする制御方法。
【請求項１３】
ユーザによる押圧の強さもしくは押圧の強さおよび位置を検知するセンサ部に接続されたコンピュータを、請求項１、２、４、５のいずれか１項に記載の入力装置として動作させるプログラムであって、
前記コンピュータを、前記判断部、前記取得部および前記出力部として動作させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザが押圧操作によって正負の値や方向を直観的に入力できるようにするのに好適な入力装置、入力方法、ならびに、当該入力装置をコンピュータにより制御するためのプログラム、および、当該入力装置を用いて移動体の移動を制御する制御装置、制御方法、ならびに、これらをコンピュータにより実現するためのプログラムに関する。
【背景技術】
【０００２】
従来から、タッチパネルなどを用いた接触検出型センサによって、位置を選択したり、各種の指示を行う入力技術が提案されている。このような入力技術は、たとえば以下の文献に提案されている。
【特許文献１】特開平１１−２７２４２１号公報
【０００３】
ここで、[特許文献１]では、従来のタッチパネルディスプレイでは、マウスと同様のクリックやダブルクリック機能を持たせる際にタッチ操作回数やボタン数を抑制するため、以下のような技術が開示されている。すなわち、カーソル位置を指定するタッチパネル部と、イベント発行用のボタン部を設けたタッチパネルディスプレイに、信号処理回路を設け、座標判定機能は、タッチパネル部に対するペンまたは指のタッチ操作をディスプレイ装置のカーソルの座標の変化として判定する。タッチ操作判定機能は、ボタン部の操作に対するタッチ操作を判定するもので、ボタン部の操作に対して定義ファイルに設定されたタッチの時間間隔に応じてクリックやダブルクリック判定機能を持たせる。定義ファイルは、時間の設定の他に、タッチ位置の許容誤差範囲もユーザが任意に設定できる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、接触検出型センサを用いて各種のロボットに指示を出す場合等には、ユーザがより一層直観的に、正負の値や方向の指示ができるようにする入力技術が求められている。
【０００５】
本発明は、以上のような課題を解決するためのもので、ユーザが押圧操作によって正負の値や方向を直観的に入力できるようにするのに好適な入力装置、入力方法、ならびに、当該入力装置をコンピュータにより制御するためのプログラム、および、当該入力装置を用いて移動体の移動を制御する制御装置、制御方法、ならびに、これらをコンピュータにより実現するためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の第１の観点に係る入力装置は、センサ部、取得部、判断部、出力部を備え、以下のように構成する。
【０００７】
すなわち、センサ部は、ユーザによる押圧の強さを検知する。
【０００８】
さらに、判断部は、現在が、検知された押圧の強さが所定の第１閾値以上である期間が所定の第１閾時間連続して以降、当該押圧の強さが所定の第２閾値以下である期間が所定の第２閾時間連続するまでの出力期間であるか否かを判断する。
【０００９】
一方、取得部は、判断部により当該出力期間が開始したと判定されると、当該出力期間の開始時点に先行する所定の第３閾時間の期間に検知された押圧の強さの平均を基準値として取得する。
【００１０】
そして、出力部は、判断部により当該出力期間であると判定されている間、検知された押圧の強さから、取得された基準値を減算した結果を、指示値として出力する。
【００１１】
また、本発明の入力装置において、センサ部は、複数の圧力検知素子により、
（ａ）当該出力期間でない間は、当該複数の圧力検知素子により検知された圧力の総和を、
（ｂ）当該出力期間である間は、当該複数の圧力検知素子のうち、当該出力期間に先行する当該所定の第１閾時間の間に圧力を検知した圧力検知素子により検知された圧力の総和を、
当該押圧の強さとするように構成することができる。
【００１２】
本発明のその他の観点に係る入力装置は、センサ部、取得部、判断部、出力部を備え、以下のように構成する。
【００１３】
すなわち、センサ部は、ユーザによる押圧の強さおよび位置を検知する。
【００１４】
さらに、判断部は、現在が、検知された押圧の強さが所定の第１閾値以上である期間が所定の第１閾時間連続して以降、当該押圧の強さが所定の第２閾値以下である期間が所定の第２閾時間連続するまでの出力期間であるか否かを判断する。
【００１５】
一方、取得部は、前記判断部により当該出力期間が開始したと判定されると、当該出力期間の開始時点に先行する所定の第３閾時間の期間に検知された押圧の強さおよび位置の平均を基準値および基準位置として取得する。
【００１６】
そして、出力部は、判断部により当該出力期間であると判定されている間、検知された押圧の強さおよび位置から、取得された基準値を減算した結果を、指示値とし、取得された基準位置に対する検知された位置の相対的な位置を、指示位置として、出力する。
【００１７】
また、本発明の入力装置において、センサ部は、複数の圧力検知素子により、
（ａ）当該出力期間でない間は、当該複数の圧力検知素子により検知された圧力の総和および検知された圧力を重みとする当該圧力検知素子の位置の重み付き平均を、
（ｂ）当該出力期間である間は、当該複数の圧力検知素子のうち、当該出力期間に先行する当該所定の第１閾時間の間に圧力を検知しなかった圧力検知素子により検知された圧力の総和および検知された圧力を重みとする当該圧力検知素子の位置の重み付き平均を、
当該押圧の強さおよび位置とするように構成することができる。
【００１８】
本発明のその他の観点に係る入力方法は、センサ部、取得部、判断部、出力部を有する入力装置が実行し、センサ工程、取得工程、判断工程、出力工程を備え、以下のように構成する。
【００１９】
すなわち、センサ工程では、センサ部が、ユーザによる押圧の強さを検知する。
【００２０】
さらに、判断工程では、現在が、検知された押圧の強さが所定の第１閾値以上である期間が所定の第１閾時間連続して以降、当該押圧の強さが所定の第２閾値以下である期間が所定の第２閾時間連続するまでの出力期間であるか否かを、判断部が判断する。
【００２１】
一方、取得工程では、判断工程にて当該出力期間が開始したと判定されると、当該出力期間の開始時点に先行する所定の第３閾時間の期間に検知された押圧の強さの平均を基準値として取得する。
【００２２】
そして、出力工程では、判断工程にて当該出力期間であると判定されている間、出力部が、検知された押圧の強さから、取得された基準値を減算した結果を、指示値として出力する。
【００２３】
また、本発明の入力方法において、センサ工程は、複数の圧力検知素子により、
（ａ）当該出力期間でない間は、当該複数の圧力検知素子により検知された圧力の総和を、
（ｂ）当該出力期間である間は、当該複数の圧力検知素子のうち、当該出力期間に先行する当該所定の第１閾時間の間に圧力を検知した圧力検知素子により検知された圧力の総和を、
当該押圧の強さとするように構成することができる。
【００２４】
本発明のその他の観点に係る入力方法は、センサ部、取得部、判断部、出力部を有する入力装置が実行し、センサ工程、取得工程、判断工程、出力工程を備え、以下のように構成する。
【００２５】
すなわち、センサ工程では、センサ部が、ユーザによる押圧の強さおよび位置を検知する。
【００２６】
さらに、判断工程では、現在が、検知された押圧の強さが所定の第１閾値以上である期間が所定の第１閾時間連続して以降、当該押圧の強さが所定の第２閾値以下である期間が所定の第２閾時間連続するまでの出力期間であるか否かを、判断部が、判断する。
【００２７】
一方、取得工程では、判断工程にて当該出力期間が開始したと判定されると、当該出力期間の開始時点に先行する所定の第３閾時間の期間に検知された押圧の強さおよび位置の平均を基準値および基準位置として取得する。
【００２８】
そして、出力工程では、判断工程にて当該出力期間であると判定されている間、出力部が、検知された押圧の強さおよび位置から、取得された基準値を減算した結果を、指示値とし、取得された基準位置に対する検知された位置の相対的な位置を、指示位置として、出力する。
【００２９】
また、本発明の入力方法において、センサ工程では、複数の圧力検知素子により、
（ａ）当該出力期間でない間は、当該複数の圧力検知素子により検知された圧力の総和および検知された圧力を重みとする当該圧力検知素子の位置の重み付き平均を、
（ｂ）当該出力期間である間は、当該複数の圧力検知素子のうち、当該出力期間に先行する当該所定の第１閾時間の間に圧力を検知しなかった圧力検知素子により検知された圧力の総和および検知された圧力を重みとする当該圧力検知素子の位置の重み付き平均を、
当該押圧の強さおよび位置とするように構成することができる。
【００３０】
本発明のその他の観点に係る制御装置および制御方法は、本発明の入力装置および入力方法を利用して、各種のアームやロボットなどの移動体の移動を制御するように構成する。
【００３１】
すなわち、移動体の表面には入力装置のセンサ部が貼付され、制御装置が備える制御部は、当該入力装置が出力する指示値により、移動体を制御する。
【００３２】
ここで、指示値を参照する場合は、指示値が正であればセンサ部を押す方向へ移動体を移動し、負であればセンサ部を引く方向へ移動体を移動するように制御する。
【００３３】
このほか、指示位置を参照する場合は、当該指示位置の方向へ移動体を移動するように制御する。
【００３４】
本発明のその他の観点に係るプログラムは、ディジタル信号プロセッサ等のコンピュータに、上記の入力装置または制御装置を実現させ、もしくは、上記の入力方法または入力方法を実行させるように構成する。
【００３５】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【００３６】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータやディジタル信号プロセッサとは独立して配布・販売することができる。
【発明の効果】
【００３７】
本発明によれば、ユーザが押圧操作によって正負の値や方向を直観的に入力できるようにするのに好適な入力装置、入力方法、ならびに、当該入力装置をコンピュータにより制御するためのプログラム、および、当該入力装置を用いて移動体の移動を制御する制御装置、制御方法、ならびに、これらをコンピュータにより実現するためのプログラムを提供することができる。
【発明を実施するための最良の形態】
【００３８】
以下に本発明の実施形態を説明する。なお、以下に説明する実施形態は説明のためのものであり、本発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例１】
【００３９】
図１は、本発明の実施形態の一つに係る入力装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【００４０】
本実施形態に係る入力装置１０１は、センサ部１０２、判断部１０３、取得部１０４、出力部１０５を備える。
【００４１】
ここで、センサ部１０２は、圧力検知素子の集合体からなる圧力センサと、当該圧力センサが接続されるコンピュータが有するＲＡＭ（Random Access Memory）の組み合わせからなる。当該ＲＡＭには、当該圧力検知素子のそれぞれが検出した押圧の強さの最新の値が一定期間保持される。
【００４２】
従来技術においては、タッチパネルのどの場所が触れられているかの位置情報のみを利用することとしていたが、本発明においては、接触検出型センサとして圧力センサを用いることで、より多くの特徴量を得ようとするものである。
【００４３】
本実施形態では、圧力センサとして、垂直応力分布を検出する柔軟面形状触角センサを利用する。これは、縦８×横８＝６４個の感圧素子をピッチ18mmで弾性体中に埋め込んだもので、感圧素子が埋め込まれた場所そのものに印加された圧力を検知することができるほか、感圧素子同士の間の場所に印加された圧力も補間により検出することが可能である。圧力センサのサンプリング間隔ΔT = 2msであるが、ノイズを軽減するために、直近３回のサンプリング値の和（平均を用いても良い。）を当該サンプリング間隔でスキャンする。
【００４４】
感圧素子により検出される値は、印加された力の略比例し、1Nにつき測定値35が出力される。したがって、ある感圧素子の近傍を1N/(18mm×18mm)の圧力で押圧し続けると、当該感圧素子からは、2ms間隔で測定値105が押圧の強さとして出力されることになる。
【００４５】
上記のように、本発明では、圧力検知素子として６４個の感圧素子を利用する場合には、最近の一定期間の間に検出された押圧の強さの履歴を、ＲＡＭ等に保持する。このような構成とするためには、所定サイズのリングバッファを利用するのが典型的である。
【００４６】
本発明では、第１閾時間（Ton）、第２閾時間（Toff）、第３閾時間（Tav）という時間長の間に検出された値を利用するため、これらのうちの最大長の期間にスキャンされる値の個数を記憶できるだけのリングバッファ長さが必要となる。なお、本実施形態では、Ton = 200ms，Toff = 10ms，Tav = 20msの値を利用するので、リングバッファ長Lは、少なくともmax(200ms,10ms,20ms)/2ms = 100となる。
【００４７】
理解を容易にするため、各センサについて、以下のような表記法を用いる。すなわち、縦位置x、横位置y (0≦x<8，0≦<8)の位置の感圧素子において測定開始からスキャン回数t回目の時点に検出された値は、ＲＡＭ内に配列として実装されたリングバッファの要素v[x][y][t mod L]に記憶される。ここで、２項演算modは、以下のように定義される。
a mod L = a (0≦a<L)；
a mod L = (a-L) mod L (L≦a)；
a mod L = (a+L) mod L (a<0)
【００４８】
また、当該位置および時点を「位置（ｘ,ｙ）、時点ｔ」のように表記する。
【００４９】
また、本実施形態に係る判断部１０３、取得部１０４、出力部１０５は、当該センサ部１０２が接続されるコンピュータのＣＰＵ（Central Processing Unit）およびＲＡＭが共働して実現される。
【００５０】
図２は、本実施形態の入力装置を利用して機械装置を操縦する際に、機械装置の表面にセンサ部を取り付ける様子を示す説明図である。以下、本図を参照して説明する。
【００５１】
図２に示す例は、アーム２０１を制御するもので、アーム２０１を回転軸２０２の周りで回転させるためのアクチュエータ２０３が用意されており、センサ部１０２から得られた入力値が判断部１０３、取得部１０４、出力部１０５を実現するコンピュータ２０４を介して処理され、コンピュータ２０４がアクチュエータ２０３への指示値を出力する。
【００５２】
センサ部１０２は、アーム２０１が回転軸２０２の周り回転する際の移動の正面（背面）方向に配置されている。この場所は、ユーザから見ると「止まっているアーム２０１を回転させたい場合にアーム２０１を押す場所」と考えることができる。
【００５３】
図３は、本実施形態に係る入力装置を制御する入力処理の流れを示すフローチャートである。以下、本図を参照して説明する。
【００５４】
本処理が開始されると、コンピュータのＣＰＵは、ＲＡＭに用意されたリングバッファ用配列v[x][y][t]の要素をすべてクリアし（ステップＳ３０１）、現在時刻tを０にクリアするほか（ステップＳ３０２）、直近の押圧力を格納するリングバッファF[t]の全要素をクリアする（ステップＳ３０３）。リングバッファFの長さは、リングバッファv[x][y]と同じLである。
【００５５】
さらに、現在が出力期間であるか否かを表すフラグ変数gを０にクリアする（ステップＳ３０４）。ここで、「出力期間」内では、入力装置１０１は、ユーザの押圧指示に基づいた指示値を出力し、「出力期間」外では、入力装置１０１は、ユーザの押圧指示がされていない旨を出力する。このように、現在が、出力期間であるか否かを区別するのが、本発明の特徴の一つである。
【００５６】
ついで、ＣＰＵは、0≦x<8，0≦y<8のそれぞれについて、位置(x,y)の感圧素子の測定値を配列の要素v[x][y][t mod L]に格納する（ステップＳ３０５）。
【００５７】
さらに、ＣＰＵは、現在検知されている押圧の力を、以下のように計算して格納する（ステップＳ３０６）。
F[t mod L] ← Σx=07Σy=07 v[x][y][t mod L]
【００５８】
そして、時刻を格納する変数tを１だけ増やす（ステップＳ３０７）。ここで７は、x，yがとりうる最大値であるが、感圧素子の個数・配置によって適宜変更が可能である。
【００５９】
ステップＳ３０５〜３０７の処理は、この後一定の時間間隔ΔTで何回も繰り返して実行されるため、リングバッファFには、直近の押圧力の履歴が格納されることとなる。したがって、ＣＰＵの制御の下、ＲＡＭと共働して、感圧素子は、センサ部１０２として機能する。
【００６０】
次に、ＣＰＵは、g = 0であるか否かを調べる（ステップＳ３１１）。g = 0である場合（ステップＳ３１１；Ｙｅｓ）、押圧された力が第１閾値hon以上となる時間が第１閾時間（Ton）だけ継続したか否かを調べる（ステップＳ３１２）。具体的には、i = 1，2，…，Ton/ΔTのすべてについて、
F[(t-i) mod L]≧hon
が成立するか否かを調べる。なお、本実施形態ではhonとして値１００を採用している。
【００６１】
これが成立する場合（ステップＳ３１２；Ｙｅｓ）、出力期間が開始されたこととなるので、フラグ変数gに１を格納して（ステップＳ３１３）、ステップＳ３１４に進む。したがって、ＣＰＵは、ＲＡＭと共働して、判断部１０３として機能する。
【００６２】
一方、成立しない場合（ステップＳ３１２；Ｎｏ）、ＣＰＵは、ユーザの押圧指示がされていない旨を出力して（ステップＳ３３１）、次のスキャン時刻になるまで待機し（ステップＳ３３２）、ステップＳ３０５に戻る。本実施形態では、待機間隔はΔtとなるように構成するが、この待機の間は他の処理をコルーチン的に実行することができる。逆に、本繰り返し処理をタイマ割込等によって実装することも可能である。
【００６３】
さて、出力期間が開始されたことが検出されたら、ＣＰＵは、ＲＡＭに用意された基準値変数Sに出力期間開始時の押圧の力F[(t-1) mod L]を格納する（ステップＳ３１４）。したがって、ＣＰＵは、ＲＡＭと共働して取得部１０４として機能する。
【００６４】
本実施形態では、基準値SとしてF[(t-1) mod L]を採用するが、このほかの形態としては、以下のようなものが考えられる。
（１）i = 1，2，…，Tav/ΔTに対するF[(t-i) mod L]の平均。
（２）i = 1，2，…，Tav/ΔTに対するF[(t-i) mod L]を、iが小さいほど重みを大きくした重み付き平均。
【００６５】
いずれを採用するかは、用途に応じて適宜選択が可能である。
【００６６】
そして、最新の押圧の力F[(t-1) mod L]から基準値Sを減算した値Zを計算して（ステップＳ３１５）、ユーザの押圧操作による指示値として当該値Zを出力し（ステップＳ３１６）、ステップＳ３３２に進む。
【００６７】
このように、ＣＰＵは、ＲＡＭ等と共働して、出力部１０５として機能する。
【００６８】
さて、出力期間が開始された後に繰り返し実行を行うと、g = 0ではなくなっているから（ステップＳ３１１；Ｎｏ）、押圧された力が第２閾値hoff以下となる時間が第２閾時間（Toff）だけ継続したか否かを調べる（ステップＳ３２１）。具体的には、i = 1，2，…，Toff/ΔTのすべてについて、
F[(t-i) mod L]≦hoff
が成立するか否かを調べる。なお、本実施形態ではhoffとして値２０を採用している。
【００６９】
これが成立する場合（ステップＳ３２１；Ｙｅｓ）、出力期間が終了したこととなるので、フラグ変数gに０を格納して（ステップＳ３２２）、ステップＳ３３１に進む。これによって、出力部１０５は、ユーザによる押圧がされていない旨を出力することとなる。
【００７０】
このように、ＣＰＵは、ＲＡＭと共働して、出力期間が開始されてから終了されるまでの期間を判断するため、判断部１０３として機能する。
【００７１】
さて、これが成立しない場合（ステップＳ３２１；Ｎｏ）、現在は出力期間内であることになる。そこで、ステップＳ３１５に進む。すると、出力部１０５は、最新の押圧の力F[(t-1) mod L]から基準値Sを減算した値を出力することとなる。
【００７２】
本実施形態では、最新の押圧の力F[(t-1) mod L]と、ある時点での押圧の力に相当する基準値Sとの差を、指示値として出力する。したがって、ユーザが押す力を強めれば、出力される指示値は正となり、ユーザが押す力を弱めれば、出力される指示値は負となる。
【００７３】
一般にユーザが表面を撫でたり押したりする圧力センサでは、負圧が測定されることはない。ユーザの指や手が表面から離れてしまうからである。したがって、従来の手法では、負の値を指示値とすることはできなかった。
【００７４】
しかしながら、本実施形態では、ある時点での押圧の力の強さを基準とするので、負の値を入力することが可能である。
【００７５】
アーム２０１を所望の方向に回転させてから止める場合を例とすると、hon以上の力でセンサ部１０２に触れると、出力期間に入る。現在が出力期間であるか否かをアーム２０１に取り付けられたＬＥＤ等の動作ランプでユーザに知らせるのが典型的である。
【００７６】
出力期間に入ったら、ユーザは、力をさらに強めればアーム２０１は正方向（指が押す方向）に回転し、力を弱めれば逆方向（指が押す方向とは逆の方向）に回転する。
【００７７】
また、ユーザが指を離せば出力期間が終了するので、アーム２０１は動作を止める。
【００７８】
アーム２０１を回転させる（角）速度や（角）加速度は、出力される指示値に比例させることとしても良いし、指示値の正負に応じて既定値を設定することとしても良い。
【００７９】
本実施形態では、基準値Sは、あらかじめ定められた定数ではなく、ユーザの操作に応じて定められる。したがって、年齢や性別、体力によってユーザの力が異なる場合であっても、そのユーザに適した力で操作が可能となる。
【００８０】
なお、本実施形態では、最新の押圧の力F[(t-1) mod L]と基準値Sとの差を見るだけであるので、圧力センサのどの場所を押圧することとしても良いが、マスクを採用することもできる。
【００８１】
すなわち、入力期間が開始された時点（ステップＳ３１３）で、ＲＡＭに用意されたマスク配列m[x][y]に、v[x][y][(t-1) mod L]>0であれば１を、そうでなければ０を代入する。
【００８２】
そして、最新の押圧の力を計算する際（ステップＳ３０６）には、上記の計算式のかわりに、
F[t mod L] ← Σx=07Σy=07 m[x][y]・v[x][y][t mod L]
を採用する。
【００８３】
また、初期化時（ステップＳ３０１）や、入力期間が終了した時点で、マスク配列m[x][y]のそれぞれの要素には、値１を格納する。
【００８４】
このような処理は「off-mask」と呼ばれるもので、入力期間が開始された時点で圧力のかかっていなかった領域は無視するものである。これにより、圧力に反応する部位を限定して、予期せぬ接触を無視することができるようになる。
【００８５】
マスク配列に１および０を格納する際には、ある程度の余裕を設けることも可能である。たとえば、１を格納する場合として、i = -1，0，1； j = -1，0，1の９通りのいずれか少なくとも１つの組み合わせに対してv[x+i][y+i][(t-1) mod L]>0である場合に値１をm[x][y]に格納することとすれば、幅１の余裕を持たせることが可能である。この余裕幅の大きさは、適宜変更が可能である。
【００８６】
また、マスク配列に格納する値として１および０を利用するのではなく、この値を適宜調整しても良い。たとえば１および０.５を利用する、等とすれば、入力期間が開始された時点で圧力のかかっていなかった部分も考慮するが、その重みを低くすることができる。
【００８７】
なお、上記実施形態では、センサ部１０２を実現するために複数の感圧素子の出力する段階的な測定値を利用したが、この値をそのまま利用するのではなく、ある閾値以上なら１（触れている）、閾値未満なら０（触れていない）とするような、タッチパネル的な利用方法をすることも可能である。また、ある場所を触れているか否かだけが検出されるような接触センサを適用しても良い。
【００８８】
これらの場合には、上記実施形態において「押圧の力」とされているものは「触れている面積」に該当することとなり、基準値Sは、入力期間が開始される際に触れられていた面積に該当する。
【００８９】
ユーザが入力期間開始時よりもさらに力を込めて押すと、接触面積も広くなり、力を抜くと、接触面積は広くなるのが一般的である。したがって、オンとオフのみしか測定できないような測定精度の安価な感圧素子を利用したタッチパネル等、ユーザの指等が接触している面積が得られるような接触検出装置をセンサ部１０２として利用することにより、本発明を適用することが可能である。
【実施例２】
【００９０】
図４は、本実施形態の入力装置を利用して機械装置を操縦する際に、機械装置の表面にセンサ部を取り付ける他の実施形態の様子を示す説明図である。
【００９１】
本例に示す例では、床の上を前後左右に移動可能な自動車型のロボット４０１の上面に、入力装置１０１のセンサ部１０２が貼り付けられている。また、センサ部１０２に接続されるコンピュータや、タイヤ４０３を動作させるアクチュエータは、ロボット４０１の内部に格納されている。
【００９２】
上記実施形態では、ユーザがアーム２０１に貼り付けられたセンサ部１０２を押す力の大きさによって、正方向の回転か逆方向の回転かを指示した。
【００９３】
本実施形態では、ユーザは、以下のような操作形態をとる。
【００９４】
まず、ロボット４０１を移動させたいと考えたら、ユーザはセンサ部１０２をある程度の時間指で押圧する。すると、出力期間が開始され、動作ランプ４０２が点灯する。
【００９５】
次にユーザは、センサ部１０２の表面で、ロボット４０１を移動させたい方向に、指を移動させる。すると、それに応じて、ロボット４０１はタイヤ４０３を適宜回転させ、その方向に進む。
【００９６】
ユーザがセンサ部１０２の表面を撫でつつ、ロボット４０１を所望の位置に誘導した後は、指をセンサ部１０２から離す。すると、出力期間が終了し、動作ランプ４０２が消灯して、ロボット４０１は停止する。
【００９７】
本実施形態は、このように、ユーザが押圧する位置を考慮するものである。したがって、出力部１０５は、出力期間内では、上記実施形態における指示値Z（これは、F[(t-1) mod L] - Sに等しい。）にかえて、もしくは、当該指示値Zのほかに、現在ユーザが押圧している位置を出力するように構成する必要がある。
【００９８】
以下、上記入力処理において、追加すべき処理を説明する。
【００９９】
まず、ＲＡＭには、位置に相当するリングバッファp，qを記憶する領域を確保しておき、ステップＳ３０６において、押圧される力F[t mod L]を計算した後に、リングバッファp，qについても、以下のように計算する。
p[t mod L] ← Σx=07Σy=07 x・v[x][y][t mod L]/F[t mod L]；
q[t mod L] ← Σx=07Σy=07 y・v[x][y][t mod L]/F[t mod L]
【０１００】
すなわち、押圧の中心（重心）を求める平均計算をおこなうのである。
【０１０１】
そして、入力期間が開始された時点（ステップＳ３１４）で、基準位置(r,s)を
r ← p[(t-1) mod L]；
s ← q[(t-1) mod L]
のように設定する。なお、押圧する力の場合と同様に、
（１）i = 1，2，…，Tav/ΔTに対する(p[(t-i) mod L]，q[(t-i) mod L])の平均。
（２）i = 1，2，…，Tav/ΔTに対する(p[(t-i) mod L]，q[(t-i) mod L])を、iが小さいほど重みを大きくした重み付き平均。
を(r,s)として採用しても良い。
【０１０２】
さらに、出力部１０５は、入力期間でなければ、ユーザによる押圧操作がされていない旨を出力し、入力期間であれば、押圧操作に基づく指示値Zおよび／または相対的な位置(p[(t-1) mod L - r，q[(t-1) mod L] - s)を出力する。
【０１０３】
このように出力を行うことで、ユーザが最初に触れた位置からの相対的な方向を得ることができる。
【０１０４】
ロボット４０１が移動する速度・加速度（タイヤ４０３の角速度や角加速度）は、Zに比例させても良いし、出力される相対的な位置の変位に比例させても良いし、これらの量の積を利用したり、階段状に単調増加するように設定された変換関数を利用することとしても良い。また、出力される相対的位置に相当する方向に、一定の速度で移動することとしても良い。
【０１０５】
このほか、マスクm[x][y]を利用する場合には、
p ← Σx=07Σy=07 x・m[x][y]・v[x][y][t mod L]/F[t mod L]；
q ← Σx=07Σy=07 y・m[x][y]・v[x][y][t mod L]/F[t mod L]
とすれば良い。なお、本実施形態においては、指を移動させるのが典型的であるから、上記実施形態のようなオフマスクとは論理を反転させたオンマスクを利用するのが好適である。
【０１０６】
すなわち、入力期間が開始された時点（ステップＳ３１３）で、ＲＡＭに用意されたマスク配列m[x][y]に、v[x][y][(t-1) mod L]>0であれば０を、そうでなければ１を代入する。
【０１０７】
余裕を持たせる場合には、上記の場合の論理を反転して、i = -1，0，1； j = -1，0，1の９通りのすべてに対してv[x+i][y+i][(t-1) mod L]>0である場合に値０をm[x][y]に格納することとすれば、幅１の余裕を持たせることが可能である。この余裕幅の大きさは、適宜変更が可能である。
【０１０８】
また、上記実施形態と同様に、マスク配列に代入する値としては、１と０の組み合わせではなく、１と１以外の値（０以上１未満の値、たとえば、０.２や０.５、０.７等）を利用することとしても良い。
【０１０９】
上記実施形態では、アーム２０１やロボット４０１を動作させる指示入力を与えるために、本発明の入力装置１０１を利用しているが、入力装置１０１の用途は、上記の例に限られない。特に、実施例２に係る本入力装置１０１によれば、ユーザは３つの方向の入力値を直観的に与えることができるため、各方向に制御対象を変位させるような指示入力を行うことができるようになる。
【０１１０】
また、変位の方向によって、制御対象が実行する処理コマンドを変化させるなど、メニューからアイテムを選択するような処理を、実施例２に係る入力装置１０１において、４つの方向のそれぞれに処理コマンドを割り当てることによって実現することも可能である。
【産業上の利用可能性】
【０１１１】
本発明によれば、ユーザが押圧操作によって正負の値や方向を直観的に入力できるようにするのに好適な入力装置、入力方法、ならびに、当該入力装置をコンピュータにより制御するためのプログラム、および、当該入力装置を用いて移動体の移動を制御する制御装置、制御方法、ならびに、これらをコンピュータにより実現するためのプログラムを提供することができる。
【図面の簡単な説明】
【０１１２】
【図１】本発明の実施形態の一つに係る入力装置の概要構成を示す模式図である。
【図２】本実施形態の入力装置を利用して機械装置を操縦する際に、機械装置の表面にセンサ部を取り付ける様子を示す説明図である。
【図３】本実施形態に係る入力装置を制御する入力処理の流れを示すフローチャートである。
【図４】本実施形態の入力装置を利用して機械装置を操縦する際に、機械装置の表面にセンサ部を取り付ける様子を示す説明図である。
【符号の説明】
【０１１３】
１０１  入力装置
１０２  センサ部
１０３  判断部
１０４  取得部
１０５  出力部
２０１  アーム
２０２  回転軸
２０３  アクチュエータ
２０４  コンピュータ
４０１  ロボット
４０２  動作ランプ
４０３  タイヤ
【図１】
0004590596.tif 000002
【図２】
0004590596.tif 000003
【図３】
0004590596.tif 000004
【図４】
0004590596.tif 000005