Aller au contenu


Sandro

Inscrit(e) (le) 30 déc. 2013
Déconnecté Dernière activité hier, 21:39
*****

Sujets que j'ai initiés

[ROS2] rectification d'images stéréo

13 mai 2022 - 10:01

Bonjour,

 

Est-ce que quelqu'un aurait une idée comment on peut faire correction de la distortion et la rectification stereo d'une paire d'images stéréos en ROS2 (foxy à priori, mais si vous avez une solution pour galactic ou pour rolling/Humble je suis tout aussi preneur)?

 

En gros, pour l'instant, à partir d'un rosbag, je récupère un flux d'images stereos brutes avec leurs données de calibration :

/stereo/left/image_raw
/stereo/left/camera_info
/stereo/right/image_raw
/stereo/right/camera_info

Mon but est de récupérer des images gauche et droites avec les distorsions corrigées et avec l'alignement stéréo (stereo rectification) effectué (ie un pixel en position (x,y) sur l'image de gauche correspond à un pixel avec le même y sur l'image de droite. Peu importe si le résultat est en couleur ou en noir et blanc.

 

Dans ROS1, ça pouvait se faire avec le noeud stereo_image_proc du package stereo_image_proc :

ROS_NAMESPACE=stereo ros2un stereo_image_proc stereo_image_proc

Le problème est qu'en ROS2, si le paquet existe toujours, le noeud stereo_image_proc semble avoir disparu.

 

Du coup, est-ce que quelqu'un aurait une idée comment on fait désormais en ROS2 pour supprimer les distorsions et faire l'alignement stéréo?

Ou alternativement, est-ce que vous sauriez comment faire la même chose dans OpenCV à partir des informations contenues dans les messages camera_info (vu que j'utilises de toute façon openCV pour la suite, ça ne me pose pas non plus de problèmes de faire le traitement directement dans openCV)

 

Merci d'avance

Sandro

 


Drivers moteurs L9110 qui crament à des moments aléatoires

24 décembre 2021 - 01:30

Bonsoir,

 

Ce soir, j'ai voulu faire un mini plotter (en gros, le but était de colorier une surface en faisant des points avec un feutre).

La partie mécanique est faite en une paire d'heure avec un vieux jeu de construction (fischertechniques) que j'ai encore, et qui me sert parfois pour du prototypage rapide.

Coté électrique, deux moteurs CC du jeu de construction pour les axes x et y(un qui en théorie fonctionne avec une pile 9V, l'autre avec 4 piles 1.5V mais qui marche aussi en 9V), et un servo 9G pour le feutre (alimenté directement par l'arduino).

Pour les deux moteurs CC, je les alimente par un driver L9110 de la boutique (https://www.robot-ma...c-l9110-56.html), avec 2 LiPo 1S en série (donc une 2S) comme alim pour les moteurs.

 

La chose que je ne comprends pas, c'est que tout marche correctement (mis à part un peu de jeu mécanique, mais bon, c'est qu'un proto rapide), pendant une durée assez longue (plusieurs dizaines de minutes).

Puis brusquement, le driver L9110 se met à fumer sans raison apparente (plus précisément, l'un des deux ponts en H, parfois  l'un, parfois l'autre). A noter qu'en l’absence de cette fumée, le ponts en H sont froids (donc pas de problème de surintensité à priori, sauf si elle apparaît juste avant). Ces problèmes n'ont pas eut lieu au moment d'un branchement de fil, mais alors que le plotter tournait déjà (donc on peut exclure l'inversion de polarité).

 

Du coup, j'en suis à mon 4ième driver cramé ce soir, et je n'ai toujours pas compris d'où vient le problème. Vous avez une idée?

 

Un petit soupçon que j'ai, serait un faux contact sur le ground, donc plus de ground commun, mais je ne m'explique pas comment ça mènerait à de la fumée.

 

Des suggestions?

 

Merci d'avance

Sandro


Choix de connectique fiable

22 décembre 2021 - 12:24

Bonjour,

je me suis remis à mon projet de robot spéléo, pour lequel je suis en train de concevoir un PCB pour gérer toute la partie bas niveau avec un unique STM32 plutôt qu'avec 8 ATMega328P (les microcontroleurs des arduinos Uno/Nano).

 

Je me pose la question du choix des connecteurs à mettre sur le PCB :

- la priorité est la fiabilité : je penses que le robot risque de secouer un peu, et ne serait-ce qu'un seul fil déconnecté risque de compromettre fortement les chances de récupérer le robot (vu que le robot est fait pour aller dans des endroits trop étroits pour l'humain, on peut pas juste aller le dépanner)

- dans la mesure du possible, des connecteurs compacts seraient la bienvenue

 

Les connecteurs dont j'aurais besoin :

- alimentation principale : 2 pins (GND, 12V) : courant potentiellement élevé (10A continue). Fiabilité critique (si je perds l'alim, le  robot est perdu), détrompeur utile (mais pas indispensable). NB : je vais peut-être souder directement sur le PCB pour plus de fiabilité

- alimentation des moteurs : 2 pins, 1A. Détrompeur non nécessaire

- encodeurs : 4 pins, courant très faible. Peut être combiné avec le connecteur des moteurs ou séparé

- i2c : 3 pins, courant très faible, mais signal relativement rapide (100 kHz ou 400kHz) : connecteur sans faux contacts (micro-coupures)

 

Est-ce que vous avez des idées de connecteurs bien adaptés? (traversants ou SMD, les deux me vont)

 

Merci d'avance

Sandro


Étain qui ne tient pas sur langette de batterie

14 août 2021 - 11:47

Bonjour à tous,

Depuis hier soir, je suis bloqué par un bête problème de soudure. J'avais modifié un télémètre laser pour en faire un appareil de cartographie complet pour la spéléo (ie avec magnétomètre et clinomètre (mesure de pente) en plus).

Tout allait bien au début, mais j'ai une des deux languettes de la batterie lipo qui a cassée.

 

Depuis hier soir, j'essaye en vain de la ressouder, mais sans succès : pas moyen de faire tenir de l'étain sur la languette coté batterie (sur l'autre coté, j'y arrive, quoique avec difficulté). J'ai l'impression que le bout de la languette qu'il me reste était initialement "en sandwich" au milieu de l'autre coté.

 

Est-ce que vous avez une idée comment faire tenir de l'étain sur un métal récalcitrant? (je ne peux pas vous dire ce que c'est : l'autre languette à l'air d'être du cuivre, mais la mienne est plutôt couleur étain/alu.

J'ai essayé en nettoyant à l’acétone (surtout après qu'une bonne couche de flux de mon étain s'y soit déposé), j'ai essayé de gratter au papier verre, j'ai essayé avec deux fers différents (dans un de "bourrin" : 60W, pointe de 6mm de large), j'ai essayé deux bobines d'étain différentes (pas d'étain au plomb, j'en ai pas). Rien à faire : l'étain refuse obstinément à accrocher.

Je penses pas qu'il s'agit d'un problème d'inertie thermique : la languette fait 4mm de large, 8mm de long, et moins de 1mm d'épaisseur.

 

 

Est-ce que quelqu'un a une idée?

Est-ce que ça vaut le coup d'essayer de me procurer une bobine d'étain au plomb?

 

 

A noter que la solution la plus simple serait de remplacer la batterie, sauf qu'il s'agit d'une batterie spéciale sans éléments ferromagnétiques (pour ne pas perturber le magnétomètre), et qu'il n'y a qu'un seul fabriquant au monde à ma connaissance qui en produit, et qui ne vend pas aux particuliers : la seule solution est donc d'attendre la prochaine commande groupée, mais ça peut prendre des mois!

 

Merci d'avance

Sandro


Capteur de distance sans cross-talk

06 mai 2021 - 12:45

Bonjour,

 

Pour la détection de trous, j'ai laissé tombé la solution via la caméra de profondeur (autant elle est assez fiable pour détecter les obstacles, autant elle voit régulièrement des points "beaucoup plus loin" dans les surfaces lisses sans trop de texture, donc c'est galère de détecter les trous).

 

Du coup, je reviens à mon idée initiale, à savoir utiliser des capteurs de distances à faisceau étroit (capteur infrarouge probablement).

 

J'ai fait un test avec des capteurs "sharp" (similaires à https://www.robot-ma...a02yk0f-71.html, possible que ce soit même le même modèle). Le problème est que j'ai du cross-talk entre les capteurs  : quand je branche un seul capteur, j'ai un "peu" de bruit (un peu plus de 20cm entre le min et le max observée pour une distance fixe)  ; mais dès que je branche les deux en même temps, j'ai plus de 50cm entre le min et le max (pour la même distance fixe). Bref, c'est inexploitable.

 

Du coup, est-ce que vous connaissez des capteurs à faisceau "étroit" qui n'ont pas ce problème de cross-talk.

Mes contraintes sont les suivantes :

- pas de cross-talk (j'aurais entre 4 et 8 capteurs pointant en arc de cercle devant le robot)
- utilisable en outdoor même en plein soleil (les capteurs pointeront à 45° vers le bas).

- portée d'au moins 1.5m (en outdoor, y compris par temps ensoleillé). 2m serait un plus

- pour l'instant pas de contrainte d'étanchéité/résistance particules, mais si le capteur a un peu de protection, c'est un plus

- prix raisonnable (disons 25€ max par capteur, 35€ max s'il est IP54)

 

Est-ce que vous avez des idées?

Merci d'avance

Sandro