This repository implements the last mandatory project developped in the Process Control course of the university of Fribourg.
To install the project, first install go, clone the repository, and then run either main.go to run the RemoteControl app, or emergency/main.go to run the Emergency app.
# install go
sudo apt install golang-go # ubuntu
sudo dnf install golang # fedora
winget install GoLang.Go # windows
brew install go # macos
# clone the repository
git clone https://github.com/Uhrbaan/hyperdrive-remote.git
cd hyperdrive-remote
# run the apps
go run main.go # RemoteControl app
go run emergency/main.go # Emergency appPlease note that for the apps to work, both must be running at the same time, and you must me connected to the hyperdrive wifi. Also make sure that the topics provided at the app startup are correct, although they should be if you haven't changed the default setup.
A remote-control application for Anki Overdrive cars, featuring MQTT-based communication, pathfinding, lane changing, and a graphical user interface. This project is designed for research and educational purposes, enabling advanced control and automation of Overdrive vehicles.
- MQTT Remote Control:
- Discover and connect to one or multiple cars via MQTT.
- Control car speed, lane changes, and lights remotely.
- Pathfinding & Lane Change:
- Advanced pathfinding algorithms for automated driving.
- Lane change logic for overtaking and track navigation.
- Graphical User Interface:
- Built with Fyne for cross-platform desktop control.
- Track & Vehicle Modeling:
- YAML and Graphviz-based track definitions for flexible layouts.
- Vehicle and track abstractions for simulation and planning.
- Emergency Controls:
- Emergency stop and safety features.
assets/ # Track definitions (YAML, Graphviz)
emergency/ # Emergency stop and safety logic
hyperdrive/ # Core remote control logic (connect, drive, lights, UI)
pathfind/ # Pathfinding, lane change, and track/vehicle modeling
main.go # Application entry point
go.mod, go.sum # Go module dependencies
- Go 1.24+
- Anki Overdrive cars and track
- MQTT broker (e.g., Mosquitto)
- Clone the repository:
git clone https://github.com/yourusername/hyperdrive-remote.git cd hyperdrive-remote - Install dependencies:
go mod tidy
- Start your MQTT broker (default:
10.42.0.1:1883). - Run the application:
go run main.go
- Use the GUI to discover, connect, and control cars.
- Edit YAML files in
assets/to define your track layout. - Use Graphviz files for visualizing and debugging track graphs.
- Fyne (GUI)
- Eclipse Paho MQTT (MQTT client)
- Google UUID
- Dominik Braun Graph (Graph algorithms)
- Go-YAML