Haply 逆サービス
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つの通信チャネルを提供しています:
| チャンネル | ポート | 伝送方式 | 用途 |
|---|---|---|---|
| シミュレーション | 10001 | WebSocket | リアルタイムコマンド/ステータスループ(メッセージ1件入力 → ステータス1件出力) |
| イベント | 10020 | WebSocket(読み取り専用) | システムイベント:安全、バッテリー、接続、サイクル警告 |
| HTTP | 10001 | REST | 状態の非保存設定の照会、設定、セッション管理、デバイスの点検 |
すべてのペイロードはJSON形式です。標準のエンベロープ、ポート、およびコンテンツタイプの規則については、JSON仕様を参照してください。
ユースケース
| 目標 | 開始位置 |
|---|---|
| ハプティックデバイスに力または位置の目標値を伝達する | リアルタイム制御 |
| 基準(basis)、マウント、プリセット、またはフィルターの設定 | セッションの構成 |
| シーンの探索(速度制御方式による移動) | ナビゲーションモジュール |
| システムイベントの受信(安全、バッテリー、接続) | イベントおよびモニタリング |
| 例題で学習する | チュートリアル |
座標系
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リファレンス一覧
すべてのエンドポイントおよびメッセージに関する完全な機械可読仕様は、以下の通りです:
- HTTP API リファレンス (OpenAPI)— 対話型 Swagger UI
- シミュレーション API リファレンス (AsyncAPI)— 対話型 AsyncAPI ビューア