Skip to content

amedabou/Simulation_Robot_Mobile

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 

Repository files navigation

🤖 Simulation d'un Robot Mobile 4 Roues (Skid-Steer)

🎯 Objectif du Projet

Ce projet consiste à concevoir, modéliser et simuler un robot mobile à quatre roues motorisées sous ROS2. Le robot utilise une cinématique de type "Skid-Steer" (direction par glissement), où les deux roues de chaque côté sont synchronisées pour diriger le châssis.

🛠️ Spécifications Techniques

  • Châssis : Plateforme rectangulaire de 1370 x 1050 mm.
  • Propulsion : 4 roues cylindriques (diamètre 150 mm) motorisées.
  • Environnement : Ubuntu 24.04 (WSL) & ROS2 Jazzy.
  • Outils :
    • URDF/Xacro : Description du modèle physique et visuel.
    • RViz2 : Visualisation des capteurs et de la structure.
    • Gazebo : Simulation physique.

🛠️ Installation et dépendances

Ce projet est conçu pour fonctionner avec Ubuntu 24.04 et ROS2 Jazzy.

1. Installer ROS2 Jazzy

Vérifiez que ROS2 Jazzy est installé. Sinon, utilisez les commandes suivantes :

sudo apt update && sudo apt upgrade -y
sudo apt install ros-jazzy-desktop -y
  1. Installer les paquets nécessaires

Installez les outils requis pour la simulation et le contrôle :

sudo apt install -y \
  ros-jazzy-xacro \
  ros-jazzy-joint-state-publisher-gui \
  ros-jazzy-robot-state-publisher \
  ros-jazzy-ros-gz \
  ros-jazzy-ros-gz-sim \
  ros-jazzy-ros-gz-bridge \
  ros-jazzy-gz-ros2-control \
  ros-jazzy-teleop-twist-keyboard \
  python3-colcon-common-extensions \
  build-essential

(Optionnel)

sudo apt install -y ros-jazzy-urdf-tutorial

Ajoutez ensuite ROS2 à votre environnement :

echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc

🚀 Mise en route

Installation initiale (à faire une seule fois)

Créer le workspace et cloner le projet

mkdir -p ~/robot_ws
cd ~/robot_ws
git clone https://github.com/amedabou/Simulation_Robot_Mobile.git .

# Compiler le package
cd ~/robot_ws
colcon build --packages-select mon_robot_simu

# Charger automatiquement l’environnement
echo "source ~/robot_ws/install/setup.bash" >> ~/.bashrc
source ~/.bashrc

Utilisation courante (à chaque session)

# Compiler le package
cd ~/robot_ws
colcon build --packages-select mon_robot_simu

# Charger l’environnement
source ~/.bashrc

🎮 Utilisation

1. Lancement de la visualisation (RViz2)

Pour afficher le robot en 3D et tester les articulations des roues :

ros2 launch mon_robot_simu display.launch.py

ou

ros2 launch mon_robot_simu display.launch.xml

Cette commande exécute automatiquement plusieurs actions :

  • Robot State Publisher : Transforme le fichier robot.urdf.xacro en modèle URDF compréhensible par ROS 2.
  • Joint State Publisher GUI : Ouvre une interface de contrôle pour faire pivoter les 4 roues manuellement.
  • RViz2 : Ouvre la fenêtre de visualisation 3D avec la configuration mon_robot.rviz préchargée (grille, couleurs et repères TF)

2. Lancement de la simulation physique (Gazebo Harmonic)

Pour tester le comportement dynamique du robot (masse, friction, moteur), utilisez le lanceur Gazebo :

ros2 launch mon_robot_simu gazebo.launch.py

ou

ros2 launch mon_robot_simu gazebo.launch.xml

Cette commande lance une simulation complète incluant :

  • GZ Sim : Démarre le simulateur Gazebo avec un monde (game1.sdf).

  • Robot State Publisher : Publie la structure du robot à partir du fichier Xacro.

  • Spawn Entity : Insère automatiquement le robot dans le monde à une hauteur de sécurité de 0.1m.

  • ROS GZ Bridge : Établit le pont de communication entre ROS 2 et Gazebo pour les données suivantes :

    • /cmd_vel : Commandes de mouvement (du clavier vers le robot).

    • /odom et /tf : Position du robot dans l'espace.

    • /joint_states : Rotation réelle des roues.

  • RViz2 : Ouvre une fenêtre de visualisation synchronisée avec la simulation physique.

3. Téléopération (Contrôle au clavier)

Une fois la simulation lancée, ouvrez un nouveau terminal pour piloter le robot :

ros2 run teleop_twist_keyboard teleop_twist_keyboard

Utilisez les touches indiquées dans le terminal pour avancer, reculer ou pivoter. Le robot utilise une logique skid-steer où les deux roues de chaque côté sont couplées.

About

Simulation complète d'un robot mobile à 4 roues (skid-steer) sous ROS 2, incluant modélisation Xacro, visualisation RViz et physique Gazebo.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors