Skip to main content

RING: Recurrent Inertial Graph-based Estimator

Project description

Recurrent Inertial Graph-based Estimator (RING)

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"

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.17.tar.gz (17.5 MB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for imt_ring-1.6.17.tar.gz
Algorithm Hash digest
SHA256 ba16332aec34ce7b1a5fc2d8c7113d3b0c36f9844305b06d6af7fce06490f9cb
MD5 9b2e8fd00cc3cd3e2c763d0d513b7d40
BLAKE2b-256 c05447eb9b1dc6fa7c6811461830074bd0caaf7134f9bc4ab50725a471b32123

See more details on using hashes here.

Provenance

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

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

Attestations:

File details

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

File metadata

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

File hashes

Hashes for imt_ring-1.6.17-py3-none-any.whl
Algorithm Hash digest
SHA256 7becee4cbc71afe493f294b4238f84b24f9ea95c9d99a8e98c1fe9e0d9f89c20
MD5 f4fcfe905fb3cc9fadd3823509e79bec
BLAKE2b-256 649675a86b7b233e04b1892f12bd70c6860ee5fac6b94a7ef3402c0b450d2a86

See more details on using hashes here.

Provenance

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

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

Attestations:

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page