kirurobo / PremAIQuest

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

注意

もし本当に動かそうとする場合は、ワイヤーでプリメイドAI胴体を吊るすなど安全策をとる必要があります。
上半身のみに指令を出している際に下半身で支える動作ができません。

これは何

プリメイドAIを Oculus Quest から操縦しようとしてみたプロジェクトです。

@izm さんの PremaindAI_TechVerification を基にしています。 プリメイドAIの解析についてはそちらをご覧ください。

特徴

無改造の プリメイドAI と Oculus Quest だけで動作します。
PCは通さず直接 Bluetooth で接続します。あらかじめペアリングを済ませておく必要があります。

2020/10/31現在、Quest2 ではペアリングができません。
Quest1 では、先にキーボードを接続しておくことでペアリングが可能です。

動かす場合

インストール

Releases にある apk をインストールしておきます。 SideQuestを使うと便利かも。

ペアリング

  1. プリメイドAIの電源を入れます
  2. Questで歯車アイコンの設定画面 テスト機能 > Bluetoothペアリング のペアリング ボタン を押します
  3. 「RNBT-○○○○」という機器がプリメイドAIです。コードは特に気にせず「ペア設定」をすればOKです image image

Oculus Quest 2 の場合

テスト機能で Bluetoothペアリング はあるのですが、機器を選んだ後に「OK」に相当するボタンが表示されず、接続できません…。
誰か接続方法をご存じないですかね…。

バージョン 23 で「ペア設定する」ボタンも表示されるようになり、接続可能となりました。 (23.0.0.76.517.256062975で確認)

起動

プリメイドAIは先に電源を入れておき、Bluetoothで繋がった状態としておきます。
Questのアプリ一覧で「すべて」ではなく「提供元不明」を選ぶことで一覧が出ますので、起動できます。

操作

  1. 画面が出たら、まず両手を左右に伸ばした状態で右コントローラの [A]+[B] 同時押しをするとキャリブレーションが行われます。表示が消えるまでその姿勢にしておきます。
  2. メニューで「RNBT-○○○○」が選ばれていることを確認し、「OPEN」を押すと接続されます。
  3. 接続されると頭部は常に Quest の向きに合わせて動作します。
  4. コントローラの人差し指または中指部分のトリガーを押すと、押している間、手の位置と向きをIKで一致させるよう動作します。
  5. スティックでCGモデルの位置を調整できます。
  6. 左コントローラの [MENU] ボタンでメニューは表示/非表示にできます。
  7. 「CLOSE」を押すと接続を閉じます。(CLOSEせずに終了しても大丈夫です。)

もしうまく動作しなければ、アプリはいったん終了して再度起動してみてください。

ビルドする場合の環境(必要アセット)

関連URL

信号解析については以下のgoogle spreadsheet 上で編集中です。
https://docs.google.com/spreadsheets/d/1c6jqMwkBroCuF74viU_q7dgSQGzacbUW4mJg-957_Rs/edit#gid=2102495394

同梱モデルデータについて

黒イワシ(twitter:@Schwarz_Sardine)さんのモデルを基のプロジェクトから引き続き利用させていただいています。

Contributors

  • @GOROman … 通信形式解析
  • @izm … Unityプロジェクト作成, 公開
  • @kirurobo … モーションプレビュー解析,実装,独自Arm,LookAtIK実装
  • @Schwarz_Sardine … FBXモデル作成,高精度FBXモデルの作成
  • @kazzlog … 直接ポーズ送信の発見, バッテリー残量問い合わせの発見,サーボのストレッチ、スピードパラメータ制御の発見,2桁シリアルポートバグの修正
  • @shi_k_7 … 可動域修正、minorbugfix

About

License:Apache License 2.0


Languages

Language:C# 75.9%Language:ShaderLab 21.0%Language:HLSL 3.0%