Réalisation d'un asservissement en position d'un bras à hélice
Ecrit par Marc-Antoine SAVOYAT
04-03-2010
L’asservissement est une notion fondamentale
de l’automatisme et de l’électronique. Ce projet est l'occasion de faire un
petit système très simple et assez complet qui met en œuvre un asservissement
en temps discret sur un pic 18F2680 et quelques fonctionnalités de ce micro-contrôleur.
Bien qu'il peut paraitre sans intérêt, il faut imaginer ce bras reproduit à
l'identique dans le cadre d'un quadrirotor, à ce moment là l'asservissement
aurait pour but de stabiliser l'assiette de l'engin ( le codeur serai alors
remplacé par des accéléromètres ou une centrale inertielle).
Cet article est une introduction intuitive aux principaux
problèmes que l'on peut
rencontrer lorsque l'on souhaite contrôler le déplacement d'un robot. Comme chaque problème a sa solution, les principales seront décrites, en utilisant le moins de théorie possible. Le code source associé est sous license GPL, il est librement téléchargeable à cette adresse .
Mettre un ordinateur dans un robot n'est pas chose facile, il faut faire en sorte que le système soit léger, compact, peu gourmand, résistant aux chocs, secousses et aux parasites EM. Le disque dur étant la pièce la plus vulnérable d'un ordinateur domestique, il faut donc trouver une solution pour le remplacer. Cet article explique donc comment utiliser une compact flash avec Windows XP embedded.
Pour faire de la reconnaissance d'image, et du positionnement d'objet,
il est important de connaître précisément les caractéristiques de la
caméra utilisé. On classe traditionnellement les caractéristiques d'une
caméra en deux catégories :
Les paramètres intrinsèques : ce sont les
caractéristiques propres au capteur, à la lentille et à l'alignement de
l'optique. Ces paramètres ne varient théoriquement pas si la focale de
la lentille est fixé (autofocus désactivé).
Les paramètres extrinsèques : ce sont les
caractéristiques propres au positionnement de la caméra dans l'espace.
D'une manière générale on distingue 6 paramètres : 3 pour la
position (X, Y, Z) et 3 pour l'orientation (Thêta, Phi, Psi).
Dans notre cas, la caméra est fixée sur le robot, et l'on peut réduire
le nombre d'inconnues pendant un match à 3 (X, Y, Thêta), il faut par
contre déterminer avec précision la position de la caméra sur le robot,
pour obtenir un positionnement d'objet précis.
Il existe un toolbox matlab qui permet de déterminer les paramètres
intrinsèques d'une caméra, moyennant certaines hypothèses
simplificatrices, suffisantes dans la plupart des cas. Pour ce qui est
de la calibration des paramètres externes, nous utilisons un petit
programme fait maison.