Controllers for path following
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rox_control-0.4.0.tar.gz.
File metadata
- Download URL: rox_control-0.4.0.tar.gz
- Upload date:
- Size: 1.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9d3a6cc0269175294702c21997cadb53a904510d3fdaab5b7f23c8f16d5a5b32
|
|
| MD5 |
5c0babdd1efc3b0929a3784d3c71caa0
|
|
| BLAKE2b-256 |
edf145defaabe10aca8b9184b7214c8a319e20915607eb55c8abed868fbe9a30
|
File details
Details for the file rox_control-0.4.0-py3-none-any.whl.
File metadata
- Download URL: rox_control-0.4.0-py3-none-any.whl
- Upload date:
- Size: 18.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bb149102ae9f343aba538215dbbd6c0bdeb2e205eba53430f0f1053fb62972e9
|
|
| MD5 |
ac9e9cb64388701a0477242470609360
|
|
| BLAKE2b-256 |
e94856e6d653a2cac32d02f60a096d842d25c4e21f49d018c2015c042132a347
|