Haply 逆サービス
Le 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の規約を参照してください。
ユースケース
| 目的 | どこから始めればいいでしょうか |
|---|---|
| ハプティックデバイスに力や位置情報を送信する | リアルタイム制御 |
| ベース、マウント、プリセット、またはフィルターの設定を行う | セッションの設定 |
| シーン内を移動する(速度制御による移動) | ナビゲーションモジュール |
| システムイベント(セキュリティ、バッテリー、接続)を監視する | イベントと監視 |
| 実例から学ぶ | チュートリアル |
座標系
Haply の内部座標系は直交座標系で、Z軸が上方向(+X軸が右方向、+Y軸が前方、+Z軸が上方向)となっています。1つの基本変換を行うだけで、これをアプリケーションの座標系に合わせることができます。一度設定すれば、すべての入力と出力は自動的に変換されます。
2つの変換によって、カメラがシーン内の位置に配置されます:
- モンタージュ— カメラの物理的な位置ずれ(プリセットまたは明示的に設定される)
- ワークスペース— カメラまたはシーンのナビゲーションにおける実行時のずれ(手動またはナビゲーションモジュールを使用して定義されたもの)
座標情報の完全なパイプラインについては、「組立と作業スペース」をご覧ください。
サービスの実施
Inverse Service には、2つの動作モードがあります:
- Haply ハブに統合 (推奨)—Haply ハブには最新バージョンのサービスが含まれており、ハブを開くと自動的に起動します。手動での設定は一切不要で、常に最新の修正プログラムを利用できます。
- Autonome—Inverse Installer を使用して、特定のバージョンのサービスをWindows サービスまたは Unix デーモンとしてインストールします。継続的インテグレーション(CI)、GUI を使用しないデプロイ、または 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ビューア