[PC_HOST] IHM
Objectifs
Une interface de commande côté PC doit permettre d’envoyer des ordres à destination de la RPI4 et de la STM32, au formalisme ROS2.
Le langage de programmation pour cette interface n’est pas imposé ( on peut utiliser C++, python, ou une architecture client serveur, la seule contrainte étant d’utiliser ROS2).
Cette interface doit :
- Saisir le mode de fonctionnement :
- Mode Manuel : L’utilisateur envoie des ordres de direction depuis l’IHM, le robot doit réagir s’il y a un obstacle.
- Mode Aléatoire : Le robot se déplace tout seul en évitant les obstacle, et en changeant régulièrement de direction.
- Mode Tracking : Le robot suit une couleur détectée par la caméra.
- Afficher des données du robot :
- Vitesse de rotation mesurée des roues en tr/min
- Vitesse de déplacement du robot en m/s et km/h
- Présence d’obstacle avant ou arrière
- Afficher l’image de la caméra ( avec et sans traitement )
Point de départ en Python-Qt
Lancement de l’IHM
Dans un premier terminal :
unzip pyqt_ihm_ros2_ws.zip
cd ./pyqt_ihm_ros2_ws
rosdep install -i --from-path src --rosdistro humble -y
colcon build --packages-select py_ihm
. install/setup.bash
ros2 run py_ihm ihm_ros2
Fichier source : py_ihm.py
Après toute modification du fichier py_ihm.py, faire :
colcon build --packages-select py_ihm
ros2 run py_ihm ihm_ros2
Test du Programme
Dans un autre terminal, afin d’afficher les message envoyés par l’IHM :
ros2 topic echo /pyqt_topic_send
Dans un autre terminal ( sur [PC_HOST] ou [RPI] ), afin d’envoyer des messages à l’IHM :
ros2 topic pub --rate 1 /pyqt_topic_rec std_msgs/msg/String "data: Hello !"
Point de départ en Qt-C++
Il existe une version de qtcreator configurée pour ROS2.
Installation sur vos PCs persos
Si vous souhaitez l’installer sur votre PC Linux perso :
https://snapcraft.io/qtcreator-ros
sudo snap install qtcreator-ros --classic
Compilation du programme point de départ
Télécharger et extraire l’archive suivante :
Fichier source : mainwindow.cpp
qtcreator-ros ihm.workspace
Eventuellement si nécessaire :
/snap/qtcreator-ros/105/bin/qtcreator ihm.workspace
Dans QtCreator :
- Build Project
- Projects –> Desktop : Build –> Source Workspace
Exécution du programme
Choix de l’exécutable :
Projects –> Desktop : Run :
Run : Run Configuration : Custom Executable
==> indiquer le chemin : $PWD/build/my_package/my_node
REMARQUES :
Quelques problèmes de compilation ou d’exécution peuvent être liés aux variables d’environnement :
Vérifier dans Projects –> Desktop : Build que les variables d’environnement :
- HOME
- DISPLAY
- ROS_DOMAIN_ID
- CONDA_DEFAULT_ENV
- CONDA_EXE
- CONDA_PREFIX
- CONDA_PYTHON_EXE
- PYTHONPATH
- PATH
correspondent à celles affichées dans un terminal avec la commande echo ( ex: echo $HOME ).
Test du programme
Dans un autre terminal ( sur [PC_HOST] ou [RPI] ), afin d’afficher les message envoyés par l’IHM :
ros2 topic echo /qt_cpp_topic_send
Dans un autre terminal, afin d’envoyer des messages à l’IHM :
ros2 topic pub --rate 1 /qt_cpp_topic_rec std_msgs/msg/String "data: Hello !"