Aller directement au corps du texte

Service Inverse de Haply

Inverse Services'exécute en arrière-plan sur l'ordinateur de l'utilisateur et connecte en temps réel les dispositifs haptiques Haply à vos applications. Il gère toutes les tâches de la couche inférieure du code, telles que la détection des périphériques, la communication série, la surveillance de la sécurité et la diffusion en continu de l'état, ce qui vous permet de vous concentrer uniquement sur la création de votre expérience.

Configuration requise et compatibilité​

Ce service fonctionne sur les principales plateformes de bureau et peut être contrôlé depuis n'importe quel langage disposant d'un client WebSocket et d'un analyseur JSON:

  • Plateforme : Windows 10 et versions ultérieures (MSVC), Linux (.deb (package), macOS
  • Langages : Python, JavaScript / TypeScript, C++, C#, Rust, Go, Java, … Tous les langages prenant en charge la communication via WebSocket et JSON

Intégration officielle de l'assistance​

Haply gère directement ses propres intégrations avec Haply , le package Inverse Unity, Toia, Geomagic Freeform et NVIDIA Isaac Lab.

En outre, ce service est accessible depuis n’importe quelle plateforme ou environnement d’exécutionproposant un client WebSocket et un analyseur JSON. Nous avons déjà testé ce service avec Unreal Engine, TouchDesigner et d’autres piles logicielles en temps réel ou de simulation. Si vous pouvez établir une connexion WebSocket dans votre environnement de développement, vous pouvez contrôler les appareils Inverse.

Pour consulter des exemples par langage, veuillez vous reporter aux dépôts d'exemples publics : C++ et Python.

Interfaces de communication​

Ce service propose deux canaux de communication :

ChaînePortMode de transmissionUtilisation
Simulation10001WebSocketBoucle de commande/état en temps réel (1 message en entrée → 1 état en sortie)
Événement10020WebSocket (en lecture seule)Événements système : sécurité, batterie, connexion, avertissements de cycle
HTTP10001RESTConsultation des configurations non persistantes, configuration, gestion des sessions, vérification des appareils

Toutes les charges utiles sont au format JSON. Pour connaître les règles standard relatives à l'enveloppe, au port et au type de contenu, veuillez vous reporter à la spécification JSON.

Cas d'utilisation​

ObjectifPoint de départ
Transmission d'une force ou d'une valeur de consigne de position à un dispositif haptiqueContrôle en temps réel
Configuration de la base, de la monture, des préréglages ou des filtresOrganisation de la session
Navigation entre les scènes (déplacement avec contrôle de la vitesse)Module de navigation
Réception d'événements système (sécurité, batterie, connexion)Événements et surveillance
Apprendre à partir d'exemplesTutoriel

Système de coordonnées​

Le repère interne de Haply est un repère de coordonnées droit (axe Z vers le haut :+X à droite, +Y vers l'avant, +Z vers le haut). Il est possible de le remapper au repère de l'application à l'aide d'uneseule transformation de référence; une fois configuré, toutes les entrées et sorties sont automatiquement converties.

Il existe deux types de transformations permettant de déterminer la position d'un objet dans une scène :

  • Montage — Décalage physique de l'appareil (défini viaun préréglageou de manière explicite)
  • Espace de travail — Décalage d'exécution pour la navigation entre les caméras et les scènes (à définir manuellement ou via le module de navigation)

Pour plus d'informations sur l'ensemble du pipeline de coordonnées, consultez les sections « Montage » et « Espace de travail».

Lancement du service​

Inverse Service peut fonctionner selon deux modes :

  • Haply Intégré auHub (recommandé) — Haply Le Hubcontient la dernière version du service, qui se lance automatiquement lorsque vous l'ouvrez. Aucune configuration supplémentaire n'est nécessaire et vous bénéficiez toujours des dernières mises à jour.
  • Version autonome — Utilisez Inverse Installerpour installer une version spécifique d'un service en tant que service Windows ou démon Unix. Utile pour le CI, les déploiements « headless » ou les machines sur lesquelles le hub n'est pas exécuté.

Gestion des services autonomes​

Windows — Ouvrez l'application de services : Win+RAppuyez sur services.mscAprès avoir saisi cette commande, recherchez «Haply Inverse Service », cliquez dessus avec le bouton droit de la souris, puis sélectionnez Démarrer / Arrêter / Redémarrer.

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

Référence complète de l'API​

Les spécifications complètes, lisibles par machine, pour tous les points de terminaison et tous les messages sont les suivantes :