110 lines
4 KiB
Markdown
110 lines
4 KiB
Markdown
# 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` :
|
||
|
||
|