Zum Haupttext springen

Haply Inverser Dienst

Inverse Serviceläuft als Hintergrundprozess auf dem Computer des Benutzers und verbindet haptische Geräte von Haply in Echtzeit mit Ihrer Anwendung. Da Inverse Service alle Aufgaben auf der unteren Codeebene übernimmt – darunter Geräteerkennung, serielle Kommunikation, Sicherheitsüberwachung und Status-Streaming –, können Sie sich ganz auf die Entwicklung Ihrer Anwendung konzentrieren.

Anforderungen und Kompatibilität​

Dieser Dienst läuft auf den wichtigsten Desktop-Plattformen und kann in jeder Programmiersprachegesteuert werden, die über einen WebSocket-Client und einen JSON-Parser verfügt:

  • Plattform: Windows 10+ (MSVC), Linux (.deb Paket), macOS
  • Sprachen: Python, JavaScript / TypeScript, C++, C#, Rust, Go, Java, … alle Sprachen, die WebSocket- und JSON-Kommunikation unterstützen

Integration des offiziellen Supports​

Haply verwaltet die Integration von Haply , dem Inverse Unity Package, Toia, Geomagic Freeform und NVIDIA Isaac Labselbst.

Darüber hinaus kann dieser Dienst auf jeder Plattform oder in jeder Laufzeitumgebunggenutzt werden, die einen WebSocket-Client und einen JSON-Parser bereitstellt. Wir haben diesen Dienst bereits in Verbindung mit der Unreal Engine, TouchDesigner und anderen Echtzeit- oder Simulations-Stacks getestet. Solange Sie in Ihrer Entwicklungsumgebung eine WebSocket-Verbindung herstellen können, ist die Steuerung von Inverse-Geräten möglich.

Beispiele für die einzelnen Sprachen finden Sie im öffentlichen Beispiel-Repository: C++ und Python.

Kommunikationsschnittstelle​

Dieser Dienst bietet zwei Kommunikationskanäle:

KanalHafenÜbertragungsartVerwendungszweck
Simulation10001WebSocketEchtzeit-Befehls-/Status-Schleife (1 eingehende Nachricht → 1 ausgegebener Status)
Veranstaltung10020WebSocket (nur Lesezugriff)Systemereignisse: Sicherheit, Akku, Verbindung, Zykluswarnung
HTTP10001RESTAbfrage, Konfiguration und Verwaltung von nicht gespeicherten Zuständen, Einstellungen, Sitzungen und Geräteprüfungen

Alle Payloads liegen im JSON-Format vor. Die Standardregeln für Envelope, Port und Inhaltstyp finden Sie in der JSON-Spezifikation.

Anwendungsbeispiele​

ZielStartposition
Übertragung von Kraft- oder Positionssollwerten an haptische GeräteEchtzeitsteuerung
Konfiguration von Basis, Halterung, Voreinstellung oder FilterAufbau der Sitzung
Szenennavigation (Bewegung mit Geschwindigkeitssteuerung)Navigationsmodul
Empfang von Systemereignissen (Sicherheit, Akku, Verbindung)Ereignisse und Überwachung
Lernen anhand von BeispielenTutorial

Koordinatensystem​

Das interne Koordinatensystem von Haply ist ein rechtshändiges Koordinatensystem, bei dem die Z-Achse nach oben zeigt(+X nach rechts, +Y nach vorne, +Z nach oben). Durch eineeinfache Transformationlässt es sich an das Koordinatensystem Ihrer Anwendung anpassen; sobald dies einmal eingerichtet ist, werden alle Ein- und Ausgabedaten automatisch umgerechnet.

Es gibt zwei Transformationen, mit denen die Position eines Objekts in einer Szene bestimmt wird:

  • Mount — Physikalischer Versatz des Geräts (überVoreinstellungenoder explizit festgelegt)
  • Arbeitsbereich – Laufzeit-Offset für die Kamera-/Szenennavigation (kann manuell oder über das Navigationsmodulfestgelegt werden)

Informationen zur gesamten Koordinaten-Pipeline finden Sie unter „Montage“ und „Arbeitsbereich“.

Dienst starten​

Inverse Service kann in zwei Modi ausgeführt werden:

  • Haply In den Hubintegriert (empfohlen) — Haply Der Hubenthält die aktuellste Version des Dienstes und wird automatisch gestartet, sobald Sie den Hub öffnen. Es sind keine zusätzlichen Einstellungen erforderlich, und Sie erhalten stets die neuesten Aktualisierungen.
  • Standalone — Verwenden Sie den Inverse Installer, um eine bestimmte Serviceversion als Windows-Dienst oder Unix-Daemonzu installieren. Dies ist nützlich für CI, Headless-Bereitstellungen oder Rechner, auf denen kein Hub läuft.

Verwaltung eigenständiger Dienste​

Windows — Öffnen Sie die Service-App: Win+Rdrücken und services.mscGeben Sie den Befehl ein, suchen Sie anschließend den „Haply -Inverse-Dienst“, klicken Sie mit der rechten Maustaste darauf und wählen Sie „Starten“, „Beenden“ oder „Neustart“ aus.

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

Vollständige API-Referenz​

Die vollständige, maschinenlesbare Spezifikation aller Endpunkte und Nachrichten lautet wie folgt: