Python - TP

Objectif

Programmer un robot virtuel capable de se déplacer dans le plan et visualiser ses trajectoires.

Niveaux

Niveau 1

Initialisation du robot et affichages.

Niveau 2

Faire bouger le robot et affichages.

Niveau 3

Faire bouger le robot avec une séquence de mouvements cartésiens fixe de 1m et affichages.

Niveau 4

Aller vers des points donnés ((0,4), (2,1), (2,3), (4,0)) en utilisant des directions cartésiennes et des déplacements de 1m.

Niveau 5

Mémoriser la trajectoire.

Niveau 6

Visualiser la trajectoire dans le terminal en affichant une grille vide avec des croix aux positions traversées par le robot.

On pourra remplacer les croix par des numéros pour visualiser la temporalité.

Niveau 7

Se déplacer librement dans le plan toujours avec un pas de 1m maximum et affichage.

Niveau 8

Créer une fonction de déplacement avec un pas de déplacement en paramètre.

Niveau 9

Ajouter une vitesse au robot et le faire se déplacer avec un pas de temps $\Delta t$ et affichage.

Niveau 10

Déplacements autonomes de point en point en faisant varier la vitesse.

  • Vitesse maximale autorisée selon x : 1 m/s
  • Vitesse maximale autorisée selon y : 0.5 m/s

Niveau 11

Visualisation simple avec Matplotlib.

Niveau 12

Visualisation en temps réel simple avec Matplotlib.

Niveau 13

Passage à NumPy.

Niveau 14

Simulation de plusieurs robot et affichage comparatif. Chaque robot a sa mission.

Niveau 15

Ajouter des obstacles à l’environnement.

Niveau 16

Créer une fonction permettant de calculer la distance entre le robot et un obstacle.

Niveau 17

Détecter les collisions avec les obstacles. Si une collision est détectée, générer un mouvement aléatoire (ou non) pour débloquer le robot

Niveau 18

Déplacements autonomes de point en point avec des obstacles sans plannification (le robot ne connaît pas la carte du monde).

Niveau 19

Définir une distance minimale de sécurité autour du robot (détection dans un rayon de 50 cm).

Niveau 20

Ajouter un modèle au robot

Le robot possède deux roues motrices placées sur un même axe, symétriquement par rapport au centre du robot. Chaque roue est située à r = 0.20 m du centre. L’entraxe entre les deux roues est donc de d = 40 cm

Niveau 21

Créer un système simple d’évitement d’obstacle.

Lorsque le robot détecte un obstacle :

  • contourner l’obstacle;
  • reprendre la direction de l’objectif.

Le système n’a pas besoin de trouver la trajectoire optimale.

Niveau 22

Comparer plusieurs trajectoires possibles.

Pour chaque trajectoire, calculer :

  • sa longueur
  • le nombre de changements de direction
  • le temps nécessaire.

Afficher les résultats afin de comparer les trajectoires.