雑食エンジニアの気まぐれレシピ

日ごろ身に着けた技術や見知った知識などの備忘録的なまとめ.主にRaspberry Piやマイコンを使った電子工作について綴っていく予定.機械学習についても書けるといいな.

hapStakで牽引力錯覚を引き起こす

前回の導入編(Link)に引き続き,hapStak(Link)についてのエントリです.

今回はこのデバイスを買った目的である「牽引力錯覚」を試してみます.
・・・おそらく聞き慣れない言葉かと思いますが,下のようにデバイスを持つ人に
特定の方向に引っ張られているかのような錯覚
を引き起こす効果のことを指します.
www.youtube.com
動画で見ても疑念が晴れないかと思いますが,体験してみると想像以上に強く牽引力を感じるのでびっくりします.

今回hapStakを使えば実現できるのでは?と思い,早速試してみました.


・・・やはり動画では微塵も伝わりませんが,はっきりと牽引力を感じています.本当です!

はたしてこの不思議な現象はどうやって引き起こしているのか,実装方法について書いていこうと思います.

はじめに:牽引力錯覚という名称について

冒頭から牽引力錯覚という言葉を使ってきましたが,そもそもこの用語自体も揺れがあるらしく,疑似力覚とかPhantom-DRAWNとか様々な呼ばれ方をしているらしいです.
一番最初に提起していた方が"牽引力錯覚"という言葉を用いていたらしいので,私もこれに倣おうと思います.この辺りの詳細については,下の論文を参考にさせて頂きました.
https://www.jstage.jst.go.jp/article/tvrsj/25/4/25_291/_pdf/-char/ja

牽引力錯覚の原理

この不可思議な現象がなぜ起こるのかというところですが,カラクリは振動の非対称性にあります.実は今回入力している波形は,下のような形になっています.

f:id:shikky_lab:20211126001127p:plain

正弦波の一部を反転させているわけですね.これにより振幅に正負の偏りができ,力を受けているような錯覚を引き起こすことができる,ということみたいです.

・・・はい,すみません.正直ちゃんとは理解できてないですm(__)m

この手法は下記論文のものをそのまま使わせていただいています.
https://www.jstage.jst.go.jp/article/sicetr/53/1/53_31/_pdf/-char/ja
波形の提案の他にも,様々な方向から牽引力を引き起こす因子を評価していて,非常に参考になりました.

非対称波形の作り方

波形はaudacityというフリーソフトを使って生成しました.

「Audacity」無料の音声編集ソフト - 窓の杜

ジェネレータ→トーンから1/2周期分の正弦波を生成して,それを切り貼りしています.
波形の反転はエフェクト→上下を反転 で行えます.

周波数について

hapStakに使用されている振動子である"ACOUSTICHAPTIC® 639897"が最も強く出力できる周波数は65Hzとのことなので,sin波の周波数を65Hzとしました.
・・・しかし,今回の波形の周波数は正しくは半分の32.5Hzになります.
(上の画像の通り, "後半を反転させた正弦波"と"通常の正弦波"の2周期分でひとつの波形になるため.)
ですので本当は130Hzで仕込んだ方が良いのかもしれません.今度試してみます.

【2021年11月27日追記】
確認しなおしたところ,今回入れていた波形は130Hzのsin波でした.2周期分なので65Hzの信号を入れていた形となります.
65Hzのsin波(=2周期分で32.5Hz)も試してみましたが,牽引力はかなり小さくなってしまいました.
やはり最終的な周期をデバイスの共振周波数に合わせるのが良さそうです.

一応,今回作った波形をM5 Atom用に変換したファイルを以下に上げておきます.

https://github.com/shikky-lab/HapstakTrial/blob/324702a1942a7705ad015dc9ff675304db1c3832/src/wav/file21.h
https://github.com/shikky-lab/HapstakTrial/blob/324702a1942a7705ad015dc9ff675304db1c3832/src/wav/file22.h

片方が上記の波形,もう片方はそれを反転させたものです.それぞれで逆の方向の牽引力を感じることができます.

ファイル名を適当に変えて,hapStakが用意しているサンプルにそのまま読み込ませれば使えます.
github.com

【2021年11月29日追記】
サンプルデモを拡張して,牽引力錯覚モードに切り替えられるようにしました(下記エントリの後段).
shikky-lab.hatenablog.com

ダブルクリックで牽引力錯覚モードに切り替わり,再度ダブルクリックすると戻ります.

牽引力錯覚モードには2種類の振動が登録されており,サンプルデモと同様に0.3秒ほどボタンを押すと逆方向の牽引力を出す振動に切り替わります.

github.com

おわりに

というわけで,論文の通りに実装したら,ちゃんとそれっぽく動きました,という話でした.
それでもやはりこの不思議な体験は面白いので,hapStakを持っている方はぜひ試してみてほしいです.

なおこの牽引力錯覚については,上記論文内でも言及がありますが,指でつまむように把持していることが重要だったりします.
hapStakデジタル版にはMDFのケースがついていますが,ケース越しでは全然牽引力を感じませんでした.この辺りは実際に何かに組み込もうとした際に障壁になりそうですね.

ただケースの形状を工夫すれば,ある程度は何とかなるかもしれません.この辺りをうまくクリアして,今度のMakerFaireあたりで牽引力錯覚を使ったコンテンツを何か出せればいいなと画策しています.

そのためにも色々試行錯誤を続けていこうと思うので,何か知見が得られたら都度記事にしていきたいと思います.
それでは.