imt-ring 1.6.1__py3-none-any.whl → 1.6.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: imt-ring
3
- Version: 1.6.1
3
+ Version: 1.6.2
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
@@ -1,14 +1,14 @@
1
1
  ring/__init__.py,sha256=2v6WHlNPucj1XGhDYw-3AlMQGTqH-e4KYK0IaMnBV5s,4760
2
2
  ring/algebra.py,sha256=F0GwbP8LQP5qGVkoMUYJmkp9Hn2nKAVIkCVYDEjNjGU,3128
3
3
  ring/base.py,sha256=kzBQ54V2xq4KsqRzflyMQ64V-jl8j7eIAsIPIE0gFDk,33127
4
- ring/maths.py,sha256=jJr_kr78-XDce8B4tXQ2Li-jBntVQhaS8csxglCsj8A,12193
4
+ ring/maths.py,sha256=zGm5XagiKTaIJp310VcqVEVUuLhv3FPS-TJ-TFzIrwM,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=_TwclBXe6vi5C5iJWAIeUIJEIMHQ_1QTmnHvCEpVO0M,10867
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=MICO9Sn0AfoqRx_9KWR3hufsIID-K6SOIg3oPDgsYMU,17869
11
+ ring/algorithms/sensors.py,sha256=QSIcU_sEB_tRo-ADD_66ZD01LMmJlSG0op6YnM-Gai8,17965
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
@@ -63,7 +63,7 @@ ring/ml/params/0x13e3518065c21cd8.pickle,sha256=Zh2k1zK-TNxJl5F7nyTeQ9001qqRE_df
63
63
  ring/ml/params/0x1d76628065a71e0f.pickle,sha256=YTNVuvfw-nCRD9BH1PZYcR9uCFpNWDhw8Lc50eDn_EE,9351038
64
64
  ring/rendering/__init__.py,sha256=Zf7qOdzK3t2hljIrs5P4zFhzHljLSMRyDDZO2YlZk4k,75
65
65
  ring/rendering/base_render.py,sha256=Mv9SRLEmuoPVhi46UIjb6xCkKmbWCwIyENGx7nu9REM,9617
66
- ring/rendering/mujoco_render.py,sha256=uZ-6s6vshsc49N4xvh5KEWQo1f0DveoZqlJ6sIy1QGI,7912
66
+ ring/rendering/mujoco_render.py,sha256=R8qxqItakBlptbQpCzsZoVfdWYhSMwZYQzaCKbUigYU,7987
67
67
  ring/rendering/vispy_render.py,sha256=QmRyA7Hqk3uS1SKjcncwc4_vd1m4yWryW2X0i4jRvCw,10260
68
68
  ring/rendering/vispy_visuals.py,sha256=ooBZqppnebeL0ANe6V6zUgnNTtDcdkOsa4vZuM4sx-I,7873
69
69
  ring/sim2real/__init__.py,sha256=gCLYg8IoMdzUagzhCFcfjZ5GavtIU772L7HR0G5hUtM,251
@@ -83,7 +83,7 @@ ring/utils/randomize_sys.py,sha256=G_vBIo0OwQkXL2u0djwbaoaeb02C4LQCTNNloOYIU2M,3
83
83
  ring/utils/utils.py,sha256=k7t-QxMWrNRnjfNB9rSobmLCmhJigE8__gkT-Il0Ee4,6492
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.1.dist-info/METADATA,sha256=FrI0S7Njj9yZgqG5Wuek8KFocnUOV18c7Ar2T_V0ums,3104
87
- imt_ring-1.6.1.dist-info/WHEEL,sha256=Z4pYXqR_rTB7OWNDYFOm1qRk0RX6GFP2o8LgvP453Hk,91
88
- imt_ring-1.6.1.dist-info/top_level.txt,sha256=EiT790-lAyi8iwTzJArH3f2k77rwhDn00q-4PlmvDQo,5
89
- imt_ring-1.6.1.dist-info/RECORD,,
86
+ imt_ring-1.6.2.dist-info/METADATA,sha256=S_LlVrmdRPQCzT5aeRoSWyOQ3eBJBL1D33tUgXMUEso,3104
87
+ imt_ring-1.6.2.dist-info/WHEEL,sha256=Wyh-_nZ0DJYolHNn1_hMa4lM7uDedD_RGVwbmTjyItk,91
88
+ imt_ring-1.6.2.dist-info/top_level.txt,sha256=EiT790-lAyi8iwTzJArH3f2k77rwhDn00q-4PlmvDQo,5
89
+ imt_ring-1.6.2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (70.3.0)
2
+ Generator: setuptools (71.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -341,7 +341,8 @@ def root_incl(
341
341
  def f(_, __, name: str, parent: int):
342
342
  if parent != -1:
343
343
  return
344
- y[name] = maths.quat_project(rots[l_map[name]], jnp.array([0.0, 0, 1]))[1]
344
+ q_eps_to_i = maths.quat_project(rots[l_map[name]], jnp.array([0.0, 0, 1]))[1]
345
+ y[name] = maths.quat_inv(q_eps_to_i)
345
346
 
346
347
  sys.scan(f, "ll", sys.link_names, sys.link_parents)
347
348
 
@@ -360,7 +361,8 @@ def root_full(
360
361
  def f(_, __, name: str, parent: int):
361
362
  if parent != -1:
362
363
  return
363
- y[name] = rots[l_map[name]]
364
+ q_eps_to_i = rots[l_map[name]]
365
+ y[name] = maths.quat_inv(q_eps_to_i)
364
366
 
365
367
  sys.scan(f, "ll", sys.link_names, sys.link_parents)
366
368
 
ring/maths.py CHANGED
@@ -119,7 +119,7 @@ def quat_inv(q: jnp.ndarray) -> jnp.ndarray:
119
119
 
120
120
  @partial(jnp.vectorize, signature="(3),(4)->(3)")
121
121
  def rotate(vector: jnp.ndarray, quat: jnp.ndarray):
122
- """Rotates a vector `vector` by a *unit* quaternion `quat`."""
122
+ """Rotates a vector `vector` by a *unit* quaternion `quat`. q x vec x q^*"""
123
123
  qvec = jnp.array([0, *vector])
124
124
  return rotate_quat(qvec, quat)[1:4]
125
125
 
@@ -157,13 +157,16 @@ def _array_to_str(arr: Sequence[float]) -> str:
157
157
  return "".join(["{:.4f} ".format(np.round(value, 4)) for value in arr])[:-1]
158
158
 
159
159
 
160
+ _default_lights = {-1: '<light pos="0 0 4" dir="0 0 -1"/>'}
161
+
162
+
160
163
  class MujocoScene:
161
164
  def __init__(
162
165
  self,
163
166
  height: int = 240,
164
167
  width: int = 320,
165
168
  add_cameras: dict[int, str | Sequence[str]] = {},
166
- add_lights: dict[int, str | Sequence[str]] = {},
169
+ add_lights: dict[int, str | Sequence[str]] = _default_lights,
167
170
  show_stars: bool = True,
168
171
  show_floor: bool = True,
169
172
  debug: bool = False,