Aller au contenu principal

Setup de l'environnement de dev

Ce guide vous accompagne pour installer et configurer tous les outils nécessaires au développement sur le projet de la Coupe de France de Robotique. Il est conçu pour vous aider à démarrer rapidement, à comprendre le rôle de chaque outil et à adopter les bonnes pratiques pour collaborer efficacement.

Chaque section ci-dessous détaille l'installation, l'utilisation et les liens vers la documentation officielle.

VsCode

Visual Studio Code est l'éditeur recommandé pour ce projet. Il permet une très bonne intégration de tous les outils utilisés.

Installer VsCode

Installer git

Git est l'outil fondamental pour la gestion de version et la collaboration sur le code. Il permet de suivre l'historique, de travailler en équipe et de contribuer facilement au projet.

Vérifiez d'abord si git est installé :

git --version

Si ce n'est pas le cas, installez-le selon votre OS :

winget install -e --id Git.Git

Pour aller plus loin : Documentation officielle

Cloner le repo du projet

Une fois git installé, vous pouvez récupérer le code source du projet en clonant le dépôt officiel. Cette étape est indispensable pour commencer à travailler localement et profiter de toutes les fonctionnalités du projet.

Ouvrez un terminal à l'endroit où vous souhaitez stocker le projet (PAS DANS UN DOSSIER ONEDRIVE), puis exécutez la commande suivante :

git clone https://github.com/DaVinciBot/CoupeDeRobotique.git
cd CoupeDeRobotique
code .

uv

uv est un gestionnaire d'environnements virtuels et de packages Python. Il simplifie la gestion des dépendances et garantit que chaque projet dispose de son propre environnement isolé, évitant les conflits et facilitant la reproductibilité.

Installation

Suivez les instructions adaptées à votre système pour installer uv :

powershell -ExecutionPolicy ByPass -c "irm
https://astral.sh/uv/install.ps1 | iex"

Documentation uv

Créer le venv

Créez un environnement virtuel pour isoler les dépendances du projet :

uv venv

Activer le venv

Activez l'environnement virtuel pour installer et utiliser les paquets :

source .venv/Scripts/activate

Dans VSCode, sélectionnez l'interpréteur Python correspondant : Ctrl + Shift + PPython: Select Interpreter → CoupeDeRobotique

Télécharger les dépendances

Installez toutes les dépendances du projet en une commande :

uv sync

Ajouter/supprimer des dépendances

Avec uv, on n'utilise plus pip pour gérer les dépendances. Voici comment ajouter ou supprimer des packages :

uv add <package>      # pour ajouter une dépendance
uv remove <package> # pour supprimer une dépendance

Consultez la documentation uv pour plus d'options.

Lancer le code

Vous pouvez maintenant exécuter le code principal du robot :

uv run robot1/rasp/main.py

Si vous n'avez pas le robot, lancez le simulateur en créant un fichier .env à la racine :

ACTUATORS_DUMMY=True
LIDAR_DUMMY=True
ROLLING_BASIS_DUMMY=True

choco

Chocolatey est un gestionnaire de paquets pour Windows, utile pour installer rapidement des outils comme make ou llvm. Il n'est pas nécessaire sur Linux ou macOS.

Nécessaire uniquement sur Windows :

powershell -c "irm
https://community.chocolatey.org/install.ps1|iex"

Documentation Chocolatey

clang-format

clang-format est un outil de formatage automatique pour le code C/C++. Il permet d'assurer une cohérence de style dans l'équipe et d'automatiser le formatage à la sauvegarde dans VSCode. Suivez les instructions selon votre OS pour l'installer.

Installation

choco install llvm

Installer l'extension xaver.clang-format pour VSCode afin de bénéficier du formatage automatique.

Utilisation

Activez le formatage automatique à la sauvegarde dans VSCode pour ne plus vous soucier du style : Ctrl + Shift + PPreferences: Open Settings (JSON) : ajouter

{
"editor.formatOnSave": true,
"clang-format.executable": "C:\\Program Files\\LLVM\\bin\\clang-format.exe"
}

Pour aller plus loin : Documentation clang-format

Make

Make est un outil d'automatisation qui permet d'exécuter facilement des tâches courantes du projet (formatage, lint, documentation, etc.). Il est très utilisé dans les environnements de développement pour simplifier la vie des développeurs.

Ouvrir un terminal en administrateur :

choco install make

Documentation Make

Utilisation

Les commandes make disponibles dans ce projet :

make format # pour formater le code
make lint # pour vérifier le style de code
make docs # pour générer la documentation
make all # pour tout faire

N'hésitez pas à consulter le fichier makefile pour découvrir toutes les cibles disponibles et personnaliser vos automatisations.

Outils de formatage et lint

Pour garantir la qualité et la cohérence du code Python, plusieurs outils de formatage et d'analyse statique sont utilisés dans ce projet. Ils permettent de détecter les erreurs, d'appliquer un style uniforme et de faciliter la relecture du code.

Ruff : Linter et formatteur ultra-rapide pour Python. Il combine les fonctionnalités de plusieurs outils en un seul.

ruff check . --fix ruff format

Ruff est intégré dans le workflow du projet pour accélérer le lint et le formatage.

Pour aller plus loin, consultez la documentation de chaque outil et explorez les options de configuration pour adapter le workflow à vos besoins.

Conventions de nommage des branches et des commits

Pour faciliter la collaboration et garder un historique clair, merci de respecter les conventions suivantes :

Branches

  • Utilisez des noms explicites et courts, séparés par des tirets.
  • Privilégiez le format :
    • feature/nom-fonctionnalite
    • fix/description-bug
    • docs/ajout-ou-modif-doc
    • refactor/nom-refactor
  • Exemple :
    • feature/add-basic-trajectory-planner
    • refactor/change-coordinate-system

Commits

Utilisez le format suivant pour vos messages de commit:

action(scope): description concise

Où:

  • action est l'une des suivantes : fix, feat, refactor, perf, docs, style, tests
  • scope désigne le segment concerné (ex: navigation, gpio, lidar, etc.)
  • la description offre des détails succincts et précis

Exemples :

  • feat(trajectory_planner): add basic trajectory planner
  • fix(cpp_rolling_basis): correct sensor reading bug
  • refactor(navigation): change coordinate system to right-handed

Pour aller plus loin, consultez les guides :