Upload
eneas-mathis
View
123
Download
8
Embed Size (px)
Citation preview
ISNInformatique et Sciences du Numérique
Formation des enseignants
Initiation à la robotique
Mini-projet
Marc Silanus – [email protected]é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); }