imt-ring 1.6.7__tar.gz → 1.6.9__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (116) hide show
  1. {imt_ring-1.6.7 → imt_ring-1.6.9}/PKG-INFO +1 -1
  2. {imt_ring-1.6.7 → imt_ring-1.6.9}/pyproject.toml +1 -1
  3. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/imt_ring.egg-info/PKG-INFO +1 -1
  4. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/sensors.py +2 -2
  5. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/base.py +12 -5
  6. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/maths.py +1 -1
  7. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/ml/base.py +8 -0
  8. {imt_ring-1.6.7 → imt_ring-1.6.9}/readme.md +0 -0
  9. {imt_ring-1.6.7 → imt_ring-1.6.9}/setup.cfg +0 -0
  10. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/imt_ring.egg-info/SOURCES.txt +0 -0
  11. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/imt_ring.egg-info/dependency_links.txt +0 -0
  12. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/imt_ring.egg-info/requires.txt +0 -0
  13. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/imt_ring.egg-info/top_level.txt +0 -0
  14. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/__init__.py +0 -0
  15. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algebra.py +0 -0
  16. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/__init__.py +0 -0
  17. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/_random.py +0 -0
  18. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/custom_joints/__init__.py +0 -0
  19. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/custom_joints/rr_imp_joint.py +0 -0
  20. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/custom_joints/rr_joint.py +0 -0
  21. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/custom_joints/suntay.py +0 -0
  22. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/dynamics.py +0 -0
  23. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/generator/__init__.py +0 -0
  24. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/generator/base.py +0 -0
  25. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/generator/batch.py +0 -0
  26. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/generator/finalize_fns.py +0 -0
  27. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/generator/motion_artifacts.py +0 -0
  28. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/generator/pd_control.py +0 -0
  29. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/generator/setup_fns.py +0 -0
  30. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/generator/types.py +0 -0
  31. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/jcalc.py +0 -0
  32. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/kinematics.py +0 -0
  33. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/__init__.py +0 -0
  34. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/branched.xml +0 -0
  35. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/exclude/knee_trans_dof.xml +0 -0
  36. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/exclude/standard_sys.xml +0 -0
  37. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/exclude/standard_sys_rr_imp.xml +0 -0
  38. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/inv_pendulum.xml +0 -0
  39. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/knee_flexible_imus.xml +0 -0
  40. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/spherical_stiff.xml +0 -0
  41. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/symmetric.xml +0 -0
  42. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/test_all_1.xml +0 -0
  43. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/test_all_2.xml +0 -0
  44. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/test_ang0_pos0.xml +0 -0
  45. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/test_control.xml +0 -0
  46. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/test_double_pendulum.xml +0 -0
  47. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/test_free.xml +0 -0
  48. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/test_kinematics.xml +0 -0
  49. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/test_morph_system/four_seg_seg1.xml +0 -0
  50. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/test_morph_system/four_seg_seg3.xml +0 -0
  51. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/test_randomize_position.xml +0 -0
  52. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/test_sensors.xml +0 -0
  53. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/test_three_seg_seg2.xml +0 -0
  54. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples.py +0 -0
  55. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/test_examples.py +0 -0
  56. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/xml/__init__.py +0 -0
  57. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/xml/abstract.py +0 -0
  58. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/xml/from_xml.py +0 -0
  59. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/xml/test_from_xml.py +0 -0
  60. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/xml/test_to_xml.py +0 -0
  61. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/xml/to_xml.py +0 -0
  62. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/ml/__init__.py +0 -0
  63. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/ml/callbacks.py +0 -0
  64. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/ml/ml_utils.py +0 -0
  65. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/ml/optimizer.py +0 -0
  66. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/ml/params/0x13e3518065c21cd8.pickle +0 -0
  67. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/ml/params/0x1d76628065a71e0f.pickle +0 -0
  68. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/ml/ringnet.py +0 -0
  69. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/ml/rnno_v1.py +0 -0
  70. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/ml/train.py +0 -0
  71. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/ml/training_loop.py +0 -0
  72. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/rendering/__init__.py +0 -0
  73. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/rendering/base_render.py +0 -0
  74. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/rendering/mujoco_render.py +0 -0
  75. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/rendering/vispy_render.py +0 -0
  76. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/rendering/vispy_visuals.py +0 -0
  77. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/sim2real/__init__.py +0 -0
  78. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/sim2real/sim2real.py +0 -0
  79. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/spatial.py +0 -0
  80. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/sys_composer/__init__.py +0 -0
  81. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/sys_composer/delete_sys.py +0 -0
  82. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/sys_composer/inject_sys.py +0 -0
  83. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/sys_composer/morph_sys.py +0 -0
  84. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/utils/__init__.py +0 -0
  85. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/utils/backend.py +0 -0
  86. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/utils/batchsize.py +0 -0
  87. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/utils/colab.py +0 -0
  88. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/utils/hdf5.py +0 -0
  89. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/utils/normalizer.py +0 -0
  90. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/utils/path.py +0 -0
  91. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/utils/randomize_sys.py +0 -0
  92. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/utils/register_gym_envs/__init__.py +0 -0
  93. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/utils/register_gym_envs/saddle.py +0 -0
  94. {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/utils/utils.py +0 -0
  95. {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_algebra.py +0 -0
  96. {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_base.py +0 -0
  97. {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_custom_joints.py +0 -0
  98. {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_dynamics.py +0 -0
  99. {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_generator.py +0 -0
  100. {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_jcalc.py +0 -0
  101. {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_jit.py +0 -0
  102. {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_kinematics.py +0 -0
  103. {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_maths.py +0 -0
  104. {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_ml_utils.py +0 -0
  105. {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_motion_artifacts.py +0 -0
  106. {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_pd_control.py +0 -0
  107. {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_quickstart_example.py +0 -0
  108. {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_random.py +0 -0
  109. {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_randomize.py +0 -0
  110. {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_rcmg.py +0 -0
  111. {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_render.py +0 -0
  112. {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_sensors.py +0 -0
  113. {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_sim2real.py +0 -0
  114. {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_sys_composer.py +0 -0
  115. {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_train.py +0 -0
  116. {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: imt-ring
3
- Version: 1.6.7
3
+ Version: 1.6.9
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
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "imt-ring"
7
- version = "1.6.7"
7
+ version = "1.6.9"
8
8
  authors = [
9
9
  { name="Simon Bachhuber", email="simon.bachhuber@fau.de" },
10
10
  ]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: imt-ring
3
- Version: 1.6.7
3
+ Version: 1.6.9
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
@@ -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(
@@ -590,12 +590,14 @@ class System(_Base):
590
590
 
591
591
  return sys
592
592
 
593
- def findall_imus(self) -> list[str]:
594
- return [name for name in self.link_names if name[:3] == "imu"]
593
+ def findall_imus(self, names: bool = True) -> list[str] | list[int]:
594
+ bodies = [name for name in self.link_names if name[:3] == "imu"]
595
+ return bodies if names else [self.name_to_idx(n) for n in bodies]
595
596
 
596
- def findall_segments(self) -> list[str]:
597
- imus = self.findall_imus()
598
- return [name for name in self.link_names if name not in imus]
597
+ def findall_segments(self, names: bool = True) -> list[str] | list[int]:
598
+ imus = self.findall_imus(names=True)
599
+ bodies = [name for name in self.link_names if name not in imus]
600
+ return bodies if names else [self.name_to_idx(n) for n in bodies]
599
601
 
600
602
  def _bodies_indices_to_bodies_name(self, bodies: list[int]) -> list[str]:
601
603
  return [self.idx_to_name(i) for i in bodies]
@@ -615,6 +617,11 @@ class System(_Base):
615
617
  bodies = [i for i, _typ in enumerate(self.link_types) if _typ == typ]
616
618
  return self._bodies_indices_to_bodies_name(bodies) if names else bodies
617
619
 
620
+ def children(self, name: str, names: bool = False) -> list[int] | list[str]:
621
+ p = self.name_to_idx(name)
622
+ bodies = [i for i in range(self.num_links()) if self.link_parents[i] == p]
623
+ return bodies if (not names) else [self.idx_to_name(i) for i in bodies]
624
+
618
625
  def scan(self, f: Callable, in_types: str, *args, reverse: bool = False):
619
626
  """Scan `f` along each link in system whilst carrying along state.
620
627
 
@@ -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
@@ -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__(
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes