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.
- {imt_ring-1.6.7 → imt_ring-1.6.9}/PKG-INFO +1 -1
- {imt_ring-1.6.7 → imt_ring-1.6.9}/pyproject.toml +1 -1
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/imt_ring.egg-info/PKG-INFO +1 -1
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/sensors.py +2 -2
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/base.py +12 -5
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/maths.py +1 -1
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/ml/base.py +8 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/readme.md +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/setup.cfg +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/imt_ring.egg-info/SOURCES.txt +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/imt_ring.egg-info/dependency_links.txt +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/imt_ring.egg-info/requires.txt +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/imt_ring.egg-info/top_level.txt +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/__init__.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algebra.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/__init__.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/_random.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/custom_joints/__init__.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/custom_joints/rr_imp_joint.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/custom_joints/rr_joint.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/custom_joints/suntay.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/dynamics.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/generator/__init__.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/generator/base.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/generator/batch.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/generator/finalize_fns.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/generator/motion_artifacts.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/generator/pd_control.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/generator/setup_fns.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/generator/types.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/jcalc.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/algorithms/kinematics.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/__init__.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/branched.xml +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/exclude/knee_trans_dof.xml +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/exclude/standard_sys.xml +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/exclude/standard_sys_rr_imp.xml +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/inv_pendulum.xml +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/knee_flexible_imus.xml +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/spherical_stiff.xml +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/symmetric.xml +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/test_all_1.xml +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/test_all_2.xml +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/test_ang0_pos0.xml +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/test_control.xml +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/test_double_pendulum.xml +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/test_free.xml +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/test_kinematics.xml +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/test_morph_system/four_seg_seg1.xml +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/test_morph_system/four_seg_seg3.xml +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/test_randomize_position.xml +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/test_sensors.xml +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples/test_three_seg_seg2.xml +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/examples.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/test_examples.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/xml/__init__.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/xml/abstract.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/xml/from_xml.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/xml/test_from_xml.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/xml/test_to_xml.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/io/xml/to_xml.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/ml/__init__.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/ml/callbacks.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/ml/ml_utils.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/ml/optimizer.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/ml/params/0x13e3518065c21cd8.pickle +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/ml/params/0x1d76628065a71e0f.pickle +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/ml/ringnet.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/ml/rnno_v1.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/ml/train.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/ml/training_loop.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/rendering/__init__.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/rendering/base_render.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/rendering/mujoco_render.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/rendering/vispy_render.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/rendering/vispy_visuals.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/sim2real/__init__.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/sim2real/sim2real.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/spatial.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/sys_composer/__init__.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/sys_composer/delete_sys.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/sys_composer/inject_sys.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/sys_composer/morph_sys.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/utils/__init__.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/utils/backend.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/utils/batchsize.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/utils/colab.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/utils/hdf5.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/utils/normalizer.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/utils/path.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/utils/randomize_sys.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/utils/register_gym_envs/__init__.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/utils/register_gym_envs/saddle.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/src/ring/utils/utils.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_algebra.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_base.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_custom_joints.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_dynamics.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_generator.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_jcalc.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_jit.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_kinematics.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_maths.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_ml_utils.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_motion_artifacts.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_pd_control.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_quickstart_example.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_random.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_randomize.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_rcmg.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_render.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_sensors.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_sim2real.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_sys_composer.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_train.py +0 -0
- {imt_ring-1.6.7 → imt_ring-1.6.9}/tests/test_utils.py +0 -0
@@ -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.
|
134
|
-
BIAS_LEVELS = {"acc": 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
|
-
|
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
|
-
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|