概要
今回のアップデートでは、新しい外部トラッキングシステムの統合、完全に新しい Python SDK、対応プラットフォームの拡張、そして数多くのキャリブレーションおよび安定性の向上・修正が含まれています。
MANUS Core v3.2.0
New Features
- Metaglove Pro キャリブレーションの改善
キャリブレーションとソルバーの変更により、手および親指のデータ精度が向上しました。Metaglove Pro および Metaglove Pro Haptic のガイド付きキャリブレーションが8ステップ構成(従来の4つのポーズ+親指を各指先に順番に押し当てる4つのピンチステップ)になりました。
詳細は Calibrationを参照してください。
- OSC トラッキングシステム
OSC 経由でサードパーティ製トラッキングデータを MANUS Core および SDK Integrated へ送信可能になりました。
詳細は OSCを参照してください。
- 関節ごとのトラッキングポイント対応
関節レベルのトラッキングを提供するシステムをサポートするため、トラッカーの基準位置を従来の MANUS Universal Mount だけでなく、手首関節基準にも設定可能になりました。
詳細は Tracker Offsetsを参照してください。
- SDK パッケージの再構成
SDK パッケージがプラットフォーム別に再構成されました。Windows 用および Linux 用の個別パッケージが提供され、C++ SDK、Python SDK、ROS2 パッケージ、および Linux 上で統合/リモート両モードで動作する x64 MANUS Core Dashboard(グローブ管理およびキャリブレーション用)が含まれます。
- 新しい Python SDK
MANUS SDK 用の Python ラッパー、Windows x64、Linux x64、Linux ARM64(Python 3.9〜3.14)向けに事前コンパイルされたバイナリが同梱され、完全なデータストリーミング、ハプティクス、キャリブレーションの保存/読み込みに対応しています。
詳細は Python SDKを参照してください。
- Linux ARM64 サポート
Linux 版 MANUS SDK が Raspberry Pi 4 や Jetson Orin Nano などの ARM64 (aarch64) デバイス上でネイティブ動作するようになりました。
詳細は Linux SDKを参照してください。
- Linux 依存関係の簡略化
Linux 版 MANUS SDK ライブラリ内に gRPC と protobuf が静的リンクされたため、個別インストールの必要がなくなりました。また、従来の libManusSDK.so と libManusSDK_Integrated.so が統合され、1つの libManusSDK.so で統合モードとリモートモードの両方をサポートするようになりました。
詳細は Linux SDKを参照してください。
- MANUS ROS2 パッケージの更新
Docker イメージを含む ARM64 (aarch64) サポートを追加しました。また、トピック名を構成可能にし、グローブのトピック名や振動コマンドのサフィックスを ROS パラメータ経由で設定できるようになりました(デフォルト値は変更なし)。
詳細は ROS2を参照してください。
- オンラインライセンス取得機能
.lic ファイルを手動で読み込む代わりに、Devices タブの「Retrieve License」ボタンから MANUS ライセンスサービス経由で最新ライセンスを直接取得できるようになりました(インターネット接続と登録済みライセンスキーが必要となります)。
詳細は Licensingを参照してください。
- 新しい SDK クライアントサンプル
C++ SDK クライアントサンプルがインタラクティブなターミナルアプリケーションとして再構築されました。Windows と Linux の両方で CMake を使用してビルド可能です。
詳細は SDK Clientを参照してください。
- 設定のリアルタイム保存
MANUS Core の実行中に行った設定の変更内容が保存されるようになりました。
- 設定可能な SDK ログ出力
SDK のログファイルの保存場所(パス)を設定できるようになり、指定した場所にログが書き出されるようになりました。
- 自動ユーザー割り当てのクエリ取得
新しい CoreSdk_GetAutoUserAssignment 関数により、自動ユーザー割り当てが有効になっているかどうかを SDK からクエリ(照会)できるようになりました。
- エルゴノミクス画面の親指関節表示の更新
MANUS Core Dashboard のエルゴノミクスビューに表示される親指の関節名称が、現在の親指モデルに合わせて CMC、MCP、IP に変更されました。
詳細は Ergonomicsを参照してください。
Fixes
- 約180度の関節回転付近で発生していた NaN / 不正な手のデータを修正し、リターゲットされたスケルトンのピンチ(つまむ)動作のアルゴリズムを修正しました。
- トラッカー名が従来の32文字の制限を超えた場合に発生していたクラッシュ(制限が256文字に引き上げられました)、およびこれに関連する潜在的なバッファオーバーフローを修正しました。
- リターゲティング/コーディネーターシステムにおけるクラッシュおよび競合状態を修正しました。
- OpenVR(SteamVR)トラッキングシステムにおいて、Meta Quest Touch コントローラー(AirLink 接続時)など、デバイス名が32文字以上の場合に発生していたクラッシュを修正しました。
- トラッキングシステムの起動中にクラッシュが発生した場合、それ以降のMANUS Coreの再起動ごとにアプリがクラッシュしていた不具合を修正しました。
- そのようなシステム状態では自動的にinactiveに設定され、代わりに警告が表示されるようになります。
- ベースステーションのない SteamVR 環境で VR アプリ実行時に MANUS のトラッキングデータが断続的にズレる問題を修正しました。たとえば、Meta Quest の AirLink 接続などです。ヘッドセットのリセンター後を含め、立ち位置を基準に正しく再アンカーされるようになりました。
- OpenVR (SteamVR) トラッキングシステムにおいて、Meta Quest および Rift Touch コントローラーが「unknown trackers」ではなく、左右の手のトラッカーとして認識されるようになりました。
- ARTトラッキングシステムが非アクティブ設定時にも更新ループを実行していた問題を修正しました。
- Core Integrated 環境において、「SetTrackerOffset」 呼び出し時のクラッシュ、MSKL ファイル読み込み時の不適切なスケルトンデータ、およびホスト名報告の誤りを修正しました。
- SDK をリモートモードで実行した際、意図しない log.txt ファイルが生成されていた問題を修正しました。
- 不正な座標系引数が無視されずに正しく拒否されるようバリデーションを追加しました。
- MANUS Metagloves Haptic グローブがペアリングに失敗することがある問題を修正しました。
- Metaglove Pro (Haptic) のデフォルトのハンドポーズを改善しました。
- Metaglove Pro の親指ケーシング補正において、MANUS Core と SDK 間で発生していた動作上の不一致を修正しました。
- ユーザー自動割り当ての ON/OFF 切り替え時における、グローブキャリブレーションの保存・読み込みの堅牢性を向上しました。
- エルゴノミクスにおける親指関節の誤った命名および親指の開き(Spread)変換を修正しました。
- MANUS Core シャットダウン時に発生する可能性があったデッドロックを修正しました。
- MANUS Core Dashboard における指の開きのインジケーター、再生保存/クリアボタンの状態、およびトラッカータイムアウト設定を修正しました。
- MANUS ROS2 パッケージにおける座標系の初期化を修正し、メッセージのレート制限により重複ログ出力を削減しました。
Breaking Changes
- 非推奨となった SDK 関数の削除
非推奨となっていたハプティクスドングル用関数 CoreSdk_GetHapticsDongleIds() および CoreSdk_GetNumberOfHapticsDongles()が、ドングルベースのハプティクス制御方式とともに SDK から削除されました。今後は CoreSdk_VibrateFingersForGlove() や CoreSdk_VibrateFingersForSkeleton() を使用し、グローブ単位またはスケルトン単位でハプティクスを呼び出します。
- エルゴノミクスにおける親指関節の命名規則の変更
各関節が実際に表す部位をより適切に反映するため、エルゴノミクス機能内の親指関節の命名規則が複数の箇所で変更されました。この変更は、CSV 出力ファイル内のデータフィールド、SDK 内の ErgonomicsDataType 列挙型(enum)、および ROS2 における親指エルゴノミクス関連のトピックに適用されています。
- CSV ファイルにおけるフィールド名の変更
CSV ファイル内の以下のフィールド名が変更されました。
詳細は Ergonomicsを参照してください。
- 「Thumb_PIP_Flex」フィールドが「Thumb_MCP_Flex」に変更されました。
- 「Thumb_DIP_Flex」フィールドが「Thumb_IP_Flex」に変更されました。
- SDK における ErgonomicsDataType 列挙型(enum)の変更
SDK 内の ErgonomicsDataType 列挙型が以下のように変更されました。
一覧については、ErgonomicsDataType をご確認ください。
ErgonomicsDataType_LeftFingerThumbMCPSpread は
ErgonomicsDataType_LeftFingerThumbCMCSpread に変更されました。
ErgonomicsDataType_LeftFingerThumbMCPStretch は
ErgonomicsDataType_LeftFingerThumbCMCStretch に変更されました。
ErgonomicsDataType_LeftFingerThumbPIPStretch は
ErgonomicsDataType_LeftFingerThumbMCPStretch に変更されました。
ErgonomicsDataType_LeftFingerThumbDIPStretch は
ErgonomicsDataType_LeftFingerThumbIPStretch に変更されました。
- ROS2 における Manus エルゴノミクスメッセージの名称変更
ROS2 内の以下の Manus Ergonomics メッセージ名が変更されました。
詳細は ROS2を参照してください。
ThumbMCPSpread 型が ThumbSpread 型に変更されました(他のSpread系の型と同一の命名規則に統一)。
ThumbPIPStretch 型が ThumbCMCStretch 型に変更されました。
ThumbDIPStretch 型が ThumbIPStretch 型に変更されました。
- 詳細については、ROS2 の項目をご確認ください。
右手の親指についても同様の変更が適用されます。
⚠️注意
特に MCP ラベルは、以前間違った関節に割り当てられていたため、今回の修正で正しい位置(元の PIP の位置)へ移動しています。プログラムやスクリプトを組んでいる場合はご注意ください。