imt-ring 1.6.6__py3-none-any.whl → 1.6.8__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: imt-ring
3
- Version: 1.6.6
3
+ Version: 1.6.8
4
4
  Summary: RING: Recurrent Inertial Graph-based Estimator
5
5
  Author-email: Simon Bachhuber <simon.bachhuber@fau.de>
6
6
  Project-URL: Homepage, https://github.com/SimiPixel/ring
@@ -16,16 +16,11 @@ Requires-Dist: jaxopt
16
16
  Requires-Dist: numpy
17
17
  Requires-Dist: flax
18
18
  Requires-Dist: tqdm
19
- Requires-Dist: wget
20
- Requires-Dist: h5py
21
19
  Requires-Dist: imt-tree-utils
22
20
  Requires-Dist: wandb
23
21
  Requires-Dist: optax
24
22
  Requires-Dist: dm-haiku
25
- Requires-Dist: joblib
26
23
  Requires-Dist: pyyaml
27
- Requires-Dist: qmt
28
- Requires-Dist: scipy
29
24
  Provides-Extra: dev
30
25
  Requires-Dist: mkdocs ; extra == 'dev'
31
26
  Requires-Dist: mkdocs-material ; extra == 'dev'
@@ -1,20 +1,20 @@
1
1
  ring/__init__.py,sha256=k7tL-XgggUwWxHCXyv60rQn-OcXHPg82QcIUkKLEd-c,5057
2
2
  ring/algebra.py,sha256=F0GwbP8LQP5qGVkoMUYJmkp9Hn2nKAVIkCVYDEjNjGU,3128
3
3
  ring/base.py,sha256=BGAJE3PSOUnTHte4UesJc1J7MQraIEiVpStkhrgXhaI,33245
4
- ring/maths.py,sha256=zGm5XagiKTaIJp310VcqVEVUuLhv3FPS-TJ-TFzIrwM,12207
4
+ ring/maths.py,sha256=qPHH6TpHCK3TgExI98gNEySoSRKOwteN9McUlyUFipI,12207
5
5
  ring/spatial.py,sha256=nmZ-UhRanhyM34bez8uCS4wMwaKqLkuEbgKGP5XNH60,2351
6
6
  ring/algorithms/__init__.py,sha256=IiK9EN5Xgs3dB075-A-H-Yad0Z7vzvKIJF2g6X_-C_8,1224
7
7
  ring/algorithms/_random.py,sha256=fc26yEQjSjtf0NluZ41CyeGIRci0ldrRlThueHR9H7U,14007
8
8
  ring/algorithms/dynamics.py,sha256=GOedL1STj6oXcXgMA7dB4PabvCQxPBbirJQhXBRuKqE,10929
9
9
  ring/algorithms/jcalc.py,sha256=bM8VARgqEiVPy7632geKYGk4MZddZfI8XHdW5kXF3HI,28594
10
10
  ring/algorithms/kinematics.py,sha256=DOboHI517Vx0pRJUFZtZPmK_qFaiKiQe-37B-M0aC-c,7422
11
- ring/algorithms/sensors.py,sha256=06x7RfhoQ6dx1B_TAEuCKxNTiicQDDBxcmzRtsCAxsM,18125
11
+ ring/algorithms/sensors.py,sha256=0zLjd9TzOkU5W5GJU6Dk4QwYjwqs9AUlzUKU8aSX_dc,18126
12
12
  ring/algorithms/custom_joints/__init__.py,sha256=fzeE7TdUhmGgbbFAyis1tKcyQ4Fo8LigDwD3hUVnH_w,316
13
13
  ring/algorithms/custom_joints/rr_imp_joint.py,sha256=_YJK0p8_0MHFtr1NuGnNZoxTbwaMQyUjYv7EtsPiU3A,2402
14
14
  ring/algorithms/custom_joints/rr_joint.py,sha256=jnRtjtOCALMaq2_0bcu2d7qgfQ6etXpoh43MioRaDmY,1000
15
15
  ring/algorithms/custom_joints/suntay.py,sha256=tOEGM304XciHO4pmvxr4faA4xXVO4N2HlPdFmXKbcrw,16726
16
16
  ring/algorithms/generator/__init__.py,sha256=bF-CW3x2x-o6KWESKy-DuxzZPh3UNSjJb_MaAcSHGsQ,277
17
- ring/algorithms/generator/base.py,sha256=00789VeBrYcKx5BjsiGu-d4UzO6FGRz-YUKiiLUOL2Q,14497
17
+ ring/algorithms/generator/base.py,sha256=YKUr9UnjFbWAYjP8V1j0FaKGVpK92W6E1iuoet7qBNg,14522
18
18
  ring/algorithms/generator/batch.py,sha256=ylootnXmj-JyuB_f5OCknHst9wFKO3gkjQbMrFNXY2g,2513
19
19
  ring/algorithms/generator/finalize_fns.py,sha256=LUw1Wc2YrmMRRh4RF704ob3bZOXktAZAbbLoBm_p1yw,9131
20
20
  ring/algorithms/generator/motion_artifacts.py,sha256=2VJbldVDbI3PSyboshIbtYvSAKzBBwGV7cQfYjqvluM,9167
@@ -51,7 +51,7 @@ ring/io/xml/test_from_xml.py,sha256=bckVrVVmEhCwujd_OF9FGYnX3zU3BgztpqGxxmd0htM,
51
51
  ring/io/xml/test_to_xml.py,sha256=NGn4VSiFdwhYN5YTBduWMiY9B5dwtxZhCQAR_PXeqKU,946
52
52
  ring/io/xml/to_xml.py,sha256=fohb-jWMf2cxVdT5dmknsGyrNMseICSbKEz_urbaWbQ,3407
53
53
  ring/ml/__init__.py,sha256=8SZTCs9rJ1kzR0Psh7lUzFhIMhKRPIK41mVfxJAGyMo,1471
54
- ring/ml/base.py,sha256=-3JQ27zMFESNn5zeNer14GJU2yQgiqDcJUaULOeSyp8,9799
54
+ ring/ml/base.py,sha256=lfwEZLBDglOSRWChUHoH1kezefhttPV9TMEpNIqsMNw,9972
55
55
  ring/ml/callbacks.py,sha256=W19QF6_uvaNCjs8ObsjNXD7mv9gFgJBixdRSbB_BynE,13301
56
56
  ring/ml/ml_utils.py,sha256=GooyH5uxA6cJM7ZcWDUfSkSKq6dg7kCIbhkbjJs_rLw,6674
57
57
  ring/ml/optimizer.py,sha256=fWyF__ezUltrA16SLfOC1jvS3zBh9NJsMYa6-V0frhs,4709
@@ -72,18 +72,18 @@ ring/sys_composer/__init__.py,sha256=5J_JJJIHfTPcpxh0v4FqiOs81V1REPUd7pgiw2nAN5E
72
72
  ring/sys_composer/delete_sys.py,sha256=cIM9KbyLfg7B9121g7yjzuFbjeNu9cil1dPavAYEgzk,3408
73
73
  ring/sys_composer/inject_sys.py,sha256=Mj-q-mUjXKwkg-ol6IQAjf9IJfk7pGhez0_WoTKTgm0,3503
74
74
  ring/sys_composer/morph_sys.py,sha256=2GpPtS5hT0eZMptdGpt30Hc97OykJNE67lEVRf7sHrc,12700
75
- ring/utils/__init__.py,sha256=M9bR1-SYtmF9c4mTRIrGuIQws3K2aKUQxbpltIDkgZQ,739
75
+ ring/utils/__init__.py,sha256=MHHavc8YfjBlmB-zAV42QEQS_ebW7cy0lhWXEVyQU7s,720
76
76
  ring/utils/backend.py,sha256=cKSi9sB59texqKzNVASTDczGKLCBL8VVDiP7TNdj41k,1294
77
77
  ring/utils/batchsize.py,sha256=FbOii7MDP4oPZd9GJOKehFatfnb6WZ0b9z349iZYs1A,1786
78
78
  ring/utils/colab.py,sha256=ZLHwP0jNQUsmZJU4l68a5djULPi6T-jYNNHevjIoMn8,1631
79
79
  ring/utils/hdf5.py,sha256=BzXwVypZmEZeHVgeGZ78YYdi10NEQtnPhdrb8dQAXo0,5856
80
80
  ring/utils/normalizer.py,sha256=67L2BU1MRsMT4pD41ta3JJMppLN0ozFmnwrmXDtnqrQ,1698
81
- ring/utils/path.py,sha256=hAfSlqRi-ew536RnjDDM7IKapdMJc-EvhrR0Y-BCFWc,1265
81
+ ring/utils/path.py,sha256=zRPfxYNesvgefkddd26oar6f9433LkMGkhp9dF3rPUs,1926
82
82
  ring/utils/randomize_sys.py,sha256=G_vBIo0OwQkXL2u0djwbaoaeb02C4LQCTNNloOYIU2M,3699
83
83
  ring/utils/utils.py,sha256=oGC7kh19s5zvmnUvWy8B3fBl9loVU58ppz91osk2m3w,6550
84
84
  ring/utils/register_gym_envs/__init__.py,sha256=PtPIRBQJ16339xZ9G9VpvqrvcGbQ_Pk_SUz4tQPa9nQ,94
85
85
  ring/utils/register_gym_envs/saddle.py,sha256=tA5CyW_akSXyDm0xJ83CtOrUMVElH0f9vZtEDDJQalI,4422
86
- imt_ring-1.6.6.dist-info/METADATA,sha256=izx_ZcizbG0DLoo7R2zzAbt-o-Zheh1hxPd7xTnxznY,3922
87
- imt_ring-1.6.6.dist-info/WHEEL,sha256=Wyh-_nZ0DJYolHNn1_hMa4lM7uDedD_RGVwbmTjyItk,91
88
- imt_ring-1.6.6.dist-info/top_level.txt,sha256=EiT790-lAyi8iwTzJArH3f2k77rwhDn00q-4PlmvDQo,5
89
- imt_ring-1.6.6.dist-info/RECORD,,
86
+ imt_ring-1.6.8.dist-info/METADATA,sha256=FxO8BZbMRGagmYW1cQCHPuUIuiXxsIr8F-zlBkBVHNQ,3820
87
+ imt_ring-1.6.8.dist-info/WHEEL,sha256=HiCZjzuy6Dw0hdX5R3LCFPDmFS4BWl8H-8W39XfmgX4,91
88
+ imt_ring-1.6.8.dist-info/top_level.txt,sha256=EiT790-lAyi8iwTzJArH3f2k77rwhDn00q-4PlmvDQo,5
89
+ imt_ring-1.6.8.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (71.1.0)
2
+ Generator: setuptools (72.2.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -322,7 +322,7 @@ def _build_mconfig_batched_generator(
322
322
  if add_y_relpose:
323
323
  pipe.append(finalize_fns.RelPose(sys_noimu))
324
324
  if add_y_rootincl:
325
- pipe.append(finalize_fns.RootIncl(sys_noimu))
325
+ pipe.append(finalize_fns.RootIncl(sys_noimu, **add_y_rootincl_kwargs))
326
326
  if use_link_number_in_Xy:
327
327
  pipe.append(finalize_fns.Names2Indices(sys_noimu))
328
328
 
@@ -130,8 +130,8 @@ def magnetometer(rot: jax.Array, magvec: jax.Array) -> jax.Array:
130
130
  # - acc: m/s/s
131
131
  # - gyr: rad/s
132
132
  # - mag: a.u.
133
- NOISE_LEVELS = {"acc": 0.03, "gyr": jnp.deg2rad(0.5), "mag": 0.01}
134
- BIAS_LEVELS = {"acc": 0.1, "gyr": jnp.deg2rad(0.5), "mag": 0.0}
133
+ NOISE_LEVELS = {"acc": 0.048, "gyr": jnp.deg2rad(0.7), "mag": 0.01}
134
+ BIAS_LEVELS = {"acc": 0.5, "gyr": jnp.deg2rad(3.6), "mag": 0.0}
135
135
 
136
136
 
137
137
  def add_noise_bias(
ring/maths.py CHANGED
@@ -312,7 +312,7 @@ def quat_project(q: jax.Array, k: jax.Array) -> tuple[jax.Array, jax.Array]:
312
312
  k (jax.Array): Primary axis direction.
313
313
 
314
314
  Returns:
315
- tuple[jax.Array, jax.Array]: Primary quaternion, residual quaternion
315
+ tuple(jax.Array, jax.Array): Primary quaternion, residual quaternion
316
316
  """
317
317
  phi_pri = 2 * jnp.arctan2(q[1:] @ k, q[0])
318
318
  # NOTE: CONVENTION
ring/ml/base.py CHANGED
@@ -77,6 +77,10 @@ class AbstractFilter(ABC):
77
77
  def search_attr(self, attr: str):
78
78
  return getattr(self, attr)
79
79
 
80
+ @property
81
+ def unwrapped_deep(self):
82
+ return self
83
+
80
84
 
81
85
  class AbstractFilterUnbatched(AbstractFilter):
82
86
  @abstractmethod
@@ -136,6 +140,10 @@ class AbstractFilterWrapper(AbstractFilter):
136
140
  def name(self):
137
141
  return self.unwrapped.name + " ->\n" + super().name
138
142
 
143
+ @property
144
+ def unwrapped_deep(self) -> AbstractFilter:
145
+ return self.unwrapped.unwrapped_deep
146
+
139
147
 
140
148
  class LPF_FilterWrapper(AbstractFilterWrapper):
141
149
  def __init__(
ring/utils/__init__.py CHANGED
@@ -1,4 +1,3 @@
1
- from . import hdf5
2
1
  from . import randomize_sys
3
2
  from .batchsize import batchsize_thresholds
4
3
  from .batchsize import distribute_batchsize
ring/utils/path.py CHANGED
@@ -12,6 +12,24 @@ def parse_path(
12
12
  mkdir: bool = True,
13
13
  require_is_file: bool = False,
14
14
  ) -> str:
15
+ """Utility for performing actions on a path
16
+
17
+ Args:
18
+ path (str): The (root) path to file or folder
19
+ extension (Optional[str], optional): The file extension. Defaults to None.
20
+ file_exists_ok (bool, optional): If false, will error if file already exists.
21
+ Defaults to True.
22
+ mkdir (bool, optional): Will create all subdirs in the process.
23
+ Defaults to True.
24
+ require_is_file (bool, optional): if true, will error if file does not
25
+ already exist. Defaults to False.
26
+
27
+ Raises:
28
+ Exception: _description_
29
+
30
+ Returns:
31
+ str: The home-expanded path to folder or file
32
+ """
15
33
  path = Path(os.path.expanduser(path))
16
34
 
17
35
  for p in join_paths: