# Difficultés rencontrées durant la manip le 09-07-2019
## Cumulation des obstacles detectés par le Lidar
Beaucoup de raisons peuvent causer ce probleme de cumulation d'obstacles :
* Problemes venants de la carte locale et globale et leurs parametrages.
* Mauvaise detection de direction du drone qui cause une mauvaise orientation sur la carte.
* Mauvaise reglage des cartes (ex: les dimensions de la carte par rapport au monde réel)
## Le non-avancement du Drone sur la carte
Beaucoup de raisons peuvent causer ce probleme de cumulation d'obstacles :
* **Odom** contient des informations importantes sur le deplacement, direction et la vitesse du drone; des données qui sont mal calculées peuvent conduire à des erreurs dans le calcul des "velocities" envoyées par la pile de navigation, par consequent fausse navigation du Drone.
* Mauvaise coordination entre les dimensions du monde réel et les dimensions de la carte.
* Absense de l'"**origine**" du robot sur la carte, qui doit etre représenté par **Odom**(element très important pour le calcul des distances l'hors du deplaement.)
## Problemes de detection de l'orientation du Drone
Beaucoup de raisons peuvent causer ce probleme de cumulation d'obstacles :
* Mauvaise réglages des capteurs du Drone.
* Utilisation des mauvaises **tpic** venants de MAVROS.
* Mauvaise utlisation des Données venantes du Drone(ex :==odom==).
## Solutions possibles :
Proposition d'une liste de taches à faire pour solutionner ces problemes :
Dans un premier temps, se concentrer seulement sur la partie avancement du Robot sur la carte :
> il est tres indisponsable de comprendre le topic [**Odom**](http://docs.ros.org/melodic/api/nav_msgs/html/msg/Odometry.html), et ce qu'il cintient comme information.
* Dabord il faut essayer de regler l'**odom** venant de **Mavros** (ou le changer si c'est pas le bon qui est utilisé)pour qu'il soit bien dirigé vers l'avant(dans la version actuelle on prend l'odom et on le modifie pour avoir la flesh bien dirigé sur Rviz car à l'origine il est pas en bonne direction), l'affichage sur **rviz** avec le scan de velodyne peut nous aider à voir si **odom** est bien orinté ou pas.
* Essayer d'utiliser [**gmapping**](http://wiki.ros.org/slam_gmapping/Tutorials/MappingFromLoggedData) pour la partie carte, ça pourrai regler beacoup de problemes, si la carte ne se genere pas avec **gmapping** sur **Melodic** il faudra faire les tests sur **Kinetic**; gmapping va nous generer la carte apartir du [**Laser**](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/LaserScan.html), donc les parametres de la carte seront bien réglées ainsi que les dimensions de la carte(tres important) automatiquement.
* Lancer la pile de navigation et utiliser un autre topic **odom** que celui venant du Drone(fichier odom dans .../robot_setup_tf/src) pour essayer de trouver d'ou vien le probleme, [voila un exemple](http://wiki.ros.org/navigation/Tutorials/RobotSetup/Odom).
* Si on constate sur Rviz que le drone se deplace donc ce cas là, ça veut dire que le probleme venait de l'odom qu'on recuperait de Mavros.
> A chaque fois qu'on change de Topic il est indisponsable de connaitre son [**frame**](http://wiki.ros.org/tf/Tutorials/Adding%20a%20frame%20%28C%2B%2B%29) en affichant le Topic sur le terminal, et aussi afficher l'arbre **tf** et verefier que tout est bien connectés comme il faut.
* Après avoir trouvé une solution pour l'odom il faudra tester le deplacement du Drone sans aucune autre fonctionnalité (Detection d'obstacles par ex).
* Après, il faudra le tester avec la detection d'obstacles(sans évitement) pour verefier que les obstacles ne cumulent pas(il est très probable que l'utilisation de gmapping pour la generation de carte, sur Kinetic pourra regler ce probleme).
> il est possible d'utiliser gmapping en ajoutant un **Node** dans le fichier **launch** (my_robot.launch) et installer le ou les paquets necessaires avec les commandes sur le terminal.
* Si le deplacement et la detection d'obstacles fonctionnent, normalement l'evitement d'obstacles pourra facilement fonctionner car c'est juste un calcul de trajet qui est fait par des packages.
#### Installation de la pile de navigation :
http://wiki.ros.org/navigation/Tutorials/RobotSetup