メインコンテンツまでスキップ

Haply Inverse Service

Inverse Service は、お使いのマシン上でバックグラウンドプロセスとして動作し、Haplyハプティックデバイスをリアルタイムでお使いのアプリケーションに接続します。アプリケーションのコードより下の層で、デバイスの検出、シリアル通信、安全監視、状態のストリーミングをすべて処理するため、体験の構築に集中できます。

要件と互換性​

このサービスは主要なデスクトッププラットフォームで動作し、WebSocketクライアントとJSONパーサーを備えた任意の言語から操作できます:

  • プラットフォーム: Windows 10以降(MSVC)、Linux(.debパッケージ)、macOS
  • 言語: Python、JavaScript / TypeScript、C++、C#、Rust、Go、Java、… WebSocket + JSON に対応したあらゆる言語

公式にサポートされている連携​

Haplyは、Haply Inverse Unity Package、Toia、Geomagic Freeform、NVIDIA Isaac Lab 向けの公式連携を提供・保守しています。

これら以外にも、WebSocketクライアントとJSONパーサーを備えたプラットフォームやランタイムであれば、このサービスを利用できます。当社では、Unreal Engine、TouchDesigner、その他のリアルタイムやシミュレーション用のスタックと併用して動作を確認しています。お使いの環境でWebSocketを開ければ、Inverseデバイスを操作できます。

言語ごとのサンプルについては、公開サンプルリポジトリを参照してください: C++とPython。

通信インターフェース​

このサービスは2つの通信チャネルを公開しています:

チャネルポートトランスポート用途
シミュレーション10001WebSocketリアルタイムのコマンド / 状態ループ(1メッセージ入力 → 1状態出力)
イベント10020WebSocket(読み取り専用)システムイベント: 安全、バッテリー、接続、レートの警告
HTTP10001RESTステートレスな設定クエリ、設定、セッション管理、デバイス情報の確認

すべてのペイロードはJSON形式です。標準のエンベロープ、ポート、コンテンツタイプのルールについては、JSONの規約を参照してください。

ユースケース​

目的開始場所
力や位置の目標値をハプティックデバイスに送信リアルタイム制御
設定: 基底、マウント、プリセット、フィルターセッション設定
シーンをナビゲート(レート制御による移動)ナビゲーションモジュール
システムイベントを受信(安全、バッテリー、接続)イベントと監視
サンプルで学ぶチュートリアル

座標系​

Haplyの内部座標系は右手系、Z軸上向き(+X 右、+Y 前方、+Z 上)です。単一の基底の置換を使用して、アプリケーションの座標系に変換できます。一度設定すると、すべての入力と出力が自動的に変換されます。

シーン内でデバイスの位置を決める変換は2つあります:

  • マウント — デバイスの物理的なオフセット(プリセット経由、または明示的に設定)
  • ワークスペース — カメラ / シーンのナビゲーション用の実行時のドリフト(手動、またはナビゲーションモジュール経由で設定)

座標変換パイプライン全体については、マウントとワークスペースを参照してください。

サービスの実行​

Inverse Serviceは2つのモードで実行できます:

  • Haply Hubに組み込み(推奨)— Haply Hubには最新のサービスバージョンが含まれており、Hubが開いているときに自動的に起動します。手動の設定は不要で、常に最新の修正を利用できます。
  • スタンドアロン — Inverse Installerを使用して、特定のサービスバージョンをWindowsサービスまたはUnixデーモンとしてインストールします。CI、ヘッドレス環境へのデプロイ、Hubが動作していないマシンでの利用に便利です。

スタンドアロンサービスの管理​

Windows — サービスアプリを開きます: Win+Rを押し、services.mscと入力して、「Haply Inverse Service」を探し、右クリックして「開始」「停止」「再起動」を選択します。

Linux (systemd):

systemctl start haply-inverse-service.service
systemctl stop haply-inverse-service.service
systemctl restart haply-inverse-service.service
systemctl enable haply-inverse-service.service # auto-start on boot

APIリファレンス(完全版)​

すべてのエンドポイントとメッセージについて、機械可読な完全な仕様は以下のとおりです: