(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-04-18
(45)【発行日】2022-04-26
(54)【発明の名称】リアルタイムハプティクス生成
(51)【国際特許分類】
G06F 3/01 20060101AFI20220419BHJP
G06F 3/041 20060101ALI20220419BHJP
【FI】
G06F3/01 560
G06F3/041 480
(21)【出願番号】P 2018562029
(86)(22)【出願日】2017-06-28
(86)【国際出願番号】 US2017039643
(87)【国際公開番号】W WO2018005590
(87)【国際公開日】2018-01-04
【審査請求日】2020-06-03
(32)【優先日】2016-06-29
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2017-06-27
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】500390995
【氏名又は名称】イマージョン コーポレーション
【氏名又は名称原語表記】IMMERSION CORPORATION
(74)【代理人】
【識別番号】100116872
【氏名又は名称】藤田 和子
(72)【発明者】
【氏名】ヴェンカテサン スリヴァトサヴ
【審査官】三吉 翔子
(56)【参考文献】
【文献】米国特許出願公開第2016/0080682(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01
G06F 3/041
(57)【特許請求の範囲】
【請求項1】
プロセッサによって実行されると、前記プロセッサにハプティック機能を提供させる命令が格納された非一時的コンピュータ可読媒体であって、前記プロセッサは、
ユーザデバイスで、リモートソースからのデータを受信し、
前記データは、ハプティック効果の強度に対応するアクチュエータ駆動値を符号化する符号化値
を含み、
前記ユーザデバイスで、前記符号化値をオン/オフ期間のパターンに変換し、
ハプティック効果を生じるために、
前記ユーザデバイスにおけるアクチュエータ上で前記オン/オフ期間のパターンを再生する、
コンピュータ可読媒体。
【請求項2】
前記アクチュエータ駆動値は、ワークステーション上の設計ツールによって提供され、前記符号化値は、前記ワークステーションで取得され、前記変換および前記再生は、前記ワークステーションと通信し、かつ前記アクチュエータを動作させる装置において行われる、請求項1に記載のコンピュータ可読媒体。
【請求項3】
前記符号化値は、パルスのパルス幅を変調するために、前記アクチュエータ駆動値を使用することによって得られ、前記符号化値は、アクチュエータオン期間を示す、請求項1に記載のコンピュータ可読媒体。
【請求項4】
前記パルスのパルス周期は、前記アクチュエータの特性に従って選択される、請求項3に記載のコンピュータ可読媒体。
【請求項5】
前記パルスのパルス周期は、実験によって決定される、請求項3に記載のコンピュータ可読媒体。
【請求項6】
前記再生は、オン/オフ期間のパターンをAndroid
(登録商標)バイブレートアプリケーションプログラミングインターフェース(API)に提供することによって行われる、請求項1に記載のコンピュータ可読媒体。
【請求項7】
前記符号化値の前記オン/オフ期間のパターンへの変換は、アクチュエータ状態を追跡するステートマシンを実装することによって行われる、請求項1に記載のコンピュータ可読媒体。
【請求項8】
前記アクチュエータ状態は、アクチュエータオン時間パラメータ、アクチュエータオフ時間パラメータ、アクチュエータアクティブ時間パラメータ、およびアクチュエータ現在状態パラメータを含む、請求項7に記載のコンピュータ可読媒体。
【請求項9】
前記符号化値によって示されるアクチュエータオン期間は、前記アクチュエータオン時間パラメータにコピーされる、請求項8に記載のコンピュータ可読媒体。
【請求項10】
前記アクチュエータオフ時間パラメータは、パルスのパルス期間と前記アクチュエータオン時間パラメータとの間の差として設定される、請求項8に記載のコンピュータ可読媒体。
【請求項11】
前記アクチュエータ現在状態パラメータがオフであり、以前の符号化値が前記符号化値未満である場合、前記アクチュエータ現在状態パラメータは、オンに変更され、前記アクチュエータアクティブ時間パラメータは、リセットされる、請求項8に記載のコンピュータ可読媒体。
【請求項12】
前記アクチュエータ現在状態パラメータがオンであり、以前の符号化値が前記符号化値より大きい場合、前記アクチュエータ現在状態パラメータは、オフに変更され、前記アクチュエータアクティブ時間パラメータは、リセットされる、請求項8に記載のコンピュータ可読媒体。
【請求項13】
前記符号化値を前記オン/オフ期間のパターンに変換することは、ミリ秒毎に更新機能を呼び出すことを含む、請求項8に記載のコンピュータ可読媒体。
【請求項14】
前記更新機能は、前記アクチュエータアクティブ時間パラメータをインクリメントする、請求項13に記載のコンピュータ可読媒体。
【請求項15】
前記更新機能は、前記アクチュエータアクティブ時間パラメータを、必要な状態時間と比較する、請求項14に記載のコンピュータ可読媒体。
【請求項16】
前記アクチュエータ現在状態パラメータがオンであるとき、前記更新機能は、前記アクチュエータアクティブ時間パラメータを前記アクチュエータオン時間パラメータと比較し、前記アクチュエータアクティブ時間パラメータが前記アクチュエータオン時間パラメータより大きい場合、前記アクチュエータアクティブ時間パラメータをリセットし、前記アクチュエータ現在状態パラメータをオフに変更する、請求項15に記載のコンピュータ可読媒体。
【請求項17】
前記アクチュエータ現在状態パラメータがオフであるとき、前記更新機能は、前記アクチュエータアクティブ時間パラメータを前記アクチュエータオフ時間パラメータと比較し、前記アクチュエータアクティブ時間パラメータが前記アクチュエータオフ時間パラメータより大きい場合、前記アクチュエータアクティブ時間パラメータをリセットし、前記アクチュエータ現在状態パラメータをオンに変更する、請求項15に記載のコンピュータ可読媒体。
【請求項18】
ユーザデバイスで、リモートソースからのデータを受信するステップ
であって、前記データは、ハプティック効果の強度に対応するアクチュエータ駆動値を符号化する符号化値
を含む、受信するステップと、
前記ユーザデバイスで、前記符号化値をオン/オフ期間のパターンに変換するステップと、
ハプティック効果を生じるために、
前記ユーザデバイスにおけるアクチュエータ上で前記オン/オフ期間のパターンを再生するステップと、
を備えるハプティック機能を提供する方法。
【請求項19】
前記アクチュエータ駆動値は、ワークステーション上の設計ツールによって提供され、前記符号化値は、前記ワークステーションで取得され、前記変換および前記再生は、前記ワークステーションと通信し、かつ前記アクチュエータを動作させる装置において行われる、請求項18に記載の方法。
【請求項20】
プロセッサと、
前記プロセッサによって実行されると、前記プロセッサにハプティック機能を提供させる命令を格納するメモリと、を備えるシステムであって、前記プロセッサは、
ユーザデバイスで、リモートソースからのデータを受信し、
前記データは、ハプティック効果の強度に対応するアクチュエータ駆動値を符号化する符号化値
を含み、
前記ユーザデバイスで、前記符号化値をオン/オフ期間のパターンに変換し、
ハプティック効果を生じるために、
前記ユーザデバイスにおけるアクチュエータ上で前記オン/オフ期間のパターンを再生する、
システム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2016年6月29日に出願された米国仮特許出願第62/356,265号および2017年6月27日に出願された米国特許出願第15/634,288号の優先権を主張し、それらの開示は、参照により本明細書に組み込まれる。
【0002】
技術分野
一実施形態は、概して、ハプティックシステム、特に、ハプティック効果を生成するシステムに関する。
【背景技術】
【0003】
背景情報
一般に、電子デバイス製造業者は、ユーザにとって豊富なインターフェースを生産しようと努めている。従来のデバイスは、ユーザにフィードバックを提供するために視覚的および聴覚的キュー(合図)を使用するが、いくつかのインターフェースデバイスではアクティブおよび抵抗力のフィードバックなどの運動感覚的フィードバック、および/または振動、テクスチャー、および加熱などの触覚的フィードバックも、ユーザに提供され、より一般的には「ハプティックフィードバック」または「ハプティック効果」として集合的に知られている。ハプティックフィードバックは、ユーザインターフェースを強化し、単純化するキューを提供することができる。具体的には、振動効果または振動触覚ハプティック効果は、電子デバイスのユーザにキューを提供して、ユーザに特定のイベントを警告するか、またはシミュレートされた環境または仮想環境内により大きな感覚的没入を作り出すためのリアルなフィードバックを提供するのに役立つ場合がある。
【0004】
一般に、ハプティック効果開発者は、デバイスのハプティック効果を作成することができ、デバイスは、ハプティック効果を出力するように構成することができる。異なるタイプのハードウェアは、異なるハードウェア特性により、異なるタイプのハプティック効果を生成することができる。例えば、偏心回転マスモータアクチュエータ、直線状共振アクチュエータ、および圧電アクチュエータなどの異なるタイプのアクチュエータは異なるアクチュエータの異なる電気機械特性により、異なるタイプのハプティック効果を生成することができる。
【0005】
一般に、いくつかのデバイスは、アクチュエータを制御するために、Google Corp.からの「Android(登録商標)」バイブレートAPIなどの「オン/オフ」バイブレート制御を実装することができる。しかし、このような装置は、アクチュエータの駆動値および持続時間にわたる微細な制御を有さない場合がある。したがって、「オン/オフ」バイブレート制御に依存するデバイス上で、アクチュエータの駆動値および持続時間にわたる細かい制御を提供する必要がある。
【発明の概要】
【0006】
一実施形態は、ハプティック機能を提供するシステムである。このシステムは、アクチュエータ駆動値を符号化する符号化値を受信し、アクチュエータ駆動値は、ハプティック効果の強度に対応する。このシステムは、符号化値をオン/オフ期間のパターンに変換し、アクチュエータ上でオン/オフ期間のパターンを再生してハプティック効果を生成する。
【図面の簡単な説明】
【0007】
【
図1】
図1は、本発明の実施形態によるコンピュータサーバ/システムのブロック図である。
【
図2】
図2は、同じパルス周期を有するが、異なるデューティサイクルを有するパルスの例示的なグラフを示す。
【
図3】
図3は、一実施形態におけるエンコーダの機能性を示す例示的なブロック図である。
【
図4】
図4は、一実施形態における再生モジュールの機能性を示す例示的なブロック図である。
【
図5】
図5は、本発明の実施形態によるハプティック機能を実行するときの
図1のハプティクス生成モジュールの動作のフロー図である。
【
図6】
図6は、本発明の実施形態によるハプティック機能を実行するときの
図1のハプティクス生成モジュールの動作のフロー図である。
【
図7】
図7は、本発明の実施形態によるハプティック機能を実行するときの
図1のハプティクス生成モジュールの動作のフロー図である。
【発明を実施するための形態】
【0008】
一実施形態は、音声または映像ソースデータ、またはマルチメディアクリップの含有量に関連する任意の感覚データ(例えば、オブジェクトの加速、回転、速度など)などのソースデータが与えられたハプティック効果を自動的に生成することができる装置である。実施形態は、アクチュエータに印加されるパルス幅変調(すなわち、オン/オフ)信号を使用してハプティック効果を効果的に生成することができるように、ソースデータを振動パターンに変換することによってハプティック効果を生成する。
【0009】
図1は、本発明の一実施形態によるシステム10のブロック図を示す。一実施形態では、システム10は、装置の一部であり、装置のためのリアルタイムハプティクス生成機能を提供する。別の実施形態では、システム10は、装置とは別個であり、装置のためのリアルタイム触覚生成機能をリモートで提供する。
【0010】
単一のシステムとして示されているが、システム10の機能は、分散システムとして実装することができる。システム10は、情報を通信するためのバス12または他の通信機構と、情報を処理するためにバス12に結合されたプロセッサ22とを含む。プロセッサ22は、任意のタイプの汎用または特定目的のプロセッサとすることができる。システム10はさらに、プロセッサ22によって実行される情報および命令を記憶するためのメモリ14を含む。メモリ14は、ランダムアクセスメモリ(「RAM」)、リードオンリーメモリ(「ROM」)、磁気ディスクまたは光ディスクなどの静的記憶装置、または任意の他のタイプの一時的または非一時的コンピュータ可読媒体の任意の組合せを含むことができる。
【0011】
コンピュータ可読媒体は、プロセッサ22によってアクセスされ得る任意の利用可能な一時的または非一時的媒体であり得、揮発性および不揮発性媒体、リムーバブルおよび非リムーバブルメディア、通信媒体、および記憶媒体の両方を含み得る。通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または搬送波もしくは他の伝達機構などの変調データ信号内の他のデータを含むことができ、当技術分野で知られている任意の他の形態の情報配信媒体を含むことができる。記憶媒体は、RAM、フラッシュメモリ、ROM、消去可能プログラマブルリードオンリメモリ(「EPROM」)、電気的消去可能プログラマブルリードオンリメモリ(「EEPROM」)、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスクリードオンリメモリ(「CD-ROM」)、または当技術分野で知られている任意の他の形態の記憶媒体を含むことができる。
【0012】
一実施形態では、メモリ14は、プロセッサ22によって実行されると機能を提供するソフトウェアモジュールを記憶する。これらのモジュールは、一実施形態において、システム10のオペレーティングシステムの機能を提供するオペレーティングシステム15と、装置の残りの部分とを含む。モジュールは、本明細書でより詳細に開示されるように、パルス幅変調(「PWM」)に従って変調された信号を使用してハプティック効果を生成するハプティクス生成モジュール16をさらに含む。PWMは、メッセージをパルス信号に符号化するために使用される変調技術である。PWMは、電気デバイスに供給される電力を制御するために使用されてもよく、負荷に供給される電圧(および電流)の平均値は、動力と負荷との間の仮想または物理的スイッチを高速でオンおよびオフにすることによって制御される。オフ期間と比較してスイッチが長いほど、負荷に供給される総電力は高くなる。
【0013】
一実施形態では、ハプティクス生成モジュール16は、複数のモジュールを備えることができ、個々のモジュールは、それぞれ、ハプティック効果を生成するための具体的な個々の機能を提供する。システム10は、通常、スマートフォンのオペレーティングシステムの一部であるバイブレートアプリケーションプログラミングインターフェース(「API」)などの追加の機能を含む1つまたは複数の追加のアプリケーションモジュール18を含む。
【0014】
一実施形態では、システム10は、リモートソースからデータを送信および/または受信してもよく、さらに、赤外線、無線、Wi-Fi、セルラーネットワーク通信などのモバイルワイヤレスネットワーク通信を提供するために、ネットワークインターフェースカードなどの通信デバイス20を含んでもよい。一実施形態では、通信デバイス20は、イーサネット(登録商標)接続、モデムなどの有線ネットワーク接続を提供することができる。
【0015】
プロセッサ22は、さらに、グラフィカル表現またはユーザインターフェースをユーザに表示するために、バス12を介して液晶ディスプレイ(「LCD」)などのディスプレイ24に結合される。ディスプレイ24は、プロセッサ22との間で信号を送受信するように構成されたタッチスクリーンなどのタッチ感知入力装置であってもよく、マルチタッチ・タッチスクリーンであってもよい。プロセッサ22は、ユーザがマウスまたはスタイラスなどのシステム10と相互作用することを可能にするキーボードまたはカーソル制御28にさらに結合されてもよい。
【0016】
一実施形態では、システム10は、アクチュエータ26をさらに含む。プロセッサ22は、生成されたハプティック効果と関連付けられたハプティック信号をアクチュエータ26に送信し、アクチュエータ26は、振動触覚ハプティック効果、静電摩擦ハプティック効果、または変形ハプティック効果などのハプティック効果を出力する。アクチュエータ26は、アクチュエータ駆動回路を含む。アクチュエータ26は、例えば、電気モータ、電磁アクチュエータ、ボイスコイル、形状記憶合金、電気活性ポリマー、ソレノイド、偏心回転質量モータ(「ERM」)、直線状共振アクチュエータ(「LRA」)、圧電アクチュエータ、高帯域幅アクチュエータ、電気活性ポリマー(「EAP」)アクチュエータ、静電摩擦ディスプレイ、または超音波振動発生器であってもよい。代替実施形態では、システム10は、アクチュエータ26(
図1には図示せず)に加えて、1つまたは複数の追加のアクチュエータを含むことができる。
【0017】
アクチュエータ26は、ハプティック出力デバイスの一例であり、ハプティック出力デバイスは、駆動信号に応じて、振動触覚ハプティック効果、静電摩擦ハプティック効果、または変形ハプティック効果などのハプティック効果を出力するように構成された装置である。代替実施形態では、アクチュエータ26は、他の何らかのタイプのハプティック出力ハプティックに置き換えることができる。さらに、他の代替実施形態では、システム10は、アクチュエータ26を含まなくてもよく、システム10とは別のデバイスは、ハプティック効果を生成するアクチュエータまたは他のハプティック出力装置を含み、システム10は、生成されたハプティック効果信号を通信デバイス20を介して当該装置に送信する。
【0018】
システム10は、さらに、データベース30に動作可能に結合することができ、データベース30は、モジュール16および18によって使用されるデータを記憶するように構成することができる。データベース30は、オペレーショナルデータベース、分析データベース、データウェアハウス、分散データベース、エンドユーザデータベース、外部データベース、ナビゲーションデータベース、インメモリデータベース、ドキュメント指向データベース、リアルタイムデータベース、リレーショナルデータベース、オブジェクト指向データベース、または当技術分野で知られている任意の他のデータベースとすることができる。
【0019】
一実施形態では、システム10は、スピーカ32をさらに含む。プロセッサ22は、オーディオ信号をスピーカ32に送信し、スピーカ32は、オーディオ効果を出力する。スピーカ32は、例えば、ダイナミックラウドスピーカ、電気ダイナミックラウドスピーカ、圧電ラウドスピーカ、磁歪ラウドスピーカ、静電ラウドスピーカ、リボンおよび平面磁気ラウドスピーカ、曲げ波ラウドスピーカ、フラットパネルラウドスピーカ、ヘイルエアモーショントランスデューサ、プラズマアークスピーカ、デジタルラウドスピーカ等であってもよい。代替実施形態では、システム10は、スピーカ32(
図1には図示せず)に加えて、1つ以上の追加のスピーカを含むことができる。さらに、他の代替実施形態では、システム10は、スピーカ32を含まなくてもよく、システム10とは別の装置は、オーディオ効果を出力するスピーカを含み、システム10は、通信装置20を介してそのデバイスにオーディオ信号を送信する。
【0020】
一実施形態では、システム10は、センサ34をさらに含む。センサ34は、エネルギーの形態、または音、動き、加速度、生体信号、距離、流れ、力/圧力/歪み/曲がり、湿度、直線位置、配向/傾斜、無線周波数、回転位置、回転速度、スイッチの操作、温度、振動、可視光強度などの他の物理的特性を検出するように構成され得る。センサ34は、さらに、検出されたエネルギーまたは他の物理的特性を、電気信号、または仮想センサ情報を表す任意の信号に変換するように構成され得る。センサ34は、加速度計、ガルバニック皮膚応答センサ、容量センサ、ホール効果センサ、赤外線センサ、超音波センサ、圧力センサ、光ファイバセンサ、屈曲センサ(または曲げセンサ)、力感知抵抗器、ロードセル、LuSense CPS2 155、小型圧力トランスデューサ、圧電センサ、歪みゲージ、ハイグロメーター、リニアポジションタッチセンサ、リニアポジションポテンショメータ(またはスライダ)、リニア可変差動トランス、コンパス、傾斜計、磁気タグ(またはRFID(radio frequency identification)タグ)、ロータリエンコーダ、ロータリポテンショメータ、ジャイロスコープ、オンオフスイッチ、温度センサ(温度計、熱電対、抵抗温度検出器、サーミスタ、テンパーなど)電子変換集積回路等)、マイクロホン、測光器、高度計、生物学的モニタ、カメラ、光依存性抵抗器等、または心電図、脳波、筋電図、眼電図、口蓋電気図その他の電気生理学的出力を出力する装置などの任意のデバイスとすることができるが、これらに限定されない。
【0021】
一実施形態では、システム10は、センサ34(
図1には図示せず)に加えて、1つ以上の追加のセンサを含むことができる。一実施形態では、センサ34および1つまたは複数の追加のセンサは、センサアレイの一部、または何らかの他のタイプのセンサの集合/配置とすることができる。一実施形態では、システム10は、センサ34を含まなくてもよく、システム10とは別の装置は、エネルギーの形態または他の物理特性を検出し、検出されたエネルギーまたは他の物理特性を、仮想センサ情報を表す電気信号または他のタイプの信号に変換するセンサを含む。次いで、装置は、変換された信号を、通信装置20を介してシステム10に送信することができる。
【0022】
本発明の一実施形態は、オン/オフバイブレート制御と共にPWM機能を実施して、アクチュエータの駆動値および持続時間にわたる微細な制御を提供する。この実施形態は、オン/オフバイブレート制御を使用して高品質の触覚を与えるためのアルゴリズムを提供する。一実施形態では、ハプティック効果設計者の意図するハプティック強度がバイブレートパターンに変換され、ハプティクスは、アクチュエータ上で表現される。
【0023】
一実施形態では、装置のオペレーティングシステムは、アクチュエータのオン/オフ制御のみを可能にし、アクチュエータの駆動部信号の強度を制御することを可能にしない機能を実行する場合、この実施形態は、高品質ハプティック効果を送達するようにオン/オフ制御を構成する。例えば、一実施形態は、Android
(登録商標)装置上でバイブレータを動作させる「バイブレータ」クラスの一部であるAndroid
(登録商標)バイブレートAPIを使用することができる。表1は、このクラスによって公開されるパブリックメソッドの例を示す。表1の例に示されるように、Android
(登録商標)バイブレートAPIは、アクチュエータの駆動値を制御せず、制御できる唯一のパラメータは持続時間である。このAPIが指定された持続時間で呼び出されると、アクチュエータは、呼び出しで指定された持続時間の最大駆動値でオンにされる。
【表1】
【0024】
一実施形態は、アンドロイドバイブレートAPIを使用して、アクチュエータのアクティベーション持続時間および同期の微細な制御を実施することによって、様々な強度のハプティック信号を表現する。この実施形態は、実験(例えば、あるアクチュエータ上でのオフライン実験)によって得ることができるパルス周期(またはパルス持続時間)を有するパルスを使用して、リアルタイムハプティクス機能を提供する。所望のハプティック強度は、一般に以下のように定義されるパルスのデューティサイクルを変調することによって与えられる:デューティサイクル=パルス幅X100/パルス周期。
【0025】
デューティサイクルは、パルスのパルス幅(または「オン」持続時間)を変化させることによって変調され得る。
図2は、同じ周期を有するが異なるデューティサイクルを有するパルスの例示的なグラフ200を示し、第1のパルス202は、10%のデューティサイクルを有し、第2のパルス204は、30%のデューティサイクルを有し、第3のパルス206は、50%のデューティサイクルを有し、第5のパルス208は、90%のデューティサイクルを有する。一実施形態では、パルスの周波数(パルス周期の逆数)は、アクチュエータの種類に基づいて構成され、一定に保たれ、一方、デューティサイクルは、表現されたハプティック効果の強度を知覚されるように制御するように変更される。一実施形態では、知覚される強度は、パルスのデューティサイクルに正比例する。すなわち、20%のデューティサイクルを有するパルスは、10%のデューティサイクルを有するパルスの2倍の強さであると知覚される。デューティサイクルを適切に変調することによって、実施形態は、知覚される強度を変調し、それによって様々なハプティック効果を果たす。
【0026】
一実施形態は、例えば、コインERMアクチュエータに印加される駆動信号のパルス幅を変調する。一実施形態では、コインERMアクチュエータの場合、パルスの周波数は、パルスの最大期間が32ミリ秒未満である必要があり、期間が短いほどハプティック忠実度が良好であることを示唆する実験に基づいて決定される。したがって、この実施形態は、パルス周期を32ミリ秒に設定することができる。最大のハプティック強度を達成するために、この実施形態は、デューティサイクルを100%に設定し、アクチュエータがオフにされることを要求されるまで、アクチュエータは常にオンになる。50%のバイブレート強度を達成するために、この実施形態は、デューティサイクルを50%に設定し、アクチュエータは、16ミリ秒間オンになり、16ミリ秒間オフになる。パルスは、アクチュエータがオフにされることが要求されるまで、繰り返し印加される。25%のバイブレート強度を達成するために、この実施形態は、デューティサイクルを25%に設定し、アクチュエータは、8ミリ秒間オンになり、24ミリ秒間オフになる。パルスは、アクチュエータがオフにされることが要求されるまで、繰り返し印加される。
【0027】
一実施形態は、以下で詳細に説明するように、エンコーダ、パターン変換器、およびパターン再生モジュールを実装することによって、リアルタイムハプティクス修正機能を提供する。一実施形態では、エンコーダは、ワークステーション(例えば、MACまたはPCマシン)上のメディアアプリケーション/ドライバ(例えば、設計ツール)に常駐することができ、パターンコンバータおよびパターン再生モジュールはAndroid(登録商標)装置などの装置に常駐する。この実施形態では、ワークステーションは、ユニバーサルシリアルバス(universal serial bus:universal serial bus)接続など、当技術分野で知られている任意の手段を介して再生装置に符号化値を送ることができる。一実施形態では、例えば、ユーザは、Avid Technology Corp.の「Pro Tools」などの当技術分野で知られている任意の音声編集ツールを使用してハプティック効果を設計することができる。一実施形態では、オーディオ編集ツールへのプラグインは、駆動値を生成することができ、または追加のドライバは、オーディオ編集ツールからオーディオデータを受信し、それを駆動値に変換することができる(例えば、ダウンサンプリング、ピーク検出などを実行することによって)。本実施形態では、プラグイン/ドライバの出力信号は、エンコーダに入力される駆動値であるPWM出力信号のデューティーサイクル値(パルスのオン期間)である。
【0028】
図3は、一実施形態におけるエンコーダ302の機能性を示す例示的なブロック
図300である。エンコーダ302は、ハプティック駆動値304を符号化値306に変換する。駆動値304は、ハプティック再生の強度を制御するように構成される。駆動値304は、入力信号をハプティック信号に変換するために当業者に知られている任意のハプティック変換アルゴリズムによって得ることができる。一実施形態では、駆動値304は、駆動値304を得るためにオーディオ-ハプティック変換を実行する編集ソフトウェア内のオーディオファイルなどのハプティックファイルソースから得ることができる。例えば、駆動値304は、一実施形態において、米国特許出願公開第2015/0070269号公報に開示されているピーク検出を用いて、オーディオ信号を触覚信号に変換することから導出されてもよく、これは、参照により本明細書に援用される。
【0029】
例えば、一実施形態は、入力信号の各部分について最大振幅値を識別し、識別された最大振幅値に基づいて入力信号の各部分についてハプティック信号を生成するピーク検出ハプティック変換アルゴリズムを実装し、識別された最大振幅値は、ハプティック信号の大きさを定義する。別の例として、一実施形態は、入力信号の一部(例えば、最も高い周波数値を有する入力信号の一部)をフィルタリングし、入力信号の残りの部分に基づいてハプティック信号を生成するローパスフィルタハプティック変換アルゴリズムを実装する。さらに別の例として、一実施形態は、入力信号の一部(例えば、最も低い周波数値を有する入力信号の一部)をフィルタリングし、入力信号の残りの部分に基づいてハプティック信号を生成するハイパスフィルタハプティック変換アルゴリズムを実装する。さらに別の例として、一実施形態は、入力信号の少なくとも一部のピッチをシフトし、ピッチシフトされた入力信号に基づいてハプティック信号を生成するピッチシフトハプティック変換アルゴリズムを実装する。さらに別の例として、一実施形態は、入力信号の少なくとも一部の周波数をシフトし、周波数シフトされた入力信号に基づいてハプティック信号を生成する周波数シフトハプティック変換アルゴリズムを実装する。
【0030】
一実施形態では、駆動値304は、ハプティック効果の包絡線/形状を定義するパラメータ化された振動定義の形成で受け取ることができる。この定義は、持続時間、頻度、大きさなどを含むハプティック効果を定義するパラメータを含むことができる。一実施形態では、定義は、Immersion Corp.からの「TouchSense(登録商標)3000 Haptic Design Kit」に従う。この実施形態では、ハプティック効果は、3つの基本部分/領域または影響の大きさを含む包絡線によって形成される定義形によって定義される: MagSweepまたはPeriodic basis効果から形成されるインパルス、サステイン、およびフェード。
【0031】
一実施形態では、エンコーダ302は、[128,255]などの範囲の離散駆動値304を受け取るように構成される。この実施形態では、駆動値128は、ゼロハプティック強度を送達するように構成される。ハプティック強度は、駆動値に伴って増加し、255の駆動値は、最大のハプティック強度を生成するように構成される。
【0032】
エンコーダ302は、加速度トラッカ308および駆動値マッパ310を含む。加速度トラッカ308は、モータの性能(例えば、立ち上がり曲線および立ち下がり曲線)の表を使用して、リアルタイムでアクチュエータの推定加速度を予測し、追跡する。それは、アクチュエータが所望の強度に迅速に到達することを可能にするように構成されたフィードフォワードアルゴリズムを実施する。それは、短い持続時間でアクチュエータをオーバードライブする(例えば、アクチュエータを最大電圧で動作させる)ことによって行う。オーバードライブ持続時間は、アクチュエータの立ち上がり時間および要求されるハプティック強度(駆動値304によって示される)の関数である。加速度トラッカ308および対応するフィードフォワードアルゴリズムの例示的な実施形態は、米国特許第9,213,408号に開示されており、参照により本明細書に援用される。
【0033】
例えば、一般に非線形の立ち上がりおよび立ち下がり特性を有する低速アクチュエータをモデル化するために、実施形態は、アクチュエータが静止から定格加速の90%まで立ち上がるのにかかる合計立ち上がり時間を測定する。一実施形態では、この立ち上がり時間領域は、立ち上がり時間の10%、20%・・・90%で10個のセグメントに分割され、各点における対応する加速度が記録される。立ち上がり曲線と同様に、一実施形態では、10個の値が立ち下がり曲線に対して得られるが、任意の数の値を使用することができる。落下時間は、アクチュエータが定格加速度から知覚可能な加速度未満(一実施形態では~0.04g)に進むのに必要な時間であると考えられる。ブレーキがアクチュエータによって支持される場合、負のオーバードライブ電圧、または分路などの他の何らかのブレーキ機構が適用される。そうでなければ、電圧は印加されない。このチューニングモデルを適用することによって、実施形態は、モータがプレイすることができる効果、および一定の時間におけるモータの状態の効果のより正確なピクチャを有する。
【0034】
一実施形態では、加速度トラッカ308の機能は、典型的には5ミリ秒であるタイマ・ティック/サイクル毎に実行される。各ティックにおいて、実施形態は、所望の力を決定し、アクチュエータに送信するための新しい力/電圧を計算する(すなわち、モータを所望の速度で回転させるために部分的にオーバードライブまたはブレーキをかける)。実施形態は、アクチュエータが立ち上がりカーブまたは立ち下がりカーブ上にある場所に関連してモータが現在何をしているかの推定値を考慮に入れることによって、モータがどのくらい速く回転できるかに比較して、ハプティック効果に基づいてモータがどのくらい速く回転すべきかを決定する。実施形態は、モータを所望の速度にできるだけ近接して回転させる電圧を計算し、次いで、推定速度を更新/再計算するが、これはモータがタイマ・ティックで所望の速度に到達できない場合、所望の速度と同じではない可能性がある。
【0035】
一実施形態では、例えば、アクチュエータの立ち上がり曲線および立ち下がり曲線は、チューニングプロセスに対する変化に基づいて10個の線形セグメントに分割される。タイマチックにおける力値の最大増加/減少は、これらの線分の傾きに基づいて決定される。傾きは、アクチュエータが次のタイマティックまでに所望の力値に到達できるかどうかを判定するために使用される。そうでなければ、キックパルスまたはブレーキパルスが印加される。アクチュエータが次のタイマティックまでに所望の力に到達することができる場合、アクチュエータは、タイマティックの終わりまでに所望の力値になるように、力を増加/減少させるべき量が決定される。推定力は、刻み毎に更新される。
【0036】
一実施形態では、現在のアクチュエータが試験されたアクチュエータの曲線をたどると仮定して、アクチュエータが各種加速ポイントまで上昇/下降するのにどのくらいかかるかを示す応答時間曲線/表を得るためにアクチュエータが試験されると、記録された曲線/表は、データを抽出し、アクチュエータの加速が任意の時点であるべきものを推定するためにリアルタイムで使用される。この実施形態は、例えば、アクチュエータが最大作動に到達するのにどれだけの時間がかかるか、およびアクチュエータが最大作動から休止状態に移行するのにどれだけの時間がかかるかを推定することができる。これらの値に基づいて、加速度トラッカ308は、現在の加速度状態を周期的に(例えば、ミリ秒毎または5ミリ秒毎)追跡し、アクチュエータがどれだけの加速度を有するかを推定し、それに応じて、例えば、オーバードライブ電圧を印加することによって(例えば、特定のオーバードライブ期間の間、アクチュエータをオンに保つことになる最大電圧でアクチュエータを駆動することによって)、アクチュエータを高速で応答させるために、修正された駆動値をキューに入れる。したがって、加速度トラッカ308は、駆動値304に基づいて修正された駆動値を生成する。
【0037】
次に、駆動値マッパ310は、加速トラッカ308から修正された駆動値を受信し、それらを、例えば、
図2に関連して本明細書に開示されているように、パルスにおける「オン」持続時間を示すデューティファクタである符号化値306にマッピングする。
【0038】
図4は、一実施形態における再生モジュール402の機能性を示す例示的なブロック
図400である。再生402は、符号化値404(例えば、値のアレイ)を受け取り、以下に詳細に説明するように、それらをハプティック出力406に変換する。一実施形態では、再生モジュール402は、Android
(登録商標)バイブパターンコンバータ408と、Android
(登録商標)バイブパターン再生モジュール410とを含み、Android
(登録商標)バイブパターン再生モジュール410は以下で詳細に説明するように、Android
(登録商標)デバイス内で実行するように構成される。しかし、他の代替実施形態は、Android
(登録商標)バイブパターンコンバータ408およびAndroid
(登録商標)バイブパターン再生モジュール410と類似の機能をそれぞれ提供することによって、符号化値404を好適なオン/オフパターンに変換し、アクチュエータ上でそれらを再生するように他のデバイスで実行するように構成されたパターン変換器およびパターン再生モジュールを実装することができる。
【0039】
一般に、Android(登録商標)バイブレートAPIは、オン/オフパターンの入力を必要とするパブリックAPIである。再生モジュール402内からこのAPIを呼び出すために、再生モジュール402は、Android(登録商標)バイブパターンコンバータ408およびAndroid(登録商標)バイブパターン再生モジュール410を実装する。Android(登録商標)バイブパターンコンバータ408は、インプットを符号化値404のアレイとして受け取り、アクチュエータ状態を追跡するステートマシンを実施する。Android(登録商標)バイブパターンコンバータ408は、ステートマシンを追跡し、更新し、Android(登録商標)パブリックAPIに適したバイブレーションパターンを出力する。Android(登録商標)バイブパターン再生モジュール410は、Android(登録商標)バイブパターンコンバータ408からの出力を受信し、これらのパラメータを用いてAndroid(登録商標)の公開APIを呼び出す。一実施形態では、Android(登録商標)バイブパターンコンバータ408およびAndroid(登録商標)バイブパターン再生モジュール410は、符号化値404が再生モジュール402によって受信されるとすぐにアクティブになる。
【0040】
一実施形態では、Android(登録商標)バイブパターンコンバータ408によって実施されるステートマシンは、以下のパラメータを追跡する:
・アクチュエータオン時間(「act_on_time」): アクチュエータがオンのままでいる必要がある時間
・アクチュエータオフ時間(「act_off_time」): アクチュエータがオフのままである必要がある時間。それは、パルスの持続時間とアクチュエータのON時間との間の差である
・アクチュエータのアクティブ時間(「act_active_time」): アクチュエータがその現在の状態でアクティブである時間
・アクチュエータの現在の状態(「act_state」):オンまたはオフ。
【0041】
一実施形態では、符号化値404は、Android(登録商標)バイブパターンコンバータ408内の「Write_value」機能によってエンコーダから受信される。符号化値は、アクチュエータがパルスにおいてオンのままである必要がある時間を示す。符号化値は「act_on_time」パラメータにコピーされ、「act_off_time」パラメータは以下の数値をとる:
act_off_time=パルス幅-act_on_time
【0042】
「act_state」値は、以下の条件を除いて変更されない:
・前の符号化値が現在の符号化値より小さく、アクチュエータの現在の状態がOFFである場合、アクチュエータ状態はONに変更され、「act_active_time」パラメータが再設定される。
・前の符号化値が現在の符号化値より大きく、アクチュエータの現在の状態がオンである場合、アクチュエータ状態はオフに変更され、「act_active_time」パラメータが再設定される。
【0043】
1ミリ秒毎に、機能「Update」は、呼び出される。いったん呼び出されると、「Update」は、「act_active_time」パラメータを更新/インクリメントし、「act_active_time」パラメータを必要な状態時間と比較し、必要に応じて状態を変更する。例えば、アクチュエータが現在オン状態にある場合、ミリ秒毎に「act_active_time」が増分され、「act_ON_time」と比較される。「act_active_time」が「act_on_time」より大きい場合、「act_active_time」はリセットされ、状態はオフに変更される。次に更新機能が実行されると、「act_active_time」が追跡され、「act_off_time」と比較される。
【0044】
一実施形態では、それぞれの符号化値404は、アクチュエータ駆動値の更新「ティック」のために構成される。例えば、いくつかのアクチュエータでは、更新チックは5ミリ秒であり、アクチュエータ駆動値は5ミリ秒毎に更新される。したがって、「更新」機能は、符号化値404ごとに数回呼び出すことができる。例えば、符号化値が5ミリ秒に設定されている場合、「更新」機能は、符号化値毎に5回呼び出される。「更新」機能への各呼び出し中、状態は継続的に監視される。状態が変更すると、状態時間が記録される。状態時間は、Android(登録商標)バイブレート機能によって期待されるフォーマットで投入される。パターンは、「OFF_DURATION_MILLISEC、ON_DURATION_MILLISEC、OFF_DURATION_MILLISEC、ON_DURATION_MILLISEC...」パターンとして投入され、ここで、「OFF_DURATION_MILLISEC」はアクチュエータがオフにされる期間であり、「ON_DURATION_MILLISEC」はアクチュエータがオンにされる期間である。次に、Android(登録商標)バイブレートパターン再生モジュール410は、Android(登録商標)バイブレートパターンコンバータ408からの出力を取り、Android(登録商標)バイブレートAPI関数を呼び出し、これによりアクチュエータを起動する。
【0045】
一実施形態では、PWM技術がより低速のアクチュエータ(例えば、ERM)に対して最も良く機能するが、アクチュエータの能力に応じて様々なハプティクス機能を異なるように構成することによって、より高速のアクチュエータに対しても機能することができる。例えば、ハプティクス機能は、より高速のアクチュエータに使用されるパルスのパルス幅がより低速のアクチュエータに使用されるパルスのパルス幅と比較してより小さくなるように、実施形態におけるパルス幅パラメータを調整することによって、より高速のアクチュエータ用に構成されてもよい。
【0046】
図5-7は、本実施形態に係るハプティック機能のフロー
図500、600、700である。一実施形態では、フロー
図500、600、700の機能は、メモリまたは他のコンピュータ可読媒体または有形媒体に格納されたソフトウェアによって実装され、プロセッサによって実行される。他の実施形態では、機能は、ハードウェア(例えば、特定用途向け集積回路(「ASIC」)、プログラマブルゲートアレイ(「PGA」)、フィールドプログラマブルゲートアレイ(「FPGA」)などの使用を通して)、またはハードウェアとソフトウェアの任意の組合せによって実行することができる。
【0047】
より詳細には、
図5は、一実施形態における再生モジュール402の機能を示し、ブロック
図400の要素を参照して以下に説明する。再生モジュール402は、一実施形態では
図1のシステム10におけるハプティクス生成モジュール16と同じであってもよいし、その中に含まれていてもよいし、またはそれに加えて提供されてもよい。
【0048】
502において、再生モジュール402内のAndroid(登録商標)バイブパターンコンバータ408は、符号化値404のアレイを受信する。504において、Android(登録商標)バイブパターンコンバータ408は、アレイから要素を読み取る。506において、Android(登録商標)バイブパターンコンバータ408は、アレイの要素に基づいて、アクチュエータの「オン」時間および「オフ」時間値を計算する。
【0049】
508において、Android(登録商標)バイブパターンコンバータ408は、「更新」機能を呼び出す。「更新」機能の機能性は、本明細書で詳細に説明される通りである。510において、Android(登録商標)バイブパターンコンバータ408はアクチュエータ状態を追跡し、その結果のパターンを投入する。512において、Android(登録商標)バイブパターンコンバータ408は、「更新」機能に対する呼出しの数がミリ秒単位のアクチュエータ更新レートに達したかどうかを判定する。そうでない場合、Android(登録商標)バイブパターンコンバータ408は、508にループバックする。「更新」機能への呼び出し回数がミリ秒単位のアクチュエータ更新速度に達した場合、Android(登録商標)バイブパターンコンバータ408は、符号化値の配列の端部に達したかどうかを判定する。そうでない場合、Android(登録商標)バイブパターンコンバータ408は、504にループバックする。符号化値のアレイの端部に到達した場合、Android(登録商標)バイブパターンコンバータ408は、決定されたパターンのアレイを返す。
【0050】
図6は、一実施形態における「更新」機能の機能性を示す。602において、アクチュエータアクティブ時間が「1」だけインクリメントされる。604において、アクチュエータアクティブ時間が必要な状態時間に達したか否かが判定される。そうでない場合、処理は、610で終了する。アクチュエータアクティブ時間が必要な状態時間に達した場合、606において、アクチュエータアクティブ時間がゼロに再設定され、606において、アクチュエータ状態が切り替えられ、610において、処理が終了する。
【0051】
図7の機能では、702において、アクチュエータ駆動値を符号化する符号化値が受信され、アクチュエータ駆動値は、ハプティック効果の強度に対応する。704において、符号化値は、オン/オフ期間のパターンに変換され、706において、オン/オフ期間のパターンがアクチュエータ上で再生され、ハプティック効果が生成される。
【0052】
一実施形態では、アクチュエータ駆動値は、ワークステーション上のデザインツールによって提供され、符号化値は、ワークステーションで取得され、変換および再生は、ワークステーションと通信し、アクチュエータを動作させる装置で実行される。
【0053】
一実施形態では、符号化値がパルスのパルス幅を変調するためにアクチュエータ駆動値を使用することによって得られ、符号化値は、アクチュエータオン期間を示す。一実施形態では、パルスのパルス周期は、アクチュエータの特性に従って選択される。一実施形態では、パルスのパルス周期は、実験によって決定される。
【0054】
一実施形態では、再生は、Android(登録商標)振動APIにオン/オフ期間のパターンを提供することによって実行される。
【0055】
一実施形態では、符号化値のオン/オフ期間パターンへの変換は、アクチュエータ状態を追跡するステートマシンを実施することによって実行される。一実施形態では、アクチュエータ状態は、アクチュエータオン時間パラメータ、アクチュエータオフ時間パラメータ、アクチュエータアクティブ時間パラメータ、およびアクチュエータ現在状態パラメータを含む。一実施形態では、符号化値によって示されるアクチュエータオン期間は、アクチュエータオン時間パラメータにコピーされる。一実施形態では、アクチュエータオフパラメータは、パルスのパルス持続時間とアクチュエータオン時間パラメータとの間の差分として設定される。
【0056】
一実施形態では、アクチュエータ現在状態パラメータがオフであり、前の符号化値が符号化値未満である場合、アクチュエータ現在状態パラメータは、オンに変更され、アクチュエータアクティブ時間パラメータは、再設定される。一実施形態では、アクチュエータ現在状態パラメータがオンであり、前の符号化値が符号化値より大きいとき、アクチュエータ現在状態パラメータは、オフに変更され、アクチュエータアクティブ時間パラメータは、再設定される。
【0057】
一実施形態では、符号化値をオン/オフ期間のパターンに変換するステップは、ミリ秒毎に更新機能を呼び出すステップを含む。一実施形態では、更新機能は、アクチュエータアクティブ時間パラメータをインクリメントする。一実施形態では、更新機能は、アクチュエータアクティブ時間パラメータを必要な状態タイムと比較する。
【0058】
一実施形態では、アクチュエータ現在状態パラメータがオンのとき、更新機能は、アクチュエータアクティブ時間パラメータをアクチュエータオン時間パラメータと比較し、アクチュエータアクティブ時間パラメータがアクチュエータオン時間パラメータより大きい場合、アクチュエータアクティブ時間パラメータをリセットし、アクチュエータ現在状態パラメータをオフに変更する。
【0059】
一実施形態では、アクチュエータ現在状態パラメータがオフのとき、更新機能は、アクチュエータアクティブ時間パラメータをアクチュエータオフ時間パラメータと比較し、アクチュエータアクティブ時間パラメータがアクチュエータオフ時間パラメータより大きい場合、アクチュエータアクティブ時間パラメータをリセットし、アクチュエータ現在状態パラメータをオンに変更する。
【0060】
開示されるように、実施形態は、リアルタイムのハプティクス生成を可能にする。一実施形態は、Android(登録商標)バイブレートAPIなどのオン/オフ制御APIを使用し、高忠実度ハプティック機能を表現するためにアクチュエータに微細粒度制御を提供するPWM機能を実装する。
【0061】
いくつかの実施形態は、本明細書で具体的に例示および/または説明される。しかし、本発明の精神および意図する範囲から逸脱することなく、開示された実施形態の修正および変形は、上記の教示によっておよび添付の特許請求の範囲の範囲内でカバーされることが理解されるのであろう。