Outils pour utilisateurs

Outils du site


robotique:r_cerda:programmation

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Dernière révision Les deux révisions suivantes
robotique:r_cerda:programmation [21/02/2015 17:09]
sky99
robotique:r_cerda:programmation [21/02/2015 17:25]
sky99
Ligne 95: Ligne 95:
 {{ youtube>​tiKDK-l2gis?​large |Algorithme basique d'​évitement d'​obstacle avec gestion des collisions (r2.py)}} {{ youtube>​tiKDK-l2gis?​large |Algorithme basique d'​évitement d'​obstacle avec gestion des collisions (r2.py)}}
  
 +===== Algorithme basique d'​évitement d'​obstacles avec gestion des collisions et changement de sens de rotation : r3.py =====
 +[[https://​github.com/​sarinkhan/​R.Cerda/​blob/​master/​r3.py|La troisième version de ce code, r3.py]] permet au robot de changer de sens de rotation plutôt que de tourner toujours à gauche. En effet, dans les précédentes version, le robot évite systématiquement les obstacles par la gauche, ce qui entraîne qu'il finit par tourner en rond. Ici, lorsque le robot à tourné un certain nombre de fois du même côté, il décide d'​éviter les obstacles en tournant dans l'​autre sens. Nous considérons ici que tourner d'un coté inclut toute la série d'​instructions entre le moment ou le robot commence à tourner pour éviter un obstacle et le moment ou il a complètement terminé sa rotation, reprenant sa route. On s'​assure ainsi que le robot ne fasse pas des allers retours de gauche à droite : quand il commence à tourner, il continue jusqu'​à avoir trouvé un chemin dégagé.
 +
 +Cette vidéo illustre le comportement du robot lorsqu'​il exécute ce programme :
 +{{ youtube>​2Qf3TnlQzeo?​large |Algorithme basique d'​évitement d'​obstacle avec gestion des collisions et changement de sens d'​évitement d'​obstacles (r3.py)}}
 +
 +
 +
 +===== Algorithme avancé d'​évitement d'​obstacle,​ avec analyse de l'​environnement proche : r4.py =====
 +[[https://​github.com/​sarinkhan/​R.Cerda/​blob/​master/​r4.py|La quatrième version de ce code, r4.py]] reprend les bases posées sur les précédents algorithmes. Toutefois, au lieu d'​éviter d'un côté ou de l'​autre les obstacles "au hasard",​ le robot qui rencontre un objet devant lui se tournera légèrement à gauche et à droite pour mesurer la distance de chaque côté. Il choisira alors de tourner du côté ou la distance est la plus grande. Une fois qu'il a commencé à tourner, il continuera jusqu'​à ce que l'​obstacle ne soit plus dans sa trajectoire. Cette approche permet au robot de choisir la trajectoire d'​évitement la plus rapide lorsqu'​il rencontre un mur : ainsi il s'​éloignera du mur par le côté le plus ouvert.
 +
 +La vidéo suivante illustre le comportement du robot lorsqu'​il exécute ce programme :
 +{{ youtube>​IWt7p3Al-Fo?​large |Algorithme évolué d'​évitement d'​obstacles avec analyse de l'​environnement proche (r4.py)}}
 +Je n'ai pas encore téléversé le fichier sur le github, mais je vais chercher le code pour pouvoir le faire au plus vite, à l'​adresse du lien en début de cette section.
robotique/r_cerda/programmation.txt · Dernière modification: 21/02/2015 17:27 par sky99