Diff of /leg/README.md [000000] .. [20044c]

Switch to unified view

a b/leg/README.md
1
# MyoLeg
2
3
## General:
4
5
The myoLeg mujoco musculoskeletal (MSK) models are generated with taking [Rajagopal's full body gait model](https://github.com/opensim-org/opensim-models/tree/master/Models/RajagopalModel) as close
6
reference.
7
8
These generated mujoco MSK models have almost identical kinematics, and very similar muscle kinematics (moment arms) and kinetic (forces) properties.
9
10
11
## Conversion process:
12
13
The myoLeg models were generated using our developed automatic conversion pipeline (will release at June 2023).
14
15
Three Conversion steps were taken to generate the myoLeg models from the reference Osim model:
16
17
1. Basic element conversion [bone meshes, joint definitions, muscle paths, wrapping objects]
18
2. Moment arm optimization [matching the moment arm of each muscle by optimizing how muscles wrap over wrapping objects]
19
3. Muscle force optimizaiton [matching the muscle force-length relationship by optimizing muscle parameters]
20
21
After the conversion, a manual adjusting process is done to correct the abnormal results.
22
23
## Maunal adjustment:
24
25
1. Removed wrapping objects for glmax1_l, glmax2_l, glmax1_r, glmax2_r, psoas_l, and psoas_r muscles to avoid the wrapping path jumping. These wrapping objects are:
26
    - Gmax1_at_pelvis_l_wrap
27
    - Gmax2_at_pelvis_l_wrap
28
    - Gmax1_at_pelvis_r_wrap
29
    - Gmax2_at_pelvis_r_wrap
30
    - PS_at_brim_l_wrap
31
    - PS_at_brim_r_wrap
32
33
2. Changed the wrapping objects from 'cylinder' to 'sphere' for iliacus_l and iliacus_r muscles to avoid the wrapping path jumping. These wrapping objects are:
34
    - IL_at_brim_l_wrap
35
    - IL_at_brim_r_wrap
36
37
3. Adjusted the 'lmin' of gaslat_l, gaslat_r, semimem_l, and semimem_r muscles to avoid negative muscle forces.
38
    - changed from 0.1 to 0.05
39
40
4. Adjustments post conversion to optimize for kitnematic and dynamic behaviors
41
5. Inertial properties
42
6. Dynamics properties of the joints
43
44
45
## Contact Geometries:
46
47
The contact geometries take the well defined [Yeadon measurement method](https://yeadon.readthedocs.io/en/latest/measurements.html#measurements) as reference. Geometries are very close to the reference but slightly adjusted to fit our MKS mode. Contact properties were optimized for contact rich behaviors.
48
49
50
## Issues:
51
52
1. Endpoints (markers) below the knee joints have around 1 cm differences between the converted Mujoco and Osim model.
53
    - This may due to the constraints defined at the knee translation DoF. In Mujoco model, a polynomial function is used to approximate the Osim lookup table. Differences may generated.
54
    - Will look into this approximation to improve the accuracy.
55
56
2. Muscle moment arms inside the reference Osim model contains sudden changes (muscle wrapping path jumping), which need to be corrected.
57
    - This is why the manual adjustment is needed
58
59
3. Vastus muscle moment arms at the knee joint has relatively large differences (same sign, a few cm).
60
    - Need to check whether this is caused by the dependend joint constraints at knee.
61
    - This moment arm difference also affected the knee extenser muscle force, will look into in future.
62
63
4. Muscle forces are not identical between the converted MuJoCo and Osim models, due to the difference in muscle model definitions (stiff vs elastic tendons).
64
    - Will investage to implement elastic tendon inside mujoco.
65
66
## ChangeLog
67
68
**myoleg_v0.51(mj120).mjb**
69
- new keyposes added to mark convenient poses.
70
71
**myoleg_v0.52(mj120).mjb**
72
- Removing the extra body that made the torso twice as heavy. The body now is ~80 kgs.
73
74
**myoleg_v0.53(mj120).mjb**
75
- Improved collisions. Adding a height field.
76
77
**myoleg_v0.56(mj237).mjb**
78
- height field adjusted
79
- moved to mujoco 2.3.7