rox-control
Controllers for path tracking.
This repository provides pure python implementations of controllers for path tracking and basic simulation and visualisation tools.
The goal is to provide simple, yet production ready controllers that are easy to understand, integrate and maintain.
Why this repo?
- Because PythonRobotics (which is great btw) has a purely educational purpose.
- Because ROS2 controllers (Nav2 etc.) are C++ centered and require a lot of complexity.
What's in the repo
rox-control provides production-ready path tracking controllers for robotics applications:
- Controllers:
PurePursuitA- Pure pursuit path tracking controller with lookahead-based steering - Track Management:
Trackclass for waypoint/path management and interpolation - Simulation Tools: Bicycle kinematics model, visualization, and plotting utilities (optional
[tools]extra) - Examples: Ready-to-run demonstrations of controller usage
The package focuses on simplicity and production readiness, unlike educational implementations. Core controllers are packaged separately from simulation/visualization tools.
Quick start
Installation
Choose your installation based on your needs:
# Production use: Core controllers only (minimal dependencies)
pip install rox-control
# Development/Research: Include simulation and visualization tools
pip install rox-control[tools]
For local development from source:
git clone <repository-url>
cd rox-control
invoke create-venv # Creates venv and installs all dependencies
Basic usage
from rox_control import Track
from rox_control.controllers import PurePursuitA
# Create a track from waypoints
track = Track([(0, 0), (10, 0), (10, 10), (0, 10)])
# Set up controller
controller = PurePursuitA(
look_ahead_distance=2.0,
target_speed=5.0
)
controller.set_track(track)
# Use in control loop
control_output = controller.control(robot_state)
Examples
Run the included examples to see the controllers in action (requires [tools] installation):
python examples/01_basic_simulation.py # Basic bicycle model simulation
python examples/02_pure_pursuit_a.py # Pure pursuit path tracking
Package Structure
- Core package:
src/rox_control/- Controllers and track management (always available) - Tools package:
src/rox_control/tools/- Simulation and visualization tools (optional[tools]extra) - Examples:
examples/- Ready-to-run demonstrations
References
- PythonRobotics - Python code collection and a textbook of robotics algorithms.
- Robot Kinematics - an introduction to mobile robot kinematics and the nomenclature
- Automatic Steering Methods for Path Tracking
Development
see DEVELOPMENT.md
Metadata
Release files for rox-control 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| rox_control-0.4.0.tar.gz | 1.5 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rox_control-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.6 MB
Release files / rox_control-0.4.0.tar.gz
| Download URL | rox_control-0.4.0.tar.gz |
|---|---|
| Size | 1.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9d3a6cc0269175294702c21997cadb53a904510d3fdaab5b7f23c8f16d5a5b32
|
|
BLAKE2b-256 checksum How to use checksums |
edf145defaabe10aca8b9184b7214c8a319e20915607eb55c8abed868fbe9a30
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.8
|
Release files / rox_control-0.4.0-py3-none-any.whl
| Download URL | rox_control-0.4.0-py3-none-any.whl |
|---|---|
| Size | 18.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bb149102ae9f343aba538215dbbd6c0bdeb2e205eba53430f0f1053fb62972e9
|
|
BLAKE2b-256 checksum How to use checksums |
e94856e6d653a2cac32d02f60a096d842d25c4e21f49d018c2015c042132a347
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.8
|