Code source officiel du robot de l'association Eirbot pour la Coupe de France de Robotique 2026. Une architecture hybride alliant la puissance de calcul d'une Raspberry Pi pour la stratégie et la réactivité de microcontrôleurs pour l'asservissement.
- Architecture Globale
- Fonctionnalités Clés
- Structure du Projet
- Installation & Démarrage
- Hardware
- Licence
Le robot repose sur une communication Haut Niveau (High-Level) et Bas Niveau (Low-Level).
graph TD
subgraph "🧠 Cerveau (Raspberry Pi 4)"
Web[Interface Web / Flask]
Strat[Moteur de Stratégie]
Blockly[Studio No-Code]
Lidar[Localisation EKF / Lidar]
Web <--> Strat
Blockly -->|Génère .py| Strat
Lidar --> Strat
end
subgraph "💪 Muscles (Microcontrôleurs)"
ESP[ESP32 / Teensy]
Motors[Asservissement Moteurs]
Actuators[Actionneurs & Servos]
ESP --> Motors
ESP --> Actuators
end
Strat <-->|Liaison Série / USB| ESP
Plus besoin de recompiler le code entre deux matchs !
- Interface Blockly intégrée hébergée sur le robot.
- Création de stratégies en Drag & Drop.
- Simulateur 2D temps réel pour valider les déplacements avant le match.
- Interface Web accessible via Wi-Fi (
http://<ip_robot>:5000). - Retour vidéo, état des capteurs, scores et logs en direct.
- Lancement et arrêt d'urgence à distance.
- Fusion de Capteurs : Filtre de Kalman Étendu (EKF) combinant odométrie et Lidar.
- Trajectoires Courbes : Génération de chemins fluides via courbes de Bézier.
- Évitement dynamique des adversaires.
L'arborescence est divisée pour séparer clairement les responsabilités :
robot_3a_2026/
├── 🐍 Rasp/ # --- HAUT NIVEAU (Python) ---
│ ├── ihm/ # Serveur Web, Dashboard et Blockly
│ ├── LiDAR/ # Drivers Lidar et Algorithmes de localisation
│ ├── strat/ # Logique de match, automates et actions
│ ├── interface_deplacement/ # Pathfinding et communication Série
│ ├── utils/ # Gestion Audio, LEDs, Caméra
│ └── main_robot.py # Point d'entrée principal
│
├── ⚡ src/ # --- BAS NIVEAU (C++ / PlatformIO) ---
│ ├── ClassMotors.cpp # Asservissement PID vitesse/position
│ ├── ClassActionneur.cpp # Gestion des pinces et servos
│ └── main_motor.cpp # Boucle principale du microcontrôleur
│
├── 📄 docu/ # Documentation, règles et datasheets
└── ⚙️ platformio.ini # Configuration de compilation C++
Le code Python nécessite Python 3.9+.
# Cloner le dépôt
git clone https://github.com/ton-repo/robot_3a_2026.git
cd robot_3a_2026/Rasp
# Installer les dépendances
pip install -r requirements.txt
# Lancer le robot (Stratégie + Serveur Web)
python main_robot.pyL'interface est ensuite accessible sur le port 5000.
Le code bas niveau utilise PlatformIO.
- Installer VSCode.
- Installer l'extension PlatformIO IDE.
- Ouvrir le dossier racine du projet.
- Connecter la carte via USB et cliquer sur le bouton Upload (flèche droite) dans la barre d'état.
| Composant | Modèle | Rôle |
|---|---|---|
| Ordinateur de bord | Raspberry Pi 4B | Intelligence, Vision, Web |
| Microcontrôleur | ESP32 / Teensy 4.1 | Gestion temps réel, PWM, Encodeurs |
| Lidar | RPLIDAR C1 / M1 | Détection d'obstacles et recalage |
| Moteurs | Stepper avec MKS | Propulsion |
| Actionneurs | Servomoteurs AX-12 | Manipulation des éléments de jeu (Tour) |
Ce projet est sous licence Apache License 2.0.
Copyright 2025-2026 Équipe Eirbot.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.