Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RoboCup 2024

Projet Robotique Autonome et Téléopéré

Ce projet ROS est développé pour la compétition RoboCup 2024 aux Pays-Bas. Il intÚgre plusieurs modules pour la vision par ordinateur, la navigation autonome, la manipulation d'objets et l'interface homme-machine.


📋 Table des matiùres


Architecture Générale

Le projet est organisé en plusieurs modules spécialisés :

RoboCup_ws/
├── src/
│   ├── Bras_Automatique/        # ContrĂŽle automatisĂ© du bras
│   ├── Bras_Manuel/             # Contrîle manuel du bras
│   ├── Camera_Economique/       # Module camĂ©ra bas coĂ»t
│   ├── Deplacement_Robot/       # Navigation et dĂ©placement
│   ├── Detection_Mouvement/     # DĂ©tection de mouvement
│   ├── IHM_Robot/               # Interface Web de contrîle
│   ├── Lidar/                   # Systùme Lidar
│   ├── Pince_Bras/              # Contrîle de la pince
│   ├── QRCode/                  # DĂ©tection des codes QR
│   └── Accelerometre/           # Capteur accĂ©lĂ©romĂštre (IMU)
├── launch/                       # Fichiers de lancement ROS
├── msg/                          # DĂ©finitions de messages ROS
├── srv/                          # DĂ©finitions de services ROS
├── matplotlib-cpp/               # Bibliothùque de visualisation
└── scripts/                      # Scripts utilitaires

Prérequis

SystĂšme d'exploitation

  • Ubuntu 18.04 ou 20.04 (recommandĂ© pour ROS Noetic)
  • Ubuntu 16.04 (compatible avec ROS Kinetic)

Dépendances SystÚme

# Mise à jour des dépendances systÚme
sudo apt-get update
sudo apt-get install -y \
  build-essential \
  cmake \
  git \
  libopencv-dev \
  python3-dev \
  libpcl-dev \
  python3-pip

ROS et Outils

  • ROS Noetic ou Kinetic (voir installation officielle : http://wiki.ros.org/ROS/Installation)
  • catkin (gestionnaire de build pour ROS)
  • cv_camera (capteur camĂ©ra OpenCV)
  • rosserial (communication sĂ©rie)
  • joy (support manette de jeu)

Dépendances C++

  • OpenCV 3.0+
  • PCL (Point Cloud Library)
  • Python 3.x
  • matplotlib-cpp (inclus)

Installation et Compilation

1. Cloner le workspace

cd ~/
git clone https://github.com/serrhiniabdellah/RoboCup_ws ros_workspaces/RoboCup_ws
cd ros_workspaces/RoboCup_ws

2. Installer les dépendances ROS

# Installer les dépendances manquantes via rosdep
rosdep install --from-paths src --ignore-src -r -y

3. Sourcer l'environnement ROS

source /opt/ros/noetic/setup.bash  # Pour ROS Noetic
# OU
source /opt/ros/kinetic/setup.bash  # Pour ROS Kinetic

# Ajouter Ă  votre ~/.bashrc pour source automatique
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

4. Compiler avec catkin

cd ~/ros_workspaces/RoboCup_ws
catkin_make

# Ou pour un nettoyage complet avant recompilation :
catkin_make clean
catkin_make

5. Sourcer votre workspace aprĂšs compilation

source ~/ros_workspaces/RoboCup_ws/devel/setup.bash

# Ajouter au ~/.bashrc pour source automatique
echo "source ~/ros_workspaces/RoboCup_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

Lancement du Projet

Lancement Rapide - Configuration ComplĂšte

# Option 1 : Bras Automatique avec Caméra
roslaunch Robocup2024_PaysBas Bras.launch

# Option 2 : Caméra Haute Résolution
roslaunch Robocup2024_PaysBas Flux_8MP.launch

# Option 3 : SystĂšme Lidar
roslaunch Robocup2024_PaysBas Lidar.launch

# Option 4 : Initialisation AccéléromÚtre
roslaunch Robocup2024_PaysBas Init_Accelero.launch

# Option 5 : Mode Sauvetage (Rescue)
roslaunch Robocup2024_PaysBas Rescue.launch

Lancement Étape par Étape

# Terminal 1 : Démarrer roscore
roscore

# Terminal 2 : Lancer le nƓud camĂ©ra
roslaunch Robocup2024_PaysBas Bras.launch

# Terminal 3 : Visualiser les images (optionnel)
rosrun rqt_image_view rqt_image_view

# Terminal 4 : Visualiser les données (optionnel)
rosrun rviz rviz

Lancement Automatisé Complet

# Lancer tous les modules avec configuration automatique
bash scripts/launch_all.sh

Modules Disponibles

đŸŠŸ Bras Automatique

Fichiers : src/Bras_Automatique/

Permet la détection et manipulation automatique d'objets :

  • DĂ©tection d'objets via HSV (teinte, saturation, valeur)
  • Calcul de position en 3D
  • ContrĂŽle automatisĂ© du bras
  • Calibration HSV configurable

Utilisation :

roslaunch Robocup2024_PaysBas Bras.launch

🎼 Bras Manuel

Fichiers : src/Bras_Manuel/

ContrĂŽle du bras via manette de jeu ou clavier :

  • Interface ROS
  • Configuration des plages moteurs
  • URDF pour simulation

Lancement : Utiliser la manette via le module Deplacement_Robot

đŸ“· CamĂ©ra Économique

Fichiers : src/Camera_Economique/

SystÚme de vision bas coût :

  • Capture vidĂ©o en temps rĂ©el
  • Support camĂ©ra USB standard
  • OptimisĂ© pour faible latence

ParamĂštres configurables :

  • RĂ©solution : 320×240 ou 1920×1440
  • PĂ©riphĂ©rique : /dev/video0, /dev/video1, etc.
  • FrĂ©quence d'images

🚀 DĂ©placement Robot

Fichiers : src/Deplacement_Robot/

Gestion de la locomotion du robot :

  • Classe sabertooth pour contrĂŽle moteur
  • Support manette de jeu
  • Republication des commandes de joystick

Topics :

  • /joy : DonnĂ©es brutes manette
  • /cmd_vel : Commandes de vitesse

👁 DĂ©tection de Mouvement

Fichiers : src/Detection_Mouvement/

Analyse vidéo pour détection de mouvement :

  • Scripts Python pour flux vidĂ©o continu
  • Configuration en temps rĂ©el
  • Seuils ajustables

Scripts :

  • Detection_Mouvement.py : Mode unique
  • Detection_Mouvement_Continu.py : Flux continu

📊 Lidar

Fichiers : src/Lidar/

SystĂšme de cartographie 3D et navigation :

  • Traitement des nuages de points
  • Exploration autonome
  • AccĂ©lĂ©romĂštre intĂ©grĂ©

đŸ”€ QR Code

Fichiers : src/QRCode/

Détection et décodage de codes QR :

  • Localisation prĂ©cise
  • Extraction de donnĂ©es

📈 AccĂ©lĂ©romĂštre (IMU)

Fichiers : src/Accelerometre/

Capteur inertiel (MPU-9250) :

  • Mesure accĂ©lĂ©ration 3D
  • Orientation gyroscope
  • Calibration disponible

Services ROS

Service : Traitement_HSV

Permet d'ajuster les paramÚtres HSV pour la détection d'objets

Fichier : srv/Traitement_HSV.srv

ParamĂštres :

int64 LowH        # Teinte minimale (0-180)
int64 HighH       # Teinte maximale (0-180)
int64 LowS        # Saturation minimale (0-255)
int64 HighS       # Saturation maximale (0-255)
int64 LowV        # Valeur minimale (0-255)
int64 HighV       # Valeur maximale (0-255)

Utilisation :

# Ajuster la détection HSV pendant l'exécution
rosservice call /Traitement_HSV 30 180 100 255 100 255

# Pour faciliter la calibration, utiliser :
opencv3_V2_node

Service : Pas

ContrÎle du déplacement pas à pas

Fichier : srv/Pas.srv


Topics ROS

Messages Publiés

pieces_info - Information sur les objets détectés

Header header       # Timestamp et frame_id
int32 rang         # Rang/ID de l'objet
float32 x1, y1     # Coin supérieur gauche
float32 x2, y2     # Coin inférieur droit
float32 center_x   # Centre X
float32 center_y   # Centre Y
float32 width      # Largeur
float32 height     # Hauteur

nb_pieces - Nombre d'objets détectés

int32 count        # Nombre total d'objets

donnees_comparaison - Données de comparaison

Utilisé pour l'analyse des performances des détections

Topics Standards ROS

  • /camera/image_raw : Flux vidĂ©o camĂ©ra
  • /camera/camera_info : Calibration camĂ©ra
  • /joy : DonnĂ©es brutes manette
  • /cmd_vel : Commandes de vitesse
  • /tf : Transformations gĂ©omĂ©triques
  • /scan : DonnĂ©es Lidar

Interface Utilisateur

Web IHM

Fichiers : src/IHM_Robot/

Interface HTML/CSS/JavaScript pour le contrĂŽle du robot :

index.html                  # Page d'accueil principale
├── deplacement_robot.html  # ContrĂŽle du dĂ©placement
├── deplacement_robot.js    # Logique dĂ©placement
├── vision_camera.html      # Flux camĂ©ra
├── vision_camera.js        # Logique camĂ©ra
├── vision_lidar.html       # Visualisation Lidar
├── vision_lidar.js         # Logique Lidar
├── deplacement_bras.html   # Contrîle du bras
├── deplacement_bras.js     # Logique du bras
└── style.css               # Styles

AccĂšs Ă  l'IHM

# Lancer un serveur web local
cd src/IHM_Robot/
python3 -m http.server 8000

# Accéder via navigateur
# http://localhost:8000
# ou http://<IP_ROBOT>:8000

Configuration

Fichier de Configuration HSV

Fichier : HSV_Config.txt

Contient les paramÚtres HSV prédéfinis pour différents objets :

# Format : NomObjet LowH HighH LowS HighS LowV HighV
Red 0 10 100 255 100 255
Green 40 80 100 255 100 255
Blue 100 130 100 255 100 255

Configuration Caméra

Dans les fichiers .launch :

<param name="device_path" value="/dev/video0" />
<param name="image_width" value="320" />
<param name="image_height" value="240" />

Configuration Moteurs (Bras Manuel)

Fichier : src/Bras_Manuel/Ranges_moteurs

Plages de mouvement pour chaque articulation du bras


Dépannage

Erreur de Compilation

# Nettoyer et recompiler
catkin_make clean
rm -rf build devel
catkin_make

# Ou utiliser ccache pour plus rapide
catkin_make -DCMAKE_CXX_COMPILER_LAUNCHER=ccache

Caméra non détectée

# Vérifier les périphériques vidéo disponibles
ls -la /dev/video*

# Tester la caméra
v4l2-ctl --list-devices

ProblÚmes de Communication Série

# Vérifier le port USB
ls -la /dev/ttyACM*
ls -la /dev/ttyUSB*

# Affecter les permissions
sudo usermod -a -G dialout $USER
# Redémarrer la session ou :
newgrp dialout

ProblĂšmes ROS

# Vérifier la connectivité ROS
rosnode list
rostopic list

# DĂ©boguer les nƓuds
rostopic echo /topic_name
rosservice list

Manque de dépendances

# Installer les dépendances manquantes
rosdep install --from-paths src --ignore-src -r -y

# Installer des packages Python spécifiques
pip3 install numpy opencv-python

Performance faible

# Vérifier les ressources
htop
# Regarder utilisation CPU/RAM

# Réduire la résolution caméra
# Modifier dans les fichiers .launch

Documentation Additionnelle


Notes Importantes

  • ⚠ Assurez-vous que roscore est lancĂ© avant les autres nƓuds
  • ⚠ VĂ©rifiez les permissions USB pour les pĂ©riphĂ©riques sĂ©rie
  • â„č Les paramĂštres HSV doivent ĂȘtre calibrĂ©s selon l'Ă©clairage ambiant
  • â„č Utilisez rqt pour monitorer les topics et debugger en temps rĂ©el

Licence

À dĂ©finir

Mainteneurs


DerniĂšre mise Ă  jour : Mars 2026

About

RoboCup ISTY workspace

Resources

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages