Carto
Carto est un outil de calibration d’acquisition, de calibration et de fusion de nuage de points développé par le département de l’innovation de la Société des Arts Technologiques.
Carto permet de se connecter à plusieurs dispositifs de captation volumétriques et de calibrer leurs nuages de points pour créer une cartographie cohérente d’une espace. Le nuage de point fusionné qui résulte de cette calibration peut ensuite être envoyée en temps réel à d’autres logiciels sous forme de vues orthographique ou en données brutes.
License
Carto est distribué sous license AGPL-3.0
Installation
TODO: Mettre à jour lorsque des builds seront réellement disponibles
Bien que Carto est distribué sous une license libre, les binaires ne sont distribués que pour les abonnés à la suite SAT.
Carto est disponible sur Windows et Linux.
Pour utiliser Carto, vous pouvez extraire le ZIP qui vous a été fourni et lancer l’exécutable. Il est important que l’emplacement relatif du fichier exécutable reste le même par rapport au reste du dossier Carto.
Vous devrez aussi installer les binaires NDI.
Installation NDI (Windows)
Suivre les instructions indiquées ici
Installation NDI (Linux)
Suivre les instructions indiquées ici
Requis matériel
Carto a surtout été testé avec des cartes NVIDIA RTX3060. Il est possible que des cartes moins puissantes puissent fonctionner. La carte doit entièrement supporter Vulkan 1.0.
Utilisation
Survol de l’interface
L’interface de Carto est séparée en plusieurs sections.
La section 1 sur l’image est la vue 3D. Elle contient tous les éléments qui font partie de la cartographie 3D de l’espace: Les caméras, les nuages de points et la zone d’inclusion (crop region).
La section 2 est la barre d’outils qui contient plusieurs boutons et menus.
La section 3 est le menu latéral qui permet d’instancier des caméras, de paramétrer la zone d’inclusion et d’instancier des sorties réseau.
Contrôles de la vue 3D
La vue 3D contient les différents éléments de votre cartographie 3D. Ce qui suit est une description des éléments numérotés sur la capture d’écran.
- Icônes de caméras. Ces icones prennent la couleur défini dans le menu de droite. Chaque icône pointe vers le centroïde du nuage de point capté par le dispositif qu’elle représente.
- Nuage de point. Affichage du nuage de point représenté par la caméra. Le nuage sera de la couleur configuré dans le menu de droite.
- Nom de la caméra. Ce nom n’est affiché que lorsque la caméra est sélectionné ou lorsque le curseur de la souris est par dessus l’icône de la caméra.
- Gizmo de manipulation caméra. Ce gizmo permet de manipuler la rotation et la translation d’une caméra et de son nuage de point. Les flèches permettent de déplacer les caméras dans chacun des axes, les carrés permettent de déplacer une caméra sur deux axes et les arcs de cercles permettent de faire des rotations.
- Gizmo du point de vue. Ce gizmo permet de manipuler la caméra de point de vue. On peut cliquer-glisser sur la surface circulaire du gizmo pour effectuer une rotation de la caméra et cliquer sur les ronds représentant les axes pour obtenir des vues orthographiques.
- Région d’inclusion. Le volume grisé représente la zone dans laquelle les points seront conservés. Il est possible d’obtenir un gizmo sur cette zone en cliquant sur les poignées
Barre d’outils
- Menu fichier. Avec les options classique enregistrer, enregistrer-sous et charger.
- Bouton d’aide qui afficher un menu décrivant les contrôles.
- Bouton de configurations qui affiche le menu des configurations globales.
- Menu du journal des événements. Les “logs” d’erreurs et d’avertissement seront affichées dans une fenêtre accessible en cliquant ce bouton.
- Menu déroulant des vues orthographiques. Ce menu déroulant permet de sélectionner soit la vue en perspectives ou une des vues orthographiques.
Menu
- Onglet des caméras. Cet onglet contient les contrôles permettant d’instancier des dispositifs de capture et de les paramétrer.
- Onglet de la zone d’inclusion (“crop region”). Cet onglet permet de paramétrer la taille et la position de la zone d’inclusion.
- Onglet des sorties réseau. Cet onglet permet d’instancier et de configurer différentes sorties réseau.
Dispositifs
Carto supporte actuellement les Orbbec Femto Mega et les Hesai Pandar 40P. Il est possible que d’autres dispositifs Orbbec et d’autres dispositifs hesai fonctionnent mais ils n’ont pas été testés et peuvent ne pas être supportés optimalement.
Orbbec Femto Mega et controles génériques d’un dispositif
Les Orbbec Femto Mega ont été les premières caméras à être intégrées à Carto. Lorsqu’une caméra est instanciée dans Carto, le dispositif par défaut est “Orbbec”, ce qui réfère à une orbbec femto mega.
L’utilisation d’une Orbbec est très simple: une fois branchée à un commutateur réseau PoE, la caméra annonce son identité sur le réseau, ce qui permet à Carto de l’auto-découvrir.
Paramètres des Orbbec Femto Mega dans Carto
Cette capture d’écran annotée montre les différents contrôles liés à une orbbec femto mega ainsi que les contrôles génériques d’un dispositif.
- Bouton gizmo. Cliquez sur ce bouton pour obtenir un gizmo sur ce dispositif dans la vue 3D. Il est possible d’appuyer sur Ctrl+clic pour sélectionner plusieurs dispositifs.
- Nom de la caméra. Ce nom apparaîtra dans la vue 3D lorsque ce dispositif est sélectionné.
- Bouton de suppression du dispositif. Un dispositif supprimé sera aussi déconnecté. Il est possible de revenir en arrière avec Ctrl+Z
- Bouton d’activation et de désactivation d’un dispositif. Un dispositif désactivé sera aussi déconnecté. Il ne consommera plus de resources réseau ou computationnelles.
- Compteur de “frame rate”. Ce compteur représente le nombre de trames de nuage de point par seconde que Carto reçoit du dispositif. Important: cette valeur est indépendante du taux de rafraichissement de Carto.
- Menu de sélection des dispositifs.
- Bouton de rafraichissement. Il est possible de forcer une caméra à se reconnecter en cliquant sur ce bouton.
- Menu déroulant des IPs. Pour les orbbec, ce menu déroulant permet de sélectionner une adresse IP parmis la liste des caméras détectées.
- Menu déroulant des résolutions. Permet de sélectionner une des résolutions valides pour les Orbbec femto mega.
- Menu déroulant des taux d’envois. Permet de sélectionner le taux d’envois demandé à la Orbbec. Se met à jour automatiquement si une résolution demandée n’est pas compatible avec le taux d’envois demandé.
- Menu du “thinning”. Disponible pour tous les dispositifs, permet d’amincir le nuage de point affiché.
Bande passante utilisée selon les configurations d’une Orbbec Femto Mega
Voici un tableau qui pourra vous aider à planifier l’infrastructure réseau nécessaire à votre installation.
| Débit en Mibps en fonction de la résolution et du taux d’envois | 320x288 | 512x512 | 640x576 | 1024x1024 |
|---|---|---|---|---|
| 30 fps | 44.4 Mibps | 125 Mibps | 178 Mibps | N/A |
| 25 fps | 37.0 Mibps | 106 Mibps | 148 Mibps | N/A |
| 15 fps | 22.5 Mibps | 64.2 Mibps | 90.1 Mibps | 253 Mibps |
| 5 fps | 7.44 Mibps | 21.2 Mibps | 30.1 Mibps | 85.1 Mibps |
Hesai Pandar 40P
Les lidar Hesai 40P demandent un peu plus de configuration.
Après les avoir branché dans commutateur réseau, vous devez aller trouver leur adresse sur le réseau et vous rendre sur http://<adresse de votre hesai>/setting.html puis changer les champs ip de destination et port TODO: aller voir c’est quoi les champ et mettre un screenshot.
Voici une capture d’écran montrant les contrôles propres aux dispositifs de type Hesai.
- IP du hesai. Il n’est pas strictement obligatoire de mettre la bonne IP pour recevoir des points mais avoir la bonne ip assure que le bouton “Open Web UI” fonctionne.
- Port. Le port du hesai. Si vous avez plusieurs hesais sur le même réseau, vous devez changer ce port pour avoir un port unique pour chaque hesai.
- Open Web UI. Ce bouton ouvre un navigateur qui vous montrera les configurations du hesai qui est à l’adresse IP indiquée. Vous pouvez changer les autres paramètres du hesai à partir de cette interface web.
Contrôle de nuage de point
Ces contrôles sont disponibles pour tous types de dispositifs et permettent de contrôler l’affichage des points dans la vue 3D.
- RGB Color. Couleur RGBA des points affichés.
- Calibrate Centroid. Cliquer sur ce bouton déclenche un calcul du centroïde du nuage de point. Ce calcul est fait automatiquement lors de la première réception de points mais si la caméra a été déplacée ou si l’environemment change beaucoup il peut être préférable de recalculer le centroïde.
- Rotation Pivot. Ceci contrôle le pivot de rotation du nuage de point. Quand le pivot de rotation est à “Centroid”, le gizmo de manipulation apparaît près du “centre” du nuage de point et la rotation se fait depuis le milieu. C’est le comportement par défaut. Quand le pivot de rotation est à “Camera”, le gizmo de manipulation apparaît sur l’icône de caméra et le nuage de point pivote comme si on bougeait la caméra qui le capte.
- Contrôles fins de translation. Permet d’ajuster finement la position du nuage de point dans l’espace
- Contrôles fins de rotation. Permet d’ajuster finement la rotation du nuage de point dans l’espace.
- Boutons de retours à 0. Lorsqu’une rotation ou une translation est modifiée, permet de revenir à 0. Notes que tous les changements de rotation et de translation sont aussi réversible avec la commande Ctrl-Z
Création, paramétrage et calibration d’une caméra
Ce petit tutoriel vous guidera à travers la création et la calibration de deux caméra orbbec femto mega.
Pour faire une calibration, nous conseillons de désactiver la “crop region” en premier lieu. Cela vous permet de manipuler librement vos nuages de points sans que leur position par rapport à la “crop region” n’en change leur affichage.
Pour instancier une caméra, allez dans l’onglet “Cameras” du menu latéral et appuyez sur le “+”. Un sous-menu pour le dispositif devrait être créé. Le dispositif Orbbec devrait être sélectionné par défaut.
Si des caméra orbbec sont branchées sur votre réseau, le menu déroulant “IP” devrait déjà contenir les adresses IP des caméras. Si vous venez de les brancher, attendez un moment que les orbbecs démarrent et que le processus d’auto-découverte de Carto les trouve. En sélectionnant une IP, la caméra devrait se connecter et son nuage de point devrait s’afficher.
Commencez par tenter d’aligner le plancher, les murs ou un objet facilement reconnaissable de votre espace de manière à ce que le haut soit reconnaissable. Pour faciliter la visualisation, Vous pouvez faire disparaître les points de votre deuxième caméra en mettant le “thinning” à 100%. Les vues orthographiques sont très pratiques pour obtenir un alignement des planchers et des murs.
Pour votre deuxième caméra, tentez d’aligner les planchers, murs ou autre objets reconnaissable au nuage de point de votre première caméra.
Vous pouvez ensuite réactiver la “crop region”. Vous pouvez cliquer sur les “poignées” de la “crop region” pour obtenir un gizmo vous permettant de la déplacer et de la redimensionner.
La “crop region” est pratique pour obtenir un cadrage permettant d’observer des gens déambulant dans l’espace sans avoir les points des planchers et des murs.
Notez qu’il est possible de sélectionner plusieurs objets à la fois avec Ctrl+Click. Cela peut vous aider à changer la position de vos caméras sans perdre votre alignement.
Voici un vidéo montrant l’exécution des étapes :
Intégration
Cette page contient des conseils d’intégration de Carto et de dispositifs de capture dans un espace.
Couverture de l’espace avec des Orbbec Femto Mega
L’objectif de ce système multi-caméras est d’être en mesure de capter des données visuelles sur toute la superficie sur laquelle nous envisageons que des participants pourront interagir avec l’installation. Afin de s’assurer que notre système nous procure des données 3d fiable à tout moment de l’expérience, il faut optimiser la couverture de l’espace grâce au bon positionnement des caméras.
Les spécifications techniques des capteurs Femto Mega nous indiquent qu’il est possible d’obtenir des données de profondeur selon deux modes d’utilisation: le Wide Field of View (WFoV), ainsi que le Narrow Field of View (NFoV). L’utilisation du champ de vision plus large assurera une superficie de captation plus grande à proximité du capteur, tandis que l’utilisation du champ de vision plus étroit permettra de récupérer des informations visuelles à une plus grande distance du capteur. Les spécifications techniques sont présentées dans le tableau suivant. Il faut cependant noter que l’intervalle de distance recommandé dans le tableau est une estimation plutôt conservatrice; nous avons par exemple pu récupérer des données de profondeur à plus de 8m du capteur en utilisant le mode NFOV. À noter que les performances en extérieur sont très limités. Il est préférable d’utiliser un lidar.
modes de capture orbbec femto mega
Le positionnement des caméras dans l’espace sera déterminé en grande partie par la superficie de la zone de captation, ainsi que par la hauteur des plafonds. Plus les plafonds sont hauts, plus il est facile de couvrir une grande zone de captation au sol sans avoir à se soucier de l’occlusion du champ de vision des caméras (bien entendu, cela considère qu’on est en mesure d’accrocher les caméras en hauteur dans la pièce).
Le cas d’usage standard d’un système à plusieurs caméras visera à obtenir de l’information visuelle dans une zone 3 dimensionnelle d’une hauteur d’au moins 2m, question de récupérer les données de position de tous les corps des individus dans l’espace. Moins les plafonds sont hauts, plus il faut de caméras pour assurer une couverture complète de l’espace, et éviter l’occlusion dans la zone.
Il est à noter que le nombre de caméras nécessaire (et la précision de calibration requise) dépendra de ce qu’on souhaite obtenir comme information sur les déplacements dans l’espace de captation. Le premier objectif sera toujours d’assurer une compréhension spatiale des déplacements par le système: être en mesure de projeter la localisation 3 dimensionnelle d’un participant sur toute surface adjacente, notamment.
Dépannage
Ce document contient des conseils de dépannage pour certains problèmes rencontrés.
Le taux d’envois des caméras est plus bas que la cible
Orbbec
Si vous utilisez des Orbbec Femto Mega, assurez-vous que personne d’autre sur le réseau n’est en train de demander des flux à la même caméra. Les Orbbec Femto Mega peuvent envoyer des flux à plusieurs application à la fois mais pas en gardant un taux d’envois optimal.
Si personne d’autre n’utilise le réseau et que le taux d’envois est toujours trop lent, assurez-vous que le lien réseau n’est pas saturé. À leur débit maximal (en 1024x1024 à 15fps), sans la couleur, les Orbbec Femto Mega peuvent utiliser 253 Mibps de bande passante. Cela signifie qu’une seule orbbec peut saturer un lien 200 Mibps et qu’ajouter une deuxième orbbec à ce réseau dégradera les performances. Assurez-vous d’utiliser au moins un lien 1Gibps si vous avez un nombre restreint de caméra. Il est aussi possible d’utiliser plusieur réseaux 1Gibps si le serveur sur lequel Carto roule possède un port réseau 10Gibps. Si il n’est pas possible pour vous d’utiliser un réseau avec plus de bande passante, vous pouvez réduire la résolution.
Hesai
Si vous utilisez des hesai, la cible de taux d’envois dans Carto assume que le lidar est configuré à 1200 rpm. Si votre lidar est configuré à 600 rpm vous aurez la moitié du taux d’envois
Mes caméras orbbec se retrouve à 0FPS après un certain temps
Nous avons remarqué que les Orbbecs ont tendance à se déconnecter après un certain temps lorsqu’elles ne sont pas connectées sur un réseau dédié. Si vos orbbec sont connectés sur un réseau sur lequel d’autres utilisateurs génère du trafic, tentez de créer un réseau dédié pour vos Orbbecs.