Skip to main content

quantum-robot

Package Check CodeQL Code coverage Documentation Status Snyk Advisor Maintainability License DOI

quantum-robot provides quantum-like perception models for robotics. It targets Python 3.14 and exposes a small backend interface; Qiskit is the bundled backend implementation.

The project was started in 2019 by Davide Lanza as Master's thesis research, with help from Fulvio Mastrogiovanni and Paolo Solinas. It is maintained by Davide Lanza.

The project is one Poetry distribution with a dependency-light qrobot core and optional extension import packages:

Capability Install extra Import package Status Coverage
Core models and Qiskit backend qrobot Supported qrobot coverage
qUnits / Redis integration qunits qrobot_qunits Supported qrobot_qunits coverage
Graph and drawing tools visualization qrobot_visualization Supported qrobot_visualization coverage
Lightweight 2-D robot simulator simulator qrobot_simulator Experimental qrobot_simulator coverage
Dashboard dashboard qrobot_dashboard Experimental qrobot_dashboard coverage

[!WARNING] qrobot_simulator and qrobot_dashboard are experimental extensions. Their public interfaces, configuration, and output may change between minor releases while their contracts are being defined.

Install

Install the published core package:

python -m pip install --upgrade quantum-robot

Install optional capabilities only when needed:

python -m pip install --upgrade "quantum-robot[model-visualization,qunits,visualization,simulator,dashboard]"

Python 3.14 is required. For an isolated installation, create and activate a virtual environment before running pip:

python3.14 -m venv .venv
source .venv/bin/activate  # Windows PowerShell: .venv\Scripts\Activate.ps1
python -m pip install --upgrade pip

See the getting-started guide for individual extras, Redis setup, and installation checks.

Development

Use Poetry with Python 3.14. The following installs every development capability into Poetry’s project environment:

git clone https://github.com/Davidelanz/quantum-robot.git
cd quantum-robot
poetry env use 3.14
poetry install --all-extras

Run the standard quality checks through that environment:

poetry check
poetry run ruff check src tests scripts
poetry run python scripts/check_docstrings.py src
poetry run black --check src tests scripts
poetry run python scripts/format_notebooks.py --check
poetry run mypy src
poetry run pytest --cov=qrobot --cov-fail-under=100
poetry build

Apply the formatter when needed:

poetry run black src tests scripts
poetry run python scripts/format_notebooks.py

The notebook formatter converts each numbered MyST notebook through Jupytext, runs Ruff over its Python cells, and writes it back without creating committed .ipynb files.

The qUnits integration tests and the executable qUnits tutorial require Redis on localhost:6379. Start a disposable local instance when running them:

docker run --rm --name qrobot-redis -p 6379:6379 -d redis:7-alpine
poetry run pytest

Stop it with docker stop qrobot-redis.

Run either of the two embodied examples with Redis listening locally:

poetry run python examples/grasping_robot.py
poetry run python examples/bug_world.py

grasping_robot presents an approaching ball, distance and touch interfaces, and a qBrain-controlled gripper. bug_world opens a predator/prey chessboard where the qBrain drives five behavioral actuator interfaces. Both are small live 2-D simulations; the foundational model demonstrations remain executable inside the notebooks.

Documentation

The documentation source is MyST Markdown, including tutorials. Building it runs those tutorials, renders MathJax formulas, and writes the resulting site to docs/_build/html:

docker run --rm --name qrobot-redis -p 6379:6379 -d redis:7-alpine
poetry run python scripts/build_docs.py

Open docs/_build/html/index.html directly in a browser.

Project layout

src/
  qrobot/                 # core package and backend interface
  qrobot_qunits/          # optional qUnits Redis-based extension
  qrobot_visualization/   # optional graph/drawing extension
  qrobot_simulator/       # grasping_robot and bug_world 2-D simulators
  qrobot_dashboard/       # optional dashboard extension
examples/                 # exactly two embodied example runners
tests/
  core/
  extensions/
docs/                     # MyST API docs and tutorials

Contributing and citation

Contributions are welcome; see the contributing guide. For questions, contact the maintainer.

If you use quantum-robot in research, we would appreciate citations to the following:

@misc{lanza2020quantum,
    author={Lanza, Davide},
    title={Quantum-like Modeling of Cognitive Architectures for Robotics},
    year={2020},
    publisher={Zenodo},
    doi={10.5281/zenodo.22068511},
    url={https://doi.org/10.5281/zenodo.22068511},
    note={Master's thesis for the EMARO+ (European Master on Advanced Robotics) programme.},
}
@misc{lanza2020multisensory,
    title={Multi-sensory Integration in a Quantum-Like Robot Perception Model},
    author={Davide Lanza and Paolo Solinas and Fulvio Mastrogiovanni},
    year={2020},
    eprint={2006.16404},
    archivePrefix={arXiv},
    primaryClass={cs.RO},
    note={preprint at \url{https://arxiv.org/abs/2006.16404}},
}

Release on PyPi

To publish a new release on PyPi:

git tag -a x.y.z -m "quantum-robot x.y.z"
git push origin x.y.z

To remove a failed tag (before a new attempt):

git tag -d x.y.z
git push origin :refs/tags/x.y.z

License

GPL-3.0-or-later

Download files

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

Source Distribution

quantum_robot-1.1.0.tar.gz (73.9 kB view details)

Uploaded Source

Built Distribution

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

quantum_robot-1.1.0-py3-none-any.whl (87.3 kB view details)

Uploaded Python 3

File details

Details for the file quantum_robot-1.1.0.tar.gz.

File metadata

  • Download URL: quantum_robot-1.1.0.tar.gz
  • Upload date:
  • Size: 73.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for quantum_robot-1.1.0.tar.gz
Algorithm Hash digest
SHA256 0e6e09ff6711e1f93e63e4e2234eb9ef9c654dab653693f9cd71a2ac0fe0682b
MD5 abfd4efaae609eb9ce9c1eba38b6dc9a
BLAKE2b-256 9e7a2e47034163e24742dc6dd2cb01f65fdb62a6566773c43348be567c19ba3c

See more details on using hashes here.

Provenance

The following attestation bundles were made for quantum_robot-1.1.0.tar.gz:

Publisher: release.yml on Davidelanz/quantum-robot

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file quantum_robot-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: quantum_robot-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 87.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for quantum_robot-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3a870c3836e483646e6d94cae4d0a23cbff0b46e38bfa80c4ef5237c556434e8
MD5 53b24b3e11af55f9918e02f16604347c
BLAKE2b-256 2104d91cdb52f25d3608a288b1e715c85bf6c0f3d4217826a82fbeca15ccf825

See more details on using hashes here.

Provenance

The following attestation bundles were made for quantum_robot-1.1.0-py3-none-any.whl:

Publisher: release.yml on Davidelanz/quantum-robot

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

1.3.0

2 files

1.2.0

2 files

This release

1.1.0 This release

2 files

1.0.0

2 files

0.1

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page