(57)【要約】一実施形態は、ハプティック機能を提供する。この実施形態はアクチュエータ駆動値を符号化する符号化値を受信し、アクチュエータ駆動値はハプティック効果の強度に対応する。この実施形態は、符号化値をオン／オフ期間のパターンに変換し、アクチュエータ上でオン／オフ期間のパターンを再生してハプティック効果を生成する。【選択図】図１
2019519846.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサによって実行されると、前記プロセッサにハプティック機能を提供させる命令が格納された非一時的コンピュータ可読媒体であって、前記プロセッサは、
ハプティック効果の強度に対応するアクチュエータ駆動値を符号化する符号化値を受信し、
前記符号化値をオン／オフ期間のパターンに変換し、
ハプティック効果を生じるために、アクチュエータ上で前記オン／オフ期間のパターンを再生する、
コンピュータ可読媒体。
【請求項２】
前記アクチュエータ駆動値は、ワークステーション上の設計ツールによって提供され、前記符号化値は、前記ワークステーションで取得され、前記変換および前記再生は、前記ワークステーションと通信し、かつ前記アクチュエータを動作させる装置において行われる、請求項１に記載のコンピュータ可読媒体。
【請求項３】
前記符号化値は、パルスのパルス幅を変調するために、前記アクチュエータ駆動値を使用することによって得られ、前記符号化値は、アクチュエータオン期間を示す、請求項１に記載のコンピュータ可読媒体。
【請求項４】
前記パルスのパルス周期は、前記アクチュエータの特性に従って選択される、請求項３に記載のコンピュータ可読媒体。
【請求項５】
前記パルスのパルス周期は、実験によって決定される、請求項３に記載のコンピュータ可読媒体。
【請求項６】
前記再生は、オン／オフ期間のパターンをＡｎｄｒｏｉｄバイブレートアプリケーションプログラミングインターフェース（ＡＰＩ）に提供することによって行われる、請求項１に記載のコンピュータ可読媒体。
【請求項７】
前記符号化値の前記オン／オフ期間のパターンへの変換は、アクチュエータ状態を追跡するステートマシンを実装することによって行われる、請求項１に記載のコンピュータ可読媒体。
【請求項８】
前記アクチュエータ状態は、アクチュエータオン時間パラメータ、アクチュエータオフ時間パラメータ、アクチュエータアクティブ時間パラメータ、およびアクチュエータ現在状態パラメータを含む、請求項７に記載のコンピュータ可読媒体。
【請求項９】
前記符号化値によって示されるアクチュエータオン期間は、前記アクチュエータオン時間パラメータにコピーされる、請求項８に記載のコンピュータ可読媒体。
【請求項１０】
前記アクチュエータオフ時間パラメータは、パルスのパルス期間と前記アクチュエータオン時間パラメータとの間の差として設定される、請求項８に記載のコンピュータ可読媒体。
【請求項１１】
前記アクチュエータ現在状態パラメータがオフであり、以前の符号化値が前記符号化値未満である場合、前記アクチュエータ現在状態パラメータは、オンに変更され、前記アクチュエータアクティブ時間パラメータは、リセットされる、請求項８に記載のコンピュータ可読媒体。
【請求項１２】
前記アクチュエータ現在状態パラメータがオンであり、以前の符号化値が前記符号化値より大きい場合、前記アクチュエータ現在状態パラメータは、オフに変更され、前記アクチュエータアクティブ時間パラメータは、リセットされる、請求項８に記載のコンピュータ可読媒体。
【請求項１３】
前記符号化値を前記オン／オフ期間のパターンに変換することは、ミリ秒毎に更新機能を呼び出すことを含む、請求項８に記載のコンピュータ可読媒体。
【請求項１４】
前記更新機能は、前記アクチュエータアクティブ時間パラメータをインクリメントする、請求項１３に記載のコンピュータ可読媒体。
【請求項１５】
前記更新機能は、前記アクチュエータアクティブ時間パラメータを、必要な状態時間と比較する、請求項１４に記載のコンピュータ可読媒体。
【請求項１６】
前記アクチュエータ現在状態パラメータがオンであるとき、前記更新機能は、前記アクチュエータアクティブ時間パラメータを前記アクチュエータオン時間パラメータと比較し、前記アクチュエータアクティブ時間パラメータが前記アクチュエータオン時間パラメータより大きい場合、前記アクチュエータアクティブ時間パラメータをリセットし、前記アクチュエータ現在状態パラメータをオフに変更する、請求項１５に記載のコンピュータ可読媒体。
【請求項１７】
前記アクチュエータ現在状態パラメータがオフであるとき、前記更新機能は、前記アクチュエータアクティブ時間パラメータを前記アクチュエータオフ時間パラメータと比較し、前記アクチュエータアクティブ時間パラメータが前記アクチュエータオフ時間パラメータより大きい場合、前記アクチュエータアクティブ時間パラメータをリセットし、前記アクチュエータ現在状態パラメータをオンに変更する、請求項１５に記載のコンピュータ可読媒体。
【請求項１８】
ハプティック効果の強度に対応するアクチュエータ駆動値を符号化する符号化値を受信するステップと、
前記符号化値をオン／オフ期間のパターンに変換するステップと、
ハプティック効果を生じるために、アクチュエータ上で前記オン／オフ期間のパターンを再生するステップと、
を備えるハプティック機能を提供する方法。
【請求項１９】
前記アクチュエータ駆動値は、ワークステーション上の設計ツールによって提供され、前記符号化値は、前記ワークステーションで取得され、前記変換および前記再生は、前記ワークステーションと通信し、かつ前記アクチュエータを動作させる装置において行われる、請求項１８に記載の方法。
【請求項２０】
プロセッサと、
前記プロセッサによって実行されると、前記プロセッサにハプティック機能を提供させる命令を格納するメモリと、を備えるシステムであって、前記プロセッサは、
ハプティック効果の強度に対応するアクチュエータ駆動値を符号化する符号化値を受信し、
前記符号化値をオン／オフ期間のパターンに変換し、
ハプティック効果を生じるために、アクチュエータ上で前記オン／オフ期間のパターンを再生する、
システム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１６年６月２９日に出願された米国仮特許出願第６２／３５６，２６５号および２０１７年６月２７日に出願された米国特許出願第１５／６３４，２８８号の優先権を主張し、それらの開示は、参照により本明細書に組み込まれる。
【０００２】
技術分野
一実施形態は、概して、ハプティックシステム、特に、ハプティック効果を生成するシステムに関する。
【背景技術】
【０００３】
背景情報
一般に、電子デバイス製造業者は、ユーザにとって豊富なインターフェースを生産しようと努めている。従来のデバイスは、ユーザにフィードバックを提供するために視覚的および聴覚的キュー（合図）を使用するが、いくつかのインターフェースデバイスではアクティブおよび抵抗力のフィードバックなどの運動感覚的フィードバック、および／または振動、テクスチャー、および加熱などの触覚的フィードバックも、ユーザに提供され、より一般的には「ハプティックフィードバック」または「ハプティック効果」として集合的に知られている。ハプティックフィードバックは、ユーザインターフェースを強化し、単純化するキューを提供することができる。具体的には、振動効果または振動触覚ハプティック効果は、電子デバイスのユーザにキューを提供して、ユーザに特定のイベントを警告するか、またはシミュレートされた環境または仮想環境内により大きな感覚的没入を作り出すためのリアルなフィードバックを提供するのに役立つ場合がある。
【０００４】
一般に、ハプティック効果開発者は、デバイスのハプティック効果を作成することができ、デバイスは、ハプティック効果を出力するように構成することができる。異なるタイプのハードウェアは、異なるハードウェア特性により、異なるタイプのハプティック効果を生成することができる。例えば、偏心回転マスモータアクチュエータ、直線状共振アクチュエータ、および圧電アクチュエータなどの異なるタイプのアクチュエータは異なるアクチュエータの異なる電気機械特性により、異なるタイプのハプティック効果を生成することができる。
【０００５】
一般に、いくつかのデバイスは、アクチュエータを制御するために、Ｇｏｏｇｌｅ  Ｃｏｒｐ．からの「Ａｎｄｒｏｉｄ（登録商標）」バイブレートＡＰＩなどの「オン／オフ」バイブレート制御を実装することができる。しかし、このような装置は、アクチュエータの駆動値および持続時間にわたる微細な制御を有さない場合がある。したがって、「オン／オフ」バイブレート制御に依存するデバイス上で、アクチュエータの駆動値および持続時間にわたる細かい制御を提供する必要がある。
【発明の概要】
【０００６】
一実施形態は、ハプティック機能を提供するシステムである。このシステムは、アクチュエータ駆動値を符号化する符号化値を受信し、アクチュエータ駆動値は、ハプティック効果の強度に対応する。このシステムは、符号化値をオン／オフ期間のパターンに変換し、アクチュエータ上でオン／オフ期間のパターンを再生してハプティック効果を生成する。
【図面の簡単な説明】
【０００７】
【図１】図１は、本発明の実施形態によるコンピュータサーバ／システムのブロック図である。
【図２】図２は、同じパルス周期を有するが、異なるデューティサイクルを有するパルスの例示的なグラフを示す。
【図３】図３は、一実施形態におけるエンコーダの機能性を示す例示的なブロック図である。
【図４】図４は、一実施形態における再生モジュールの機能性を示す例示的なブロック図である。
【図５】図５は、本発明の実施形態によるハプティック機能を実行するときの図１のハプティクス生成モジュールの動作のフロー図である。
【図６】図６は、本発明の実施形態によるハプティック機能を実行するときの図１のハプティクス生成モジュールの動作のフロー図である。
【図７】図７は、本発明の実施形態によるハプティック機能を実行するときの図１のハプティクス生成モジュールの動作のフロー図である。
【発明を実施するための形態】
【０００８】
一実施形態は、音声または映像ソースデータ、またはマルチメディアクリップの含有量に関連する任意の感覚データ（例えば、オブジェクトの加速、回転、速度など）などのソースデータが与えられたハプティック効果を自動的に生成することができる装置である。実施形態は、アクチュエータに印加されるパルス幅変調（すなわち、オン／オフ）信号を使用してハプティック効果を効果的に生成することができるように、ソースデータを振動パターンに変換することによってハプティック効果を生成する。
【０００９】
図１は、本発明の一実施形態によるシステム１０のブロック図を示す。一実施形態では、システム１０は、装置の一部であり、装置のためのリアルタイムハプティクス生成機能を提供する。別の実施形態では、システム１０は、装置とは別個であり、装置のためのリアルタイム触覚生成機能をリモートで提供する。
【００１０】
単一のシステムとして示されているが、システム１０の機能は、分散システムとして実装することができる。システム１０は、情報を通信するためのバス１２または他の通信機構と、情報を処理するためにバス１２に結合されたプロセッサ２２とを含む。プロセッサ２２は、任意のタイプの汎用または特定目的のプロセッサとすることができる。システム１０はさらに、プロセッサ２２によって実行される情報および命令を記憶するためのメモリ１４を含む。メモリ１４は、ランダムアクセスメモリ（「ＲＡＭ」）、リードオンリーメモリ（「ＲＯＭ」）、磁気ディスクまたは光ディスクなどの静的記憶装置、または任意の他のタイプの一時的または非一時的コンピュータ可読媒体の任意の組合せを含むことができる。
【００１１】
コンピュータ可読媒体は、プロセッサ２２によってアクセスされ得る任意の利用可能な一時的または非一時的媒体であり得、揮発性および不揮発性媒体、リムーバブルおよび非リムーバブルメディア、通信媒体、および記憶媒体の両方を含み得る。通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または搬送波もしくは他の伝達機構などの変調データ信号内の他のデータを含むことができ、当技術分野で知られている任意の他の形態の情報配信媒体を含むことができる。記憶媒体は、ＲＡＭ、フラッシュメモリ、ＲＯＭ、消去可能プログラマブルリードオンリメモリ（「ＥＰＲＯＭ」）、電気的消去可能プログラマブルリードオンリメモリ（「ＥＥＰＲＯＭ」）、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスクリードオンリメモリ（「ＣＤ−ＲＯＭ」）、または当技術分野で知られている任意の他の形態の記憶媒体を含むことができる。
【００１２】
一実施形態では、メモリ１４は、プロセッサ２２によって実行されると機能を提供するソフトウェアモジュールを記憶する。これらのモジュールは、一実施形態において、システム１０のオペレーティングシステムの機能を提供するオペレーティングシステム１５と、装置の残りの部分とを含む。モジュールは、本明細書でより詳細に開示されるように、パルス幅変調（「ＰＷＭ」）に従って変調された信号を使用してハプティック効果を生成するハプティクス生成モジュール１６をさらに含む。ＰＷＭは、メッセージをパルス信号に符号化するために使用される変調技術である。ＰＷＭは、電気デバイスに供給される電力を制御するために使用されてもよく、負荷に供給される電圧（および電流）の平均値は、動力と負荷との間の仮想または物理的スイッチを高速でオンおよびオフにすることによって制御される。オフ期間と比較してスイッチが長いほど、負荷に供給される総電力は高くなる。
【００１３】
一実施形態では、ハプティクス生成モジュール１６は、複数のモジュールを備えることができ、個々のモジュールは、それぞれ、ハプティック効果を生成するための具体的な個々の機能を提供する。システム１０は、通常、スマートフォンのオペレーティングシステムの一部であるバイブレートアプリケーションプログラミングインターフェース（「ＡＰＩ」）などの追加の機能を含む１つまたは複数の追加のアプリケーションモジュール１８を含む。
【００１４】
一実施形態では、システム１０は、リモートソースからデータを送信および／または受信してもよく、さらに、赤外線、無線、Ｗｉ−Ｆｉ、セルラーネットワーク通信などのモバイルワイヤレスネットワーク通信を提供するために、ネットワークインターフェースカードなどの通信デバイス２０を含んでもよい。一実施形態では、通信デバイス２０は、イーサネット（登録商標）接続、モデムなどの有線ネットワーク接続を提供することができる。
【００１５】
プロセッサ２２は、さらに、グラフィカル表現またはユーザインターフェースをユーザに表示するために、バス１２を介して液晶ディスプレイ（「ＬＣＤ」）などのディスプレイ２４に結合される。ディスプレイ２４は、プロセッサ２２との間で信号を送受信するように構成されたタッチスクリーンなどのタッチ感知入力装置であってもよく、マルチタッチ・タッチスクリーンであってもよい。プロセッサ２２は、ユーザがマウスまたはスタイラスなどのシステム１０と相互作用することを可能にするキーボードまたはカーソル制御２８にさらに結合されてもよい。
【００１６】
一実施形態では、システム１０は、アクチュエータ２６をさらに含む。プロセッサ２２は、生成されたハプティック効果と関連付けられたハプティック信号をアクチュエータ２６に送信し、アクチュエータ２６は、振動触覚ハプティック効果、静電摩擦ハプティック効果、または変形ハプティック効果などのハプティック効果を出力する。アクチュエータ２６は、アクチュエータ駆動回路を含む。アクチュエータ２６は、例えば、電気モータ、電磁アクチュエータ、ボイスコイル、形状記憶合金、電気活性ポリマー、ソレノイド、偏心回転質量モータ（「ＥＲＭ」）、直線状共振アクチュエータ（「ＬＲＡ」）、圧電アクチュエータ、高帯域幅アクチュエータ、電気活性ポリマー（「ＥＡＰ」）アクチュエータ、静電摩擦ディスプレイ、または超音波振動発生器であってもよい。代替実施形態では、システム１０は、アクチュエータ２６（図１には図示せず）に加えて、１つまたは複数の追加のアクチュエータを含むことができる。
【００１７】
アクチュエータ２６は、ハプティック出力デバイスの一例であり、ハプティック出力デバイスは、駆動信号に応じて、振動触覚ハプティック効果、静電摩擦ハプティック効果、または変形ハプティック効果などのハプティック効果を出力するように構成された装置である。代替実施形態では、アクチュエータ２６は、他の何らかのタイプのハプティック出力ハプティックに置き換えることができる。さらに、他の代替実施形態では、システム１０は、アクチュエータ２６を含まなくてもよく、システム１０とは別のデバイスは、ハプティック効果を生成するアクチュエータまたは他のハプティック出力装置を含み、システム１０は、生成されたハプティック効果信号を通信デバイス２０を介して当該装置に送信する。
【００１８】
システム１０は、さらに、データベース３０に動作可能に結合することができ、データベース３０は、モジュール１６および１８によって使用されるデータを記憶するように構成することができる。データベース３０は、オペレーショナルデータベース、分析データベース、データウェアハウス、分散データベース、エンドユーザデータベース、外部データベース、ナビゲーションデータベース、インメモリデータベース、ドキュメント指向データベース、リアルタイムデータベース、リレーショナルデータベース、オブジェクト指向データベース、または当技術分野で知られている任意の他のデータベースとすることができる。
【００１９】
一実施形態では、システム１０は、スピーカ３２をさらに含む。プロセッサ２２は、オーディオ信号をスピーカ３２に送信し、スピーカ３２は、オーディオ効果を出力する。スピーカ３２は、例えば、ダイナミックラウドスピーカ、電気ダイナミックラウドスピーカ、圧電ラウドスピーカ、磁歪ラウドスピーカ、静電ラウドスピーカ、リボンおよび平面磁気ラウドスピーカ、曲げ波ラウドスピーカ、フラットパネルラウドスピーカ、ヘイルエアモーショントランスデューサ、プラズマアークスピーカ、デジタルラウドスピーカ等であってもよい。代替実施形態では、システム１０は、スピーカ３２（図１には図示せず）に加えて、１つ以上の追加のスピーカを含むことができる。さらに、他の代替実施形態では、システム１０は、スピーカ３２を含まなくてもよく、システム１０とは別の装置は、オーディオ効果を出力するスピーカを含み、システム１０は、通信装置２０を介してそのデバイスにオーディオ信号を送信する。
【００２０】
一実施形態では、システム１０は、センサ３４をさらに含む。センサ３４は、エネルギーの形態、または音、動き、加速度、生体信号、距離、流れ、力／圧力／歪み／曲がり、湿度、直線位置、配向／傾斜、無線周波数、回転位置、回転速度、スイッチの操作、温度、振動、可視光強度などの他の物理的特性を検出するように構成され得る。センサ３４は、さらに、検出されたエネルギーまたは他の物理的特性を、電気信号、または仮想センサ情報を表す任意の信号に変換するように構成され得る。センサ３４は、加速度計、ガルバニック皮膚応答センサ、容量センサ、ホール効果センサ、赤外線センサ、超音波センサ、圧力センサ、光ファイバセンサ、屈曲センサ（または曲げセンサ）、力感知抵抗器、ロードセル、ＬｕＳｅｎｓｅ  ＣＰＳ２  １５５、小型圧力トランスデューサ、圧電センサ、歪みゲージ、ハイグロメーター、リニアポジションタッチセンサ、リニアポジションポテンショメータ（またはスライダ）、リニア可変差動トランス、コンパス、傾斜計、磁気タグ（またはＲＦＩＤ（ｒａｄｉｏ  ｆｒｅｑｕｅｎｃｙ  ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）タグ）、ロータリエンコーダ、ロータリポテンショメータ、ジャイロスコープ、オンオフスイッチ、温度センサ（温度計、熱電対、抵抗温度検出器、サーミスタ、テンパーなど）電子変換集積回路等）、マイクロホン、測光器、高度計、生物学的モニタ、カメラ、光依存性抵抗器等、または心電図、脳波、筋電図、眼電図、口蓋電気図その他の電気生理学的出力を出力する装置などの任意のデバイスとすることができるが、これらに限定されない。
【００２１】
一実施形態では、システム１０は、センサ３４（図１には図示せず）に加えて、１つ以上の追加のセンサを含むことができる。一実施形態では、センサ３４および１つまたは複数の追加のセンサは、センサアレイの一部、または何らかの他のタイプのセンサの集合／配置とすることができる。一実施形態では、システム１０は、センサ３４を含まなくてもよく、システム１０とは別の装置は、エネルギーの形態または他の物理特性を検出し、検出されたエネルギーまたは他の物理特性を、仮想センサ情報を表す電気信号または他のタイプの信号に変換するセンサを含む。次いで、装置は、変換された信号を、通信装置２０を介してシステム１０に送信することができる。
【００２２】
本発明の一実施形態は、オン／オフバイブレート制御と共にＰＷＭ機能を実施して、アクチュエータの駆動値および持続時間にわたる微細な制御を提供する。この実施形態は、オン／オフバイブレート制御を使用して高品質の触覚を与えるためのアルゴリズムを提供する。一実施形態では、ハプティック効果設計者の意図するハプティック強度がバイブレートパターンに変換され、ハプティクスは、アクチュエータ上で表現される。
【００２３】
一実施形態では、装置のオペレーティングシステムは、アクチュエータのオン／オフ制御のみを可能にし、アクチュエータの駆動部信号の強度を制御することを可能にしない機能を実行する場合、この実施形態は、高品質ハプティック効果を送達するようにオン／オフ制御を構成する。例えば、一実施形態は、Ａｎｄｒｏｉｄ装置上でバイブレータを動作させる「バイブレータ」クラスの一部であるＡｎｄｒｏｉｄバイブレートＡＰＩを使用することができる。表１は、このクラスによって公開されるパブリックメソッドの例を示す。表１の例に示されるように、ＡｎｄｒｏｉｄバイブレートＡＰＩは、アクチュエータの駆動値を制御せず、制御できる唯一のパラメータは持続時間である。このＡＰＩが指定された持続時間で呼び出されると、アクチュエータは、呼び出しで指定された持続時間の最大駆動値でオンにされる。
【表１】
2019519846.tif 000003
【００２４】
一実施形態は、アンドロイドバイブレートＡＰＩを使用して、アクチュエータのアクティベーション持続時間および同期の微細な制御を実施することによって、様々な強度のハプティック信号を表現する。この実施形態は、実験（例えば、あるアクチュエータ上でのオフライン実験）によって得ることができるパルス周期（またはパルス持続時間）を有するパルスを使用して、リアルタイムハプティクス機能を提供する。所望のハプティック強度は、一般に以下のように定義されるパルスのデューティサイクルを変調することによって与えられる：デューティサイクル＝パルス幅Ｘ１００／パルス周期。
【００２５】
デューティサイクルは、パルスのパルス幅（または「オン」持続時間）を変化させることによって変調され得る。図２は、同じ周期を有するが異なるデューティサイクルを有するパルスの例示的なグラフ２００を示し、第１のパルス２０２は、１０％のデューティサイクルを有し、第２のパルス２０４は、３０％のデューティサイクルを有し、第３のパルス２０６は、５０％のデューティサイクルを有し、第５のパルス２０８は、９０％のデューティサイクルを有する。一実施形態では、パルスの周波数（パルス周期の逆数）は、アクチュエータの種類に基づいて構成され、一定に保たれ、一方、デューティサイクルは、表現されたハプティック効果の強度を知覚されるように制御するように変更される。一実施形態では、知覚される強度は、パルスのデューティサイクルに正比例する。すなわち、２０％のデューティサイクルを有するパルスは、１０％のデューティサイクルを有するパルスの２倍の強さであると知覚される。デューティサイクルを適切に変調することによって、実施形態は、知覚される強度を変調し、それによって様々なハプティック効果を果たす。
【００２６】
一実施形態は、例えば、コインＥＲＭアクチュエータに印加される駆動信号のパルス幅を変調する。一実施形態では、コインＥＲＭアクチュエータの場合、パルスの周波数は、パルスの最大期間が３２ミリ秒未満である必要があり、期間が短いほどハプティック忠実度が良好であることを示唆する実験に基づいて決定される。したがって、この実施形態は、パルス周期を３２ミリ秒に設定することができる。最大のハプティック強度を達成するために、この実施形態は、デューティサイクルを１００％に設定し、アクチュエータがオフにされることを要求されるまで、アクチュエータは常にオンになる。５０％のバイブレート強度を達成するために、この実施形態は、デューティサイクルを５０％に設定し、アクチュエータは、１６ミリ秒間オンになり、１６ミリ秒間オフになる。パルスは、アクチュエータがオフにされることが要求されるまで、繰り返し印加される。２５％のバイブレート強度を達成するために、この実施形態は、デューティサイクルを２５％に設定し、アクチュエータは、８ミリ秒間オンになり、２４ミリ秒間オフになる。パルスは、アクチュエータがオフにされることが要求されるまで、繰り返し印加される。
【００２７】
一実施形態は、以下で詳細に説明するように、エンコーダ、パターン変換器、およびパターン再生モジュールを実装することによって、リアルタイムハプティクス修正機能を提供する。一実施形態では、エンコーダは、ワークステーション（例えば、ＭＡＣまたはＰＣマシン）上のメディアアプリケーション／ドライバ（例えば、設計ツール）に常駐することができ、パターンコンバータおよびパターン再生モジュールはＡｎｄｒｏｉｄ装置などの装置に常駐する。この実施形態では、ワークステーションは、ユニバーサルシリアルバス（ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ：ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ）接続など、当技術分野で知られている任意の手段を介して再生装置に符号化値を送ることができる。一実施形態では、例えば、ユーザは、Ａｖｉｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ｃｏｒｐ．の「Ｐｒｏ  Ｔｏｏｌｓ」などの当技術分野で知られている任意の音声編集ツールを使用してハプティック効果を設計することができる。一実施形態では、オーディオ編集ツールへのプラグインは、駆動値を生成することができ、または追加のドライバは、オーディオ編集ツールからオーディオデータを受信し、それを駆動値に変換することができる（例えば、ダウンサンプリング、ピーク検出などを実行することによって）。本実施形態では、プラグイン／ドライバの出力信号は、エンコーダに入力される駆動値であるＰＷＭ出力信号のデューティーサイクル値（パルスのオン期間）である。
【００２８】
図３は、一実施形態におけるエンコーダ３０２の機能性を示す例示的なブロック図３００である。エンコーダ３０２は、ハプティック駆動値３０４を符号化値３０６に変換する。駆動値３０４は、ハプティック再生の強度を制御するように構成される。駆動値３０４は、入力信号をハプティック信号に変換するために当業者に知られている任意のハプティック変換アルゴリズムによって得ることができる。一実施形態では、駆動値３０４は、駆動値３０４を得るためにオーディオ−ハプティック変換を実行する編集ソフトウェア内のオーディオファイルなどのハプティックファイルソースから得ることができる。例えば、駆動値３０４は、一実施形態において、米国特許出願公開第２０１５／００７０２６９号公報に開示されているピーク検出を用いて、オーディオ信号を触覚信号に変換することから導出されてもよく、これは、参照により本明細書に援用される。
【００２９】
例えば、一実施形態は、入力信号の各部分について最大振幅値を識別し、識別された最大振幅値に基づいて入力信号の各部分についてハプティック信号を生成するピーク検出ハプティック変換アルゴリズムを実装し、識別された最大振幅値は、ハプティック信号の大きさを定義する。別の例として、一実施形態は、入力信号の一部（例えば、最も高い周波数値を有する入力信号の一部）をフィルタリングし、入力信号の残りの部分に基づいてハプティック信号を生成するローパスフィルタハプティック変換アルゴリズムを実装する。さらに別の例として、一実施形態は、入力信号の一部（例えば、最も低い周波数値を有する入力信号の一部）をフィルタリングし、入力信号の残りの部分に基づいてハプティック信号を生成するハイパスフィルタハプティック変換アルゴリズムを実装する。さらに別の例として、一実施形態は、入力信号の少なくとも一部のピッチをシフトし、ピッチシフトされた入力信号に基づいてハプティック信号を生成するピッチシフトハプティック変換アルゴリズムを実装する。さらに別の例として、一実施形態は、入力信号の少なくとも一部の周波数をシフトし、周波数シフトされた入力信号に基づいてハプティック信号を生成する周波数シフトハプティック変換アルゴリズムを実装する。
【００３０】
一実施形態では、駆動値３０４は、ハプティック効果の包絡線／形状を定義するパラメータ化された振動定義の形成で受け取ることができる。この定義は、持続時間、頻度、大きさなどを含むハプティック効果を定義するパラメータを含むことができる。一実施形態では、定義は、Ｉｍｍｅｒｓｉｏｎ  Ｃｏｒｐ．からの「ＴｏｕｃｈＳｅｎｓｅ（登録商標）３０００  Ｈａｐｔｉｃ  Ｄｅｓｉｇｎ  Ｋｉｔ」に従う。この実施形態では、ハプティック効果は、３つの基本部分／領域または影響の大きさを含む包絡線によって形成される定義形によって定義される：  ＭａｇＳｗｅｅｐまたはＰｅｒｉｏｄｉｃ  ｂａｓｉｓ効果から形成されるインパルス、サステイン、およびフェード。
【００３１】
一実施形態では、エンコーダ３０２は、［１２８，２５５］などの範囲の離散駆動値３０４を受け取るように構成される。この実施形態では、駆動値１２８は、ゼロハプティック強度を送達するように構成される。ハプティック強度は、駆動値に伴って増加し、２５５の駆動値は、最大のハプティック強度を生成するように構成される。
【００３２】
エンコーダ３０２は、加速度トラッカ３０８および駆動値マッパ３１０を含む。加速度トラッカ３０８は、モータの性能（例えば、立ち上がり曲線および立ち下がり曲線）の表を使用して、リアルタイムでアクチュエータの推定加速度を予測し、追跡する。それは、アクチュエータが所望の強度に迅速に到達することを可能にするように構成されたフィードフォワードアルゴリズムを実施する。それは、短い持続時間でアクチュエータをオーバードライブする（例えば、アクチュエータを最大電圧で動作させる）ことによって行う。オーバードライブ持続時間は、アクチュエータの立ち上がり時間および要求されるハプティック強度（駆動値３０４によって示される）の関数である。加速度トラッカ３０８および対応するフィードフォワードアルゴリズムの例示的な実施形態は、米国特許第９，２１３，４０８号に開示されており、参照により本明細書に援用される。
【００３３】
例えば、一般に非線形の立ち上がりおよび立ち下がり特性を有する低速アクチュエータをモデル化するために、実施形態は、アクチュエータが静止から定格加速の９０％まで立ち上がるのにかかる合計立ち上がり時間を測定する。一実施形態では、この立ち上がり時間領域は、立ち上がり時間の１０％、２０％・・・９０％で１０個のセグメントに分割され、各点における対応する加速度が記録される。立ち上がり曲線と同様に、一実施形態では、１０個の値が立ち下がり曲線に対して得られるが、任意の数の値を使用することができる。落下時間は、アクチュエータが定格加速度から知覚可能な加速度未満（一実施形態では〜０．０４ｇ）に進むのに必要な時間であると考えられる。ブレーキがアクチュエータによって支持される場合、負のオーバードライブ電圧、または分路などの他の何らかのブレーキ機構が適用される。そうでなければ、電圧は印加されない。このチューニングモデルを適用することによって、実施形態は、モータがプレイすることができる効果、および一定の時間におけるモータの状態の効果のより正確なピクチャを有する。
【００３４】
一実施形態では、加速度トラッカ３０８の機能は、典型的には５ミリ秒であるタイマ・ティック／サイクル毎に実行される。各ティックにおいて、実施形態は、所望の力を決定し、アクチュエータに送信するための新しい力／電圧を計算する（すなわち、モータを所望の速度で回転させるために部分的にオーバードライブまたはブレーキをかける）。実施形態は、アクチュエータが立ち上がりカーブまたは立ち下がりカーブ上にある場所に関連してモータが現在何をしているかの推定値を考慮に入れることによって、モータがどのくらい速く回転できるかに比較して、ハプティック効果に基づいてモータがどのくらい速く回転すべきかを決定する。実施形態は、モータを所望の速度にできるだけ近接して回転させる電圧を計算し、次いで、推定速度を更新／再計算するが、これはモータがタイマ・ティックで所望の速度に到達できない場合、所望の速度と同じではない可能性がある。
【００３５】
一実施形態では、例えば、アクチュエータの立ち上がり曲線および立ち下がり曲線は、チューニングプロセスに対する変化に基づいて１０個の線形セグメントに分割される。タイマチックにおける力値の最大増加／減少は、これらの線分の傾きに基づいて決定される。傾きは、アクチュエータが次のタイマティックまでに所望の力値に到達できるかどうかを判定するために使用される。そうでなければ、キックパルスまたはブレーキパルスが印加される。アクチュエータが次のタイマティックまでに所望の力に到達することができる場合、アクチュエータは、タイマティックの終わりまでに所望の力値になるように、力を増加／減少させるべき量が決定される。推定力は、刻み毎に更新される。
【００３６】
一実施形態では、現在のアクチュエータが試験されたアクチュエータの曲線をたどると仮定して、アクチュエータが各種加速ポイントまで上昇／下降するのにどのくらいかかるかを示す応答時間曲線／表を得るためにアクチュエータが試験されると、記録された曲線／表は、データを抽出し、アクチュエータの加速が任意の時点であるべきものを推定するためにリアルタイムで使用される。この実施形態は、例えば、アクチュエータが最大作動に到達するのにどれだけの時間がかかるか、およびアクチュエータが最大作動から休止状態に移行するのにどれだけの時間がかかるかを推定することができる。これらの値に基づいて、加速度トラッカ３０８は、現在の加速度状態を周期的に（例えば、ミリ秒毎または５ミリ秒毎）追跡し、アクチュエータがどれだけの加速度を有するかを推定し、それに応じて、例えば、オーバードライブ電圧を印加することによって（例えば、特定のオーバードライブ期間の間、アクチュエータをオンに保つことになる最大電圧でアクチュエータを駆動することによって）、アクチュエータを高速で応答させるために、修正された駆動値をキューに入れる。したがって、加速度トラッカ３０８は、駆動値３０４に基づいて修正された駆動値を生成する。
【００３７】
次に、駆動値マッパ３１０は、加速トラッカ３０８から修正された駆動値を受信し、それらを、例えば、図２に関連して本明細書に開示されているように、パルスにおける「オン」持続時間を示すデューティファクタである符号化値３０６にマッピングする。
【００３８】
図４は、一実施形態における再生モジュール４０２の機能性を示す例示的なブロック図４００である。再生４０２は、符号化値４０４（例えば、値のアレイ）を受け取り、以下に詳細に説明するように、それらをハプティック出力４０６に変換する。一実施形態では、再生モジュール４０２は、Ａｎｄｒｏｉｄバイブパターンコンバータ４０８と、Ａｎｄｒｏｉｄバイブパターン再生モジュール４１０とを含み、Ａｎｄｒｏｉｄバイブパターン再生モジュール４１０は以下で詳細に説明するように、Ａｎｄｒｏｉｄデバイス内で実行するように構成される。しかし、他の代替実施形態は、Ａｎｄｒｏｉｄバイブパターンコンバータ４０８およびＡｎｄｒｏｉｄバイブパターン再生モジュール４１０と類似の機能をそれぞれ提供することによって、符号化値４０４を好適なオン／オフパターンに変換し、アクチュエータ上でそれらを再生するように他のデバイスで実行するように構成されたパターン変換器およびパターン再生モジュールを実装することができる。
【００３９】
一般に、ＡｎｄｒｏｉｄバイブレートＡＰＩは、オン／オフパターンの入力を必要とするパブリックＡＰＩである。再生モジュール４０２内からこのＡＰＩを呼び出すために、再生モジュール４０２は、Ａｎｄｒｏｉｄバイブパターンコンバータ４０８およびＡｎｄｒｏｉｄバイブパターン再生モジュール４１０を実装する。Ａｎｄｒｏｉｄバイブパターンコンバータ４０８は、インプットを符号化値４０４のアレイとして受け取り、アクチュエータ状態を追跡するステートマシンを実施する。Ａｎｄｒｏｉｄバイブパターンコンバータ４０８は、ステートマシンを追跡し、更新し、ＡｎｄｒｏｉｄパブリックＡＰＩに適したバイブレーションパターンを出力する。Ａｎｄｒｏｉｄバイブパターン再生モジュール４１０は、Ａｎｄｒｏｉｄバイブパターンコンバータ４０８からの出力を受信し、これらのパラメータを用いてＡｎｄｒｏｉｄの公開ＡＰＩを呼び出す。一実施形態では、Ａｎｄｒｏｉｄバイブパターンコンバータ４０８およびＡｎｄｒｏｉｄバイブパターン再生モジュール４１０は、符号化値４０４が再生モジュール４０２によって受信されるとすぐにアクティブになる。
【００４０】
一実施形態では、Ａｎｄｒｏｉｄバイブパターンコンバータ４０８によって実施されるステートマシンは、以下のパラメータを追跡する：
・アクチュエータオン時間（「ａｃｔ＿ｏｎ＿ｔｉｍｅ」）：  アクチュエータがオンのままでいる必要がある時間
・アクチュエータオフ時間（「ａｃｔ＿ｏｆｆ＿ｔｉｍｅ」）：  アクチュエータがオフのままである必要がある時間。それは、パルスの持続時間とアクチュエータのＯＮ時間との間の差である
・アクチュエータのアクティブ時間（「ａｃｔ＿ａｃｔｉｖｅ＿ｔｉｍｅ」）：  アクチュエータがその現在の状態でアクティブである時間
・アクチュエータの現在の状態（「ａｃｔ＿ｓｔａｔｅ」）：オンまたはオフ。
【００４１】
一実施形態では、符号化値４０４は、Ａｎｄｒｏｉｄバイブパターンコンバータ４０８内の「Ｗｒｉｔｅ＿ｖａｌｕｅ」機能によってエンコーダから受信される。符号化値は、アクチュエータがパルスにおいてオンのままである必要がある時間を示す。符号化値は「ａｃｔ＿ｏｎ＿ｔｉｍｅ」パラメータにコピーされ、「ａｃｔ＿ｏｆｆ＿ｔｉｍｅ」パラメータは以下の数値をとる：
ａｃｔ＿ｏｆｆ＿ｔｉｍｅ＝パルス幅−ａｃｔ＿ｏｎ＿ｔｉｍｅ
【００４２】
「ａｃｔ＿ｓｔａｔｅ」値は、以下の条件を除いて変更されない：
・前の符号化値が現在の符号化値より小さく、アクチュエータの現在の状態がＯＦＦである場合、アクチュエータ状態はＯＮに変更され、「ａｃｔ＿ａｃｔｉｖｅ＿ｔｉｍｅ」パラメータが再設定される。
・前の符号化値が現在の符号化値より大きく、アクチュエータの現在の状態がオンである場合、アクチュエータ状態はオフに変更され、「ａｃｔ＿ａｃｔｉｖｅ＿ｔｉｍｅ」パラメータが再設定される。
【００４３】
１ミリ秒毎に、機能「Ｕｐｄａｔｅ」は、呼び出される。いったん呼び出されると、「Ｕｐｄａｔｅ」は、「ａｃｔ＿ａｃｔｉｖｅ＿ｔｉｍｅ」パラメータを更新／インクリメントし、「ａｃｔ＿ａｃｔｉｖｅ＿ｔｉｍｅ」パラメータを必要な状態時間と比較し、必要に応じて状態を変更する。例えば、アクチュエータが現在オン状態にある場合、ミリ秒毎に「ａｃｔ＿ａｃｔｉｖｅ＿ｔｉｍｅ」が増分され、「ａｃｔ＿ＯＮ＿ｔｉｍｅ」と比較される。「ａｃｔ＿ａｃｔｉｖｅ＿ｔｉｍｅ」が「ａｃｔ＿ｏｎ＿ｔｉｍｅ」より大きい場合、「ａｃｔ＿ａｃｔｉｖｅ＿ｔｉｍｅ」はリセットされ、状態はオフに変更される。次に更新機能が実行されると、「ａｃｔ＿ａｃｔｉｖｅ＿ｔｉｍｅ」が追跡され、「ａｃｔ＿ｏｆｆ＿ｔｉｍｅ」と比較される。
【００４４】
一実施形態では、それぞれの符号化値４０４は、アクチュエータ駆動値の更新「ティック」のために構成される。例えば、いくつかのアクチュエータでは、更新チックは５ミリ秒であり、アクチュエータ駆動値は５ミリ秒毎に更新される。したがって、「更新」機能は、符号化値４０４ごとに数回呼び出すことができる。例えば、符号化値が５ミリ秒に設定されている場合、「更新」機能は、符号化値毎に５回呼び出される。「更新」機能への各呼び出し中、状態は継続的に監視される。状態が変更すると、状態時間が記録される。状態時間は、Ａｎｄｒｏｉｄバイブレート機能によって期待されるフォーマットで投入される。パターンは、「ＯＦＦ＿ＤＵＲＡＴＩＯＮ＿ＭＩＬＬＩＳＥＣ、ＯＮ＿ＤＵＲＡＴＩＯＮ＿ＭＩＬＬＩＳＥＣ、ＯＦＦ＿ＤＵＲＡＴＩＯＮ＿ＭＩＬＬＩＳＥＣ、ＯＮ＿ＤＵＲＡＴＩＯＮ＿ＭＩＬＬＩＳＥＣ．．．」パターンとして投入され、ここで、「ＯＦＦ＿ＤＵＲＡＴＩＯＮ＿ＭＩＬＬＩＳＥＣ」はアクチュエータがオフにされる期間であり、「ＯＮ＿ＤＵＲＡＴＩＯＮ＿ＭＩＬＬＩＳＥＣ」はアクチュエータがオンにされる期間である。次に、Ａｎｄｒｏｉｄバイブレートパターン再生モジュール４１０は、Ａｎｄｒｏｉｄバイブレートパターンコンバータ４０８からの出力を取り、ＡｎｄｒｏｉｄバイブレートＡＰＩ関数を呼び出し、これによりアクチュエータを起動する。
【００４５】
一実施形態では、ＰＷＭ技術がより低速のアクチュエータ（例えば、ＥＲＭ）に対して最も良く機能するが、アクチュエータの能力に応じて様々なハプティクス機能を異なるように構成することによって、より高速のアクチュエータに対しても機能することができる。例えば、ハプティクス機能は、より高速のアクチュエータに使用されるパルスのパルス幅がより低速のアクチュエータに使用されるパルスのパルス幅と比較してより小さくなるように、実施形態におけるパルス幅パラメータを調整することによって、より高速のアクチュエータ用に構成されてもよい。
【００４６】
図５−７は、本実施形態に係るハプティック機能のフロー図５００、６００、７００である。一実施形態では、フロー図５００、６００、７００の機能は、メモリまたは他のコンピュータ可読媒体または有形媒体に格納されたソフトウェアによって実装され、プロセッサによって実行される。他の実施形態では、機能は、ハードウェア（例えば、特定用途向け集積回路（「ＡＳＩＣ」）、プログラマブルゲートアレイ（「ＰＧＡ」）、フィールドプログラマブルゲートアレイ（「ＦＰＧＡ」）などの使用を通して）、またはハードウェアとソフトウェアの任意の組合せによって実行することができる。
【００４７】
より詳細には、図５は、一実施形態における再生モジュール４０２の機能を示し、ブロック図４００の要素を参照して以下に説明する。再生モジュール４０２は、一実施形態では図１のシステム１０におけるハプティクス生成モジュール１６と同じであってもよいし、その中に含まれていてもよいし、またはそれに加えて提供されてもよい。
【００４８】
５０２において、再生モジュール４０２内のＡｎｄｒｏｉｄバイブパターンコンバータ４０８は、符号化値４０４のアレイを受信する。５０４において、Ａｎｄｒｏｉｄバイブパターンコンバータ４０８は、アレイから要素を読み取る。５０６において、Ａｎｄｒｏｉｄバイブパターンコンバータ４０８は、アレイの要素に基づいて、アクチュエータの「オン」時間および「オフ」時間値を計算する。
【００４９】
５０８において、Ａｎｄｒｏｉｄバイブパターンコンバータ４０８は、「更新」機能を呼び出す。「更新」機能の機能性は、本明細書で詳細に説明される通りである。５１０において、Ａｎｄｒｏｉｄバイブパターンコンバータ４０８はアクチュエータ状態を追跡し、その結果のパターンを投入する。５１２において、Ａｎｄｒｏｉｄバイブパターンコンバータ４０８は、「更新」機能に対する呼出しの数がミリ秒単位のアクチュエータ更新レートに達したかどうかを判定する。そうでない場合、Ａｎｄｒｏｉｄバイブパターンコンバータ４０８は、５０８にループバックする。「更新」機能への呼び出し回数がミリ秒単位のアクチュエータ更新速度に達した場合、Ａｎｄｒｏｉｄバイブパターンコンバータ４０８は、符号化値の配列の端部に達したかどうかを判定する。そうでない場合、Ａｎｄｒｏｉｄバイブパターンコンバータ４０８は、５０４にループバックする。符号化値のアレイの端部に到達した場合、Ａｎｄｒｏｉｄバイブパターンコンバータ４０８は、決定されたパターンのアレイを返す。
【００５０】
図６は、一実施形態における「更新」機能の機能性を示す。６０２において、アクチュエータアクティブ時間が「１」だけインクリメントされる。６０４において、アクチュエータアクティブ時間が必要な状態時間に達したか否かが判定される。そうでない場合、処理は、６１０で終了する。アクチュエータアクティブ時間が必要な状態時間に達した場合、６０６において、アクチュエータアクティブ時間がゼロに再設定され、６０６において、アクチュエータ状態が切り替えられ、６１０において、処理が終了する。
【００５１】
図７の機能では、７０２において、アクチュエータ駆動値を符号化する符号化値が受信され、アクチュエータ駆動値は、ハプティック効果の強度に対応する。７０４において、符号化値は、オン／オフ期間のパターンに変換され、７０６において、オン／オフ期間のパターンがアクチュエータ上で再生され、ハプティック効果が生成される。
【００５２】
一実施形態では、アクチュエータ駆動値は、ワークステーション上のデザインツールによって提供され、符号化値は、ワークステーションで取得され、変換および再生は、ワークステーションと通信し、アクチュエータを動作させる装置で実行される。
【００５３】
一実施形態では、符号化値がパルスのパルス幅を変調するためにアクチュエータ駆動値を使用することによって得られ、符号化値は、アクチュエータオン期間を示す。一実施形態では、パルスのパルス周期は、アクチュエータの特性に従って選択される。一実施形態では、パルスのパルス周期は、実験によって決定される。
【００５４】
一実施形態では、再生は、Ａｎｄｒｏｉｄ振動ＡＰＩにオン／オフ期間のパターンを提供することによって実行される。
【００５５】
一実施形態では、符号化値のオン／オフ期間パターンへの変換は、アクチュエータ状態を追跡するステートマシンを実施することによって実行される。一実施形態では、アクチュエータ状態は、アクチュエータオン時間パラメータ、アクチュエータオフ時間パラメータ、アクチュエータアクティブ時間パラメータ、およびアクチュエータ現在状態パラメータを含む。一実施形態では、符号化値によって示されるアクチュエータオン期間は、アクチュエータオン時間パラメータにコピーされる。一実施形態では、アクチュエータオフパラメータは、パルスのパルス持続時間とアクチュエータオン時間パラメータとの間の差分として設定される。
【００５６】
一実施形態では、アクチュエータ現在状態パラメータがオフであり、前の符号化値が符号化値未満である場合、アクチュエータ現在状態パラメータは、オンに変更され、アクチュエータアクティブ時間パラメータは、再設定される。一実施形態では、アクチュエータ現在状態パラメータがオンであり、前の符号化値が符号化値より大きいとき、アクチュエータ現在状態パラメータは、オフに変更され、アクチュエータアクティブ時間パラメータは、再設定される。
【００５７】
一実施形態では、符号化値をオン／オフ期間のパターンに変換するステップは、ミリ秒毎に更新機能を呼び出すステップを含む。一実施形態では、更新機能は、アクチュエータアクティブ時間パラメータをインクリメントする。一実施形態では、更新機能は、アクチュエータアクティブ時間パラメータを必要な状態タイムと比較する。
【００５８】
一実施形態では、アクチュエータ現在状態パラメータがオンのとき、更新機能は、アクチュエータアクティブ時間パラメータをアクチュエータオン時間パラメータと比較し、アクチュエータアクティブ時間パラメータがアクチュエータオン時間パラメータより大きい場合、アクチュエータアクティブ時間パラメータをリセットし、アクチュエータ現在状態パラメータをオフに変更する。
【００５９】
一実施形態では、アクチュエータ現在状態パラメータがオフのとき、更新機能は、アクチュエータアクティブ時間パラメータをアクチュエータオフ時間パラメータと比較し、アクチュエータアクティブ時間パラメータがアクチュエータオフ時間パラメータより大きい場合、アクチュエータアクティブ時間パラメータをリセットし、アクチュエータ現在状態パラメータをオンに変更する。
【００６０】
開示されるように、実施形態は、リアルタイムのハプティクス生成を可能にする。一実施形態は、ＡｎｄｒｏｉｄバイブレートＡＰＩなどのオン／オフ制御ＡＰＩを使用し、高忠実度ハプティック機能を表現するためにアクチュエータに微細粒度制御を提供するＰＷＭ機能を実装する。
【００６１】
いくつかの実施形態は、本明細書で具体的に例示および／または説明される。しかし、本発明の精神および意図する範囲から逸脱することなく、開示された実施形態の修正および変形は、上記の教示によっておよび添付の特許請求の範囲の範囲内でカバーされることが理解されるのであろう。
【図１】
2019519846.tif 000004
【図２】
2019519846.tif 000005
【図３】
2019519846.tif 000006
【図４】
2019519846.tif 000007
【図５】
2019519846.tif 000008
【図６】
2019519846.tif 000009
【図７】
2019519846.tif 000010
【国際調査報告】
2019519846.tif 000011
2019519846.tif 000012
2019519846.tif 000013