1 j0oeqreeuddqlfduiwj8va

Trucs et astuces pour utiliser la série RealSense D400

Par Mikołaj Zalewski, ingénieur en apprentissage automatique et Przemysław Walczyk, directeur principal de l'ingénierie

Chez Nomagic, nous utilisons intensivement les caméras RealSense série D400 (principalement la D415). Ces caméras sont populaires grâce à leur capacité à fournir des entrées RGB et de profondeur à un coût raisonnable, plusieurs dizaines de fois inférieur à celui des caméras de profondeur industrielles. Caméra de vision stéréoscopique à motif statique, la D415 permet à plusieurs caméras de fonctionner simultanément sans interférence. Bien que la qualité de la profondeur puisse idéalement être meilleure (RealSense calcule la profondeur en temps réel à des fréquences d'images élevées), le principal problème rencontré était le dysfonctionnement intermittent des caméras. Ces problèmes étaient souvent aggravés par la complexité de notre système de vision, qui implique plusieurs caméras connectées simultanément. Nous présentons ici quelques solutions efficaces pour y parvenir.

Problèmes et solution de contournement de base — Rebrancher les caméras

Souvent, après l'arrêt du processus ROS de la caméra, celle-ci ne fonctionnait plus lors de la tentative suivante. Parfois, elle cessait également de fonctionner en cours d'exécution. Dans ces cas, nous rencontrions des messages d'erreur liés aux entrées/sorties ou au protocole, ou la caméra disparaissait tout simplement. rs-énumérer-les-périphériques et lsusb. Le simple fait de rebrancher et de débrancher la caméra résolvait généralement le problème (bien que, dans un cas précis, un redémarrage de l'ordinateur ait été nécessaire, comme décrit ci-dessous). Nous utilisons des hubs alimentés, et le simple fait de rebrancher et de débrancher le câble entre la caméra et le hub constitueait toujours une solution fiable. En revanche, rebrancher et débrancher le câble entre le hub et le PC ne fonctionne que dans certains cas. Cela suggère l'existence d'au moins deux types de problèmes différents ; consultez la section suivante pour plus de détails.

Dans une expérience, nous avons connecté quatre caméras à un système et redémarré leurs nœuds ROS 6 631 fois de suite. Nous avons observé 45 cas où l'une des quatre caméras n'a pas réapparu (environ 1%). Les détails de ce problème sont disponibles dans ce rapport de bug ; les résultats peuvent toutefois varier considérablement : certains jours, les caméras ont fonctionné beaucoup mieux, tandis que d'autres jours, leurs performances ont été moins bonnes.

Solutions de contournement plus raffinées

Comme il n'est pas possible de débrancher les caméras à distance, nous utilisons deux astuces supplémentaires :

  1. Réinitialiser les contrôleurs USB
    Cela peut se faire à l'aide d'un script, simulant ainsi le débranchement du câble entre le PC et un hub alimenté. Cependant, cette méthode ne fonctionne que dans certains cas.
  2. Redémarrez l'ordinateur
    Grâce à une alarme de réveil, nous pouvons éteindre l'ordinateur et le faire redémarrer automatiquement. Ce script garantit l'arrêt complet du système avant le rétablissement, car un arrêt incomplet l'empêche de se remettre en ligne.

Bien que ces solutions de contournement soient utiles à court terme, elles ne conviennent pas aux environnements de production. C'est pourquoi nous avons recherché des solutions plus robustes.

Mettre à jour le firmware

Le firmware 5.8.15 fourni par défaut avec les caméras est sujet à des dysfonctionnements intermittents. La mise à jour vers la série 5.9.x résout la plupart de ces problèmes, la série 5.10.x offrant une stabilité encore plus grande.

Assurez-vous d'une connexion USB3

Il arrive parfois qu'une caméra se connecte en mode USB 2 (même branchée sur un port USB 3), ce qui réduit considérablement ses fonctionnalités. Par exemple, il devient impossible de capturer simultanément des images de profondeur et infrarouges, ou d'atteindre des résolutions et des fréquences d'images plus élevées. Pour vérifier le type de connexion, exécutez la commande suivante : lsusb -t. Chaque caméra devrait apparaître comme quatre entrées avec une vitesse de 5000M. Si vous ne voyez que trois entrées à 480M, Il est nécessaire de rebrancher la caméra.

Gérer les limitations de bande passante

Comme indiqué dans ce document, les caméras RealSense consomment une partie importante de la bande passante théorique de l'USB 3.0 de 5 000 Mbits/s (la bande passante réelle se situe généralement entre 3 200 et 3 600 Mbits/s). Connecter trop de caméras à un seul port USB via des concentrateurs peut entraîner des dysfonctionnements dus aux limitations de bande passante. Même avec des ports USB séparés, de nombreuses cartes mères ne permettent qu'un ou deux concentrateurs USB internes, ce qui signifie que plusieurs ports peuvent partager la même bande passante de 5 000 Mbits/s. lsusb -t Cette commande permet de visualiser le nombre de hubs utilisés (recherchez les lignes marquées). 5000M).

Pour augmenter la bande passante :

  • Achetez une carte PCIe avec des ports USB supplémentaires. Les cartes haut de gamme offrent une bande passante dédiée à chaque port, tandis que les modèles moins chers partagent la bande passante entre les ports.
  • Réduisez la fréquence d'images ou la résolution des caméras pour diminuer la consommation de bande passante.

Réinitialisez régulièrement la caméra

Réinitialiser l'appareil photo avant utilisation s'est avéré très efficace, notamment avec les anciennes versions du micrologiciel. De nombreux problèmes ont été résolus par une réinitialisation logicielle de l'appareil photo, comme le montre cet exemple. mettre. L'ajout d'un tel code au processus de démarrage de la caméra a considérablement réduit les cas d'échec d'initialisation.

Attention à la faille de fuite de périphérique /dev/media*

La réinitialisation ou le débranchement des caméras peut révéler un bug dans certains noyaux Linux, notamment celui utilisé dans Ubuntu 16.04 LTS. Comme décrit dans ce rapport, certaines versions du noyau présentent des fuites /dev/media* Les appareils se déconnectent. Une fois les 255 appareils utilisés, les caméras RealSense cessent de fonctionner.

Les symptômes incluent :

  • lsusb -t montrer Conducteur= au lieu de Pilote=uvcvideo.
  • Journaux du noyau contenant “ media : impossible d'obtenir un mineur libre ”.
  • ls /dev/media* Affichage de 255 entrées.

La seule solution consiste à redémarrer le système, bien qu'il soit préférable de passer à une version du noyau non affecté par ce bogue (par exemple, 4.18 ou ultérieurement).

Corruption des données d'étalonnage de profondeur

Si votre flux de profondeur commence à se déformer, cela peut indiquer des données d'étalonnage de profondeur corrompues. L'' Outil d'étalonnage dynamique “ peut restaurer ces données. Intel.Realsense.CustomRW -g, puis en exécutant la procédure d'étalonnage.

Corruption des données d'étalonnage de profondeur sur la série RealSense D400

Inspectez vos câbles

Certains problèmes surviennent de câbles défectueux, notamment lorsque la caméra est montée sur un bras robotisé mobile. Les symptômes impliquent un dysfonctionnement de plus en plus fréquente d'une caméra spécifique au fil du temps, jusqu'à ce qu'elle cesse complètement de fonctionner. Le remplacement du câble résout généralement ce problème. Bien que nous ne disposions pas encore d'une méthode fiable pour détecter les câbles défectueux, le comptage des images incomplètes ou l'utilisation de la GetPortErrorCount Cette commande (introduite dans l'USB 3.1) pourrait être utile.

Remarque : La bande passante théorique de 5 000 Mbits/s de l'USB 3 peut interférer avec les équipements radio 2,5 GHz. Par exemple, nous avons constaté qu'un clavier sans fil cessait de fonctionner lorsqu'il était branché à proximité d'une caméra RealSense. L'utilisation de câbles USB blindés ou l'éloignement de tels appareils peuvent atténuer ce problème.

Le support Intel est utile

Bon nombre des astuces décrites ici ont été découvertes grâce à des interactions avec Prise en charge d'Intel RealSense, Nous vous en remercions. Vous pouvez y ouvrir des tickets et obtenir une réponse rapide.

Partager l'article :

Vous aimerez peut-être aussi

Votre avenir en robotique commence ici

Contactez Nomagic pour découvrir comment notre technologie innovante peut faire passer vos processus de traitement des commandes à la vitesse supérieure.