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 supports Python 3.11 through 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.11 or newer (up to 3.14) is required. For an isolated installation, create and activate a virtual environment before running pip:

python3.14 -m venv .venv # we suggest python 3.14
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 any supported Python version. 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 # we suggest python 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.2.0.tar.gz (74.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.2.0-py3-none-any.whl (87.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: quantum_robot-1.2.0.tar.gz
  • Upload date:
  • Size: 74.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.2.0.tar.gz
Algorithm Hash digest
SHA256 86a2ab69cd87f10a5bcce94d3d9070cf1f341a1e8ac0d0b23a730740cb8d153f
MD5 8a31af67d4f698519a068dbb0c65cc24
BLAKE2b-256 17c3b1d31cb6f54e22f31f8de0c11413a5c2561220747876c2230e2d61c926c3

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: quantum_robot-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 87.4 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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d29672fe945eef1c787b7569fb36cc8da8b78ca1a304227b36bafe919baa3e6b
MD5 560cb2199f713ddc1e6c6f78c05939f1
BLAKE2b-256 f4452e6ad42f3cbc2e717af1e1dd66a1c8ca35e6051950f81552523839e7908e

See more details on using hashes here.

Provenance

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

This release

1.2.0 This release

2 files

1.1.0

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