Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
456c08b
add test of muscles included in cal studies
bkje14 Mar 24, 2025
dc3cfff
add test of arm muscles in calibration studies
bkje14 Mar 24, 2025
1c93ee7
add test of muscles in cal studies for trunk
bkje14 Mar 24, 2025
3cdb65f
unique names for operation sequence members
bkje14 Mar 26, 2025
f476ab6
extend range of motion data
bkje14 Mar 26, 2025
a49de48
simplify trunk fixing
bkje14 Mar 26, 2025
eb8fa9d
add arm calibration studies
bkje14 Mar 26, 2025
8756ffa
fix typo in search string and add test to new cal type
bkje14 Mar 26, 2025
5cf3cd2
add neutral pos
bkje14 Mar 28, 2025
3c6a79e
remove double defined var
bkje14 Mar 28, 2025
90a1561
add scapula positions
bkje14 Mar 28, 2025
e695e94
Merge remote-tracking branch 'ammr-4.0/ammr4-beta' into bke-1301
bkje14 Mar 28, 2025
d786e57
update calibration template structure
bkje14 Mar 31, 2025
ac13ff1
refactor leg studies
bkje14 Apr 7, 2025
03ac6b3
refactor trunk DoFs
bkje14 Apr 8, 2025
4f5048d
refactor to one template
bkje14 Apr 8, 2025
3a6f6ab
Merge branch 'ammr4-beta' into bke-1301
bkje14 Apr 8, 2025
91512f7
update w. spine ActiveRoM
bkje14 Apr 8, 2025
b616fd7
start refactor arm studies
bkje14 Apr 8, 2025
05728f0
add studies for arms
bkje14 Apr 9, 2025
aec4dce
update
bkje14 Apr 9, 2025
da00400
Merge branch 'ammr4-beta' into bke-1301
bkje14 May 21, 2025
8973796
Merge branch 'ammr4-beta' into bke-1301
bkje14 May 21, 2025
2addd0a
use define instead of value
bkje14 May 21, 2025
cd21c74
set default in test
bkje14 May 23, 2025
05b876f
add simple muscle option to cal test
bkje14 Jun 2, 2025
bb30410
add joint stregnth test
bkje14 Jun 2, 2025
26777ce
Merge remote-tracking branch 'ammr-4.0/ammr4-beta' into bke-1301
bkje14 Jun 2, 2025
c4c1ba1
Merge commit '23b4b8c64143e6fd780a25982cf0c47d8657727a' into bke-1301
melund Jun 13, 2025
7ab47da
Merge remote-tracking branch 'origin/ammr4-beta' into bke-1301
melund Jun 13, 2025
57c05ad
add circular sweep code
bkje14 Aug 18, 2025
7d72888
update joint strength test
bkje14 Aug 18, 2025
99f07af
add matplotlib and pandas to env
bkje14 Aug 18, 2025
cfe3480
add sweep test script
bkje14 Aug 18, 2025
2e37296
Merge branch 'bke-1301' of https://github.com/AnyBody/AMMR4-Beta into…
bkje14 Aug 18, 2025
548dcd0
ignore images from tests
bkje14 Aug 18, 2025
abfc4dd
fix bad merge
bkje14 Aug 18, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 25 additions & 23 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,23 +1,25 @@
**.cache/*.*
*.pyc
**/Output/*
!**/Output/.gitkeep
!Application/MocapExamples/Plug-in-gait_Simple_GMFoot/Output/LowerExtremity_BareFootWalk.anyset
Docs/_build/*
Docs/auto_examples/*
Documentation/*
.pytest_cache/*
Tests/anytest-output/*
Tests/_anytest-output/*
.mypy_cache
.pytest_cache
Application/MocapExamples/Rehazenter-adult-walking-model/Output/*
*_[0-9][0-9][0-9][0-9].png
*.mp4
*_Preview.png
*).anymcr
*).txt

ffmpeg2pass-*.log
# pixi environments
.pixi
**.cache/*.*
*.pyc
**/Output/*
!**/Output/.gitkeep
!Application/MocapExamples/Plug-in-gait_Simple_GMFoot/Output/LowerExtremity_BareFootWalk.anyset
Docs/_build/*
Docs/auto_examples/*
Documentation/*
.pytest_cache/*
Tests/anytest-output/*
Tests/_anytest-output/*
.mypy_cache
.pytest_cache
Application/MocapExamples/Rehazenter-adult-walking-model/Output/*
*_[0-9][0-9][0-9][0-9].png
*.mp4
*_Preview.png
*).anymcr
*).txt

ffmpeg2pass-*.log
# pixi environments
.pixi

Tests/Calibration/**/*.png
144 changes: 144 additions & 0 deletions Body/AAUHuman/Arm/Calibration/2ParLeftCalStudies.any
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
TwoParCalibrationStudy LeftCal1Shoulder(
BodyModelRef = Main.HumanModel.BodyModel,
Side = Left,
SHOULDER = On
) = {
nStep = NumElemOf(ShoulderPositions);

MuscleArr = ObjSearch(
&..BodyModel.Left.ShoulderArm.Muscles,
{
"DeltoideusAnterior.*",
"DeltoideusLateral.*",
"DeltoideusPosterior.*",
"Infraspinatus.*",
"LatissimusDorsi.*",
"LevatorScapulae.*",
"PectoralisMajorClavicular.*",
"PectoralisMajorThoracic.*",
"PectoralisMinor.*",
"SerratusAnterior.*",
"Subscapularis.*",
"Supraspinatus.*",
},
"AnyMuscle"
);

ShoulderPositions = flattenptr(&.RangeOfMotion.Left.ShoulderArm.Shoulder.ActiveRoMShoulder);
};

TwoParCalibrationStudy LeftCal2Elbow(
BodyModelRef = Main.HumanModel.BodyModel,
Side = Left,
ELBOWFLEXION = On
) = {
nStep = NumElemOf(ElbowFlexionPositions);

MuscleArr = ObjSearch(
&..BodyModel.Left.ShoulderArm.Muscles,
{
"Anconeus.*",
"BicepsBrachii.*",
"Brachialis.*",
"Brachioradialis.*",
"Coracobrachialis.*",
"Triceps.*",
},
"AnyMuscle"
);

ElbowFlexionPositions = flattenptr(&.RangeOfMotion.Left.ShoulderArm.Elbow.ActiveRoMFlexion);
};

TwoParCalibrationStudy LeftCal3ElbowWrist(
BodyModelRef = Main.HumanModel.BodyModel,
Side = Left,
ELBOWFLEXION = On,
WRISTFLEXION = On
) = {
nStep = NumElemOf(ElbowFlexionPositions);

MuscleArr = ObjSearch(
&..BodyModel.Left.ShoulderArm.Muscles,
{
"Extensor*.*",
"FlexorCarpi*.*",
"FlexorDigi*.*",
"PalmarisLongus.*",
},
"AnyMuscle"
);

ElbowFlexionPositions = repmat(4, flattenptr(&.RangeOfMotion.Left.ShoulderArm.Elbow.ActiveRoMFlexion));
WristFlexionPositions = repmat(4, flattenptr(&.RangeOfMotion.Left.ShoulderArm.Wrist.ActiveRoMFlexion));
};

TwoParCalibrationStudy LeftCal4Wrist(
BodyModelRef = Main.HumanModel.BodyModel,
Side = Left,
WRISTFLEXION = On
) = {
nStep = NumElemOf(WristFlexionPositions);

MuscleArr = ObjSearch(
&..BodyModel.Left.ShoulderArm.Muscles,
{
"AbductorPollicis.*",
"FlexorPollicis*.*",
},
"AnyMuscle"
);

WristFlexionPositions = flattenptr(&.RangeOfMotion.Left.ShoulderArm.Wrist.ActiveRoMFlexion);
};

TwoParCalibrationStudy LeftCal5ScapulaClavicula(
BodyModelRef = Main.HumanModel.BodyModel,
Side = Left,
SCAPULAELEVATION = On,
SCAPULAPROTRACTION = On,
) = {
nStep = NumElemOf(ScapulaElevationPositions);

MuscleArr = ObjSearch(
&..BodyModel.Left.ShoulderArm.Muscles,
{
"Rhomboideus.*",
"Sternocleidomastoid.*",
"Teres*.*",
"Trapezius*.*",
},
"AnyMuscle"
);

ScapulaElevationPositions = repmat(2, flattenptr(&.RangeOfMotion.Left.ShoulderArm.Shoulder.ActiveRoMScapulaElevation));
ScapulaProtractionPositions = repmat(2, flattenptr(&.RangeOfMotion.Left.ShoulderArm.Shoulder.ActiveRoMScapulaProtraction));
};

TwoParCalibrationStudy LeftCal6ForearmPronationSupination(
BodyModelRef = Main.HumanModel.BodyModel,
Side = Left,
ELBOWPRONATION = On,
) = {
nStep = NumElemOf(ElbowPronationPositions);

MuscleArr = ObjSearch(
&..BodyModel.Left.ShoulderArm.Muscles,
{
"Pronator*.*",
"Supinator.*",
},
"AnyMuscle"
);

ElbowPronationPositions = flattenptr(&.RangeOfMotion.Left.ShoulderArm.Elbow.ActiveRoMPronation);
};

CalibrationSequence = {
AnyOperation& LeftCal1Shoulder = .LeftCal1Shoulder.FiberAndTendonLengthAdjustment;
AnyOperation& LeftCal2Elbow = .LeftCal2Elbow.FiberAndTendonLengthAdjustment;
AnyOperation& LeftCal3ElbowWrist = .LeftCal3ElbowWrist.FiberAndTendonLengthAdjustment;
AnyOperation& LeftCal4Wrist = .LeftCal4Wrist.FiberAndTendonLengthAdjustment;
AnyOperation& LeftCal5ScapulaClavicula = .LeftCal5ScapulaClavicula.FiberAndTendonLengthAdjustment;
AnyOperation& LeftCal6ForearmPronationSupination = .LeftCal6ForearmPronationSupination.FiberAndTendonLengthAdjustment;
};
144 changes: 144 additions & 0 deletions Body/AAUHuman/Arm/Calibration/2ParRightCalStudies.any
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
TwoParCalibrationStudy RightCal1Shoulder(
BodyModelRef = Main.HumanModel.BodyModel,
Side = Right,
SHOULDER = On
) = {
nStep = NumElemOf(ShoulderPositions);

MuscleArr = ObjSearch(
&..BodyModel.Right.ShoulderArm.Muscles,
{
"DeltoideusAnterior.*",
"DeltoideusLateral.*",
"DeltoideusPosterior.*",
"Infraspinatus.*",
"LatissimusDorsi.*",
"LevatorScapulae.*",
"PectoralisMajorClavicular.*",
"PectoralisMajorThoracic.*",
"PectoralisMinor.*",
"SerratusAnterior.*",
"Subscapularis.*",
"Supraspinatus.*",
},
"AnyMuscle"
);

ShoulderPositions = flattenptr(&.RangeOfMotion.Right.ShoulderArm.Shoulder.ActiveRoMShoulder);
};

TwoParCalibrationStudy RightCal2Elbow(
BodyModelRef = Main.HumanModel.BodyModel,
Side = Right,
ELBOWFLEXION = On
) = {
nStep = NumElemOf(ElbowFlexionPositions);

MuscleArr = ObjSearch(
&..BodyModel.Right.ShoulderArm.Muscles,
{
"Anconeus.*",
"BicepsBrachii.*",
"Brachialis.*",
"Brachioradialis.*",
"Coracobrachialis.*",
"Triceps.*",
},
"AnyMuscle"
);

ElbowFlexionPositions = flattenptr(&.RangeOfMotion.Right.ShoulderArm.Elbow.ActiveRoMFlexion);
};

TwoParCalibrationStudy RightCal3ElbowWrist(
BodyModelRef = Main.HumanModel.BodyModel,
Side = Right,
ELBOWFLEXION = On,
WRISTFLEXION = On
) = {
nStep = NumElemOf(ElbowFlexionPositions);

MuscleArr = ObjSearch(
&..BodyModel.Right.ShoulderArm.Muscles,
{
"Extensor*.*",
"FlexorCarpi*.*",
"FlexorDigi*.*",
"PalmarisLongus.*",
},
"AnyMuscle"
);

ElbowFlexionPositions = repmat(4, flattenptr(&.RangeOfMotion.Right.ShoulderArm.Elbow.ActiveRoMFlexion));
WristFlexionPositions = repmat(4, flattenptr(&.RangeOfMotion.Right.ShoulderArm.Wrist.ActiveRoMFlexion));
};

TwoParCalibrationStudy RightCal4Wrist(
BodyModelRef = Main.HumanModel.BodyModel,
Side = Right,
WRISTFLEXION = On
) = {
nStep = NumElemOf(WristFlexionPositions);

MuscleArr = ObjSearch(
&..BodyModel.Right.ShoulderArm.Muscles,
{
"AbductorPollicis.*",
"FlexorPollicis*.*",
},
"AnyMuscle"
);

WristFlexionPositions = flattenptr(&.RangeOfMotion.Right.ShoulderArm.Wrist.ActiveRoMFlexion);
};

TwoParCalibrationStudy RightCal5ScapulaClavicula(
BodyModelRef = Main.HumanModel.BodyModel,
Side = Right,
SCAPULAELEVATION = On,
SCAPULAPROTRACTION = On,
) = {
nStep = NumElemOf(ScapulaElevationPositions);

MuscleArr = ObjSearch(
&..BodyModel.Right.ShoulderArm.Muscles,
{
"Rhomboideus.*",
"Sternocleidomastoid.*",
"Teres*.*",
"Trapezius*.*",
},
"AnyMuscle"
);

ScapulaElevationPositions = repmat(2, flattenptr(&.RangeOfMotion.Right.ShoulderArm.Shoulder.ActiveRoMScapulaElevation));
ScapulaProtractionPositions = repmat(2, flattenptr(&.RangeOfMotion.Right.ShoulderArm.Shoulder.ActiveRoMScapulaProtraction));
};

TwoParCalibrationStudy RightCal6ForearmPronationSupination(
BodyModelRef = Main.HumanModel.BodyModel,
Side = Right,
ELBOWPRONATION = On,
) = {
nStep = NumElemOf(ElbowPronationPositions);

MuscleArr = ObjSearch(
&..BodyModel.Right.ShoulderArm.Muscles,
{
"Pronator*.*",
"Supinator.*",
},
"AnyMuscle"
);

ElbowPronationPositions = flattenptr(&.RangeOfMotion.Right.ShoulderArm.Elbow.ActiveRoMPronation);
};

CalibrationSequence = {
AnyOperation& Cal1Shoulder = .RightCal1Shoulder.FiberAndTendonLengthAdjustment;
AnyOperation& Cal2Elbow = .RightCal2Elbow.FiberAndTendonLengthAdjustment;
AnyOperation& Cal3ElbowWrist = .RightCal3ElbowWrist.FiberAndTendonLengthAdjustment;
AnyOperation& Cal4Wrist = .RightCal4Wrist.FiberAndTendonLengthAdjustment;
AnyOperation& Cal5ScapulaClavicula = .RightCal5ScapulaClavicula.FiberAndTendonLengthAdjustment;
AnyOperation& Cal6ForearmPronationSupination = .RightCal6ForearmPronationSupination.FiberAndTendonLengthAdjustment;
};
Loading