Un Cerveau, n'importe quel Robot.
Note : La version anglaise est la documentation officielle et la plus à jour. Cette traduction peut ne pas refléter les dernières modifications.
BotBrain est une collection modulaire de composants logiciels et matériels open source qui vous permet de conduire, voir, cartographier, naviguer (manuellement ou de manière autonome), surveiller et gérer des robots à pattes (quadrupèdes, bipèdes et humanoïdes) ou à roues ROS2 depuis une interface web simple mais puissante. Le matériel fournit des supports imprimables en 3D et un boîtier externe pour que vous puissiez installer BotBrain sur votre robot sans complications.
- Conçu autour de l'Intel RealSense D435i et de la gamme NVIDIA Jetson
- Cartes officiellement supportées : Jetson Nano, Jetson Orin Nano (support AGX et Thor bientôt disponible)
- Tout est modulaire - vous n'avez pas besoin d'exécuter tous les modules (certains modules IA lourds nécessitent Orin AGX)
Rapide à imprimer en 3D, facile à assembler et conçu pour s'adapter à n'importe quel robot. Faites fonctionner votre robot avec BotBrain en moins de 30 minutes.
📹 Regardez BotBrain effectuer 1 heure de patrouilles autonomes dans notre bureau
- Unitree Go2 & Go2-W - Robots quadrupèdes avec interface matérielle et contrôle complets
- Unitree G1 - Humanoïde avec contrôle de posture du haut du corps et transitions FSM
- DirectDrive Tita - Bipède avec contrôle complet
- Robots personnalisés - Framework extensible pour ajouter n'importe quelle plateforme compatible ROS2
- À pattes et à roues - L'architecture supporte les deux types de locomotion
- Boîtier imprimable en 3D - Design à encliquetage avec adaptateurs de montage spécifiques aux robots (Go2, G1 et Direct drive Tita)
- Intel RealSense D435i - Support double caméra pour la visualisation et SLAM/Navigation
- IMU et odométrie - Estimation de pose en temps réel de toutes les plateformes supportées
- Surveillance de batterie - État de batterie par robot avec estimation d'autonomie
- Détection d'objets YOLOv8/v11 - Plus de 80 classes, optimisé TensorRT, suivi en temps réel sur BotBrain
- Moondream AI - Compréhension visuelle multimodale et analyse de scène
- Contrôle par langage naturel ROSA - Commandes conversationnelles pour robot via LLM
- Historique des détections - Journal consultable avec image et information/description
- RTABMap SLAM - Cartographie visuelle avec une ou deux caméras RealSense D435i
- Intégration Nav2 - Planification de trajectoire, évitement d'obstacles dynamiques, comportements de récupération
- Planification de missions - Créez et exécutez des patrouilles autonomes multi-waypoints
- Navigation par clic - Définissez des destinations directement sur l'interface de carte
- Gestion des cartes - Sauvegardez, chargez, changez et définissez des positions de départ
- Gestion du cycle de vie - Démarrage/arrêt coordonné des nœuds avec ordonnancement des dépendances
- Machine d'état - États système avec marche/arrêt automatique
- Contrôle de vitesse par priorité - Arbitrage de commandes à 6 niveaux (joystick > nav > IA)
- Interrupteur de sécurité - Verrouillage de sécurité matériel/logiciel pour toutes les commandes de mouvement
- Arrêt d'urgence - Séquence d'e-stop complète
- CockPit - Page de contrôle préconfigurée avec caméras, modèle 3D, carte et actions rapides
- Mon Interface - Tableau de bord personnalisable avec glisser-déposer et widgets redimensionnables
- Joysticks virtuels - Contrôle double stick tactile/souris avec réglage de vitesse
- Support gamepad - PS5, Xbox ou joystick générique avec mappage de boutons personnalisé et changement de mode
- Contrôle clavier - Contrôles WASD
- Profils de vitesse - Plusieurs préréglages de vitesse pour différents modes opérationnels (Débutant, Normal et mode Extrême)
- Actions du robot - Debout/assis, verrouiller/déverrouiller, sélection de démarche, lumières, transitions de mode
- Streaming multi-caméra - Découverte dynamique pour les topics de caméra avant, arrière et personnalisés
- Codecs H.264/H.265 - Mise à l'échelle de résolution, contrôle du taux de trames, optimisation de bande passante
- Enregistrement dans le navigateur - Enregistrez la vidéo des caméras et sauvegardez dans votre dossier de téléchargements
- Visualisation 3D - Modèle robot basé sur URDF avec superposition de scan laser et chemin de navigation
- Statistiques Jetson - Modèle de carte, version JetPack, mode d'alimentation, temps de fonctionnement
- Surveillance CPU/GPU - Utilisation par cœur, fréquence, mémoire, limitation thermique
- Suivi de l'alimentation - Tension, courant et puissance par rail avec détection de pic
- Températures et ventilateurs - Températures CPU/GPU/SOC avec contrôle de vitesse du ventilateur
- Stockage et mémoire - Alertes d'utilisation disque, surveillance RAM/swap
- Panneau de contrôle WiFi - Scan de réseaux, changement et surveillance du signal
- Modes de connexion - WiFi, Ethernet, 4G, hotspot avec suivi de latence
- Flotte multi-robot - Connexions simultanées, commandes pour toute la flotte, tableau de bord de statut
- Diagnostics - Santé des nœuds, logs d'erreur/avertissement, visualisation de la machine d'état
- Thèmes clair/sombre - Couleurs d'accentuation personnalisées, préférences persistantes
- Mises en page responsives - Mobile, tablette et bureau avec support tactile
- Profils utilisateur - Avatar, nom d'affichage, couleur du thème via Supabase Auth
- Multi-langue - Anglais et Portugais avec formats régionaux
- Journal d'audit - Historique d'événements consultable dans plus de 10 catégories avec export CSV
- Analyse d'activité - Cartes thermiques d'utilisation et suivi de l'utilisation du robot
- Vue d'Ensemble
- Structure du Projet
- Prérequis
- Installation
- Développement Frontend
- Fonctionnalités
- Configuration
- Robots Personnalisés
- Dépannage
- Contribution
- Licence
BotBrain se compose de trois composants principaux :
Un boîtier imprimable en 3D avec des supports internes conçus pour abriter une carte NVIDIA Jetson et deux caméras Intel RealSense D435i. La conception modulaire vous permet de connecter BotBrain à diverses plateformes robotiques sans fabrication personnalisée.
Un tableau de bord web Next.js 15 construit avec React 19 et TypeScript. Il fournit le contrôle du robot en temps réel, le streaming caméra, la visualisation de carte, la planification de missions, la surveillance système et la gestion de flotte—tout accessible depuis n'importe quel navigateur sur votre réseau.
Une collection de packages ROS2 Humble qui gèrent :
- Bringup et Orchestration (
bot_bringup) - Lancement et coordination du système - Localisation (
bot_localization) - SLAM basé sur RTABMap pour la cartographie et le positionnement - Navigation (
bot_navigation) - Intégration Nav2 pour le mouvement autonome - Perception (
bot_yolo) - Détection d'objets YOLOv8/v11 - Pilotes Robot - Packages spécifiques aux plateformes pour Unitree Go2/G1, DirectDrive Tita et robots personnalisés
BotBrain/
├── frontend/ # Tableau de bord web Next.js 15 (React 19, TypeScript)
├── botbrain_ws/ # Workspace ROS 2 Humble
│ └── src/
│ ├── bot_bringup/ # Lancement principal et orchestration système
│ ├── bot_custom_interfaces/# Messages, services et actions ROS 2 personnalisés
│ ├── bot_description/ # Modèles URDF/XACRO et robot_state_publisher
│ ├── bot_jetson_stats/ # Surveillance matérielle Jetson
│ ├── bot_localization/ # SLAM RTABMap
│ ├── bot_navigation/ # Navigation autonome Nav2
│ ├── bot_rosa/ # Contrôle par langage naturel ROSA AI
│ ├── bot_state_machine/ # Gestion du cycle de vie et des états
│ ├── bot_yolo/ # Détection d'objets YOLOv8/v11
│ ├── g1_pkg/ # Support Unitree G1
│ ├── go2_pkg/ # Support Unitree Go2
│ ├── joystick-bot/ # Interface manette de jeu
│ └── tita_pkg/ # Support DirectDrive Tita
├── hardware/ # Boîtier imprimable en 3D (STL/STEP/3MF)
└── docs/ # Documentation
| Composant | Prérequis |
|---|---|
| Calcul | NVIDIA Jetson (Nano, Orin Nano ou série AGX) |
| Caméras | 2x Intel RealSense D435i |
| Robot | Robot ROS2 Humble ou Unitree Go2 et Go2-W, Unitree G1, Direct Drive Tita, ou robot personnalisé |
| Réseau | Connexion Ethernet ou WiFi |
| Composant | Prérequis |
|---|---|
| OS | JetPack 6.2 (Ubuntu 22.04) recommandé |
| Conteneur | Docker & Docker Compose |
| Node.js | v20+ (uniquement pour le développement frontend local) |
BotBrain a deux composants principaux : matériel (boîtier imprimé en 3D et composants internes) et logiciel (application web frontend et workspace ROS2).
Imprimez le boîtier en 3D et assemblez les composants électroniques.
Pièces Principales : Imprimante 3D, filament PLA, NVIDIA Jetson, 2x RealSense D435i, convertisseur de tension.
Guide d'Assemblage Matériel - Instructions détaillées sur la construction de votre BotBrain
Vidéo Complète d'Assemblage - Tutoriel vidéo complet étape par étape du processus d'assemblage BotBrain
Le tableau de bord web nécessite Supabase pour l'authentification et le stockage de données. Vous devrez créer votre propre projet Supabase gratuit.
Guide de Configuration Supabase - Instructions complètes avec schéma de base de données
Résumé rapide :
- Créez un projet sur supabase.com
- Exécutez les migrations SQL du guide de configuration
- Copiez vos clés API pour l'étape suivante
Système d'Exploitation :
- NVIDIA JetPack 6.2 (recommandé)
- D'autres distributions Linux peuvent fonctionner mais ne sont pas officiellement supportées
Docker & Docker Compose :
Requis pour le déploiement conteneurisé :
- Installez Docker :
# Ajoutez la clé GPG officielle de Docker :
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Ajoutez le dépôt aux sources Apt :
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# Installez les packages Docker :
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginConsultez le guide officiel d'installation Docker pour plus de détails.
- Activez Docker sans sudo :
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp dockerConsultez les étapes post-installation pour plus de détails.
Étape 1 : Clonez le Dépôt
git clone https://github.com/botbotrobotics/BotBrain.git
cd BotBrainÉtape 2 : Exécutez le Script d'Installation
Le script d'installation automatisé configurera votre robot et mettra en place le service de démarrage automatique :
sudo ./install.shPlus de détails sur les informations demandées dans l'installateur peuvent être trouvés ici
Étape 3 : Redémarrez le Système
sudo rebootUne fois redémarré, le système démarrera automatiquement les conteneurs Docker pour tous les nœuds ROS2 et le serveur web.
Étape 4 : Accédez à l'Interface Web
| Méthode d'Accès | URL |
|---|---|
| Même ordinateur | http://localhost |
| Accès réseau | http://<IP_DU_JETSON> |
Trouvez l'adresse IP de votre Jetson :
hostname -INote : Assurez-vous que les deux appareils sont sur le même réseau et que le port 80 n'est pas bloqué par un pare-feu.
Pour le développement frontend local (sans la stack complète du robot) :
cd frontend
# Copiez le template d'environnement
cp .env.example .env.local
# Éditez avec vos identifiants Supabase
nano .env.local| Variable | Requise | Description |
|---|---|---|
NEXT_PUBLIC_SUPABASE_URL |
Oui | URL de votre projet Supabase |
NEXT_PUBLIC_SUPABASE_ANON_KEY |
Oui | Clé anon/publique de votre Supabase |
NEXT_PUBLIC_ROS_IP |
Non | IP par défaut du robot (défaut : 192.168.1.95) |
NEXT_PUBLIC_ROS_PORT |
Non | Port du ROS bridge (défaut : 9090) |
# Installez les dépendances
npm install
# Serveur de développement (fonctionnalités complètes)
npm run dev
# Serveur de développement (édition open source)
npm run dev:oss
# Build de production
npm run build
npm startÉditez botbrain_ws/robot_config.yaml :
robot_configuration:
robot_name: "mon_robot" # Namespace pour tous les topics
robot_model: "go2" # go2, tita, g1, ou personnalisé
network_interface: "eth0" # Interface réseau pour ROS2
openai_api_key: "" # Pour les fonctionnalités IA (optionnel)Les numéros de série des caméras et les transformations sont configurés par robot dans :
botbrain_ws/src/go2_pkg/config/camera_config.yamlbotbrain_ws/src/g1_pkg/config/camera_config.yamlbotbrain_ws/src/tita_pkg/config/camera_config.yaml
Trouvez les numéros de série de vos caméras :
rs-enumerate-devices | grep "Serial Number"Pour ajouter le support d'une nouvelle plateforme robotique à BotBrain :
- Backend/Stack ROS2 : Suivez le guide complet Création d'un Package Robot Personnalisé
- Frontend : Ajoutez un profil robot dans les paramètres de l'interface web
- Vérifiez que rosbridge fonctionne :
ros2 node list | grep rosbridge - Vérifiez que le pare-feu autorise le port 9090 :
sudo ufw allow 9090 - Assurez-vous que l'IP est correcte dans les paramètres de connexion du robot dans l'interface
- Listez les caméras connectées :
rs-enumerate-devices - Vérifiez les connexions USB et assurez-vous que les caméras sont alimentées
- Vérifiez que les numéros de série dans
camera_config.yamlcorrespondent à vos caméras - Vérifiez les permissions USB :
sudo usermod -a -G video $USER
- Assurez-vous que Docker fonctionne sans sudo (voir instructions d'installation)
- Vérifiez l'accès GPU :
docker run --gpus all nvidia/cuda:11.0-base nvidia-smi - Consultez les logs du conteneur :
docker compose logs -f bringup
- Vérifiez les identifiants Supabase dans
.env.local - Vérifiez la console du navigateur pour les erreurs
- Assurez-vous que Node.js v20+ est installé :
node --version
- Vérifiez que twist_mux fonctionne :
ros2 topic echo /cmd_vel_out - Vérifiez que l'interface matérielle du robot est active :
ros2 lifecycle get /robot_write_node - Vérifiez si l'arrêt d'urgence est activé dans l'interface
Rejoignez notre communauté Discord pour un support en temps réel et des discussions avec la communauté BotBrain.
Consultez docs/DEPENDENCIES.md pour une liste complète des packages frontend et ROS utilisés.
Nous acceptons les contributions ! Que vous corrigiez des bugs, ajoutiez des fonctionnalités, amélioriez la documentation ou ajoutiez le support pour de nouveaux robots, votre aide est appréciée. Si vous pouvez rendre BotBrain meilleur ou plus rapide, apportez votre contribution.
Rejoignez notre serveur Discord pour discuter d'idées, obtenir de l'aide ou vous coordonner avec d'autres contributeurs.
-
Forkez le Dépôt
# Forkez via l'interface GitHub, puis clonez votre fork git clone https://github.com/botbotrobotics/BotBrain.git cd BotBrain
-
Créez une Branche de Fonctionnalité
git checkout -b feature/votre-fonctionnalite-geniale
-
Effectuez Vos Modifications
- Ajoutez des tests pour les nouvelles fonctionnalités
- Mettez à jour les fichiers README pertinents
- Assurez-vous que tous les packages compilent avec succès
- Suivez les standards de codage ROS 2
-
Testez Soigneusement
-
Committez Vos Modifications
git add . git commit -m "Add feature: brève description des modifications"
-
Poussez vers Votre Fork
git push origin feature/votre-fonctionnalite-geniale
-
Soumettez une Pull Request
- Fournissez une description claire de vos modifications
- Référencez les issues liées
- Incluez des captures d'écran ou vidéos pour les changements d'UI/comportement
Version Professionnelle / Enterprise de BotBrain avec protection IP67, charges utiles personnalisées comme CamCam (Caméra Thermique + Infrarouge), ZoomZoom (caméra RGB longue portée 30x), modèles IA avancés, intégration IoT (LoRA), connectivité données 3-5g, service et maintenance, intégrations avancées avec charges utiles personnalisées, et bien plus. En savoir plus ici ou réservez votre essai maintenant.
Les robots peuvent blesser des personnes et s'endommager eux-mêmes lorsqu'ils sont mal utilisés ou pendant le développement. Veuillez observer ces pratiques de sécurité :
- Utilisez un E-stop physique - Ne comptez jamais uniquement sur les arrêts logiciels
- Changez les clés API en cas de fuite
- Testez les modifications en simulation avant de les exécuter sur le matériel physique
- Gardez vos distances avec le robot pendant les tests initiaux
Avertissement : BotBot n'est pas responsable des défaillances, accidents ou dommages résultant de l'utilisation de ce logiciel ou matériel. L'utilisateur assume l'entière responsabilité de l'exploitation sécurisée, des tests et du déploiement des robots utilisant BotBrain.
Ce projet est sous licence MIT License - consultez le fichier LICENSE pour plus de détails.
Fait avec 💜 au Brésil








