La petite histoire…
En 2003, avant même que le projet de construction de l’observatoire soit précisé, nous avions pour idée d’équiper le futur télescope d’un système de positionnement précis et peu coûteux. Michel, en discutant avec Sébastien, évoquait la lecture de graduation déportée grâce à un système de webcam… afin de ménager le dos des utilisateurs. En reprenant cette idée, Sébastien a extrapolé ce principe en lisant à la webcam des graduations binaires interprété par l’ordinateur. Sur cette page est présentée le grande ligne de cette réalisation.
Réalisation d’un encodeur absolu à l’aide d’une webcam
- Etat des lieux
Les systèmes Go-To sont aujourd’hui d’utilisation courante. Notre télescope étant piloté par un système PIC-Astro, le pilotage et le via un logiciel de cartographie utilisant le protocole LX200 possède un tel système.
Toutefois, comme bon nombre de système Go-To, le PIC-Astro utilise un positionnement relatif. Ainsi, il faut pointer un point de référence, typiquement une étoile, afin que le télescope se déplace par la suite sur l’objet rechercher. En conséquence, la manipulation manuelle n’est pas possible le risque étant de perdre la référence.
Il est usuel dans le monde amateur d’utiliser des encodeurs incrémentaux et donc relatif, soit du commerce, soit en détournant l’utilisation première d’un système (système à base de souris, de capteur optique) soit encore en comptant le nombre de pas d’un moteur (cas du PIC-Astro).
Les raisons principales de ce choix sont une question de coût et de simplicité de mise en œuvre.
Ainsi, les encodeurs absolus restent peu utiliser notamment en raison qu’une précision raisonnable est associée à un certain coût. La réalisation d’un système permettant de coder l’information sous forme d’un code Gray et de le lire est plus complexe.
- Notre solution
Nous présentons ici la réalisation d’un encodeur absolu à l’aide d’une webcam mise en œuvre sur notre télescope.
En terme d’achat, cela correspond à l’acquisition de deux webcams, une part axe, et à l’impression d’un code Gray à l’aide d’une imprimante.
L’impression d’un code Gray à l’aide d’une imprimante et le montage de celui-ci sur un support comporte évidemment de large impression qu’il faut corriger par un étalonnage des graduations. Dans le cas contraire, la précision du système est largement en dessous de ce que l’on attend d’un tel système de positionnement.
Une résolution de 640×480 est une valeur courante pour les webcams. La plage de réglage de la netteté de l’image de la webcam permet d’observer clairement un objet de l’ordre de 9 mm de largeur. La résolution spatiale de la webcam dans ce cas est de 14 μm.
Compte tenu des dimensions de notre télescope, l’utilisation de 4 bandes de feuille A4 (297mm de longueur) est retenue pour la réalisation du disque supportant le code Gray.
Nous utiliserons la valeur de 360mm afin de tenir compte des marges d’impression. Ainsi le périmètre du disque sera de 1131 mm.
La résolution angulaire théorique de l’encodeur absolu sera donc de 16 bits
Nous avons réalisé un programme générant un code Gray 14 bits imprimable.
Le choix d’un code 14 bits est en raison de la limitation en résolution de l’impression.
Toutefois, la lecture pouvant se faire à une précision au-delà des 14 bits, le bit de poids faible correspondant à environ 5 pixels sur l’image de la webcam, la résolution effective de lecture n’est pas limitée par ce choix du code Gray.
- Difficultés et solutions
Le programme de lecture des webcams doit traiter les images en temps réel. La méthode d’interprétation de l’image doit être :
- Adaptée à l’orientation de l’image
- Peu sensible à la poussière
- Peu sensible au défaut d’éclairage de la bande
- Non perturbée au niveau de la jonction des bandes
- Corrigée la distorsion de l’image par l’optique de la webcam et la courbure de la bande sur son support
- Telle que la bande soit étalonnée afin de compenser les irrégularités d’impression et de montage de la bande
Ainsi, le programme que nous avons réalisé détermine en temps réel l’orientation de la bande et est robuste grâce à l’utilisation de méthodes numériques telles que les transformés de Fourrier et l’ajustement de modèle théorique par méthode des moindres carrés
On s’affranchit des erreurs de lecture, lors du passage d’une jonction de bande devant la webcam, où lors de la présence de poussière sur la bande, par la lecture de plusieurs graduations, en l’occurrence 4 zones de lectures, sur une même image.
La distorsion de l’image par l’optique de la webcam et la courbure de la bande sur son support sont modélisées par l’observation d’une grille de calibration.
Afin de réaliser l’étalonnage nous devons utiliser une longueur référence. Le principe de lecture du code par la webcam nous donne une telle référence.
Nous réalisons deux lectures sur le même champ de vue. La distance entre les deux lignes de lecture est fixée à 288 pixels. Ainsi, quelle que soit la position du disque de lecture cette distance est de 288 pixels.
La référence fixe choisie est le nombre de pixels nécessaires afin de réaliser un tour complet du disque d’encodage.
Principe d’« assemblage » afin de comptabiliser le nombre de pixel pour couvrir un tour complet.
A chaque valeur du code Gray est associée une graduation angulaire basé sur la graduation de la bande en pixel, qui est une graduation suffisamment régulière.
- L’ennemi numéro 1 : La dilatation
On ne peut s’affranchir totalement des effets de dilatation… mais on peut essayer de minimiser leurs influences.
Pour minimiser les effets de dilatation, les bandes imprimées sur du calque polyester sont montées tendues sur des disques en aluminium.
- La réalisation
Le support en aluminium, comme le reste du télescope, a été réalisé au sein de l’association. Le support de la webcam a été modifié afin de l’intégrer plus facilement sur la monture. Deux leds ont été rajoutées afin d’éclairer le code Gray pendant l’observation (qui a priori se passe la nuit…).
- Dans la pratique
Dans la pratique on pointe à la main pour être proche de l’objet. On termine par un Go-To à l’aide du logiciel de cartographie. Cette méthode permet de gagner du temps de pointage sans avoir besoin d’un Go-to rapide, c’est à dire des moteurs puissants.
- Coté matériel
Le programme d’encodage tourne sur un PC linux. Le programme gère 2 webcams, une pour chaque axe, et supervise les communications suivant le protocole LX200 entre le circuit de commande des moteurs pas-à-pas (PIC-astro) et le logiciel de cartographie (carte du ciel).
- Le Port COM1 est le port du Logiciel de cartographie
- Port COM2 & COM3: Logiciel encodeur lisant les deux webcams et communiquant avec le logiciel de cartographie et le PIC-astro (en LX200)
- Port COM3: PIC-Astro
Le principe est de laisser faire le plus possible la communication entre PIC-astro et la cartographie. Le programme d’encodage corrige les coordonnées uniquement si l’écart entre les coordonnées de PIC-astro et celles données par les webcams est trop important (typiquement si l’écart est supérieur à 1 minute d’arc). Cet écart provient des défauts géométrique de la monture, de la mise en station des effets de réfraction atmosphérique, défauts mesurés et compensés par les modèles intégrés au programme d’encodage.
- Bilan
De cette façon on peut profiter de la précision de l’encodage relatif de PIC-asto et manipuler à la main le télescope sans perdre le positionnement grâce à l’encodage absolu.
Le code d’environ 15000 lignes est réalisé en C++ et comporte 4 fonctionnalités principales:
- Étalonnage des bandes de lecture avec correction des distorsions optiques et de l’effet de courbure du disque sur la lecture des bandes.
- Interprétation des images des webcams / gestions des communications LX200 entre Pic-astro et le logiciel de cartographie.
- Mesure et corrections des défauts géométriques de la monture
- Visualisation de la lecture du code Gray pour le débuggage et pour l’intérêt pédagogique.
- Documents de conception
Conception encodeur (partie 1 (pdf) / partie 2 (pdf))
Modélisation des défauts d’une monture équatoriale (pdf)
Correction sur des coordonnées apparentes (pdf )
- Conclusion
Ça marche, c’est sympa…
A nous les petites étoiles !
Réalisation et mise en place