GUI for RC car telemetry and controls with high-performance C++ extensions.
- PyQt6-based graphical interface for RC car control
- High-performance C++ extensions via Pybind11 for robotics calculations
- OpenGL-backed 3D visualization widget with Python bindings
- CMake-based build system with MSVC support
- Standalone C++ testing capabilities
- Python 3.8 or higher
- PyQt6
- opencv-python
- pydualsense
- zeroconf
- CMake 3.15 or higher
- Microsoft Visual Studio (with C++ Desktop Development workload) on Windows
- GCC or Clang on Linux/macOS
- OpenGL development libraries (e.g.,
libgl1-mesa-devandlibglu1-mesa-devon Linux)
git clone https://github.com/cduarte0306/RC_CAR_GUI.git
cd RC_CAR_GUI
git submodule update --init --recursivepip install -r requirements.txtpython setup_cpp.py buildThis will:
- Configure CMake with the appropriate compiler
- Build the C++ extension module as a Python-importable DLL
- Place the compiled module in the
python_modules/directory
python setup_cpp.py build- Build the C++ module (Release mode)python setup_cpp.py build --debug- Build in debug modepython setup_cpp.py rebuild- Clean and rebuildpython setup_cpp.py clean- Remove all build artifactspython setup_cpp.py test- Build and run standalone C++ tests
From the project root:
cd src
python run.pyRC_CAR_GUI/
├── cpp/ # C++ source code
│ ├── include/ # Header files
│ │ └── math_operations.h
│ ├── src/ # Implementation files
│ │ ├── math_operations.cpp
│ │ └── bindings.cpp # Pybind11 bindings
│ └── tests/ # Standalone C++ tests
│ └── test_math_operations.cpp
├── external/
│ └── pybind11/ # Pybind11 submodule
├── python_modules/ # Compiled Python modules (generated)
├── src/ # Python application source
├── CMakeLists.txt # CMake configuration
└── setup_cpp.py # Build automation script
The project includes VSCode tasks for easy C++ development:
- Build C++ Module (Ctrl+Shift+B) - Build in release mode
- Build C++ Module (Debug) - Build in debug mode
- Rebuild C++ Module - Clean and rebuild
- Clean C++ Build - Remove build artifacts
- Test C++ Module - Run standalone C++ tests
Access tasks via: Terminal > Run Task... or press Ctrl+Shift+P and type "Tasks: Run Task"
import sys
sys.path.insert(0, 'python_modules')
import rc_car_cpp
# Use high-performance C++ functions
magnitude = rc_car_cpp.MathOperations.vector_magnitude(3.0, 4.0, 0.0)
angle = rc_car_cpp.MathOperations.angle_between_vectors(1, 0, 0, 0, 1, 0)
x, y, z = rc_car_cpp.MathOperations.normalize_vector(3.0, 4.0, 0.0)The C++ code can be built and tested independently:
python setup_cpp.py testOr run the executable directly after building:
# Windows
build\Release\test_cpp.exe
# Linux/macOS
build/test_cpp- Make changes to C++ code in
cpp/directory - Rebuild the module:
python setup_cpp.py rebuildor use VSCode task (Ctrl+Shift+B) - Test standalone:
python setup_cpp.py test - Use in Python application
Install CMake from https://cmake.org/download/ and add it to your PATH.
Install Visual Studio with "Desktop development with C++" workload from https://visualstudio.microsoft.com/
Ensure the module was built successfully and the python_modules/ directory contains the compiled module (.pyd on Windows, .so on Linux).
[Add your license information here]