Skip to main content

RING: Recurrent Inertial Graph-based Estimator

Project description

Recurrent Inertial Graph-based Estimator (RING)

ℹ️ Tip:

Check out my new plug-and-play interface for inertial motion tracking (RING included) here.

Installation

Supports Python=3.10/3.11/3.12 (tested).

Install with pip using

pip install imt-ring

Typically, this will install jax as cpu-only version. Afterwards, gpu-enabled version can be installed with

pip install --upgrade "jax[cuda12_pip]" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html

Documentation

Available here.

Quickstart Example

import ring
import numpy as np

T  : int       = 30        # sequence length     [s]
Ts : float     = 0.01      # sampling interval   [s]
B  : int       = 1         # batch size
lam: list[int] = [0, 1, 2] # parent array
N  : int       = len(lam)  # number of bodies
T_i: int       = int(T/Ts) # number of timesteps

X              = np.zeros((B, T_i, N, 9))
# where X is structured as follows:
# X[..., :3]   = acc
# X[..., 3:6]  = gyr
# X[..., 6:9]  = jointaxis

# let's assume we have an IMU on each outer segment of the
# three-segment kinematic chain
X[..., 0, :3]  = acc_segment1
X[..., 2, :3]  = acc_segment3
X[..., 0, 3:6] = gyr_segment1
X[..., 2, 3:6] = gyr_segment3

ringnet = ring.RING(lam, Ts)
yhat, _ = ringnet.apply(X)
# yhat: unit quaternions, shape = (B, T_i, N, 4)

Known fixes

Offscreen rendering with Mujoco

mujoco.FatalError: an OpenGL platform library has not been loaded into this process, this most likely means that a valid OpenGL context has not been created before mjr_makeContext was called

Solution:

import os
os.environ["MUJOCO_GL"] = "egl"

Windows-related: ImportError: DLL load failed while importing ...

ImportError: DLL load failed while importing _multiarray_umath: Das angegebene Modul wurde nicht gefunden.

Solution:

  1. pip uninstall -y jax jaxlib
  2. conda install -c conda-forge jax

Publications

The following publications utilize this software library, and refer to it as the Random Chain Motion Generator (RCMG) (more specifically the function ring.RCMG):

Other useful ressources

Particularly useful is the following publication from Roy Featherstone

Contact

Simon Bachhuber (simon.bachhuber@fau.de)

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

imt_ring-1.6.36.tar.gz (17.5 MB view details)

Uploaded Source

Built Distribution

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

imt_ring-1.6.36-py3-none-any.whl (17.5 MB view details)

Uploaded Python 3

File details

Details for the file imt_ring-1.6.36.tar.gz.

File metadata

  • Download URL: imt_ring-1.6.36.tar.gz
  • Upload date:
  • Size: 17.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for imt_ring-1.6.36.tar.gz
Algorithm Hash digest
SHA256 64b94b0d30027d919b2dcb35cb63d9bec2eee2cbec09cf511389987937fd0185
MD5 b14e046cfedb56b53e2f42f28d46d101
BLAKE2b-256 234653feea47cd9679aa26d0f6bfe6cf61a9ae8dd148b2c974be0ede93b56bad

See more details on using hashes here.

Provenance

The following attestation bundles were made for imt_ring-1.6.36.tar.gz:

Publisher: publish-to-pypi.yml on simon-bachhuber/ring

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

File details

Details for the file imt_ring-1.6.36-py3-none-any.whl.

File metadata

  • Download URL: imt_ring-1.6.36-py3-none-any.whl
  • Upload date:
  • Size: 17.5 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for imt_ring-1.6.36-py3-none-any.whl
Algorithm Hash digest
SHA256 2a05daab69c62fd10639a17f318e249e1e1b6d584ab78f3eeb24550b2bebd741
MD5 b40e1fcbb7ec39325505a666d2562d0e
BLAKE2b-256 f05a4aaf6dd106258b9650a4fdd8de0ef40bc853ac4b7e99b3f8c3c5bfa0d26d

See more details on using hashes here.

Provenance

The following attestation bundles were made for imt_ring-1.6.36-py3-none-any.whl:

Publisher: publish-to-pypi.yml on simon-bachhuber/ring

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

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