ROS2 and graphic user interface

Hello guys I am interested in what are my possibilities if I want build GUI for my robot who running on ROS2. I googled but still dont have good overview what language or technology use for that. Every information related ROS2 and GUI is usefull for me thanks.

Hi @PieterT-CODES ,

I have worked on a robot that used ROS for its working entirely. It used Qt5 with C++. That I believe would be the most used and the best GUI for robust robot user interfaces.
Your other options would be to design an internet based website-gui. That uses hybrid or network only model.

A GUI design can be categorized into 3 main categories - offline design, online design and hybrid design.
Offline design - completely offline - uses GUI frameworks like Qt or TkInter or any other computer-only GUI designers.
Online design - completely online - uses Javascript, HTML and CSS to make a completely online UI. One example that I have used is Django with Python. Other popular examples inclues React JS, Vue JS (I am not good with JS).
Hybrid design - uses both offline and online approach - provides scalability as an advantage - this is typically using Offline design tools to make a standard GUI for loading Online design pages. This is basically like a custom designed browser where the pages loaded will be generated by your app design.

Good place to see my above explanation is to Google “App types” or to Google “Native / Hybrid / Web App Models”

So for Qt, you can design and code with Python and C++. This would be the best place to start if you want Native/Offline GUI design. Qt is the most preferred Offline GUI designer.
To make test-gui’s that showcases just the concept and not going deep into graphic design and user-experience components, TkInter is a good option. You can use python to quickly design GUIs.
Another GUI framework that I have worked on is Kivy - uses Python. Kivy is very easy to program and use. It provides graphic components for user-experience.

Reference Links:
Qt - https://www.qt.io
TkInter - tkinter — Python interface to Tcl/Tk — Python 3.11.0 documentation
Kivy - https://kivy.org
PyQt - Riverbank Computing | Introduction
GTK - https://www.gtk.org
Django[Python] - https://www.djangoproject.com

Hope this info helps you make a choice!

Regards,
Girish

EDIT: You can also have a look at Web Development for Robotics course offered here:

1 Like

I suggest having a look at RQt:
https://docs.ros.org/en/humble/Concepts/About-RQt.html

2 Likes

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.