RoboMind – une robot intelligent MiniCours-’09
Machines et Instructions Édition de programmes
Instructions Si vous voulez faire une machine, un ordinateur ou un robot fonctionne, vous lui donner des instructions Instructions diffère de machine à machine et peut être n’importe que. Par exemple: Recorder des vidéos: enregistrement, lecture, pause Navigateur web : aller sur le site, imprimer la page Question: Qu’est-ce qui pourrait être des instructions pour un pilote automatique?
Instructions de base Chaque machine à une manche des instructions : des actions qui sont exécutées directement. Notre robot à des instructions de base pour: Déplacer Regarder Peindre Saisir
Instructions pour RoboMind Les instructions peuvent être données par: en appuyant sur un bouton faire glisser la souris rédaction des commandes
Instructions avec la souris Ouvrez la télécommande en RoboMind (Exécuter > Télécommande) Cliquez sur les butons pour faire le robot réagir Exercice: essayer de faire le robot conduire une petite carré
Rédaction des commandes Vous pouvez aussi écrire des instructions Les mouvements peut être faits avec les commandes: forward(1), backward(1), left(), right()
Exemple Écrivez les instructions suivantes: Note: Sauvegarder comme Carre1
Les Instructions de base Déplacer forward (n) déplacer n pas en avant backward(n) déplacer n pas en arrière left () tourner à gauche sur 90 degrés right () tournez à droite sur 90 degrés north (n) tournez vers le nord et déplacer n pas en avant south(n) … east(n) … west(n) …
Les Instructions de base (cont.) Peindre paintWhite() placez le pinceau avec la peinture blanche sur le sol paintBlack() placez le pinceau avec la peinture noire sur le sol stopPainting() arrêt la peinture, le pinceau cacher Saisir pickUp() obtenez le phare à l'avant du robot putDown() mettez un phare à l'avant du robot
Les Instructions de base (cont.) flipCoain () lancer une pièce de monnaie pour faire un choix aléatoire. flipCoin () sera soit vrai ou faux avec une chance de 50% -50% Regarder leftIsObstacle() leftIsClear() leftIsBeacon() leftIsWhite() leftIsBlack() frontIsObstacle() frontIsClear() frontIsBeacon() frontIsWhite() frontIsBlack() rightIsObstacle() rightIsClear() rightIsBeacon() rightIsWhite() rightIsBlack()
Exercice Écrire votre nome!!! (openArea.map)
Langage de programmation pour RoboMind Comment savez-vous qu’elles sont les instructions vous autoriser à utiliser? Comme: forward(1), left(), repeat,... Vous ne savez pas à l'avance. Cela dépend des règles du langage de programmation. Vous devrez lire la documentation afin de trouver cela. Il existe de nombreuses langues de programmation.
Language de programmation pour RoboMind (cont.) Commentaries # texte libre qui ne sera pas évalué Boucles - Portion de code accompagnée de sa structure de contrôle destinée à être exécutée plusieurs fois (la structure de contrôle relançant l'exécution du code depuis le début tant qu'une condition n'est pas remplie)codestructure de contrôle
Boucles reapeat (n) {...instructions...} répète les instructions entre accolades exactement n fois Exemple: repeat(4) { forward(2) right() } repeat () {...instructions...} ne cesse de répéter les instructions entre accolades
Boucles (cont.) repeatWhile (condition) {...instructions...} Répète les instructions entre crochets tant que la condition est vraie. Cette condition doit être une perception /instructions pour regarder (par exemple frontIsClear ()) Example: avancer pendant que la route est libre repeatWhile(frontIsClear()) { forward(1) }
break vous permet de sauter hors de la boucle (par exemple une répétition), afin qu'il arrête l'exécution des instructions entre crochets. Le robot va reprendre l'exécution des instructions après la boucle. end si cette instruction est exécutée, le programme s’arrête Ex. if(frontIsObstacle()){ end }
Structures IF if (condition) {...instructions...} Exécutera les instructions entre crochets, si la condition est vraie. Sinon le robot reprendreles instructions écrites après la boucle. La condition doit être une perception (par exemple: frontIsClear ()
Structures IF (cont.) Example: si peinture blanche à la gauche -> peinture noire ???
Solution… If (leftIsWhite()) { left() forward(1) paintBlack() stopPainting() backward(1) right() }
Structures IF (cont.) I f (condition) {...instructions...} else {...instructions...} Example: Si vous voyez la peinture blanche a la gauche noire si non avancer quelques pas en avant ???
Solution… if (leftIsWhite()) { left() forward(1) paintBlack() stopPainting() backward(1) right() } else { forward(3) }
Exercise: Trouvez le point blanc!!! Utiliser findSpot1.map
Expressions Logiques Les conditions que ont uttilise pour les structures IF et le structure bucle sont des expressions logiques. Cette expression se traduira par la valeur vraie ou fauxe, qui est ensuite utilisé pour décider la partie du code à exécuter.
Operator: Not Notation: ~ Nombre de arguments: 1 Explanation: La négation de la valeur de l'argument Table de vérité: pas vrais = faux pas faux = vrais Exemple: not frontIsClear ()
Operator: AND Notation: & Nombre de arguments: 2 Explanation: vrais si les deux arguments sont vrais Table de vérité: vrai and vrai = vrai vrai and faux = faux faux and vrai = faux faux and faux = faux Exemple: frontIsClear() and rightIsWhite()
Operator: OR Notation: | Nombre de arguments: 2 Explanation: vrai si au moins l'un des arguments est vrai Table de vérité: vrai and vrai = vrai vrai and faux = vrai faux and vrais = vrai faux and faux = faux Exemple: frontIsClear() or rightIsWhite()
Exercice 1. Programmer une "dance" pour le robot en utilizent des boucles. Truc: Utilisez leftIsClear() et rightIsClear () pour déplacer la tête de robot. 2. Maze (maze1.map) Truc: En suivant toujours le mur sur le côté droit (ou suivant toujours le mur sur le côté gauche), vous trouverez la sortie. La sortie est marque par une balise ( frontIsBeacon() )