|
Some checks failed
ROS2:Foxy(20.04) / build (map[image:ubuntu:focal ros:foxy]) (push) Has been cancelled
ROS2:galactic(20.04) / build (map[image:ubuntu:focal ros:galactic]) (push) Has been cancelled
ROS2:Humble(22.04) / build (map[image:ubuntu:jammy ros:humble]) (push) Has been cancelled
ROS1:Melodic(18.04) / build (push) Has been cancelled
ROS1:Noetic(20.04) / build (map[image:ubuntu:focal ros:noetic]) (push) Has been cancelled
|
||
|---|---|---|
| .github | ||
| cmake | ||
| doc | ||
| src | ||
| .clang-format | ||
| .gitignore | ||
| build.sh | ||
| CMakeLists.txt | ||
| format.sh | ||
| LICENSE | ||
| README_en.md | ||
| README.md | ||
ROS Qt5 GUI App
A lightweight ROS1/ROS2 mobile robot human-machine interaction software
📖 Introduction
This project is developed based on Qt5 and built with CMake, enabling the use of a single codebase in both ROS1/ROS2 systems. During compilation, the software automatically detects the ROS1/ROS2 environment variables and builds accordingly, achieving isolation between ROS communication and interface.
All features are self-implemented through custom drawing, making it easy to run on low-performance edge devices. The project has integrated CI to ensure compatibility across multiple ROS versions and system versions.
✨ Features
| Feature | Status | Notes |
|---|---|---|
| ROS1/ROS2 Communication | ✅ | |
| Global/Local Map Display | ✅ | |
| Real-time Robot Position Display | ✅ | |
| Robot Speed Dashboard | ✅ | |
| Manual Robot Control | ✅ | |
| Robot Relocation | ✅ | |
| Single/Multi-point Navigation | ✅ | |
| Global/Local Path Display | ✅ | |
| Robot Topological Map | ✅ | |
| Battery Level Display | ✅ | |
| Map Editing | ✅ | |
| Navigation Task Chain | ✅ | Has bugs |
| Map Load/Save | ✅ | |
| Camera Image Display | ✅ | Ported from rqt_image_view |
| Robot Footprint Display | ✅ | Supports custom shapes |
| Rosbridge Communication | 🏷️ | In development |
| 3D Layer Display | 🏷️ | In development |
| Topological Path Planning | 🏷️ | In development |
| Robot History Trail Recording | 🏷️ | In development |
🖼️ Interface Preview
🚀 Quick Start
Requirements
- Ubuntu 18.04+
- ROS1/ROS2 environment
- Qt5 basic environment
Install Dependencies
sudo apt-get update
sudo apt-get install qtbase5-private-dev libqt5svg5-dev libsdl-image1.2-dev libsdl1.2-dev -y
Build
mkdir -p ~/qt_ws
cd ~/qt_ws
git clone https://github.com/chengyangkj/Ros_Qt5_Gui_App
cd Ros_Qt5_Gui_App
mkdir build && cd build
cmake ..
make
Run
./ros_qt5_gui_app
📚 Documentation
🤝 Contributing
Issues and Pull Requests are welcome.
If you have any ideas or suggestions, feel free to submit them to 🌟 Wishlist/Requirements. They might be implemented someday!
📊 Star History
📱 Related Projects
A cross-platform mobile robot HMI software based on Flutter for ROS1/ROS2 is now open source:
For details, visit ROS_Flutter_Gui_App
🔗 Related Links
| Branch | Supported Platforms | Description |
|---|---|---|
| master | Win10 Ubuntu | ROS + QWidget + QGraphicsview custom visualization interface display |
| qml_hmi | Win10 Ubuntu | ROS + QML + C++ hybrid programming, QML self-drawn map, lidar and other visualization demos |
| simple | Win10 Ubuntu | ROS + QWidget + Librviz visualization display, CSDN blog "ROS Human-Machine Interaction Software Development" course implementation version |
| rviz_tree | Win10 Ubuntu | ROS + QWidget + Librviz native layer API management, no need to manually create layers |
| ros_qt_demo | Win10 Ubuntu | Original package created using cakin_create_qt_pkg, cmakelist.txt configured for qt5, can be directly compiled and run |
| ros2_qt_demo | ROS2 | Qt demo package running on ROS2 platform, cmakelist.txt configured for qt5, can be built using colcon build |
| ROS2_Qt5_Gui_App | ROS2 | Same as this repository/no longer maintained |
| Flutter App | Multi-platform (Flutter) | Implemented |
💬 Discussion Group
QQ Group: 797497206
📄 License
This project is licensed under the MIT License.



