Détermination de la position et de la vitesse d'un chariot de pont roulant à l'aide d'un appareil photo numérique et d'OpenCV





En vision par ordinateur, il existe une méthode pour mesurer la distance à un objet sans utiliser de capteurs de profondeur et de caméras stéréo. Dans cet article, la méthode est utilisée pour déterminer la position et la vitesse d'un chariot de pont roulant.



En raison du fait que le chariot est équipé d'encodeurs, je serai en mesure de montrer avec quelle précision cette méthode, basée sur la similitude des triangles, fonctionne. L'article montre comment mesurer la distance avec une caméra et comment l'utiliser dans des tâches pratiques.



Le sujet est dédié à ma thèse de maîtrise, que j'ai rédigée il y a deux ans.



Équipement



L'étude a été réalisée dans le laboratoire industriel de OOO PO Privod-Avtomatika dans la ville de Magnitogorsk, avec un pont roulant à poutres installé qui simule le fonctionnement d'un véritable pont roulant.







Au cours de l'expérience, une vidéo du mouvement de la grue a été enregistrée avec une procédure simultanée pour prendre des lectures des encodeurs. Les graphiques de vitesse ont été obtenus à l'aide du logiciel SoMove de Schneider Electric.



La vidéo a été enregistrée sur un appareil photo Canon EOS 1200D avec une résolution de 1920 x 1080.



Pour détecter le chariot, une étiquette graphique avec un rectangle dessiné et un cercle à l'intérieur est utilisée. La solution n'est pas entièrement réussie, avant l'expérience j'aurais dû mieux comprendre les étiquettes. Mais avec l'aide de l'analyse des contours (restrictions de surface et de rapport hauteur / largeur), j'ai toujours pu détecter le rectangle souhaité. J'ajouterai également que si l'objet est facile à détecter et que la taille physique peut être mesurée avec précision, une étiquette graphique n'est pas nécessaire.



Algorithme de travail



La méthode de calcul de la distance est basée sur la ressemblance des triangles qui convergent vers l'ouverture de l'objectif.







Mesurons la surface de la marque sur papier à l'aide d'une règle et la zone de la marque dans le cadre à l'aide de la bibliothèque opencv. Connaissant la distance focale, nous pouvons calculer la distance à l'objet.



Expérimenter



La caméra numérique est installée en face du chariot du pont roulant. À une distance suffisante pour que l'angle de vue couvre toute la surface de la grue.





Schéma d'installation. Vue d'en-haut.



Deux vidéos de test ont été enregistrées, mouvement le long de l'axe des x - vers l'arrière, loin de la caméra et le long de l'axe des y - d'abord vers la gauche puis vers la droite. Les valeurs de position et de temps sont écrites dans le tableau numpy puis

exportées vers Matlab, où les graphiques de mouvement S (t) sont tracés.







En différenciant les données, nous obtenons des graphiques de la vitesse V (t).



x_veloc = np.diff(x_position) / np.diff(time_mas)


Étant donné que les tracés de mouvement ont un bruit subtil associé à une détection de bord inexacte et à un éclairage irrégulier, l'opération de différenciation augmente considérablement ce bruit.







Laissons le bruit en utilisant un filtre de 1er ordre dans Matlab et comparons les lectures des encodeurs avec les lectures d'un appareil photo numérique.







Les graphiques montrent la précision de la mesure de distance avec une seule caméra.



Afin de réduire le niveau de bruit et d'obtenir des graphismes plus fluides, une deuxième version du tag avec une visière et un éclairage local a été développée.







En théorie, cela devrait permettre de réduire le bruit et donc d'augmenter la précision des mesures. Malheureusement, nous n'avons pas encore pu tester la nouvelle version du tag.



Pour ceux qui souhaitent en savoir plus sur le suivi des objets basé sur l'analyse des contours, il existe un bon article Estimer la précision des méthodes de suivi pour déterminer les coordonnées 2D et les vitesses des systèmes mécaniques à partir de données de photographie numérique.



Dans l'article, j'ai parlé de la méthode la plus simple pour mesurer la distance à un objet et montré quelle précision de mesure peut être obtenue. Merci à tous pour votre attention.



All Articles