Skip to main content

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?

  1. Because PythonRobotics (which is great btw) has a purely educational purpose.
  2. 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: Track class 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

Development

see DEVELOPMENT.md

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rox_control-0.3.0.tar.gz (1.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rox_control-0.3.0-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

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

Hashes for rox_control-0.3.0.tar.gz
Algorithm Hash digest
SHA256 92a0e60730f0c61eb1f0fb0261da9861bb2e73479510a4d00944b751c7f73592
MD5 93d7ffba6bb670dd929459323c7576e8
BLAKE2b-256 d3a941de1b3c27e704950486a5336e7e552fa17a90ab32eafe45189c661e9698

See more details on using hashes here.

File details

Details for the file rox_control-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for rox_control-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 21dd8006b573fbc4a0c6fa19ad51a6dbf292f02cbc61e145173ae8c20879e510
MD5 3a4e5f1aece6b2d3c6cfa71116f4ae77
BLAKE2b-256 ce55f9f7c22f630d91e8762f95d81a3679a4c52173f2e0ba946936016c4f5927

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page