|
1 | | -# CoVAPSy |
| 1 | +# CoVAPSy - AutoTech Project |
2 | 2 |
|
3 | | -AutoTech est un projet du Club de robotique INTech de Telecom SudParis et IMT Business School. Son objectif est de concevoir un véhicule autonome pour la compétition CoVAPSy. |
| 3 | +AutoTech is a project from the INTech robotics club (Telecom SudParis and IMT Business School). Our goal is to design and build an autonomous vehicle for [CoVAPSy](https://ajuton-ens.github.io/CourseVoituresAutonomesSaclay/) (Course de Voitures Autonomes de Paris-Saclay) competition. |
4 | 4 |
|
5 | | -Ce répertoire contient le code pour développer une voiture autonome pour la course CoVAPSy 2025. |
| 5 | +This repository contains the source code for our autonomous vehicle for the 2025 and 2026 competitions. |
6 | 6 |
|
7 | | -[Consultez les règles de la competition](https://ajuton-ens.github.io/CourseVoituresAutonomesSaclay/) |
| 7 | +## Our Approach |
8 | 8 |
|
9 | | -[Consultez la documentation du projet](https://association-intech.github.io/CoVAPSy/) |
| 9 | +We chose to use a full Reinforcement Learning approach. We train an agent to drive the vehicle in a simulation of the race based directly on sensor inputs. |
10 | 10 |
|
11 | | -To install dependencies, use: |
12 | | - `uv sync` |
13 | | -To install with documentation dependencies: |
14 | | - `uv sync --extra docs` |
15 | | -To install with development dependencies: |
16 | | - `uv sync --extra dev` |
| 11 | +We train the AI model in parallel remote environments through nammed pipes connections between the main python script and the multiple webots instances. |
| 12 | + |
| 13 | +Inside the simulations, each vehicle has access to data comming from a LiDAR and a camera. |
| 14 | + |
| 15 | +- Simulator: [Webots](https://cyberbotics.com/) |
| 16 | +- AI Training Library: [Stable-Baselines3](https://stable-baselines3.readthedocs.io/en/master/) with a [Pytorch](https://pytorch.org/) backend |
| 17 | +- AI Inference Engine: [ONNX](https://onnx.ai/) |
| 18 | + |
| 19 | +## Installation |
| 20 | + |
| 21 | +We use uv for Python environment management. So if it's not already installed go check the [official installation guide](https://docs.astral.sh/uv/getting-started/installation/) |
| 22 | + |
| 23 | +Then, just `uv sync` to create the virtual environment and get all the dependencies. |
| 24 | +```bash |
| 25 | +# dependencies for AI training |
| 26 | +uv sync --extra simu |
| 27 | + |
| 28 | +# dependencies for AI inference on the Raspberry PI 5 |
| 29 | +uv sync --extra rpi |
| 30 | +``` |
| 31 | + |
| 32 | +## Training usage |
| 33 | + |
| 34 | +Navigate to the simulator directory. |
| 35 | +```bash |
| 36 | +cd src/simulateur |
| 37 | +``` |
| 38 | + |
| 39 | +Run the multi-process training script. |
| 40 | +```bash |
| 41 | +uv run launch_multiprocess_training.py |
| 42 | +``` |
| 43 | +This will launch the Webots instances and begin the SB3 PPO training loop. All the checkpoints will be in the `checkpoints` directory. At every checkpoint, a compiled ONNX model will be stored as `model.onnx`. |
| 44 | + |
| 45 | +To change the parameters of the simulation, just modify the `config.py` file. |
| 46 | + |
| 47 | +## Inference usage |
| 48 | + |
| 49 | +(WIP) |
| 50 | + |
| 51 | +# Wiki (Documentation) |
| 52 | + |
| 53 | +For detailed information on architecture, hardware specifics and technical choices, please refer to the [INTech wiki](wiki.intech-robotics.fr). |
| 54 | + |
| 55 | +(Note: The Wiki is private and reserved to INTech members) |
| 56 | + |
| 57 | +# License |
| 58 | + |
| 59 | +This project is distributed under the MIT License. See the Licence file for details. |
0 commit comments