Formation des enseignants Initiation à la robotique Mini-projet Marc Silanus –...

Preview:

Citation preview

ISNInformatique et Sciences du Numérique

Formation des enseignants

Initiation à la robotique

Mini-projet

Marc Silanus – marc.silanus@ac-aix-marseille.frGénie Electronique – Lycée A. Benoit – Cours Victor Hugo – 84803 L’ISLE SUR LA SORGUE

ISNInformatique et Sciences du Numérique

Initiation à la robotique

Le programme élèveSavoirs Capacités Observations

Découverte d’un système robotique et de sa programmation

• Identifier les différents composants d’un minirobot et comprendre leurs rôles respectifs.

• Décrire un système à événements simple à l’aide d’une machine à états finis.

• Programmer (dans un langage de haut niveau) un mini robot pour lui faire exécuter une tâche complexe.

On propose des activités adaptées aux équipements et logiciels disponibles dans l’établissement.

ISNInformatique et Sciences du Numérique

Initiation à la robotique

Planning

1. Qu’est-ce qu’un robot ?2. A quoi servent les robots ?3. Les kits robotiques4. Les simulateurs5. Application didactique• Définition de la problématique• Définition des limites du prototype• Recherche de solutions• Apport de connaissances élémentaires• Concevoir un prototype pour répondre à la problématique

ISNInformatique et Sciences du Numérique

Initiation à la robotique

1- Qu’est-ce qu’un robot?

ISNInformatique et Sciences du Numérique

Initiation à la robotique1- Qu’est-ce qu’un robot ?

• « Robota » signifie « Travail » en Tchèque.

• Introduit en 1921 par l'écrivain tchèque Karel Čapek (Tschapek) dans une pièce de théâtre.

• Désigne des êtres anthropomorphes qui réponde parfaitement aux ordres de leur maitre

ISNInformatique et Sciences du Numérique

Initiation à la robotique1- Qu’est-ce qu’un robot ?

• Définition : Machine pouvant manipuler des objets et réalisant des actions conformément à un programme préétablie et modifiable.

• Conséquence : Programmer un robot consiste à lui spécifier la séquence d’action qu’il doit réaliser

• Remarques :

• Les robots sont souvent dotés de « sens » (divers capteurs) leur permettant de décider de l’action la mieux adaptées à la situation ou à l’environnement.

• Les robots peuvent acquérir une certaine « expérience » au cours de leur fonctionnement : Dispositif d’Intelligence Artificielle (IA)

Energie

Secteur, Batteries, panneaux solaires, …

ISNInformatique et Sciences du Numérique

Initiation à la robotique1- Qu’est-ce qu’un robot ?• Schéma bloc

Carte mère

Système de traitement de l’information

Capteurs

acquisition des grandeurs physiques

Actionneurs

Réalisation des actions

programmésPositionVitesse

AccélérationTempérature

Humidité….

Grandeursphysiques

Grandeur électrique(tension, courant, fréquence, …)

Transmission numérique ou analogique

Transmission numérique ou

analogique

Interface de communication

Envoyer et/ou recevoir des informations

DéplacementPréhension

SonLumièreMesures

Liaison filaireSans filClavier

Ecran tactile…Transmission

numérique ou analogique

ISNInformatique et Sciences du Numérique

Initiation à la robotique1- Qu’est-ce qu’un robot ?• Principaux constituants d’un robot (mobile)

• La base mobile

• Les capteurs

ISNInformatique et Sciences du Numérique

Initiation à la robotique1- Qu’est-ce qu’un robot ?• Principaux constituants d’un robot (mobile)

• La base mobile

Þ Holonomie : le nombre de degrés de libertés contrôlables est égal au nombre total de degrés de liberté.

A partir d’une position donnée, une plateforme holonome devra donc pouvoir se déplacer :

en avant, sur le coté et tourner sur elle-même, le tout simultanément

ISNInformatique et Sciences du Numérique

Initiation à la robotique1- Qu’est-ce qu’un robot ?• Principaux constituants d’un robot (mobile)

• La base mobile

Þ Les plates-formes différentielles :

ISNInformatique et Sciences du Numérique

Initiation à la robotique1- Qu’est-ce qu’un robot ?• Principaux constituants d’un robot (mobile)

• La base mobile

Þ Les plates-formes omnidirectionnelles :

ISNInformatique et Sciences du Numérique

Initiation à la robotique1- Qu’est-ce qu’un robot ?• Principaux constituants d’un robot (mobile)

• La base mobile

Þ Les plates-formes omnidirectionnelles :

ISNInformatique et Sciences du Numérique

Initiation à la robotique1- Qu’est-ce qu’un robot ?• Principaux constituants d’un robot (mobile)

• La base mobile

Þ Les plates-formes non holonomes :

ISNInformatique et Sciences du Numérique

Initiation à la robotique1- Qu’est-ce qu’un robot ?• Principaux constituants d’un robot (mobile)

• La base mobile

Þ Les plates-formes à pattes :

ISNInformatique et Sciences du Numérique

Initiation à la robotique1- Qu’est-ce qu’un robot ?• Principaux constituants d’un robot (mobile)

• Les capteurs

Þ Les capteurs tactiles : Choc, préhension, …

ISNInformatique et Sciences du Numérique

Initiation à la robotique1- Qu’est-ce qu’un robot ?• Principaux constituants d’un robot (mobile)

• Les capteurs

Þ Les odomètres : Vitesse, trajectoire

ISNInformatique et Sciences du Numérique

Initiation à la robotique1- Qu’est-ce qu’un robot ?• Principaux constituants d’un robot (mobile)

• Les capteurs

Þ Les télémètres à ultrason : distance aux éléments de l’environnement

ISNInformatique et Sciences du Numérique

Initiation à la robotique1- Qu’est-ce qu’un robot ?• Principaux constituants d’un robot (mobile)

• Les capteurs

Þ Les télémètres à infrarouge : distance aux éléments de l’environnement

ISNInformatique et Sciences du Numérique

Initiation à la robotique1- Qu’est-ce qu’un robot ?• Principaux constituants d’un robot (mobile)

• Les capteurs

Þ Les télémètres laser : distance aux éléments de l’environnement, cartographie

ISNInformatique et Sciences du Numérique

Initiation à la robotique1- Qu’est-ce qu’un robot ?• Principaux constituants d’un robot (mobile)

• Les capteurs

Þ Les caméras : Perception de l’environnement Détection d’amers pour le positionnement Détection de guides de navigation (routes, couloirs, rails, …)

Traitement d’image : Indexation (recherche automatique dans une BD) Recherche des contours Colorimétrie Profondeur (déplacement apparent des objets) …

ISNInformatique et Sciences du Numérique

Initiation à la robotique1- Qu’est-ce qu’un robot ?• Principaux constituants d’un robot (mobile)

• Les capteurs

Þ Les centrales inertielles : Accéléromètre : accélération en translation Gyromètre : accélération de rotation Gyroscope : position angulaire par rapport à un axe de référence Magnétomètre ou boussole électronique

ISNInformatique et Sciences du Numérique

Initiation à la robotique1- Qu’est-ce qu’un robot ?• Principaux constituants d’un robot (mobile)

• Les capteurs

Þ Les balises : Repères de navigation ou de positionnement Actives ou passives

ISNInformatique et Sciences du Numérique

Initiation à la robotique1- Qu’est-ce qu’un robot ?• Principaux constituants d’un robot (mobile)

• Les capteurs

Þ Le GPS : Positionnement

ISNInformatique et Sciences du Numérique

Initiation à la robotique1- Qu’est-ce qu’un robot ?• Principaux constituants d’un robot (mobile)

ISNInformatique et Sciences du Numérique

Initiation à la robotique1- Qu’est-ce qu’un robot ?• Principaux constituants d’un robot (mobile)

• Les systèmes de traitement de l’information

Þ Le microcontrôleur : circuit intégré qui rassemble les éléments essentiels d'une carte mère :

• processeur, • mémoires (RAM et ROM),• interfaces d'entrées-sorties (Numériques, et Analogiques),• Convertisseurs Analogique / Numérique,• Timers,• PWM, • …

ISNInformatique et Sciences du Numérique

Initiation à la robotique1- Qu’est-ce qu’un robot ?• Principaux constituants d’un robot (mobile)

• Les systèmes de traitement de l’information

Þ L’automate programmable industriel : dispositif électronique programmable destiné à la commande de processus industriels par un traitement séquentiel.: • processeur, • mémoires (RAM et ROM),• Cartes d'entrées-sorties (Numériques, et Analogiques),• Modules de communication (RS232, RS485, Modbus, Ethernet, …)• Modules Motion• …

ISNInformatique et Sciences du Numérique

Initiation à la robotique1- Qu’est-ce qu’un robot ?• Principaux constituants d’un robot (mobile)

• Les systèmes de traitement de l’information

Þ L’ordinateur embarqué : utilisent généralement des microprocesseurs à basse consommation d'énergie ou des microcontrôleurs. • Disposent d’un système d’exploitation qui facilite la gestion des

tâches à effectuer.• Plusieurs programmes peuvent être exécuter simultanément.

ISNInformatique et Sciences du Numérique

Initiation à la robotique

2- A quoi servent les robots ?

ISNInformatique et Sciences du Numérique

Initiation à la robotique2- A quoi servent les robots ?

• Industrie : Effectuer des tâches répétitives lorsque les processus de fabrication sont fréquemment soumis à des modifications.

• Régularité dans l’exécution des tâches

• Pas de phénomène de lassitude ou de fatigue

• Résistance aux environnement dangereux (gaz nocifs, températures extrêmes, radiations, …)

ISNInformatique et Sciences du Numérique

Initiation à la robotique2- A quoi servent les robots ?

• Transport : Transporter de biens ou des personnes sur des trajets prédéfinis ou programmés.

• Flexibilité d’exploitation (24h/24, 7j/7, gestion optimisée de flotte)

• Réduction des coûts d’exploitation (pas de chauffeur, moins d’erreurs humaines)

• Investissements limités (Véhicules plus simples, Infrastructure légère)

• Pas de pollution atmosphérique

• Pas de bruit

Simserhof (parcours 800m – 10h/jour)

FuturoscopeAV-T3

transporteur cargo autonome Fuji Heavy Industries (Subaru)

Automated Guided Vehicules (Laser, Wifi)Transport de linge – hôpital d’Arras.

Automated Guided Vehicules (Laser)

ISNInformatique et Sciences du Numérique

Initiation à la robotique2- A quoi servent les robots ?

• Médical : Reproduire les mouvements du chirurgien en temps réel avec une grande précision.

• Opération à distance

• Vision en 3D en HD : Finesse et précision de la zone d’intervention

• Transmission mécanisée des gestes en supprimant les tremblements

ISNInformatique et Sciences du Numérique

Initiation à la robotique2- A quoi servent les robots ?

• Domestique : Ces robots peuvent faire de multiples tâches ou simplement nous divertir.

• Aspirateur, tondeuse à gazon, nettoyage de piscine, …

• Assistance à la personne

ISNInformatique et Sciences du Numérique

Initiation à la robotique2- A quoi servent les robots ?

• Militaire : Autonomes ou commandés à distance, conçues pour des opération de reconnaissance, d’attaque ou de déminage.

• Pas de problème moral en cas de capture ou destruction

• Mise en réserve en tant de paix

• Pas de formation longue et couteuse (mise à jour)

• Réduction des couts de fabrication de l’armement.

ISNInformatique et Sciences du Numérique

Initiation à la robotique2- A quoi servent les robots ?

• Explorateur : Exploration d’environnements difficiles pour l’homme.

• Exploration spatiale

• Sites contaminés (Tchernobyl, Fukyshima)

• Décombres suite à un séisme, une explosion, ...

Curiosity a touché le sol martien le lundi 6 août 2012

Nomad Exploration Moraine de l’Eléphant l’AntarctiqueJanvier 2000, recherche et identification de météorites

ISNInformatique et Sciences du Numérique

Initiation à la robotique2- A quoi servent les robots ?

• Humanoïde : Ressemblent à l’être humain, principale motivation des roboticiens.

• Assistance à la personne, travail collaboratif avec les humains

• Capable de marcher, monter/descendre les escaliers

• Reconnaitre les visages, parler, comprendre la parole, …

Projet « M » Exploration Lunaire

CB2Ucroa : Robot model

Simdroïd (robot patient dentaire)

Geminoïde

ISNInformatique et Sciences du Numérique

Initiation à la robotique

3- Les kits robotiques

http://www.generationrobots.com

• Thymio II (http://www.generationrobots.com )

148.00 € - Programmation Aseba (environnement open source)

ISNInformatique et Sciences du Numérique

Initiation à la robotique3- Les kits robotiques

• mOway (http://www.alecop.fr)

• 299 € (generationrobots.com) – programmation en C

ISNInformatique et Sciences du Numérique

Initiation à la robotique3- Les kits robotiques

• K-Junior (http://www.didastel.fr)

• À partir de 685 € (generationrobots.com) – programmation en C

ISNInformatique et Sciences du Numérique

Initiation à la robotique3- Les kits robotiques

ISNInformatique et Sciences du Numérique

Initiation à la robotique3- Les kits robotiques

• Lego Mindstorms NXT (http://www.generationrobots.com/ )

Kit programmation en C (RobotC) : 349 €

Kit Education : 330 € - Programmation Lego Mindstorm (LabView)

• Fishertechnik (http://www.fischertechnik.de)

Environ 450 € (technologie services) – Programmation : Logiciel Robo Pro Fischertechnik

ISNInformatique et Sciences du Numérique

Initiation à la robotique3- Les kits robotiques

• Vex Robotics (http://www.generationrobots.com)

A partir de 600 € – Programmation en C (Robot C)

ISNInformatique et Sciences du Numérique

Initiation à la robotique3- Les kits robotiques

ISNInformatique et Sciences du Numérique

Initiation à la robotique3- Les kits robotiques

• Bioloid (http://www.robotshop.com/ - http://www.dmseducation.net/)

• 349 $ à 1200 $ (roboshop) – programmation Robot Plus (basé sur le C)

148.00 € - Programmation Aseba (environnement open source)

ISNInformatique et Sciences du Numérique

Initiation à la robotique3- Les kits robotiques

• NAO (http://www.erm-automatismes.com/produit.php?id=403 )

ISNInformatique et Sciences du Numérique

Initiation à la robotique3- Les kits robotiques

• NAO (http://www.erm-automatismes.com/produit.php?id=403 )

ISNInformatique et Sciences du Numérique

Initiation à la robotique3- Les kits robotiques

• Erma Board (http://www.erm-automatismes.com)

• 349 $ à 1200 $ (roboshop) – programmation

• Prix non communiqué – programmation en C (arduino) – Multi-langage (Fox)

ISNInformatique et Sciences du Numérique

Initiation à la robotique

4- Les simulateurs

ISNInformatique et Sciences du Numérique

Initiation à la robotique4- Les simulateurs

• Guido van Robot (http://gvr.sourceforge.net/index.php )

• Initiation à la programmation

• Linux, Windows, Mac

• Syntaxe basée sur Python

• 18 leçons disponibles

• Gratuit

• Démo

ISNInformatique et Sciences du Numérique

Initiation à la robotique3- Les simulateurs

• Rossum's Playhouse (RP1) (http://rossum.sourceforge.net/downloads.html )

• Simulateur 2 dimensions

• Contrôle logique de navigation

• Linux, Windows, Mac

• Langage Java – C/C++

• The Rossum Project : The Trinity College Fire-Fighting Home Robot Contest.

• Gratuit

• Démo

ISNInformatique et Sciences du Numérique

Initiation à la robotique4- Les simulateurs

• Azolla (http://www.codeproject.com/Articles/33587/2D-LUA-Based-Robot-Simulator )

• Simulateur 2 dimensions

• Contrôle logique de navigation

• Validation d’algorithmes

• Windows

• Sources : Visual Studio C++

• Programmation : Lua

• Gratuit

• Démo

ISNInformatique et Sciences du Numérique

Initiation à la robotique4- Les simulateurs

• Microsoft Robotics Developer Studio (http://www.microsoft.com/robotics/ )

• Kit de développement

• Simulateur 3 dimensions

• Programmation du robot

• Windows (nécessite VS Express)

• VPL, VB.NET, C#, C++, Python

• Gratuit

• Plateformes :

• Lego NXT,• Parallax BOE-BOT,• IRobot Roomba, …

ISNInformatique et Sciences du Numérique

Initiation à la robotique4- Les simulateurs

• Webot (http://www.cyberbotics.com/ )

• Simulateur 3 dimensions

• Contrôle logique de navigation

• Validation d’algorithmes

• Validation solutions matérielles

• Linux, Windows, Mac

• C/C++, java, Python, Matlab

• Payant (env 2000€/poste)

ISNInformatique et Sciences du Numérique

Initiation à la robotique4- Les simulateurs

• Marilou (http://www.anykode.fr )

• Simulateur 3 dimensions

• Contrôle logique de navigation

• Validation d’algorithmes

• Validation solutions matérielles

• Linux, Windows, Mac

• C/C++, java, Python, Matlab

• Payant (env 2000€/poste)

ISNInformatique et Sciences du Numérique

Initiation à la robotique

5- Application didactique

ISNInformatique et Sciences du Numérique

Initiation à la robotique5- Application didactique• Définition de la problématique

Un hôpital souhaite s’équipé d’un dispositif de transport automatique pour :

• les plateaux repas,

• le linge de lit,

• les traitements médicamenteux, ….

ISNInformatique et Sciences du Numérique

Initiation à la robotique5- Application didactique• Définition des limites du prototype

Aucune modification des locaux ne peut être envisagée.

Pas d’émission d’ondes radio

Déplacement dans les couloirs uniquement

ISNInformatique et Sciences du Numérique

Initiation à la robotique5- Application didactique• Recherche de solutions

Châssis

Comportement

CapteursTraitement de l’information

Langage

ISNInformatique et Sciences du Numérique

Initiation à la robotique5- Application didactique• Apport de connaissances élémentaires

• Tâche 1 : Avancer

• Tâche 2 : Tourner autours d’un point

• Tâche 3 : Avancer-reculer entre deux obstacles

• Tâche 4 : Avancer jusqu’à un obstacle, faire un demi-tour et repartir en marche avant

• Tâche 5 : Suivre un mur (le mur de droite par exemple)

ISNInformatique et Sciences du Numérique

Initiation à la robotique5- Application didactique• Concevoir un prototype pour répondre à la problématique

• A partir des bases robotiques :

• Lego Mindstorm• Kjunior

• Simulation avec Azolla

ISNInformatique et Sciences du Numérique

Initiation à la robotique5- Application didactique• Apport de connaissances élémentaires

• Tâche 1 : Avancer

function azolla.main(azolla)

while true do

front = azolla:readsensor(0)

if(front<10) then

azolla:setspeed(0,0)

else

azolla:setspeed(20,20)

end

azolla:stepforward()

end

end

ISNInformatique et Sciences du Numérique

Initiation à la robotique5- Application didactique• Apport de connaissances élémentaires

• Tâche 2 : Tourner autours d’un point

Tourner sur lui-même. Centre de rotation au centre de l’axe des roues : Vitesse de même valeur mais de sens opposé à chaque roue.

Rayon de braquage égal à la distance entre les roues. Le centre de rotation se situe sur la roue qui sert de pivot : Vitesse nulle à cette roue.

Rayon de braquage égal à 2x la distance entre les roues : Le centre de rotation se situe à r=b.

⇒ Vitesse roue 1 :

⇒ Vitesse roue 2 : dt

d.r1v

1V.2dt

d.r.22v

ISNInformatique et Sciences du Numérique

Initiation à la robotique5- Application didactique• Apport de connaissances élémentaires

• Tâche 2 : Tourner autours d’un pointfunction azolla.main(azolla) while true do

azolla:setspeed(-10,10) //Tourner sur lui-même endEnd

function azolla.main(azolla) while true do

azolla:setspeed(0,10) //rayon braquage = distance entre roues endend

function azolla.main(azolla) while true do

azolla:setspeed(5,10) //rayon braquage = 2x distance entre roues endend

ISNInformatique et Sciences du Numérique

Initiation à la robotique5- Application didactique• Apport de connaissances élémentaires

• Tâche 3 : Avancer-reculer entre deux obstaclesfunction azolla.main(azolla) while true do

front = azolla:readsensor(0)back = azolla:readsensor(3)if(front<12) then sens=-1 -- Définir le sensendif(back<12) then sens=1end-- Vitesse constanteif(front>20 and back>20) then vitesse=20;end-- Accéléré ou ralentirif(front<20) then

vitesse=2*front-20;endif(back<20) then

vitesse=2*back-20;endazolla:setspeed(sens*vitesse+1,sens*vitesse+1)azolla:stepforward()

endEnd

ISNInformatique et Sciences du Numérique

Initiation à la robotique5- Application didactique• Apport de connaissances élémentaires

• Tâche 4 : Avancer jusqu’à un obstacle, faire un demi-tour et repartir en marche avant

function azolla.main(azolla) azolla:setspeed(10,10) while true do

front = azolla:readsensor(0)back = azolla:readsensor(3)if(front<2) then

azolla:setspeed(0,-9)endif(back<3) then

azolla:setspeed(10,10)endazolla:stepforward()

endend

ISNInformatique et Sciences du Numérique

Initiation à la robotique5- Application didactique• Apport de connaissances élémentaires

• Tâche 5 : Suivre un mur (le mur de droite par exemple)

function azolla.main(azolla) while true do

front = azolla:readsensor(0)right = azolla:readsensor(1)if(front<10) then azolla:setspeed(-10,10)else if(right>5.25) then azolla:setspeed(4,5) --Correction else if(right<4.75) then azolla:setspeed(5,4) --Correction else azolla:setspeed(5,5) end endendazolla:stepforward()

endend

ISNInformatique et Sciences du Numérique

Initiation à la robotique5- Application didactique• Apport de connaissances élémentaires

• Tâche 5 : Amélioration – Correction proportionnelle

.V4.5,0

V2V max

maxC

• Moteur droit : Vmoy + Vc• Moteur gauche : Vmoy – Vc

ISNInformatique et Sciences du Numérique

Initiation à la robotique5- Application didactique• Apport de connaissances élémentaires

• Tâche 5 : Amélioration – Correction proportionnellefunction azolla.main(azolla)

while true dofront = azolla:readsensor(0)back = azolla:readsensor(3)right = azolla:readsensor(1)moyenne = 5Kp=4delta = right - moyenneVmoy=10Vc=Kp*deltaif(front<moyenne) then

azolla:setspeed(-5,5)else

azolla:setspeed(Vc+Vmoy,Vmoy-Vc)endazolla:stepforward()

endend

ISNInformatique et Sciences du Numérique

Initiation à la robotique5- Application didactique• Apport de connaissances élémentaires

• Tâche 5 : Amélioration – Correction proportionnelle intégrale

Si l’erreur persiste, il faut longtemps au correcteur proportionnel pour agir.

Si on augmente la valeur de Kp : le robot se met à osciller.

On calcule le cumul des erreurs pendant un certain temps et on le multiplie par un coefficient pour ajuster la correction de vitesse :

)t.(.K.KVIpc

ISNInformatique et Sciences du Numérique

Initiation à la robotique5- Application didactique• Apport de connaissances élémentaires

• Tâche 5 : Amélioration – Correction proportionnelle intégralefunction azolla.main(azolla)

Vmoy=10moyenne = 5somme=0Kp=4Ki=0.01while true do

front = azolla:readsensor(0)back = azolla:readsensor(3)right = azolla:readsensor(1)delta = right - moyennesomme=somme+deltaVc=Kp*delta+Ki*sommeif(front<moyenne) then

azolla:setspeed(-5,5)else

azolla:setspeed(Vmoy+Vc,Vmoy-Vc)endazolla:stepforward()

endend

ISNInformatique et Sciences du Numérique

Initiation à la robotique5- Application didactique• Apport de connaissances élémentaires

• Tâche 5 : Amélioration – Correction proportionnelle intégrale dérivé

Prévoir les erreurs pour essayer de les corriger avant qu’elles se soient produites :

On suppose que la prochaine variation de l'erreur est identique à sa dernière variation :

ErreurFuture = ErreurActuelle + derive.t

Soit : derive = (ErreurActuelle – ErreurPrécédente)/t

ISNInformatique et Sciences du Numérique

Initiation à la robotique5- Application didactique• Apport de connaissances élémentaires

• Tâche 5 : Amélioration – Correction proportionnelle intégrale dérivé

Prévoir les erreurs pour essayer de les corriger avant qu’elles se soient produites :

On suppose que la prochaine variation de l'erreur est identique à sa dernière variation :

ErreurFuture = ErreurActuelle + derive.t

Soit : derive = (ErreurActuelle – ErreurPrécédente)/t

tK.K.KV dIpc

ISNInformatique et Sciences du Numérique

Initiation à la robotique5- Application didactique• Apport de connaissances élémentaires

• Tâche 5 : Amélioration – Correction proportionnelle intégrale dérivé

function azolla.main(azolla)Vmoy=10moyenne = 5somme=0derive=0ErreurPrecedente=0Kp=9Ki=0.01Kd=20while true do

front = azolla:readsensor(0)right = azolla:readsensor(1)

delta = right - moyennesomme=somme+deltaderive=delta-ErreurPrecedenteVc=Kp*delta+Ki*somme+Kd*deriveif(front<moyenne) then

azolla:setspeed(-5,5)else

azolla:setspeed(Vmoy+Vc,Vmoy-Vc)endErreurPrecedente=deltaazolla:stepforward()

endend

ISNInformatique et Sciences du Numérique

Initiation à la robotique5- Application didactique• Apport de connaissances élémentaires

• Tâche 5 : Amélioration – Logique floue

ISNInformatique et Sciences du Numérique

Initiation à la robotique5- Application didactique• Apport de connaissances élémentaires

• Tâche 5 : Amélioration – Logique floue

ISNInformatique et Sciences du Numérique

Initiation à la robotique5- Application didactique• Apport de connaissances élémentaires

• Tâche 5 : Amélioration – Logique floue

ISNInformatique et Sciences du Numérique

Initiation à la robotique5- Application didactique• Apport de connaissances élémentaires

• Tâche 5 : Amélioration – Logique floue

1

0

Fonctions d’appartenance en entrée de la variable linguistique « position du robot »

Trop loin

430400

Correct

Fonctions d’appartenance en sortie

Variable linguistique « Puissance du MD »

9876543210

1

Application de la règle n°1

Application de la règle n°2

0,8

0,2

MD = 0x0,8 + 9x0,2 = 1,8

ISNInformatique et Sciences du Numérique

Initiation à la robotique5- Application didactique• Apport de connaissances élémentaires

• Tâche 5 : Amélioration – Logique floue

IR=KJunior_get_proximity(RIGHT); if(KJunior_get_proximity(FRONT) > 400) KJunior_set_speed(0,0); else if(IR<401) { MD=0; MG=9; } else if(IR>400 && IR<431) { MD=(int)(0.3*IR-120); MG=9; } else if(IR>430 && IR<471) { MD=9; MG=9; } else if(IR>470 && IR<501) { MD=9; MG=(int)(-0.3*IR+150); } else if(IR>500) { MD=9; MG=0; } KJunior_set_speed(MG,MD); }