以下、本発明に係る操作支援システムについて具体化した一実施形態に基づき図面を参照しつつ詳細に説明する。先ず、本実施形態に係る操作支援システム1の概略構成について図1を用いて説明する。図1は本実施形態に係る操作支援システム1の概略構成を示したブロック図である。
図1に示すように本実施形態に係る操作支援システム1は、車両内に設置され、ユーザによる操作を受け付ける操作入力装置2と、操作入力装置2とCAN等の車載ネットワークを介して接続された各種車載器及び車両の制御ECU等から構成されている。
ここで、操作入力装置2は、図2に示すように車両のハンドル3のスポーク部分に配置されている。操作入力装置2の前面には、後述のようにユーザのタッチ操作を受け付けるタッチパッド(操作面)が設けられており、ユーザはハンドル3を支持した状態で、後述のタッチ操作により操作入力装置2を操作可能に構成されている。そして、ユーザは操作入力装置2を介して、車両に搭載された各種車載器やシステムの操作を行うことが可能である。例えば、ナビゲーション装置の目的地設定操作や地図画像のスクロール操作、エアコンの電源切り替え操作や温度調整操作、オーディオのチャンネル操作や音量調整操作等を行うことが可能である。尚、図2ではハンドル3の右側のスポーク部分に操作入力装置2を配置しているが、左側のスポーク部分に配置しても良い。更に、両側にそれぞれ配置しても良い。尚、タッチ操作は、ユーザがタッチ面を触れることによって行う各種操作であり、例えばタッチパッド7のいずれかの地点に触れる(タッチする)操作、上記触れた状態(タッチ状態)を解除する操作、ドラッグ操作、フリック操作等がある。
また、図1に示すように、本実施形態に係る操作入力装置2は、各種の演算処理を行う操作支援ECU5と、ユーザからの操作を受け付けるタッチパッド7と、タッチパッド7を振動させる為の圧電素子8と、CANインターフェース9とから構成されている。
また、操作入力装置2には、ユーザにより操作対象となるボタンやレバーなどの操作対象物を表示するディスプレイ6が接続されている。ディスプレイ6はタッチパッド7の操作面と異なる場所、例えば、ダッシュボードに設置される。尚、ディスプレイ6の表示内容は、操作入力装置2によって操作対象となる車載器やシステムによって異なり、例えば、ナビゲーション装置の操作を行う場合には、カーソルキーや文字入力キー等の操作対象物が表示され、エアコンの操作を行う場合には電源切り替えボタンや温度調整ボタン等の操作対象物が表示される。また、それらの表示内容の切り替えは、例えばディスプレイ6上でフリック操作を受け付けた場合に行われる。
また、ディスプレイ6はヘッドアップディスプレイ(HUD)により構成しても良い。その場合には、映像の投射方向を運転席の前方のフロントガラスとなるように設定する。更に、ヘッドマウントディスプレイ(HMD)等を用いても良い。
以下に、操作入力装置2を構成する各構成要素について順に説明する。
先ず、操作支援ECU(エレクトロニック・コントロール・ユニット)5は、操作入力装置2の全体の制御を行う電子制御ユニットであり、演算装置及び制御装置としてのCPU11、並びにCPU11が各種の演算処理を行うにあたってワーキングメモリとして使用されるRAM12、制御用のプログラムのほか、後述の操作支援処理プログラム(図5参照)等が記録されたROM13、ROM13から読み出したプログラムやタッチ座標の履歴や後述の振動基準情報15を記憶するフラッシュメモリ14等の内部記憶装置を備えている。尚、操作支援ECU5は、処理アルゴリズムとしての各種手段を構成する。例えば、タッチ地点検出手段は、ユーザが操作面に触れたタッチ地点の位置を検出する。振動境界設定手段は、タッチパッド7の操作面に設定された操作領域の境界に振動境界を設定する。操作面振動手段は、タッチ地点検出手段によって検出されたタッチ地点の位置が操作領域外から振動境界を横切って操作領域内に移動したとき及び操作領域内から振動境界を横切って操作領域外に移動したときに振動機構によってタッチパッド7を振動させる。
また、タッチパッド7は、ディスプレイ6に表示されたボタンやレバー等の操作対象物を操作する為の操作手段である。タッチパッド7としては抵抗膜方式や静電容量方式が用いられ、操作支援ECU5は、所定の検出周期でユーザがタッチしたタッチ座標をタッチパッド7の座標系で検出する。尚、タッチ座標は、ユーザがタッチパッド7の操作面に触れた(静電容量方式では静電容量が変化したことを触れたとみなす)タッチ地点の位置の座標である。尚、検出周期はタッチパッド7の種類によって異なるが、例えば200Hz〜2kHzとなる。また、操作支援ECU5は、後述のようにタッチ座標が移動する場合(即ち、ユーザがタッチパッドにタッチした状態でスライド移動させた場合)には、タッチ座標に対応する振動基準位置の変位に基づいてタッチパッド7を振動させることについても行う。それによって、ユーザがディスプレイ6を視認しない状態であっても、タッチパッド7上に配置された操作対象物の形状や配置態様を把握することが可能となる。
また、図3はディスプレイ6に表示される表示画面をタッチパッド7と対応させて表示した図である。特に図3に示す例は、操作入力装置2を介して車両のエアコンの操作を行う場合にディスプレイ6に表示されるエアコン操作画面20を示す。具体的にエアコン操作画面20には、エアコンの電源の切り替えを行う電源ボタン21や、設定温度を上昇させる温度上昇ボタン22や、設定温度を下降させる温度下降ボタン23がそれぞれ操作対象物として表示される。そして、電源ボタン21の表示されたエリアをユーザがタッチすればエアコンの電源を切り替えることができ、温度上昇ボタン22や温度下降ボタン23の表示されたエリアをユーザがそれぞれタッチすればエアコンの設定温度を調整することができる。即ち、電源ボタン21が仮想配置されたタッチパッド7の操作面上の領域が電源ボタン21を操作する為の領域となり、温度上昇ボタン22が仮想配置されたタッチパッド7の操作面上の領域が温度上昇ボタン22を操作する為の領域となり、温度下降ボタン23が仮想配置されたタッチパッド7の操作面上の領域が温度下降ボタン23を操作する為の領域となる。
また、圧電素子8は、図3に示すようにタッチパッド7に接した状態でタッチパッド7の縁部付近に上下一対に配置される。そして、操作支援ECU5は、圧電素子8に信号電圧を加えることにより、圧電素子8を歪ませ、タッチパッド7を振動させる。その際、操作支援ECU5は、電圧値を変更することによって振動方向や振動の振幅を任意に設定することが可能である。また、振動周期は、圧電素子8の種類や設置態様によって異なるが、例えば250Hz〜2kHzとなる。尚、圧電素子8はタッチパッド7に直接接触して配置される必要はなく、タッチパッド7に振動を伝達できるのであれば、他の部材に対して配置されていても良い。また、タッチパッド7に振動を生じさせる手段としては、圧電素子8の代わりに小型の振動モータ等を用いても良い。
また、CAN(コントローラエリアネットワーク)インターフェース9は、車両内に設置された各種車載器や車両の制御ECU間で多重通信を行う車載ネットワーク規格であるCANに対して、データの入出力を行うインターフェースである。そして、操作支援ECU5は、CANを介して、各種車載器や車両の制御ECU(例えば、ナビゲーション装置31、AV装置32、エアコン制御ECU33等)と相互通信可能に接続される。そして、操作支援ECU5は、操作入力装置2においてユーザの操作を受け付けた場合に、操作信号を各種車載器や車両の制御ECUへと送信することによって、操作入力装置2を介した各種車載器やシステムの操作を行う。
次に、フラッシュメモリ14に記憶される振動基準情報15について説明する。
ここで、振動基準情報15は、タッチパッド7に仮想的に配置される操作対象物(即ち操作領域)の配置態様及び形状に応じて設定され、タッチパッド7の座標系と振動基準値とを対応付けた情報である。また、振動基準値は、タッチパッド7にユーザがタッチ操作を行っている状態で、タッチパッド7の振動を行うか否か及び振動を行う場合にはどのような態様で振動を行うのかを決定する為の基準となる値であり、タッチパッド7に仮想的に配置される操作対象物の高さ情報に基づいて設定される。従って、振動基準情報は、タッチパッド7に対して仮想的に配置される操作対象物の種類や位置等の配置態様に基づいて決定されることとなり、予め設定可能な操作対象物の配置態様毎に異なる振動基準情報(例えば、エアコンの操作を行う場合の操作対象物の配置パターンに対応する振動基準情報、ナビゲーション装置の操作を行う場合の操作対象物の配置態様に対応する振動基準情報)が記憶される。
ここで、図4は、図3に示すエアコン操作画面20がディスプレイ6に表示される場合において、タッチパッド7に設定される振動基準情報として、特にA−A線のx軸正方向に沿った振動基準値の変位と、B−B線のy軸正方向に沿った振動基準値の変位を示した図である。尚、図4以降では本来別領域のディスプレイ6に表示される表示画面を、説明の為にタッチパッド7と対応させて表示することとする。図4に示すように振動基準値は、エアコン操作画面20に含まれる電源ボタン21、温度上昇ボタン22、温度下降ボタン23の配置態様及び形状に基づいて設定され、タッチパッド7上に電源ボタン21、温度上昇ボタン22、温度下降ボタン23がそれぞれ機械的なボタンとして配置されたと仮定した場合の高さ情報に相当する。従って、M方向に沿った振動基準値は、地点Aまでは0であり、地点Aから地点Bまでは電源ボタン21の外縁の斜面角度で上昇し、地点Bから地点Cまでは電源ボタン21の頂上部の高さh1で推移し、その後、地点Cから地点Dまで電源ボタン21の外縁の斜面角度で下降し、ボタンの存在しない地点Dから地点Eまでは再度0となる。以下同様に、地点Eから地点Fまでは温度上昇ボタン22の外縁の斜面角度で上昇し、地点Fから地点Gまでは温度上昇ボタン22の頂上部の高さh2で推移し、その後、地点Gから地点Hまで温度上昇ボタン22の外縁の斜面角度で下降し、地点Hから地点Iまでは温度下降ボタン23の外縁の斜面角度で上昇し、地点Iから地点Jまでは温度下降ボタン23の頂上部の高さh2で推移し、その後、地点Jから地点Kまで温度下降ボタン23の外縁の斜面角度で下降する。同様に、N方向に沿った振動基準値についても図4に示すように変位する。
そして、図4に示す例では各電源ボタン21、温度上昇ボタン22、温度下降ボタン23の斜面となる地点Aから地点Bまでの範囲、地点Cから地点Dまでの範囲、地点Eから地点Fまでの範囲、地点Gから地点Iまでの範囲、地点Jから地点Kまでの範囲、地点Oから地点Pまでの範囲、地点Qから地点Rまでの範囲がそれぞれ「振動境界」に相当する。各電源ボタン21、温度上昇ボタン22、温度下降ボタン23の頂上部となる地点Bから地点Cまでの範囲、地点Fから地点Gまでの範囲、地点Iから地点Jまでの範囲、地点Pから地点Qまでの範囲までの範囲がそれぞれ「操作領域」に相当する。そして、後述のようにタッチ地点が振動境界を横切って操作領域外から操作領域内に移動する場合、又はタッチ地点が振動境界を横切って操作領域内から操作領域外に移動する場合にタッチパッド7の操作面が振動される構成を有する。尚、振動境界を各ボタンの斜面の下端(例えば地点Aと地点Dを含む線)としても良いし、各ボタンの斜面の上端(例えば地点Bと地点Cを含む線)としても良い。
そして、操作支援ECU5は、タッチパッド7に対するユーザのタッチ座標の変位と図4に示す振動基準情報15を用いて、後述のようにタッチパッド7の振動を行うか否か及び振動を行う場合にはどのような態様で振動を行うのかを決定する。より具体的には、実在する操作対象物に触れているかのような触覚(例えば、ボタンの角に指が掛かったり、ボタンの斜面を上ったり下ったりする触覚)をユーザに与えるように振動態様を決定する。その結果、ディスプレイ6を視認させなくともタッチパッド7上に仮想的に配置された操作対象物の配置態様及び形状をユーザに認識させることが可能となる。
続いて、前記構成を有する操作支援システム1において操作支援ECU5が実行する操作支援処理プログラムについて図5に基づき説明する。図5は本実施形態に係る操作支援処理プログラムのフローチャートである。ここで、操作支援処理プログラムは車両のACCがONされた後に実行され、タッチパッド7にユーザがタッチ操作を行っている状態でタッチパッド7を振動させることによって、タッチパッド7上に仮想的に配置された操作対象物の配置態様及び形状をユーザに認識させるプログラムである。尚、以下の図5、図7、図8、図15、図21及び図23にフローチャートで示されるプログラムは、操作支援システム1が備えているRAM12やROM13に記憶されており、CPU11により実行される。
先ず、操作支援処理プログラムではステップ(以下、Sと略記する)1において、CPU11は初期化処理を行う。この初期化処理では、例えばフラッシュメモリ14に記憶されたタッチ座標の履歴の初期化等が行われる。
次に、S2においてCPU11は、タッチパッド7から送信される検出信号に基づいて、ユーザがタッチパッド7の少なくとも1点以上をタッチしている状態(以下、タッチ状態という)であるか否かを判定する。例えば、タッチパッド7が抵抗膜方式や静電容量方式である場合には、所定値以上の圧力を検出した場合や所定値以上の静電容量の変化を検出した場合に、タッチ状態にあると判定する。
そして、タッチ状態にあると判定された場合(S2:YES)には、S3へと移行する。それに対して、タッチ状態にないと判定された場合(S2:NO)には、S12へと移行する。
S3においてCPU11は、タッチパッド7から送信される検出信号に基づいて、ユーザがタッチパッド7をタッチする地点の座標であるタッチ座標を検出する。例えば、タッチパッド7が抵抗膜方式や静電容量方式である場合には、圧力変化のあった地点や静電容量の変化に基づいて流れた電流の位置を検出することによって、タッチ座標を検出する。尚、上記S2は後述のS13で操作の受け付けを終了すると判定されるまで、所定の検出周期毎に繰り返し実行され、タッチ座標を検出することとなる。
次に、S4においてCPU11は、前回の1検出周期前に実行された前記S3の処理でタッチ座標が検出されたか否かを判定する。
そして、前回の1検出周期前にタッチ座標が検出されたと判定された場合(S4:YES)、即ち1検出周期以上前から継続してタッチ状態にあると判定された場合には、S6へと移行する。それに対して、前回の1検出周期前にタッチ座標が検出されなかったと判定された場合(S4:NO)、即ち今回新たにユーザがタッチオン(ユーザがタッチしていない状態からタッチした状態へと移行)したと判定された場合には、S5へと移行する。
S5においてCPU11は、前記S3で検出したタッチ座標をタッチ座標の履歴としてフラッシュメモリ14等の記憶媒体に累積的に記憶する。その後、S12へと移行する。
S6においてCPU11は、フラッシュメモリ14に記憶されたタッチ座標の履歴を読み出し、前回の1検出周期前に検出されたタッチ座標と今回新たにS3で検出されたタッチ座標とに基づいて、タッチ座標の移動速度Vを算出する。具体的には、前回と今回の2点のタッチ座標間の距離をLとし、タッチ座標の検出周期をTとすると、以下の式(1)で算出される。
V=L/T・・・・(1)
次に、S7においてCPU11は、フラッシュメモリ14に記憶されたタッチ座標の履歴を読み出し、フリック操作が行われたか否かを判定する。ここで、フリック操作とは、タッチ座標を移動させながらタッチオフ(ユーザがタッチした状態からタッチしていない状態へと移行)を行うタッチ操作である。
そして、フリック操作が行われたと判定された場合(S7:YES)には、S8へと移行する。それに対して、フリック操作が行われていないと判定された場合(S7:NO)には、S9へと移行する。
S8においてCPU11は、フリック操作に基づく処理を実行する。具体的には、ディスプレイ6に表示された表示画面の切り換え等を行う。例えば、ナビゲーション装置の操作を行う操作画面と、エアコンの操作を行う操作画面と、オーディオの操作を行う操作画面との間で表示画面の切り換えを行う。尚、表示画面が切り替わると、タッチパッド7上に配置される操作対象物の種類(即ち形状)や配置態様も変化することとなり、それに伴って、振動基準情報15(図4参照)も新たな表示画面に対応した情報へと切り替わる。その後、S12へと移行する。尚、前記S8でCPU11は、操作対象物の配置は変更せず、配置される操作対象物の種類(即ち形状)のみを変更しても良い。また、配置される操作対象物の種類(即ち形状)は変更せず、操作対象物の配置のみを変更しても良い。
一方、S9においてCPU11は、前記S6で算出されたタッチ座標の移動速度Vが所定の閾値以上であるか否かを判定する。ここで、前記S9で判定基準となる閾値は、例えばRAM12等に記憶されており、タッチ座標の検出周期に基づいて設定される。また、閾値は、タッチ座標の検出周期が短いほど、高い値が設定される。より具体的には、検出されたタッチ座標の履歴に基づいて振動基準値の変位態様(例えば、振動基準値の単位時間当たりの変位量、単位時間当たりの変位量が増加又は減少するタイミング等)を特定することが可能なタッチ座標の移動速度の上限値を閾値とする。
以下に、上記閾値について具体例を挙げてより詳細に説明する。
図6はエアコン操作画面20がディスプレイ6に表示された状態で、ユーザが地点Sから右方向にドラッグ操作を行った場合において、時間経過に対するタッチ座標の振動基準値の変位態様を示した図である。図6のグラフが示すように、タッチ座標の移動速度が遅い場合には、タッチ座標の移動速度が速い場合よりも、同じ距離を移動する場合であっても、振動基準値の変位を特定する為のサンプル数が多くなる。従って、タッチ座標の移動速度が遅い場合には、検出周期毎に検出されたタッチ座標(より具体的にはタッチ座標に基づいて特定された振動基準値)に基づいて、振動基準値の変位態様を特定することが可能となる。
尚、特定する対象となる振動基準値の変位態様としては、振動基準値の単位時間当たりの変位量(例えば、ボタンの斜面角度)θ、単位時間当たりの振動基準値の変位量θが増加するタイミング(例えば、ボタンの上り斜面に到達したタイミングや下り斜面が終了したタイミング)t1、単位時間当たりの振動基準値の変位量θが減少するタイミング(例えば、ボタンの上り斜面が終了したタイミングや下り斜面に到達したタイミング)t2がある。
一方、タッチ座標の移動速度が速い場合には、振動基準値の変位を特定する為のサンプル数が少ないので、検出周期毎に検出されたタッチ座標(より具体的にはタッチ座標に基づいて特定された振動基準値)に基づいて、上記振動基準値の変位態様(t1、t2、θ)を特定することが困難となる。
また、振動基準値の変位を特定する為のサンプル数は、タッチ座標の検出周期にも依存する。即ち、検出周期が短い程、同じタッチ座標の移動速度であっても振動基準値の変位を特定する為のサンプル数が多くなり、タッチ座標の移動速度が早くても振動基準値の変位態様を特定することが可能となる。例えば、振動基準値の単位時間当たりの変位量が0以外の区間について、各区間内に複数点のサンプルが取得できるタッチ座標の移動速度の上限値を閾値とする。
そして、前記S9の判定の結果、タッチ座標の移動速度Vが所定の閾値未満であると判定された場合(S9:NO)には、S10へと移行する。それに対して、タッチ座標の移動速度Vが所定の閾値以上であると判定された場合(S9:YES)には、S11へと移行する。
S10においてCPU11は、後述の第1振動処理(図7)を実行する。ここで、第1振動処理は、前記S3で検出されたタッチ座標に対応する振動基準値に基づいて、タッチ座標の移動に伴う振動基準値の変位態様を特定し、特定された振動基準値の変位態様に基づいてタッチパッド7の振動を行う処理である。
一方、S11においてCPU11は、後述の第2振動処理(図10)を実行する。ここで、第2振動処理は、前記S3で検出されたタッチ座標の履歴から、タッチ座標の移動に伴う振動基準値の変位態様を予測し、予測された振動基準値の変位態様に基づいてタッチパッド7の振動を行う処理である。
次に、S12においてCPU11は、前記S3で検出されたタッチ座標に基づくその他の処理を実行する。例えば、検出されたタッチ座標やタッチ操作の種別(ドラッグ操作、フリック操作等)に基づいて、操作対象となっている車載器やシステムの操作内容(例えばナビゲーション装置に表示された地図画像のスクロール、エアコンの設定温度上昇、オーディオのチャンネル変更)を特定し、CANを介して、特定された操作内容を各種車載器や車両の制御ECUへと送信する。具体的には、タッチパッド7において操作対象物が仮想配置された領域がユーザの操作を受け付ける操作領域であり、操作領域内へのユーザの操作に基づいて、操作入力装置2を介した各種車載器やシステムの操作が行われることとなる。
その後、S13においてCPU11は、操作入力装置2によるユーザの操作の受け付けを終了するか否か判定する。例えば、シフト位置が「P」に変更された場合、ACCがオフされた場合等に、ユーザの操作の受け付けを終了すると判定する。
そして、操作入力装置2によるユーザの操作の受け付けを継続すると判定された場合(S13:NO)には、S2へと戻る。一方、操作入力装置2によるユーザの操作の受け付けを終了すると判定された場合(S13:YES)には、当該操作支援処理プログラムを終了する。
次に、前記S10において実行される第1振動処理のサブ処理について図7に基づき説明する。図7は第1振動処理のサブ処理プログラムのフローチャートである。
先ず、S21においてCPU11は、フラッシュメモリ14に記憶された振動基準情報15を読み出し、今回新たにS3で検出されたタッチ座標に対応する振動基準値を特定する。尚、振動基準値は、前記したようにタッチパッド7に仮想的に配置される操作対象物の配置態様及び形状に応じて設定され、タッチパッド7の座標系と振動基準値とを対応付けた情報である(図4参照)。
次に、S22においてCPU11は、フラッシュメモリ14に記憶された振動基準情報15を読み出し、前回の1検出周期前に検出されたタッチ座標に対応する振動基準値を同様に特定する。
続いて、S23においてCPU11は、前記S22で特定された前回のタッチ座標に対応する振動基準値と前記S21で特定された今回のタッチ座標に対応する振動基準値との差分を算出する。
次に、S24においてCPU11は、前記S23で算出された差分に基づいて、前回のタッチ座標に対応する振動基準値と今回のタッチ座標に対応する振動基準値とが異なっているか否か、即ち振動基準値が変位したか否かを判定する。
そして、振動基準値が変位したと判定された場合(S24:YES)、即ち、前回の検出時からタッチ座標が移動しており、且つ移動前後の振動基準値が異なると判定された場合には、S25へと移行する。例えば、図4に示す区間A−B間をx軸正方向または負方向に移動する場合には、振動基準値が変位することとなる。それに対して、振動基準値が変位していないと判定された場合(S24:NO)、即ち、前回の検出時からタッチ座標が移動していない、或いは移動していたとしても移動前後の振動基準値が同じと判定された場合には、S27へと移行する。
S25においてCPU11は、後述の第1振動波形算出処理(図8)を実行する。ここで、第1振動波形算出処理は、前回のタッチ座標に対応する振動基準値と今回のタッチ座標に対応する振動基準値とに基づいて、タッチパッドを振動させる際の振動波形を算出する処理である。尚、振動波形は、振動方向、振幅、振動周期によって規定されるが、振動周期については圧電素子8の種類や設置態様によって決定されるので、前記S25では特に振動方向と振幅について算出される。
次に、S26においてCPU11は、前記S25で算出された振動波形に基づいてタッチパッド7を振動させる。具体的には、CPU11は前記S25で算出された振動波形に対応する信号電圧を圧電素子8に加えることにより、圧電素子8を歪ませ、タッチパッド7を振動させる。その結果、前記S25で算出された振動波形による振動がタッチパッド7に生じる。そして、振動を生じさせることによって、タッチパッドをタッチするユーザに対して実在する操作対象物に触れているかのような触覚(例えば、ボタンの角に指が掛かったり、ボタンの斜面を上ったり下ったりする触覚)を与える。
その後、S27においてCPU11は、今回新たにS3で検出したタッチ座標をタッチ座標の履歴としてフラッシュメモリ14等の記憶媒体に累積的に記憶する。その後、S12へと移行する。
次に、前記S25において実行される第1振動波形算出処理のサブ処理について図8に基づき説明する。図8は第1振動波形算出処理のサブ処理プログラムのフローチャートである。
先ず、S31においてCPU11は、前記S23で算出された前回のタッチ座標に対応する振動基準値と今回のタッチ座標に対応する振動基準値との差分Dを読み出す。
次に、S32においてCPU11は、前記S31で読み出した差分Dに基づく振動成分Uhを算出する。具体的には、前記S6で算出されたタッチ座標の移動速度をVとすると、以下の式(2)により算出される。
Uh=D×V×A・・・・(2)
尚、『A』は装置毎の固有の係数である。
続いて、S33においてCPU11は、前記S23で算出された前回のタッチ座標に対応する振動基準値の角度θ1(単位時間当たりの振動基準値の変位量)と今回のタッチ座標に対応する振動基準値の角度θ2との角度差分Δθを算出する。具体的には、以下の式(3)により算出される。
Δθ=θ2−θ1・・・・(3)
例えば、図9に示すように時間経過に対して振動基準値が変位する場合において、(A)に示すタイミングで角度差分Δθを算出すると、前回のタッチ座標に対応する振動基準値の角度θ1及び今回のタッチ座標に対応する振動基準値の角度θ2はともに「0」であるから、角度差分Δθは「0」となる。また、(B)に示す操作対象物の縁部(即ち操作領域の境界である振動境界)を横切るタイミングで角度差分Δθを算出すると、前回のタッチ座標に対応する振動基準値の角度θ1は「0」であり、今回のタッチ座標に対応する振動基準値の角度θ2は「α」であるから、角度差分Δθは「α」となる。更に、(C)に示すタイミングで角度差分Δθを算出すると、前回のタッチ座標に対応する振動基準値の角度θ1は「α」であり、今回のタッチ座標に対応する振動基準値の角度θ2は「0」であるから、角度差分Δθは「−α」となる。
次に、S34においてCPU11は、前記S33で算出された角度差分Δθに基づく振動成分Uθを算出する。具体的には、以下の式(4)により算出される。
Uθ=sinΔθ×B・・・・(4)
尚、『B』は装置毎の固有の係数である。
その後、S35においてCPU11は、前記S32で算出された振動基準値の差分に基づく振動成分Uhと、振動基準値の角度差分に基づく振動成分Uθを合成することによって、最終的な振動波形Uを算出する。具体的には、以下の式(5)により算出される。
U=Uh+Uθ・・・・(5)
その結果、最終的な振動波形Uは、タッチ座標の移動方向や移動速度によっても変化し、振動基準値の単位時間当たりの変位量が大きい程及びタッチ座標の移動速度が速い程、タッチパッド7を振動させる振動の振幅が大きくなることとなる。また、操作対象物の縁部(即ち操作領域の境界である振動境界)を横切ること等によって前回の検出時に対して振動基準値の単位時間当たりの変位量が増加する場合(0°<Δθ<90°の場合)には、変位量に応じてタッチパッド7を振動させる振動の振幅が正方向に大きくなることとなる。また、同じく操作対象物の縁部(即ち操作領域の境界である振動境界)を横切ること等によって前回の検出時に対して振動基準値の単位時間当たりの変位量が減少する場合(−90°<Δθ<0°の場合)には、変位量に応じてタッチパッド7を振動させる振動の振幅が負方向に大きくなることとなる。尚、図10に示すように振動波形の正方向は、タッチパッド7の正面方向(即ちタッチパッド7を凸状)に振動させる方向であり、負方向はタッチパッド7の奥方向(即ちタッチパッド7を凹状)に振動させる方向である。
その後、S26へと移行し、前記したようにCPU11は、前記S35で算出された振動波形Uによりタッチパッド7を振動させる。そして、前記S26の振動処理はS13で操作の受け付けを終了すると判定されるまで、所定の検出周期毎に繰り返し実行されることとなる。
以下に、図11〜図14を用いて操作支援処理プログラム前記S26によるタッチパッド7の振動態様について具体例を挙げて説明する。
先ず、図11を用いて時間経過に対して振動基準値が上昇する場合、即ち操作対象物の傾斜を上る方向へとタッチ座標が移動する場合の振動態様について説明する。図11に示す例では、単位時間当たりの振動基準値の変位量が増加するタイミング(操作対象物の縁部(振動境界)を横切って操作対象物の上り斜面に到達したタイミング)t1で、先ず振動を生じさせる。その際の振動波形は、振動成分Uh、Uθ>0となるので、正方向により大きな振幅を有する振動波形となる。それによって、ボタンの角に指が掛かった触感を付与することが可能となる。
その後、振動基準値が変位する間において、上昇角度に応じた同一形状の振動波形により繰り返し振動を生じさせる。その間の振動成分Uθは0である。それによって一定角度のボタンの斜面を上る触覚を付与することが可能となる。
次に、単位時間当たりの振動基準値の変位量が減少して「0」となるタイミング(操作対象物の上り斜面が終了したタイミング)t2で、最後の振動を生じさせた後に振動を終了する。その際の振動波形は、振動成分Uh=0、Uθ<0となるので、それまでと反対方向である負方向に振幅を有する振動波形となる。それによって、上り傾斜が終了して平面に指が移動した触感を付与することが可能となる。
尚、図12に示すようにタッチ座標の検出周期間にt2が位置する場合には、最後の振動波形は図11に示すような負方向の振動波形ではなく、振幅を減少させた正方向の波形となる。
次に、図13を用いて時間経過に対して振動基準値が下降する場合、即ち操作対象物の傾斜を下る方向へとタッチ座標が移動する場合の振動態様について説明する。図13に示す例では、単位時間当たりの振動基準値の変位量が減少するタイミング(操作対象物の下り斜面に到達したタイミング)t1で、先ず振動を生じさせる。その際の振動波形は、振動成分Uh、Uθ<0となるので、負方向により大きな振幅を有する振動波形となる。それによって、ボタンの角に指が掛かった触感を付与することが可能となる。
その後、振動基準値が変位する間において、下降角度に応じた同一形状の振動波形により繰り返し振動を生じさせる。その間の振動成分Uθは0である。それによって一定角度のボタンの斜面を下る触覚を付与することが可能となる。
次に、単位時間当たりの振動基準値の変位量が増加して「0」となるタイミング(操作対象物の縁部(振動境界)を横切って操作対象物の下り斜面が終了したタイミング)t2で、最後の振動を生じさせた後に振動を終了する。その際の振動波形は、振動成分Uh=0、Uθ>0となるので、それまでと反対方向である正方向に振幅を有する振動波形となる。それによって、下り傾斜が終了して平面に指が移動した触感を付与することが可能となる。
尚、図14に示すようにタッチ座標の検出周期間にt2が位置する場合には、最後の振動波形は図13に示すような正方向の振動波形ではなく、振幅を減少させた負方向の波形となる。
また、図11〜図14を比較すると、タッチ地点の位置が操作領域内から振動境界を横切って操作領域外に移動したときと、タッチ地点の位置が操作領域外から振動境界を横切って操作領域内に移動したときとでは、タッチパッド7を振動させる振動態様は異なる。また、タッチ地点の位置が操作領域内から振動境界を横切って操作領域外に移動したとき(図13や図14の振動波形)に比べて、タッチ地点の位置が操作領域外から振動境界を横切って操作領域内に移動するとき(図11や図12の振動波形)は、タッチパッド7を振動させる振動の振幅を大きくするのが望ましい。
更に、図11及び図12に示す振動態様では、振動基準値の単位時間当たりの変位量が増加するタイミングでタッチパッド7を振動させる振幅の大きさは、振動基準値の単位時間当たりの変位量が減少するタイミングで操作面を振動させる振幅の大きさに比べて大きくなる。
尚、以上に説明した実施例は、タッチ座標の検出周期と振動周期とが完全に一致している場合であるが、検出周期の方が長い場合には、次の検出周期が訪れるまで前記S25で算出された振動波形による振動を繰り返し行うように構成する。また、振動周期の方が長い場合には、振動周期が終了する度に、直近の前記S25で算出された振動波形による振動で次回の振動を行うように構成する。
続いて、前記S11において実行される第2振動処理のサブ処理について図15に基づき説明する。図15は第2振動処理のサブ処理プログラムのフローチャートである。
先ず、S41においてCPU11は、フラッシュメモリ14に記憶された振動基準情報15を読み出し、今回新たにS3で検出されたタッチ座標に対応する振動基準値を特定する。尚、振動基準値は、前記したようにタッチパッド7に仮想的に配置される操作対象物の配置態様及び形状に応じて設定され、タッチパッド7の座標系と振動基準値とを対応付けた情報である(図4参照)。
次に、S42においてCPU11は、今回新たにS3で検出されたタッチ座標とフラッシュメモリ14に記憶されたタッチ座標の履歴に基づいて、次回の1検出周期後に検出されるタッチ座標の位置を予測する。
ここで、図16〜図18を用いて前記S42のタッチ座標の予測処理について、複数の例を挙げて説明する。
《第1の方法》
例えば、図16に示す第1の方法では、前回のタッチ座標に対する今回のタッチ座標の離間距離Pと方位γをそれぞれ特定し、以降も同方向に同距離移動すると予測して次回のタッチ座標を予測する。
《第2の方法》
また、図17に示す第2の方法では、前々回のタッチ座標に対する前回のタッチ座標の離間距離P1と方位γ1をそれぞれ特定し、前回のタッチ座標に対する今回のタッチ座標の離間距離P2と方位γ2をそれぞれ特定する。そして、同じ方位変化量及び距離変化量で以降も移動すると予測して次回のタッチ座標を予測する。例えば、前々回のタッチ座標に対する前回のタッチ座標の離間距離が「2」及び方位が「10°」であって、前回のタッチ座標に対する今回のタッチ座標の離間距離が「4」及び方位が「20°」である場合には、今回のタッチ座標から方位「30°」方向に「6」離れた地点を次回のタッチ座標として予測する。
《第3の方法》
また、図18に示す第3の方法では、図16に示す第1の方法で予測されたタッチ座標と、図16に示す第1の方法で予測されたタッチ座標と、図17に示す第2の方法で予測されたタッチ座標との中間点を次回のタッチ座標として予測する。
次に、S42においてCPU11は、タッチ座標の検出周期が振動周期の2倍以上であるか否か判定する。尚、検出周期は基本的にタッチパッド7の種類に基づいて決定され、振動周期は圧電素子8の種類や設置態様によって決定される。
そして、タッチ座標の検出周期が振動周期の2倍未満であると判定された場合(S43:NO)には、S44へと移行する。それに対して、タッチ座標の検出周期が振動周期の2倍以上であると判定された場合(S43:YES)には、S48へと移行する。
S44においてCPU11は、後述の波形特定処理(図21)を実行する。波形特定処理は、今後に予測されるタッチ座標の移動態様に基づいて、タッチパッド7を振動させる振動波形の基本形状を複数のパターンから選択する処理である。
S45においてCPU11は、後述の第2振動波形算出処理(図23)を実行する。ここで、第2振動波形算出処理は、今回のタッチ座標に対応する振動基準値と次回のタッチ座標に対応する振動基準値とに基づいて、前記S44で基本形状が選択された振動波形のより具体的な形状を算出する処理である。尚、振動波形は、振動方向、振幅、振動周期によって規定されるが、振動周期については圧電素子8の種類や設置態様によって決定されるので、振動方向は前記S44で決定されるので、前記S45では特に振幅について算出される。
その後、S46においてCPU11は、前記S44及びS45で選択及び算出された振動波形に基づいてタッチパッド7を振動させる。具体的には、CPU11は前記S44及びS45で選択及び算出された振動波形に対応する信号電圧を圧電素子8に加えることにより、圧電素子8を歪ませ、タッチパッド7を振動させる。その結果、前記S44及びS45で選択及び算出された振動波形による振動がタッチパッド7に生じる。そして、振動を生じさせることによって、タッチパッドをタッチするユーザに対して実在する操作対象物に触れているかのような触覚(例えば、ボタンの角に指が掛かったり、ボタンの斜面を上ったり下ったりする触覚)を与える。
その後、S47においてCPU11は、今回新たにS3で検出したタッチ座標をタッチ座標の履歴としてフラッシュメモリ14等の記憶媒体に累積的に記憶する。その後、S12へと移行する。
一方、S48においてCPU11は、今回新たにS3で検出したタッチ座標と、前記S42で予測された次回の1検出周期後に検出されるタッチ座標との間を、振動周期に応じて等分し、各区分点のタッチ座標の位置を特定する。具体的には、タッチ座標の検出周期が振動周期の2倍であれば2等分し、タッチ座標の検出周期が振動周期の3倍であれば3等分する。尚、小数点以下については切り捨てる(例えば2.5倍であれば2等分とする)。その結果、その後の振動周期の開始点毎におけるタッチ座標の位置を、振動周期毎に予測することが可能となる。
例えば、図19に示すように今回のタッチ座標と次回のタッチ座標が位置する場合であって、タッチ座標の検出周期が振動周期の3倍であれば、今回のタッチ座標と次回のタッチ座標との間を3等分する。そして、各区分点の2点のタッチ座標R1、R2を特定する。その結果、R1は次の振動周期の開始時点(現時点から1振動周期後)におけるタッチ座標の位置であり、R1は更にその次の振動周期の開始時点(現時点から2振動周期後)におけるタッチ座標の位置となる。
尚、以降のS49〜S53の処理は、前記S48で特定された全てのタッチ座標について、今回のタッチ座標から近いタッチ座標から順に処理対象として繰り返し実行される。そして、前記S48で特定された全てのタッチ座標を対象としてS49〜S53の処理が実行された後にS54へと移行する。
先ず、S49は、フラッシュメモリ14に記憶された振動基準情報15を読み出し、処理対象のタッチ座標に対応する振動基準値を特定する。
次に、S50は、フラッシュメモリ14に記憶された振動基準情報15を読み出し、前回処理対象のタッチ座標に対応する振動基準値を特定する。尚、前記S50の処理が最初に行われる場合(前回処理対象のタッチ座標が存在しない場合)には、前記S41で特定された今回のタッチ座標に対応する振動基準値を代わりに用いる。
続いて、S51においてCPU11は、前記S49で特定された今回処理対象のタッチ座標に対応する振動基準値と前記S50で特定された前回処理対象のタッチ座標に対応する振動基準値との差分を算出する。
S52においてCPU11は、今回処理対象のタッチ座標と前回処理対象のタッチ座標とに基づいて、前記S6で算出されたタッチ座標の移動速度Vを修正する。具体的には、前回と今回の2点のタッチ座標間の距離をL´とし、タッチ座標の検出周期をT´とし、前記S48で等分した数をNとすると、以下の式(6)で算出される。
V=L´/(T´/N)・・・・(6)
次に、S53においてCPU11は、前述した第1振動波形算出処理(図8)を実行する。但し、S31では前記S51で算出された差分を読み出し、S33では前回処理対象のタッチ座標に対応する振動基準値の角度と今回処理対象のタッチ座標に対応する振動基準値の角度の角度差分を算出する。その結果、次回のタッチ座標の検出周期までの間に含まれる振動周期毎に振動波形Uが算出されることとなる。
その後、前記S48で特定された全てのタッチ座標を対象としてS49〜S53の処理が実行された後に実行されるS54では、前記S53で算出された振動周期毎の振動波形Uを合成する。その結果、図20に示すような振動波形が算出されることとなる。
その後、S55においてCPU11は、前記S54で算出された振動波形に基づいてタッチパッド7を振動させる。具体的には、CPU11は前記S54で算出された振動波形に対応する信号電圧を振動周期毎に連続して圧電素子8に加えることにより、圧電素子8を歪ませ、タッチパッド7を振動させる。例えば、図20に示す例では次のタッチ座標の検出周期までに含まれる3振動周期分の振動を前記S46で順次行わせる。その結果、前記S54で算出された振動波形による振動がタッチパッド7に生じる。そして、振動を生じさせることによって、タッチパッドをタッチするユーザに対して実在する操作対象物に触れているかのような触覚(例えば、ボタンの角に指が掛かったり、ボタンの斜面を上ったり下ったりする触覚)を与える。
その後、S47においてCPU11は、今回新たにS3で検出したタッチ座標をタッチ座標の履歴としてフラッシュメモリ14等の記憶媒体に累積的に記憶する。その後、S12へと移行する。
続いて、前記S44において実行される波形特定処理のサブ処理について図21に基づき説明する。図21は波形特定処理のサブ処理プログラムのフローチャートである。
先ず、S61においてCPU11は、タッチパッド7を振動させる振動波形の候補となる波形パターンをRAM12等から読み出す。尚、本実施形態では、図22に示す3つの波形パターンA〜Cを読み出す。図22に示すように、波形パターンAはタッチパッド7の正面方向(即ちタッチパッド7を凸状)に1回振動させるパターンであり、波形パターンBはタッチパッド7の奥方向(即ちタッチパッド7を凹状)に1回振動させるパターンであり、波形パターンCはタッチパッド7の奥方向に振動させた後に連続して正面方向に振動させるパターンである。尚、振動波形の候補となる波形パターンは、上記A〜C以外のパターンを用意しても良い。
次に、S62においてCPU11は、今回新たにS3で検出されたタッチ座標が、タッチパッド7上に仮想配置されたいずれかの操作対象物上に位置するか否かを判定する。具体的には、操作対象物の配置エリアを表示画面毎に予め記憶しておき、タッチ座標と配置エリアを比較することにより判定する。尚、タッチ座標に対応する振動基準値が表示画面毎に予め設定された値(例えば図4に示す例では「h1」及び「h2」)である場合に、操作対象物上に位置すると判定しても良い。
そして、今回新たにS3で検出されたタッチ座標がタッチパッド7上に仮想配置されたいずれかの操作対象物上に位置すると判定された場合(S62:YES)に、S63へと移行する。それに対して、今回新たにS3で検出されたタッチ座標がタッチパッド7上に仮想配置されたいずれの操作対象物上にも位置しないと判定された場合(S62:NO)には、S68へと移行する。
S63においてCPU11は、前記S42で予測された次回の1検出周期後のタッチ座標が、今回のタッチ座標と同一の操作対象物上に位置するか否かを判定する。具体的な判定方法については前記S62と同様であるので省略する。
そして、次回の1検出周期後のタッチ座標が、今回のタッチ座標と同一の操作対象物上に位置すると判定された場合(S63:YES)には、S64へと移行する。それに対して、次回の1検出周期後のタッチ座標が、今回のタッチ座標と同一の操作対象物上に位置しないと判定された場合(S63:NO)には、S65へと移行する。
S64においてCPU11は、タッチ座標は今後、同一の操作対象物上を移動する(即ち、振動基準値が変位しない)と推定し、タッチパッド7を振動させる振動波形を選択しない(即ち、振動させないことを決定する)。その後、S45へと移行する。
一方、S65においてCPU11は、前記S42で予測された次回の1検出周期後のタッチ座標が、今回のタッチ座標と異なる操作対象物上に位置するか否かを判定する。具体的な判定方法については前記S62と同様であるので省略する。
そして、次回の1検出周期後のタッチ座標が、今回のタッチ座標と異なる操作対象物上に位置すると判定された場合(S65:YES)には、S66へと移行する。それに対して、次回の1検出周期後のタッチ座標が、今回のタッチ座標と異なる操作対象物上にも位置しないと判定された場合(S65:NO)には、S67へと移行する。
S66においてCPU11は、タッチ座標は今後、現在の操作対象物上から他の操作対象物上に移動する(即ち、振動基準値が一旦減少した後に再度上昇する)と推定し、タッチパッド7を振動させる振動波形の基本形状として波形パターンCを選択する。その後、S45へと移行する。尚、波形パターンCは、上述したようにタッチパッド7の奥方向に振動させた後に正面方向に連続して振動させるパターンである。波形パターンCに基づく振動を加えることによって、一旦操作対象物上から下りて他の操作対象物上へと上がる触感を付与することが可能となる。
また、S67においてCPU11は、タッチ座標は今後、操作対象物上から操作対象物の無い面へと移動する(即ち、振動基準値が減少する)と推定し、タッチパッド7を振動させる振動波形の基本形状として波形パターンBを選択する。その後、S45へと移行する。尚、波形パターンBは、上述したようにタッチパッド7の奥方向に1回振動させるパターンである。波形パターンBに基づく振動を加えることによって、操作対象物上から下りる触感を付与することが可能となる。
一方、S68においてCPU11は、前記S42で予測された次回の1検出周期後のタッチ座標が、タッチパッド7上に仮想配置されたいずれかの操作対象物上に位置するか否かを判定する。具体的な判定方法については前記S62と同様であるので省略する。
そして、次回の1検出周期後のタッチ座標が、タッチパッド7上に仮想配置されたいずれかの操作対象物上に位置すると判定された場合(S68:YES)には、S69へと移行する。それに対して、次回の1検出周期後のタッチ座標が、タッチパッド7上に仮想配置されたいずれの操作対象物上にも位置しないと判定された場合(S68:NO)には、S70へと移行する。
S69においてCPU11は、タッチ座標は今後、操作対象物の無い面から操作対象物上に移動する(即ち、振動基準値が上昇する)と推定し、タッチパッド7を振動させる振動波形の基本形状として波形パターンAを選択する。その後、S45へと移行する。尚、波形パターンAは、上述したようにタッチパッド7の正面方向に1回振動させるパターンである。波形パターンAに基づく振動を加えることによって、操作対象物上へと上がる触感を付与することが可能となる。
一方、S70においてCPU11は、タッチ座標は今後、操作対象物上へは移動しない(即ち、振動基準値が変位しない)と推定し、タッチパッド7を振動させる振動波形を選択しない(即ち、振動させないことを決定する)。その後、S45へと移行する。
次に、前記S45において実行される第2振動波形算出処理のサブ処理について図23に基づき説明する。図23は第2振動波形算出処理のサブ処理プログラムのフローチャートである。
先ず、S71においてCPU11は、フラッシュメモリ14に記憶された振動基準情報15を読み出し、前記S42で予測された次回の1検出周期後のタッチ座標に対応する振動基準値を特定する。そして、前記S41で特定された今回のタッチ座標に対応する振動基準値と次回の1検出周期後のタッチ座標に対応する振動基準値との差分Dを算出する。
次に、S72においてCPU11は、前記S71で算出した差分Dに基づく振動成分Uhを算出する。具体的には、前記S6で算出されたタッチ座標の移動速度をVとすると、以下の式(7)により算出される。
Uh=D×V×A・・・・(7)
尚、『A』は装置毎の固有の係数である。
続いて、S73においてCPU11は、今回のタッチ座標に対応する振動基準値から振動基準値が変位を開始するタイミングを予測する。例えば、図24に示すように各タッチ座標に応じた振動基準値が特定された場合には、s1が今回のタッチ座標に対応する振動基準値から振動基準値が変位を開始するタイミングとして予測される。尚、予測には、各タッチ座標に応じた振動基準値の他、フラッシュメモリ14に記憶された振動基準情報15も用いられる。
その後、S74においてCPU11は、前記S72で算出された振動基準値の差分に基づく振動成分Uhを、前記S44で選択された波形パターンに当てはめ、更に、前記S73で予測された振動基準値が変位を開始するタイミングで振動を開始する振動波形を、振動波形Uとして算出する。但し、前記S44で波形パターンが選択されなかった場合には、U=0(振動しない)とする。
その結果、最終的な振動波形Uは、前記S44で選択された波形パターン(図22)に従った方向に振動し、更に、振動基準値の単位時間当たりの変位量が大きい程及びタッチ座標の移動速度が速い程、タッチパッド7を振動させる振動の振幅が大きくなることとなる。
その後、S46へと移行し、前記したようにCPU11は、前記S74で算出された振動波形Uによりタッチパッド7を振動させる。尚、前記S46で実行された振動が終了する前に、次のタッチ座標の検出周期となった場合には、現在の振動が終了した後に次の振動を行うように構成する。
以下に、図25〜図27を用いて操作支援処理プログラムの前記S46によるタッチパッド7の振動態様について具体例を挙げて説明する。
先ず、図25を用いてタッチ座標が今後、操作対象物の無い面から操作対象物上に移動すると予測された場合の振動態様について説明する。図25に示す例では、振動基準値が変位を開始すると予測されたタイミング(操作対象物の縁部(即ち操作領域の境界である振動境界)を横切って操作対象物の上り斜面に到達したタイミング)s1で、振動を生じさせる。その際の振動波形は、タッチパッド7の正面方向(即ちタッチパッド7を凸状)に1回振動させる振動波形となる。それによって、ボタンの角に指が掛かり、その後にボタンの斜面を上り、最終的に上り傾斜が終了して平面に指が移動した触感を付与することが可能となる。
次に、図26を用いてタッチ座標が今後、操作対象物上から操作対象物の無い面へと移動すると予測された場合の振動態様について説明する。図26に示す例では、振動基準値が変位を開始すると予測されたタイミング(操作対象物の下り斜面に到達したタイミング)s2で、振動を生じさせる。その際の振動波形は、タッチパッド7の奥方向(即ちタッチパッド7を凹状)に1回振動させる振動波形となる。それによって、ボタンの角に指が掛かり、その後にボタンの斜面を下り、最終的に下り傾斜が終了して平面に指が移動した触感を付与することが可能となる。
次に、図27を用いてタッチ座標が今後、現在の操作対象物上から他の操作対象物上に移動すると予測された場合の振動態様について説明する。図27に示す例では、振動基準値が変位を開始すると予測されたタイミング(ボタンの下り斜面に到達すると予測されるタイミング)s3で、振動を生じさせる。その際の振動波形は、タッチパッド7の奥方向(即ちタッチパッド7を凹状)に振動させた後にタッチパッド7の正面方向(即ちタッチパッド7を凸状)に連続して各1回(計2回)振動させる振動波形となる。それによって、ボタンの角に指が掛かり、その後にボタンの斜面を下り、更に、他のボタンの斜面を上り、最終的に上り傾斜が終了して平面に指が移動した触感を付与することが可能となる。
以上詳細に説明した通り、本実施形態に係る操作支援システム1、操作支援システム1による操作支援方法及び操作支援システム1で実行されるコンピュータプログラムによれば、タッチパッド7に仮想的に配置される操作対象物の配置態様及び形状に基づいてタッチパッド7の座標系に対して振動基準値を設定し、ユーザがタッチパッド7をタッチしたタッチ座標を検出し(S3)、タッチ座標の移動に伴うタッチ座標に対応する振動基準値の変位態様を特定し(S21〜S25)、特定された変位態様に基づく波形によってタッチパッド7の振動を行う(S26)ので、操作対象となるタッチパッド7をユーザが視認していない場合であっても、タッチパッド7上に仮想的に配置される操作対象物の配置態様や形状をユーザに正確に把握させ、誤りのない正確な操作を行わせることが可能となる。
また、振動基準値が変位している間において継続してタッチパッド7を振動させるので、タッチパッド7に仮想的に配置される操作対象物の周辺をタッチ座標が移動する場合において、実在する操作対象物の斜面や段差を移動するのと同等の触感をユーザに付与することが可能となる。また、タッチ座標が操作対象物上へ移動したことや、操作対象物上から外れたことをユーザに把握させることが可能となる。
また、振動基準値の単位時間当たりの変位量が大きい程、タッチパッド7を振動させる振動の振幅を大きくするので、タッチ座標の移動速度や操作対象物の形状を考慮して、実在する操作対象物の斜面や段差を移動するのと同等の触感をより正確にユーザに付与することが可能となる。
また、タッチ座標の移動速度が速い程、タッチパッド7を振動させる振動の振幅を大きくするので、タッチ座標の移動速度を考慮して、実在する操作対象物の斜面や段差を移動するのと同等の触感をより正確にユーザに付与することが可能となる。
また、振動基準値の単位時間当たりの変位量が増加又は減少するタイミングにおいて、該増加量又は減少量に基づいてタッチパッド7を振動させるので、操作対象物の縁部や角部上をタッチ座標が移動する場合において、実在する操作対象物の縁部や角部を横切るのと同等の触感をユーザに付与することが可能となる。
また、タッチ座標の検出周期毎に特定された振動基準値の変位態様に基づいて、タッチパッド7を振動させるので、現在のタッチ座標に応じた適切な振動を検出周期毎に付与することが可能となる。
尚、本発明は前記実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の改良、変形が可能であることは勿論である。
例えば、本実施形態ではタッチパッドによるタッチ操作を行う場合について説明しているが、タッチ操作を受け付ける手段としてはタッチパッド以外のタッチパネル、タブレット等を用いても良い。その場合には、タッチパネル、タブレットを振動させるように構成する。また、タッチパネルを用いる場合には、タッチパネル上に仮想配置された操作対象物を表示するディスプレイ6は、タッチパネルに重畳して配置する。
また、本実施形態では図21に示す波形特定処理において、図22に示す3つの波形パターンの内からタッチパッド7を振動させる振動波形を選択することとしているが、図22に示す3つの波形パターン以外から選択させる構成としても良い。
また、本実施形態ではタッチ操作として特にフリック操作が行われた場合にはタッチパッド7の振動を行わないこととしているが、フリック操作以外の特定のタッチ操作が行われた場合にタッチパッド7の振動を行わない構成としても良い。
また、本発明は車両を運転する運転者のタッチ操作によって車両に搭載された各種車載器やシステムの操作を行う装置以外に、タッチ操作を受け付ける手段を有する各種装置に対して適用することが可能である。例えば、携帯電話機、スマートフォン、タブレット型端末、パーソナルコンピュータ、携帯型音楽プレイヤ等(以下、携帯端末等という)に適用することも可能である。