Commit Graph

31 Commits

Author SHA1 Message Date
Frédéric Lassabe 0bc8e3c955 Fix getSsSquareDistance(), radar_exp() parameters
* server.cc: adjusted radar_exp due to parameters (suppr. pre-processing
  with #ifdef PEREGRINATION and changed output)
* referencepoint.cc: fixed getSsSquareDistance by replacing missing values
  by -90 dBm signal
Performs better than previous versions, however, RADAR remains the best.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@68 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:52:45 +01:00
Frédéric Lassabe a831e2fb8e Fix bugs in FBCM/FRBHM, parameters to radar_exp()
Many bugs fixed in FBCM and Hybrid basic model.
Added parameters to radar_exp and Server contructor.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@67 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:52:45 +01:00
Matteo Cypriani 9c3e39ee29 GuiNuMo: modify radar_exp()
server.hh :
* Modification des fichiers de mesures.

server.{cc,hh} :
* Les variables 'prout' mises par je ne sais pas trop qui dans
  monitorClient(), ça ne le fait pas quand on montre du code à son
  suiveur de stage !
* radar_exp() :
    - Ajout de 1-NSS+FBCM.
    - Utilisation du maillage complet comme points de tests (nouvelle
      variable, DEFAULT_REF_POINT_FILE_1M), et d'un éventuel
      sous-maillage comme points de référence  (variable normale,
      DEFAULT_REF_POINT_FILE).
    - Ajout de la possibilité d'utiliser les points de pérégrination
      comme points de test.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@66 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:51:06 +01:00
Frédéric Lassabe 2236f24c55 Triche dans min-max, Z dans interlink
server.hh:
- modified MINMAX_X/Y_MIN/MAX to fit Numerica size.
server.cc:
- added z-coordinate to trilat. algorithm in function "interlink".

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@65 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:51:06 +01:00
Matteo Cypriani abc567980d GuiNuMo: debug messages, fix AP config file
* Affichage débug dans computeTopoblabla.
* Fichier de config des AP corrigé.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@62 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:49:01 +01:00
Frédéric Lassabe 9b12e3cb0d Affichage debug dans monitorClient()
Qql affichages de débug dans monitorClient pour Soum.
(et Dom qui parle de têtes et de queues à Seb en face de moi)

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@61 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:49:01 +01:00
Matteo Cypriani affd061634 Corrections FBCM et FRBHM
Corrections diverses dans FBCM, FBCM Friis, FRBHM continu.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@59 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:49:01 +01:00
Frédéric Lassabe 83c40666a2 Include Z in min-max
This is the ultimate modification by the Geolocation master Fred.
In other words, includes z-coordinate to the min-max algorithm (name
should change soon) in functions fbcm & fbcm_friis.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@57 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:49:01 +01:00
Matteo Cypriani bec6fb2549 Corrections et ajouts mineurs
point.hh :
* Ajout de distance(float&, float&, float&).

server.cc :
* Modification et mise à jour de radar_exp().
* Correction de l'affichage des points sélectionnés dans
  getkClosestInSs().
* Correction du FBCM et d'Interlink (utilisation des distances au lieu
  des distances au carré, et utilisation de valeurs absolues).

/!\ Reste à corriger frbhm_friis() !

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@56 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:49:01 +01:00
Matteo Cypriani 7155a90a9d Correction erreur précédente
Ré-ajout de l'appel à computeTopologyDistances() dans monitorClient()
pour le FRBHM continu, qui avait sauté lors du précédent commit.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@53 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:49:01 +01:00
Soumaya Zirari e9453590ef End of FRBHM implementation
voila on m'oblige mettre un com

j'ai fini les FRBHM

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@52 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:49:00 +01:00
Matteo Cypriani 2a56009c16 Ajout computeTopologyDistances() dans server
server.{hh,cc} :
* Ajout de computeTopologyDistances(), nécessaire au FRBHM continu.
* Intégration aux modifications de Soumaya.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@51 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:49:00 +01:00
Soumaya Zirari 1f5ce0426a Soum, faut mettre des commentaires de révisions !
git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@50 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:49:00 +01:00
Matteo Cypriani 3b02ec985f Encore gestion topologie
server.{hh,cc} :
* Ajout des fonctions selectDistances() et computeEuclideanDistances()
  qui servent à calculer les matrices temporaires de distances entre
  E_current et E_previous, pour Viterbi.
* Adaptation de fastViterbiLike() et monitorClient() pour utiliser ces
  fonctions.
* Corrections mineures.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@49 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:49:00 +01:00
Matteo Cypriani 5b1286c6ba GuiNuMo : plein de modifs (gestion topologie)
server.{hh,cc} :
* Changé le comportement des fonctions pointIndex() et pointExists() :
  pointIndex() renvoie -1 si le point n'est pas trouvé, et pointExists()
  effectue un appel à pointIndex(). Passage de toutes ces fonctions en
  inline.
* Déplacement des fonctions point_tab_idx() et point_vector_idx() dans
  la classe Server, en tant que variantes de pointIndex().
* Utilisation, pour les bibliothèques C, des en-têtes C++ (e.g <cmath>)
  plutôt que les en-têtes C (e.g <math.h>).
* Correction des fonctions areaConnection() qui utilisaient la mauvaise
  liste de points.
* Diverses corrections mineures.
* Modification de la fonction makeWaypointListFromFile() afin de prendre
  en compte la topologie dans le calcul des distances.
* Ajout de la fonction inTheSameArea(), qui permet de savoir si deux
  points appartiennent à la même zone.
* Ajout de la fonction checkTopology() qui effectues quelques
  vérifications sur la topologie du bâtiment déclarée dans les fichiers
  de configuration.

area.cc :
* Modification du constructeur de manière à ce qu'il accepte tous les
  formats possibles de définitions des zones (4 ordres possibles pour
  les coordonnées).

point.{hh,cc} :
* Modification de l'operator< pour que la comparaison ne soit pas
  ambigüe (posait problème dans les set).
* Modification des autres opérateurs, ajout des opérateurs <= et >=.

cfg/ :
* waypoints.csv : ajout des points de passage du rez-de-chaussée et des
  escaliers.
* topo.csv : ajout des zones du rez-de-chaussée et des escaliers.

Makefile :
* Suppression d'options inutiles.
* Suppression de l'option d'optimisation, qui causait une boucle infinie
  bizarre : cf. Server::makeWaypointListFromFile().

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@48 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:49:00 +01:00
Matteo Cypriani 085b348670 GuiNuMo : gestion topologie
server.{hh,cc} :
* Utilisation d'une map plutôt que d'une multimap pour stocker la liste
  des pièces. Conséquence : les noms des zones doivent être uniques, il
  faut donc numéroter les zones des pièces composites (par exemple
  « Couloir N1 A » et « Couloir N1 B »).
* Ajout de la fonction inWhichAreas() qui permet d'obtenir la liste des
  zones auxquelles appartient un point.
* Modification de la fonction makeWaypointDistancesFromFile() (renommée
  makeWaypointListFromFile()) de manière à ce qu'elle calcule la matrice
  des distances entre points de passage (lecture d'une liste de points).
  Abandon du format décrivant les points en visibilité (voir le fichier
  cfg/distances.csv, supprimé à cette révision), puisque nous nous
  servons des points de passage et de la description des zones pour
  calculer les liens entre points. RESTE À FAIRE : prise en comppte de
  la topologie dans le calcul de distance.
* Ajout de deux fonctions areaConnection() qui permettent de récupérer
  la liste des points de passage d'une zone, ou faisant l'intersection
  entre deux zones.
* Ajout de la fonction distanceTopology, qui calcule la distance entre
  deux points en tenant compte de la topologie (zones et points de
  passage entre elles).
* Ajout de la fonction makeReferencePointDistances(), qui calcule les
  distances entre points de référence, en tenant compte de la
  topologie.
* Ajout de la fonction point_vector_idx(), semblable à point_tab_idx()
  mais pour un vector<Point>.

referencepoint.{hh,cc} :
* Ajout de l'operator de cast en Point (operator Point()).

area.{hh,cc} :
* Ajout de l'operator==(Area).

cfg/distances.csv
* Suppression de ce fichier obsolète.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@47 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:49:00 +01:00
Matteo Cypriani 03b4143100 Topologie Numerica, affichage debug dans server
server.{hh,cc} :
* Ajout des affichage de trace (DEBUG_T) pour les fonctions qui n'en avaient pas.
* Retouches mineures.

cfg/topo.csv :
* Ajout explications.
* Séparation couloir / palier.

cfg/waypoints.csv :
* Création. Fichier contenant la liste des points de passage.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@46 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:49:00 +01:00
Matteo Cypriani 269594c26e Constante pour les algos dans monitorClient()
server.{cc,hh} :
* Ajout d'un type "ALGORITHM" pour utiliser des noms compréhensibles
  plutôt que des entiers pour désigner les différents algorithmes
  utilisables dans la fonction monitorClient().

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@45 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:49:00 +01:00
Soumaya Zirari cc1222f67f Ajout de FRBHM basique
git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@43 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:49:00 +01:00
Matteo Cypriani 67525c445e test devient guinumo
Le fichier "test.cc" a été renommé en "guinumo.cc" ; l'exécutable "test"
produit par la compilation devient "guinumo".

server.{hh,cc} :
* Séparation de la fonction fastViterbiLike(), déplacement d'une partie
  du code dans la nouvelle fonction monitorClient(), comme expliqué à la
  révision 41.
* Implémentation de createClient().

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@42 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:49:00 +01:00
Matteo Cypriani 1b222af80c Additions/changes in server & clientinfo
Préparation à la séparation de Server::fastViterbiLike() en deux
fonctions : monitorClient() qui contiendra tous les traitements
génériques aux algorithmes de calcul de la position, et
fastViterbiLike() qui ne contiendra que le calcul en lui-même. Ceci afin
de permettre l'ajout aisé d'autres algorithmes.

guinumo.hh : fichier d'en-tête global avec les #define de débogage.

clientinfo.{hh,cc} :
* Ajout d'un constructeur par copie.
* Ajout des opérateurs = et ==.
* Ajout de viterbi_iteration et son accesseur getRef_viterbi_iteration().
* Ajout de print_viterbi_V().
* Changement du type de viterbi_V : passage d'un tableau classique à un
  multi_array de la bibliothèque Boost.
* Ajout d'informations de débogage (trace).

server.{hh,cc} :
* Adaptation pour viterbi_V.
* Ajout de createClient() pour ajouter un client à client_list.
* Ajout d'informations de débogage (trace).

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@41 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:45:00 +01:00
Matteo Cypriani 4844c58cd0 Beaucoup d'ajouts dans GuiNuMo
point.{hh,cc} :
* Ajout d'un constructeur à partir d'un tableau de 3 float.
* Ajout de operator<(), obligatoire pour le bon fonctionnement des map
  avec un Point comme clef. Ajout de operator>(), tant qu'on y est.

server.{hh,cc} :
* Ajout de point_tab_idx(), qui renvoie l'indice d'un Point au sein d'un
  tableau.
* Ajout de makeTopologyFromFile(), qui lit le fichier contenant la
  description des pièces.
* Ajout de makeWaypointDistancesFromFile(), qui lit le fichier contenant
  la description des liens entre les points de référence. TODO :
  possibilité d'optimiser en construisant la matrice d'un seul coup (?).

area.{hh,cc} :
* Correction pour intégration (classe non utilisée jusqu'à présent).
* Utilisation de références constantes pour les passages de paramètres.
* Ajout de &operator<<() pour l'affichage.

Fichiers de config :
* cfg/distances.csv : complément et complément d'explication.
* cfg/topo.csv : syntaxe + ajout des coordonnées Z2.

Makefile :
* Légère amélioration au niveau de la généricité.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@40 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:45:00 +01:00
Matteo Cypriani 36f1a4dc45 1st commit since pif's resurrection
code/GuiNuMo-server/server.cc
	* Ajout de la sélection du point à renvoyer, à chaque étape de
	  l'algorithme dans fastViterbi().
	* Correction d'un bogue causé par les #ifdef de débogage.

code/GuiNuMo-server/cfg/
Ajout de deux fichiers de configuration :
	* topo.csv, donnant la liste et les coordonnées des pièces (pour
	  l'instant seulement du premier étage).
	* distances.csv, décrivant les distances entre les points de référence
	  clefs pour utiliser avec FRBHM.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@36 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:44:00 +01:00
Matteo Cypriani 1df1eb075a Corr. syntaxe dans server.cc
server.cc : Ajout d'infos de débogage et correction erreur de syntaxe
(de Fred le mauvais muhaha).

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@34 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:43:59 +01:00
Frédéric Lassabe cbe71f0004 Fixes the new dist_max search
Last (at least, we hope) mod. of getkClosestInSs function.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@33 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:43:59 +01:00
Frédéric Lassabe b2f613bce5 Server modif.: changes getClosestInSS
Straightforward '=' between old and new values.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@32 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:43:59 +01:00
Matteo Cypriani 6641aef72b Réorganisation du code dans server.cc
server.{cc,hh} :
* Mutualisation du code des deux fonctions pointExists().
* Idem avec les deux fonctions pointIndex().
* makePointListFromFile() : correction pour la généricité de la fonction
  (lecture pour la liste des points de référence / lecture pour la liste
  de pérégrination).

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@31 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:43:59 +01:00
Matteo Cypriani 54d788586f Commit-sauvegarde de modifs sur server.cc
/!\ Cette révision est présente uniquement pour sauvegarde de
    modifications. Certains des changements apportés seront annulés à la
    prochaine révision.
/!\ Bogue connu de cette révision : la lecture du fichier de
    pérégrination est faite grâce à la fonction makePointListFromFile(),
    donc tous les points vont dans la même entrée de la liste. Nécessité
    de créer une fonction adaptée.

server.cc/hh :
* Modifications pour lire un fichier de pérégrination et effectuer les
  calculs de position.
* getkClosestInSs() : correction du sens de la comparaison pour
  récupérer la distance maximale.
*	makeReferencePointListFromFile(const string &filename) : remplacement
 	par un appel à la nouvelle fonction générique :
 	makePointListFromFile(vector<ReferencePoint> &dest_point_list, const
 	string &filename).
* makePointListFromFile() : suppression de variables inutiles.
  printReferencePointList() : remplacement par un appel à la nouvelle
  fonction générique : printPointList(vector<ReferencePoint>
  &point_list).

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@30 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:43:59 +01:00
Matteo Cypriani ae11d3a2c3 GuiNuMo: beginning of Viterbi & many other things
Partout où cela était possible :
* Utilisation du passage de paramètre aux fonctions par référence
  constante plutôt que par valeur.

server.cc/hh :
* Suppression de l'ancienne ébauche de Fred viterbiLike().
* Création de la fonction fastViterbiLike() (Viterbi-like optimisé).
* Fonctions getkWeightedInSs() et getkClosestInSs() : simplification du
  traitement des points ignorés (suppression du booléen et passage du
  point à ignorer en pointeur, de manière à permettre une valeur NULL).
  Création de surcharges pour un appel sans point à ignorer.
* Lecture de trois coordonnées (X;Y;Z) au lieu de deux (X;Y) depuis le
  fichier des points de référence (fonctions
  makeReferencePointListFromFile() et
  extractReferencePointInfoFromBuffer()).
* Lecture des fichiers au format « Matteo » (une ligne par agrégation).
  Le format « Fred » (une ligne par AP par agrégation) est toujours
  supporté (via #define FRED_CSV_FORMAT).
* Ajout d'affichages supplémentaires pour le déboguage.

clientinfo.cc/hh :
* Modifications des attributs pour l'algorithme Viterbi-like.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@29 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:40:22 +01:00
Matteo Cypriani f5292a5dd6 Beaucoup modifs cosmétiques et ajouts dans GuiNuMo
Partout où cela était possible :
* Indentation "Emacs" du code, aération.
* Utilisation de #define pour les valeurs par défaut.
* Utilisation des valeurs par défaut dans les constructeurs.

server.cc/hh :
* Gestion d'erreur basique pour les ouvertures de fichiers.

Ajout du TODO, d'après celui fait par Fred sous format papier.

Création des répertoires :
* cfg : fichiers de configuration.
* csv : fichiers d'entrée.
* log : fichiers de sortie.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@28 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-02-17 16:47:50 +01:00
Frédéric Lassabe f273cba513 Import initial (GuiNuMo-server)
Projet d'origine, plein de bugs et pas fini.
Avant import du serveur GuiNuMo.
Plein de choses à faire.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@26 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-02-17 16:47:50 +01:00