[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

node4.svg

Lancement de l’IHM

pyqt_ihm_ros2_ws.zip

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 :

qt_cpp_ihm_ros2_ws.zip

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

qtcreator1.png

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 ).

qtcreator2.png

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 !"  

qtcreator3.png