ハプティクスデバイス 帯域・Z-Width シミュレーター 戻る
制御・人機インタフェース

ハプティクスデバイス 帯域・Z-Width シミュレーター

VR・外科手術ロボット・力覚グローブで使われるハプティクス(力覚提示)デバイスの設計ツールです。デバイスの慣性・粘性・サンプリング周波数・量子化ビット数を変えると、自然周波数・閉ループ帯域・Z-Width・Colgate-Brown 安定限界がリアルタイムで分かり、硬い仮想壁を安定に再現できる制御パラメータを探せます。

パラメータ設定
デバイス慣性 m
kg
エンドエフェクタ等価質量
バネ剛性 K_d
N/m
構造の機械的剛性
粘性 b
N·s/m
関節摩擦+ダンパ
サンプリング Fs
Hz
制御ループ更新周波数
コントローラ Kp
N/m
仮想壁バネ係数
コントローラ Kd
N·s/m
仮想ダンパ係数
量子化ビット数
bit
位置エンコーダ分解能
計算結果
自然周波数 (Hz)
減衰比 ζ
閉ループ帯域 (Hz)
最大安定ゲイン (N/m)
Z-Width (octaves)
位置分解能 (mm)
力覚提示の可視化 — ユーザ・デバイス・仮想壁

ユーザの手の動きに合わせて、ペン型ハプティクスがバネと粘性でつながった仮想壁に当たり力を返します。色は Z-Width の安定性(緑=余裕/赤=発振リスク)。

Bode 線図 — 振幅 vs 周波数
Z-Width vs サンプリング Fs
理論・主要公式

$$\omega_n = \sqrt{K/m},\quad K_{max} = 2\,b\,f_s \text{ (Colgate-Brown)}$$

K:ばね、b:粘性、f_s:サンプリング。サンプリング高速化 → 高ゲイン可能 → 硬い壁が再現可能。

$$\zeta = \frac{b}{2\sqrt{K\,m}},\quad \omega_{cl} = \sqrt{(K_d + K_p)/m}$$

減衰比 ζ と閉ループ自然角周波数。K_d:装置バネ、K_p:仮想壁ゲイン、m:等価質量。

$$Z_{width} = \log_2\!\left(\frac{Z_{max}}{Z_{min}}\right)\;\text{octaves}$$

再現可能インピーダンス幅。Z_min は装置粘性、Z_max は Colgate-Brown 限界。8 oct 以上が高性能の目安。

ハプティクスデバイスの周波数帯域とインピーダンス設計

🙋
「ハプティクスデバイス」って、VR ゴーグルと一緒に使うコントローラのことですか?スマホのバイブもハプティクスって聞きますけど、設計って何が大事なんですか?
🎓
どっちも仲間だね。広く言うと「触覚や力覚を機械で再現する装置」全般がハプティクスだ。スマホのバイブ(タクタイル)から、外科手術ロボット ダ・ヴィンチの鉗子(フォースフィードバック)、ステアリングの反力、PHANToM や Touch X みたいな研究用ペンまで全部含む。設計で一番大事なのは「いかに本物っぽい触感を、振動・発振なしで返せるか」。指標は3つ、(1) 帯域幅、(2) Z-Width、(3) 安定性だよ。
🙋
Z-Width っていうのが見慣れない言葉です。Bandwidth とは違うんですか?
🎓
違うよ。Bandwidth は「どこまで速い動きの力を出せるか」(周波数軸)、Z-Width は「どこまで柔らかい〜硬いインピーダンスを表現できるか」(剛性軸)。たとえば自由空間でフワッと、コップを掴んだら少し抵抗、コンクリート壁に当たればガツン、まで連続的に再現したい。下限はデバイス自身の摩擦と粘性で決まり、上限は Colgate と Brown が 1994 年に証明した K_max < 2bf_s で決まるんだ。これが Z-Width。Octaves で表すのは、人間の感覚が対数的だから。8 オクターブあれば「綿〜鉄」レベルまでカバーできる。
🙋
サンプリングを上げれば硬い壁が出せるのは分かりました。でも実際の機械で 10kHz とかどうやって出すんですか?
🎓
いい質問。普通の Windows PC でアプリレベルの制御だと 1kHz が限界、外付けの RT カーネルや DSP・FPGA で 4〜10kHz、FPGA の電流ループだと 20kHz とかいける。ただし上げるほど位置センサのノイズも増幅される。だから式 K_max = 2bf_s の b(装置粘性)を増やすか、量子化ビット数を増やして位置ノイズを下げる、という両輪が必要なんだ。本ツールで Fs を 1k→4kHz に上げてみると、最大安定ゲインが 4 倍に増えるのが確認できるよ。
🙋
人間の触覚って、どこまで速い振動を感じられるんですか?スマホのバイブが 200Hz くらいって聞いたことあります。
🎓
人間の触覚帯域はおおむね 0〜1000Hz。受容器別だと、関節の固有感覚が DC〜10Hz、皮膚のメルケル細胞が低周波、マイスナーが 10〜100Hz、パチニ小体が 100〜1000Hz でテクスチャや硬い物の質感を担当する。最大感度は 250Hz 付近で、振幅 0.1μm まで感じる。だから振動触覚アクチュエータ(LRA, ERM)は 200〜300Hz 中心、力覚提示は最低 100Hz の閉ループ帯域、テクスチャ再現には 1kHz 帯域、という設計目標が出てくるんだ。
🙋
VR グローブや外科ロボットの開発で、よくある失敗ってどんな感じですか?
🎓
一番多いのは「ゲインを欲張りすぎて発振」だね。「もっと硬い壁が出したい!」と Kp を上げると、ある瞬間からブブブ…と装置が震えだす。これは離散時間制御の負減衰が顕在化した状態。式 K < 2bf_s を超えてる。対策は (1) Fs を上げる、(2) 機械側の粘性 b を増やす(オイルダンパ等)、(3) Virtual Coupling(仮想カップリング)と呼ばれる中継器を入れる、の3つ。あと意外と多いのが「電源とアース」。アナログサーボアンプを使うと電源リプルがそのまま力ノイズになって、ザラザラした触感になる。デジタルサーボ+シールドケーブルが鉄則だよ。

よくある質問

Z-Width(インピーダンス幅)は、デバイスが安定に再現できる仮想インピーダンスの下限から上限までの範囲を指します。下限は装置自身の摩擦・粘性で、ユーザが自由空間(フリースペース)を動いたときに感じる「重さ」がこれにあたります。上限は Colgate-Brown 安定条件 K < 2bf_s で決まり、サンプリング周波数 f_s と粘性 b を上げるほど高くなります。Z-Width が広いほど、ふわふわのスポンジから硬いコンクリート壁まで幅広い感触をユーザに提示できます。Octaves 単位で表現することが多く、8 オクターブ以上が高性能デバイスの目安です。
Colgate と Brown が 1994 年に示した離散時間ハプティクスの安定条件は K_max < 2·b·f_s です。サンプリング周期 T=1/f_s の間、コントローラは「古い」位置情報で力を出力するため、本来の連続系より位相が遅れます。この遅れがエネルギー的に負の減衰を生み、高ゲインのバネ要素(仮想壁の硬さ K)を表現すると振動・自励発振を起こします。f_s を 1kHz から 4kHz に上げると最大安定 K が 4 倍になり、より硬い壁を安定に再現できます。多くの研究用デバイス(PHANToM Premium 等)は 1kHz、最近の高性能デバイスは 4〜10kHz サーボループを採用しています。
人間の触覚知覚は周波数帯域によって役割が分かれます。直流〜10Hz は固有感覚(Proprioception)で位置や姿勢の知覚、10〜100Hz は皮膚機械受容器(メルケル細胞・マイスナー小体)で柔らかい振動、100〜1000Hz はパチニ小体で硬い物体の質感や微細凹凸(テクスチャ)の知覚を担います。最大感度は約 250Hz 付近で、振動の振幅閾値が 0.1μm 程度まで下がります。設計では (1) 力覚提示は最低 100Hz の閉ループ帯域、(2) 振動触覚は 300Hz 以上、(3) テクスチャ再現は 1kHz 帯域を目標にします。デバイスの自然周波数が再現したい帯域より十分高いか、共振が制御で抑制されているかを確認してください。
ハプティクスは「位置を読み、力を返す」ループのため、位置ノイズが直接トルクノイズになります。一般に 12bit(4096 段階、100mm レンジで 24μm 分解能)が最低ライン、14bit(6μm)以上が推奨、研究用途では 18〜20bit のインクリメンタルエンコーダ(数 100nm)が使われます。位置分解能が粗いと、ユーザが静止していてもエンコーダの読み値が 1LSB 単位で揺らぎ、それが微分されて速度推定にノイズを乗せ、D ゲイン経由でブザー音のような触感ノイズになります。本ツールは仮定可動域 100mm に対する位置分解能とノイズフロア dB を表示します。

実世界での応用

医用シミュレータ・外科手術トレーニング:腹腔鏡手術・歯科治療・カテーテル操作のトレーニングシステムでは、組織の硬さ・血管の弾性・縫合糸の張力をハプティクスで再現します。代表的なのは LapSim、SimMan、Mentice などで、組織貫通の閾値力(皮膚で約 5N、内臓膜で 1〜2N)を境にした非線形バネで「プチッ」と破れる感触まで再現します。臨床的に意味のある触感差を出すには Z-Width 6 オクターブ以上が要求されます。

遠隔手術ロボット(da Vinci 等)と力覚フィードバック:市販の da Vinci にはまだ十分な力覚フィードバックがないものの、次世代システム(Hugo、Versius 等)は力覚提示を統合しつつあります。マスター側に Force Dimension の Omega/Sigma シリーズや独自開発デバイスが使われ、組織変形・縫合張力をスレーブ側で測定して伝送します。通信遅延 100ms 超のとき、Time Domain Passivity Control(TDPC)で安定性を維持する設計が必須です。

VR・XR の力覚グローブとペン型コントローラ:HaptX、SenseGlove、bHaptics のグローブや、Meta Touch Pro、PlayStation VR2 のコントローラはバイブレーション主体ですが、ハイエンドの研究用途では Geomagic Touch、3D Systems Touch X、PHANToM Premium のペン型を使い、CAD モデルとの仮想接触感を再現します。VR 内で粘土をこねる、彫刻する、組み立て確認する、といった操作が現実に近づきます。

自動車ステアリングのフォースフィードバック(Steer-by-Wire):機械リンクを廃した SBW では、路面感とセルフアライニングトルクをモータと制御で再現します。トヨタの bZ4X、Lexus RZ、Tesla Cybertruck の異形ハンドルなどが採用しており、20〜30Hz 帯域の路面振動と低周波の操舵反力を分離して提示する設計です。緊急時に違和感のない反力を返す安定性が、安全性に直結します。

よくある誤解と注意点

まず最大の落とし穴が、「ゲインを上げれば硬い壁が出せる」という思い込みです。連続時間の制御理論ではゲインを上げるほど剛性が上がりますが、離散時間サンプリングでは Colgate-Brown 安定限界 K_max = 2bf_s を超えた瞬間に発振します。発振は「ブブブ…」という可聴音やデバイスの自励振動として現れ、最悪の場合ユーザを怪我させます。本ツールの「ゲイン余裕」(gainHeadroom)を必ず 1.5 以上に保ち、温度上昇でモータ抵抗が変化してもマージンを失わない設計にしてください。

次に、「位置センサさえ高分解能なら大丈夫」という誤解。20bit エンコーダを付けても、AD コンバータが 12bit、サーボアンプの電流リプルが粗い、フレームがガタガタ、では全体の触感解像度は最も悪い要素に律速されます。ハプティクスのノイズフロアは「機械(フレーム剛性・バックラッシ)+電気(A/D・電源)+制御(量子化・遅延)」の RSS で決まります。本ツールで表示されるノイズフロア dB は理想モデルの上限値であり、実装ではさらに 6〜12dB のマージンを見込んでください。

最後に、「仮想壁の硬さだけが性能の指標」という偏った見方。Z-Width 上限ばかり追っても、下限(フリースペースで何も触れていない時の重さ・摩擦)が悪ければユーザは「重い装置」としか感じません。Z_min の改善には軽量素材(カーボン・チタン)、低摩擦軸受(クロスローラー・空気軸受)、重力補償制御、慣性補償(外乱オブザーバ+逆ダイナミクス)が有効です。Z-Width はあくまで上限と下限の比であり、両方を改善して初めて「自然な触感」が得られます。

使い方ガイド

  1. デバイスの質量(mg単位)、剛性(N/m)、粘性係数(N·s/m)をスライダーで設定します
  2. サンプリング周波数(kHz)を調整し、自然周波数と減衰比ζから安定性を確認します
  3. 閉ループ帯域とZ-Width(オクターブ単位)の値から、操作感の広さと安定性のバランスを評価します
  4. 最大安定ゲインがColgate-Brown限界を超えないことを確認し、位置分解能で精度を検証します

具体的な計算例

ロボット手術用ハプティクスデバイス:質量20g、剛性500N/m、粘性0.5N·s/m、サンプリング周波数1kHzの場合、自然周波数は約79Hz、減衰比ζ=0.08となります。閉ループ帯域が250Hzに達し、Z-Width が2.5オクターブ確保できれば、術者は軟組織(インピーダンス100~500N/m)から骨(1000N/m以上)まで安定した力覚フィードバックが得られます。位置分解能が0.05mm以下なら触覚微細操作に対応可能です。

実務での注意点