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 :
- Organisation : Utiliser source_group pour organiser les fichiers dans les IDE (dossiers virtuels).
- Compatibilité IDE : Le CMake doit être capable de générer une solution Visual Studio (.sln) propre.
- 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 :
- Algo Naïf : Les sommets du maillage deviennent directement les points (Sommet = Point).
- 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)
- Robotique : Un robot capable de percevoir la topologie en temps réel.
- 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.