Localisation du marqueur Aruco

Dans le dernier article, nous avons expliqué comment passer d'un point A à un point B sans rien toucher. Mais pour contourner quelque chose, il faut comprendre où nous en sommes et où il y a des obstacles dynamiques (nos adversaires et pas seulement).

Une personne a des yeux, des oreilles et un logiciel définis par la nature et l'expérience personnelle pour pouvoir se déplacer et naviguer facilement dans l'espace. Le système de localisation est presque l'œil et l'oreille des robots. Il est nécessaire pour que le robot puisse naviguer dans l'espace et, en s'adaptant à l'environnement, s'y déplacer.

Aujourd'hui, nous allons parler de la façon dont nous avons résolu le problème de la détermination de la position des robots sur le champ Eurobot, comment faire tout cela, lancer et configurer par vous-même.



Conditions cibles du système de localisation


L'un des principes d'Eurobot Open est l'autonomie. Autonomie par rapport à tout ce qui se trouve derrière le terrain de jeu. Tous les calculs, la prise de décision et la localisation doivent être effectués soit sur des robots, soit sur des sites spéciaux sur le terrain.

La taille du champ est de 2x3 mètres, et l'erreur dans la taille et la position des éléments sur celui-ci d'un champ à l'autre est généralement de 3 à 5 mm.

Dans l'image ci-dessous est un diagramme du champ Eurobot 2019 avec des zones marquées sur lesquelles nous pouvons placer autre chose que des robots.



  • 6 - Zone d'expérimentation (l'une des tâches supplémentaires)
  • 10 - Zones du phare
  • 11 - Une tour spéciale pour l'installation d'un dispositif de repérage central (ci-après dénommé CCC). Situé au-dessus du champ à une hauteur de 1 mètre
  • Sur les robots eux-mêmes, nous pouvons également installer des balises.

Pour toutes ces zones et les dimensions des robots eux-mêmes, il existe des restrictions strictes sur le poids et la taille, car il est impossible de fabriquer un grand supermodule productif dans lequel tout rentre. Et il y a aussi une limite de 3 minutes pour la préparation au lancement. Pendant ce temps, une ou deux personnes de l'équipe doivent retirer les robots et tout ce qui les concerne, organiser, configurer et préparer le lancement. De toute évidence, moins vous avez besoin de régler et de régler les déchets, moins vous risquez de faire une erreur ou d'être condamné à une amende avant le début de la bataille.


et une autre deuxième boîte pleine

Nous analysons les options


Conscients de nos capacités et désireux d'obtenir une précision de positionnement d'au moins quelques millimètres, voyons ce que nous pouvons utiliser en général pour résoudre ce problème:

  • L'odométrie des roues à l' aide d'encodeurs situés directement sur l'entraînement ou de roues de mesure supplémentaires vous permet de lire la distance parcourue par le robot et de déterminer sa position par rapport au point de départ. De nombreuses équipes d'Eurobot l'utilisent comme méthode de localisation principale. C'est l'une des sources d'informations de mouvement les plus rapides pour le robot. Cependant, dans la pratique, en particulier lors de la conduite sur des roues omnidirectionnelles (une zone de contact plus petite que les roues classiques, le jeu des rouleaux et des erreurs de fabrication plus importantes), l'odométrie est sensible au problème des erreurs cumulatives, qui doivent être corrigées d'une certaine manière. Vous pouvez vous aligner avec la surface avec des coordonnées connues, ou vous pouvez complexer avec un système supplémentaire. De plus, si vous utilisez des encodeurs sur les roues motrices, il y a un problème de patinage des roues lors de manœuvres brusques et lors de collisions du robot. Les roues de mesure peuvent éliminer ce problème, mais elles sont difficiles à placer dans un petit robot.


    roue omnidirectionnelle de mesure avec suspension indépendante et avec encodeur magnétique, que nous avons utilisée en 2018
  • Les lidars ont des avantages importants: nous obtenons une vue presque circulaire et des distances aux obstacles. Parmi les inconvénients, il convient de noter le prix élevé, la difficulté à distinguer les petits objets éloignés des ordures et un algorithme de localisation relativement compliqué. Les lidars bon marché (tels que rplidar) ont un taux de rafraîchissement et une résolution angulaire assez bas, et sont également soumis à la lumière d'autres lidars, télémètres, etc. Dans les robots, il est difficile de trouver un lidar au niveau latéral pour utiliser les algorithmes SLAM classiques, mais sur le fourni les règles d'élévation pour les systèmes de localisation ont peu d'objets statiques pour la liaison. Cependant, l'équipe Skoltech patine avec succès depuis plusieurs années avec le hokuyo ust-10lx et a pris l'an dernier la deuxième place de la finale européenne de la compétition Eurobot en France.
  • Nous avons également considéré les systèmes inertiels , mais dans notre cas, ils ne correspondaient pas bien. L'accéléromètre est bruyant, le gyroscope flotte, vous pouvez oublier d'utiliser la boussole à l'intérieur. Même l'utilisation d'un filtre de Kalman n'atteint pas la précision souhaitée. Il s'avère que l'IMU ne peut être utilisé efficacement pour la correction que dans un très court laps de temps. Le maximum d'informations utiles que nous avons pu obtenir avec pixhawk2 est l'angle lors d'un virage serré (d'une collision, par exemple).
  • Le GPS ne fonctionne pas à l'intérieur et la précision sans RTK est de mètres.
  • Localisation ultrasonique . L'une des implémentations peut être trouvée ici: m.habr.com/en/post/451408 . Hélas, la précision de nos tâches n'est pas très élevée (+ -2cm), la diaphonie affecte fortement, ou, si vous utilisez des capteurs avec protection contre cela, une fréquence d'interrogation basse est obtenue. L'une des équipes en Russie utilise cette solution avec plus ou moins de succès, et l'équipe allemande de Turag utilise avec succès une technologie similaire développée à l'intérieur du laboratoire.
  • L'odométrie visuelle ne renseigne pas sur la position des adversaires car il n'y a pas beaucoup de points sur le terrain sur lesquels il sera possible de s'accrocher de manière fiable.
  • \ Les caméras stéréo Tof ont un angle étroit, ce qui ne permet ni de couvrir le champ lorsqu'elles sont situées sur le dispositif de repérage central, ni d'obtenir une vue circulaire ou au moins une vue acceptable lorsqu'elles sont installées sur un robot.
  • Les repères fiduciaires que nous avons choisis et que nous examinerons plus en détail.

Marqueurs fiduciaires


La navigation par marqueur existe depuis longtemps. En théorie, le soi-disant marqueur peut être n'importe quel objet. Mais il y a beaucoup de problèmes lors de l'utilisation:

  • restrictions dues à la résolution de la caméra;
  • manque de fiabilité de la détection lors de l'utilisation de la couleur comme principale source d'information;
  • la nécessité de déterminer l'orientation du marqueur;
  • les marques à faible contraste ne fonctionnent bien que sous un bon éclairage;
  • une puissance de traitement élevée de l'équipement est requise (traitement en temps réel des trames entrantes).

Pour contourner les problèmes ci-dessus, vous devez généralement utiliser quelque chose de simple et sans ambiguïté pour la reconnaissance, par exemple, un cercle coloré ou un carré (et je voudrais un canard jaune).

image
différents types de marqueurs

En fait, en plus de déterminer la position d'un marqueur, il est souvent nécessaire de déterminer son caractère unique, par exemple, afin de détecter plusieurs objets à la fois. Pour ce faire, vous pouvez changer la couleur ou la forme, mais nous serons rapidement confrontés à une diminution de la fiabilité de la détection.
Ce problème est assez courant et il existe de nombreuses normes de marqueurs. Le plus célèbre d'entre eux est le code qr, mais il est rarement utilisé pour des problèmes de localisation en raison de la redondance et du besoin de haute résolution. En règle générale, tous les marqueurs sont bicolores (le plus souvent en noir et blanc), de forme simple (le plus souvent un carré) et codent en quelque sorte l'identifiant en eux-mêmes. Les marqueurs de localisation les plus connus sont Aruco, April Tag, ARToolKit.

Quiconque souhaite en savoir plus sur eux est un article intéressant qui compare également la fiabilité de leur détection.

Marqueurs fractaux
Il y a des moments où nous devons détecter un objet à la fois de loin et à bout portant. L'utilisation de plusieurs marqueurs de différentes tailles est un moyen, mais vous pouvez le faire de manière plus astucieuse et utiliser des marqueurs «fractals», dont différentes parties fonctionnent à différentes échelles de l'image.

docs.google.com/document/u/1/d/1SdsOTjGdu5o8gy2Ot2FDqYDS9ALgyhOBJcJHOZBR7B4/mobilebasic

Dans notre cas, l'utilisation de marqueurs présente de nombreux aspects positifs:

  • avec la possibilité d'installer une caméra statique avec un bon angle de vue et un bon marquage, cela ne nécessite pas d'équipement difficile à trouver et n'est potentiellement pas très difficile à mettre en œuvre;
  • la caméra distante peut évaluer la position de tous les objets sur lesquels nous pouvons placer des marqueurs;
  • les calculs ne sont pas effectués sur l'appareil embarqué du robot, mais sont effectués sur un ordinateur séparé (mais il y a un problème de fiabilité et des retards dans le transfert des données);
  • la capacité de résoudre tout autre problème associé à la vision.

Après avoir analysé les systèmes ci-dessus, nous avons opté pour la détection de marqueurs. Cela nous a permis non seulement de libérer nos odroïdes sur des robots, mais aussi de leur permettre de voir toute la situation sur le terrain à vol d'oiseau.

Comment ça marche hors de la boîte


La «fiabilité» de la détection des marqueurs est un terme relatif. Différentes tâches nécessitent différents niveaux de précision et de stabilité. L'inclusion de ces paramètres dépend du capteur vidéo, des objectifs, des conditions d'éclairage, etc.


Dans notre cas, avec une taille de champ de 2x3 mètres et une caméra juste un mètre au-dessus, il est nécessaire d'utiliser une optique ultra grand angle avec un champ de vision d'au moins 120-140 degrés pour assurer la visibilité de l'ensemble de l'espace de jeu, ce qui affecte négativement la détection (et sa précision) de petits marqueurs à l'extrême coin du terrain de jeu, et dans des conditions d'éclairage arbitraires rendent cette tâche encore plus difficile.
Comme la pratique l'a montré, même dans des conditions d'éclairage normales, complètement naturelles, des définitions erronées de la position du marqueur peuvent se produire.



Ainsi, les images suivantes montrent deux images consécutives avec des résultats de détection de marqueur: la direction de l'axe Z (bleu) est modifiée de 180 degrés.




www.youtube.com/watch?v=xzG2jQfxLlY

Passer à un état concurrentiel


Changer l'algorithme


Afin de déterminer avec précision l'emplacement du robot sur le terrain, vous devez connaître la position angulaire de la caméra, la transformation générale du système de coordonnées et la position de la caméra par rapport à la position du champ. Pour effectuer cette conversion, nous avons développé notre propre algorithme. Étant donné qu'une personne suspend le centre de contrôle central manuellement, et que les champs sont légèrement différents les uns des autres, il n'est pas possible d'obtenir toujours la même position de caméra. Le déplacement angulaire de la caméra par rapport au champ a un effet très négatif sur la détection de la position des robots. La solution fondamentale consiste à déterminer plusieurs marqueurs statiques que nous pouvons définir avant la correspondance pour l'étalonnage.

La bibliothèque Aruco en opencv permet de déterminer la position du marqueur 6dof par rapport à la caméra. Au début, nous avons essayé de l'utiliser, mais il s'est avéré très instable et inexact. Dans notre cas, lorsque la position de la caméra est connue, elle est fixe et les robots (et les marqueurs associés) se déplacent sur un plan qui ne passe pas par le point d'attache de la caméra, il est rationnel de se limiter à la tâche de détecter la position 3dof (z-const, x-y, + rotation autour un axe z) à travers la triangulation d'un point sur un plan à un angle visible.

On s'attend à ce qu'une diminution de dimension et une augmentation de la base de triangulation (la taille du marqueur par rapport à la distance du plan des marqueurs à la caméra) du problème à résoudre réduisent le niveau d'incertitude et de bruit des résultats de détection.
Pour ce faire, au lieu de la fonction standard

cv::aruco::estimatePoseSingleMarkers(markerCorners, 0.05, cameraMatrix, distCoeffs, rvecs, tvecs); 


qui, sur la base des coins trouvés des marqueurs, détermine la position 6dof du marqueur, nous avons écrit notre estimateur de position, en travaillant selon les principes suivants:

  • La position de la caméra 3D est connue à l'avance;
  • la hauteur du marqueur est connue à l'avance;
  • à la suite de la détection, des pixels (v, u) de 4 coins de marqueur sont connus;
  • à la suite de l'étalonnage de la caméra, une matrice de caméra 4x4 est définie;
  • connaissant la `` matrice de la caméra '', la position et l'orientation de la caméra, la position des angles de pixels du marqueur, vous pouvez obtenir la projection de la position des angles dans l'espace 3D sur le plan z sur lequel se trouvent les sommets du marqueur (la hauteur du marqueur est déterminée par son nombre);
  • en effectuant l'étape précédente pour les 4 coins de marqueur et en faisant la moyenne des données obtenues, il est possible d'obtenir les coordonnées 3D des sommets de marqueur dans le système de coordonnées de la caméra;
  • en appliquant la transformation de la caméra SK au SK du terrain de jeu, les coordonnées du marqueur dans le champ SK sont obtenues.

Résolution des problèmes d'éclairage et de performances


La stabilité et la vitesse de détection des marqueurs dépendent fortement des conditions d'éclairage ambiant et de la structure de l'arrière-plan, plus il y a d'objets différents dans le cadre, plus le traitement est long. Étant donné que les règles d'éclairage et d'arrière-plan d'Eurobot ne sont en aucun cas réglementées, elles peuvent changer considérablement de temps en temps, il peut y avoir d'autres domaines, des personnes en arrière-plan. En particulier, des expositions supplémentaires de robots ennemis, de flashs de caméra ou de projecteurs tombant dans le champ de vision de la caméra peuvent être attendues.

Pour réduire l'influence de l'éclairage environnemental sur la stabilité de détection des marqueurs, une «conception» spéciale a été développée dans laquelle des marqueurs aruco inversés ont été utilisés. La partie sombre est remplacée par un film rétroréfléchissant et un rétroéclairage LED actif est installé directement sur la caméra. Le traitement d'image est effectué en négatif, tandis que le contraste de l'arrière-plan est beaucoup plus faible que le contraste de leurs propres marqueurs.

L'augmentation du contraste du marqueur vous permet de sélectionner efficacement les régions d'intérêt sur le cadre et de rechercher des marqueurs uniquement à l'intérieur, et non sur l'ensemble du cadre, ce qui améliore considérablement la productivité.


Comparaison des différences de contraste entre un marqueur standard et un marqueur à surface réfléchissante

Nous sélectionnons le fer


Les conditions d'éclairage n'étant pas définies et la vitesse des robots pouvant être assez importante, nous recherchions depuis le début une caméra avec un obturateur global, et non pas avec un obturateur roulant. La différence est que le global collecte des informations sur la luminosité des pixels en même temps, et en roulant ligne par ligne, à cause de laquelle il peut y avoir des distorsions dans la forme géométrique des objets en mouvement.
L'appareil photo le plus abordable est oCam-1mgn, que nous avons utilisé pendant 2 ans. Cependant, il est en noir et blanc et a une résolution de seulement 1Mpx, qui est situé au bord inférieur d'une résolution acceptable (le nombre de pixels dans l'image, pour 1 "pixel" du marqueur).
Initialement, le détecteur était considéré sur la même carte unique que les robots eux-mêmes - odroid xu4, et la vitesse de travail était d'environ 20 images par seconde, cependant, le désir d'accrocher des fonctionnalités supplémentaires au centre de contrôle central et la compréhension qu'un meilleur appareil photo était nécessaire ont conduit à remplacer le PC par un Intel plus vigoureux. Nuc, et la caméra ... la caméra que nous prenons toujours pour la nouvelle saison.

Nous commençons le projet


Il est en outre supposé que vous avez déjà configuré ROS Kinetic ou Melodic.

La première chose à faire est de télécharger et d'installer OpenCV 3, Eigen3 et le projet https://bitbucket.org/eurobot1718/ocam_usb_cam (pour la caméra Ocam), ou d'utiliser un autre projet dont la structure est similaire à la publication de données dans les rubriques.

Nous clonons le référentiel avec le projet de détecteur arude: https://gitlab.com/eurobot2019/aruco_detector et gui pour celui-ci https://github.com/alexpostnikov/aruco-gui
Après avoir installé les projets, vous devez calibrer la caméra et obtenir la matrice de dispersion et la matrice de distorsion de la caméra, puis envelopper le tout dans le fichier yaml "camera_params.yml". Un exemple simple est l'utilisation d'un échiquier. Lien vers l'implémentation en C ++, où il vous suffit de collecter et de spécifier les paramètres de la carte et de la caméra, ainsi que le nom du fichier de sortie.

Les paramètres principaux se trouvent dans le fichier aruco_detector_params.yml:

  • len_of_cube_markers et width_marker la longueur et la largeur des marqueurs en mètres;
  • markers_height - comparaison du marqueur et de sa hauteur;
  • marqueurs - un tableau qui décrit si un marqueur particulier appartient à un robot spécifique. Il indique les marqueurs dans le sens horaire. Et dans le cas des adversaires, puisque leur direction n'est pas importante pour nous, l'ordre des marqueurs en config n'est pas important non plus. Il vous suffit de spécifier le code marqueur. Nous avons également des marqueurs sur la couverture supérieure, leurs numéros sont mis en évidence séparément;
  • static_markers_ids - marqueurs qui sont recherchés pendant le processus d'étalonnage;
  • markers_position - un dictionnaire avec le décalage et la rotation de chaque marqueur par rapport au centre du robot;
  • luminosité_seuil ne peut pas être touché - ceci est utilisé dans l'étalonnage automatique initial de la lumière;
  • camera_position_yellow et un paramètre similaire servent de paramètres par défaut en cas d'échec de l'étalonnage.

La matrice de transformation du système de coordonnées de la caméra vers le système de coordonnées du champ se trouve dans le fichier transform_from_cam_to_map.xml

Après tous les paramètres, vous devez enfin l'exécuter. Les chemins d'accès au fichier avec les paramètres, le côté par défaut et le chemin d'accès au périphérique vidéo sont définis dans aruco_detector_debug.launch, que nous lancerons. Mais pour un lancement complet, il est préférable d'utiliser le script bash aruco.bash, qui, en plus du détecteur, lance gui (127.0.0.1►000). Ici, nous pouvons choisir le côté, démarrer l'étalonnage et contrôler le système. Dans la deuxième fenêtre, les zones d'intérêt et les marqueurs trouvés sont visibles.



Maintenant dans les rubriques: "/emy_robot1 / aruco", "/emy_robot2 / aruco", "/ big_robot / aruco", "/ small_robot / aruco" la position des robots trouvés sera publiée.

Hourra! Nous avons pu obtenir les coordonnées des robots. C'est juste, comme vous pouvez le voir, ils ont tort. En effet, avant utilisation, il est nécessaire de calibrer la position de la caméra par rapport au champ. Pour cela, il est nécessaire

  • placez les cubes dans les coins du champ, alors qu'il est important qu'ils soient tournés par les côtés spécifiés dans la config
  • ajustez l'inclinaison de la caméra pour que tout l'espace requis tombe dans le cadre
  • régler la luminosité du rétroéclairage jusqu'à une détection fiable du marqueur
  • dans gui, sélectionnez le côté souhaité et cliquez sur "calibrer"
  • alors l'état de "recherche de cubes statiques" devrait changer en "recherche de cubes"

Nous fabriquons des marqueurs et TsUS


Selon les règles, nous pouvons colorer nos robots comme nous le voulons et, en outre, utiliser une place spéciale sur nos robots et ceux d'autres personnes, sur laquelle vous pouvez mettre quelque chose jusqu'à 10x10x8cm. Un endroit spécial est situé sur le couvercle du robot, a une hauteur fixe et une meilleure visibilité pour le centre de contrôle central, sauf lorsque le robot est sous la caméra.


hauteur et dimensions des phares du robot

Par conséquent, en tant que principaux marqueurs de nos robots, nous utilisons des parallélépipèdes de 10x10x108 cm collés sur 4 côtés d'aruco, ainsi que des marqueurs supplémentaires sur le côté supérieur de nos robots pour la localisation dans une zone complexe sous la caméra.

Comme nous ne pouvons rien coller au couvercle de l'ennemi, nous avons décidé de créer des marqueurs sous la forme d'une pyramide tronquée pour élargir la plage de visibilité. Et comme vous pouvez le voir - le marqueur est devenu bien mieux visible.



Nous imprimons la base du cube \ pyramide sur une imprimante 3D afin qu'il soit suffisamment solide et dispose d'un support pratique et fiable.



Les modèles pour imprimer un cube, une pyramide et une monture correspondante se trouvent ici.

Ce cube est collé avec un réflecteur (nous utilisons AVERY blanc
DENNISON V6700B de 50 mm de large, bien qu'il soit plus cher, il fonctionne beaucoup mieux que les chinois bon marché), et les marqueurs eux-mêmes sont collés dessus. La façon la plus simple de le faire est de couper les marqueurs sur le traceur, bien que vous puissiez les découper dans du papier ou du film en quelques heures de pacification (un ensemble se compose de 16 marqueurs).

Voici notre kit de l'année dernière.


différentes «générations» de nos marqueurs

Ils peuvent également être utilisés comme marqueurs statiques pour l'étalonnage. Pour ce faire, placez-les dans les coins les plus éloignés du champ et cliquez sur - calibrer.

Assemblage d'un dispositif de repérage central


Ce qui est nécessaire:


Ordinateur monocarte. Ces dessins sont faits pour l'emplacement d'Intel NUC, mais vous pourriez penser à placer dans le boîtier, par exemple, odroid xu4 ou raspberry pi4.

oCam . En fait la caméra, pour laquelle tout se passe. Nous avons changé l'objectif standard à 2,5 mm pour un angle de vision large
Écran (LCD HDMI 7 pouces à partage d'onde (B)) . Avec son aide, l'étalonnage et un certain nombre d'autres opérations sont effectués.

Bande LED. Utilisé pour éclairer la surface réfléchissante des marqueurs. Il vaut mieux utiliser le plus brillant disponible.

Batterie 16.8v LiPo. Nous utilisons 4s5200mAh. Ce sont les mêmes batteries que sur le robot, car elles sont pratiques et durent longtemps.

Convertisseur DC-DC abaisseur. Pour alimenter la bande LED. Nuc et le routeur sont alimentés directement par la batterie, car tous les faisceaux d'alimentation sont déjà sur eux.

Pièces imprimées. Ceci, en particulier, un support de caméra, un écran et des coins pour assembler le boîtier: https://yadi.sk/d/swUJUwxTnTVYFw

Détails du logement. Dans notre cas, c'était une feuille de carbone de 2 mm. Mais ce n'est pas la meilleure option, car conductrice de carbone, difficile à traiter et pas aussi légère que, par exemple, le plexiglas - peut-être l'option la plus simple. Bien que beaucoup plus difficile. Trouvez le lien ci-dessus.

Routeur (Zyxel keenetic extra). Nous avons dû le retirer de l'étui afin de l'adapter à la taille et au poids. Mais dans le cas général, nous ne le recommandons pas fortement.
Beaucoup de petites choses. Vis M3 * 8 ~ 40pcs, racks pour circuits imprimés 3x10 ~ 12pcs, fils, tournevis, wago, etc.

Assemblage


Vous devez d'abord préparer les coins imprimés en appuyant sur les écrous. Il se peut qu'il y ait quelques ajustements serrés et qu'ils devront être légèrement collés ou utiliser des écrous fondus
Ensuite, vous devez installer cette pièce dans la base. Il fournit un positionnement clair du centre de contrôle central à sa place.



Maintenant, nous assemblons le support de la caméra, y insérons oCam, collons le rétro-éclairage de la bande LED aussi près que possible de l'objectif et fixons le module à la base.





Après cela, vous pouvez installer toutes les parois latérales, en les fixant aux coins décrits précédemment. Les trous pour eux sont mieux à contrer à l'avance.



Nous avons mis un ordinateur monocarte et un routeur. Dans notre cas, il s'agit de NUC et Zyxel keenetic extra.






Et nous obtenons le système de suivi assemblé. Il ne reste plus qu'à régler l'inclinaison de la caméra.


débogage de localisation en 2018

Quel est le résultat


Nous avons donc raconté tous les secrets qui nous permettent de répéter notre système de nos propres mains. En l'utilisant, vous pouvez rapidement et sans aucune modification rendre votre système de localisation du robot sur le champ Eurobot. Et avec un minimum de modifications, créez un système de suivi assez universel et fiable pour quelque chose. Cependant, il convient de noter que lors de l'utilisation d'aruco 8x8, d'une taille de marqueur de 10x8cm et d'une caméra en 1Mpx, il n'est pas particulièrement possible d'augmenter le rayon de détection, cependant, si nous avons des limitations strictes sur la taille et les performances, alors en général, nous utilisons simplement un équipement plus intéressant.

Cette année, le règlement a fait mention de l'utilisation d'aruco 4x4, ainsi que de leurs portées non entrecroisées pour chaque côté du terrain. Dans un avenir proche, nous prévoyons d'intégrer cela dans notre solution afin qu'à l'avenir nous n'ayons pas peur de l'intersection des numéros de marqueur. Un autre incontournable, mais ce qui n'a pas encore été fait, c'est l'étalonnage manuel sur le terrain.
Dans le prochain article, nous parlerons du niveau inférieur des robots, de la façon dont la cinématique des robots est considérée, de la façon dont nous contrôlons les serveurs, les moteurs et les cônes lorsque nous travaillons avec freertos.

Je veux dire merci:

Alexey Postnikov (au nom de qui cela valait probablement la peine de tout publier) - pour, en général, tout le code de cet article et une assistance directe pour la rédaction de l'article.
Egor Alexandrov - pour tous les dessins et modèles, aide à la rédaction de l'article et 34 virgules.
Tamara Sinelnikova - pour avoir aidé à la rédaction de l'article.

Et le reste de l'équipe!

Il reste moins de 4 mois avant le début de la compétition, mais l'équipe Sberbank Eurobot reste ouverte aux nouveaux participants. Notre télégramme: https://t.me/SetUpSber

Articles précédents:

Ce qui est commun entre un revolver, des rondelles et un robot autonome
Propre pile de navigation. Mieux que ROS?

Source: https://habr.com/ru/post/fr482220/


All Articles