Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | Dernière révision Les deux révisions suivantes | ||
robotique:r_cerda:programmation [21/02/2015 17:15] sky99 |
robotique:r_cerda:programmation [21/02/2015 17:25] sky99 |
||
---|---|---|---|
Ligne 98: | Ligne 98: | ||
[[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é. | [[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)}} | {{ youtube>2Qf3TnlQzeo?large |Algorithme basique d'évitement d'obstacle avec gestion des collisions et changement de sens d'évitement d'obstacles (r3.py)}} | ||
- | On peut voir le comportement du robot exécutant cet algorithme dans la vidéo ci dessous : | + | |
- | {{ youtube>tiKDK-l2gis?large |Algorithme basique d'évitement d'obstacle avec gestion des collisions (r2.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. |