No version for distro humble. Known supported distros are highlighted in the buttons above.
No version for distro jazzy. Known supported distros are highlighted in the buttons above.
No version for distro rolling. Known supported distros are highlighted in the buttons above.

ros2_robot_gui package from robot-contorl-qt-gui-with-ros repo

ros2_robot_gui

Package Summary

Tags No category tags.
Version 0.1.0
License TODO: License declaration
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description A GUI developed in Qt for a control of a track based robot that is connected with ROS
Checkout URI https://github.com/miker2808/robot-contorl-qt-gui-with-ros.git
VCS Type git
VCS Version ROS2-Foxy-Ubuntu-20.04
Last Updated 2022-10-17
Dev Status UNKNOWN
CI status No Continuous Integration
Released UNRELEASED
Tags gui qt cpp qml qt-quick qt5 ros qtquick ros2
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

A gui for a robot with ROS2 integration

Additional Links

No additional links.

Maintainers

  • Mike

Authors

No additional authors.

Robot Control QT GUI With ROS2!


Introduction

This GUI now offers solution both for ROS1 Noetic and for ROS2 Foxy

This is an open source GUI developed for use on a track based robots which use dual mode controllers that can control either left or right side of the wheels/tracks. The GUI is developed using Qt on C++ with QtQuick. The GUI is integrated with ROS and is directly subscribing and publishing to topics.

Features

Dynamic safety display

The GUI allows dynamic animated shifting between safety modes, the GUI subscribes to a safety topic and changes visually depending on the safety mode. When safety is engaged the buttons are disabled and will fade away. Additionally the GUI contains a safety button to manually enable and disable the safety mode

Safety Demo

Buttons for 2D motion control

The GUI includes a set of buttons to control the robot using a mouse. The features allows to take the full control of the GUI using only a mouse. The buttons will publishe values accordingly to ‘/robot/motor_left’ and ‘/robot/motor_right’ to actuate the robot using these buttons. The topic names can be changed to your liking in the source code.

Buttons Demo

2 Dynamic Gauges for motor power visualization

The GUI consists of two gauges with value animation and a unique look for reverse driving The gauges subscribe directly to ‘/robot/motor_left’ and ‘/robot/motor_right’ topics so you will be able to monitor the motion with external motor controllers.

Gauge Demo

Main panel with 3 different view modes

The Main Panel for data visualization and speed control

The main panel contains all the data necessary to know what is going on with the robot in real time, all the data comes straight from the ROS topics and updates automatically with any new subscribed data, meaning you can change the frequency of updates depending on how you optimize your ROS project. additionally, the panel comes with a slider to change the published speed, from 0 to 400 this project is open source, so you can tweak the gui however you want!

Main Display Demo

Compass Panel as an additionaly heading visualization tool

The Compass Panel allows you to see your heading and it comes with a dynamic compass which rotates to your heading, 360 degrees!

Compass Display Demo

Map Panel with a satellite imagery and robot location

The Map Panel allows you to see your robot in real time with satellite imagery depending on the GPS position published to the “/robot/gps” topic. The robot will additionally rotate depending on your heading so you know where your robot is relative to the maps north. Furthermore, the Map Panel allows the user to generate a coordinate array simply by clicking at the desired points on the map, after finishing with your path you simply click on “Start Route” and it will instantly publish a Pythonic list of coordinates as a String! If you are lost, you can always reset the map to your robot using “Reset Pos” button.

Map Dispaly Demo

Requirements

To successfuly compile the project you need to set a few things.

  • Ubuntu specified in the branch name
  • ROS installed in default directory of the version specified in the branch name
  • Qt 5.15 (Latest 5.15 is favored)

Qt 6 has not be tested, but due to many updates it may be possible to convert this project to Qt6

Installation/Compilation

For successful compilation, it is recommended to do few actions before building the project. Please Note: ROS1 uses qmake while ROS2 uses cmake

  1. Open the project using File -> Open Project -> {navigate to the CMakeLists.txt file}
  2. (Optional) Clean project using Build -> Clean All Projects for All Configurations
  3. run qmake using Build -> Run cmake
  4. Finally, build the projects.

Notes:

  • The development works well with QtCreator no outside terminal for builds is necessary
  • Creating a package.xml and using “colcon build” is NOT necessary, GUI will work with the global bashrc sourced “setup.bash”.
  • Incase you insist of building with a package, I kept a “package.xml” file ready for use. Do not forget to uncomment the last line of CMakeLists.txt

Side Note: running QtCreator from a ROS sourced terminal will ease with environment variables

If everything is done correctly the project should build right away without errors. Please note that the GUI is using cmake for compilation and it’s using the ROS and Qt dynamic libraries for compilation, so you cannot just ship the build file without the libraries. You can ease with the shipment by statically linking the Qt Libraries if you wish to.

Licensing

  1. The GUI was developed using the QT open source framework, please follow up their licensing here
  2. The GUI was developed using the ROS open source framework, please follow up their licensing here

All the images and art were designed and made by me for free, unlimited use

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ros2_robot_gui at Robotics Stack Exchange

No version for distro noetic. Known supported distros are highlighted in the buttons above.
No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.
No version for distro galactic. Known supported distros are highlighted in the buttons above.
No version for distro foxy. Known supported distros are highlighted in the buttons above.
No version for distro iron. Known supported distros are highlighted in the buttons above.
No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.
No version for distro kinetic. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.