NEEMPyCRAMInterface
A python library for using the SQL NEEMs database (with the help of NEEMQuery) in combination with PyCRAM to be able to replay the NEEM motions or redo the executed plan in the NEEM using the PyCRAM framework.
Installation
MariaDB Installation
Make sure you have MariaDB installed on your device.
PyCRAM Installation
If you already have PyCRAM:
Step 1: Add the other fork as a new remote
git remote add multiverse https://github.com/AbdelrhmanBassiouny/pycram.git
Step 2: Fetch the branches from the other fork
git fetch multiverse
Step 3: Check out the branch from the other fork
git checkout -b multiverse_interface multiverse/multiverse_interface
If you do not have PyCRAM:
You need to have PyCRAM installed on your device,
- clone the PyCRAM repository,
- follow the PyCRAM installation instructions
- checkout the 'multiverse_interface' branch.
git checkout multiverse_interface
Install NEEMPyCRAMInterface
pip install neem_pycram_interface
Example Usage
All below examples assume the neems are located in a 'test' database at 'localhost' which can be accessed by 'newuser' using password 'password'.
Replaying the motions of multiple NEEMs:
This is done by using the PyCRAMNEEMInterface class which provides a higher level of abstraction, and uses PyCRAM to replay the motions retrieved from the SQL queries. This shows the replay of three NEEMs in real time.
from neem_pycram_interface.neem_pycram_interface import PyCRAMNEEMInterface
from pycram.datastructures.enums import WorldMode
from pycram.worlds.bullet_world import BulletWorld
from pycram.ros.viz_marker_publisher import VizMarkerPublisher
pni = PyCRAMNEEMInterface('mysql+pymysql://newuser:password@localhost/test')
world = BulletWorld(mode=WorldMode.DIRECT)
vis_mark_publisher = VizMarkerPublisher()
neem_ids = [14, 15, 16]
pni.replay_motion_of_neem(neem_ids, real_time=False)
vis_mark_publisher._stop_publishing()
world.exit()
Redoing a task in a NEEM:
Similar to replaying the motions, but now we try to redo a single task using PyCRAM actions.
from neem_pycram_interface.neem_pycram_interface import PyCRAMNEEMInterface
from pycram.datastructures.enums import WorldMode
from pycram.worlds.bullet_world import BulletWorld
from pycram.ros.viz_marker_publisher import VizMarkerPublisher
pni = PyCRAMNEEMInterface('mysql+pymysql://newuser:password@localhost/test')
world = BulletWorld(mode=WorldMode.DIRECT)
vis_mark_publisher = VizMarkerPublisher()
pni.redo_grasping_action(14)
vis_mark_publisher._stop_publishing()
world.exit()
Metadata
Release files for neem-pycram-interface 1.0.176
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| neem_pycram_interface-1.0.176.tar.gz | 54.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| neem_pycram_interface-1.0.176-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 94.6 kB
Release files / neem_pycram_interface-1.0.176.tar.gz
| Download URL | neem_pycram_interface-1.0.176.tar.gz |
|---|---|
| Size | 54.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
534a13fcd6f907ba6c1eb6e7e818f659daf48cd2b00194968d0ddc3184e42d77
|
|
BLAKE2b-256 checksum How to use checksums |
bcdd13ec59113918f5b9b683f9b993432ca20bcaa77661ada1968ca46e458619
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 15, 2025.
Transparency logRelease files / neem_pycram_interface-1.0.176-py3-none-any.whl
| Download URL | neem_pycram_interface-1.0.176-py3-none-any.whl |
|---|---|
| Size | 40.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fe9d06c6dccacbe1f99d2953004e94b183df277ee39e95bc15ac309c98b0fd29
|
|
BLAKE2b-256 checksum How to use checksums |
80aeca6135d5ba4d1c20237379e4e8fa54219bed3e368c0b7f4fcf3215d7819f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 15, 2025.
Transparency log