Calcul de Position Robot à partir de 3 balises



Documents pareils
SINE QUA NON. Découverte et Prise en main du logiciel Utilisation de bases

Comment insérer une image de fond?

Salle de technologie

Fonctions linéaires et affines. 1 Fonctions linéaires. 1.1 Vocabulaire. 1.2 Représentation graphique. 3eme

Amphi 3: Espaces complets - Applications linéaires continues

Exprimer ce coefficient de proportionnalité sous forme de pourcentage : 3,5 %

FctsAffines.nb 1. Mathématiques, 1-ère année Edition Fonctions affines

TUBES ET ACCESSOIRES Serrurier A ailettes Construction Canalisation Spéciaux

Utilisation du logiciel GALAAD

Formation tableur niveau 1 (Excel 2013)

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

Continuité et dérivabilité d une fonction

Introduction à l approche bootstrap

Guide de réalisation d une campagne marketing

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures)

PROGRAMME D HABILETÉS EN FAUTEUIL ROULANT (WSP-F)

C est quoi un tableur?

Les mesures à l'inclinomètre

2 S I M 1 P H O N E G U I D E U T I L I S A T E U R. Guide d utilisation E-commerce / Prestashop

Comité permanent du droit des marques, des dessins et modèles industriels et des indications géographiques

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

Méthodes et techniques de la Prospection commerciale

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

Ce guide se divise en six chapitres, dont quatre sont dédiés à une catégorie de bâtiment :

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

NOEUD HERRINGBONE-PINEAPPLE STANDARD TYPE and PASS

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

Guide de configuration d'une classe

Plieuses semi-automatisées de nouvelle génération

Développements limités, équivalents et calculs de limites

Chapitre 11. Séries de Fourier. Nous supposons connues les formules donnant les coefficients de Fourier d une fonction 2 - périodique :

Maple: premiers calculs et premières applications

Fiche d animation n 1 : Pêle-mêle

Fonctions de plusieurs variables

Utilisation de l éditeur.

C.F.A.O. : Conception et Fabrication Assistées par Ordinateur.

74 cm - 89 cm INSTRUCTIONS DEMONTAGE KOMPACT

Al attention du praticien et des étudiants, nous avons développé

GUIDE Excel (version débutante) Version 2013

Le Dessin Technique.

Voyez la réponse à cette question dans ce chapitre.

DOCM Solutions officielles = n 2 10.

MegaStore Manager ... Simulation de gestion d un hypermarché. Manuel du Participant

Afficheurs 7 segments à LEDs Géant

Comment développer Ecoville : le cahier des charges

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

Arrêté Royal du 7 juillet 1994 fixant les normes de base en matière de prévention contre l incendie et l explosion : Notice explicative

Logiciel SCRATCH FICHE 02

Fiches d aide à l utilisation

Comparaison de fonctions Développements limités. Chapitre 10

MetaTrader pour IPhone. Guide d utilisation

CHAPITRE IX : Les appareils de mesures électriques

Les Cheminements piétons

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Formation Webmaster : Création de site Web Initiation + Approfondissement

Pour fins d'illustration seulement. Rapport préparé pour M. Albert Client et Mme Louise Client

Statistique : Résumé de cours et méthodes

Complément d information concernant la fiche de concordance

TIC. Réseau informatique. Historique - 1. Historique - 2. TC - IUT Montpellier Internet et le Web

Savoir lire une carte, se situer et s orienter en randonnée

Correction du baccalauréat STMG Polynésie 17 juin 2014

Compte bancaire ou assurance vie? 5. Amortissement direct ou indirect?

Exemple d application en CFD : Coefficient de traînée d un cylindre

CLUB DE MARCHE Ballade et Randonnée

.. CSS. Damien Nouvel. Damien Nouvel (Inalco) CSS 1 / 15

Quantification des Risques

1 radian. De même, la longueur d un arc de cercle de rayon R et dont l angle au centre a pour mesure α radians est α R. R AB =R.

Calculatrice TI Collège Plus

Table des matières. Télécharger MetaTrader 4. Première connexion à MetaTrader 4. Se connecter à MetaTrader 4. Modifier la langue

Elec II Le courant alternatif et la tension alternative

Exercice 6 Associer chaque expression de gauche à sa forme réduite (à droite) :

Carport Evolution 1 Voiture Adossant

Les attentes du marché

3.04 Prestations de l AVS Age flexible de la retraite

COMMENT CREER VOS BANDES GRAND FORMAT?

Procédure d utilisation du PRM

qff TD4 - Calcul du résultat par la méthode du coût variable I) Distinction entre charges variables et charges lïxes 2ème année LicenceAES TD4

Cours Fonctions de deux variables

Le contexte. Le questionnement du P.E.R. :

Sommaire Module téléphone

D'UN SITE INTERNET LES S D'UN SITE INTERNET PRATIQUE ET PERFORMANT PRATIQUE ET PERFORMANT

Sommaire. Aide Page 1

Editer un catalogue avec OpenOffice

SYSTÈME DE PORTES TAMBOUR MANUEL DE FORMATION ET DIRECTIVES DE MONTAGE

Tables. Tables individuelles réglables en hauteur manuellement

Infolettre #18 : Les graphiques avec Excel 2010

Petit lexique de calcul à l usage des élèves de sixième et de cinquième par M. PARCABE, professeur au collège Alain FOURNIER de BORDEAUX, mars 2007

AnaXagora LMS v3.0. Guide d utilisation

1 Définition. 2 Systèmes matériels et solides. 3 Les actions mécaniques. Le système matériel : Il peut être un ensemble.un sous-ensemble..

à l édition de textes

Lecture graphique. Table des matières

Parcours FOAD Formation EXCEL 2010

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.

Le seul ami de Batman

STATIQUE GRAPHIQUE ET STATIQUE ANALYTIQUE

Utiliser des fonctions complexes

FORMULES DE CALCUL. Prix = PV TTC = PV HT x (1 + taux de TVA) TVA = PV HT x taux de TVA PV HT = PV TTC 1 + taux de TVA

Transcription:

Calcul de Position Robot à partir de 3 balises 1. Mise en place a) On considère un terrain de largeur LongueurX et de hauteur LongueurY. Un repère est cartésien est placé sur le terrain avec pour origine le point inférieur gauche. LongueurX LongueurY y x b) Sur ce terrain, sont disposé, 3 balises aux coordonnées suivantes : Balise 1 : B1x = LongueurX /2 ; B1y = 0 ; Balise 2 : B2x = LongueurX ; B2y = LongueurY ; Balise 3 : B3x = 0 ; B3y = LongueurY ; Balise 3 Balise 2 Balise 1 c) Sur ce terrain, on dispose un robot dont les coordonnées seront notées (Rx, Ry). On assume que : Rx appartient à [0, LongueurX] Ry appartient à [0, LongueurY]

d) On notera respectivement a1, a2 et a3 les angles formés par l axe des abscisses et la droite rejoignant le robot respectivement avec les balises 1, 2 et 3. Balise 3 a3 Balise 2 Ry a1 a2 Rx Balise 1 Remarque 1: Le choix du calcul des angles par rapport à l horizontale est dans un souci de simplicité des calculs. L abscisse est le repère naturel des calculs trigonométrique. Une référence sur l axe vertical pourrait induire des erreurs d interprétation fatale aux calculs. Si le choix de l axe vertical est essentiel, les calculs ci-dessous pourront être utilisés en rapportant les angles mesurés depuis l axe vertical sur l axe horizontal (il suffit pour cela d ajouter PI/2 aux angles mesurés). Remarque 2 (Importante) : les angles sont signés, ce qu il signifie que leur direction (sens trigonométrique ou sens anti-trigonométrique) a une importance capitale. Dans les calculs qui vont suivre, ne jamais inversé les termes d une différence ou ne jamais tirer la valeur absolu d une valeur. De même, la mesure des angles doit être signée. Remarque 3 (Importante) : les calculs ci-dessous tiennent compte de mesures en Radian car il s agit de l unité naturelle de la trigonométrie et car la plupart des fonctions de calcul de divers langage de programmation (C, Java, Fortran, ) effectuent leurs calculs en Radians. Rappelons que : On notera alors que : 180 = PI radians 90 = PI/2 radians 360 = 2*PI radians L angle a1 appartient à [- PI ; 0] soit [-180 ; 0 ] L angle a2 appartient à [0 ; PI/2] soit [0 ; 90 ] L angle a3 appartient à [PI/2 ; PI] soit [90 ; 180 ] Ces intervalles doivent être considérés lors des mesures : un angle mesuré ne faisant pas parti de l intervalle correspondant doit être considéré comme invalide.

2. Calcul de la position du robot en fonction des angles Suivant le schéma ci-dessous, on peut déduire la position du robot à partir de chaque paire d angle : (a1, a2), (a1, a3) ou (a2, a3). Les calculs ci-dessous ont des «limites aux bornes». Ce qui signifie que dans le cas où les coordonnées du robot viennent à prendre des valeurs aux limites (le robot se déplace ou atteint les bords du terrain), certains calculs sont invalidés. Des cas particuliers sont alors à prendre en compte. Cependant, puisque le robot n a pas une dimension nulle et que le point de mesure devrait se trouver au centre du robot, il ne semble pas possible que le point de mesure atteigne les valeurs aux limites (les bords du terrain) Ainsi, dans un souci de clarté et de simplification, je mets de coté ici ces cas spéciaux. Si ceux-ci se révèlent nécessaires, n hésite pas à me demander. Par contre, le cas où le robot passe sur les segments joignant deux balises est aussi une condition limite que l on ne peut éviter pour les cas (a1, a2) et (a1, a3). Sur ces segments, les calculs respectifs sont inapplicables (en fait, durant le déroulement du calcul on se retrouve alors devoir diviser par un terme nul, ce qui invalide le calcul). Balise 3 Balise 2 Segment 2 Lieu des positions invalidant le calcul avec les angles a1 et a3 Balise 1 Segment 1 Lieu des positions invalidant le calcul avec les angles a1 et a2 Ainsi, si le robot arrive sur l une de ces positions, il faut absolument ne pas tenir compte de la position donnée par le calcul avec les angles correspondant : le résultat sera toujours faux. De même, une position trop proche de ces segments donnera un résultat de plus en plus imprécis au fur et à mesure que l on se rapproche d un segment. Il faut donc déterminer une marge d erreur invalidant le calcul. Des informations sont données ci-dessous.

Calcul à partir des angles (a1, a2). D après les données, on a : Tan( a1 + PI/2) = (B1x Rx) / Ry Tan( a2) = (B2y Ry) / (B2x Rx) On en déduit alors : Ry * [ Tan(a1 + PI/2) + (1/Tan(a2)) ] = B1x - B2x + [ B2y / Tan( a2) ] Rx = B2x [ (B2y Ry) / Tan( a2) ] Invalidation du calcul : ici le calcul devient invalide si Tan( a1 + PI/2) + (1/Tan(a2)) = 0 Ce qui se produit pour chaque point du segment 1. Il faut invalider le calcul si ce terme devient plus petit qu une valeur donnée. Dans le code Java décrit ci-dessous, j ai pris la valeur limite 0.001 avec de bons résultats. Calcul à partir des angles (a1, a3). D après les données, on a : Tan( a1 + PI/2) = (B1x Rx) / Ry Tan( a3 PI/2) = (Rx) / (B3y Ry) On en déduit alors : Ry * [ Tan(a1 + PI/2) Tan(a3 - PI/2) ] = B1x B3y * Tan( a3 + PI/2) Rx = B1x Ry * Tan(a1 + PI/2) Invalidation du calcul : ici le calcul devient invalide si Tan(a1 + PI/2) Tan(a3 - PI/2) = 0 Ce qui se produit pour chaque point du segment 2. Il faut invalider le calcul si ce terme devient plus petit qu une valeur donnée. Dans le code Java décrit ci-dessous, j ai pris la valeur limite 0.001 avec de bons résultats.

Calcul à partir des angles (a2, a3). D après les données, on a : Tan( a2) = (B2y Ry) / (B2x Rx) Tan( a3 PI/2) = (Rx) / (B3y Ry) On en déduit alors : Ry [ Tan( a3 PI/2) + (1/Tan( a2)) ] = B3y * Tan( a3 PI/2) B2x + [B2y / Tan( a2)] Rx = (B3y Ry) * Tan( a3 PI/2) ; Invalidation du calcul : ici le calcul devient invalide si Tan( a3 PI/2) + (1/Tan( a2)) Normalement, ceci de doit se produire que sur le segment entre la balise 2 et la balise 3, segment que le robot ne peut atteindre. 3. Utilisation du code de test Le code de test ci-joint permet deux choses : 1/ Vérifier les calculs ci-dessus : Le code demande la taille du terrain et les coordonnées réelle du robot. A partir de ces données, les angles a1, a2 et a3 sont calculés par des formules utilisant uniquement des arcsinus. Ensuite, on utilise ces angles avec les formules ci-dessus pour recalculer les coordonnées du robot. Les résultats sont alors comparables aux données d origine. Le lancement du code est décrit ci-dessous : TerrainRobot [-Lx <double>] [-Ly <double>] [-x <double>] [-y <double>] -Lx : Longueur du terrain (sens des x) -Ly : Hauteur du terrain (sens des y) -x : Abscisse du robot -y : Ordonnée du robot Valeurs par défaut : Lx=3 Ly=2 x=1.5 y=1 Le calcul tient compte des segments d invalidation est prévient si on se trouve en situation d exclusion d un calcul.

2/ Simuler les déviations de mesure : La mesure de l angle étant faite par un moteur pas à pas, l exactitude de la mesure se fait avec une incertitude de (2*PI/pas) où «pas» est le nombre de pas que doit faire le moteur pour effectuer un tour complet. Le code permet de simuler la position du robot en ajoutant cette incertitude dans le résultat du calcul des angles a1, a2 et a3. La position supposée du robot est alors calculée à partir de ces angles modifiée et la déviation à la position réelle estimée. Cette procédure est répétée autant de fois que demandé et on calcule la moyenne des déviations (en valeur et en pourcentage des mesures du terrain). Cette simulation prend en compte la taille du robot (estimée à 25cm de diamètre) afin de ne pas faire approcher le point de mesure des angles des bords du terrain à moins de 12.5 cm. On évite ainsi les conditions aux bords pouvant entraîner les erreurs de calculs. De même, le calcul tient compte des segments d invalidation est prévient si on se trouve en situation d exclusion d un calcul. Cette simulation permet de connaître le niveau d incertitude sur la position du robot afin de savoir si elle peut être dangereuse pour le résultat escompté (mettre la balle dans le trou). Le lancement du code est décrit ci-dessous : TerrainRobot [-Lx <double>] [-Ly <double>] [-simul <int>] [-p <int>] -Lx : Longueur du terrain (sens des x) -Ly : Hauteur du terrain (sens des y) -simul : Nombre de répétition du calcul -p : Nombre de pas du moteur requis pour une tour complet Valeurs par défaut : Lx=3 Ly=2 p=100 On remarque ainsi deux choses : 1/ Le calcul de la position du robot en utilisant les angles est précises. Avec des variables «double», l erreur de calcul se situe toujours en dessous de la quinzième décimale. 2/ La déviation due à une mesure insuffisamment précise des angles (un moteur ayant seulement 100 pas par tour par exemple) peut entraîner une erreur sur la position du robot dépassant le centimètre (et ainsi risquant de faire manquer la cible). Un moteur à 1000 pas par tour apporte une erreur suffisamment faible.