# Installation # ## Installation des dépendances ## ``` #!sh sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu trusty main" > /etc/apt/sources.list.d/ros-latest.list' wget https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -O - | sudo apt-key add - sudo apt-get update sudo apt-get install ros-indigo-desktop-full ros-indigo-freenect-stack ros-indigo-ardrone-autonomy libncursesw5-dev ``` ## Utilisation du dépôt ## ### Création d’un espace de travail catkin ### ``` #!sh source /opt/ros/indigo/setup.bash mkdir -p ~/hand_control_ws/src cd ~/hand_control_ws/src catkin_init_workspace ``` ### Clonage du dépôt ### Clonage de telle sorte que le dossier `hand_control` se situe dans le dossier `~/hand_control_ws/src/`, par exemple : ``` #!sh cd ~/hand_control_ws/src git clone git@bitbucket.org:_Luc_/hand_control.git # ou bien : git clone https://username@bitbucket.org/_Luc_/hand_control.git # (changer username) ``` Le contenu du dépôt se trouve alors dans `~/hand_control_ws/src`. ## Compilation ## Il est ensuite possible de compiler : ``` #!sh cd ~/hand_control_ws catkin_make ``` Puis pour pouvoir utiliser les commoandes ROS : ``` #!sh source /opt/ros/indigo/setup.bash source ~/hand_control_ws/devel/setup.bash echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc echo "source ~/hand_control_ws/devel/setup.bash" >> ~/.bashrc ``` # Utilisation # ## Branchement de la Kinect et paramétrage ## 1. Brancher la Kinect (sous tension) à l’ordinateur par USB ; 2. Poser la Kinect sur le sol, pointant le plafond ; 2. Lancer le "launchfile" kinect_commander.launch : `roslaunch hand_control kinect_commander.launch` ; 3. Vérifier les paramètres du filtre : - lancer rviz : `rosrun rqt_rviz rqt_rviz` - visualiser la sortie du filtrage (topic : `/filter/output` ; frame : `/camera_depth_optical_frame`) et repérer la main ; - lancer rqt_reconfigure : `rosrun rqt_reconfigure rqt_reconfigure` pour : - modifier les paramètres du filtre jusqu’à ne voir que les points de la main/gant/pancarte sur rviz (voir ci-dessous). - modifier le paramètre `neutral_alt` du nœud `commander` à la hauteur souhaitée (en mètres). C’est la hauteur de la main qui correspondra à l’immobilité de l’altitude. ### Paramètres du filtre ### Les paramètres du filtre (modifiables avec `dynamic_reconfigure` et en particulier `rqt_reconfigure`) sont : * `z_max` : en mètres, altitude maximale de la main, doit être inférieure à la hauteur du plafond. * pour un gant ou un carton *coloré* (vert, bleu etc.), on a généralement : - `hue` : par exemple 220 (bleu ciel) ou 150 (vert) ou 0 (rose/rouge) ; - `delta_hue` : 10-20 ; - `sat/val_min` : 0.0 ; - `sat/val_max` : 1.0 ; * pour un gant *noir* : - `hue` : 0 ; - `delta_hue` : 180 ; - `sat_min` : 0.0 ; - `sat_max` : 1.0 ; - `val_min` : 0.0 ; - `val_max` : 0.3 (à modifier à votre convenance); ## Connexion au drone et pilotage ## * Connecter l’ordinateur au réseau wifi du drone ; * Lancer le "launchfile" ardrone.launch : `roslaunch hand_control ardrone.launch` ; * Pour décoller : - soit `rostopic pub /ardrone/takeoff std_msgs/Empty` ; - soit lancer le nœud keyboard_cmd : `rosrun hand_control keyboard_cmd` et utiliser la touche *t* du clavier. * Pour atterir : - soit `rostopic pub /ardrone/land std_msgs/Empty` ; - soit, avec keyboard_cmd, utiliser la touche *b* du clavier. * Arrêt d’urgence : - soit `rostopic pub /ardrone/reset std_msgs/Empty` ; - soit, avec keyboard_cmd, utiliser la touche *g* du clavier. ### Commande à la main ### * Avancer/reculer & translations latérales : inclinaison de la main ; * Tourner (rotation autours de l’axe z) : angle de l’axe de la main avec l’axe parallèle au sol et perpendiculaire à la Kinect ; * Monter/descendre : altitude de la main. ### Options et paramètres de la commande ### Lancer si ce n’est déjà fait `rosrun rqt_reconfigure rqt_reconfigure` :