0情報処理北海道シンポジウム 2023

VR コントローラに握力検出機能を拡張するセンサの開発
岡 秀哉 湯村 翼(北海道情報大学)†
1 はじめにている．

頭部に装着し，没入するデバイスとして，VRヘッドセットが存在する．VRヘッドセットは通常，頭部に装着する ヘ ッ ド マ ウ ン ト デ ィ ス プ レ イ (head-mounted display:HMD)とVRコントローラの2点で構成され，VRコントローラは手に持って操作を行う．VRコントローラにはボタンを押すことや位置トラッキングを行う機能が搭

図 1 構成図載されている．しかし，握力を利用して操作する機能は一般的には搭載されていない．握力をコントローラの操作手段に加えることができれば，VRでの新たな表現に繋がる可能性がある．先行研究として，圧力センサまたは握力を使用したVRコントローラは存在する [1] [2] [3][4]．しかし触覚フィードバックを目的として開発されたものや，親指と人差し指でつまむ動作の圧力を利用したものである．そのためそれらは，コントローラ把持時に加える握力を使用して，反映することを目的としたコントローラではない．また，Dexcontroller [5]は握力，手の形を利用したVRコントローラである．把持時の動作により，テストアプリの挙動が変化する．しかし，

図 2 Meta Quest 2 コントローラ(左)と GRAB(右)Dexcontrollerは，既存のVRコントローラを拡張する設計にはなっていない．既存のVRコントローラに握力検知のGRABの制御にはM5Stack [7]を用いる．M5Stackは制御と機能を拡張できれば，あらゆる既存のVRデバイスにおい同時にMeta Quest 2のHMDに握力情報を送信する．そのて握力による操作が可能となる．そこで本研究では，既際，Meta Quest 2に握力情報を送信する方法は無線通信と存のVRコントローラの持ち手に巻き付けるだけで握力有線通信の2種類がある．送信方法として，有線でMetaによる操作が可能となるベルト状センサ，GRAB(Grip

Quest 2と接続した場合，コントローラを振り回したり，Recognizable Attachment Belt)を開発する．

頭部を動かす際に，操作を阻害したり，体勢によっては事故が生じる可能性がある．実際に，VRヘッドセットを2 GRAB使用した際の事故も多い [8] [9]．対して無線通信では，有線接続に用いるM5StackとMeta Quest 2間の通信ケーブ

2.1 設計ルは存在しない．そのため，GRABを使用するユーザはGRABは，既存のVRコントローラの持ち手に巻き付け物理的な干渉を受けず，有線接続の際に起きうる事故をるだけで握力による操作が可能となる．GRABはVRコン防止することができる．加えて，本研究では巻き付けるトローラとともにHMDにデータを送信する(図 1 構成だけで使用可能な握力対応コントローラの開発を目指図)．本研究では，巻き付ける対象のVRコントローラに，していることから，ユーザのセットアップの手間を削減

Meta Quest 2コントローラを使用する(図 2 Meta Quest 2したい．そのため，本研究は無線での通信で開発を行う．

コントローラ図 2 左)．また，GRAB(図 2 右)には圧力

通信方法は，M5Stackが行うことのできるBluetooth Serialを感知するセンサであるVelostat [6]を使用する．Velostatを使用する．

は薄く曲げ伸ばししやすいため，巻き付けることに適しGRABでの圧力検知に用いるVelostatは，圧力を加える0

情報処理北海道シンポジウム 2023
ため，今後，紙ではなくプラスチックやゴムなどのシート型の絶縁体でGRABを覆い，手とGRABが接しないように設計する必要がある．

図 3 GRAB の構造と電気抵抗が低下する特性を持つ．この特性を使用して，表面から電圧を送信し，裏面で電圧を受信することで，電圧の変化を握力情報とする(図 3)．その握力情報を取得する地点を作成するため，銅箔テープを格子状に配置し，その間にVelostatを挟み込む．

図 4 GRAB プロトタイプ

3 VR テストアプリ
3.1 概要続いて，挟んだ銅箔テープを電圧送信側と電圧受信側

本研究はVRデバイスで使用することを目的としておの，2点でM5Stackと接続する．これで電気の送受信がり，GRAB把持時の握力を反映するVRテストアプリをM5Stackによって制御可能な状態となる（図 3）．テープUnityで実装する．VRテストアプリでは，オブジェクトが重なる地点に対して圧力が加われば，電圧に変化が生を握り潰すような動作や，オブジェクト破壊後のエフェじる．そのため，テープが重なる地点を圧力感知地点とクトが力加減により変化する仕組みの実装を予定してする．Meta Quest 2コントローラにGRABを巻き付けて，いる．

コントローラの使用者が握ることにより電気抵抗が低テストアプリにおける重要な機能は，握力のキャリブ下する．圧力感知地点からM5Stackが受信した電気を握レーションである．握力には個人差があり，計測した数力として，VRテストアプリに反映する．M5Stackが受信値を画一的に扱うだけでは意図通りの操作はできない．

した電圧は数値として0から4095の値に変換される．こキャリブレーションを行うため，限界まで握る動作と力の数値をVRテストアプリに送信し，握力として扱う．

を加えず把持する動作をそれぞれ数秒間促すシーンを用意する．その際の値をそれぞれ上限値および下限値に2.2 プロトタイプ実装設定し，GRABでの操作の範囲に利用する．

GRABの動作を確認するため，3点の握力検知が可能なプロトタイプを実装した(図 4)．プロトタイプでは，プ

3.2 Bluetooth プラグインの実装

ログラミング言語Processingを用いて握力の可視化機能

VR テストアプリの実装には Unity を用いる．本研究を実装した．GRABの圧力感知地点に加えられている握で対象とする VR デバイス Meta Quest 2 は Android OS が力が，円の大きさによって表現される．GRABが検知し稼働し，Unity でアプリを実装する際には apk ファイルた圧力の数値を円の直径として利用し，データの受信ごとしてビルドする．apk ファイルとは，Android applicationとに円の拡大と縮小を繰り返す．プロトタイプでは，package の略称であり，主に Android OS 上でインストー

GRABとPCは有線でシリアル通信を行っているが，HMDル時に使用するファイル形式である [10]．Android OS 上へ送信する場合にはBluetooth Serialを用いる．また，では外部との通信には Bluetooth の使用が想定される．

GRABを把持した際，手に付着した汗などが誤動作を発GRAB で用いるマイコン M5Stack も，Bluetooth Serial を生させるが，絶縁体である紙で覆うことにより誤動作を用いて Meta Quest 2 と通信する．

防いだ．

Unity がビルドする apk ファイルは，初期設定ではプロトタイプ実装により，GRABで握力が検知されるBluetooth を使用できない．そのため，Bluetooth を使用すことを確認した．絶縁体として用いた紙は耐久性に劣るるためのプラグインを作成する必要がある．プラグイン

0

情報処理北海道シンポジウム 2023とは，この場合 Unity の外で作成したコードのことであよる力の違いを検出でき，VR空間内での操作方法の幅をり，Unity で本来使用できない機能を使用するものであ広げる．

る [11]．Bluetooth プラグインは，Android Studio を用いGRABの有効性を検証するため，複数人にGRABコンて aar ファイルとして実装を行う．aar ファイルとは，トローラを使用したテストアプリを体験させる被験者

Android ARchive の略称であり，アプリのビルドに必要な実験を行う予定である．体験後に5段階評価でのアンケ

ソースコード，リソースファイル，マニフェストが含まートを実施してGRABの評価を行い，改善点を明らかにれたものである [12]．Android Studio で Unity のクラスする．アンケートでは，GRABの握りやすさ，有効性，を使用可能にするため，Unity に付属している classes.jar

現実での動作を制限していたか，装着性の問題など，VRファイルを使用する [13]．classes.jar ファイルには Unity

テストアプリ内での動作と，現実の動作では違和感が発で使用するクラスが含まれており，これを利用して aar生するかの評価を取得する予定である．具体的なアンケ

ファイルで Unity クラスを使用可能にする．しかし，ート項目の内容は今後検討する．

classes.jar ファイルを使用して Android Studio により aarファイルをビルドする際は，コンパイル時のみにclasses.jar ファイルを使用するよう設定する必要がある．
理由としては，Unity で apk ファイルをビルドする際にエラーが発生するためである．原因は元々Unity 側に存在する classes.jar ファイルと，Android Studio でビルドした aar ファイルとしてのプラグインに含まれる classes.jarファイルのクラス等が共に重複し，エラーが発生し，Unity でのビルドが不可能になる．
本研究では，Bluetooth プラグインの実装は未完了である．Unity プラグインを aar ファイルとして実装できることを確認しており,今後 Bluetooth の受信機能を追加する.Bluetooth プラグインの実装後,これを用いて GRAB のマイコン M5Stack から送信される握力データを受信する
Meta Quest 2 アプリを実装する．

4 おわりに4.1 まとめ4.2 課題プロトタイプ実装で明らかとなった課題が2点ある．1
点は，M5Stackの固定についての問題である．プロトタイ
プでは，GRABの配線やM5StackをVRコントローラに固定する機構は実装しなかった．そのため，操作の妨げとなった．M5Stackを手首に固定し，配線をまとめるためのアダプタを設計し，3Dプリンタで出力する予定である．
もう1点は，シート部分の固定についての問題である．
プロトタイプでは，ユーザが把持するVelostatをVRコントローラと接着していない．そのため，意図せずGRABが外れてしまう場合があり，操作の中断や再装着の手間につながる．シート両端に磁石を配置して固定できるような設計で，GRABのシート部分を固定することができると考える．

4.3 今後の展望
GRABでは，握力の値の他，把持を行っている指の種

本研究では，既存のVRコントローラに巻きつけるだけ類，把持時の指の順番も操作に用いることが可能である．

で握力による操作機能を追加するベルト状センサGRAB

これら効果的に用いたVR空間での操作方法を検討する．

を提案した．プロトタイプ実装を行い，GRABで握力がプロトタイプで開発したGRABでは2，3本の指で握力検知されることを確認し た．プロトタイプ実装で はを計測するが，複数枚を同時に用いることで検出できるProcessingによる可視化を行ったが，本来はVRヘッドセ指の数を増やすことができる．VRコントローラは左右両ットMeta Quest 2と連携して動作させる想定である．その手に把持することが多く，両手を使用したGRABの開発ためには，3節に示した通りUnityのBluetoothプラグインも検討する．の実装が必要であり，今後実装を完了させる．

本研究ではMeta Quest 2ヘッドセットでの動作を対象

プロトタイプでは，握力の検知点が3点に限定される．

として開発を行った．ただし，さまざまなVRヘッドセッコントローラの性能を高めるため，計測が可能な点を増トを拡張可能なことがGRABの特徴であり，対象デバイやし，検出の空間解像度を上げる．本論文のプロトタイ

スはMeta Quest 2に限らない．HTC VIVEヘッドセットなプでは同一列上の3点の検出を行ったが，将来的には3×ど，他VRヘッドセットを対象としたテストアプリの実装3の9点を検出する．検出点が9点になれば，小指と薬指にを行い，デバイスの差異による影響も検証したい．