見出し画像

mocopiにトラッカーを追加してSlimeVRで使う(作成編)

mocopiをSlimeVRトラッカーとして使ってみたけど腰のよじれが気になる。何とかしたいという話


1.前提条件とか

この投稿は以下のような人がまとめています

  • IMUセンサーに関する知識はほぼない

  • はんだごてとか使いたくない(現時点で持ってないし、動作検証用のテスタとかもない)

  • mocopiを買った

  • VRChatで両足が別々に動いてクラブ、音楽イベントで少しリズムに乗って体を揺らせればうれしい

  • 4時間ぐらいの連続使用を想定

2.はじめに(これまでの経緯)

mocopiをSlimeVRモードでの利用が可能になりましたが、個人的にヨードリフト(腰がよじれる)がかなり気になる。で終わってしまった前回の続きとして何か対策を考えることにしました。

ここでは新しい自作トラッカーM5Capsule(BMI270)1つを腰トラッカーとして使えるように各種準備、作成するところまでの話です

3. そもそもSlimeVRとは

"mocopiをSlimeVRモードで使う"で分かったことは

  • SlimeVRというオープンソースソフトウエアベースのトラッカー自作プロジェクトがある

  • mocopiのトラッカーはSlimeVRのトラッカーとして使う場合、あらかじめ指定された場所に装着する必要はなく、任意の場所(肘など)に割り当てても使える

  • IMUトラッカーによるフルトラッキングはヨードリフト問題は避けられない、特に腰のトラッカーのセンサ性能は重要らしい

腰のトラッカーをもう少し性能の良いものと交換できれば使いやすくなるかもしれない。しかし、今更IMUセンサの知識もないし、はんだとかやったことない…なにか良い方法は無いものか?

4.そんなおいしい話は…あった

自作抜きにトラッカーを自作する方法は無いか?と調べたところ

(そんな無茶な話は)あった。読んでみてわかったことは

  • M5CapsuleはIMU(BMI270)内蔵

  • コントローラ内蔵(M5Stamp)

  • SlimeVRトラッカー用ファームのソースもある(ありがとうめんたいづくしさん!)

  • どうやら2つ目のトラッカーの設定も入っているみたい

要は買ってきて本体のUSBからファームを流し込むだけで動きそう
肝心のBMI270の評価は本テキスト作成時点(2024/05/17)

にはGreatと評価があるが、M5Capsuleを買ったころは評価は無く
BMI160はディスコンだBMI270が後継品ぐらいの情報しかなかった。多分BMI160の後継なんだから性能は同等かそれ以上として勝手に想定(期待)
Greatの評価は入手コストなどを含めた総合評価なので本当はBNO085を使いたいのですが、オールインワン的なBNO085の製品は無かったのであきらめる。

5.ハードウエア準備編

詳しく調べようとしても上記以外の情報は無かったので、やってみる。
以下買ったもの

M5Capsuleを壊しそうなので2つ買った。IMUユニットはソースを読む限りM5Capsule本体のGROVE端子につなぐと使えそうなので一緒に買いました。
GROVEケーブルは100cmの方は使えなかった。ケーブルをアルミ箔で包むと動作するので長さが問題なのかも。50cmはそのまま使えています。
トラッカーとして実際使ってみて今回の自作トラッカーはHip,Waist,Chestのいずれか2か所を割り当てて使っているので結果的には50cmで十分でした

6.ソフトウエア準備編

必要なもの

ファームのソース
git clone ? ムツカシイことワカラナイ。ソースはzipでダウンロード
上記のGit for Windowsはビルド中に足りないソースを持ってきているので必要だと思う
ソース内でセンサの取り付け方向の指定箇所があるが、とりあえずそのまま使うことにする

PlatformIO IDE for VSCode (Visual Stuido Code上からインストールする)

7.組み立てと動作確認

IMUユニットを追加購入したけど一旦M5Capsule単体で動作確認する。
動作確認後IMUユニットを接続すると認識されていました。

  1. Visual Stuio Codeインストール

  2. Git for Windowsインストール

  3. コマンドプロンプトからgitコマンド確認(git --version)とかパスが通っていることを確認

  4. PlatformIO IDE for VSCode をVisual Stuio Code上でインストール

  5. ファームのソースをダウンロードして展開

  6. PlatformIO IDEで展開したフォルダを指定してプロジェクトを開く

  7. M5Capsuleをダウンロードモードに変更

  8. SlimeVRに接続、Setup Wizardから接続先Wi-Fiを設定トラッカーとして認識させる

PlatformIO IDE からダウンロードしたファームのソースのフォルダを開く

とりあえずビルドしてビルドが通ることを確認する
初回は多少時間がかかるかも

ビルドのボタンの位置が最初わからんかった

M5Capsuleをファームダウンロードモードに変更
赤枠のボタン2か所(1つはシールの下に隠れている)を同時押しながらWAKE BUTTONを押すとLEDが赤点灯してダウンロードモードになる

ボタン位置 画像はスイッチサイエンスのHPの画像を元にボタン位置を追記

M5CapsuleをUSBでPCに接続、ファームを転送する
ファーム転送はビルドの隣の矢印のボタン

Visual Stuio Codeを閉じてSlimeVRコンソールを開いてM5CapsuleをUSBで接続、M5Capsuleが起動するのでSetup Wizard->Input Wi-Fi credentialsからWi-Fiの設定が完了するとSlimeVR上でトラッカーとして認識される
追加した"M5Stack用6DoF IMU Proユニット(BMI270, BMM150, BMP280)"は接続するとそのまま認識されました。

8.動作確認

とりあえず、動作確認のためHip,Chestのトラッカーとして認識させてみる

M5Capsuleの自作トラッカーはHipに設定

ヨードリフトはmocopiとさほど変わらん
ただし、BMI270は初期キャリブレーションが必要、温度キャリブレーションもやってみると良いと書いてあるので初期キャリブレーションをやってみることにする

あと、長時間使用したいので小型のモバイルバッテリーをつないで使っているけど、充電時の発熱、動作時の発熱、そもそも服に密着して装着していると過熱する要因が複数ある為かセンサ温度が55度を超えている時がある。
(M5CapsuleのプロセッサーユニットM5Stampの稼働温度は0~40度らしい)

9.残った懸案など

  1. ヨードリフトはあまり改善しない?

  2. 別途バッテリーを準備する必要あり

  3. 充電しながらの使用で本体センサの温度が55度を超える

  4. 体にコードがいっぱい

1.に関してはそもそも今回は初期キャリブレーション無なので初期キャリブレーション実施後の再評価が必要(次回まとめる予定)
2.に関してはM5Capsuleのバッテリー容量が小さく、1時間持たない
3.2つ買った内1つは使用時にいつの間にか電源がOFFになる現象が多発、直前の充電量は十分で、本体センサ温度が55度を超えてたことは確認しているが、詳細不明
4.長時間利用するにはM5Capsuleにモバイルバッテリーなどをつなぐ必要あり、体にコードを巻き付ける羽目に

次回 初回キャリブレーション行い再度動作検証

10.今回の散財

M5Capsule : 3,500x2 7,000円
M5Stack用6DoF IMU Proユニット(BMI270, BMM150, BMP280) : 1,210円
GROVEケーブル 100cm : 429円
GROVEケーブル 50cm x2 : 407円
計 9,046円

11.変更歴

2024/05/17 とりあえずまとめたものを公開

2024/06/14 以下を追記しました

  • 2.はじめに(これまでの経緯) にリンクを追記

  • 自作トラッカーを含めたトラッカーの装着位置の図を追加

  • "M5Stack用6DoF IMU Proユニット(BMI270, BMM150, BMP280)"の動作結果を追記

この記事が気に入ったらサポートをしてみませんか?