imt-ring 1.2.1__tar.gz → 1.3.0__tar.gz

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.
Files changed (110) hide show
  1. {imt-ring-1.2.1 → imt_ring-1.3.0}/PKG-INFO +1 -1
  2. {imt-ring-1.2.1 → imt_ring-1.3.0}/pyproject.toml +1 -1
  3. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/imt_ring.egg-info/PKG-INFO +1 -1
  4. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/algorithms/custom_joints/suntay.py +17 -1
  5. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/algorithms/generator/motion_artifacts.py +27 -7
  6. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/algorithms/generator/transforms.py +1 -0
  7. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/algorithms/jcalc.py +112 -0
  8. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/io/examples/exclude/standard_sys.xml +40 -40
  9. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/io/examples/exclude/standard_sys_rr_imp.xml +40 -40
  10. imt_ring-1.3.0/src/ring/ml/__init__.py +61 -0
  11. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/ml/base.py +3 -3
  12. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/ml/callbacks.py +5 -1
  13. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/rendering/base_render.py +1 -1
  14. {imt-ring-1.2.1 → imt_ring-1.3.0}/tests/test_jcalc.py +5 -0
  15. {imt-ring-1.2.1 → imt_ring-1.3.0}/tests/test_kinematics.py +6 -4
  16. {imt-ring-1.2.1 → imt_ring-1.3.0}/tests/test_randomize.py +28 -28
  17. {imt-ring-1.2.1 → imt_ring-1.3.0}/tests/test_sys_composer.py +7 -7
  18. {imt-ring-1.2.1 → imt_ring-1.3.0}/tests/test_train.py +30 -3
  19. imt-ring-1.2.1/src/ring/ml/__init__.py +0 -33
  20. {imt-ring-1.2.1 → imt_ring-1.3.0}/readme.md +0 -0
  21. {imt-ring-1.2.1 → imt_ring-1.3.0}/setup.cfg +0 -0
  22. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/imt_ring.egg-info/SOURCES.txt +0 -0
  23. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/imt_ring.egg-info/dependency_links.txt +0 -0
  24. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/imt_ring.egg-info/requires.txt +0 -0
  25. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/imt_ring.egg-info/top_level.txt +0 -0
  26. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/__init__.py +0 -0
  27. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/algebra.py +0 -0
  28. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/algorithms/__init__.py +0 -0
  29. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/algorithms/_random.py +0 -0
  30. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/algorithms/custom_joints/__init__.py +0 -0
  31. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/algorithms/custom_joints/rr_imp_joint.py +0 -0
  32. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/algorithms/custom_joints/rr_joint.py +0 -0
  33. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/algorithms/dynamics.py +0 -0
  34. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/algorithms/generator/__init__.py +0 -0
  35. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/algorithms/generator/base.py +0 -0
  36. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/algorithms/generator/batch.py +0 -0
  37. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/algorithms/generator/pd_control.py +0 -0
  38. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/algorithms/generator/randomize.py +0 -0
  39. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/algorithms/generator/types.py +0 -0
  40. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/algorithms/kinematics.py +0 -0
  41. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/algorithms/sensors.py +0 -0
  42. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/base.py +0 -0
  43. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/io/__init__.py +0 -0
  44. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/io/examples/branched.xml +0 -0
  45. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/io/examples/exclude/knee_trans_dof.xml +0 -0
  46. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/io/examples/inv_pendulum.xml +0 -0
  47. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/io/examples/knee_flexible_imus.xml +0 -0
  48. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/io/examples/spherical_stiff.xml +0 -0
  49. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/io/examples/symmetric.xml +0 -0
  50. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/io/examples/test_all_1.xml +0 -0
  51. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/io/examples/test_all_2.xml +0 -0
  52. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/io/examples/test_ang0_pos0.xml +0 -0
  53. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/io/examples/test_control.xml +0 -0
  54. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/io/examples/test_double_pendulum.xml +0 -0
  55. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/io/examples/test_free.xml +0 -0
  56. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/io/examples/test_kinematics.xml +0 -0
  57. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/io/examples/test_morph_system/four_seg_seg1.xml +0 -0
  58. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/io/examples/test_morph_system/four_seg_seg3.xml +0 -0
  59. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/io/examples/test_randomize_position.xml +0 -0
  60. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/io/examples/test_sensors.xml +0 -0
  61. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/io/examples/test_three_seg_seg2.xml +0 -0
  62. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/io/examples.py +0 -0
  63. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/io/test_examples.py +0 -0
  64. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/io/xml/__init__.py +0 -0
  65. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/io/xml/abstract.py +0 -0
  66. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/io/xml/from_xml.py +0 -0
  67. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/io/xml/test_from_xml.py +0 -0
  68. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/io/xml/test_to_xml.py +0 -0
  69. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/io/xml/to_xml.py +0 -0
  70. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/maths.py +0 -0
  71. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/ml/ml_utils.py +0 -0
  72. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/ml/optimizer.py +0 -0
  73. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/ml/params/0x13e3518065c21cd8.pickle +0 -0
  74. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/ml/ringnet.py +0 -0
  75. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/ml/train.py +0 -0
  76. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/ml/training_loop.py +0 -0
  77. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/rendering/__init__.py +0 -0
  78. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/rendering/mujoco_render.py +0 -0
  79. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/rendering/vispy_render.py +0 -0
  80. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/rendering/vispy_visuals.py +0 -0
  81. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/sim2real/__init__.py +0 -0
  82. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/sim2real/sim2real.py +0 -0
  83. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/spatial.py +0 -0
  84. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/sys_composer/__init__.py +0 -0
  85. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/sys_composer/delete_sys.py +0 -0
  86. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/sys_composer/inject_sys.py +0 -0
  87. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/sys_composer/morph_sys.py +0 -0
  88. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/utils/__init__.py +0 -0
  89. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/utils/batchsize.py +0 -0
  90. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/utils/colab.py +0 -0
  91. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/utils/hdf5.py +0 -0
  92. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/utils/normalizer.py +0 -0
  93. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/utils/path.py +0 -0
  94. {imt-ring-1.2.1 → imt_ring-1.3.0}/src/ring/utils/utils.py +0 -0
  95. {imt-ring-1.2.1 → imt_ring-1.3.0}/tests/test_algebra.py +0 -0
  96. {imt-ring-1.2.1 → imt_ring-1.3.0}/tests/test_base.py +0 -0
  97. {imt-ring-1.2.1 → imt_ring-1.3.0}/tests/test_custom_joints.py +0 -0
  98. {imt-ring-1.2.1 → imt_ring-1.3.0}/tests/test_dynamics.py +0 -0
  99. {imt-ring-1.2.1 → imt_ring-1.3.0}/tests/test_generator.py +0 -0
  100. {imt-ring-1.2.1 → imt_ring-1.3.0}/tests/test_jit.py +0 -0
  101. {imt-ring-1.2.1 → imt_ring-1.3.0}/tests/test_maths.py +0 -0
  102. {imt-ring-1.2.1 → imt_ring-1.3.0}/tests/test_ml_utils.py +0 -0
  103. {imt-ring-1.2.1 → imt_ring-1.3.0}/tests/test_motion_artifacts.py +0 -0
  104. {imt-ring-1.2.1 → imt_ring-1.3.0}/tests/test_pd_control.py +0 -0
  105. {imt-ring-1.2.1 → imt_ring-1.3.0}/tests/test_random.py +0 -0
  106. {imt-ring-1.2.1 → imt_ring-1.3.0}/tests/test_rcmg.py +0 -0
  107. {imt-ring-1.2.1 → imt_ring-1.3.0}/tests/test_render.py +0 -0
  108. {imt-ring-1.2.1 → imt_ring-1.3.0}/tests/test_sensors.py +0 -0
  109. {imt-ring-1.2.1 → imt_ring-1.3.0}/tests/test_sim2real.py +0 -0
  110. {imt-ring-1.2.1 → imt_ring-1.3.0}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: imt-ring
3
- Version: 1.2.1
3
+ Version: 1.3.0
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.2.1"
7
+ version = "1.3.0"
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.2.1
3
+ Version: 1.3.0
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
@@ -8,6 +8,7 @@ from tree_utils import PyTree
8
8
 
9
9
  import ring
10
10
  from ring import maths
11
+ from ring.algorithms import jcalc
11
12
  from ring.algorithms._random import random_angle_over_time
12
13
 
13
14
  Params = PyTree
@@ -258,6 +259,9 @@ def register_suntay(sconfig: SuntayConfig, name: str = "suntay"):
258
259
  mconfig.cdf_bins_max,
259
260
  mconfig.interpolation_method,
260
261
  )
262
+ return _apply_rom(qs_flexion)
263
+
264
+ def _apply_rom(qs_flexion):
261
265
  return restrict(
262
266
  qs_flexion,
263
267
  sconfig.flexion_rot_min,
@@ -267,16 +271,26 @@ def register_suntay(sconfig: SuntayConfig, name: str = "suntay"):
267
271
  method=sconfig.flexion_rot_restrict_method,
268
272
  )
269
273
 
274
+ def coordinate_vector_to_q_suntay(q_flexion):
275
+ q_flexion = ring.maths.wrap_to_pi(q_flexion)
276
+ return _apply_rom(q_flexion)
277
+
270
278
  joint_model = ring.JointModel(
271
279
  transform=_transform_suntay,
280
+ motion=[jcalc.mrx],
272
281
  rcmg_draw_fn=_draw_flexion_angle,
282
+ p_control_term=jcalc._p_control_term_rxyz,
283
+ qd_from_q=jcalc._qd_from_q_cartesian,
284
+ coordinate_vector_to_q=coordinate_vector_to_q_suntay,
285
+ inv_kin=None,
273
286
  init_joint_params=_init_joint_params_suntay,
274
287
  utilities=dict(
275
288
  Q_S_H_alpha_beta_gamma=_utils_Q_S_H_alpha_beta_gamma,
276
289
  find_suntay_joint=_utils_find_suntay_joint,
290
+ sconfig=sconfig,
277
291
  ),
278
292
  )
279
- ring.register_new_joint_type(name, joint_model, 1, qd_width=0, overwrite=True)
293
+ ring.register_new_joint_type(name, joint_model, 1, overwrite=True)
280
294
 
281
295
 
282
296
  def MLP_DrawnFnPair(
@@ -291,6 +305,8 @@ def MLP_DrawnFnPair(
291
305
 
292
306
  if flexion_center is None:
293
307
  flexion_center = (flexion_mn + flexion_mx) / 2
308
+ else:
309
+ flexion_center = jnp.array(flexion_center)
294
310
 
295
311
  @hk.without_apply_rng
296
312
  @hk.transform
@@ -2,9 +2,10 @@ import warnings
2
2
 
3
3
  import jax
4
4
  import jax.numpy as jnp
5
+ import tree_utils
6
+
5
7
  from ring import base
6
8
  from ring import io
7
- import tree_utils
8
9
 
9
10
 
10
11
  def imu_reference_link_name(imu_link_name: str) -> str:
@@ -15,11 +16,21 @@ def unactuated_subsystem(sys) -> list[str]:
15
16
  return [imu_reference_link_name(name) for name in sys.findall_imus()]
16
17
 
17
18
 
18
- def _subsystem_factory(imu_name: str, pos_min_max: float) -> base.System:
19
+ def _subsystem_factory(
20
+ imu_name: str,
21
+ pos_min_max: float,
22
+ translational_stif: float,
23
+ translational_damp: float,
24
+ ) -> base.System:
19
25
  assert pos_min_max >= 0
20
26
  pos = f'pos_min="-{pos_min_max} -{pos_min_max} -{pos_min_max}" pos_max="{pos_min_max} {pos_min_max} {pos_min_max}"' # noqa: E501
21
- stiff = 'spring_stiff="50 50 50"'
22
- damping = 'damping="5 5 5"'
27
+ stiff = (
28
+ f'spring_stiff="{translational_stif} {translational_stif} {translational_stif}"'
29
+ )
30
+ translational_damp = translational_stif * translational_damp
31
+ damping = (
32
+ f'damping="{translational_damp} {translational_damp} {translational_damp}"'
33
+ )
23
34
  return io.load_sys_from_str(
24
35
  f"""
25
36
  <x_xy>
@@ -34,12 +45,16 @@ def _subsystem_factory(imu_name: str, pos_min_max: float) -> base.System:
34
45
  def inject_subsystems(
35
46
  sys: base.System,
36
47
  pos_min_max: float = 0.0,
48
+ rotational_stif: float = 0.3,
49
+ rotational_damp: float = 0.1,
50
+ translational_stif: float = 50.0,
51
+ translational_damp: float = 0.1,
37
52
  **kwargs,
38
53
  ) -> base.System:
39
54
  imu_idx_to_name_map = {sys.name_to_idx(imu): imu for imu in sys.findall_imus()}
40
55
 
41
- default_spher_stif = jnp.ones((3,)) * 0.3
42
- default_spher_damp = default_spher_stif * 0.1
56
+ default_spher_stif = jnp.ones((3,)) * rotational_stif
57
+ default_spher_damp = default_spher_stif * rotational_damp
43
58
  for imu in sys.findall_imus():
44
59
  sys = sys.unfreeze(imu, "spherical")
45
60
  # set default stiffness and damping of spherical joint
@@ -51,7 +66,12 @@ def inject_subsystems(
51
66
 
52
67
  _imu = imu_reference_link_name(imu)
53
68
  sys = sys.change_link_name(imu, _imu)
54
- sys = sys.inject_system(_subsystem_factory(imu, pos_min_max), _imu)
69
+ sys = sys.inject_system(
70
+ _subsystem_factory(
71
+ imu, pos_min_max, translational_stif, translational_damp
72
+ ),
73
+ _imu,
74
+ )
55
75
 
56
76
  # attach geoms to newly injected link
57
77
  new_geoms = []
@@ -277,6 +277,7 @@ _P_gains = {
277
277
  "p3d": jnp.array(3 * [P_pos]),
278
278
  "saddle": jnp.array([P_rot, P_rot]),
279
279
  "frozen": jnp.array([]),
280
+ "suntay": jnp.array([P_rot]),
280
281
  }
281
282
 
282
283
 
@@ -88,6 +88,118 @@ class MotionConfig:
88
88
  assert nomotion_config.is_feasible()
89
89
  return nomotion_config
90
90
 
91
+ @staticmethod
92
+ def from_register(name: str) -> "MotionConfig":
93
+ return _registered_motion_configs[name]
94
+
95
+
96
+ _registered_motion_configs = {
97
+ "hinUndHer": MotionConfig(
98
+ t_min=0.3,
99
+ t_max=1.5,
100
+ dang_max=3.0,
101
+ delta_ang_min=0.5,
102
+ pos_min=-1.5,
103
+ pos_max=1.5,
104
+ randomized_interpolation_angle=True,
105
+ cor=True,
106
+ ),
107
+ "langsam": MotionConfig(
108
+ t_min=0.2,
109
+ t_max=1.25,
110
+ dang_max=2.0,
111
+ randomized_interpolation_angle=True,
112
+ dang_max_free_spherical=2.0,
113
+ cdf_bins_min=1,
114
+ cdf_bins_max=3,
115
+ pos_min=-1.5,
116
+ pos_max=1.5,
117
+ cor=True,
118
+ ),
119
+ "standard": MotionConfig(
120
+ randomized_interpolation_angle=True,
121
+ cdf_bins_min=1,
122
+ cdf_bins_max=5,
123
+ cor=True,
124
+ ),
125
+ "expFast": MotionConfig(
126
+ t_min=0.4,
127
+ t_max=1.1,
128
+ dang_max=jnp.deg2rad(180),
129
+ delta_ang_min=jnp.deg2rad(60),
130
+ delta_ang_max=jnp.deg2rad(110),
131
+ pos_min=-1.5,
132
+ pos_max=1.5,
133
+ range_of_motion_hinge_method="sigmoid",
134
+ randomized_interpolation_angle=True,
135
+ cdf_bins_min=1,
136
+ cdf_bins_max=3,
137
+ cor=True,
138
+ ),
139
+ "expSlow": MotionConfig(
140
+ t_min=0.75,
141
+ t_max=3.0,
142
+ dang_min=0.1,
143
+ dang_max=1.0,
144
+ dang_min_free_spherical=0.1,
145
+ delta_ang_min=0.4,
146
+ dang_max_free_spherical=1.0,
147
+ delta_ang_max_free_spherical=1.0,
148
+ dpos_max=0.3,
149
+ cor_dpos_max=0.3,
150
+ range_of_motion_hinge_method="sigmoid",
151
+ randomized_interpolation_angle=True,
152
+ cdf_bins_min=1,
153
+ cdf_bins_max=5,
154
+ cor=True,
155
+ ),
156
+ "expFastNoSig": MotionConfig(
157
+ t_min=0.4,
158
+ t_max=1.1,
159
+ dang_max=jnp.deg2rad(180),
160
+ delta_ang_min=jnp.deg2rad(60),
161
+ delta_ang_max=jnp.deg2rad(110),
162
+ pos_min=-1.5,
163
+ pos_max=1.5,
164
+ randomized_interpolation_angle=True,
165
+ cdf_bins_min=1,
166
+ cdf_bins_max=3,
167
+ cor=True,
168
+ ),
169
+ "expSlowNoSig": MotionConfig(
170
+ t_min=0.75,
171
+ t_max=3.0,
172
+ dang_min=0.1,
173
+ dang_max=1.0,
174
+ dang_min_free_spherical=0.1,
175
+ delta_ang_min=0.4,
176
+ dang_max_free_spherical=1.0,
177
+ delta_ang_max_free_spherical=1.0,
178
+ dpos_max=0.3,
179
+ cor_dpos_max=0.3,
180
+ randomized_interpolation_angle=True,
181
+ cdf_bins_min=1,
182
+ cdf_bins_max=3,
183
+ cor=True,
184
+ ),
185
+ "verySlow": MotionConfig(
186
+ t_min=1.5,
187
+ t_max=5.0,
188
+ dang_min=jnp.deg2rad(1),
189
+ dang_max=jnp.deg2rad(30),
190
+ delta_ang_min=jnp.deg2rad(20),
191
+ dang_min_free_spherical=jnp.deg2rad(1),
192
+ dang_max_free_spherical=jnp.deg2rad(10),
193
+ delta_ang_min_free_spherical=jnp.deg2rad(5),
194
+ dpos_max=0.3,
195
+ cor_dpos_max=0.3,
196
+ randomized_interpolation_angle=True,
197
+ cdf_bins_min=1,
198
+ cdf_bins_max=3,
199
+ cor=True,
200
+ ),
201
+ }
202
+
91
203
 
92
204
  def _is_feasible_config1(c: MotionConfig) -> bool:
93
205
  t_min, t_max = c.t_min, _to_float(c.t_max, 0.0)
@@ -2,101 +2,101 @@
2
2
  <x_xy model="arm_1Seg">
3
3
  <options dt="0.01" gravity="0.0 0.0 9.81"/>
4
4
  <worldbody>
5
- <body joint="free" name="seg2_1Seg" pos="0.4 0.0 0.0" pos_min="0.2 -0.05 -0.05" pos_max="0.55 0.05 0.05" damping="5.0 5.0 5.0 25.0 25.0 25.0">
5
+ <body joint="free" name="seg3_1Seg" pos="0.4 0.0 0.0" pos_min="0.2 -0.05 -0.05" pos_max="0.55 0.05 0.05" damping="5.0 5.0 5.0 25.0 25.0 25.0">
6
6
  <geom pos="0.1 0.0 0.0" mass="1.0" color="dustin_exp_blue" edge_color="black" type="box" dim="0.2 0.05 0.05"/>
7
7
  <geom pos="0.05 0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
8
8
  <geom pos="0.15 -0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
9
- <omc pos="0.0 0.0 -0.02" name="seg2" pos_marker="1"/>
10
- <body joint="frozen" name="imu2_1Seg" pos="0.099999994 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.15 0.05 0.05">
9
+ <omc pos="0.0 0.0 -0.02" name="seg3" pos_marker="1"/>
10
+ <body joint="frozen" name="imu3_1Seg" pos="0.099999994 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.15 0.05 0.05">
11
11
  <geom mass="0.1" color="dustin_exp_orange" edge_color="black" type="box" dim="0.05 0.03 0.02"/>
12
- <omc pos="0.1 0.0 0.015" name="seg2" pos_marker="1"/>
12
+ <omc pos="0.1 0.0 0.015" name="seg3" pos_marker="1"/>
13
13
  </body>
14
14
  </body>
15
- <body joint="free" name="seg2_2Seg" pos="0.4 0.0 0.0" pos_min="0.2 -0.05 -0.05" pos_max="0.55 0.05 0.05" damping="5.0 5.0 5.0 25.0 25.0 25.0">
15
+ <body joint="free" name="seg3_2Seg" pos="0.4 0.0 0.0" pos_min="0.2 -0.05 -0.05" pos_max="0.55 0.05 0.05" damping="5.0 5.0 5.0 25.0 25.0 25.0">
16
16
  <geom pos="0.1 0.0 0.0" mass="1.0" color="dustin_exp_blue" edge_color="black" type="box" dim="0.2 0.05 0.05"/>
17
17
  <geom pos="0.05 0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
18
18
  <geom pos="0.15 -0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
19
- <omc pos="0.0 0.0 -0.02" name="seg2" pos_marker="1"/>
20
- <body joint="frozen" name="imu2_2Seg" pos="0.099999994 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.15 0.05 0.05">
19
+ <omc pos="0.0 0.0 -0.02" name="seg3" pos_marker="1"/>
20
+ <body joint="frozen" name="imu3_2Seg" pos="0.099999994 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.15 0.05 0.05">
21
21
  <geom mass="0.1" color="dustin_exp_orange" edge_color="black" type="box" dim="0.05 0.03 0.02"/>
22
- <omc pos="0.1 0.0 0.015" name="seg2" pos_marker="1"/>
22
+ <omc pos="0.1 0.0 0.015" name="seg3" pos_marker="1"/>
23
23
  </body>
24
- <body joint="ry" name="seg3_2Seg" pos="0.20000002 0.0 0.0" pos_min="0.0 -0.05 -0.05" pos_max="0.35 0.05 0.05" damping="3.0">
24
+ <body joint="ry" name="seg4_2Seg" pos="0.20000002 0.0 0.0" pos_min="0.0 -0.05 -0.05" pos_max="0.35 0.05 0.05" damping="3.0">
25
25
  <geom pos="0.1 0.0 0.0" mass="1.0" color="dustin_exp_white" edge_color="black" type="box" dim="0.2 0.05 0.05"/>
26
26
  <geom pos="0.1 0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
27
27
  <geom pos="0.15 -0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
28
- <omc pos="0.0 0.0 -0.02" name="seg3" pos_marker="2"/>
29
- <body joint="frozen" name="imu3_2Seg" pos="0.100000024 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.14999998 0.05 0.05">
28
+ <omc pos="0.0 0.0 -0.02" name="seg4" pos_marker="2"/>
29
+ <body joint="frozen" name="imu4_2Seg" pos="0.100000024 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.14999998 0.05 0.05">
30
30
  <geom mass="0.1" color="dustin_exp_orange" edge_color="black" type="box" dim="0.05 0.03 0.02"/>
31
- <omc pos="0.1 0.0 0.015" name="seg3" pos_marker="2"/>
31
+ <omc pos="0.1 0.0 0.015" name="seg4" pos_marker="2"/>
32
32
  </body>
33
33
  </body>
34
34
  </body>
35
- <body joint="free" name="seg2_3Seg" pos="0.4 0.0 0.0" pos_min="0.2 -0.05 -0.05" pos_max="0.55 0.05 0.05" damping="5.0 5.0 5.0 25.0 25.0 25.0">
35
+ <body joint="free" name="seg3_3Seg" pos="0.4 0.0 0.0" pos_min="0.2 -0.05 -0.05" pos_max="0.55 0.05 0.05" damping="5.0 5.0 5.0 25.0 25.0 25.0">
36
36
  <geom pos="0.1 0.0 0.0" mass="1.0" color="dustin_exp_blue" edge_color="black" type="box" dim="0.2 0.05 0.05"/>
37
37
  <geom pos="0.05 0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
38
38
  <geom pos="0.15 -0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
39
- <omc pos="0.0 0.0 -0.02" name="seg2" pos_marker="1"/>
40
- <body joint="frozen" name="imu2_3Seg" pos="0.099999994 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.15 0.05 0.05">
39
+ <omc pos="0.0 0.0 -0.02" name="seg3" pos_marker="1"/>
40
+ <body joint="frozen" name="imu3_3Seg" pos="0.099999994 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.15 0.05 0.05">
41
41
  <geom mass="0.1" color="dustin_exp_orange" edge_color="black" type="box" dim="0.05 0.03 0.02"/>
42
- <omc pos="0.1 0.0 0.015" name="seg2" pos_marker="1"/>
42
+ <omc pos="0.1 0.0 0.015" name="seg3" pos_marker="1"/>
43
43
  </body>
44
- <body joint="ry" name="seg3_3Seg" pos="0.20000002 0.0 0.0" pos_min="0.0 -0.05 -0.05" pos_max="0.35 0.05 0.05" damping="3.0">
44
+ <body joint="ry" name="seg4_3Seg" pos="0.20000002 0.0 0.0" pos_min="0.0 -0.05 -0.05" pos_max="0.35 0.05 0.05" damping="3.0">
45
45
  <geom pos="0.1 0.0 0.0" mass="1.0" color="dustin_exp_white" edge_color="black" type="box" dim="0.2 0.05 0.05"/>
46
46
  <geom pos="0.1 0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
47
47
  <geom pos="0.15 -0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
48
- <omc pos="0.0 0.0 -0.02" name="seg3" pos_marker="2"/>
49
- <body joint="frozen" name="imu3_3Seg" pos="0.100000024 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.14999998 0.05 0.05">
48
+ <omc pos="0.0 0.0 -0.02" name="seg4" pos_marker="2"/>
49
+ <body joint="frozen" name="imu4_3Seg" pos="0.100000024 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.14999998 0.05 0.05">
50
50
  <geom mass="0.1" color="dustin_exp_orange" edge_color="black" type="box" dim="0.05 0.03 0.02"/>
51
- <omc pos="0.1 0.0 0.015" name="seg3" pos_marker="2"/>
51
+ <omc pos="0.1 0.0 0.015" name="seg4" pos_marker="2"/>
52
52
  </body>
53
- <body joint="rz" name="seg4_3Seg" pos="0.19999999 0.0 0.0" pos_min="0.0 -0.05 -0.05" pos_max="0.35000002 0.05 0.05" damping="3.0">
53
+ <body joint="rz" name="seg5_3Seg" pos="0.19999999 0.0 0.0" pos_min="0.0 -0.05 -0.05" pos_max="0.35000002 0.05 0.05" damping="3.0">
54
54
  <geom pos="0.1 0.0 0.0" mass="1.0" color="dustin_exp_white" edge_color="black" type="box" dim="0.2 0.05 0.05"/>
55
55
  <geom pos="0.03 -0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
56
56
  <geom pos="0.17 -0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
57
- <omc pos="0.0 0.0 -0.02" name="seg4" pos_marker="4"/>
58
- <body joint="frozen" name="imu4_3Seg" pos="0.100000024 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.15000004 0.05 0.05">
57
+ <omc pos="0.0 0.0 -0.02" name="seg5" pos_marker="4"/>
58
+ <body joint="frozen" name="imu5_3Seg" pos="0.100000024 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.15000004 0.05 0.05">
59
59
  <geom mass="0.1" color="dustin_exp_orange" edge_color="black" type="box" dim="0.05 0.03 0.02"/>
60
- <omc pos="0.1 0.0 0.015" name="seg4" pos_marker="4"/>
60
+ <omc pos="0.1 0.0 0.015" name="seg5" pos_marker="4"/>
61
61
  </body>
62
62
  </body>
63
63
  </body>
64
64
  </body>
65
- <body joint="free" name="seg5_4Seg" pos="0.2 0.0 0.0" pos_min="0.15 -0.05 -0.05" pos_max="0.35 0.05 0.05" damping="5.0 5.0 5.0 25.0 25.0 25.0">
65
+ <body joint="free" name="seg2_4Seg" pos="0.2 0.0 0.0" pos_min="0.15 -0.05 -0.05" pos_max="0.35 0.05 0.05" damping="5.0 5.0 5.0 25.0 25.0 25.0">
66
66
  <geom pos="0.1 0.0 0.0" mass="1.0" color="dustin_exp_white" edge_color="black" type="box" dim="0.2 0.05 0.05"/>
67
67
  <geom pos="0.03 -0.05 0.0" mass="0.1" color="dustin_exp_white" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
68
68
  <geom pos="0.17 -0.05 0.0" mass="0.1" color="dustin_exp_white" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
69
- <omc pos="0.0 0.0 -0.02" name="seg5" pos_marker="2"/>
70
- <body joint="frozen" name="imu5_4Seg" pos="0.10000001 0.0 0.035" pos_min="0.049999997 -0.05 -0.05" pos_max="0.15000002 0.05 0.05">
69
+ <omc pos="0.0 0.0 -0.02" name="seg2" pos_marker="2"/>
70
+ <body joint="frozen" name="imu2_4Seg" pos="0.10000001 0.0 0.035" pos_min="0.049999997 -0.05 -0.05" pos_max="0.15000002 0.05 0.05">
71
71
  <geom mass="0.1" color="dustin_exp_orange" edge_color="black" type="box" dim="0.05 0.03 0.02"/>
72
- <omc pos="0.1 0.0 0.015" name="seg5" pos_marker="2"/>
72
+ <omc pos="0.1 0.0 0.015" name="seg2" pos_marker="2"/>
73
73
  </body>
74
- <body joint="rx" name="seg2_4Seg" pos="0.2 0.0 0.0" pos_min="0.0 -0.05 -0.05" pos_max="0.35000002 0.05 0.05" damping="3.0">
74
+ <body joint="rx" name="seg3_4Seg" pos="0.2 0.0 0.0" pos_min="0.0 -0.05 -0.05" pos_max="0.35000002 0.05 0.05" damping="3.0">
75
75
  <geom pos="0.1 0.0 0.0" mass="1.0" color="dustin_exp_blue" edge_color="black" type="box" dim="0.2 0.05 0.05"/>
76
76
  <geom pos="0.05 0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
77
77
  <geom pos="0.15 -0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
78
- <omc pos="0.0 0.0 -0.02" name="seg2" pos_marker="1"/>
79
- <body joint="frozen" name="imu2_4Seg" pos="0.099999994 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.15 0.05 0.05">
78
+ <omc pos="0.0 0.0 -0.02" name="seg3" pos_marker="1"/>
79
+ <body joint="frozen" name="imu3_4Seg" pos="0.099999994 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.15 0.05 0.05">
80
80
  <geom mass="0.1" color="dustin_exp_orange" edge_color="black" type="box" dim="0.05 0.03 0.02"/>
81
- <omc pos="0.1 0.0 0.015" name="seg2" pos_marker="1"/>
81
+ <omc pos="0.1 0.0 0.015" name="seg3" pos_marker="1"/>
82
82
  </body>
83
- <body joint="ry" name="seg3_4Seg" pos="0.20000002 0.0 0.0" pos_min="0.0 -0.05 -0.05" pos_max="0.35 0.05 0.05" damping="3.0">
83
+ <body joint="ry" name="seg4_4Seg" pos="0.20000002 0.0 0.0" pos_min="0.0 -0.05 -0.05" pos_max="0.35 0.05 0.05" damping="3.0">
84
84
  <geom pos="0.1 0.0 0.0" mass="1.0" color="dustin_exp_white" edge_color="black" type="box" dim="0.2 0.05 0.05"/>
85
85
  <geom pos="0.1 0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
86
86
  <geom pos="0.15 -0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
87
- <omc pos="0.0 0.0 -0.02" name="seg3" pos_marker="2"/>
88
- <body joint="frozen" name="imu3_4Seg" pos="0.100000024 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.14999998 0.05 0.05">
87
+ <omc pos="0.0 0.0 -0.02" name="seg4" pos_marker="2"/>
88
+ <body joint="frozen" name="imu4_4Seg" pos="0.100000024 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.14999998 0.05 0.05">
89
89
  <geom mass="0.1" color="dustin_exp_orange" edge_color="black" type="box" dim="0.05 0.03 0.02"/>
90
- <omc pos="0.1 0.0 0.015" name="seg3" pos_marker="2"/>
90
+ <omc pos="0.1 0.0 0.015" name="seg4" pos_marker="2"/>
91
91
  </body>
92
- <body joint="rz" name="seg4_4Seg" pos="0.19999999 0.0 0.0" pos_min="0.0 -0.05 -0.05" pos_max="0.35000002 0.05 0.05" damping="3.0">
92
+ <body joint="rz" name="seg5_4Seg" pos="0.19999999 0.0 0.0" pos_min="0.0 -0.05 -0.05" pos_max="0.35000002 0.05 0.05" damping="3.0">
93
93
  <geom pos="0.1 0.0 0.0" mass="1.0" color="dustin_exp_white" edge_color="black" type="box" dim="0.2 0.05 0.05"/>
94
94
  <geom pos="0.03 -0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
95
95
  <geom pos="0.17 -0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
96
- <omc pos="0.0 0.0 -0.02" name="seg4" pos_marker="4"/>
97
- <body joint="frozen" name="imu4_4Seg" pos="0.100000024 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.15000004 0.05 0.05">
96
+ <omc pos="0.0 0.0 -0.02" name="seg5" pos_marker="4"/>
97
+ <body joint="frozen" name="imu5_4Seg" pos="0.100000024 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.15000004 0.05 0.05">
98
98
  <geom mass="0.1" color="dustin_exp_orange" edge_color="black" type="box" dim="0.05 0.03 0.02"/>
99
- <omc pos="0.1 0.0 0.015" name="seg4" pos_marker="4"/>
99
+ <omc pos="0.1 0.0 0.015" name="seg5" pos_marker="4"/>
100
100
  </body>
101
101
  </body>
102
102
  </body>
@@ -2,101 +2,101 @@
2
2
  <x_xy model="arm_1Seg">
3
3
  <options dt="0.01" gravity="0.0 0.0 9.81"/>
4
4
  <worldbody>
5
- <body joint="free" name="seg2_1Seg" pos="0.4 0.0 0.0" pos_min="0.2 -0.05 -0.05" pos_max="0.55 0.05 0.05" damping="5.0 5.0 5.0 25.0 25.0 25.0">
5
+ <body joint="free" name="seg3_1Seg" pos="0.4 0.0 0.0" pos_min="0.2 -0.05 -0.05" pos_max="0.55 0.05 0.05" damping="5.0 5.0 5.0 25.0 25.0 25.0">
6
6
  <geom pos="0.1 0.0 0.0" mass="1.0" color="dustin_exp_blue" edge_color="black" type="box" dim="0.2 0.05 0.05"/>
7
7
  <geom pos="0.05 0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
8
8
  <geom pos="0.15 -0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
9
- <omc pos="0.0 0.0 -0.02" name="seg2" pos_marker="1"/>
10
- <body joint="frozen" name="imu2_1Seg" pos="0.099999994 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.15 0.05 0.05">
9
+ <omc pos="0.0 0.0 -0.02" name="seg3" pos_marker="1"/>
10
+ <body joint="frozen" name="imu3_1Seg" pos="0.099999994 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.15 0.05 0.05">
11
11
  <geom mass="0.1" color="dustin_exp_orange" edge_color="black" type="box" dim="0.05 0.03 0.02"/>
12
- <omc pos="0.1 0.0 0.015" name="seg2" pos_marker="1"/>
12
+ <omc pos="0.1 0.0 0.015" name="seg3" pos_marker="1"/>
13
13
  </body>
14
14
  </body>
15
- <body joint="free" name="seg2_2Seg" pos="0.4 0.0 0.0" pos_min="0.2 -0.05 -0.05" pos_max="0.55 0.05 0.05" damping="5.0 5.0 5.0 25.0 25.0 25.0">
15
+ <body joint="free" name="seg3_2Seg" pos="0.4 0.0 0.0" pos_min="0.2 -0.05 -0.05" pos_max="0.55 0.05 0.05" damping="5.0 5.0 5.0 25.0 25.0 25.0">
16
16
  <geom pos="0.1 0.0 0.0" mass="1.0" color="dustin_exp_blue" edge_color="black" type="box" dim="0.2 0.05 0.05"/>
17
17
  <geom pos="0.05 0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
18
18
  <geom pos="0.15 -0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
19
- <omc pos="0.0 0.0 -0.02" name="seg2" pos_marker="1"/>
20
- <body joint="frozen" name="imu2_2Seg" pos="0.099999994 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.15 0.05 0.05">
19
+ <omc pos="0.0 0.0 -0.02" name="seg3" pos_marker="1"/>
20
+ <body joint="frozen" name="imu3_2Seg" pos="0.099999994 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.15 0.05 0.05">
21
21
  <geom mass="0.1" color="dustin_exp_orange" edge_color="black" type="box" dim="0.05 0.03 0.02"/>
22
- <omc pos="0.1 0.0 0.015" name="seg2" pos_marker="1"/>
22
+ <omc pos="0.1 0.0 0.015" name="seg3" pos_marker="1"/>
23
23
  </body>
24
- <body joint="rr_imp" name="seg3_2Seg" pos="0.20000002 0.0 0.0" pos_min="0.0 -0.05 -0.05" pos_max="0.35 0.05 0.05" damping="3.0 3.0">
24
+ <body joint="rr_imp" name="seg4_2Seg" pos="0.20000002 0.0 0.0" pos_min="0.0 -0.05 -0.05" pos_max="0.35 0.05 0.05" damping="3.0 3.0">
25
25
  <geom pos="0.1 0.0 0.0" mass="1.0" color="dustin_exp_white" edge_color="black" type="box" dim="0.2 0.05 0.05"/>
26
26
  <geom pos="0.1 0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
27
27
  <geom pos="0.15 -0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
28
- <omc pos="0.0 0.0 -0.02" name="seg3" pos_marker="2"/>
29
- <body joint="frozen" name="imu3_2Seg" pos="0.100000024 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.14999998 0.05 0.05">
28
+ <omc pos="0.0 0.0 -0.02" name="seg4" pos_marker="2"/>
29
+ <body joint="frozen" name="imu4_2Seg" pos="0.100000024 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.14999998 0.05 0.05">
30
30
  <geom mass="0.1" color="dustin_exp_orange" edge_color="black" type="box" dim="0.05 0.03 0.02"/>
31
- <omc pos="0.1 0.0 0.015" name="seg3" pos_marker="2"/>
31
+ <omc pos="0.1 0.0 0.015" name="seg4" pos_marker="2"/>
32
32
  </body>
33
33
  </body>
34
34
  </body>
35
- <body joint="free" name="seg2_3Seg" pos="0.4 0.0 0.0" pos_min="0.2 -0.05 -0.05" pos_max="0.55 0.05 0.05" damping="5.0 5.0 5.0 25.0 25.0 25.0">
35
+ <body joint="free" name="seg3_3Seg" pos="0.4 0.0 0.0" pos_min="0.2 -0.05 -0.05" pos_max="0.55 0.05 0.05" damping="5.0 5.0 5.0 25.0 25.0 25.0">
36
36
  <geom pos="0.1 0.0 0.0" mass="1.0" color="dustin_exp_blue" edge_color="black" type="box" dim="0.2 0.05 0.05"/>
37
37
  <geom pos="0.05 0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
38
38
  <geom pos="0.15 -0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
39
- <omc pos="0.0 0.0 -0.02" name="seg2" pos_marker="1"/>
40
- <body joint="frozen" name="imu2_3Seg" pos="0.099999994 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.15 0.05 0.05">
39
+ <omc pos="0.0 0.0 -0.02" name="seg3" pos_marker="1"/>
40
+ <body joint="frozen" name="imu3_3Seg" pos="0.099999994 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.15 0.05 0.05">
41
41
  <geom mass="0.1" color="dustin_exp_orange" edge_color="black" type="box" dim="0.05 0.03 0.02"/>
42
- <omc pos="0.1 0.0 0.015" name="seg2" pos_marker="1"/>
42
+ <omc pos="0.1 0.0 0.015" name="seg3" pos_marker="1"/>
43
43
  </body>
44
- <body joint="rr_imp" name="seg3_3Seg" pos="0.20000002 0.0 0.0" pos_min="0.0 -0.05 -0.05" pos_max="0.35 0.05 0.05" damping="3.0 3.0">
44
+ <body joint="rr_imp" name="seg4_3Seg" pos="0.20000002 0.0 0.0" pos_min="0.0 -0.05 -0.05" pos_max="0.35 0.05 0.05" damping="3.0 3.0">
45
45
  <geom pos="0.1 0.0 0.0" mass="1.0" color="dustin_exp_white" edge_color="black" type="box" dim="0.2 0.05 0.05"/>
46
46
  <geom pos="0.1 0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
47
47
  <geom pos="0.15 -0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
48
- <omc pos="0.0 0.0 -0.02" name="seg3" pos_marker="2"/>
49
- <body joint="frozen" name="imu3_3Seg" pos="0.100000024 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.14999998 0.05 0.05">
48
+ <omc pos="0.0 0.0 -0.02" name="seg4" pos_marker="2"/>
49
+ <body joint="frozen" name="imu4_3Seg" pos="0.100000024 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.14999998 0.05 0.05">
50
50
  <geom mass="0.1" color="dustin_exp_orange" edge_color="black" type="box" dim="0.05 0.03 0.02"/>
51
- <omc pos="0.1 0.0 0.015" name="seg3" pos_marker="2"/>
51
+ <omc pos="0.1 0.0 0.015" name="seg4" pos_marker="2"/>
52
52
  </body>
53
- <body joint="rr_imp" name="seg4_3Seg" pos="0.19999999 0.0 0.0" pos_min="0.0 -0.05 -0.05" pos_max="0.35000002 0.05 0.05" damping="3.0 3.0">
53
+ <body joint="rr_imp" name="seg5_3Seg" pos="0.19999999 0.0 0.0" pos_min="0.0 -0.05 -0.05" pos_max="0.35000002 0.05 0.05" damping="3.0 3.0">
54
54
  <geom pos="0.1 0.0 0.0" mass="1.0" color="dustin_exp_white" edge_color="black" type="box" dim="0.2 0.05 0.05"/>
55
55
  <geom pos="0.03 -0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
56
56
  <geom pos="0.17 -0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
57
- <omc pos="0.0 0.0 -0.02" name="seg4" pos_marker="4"/>
58
- <body joint="frozen" name="imu4_3Seg" pos="0.100000024 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.15000004 0.05 0.05">
57
+ <omc pos="0.0 0.0 -0.02" name="seg5" pos_marker="4"/>
58
+ <body joint="frozen" name="imu5_3Seg" pos="0.100000024 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.15000004 0.05 0.05">
59
59
  <geom mass="0.1" color="dustin_exp_orange" edge_color="black" type="box" dim="0.05 0.03 0.02"/>
60
- <omc pos="0.1 0.0 0.015" name="seg4" pos_marker="4"/>
60
+ <omc pos="0.1 0.0 0.015" name="seg5" pos_marker="4"/>
61
61
  </body>
62
62
  </body>
63
63
  </body>
64
64
  </body>
65
- <body joint="free" name="seg5_4Seg" pos="0.2 0.0 0.0" pos_min="0.15 -0.05 -0.05" pos_max="0.35 0.05 0.05" damping="5.0 5.0 5.0 25.0 25.0 25.0">
65
+ <body joint="free" name="seg2_4Seg" pos="0.2 0.0 0.0" pos_min="0.15 -0.05 -0.05" pos_max="0.35 0.05 0.05" damping="5.0 5.0 5.0 25.0 25.0 25.0">
66
66
  <geom pos="0.1 0.0 0.0" mass="1.0" color="dustin_exp_white" edge_color="black" type="box" dim="0.2 0.05 0.05"/>
67
67
  <geom pos="0.03 -0.05 0.0" mass="0.1" color="dustin_exp_white" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
68
68
  <geom pos="0.17 -0.05 0.0" mass="0.1" color="dustin_exp_white" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
69
- <omc pos="0.0 0.0 -0.02" name="seg5" pos_marker="2"/>
70
- <body joint="frozen" name="imu5_4Seg" pos="0.10000001 0.0 0.035" pos_min="0.049999997 -0.05 -0.05" pos_max="0.15000002 0.05 0.05">
69
+ <omc pos="0.0 0.0 -0.02" name="seg2" pos_marker="2"/>
70
+ <body joint="frozen" name="imu2_4Seg" pos="0.10000001 0.0 0.035" pos_min="0.049999997 -0.05 -0.05" pos_max="0.15000002 0.05 0.05">
71
71
  <geom mass="0.1" color="dustin_exp_orange" edge_color="black" type="box" dim="0.05 0.03 0.02"/>
72
- <omc pos="0.1 0.0 0.015" name="seg5" pos_marker="2"/>
72
+ <omc pos="0.1 0.0 0.015" name="seg2" pos_marker="2"/>
73
73
  </body>
74
- <body joint="rr_imp" name="seg2_4Seg" pos="0.2 0.0 0.0" pos_min="0.0 -0.05 -0.05" pos_max="0.35000002 0.05 0.05" damping="3.0 3.0">
74
+ <body joint="rr_imp" name="seg3_4Seg" pos="0.2 0.0 0.0" pos_min="0.0 -0.05 -0.05" pos_max="0.35000002 0.05 0.05" damping="3.0 3.0">
75
75
  <geom pos="0.1 0.0 0.0" mass="1.0" color="dustin_exp_blue" edge_color="black" type="box" dim="0.2 0.05 0.05"/>
76
76
  <geom pos="0.05 0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
77
77
  <geom pos="0.15 -0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
78
- <omc pos="0.0 0.0 -0.02" name="seg2" pos_marker="1"/>
79
- <body joint="frozen" name="imu2_4Seg" pos="0.099999994 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.15 0.05 0.05">
78
+ <omc pos="0.0 0.0 -0.02" name="seg3" pos_marker="1"/>
79
+ <body joint="frozen" name="imu3_4Seg" pos="0.099999994 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.15 0.05 0.05">
80
80
  <geom mass="0.1" color="dustin_exp_orange" edge_color="black" type="box" dim="0.05 0.03 0.02"/>
81
- <omc pos="0.1 0.0 0.015" name="seg2" pos_marker="1"/>
81
+ <omc pos="0.1 0.0 0.015" name="seg3" pos_marker="1"/>
82
82
  </body>
83
- <body joint="rr_imp" name="seg3_4Seg" pos="0.20000002 0.0 0.0" pos_min="0.0 -0.05 -0.05" pos_max="0.35 0.05 0.05" damping="3.0 3.0">
83
+ <body joint="rr_imp" name="seg4_4Seg" pos="0.20000002 0.0 0.0" pos_min="0.0 -0.05 -0.05" pos_max="0.35 0.05 0.05" damping="3.0 3.0">
84
84
  <geom pos="0.1 0.0 0.0" mass="1.0" color="dustin_exp_white" edge_color="black" type="box" dim="0.2 0.05 0.05"/>
85
85
  <geom pos="0.1 0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
86
86
  <geom pos="0.15 -0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
87
- <omc pos="0.0 0.0 -0.02" name="seg3" pos_marker="2"/>
88
- <body joint="frozen" name="imu3_4Seg" pos="0.100000024 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.14999998 0.05 0.05">
87
+ <omc pos="0.0 0.0 -0.02" name="seg4" pos_marker="2"/>
88
+ <body joint="frozen" name="imu4_4Seg" pos="0.100000024 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.14999998 0.05 0.05">
89
89
  <geom mass="0.1" color="dustin_exp_orange" edge_color="black" type="box" dim="0.05 0.03 0.02"/>
90
- <omc pos="0.1 0.0 0.015" name="seg3" pos_marker="2"/>
90
+ <omc pos="0.1 0.0 0.015" name="seg4" pos_marker="2"/>
91
91
  </body>
92
- <body joint="rr_imp" name="seg4_4Seg" pos="0.19999999 0.0 0.0" pos_min="0.0 -0.05 -0.05" pos_max="0.35000002 0.05 0.05" damping="3.0 3.0">
92
+ <body joint="rr_imp" name="seg5_4Seg" pos="0.19999999 0.0 0.0" pos_min="0.0 -0.05 -0.05" pos_max="0.35000002 0.05 0.05" damping="3.0 3.0">
93
93
  <geom pos="0.1 0.0 0.0" mass="1.0" color="dustin_exp_white" edge_color="black" type="box" dim="0.2 0.05 0.05"/>
94
94
  <geom pos="0.03 -0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
95
95
  <geom pos="0.17 -0.05 0.0" mass="0.1" color="black" edge_color="black" type="box" dim="0.01 0.1 0.01"/>
96
- <omc pos="0.0 0.0 -0.02" name="seg4" pos_marker="4"/>
97
- <body joint="frozen" name="imu4_4Seg" pos="0.100000024 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.15000004 0.05 0.05">
96
+ <omc pos="0.0 0.0 -0.02" name="seg5" pos_marker="4"/>
97
+ <body joint="frozen" name="imu5_4Seg" pos="0.100000024 0.0 0.035" pos_min="0.050000012 -0.05 -0.05" pos_max="0.15000004 0.05 0.05">
98
98
  <geom mass="0.1" color="dustin_exp_orange" edge_color="black" type="box" dim="0.05 0.03 0.02"/>
99
- <omc pos="0.1 0.0 0.015" name="seg4" pos_marker="4"/>
99
+ <omc pos="0.1 0.0 0.015" name="seg5" pos_marker="4"/>
100
100
  </body>
101
101
  </body>
102
102
  </body>