Ci-dessous, les différences entre deux révisions de la page.
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. |