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 (in
src/tools/) - 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
git clone <repository-url>
cd rox-control
invoke create-venv # Creates venv and installs 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:
python examples/01_basic_simulation.py # Basic bicycle model simulation
python examples/02_pure_pursuit_a.py # Pure pursuit path tracking
Repository structure
- main package is contained in
src/rox_control - supporting code (simulator, visualisation etc.) are in
src/tools. These are not included in the package.
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.3.0.tar.gz.
File metadata
- Download URL: rox_control-0.3.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 |
92a0e60730f0c61eb1f0fb0261da9861bb2e73479510a4d00944b751c7f73592
|
|
| MD5 |
93d7ffba6bb670dd929459323c7576e8
|
|
| BLAKE2b-256 |
d3a941de1b3c27e704950486a5336e7e552fa17a90ab32eafe45189c661e9698
|
File details
Details for the file rox_control-0.3.0-py3-none-any.whl.
File metadata
- Download URL: rox_control-0.3.0-py3-none-any.whl
- Upload date:
- Size: 7.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
21dd8006b573fbc4a0c6fa19ad51a6dbf292f02cbc61e145173ae8c20879e510
|
|
| MD5 |
3a4e5f1aece6b2d3c6cfa71116f4ae77
|
|
| BLAKE2b-256 |
ce55f9f7c22f630d91e8762f95d81a3679a4c52173f2e0ba946936016c4f5927
|