imt-ring 1.6.20__py3-none-any.whl → 1.6.21__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.20
3
+ Version: 1.6.21
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 @@ ring/base.py,sha256=Ystn1EjTyOXBhVm5koroV_YPUYtFxrteJLd-XR3kEL8,33840
4
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
- ring/algorithms/_random.py,sha256=fc26yEQjSjtf0NluZ41CyeGIRci0ldrRlThueHR9H7U,14007
7
+ ring/algorithms/_random.py,sha256=6QwV7EAE2ckDi7rSGXT1XcPhR5R-NU-J8HVa5DoPBSQ,14011
8
8
  ring/algorithms/dynamics.py,sha256=GOedL1STj6oXcXgMA7dB4PabvCQxPBbirJQhXBRuKqE,10929
9
9
  ring/algorithms/jcalc.py,sha256=kQgrRE0XoUBrcdeFbUw_xKnL4m1P2G1Q1m4n7BX2yDk,30064
10
10
  ring/algorithms/kinematics.py,sha256=DOboHI517Vx0pRJUFZtZPmK_qFaiKiQe-37B-M0aC-c,7422
@@ -15,9 +15,9 @@ ring/algorithms/custom_joints/rr_joint.py,sha256=jnRtjtOCALMaq2_0bcu2d7qgfQ6etXp
15
15
  ring/algorithms/custom_joints/rsaddle_joint.py,sha256=QoMo6NXdYgA9JygSzBvr0eCdd3qKhUgCrGPNO2Qdxko,1200
16
16
  ring/algorithms/custom_joints/suntay.py,sha256=tOEGM304XciHO4pmvxr4faA4xXVO4N2HlPdFmXKbcrw,16726
17
17
  ring/algorithms/generator/__init__.py,sha256=bF-CW3x2x-o6KWESKy-DuxzZPh3UNSjJb_MaAcSHGsQ,277
18
- ring/algorithms/generator/base.py,sha256=vxUdA0ZeSNH3SOanL51qVRvCiJrmsWQyQX0g2fdm3Rg,15825
18
+ ring/algorithms/generator/base.py,sha256=Us25eMLQwB6rIVZuq1afwe2JqGSA8yKBIE9tr87HLfk,16270
19
19
  ring/algorithms/generator/batch.py,sha256=9yFxVv11hij-fJXGPxA3zEh1bE2_jrZk0R7kyGaiM5c,2551
20
- ring/algorithms/generator/finalize_fns.py,sha256=EZ5p7fuZu0Zd0rHJzCVg3vy3U9ysny6TfQfolIGPERc,10029
20
+ ring/algorithms/generator/finalize_fns.py,sha256=nY2RKiLbHriTkdec94lc4UGSZKd0v547MDNn4dr8I3E,10398
21
21
  ring/algorithms/generator/motion_artifacts.py,sha256=2VJbldVDbI3PSyboshIbtYvSAKzBBwGV7cQfYjqvluM,9167
22
22
  ring/algorithms/generator/pd_control.py,sha256=XJ_Gd5AkIRh-jBrMfQyMXjVwhx2gCNHznjzFbmAwhZs,5767
23
23
  ring/algorithms/generator/setup_fns.py,sha256=MFz3czHBeWs1Zk1A8O02CyQpQ-NCyW9PMpbqmKit6es,1455
@@ -58,7 +58,7 @@ ring/ml/ml_utils.py,sha256=xqy9BnLy8IKVqkFS9mlZsGJXSbThI9zZxZ5rhl8LSI8,7144
58
58
  ring/ml/optimizer.py,sha256=TZF0_LmnewzmGVso-zIQJtpWguUW0fW3HeRpIdG_qoI,4763
59
59
  ring/ml/ringnet.py,sha256=mef7jyN2QcApJmQGH3HYZyTV-00q8YpsYOKhW0-ku1k,8973
60
60
  ring/ml/rnno_v1.py,sha256=2qE08OIvTJ5PvSxKpYGzGSrvEImWrdAT_qslZ7jP5tA,1372
61
- ring/ml/train.py,sha256=huUfMK6eotS6BRrQKoZ-AUG0um3jlqpfQFZNJT8LKiE,10854
61
+ ring/ml/train.py,sha256=XuUUB0NhvByGtZDtS_weyp-TKPG9ErnKixS4NqB8q6M,10822
62
62
  ring/ml/training_loop.py,sha256=CEokvPQuuk_WCd-J60ZDodJYcPVvyxLfgXDr_DnbzRI,3359
63
63
  ring/ml/params/0x13e3518065c21cd8.pickle,sha256=Zh2k1zK-TNxJl5F7nyTeQ9001qqRE_dfvaq1HWV287A,9355838
64
64
  ring/ml/params/0x1d76628065a71e0f.pickle,sha256=YTNVuvfw-nCRD9BH1PZYcR9uCFpNWDhw8Lc50eDn_EE,9351038
@@ -86,7 +86,7 @@ ring/utils/randomize_sys.py,sha256=G_vBIo0OwQkXL2u0djwbaoaeb02C4LQCTNNloOYIU2M,3
86
86
  ring/utils/utils.py,sha256=tJaWXLGOTwkxJQj2l23dX97wO3aZYhM2qd7eNuMRs84,6907
87
87
  ring/utils/register_gym_envs/__init__.py,sha256=PtPIRBQJ16339xZ9G9VpvqrvcGbQ_Pk_SUz4tQPa9nQ,94
88
88
  ring/utils/register_gym_envs/saddle.py,sha256=tA5CyW_akSXyDm0xJ83CtOrUMVElH0f9vZtEDDJQalI,4422
89
- imt_ring-1.6.20.dist-info/METADATA,sha256=uOgzTpTz7MgDEIGhL7onaD_r64DlL6ALSnaT5t8u3HY,4097
90
- imt_ring-1.6.20.dist-info/WHEEL,sha256=a7TGlA-5DaHMRrarXjVbQagU3Man_dCnGIWMJr5kRWo,91
91
- imt_ring-1.6.20.dist-info/top_level.txt,sha256=EiT790-lAyi8iwTzJArH3f2k77rwhDn00q-4PlmvDQo,5
92
- imt_ring-1.6.20.dist-info/RECORD,,
89
+ imt_ring-1.6.21.dist-info/METADATA,sha256=A7R1aabkG59Lz2ANQI7eOdFSAAeOPeAfvhgsAKzLw7w,4097
90
+ imt_ring-1.6.21.dist-info/WHEEL,sha256=R06PA3UVYHThwHvxuRWMqaGcr-PuniXahwjmQRFMEkY,91
91
+ imt_ring-1.6.21.dist-info/top_level.txt,sha256=EiT790-lAyi8iwTzJArH3f2k77rwhDn00q-4PlmvDQo,5
92
+ imt_ring-1.6.21.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.4.0)
2
+ Generator: setuptools (75.5.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -199,7 +199,7 @@ def random_position_over_time(
199
199
  POS = jnp.zeros((int(T // t_min) + 1, 2))
200
200
  POS = POS.at[0, 1].set(POS_0)
201
201
 
202
- val_outer = (1, 0.0, 0.0, 0.0, 0.0, key, POS)
202
+ val_outer = (1, 0.0, 0.0, POS_0, POS_0, key, POS)
203
203
  end, *_, consume, POS = jax.lax.while_loop(cond_fn_outer, body_fn_outer, val_outer)
204
204
  POS = jnp.where(
205
205
  (jnp.arange(len(POS)) < end)[:, None],
@@ -34,6 +34,8 @@ class RCMG:
34
34
  add_y_relpose: bool = False,
35
35
  add_y_rootincl: bool = False,
36
36
  add_y_rootincl_kwargs: dict = dict(),
37
+ add_y_rootfull: bool = False,
38
+ add_y_rootfull_kwargs: dict = dict(),
37
39
  sys_ml: Optional[base.System] = None,
38
40
  randomize_positions: bool = False,
39
41
  randomize_motion_artifacts: bool = False,
@@ -73,6 +75,8 @@ class RCMG:
73
75
  add_y_relpose=add_y_relpose,
74
76
  add_y_rootincl=add_y_rootincl,
75
77
  add_y_rootincl_kwargs=add_y_rootincl_kwargs,
78
+ add_y_rootfull=add_y_rootfull,
79
+ add_y_rootfull_kwargs=add_y_rootfull_kwargs,
76
80
  sys_ml=sys_ml,
77
81
  randomize_positions=randomize_positions,
78
82
  randomize_motion_artifacts=randomize_motion_artifacts,
@@ -279,6 +283,8 @@ def _build_mconfig_batched_generator(
279
283
  add_y_relpose: bool,
280
284
  add_y_rootincl: bool,
281
285
  add_y_rootincl_kwargs: dict,
286
+ add_y_rootfull: bool,
287
+ add_y_rootfull_kwargs: dict,
282
288
  sys_ml: base.System,
283
289
  randomize_positions: bool,
284
290
  randomize_motion_artifacts: bool,
@@ -365,7 +371,11 @@ def _build_mconfig_batched_generator(
365
371
  if add_y_relpose:
366
372
  pipe.append(finalize_fns.RelPose(sys_noimu))
367
373
  if add_y_rootincl:
374
+ assert not add_y_rootfull
368
375
  pipe.append(finalize_fns.RootIncl(sys_noimu, **add_y_rootincl_kwargs))
376
+ if add_y_rootfull:
377
+ assert not add_y_rootincl
378
+ pipe.append(finalize_fns.RootFull(sys_noimu, **add_y_rootfull_kwargs))
369
379
  if use_link_number_in_Xy:
370
380
  pipe.append(finalize_fns.Names2Indices(sys_noimu))
371
381
 
@@ -88,6 +88,18 @@ class RootIncl:
88
88
  return (X, y), (key, q, x, sys_x)
89
89
 
90
90
 
91
+ class RootFull:
92
+ def __init__(self, sys: base.System, **kwargs):
93
+ self.sys = sys
94
+ self.kwargs = kwargs
95
+
96
+ def __call__(self, Xy, extras):
97
+ (X, y), (key, q, x, sys_x) = Xy, extras
98
+ y_root_incl = sensors.root_full(self.sys, x, sys_x, **self.kwargs)
99
+ y = utils.dict_union(y, y_root_incl)
100
+ return (X, y), (key, q, x, sys_x)
101
+
102
+
91
103
  _default_imu_kwargs = dict(
92
104
  noisy=True,
93
105
  low_pass_filter_pos_f_cutoff=13.5,
ring/ml/train.py CHANGED
@@ -167,7 +167,10 @@ def train_fn(
167
167
  tbp=tbp,
168
168
  )
169
169
 
170
- default_callbacks = []
170
+ # always log, because we also want `i_epsiode` to be logged in wandb
171
+ default_callbacks = [
172
+ ml_callbacks.LogEpisodeTrainingLoopCallback(callback_kill_after_episode)
173
+ ]
171
174
  if metrices is not None:
172
175
  eval_fn = _build_eval_fn(metrices, filter, link_names)
173
176
  default_callbacks.append(_DefaultEvalFnCallback(eval_fn))
@@ -192,11 +195,6 @@ def train_fn(
192
195
  if callback_kill_if_nan:
193
196
  default_callbacks.append(ml_callbacks.NanKillRunCallback())
194
197
 
195
- # always log, because we also want `i_epsiode` to be logged in wandb
196
- default_callbacks.append(
197
- ml_callbacks.LogEpisodeTrainingLoopCallback(callback_kill_after_episode)
198
- )
199
-
200
198
  if callback_kill_after_seconds is not None:
201
199
  default_callbacks.append(
202
200
  ml_callbacks.TimingKillRunCallback(callback_kill_after_seconds)