Simulation de véhicule à direction Ackermann dans ROS2 avec Gazebo Sim Harmonic
Ce projet présente la simulation d’un véhicule personnalisé avec des capacités de direction Ackermann, développé en utilisant ROS2 et l’environnement Gazebo Sim Harmonic. Le modèle intègre une variété de capteurs et d’outils de navigation pour une opération autonome, en faisant l’une des premières implémentations d’un véhicule à direction Ackermann dans ce cadre de simulation.
| Visualisation du nuage de points 3D LiDAR | Modèle d’environnement d’entrepôt |
| ----- | ----- |
|
|
|
Si ce projet vous plaît, pensez à lui attribuer une ⭐ pour montrer votre soutien !
Table des matières
- Simulation de véhicule à direction Ackermann dans ROS2 avec Gazebo Sim Harmonic
- Fonctionnalités
- 1 Direction Ackermann
- 2 Communication ROS2
- 3 Capteurs
- 4 Navigation
- 5 Contrôle manuel avec joystick externe
- 6 Visualisation
- Prérequis
- Installation locale
- Installation Docker
- Utilisation
- 1 Simulation de base et contrôle manuel
- 2 SLAM localisation et cartographie simultanées
- 3 Navigation avec Nav2
- Travaux futurs
- Galerie
- Arbre TF
- Historique des étoiles
Fonctionnalités
1. Direction Ackermann
- Un modèle de véhicule personnalisé construit avec une dynamique réaliste de direction Ackermann pour une maniabilité précise.
2. Communication ROS2
- Toutes les données des capteurs et les signaux de contrôle sont entièrement intégrés dans l’écosystème ROS2 pour une interopérabilité transparente.
3. Capteurs
- IMU : Fournit l’orientation et la vitesse angulaire.
- Odométrie : Assure un retour précis de l’état du véhicule.
- LiDAR : Monté pour la détection d’obstacles et le balayage environnemental. Supporte la génération de nuages de points 3D pour des tâches avancées de perception.
- Caméras :
- Avant
- Arrière
- Côté gauche
- Côté droit
# au début des sections de caméra concernées dans saye_bringup/config/ros_gz_bridge.yaml pour les activer (par ex., /camera/left_raw, /camera/right_raw, /camera/rear_raw).4. Navigation
- Intégré avec la pile Nav2 pour la navigation autonome.
- AMCL (Localisation Monte Carlo Adaptative) pour une meilleure précision de position.
- Techniques de SLAM mises en œuvre pour la cartographie en temps réel et la compréhension de l’environnement.
- Paramètres finement ajustés pour une performance optimisée de la navigation.
5. Contrôle manuel (avec joystick externe)
- Ajout du support pour le contrôle manuel via joystick dans l’environnement de simulation, permettant aux utilisateurs de tester les déplacements du véhicule de manière interactive.
6. Visualisation
- Visualisation complète du modèle et des données des capteurs dans RViz2, offrant des informations sur les états du robot et le retour environnemental.
Exigences
- ROS2 (Humble)
- Gazebo Sim Harmonic
- RViz2
- Nav2
Installation locale
- Vous devez vous assurer de l’installation de Gazebo Harmonic et de ROS (ros_gz) :
sudo apt-get install ros-${ROS_DISTRO}-ros-gzsudo apt-get install ros-humble-ros-gzharmonic (Version Humble uniquement)Plus de détails sur l'installation de Gazebo et ROS : Lien
- Cloner le dépôt :
mkdir -p ackermann_sim/src && cd ackermann_sim/srcgit clone https://github.com/alitekes1/ackermann-vehicle-gzsim-ros2cd ..
- Construire le projet :
colcon build && source install/setup.bash
- Configurer les variables d'environnement :
bash
# Set environment variables for current session
export GZ_SIM_RESOURCE_PATH=$GZ_SIM_RESOURCE_PATH:/your/path/ackermann_sim/src/ackermann-vehicle-gzsim-ros2/
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/your/path/ackermann_sim/src/ackermann-vehicle-gzsim-ros2/
` Pour une configuration permanente :
Pour rendre ces variables d'environnement permanentes, ajoutez-les à votre fichier
.bashrc :
`bash
# Add environment variables to .bashrc
echo 'export GZ_SIM_RESOURCE_PATH=$GZ_SIM_RESOURCE_PATH:/your/path/ackermann_sim/src/ackermann-vehicle-gzsim-ros2/' >> ~/.bashrc
echo 'export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/your/path/ackermann_sim/src/ackermann-vehicle-gzsim-ros2/' >> ~/.bashrc
# Apply changes
source ~/.bashrc
` > Note : Remplacez
/your/path/ par le chemin réel de votre installation.Installation de Docker
Vous pouvez également exécuter la simulation en utilisant Docker, ce qui garantit un environnement cohérent sur différents systèmes.
Prérequis
- Docker
- NVIDIA Container Toolkit (pour la prise en charge GPU)
Étapes pour exécuter avec Docker
- Clonez le dépôt :
`bash
mkdir -p ackermann_sim/src && cd ackermann_sim/src
git clone https://github.com/alitekes1/ackermann-vehicle-gzsim-ros2
cd ackermann-vehicle-gzsim-ros2
`- Construisez et exécutez le conteneur Docker :
`bash
docker run -it \
--name ackermann_sim \
--hostname ackermann_sim \
--env="DISPLAY=$DISPLAY" \
--env="QT_X11_NO_MITSHM=1" \
--volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
--privileged alitekes1/ackermann_sim:latest
`
- Si vous souhaitez un terminal supplémentaire pour le même conteneur
`bash
docker exec -it ackermann_sim bash
`
Remarque : À l'intérieur du conteneur, vous pouvez exécuter les commandes de simulation normalement.
Utilisation
1. Simulation de base et contrôle manuel
- Lancer la simulation :
`bash
ros2 launch saye_bringup saye_spawn.launch.py
`
- Voiture de contrôle :
`bash
ros2 run teleop_twist_keyboard teleop_twist_keyboard
`2. SLAM (Localisation et Cartographie Simultanées)
- Pour exécuter SLAM Toolbox pour la cartographie, lancez ce qui suit après avoir démarré la simulation :
`bash
ros2 launch saye_bringup slam.launch.py
`

3. Navigation avec Nav2
- Pour exécuter la simulation avec la pile Nav2 pour la navigation autonome, lancez ce qui suit après avoir démarré la simulation :
`bash
ros2 launch saye_bringup navigation_bringup.launch.py
``

Note : Les vidéos YouTube ci-dessus sont lues à une vitesse 4x. Vous pouvez accéder aux vidéos en cliquant sur les images.
Travaux Futurs
- Support SLAM 3D :
- Former le véhicule à gérer des scénarios complexes de manière autonome en utilisant des algorithmes DRL avancés.
- Fonctionnalités Améliorées :
- Explorer des configurations de capteurs supplémentaires et des stratégies de navigation.
- Intégration Nav2 avec Localisation 3D
- Au lieu d'AMCL(2D), implémentation d'algorithmes plus précis et robustes.
Galerie
Nuage de Points LiDAR 3D & Environnement
| Visualisation du Nuage de Points LiDAR 3D | Modèle de l'Environnement Entrepôt |
| ----------------------------------------------------------------- | ----------------------------------------------------------------- |
|
|
|
Véhicule & Navigation
| Simulation Gazebo Harmonic | RViz2 |
| --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| |
|
|
|
|
|
|
|
Arbre TF

Historique des Étoiles
--- Tranlated By Open Ai Tx | Last indexed: 2026-05-13 ---