Repository Summary
Checkout URI | https://github.com/dronesinma/ucl_drone_2016.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2017-09-22 |
Dev Status | UNMAINTAINED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
ucl_drone | 0.0.1 |
ucl_drone_gui | 0.0.0 |
README
UCL_DRONE_2016
Ce dépot git est le lieu de partage du code entre les deux groupes de mémorants 2016 dans le but de créer une base commune.
Lire CONTRIBUTING.md
pour contribuer
Mise en place du workspace
- (Installer ROS)
- Se placer dans le dossier où l’on veut copier le workspace de développement (n’importe où)
- Cloner ce dépôt dans ce dossier (
git clone
). - Procédure d’initialisation d’nu workspace ROS
- Ajouter à la fin de
.bashrc
le chemin vers ce dossier:
$ nano ~/.bashrc
source <chemin vers le workspace>/devel/setup.bash
- si
ardrone_autonomy
n’est pas installé, cloner le dans<chemin vers le workspace>/src
- Dans un terminal, se placer dans ce dossier et taper
catkin_make
Arborescence
-
drone_preparation/Appareillage
Contient le code adapté de Nicolas Rowier (autoconfarparrot
) ainsi que les fichiers de configuration associés -
doc/
Documentationrosdoc
(à générer) -
include/ucl_drone/
Contient les headers de nos fichiers C++. -
launch/
contient tous les fichiers.launch
-
msg/
contient les définitions des messages ROS propres à notre code -
src/
Contient le code des noeuds ROS (un noeud par fichier C++):-
controller/
noeud pour envoyer les instructions de décollage/aterrissage et controller en position dans le repère inertiel
-
computer_vision/
noeud pour traiter les images et extraire les descripteurs
-
map/
noeud pour répertorier les descripteurs dans le repère inertiel, ainsi que pour estimer la pose du drone
-
path_planning/
noeud pour envoyer, au controlleur, une suite de positions à atteindre
-
pose_estimation/
noeud pour estimer la pose (position et orientation) du drone sur base des capteurs et de la carte
-
strategy/
noeud qui détermine la suite des opérations à effectuer pour remplir son role attribué en début de mission
-
multi_strategy/
noeud pour attribuer un role à chaque drone avant le début de la mission
-
-
srv/
contient les définitions des services ROS -
target/
Contient les images des targets qui peuvent être sélectionnées -
CmakeLists.txt
Contient les chemins de tout ce qui doit être pris en compte dans la compilation catkin. -
package.xml
[TO BE UPDATED] Informations relatives au projet, notamment les dépendances et versions.
Procédure de lancement
- Placer une batterie chargée dans le drone (au préalable, configurer l’essid du drone et lui attribuer une adresse ip)
- Activer l’applet réseau, attendre la découverte du drone et s’y connecter
- Dans un terminal, se placer dans le dossier workspace et lancer le drone:
$ cd src/ucl_drone/drone_preparation/Appareillage
$ bash autoconfarparrot
Attendre de recevoir un message positif (en vert) pour chaque drone.
Si une erreur apparaît, vérifier que le routeur est accessible (`192.168.1.254`).
- Dans un autre terminal, lancer le démon ROS:
$ roscore
attendre le message
started core service [/rosout]
- Dans un autre terminal,
$ roslaunch ucl_drone <NOM DE FICHIER DU DRONE>.launch
-
Ctrl-C
pour tuerAttention! si on tue les noeuds avant d’avoir envoyer l’ordre d’atterir, le drone reste en vol !
Utiliser
ucl_drone_gui
en lançantrqt
dans un terminal (le plugin se trouve dans un menu contenant une liste de tout ceux disponibles). Attention!rqt
doit être lancé aprèsroscore
et doit être redémarré siroscore
est arrêté.
Documentation
This folder src/ucl_drone/doc
contains the documentation generated in html with rosdoc-lite
which uses doxygen comments in the codes.
The main page of the generated html documentation is here:
src/ucl_drone/doc/html/index-msg.html
Generate documentation
Go into the src/ucl_drone
folder and use:
$ rosdoc_lite .
(do not forget the dot .
which means “the current folder” in bash)
CONTRIBUTING
UCL_DRONE CONTRIBUTING
Please read the two reports of master students graduated in 2016.
Please follow the ROS guidelines:
- http://wiki.ros.org/QAProcess
- http://wiki.ros.org/CppStyleGuide
- http://wiki.ros.org/ROSNodeTutorialC%2B%2B
- https://github.com/davetcoleman/roscpp_code_format
Please document your code and respect the Doxygen syntax:
- http://wiki.ros.org/rosdoc_lite
- http://www.stack.nl/~dimitri/doxygen/manual/docblocks.html
- https://www.stack.nl/~dimitri/doxygen/manual/commands.html
The code contains some TODO tags. These highlight some ideas of new features that can help the future contributors. Here is a summary:
- Parameters:
- More parameters need to be tunable from the launch file to avoid compilation delay during the test phases
- Some of these parameters would be tunable during the runtime using the ROS server to ease development
- Here some examples:
- target’s path (also add a selection menu in the
ucl_drone_gui
) - keypoint detection and description
- thresholds to detect the target
- thresholds in the mapping node
- target’s path (also add a selection menu in the