Évitement d’obstacles
Ce document présente ce qui est fait en évitement d’obstacles et des idées d’améliorations.
Révisions
Auteur: Pierre-Yves
Date : 30 novembre 2017
Idiot-proofé par : _____
But de notre module
Ce qui est nécessaire pour la compétition est l’évitement d’obstacles cylindriques assez petits, même s’ils sont sous le quadricoptère (d’où les capteurs 3D). Jusqu’à maintenant on est la seule équipe de la compétition avec un évitement d’obstacles 3D, c’est peut-être overkill. Le gros défi est que les obstacles bougent, il faut donc éviter dynamiquement les obstacles.
Le code actuel
L’implémentation de l’évitement d’obstacles repose actuellement sur la librairie MoveIt! en combinaison avec les caméras 3D Intel Realsense R200. Le code pour l’utiliser est dans le dossier elikos_path_planning_stack du repo elikos_ros. Les READMEs de ce dossier permettre de comprendre le rôle de chacun des packages. En gros, ils contiennent des configurations, des appels à la librairie et des patchs pour que la librairie ne pleure pas trop et accepte de fonctionner.
Problèmes avec la solution actuel
- On ne l’a pas assez testé! Est-ce que ça marche vraiment bien?
- C’est très lourd, possiblement bien plus lourd que nécessaire pour nos besoins.
- L’API de MoveIt! avec laquelle le code a été développée est maintenant deprecated. Si l’on garde cette solution, il faudrait mettre le code à jour.
Autres pistes de solutions
- Faire de l’évitement d’obstacles 2D avec un LIDAR.
- Transformer les points clouds 3D en données planaires (2D) et faire de l’évitement d’obstacles 2D. Ceci permetterais de considérer les obstacles plus bas que quad (visible avec les caméras 3D, mais pas avec un LIDAR). Il faudrait toutefois faire attention d’exclure le sol des point clouds. Pour manipuler les pointclouds, le standard dans ROS est d’utiliser la librairie PCL. Sinon il y a pointcloud_to_laserscan qui m’intrigue.
- Trouver une autre façon de faire du planning 3D meilleur que MoveIt!.
Pour les solutions 2D, il serait intéressant d’utiliser en partie ou en totalité la navigation stack de ROS.
Quels sont les capteurs possibles?
- Caméras 3D Intel Realsense R200
- LIDAR Hokuyo
Où se positionne l’évitement d’obstacles dans notre architecture actuelle?
Le module de planification de trajectoires (en gros l’évitement d’obstacles), reçoit en entrée une position à atteindre et envoie une trajectoire en résultat (on peut adapter plutôt facilement le module suivant s’il change). Voir l’architecture logicielle.
Comment tester l’évitement d’obstacles?
Pour le tester il faut la simulation Gazebo qui permet de simuler les capteurs. Il est possible d’ajouter des objets dans la scène ou carrément les obstacles de la compétition.