メインコンテンツへスキップ

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

チャンネルポートトランスポート用途
シミュレーション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リファレンス(完全版)​

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