Skip to main content

Positronic robotics project

Project description

Positronic

Main repository for the Positronic project.

Installation

There are two supported ways to install and run Positronic:

  1. Docker (recommended for reproducibility)
  2. Native install using uv (fast and lockfile-driven)

Option 1: Docker

git clone git@github.com:Positronic-Robotics/positronic.git
cd positronic

# Build the image (includes libfranka build and Python deps from uv.lock)
./docker/build.sh

# Run commands inside the container (mounts repo, sets PYTHONPATH)
./docker/run.sh pytest          # run tests
./docker/run.sh python -m pimm  # example: run a module

For real-time flags (rtprio/memlock), use ./docker/run-rt.sh instead of run.sh. For container details, see docker/Dockerfile.

Option 2: Local via uv

Prerequisites: install uv (https://docs.astral.sh/uv/). Python 3.11 is required.

git clone git@github.com:Positronic-Robotics/positronic.git
cd positronic

# Install dev environment from the lockfile (recommended)
uv sync --frozen --extra dev

# Run tests (coverage is enabled via pyproject addopts)
uv run pytest

# If you need hardware extras as well
uv sync --frozen --extra dev --extra hardware

Dependencies

  • All dependencies are declared in pyproject.toml.
  • Versions are locked via uv.lock and installed with uv sync --frozen for reproducibility.

Adding or changing dependencies

Use uv to manage deps and the lockfile:

# Add/remove packages
uv add <package>
uv remove <package>

# Regenerate lock after changes
uv lock

# Install from the updated lock
uv sync --frozen

For optional features, use extras: --extra dev or --extra hardware.

Development Installation

Set up a development environment with tests, linters, and coverage:

uv sync --frozen --extra dev

# Lint
uv run flake8

# Run tests with coverage (terminal)
uv run pytest

# Generate HTML coverage report
uv run pytest --cov-report=html
# Open htmlcov/index.html in your browser

How to convert teleoperated dataset into LeRobot format (ready for training)

python -m positronic.training.to_lerobot output_dir=_lerobot_ds/

By default, this reads data from _dataset directory. Use input_dir=your_dir to control inputs. Please refer to configs/to_lerobot.yaml for more details.

Train the model

DATA_DIR=/tmp/ python lerobot/scripts/train.py dataset_repo_id=lerobot_ds policy=positronic env=positronic hydra.run.dir=outputs/train/positronic hydra.job.name=positronic device=cuda wandb.enable=true resume=false wandb.disable_artifact=true env.state_dim=8

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

positronic-0.1.0rc1.tar.gz (14.8 MB view details)

Uploaded Source

Built Distribution

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

positronic-0.1.0rc1-py3-none-any.whl (15.0 MB view details)

Uploaded Python 3

File details

Details for the file positronic-0.1.0rc1.tar.gz.

File metadata

  • Download URL: positronic-0.1.0rc1.tar.gz
  • Upload date:
  • Size: 14.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for positronic-0.1.0rc1.tar.gz
Algorithm Hash digest
SHA256 eb7fe8d375800639f40441cacf82869c2939edb4cc35fe0494d1e9d1ff5f7acd
MD5 5e28412df31fc0a7503d25115d29905b
BLAKE2b-256 43ecf6a72aab191112c3d8c772d8396fd5fdaf9b2cd415d0a1380cf1167ee02c

See more details on using hashes here.

File details

Details for the file positronic-0.1.0rc1-py3-none-any.whl.

File metadata

  • Download URL: positronic-0.1.0rc1-py3-none-any.whl
  • Upload date:
  • Size: 15.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for positronic-0.1.0rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 7fe433138a98a4613a92e623581deae69df3b232a70c8025d7f919a92501d57a
MD5 3830b1a7d23b3c866422c0234a7367ce
BLAKE2b-256 4a86ba563eb29d3860bd3ddbd48e1754c20df4a0e1a44a5ad6bcf383c9ff8b46

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