Skip to content

CR réunion 1

Compte Rendu de Réunion - Projet ARGOS

Date de la prochaine réunion : Mercredi 03 à 14h00 (Lieu à confirmer par mail).

1. Gestion de Projet & Infrastructure

Dépôt de Code (VCS)

  • Plateforme : GitLab de l'Université de Poitiers.
  • URL : gitlabens.sfa.univ-poitiers.fr
  • Accès : Il est impératif de donner les droits d'accès au client/superviseur pour qu'il puisse effectuer un git clone.
  • Note : GitHub a été mentionné comme validé ("C'est bon"), possiblement pour un miroir ou une utilisation personnelle, mais le livrable semble être sur le GitLab universitaire.

Outils de Gestion

  • Gestion de projet / Tâches (Backlog & Sprint) : Youtrack.
  • User Stories & Backlog détaillé : Excel.
  • Modélisation (UML/Diagramme de classe) : DrawIO pour le dev, Visual Paradigm pour les rendus.

2. Architecture Technique & Standards

Structure du Projet (Arborescence)

Le projet doit respecter l'arborescence suivante : / (root) ├── src/ # Sources (.cpp) ├── include/ # En-têtes (.h / .hpp) ├── tests/ # Tests unitaires et fonctionnels ├── build/ # Dossier de compilation ├── lib/ # Bibliothèques externes ├── CMakeLists.txt # Configuration de build └── .gitignore # Fichiers à ignorer par Git

Conventions de Code

  • Espace de nommage (Namespace) : Le code doit être encapsulé dans le namespace ARGOS.
  • Gestion de la mémoire :
  • Utilisation de shared_ptr : Les fonctions d'ajout (add) devront probablement accepter des shared_ptr plutôt que des références.
  • Stockage : Possibilité de stocker les shared_ptr d'origine directement dans les instances de classe.

3. Configuration de Build (CMake)

Le fichier CMakeLists.txt est central et imposé avec les contraintes suivantes :

  1. Organisation : Utiliser source_group pour organiser les fichiers dans les IDE (dossiers virtuels).
  2. Compatibilité IDE : Le CMake doit être capable de générer une solution Visual Studio (.sln) propre.
  3. Dépendances : Les dépendances externes doivent être récupérables/gérées via le CMake.

4. Choix Technologiques & Bibliothèques

  • Interface Graphique / Visualisation : Utiliser Qt. (Remplace Polyscope).
  • Interopérabilité : Boost pourrait être requis pour interfacer du code C++ avec Blender (point à clarifier/approfondir).
  • Références externes : COLMAP et OpenCV sont cités (à explorer pour la vision/traitement d'image).

5. Fonctionnalités & Algorithmes

Maillage vers Nuage de Points

L'application doit proposer une conversion de maillage en nuage de points via une liste déroulante proposant deux algorithmes :

  1. Algo Naïf : Les sommets du maillage deviennent directement les points (Sommet = Point).
  2. Algo Sophistiqué : Échantillonnage plus complexe (le point n'est pas forcément un sommet existant).

Gestion des Données 3D

  • Optimisation mémoire : Encodage de plusieurs points dans un seul octet.
  • Orientation : Attention rigoureuse à l'orientation des arêtes, des faces et des normales des points.
  • Densité de points :
  • Rechercher des solutions pour gérer la densité (homogénéisation).
  • Problématique : Comment gérer une grande surface avec peu de points (ex: 4 points pour un mur) vs une petite surface avec trop de points.

Cas d'Utilisation (Use Cases)

  1. Robotique : Un robot capable de percevoir la topologie en temps réel.
  2. Accessibilité : Calcul du meilleur chemin dans une structure pour une personne en situation de handicap.

6. Objectifs à Court Terme (Pour la semaine)

Tâche principale : Mettre en place le squelette du projet CMake.

  • Créer une bibliothèque (library) contenant la structure de données du maillage.
  • Créer un exécutable qui link et utilise cette bibliothèque.