Ceci est une version archivée de
SimulCapteurs à 2007-03-24 16:10:34.
Simulation des différents capteurs
Retour
Objectifs :
Notre objectif est de simuler des capteurs. Nous réalisons notre code sous le logiciel Codeblock. Grace à ce code, le microcontrôleur pourra dialoguer avec le simulateur grâce à des requêtes d'informations et des envois d'ordres.
1) Compréhension d'un code existant
Pour la réalisation de capteur sous Raydium, nous avons commencé par comprendre l’utilisation d’ODE (
http://www.ode.org/) avec Raydium (
http://raydium.org/). Nous sommes partis d’une base existante, et nous avons essayé de comprendre la forme du programme et les parties importantes et utiles. Ce programme simulait la conduite d'une voiture sur un circuit. Ce code nous était fourni et nous sommes partis de cette base.
2) Description des fonctions
Sous Codeblock, à chaque 'step', une fonction de lecture et d'écriture sur la liaison série est appelée. Ces deux fonctions sont nommées 'periph_write' et 'periph_read'. Ces fonctions sont définies sous Codeblock et sont appelées par le microcontrôleur, elles simuleront les actions et informations transmises aux capteurs. Elles ont en paramètres le périphérique (capteur) concerné et une valeur liée.
Détails des fonctions :
DetailfonctionPeriph AidePeriph
Les périphériques utilisées dans les fonctions periph_read et periph_write sont déclarés dans une structure nommée « periph » de la forme :
DeclarPeriph
Il est donc possible de rajouter des périphériques sans difficultés.
3) Conversion
Une fois que chaque fonction (correspondant à chaque capteur) a été créé, nous avons récupéré les valeurs des angles de rotation du drone par rapport aux axes de la carte. Nous avons beaucoup cherché pour pouvoir trouver une solution qui fonctionne correctement. Nous avons testé beaucoup de fonctions de Raydium mais aussi d’ODE et au final, nous avons trouvé une solution sur le site
http://en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles en utilisant les quaternions du drone pour trouver les angles d’Euler.
Les calculs des angles sont basés sur des relations mathématiques :
CalculAngles
Explication des différents mouvements possibles du drone (source Wikipédia):
Ces angles correspondent au roulis du drone (rotation du drone par rapport à l’axe X) :
Au tangage (rotation du drone par rapport à l’axe Y) :
Au lacet (rotation du drone par rapport à l’axe Z) :
4) Conclusion
Les capteurs simulés sous Codeblock, dialoguent avec le microcontrôleur grâce aux fonctions réalisées. Les différentes informations du drone sont donc transmises en temps réel à notre maquette, et celle-ci pourra donc envoyer des ordres au simulateur pour un asservissement correct.
Retour