Difference between revisions of "Projet Lidar 2013"

From air
Jump to navigation Jump to search
 
(2 intermediate revisions by 2 users not shown)
Line 2: Line 2:
 
* [[Media:PM2M-Lidar-2013-flyer.pdf|flyer]]
 
* [[Media:PM2M-Lidar-2013-flyer.pdf|flyer]]
 
* [[Media:PM2M-Lidar-2013-poster.pdf|poster]]
 
* [[Media:PM2M-Lidar-2013-poster.pdf|poster]]
* [[Media:PM2M-Lidar-2013-sources.tgz|sources]]
+
* [[Media:Geoloc_2013.tgz|sources]]
   
   
[[File:Lidar1.jpg|thumb|200px|right|Cartographie du couloir. L'extincteur réflichit le faisceau laser du Lidar, causant des erreurs de mesure.]]
+
[[Image:Lidar0.jpg|thumb|200px|right|Soutenance du projet.]]
[[File:Lidar2.jpg|thumb|200px|right|Cartographie du couloir Polytech]]
+
[[Image:Lidar1.jpg|thumb|200px|right|Cartographie du couloir. L'extincteur réflichit le faisceau laser du Lidar, causant des erreurs de mesure.]]
[[File:Lidar3.jpg|thumb|200px|right|Cartographie du couloir Polytech]]
+
[[Image:Lidar2.jpg|thumb|200px|right|Cartographie du couloir Polytech]]
[[File:Lidar4.jpg|thumb|200px|right|Cartographie du couloir de l'IMAG]]
+
[[Image:Lidar3.jpg|thumb|200px|right|Cartographie du couloir Polytech]]
[[File:Couloir1.png|thumb|200px|right|1ère version de l'interface]]
+
[[Image:Lidar4.jpg|thumb|200px|right|Cartographie du couloir de l'IMAG]]
[[File:Couloir2.png|thumb|200px|right|2ème version de l'interface. L'acquisition fonctionne sur OSGi (Apache Felix). La visualisation 3D est en stand-alone Java. Les données sont échangées via MQTT (Mosquitto).]]
+
[[Image:Couloir1.png|thumb|200px|right|1ère version de l'interface]]
  +
[[Image:Couloir2.png|thumb|200px|right|2ème version de l'interface. L'acquisition fonctionne sur OSGi (Apache Felix). La visualisation 3D est en stand-alone Java. Les données sont échangées via MQTT (Mosquitto).]]
   
   
Line 22: Line 23:
 
Les photos affichées ici montrent le [[Lidar]], l'interface utilisateur sur le pc et la visualisation du couloir que nous venions d'effectuer.
 
Les photos affichées ici montrent le [[Lidar]], l'interface utilisateur sur le pc et la visualisation du couloir que nous venions d'effectuer.
   
== Architecture ==
+
= Architecture =
 
Afin de dialoguer avec le Lidar, il a fallu implémenter le protocole de communication de ce dernier.
 
Afin de dialoguer avec le Lidar, il a fallu implémenter le protocole de communication de ce dernier.
 
Il s'agit du protocole [[Sensor CommunIcation Protocol Specification|SCIP]] ([[Sensor CommunIcation Protocol Specification]]) dont deux versions existent: 1.1 et 2.0
 
Il s'agit du protocole [[Sensor CommunIcation Protocol Specification|SCIP]] ([[Sensor CommunIcation Protocol Specification]]) dont deux versions existent: 1.1 et 2.0
Line 30: Line 31:
 
Des commandes sont envoyés via l'ordinateur jusqu'au Lidar connecté à ce dernier. Cela permet de récupérer diverses informations: version, activation/désactivation mais surtout la plus intéressante: la distance des divers points qu'a scanné le lidar dans l'espace !
 
Des commandes sont envoyés via l'ordinateur jusqu'au Lidar connecté à ce dernier. Cela permet de récupérer diverses informations: version, activation/désactivation mais surtout la plus intéressante: la distance des divers points qu'a scanné le lidar dans l'espace !
   
== Implémentation ==
+
= Implémentation =
 
* L'implémentation du protocole [[Sensor CommunIcation Protocol Specification|SCIP]] version 2.0 est OSGi-ifié sous forme d'un bundle.
 
* L'implémentation du protocole [[Sensor CommunIcation Protocol Specification|SCIP]] version 2.0 est OSGi-ifié sous forme d'un bundle.
 
** Pour communiquer avec le port série, nous utilisons un démon (écrit en C) développé par Pr. Sean Luck
 
** Pour communiquer avec le port série, nous utilisons un démon (écrit en C) développé par Pr. Sean Luck
Line 40: Line 41:
 
N.B: Le client [[MQTT]] utilisé est l'implémentation fourni par Fusesource, ici: [http://mqtt-client.fusesource.org/]
 
N.B: Le client [[MQTT]] utilisé est l'implémentation fourni par Fusesource, ici: [http://mqtt-client.fusesource.org/]
   
== Visualisation ==
+
= Visualisation =
   
 
Afin de faire une visualisation 3D, nous avons utilisé [[Java3D]]. Nous utilisons les angles et les mesures récupérés par le lidar afin de calculer les points que nous voulons tracer.
 
Afin de faire une visualisation 3D, nous avons utilisé [[Java3D]]. Nous utilisons les angles et les mesures récupérés par le lidar afin de calculer les points que nous voulons tracer.

Latest revision as of 09:47, 19 April 2013


Soutenance du projet.
Cartographie du couloir. L'extincteur réflichit le faisceau laser du Lidar, causant des erreurs de mesure.
Cartographie du couloir Polytech
Cartographie du couloir Polytech
Cartographie du couloir de l'IMAG
1ère version de l'interface
2ème version de l'interface. L'acquisition fonctionne sur OSGi (Apache Felix). La visualisation 3D est en stand-alone Java. Les données sont échangées via MQTT (Mosquitto).


Le projet

Pour ce projet nous avons voulu faire une visualisation 2D & 3D des données que récupère le Lidar.

Le capteur Lidar utilisé est le Hokuyo URG-04LX-UG01.

Nous avons créer une interface afin de pouvoir accéder à la récupération et à l'affichage des données.

Les photos affichées ici montrent le Lidar, l'interface utilisateur sur le pc et la visualisation du couloir que nous venions d'effectuer.

Architecture

Afin de dialoguer avec le Lidar, il a fallu implémenter le protocole de communication de ce dernier. Il s'agit du protocole SCIP (Sensor CommunIcation Protocol Specification) dont deux versions existent: 1.1 et 2.0

Dans notre cas, la version présente dans ce modèle est la plus récente: 2.0.

Des commandes sont envoyés via l'ordinateur jusqu'au Lidar connecté à ce dernier. Cela permet de récupérer diverses informations: version, activation/désactivation mais surtout la plus intéressante: la distance des divers points qu'a scanné le lidar dans l'espace !

Implémentation

  • L'implémentation du protocole SCIP version 2.0 est OSGi-ifié sous forme d'un bundle.
    • Pour communiquer avec le port série, nous utilisons un démon (écrit en C) développé par Pr. Sean Luck
    • Nous nous sommes inspiré de l'implémentation de SCIP 1.1 réalisée par Brian Ziman ([1])
  • Un bundle se charge de l'affichage en temps réel des données sous forme d'une visualisation 2D.
  • Un bundle se charge de se connecter à MQTT et offre la possibilité d'être invoqué lors d'un envoi (publish) de données vers un topic présent dans un serveur MQTT.
  • La visualisation 3D n'est pas OSGi-ifié (problème de librairie native non résolu..) mais inclus un client MQTT qui est abonné au même topic vers ou les données, via MQTT, sont envoyés. Permettant d'avoir une visualisation 3D qui pourrait être un programme distribué.

N.B: Le client MQTT utilisé est l'implémentation fourni par Fusesource, ici: [2]

Visualisation

Afin de faire une visualisation 3D, nous avons utilisé Java3D. Nous utilisons les angles et les mesures récupérés par le lidar afin de calculer les points que nous voulons tracer.

Une petite contrainte avec cette méthode est que, pour une raison d'affichage, on doit préciser une distance max parcouru afin que toutes les mesures puissent être correctement affichées. De plus, n'ayant pas la possibilité de calculer ou mesurer la distance à laquelle les mesures sont prises, il est nécessaire à l'utilisateur de spécifier cette position (sur l'axe z).