Haply 逆サービス
Inverse Serviceは、お使いのマシン上でバックグラウンドプロセスとして動作し、Haply デバイスをアプリケーションにリアルタイムで接続します。デバイス検出、シリアル通信、安全監視、状態のストリーミングなど、コードの下流にあるすべての処理を代行するため、開発者はユーザー体験の構築に専念できます。
要件と互換性
このサービスは主要なデスクトッププラットフォームで動作し、WebSocketクライアントとJSONパーサーを備えたあらゆる言語から利用可能です:
- 対応プラットフォーム: Windows 10 以降 (MSVC)、Linux (
.debパッケージ), macOS - 対応言語:Python、JavaScript / TypeScript、C++、C#、Rust、Go、Java、… WebSocket と JSON に対応している言語なら何でも
公式にサポートされている連携機能
Haply 、「Haply Unity Package」、「Toia」、「Geomagic Freeform」、および「NVIDIA Isaac Lab」向けのファーストパーティ統合機能Haply 。
これら以外にも、WebSocketクライアントとJSONパーサーを搭載しているプラットフォームやランタイムであれば、どの環境からでも本サービスをご利用いただけます。実際、Unreal EngineやTouchDesignerをはじめとする、さまざまなリアルタイム・シミュレーション環境と併用して動作させてきました。WebSocketを開くことができる環境であれば、Inverseデバイスを制御することが可能です。
言語ごとの具体例については、公開されているサンプルリポジトリ(C++およびPython)をご覧ください。
通信インターフェース
このサービスは、2つの通信チャネルを提供しています:
| チャンネル | ポート | 輸送 | 目的 |
|---|---|---|---|
| シミュレーション | 10001 | WebSocket | リアルタイムコマンド/ステートループ(入力1メッセージ → 出力1ステート) |
| イベント | 10020 | WebSocket(読み取り専用) | システムイベント:安全、バッテリー、接続、レートに関する警告 |
| HTTP | 10001 | REST | ステートレスな設定クエリ、設定、セッション管理、デバイス検査 |
すべてのペイロードはJSON形式です。標準的なエンベロープ、ポート、およびコンテンツタイプの規則については、「JSONの規約」を参照してください。
ユースケース
| 目標 | どこから始めればいいでしょうか |
|---|---|
| 部隊や目標の位置をハプティックデバイスに送信する | リアルタイム制御 |
| ベースの設定、マウント、プリセット、またはフィルターの設定 | セッション設定 |
| シーン内を移動する(速度制御による移動) | ナビゲーションモジュール |
| システムイベント(安全、バッテリー、接続)を監視する | イベントと監視 |
| 実例から学ぶ | チュートリアル |
座標系
Haply内部座標系は右利き系(Z軸が上、X軸が右、Y軸が前方、Z軸が上)です。単一の基底変換を行うことで、アプリケーションの座標系に再マッピングできます。一度設定すれば、すべての入力と出力は自動的に変換されます。
シーン内でデバイスの位置を決定する2つの変換:
- マウント— デバイスの物理的なオフセット(プリセットまたは明示的に設定)
- ワークスペース— カメラ/シーンのナビゲーション用のランタイムドリフト(手動またはナビゲーションモジュール経由で設定)
座標処理の全フローについては、「マウントとワークスペース」を参照してください。
サービスの実行
Inverse Service は、2つのモードで実行できます:
- Haply に組み込み (推奨)—Haply には最新のサービスバージョンが同梱されており、Hub を開くたびに自動的に起動します。手動での設定は不要で、常に最新の修正プログラムが適用されます。
- スタンドアロン—Inverse Installer を使用して、特定のサービスバージョンをWindows サービスまたはUnix デーモンとしてインストールします。CI、ヘッドレス展開、または Hub が実行されていないマシンで役立ちます。
スタンドアロン・サービスの管理
Windows — 「サービス」アプリを開く:[ボタンを押す] Win+R, 入力 services.msc、「Haply 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ビューア