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
Core models and Qiskit backend qrobot Supported
qUnits / Redis integration qunits qrobot_qunits Supported
Graph and drawing tools visualization qrobot_visualization Experimental
Lightweight 2-D robot simulator simulator qrobot_simulator Experimental
Dashboard dashboard qrobot_dashboard Experimental

[!WARNING] qrobot_simulator, qrobot_visualization, 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 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.0.0.tar.gz (65.1 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.0.0-py3-none-any.whl (78.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: quantum_robot-1.0.0.tar.gz
  • Upload date:
  • Size: 65.1 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.0.0.tar.gz
Algorithm Hash digest
SHA256 26550e0bad824c8404cca38e0bc99fd9e95fb0fdfa7f624ca7c155bf1bc0e6a4
MD5 46446176d1fd3d775665328eb0bd41da
BLAKE2b-256 e9df707d2a7cf3078d2766ac9da954ad92de1326523fefa0359a94878c94c7c8

See more details on using hashes here.

Provenance

The following attestation bundles were made for quantum_robot-1.0.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.0.0-py3-none-any.whl.

File metadata

  • Download URL: quantum_robot-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 78.6 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.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a3c690d5c5e337611f1311854ea8226549b29a34af49f7dd3fabf67ec4e688ed
MD5 0828eb79e6f6ddb66141cc53ce05cc6c
BLAKE2b-256 c01ec149f8df37e4c793f396f2e97e0343f222bc057c00ce71ae19c64ded204a

See more details on using hashes here.

Provenance

The following attestation bundles were made for quantum_robot-1.0.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

1.1.0

2 files

This release

1.0.0 This release

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