Project

General

Profile

Introduction

Nomenclature et type de projet

SPAMOR : Système Participatif d’Aide à la MObilité Réduite: Itinéraires adaptés aux chaises roulantes.
Projet HES-SO, mené par la HEIA-FR (Houda Chabbi Drissi) et la HE-ARC (François Tièche).
(Programme thématique : iNuit)

Contexte

Emergence des problèmes liés à la mobilité réduite

- Associations
- Normes fédérales

Un exemple de besoins:

- Application pour cherche d’itinéraires adaptés aux personnes en fauteuils roulants
- Visualisation d’une carte avec les obstacles spécifiques

Work packages

Le projet est décomposé de la manière suivante :

WP0: Administration et valorisation
WP1: Analyse des systèmes de mesure et des technologies
WP2: Conception et développement du système d'information
WP3: Conception et développement du système de mesures
WP4: Conception et développement du système d'intégration
WP5: Mise en place du démonstrateur final: interface entre les 3 systèmes

En l'état actuelle, la présente page décrit l'avance du WP3.

Chariot de mesure et capteurs embarqués

Description du chariot de mesure et de son équipement en capteurs : [[https://projets-labinfo.he-arc.ch/attachments/download/2179/ING-DT160511-SPAMOR_Syst%C3%A8me_de_mesure.pdf]]

Les dimensions du système de mesures ainsi que les différents systèmes de coordonnées sont nécessaire pour reconstituer la carte des mesures : [[https://projets-labinfo.he-arc.ch/attachments/download/2178/ING-DT160504-SPAMOR_Cart_Dimensions_CoordSys.pdf]]

Acquisition des données

Fonctionnement

L'interface d'acquisition permet de définir le type d'acquisition:

1) Route : acquisition des données des capteurs en boucle, et enregistrement des données dans un fichier *.csv (une ligne par cycle de mesure). La durée d'acquisition des 4 capteurs est de l'ordre de 0.170 s, soit une mesure tous 14 cm environ à une vitesse de : 3 km/h (~1m/s). Elle est lancée par le bouton Start et arrétée par le bouton Stop.
Un fichier avec le nom correspondant est inscrit dans le sous-dossier routes.
En parallèle de la séquence de mesure des capteurs, une webcam est utilisée pour généré une séquence vidéo. Orientée vers l'avant, elle filme le parcours du chariot de mesure (pas de son). Le nom et la durée des fichiers sont synchronisés dans le sous-dossier routes.

2) Point : acquisition unique de tous les capteurs, déclenchée par l'appui sur le bouton Start. Le fichier *.csv avec une ligne (+ une ligne d'entête) est enregistré dans le sous-dossier points.

3) Segment : acquisition de 2 points, déclenché par 2 appuis distincts sur la touche Start. Le fichier *.csv avec 2 lignes (+ une ligne d'entête) est enregistré dans le sous-dossier segments.

4) Polygon : acquisition de N points, déclenchés par N appuis distincts sur la touche Start. Appuis sur Stop pour fermer le polygone et stopper l'acquisition. Le fichier *.csv (N+1 lignes) est enregistré dans le sous-dossier polygons.

Interface du soft d'acquisition :

Données brutes

Les données loggées dans le fichiers *.csv sont organisées comme suit (draft) : [[https://projets-labinfo.he-arc.ch/attachments/download/2177/ING-DT160426-SPAMOR_MeasureFileContentDescription.pdf]]
Exemple de fichier *.csv: [[https://projets-labinfo.he-arc.ch/attachments/download/2181/20160511_beausite_001.csv]]

Données filtrées

En raison notamment du grand nombre de points saisis par le scanner 2D et du fort taux de bruit observé sur certaines mesures, un premier traitement peut être réalisé sur les données:
  • Un filtrage médian et une approximation avec l'algorithme de Douglas-Peucker (seuil ~30-40 mm, ce qui correspond à la résolution du capteur) sur les données du scanner 2D permet de réduire le nombre de points/profil
  • Un filtrage médian sur la dimension temporelle des mesures bruitées (pitch, roll, accélérations X-Y-Z, etc.) permet de diminuer le bruit pour améliorer l'exploitabilité des données

Les opérations de filtrage ont été développées en C++ sous forme d'exécutables console en ligne de commande. L'idée d'utiliser uniquement des outils en ligne de commandes est de pouvoir aisément créer une pipeline de traitement automatisée lorsqu'une personne upload son fichier vers les serveurs.

Filtrage et approximation des profils

Avant l'approximation des profils avec l'algorithme de Douglas-Peucker les 810 points de chaque profils sont filtré à l'aide d'un filtre médian. Des outils en ligne de commande permettent le filtrage et l'approximation des profils. L'approximation des profils dont le résultats réside en une suite de points en coordonnées cartésiennes (x ; y) sur le plan du scanner 2D permet de réduire d'environ un facteur 10 le nombres de points nécessaire à la représentation d'un profil. L'algorithme de Douglas-Peucker n'a pas été réimplémenter, nous utilisons la version de l'algorithme implémentée dans la célèbre librairie OpenCV 3.0.0

Filtrage médian sur la dimension temporelle

Dans les fichiers brutes, la dimension temporelle est représentée de haut en bas, ainsi chaque ligne contient les mesures de tous les capteurs à un temps t et chaque colonne contient un attribut mesuré par un capteur sur toute la durée de la mesure (le temps). Un outil command line permet de filtrer de multiples colonnes en une exécution avec un filtre médian dont la taille de fenêtre est paramétrable pour chacune d'entre elle. Voici un exemple d'application du filtre sur le Pitch de notre gyroscope avec deux tailles de fenêtres différentes:

Voir [[https://fr.wikipedia.org/wiki/Algorithme_de_Douglas-Peucker]]

Représentation 3D - première approche

Afin de vérifier la pertinence des données et de l'ensemble de la chaîne d'acquisition et de traitement, il est important de pouvoir rapidement visualiser les données dans un environnement 3D. Pour cela, il est nécessaire de retranscrire le parcours du chariot de mesure dans le monde 3D (X-Y-Z).

Une première approche est faite sur la base des données des codeurs des roues, tout en sachant que la résolution de ceux-ci (~6-7cm) ainsi que leur principe de fonctionnement (glissement, perte de contact roue-sol) ne permet pas d'obtenir une information fiable sur de longues distances. Néanmoins, cette approche, combinée avec le capteur 3D (angles roll, pitch) s'avère tout à fait valable sur de petites distance (1-10 mètres), ce qui permet de compléter le manque de résolution du GPS (1-5m).

Une deuxième approche sera de convertir les données GPS en position X-Y-Z, mais cette approche n'a pas encore pu être abordée à l'heure actuelle (12.05.2016). Il apparait qu'une combinaisons de toutes les données (GPS, codeurs, inclinomètre) sera nécessaire.

Exemple de représentation des points mesurés par le scanner 2D (après filtrage) :

Vue de la rue mesurée:

Exemple de représentation du chemin effectué par les roues gauche et droites du chariot sur la base des informations codeurs (l'algorithme de calcul doit encore être amélioré) :

Reconstitution de l'environnement (nuage de points)

Sur la base des données récoltées (GPS, scanner 2D, capteur 3D) et filtrées (approximation des profils, filtrage médian) , l'environnement peut être reconstitué sous la forme d'un nuage de points dans l'espace. La segmentation des obstacles (trottoires, escaliers, trous, etc.) ne peut pas être réalisée avant cette reconstitution.

Pipeline de conversion

Lors de l'approximation des profils dans la phase de filtrage les données du scanner 2D (coordonnées polaires rho,théta) sont déjà converties en coordonnées cartésiennes dans le plan d’acquisition du scanner.

Conversion relative

On considère ici que le chariot se situe au point (0; 0; 0) lors de la première mesure. L'origine de notre chariot de mesure se trouve à la hauteur du sol, au centre des deux roues (centre de rotation). Une matrice de conversion est construite selon les paramètres suivants:
  1. Une rotation (roll, pitch, direction)
  2. Une translation (x; y; z) des dimensions physiques du chariot afin de se positionner sur l'origine du scanner 2D
  3. Une rotation pour chaque axe correspondant aux angles du scanner 2D avec les axes du chariot (à priori le scanner 2D n'a qu'un seul angle de rotation de 45° sur l'axe Y)

Chaque point du profil approximé sont ensuite convertis utilisant cette matrice. Pour chaque mesure, les rotations (pitch, roll, direction) sont ajustée, et la matrice est translatée ensuite de la distance parcourue.

(pour rappel: [[https://projets-labinfo.he-arc.ch/attachments/download/2179/ING-DT160511-SPAMOR_Syst%C3%A8me_de_mesure.pdf]])

Il faut désormais déterminer de quel capteur (ou combinaison de capteurs) les valeurs de la distance parcourue et la direction du chariot peuvent être extraites:
  • Pour la distance: Delta ° des coordonnées GPS, incrément des roues
  • pour la direction: Magnétomètre, compass GPS

Conversion absolue

Il s'agit ici d'ajouter une translation supplémentaire à la matrice ci-dessus de (x; y; z) les distances au centre de la terre pour obtenir les coordonnées absolues terrestres. La conversion absolue n'est pas nécessaire dans un premier temps. Le but sera de segmenter les points importants (obstacles) dans le nuage de points en coordonnées relatives puis ensuite de translater uniquement ces points dans l'absolu afin de pouvoir les retranscrire sur la carte.

Problèmes des données GPS

Le capteur GPS (Yocto-GPS) a un taux de rafraîchissement plus faible que la fréquence de mesure. Par conséquent si l'on essaie de reconstituer l'environnement en calculant la distance parcourue entre deux mesures par rapport aux latitudes et longitudes, plusieurs translations sont nulles, l'avance est saccadée et le résultat est faux.

De plus les données GPS ne sont pas aussi fiable qu'annoncé dans les spécifications du capteur (< 2m), le trajet ci-dessous correspond à une ligne droite. On peut y voir les saccades (le delta t entre chaque mesure peut être considérés comme constants et la vitesse du chariot lors de l'acquisition était presque constante également).

Plusieurs idées ont déjà été émises pour pallier au problèmes du rafraîchissement:

  • Utilisation d'une combinaison entre les incréments des roues et la distance GPS
  • Un filtre de Kalman (en utilisant un maximum de données à disposition, notamment les accélérations, la ground speed et le delta de temps)

Les outils de filtrages/convertion (preprocessing)

Voir Documentation outils filtrage

Les outils d'exportation

Voir Documentation outils exportation

SpamorProd

voir SpamorProd

Liens utiles

Voir liens utiles