本文へスキップ
バージョン: 3.5.x

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つの通信チャネルを提供しています:

チャンネルポート輸送目的
シミュレーション10001WebSocketリアルタイムコマンド/ステートループ(入力1メッセージ → 出力1ステート)
イベント10020WebSocket(読み取り専用)システムイベント:安全、バッテリー、接続、レートに関する警告
HTTP10001RESTステートレスな設定クエリ、設定、セッション管理、デバイス検査

すべてのペイロードは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リファレンス(完全版)

各エンドポイントおよびメッセージの完全な機械可読仕様については: