\chapter{Installation de ROS et du projet}
\label{chap:installation_projet}

Tout d'abord, il faut installer ROS sur votre machine \cite{wiki_ros}. Afin d'installer ROS et les modules nécessaires à l'utilisation du projet, nous allons nous référer au tutoriel de M. Frezza-Buet disponible sur son site.

Suivez le lien suivant http://wiki.ros.org/ROS/Installation afin d'installer ROS sur votre machine. Lors de notre projet, nous avons utilisé la version suivante : ROS Melodic Morenia qui était alors la plus récente disponible.

Une fois ROS installé, installez les "catkins tools" qui permettront de créer des espaces de travail ROS
\begin{minted}{bash}
sudo apt install python-catkin-tools
\end{minted}

Créez un workspace sur lequel vous enregistrerez le projet :
\begin{minted}{bash}
cd ~
mkdir -p drone-rigide/src
cd drone-rigide/src
\end{minted}

Procédez à l'installation de bebop\_autonomy :
\begin{minted}{bash}
sudo apt-get install build-essential python-rosdep
\end{minted}

Récupérez également le dépôt teleop-tools, nécessaire à l'utilisation de bebop\_autonomy :
\begin{minted}{bash}
git clone https://github.com/ros-teleop/teleop_tools
\end{minted}

Procédez à l'installation de Parrot-ARSDK et indiquez enfin le chemin de Parrot-ARSDK pour bebop\_autonomy :
\begin{minted}{bash}
sudo apt install ros-melodic-parrot-arsdk
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/ros/melodic/lib/parrot_arsdk
git clone https://github.com/AutonomyLab/bebop_autonomy.git bebop_autonomy
\end{minted}

Pensez à copier le répertoire \verb|bebop_driver| qui se trouve dans \verb|bebop_autonomy| dans le répertoire \verb|src|.

\begin{minted}{bash}
cp -r bebop_autonomy/bebop_driver ./
\end{minted}

Attention à la version de ROS qui n'est pas forcément melodic.

Installez vq2

\begin{minted}{bash}
https://github.com/HerveFrezza-Buet/vq2
\end{minted}

Ramenez les modules du projet sur votre workspace :
\begin{minted}{bash}
git clone https://gitlab.rezometz.org/klafyvel/drone-rigide
\end{minted}

Récupérez le dépôt Gitlab de M. Frezza-Buet suivant :
\begin{minted}{bash}
git clone https://github.com/HerveFrezza-Buet/demo-teleop
git clone https://github.com/HerveFrezza-Buet/vqimg
\end{minted}
Ce module permet de contrôler le drone à l'aide du clavier et de reprendre la main sur ce dernier à tout instant.

Il faut maintenant procéder à la compilation. Tout d'abord, indiquez sous quelle version de ROS vous travaillez (à adapter à votre version) :
\begin{minted}{bash}
source /opt/ros/melodic/setup.bash
\end{minted}

Puis compilez votre workspace :
\begin{minted}{bash}
cd ~/drone-rigide
catkin build
\end{minted}

Désormais, à chaque fois que vous ouvrirez un nouveau terminal pour travailler sous ROS, il faudra indiquer au terminal sous quel version de ROS vous voulez travailler et dans quel workspace. Pour cela, écrivez la commande suivante :
\begin{minted}{bash}
source ~/drone-rigide/devel/setup.bash
\end{minted}

Ouvrez un terminal et lancez :
\begin{minted}{bash}
roscore
\end{minted}

Dans un nouveau terminal, placez-vous dans drone-rigide/src :
\begin{minted}{bash}
cd drone-rigide/src
\end{minted}

Et lancez le fichier \verb|simple_loop.launch| par l'instruction suivante :
\begin{minted}{bash}
roslaunch detect_targets/launch/simple_loop.launch
\end{minted}