diff --git a/Commande du drone.md b/Commande du drone.md deleted file mode 100644 index 85a5164..0000000 --- a/Commande du drone.md +++ /dev/null @@ -1,15 +0,0 @@ -# Pilote ROS du drone - -Nous utilisons [ardrone_autonomy](https://github.com/AutonomyLab/ardrone_autonomy/tree/master#sending-commands-to-ar-drone) - -La doc officielle est [ici](http://ardrone-autonomy.readthedocs.org/en/latest/index.html) - -Voir aussi le guide du développeur (section Téléchargement) - -À partir des deux inclinaisons du plan (roll & pitch, roulis et tangage) nous stimulons linear.x et linear.y qui sont traduits par le pilote en roulis et tangage pour permettre le mouvement. - -La variation d’altitude du plan doit stimuler linear.z. - -Il reste à voir si l’on veut contrôler angular.z. - -Les commandes doivent être envoyés à 30Hz (cf guide du développeur p.11) \ No newline at end of file diff --git a/Home.md b/Home.md index 96d4119..6d376dc 100644 --- a/Home.md +++ b/Home.md @@ -1,2 +1 @@ -wiki /!\ pas à jour -Voir README.md pour des infos. \ No newline at end of file +rien dans ce wiki diff --git a/Installation de ROS.md b/Installation de ROS.md deleted file mode 100644 index 3ee9be4..0000000 --- a/Installation de ROS.md +++ /dev/null @@ -1,37 +0,0 @@ -# Installation de ROS et des packages nécessaires # -## Installation de ROS Indigo ## -cf. [wiki ROS](http://wiki.ros.org/indigo/Installation/Ubuntu) : - -``` -#!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 -``` -## Installation des packages nécessaires ## - -### libfreenect / freenect_stack ### - -``` -#!sh - -sudo apt-get install ros-indigo-freenect-stack -``` - -### ardrone_autonomy ### - -``` -#!sh - -sudo apt-get install ros-indigo-ardrone-autonomy -``` - -### ncurses ### - -``` -#!sh - -sudo apt-get install libncursesw5-dev -``` \ No newline at end of file diff --git a/Mail projet.md b/Mail projet.md deleted file mode 100644 index 68e5322..0000000 --- a/Mail projet.md +++ /dev/null @@ -1,18 +0,0 @@ -# Mail du responsable de projet (extrait) # - -Donc sur le principe du projet : - -- on place une kinect pointant vers le haut de laquelle on va extraire un nuage de points (PointCloud) correspondant à une main placée au dessus. D'ailleurs, je pense qu'on prendre un gant de couleur unie bien criarde pour facilement filtrer les points d'intérêt et ne s'intéresse qu'à ceux de la main. -- on régresse un plan sur le point cloud -- on utilise les paramètres du plan pour définir le roll, pitch, altitude d'un drone; - -Il vous faut donc dans un premier temps : - -- faire les tutoriels de ROS (jusqu'au tutoriel sur les publisher et subscribers en C++/Python); Pour installer ROS sur votre machine, c'est beaucoup plus simple à ma connaissance d'installer ubuntu (http://wiki.ros.org/) -- regarder comment on définit/utilise des launch files sous ROS, ce qui facilite grandement le lancement de plusieurs noeuds (http://wiki.ros.org/roslaunch) -- regarder et utiliser la kinect sous ROS en utilisant freenect; Notamment regarder les nœuds et ce qu'ils publient sur leurs topics (http://wiki.ros.org/freenect_camera), il y a notamment une image de profondeur et une image RGB; -- regarder et utiliser le drone sous ROS : (par exemple : http://wiki.ros.org/ardrone_driver) - -J'ai sorti une kinect, elle est posée sur un des bureaux de la smartroom. - -Pour rappel, à la fin du projet, je vous demanderais de me remettre un rapport et de faire une soutenance. diff --git a/Message Plan.md b/Message Plan.md deleted file mode 100644 index 099741d..0000000 --- a/Message Plan.md +++ /dev/null @@ -1,18 +0,0 @@ -# Message Plan # -## Description ## - -``` -#! - -geometry_msgs/Point normal -float64 altitude -float64 curvature -``` -essayer : - - -``` -#!bash - -rosmsg show hand_control/Plan -``` diff --git a/Nœud filtre.md b/Nœud filtre.md deleted file mode 100644 index f42c802..0000000 --- a/Nœud filtre.md +++ /dev/null @@ -1,7 +0,0 @@ -# Nœud *filtre* # -## Description ## -* topic souscrit : **/filtre/input** (pcl::PointCloud sous forme sensor_msgs/PointCloud2) -* topic publié : **/filtre/output** (pcl::PointCloud sous forme sensor_msgs/PointCloud2) -* paramètre : **/filtre/zmax** (double) - -Publie sur */filtre/output* le PointCloud publié sur */filtre/input*, débarrassé des points tels que *z < /filtre/zmax* diff --git a/Nœud keyboard_azerty.py.md b/Nœud keyboard_azerty.py.md deleted file mode 100644 index 9c75221..0000000 --- a/Nœud keyboard_azerty.py.md +++ /dev/null @@ -1,8 +0,0 @@ -# Nœud **keyboard_azerty.py** # -## Description ## -C’est une modification de *teleop_twist_keyboard.py* du package *teleop_twist_keyboard* - -Topic publié : -- **/cmd_vel** (geometry_msgs/Twist) - -Il permet de contrôler au clavier l’altitude, les translations du drone dans le plan parallèle au sol, et la rotation du drone autour de l’axe vertical. diff --git a/Nœud normal_estimator.md b/Nœud normal_estimator.md deleted file mode 100644 index 47035e8..0000000 --- a/Nœud normal_estimator.md +++ /dev/null @@ -1,4 +0,0 @@ -# Nœud *normal_estimator* # -## Description ## -- topic souscrit : **/estimator/input** (pcl::PointCloud sous forme de sensor_msgs/PointCloud2) -- topic publié : **/estimator/output** (hand_control/Plan) \ No newline at end of file diff --git a/Nœud pcl_displayer.md b/Nœud pcl_displayer.md deleted file mode 100644 index 94db5e2..0000000 --- a/Nœud pcl_displayer.md +++ /dev/null @@ -1,13 +0,0 @@ -# Nœud *pcl_displayer* # -## Description ## -- topic souscrit : **/input** (pcl::PointCloud sous forme de sensor_msgs::PointCloud2) - -Affiche sous forme de log ROS et dans la console ROS (avec ROS_INFO) les PointClouds publiés sur **/displayer/input**. - -## Exemple ## - -``` -#!sh - -rosrun hand_control pcl_displayer input:=/filtre/output -``` diff --git a/Nœud random_pcl_publisher.md b/Nœud random_pcl_publisher.md deleted file mode 100644 index b6887af..0000000 --- a/Nœud random_pcl_publisher.md +++ /dev/null @@ -1,15 +0,0 @@ -# Nœud *random_pcl_publisher* # -## Description ## - -- topic publié : **/random/output** (pcl::PointCloud sous forme de sensor_msgs/PointCloud2) -- paramètres : - - **/random/freq** (double) : fréquence de publication d’un PointCloud sur */random/output/* - - **/random/length** (int) : longueur et largeur du PointCloud généré - - **/random/max** (double) : valeur maximale de x, y et z. - - **/random/min** (double) : valeur minimale de x, y et z. - -Ce nœud publie à la fréquence */random/freq* un PointCloud de PointXYZRGB où les valeurs des coordonnées x, y et z suivent chacune une loi uniforme sur [/random/min ; /random/max]. La couleur des points est r=g=255, b=0. - -## Implémentation ## - -On utilise pcl::common::UniformGenerator de et pcl::common::CloudGenerator de \ No newline at end of file diff --git a/Traitement signal Kinect.md b/Traitement signal Kinect.md deleted file mode 100644 index 7d115bf..0000000 --- a/Traitement signal Kinect.md +++ /dev/null @@ -1,43 +0,0 @@ -# Obtention des PointCloud - -## Obtention "à la main" des PointCloud : pilote et nodelets -### Pilote ROS de la Kinect - -Le pilote [freenect_stack](http://wiki.ros.org/freenect_stack), qui utilise [OpenKinect / libfreenect](https://github.com/OpenKinect) ne publie que des sensor_msgs::Image inutilisable par PCL. - -### Conversion en PointCloud - -Pour cela nous utilisons les nodelets [depth_image_proc/point_cloud_xyz](http://wiki.ros.org/depth_image_proc) ou [depth_image_proc/point_cloud_xyzrgb](http://wiki.ros.org/depth_image_proc) fournis par [image_pipeline](http://wiki.ros.org/image_pipeline?distro=indigo). - -Les topics publiés sont au format sensor_msgs/PointCloud2, c’est normal. - -## Obtention "automatique" des PointCloud : freenect_launch ou openni_launch - -[freenect_launch](http://wiki.ros.org/freenect_launch) ou [openni_launch](http://wiki.ros.org/openni_launch) fournissent directement pleins de nodelets, qui publient les PointClouds qui nous intéressent. - -## Récupération et publication des PointCloud sur les topics - -La façon la plus simple de récupérer les PointCloud (classe de PCL) à partir des messages de type sensor_msgs/PointCloud2 publiés par les nodelets d’image_pipeline est d’utiliser [pcl_ros](http://wiki.ros.org/pcl_ros?distro=indigo). Cf. leurs exemples de publishers et subscribers. - -De là même manière avec pcl_ros on publie des sensor_msgs/PointCloud2 de façon transparente à partir de PointCloud. - -Pour information, la conversion manuelle est possible avec [pcl::fromROSMsg](http://docs.pointclouds.org/trunk/namespacepcl.html#a22b3a98851964a79fafa7b9e543b3c75) ou [pcl::fromPCLPointCloud2](http://docs.pointclouds.org/trunk/namespacepcl.html#a89aca82e188e18a7c9a71324e9610ec9) - -# Traitement des PointCloud avec PCL - -## Filtrage selon z ou selon la couleur - -Utiliser [pcl::ConditionalRemoval](http://docs.pointclouds.org/trunk/classpcl_1_1_conditional_removal.html) dans un nœud. - -## Régression du plan - -Utiliser [pcl::NormalEstimation](http://docs.pointclouds.org/trunk/classpcl_1_1_normal_estimation.html) & [pcl::NormalEstimationOMP](http://docs.pointclouds.org/trunk/classpcl_1_1_normal_estimation_o_m_p.html) : - -- en particulier [computePointNormal](http://docs.pointclouds.org/trunk/classpcl_1_1_normal_estimation.html#afa0dd0bf400977f40eb91f08750bfa17) qui sert l’équation du plan sur un plateau : (a,b,c,d) tels que a.x + b.y + c.z + d = 0. -- explication [ici](http://www.pointclouds.org/documentation/tutorials/normal_estimation.php#normal-estimation) - -# Alternative pour la récupération des PointCloud - -* [openni_wrapper::DeviceKinect](http://docs.pointclouds.org/trunk/classopenni__wrapper_1_1_device_kinect.html) & [openni_wrapper::OpenNIDevice](http://docs.pointclouds.org/trunk/classopenni__wrapper_1_1_open_n_i_device.html) pour parler à la Kinect -* openni_grabber : [tuto](http://www.pointclouds.org/documentation/tutorials/openni_grabber.php#openni-grabber), [doc](http://docs.pointclouds.org/trunk/classpcl_1_1_open_n_i_grabber.html) -