From d2f28e7595481459072c02be03abaa0f782cc8c3 Mon Sep 17 00:00:00 2001 From: TheoRouvier Date: Mon, 4 Apr 2022 15:29:31 +0200 Subject: [PATCH 01/46] Making STA compensation code more robust --- .../Scapula/ConvertClustertoScaplocLinear.m | 33 ++++++++++++++----- .../Scapula/ConvertClustertoScaplocRigid.m | 22 +++++++++---- 2 files changed, 40 insertions(+), 15 deletions(-) diff --git a/Functions/Calibration/Scapula/ConvertClustertoScaplocLinear.m b/Functions/Calibration/Scapula/ConvertClustertoScaplocLinear.m index 26d60848..d98c4c16 100644 --- a/Functions/Calibration/Scapula/ConvertClustertoScaplocLinear.m +++ b/Functions/Calibration/Scapula/ConvertClustertoScaplocLinear.m @@ -17,14 +17,19 @@ names_trial = fieldnames(markers_trial); prefix_trial = names_trial{contains(names_trial,'MTACDB')}; prefix_trial = prefix_trial(1:6); - SCAPDB_trial=markers_trial.([prefix_trial '_MTACDB']); + if strcmp(prefix_trial,'MTACDB') + prefix_trial=''; + else + prefix_trial = [prefix_trial '_']; + end + SCAPDB_trial=markers_trial.([prefix_trial 'MTACDB']); nb_frame = size(SCAPDB_trial,1); SCAPDB_trial = reshape(SCAPDB_trial, [nb_frame 1 3]); SCAPDB_trial = permute(SCAPDB_trial, [3,2,1]); - SCAPDH_trial = markers_trial.([prefix_trial '_MTACDM']); + SCAPDH_trial = markers_trial.([prefix_trial 'MTACDM']); SCAPDH_trial = reshape(SCAPDH_trial, [nb_frame 1 3]); SCAPDH_trial = permute(SCAPDH_trial, [3,2,1]); - SCAPDL_trial = markers_trial.([prefix_trial '_MTACDL']); + SCAPDL_trial = markers_trial.([prefix_trial 'MTACDL']); SCAPDL_trial = reshape(SCAPDL_trial, [nb_frame 1 3]); SCAPDL_trial = permute(SCAPDL_trial, [3,2,1]); @@ -32,9 +37,14 @@ names_arr = fieldnames(markers_arr); prefix_arr = names_arr{contains(names_arr,'MTACDB')}; prefix_arr = prefix_arr(1:6); - SCAPDB_arr=markers_arr.([prefix_arr '_MTACDB']); - SCAPDH_arr=markers_arr.([prefix_arr '_MTACDM']); - SCAPDL_arr=markers_arr.([prefix_arr '_MTACDL']); + if strcmp(prefix_arr,'MTACDB') + prefix_arr=''; + else + prefix_arr = [prefix_arr '_']; + end + SCAPDB_arr=markers_arr.([prefix_arr 'MTACDB']); + SCAPDH_arr=markers_arr.([prefix_arr 'MTACDM']); + SCAPDL_arr=markers_arr.([prefix_arr 'MTACDL']); % Rear scaploc SCAPLOCB_arr=markers_arr.('ScapLoc_SCLB'); SCAPLOCMM_arr=markers_arr.('ScapLoc_SCLM'); @@ -44,9 +54,14 @@ names_av = fieldnames(markers_av); prefix_av = names_av{contains(names_av,'MTACDB')}; prefix_av = prefix_av(1:6); - SCAPDB_av=markers_av.([prefix_av '_MTACDB']); - SCAPDH_av=markers_av.([prefix_av '_MTACDM']); - SCAPDL_av=markers_av.([prefix_av '_MTACDL']); + if strcmp(prefix_av,'MTACDB') + prefix_av=''; + else + prefix_av = [prefix_av '_']; + end + SCAPDB_av=markers_av.([prefix_av 'MTACDB']); + SCAPDH_av=markers_av.([prefix_av 'MTACDM']); + SCAPDL_av=markers_av.([prefix_av 'MTACDL']); % Advanced scaploc SCAPLOCB_av=markers_av.('ScapLoc_SCLB'); SCAPLOCMM_av=markers_av.('ScapLoc_SCLM'); diff --git a/Functions/Calibration/Scapula/ConvertClustertoScaplocRigid.m b/Functions/Calibration/Scapula/ConvertClustertoScaplocRigid.m index b814d62e..8b88bd7b 100644 --- a/Functions/Calibration/Scapula/ConvertClustertoScaplocRigid.m +++ b/Functions/Calibration/Scapula/ConvertClustertoScaplocRigid.m @@ -15,14 +15,19 @@ names_trial = fieldnames(markers_trial); prefix_trial = names_trial{contains(names_trial,'MTACDB')}; prefix_trial = prefix_trial(1:6); - SCAPDB_trial=markers_trial.([prefix_trial '_MTACDB']); + if strcmp(prefix_trial,'MTACDB') + prefix_trial=''; + else + prefix_trial = [prefix_trial '_']; + end + SCAPDB_trial=markers_trial.([prefix_trial 'MTACDB']); nb_frame = size(SCAPDB_trial,1); SCAPDB_trial = reshape(SCAPDB_trial, [nb_frame 1 3]); SCAPDB_trial = permute(SCAPDB_trial, [3,2,1]); - SCAPDH_trial = markers_trial.([prefix_trial '_MTACDM']); + SCAPDH_trial = markers_trial.([prefix_trial 'MTACDM']); SCAPDH_trial = reshape(SCAPDH_trial, [nb_frame 1 3]); SCAPDH_trial = permute(SCAPDH_trial, [3,2,1]); - SCAPDL_trial = markers_trial.([prefix_trial '_MTACDL']); + SCAPDL_trial = markers_trial.([prefix_trial 'MTACDL']); SCAPDL_trial = reshape(SCAPDL_trial, [nb_frame 1 3]); SCAPDL_trial = permute(SCAPDL_trial, [3,2,1]); @@ -30,9 +35,14 @@ names_ne = fieldnames(markers_ne); prefix_ne = names_ne{contains(names_ne,'MTACDB')}; prefix_ne = prefix_ne(1:6); - SCAPDB_ne=markers_ne.([prefix_ne '_MTACDB']); - SCAPDH_ne=markers_ne.([prefix_ne '_MTACDM']); - SCAPDL_ne=markers_ne.([prefix_ne '_MTACDL']); + if strcmp(prefix_ne,'MTACDB') + prefix_ne=''; + else + prefix_ne = [prefix_ne '_']; + end + SCAPDB_ne=markers_ne.([prefix_ne 'MTACDB']); + SCAPDH_ne=markers_ne.([prefix_ne 'MTACDM']); + SCAPDL_ne=markers_ne.([prefix_ne 'MTACDL']); % Neutral scaploc SCAPLOCB_ne=markers_ne.('ScapLoc_SCLB'); SCAPLOCMM_ne=markers_ne.('ScapLoc_SCLM'); From 900cad8d7827adef954dec4987a8f68f265e6df1 Mon Sep 17 00:00:00 2001 From: LivetClr Date: Mon, 25 Apr 2022 10:51:55 +0200 Subject: [PATCH 02/46] Constrained velocities and accelerations --- Functions/Dynamics/InverseDynamics.m | 6 ++--- Functions/Kinematics/InverseKinematicsLM.m | 31 ++++++++++++++++++++++ 2 files changed, 34 insertions(+), 3 deletions(-) diff --git a/Functions/Dynamics/InverseDynamics.m b/Functions/Dynamics/InverseDynamics.m index 5fb2132a..cbd61cbf 100644 --- a/Functions/Dynamics/InverseDynamics.m +++ b/Functions/Dynamics/InverseDynamics.m @@ -67,11 +67,11 @@ %% articular speed and acceleration dt=1/freq; - dq=derivee2(dt,q); % vitesses - ddq=derivee2(dt,dq); % acc�l�rations - + dq=InverseKinematicsResults.JointCoordinatesFirstDerivative' ; % vitesses + ddq=InverseKinematicsResults.JointCoordinatesSecondDerivative' ; % acc�l�rations nbframe=size(q,1); + %% D�finition des donn�es cin�matiques du pelvis % (position / vitesse / acc�l�ration / orientation / vitesse angulaire / acc�l�ration angulaire) % Kinematical data for Pelvis (Position/speed/acceleration/angles/angular speed/angular acceleration) diff --git a/Functions/Kinematics/InverseKinematicsLM.m b/Functions/Kinematics/InverseKinematicsLM.m index 0b0af354..ca4b7f29 100644 --- a/Functions/Kinematics/InverseKinematicsLM.m +++ b/Functions/Kinematics/InverseKinematicsLM.m @@ -242,6 +242,35 @@ time=real_markers(1).time'; +freq=1/time(2); +%% articular speed and acceleration + +dt=1/freq; +dq=derivee2(dt,q')'; % vitesses +ddq=derivee2(dt,dq')'; % acc�l�rations + +[solid_path1,solid_path2,num_solid,num_markers]=Data_ClosedLoop(BiomechanicalModel.OsteoArticularModel); + +dependancies=KinematicDependancy(BiomechanicalModel.OsteoArticularModel); + + + % Closed-loop constraints + for f=1:nb_frame + K=ConstraintsJacobian(BiomechanicalModel,q(:,f),solid_path1,solid_path2,num_solid,num_markers,ones(size(q(:,f),1),1),0.0001,dependancies); + Kdev=ConstraintsJacobianDerivative(BiomechanicalModel,q(:,f),solid_path1,solid_path2,num_solid,num_markers,ones(size(q(:,f),1),1),0.0001,dependancies); + G = null(K); + nvdq(:,f) = sum(dq(:,f)'*G.*G,2); + + + A = [K zeros(size(K)) ; reshape(pagemtimes(Kdev,nvdq(:,f)),size(K)) K]; + G2 = null(A); + xtilde = sum([dq(:,f) ; ddq(:,f)]'*G2.*G2,2); + + nvddq(:,f) = xtilde(length(nvdq(:,f))+1:end); + + end + + %% Save data ExperimentalData.FirstFrame = Firstframe; ExperimentalData.LastFrame = Lastframe; @@ -249,6 +278,8 @@ ExperimentalData.Time = time; InverseKinematicResults.JointCoordinates = q; +InverseKinematicResults.JointCoordinatesFirstDerivative = nvdq; +InverseKinematicResults.JointCoordinatesSecondDerivative = nvddq; InverseKinematicResults.FreeJointCoordinates = q6dof; InverseKinematicResults.ReconstructionError = KinematicsError; InverseKinematicResults.NonLinearConstraint = ceq; From ef82f97e7e26923eb236eb9c65023d24c00e1c29 Mon Sep 17 00:00:00 2001 From: LivetClr Date: Thu, 19 May 2022 10:00:46 +0200 Subject: [PATCH 03/46] Gaining some computation time + minor bug fix for consistent velocities and accelerations --- .../ConstraintProjectionDerivative.m | 411 ++++++++++++++++++ .../ConstraintsJacobianDerivative.m | 54 +++ Functions/Kinematics/CostFunctionLM.m | 6 +- Functions/Kinematics/IK_Jacobian.m | 22 + Functions/Kinematics/InverseKinematicsLM.m | 60 ++- Functions/Kinematics/JacobianMarker.m | 17 + .../Kinematics/SymbolicFunctionGenerationIK.m | 130 +++++- .../Osteoarticular/Arm/ModelParts/Upperarm.m | 2 + .../UpperTrunk/ModelParts/Scapula_Shoulder.m | 6 + 9 files changed, 687 insertions(+), 21 deletions(-) create mode 100644 Functions/Kinematics/ConstraintProjectionDerivative.m create mode 100644 Functions/Kinematics/ConstraintsJacobianDerivative.m create mode 100644 Functions/Kinematics/IK_Jacobian.m create mode 100644 Functions/Kinematics/JacobianMarker.m diff --git a/Functions/Kinematics/ConstraintProjectionDerivative.m b/Functions/Kinematics/ConstraintProjectionDerivative.m new file mode 100644 index 00000000..ac49b2dc --- /dev/null +++ b/Functions/Kinematics/ConstraintProjectionDerivative.m @@ -0,0 +1,411 @@ +function [ceq]=ConstraintProjectionDerivative(Human_model,solid_path1,solid_path2,num_solid,num_markers,q,k,qchoix,String) +% Non-linear equation used in the inverse kinematics step for closed loops +% +% INPUT +% - Human_model: osteo-articular model (see the Documentation for the +% structure) +% - solid_path1 : vector of one of the two paths to close the loop +% - solid_path2 : vector of the other of the two paths to close the loop +% - num_solid : vector of the number of solid where the anatomical point must join the +% origin of another joint to close the loop +% - num_markers : vector of the position in the list "anat_position" that +% corresponds to the point to close the loop +% - q: vector of joint coordinates at a given instant +% - k: vector of homothety coefficient +% +% OUTPUT +% - c: non-linar inequality +% - ceq: non-linear equality +%________________________________________________________ +% +% Licence +% Toolbox distributed under GPL 3.0 Licence +%________________________________________________________ +% +% Authors : Antoine Muller, Charles Pontonnier, Pierre Puchaud and +% Georges Dumont +%________________________________________________________ + +% Contraints initialization + +%ceq=zeros(9*length(num_solid),1); + +if strcmp(String,"all") + ceq=zeros(6*length(num_solid),6); +else + ceq=zeros(6*length(num_solid),1); +end + + +for pp=1:numel(num_solid) + + if isempty(solid_path2{pp}) % if the beginning coincides with the end of the loop + + % Computation on path + path = solid_path1{pp}; + ind = find(path==qchoix); + + if (~isempty(ind) && ind~=1) + + [Human_model,p,R] = ForwardKinematics_ClosedLoop(Human_model,1,[0 0 0]',path(1:ind),[0 0 0]',eye(3),q,k); + + + % if strcmp(String,"all") + % + % for idx=1:3 %Translation + % vec=[0 0 0]'; + % vec(idx)=1; + % ptemp = R*vec; + % + % ceq(1+6*(pp-1),idx)=0; + % ceq(2+6*(pp-1),idx)=0; + % ceq(3+6*(pp-1),idx)=0; + % + % ceq(4+6*(pp-1),idx)=ptemp(1); + % ceq(5+6*(pp-1),idx)=ptemp(2); + % ceq(6+6*(pp-1),idx)=ptemp(3); + % end + % + % for idx=1:3 %Rotation + % vec=[0 0 0]'; + % vec(idx)=1; + % s = Human_model(num_solid(pp)).c + Human_model(num_solid(pp)).anat_position{num_markers(pp),2}; % position with respects to the position of the mother solid joint of the closed loop + % Rtemp = R*wedge(vec); + % ptemp = 0*p; + % + % if ~isempty(mainpath(ind+1:end)) + % [Human_model,ptemp,Rtemp] = ForwardKinematics_ClosedLoop(Human_model,1,0*s,mainpath(ind+1:end),0*p,Rtemp,q,k); + % end + % if ~isempty(intersect(mainpath,num_solid(pp))) % Finding the solid with the anatomical position to be respected + % ptemp = Rtemp*s ; + % end + % ceq(1+6*(pp-1),idx+3)=Rtemp(1,1); + % ceq(2+6*(pp-1),idx+3)=Rtemp(2,2); + % ceq(3+6*(pp-1),idx+3)=Rtemp(3,3); + % + % ceq(4+6*(pp-1),idx+3)=ptemp(1); + % ceq(5+6*(pp-1),idx+3)=ptemp(2); + % ceq(6+6*(pp-1),idx+3)=ptemp(3); + % end + % + % else + + if Human_model(qchoix).joint==1 + + + s = Human_model(num_solid(pp)).c + Human_model(num_solid(pp)).anat_position{num_markers(pp),2}; % position with respects to the position of the mother solid joint of the closed loop + Rtemp = R*wedge(Human_model(qchoix).a)*wedge(Human_model(qchoix).a); + ptemp = 0*p; + + if ~isempty(mainpath(ind+1:end)) + [Human_model,ptemp,Rtemp] = ForwardKinematics_ClosedLoop(Human_model,1,0*s,mainpath(ind+1:end),0*p,Rtemp,q,k); + end + if ~isempty(intersect(mainpath,num_solid(pp))) % Finding the solid with the anatomical position to be respected + ptemp = Rtemp*s ; + end + + + ceq(1+6*(pp-1))=Rtemp(1,1); + ceq(2+6*(pp-1))=Rtemp(2,2); + ceq(3+6*(pp-1))=Rtemp(3,3); + % ceq(4+9*(pp-1))=Rtemp(1,2); + % ceq(5+9*(pp-1))=Rtemp(1,3); + % ceq(6+9*(pp-1))=Rtemp(2,3); + ceq(4+6*(pp-1))=ptemp(1); + ceq(5+6*(pp-1))=ptemp(2); + ceq(6+6*(pp-1))=ptemp(3); + + else + ptemp = R*Human_model(qchoix).a; + + ceq(1+6*(pp-1))=0; + ceq(2+6*(pp-1))=0; + ceq(3+6*(pp-1))=0; + % ceq(4+9*(pp-1))=0; + % ceq(5+9*(pp-1))=0; + % ceq(6+9*(pp-1))=0; + ceq(4+6*(pp-1))=0; + ceq(5+6*(pp-1))=0; + ceq(6+6*(pp-1))=0; + + end + + %end + + + + + end + + else + if isempty(solid_path1{pp}) % if the beginning coincides with the end of the loop + + + % Computation on path + path = solid_path2{pp}; + ind = find(path==qchoix); + + if (~isempty(ind) && ind~=1) + + [Human_model,p,R] = ForwardKinematics_ClosedLoop(Human_model,1,[0 0 0]',path(1:ind),[0 0 0]',eye(3),q,k); + + +% if strcmp(String,"all") +% +% for idx=1:3 %Translation +% vec=[0 0 0]'; +% vec(idx)=1; +% ptemp = R*vec; +% +% ceq(1+6*(pp-1),idx)=0; +% ceq(2+6*(pp-1),idx)=0; +% ceq(3+6*(pp-1),idx)=0; +% +% ceq(4+6*(pp-1),idx)=ptemp(1); +% ceq(5+6*(pp-1),idx)=ptemp(2); +% ceq(6+6*(pp-1),idx)=ptemp(3); +% end +% +% for idx=1:3 %Rotation +% vec=[0 0 0]'; +% vec(idx)=1; +% +% s = Human_model(num_solid(pp)).c + Human_model(num_solid(pp)).anat_position{num_markers(pp),2}; % position with respects to the position of the mother solid joint of the closed loop +% Rtemp = R*wedge(vec); +% ptemp = 0*p; +% +% if ~isempty(mainpath(ind+1:end)) +% [Human_model,ptemp,Rtemp] = ForwardKinematics_ClosedLoop(Human_model,1,0*s,mainpath(ind+1:end),0*p,Rtemp,q,k); +% end +% if ~isempty(intersect(mainpath,num_solid(pp))) % Finding the solid with the anatomical position to be respected +% ptemp = Rtemp*s ; +% end +% +% +% ceq(1+6*(pp-1),idx+3)=Rtemp(1,1); +% ceq(2+6*(pp-1),idx+3)=Rtemp(2,2); +% ceq(3+6*(pp-1),idx+3)=Rtemp(3,3); +% +% ceq(4+6*(pp-1),idx+3)=ptemp(1); +% ceq(5+6*(pp-1),idx+3)=ptemp(2); +% ceq(6+6*(pp-1),idx+3)=ptemp(3); +% end +% +% else + + if Human_model(qchoix).joint==1 + + + s = Human_model(num_solid(pp)).c + Human_model(num_solid(pp)).anat_position{num_markers(pp),2}; % position with respects to the position of the mother solid joint of the closed loop + Rtemp = R*wedge(Human_model(qchoix).a)*wedge(Human_model(qchoix).a); + ptemp = 0*p; + + if ~isempty(mainpath(ind+1:end)) + [Human_model,ptemp,Rtemp] = ForwardKinematics_ClosedLoop(Human_model,1,0*s,mainpath(ind+1:end),0*p,Rtemp,q,k); + end + if ~isempty(intersect(mainpath,num_solid(pp))) % Finding the solid with the anatomical position to be respected + ptemp = Rtemp*s ; + end + + + ceq(1+6*(pp-1))=Rtemp(1,1); + ceq(2+6*(pp-1))=Rtemp(2,2); + ceq(3+6*(pp-1))=Rtemp(3,3); + % ceq(4+9*(pp-1))=Rtemp(1,2); + % ceq(5+9*(pp-1))=Rtemp(1,3); + % ceq(6+9*(pp-1))=Rtemp(2,3); + ceq(4+6*(pp-1))=ptemp(1); + ceq(5+6*(pp-1))=ptemp(2); + ceq(6+6*(pp-1))=ptemp(3); + + else + ptemp = R*Human_model(qchoix).a; + + ceq(1+6*(pp-1))=0; + ceq(2+6*(pp-1))=0; + ceq(3+6*(pp-1))=0; + % ceq(4+9*(pp-1))=0; + % ceq(5+9*(pp-1))=0; + % ceq(6+9*(pp-1))=0; + ceq(4+6*(pp-1))=0; + ceq(5+6*(pp-1))=0; + ceq(6+6*(pp-1))=0; + + end + %end + + + + end + + + + else% if the loop is cut elsewhere in the loop + + % Computation on path + path1 = solid_path1{pp}; + ind1 = find(path1==qchoix); + + path2 = solid_path2{pp}; + ind2 = find(path2==qchoix); + + ind=[]; + + if ~isempty(ind1) + mainpath = path1; + secondarypath = path2; + ind = ind1; + + elseif ~isempty(ind2) + mainpath = path2; + secondarypath = path1; + ind = ind2; + + end + + if (~isempty(ind) && ind~=1) + + + + [Human_model,p,R] = ForwardKinematics_ClosedLoop(Human_model,1,[0 0 0]',mainpath(1:ind),[0 0 0]',eye(3),q,k); + [Human_model,~,R_ClosedLoop2] = ForwardKinematics_ClosedLoop(Human_model,1,[0 0 0],secondarypath,[0 0 0]',eye(3),q,k); + + + +% if strcmp(String,"all") +% +% for idx=1:3 %Translation +% vec=[0 0 0]'; +% vec(idx)=1; +% +% ptemp = R*vec; +% +% +% if ~isempty(ind1) +% +% +% ceq(1+6*(pp-1),idx)=0; +% ceq(2+6*(pp-1),idx)=0; +% ceq(3+6*(pp-1),idx)=0; +% +% ceq(4+6*(pp-1),idx)=-ptemp(1); +% ceq(5+6*(pp-1),idx)=-ptemp(2); +% ceq(6+6*(pp-1),idx)=-ptemp(3); +% +% else +% +% ceq(1+6*(pp-1),idx)=0; +% ceq(2+6*(pp-1),idx)=0; +% ceq(3+6*(pp-1),idx)=0; +% +% ceq(4+6*(pp-1),idx)=ptemp(1); +% ceq(5+6*(pp-1),idx)=ptemp(2); +% ceq(6+6*(pp-1),idx)=ptemp(3); +% +% end +% end +% +% for idx=1:3 %Rotation +% vec=[0 0 0]'; +% vec(idx)=1; +% +% s = Human_model(num_solid(pp)).c + Human_model(num_solid(pp)).anat_position{num_markers(pp),2}; % position with respects to the position of the mother solid joint of the closed loop +% Rtemp = R*wedge(vec); +% ptemp = 0*p; +% +% if ~isempty(mainpath(ind+1:end)) +% [Human_model,ptemp,Rtemp] = ForwardKinematics_ClosedLoop(Human_model,1,0*s,mainpath(ind+1:end),0*p,Rtemp,q,k); +% end +% if ~isempty(intersect(mainpath,num_solid(pp))) % Finding the solid with the anatomical position to be respected +% ptemp = Rtemp*s ; +% end +% +% +% if ~isempty(ind1) +% Rtemp= Rtemp*R_ClosedLoop2'; +% +% ceq(1+6*(pp-1),idx+3)=Rtemp(1,1); +% ceq(2+6*(pp-1),idx+3)=Rtemp(2,2); +% ceq(3+6*(pp-1),idx+3)=Rtemp(3,3); +% +% ceq(4+6*(pp-1),idx+3)=-ptemp(1); +% ceq(5+6*(pp-1),idx+3)=-ptemp(2); +% ceq(6+6*(pp-1),idx+3)=-ptemp(3); +% +% else +% +% Rtemp= -Rtemp*R_ClosedLoop2'; +% +% +% ceq(1+6*(pp-1),idx+3)=Rtemp(1,1); +% ceq(2+6*(pp-1),idx+3)=Rtemp(2,2); +% ceq(3+6*(pp-1),idx+3)=Rtemp(3,3); +% +% ceq(4+6*(pp-1),idx+3)=ptemp(1); +% ceq(5+6*(pp-1),idx+3)=ptemp(2); +% ceq(6+6*(pp-1),idx+3)=ptemp(3); +% end +% +% end +% +% else + + if Human_model(qchoix).joint==1 + s = Human_model(num_solid(pp)).c + Human_model(num_solid(pp)).anat_position{num_markers(pp),2}; % position with respects to the position of the mother solid joint of the closed loop + Rtemp = R*wedge(Human_model(qchoix).a)*wedge(Human_model(qchoix).a); + ptemp = 0*p; + + if ~isempty(mainpath(ind+1:end)) + [Human_model,ptemp,Rtemp] = ForwardKinematics_ClosedLoop(Human_model,1,0*s,mainpath(ind+1:end),0*p,Rtemp,q,k); + end + if ~isempty(intersect(mainpath,num_solid(pp))) % Finding the solid with the anatomical position to be respected + ptemp = Rtemp*s ; + end + + if ~isempty(ind1) + Rtemp= Rtemp*R_ClosedLoop2'; + + ceq(1+6*(pp-1))=Rtemp(1,1); + ceq(2+6*(pp-1))=Rtemp(2,2); + ceq(3+6*(pp-1))=Rtemp(3,3); + % ceq(4+9*(pp-1))=Rtemp(1,2); + % ceq(5+9*(pp-1))=Rtemp(1,3); + % ceq(6+9*(pp-1))=Rtemp(2,3); + ceq(4+6*(pp-1))=-ptemp(1); + ceq(5+6*(pp-1))=-ptemp(2); + ceq(6+6*(pp-1))=-ptemp(3); + else + Rtemp= -Rtemp*R_ClosedLoop2'; + ceq(1+6*(pp-1))=Rtemp(1,1); + ceq(2+6*(pp-1))=Rtemp(2,2); + ceq(3+6*(pp-1))=Rtemp(3,3); + % ceq(4+9*(pp-1))=Rtemp(1,2); + % ceq(5+9*(pp-1))=Rtemp(1,3); + % ceq(6+9*(pp-1))=Rtemp(2,3); + ceq(4+6*(pp-1))=ptemp(1); + ceq(5+6*(pp-1))=ptemp(2); + ceq(6+6*(pp-1))=ptemp(3); + + end + else + ptemp = R*Human_model(qchoix).a; + + ceq(1+6*(pp-1))=0; + ceq(2+6*(pp-1))=0; + ceq(3+6*(pp-1))=0; + ceq(4+9*(pp-1))=0; + ceq(5+9*(pp-1))=0; + ceq(6+9*(pp-1))=0; + + + end + %end + + + end + end + end +end + + +end \ No newline at end of file diff --git a/Functions/Kinematics/ConstraintsJacobianDerivative.m b/Functions/Kinematics/ConstraintsJacobianDerivative.m new file mode 100644 index 00000000..f7ee3107 --- /dev/null +++ b/Functions/Kinematics/ConstraintsJacobianDerivative.m @@ -0,0 +1,54 @@ +function Kdev=ConstraintsJacobianDerivative(BiomechanicalModel,q,solid_path1,solid_path2,num_solid,num_markers,k,dq,dependancies) +% Return the constraint matrix K, which is the jacobian of the constraints +% by q + +% INPUT +% - Human_model: osteo-articular model (see the Documentation for the +% structure) +% - q: vector of joint coordinates at a given instant +% - solid_path1 : vector of one of the two paths to close the loop +% - solid_path2 : vector of the other of the two paths to close the loop +% - num_solid : vector of the number of solid where the anatomical point must join the +% origin of another joint to close the loo +% - num_markers : vector of the position in the list "anat_position" that +% corresponds to the point to close the loop +% - k: vector of homothety coefficient +% - dp: differentiation step +% - dependancies: structure where are defined all kinematic dependancies + +% OUTPUT +% - K : matrix of the derivatives of the constraints by q +%________________________________________________________ +% +% Licence +% Toolbox distributed under GPL 3.0 Licence +%________________________________________________________ +% +% Authors : Antoine Muller, Charles Pontonnier, Pierre Puchaud and +% Georges Dumont +%________________________________________________________ + +for qchoix=1:length(q) + qp=q; + qm=q; + qp(qchoix)=qp(qchoix)+dq; + qm(qchoix)=qm(qchoix)-dq; + Kp = ConstraintsJacobian(BiomechanicalModel,qp,solid_path1,solid_path2,num_solid,num_markers,k,dq,dependancies); + Km = ConstraintsJacobian(BiomechanicalModel,qm,solid_path1,solid_path2,num_solid,num_markers,k,dq,dependancies); + Kdev(:,:,qchoix) = (Kp - Km)/(2*dq); + +% Kdev2(:,:,qchoix) = ConstraintProjectionDerivative(BiomechanicalModel.OsteoArticularModel,solid_path1,solid_path2,num_solid,num_markers,q,k,qchoix,"one"); + +end + + + + + + + + + + + +end \ No newline at end of file diff --git a/Functions/Kinematics/CostFunctionLM.m b/Functions/Kinematics/CostFunctionLM.m index 69bf2a60..0713cb32 100644 --- a/Functions/Kinematics/CostFunctionLM.m +++ b/Functions/Kinematics/CostFunctionLM.m @@ -1,4 +1,4 @@ -function func=CostFunctionLM(q,positions,gamma,hclosedloophandle,zeta,hbutees,weights) +function [func,J]=CostFunctionLM(q,positions,gamma,hclosedloophandle,zeta,hbutees,weights, l_inf1,l_sup1,Aeq_ik,J_marqueurs_handle) % Limit penalisation for LM algorithm % % INPUT @@ -36,4 +36,8 @@ func = [ dX ; gamma*constraints ; zeta*hbutees(q)]; + if nargout > 1 % Two output arguments + J = IK_Jacobian(q,pcut,Rcut, l_inf1,l_sup1,Aeq_ik,gamma,zeta, J_marqueurs_handle); % Jacobian of the function evaluated at q + end + end \ No newline at end of file diff --git a/Functions/Kinematics/IK_Jacobian.m b/Functions/Kinematics/IK_Jacobian.m new file mode 100644 index 00000000..17e5f0fa --- /dev/null +++ b/Functions/Kinematics/IK_Jacobian.m @@ -0,0 +1,22 @@ +function J = IK_Jacobian(q,pcut,Rcut,l_inf1,l_sup1,Aeq_ik,gamma,zeta,J_marqueurs_handle) + +J_marqueurs = J_marqueurs_handle(q,pcut,Rcut); + +J_closedloop = Jacobian_closedloop(q,pcut,Rcut); + +J_Aek = Aeq_ik; + +idxsup = q>l_sup1; +idxinf = q Date: Thu, 19 May 2022 16:40:34 +0200 Subject: [PATCH 04/46] Minor bug fix - taking marker weights in jacobian computation - q,dq,ddq after calibration - coupling added --- .../Geometrical/GeometricalCalibration.m | 38 ++++++++++++++----- Functions/Kinematics/CostFunctionLM.m | 2 +- Functions/Kinematics/IK_Jacobian.m | 4 +- .../MuscleForces/MomentArmsComputationInit.m | 2 + 4 files changed, 34 insertions(+), 12 deletions(-) diff --git a/Functions/Calibration/Geometrical/GeometricalCalibration.m b/Functions/Calibration/Geometrical/GeometricalCalibration.m index 09dda680..08b431b8 100644 --- a/Functions/Calibration/Geometrical/GeometricalCalibration.m +++ b/Functions/Calibration/Geometrical/GeometricalCalibration.m @@ -302,39 +302,59 @@ syms theta phi real % latitude longitude - Human_model_calib(j).kinematic_dependancy.q=matlabFunction(-calib_parameters.radius(1)*cos(theta)*cos(phi),'vars',{theta,phi}); + ft =matlabFunction(-calib_parameters.radius(1)*cos(theta)*cos(phi),'vars',[theta,phi]); + Human_model_calib(j).kinematic_dependancy.q= ft; + Human_model_calib(j).kinematic_dependancy.dq={jacobian(ft,[theta,phi])}; + Human_model_calib(j).kinematic_dependancy.ddq={jacobian(jacobian(ft,[theta,phi]),[theta,phi])}; case 'RScapuloThoracic_J2' syms theta real% latitude - - Human_model_calib(j).kinematic_dependancy.q=matlabFunction(calib_parameters.radius(2)*sin(theta),'vars',{theta}); - + + ft = matlabFunction(calib_parameters.radius(2)*sin(theta),'vars',[theta]); + + Human_model_calib(j).kinematic_dependancy.q= ft; + Human_model_calib(j).kinematic_dependancy.dq={jacobian(ft,[theta])}; + Human_model_calib(j).kinematic_dependancy.ddq={jacobian(jacobian(ft,[theta]),[theta])}; case 'RScapuloThoracic_J3' syms theta phi real % latitude longitude - Human_model_calib(j).kinematic_dependancy.q=matlabFunction(calib_parameters.radius(3)*cos(theta)*sin(phi),'vars',{theta,phi}); + ft =matlabFunction(calib_parameters.radius(3)*cos(theta)*sin(phi),'vars',[theta,phi]); + + Human_model_calib(j).kinematic_dependancy.q= ft; + Human_model_calib(j).kinematic_dependancy.dq={jacobian(ft,[theta,phi])}; + Human_model_calib(j).kinematic_dependancy.ddq={jacobian(jacobian(ft,[theta,phi]),[theta,phi])}; case 'LScapuloThoracic_J1' syms theta phi real % latitude longitude - Human_model_calib(j).kinematic_dependancy.q=matlabFunction(-calib_parameters.radius(4)*cos(theta)*cos(phi),'vars',{theta,phi}); - + ft=matlabFunction(-calib_parameters.radius(4)*cos(theta)*cos(phi),'vars',[theta,phi]); + Human_model_calib(j).kinematic_dependancy.q= ft; + Human_model_calib(j).kinematic_dependancy.dq={jacobian(ft,[theta,phi])}; + Human_model_calib(j).kinematic_dependancy.ddq={jacobian(jacobian(ft,[theta,phi]),[theta,phi])}; + case 'LScapuloThoracic_J2' syms theta real% latitude - Human_model_calib(j).kinematic_dependancy.q=matlabFunction(calib_parameters.radius(5)*sin(theta),'vars',{theta}); + ft =matlabFunction(calib_parameters.radius(5)*sin(theta),'vars',[theta]); + Human_model_calib(j).kinematic_dependancy.q= ft; + Human_model_calib(j).kinematic_dependancy.dq={jacobian(ft,[theta])}; + Human_model_calib(j).kinematic_dependancy.ddq={jacobian(jacobian(ft,[theta]),[theta])}; + case 'LScapuloThoracic_J3' syms theta phi real % latitude longitude - Human_model_calib(j).kinematic_dependancy.q=matlabFunction(-calib_parameters.radius(6)*cos(theta)*sin(phi),'vars',{theta,phi}); + ft=matlabFunction(-calib_parameters.radius(6)*cos(theta)*sin(phi),'vars',[theta,phi]); + Human_model_calib(j).kinematic_dependancy.q= ft; + Human_model_calib(j).kinematic_dependancy.dq={jacobian(ft,[theta,phi])}; + Human_model_calib(j).kinematic_dependancy.ddq={jacobian(jacobian(ft,[theta,phi]),[theta,phi])}; case 'RScapuloThoracic_J5' if sum(contains({Human_model_calib.name},'RScapuloThoracic_Jalpha')) diff --git a/Functions/Kinematics/CostFunctionLM.m b/Functions/Kinematics/CostFunctionLM.m index 0713cb32..074ab305 100644 --- a/Functions/Kinematics/CostFunctionLM.m +++ b/Functions/Kinematics/CostFunctionLM.m @@ -37,7 +37,7 @@ func = [ dX ; gamma*constraints ; zeta*hbutees(q)]; if nargout > 1 % Two output arguments - J = IK_Jacobian(q,pcut,Rcut, l_inf1,l_sup1,Aeq_ik,gamma,zeta, J_marqueurs_handle); % Jacobian of the function evaluated at q + J = IK_Jacobian(q,pcut,Rcut, l_inf1,l_sup1,Aeq_ik,gamma,zeta, J_marqueurs_handle,newweights); % Jacobian of the function evaluated at q end end \ No newline at end of file diff --git a/Functions/Kinematics/IK_Jacobian.m b/Functions/Kinematics/IK_Jacobian.m index 17e5f0fa..4b523da8 100644 --- a/Functions/Kinematics/IK_Jacobian.m +++ b/Functions/Kinematics/IK_Jacobian.m @@ -1,4 +1,4 @@ -function J = IK_Jacobian(q,pcut,Rcut,l_inf1,l_sup1,Aeq_ik,gamma,zeta,J_marqueurs_handle) +function J = IK_Jacobian(q,pcut,Rcut,l_inf1,l_sup1,Aeq_ik,gamma,zeta,J_marqueurs_handle,newweights) J_marqueurs = J_marqueurs_handle(q,pcut,Rcut); @@ -14,7 +14,7 @@ J_handle(diag(idxsup)) =2*(q(idxsup) - l_sup1(idxsup)); J_handle(diag(idxinf)) =2*(q(idxinf) - l_inf1(idxinf)); -J = [-J_marqueurs ; gamma*J_closedloop ; gamma*J_Aek ; zeta*J_handle]; +J = [-newweights.*J_marqueurs ; gamma*J_closedloop ; gamma*J_Aek ; zeta*J_handle]; end diff --git a/Functions/MuscleForces/MomentArmsComputationInit.m b/Functions/MuscleForces/MomentArmsComputationInit.m index b8cb34db..d0bb4bc4 100644 --- a/Functions/MuscleForces/MomentArmsComputationInit.m +++ b/Functions/MuscleForces/MomentArmsComputationInit.m @@ -139,5 +139,7 @@ BiomechanicalModel.N_pos = N_pos; BiomechanicalModel.M_Bone = M_Bone; BiomechanicalModel.M_pos = M_pos; +BiomechanicalModel.Coupling = C; + end From c4589e7d161dbbfcb8bd41514d4f42d7a72540bd Mon Sep 17 00:00:00 2001 From: LivetClr Date: Thu, 19 May 2022 17:17:51 +0200 Subject: [PATCH 05/46] Computational gain for explicit constraints --- Functions/Kinematics/ConstraintsJacobian.m | 22 ++++++------------- .../Osteoarticular/Arm/ModelParts/Upperarm.m | 6 +++-- .../UpperTrunk/ModelParts/Scapula_Shoulder.m | 18 ++++++++++----- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/Functions/Kinematics/ConstraintsJacobian.m b/Functions/Kinematics/ConstraintsJacobian.m index 836e6a44..d270879e 100644 --- a/Functions/Kinematics/ConstraintsJacobian.m +++ b/Functions/Kinematics/ConstraintsJacobian.m @@ -43,26 +43,18 @@ if ~isempty(dependancies) for pp=1:size(dependancies,2) K(size(K,1)+1,dependancies(pp).solid) = -1; - for j=1:size(dependancies(pp).Joint,1) - qchoix=dependancies(pp).Joint(j); - qp=q; - qm=q; - qp(qchoix)=qp(qchoix)+dq; - qm(qchoix)=qm(qchoix)-dq; - f=dependancies(pp).q; - if size(dependancies(pp).Joint,1)==1 - dhp=f(qp(dependancies(pp).Joint(1))); - dhm=f(qm(dependancies(pp).Joint(1))); + + df = dependancies(pp).dq; + + if size(dependancies(pp).Joint,1)==1 + K(size(K,1),dependancies(pp).Joint)= df(q(dependancies(pp).Joint)); else if size(dependancies(pp).Joint,1)==2 - dhp=f(qp(dependancies(pp).Joint(1)),qp(dependancies(pp).Joint(2))); - dhm=f(qm(dependancies(pp).Joint(1)),qm(dependancies(pp).Joint(2))); + K(size(K,1),dependancies(pp).Joint)= df(q(dependancies(pp).Joint(1)),q(dependancies(pp).Joint(2))); end end - K(size(K,1),qchoix)=(dhp-dhm)/(2*dq); - - end + end end diff --git a/Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m b/Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m index 3cc48e11..c48e3bf9 100644 --- a/Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m +++ b/Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m @@ -379,9 +379,11 @@ syms theta_plane real plane_elev = -theta_plane; f_plane_elev = matlabFunction(plane_elev,'vars',{theta_plane}); +df_plane_elev = matlabFunction(f_plane_elev,'vars',{theta_plane}); +ddf_plane_elev = matlabFunction(df_plane_elev,'vars',{theta_plane}); OsteoArticularModel(incr_solid).kinematic_dependancy.q=f_plane_elev; -OsteoArticularModel(incr_solid).kinematic_dependancy.dq={jacobian(f_plane_elev,theta_plane)}; -OsteoArticularModel(incr_solid).kinematic_dependancy.ddq={jacobian(jacobian(f_plane_elev,theta_plane),theta_plane)}; +OsteoArticularModel(incr_solid).kinematic_dependancy.dq=df_plane_elev; +OsteoArticularModel(incr_solid).kinematic_dependancy.ddq=ddf_plane_elev; % Humerus % GH axial rotation (ISB recommandations: Wu et al. 2005) num_solid=num_solid+1; % number of the solid ... diff --git a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder.m b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder.m index 81926238..550f9e92 100644 --- a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder.m +++ b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder.m @@ -304,9 +304,11 @@ Human_model(incr_solid).kinematic_dependancy.Joint=[incr_solid+3; incr_solid+4]; % Thoracicellips % Kinematic dependancy function f_tx = matlabFunction(x,'vars',{theta,phi}); +df_tx = matlabFunction(jacobian(f_tx,[theta,phi]),'vars',{theta,phi}); +ddf_tx = matlabFunction(jacobian(df_tx,[theta,phi]),'vars',{theta,phi}); Human_model(incr_solid).kinematic_dependancy.q=f_tx; -Human_model(incr_solid).kinematic_dependancy.dq={jacobian(f_tx,[theta,phi])}; -Human_model(incr_solid).kinematic_dependancy.ddq={jacobian(jacobian(f_tx,[theta,phi]),[theta,phi])}; +Human_model(incr_solid).kinematic_dependancy.dq=df_tx; +Human_model(incr_solid).kinematic_dependancy.ddq=ddf_tx; Human_model(incr_solid).comment=[FullSide 'Scapulothoracic x displacement']; Human_model(incr_solid).FunctionalAngle=[FullSide 'Scapulothoracic x displacement']; @@ -340,9 +342,11 @@ Human_model(incr_solid).kinematic_dependancy.Joint=incr_solid+2; % Thoracicellips % Kinematic dependancy function f_ty = matlabFunction(y,'vars',{theta}); +d_fty = matlabFunction(jacobian(f_ty,[theta]),'vars',{theta}); +dd_fty = matlabFunction(jacobian(d_fty,[theta]),'vars',{theta}); Human_model(incr_solid).kinematic_dependancy.q=f_ty; -Human_model(incr_solid).kinematic_dependancy.dq={jacobian(f_ty,[theta])}; -Human_model(incr_solid).kinematic_dependancy.ddq={jacobian(jacobian(f_ty,[theta]),[theta])}; +Human_model(incr_solid).kinematic_dependancy.dq=d_fty; +Human_model(incr_solid).kinematic_dependancy.ddq=dd_fty; % ScapuloThoracic_J3 num_solid=num_solid+1; % solid number @@ -374,9 +378,11 @@ Human_model(incr_solid).kinematic_dependancy.Joint=[incr_solid+1; incr_solid+2]; % Thoracicellips % Kinematic dependancy function f_tz = matlabFunction(z,'vars',{theta,phi}); +df_tz = matlabFunction(jacobian(f_tz,[theta,phi]),'vars',{theta,phi}); +ddf_tz = matlabFunction(jacobian(df_tz,[theta,phi]),'vars',{theta,phi}); Human_model(incr_solid).kinematic_dependancy.q=f_tz; -Human_model(incr_solid).kinematic_dependancy.dq={jacobian(f_tz,[theta,phi])}; -Human_model(incr_solid).kinematic_dependancy.ddq={jacobian(jacobian(f_tz,[theta,phi]),[theta,phi])}; +Human_model(incr_solid).kinematic_dependancy.dq=df_tz; +Human_model(incr_solid).kinematic_dependancy.ddq=ddf_tz; % ScapuloThoracic_J4 num_solid=num_solid+1; % solid number From 408957ade257d7f152281e9992f3bef7f51be639 Mon Sep 17 00:00:00 2001 From: LivetClr Date: Thu, 2 Jun 2022 17:56:11 +0200 Subject: [PATCH 06/46] Computation time gain - jacobian in IK - KT computation improvement --- Functions/Kinematics/ConstraintsJacobian.m | 86 +++++++++++++++++-- Functions/Kinematics/Data_ClosedLoop.m | 2 +- .../Kinematics/ForwardPositionsandProj.m | 63 ++++++++++++++ Functions/Kinematics/IK_Jacobian.m | 2 +- Functions/Kinematics/InverseKinematicsLM.m | 31 ++++--- Functions/Kinematics/JacobianMarker.m | 2 +- .../Osteoarticular/Arm/ModelParts/Upperarm.m | 4 +- 7 files changed, 161 insertions(+), 29 deletions(-) create mode 100644 Functions/Kinematics/ForwardPositionsandProj.m diff --git a/Functions/Kinematics/ConstraintsJacobian.m b/Functions/Kinematics/ConstraintsJacobian.m index d270879e..8ab0830c 100644 --- a/Functions/Kinematics/ConstraintsJacobian.m +++ b/Functions/Kinematics/ConstraintsJacobian.m @@ -28,15 +28,85 @@ % Georges Dumont %________________________________________________________ + +% for qchoix=1:length(q) +% % qp=q; +% % qm=q; +% % qp(qchoix)=qp(qchoix)+dq; +% % qm(qchoix)=qm(qchoix)-dq; +% % [~,dhp]=NonLinCon_ClosedLoop_Num(BiomechanicalModel.OsteoArticularModel,solid_path1,solid_path2,num_solid,num_markers,qp,k); +% % [~,dhm]=NonLinCon_ClosedLoop_Num(BiomechanicalModel.OsteoArticularModel,solid_path1,solid_path2,num_solid,num_markers,qm,k); +% % K(:,qchoix)=(dhp-dhm)/(2*dq); +% K(:,qchoix) = ConstraintProjection(BiomechanicalModel.OsteoArticularModel,solid_path1,solid_path2,num_solid,num_markers,q,k,qchoix,"one"); +% end + +Human_model = BiomechanicalModel.OsteoArticularModel; + for qchoix=1:length(q) -% qp=q; -% qm=q; -% qp(qchoix)=qp(qchoix)+dq; -% qm(qchoix)=qm(qchoix)-dq; -% [~,dhp]=NonLinCon_ClosedLoop_Num(BiomechanicalModel.OsteoArticularModel,solid_path1,solid_path2,num_solid,num_markers,qp,k); -% [~,dhm]=NonLinCon_ClosedLoop_Num(BiomechanicalModel.OsteoArticularModel,solid_path1,solid_path2,num_solid,num_markers,qm,k); -% K(:,qchoix)=(dhp-dhm)/(2*dq); - K(:,qchoix) = ConstraintProjection(BiomechanicalModel.OsteoArticularModel,solid_path1,solid_path2,num_solid,num_markers,q,k,qchoix,"one"); + Human_model(qchoix).q = q(qchoix); +end + +for pp=1:numel(num_solid) + + path1 = solid_path1{pp}; + path2 = solid_path2{pp}; + ind1 = find(path1==qchoix); + + + [Human_model.R] = deal(zeros(3)); + [Human_model.Rproj] = deal(zeros(3)); + [Human_model.p] = deal([0 0 0]'); + [Human_model.pproj] = deal([0 0 0]'); + + + if Human_model(path1(1)).joint == 1 % liaison pivot + Human_model(path1(1)).R = Rodrigues(Human_model(path1(1)).a,q(path1(1)))*Rodrigues(Human_model(path1(1)).u,Human_model(path1(1)).theta); % orientation du rep�re + end + if Human_model(path1(1)).joint == 2 % liaison glissi�re + Human_model(path1(1)).p=Human_model(path1(1)).b + angle*Human_model(path1(1)).a; + end + + Human_model=ForwardPositionsandProj(Human_model,2,path1); + + Human_model3 = Human_model; + [Human_model3.R] = deal(zeros(3)); + [Human_model3.Rproj] = deal(zeros(3)); + [Human_model3.p] = deal([0 0 0]'); + [Human_model3.pproj] = deal([0 0 0]'); + + if Human_model3(path2(1)).joint == 1 % liaison pivot + Human_model3(path2(1)).R = Rodrigues(Human_model3(path2(1)).a,q(path2(1)))*Rodrigues(Human_model3(path1(1)).u,Human_model(path1(1)).theta); % orientation du rep�re + end + if Human_model3(path2(1)).joint == 2 % liaison glissi�re + Human_model3(path2(1)).p=Human_model3(path2(1)).b + angle*Human_model3(path2(1)).a; + end + + + Human_model3=ForwardPositionsandProj(Human_model3,2,path2); + + s = Human_model(num_solid(pp)).c + Human_model(num_solid(pp)).anat_position{num_markers(pp),2}; % position with respects to the position of the mother solid joint of the closed loop + + for kk=1:length(path1) + if Human_model(path1(kk)).joint ==1 + Ktest((1:3)+6*(pp-1),path1(kk)) = diag(Human_model(path1(kk)).Rproj*Human_model3(num_solid(pp)).R'); + Ktest((4:6)+6*(pp-1),path1(kk)) = ~isempty(ind1)*Human_model(path1(kk)).Rproj*s +... + (-1)^(isempty(ind1))*(isempty(ind1))*isempty(ind1)*Human_model(path1(kk)).pproj; + else + Ktest((4:6)+6*(pp-1),path1(kk)) = (-1)^(isempty(ind1))*Human_model(path1(kk)).R*Human_model(path1(kk)).a; + end + end + + + for kk=1:length(path2) + if Human_model(path2(kk)).joint ==1 + Ktest((1:3)+6*(pp-1),path2(kk)) = diag(Human_model3(path2(kk)).Rproj*Human_model(num_solid(pp)).R'); + Ktest((4:6)+6*(pp-1),path2(kk)) = isempty(ind1)*Human_model(path2(kk)).Rproj*s+... + (-1)^(~isempty(ind1))*(~isempty(ind1))*Human_model3(path2(kk)).pproj; + else + Ktest((4:6)+6*(pp-1),path2(kk)) = (-1)^(~isempty(ind1))*Human_model3(path2(kk)).R*Human_model(path1(kk)).a; + end + end + end diff --git a/Functions/Kinematics/Data_ClosedLoop.m b/Functions/Kinematics/Data_ClosedLoop.m index 1061aba8..df3f6cfd 100644 --- a/Functions/Kinematics/Data_ClosedLoop.m +++ b/Functions/Kinematics/Data_ClosedLoop.m @@ -9,7 +9,7 @@ % - solid_path1 : vector of one of the two paths to close the loop % - solid_path2 : vector of the other of the two paths to close the loop % - num_solid : vector of the number of solid where the anatomical point must join the -% origin of another joint to close the loo +% origin of another joint to close the loop % - num_markers : vector of the position in the list "anat_position" that % corresponds to the point to close the loop diff --git a/Functions/Kinematics/ForwardPositionsandProj.m b/Functions/Kinematics/ForwardPositionsandProj.m new file mode 100644 index 00000000..d87cdd8e --- /dev/null +++ b/Functions/Kinematics/ForwardPositionsandProj.m @@ -0,0 +1,63 @@ +function [Human_model] = ForwardPositionsandProj(Human_model,n,solid_path) +% Computation of spacial position and rotation for each solid starting from +% j +% +% INPUT +% - Human_model: osteo-articular model (see the Documentation for the +% structure) +% - j: current solid +% OUTPUT +% - Human_model: osteo-articular model with additional computations (see +% the Documentation for the structure) +%________________________________________________________ +% +% Licence +% Toolbox distributed under GPL 3.0 Licence +%________________________________________________________ +% +% Authors : Antoine Muller, Charles Pontonnier, Pierre Puchaud and +% Georges Dumont +%________________________________________________________ + +if n==(numel(solid_path)+1) % quand on arrive au bout de la cha�ne + return; +end + +%% Position vector and Rotation Matrix computation +if n~=0 + j=solid_path(n); % num�ro du solide + i=Human_model(j).mother; + + % Pin joint + if Human_model(j).joint == 1 + Human_model(j).p=Human_model(i).R*Human_model(j).b+Human_model(i).p; + Human_model(j).R=Human_model(i).R*Rodrigues(Human_model(j).a,Human_model(j).q)*Rodrigues(Human_model(j).u,Human_model(j).theta); + temporary = pagemtimes(reshape([Human_model(solid_path).Rproj],3,3,numel(solid_path)),Rodrigues(Human_model(j).a,Human_model(j).q)*Rodrigues(Human_model(j).u,Human_model(j).theta)); + + for kk=1:numel(solid_path) + Human_model(solid_path(kk)).Rproj = temporary(:,:,kk); + Human_model(solid_path(kk)).pproj = Human_model(solid_path(kk)).pproj+Human_model(solid_path(kk)).Rproj *Human_model(j).b; + end + + Human_model(j).Rproj=Human_model(j).R*wedge(Human_model(j).a); + end + + % Slide joint + if Human_model(j).joint == 2 + Human_model(j).p=Human_model(i).R*Human_model(j).b+Human_model(i).R*Human_model(j).a*Human_model(j).q+Human_model(i).p; + Human_model(j).R=Human_model(i).R*Rodrigues(Human_model(j).u,Human_model(j).theta); + temporary = pagemtimes(reshape([Human_model(solid_path).Rproj],3,3,numel(solid_path)),Rodrigues(Human_model(j).u,Human_model(j).theta)); + + for kk=1:numel(solid_path) + Human_model(solid_path(kk)).Rproj = temporary(:,:,kk); + Human_model(solid_path(kk)).pproj = Human_model(solid_path(kk)).pproj+Human_model(solid_path(kk)).Rproj *(Human_model(j).b+Human_model(j).a*Human_model(j).q); + end + + end +end + +n = n+1; + [Human_model] = ForwardPositionsandProj(Human_model,n,solid_path); + +end + diff --git a/Functions/Kinematics/IK_Jacobian.m b/Functions/Kinematics/IK_Jacobian.m index 4b523da8..9c2bfce4 100644 --- a/Functions/Kinematics/IK_Jacobian.m +++ b/Functions/Kinematics/IK_Jacobian.m @@ -14,7 +14,7 @@ J_handle(diag(idxsup)) =2*(q(idxsup) - l_sup1(idxsup)); J_handle(diag(idxinf)) =2*(q(idxinf) - l_inf1(idxinf)); -J = [-newweights.*J_marqueurs ; gamma*J_closedloop ; gamma*J_Aek ; zeta*J_handle]; +J = sparse([-newweights.*J_marqueurs ; gamma*J_closedloop ; gamma*J_Aek ; zeta*J_handle]); end diff --git a/Functions/Kinematics/InverseKinematicsLM.m b/Functions/Kinematics/InverseKinematicsLM.m index add14ea1..c07cf852 100644 --- a/Functions/Kinematics/InverseKinematicsLM.m +++ b/Functions/Kinematics/InverseKinematicsLM.m @@ -186,7 +186,7 @@ J_marqueurs_handle = @(q,pcut,Rcut) JacobianMarker(q,pcut,Rcut,Jfq,indexesNumericJfq , nonNumericJfq ,Jfcut,indexesNumericJfcut,nonNumericJfcut ,Jcutq ,... indexesNumericJcutq ,nonNumericJcutq, Jcutcut , indexesNumericJcutcut , nonNumericJcutcut); - + waitbar(1/nb_frame) optionsLM = optimset('Algorithm','Levenberg-Marquardt','Display','off','MaxIter',4e6,'MaxFunEval',5e6,'Jacobian','on','DerivativeCheck','off'); @@ -207,7 +207,6 @@ close(h) - %% Data processing if AnalysisParameters.IK.FilterActive % data filtering @@ -277,20 +276,20 @@ % % Closed-loop constraints -% for f=1:nb_frame -% K=ConstraintsJacobian(BiomechanicalModel,q(:,f),solid_path1,solid_path2,num_solid,num_markers,ones(size(q(:,f),1),1),0.0001,dependancies); -% Kdev=ConstraintsJacobianDerivative(BiomechanicalModel,q(:,f),solid_path1,solid_path2,num_solid,num_markers,ones(size(q(:,f),1),1),0.0001,dependancies); -% G = null(K); -% nvdq(:,f) = sum(dq(:,f)'*G.*G,2); -% -% -% A = [K zeros(size(K)) ; reshape(pagemtimes(Kdev,nvdq(:,f)),size(K)) K]; -% G2 = null(A); -% xtilde = sum([dq(:,f) ; ddq(:,f)]'*G2.*G2,2); -% -% nvddq(:,f) = xtilde(length(nvdq(:,f))+1:end); -% -% end + for f=1:nb_frame + K=ConstraintsJacobian(BiomechanicalModel,q(:,f),solid_path1,solid_path2,num_solid,num_markers,ones(size(q(:,f),1),1),0.0001,dependancies); + Kdev=ConstraintsJacobianDerivative(BiomechanicalModel,q(:,f),solid_path1,solid_path2,num_solid,num_markers,ones(size(q(:,f),1),1),0.0001,dependancies); + G = null(K); + nvdq(:,f) = sum(dq(:,f)'*G.*G,2); + + + A = [K zeros(size(K)) ; reshape(pagemtimes(Kdev,nvdq(:,f)),size(K)) K]; + G2 = null(A); + xtilde = sum([dq(:,f) ; ddq(:,f)]'*G2.*G2,2); + + nvddq(:,f) = xtilde(length(nvdq(:,f))+1:end); + + end %% Save data diff --git a/Functions/Kinematics/JacobianMarker.m b/Functions/Kinematics/JacobianMarker.m index 436ca504..61f9f9bc 100644 --- a/Functions/Kinematics/JacobianMarker.m +++ b/Functions/Kinematics/JacobianMarker.m @@ -10,7 +10,7 @@ % Jcutcut Jcutcut(indexesNumericJcutcut) = nonNumericJcutcut(q,pcut,Rcut); % J - J_marqueurs = Jfq + Jfcut*dJcutq(Jcutcut,Jcutq); + J_marqueurs = sparse(Jfq + Jfcut*dJcutq(Jcutcut,Jcutq)); diff --git a/Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m b/Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m index c48e3bf9..3f7877f0 100644 --- a/Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m +++ b/Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m @@ -379,8 +379,8 @@ syms theta_plane real plane_elev = -theta_plane; f_plane_elev = matlabFunction(plane_elev,'vars',{theta_plane}); -df_plane_elev = matlabFunction(f_plane_elev,'vars',{theta_plane}); -ddf_plane_elev = matlabFunction(df_plane_elev,'vars',{theta_plane}); +df_plane_elev = matlabFunction(jacobian(f_plane_elev,theta_plane),'vars',{theta_plane}); +ddf_plane_elev = matlabFunction(jacobian(df_plane_elev,theta_plane),'vars',{theta_plane}); OsteoArticularModel(incr_solid).kinematic_dependancy.q=f_plane_elev; OsteoArticularModel(incr_solid).kinematic_dependancy.dq=df_plane_elev; OsteoArticularModel(incr_solid).kinematic_dependancy.ddq=ddf_plane_elev; From ad5045f6ad84da8885a14c462db496fe568a7e31 Mon Sep 17 00:00:00 2001 From: LivetClr Date: Fri, 3 Jun 2022 13:17:29 +0200 Subject: [PATCH 07/46] Still improving computation time --- Functions/Kinematics/ConstraintsJacobian.m | 24 +++++++++---------- .../Kinematics/SymbolicFunctionGenerationIK.m | 7 ++++++ .../Optimization/ForcesComputationOptiNum.m | 9 ++----- 3 files changed, 21 insertions(+), 19 deletions(-) diff --git a/Functions/Kinematics/ConstraintsJacobian.m b/Functions/Kinematics/ConstraintsJacobian.m index 8ab0830c..95a53f26 100644 --- a/Functions/Kinematics/ConstraintsJacobian.m +++ b/Functions/Kinematics/ConstraintsJacobian.m @@ -1,4 +1,4 @@ -function K=ConstraintsJacobian(BiomechanicalModel,q,solid_path1,solid_path2,num_solid,num_markers,k,dq,dependancies) +function K=ConstraintsJacobian(Human_model,q,solid_path1,solid_path2,num_solid,num_markers,k,dq,dependancies) % Return the constraint matrix K, which is the jacobian of the constraints % by q @@ -34,13 +34,13 @@ % % qm=q; % % qp(qchoix)=qp(qchoix)+dq; % % qm(qchoix)=qm(qchoix)-dq; -% % [~,dhp]=NonLinCon_ClosedLoop_Num(BiomechanicalModel.OsteoArticularModel,solid_path1,solid_path2,num_solid,num_markers,qp,k); -% % [~,dhm]=NonLinCon_ClosedLoop_Num(BiomechanicalModel.OsteoArticularModel,solid_path1,solid_path2,num_solid,num_markers,qm,k); +% % [~,dhp]=NonLinCon_ClosedLoop_Num(Human_model,solid_path1,solid_path2,num_solid,num_markers,qp,k); +% % [~,dhm]=NonLinCon_ClosedLoop_Num(Human_model,solid_path1,solid_path2,num_solid,num_markers,qm,k); % % K(:,qchoix)=(dhp-dhm)/(2*dq); -% K(:,qchoix) = ConstraintProjection(BiomechanicalModel.OsteoArticularModel,solid_path1,solid_path2,num_solid,num_markers,q,k,qchoix,"one"); +% Ktest(:,qchoix) = ConstraintProjection(Human_model,solid_path1,solid_path2,num_solid,num_markers,q,k,qchoix,"one"); % end -Human_model = BiomechanicalModel.OsteoArticularModel; +K = sym(zeros(1,length(q))); for qchoix=1:length(q) Human_model(qchoix).q = q(qchoix); @@ -88,22 +88,22 @@ for kk=1:length(path1) if Human_model(path1(kk)).joint ==1 - Ktest((1:3)+6*(pp-1),path1(kk)) = diag(Human_model(path1(kk)).Rproj*Human_model3(num_solid(pp)).R'); - Ktest((4:6)+6*(pp-1),path1(kk)) = ~isempty(ind1)*Human_model(path1(kk)).Rproj*s +... - (-1)^(isempty(ind1))*(isempty(ind1))*isempty(ind1)*Human_model(path1(kk)).pproj; + K((1:3)+6*(pp-1),path1(kk)) = diag(Human_model(path1(kk)).Rproj*Human_model3(path2(end)).R'); + K((4:6)+6*(pp-1),path1(kk)) = ~isempty(ind1)*Human_model(path1(kk)).Rproj*s +... + (-1)^(isempty(ind1))*(isempty(ind1))*Human_model(path1(kk)).pproj; else - Ktest((4:6)+6*(pp-1),path1(kk)) = (-1)^(isempty(ind1))*Human_model(path1(kk)).R*Human_model(path1(kk)).a; + K((4:6)+6*(pp-1),path1(kk)) = (-1)^(isempty(ind1))*Human_model(path1(kk)).R*Human_model(path1(kk)).a; end end for kk=1:length(path2) if Human_model(path2(kk)).joint ==1 - Ktest((1:3)+6*(pp-1),path2(kk)) = diag(Human_model3(path2(kk)).Rproj*Human_model(num_solid(pp)).R'); - Ktest((4:6)+6*(pp-1),path2(kk)) = isempty(ind1)*Human_model(path2(kk)).Rproj*s+... + K((1:3)+6*(pp-1),path2(kk)) = diag(Human_model3(path2(kk)).Rproj*Human_model(path1(end)).R'); + K((4:6)+6*(pp-1),path2(kk)) = isempty(ind1)*Human_model3(path2(kk)).Rproj*s+... (-1)^(~isempty(ind1))*(~isempty(ind1))*Human_model3(path2(kk)).pproj; else - Ktest((4:6)+6*(pp-1),path2(kk)) = (-1)^(~isempty(ind1))*Human_model3(path2(kk)).R*Human_model(path1(kk)).a; + K((4:6)+6*(pp-1),path2(kk)) = (-1)^(~isempty(ind1))*Human_model3(path2(kk)).R*Human_model3(path2(kk)).a; end end diff --git a/Functions/Kinematics/SymbolicFunctionGenerationIK.m b/Functions/Kinematics/SymbolicFunctionGenerationIK.m index 568c5137..bfd8dd69 100644 --- a/Functions/Kinematics/SymbolicFunctionGenerationIK.m +++ b/Functions/Kinematics/SymbolicFunctionGenerationIK.m @@ -290,7 +290,14 @@ matlabFunction(Jclosed_loop,'file',['Symbolic_function/Jacobian_closedloop'],'vars',{q_red,pcut,Rcut}); +[solid_path1,solid_path2,num_solid,num_markers]=Data_ClosedLoop(Human_model); +dependancies=KinematicDependancy(Human_model); +% Closed-loop constraints + +KT=ConstraintsJacobian(Human_model,q,solid_path1,solid_path2,num_solid,num_markers,ones(size(q,1),1),0.0001,dependancies)'; + +matlabFunction(KT,'file',['Symbolic_function/Jacobian_closedloop_fullq'],'vars',{q}); %We delete p and R fields diff --git a/Functions/MuscleForces/Optimization/ForcesComputationOptiNum.m b/Functions/MuscleForces/Optimization/ForcesComputationOptiNum.m index ef3d3bcf..1ed65e97 100644 --- a/Functions/MuscleForces/Optimization/ForcesComputationOptiNum.m +++ b/Functions/MuscleForces/Optimization/ForcesComputationOptiNum.m @@ -92,19 +92,14 @@ h = waitbar(0,['Forces Computation (' filename ')']); - -[solid_path1,solid_path2,num_solid,num_markers]=Data_ClosedLoop(BiomechanicalModel.OsteoArticularModel); - -dependancies=KinematicDependancy(BiomechanicalModel.OsteoArticularModel); % Closed-loop constraints +KT = Jacobian_closedloop_fullq(q(:,1)); -KT=ConstraintsJacobian(BiomechanicalModel,q(:,1),solid_path1,solid_path2,num_solid,num_markers,ones(size(q,1),1),0.0001,dependancies)'; % tic(); % KT2 = FullConstraintsJacobian(BiomechanicalModel,q(:,1),solid_path1,solid_path2,num_solid,num_markers,ones(size(q,1),1),0.0000001,dependancies)'; % toc(); - lambda = zeros(size(KT,2),1); if isempty(lambda) @@ -139,7 +134,7 @@ for i=2:Nb_frames % for following frames % Closed-loop constraints - KT=ConstraintsJacobian(BiomechanicalModel,q(:,i),solid_path1,solid_path2,num_solid,num_markers,ones(size(q,1),1),0.0001,dependancies)'; + KT=Jacobian_closedloop_fullq(q(:,i)); %G = null(KT(idxj,:)'); %G=eye(size(KT)); From 9b77f6b19fa4e5b8f34f0552890416adf0cd6543 Mon Sep 17 00:00:00 2001 From: LivetClr Date: Tue, 14 Jun 2022 11:25:46 +0200 Subject: [PATCH 08/46] Making compatible version for R2022a --- .../Models/Osteoarticular/Arm/ModelParts/Upperarm.m | 4 ++-- .../UpperTrunk/ModelParts/Scapula_Shoulder.m | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m b/Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m index 3f7877f0..a79f1258 100644 --- a/Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m +++ b/Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m @@ -379,8 +379,8 @@ syms theta_plane real plane_elev = -theta_plane; f_plane_elev = matlabFunction(plane_elev,'vars',{theta_plane}); -df_plane_elev = matlabFunction(jacobian(f_plane_elev,theta_plane),'vars',{theta_plane}); -ddf_plane_elev = matlabFunction(jacobian(df_plane_elev,theta_plane),'vars',{theta_plane}); +df_plane_elev = matlabFunction(jacobian(plane_elev,theta_plane),'vars',{theta_plane}); +ddf_plane_elev = matlabFunction(jacobian(jacobian(plane_elev,theta_plane),theta_plane),'vars',{theta_plane}); OsteoArticularModel(incr_solid).kinematic_dependancy.q=f_plane_elev; OsteoArticularModel(incr_solid).kinematic_dependancy.dq=df_plane_elev; OsteoArticularModel(incr_solid).kinematic_dependancy.ddq=ddf_plane_elev; diff --git a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder.m b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder.m index 550f9e92..929232ee 100644 --- a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder.m +++ b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder.m @@ -304,8 +304,8 @@ Human_model(incr_solid).kinematic_dependancy.Joint=[incr_solid+3; incr_solid+4]; % Thoracicellips % Kinematic dependancy function f_tx = matlabFunction(x,'vars',{theta,phi}); -df_tx = matlabFunction(jacobian(f_tx,[theta,phi]),'vars',{theta,phi}); -ddf_tx = matlabFunction(jacobian(df_tx,[theta,phi]),'vars',{theta,phi}); +df_tx = matlabFunction(jacobian(x,[theta,phi]),'vars',{theta,phi}); +ddf_tx = matlabFunction(jacobian(jacobian(x,[theta,phi]),[theta,phi]),'vars',{theta,phi}); Human_model(incr_solid).kinematic_dependancy.q=f_tx; Human_model(incr_solid).kinematic_dependancy.dq=df_tx; Human_model(incr_solid).kinematic_dependancy.ddq=ddf_tx; @@ -342,8 +342,8 @@ Human_model(incr_solid).kinematic_dependancy.Joint=incr_solid+2; % Thoracicellips % Kinematic dependancy function f_ty = matlabFunction(y,'vars',{theta}); -d_fty = matlabFunction(jacobian(f_ty,[theta]),'vars',{theta}); -dd_fty = matlabFunction(jacobian(d_fty,[theta]),'vars',{theta}); +d_fty = matlabFunction(jacobian(y,[theta]),'vars',{theta}); +dd_fty = matlabFunction(jacobian(jacobian(y,[theta]),[theta]),'vars',{theta}); Human_model(incr_solid).kinematic_dependancy.q=f_ty; Human_model(incr_solid).kinematic_dependancy.dq=d_fty; Human_model(incr_solid).kinematic_dependancy.ddq=dd_fty; @@ -378,8 +378,8 @@ Human_model(incr_solid).kinematic_dependancy.Joint=[incr_solid+1; incr_solid+2]; % Thoracicellips % Kinematic dependancy function f_tz = matlabFunction(z,'vars',{theta,phi}); -df_tz = matlabFunction(jacobian(f_tz,[theta,phi]),'vars',{theta,phi}); -ddf_tz = matlabFunction(jacobian(df_tz,[theta,phi]),'vars',{theta,phi}); +df_tz = matlabFunction(jacobian(z,[theta,phi]),'vars',{theta,phi}); +ddf_tz = matlabFunction(jacobian(jacobian(z,[theta,phi]),[theta,phi]),'vars',{theta,phi}); Human_model(incr_solid).kinematic_dependancy.q=f_tz; Human_model(incr_solid).kinematic_dependancy.dq=df_tz; Human_model(incr_solid).kinematic_dependancy.ddq=ddf_tz; From 8356a16843f1c0d87bd5d6dcf1be3822b0463ba3 Mon Sep 17 00:00:00 2001 From: LivetClr Date: Tue, 14 Jun 2022 11:38:38 +0200 Subject: [PATCH 09/46] To continue for R2022a --- .../Geometrical/GeometricalCalibration.m | 69 ++++++++++++------- .../Kinematics/ForwardPositionsandProj.m | 6 +- 2 files changed, 47 insertions(+), 28 deletions(-) diff --git a/Functions/Calibration/Geometrical/GeometricalCalibration.m b/Functions/Calibration/Geometrical/GeometricalCalibration.m index 08b431b8..d7d85a47 100644 --- a/Functions/Calibration/Geometrical/GeometricalCalibration.m +++ b/Functions/Calibration/Geometrical/GeometricalCalibration.m @@ -302,59 +302,80 @@ syms theta phi real % latitude longitude - ft =matlabFunction(-calib_parameters.radius(1)*cos(theta)*cos(phi),'vars',[theta,phi]); + t1 = -calib_parameters.radius(1)*cos(theta)*cos(phi); + ft =matlabFunction(t1,'vars',[theta,phi]); + dft =matlabFunction(jacobian(t1,[theta,phi]),'vars',[theta,phi]); + ddft =matlabFunction(jacobian(jacobian(t1,[theta,phi]),[theta,phi]),'vars',[theta,phi]); Human_model_calib(j).kinematic_dependancy.q= ft; - Human_model_calib(j).kinematic_dependancy.dq={jacobian(ft,[theta,phi])}; - Human_model_calib(j).kinematic_dependancy.ddq={jacobian(jacobian(ft,[theta,phi]),[theta,phi])}; + Human_model_calib(j).kinematic_dependancy.dq={dft}; + Human_model_calib(j).kinematic_dependancy.ddq={ddft}; case 'RScapuloThoracic_J2' syms theta real% latitude - ft = matlabFunction(calib_parameters.radius(2)*sin(theta),'vars',[theta]); - - Human_model_calib(j).kinematic_dependancy.q= ft; - Human_model_calib(j).kinematic_dependancy.dq={jacobian(ft,[theta])}; - Human_model_calib(j).kinematic_dependancy.ddq={jacobian(jacobian(ft,[theta]),[theta])}; + t1 = calib_parameters.radius(2)*sin(theta); + + ft =matlabFunction(t1,'vars',[theta]); + dft =matlabFunction(jacobian(t1,[theta,phi]),'vars',[theta]); + ddft =matlabFunction(jacobian(jacobian(t1,[theta,phi]),[theta]),'vars',[theta]); + Human_model_calib(j).kinematic_dependancy.q= ft; + Human_model_calib(j).kinematic_dependancy.dq={dft}; + Human_model_calib(j).kinematic_dependancy.ddq={ddft}; + case 'RScapuloThoracic_J3' syms theta phi real % latitude longitude - ft =matlabFunction(calib_parameters.radius(3)*cos(theta)*sin(phi),'vars',[theta,phi]); + t1 = calib_parameters.radius(3)*cos(theta)*sin(phi); + ft =matlabFunction(t1,'vars',[theta,phi]); + dft =matlabFunction(jacobian(t1,[theta,phi]),'vars',[theta,phi]); + ddft =matlabFunction(jacobian(jacobian(t1,[theta,phi]),[theta,phi]),'vars',[theta,phi]); Human_model_calib(j).kinematic_dependancy.q= ft; - Human_model_calib(j).kinematic_dependancy.dq={jacobian(ft,[theta,phi])}; - Human_model_calib(j).kinematic_dependancy.ddq={jacobian(jacobian(ft,[theta,phi]),[theta,phi])}; + Human_model_calib(j).kinematic_dependancy.dq={dft}; + Human_model_calib(j).kinematic_dependancy.ddq={ddft}; case 'LScapuloThoracic_J1' syms theta phi real % latitude longitude - ft=matlabFunction(-calib_parameters.radius(4)*cos(theta)*cos(phi),'vars',[theta,phi]); - Human_model_calib(j).kinematic_dependancy.q= ft; - Human_model_calib(j).kinematic_dependancy.dq={jacobian(ft,[theta,phi])}; - Human_model_calib(j).kinematic_dependancy.ddq={jacobian(jacobian(ft,[theta,phi]),[theta,phi])}; - + t1=-calib_parameters.radius(4)*cos(theta)*cos(phi); + + ft =matlabFunction(t1,'vars',[theta,phi]); + dft =matlabFunction(jacobian(t1,[theta,phi]),'vars',[theta,phi]); + ddft =matlabFunction(jacobian(jacobian(t1,[theta,phi]),[theta,phi]),'vars',[theta,phi]); + Human_model_calib(j).kinematic_dependancy.q= ft; + Human_model_calib(j).kinematic_dependancy.dq={dft}; + Human_model_calib(j).kinematic_dependancy.ddq={ddft}; + case 'LScapuloThoracic_J2' syms theta real% latitude - ft =matlabFunction(calib_parameters.radius(5)*sin(theta),'vars',[theta]); + t1 = calib_parameters.radius(5)*sin(theta); + ft =matlabFunction(t1,'vars',[theta]); + dft =matlabFunction(jacobian(t1,[theta]),'vars',[theta]); + ddft =matlabFunction(jacobian(jacobian(t1,[theta]),[theta]),'vars',[theta]); Human_model_calib(j).kinematic_dependancy.q= ft; - Human_model_calib(j).kinematic_dependancy.dq={jacobian(ft,[theta])}; - Human_model_calib(j).kinematic_dependancy.ddq={jacobian(jacobian(ft,[theta]),[theta])}; - + Human_model_calib(j).kinematic_dependancy.dq={dft}; + Human_model_calib(j).kinematic_dependancy.ddq={ddft}; + case 'LScapuloThoracic_J3' syms theta phi real % latitude longitude - ft=matlabFunction(-calib_parameters.radius(6)*cos(theta)*sin(phi),'vars',[theta,phi]); + t1=-calib_parameters.radius(6)*cos(theta)*sin(phi); + + ft =matlabFunction(t1,'vars',[theta,phi]); + dft =matlabFunction(jacobian(t1,[theta,phi]),'vars',[theta,phi]); + ddft =matlabFunction(jacobian(jacobian(t1,[theta,phi]),[theta,phi]),'vars',[theta,phi]); + Human_model_calib(j).kinematic_dependancy.q= ft; + Human_model_calib(j).kinematic_dependancy.dq={dft}; + Human_model_calib(j).kinematic_dependancy.ddq={ddft}; - Human_model_calib(j).kinematic_dependancy.q= ft; - Human_model_calib(j).kinematic_dependancy.dq={jacobian(ft,[theta,phi])}; - Human_model_calib(j).kinematic_dependancy.ddq={jacobian(jacobian(ft,[theta,phi]),[theta,phi])}; case 'RScapuloThoracic_J5' if sum(contains({Human_model_calib.name},'RScapuloThoracic_Jalpha')) diff --git a/Functions/Kinematics/ForwardPositionsandProj.m b/Functions/Kinematics/ForwardPositionsandProj.m index d87cdd8e..0cd629e4 100644 --- a/Functions/Kinematics/ForwardPositionsandProj.m +++ b/Functions/Kinematics/ForwardPositionsandProj.m @@ -32,10 +32,9 @@ if Human_model(j).joint == 1 Human_model(j).p=Human_model(i).R*Human_model(j).b+Human_model(i).p; Human_model(j).R=Human_model(i).R*Rodrigues(Human_model(j).a,Human_model(j).q)*Rodrigues(Human_model(j).u,Human_model(j).theta); - temporary = pagemtimes(reshape([Human_model(solid_path).Rproj],3,3,numel(solid_path)),Rodrigues(Human_model(j).a,Human_model(j).q)*Rodrigues(Human_model(j).u,Human_model(j).theta)); for kk=1:numel(solid_path) - Human_model(solid_path(kk)).Rproj = temporary(:,:,kk); + Human_model(solid_path(kk)).Rproj = Human_model(solid_path(kk)).Rproj*Rodrigues(Human_model(j).a,Human_model(j).q)*Rodrigues(Human_model(j).u,Human_model(j).theta); Human_model(solid_path(kk)).pproj = Human_model(solid_path(kk)).pproj+Human_model(solid_path(kk)).Rproj *Human_model(j).b; end @@ -46,10 +45,9 @@ if Human_model(j).joint == 2 Human_model(j).p=Human_model(i).R*Human_model(j).b+Human_model(i).R*Human_model(j).a*Human_model(j).q+Human_model(i).p; Human_model(j).R=Human_model(i).R*Rodrigues(Human_model(j).u,Human_model(j).theta); - temporary = pagemtimes(reshape([Human_model(solid_path).Rproj],3,3,numel(solid_path)),Rodrigues(Human_model(j).u,Human_model(j).theta)); for kk=1:numel(solid_path) - Human_model(solid_path(kk)).Rproj = temporary(:,:,kk); + Human_model(solid_path(kk)).Rproj =Human_model(solid_path(kk)).Rproj*Rodrigues(Human_model(j).u,Human_model(j).theta); Human_model(solid_path(kk)).pproj = Human_model(solid_path(kk)).pproj+Human_model(solid_path(kk)).Rproj *(Human_model(j).b+Human_model(j).a*Human_model(j).q); end From bc3cb8ff0c42fe06dc39026aa0fe7806fe92ec84 Mon Sep 17 00:00:00 2001 From: LivetClr Date: Tue, 14 Jun 2022 14:04:20 +0200 Subject: [PATCH 10/46] Some bug fix --- Functions/Calibration/CalibrateModelGenerationNum.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Functions/Calibration/CalibrateModelGenerationNum.m b/Functions/Calibration/CalibrateModelGenerationNum.m index 3ccea8fc..5ae63a6c 100644 --- a/Functions/Calibration/CalibrateModelGenerationNum.m +++ b/Functions/Calibration/CalibrateModelGenerationNum.m @@ -61,7 +61,7 @@ %% Symbolic functions disp('Preliminary Computations ...') [BiomechanicalModel.OsteoArticularModel] = Add6dof(BiomechanicalModel.OsteoArticularModel); -[BiomechanicalModel.OsteoArticularModel, ... +[BiomechanicalModel.OsteoArticularModel, BiomechanicalModel.Jacob, ... BiomechanicalModel.Generalized_Coordinates] = SymbolicFunctionGenerationIK(BiomechanicalModel.OsteoArticularModel,BiomechanicalModel.Markers); disp('... Preliminary Computations done') From fc3761172fa8a0e7a92e5220f5a16d8a84473570 Mon Sep 17 00:00:00 2001 From: TheoRouvier Date: Mon, 20 Jun 2022 17:36:07 +0200 Subject: [PATCH 11/46] Wheelchair forces & Shoulder Node in Thorax in closed loop shoulder model --- .../FromExperiments/Wheelchair.m | 100 ++++++++++++++++++ .../UpperTrunk/ModelParts/Thorax_Shoulder.m | 3 + 2 files changed, 103 insertions(+) create mode 100644 Functions/ExternalForces/FromExperiments/Wheelchair.m diff --git a/Functions/ExternalForces/FromExperiments/Wheelchair.m b/Functions/ExternalForces/FromExperiments/Wheelchair.m new file mode 100644 index 00000000..543c67ce --- /dev/null +++ b/Functions/ExternalForces/FromExperiments/Wheelchair.m @@ -0,0 +1,100 @@ +function [ExternalForcesComputationResults] = Wheelchair(filename, BiomechanicalModel, AnalysisParameters) +% Computation of the external forces for a cycling application +% +% INPUT +% - filename: name of the file to process (character string) +% - BiomechanicalModel: musculoskeletal model +% - AnalysisParameters: parameters of the musculoskeletal analysis, +% automatically generated by the graphic interface 'Analysis' +% OUTPUT +% - ExternalForcesComputationResults: results of the external forces +% computation (see the Documentation for the structure) +%________________________________________________________ +% +% Licence +% Toolbox distributed under GPL 3.0 Licence +%________________________________________________________ +% +% Authors : Antoine Muller, Charles Pontonnier, Pierre Puchaud and +% Georges Dumont +%________________________________________________________ + +Human_model = BiomechanicalModel.OsteoArticularModel; +load([filename '/ExperimentalData.mat']); %#ok +time = ExperimentalData.Time; +real_markers = ExperimentalData.MarkerPositions; +nbframe=numel(time); +f_mocap=1/time(2); + +% Initialisation +for f=1:nbframe + for n=1:numel(Human_model) + external_forces(f).fext(n).fext=zeros(3,2); %#ok + end +end + +% Handrim forces +load([filename '.mat']); %#ok +Right_Handrim = FRET.MechAct.RD; +Left_Handrim = FRET.MechAct.RG; +f_wheelchair = FRET.Frequence; +Right_Handrim = resample(Right_Handrim,f_mocap,f_wheelchair); +Left_Handrim = resample(Left_Handrim,f_mocap,f_wheelchair); + +% Filtrage des données (data filtering) +if AnalysisParameters.ExternalForces.FilterActive + for i=1:numel(Right_Handrim) + Right_Handrim(i)=filt_data(Right_Handrim(i),AnalysisParameters.ExternalForces.FilterCutOff,f_mocap); + end + for i=1:numel(Left_Handrim) + Left_Handrim(i)=filt_data(Left_Handrim(i),AnalysisParameters.ExternalForces.FilterCutOff,f_mocap); + end +end + +% Wheelchair frame +list_markers_wheelchair={'FRMA';'FRMRG';'FRMRD';'FRMAVG';'FRMAVD'}; +for i=1:numel(list_markers_wheelchair) % finding number of marker + for j=1:numel(real_markers) + if strcmp(list_markers_wheelchair{i},real_markers(j).name) + list_markers_wheelchair{i,2}=j; + end + end +end + +%% Handrim forces are added in variable external_forces +% Wheelchair frame computation based on marker position +A = cell{nb_frame,1}; +pWheelchair = cell{nb_frame,1}; +xWheelchair = cell{nb_frame,1}; +yWheelchair = cell{nb_frame,1}; +zWheelchair = cell{nb_frame,1}; +RWheelchair = cell{nb_frame,1}; +for i=1:nbframe + % Center of wheelchair frame (midpoint between right and left wheel) + A{i} =(real_markers(list_markers_wheelchair{2,2}).position(i,:)+real_markers(list_markers_wheelchair{3,2}).position(i,:))/2; + pWheelchair{i} =A{i}'; + % Wheelchair frame z-axis + zWheelchair_i =(real_markers(list_markers_wheelchair{3,2}).position(i,:)-real_markers(list_markers_wheelchair{2,2}).position(i,:)); + zWheelchair{i} =zWheelchair_i/norm(zWheelchair_i); + yWheelchair{i} =[0 0 1]; + xWheelchair{i} =cross(zWheelchair{i},yWheelchair{i}); + zWheelchair{i} =cross(xWheelchair{i},yWheelchair{i}); + RWheelchair{i} =[xWheelchair{i}' yWheelchair{i}' zWheelchair{i}']; +end + +% Right Handrim forces +Solid_name='RHand'; +Solid=find(strcmp({Human_model.name},Solid_name)); +[external_forces] = addPlatformForces(external_forces, Solid, pWheelchair, RWheelchair, -[Right_Handrim],COP); + +% Left Handrim forces +Solid_name='LHand'; +Solid=find(strcmp({Human_model.name},Solid_name)); +[external_forces] = addPlatformForces(external_forces, Solid, pWheelchair, RWheelchair, -[Left_Handrim(1:6)], COP); +% Sauvegarde des données +if exist([filename '/ExternalForcesComputationResults.mat'],'file') + load([filename '/ExternalForcesComputationResults.mat']); +end +ExternalForcesComputationResults.ExternalForcesExperiments = external_forces; + +end diff --git a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Thorax_Shoulder.m b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Thorax_Shoulder.m index 887e8920..ad46a022 100644 --- a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Thorax_Shoulder.m +++ b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Thorax_Shoulder.m @@ -74,6 +74,7 @@ Thorax_C1HatNode = k*[0.026 0.6 0] - CoM_Thorax; Thorax_T1C5 = k*[0.013 0.462 0] - CoM_Thorax; Thorax_ShoulderRightNode = k*[-0.0408 0.1099 0.1929]-Thorax_T12L1JointNode; +Thorax_ShoulderLeftNode = [1 0 0; 0 1 0; 0 0 -1]*Thorax_ShoulderRightNode; NeckNode=Thorax_C1HatNode; % Joints imported and adjusted from (Puchaud et al. 2019) @@ -103,6 +104,8 @@ 'Thorax_T12L1JointNode', Thorax_T12L1JointNode'; ... 'R_Thorax_EllipsoidNode', Thorax_EllipsoidRightNode'; ... 'L_Thorax_EllipsoidNode', Thorax_EllipsoidLeftNode'; ... + 'ShoulderRightNode_inThorax', Thorax_ShoulderRightNode';... + 'ShoulderLeftNode_inThorax', Thorax_ShoulderLeftNode';... % Muscle paths ['RThorax_r_PECM1-P1'],Thorax_osim2antoine'.*[0.047729456651525642 -0.10400960432311702 0.091178074794605088]'- CoM_Thorax_osim';... ['LThorax_r_PECM1-P1'],Thorax_osim2antoine'.*[0.047729456651525642 -0.10400960432311702 -0.091178074794605088]'- CoM_Thorax_osim';... From 149bb4e94a212059fa2da7f9201fc8ab1bf939a6 Mon Sep 17 00:00:00 2001 From: TheoRouvier Date: Mon, 20 Jun 2022 17:44:26 +0200 Subject: [PATCH 12/46] bug fix --- .../Osteoarticular/UpperTrunk/ModelParts/Thorax_Shoulder.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Thorax_Shoulder.m b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Thorax_Shoulder.m index ad46a022..7ae06181 100644 --- a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Thorax_Shoulder.m +++ b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Thorax_Shoulder.m @@ -74,7 +74,7 @@ Thorax_C1HatNode = k*[0.026 0.6 0] - CoM_Thorax; Thorax_T1C5 = k*[0.013 0.462 0] - CoM_Thorax; Thorax_ShoulderRightNode = k*[-0.0408 0.1099 0.1929]-Thorax_T12L1JointNode; -Thorax_ShoulderLeftNode = [1 0 0; 0 1 0; 0 0 -1]*Thorax_ShoulderRightNode; +Thorax_ShoulderLeftNode = [1 0 0; 0 1 0; 0 0 -1].*Thorax_ShoulderRightNode; NeckNode=Thorax_C1HatNode; % Joints imported and adjusted from (Puchaud et al. 2019) From d85962085139fa12a75c5ea4b62129efa2b11712 Mon Sep 17 00:00:00 2001 From: TheoRouvier Date: Tue, 21 Jun 2022 10:44:02 +0200 Subject: [PATCH 13/46] Added acromion markers position in thorax anatomical frame for closed loop shoulder model --- .../Osteoarticular/UpperTrunk/ModelParts/Thorax_Shoulder.m | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Thorax_Shoulder.m b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Thorax_Shoulder.m index 7ae06181..410d88fb 100644 --- a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Thorax_Shoulder.m +++ b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Thorax_Shoulder.m @@ -76,7 +76,7 @@ Thorax_ShoulderRightNode = k*[-0.0408 0.1099 0.1929]-Thorax_T12L1JointNode; Thorax_ShoulderLeftNode = [1 0 0; 0 1 0; 0 0 -1].*Thorax_ShoulderRightNode; NeckNode=Thorax_C1HatNode; - +Acromion_inThorax = k*[-0.0416 0.1707 0.1853]; % Joints imported and adjusted from (Puchaud et al. 2019) Thorax_osim2antoine = [k k k]; % scaling coef based on shoulder width %Thorax_osim2antoine = [k k Thorax_ShoulderRightNode(3)/0.17]; % scaling coef based on shoulder width @@ -106,6 +106,8 @@ 'L_Thorax_EllipsoidNode', Thorax_EllipsoidLeftNode'; ... 'ShoulderRightNode_inThorax', Thorax_ShoulderRightNode';... 'ShoulderLeftNode_inThorax', Thorax_ShoulderLeftNode';... + 'RightAcromion_inThorax', Acromion_inThorax';... + 'LeftAcromion_inThorax', [1 0 0;0 1 0;0 0 -1].*Acromion_inThorax';... % Muscle paths ['RThorax_r_PECM1-P1'],Thorax_osim2antoine'.*[0.047729456651525642 -0.10400960432311702 0.091178074794605088]'- CoM_Thorax_osim';... ['LThorax_r_PECM1-P1'],Thorax_osim2antoine'.*[0.047729456651525642 -0.10400960432311702 -0.091178074794605088]'- CoM_Thorax_osim';... From 20b939549be8a1f8e312aaf099c05da7e324233e Mon Sep 17 00:00:00 2001 From: LivetClr Date: Fri, 24 Jun 2022 11:25:14 +0200 Subject: [PATCH 14/46] Some improvments in computation time --- .../Kinematics/SymbolicFunctionGenerationIK.m | 20 ++- .../MomentArmsComputationAnalytic.m | 66 ++++++++++ .../MuscleForces/MomentArmsComputationInit.m | 31 ++++- .../MomentArmsComputationPreciseSym.m | 118 ++++++++++++++++++ 4 files changed, 231 insertions(+), 4 deletions(-) create mode 100644 Functions/MuscleForces/MomentArmsComputationAnalytic.m create mode 100644 Functions/MuscleForces/MomentArmsComputationPreciseSym.m diff --git a/Functions/Kinematics/SymbolicFunctionGenerationIK.m b/Functions/Kinematics/SymbolicFunctionGenerationIK.m index bfd8dd69..b05e6a58 100644 --- a/Functions/Kinematics/SymbolicFunctionGenerationIK.m +++ b/Functions/Kinematics/SymbolicFunctionGenerationIK.m @@ -159,7 +159,7 @@ indexesNumericJfq = find(Jfq_sym~=0 & Jfq_sym~=1)'; % nonNumericJfq = matlabFunction(Jfq_sym(indexesNumericJfq), 'Vars', {q,pcut,Rcut}); -nonNumericJfq = matlabFunction(Jfq_sym(indexesNumericJfq), 'Vars', {q_red,pcut,Rcut}); +nonNumericJfq = matlabFunction(Jfq_sym(indexesNumericJfq), 'Vars', {q_red,pcut,Rcut},'Optimize',false); % Jfcut Nb_cut = size(pcut,3); @@ -295,9 +295,25 @@ dependancies=KinematicDependancy(Human_model); % Closed-loop constraints -KT=ConstraintsJacobian(Human_model,q,solid_path1,solid_path2,num_solid,num_markers,ones(size(q,1),1),0.0001,dependancies)'; +if ~isempty(intersect({Human_model.name},'root0')) + NvHuman_model= Human_model(1:end-6); +end + + +KT=ConstraintsJacobian(NvHuman_model,q(1:end-6),solid_path1,solid_path2,num_solid,num_markers,dependancies)'; +% +% tic() +% for indk=1:size(KT,1) +% KKT(:,:,indk) = jacobian(KT(indk,:)',q(1:end-6)); +% end +% toc() matlabFunction(KT,'file',['Symbolic_function/Jacobian_closedloop_fullq'],'vars',{q}); +% tic() +% matlabFunction(KKT,'file',['Symbolic_function/Jacobian_derivative_closedloop_fullq'],'vars',{q}); +% toc() + + %We delete p and R fields diff --git a/Functions/MuscleForces/MomentArmsComputationAnalytic.m b/Functions/MuscleForces/MomentArmsComputationAnalytic.m new file mode 100644 index 00000000..20a670e8 --- /dev/null +++ b/Functions/MuscleForces/MomentArmsComputationAnalytic.m @@ -0,0 +1,66 @@ +function [R] = MomentArmsComputationAnalytic(BiomechanicalModel,qval) +% Computation of the moment arms matrix (numerical version) +% +% INPUT +% - Biomechanical model: osteo-articular model (see the Documentation for the structure) +% - q : current coordinates of the model +% - dp: differentiation step +% - Ucall : is a unique call for finding +% OUTPUT +% - R: moment arms matrix at the current frame +%________________________________________________________ +% +% Licence +% Toolbox distributed under GPL 3.0 Licence +%________________________________________________________ +% +% Authors : Antoine Muller, Charles Pontonnier, Pierre Puchaud and +% Georges Dumont +% Modification : Pierre Puchaud +%________________________________________________________ + +% +Muscles=BiomechanicalModel.Muscles; +% nq=numel(qval); + +idxm=find([Muscles.exist]); +nmr=numel(idxm); + +if length(qval)==numel(BiomechanicalModel.OsteoArticularModel(:)) && ~isempty(intersect({BiomechanicalModel.OsteoArticularModel.name},'root0')) + q=qval(1:end-6); %only degrees of freedom of the body, not the floating base. +else + q=qval; +end + + +if isfield(BiomechanicalModel,'Coupling') + C=BiomechanicalModel.Coupling; +else + C= ones(nmr,length(q)); +end +[row,col] = find(C); +R=zeros(nmr,length(q));%init R + + +MatP1P2 = MomentArmP1P2(q); +MatP4P3 = MomentArmP4P3(q); + + +for i=unique(col)' + + liste = find(col==i); + + for k=liste' + + j= row(k) ; % muscle indice + + R(j,i) = - 1/vecnorm(MatP1P2(j,i,:))*reshape(MatP1P2(j,i,:),1,3) * reshape(MatP4P3(j,i,:),3,1); + + end +end + +R = R'; + + + +end \ No newline at end of file diff --git a/Functions/MuscleForces/MomentArmsComputationInit.m b/Functions/MuscleForces/MomentArmsComputationInit.m index d0bb4bc4..f53e8255 100644 --- a/Functions/MuscleForces/MomentArmsComputationInit.m +++ b/Functions/MuscleForces/MomentArmsComputationInit.m @@ -27,8 +27,12 @@ nmr=numel(idxm); % -if length(q0)==numel(BiomechanicalModel.OsteoArticularModel(:)) && ~isempty(intersect({BiomechanicalModel.OsteoArticularModel.name},'root0')) - q=q0(1:end-6); %only degrees of freedom of the body, not the floating base. +if ~isempty(intersect({BiomechanicalModel.OsteoArticularModel.name},'root0')) + if length(q0) == numel(BiomechanicalModel.OsteoArticularModel) + q=q0(1:end-6); %only degrees of freedom of the body, not the floating base. + else + q = q0; + end else q=q0; end @@ -141,5 +145,28 @@ BiomechanicalModel.M_pos = M_pos; BiomechanicalModel.Coupling = C; +if ~isempty(intersect({BiomechanicalModel.OsteoArticularModel.name},'root0')) + NvBiom = BiomechanicalModel; + NvBiom.OsteoArticularModel= BiomechanicalModel.OsteoArticularModel(1:end-6); +end + + +q = sym('q', [numel(NvBiom.OsteoArticularModel) 1]); % joint coordinates initialization (number of solids - 1 (pelvis)) +assume(q,'real') + +tic() +[P1P2,P4P3] = MomentArmsComputationPreciseSym(NvBiom,q); +toc() + + tic() + matlabFunction(P1P2,'file',['Symbolic_function/MomentArmP1P2'],'vars',{q}); +matlabFunction(P4P3,'file',['Symbolic_function/MomentArmP4P3'],'vars',{q}); +toc() + +% +% MomentArmMatrix = MomentArmsComputationPrecise(BiomechanicalModel,q); %depend on reduced set of q (q_red) +% tic() +% matlabFunction(MomentArmMatrix,'file',['Symbolic_function/MomentArmMatrix'],'vars',{q}); +% toc() end diff --git a/Functions/MuscleForces/MomentArmsComputationPreciseSym.m b/Functions/MuscleForces/MomentArmsComputationPreciseSym.m new file mode 100644 index 00000000..35aa0d6b --- /dev/null +++ b/Functions/MuscleForces/MomentArmsComputationPreciseSym.m @@ -0,0 +1,118 @@ +function [P1P2,P4P3] = MomentArmsComputationPreciseSym(BiomechanicalModel,qval) +% Computation of the moment arms matrix (numerical version) +% +% INPUT +% - Biomechanical model: osteo-articular model (see the Documentation for the structure) +% - q : current coordinates of the model +% - dp: differentiation step +% - Ucall : is a unique call for finding +% OUTPUT +% - R: moment arms matrix at the current frame +%________________________________________________________ +% +% Licence +% Toolbox distributed under GPL 3.0 Licence +%________________________________________________________ +% +% Authors : Antoine Muller, Charles Pontonnier, Pierre Puchaud and +% Georges Dumont +% Modification : Pierre Puchaud +%________________________________________________________ +Human_model=BiomechanicalModel.OsteoArticularModel; +Muscles=BiomechanicalModel.Muscles; +% nq=numel(qval); + +idxm=find([Muscles.exist]); +nmr=numel(idxm); + +% +if length(qval)==numel(BiomechanicalModel.OsteoArticularModel(:)) && ~isempty(intersect({BiomechanicalModel.OsteoArticularModel.name},'root0')) + q=qval(1:end-6); %only degrees of freedom of the body, not the floating base. +else + q=qval; +end + +if isfield(BiomechanicalModel,'Coupling') + C=BiomechanicalModel.Coupling; +else + C= ones(nmr,length(q)); +end +[row,col] = find(C); + +NBoneMat = BiomechanicalModel.N_Bone; +NPosMat = BiomechanicalModel.N_pos; +MBoneMat = BiomechanicalModel.M_Bone; +MPosMat = BiomechanicalModel.M_pos; + +%% Computation of moment arms +P1P2 = sym(zeros(nmr,length(q),3));%init +P4P3 = sym(zeros(nmr,length(q),3));%init + +[Human_model.R] = deal(eye(3)); +[Human_model.p] = deal([0 0 0]'); +for j=1:numel(Human_model) + Human_model(j).q=q(j); %#ok<*SAGROW> +end + + + +for i=unique(col)' + + liste = find(col==i); + + for k=liste' + + j= row(k) ; % muscle indice + + + M_Bone = MBoneMat(j,i); + M_pos = MPosMat(j,i); % number of the anatomical landmark in this solid + N_Bone = NBoneMat(j,i); + N_pos = NPosMat(j,i); + + if M_Bone>N_Bone + [solid1,solid2] = find_solid_path(Human_model,M_Bone,N_Bone); + else + [solid2,solid1] = find_solid_path(Human_model,N_Bone,M_Bone); + end + ppac=solid1(1); + + [Human_model] = ForwardPositions(Human_model,ppac); + + + Human_model2 = Human_model; + [Human_model2.R] = deal(zeros(3)); + [Human_model2.p] = deal([0 0 0]'); + + if Human_model2(i).joint == 1 + Human_model2(i).R = Human_model(i).R*wedge(Human_model2(i).a); + else + Human_model2(i).p = Human_model(i).R*Human_model2(i).a; + end + + Human_model2=ForwardPositions(Human_model2,Human_model2(i).child); + + P1 = Human_model(M_Bone).p + Human_model(M_Bone).R * (Human_model(M_Bone).c+ Human_model(M_Bone).anat_position{M_pos,2}); + P2 = Human_model(N_Bone).p + Human_model(N_Bone).R * (Human_model(N_Bone).c + Human_model(N_Bone).anat_position{N_pos,2}); + P3 = Human_model2(N_Bone).p + Human_model2(N_Bone).R*(Human_model(N_Bone).c + Human_model(N_Bone).anat_position{N_pos,2}); + P4 = Human_model2(M_Bone).p + Human_model2(M_Bone).R*(Human_model(M_Bone).c + Human_model(M_Bone).anat_position{M_pos,2}); + + P1P2(j,i,:) = P1 - P2; + P4P3(j,i,:) = P4 - P3; + + end + + +end + + + + +% beware that the matrix is finally nq*nm +%R=R'; + + + + + +end \ No newline at end of file From 61fae00205b1c4107af6e0faed92a457b5058529 Mon Sep 17 00:00:00 2001 From: TheoRouvier Date: Tue, 26 Jul 2022 12:47:48 +0200 Subject: [PATCH 15/46] Correction of bug in Thorax_Shoulder model --- .../Osteoarticular/UpperTrunk/ModelParts/Thorax_Shoulder.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Thorax_Shoulder.m b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Thorax_Shoulder.m index 410d88fb..effcf4c4 100644 --- a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Thorax_Shoulder.m +++ b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Thorax_Shoulder.m @@ -74,7 +74,7 @@ Thorax_C1HatNode = k*[0.026 0.6 0] - CoM_Thorax; Thorax_T1C5 = k*[0.013 0.462 0] - CoM_Thorax; Thorax_ShoulderRightNode = k*[-0.0408 0.1099 0.1929]-Thorax_T12L1JointNode; -Thorax_ShoulderLeftNode = [1 0 0; 0 1 0; 0 0 -1].*Thorax_ShoulderRightNode; +Thorax_ShoulderLeftNode = [1 1 -1].*Thorax_ShoulderRightNode; NeckNode=Thorax_C1HatNode; Acromion_inThorax = k*[-0.0416 0.1707 0.1853]; % Joints imported and adjusted from (Puchaud et al. 2019) @@ -107,7 +107,7 @@ 'ShoulderRightNode_inThorax', Thorax_ShoulderRightNode';... 'ShoulderLeftNode_inThorax', Thorax_ShoulderLeftNode';... 'RightAcromion_inThorax', Acromion_inThorax';... - 'LeftAcromion_inThorax', [1 0 0;0 1 0;0 0 -1].*Acromion_inThorax';... + 'LeftAcromion_inThorax', [1 0 0;0 1 0;0 0 -1]*Acromion_inThorax';... % Muscle paths ['RThorax_r_PECM1-P1'],Thorax_osim2antoine'.*[0.047729456651525642 -0.10400960432311702 0.091178074794605088]'- CoM_Thorax_osim';... ['LThorax_r_PECM1-P1'],Thorax_osim2antoine'.*[0.047729456651525642 -0.10400960432311702 -0.091178074794605088]'- CoM_Thorax_osim';... From 92a6588583b5b6d93c7d0c73bdc3bf6b893f0768 Mon Sep 17 00:00:00 2001 From: TheoRouvier Date: Tue, 26 Jul 2022 15:46:32 +0200 Subject: [PATCH 16/46] Update to tangency Shoulder model --- .../UpperTrunk/ModelParts/Scapula_Shoulder.m | 5 - .../ModelParts/Scapula_Shoulder_Tangent.m | 215 +++++++++++------- 2 files changed, 138 insertions(+), 82 deletions(-) diff --git a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder.m b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder.m index 929232ee..df5be5dc 100644 --- a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder.m +++ b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder.m @@ -265,11 +265,6 @@ %% Scapulo-thoracic joint syms theta phi real% latitude longitude -% x = -Thorax_Rx*cos(theta)*cos(phi); -% -% y = -Thorax_Ry*sin(theta); -% -% z = Thorax_Rz*cos(theta)*sin(phi); x = -Thorax_Rx*cos(theta)*cos(phi); y = Thorax_Ry*sin(theta); diff --git a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m index 087ccfb4..dd49fddb 100644 --- a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m +++ b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m @@ -23,7 +23,7 @@ %% Solid list -list_solid={'ScapuloThoracic_J0' 'ScapuloThoracic_J1' 'ScapuloThoracic_J2' 'ScapuloThoracic_J3' 'ScapuloThoracic_J4' 'ScapuloThoracic_J5' 'ScapuloThoracic_Jalpha' 'ScapuloThoracic_J6' 'Scapula'}; +list_solid={'ScapuloThoracic_J1' 'ScapuloThoracic_J2' 'ScapuloThoracic_J3' 'ScapuloThoracic_J4' 'ScapuloThoracic_J4bis' 'ScapuloThoracic_J5' 'ScapuloThoracic_Jalpha' 'ScapuloThoracic_J6' 'Scapula'}; %% Choix jambe droite ou gauche if Side == 'R' @@ -80,10 +80,11 @@ % ------------------------- Thorax ---------------------------------------- % scaling coef based on shoulder width -CoM_Thorax = k*[0.060 0.303 0]; -Thorax_T12L1JointNode = k*[0.022 0.154 0] - CoM_Thorax; -Thorax_ShoulderRightNode = k*[-0.0408 0.1099 0.1929]-Thorax_T12L1JointNode; -Thorax_osim2antoine = [k k Thorax_ShoulderRightNode(3)/0.17]; +% CoM_Thorax = k*[0.060 0.303 0]; +% Thorax_T12L1JointNode = k*[0.022 0.154 0] - CoM_Thorax; +% Thorax_ShoulderRightNode = k*[-0.0408 0.1099 0.1929]-Thorax_T12L1JointNode; +% Thorax_osim2antoine = [k k Thorax_ShoulderRightNode(3)/0.17]; +Thorax_osim2antoine = [k k k]; % ------------------------ Scapula ---------------------------------------- % Centre of mass location in OpenSim frame @@ -92,9 +93,10 @@ Scapula_ghJointNode = Thorax_osim2antoine.*Mirror*[-0.00955; -0.034; 0.009] - Scapula_CoM; Scapula_stJointNode = Thorax_osim2antoine.*Mirror*[-0.05982; -0.03904; -0.056] - Scapula_CoM; Scapula_acJointNode = Thorax_osim2antoine.*Mirror*[-0.01357; 0.00011; -0.01523] - Scapula_CoM; +Scapula_acromion_plane = Thorax_osim2antoine.*Mirror*[-0.0142761 0.0131922 -0.00563961]' - Scapula_CoM; Scapula_acromion = Thorax_osim2antoine.*Mirror*[-0.0142761 0.0131922 -0.00563961]' - Scapula_CoM; -Scapula_cluster_med = Thorax_osim2antoine.*Mirror*[-0.0860033 0.0298369 -0.00786593]' - Scapula_CoM; -Scapula_cluster_lat = Thorax_osim2antoine.*Mirror*[-0.0956621 0.0398035 -0.0552027]' - Scapula_CoM; +Scapula_cluster_lat = Thorax_osim2antoine.*Mirror*[-0.0860033 0.0298369 -0.00786593]' - Scapula_CoM; +Scapula_cluster_med = Thorax_osim2antoine.*Mirror*[-0.0956621 0.0398035 -0.0552027]' - Scapula_CoM; Scapula_cluster_mid = Thorax_osim2antoine.*Mirror*[-0.119492 0.0147336 -0.0385808]' - Scapula_CoM; Scapula_locator_AI = Thorax_osim2antoine.*Mirror*[-0.109351 -0.1132 -0.0903848]' - Scapula_CoM; Scapula_locator_TS = Thorax_osim2antoine.*Mirror*[-0.0874576 -0.0120416 -0.098654]' - Scapula_CoM; @@ -110,7 +112,8 @@ [Side 'Scapula_AcromioClavicularJointNode'], Scapula_acJointNode;... ['Thorax_Shoulder' FullSide 'Node'], Scapula_ghJointNode;... % MarThorax_osim2antoine.ers - [Side 'SHO'], Scapula_acromion;... + [Side 'SHO'], Scapula_acromion_plane;... + [Side 'Acromion summit'], Scapula_acromion;... ['MTAC' Cote 'M'], Scapula_cluster_med;... ['MTAC' Cote 'B'], Scapula_cluster_mid;... ['MTAC' Cote 'L'], Scapula_cluster_lat;... @@ -166,7 +169,59 @@ [Side 'Scapula_r_PECM1'],Thorax_osim2antoine.*Mirror*([0.01087460399498133 -0.035041350780721695 -0.022940819603399599]')-Scapula_CoM;... + % Via points from moment arm optimization + [Side 'Scapula_Rhomboideus_I_VP2'], (k*Mirror*[0.0322 ; -0.0320 ; 0.0642] - Scapula_CoM) ;... + + [Side 'Scapula_DeltoideusScapula_P_VP1'], (k*Mirror*[-0.0412 ; 0.0083 ; 0.0617] - Scapula_CoM) ;... + + [Side 'Scapula_DeltoideusScapula_M_VP1'], (k*Mirror*[0.0563 ; 0.0306 ; 0.0823] - Scapula_CoM) ;... + + [Side 'Scapula_TrapeziusScapula_M_VP2'], (k*Mirror*[-0.0104 ; 0.0202 ; 0.0040] - Scapula_CoM) ;... + + [Side 'Scapula_TrapeziusScapula_S_VP2'], (k*Mirror*[0.0457 ; 0.2980 ; 0.0372] - Scapula_CoM) ;... + + [Side 'Scapula_TrapeziusScapula_I_VP2'], (k*Mirror*[-0.0125 ; 0.0677 ; 0.0321] - Scapula_CoM) ;... + + [Side 'Scapula_Supraspinatus_P_VP1'], (k*Mirror*[-0.0042 ; 0.0406 ; 0.0022] - Scapula_CoM) ;... + + [Side 'Scapula_Supraspinatus_A_VP1'], (k*Mirror*[-0.0063 ; 0.0640 ; -0.0577] - Scapula_CoM) ;... + + [Side 'Scapula_Infraspinatus_I_VP1'], (k*Mirror*[-0.0649 ; -0.0316 ; -0.0088] - Scapula_CoM) ;... + + [Side 'Scapula_Infraspinatus_S_VP1'], (k*Mirror*[-0.0649 ; 0.0323 ; -0.0126] - Scapula_CoM) ;... + + [Side 'Scapula_Coracobrachialis_VP1'], (k*Mirror*[0.0692 ; -0.0039 ; 0.0258] - Scapula_CoM) ;... + + [Side 'Scapula_TeresMajor_VP1'], (k*Mirror*[-0.0495 ; -0.0797 ; 0.0017] - Scapula_CoM) ;... + + [Side 'Scapula_TeresMinor_VP1'], (k*Mirror*[-0.0298 ; -0.0299 ; 0.0097] - Scapula_CoM) ;... + + [Side 'Scapula_Subscapularis_I_VP1'], (k*Mirror*[-0.0070 ; -0.0503 ; -0.0016] - Scapula_CoM) ;... + + [Side 'Scapula_Subscapularis_M_VP1'], (k*Mirror*[-0.0286 ; -0.0815 ; -0.0575] - Scapula_CoM) ;... + + [Side 'Scapula_Subscapularis_S_VP1'], (k*Mirror*[0.0272 ; -0.0259 ; 0.0045] - Scapula_CoM) ;... + + [Side 'Scapula_SerratusAnterior_M_VP2'], (k*Mirror*[0.0665 ; 0.1031 ; 0.0088] - Scapula_CoM) ;... + + [Side 'Scapula_SerratusAnterior_I_VP2'], (k*Mirror*[0.0751 ; 0.1196 ; -0.0577] - Scapula_CoM) ;... + + [Side 'Scapula_PectoralisMinor_VP2'], (k*Mirror*[-0.0010 ; 0.0357 ; -0.0004] - Scapula_CoM) ;... + + [Side 'Scapula_PectoralisMajorThorax_I_VP2'], (k*Mirror*[-0.0111 ; 0.0612 ; -0.0215]- Scapula_CoM) ;... + [Side 'Scapula_PectoralisMajorThorax_I_VP3'], (k*Mirror*[0.0528 ; -0.0065 ; 0.0618] - Scapula_CoM) ;... + + [Side 'Scapula_PectoralisMajorThorax_M_VP2'], (k*Mirror*[0.0007 ; 0.0199 ; -0.0299] - Scapula_CoM) ;... + [Side 'Scapula_PectoralisMajorThorax_M_VP3'], (k*Mirror*[0.0543 ; -0.0166 ; 0.0529] - Scapula_CoM) ;... + + [Side 'Scapula_LatissimusDorsi_S_VP2'], (k*Mirror*[-0.0451 ; 0.0826 ; -0.0309] - Scapula_CoM) ;... + [Side 'Scapula_LatissimusDorsi_S_VP3'], (k*Mirror*[0.0551 ; 0.0065 ; 0.0579] - Scapula_CoM) ;... + + [Side 'Scapula_LatissimusDorsi_I_VP2'], (k*Mirror*[0.0719 ; -0.1432 ; 0.0671] - Scapula_CoM) ;... + [Side 'Scapula_LatissimusDorsi_I_VP3'], (k*Mirror*[0.0593 ; 0.0153 ; 0.0536] - Scapula_CoM) ;... + + [Side 'Scapula_DeltoideusClavicle-P2'],Thorax_osim2antoine.*Mirror*([0.019562226742916928 -0.0065870855556006396 0.01039769231874158]')-Scapula_CoM;... }; @@ -202,53 +257,27 @@ I_Scapula_generic=[0.0012429 0.0011504 0.0013651 0.0004494 Sign*0.00040922 Sign*0.0002411]; I_Scapula=(norm(Thorax_osim2antoine)^2*Mass.Scapula_Mass/Scapula_Mass_generic)*I_Scapula_generic; -%% "Human_model" structure generation - -num_solid=0; -%% Scapulo-thoracic joint - - - -syms phi lambda real% latitude longitude -x= Thorax_Rx*sin(lambda); - -y= -Thorax_Ry*sin(phi)*cos(lambda); - - -z= Mirror(3,3)*Thorax_Rz*cos(phi)*cos(lambda); -PHI = atan((Thorax_Rz*Thorax_Ry*tan(lambda)*(1 - tan(phi)^2))/(Thorax_Rx*Thorax_Ry-Thorax_Rx*Thorax_Rz*tan(phi)^2)); +%% Scapulo-thoracic joint -ALPHA = atan( tan(phi)*(Thorax_Rz*(1 - tan(phi)^2)/(Thorax_Ry- Thorax_Rz*tan(phi)^2) -1)); - +syms theta1 theta2 real % theta1: longitude; theta2: parametric latitude +% The coordinates of the Scapula center on the ellipsoid are function of +% longitude and parametric latitude +x = Thorax_Rx*sin(theta2); +y = -Thorax_Ry*sin(theta1)*cos(theta2); +z = Mirror(3,3)*Thorax_Rz*cos(theta1)*cos(theta2); -% ScapuloThoracic_J0 : theta_2 -num_solid=num_solid+1; % solid number -name=list_solid{num_solid}; % solid name -eval(['incr_solid=s_' name ';']) % solid number in model tree -Human_model(incr_solid).name=[Side name]; % solid name with side -Human_model(incr_solid).sister=s_ScapuloThoracic_J1; % Solid's sister -Human_model(incr_solid).child=0; % Solid's child -Human_model(incr_solid).mother=s_mother; % Solid's mother -Human_model(incr_solid).a=[1 0 0]'; -Human_model(incr_solid).joint=1; -Human_model(incr_solid).limit_inf=-Inf; -Human_model(incr_solid).limit_sup=Inf; -Human_model(incr_solid).ActiveJoint=1; -Human_model(incr_solid).m=0; % Reference mass -Human_model(incr_solid).b=[0 0 0]'; % Attachment point position in mother's frame -Human_model(incr_solid).I=zeros(3,3); % Reference inertia matrix -Human_model(incr_solid).c=[0 0 0]'; % Centre of mass position in local frame -Human_model(incr_solid).calib_k_constraint=[]; -Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta angle -Human_model(incr_solid).theta=[]; -Human_model(incr_solid).KinematicsCut=[]; % kinematic cut -Human_model(incr_solid).linear_constraint=[]; -Human_model(incr_solid).Visual=0; +% PHI: Geodetic latitude +PHI = atan((Thorax_Rz*Thorax_Ry*tan(theta2)*(1 - tan(theta1)^2))/(Thorax_Rx*Thorax_Ry-Thorax_Rx*Thorax_Rz*tan(theta1)^2)); +% ALPHA: the angle enabling the scapula tangency on the ellipsoid +ALPHA = atan( tan(theta1)*(Thorax_Rz*(1 - tan(theta1)^2)/(Thorax_Ry- Thorax_Rz*tan(theta1)^2) -1)); +%% "Human_model" structure generation + +num_solid=0; % ScapuloThoracic_J1 num_solid=num_solid+1; % solid number name=list_solid{num_solid}; % solid name @@ -274,9 +303,9 @@ Human_model(incr_solid).Visual=0; % Dependancy Human_model(incr_solid).kinematic_dependancy.active=1; -Human_model(incr_solid).kinematic_dependancy.Joint=[incr_solid-1]; % Thoracicellips +Human_model(incr_solid).kinematic_dependancy.Joint=[incr_solid+4]; % ScapuloThoracic_J4bis % Kinematic dependancy function -f_tx = matlabFunction( x,'vars',{lambda}); +f_tx = matlabFunction( x,'vars',{theta2}); Human_model(incr_solid).kinematic_dependancy.q=f_tx; Human_model(incr_solid).comment='scapulothoracic x regression'; Human_model(incr_solid).FunctionalAngle=[name]; @@ -308,9 +337,9 @@ Human_model(incr_solid).FunctionalAngle=[name]; % Dependancy Human_model(incr_solid).kinematic_dependancy.active=1; -Human_model(incr_solid).kinematic_dependancy.Joint=[incr_solid+2; incr_solid-2]; % Thoracicellips +Human_model(incr_solid).kinematic_dependancy.Joint=[incr_solid+4; incr_solid+3]; % ScapuloThoracic_J5; ScapuloThoracic_J4bis % Kinematic dependancy function -f_ty = matlabFunction(y,'vars',{phi,lambda}); +f_ty = matlabFunction(y,'vars',{theta1,theta2}); Human_model(incr_solid).kinematic_dependancy.q=f_ty; % ScapuloThoracic_J3 @@ -340,11 +369,12 @@ Human_model(incr_solid).comment='scapulothoracic z regression'; % Dependancy Human_model(incr_solid).kinematic_dependancy.active=1; -Human_model(incr_solid).kinematic_dependancy.Joint=[incr_solid+1; incr_solid-3]; % Thoracicellips +Human_model(incr_solid).kinematic_dependancy.Joint=[incr_solid+3; incr_solid+2]; % ScapuloThoracic_J5; ScapuloThoracic_J4bis % Kinematic dependancy function -f_tz = matlabFunction(z,'vars',{phi,lambda}); +f_tz = matlabFunction(z,'vars',{theta1,theta2}); Human_model(incr_solid).kinematic_dependancy.q=f_tz; + % ScapuloThoracic_J4 num_solid=num_solid+1; % solid number name=list_solid{num_solid}; % solid name @@ -353,10 +383,10 @@ Human_model(incr_solid).sister=0; % Solid's sister Human_model(incr_solid).child=s_ScapuloThoracic_J5; % Solid's child Human_model(incr_solid).mother=s_ScapuloThoracic_J3; % Solid's mother -Human_model(incr_solid).a=[1 0 0]'; +Human_model(incr_solid).a=[0 0 -1]'; Human_model(incr_solid).joint=1; -Human_model(incr_solid).limit_inf=-pi; -Human_model(incr_solid).limit_sup=pi; +Human_model(incr_solid).limit_inf=-pi/4; +Human_model(incr_solid).limit_sup=pi/4; Human_model(incr_solid).ActiveJoint=1; Human_model(incr_solid).m=0; % Reference mass Human_model(incr_solid).b=[0 0 0]'; % Attachment point position in mother's frame @@ -369,9 +399,41 @@ Human_model(incr_solid).linear_constraint=[]; Human_model(incr_solid).Visual=0; Human_model(incr_solid).FunctionalAngle=[name]; -Human_model(incr_solid).comment='Scapula abduction - adduction'; +Human_model(incr_solid).FunctionalAngle=[FullSide 'Scapula elevation(-)/depression(+)']; +Human_model(incr_solid).comment=[FullSide 'Scapula elevation(-)/depression(+)']; +% Dependancy +Human_model(incr_solid).kinematic_dependancy.active=1; +Human_model(incr_solid).kinematic_dependancy.Joint=[incr_solid+2; incr_solid+1]; % ScapuloThoracic_J5; ScapuloThoracic_J4bis +% Kinematic dependancy function +Ft_PHI= matlabFunction(PHI,'vars',{theta1,theta2}); +Human_model(incr_solid).kinematic_dependancy.q=Ft_PHI; +% ScapuloThoracic_J4bis +num_solid=num_solid+1; % solid number +name=list_solid{num_solid}; % solid name +eval(['incr_solid=s_' name ';']) % solid number in model tree +Human_model(incr_solid).name=[Side name]; % solid name with side +Human_model(incr_solid).sister=s_ScapuloThoracic_J4; % Solid's sister +Human_model(incr_solid).child=0; % Solid's child +Human_model(incr_solid).mother=s_ScapuloThoracic_J3; % Solid's mother +Human_model(incr_solid).a=[1 0 0]'; +Human_model(incr_solid).joint=1; +Human_model(incr_solid).limit_inf=-Inf; +Human_model(incr_solid).limit_sup=Inf; +Human_model(incr_solid).ActiveJoint=1; +Human_model(incr_solid).m=0; % Reference mass +Human_model(incr_solid).b=[0 0 0]'; % Attachment point position in mother's frame +Human_model(incr_solid).I=zeros(3,3); % Reference inertia matrix +Human_model(incr_solid).c=[0 0 0]'; % Centre of mass position in local frame +Human_model(incr_solid).calib_k_constraint=[]; +Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta angle +Human_model(incr_solid).theta=[]; +Human_model(incr_solid).KinematicsCut=[]; % kinematic cut +Human_model(incr_solid).linear_constraint=[]; +Human_model(incr_solid).Visual=0; +Human_model(incr_solid).comment=[FullSide 'Scapula parametric elevation - depression']; + % ScapuloThoracic_J5 num_solid=num_solid+1; % solid number name=list_solid{num_solid}; % solid name @@ -380,7 +442,7 @@ Human_model(incr_solid).sister=0; % Solid's sister Human_model(incr_solid).child=s_ScapuloThoracic_Jalpha; % Solid's child Human_model(incr_solid).mother=s_ScapuloThoracic_J4; % Solid's mother -Human_model(incr_solid).a=[0 1 0]'; +Human_model(incr_solid).a=[0 1 0]'; Human_model(incr_solid).joint=1; Human_model(incr_solid).limit_inf=-pi/2; Human_model(incr_solid).limit_sup=pi/2; @@ -395,17 +457,15 @@ Human_model(incr_solid).KinematicsCut=[]; % kinematic cut Human_model(incr_solid).linear_constraint=[]; Human_model(incr_solid).Visual=0; -Human_model(incr_solid).FunctionalAngle=[name]; -Human_model(incr_solid).comment='Scapula elevation - depression'; -% Dependancy -Human_model(incr_solid).kinematic_dependancy.active=1; -Human_model(incr_solid).kinematic_dependancy.Joint=[incr_solid-1; incr_solid-5]; % Thoracicellips -% Kinematic dependancy function -Ft_PHI= matlabFunction(PHI,'vars',{phi,lambda}); -Human_model(incr_solid).kinematic_dependancy.q=Ft_PHI; - +if Sign == 1 + Human_model(incr_solid).FunctionalAngle='Right Scapula abduction(+)/adduction(-)'; + Human_model(incr_solid).comment='Right Scapula abduction(+)/adduction(-)'; +else + Human_model(incr_solid).FunctionalAngle='Left Scapula abduction(-)/adduction(+)'; + Human_model(incr_solid).comment='Left Scapula abduction(-)/adduction(+)'; +end -% ScapuloThoracic_alpha_tangence +% ScapuloThoracic_Jalpha num_solid=num_solid+1; % solid number name=list_solid{num_solid}; % solid name eval(['incr_solid=s_' name ';']) % solid number in model tree @@ -432,9 +492,9 @@ Human_model(incr_solid).FunctionalAngle=[name]; % Dependancy Human_model(incr_solid).kinematic_dependancy.active=1; -Human_model(incr_solid).kinematic_dependancy.Joint=[incr_solid-2]; % Thoracicellips +Human_model(incr_solid).kinematic_dependancy.Joint=[incr_solid-1]; % ScapuloThoracic_J5 % Kinematic dependancy function -Ft_ALPHA= matlabFunction(ALPHA,'vars',{phi}); +Ft_ALPHA= matlabFunction(ALPHA,'vars',{theta1}); Human_model(incr_solid).kinematic_dependancy.q=Ft_ALPHA; @@ -446,7 +506,7 @@ Human_model(incr_solid).sister=0; % Solid's sister Human_model(incr_solid).child=s_Scapula; % Solid's child Human_model(incr_solid).mother=s_ScapuloThoracic_Jalpha; % Solid's mother -Human_model(incr_solid).a=[0 0 1]'; +Human_model(incr_solid).a=[1 0 0]'; Human_model(incr_solid).joint=1; Human_model(incr_solid).limit_inf=-pi/2; Human_model(incr_solid).limit_sup=pi/2; @@ -461,8 +521,8 @@ Human_model(incr_solid).KinematicsCut=[]; % kinematic cut Human_model(incr_solid).linear_constraint=[]; Human_model(incr_solid).Visual=0; -Human_model(incr_solid).comment='Scapula upward rotation'; -Human_model(incr_solid).FunctionalAngle=[name]; +Human_model(incr_solid).comment=[FullSide 'Scapula rotation Upward(-)/Downward(+)']; +Human_model(incr_solid).FunctionalAngle=[FullSide 'Scapula rotation Upward(-)/Downward(+)']; % Scapula num_solid=num_solid+1; % solid number @@ -483,15 +543,16 @@ Human_model(incr_solid).c=-Scapula_stJointNode; % Centre of mass position in local frame Human_model(incr_solid).calib_k_constraint=[]; Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta angle -Human_model(incr_solid).theta=[]; +Human_model(incr_solid).theta=0; Human_model(incr_solid).KinematicsCut=[]; % kinematic cut Human_model(incr_solid).linear_constraint=[]; Human_model(incr_solid).anat_position=Scapula_position_set; Human_model(incr_solid).Visual=1; Human_model(incr_solid).visual_file=['Holzbaur/Scapula_' lower(Side) '.mat']; -Human_model(incr_solid).comment='Scapula internal rotation'; -Human_model(incr_solid).FunctionalAngle=[name]; +Human_model(incr_solid).comment=[FullSide 'Scapula Internal rotation']; +Human_model(incr_solid).FunctionalAngle=[FullSide 'Scapula Internal rotation']; Human_model(incr_solid).density=1.04; %kg.L-1 +Human_model(incr_solid).volume_constraints=2*[Thorax_Rx Thorax_Ry Thorax_Rz ; Thorax_Rx Thorax_Ry Thorax_Rz]/2; % AcromioClavicular Joint From 6bfa2f4e54ffa0d562c8f31388575146fa7f2cb8 Mon Sep 17 00:00:00 2001 From: LivetClr Date: Thu, 28 Jul 2022 10:03:37 +0200 Subject: [PATCH 17/46] Correct InverseKinematics file --- .../InverseKinematicsResults.mat | Bin 271531 -> 537715 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Examples/Cycling_Processed/JOTH_Fin_125HzModif/InverseKinematicsResults.mat b/Examples/Cycling_Processed/JOTH_Fin_125HzModif/InverseKinematicsResults.mat index 889fb3a7a5d4a8196e2ae5883b4214c1cc41dfe9..5d16b483f3d31b6bea360387c0287ba27df419b5 100644 GIT binary patch literal 537715 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

-OiJj*cvY+nv$8$BoDws7+L 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ⅅ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

xyE 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%0D*qwOcvr;GoS!;7RRsP`tPtyL)EoV)Lc2%pTH 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⪙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 z%0D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 literal 271531 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�D5%Kf6LDVmxl8Q->r4F)vR_Eb5m8y< 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 U*z3_a5eQBj-Fd_R16psZ*7LwO!2kdN From c91b047b387ed9afcc69e2205f2038727ec82032 Mon Sep 17 00:00:00 2001 From: TheoRouvier Date: Tue, 2 Aug 2022 15:58:03 +0200 Subject: [PATCH 18/46] Update to calibration of tangent shoulder model --- .../Geometrical/GeometricalCalibration.m | 252 +++++++++++------- .../Symbolic_ForwardKinematicsCoupure_A.m | 60 ++--- .../ModelParts/Scapula_Shoulder_Tangent.m | 85 ------ 3 files changed, 191 insertions(+), 206 deletions(-) diff --git a/Functions/Calibration/Geometrical/GeometricalCalibration.m b/Functions/Calibration/Geometrical/GeometricalCalibration.m index d7d85a47..0debcbf0 100644 --- a/Functions/Calibration/Geometrical/GeometricalCalibration.m +++ b/Functions/Calibration/Geometrical/GeometricalCalibration.m @@ -299,117 +299,187 @@ switch Human_model_calib(j).name case 'RScapuloThoracic_J1' - - syms theta phi real % latitude longitude - - t1 = -calib_parameters.radius(1)*cos(theta)*cos(phi); - ft =matlabFunction(t1,'vars',[theta,phi]); - dft =matlabFunction(jacobian(t1,[theta,phi]),'vars',[theta,phi]); - ddft =matlabFunction(jacobian(jacobian(t1,[theta,phi]),[theta,phi]),'vars',[theta,phi]); - Human_model_calib(j).kinematic_dependancy.q= ft; - Human_model_calib(j).kinematic_dependancy.dq={dft}; - Human_model_calib(j).kinematic_dependancy.ddq={ddft}; - + if sum(contains({Human_model_calib.name},'RScapuloThoracic_Jalpha')) + syms theta2 real + t1 = calib_parameters.radius(1)*sin(theta2); + ft =matlabFunction(t1,'vars',[theta2]); + dft =matlabFunction(jacobian(t1,[theta2]),'vars',[theta2]); + ddft =matlabFunction(jacobian(jacobian(t1,[theta2]),[theta2]),'vars',[theta2]); + Human_model_calib(j).kinematic_dependancy.q= ft; + Human_model_calib(j).kinematic_dependancy.dq=dft; + Human_model_calib(j).kinematic_dependancy.ddq=ddft; + else + syms theta phi real % latitude longitude + + t1 = -calib_parameters.radius(1)*cos(theta)*cos(phi); + ft =matlabFunction(t1,'vars',[theta,phi]); + dft =matlabFunction(jacobian(t1,[theta,phi]),'vars',[theta,phi]); + ddft =matlabFunction(jacobian(jacobian(t1,[theta,phi]),[theta,phi]),'vars',[theta,phi]); + Human_model_calib(j).kinematic_dependancy.q= ft; + Human_model_calib(j).kinematic_dependancy.dq={dft}; + Human_model_calib(j).kinematic_dependancy.ddq={ddft}; + end case 'RScapuloThoracic_J2' - - syms theta real% latitude - - t1 = calib_parameters.radius(2)*sin(theta); - - ft =matlabFunction(t1,'vars',[theta]); - dft =matlabFunction(jacobian(t1,[theta,phi]),'vars',[theta]); - ddft =matlabFunction(jacobian(jacobian(t1,[theta,phi]),[theta]),'vars',[theta]); - Human_model_calib(j).kinematic_dependancy.q= ft; - Human_model_calib(j).kinematic_dependancy.dq={dft}; - Human_model_calib(j).kinematic_dependancy.ddq={ddft}; - + if sum(contains({Human_model_calib.name},'RScapuloThoracic_Jalpha')) + syms theta1 theta2 real + t1 = -calib_parameters.radius(2)*sin(theta1)*cos(theta2); + ft =matlabFunction(t1,'vars',[theta1,theta2]); + dft =matlabFunction(jacobian(t1,[theta1,theta2]),'vars',[theta1,theta2]); + ddft =matlabFunction(jacobian(jacobian(t1,[theta1,theta2]),[theta1,theta2]),'vars',[theta1,theta2]); + Human_model_calib(j).kinematic_dependancy.q= ft; + Human_model_calib(j).kinematic_dependancy.dq=dft; + Human_model_calib(j).kinematic_dependancy.ddq=ddft; + else + syms theta real% latitude + + t1 = calib_parameters.radius(2)*sin(theta); + + ft =matlabFunction(t1,'vars',[theta]); + dft =matlabFunction(jacobian(t1,[theta,phi]),'vars',[theta]); + ddft =matlabFunction(jacobian(jacobian(t1,[theta,phi]),[theta]),'vars',[theta]); + Human_model_calib(j).kinematic_dependancy.q= ft; + Human_model_calib(j).kinematic_dependancy.dq={dft}; + Human_model_calib(j).kinematic_dependancy.ddq={ddft}; + end case 'RScapuloThoracic_J3' - syms theta phi real % latitude longitude - - t1 = calib_parameters.radius(3)*cos(theta)*sin(phi); - - ft =matlabFunction(t1,'vars',[theta,phi]); - dft =matlabFunction(jacobian(t1,[theta,phi]),'vars',[theta,phi]); - ddft =matlabFunction(jacobian(jacobian(t1,[theta,phi]),[theta,phi]),'vars',[theta,phi]); - Human_model_calib(j).kinematic_dependancy.q= ft; - Human_model_calib(j).kinematic_dependancy.dq={dft}; - Human_model_calib(j).kinematic_dependancy.ddq={ddft}; + if sum(contains({Human_model_calib.name},'RScapuloThoracic_Jalpha')) + syms theta1 theta2 real + t1 = calib_parameters.radius(3)*cos(theta1)*cos(theta2); + ft =matlabFunction(t1,'vars',[theta1,theta2]); + dft =matlabFunction(jacobian(t1,[theta1,theta2]),'vars',[theta1,theta2]); + ddft =matlabFunction(jacobian(jacobian(t1,[theta1,theta2]),[theta1,theta2]),'vars',[theta1,theta2]); + Human_model_calib(j).kinematic_dependancy.q= ft; + Human_model_calib(j).kinematic_dependancy.dq=dft; + Human_model_calib(j).kinematic_dependancy.ddq=ddft; + else + syms theta phi real % latitude longitude + + t1 = calib_parameters.radius(3)*cos(theta)*sin(phi); + + ft =matlabFunction(t1,'vars',[theta,phi]); + dft =matlabFunction(jacobian(t1,[theta,phi]),'vars',[theta,phi]); + ddft =matlabFunction(jacobian(jacobian(t1,[theta,phi]),[theta,phi]),'vars',[theta,phi]); + Human_model_calib(j).kinematic_dependancy.q= ft; + Human_model_calib(j).kinematic_dependancy.dq={dft}; + Human_model_calib(j).kinematic_dependancy.ddq={ddft}; + end case 'LScapuloThoracic_J1' - syms theta phi real % latitude longitude - - t1=-calib_parameters.radius(4)*cos(theta)*cos(phi); - - ft =matlabFunction(t1,'vars',[theta,phi]); - dft =matlabFunction(jacobian(t1,[theta,phi]),'vars',[theta,phi]); - ddft =matlabFunction(jacobian(jacobian(t1,[theta,phi]),[theta,phi]),'vars',[theta,phi]); - Human_model_calib(j).kinematic_dependancy.q= ft; - Human_model_calib(j).kinematic_dependancy.dq={dft}; - Human_model_calib(j).kinematic_dependancy.ddq={ddft}; - - + if sum(contains({Human_model_calib.name},'LScapuloThoracic_Jalpha')) + syms theta2 + t1=calib_parameters.radius(4)*sin(theta2); + ft =matlabFunction(t1,'vars',[theta2]); + dft =matlabFunction(jacobian(t1,[theta2]),'vars',[theta2]); + ddft =matlabFunction(jacobian(jacobian(t1,[theta2]),[theta2]),'vars',[theta2]); + Human_model_calib(j).kinematic_dependancy.q= ft; + Human_model_calib(j).kinematic_dependancy.dq=dft; + Human_model_calib(j).kinematic_dependancy.ddq=ddft ; + else + syms theta phi real % latitude longitude + + t1=-calib_parameters.radius(4)*cos(theta)*cos(phi); + + ft =matlabFunction(t1,'vars',[theta,phi]); + dft =matlabFunction(jacobian(t1,[theta,phi]),'vars',[theta,phi]); + ddft =matlabFunction(jacobian(jacobian(t1,[theta,phi]),[theta,phi]),'vars',[theta,phi]); + Human_model_calib(j).kinematic_dependancy.q= ft; + Human_model_calib(j).kinematic_dependancy.dq={dft}; + Human_model_calib(j).kinematic_dependancy.ddq={ddft}; + + end case 'LScapuloThoracic_J2' - - syms theta real% latitude - - t1 = calib_parameters.radius(5)*sin(theta); - ft =matlabFunction(t1,'vars',[theta]); - dft =matlabFunction(jacobian(t1,[theta]),'vars',[theta]); - ddft =matlabFunction(jacobian(jacobian(t1,[theta]),[theta]),'vars',[theta]); - Human_model_calib(j).kinematic_dependancy.q= ft; - Human_model_calib(j).kinematic_dependancy.dq={dft}; - Human_model_calib(j).kinematic_dependancy.ddq={ddft}; - - - case 'LScapuloThoracic_J3' - - syms theta phi real % latitude longitude - - t1=-calib_parameters.radius(6)*cos(theta)*sin(phi); - - ft =matlabFunction(t1,'vars',[theta,phi]); - dft =matlabFunction(jacobian(t1,[theta,phi]),'vars',[theta,phi]); - ddft =matlabFunction(jacobian(jacobian(t1,[theta,phi]),[theta,phi]),'vars',[theta,phi]); - Human_model_calib(j).kinematic_dependancy.q= ft; - Human_model_calib(j).kinematic_dependancy.dq={dft}; - Human_model_calib(j).kinematic_dependancy.ddq={ddft}; - - - case 'RScapuloThoracic_J5' - if sum(contains({Human_model_calib.name},'RScapuloThoracic_Jalpha')) + if sum(contains({Human_model_calib.name},'LScapuloThoracic_Jalpha')) + syms theta1 theta2 + t1 = -calib_parameters.radius(5)*sin(theta1)*cos(theta2); + ft =matlabFunction(t1,'vars',[theta1,theta2]); + dft =matlabFunction(jacobian(t1,[theta1,theta2]),'vars',[theta1,theta2]); + ddft =matlabFunction(jacobian(jacobian(t1,[theta1,theta2]),[theta1,theta2]),'vars',[theta1,theta2]); + Human_model_calib(j).kinematic_dependancy.q= ft; + Human_model_calib(j).kinematic_dependancy.dq=dft; + Human_model_calib(j).kinematic_dependancy.ddq=ddft; - syms phi lambda % latitude longitude + else + syms theta real% latitude - Human_model_calib(j).kinematic_dependancy.q=matlabFunction(atan((calib_parameters.radius(3)*calib_parameters.radius(2)*tan(lambda)*(1 - tan(phi)^2))/(calib_parameters.radius(1)*calib_parameters.radius(2)-calib_parameters.radius(1)*calib_parameters.radius(3)*tan(phi)^2))... - ,'vars',{phi,lambda}); + t1 = calib_parameters.radius(5)*sin(theta); + ft =matlabFunction(t1,'vars',[theta]); + dft =matlabFunction(jacobian(t1,[theta]),'vars',[theta]); + ddft =matlabFunction(jacobian(jacobian(t1,[theta]),[theta]),'vars',[theta]); + Human_model_calib(j).kinematic_dependancy.q= ft; + Human_model_calib(j).kinematic_dependancy.dq={dft}; + Human_model_calib(j).kinematic_dependancy.ddq={ddft}; end - - case 'RScapuloThoracic_Jalpha' - - syms phi - - Human_model_calib(j).kinematic_dependancy.q=matlabFunction(atan( tan(phi)*(calib_parameters.radius(3)*(1 - tan(phi)^2)/(calib_parameters.radius(2) - calib_parameters.radius(3)*tan(phi)^2) -1))... - ,'vars',{phi,lambda}); - case 'LScapuloThoracic_J5' + case 'LScapuloThoracic_J3' if sum(contains({Human_model_calib.name},'LScapuloThoracic_Jalpha')) + syms theta1 theta2 + t1 = -calib_parameters.radius(6)*cos(theta1)*cos(theta2); + ft =matlabFunction(t1,'vars',[theta1,theta2]); + dft =matlabFunction(jacobian(t1,[theta1,theta2]),'vars',[theta1,theta2]); + ddft =matlabFunction(jacobian(jacobian(t1,[theta1,theta2]),[theta1,theta2]),'vars',[theta1,theta2]); + Human_model_calib(j).kinematic_dependancy.q= ft; + Human_model_calib(j).kinematic_dependancy.dq=dft; + Human_model_calib(j).kinematic_dependancy.ddq=ddft; + else + syms theta phi real % latitude longitude + + t1=-calib_parameters.radius(6)*cos(theta)*sin(phi); - syms phi lambda % latitude longitude + ft =matlabFunction(t1,'vars',[theta,phi]); + dft =matlabFunction(jacobian(t1,[theta,phi]),'vars',[theta,phi]); + ddft =matlabFunction(jacobian(jacobian(t1,[theta,phi]),[theta,phi]),'vars',[theta,phi]); + Human_model_calib(j).kinematic_dependancy.q= ft; + Human_model_calib(j).kinematic_dependancy.dq={dft}; + Human_model_calib(j).kinematic_dependancy.ddq={ddft}; - Human_model_calib(j).kinematic_dependancy.q=matlabFunction(atan((calib_parameters.radius(6)*calib_parameters.radius(5)*tan(lambda)*(1 - tan(phi)^2))/(calib_parameters.radius(4)*calib_parameters.radius(5)-calib_parameters.radius(4)*calib_parameters.radius(6)*tan(phi)^2))... - ,'vars',{phi,lambda}); + end + case 'RScapuloThoracic_J4' + if sum(contains({Human_model_calib.name},'RScapuloThoracic_Jalpha')) + syms theta1 theta2 % latitude longitude + t1=atan((calib_parameters.radius(3)*calib_parameters.radius(2)*tan(theta2)*(1 - tan(theta1)^2))/(calib_parameters.radius(1)*calib_parameters.radius(2)-calib_parameters.radius(1)*calib_parameters.radius(3)*tan(theta1)^2)); + ft =matlabFunction(t1,'vars',[theta1,theta2]); + dft =matlabFunction(jacobian(t1,[theta1,theta2]),'vars',[theta1,theta2]); + ddft =matlabFunction(jacobian(jacobian(t1,[theta1,theta2]),[theta1,theta2]),'vars',[theta1,theta2]); + Human_model_calib(j).kinematic_dependancy.q= ft; + Human_model_calib(j).kinematic_dependancy.dq=dft; + Human_model_calib(j).kinematic_dependancy.ddq=ddft; end - case 'LScapuloThoracic_Jalpha' + case 'RScapuloThoracic_Jalpha' - syms phi + syms theta1 + t1=atan( tan(theta1)*(calib_parameters.radius(3)*(1 - tan(theta1)^2)/(calib_parameters.radius(2) - calib_parameters.radius(3)*tan(theta1)^2) -1)); + ft =matlabFunction(t1,'vars',[theta1]); + dft =matlabFunction(jacobian(t1,[theta1]),'vars',[theta1]); + ddft =matlabFunction(jacobian(jacobian(t1,[theta1]),[theta1]),'vars',[theta1]); + Human_model_calib(j).kinematic_dependancy.q= ft; + Human_model_calib(j).kinematic_dependancy.dq=dft; + Human_model_calib(j).kinematic_dependancy.ddq=ddft; + case 'LScapuloThoracic_J4' + if sum(contains({Human_model_calib.name},'LScapuloThoracic_Jalpha')) + syms theta1 theta2 % latitude longitude + t1= atan((calib_parameters.radius(6)*calib_parameters.radius(5)*tan(theta2)*(1 - tan(theta1)^2))/(calib_parameters.radius(4)*calib_parameters.radius(5)-calib_parameters.radius(4)*calib_parameters.radius(6)*tan(theta1)^2)); + ft =matlabFunction(t1,'vars',[theta1,theta2]); + dft =matlabFunction(jacobian(t1,[theta1,theta2]),'vars',[theta1,theta2]); + ddft =matlabFunction(jacobian(jacobian(t1,[theta1,theta2]),[theta1,theta2]),'vars',[theta1,theta2]); + Human_model_calib(j).kinematic_dependancy.q= ft; + Human_model_calib(j).kinematic_dependancy.dq=dft; + Human_model_calib(j).kinematic_dependancy.ddq=ddft; + end - Human_model_calib(j).kinematic_dependancy.q=matlabFunction(atan( tan(phi)*(calib_parameters.radius(6)*(1 - tan(phi)^2)/(calib_parameters.radius(5) - calib_parameters.radius(6)*tan(phi)^2) -1))... - ,'vars',{phi,lambda}); + case 'LScapuloThoracic_Jalpha' + syms theta1 + t1=atan( tan(theta1)*(calib_parameters.radius(6)*(1 - tan(theta1)^2)/(calib_parameters.radius(5) - calib_parameters.radius(6)*tan(theta1)^2) -1)); + ft =matlabFunction(t1,'vars',[theta1]); + dft =matlabFunction(jacobian(t1,[theta1]),'vars',[theta1]); + ddft =matlabFunction(jacobian(jacobian(t1,[theta1]),[theta1]),'vars',[theta1]); + Human_model_calib(j).kinematic_dependancy.q= ft; + Human_model_calib(j).kinematic_dependancy.dq=dft; + Human_model_calib(j).kinematic_dependancy.ddq=ddft; end diff --git a/Functions/Calibration/Geometrical/Symbolic_ForwardKinematicsCoupure_A.m b/Functions/Calibration/Geometrical/Symbolic_ForwardKinematicsCoupure_A.m index 32a419dc..0c00ef5c 100644 --- a/Functions/Calibration/Geometrical/Symbolic_ForwardKinematicsCoupure_A.m +++ b/Functions/Calibration/Geometrical/Symbolic_ForwardKinematicsCoupure_A.m @@ -60,9 +60,9 @@ if sum(contains({Human_model.name},'RScapuloThoracic_Jalpha')) - [~,idx] = intersect({Human_model.name},'RScapuloThoracic_J0'); + [~,idx_theta2] = intersect({Human_model.name},'RScapuloThoracic_J4bis'); - q= -radius(1)*cos(theta)*cos(phi); + q= radius(1)*sin(Q(idx_theta2)); else %theta elevation [~,idx_theta] = intersect({Human_model.name},'RScapuloThoracic_J4'); @@ -76,9 +76,9 @@ case 'RScapuloThoracic_J2' if sum(contains({Human_model.name},'RScapuloThoracic_Jalpha')) - [~,idx1] = intersect({Human_model.name},'RScapuloThoracic_J4'); - [~,idx2] = intersect({Human_model.name},'RScapuloThoracic_J0'); - q= -radius(2)*sin(Q(idx1))*cos(Q(idx2)); + [~,idx_theta1] = intersect({Human_model.name},'RScapuloThoracic_J5'); + [~,idx_theta2] = intersect({Human_model.name},'RScapuloThoracic_J4bis'); + q= -radius(2)*sin(Q(idx_theta1))*cos(Q(idx_theta2)); else @@ -93,9 +93,9 @@ if sum(contains({Human_model.name},'RScapuloThoracic_Jalpha')) - [~,idx1] = intersect({Human_model.name},'RScapuloThoracic_J4'); - [~,idx2] = intersect({Human_model.name},'RScapuloThoracic_J0'); - q= radius(3)*cos(Q(idx1))*cos(Q(idx2)); + [~,idx_theta1] = intersect({Human_model.name},'RScapuloThoracic_J5'); + [~,idx_theta2] = intersect({Human_model.name},'RScapuloThoracic_J4bis'); + q= radius(3)*cos(Q(idx_theta1))*cos(Q(idx_theta2)); else @@ -112,8 +112,8 @@ if sum(contains({Human_model.name},'LScapuloThoracic_Jalpha')) - [~,idx] = intersect({Human_model.name},'LScapuloThoracic_J0'); - q= radius(4)*sin(Q(idx)); + [~,idx_theta2] = intersect({Human_model.name},'LScapuloThoracic_J4bis'); + q= radius(4)*sin(Q(idx_theta2)); else @@ -133,9 +133,9 @@ if sum(contains({Human_model.name},'LScapuloThoracic_Jalpha')) - [~,idx1] = intersect({Human_model.name},'LScapuloThoracic_J4'); - [~,idx2] = intersect({Human_model.name},'LScapuloThoracic_J0'); - q= -radius(5)*sin(Q(idx1))*cos(Q(idx2)); + [~,idx_theta1] = intersect({Human_model.name},'LScapuloThoracic_J5'); + [~,idx_theta2] = intersect({Human_model.name},'LScapuloThoracic_J4bis'); + q= -radius(5)*sin(Q(idx_theta1))*cos(Q(idx_theta2)); else @@ -150,9 +150,9 @@ if sum(contains({Human_model.name},'LScapuloThoracic_Jalpha')) - [~,idx1] = intersect({Human_model.name},'LScapuloThoracic_J4'); - [~,idx2] = intersect({Human_model.name},'LScapuloThoracic_J0'); - q= -radius(6)*cos(Q(idx1))*cos(Q(idx2)); + [~,idx_theta1] = intersect({Human_model.name},'LScapuloThoracic_J5'); + [~,idx_theta2] = intersect({Human_model.name},'LScapuloThoracic_J4bis'); + q= -radius(6)*cos(Q(idx_theta1))*cos(Q(idx_theta2)); else @@ -167,36 +167,34 @@ end - case 'RScapuloThoracic_J5' + case 'RScapuloThoracic_J4' if sum(contains({Human_model.name},'RScapuloThoracic_Jalpha')) - [~,idx1] = intersect({Human_model.name},'RScapuloThoracic_J4'); - [~,idx2] = intersect({Human_model.name},'RScapuloThoracic_J0'); - q = atan((radius(3)*radius(2)*tan(Q(idx2))*(1 - tan( Q(idx1))^2))/(radius(1)*radius(2)-radius(1)*radius(3)*tan( Q(idx1))^2)); + [~,idx_theta1] = intersect({Human_model.name},'RScapuloThoracic_J5'); + [~,idx_theta2] = intersect({Human_model.name},'RScapuloThoracic_J4bis'); + q = atan((radius(3)*radius(2)*tan(Q(idx_theta2))*(1 - tan( Q(idx_theta1))^2))/(radius(1)*radius(2)-radius(1)*radius(3)*tan( Q(idx_theta1))^2)); end case 'RScapuloThoracic_Jalpha' - [~,idx] = intersect({Human_model.name},'RScapuloThoracic_J4'); - - q= atan( tan(Q(idx))*(radius(3)*(1 - tan(Q(idx))^2)/(radius(2) - radius(3)*tan(Q(idx))^2) -1)); + [~,idx_theta1] = intersect({Human_model.name},'RScapuloThoracic_J5'); + q= atan( tan(Q(idx_theta1))*(radius(3)*(1 - tan(Q(idx_theta1))^2)/(radius(2) - radius(3)*tan(Q(idx_theta1))^2) -1)); - case 'LScapuloThoracic_J5' + case 'LScapuloThoracic_J4' if sum(contains({Human_model.name},'LScapuloThoracic_Jalpha')) - [~,idx1] = intersect({Human_model.name},'LScapuloThoracic_J4'); - [~,idx2] = intersect({Human_model.name},'LScapuloThoracic_J0'); - q = atan((radius(6)*radius(5)*tan(Q(idx2))*(1 - tan( Q(idx1))^2))/(radius(4)*radius(5)-radius(4)*radius(6)*tan( Q(idx1))^2)); + [~,idx_theta1] = intersect({Human_model.name},'LScapuloThoracic_J5'); + [~,idx_theta2] = intersect({Human_model.name},'LScapuloThoracic_J4bis'); + q = atan((radius(6)*radius(5)*tan(Q(idx_theta2))*(1 - tan( Q(idx_theta1))^2))/(radius(4)*radius(5)-radius(4)*radius(6)*tan( Q(idx_theta1))^2)); end case 'LScapuloThoracic_Jalpha' - [~,idx] = intersect({Human_model.name},'LScapuloThoracic_J4'); - - q= atan( tan(Q(idx))*(radius(3)*(1 - tan(Q(idx))^2)/(radius(2) - radius(3)*tan(Q(idx))^2) -1)); + [~,idx_theta1] = intersect({Human_model.name},'LScapuloThoracic_J5'); + q= atan( tan(Q(idx_theta1))*(radius(3)*(1 - tan(Q(idx_theta1))^2)/(radius(2) - radius(3)*tan(Q(idx_theta1))^2) -1)); end @@ -229,6 +227,7 @@ eval(['assume(R' num2str(num_cut) 'cut(' num2str(zz) ',' num2str(z) '),''real'');']) end end + if Human_model(j).joint == 1 % liaison pivot (pin joint) % Human_model(j).p=eval(['R' num2str(num_cut) 'cut'])*(k(i)*Human_model(j).b)+eval(['p' num2str(num_cut) 'cut']); % position du rep�re (reference frame position) Human_model(j).p=eval(['R' num2str(num_cut) 'cut'])*(k(i)*Human_model(j).b)+eval(['p' num2str(num_cut) 'cut']); % position du rep�re (reference frame position) @@ -249,6 +248,7 @@ end if Human_model(j).joint == 2 % liaison glissi�re (slide joint) % Human_model(j).p = Human_model(i).R *( k(i)*Human_model(j).b + angle* Human_model(j).a) + Human_model(i).p; + Human_model(j).p = Human_model(i).R *( k(i)*Human_model(j).b + q* axe ) + Human_model(i).p; % l'orientation de l'axe de rotation d�pend de a, et d'une % variation d'orientation diff --git a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m index dd49fddb..71777768 100644 --- a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m +++ b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m @@ -553,90 +553,5 @@ Human_model(incr_solid).FunctionalAngle=[FullSide 'Scapula Internal rotation']; Human_model(incr_solid).density=1.04; %kg.L-1 Human_model(incr_solid).volume_constraints=2*[Thorax_Rx Thorax_Ry Thorax_Rz ; Thorax_Rx Thorax_Ry Thorax_Rz]/2; - - -% AcromioClavicular Joint - -% % AcromioClavicular_J1 -% num_solid=num_solid+1; % solid number -% name=list_solid{num_solid}; % solid name -% eval(['incr_solid=s_' name ';']) % solid number in model tree -% Human_model(incr_solid).name=[Side name]; % solid name with side -% Human_model(incr_solid).sister=0; % Solid's sister -% Human_model(incr_solid).child=s_AcromioClavicular_J2; % Solid's child -% Human_model(incr_solid).mother=s_Scapula; % Solid's mother -% Human_model(incr_solid).a=[0 1 0]'; -% Human_model(incr_solid).joint=1; -% Human_model(incr_solid).limit_inf=-pi; -% Human_model(incr_solid).limit_sup=pi; -% Human_model(incr_solid).ActiveJoint=1; -% Human_model(incr_solid).m=0; % Reference mass -% Human_model(incr_solid).b=Scapula_acJointNode-Scapula_stJointNode; % Attachment point position in mother's frame -% Human_model(incr_solid).I=zeros(3,3); % Reference inertia matrix -% Human_model(incr_solid).c=[0 0 0]'; % Centre of mass position in local frame -% Human_model(incr_solid).calib_k_constraint=[]; -% Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta angle -% Human_model(incr_solid).theta=[]; -% Human_model(incr_solid).KinematicsCut=[]; % kinematic cut -% Human_model(incr_solid).linear_constraint=[]; -% Human_model(incr_solid).Visual=0; -% Human_model(incr_solid).comment='to be completed'; -% Human_model(incr_solid).FunctionalAngle=[Side name]; -% -% -% % AcromioClavicular_J2 -% num_solid=num_solid+1; % solid number -% name=list_solid{num_solid}; % solid name -% eval(['incr_solid=s_' name ';']) % solid number in model tree -% Human_model(incr_solid).name=[Side name]; % solid name with side -% Human_model(incr_solid).sister=0; % Solid's sister -% Human_model(incr_solid).child=s_AcromioClavicular_J3; % Solid's child -% Human_model(incr_solid).mother=s_AcromioClavicular_J1; % Solid's mother -% Human_model(incr_solid).a=[1 0 0]'; -% Human_model(incr_solid).joint=1; -% Human_model(incr_solid).limit_inf=-pi; -% Human_model(incr_solid).limit_sup=pi; -% Human_model(incr_solid).ActiveJoint=1; -% Human_model(incr_solid).m=0; % Reference mass -% Human_model(incr_solid).b=[0 0 0]'; % Attachment point position in mother's frame -% Human_model(incr_solid).I=zeros(3,3); % Reference inertia matrix -% Human_model(incr_solid).c=[0 0 0]'; % Centre of mass position in local frame -% Human_model(incr_solid).calib_k_constraint=[]; -% Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta angle -% Human_model(incr_solid).theta=[]; -% Human_model(incr_solid).KinematicsCut=[]; % kinematic cut -% Human_model(incr_solid).linear_constraint=[]; -% Human_model(incr_solid).Visual=0; -% Human_model(incr_solid).comment='to be completed'; -% Human_model(incr_solid).FunctionalAngle=[Side name]; -% -% -% % AcromioClavicular_J3 -% num_solid=num_solid+1; % solid number -% name=list_solid{num_solid}; % solid name -% eval(['incr_solid=s_' name ';']) % solid number in model tree -% Human_model(incr_solid).name=[Side name]; % solid name with side -% Human_model(incr_solid).sister=0; % Solid's sister -% Human_model(incr_solid).child=0; % Solid's child -% Human_model(incr_solid).mother=s_AcromioClavicular_J2; % Solid's mother -% Human_model(incr_solid).a=[0 1 0]'; -% Human_model(incr_solid).joint=1; -% Human_model(incr_solid).limit_inf=-pi; -% Human_model(incr_solid).limit_sup=pi; -% Human_model(incr_solid).ActiveJoint=1; -% Human_model(incr_solid).m=0; % Reference mass -% Human_model(incr_solid).b=[0 0 0]'; % Attachment point position in mother's frame -% Human_model(incr_solid).I=zeros(3,3); % Reference inertia matrix -% Human_model(incr_solid).c=[0 0 0]'; % Centre of mass position in local frame -% Human_model(incr_solid).calib_k_constraint=[]; -% Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta angle -% Human_model(incr_solid).theta=[]; -% Human_model(incr_solid).KinematicsCut=[]; % kinematic cut -% Human_model(incr_solid).ClosedLoop=[Side 'Clavicle_AcromioClavicularJointNode']; % if this solid close a closed-loop chain : {number of solid i on which is attached this solid ; attachement point (local frame of solid i} -% Human_model(incr_solid).linear_constraint=[]; -% Human_model(incr_solid).Visual=0; -% Human_model(incr_solid).comment='to be completed'; -% Human_model(incr_solid).FunctionalAngle=[Side name]; - end From 9e2c50d7534fd6234424e12d5ada763d275391d5 Mon Sep 17 00:00:00 2001 From: LivetClr Date: Tue, 2 Aug 2022 16:58:48 +0200 Subject: [PATCH 19/46] Adequate file for InverseKinematicsLM --- Functions/Kinematics/InverseKinematicsLM.m | 95 ++++++++-------------- 1 file changed, 32 insertions(+), 63 deletions(-) diff --git a/Functions/Kinematics/InverseKinematicsLM.m b/Functions/Kinematics/InverseKinematicsLM.m index c07cf852..bb64c31a 100644 --- a/Functions/Kinematics/InverseKinematicsLM.m +++ b/Functions/Kinematics/InverseKinematicsLM.m @@ -69,7 +69,7 @@ %% Inverse kinematics frame per frame -options1 = optimoptions(@fmincon,'Algorithm','interior-point','Display','final','TolFun',1e-6,'TolCon',1e-6,'MaxFunEvals',2e5,'MaxIter',2e5,'TolX',1e-9); +options1 = optimoptions(@fmincon,'Algorithm','interior-point','Display','final','TolFun',1e-6,'TolCon',1e-6,'MaxFunEvals',2e5,'MaxIter',2e5,'TolX',1e-9,'SpecifyObjectiveGradient',true,'DerivativeCheck','off'); q=zeros(nb_solid,nb_frame); ceq=zeros(6*nbClosedLoop,nb_frame); addpath('Symbolic_function') @@ -96,10 +96,27 @@ l_sup1=[Human_model.limit_sup]'; end -weights = ones(1,length(real_markers)); -% AnalysisParameters.IK.weights'; +%weights = ones(1,length(real_markers)); +AnalysisParameters.IK.weights'; +Jfq = BiomechanicalModel.Jacob.Jfq; +indexesNumericJfq = BiomechanicalModel.Jacob.indexesNumericJfq; +nonNumericJfq = BiomechanicalModel.Jacob.nonNumericJfq; +Jfcut = BiomechanicalModel.Jacob.Jfcut; +indexesNumericJfcut = BiomechanicalModel.Jacob.indexesNumericJfcut; +nonNumericJfcut = BiomechanicalModel.Jacob.nonNumericJfcut; +Jcutq = BiomechanicalModel.Jacob.Jcutq; +indexesNumericJcutq = BiomechanicalModel.Jacob.indexesNumericJcutq; +nonNumericJcutq = BiomechanicalModel.Jacob.nonNumericJcutq; +Jcutcut = BiomechanicalModel.Jacob.Jcutcut; +indexesNumericJcutcut = BiomechanicalModel.Jacob.indexesNumericJcutcut; +nonNumericJcutcut = BiomechanicalModel.Jacob.nonNumericJcutcut; + +J_marqueurs_handle = @(q,pcut,Rcut) JacobianMarker(q,pcut,Rcut,Jfq,indexesNumericJfq , nonNumericJfq ,Jfcut,indexesNumericJfcut,nonNumericJfcut ,Jcutq ,... + indexesNumericJcutq ,nonNumericJcutq, Jcutcut , indexesNumericJcutcut , nonNumericJcutcut); + + h = waitbar(0,['Inverse Kinematics (' filename ')']); % 1st frame : classical optimization @@ -115,7 +132,7 @@ positions(:,m) = real_markers(m).position(1,:)'; end - ik_function_objective=@(qvar)CostFunctionSymbolicIK2(qvar,positions(:),weights); + ik_function_objective=@(qvar)CostFunctionSymbolicIK2(qvar,positions(:),weights,J_marqueurs_handle); [q(:,1)] = fmincon(ik_function_objective,q0,[],[],Aeq_ik,beq_ik,l_inf1,l_sup1,[],options1); hclosedloophandle = {@(x) Aeq_ik*x - beq_ik} ; else @@ -129,40 +146,8 @@ positions(:,m) = real_markers(m).position(1,:)'; end - ik_function_objective=@(qvar)CostFunctionSymbolicIK2(qvar, positions(:),weights); + ik_function_objective=@(qvar)CostFunctionSymbolicIK2(qvar, positions(:),weights,J_marqueurs_handle); nonlcon=@(qvar)ClosedLoop(qvar); - -% rng(0) % For reproducibility -% -% q0 = l_inf1 + (-l_inf1+l_sup1).*rand(nb_solid,10); -% q0(isnan(q0)) = rand(1,1); -% tic() -% % for ii=1:10 -% parfor ii=1:10 -% [q1(:,ii)] = fmincon(ik_function_objective,q0(:,ii),[],[],Aeq_ik,beq_ik,l_inf1,l_sup1,nonlcon,options1); -% rmse(ii) = ik_function_objective(q1(:,ii)); -% end -% toc() - -% -% rng default % For reproducibility -% problem = createOptimProblem('fmincon','objective',... -% ik_function_objective,'x0',q0,'lb',l_inf1,'ub',l_sup1,'options',options1,'Aeq',Aeq_ik,'beq',beq_ik,'nonlcon',nonlcon); -% ms = MultiStart('UseParallel',true); -% [q0int,rmseint ] = run(ms,problem,10); -% -% %q0int = q0; -% -% ptmatrix = q0 + (-(-l_inf1+l_sup1)./2 + (-l_inf1+l_sup1).*randn(nb_solid,10))*0.2; -% ptmatrix(isnan(ptmatrix)) = 0; -% ptmatrix(isinf(ptmatrix))= 0; -% tpoints = CustomStartPointSet(ptmatrix'); -% options1 = optimoptions(@fmincon,'Algorithm','interior-point','Display','iter-detailed','TolFun',1e-6,'TolCon',1e-6,'MaxFunEvals',10000000,'MaxIter',10000,'TolX',1e-9); -% problem = createOptimProblem('fmincon','objective',... -% ik_function_objective,'x0',q0,'lb',l_inf1,'ub',l_sup1,'options',options1,'Aeq',Aeq_ik,'beq',beq_ik,'nonlcon',nonlcon); -% ms = MultiStart('UseParallel',true); -% [q(:,1),rmse] = run(ms,problem,tpoints); -% [q(:,1)] = fmincon(ik_function_objective,q0,[],[],Aeq_ik,beq_ik,l_inf1,l_sup1,nonlcon,options1); hclosedloophandle = {@(qvar) ClosedLoopceq(qvar) ; @(x) Aeq_ik*x - beq_ik} ; end @@ -170,27 +155,12 @@ buteehandle = @(q) Limits(q,l_inf1,l_sup1); gamma = 100; zeta = 20; - -Jfq = BiomechanicalModel.Jacob.Jfq; -indexesNumericJfq = BiomechanicalModel.Jacob.indexesNumericJfq; -nonNumericJfq = BiomechanicalModel.Jacob.nonNumericJfq; -Jfcut = BiomechanicalModel.Jacob.Jfcut; -indexesNumericJfcut = BiomechanicalModel.Jacob.indexesNumericJfcut; -nonNumericJfcut = BiomechanicalModel.Jacob.nonNumericJfcut; -Jcutq = BiomechanicalModel.Jacob.Jcutq; -indexesNumericJcutq = BiomechanicalModel.Jacob.indexesNumericJcutq; -nonNumericJcutq = BiomechanicalModel.Jacob.nonNumericJcutq; -Jcutcut = BiomechanicalModel.Jacob.Jcutcut; -indexesNumericJcutcut = BiomechanicalModel.Jacob.indexesNumericJcutcut; -nonNumericJcutcut = BiomechanicalModel.Jacob.nonNumericJcutcut; - -J_marqueurs_handle = @(q,pcut,Rcut) JacobianMarker(q,pcut,Rcut,Jfq,indexesNumericJfq , nonNumericJfq ,Jfcut,indexesNumericJfcut,nonNumericJfcut ,Jcutq ,... - indexesNumericJcutq ,nonNumericJcutq, Jcutcut , indexesNumericJcutcut , nonNumericJcutcut); - + waitbar(1/nb_frame) -optionsLM = optimset('Algorithm','Levenberg-Marquardt','Display','off','MaxIter',4e6,'MaxFunEval',5e6,'Jacobian','on','DerivativeCheck','off'); +optionsLM = optimset('Algorithm','Levenberg-Marquardt','Display','off','MaxIter',4e6,'MaxFunEval',5e6,'Jacobian','on','DerivativeCheck','off','TolFun',1e-3); positions = zeros(3, length(real_markers)); + for f = 2:nb_frame % Precomputation of markers positions at each frame @@ -204,6 +174,7 @@ waitbar(f/nb_frame) end + close(h) @@ -270,15 +241,13 @@ nvdq = dq; nvddq = ddq; -[solid_path1,solid_path2,num_solid,num_markers]=Data_ClosedLoop(BiomechanicalModel.OsteoArticularModel); - -dependancies=KinematicDependancy(BiomechanicalModel.OsteoArticularModel); - - % % Closed-loop constraints +if isfield(BiomechanicalModel,'ClosedLoopData') for f=1:nb_frame - K=ConstraintsJacobian(BiomechanicalModel,q(:,f),solid_path1,solid_path2,num_solid,num_markers,ones(size(q(:,f),1),1),0.0001,dependancies); - Kdev=ConstraintsJacobianDerivative(BiomechanicalModel,q(:,f),solid_path1,solid_path2,num_solid,num_markers,ones(size(q(:,f),1),1),0.0001,dependancies); + K = Jacobian_closedloop_fullq(q(:,f))'; + + Kdev=ConstraintsJacobianDerivative(q(:,f),0.0001); + G = null(K); nvdq(:,f) = sum(dq(:,f)'*G.*G,2); @@ -290,7 +259,7 @@ nvddq(:,f) = xtilde(length(nvdq(:,f))+1:end); end - +end %% Save data ExperimentalData.FirstFrame = Firstframe; From e0748af7904551d474b17da643a34acedf4aa2e1 Mon Sep 17 00:00:00 2001 From: LivetClr Date: Tue, 2 Aug 2022 17:22:17 +0200 Subject: [PATCH 20/46] Minor bug fix --- .../ConstraintsJacobianDerivative.m | 44 +++++++++++++------ .../Kinematics/CostFunctionSymbolicIK2.m | 4 +- .../Kinematics/SymbolicFunctionGenerationIK.m | 2 + 3 files changed, 36 insertions(+), 14 deletions(-) diff --git a/Functions/Kinematics/ConstraintsJacobianDerivative.m b/Functions/Kinematics/ConstraintsJacobianDerivative.m index f7ee3107..b8c952bc 100644 --- a/Functions/Kinematics/ConstraintsJacobianDerivative.m +++ b/Functions/Kinematics/ConstraintsJacobianDerivative.m @@ -1,4 +1,4 @@ -function Kdev=ConstraintsJacobianDerivative(BiomechanicalModel,q,solid_path1,solid_path2,num_solid,num_markers,k,dq,dependancies) +function Kdev=ConstraintsJacobianDerivative(q,dq) % Return the constraint matrix K, which is the jacobian of the constraints % by q @@ -27,28 +27,46 @@ % Authors : Antoine Muller, Charles Pontonnier, Pierre Puchaud and % Georges Dumont %________________________________________________________ - for qchoix=1:length(q) qp=q; qm=q; qp(qchoix)=qp(qchoix)+dq; qm(qchoix)=qm(qchoix)-dq; - Kp = ConstraintsJacobian(BiomechanicalModel,qp,solid_path1,solid_path2,num_solid,num_markers,k,dq,dependancies); - Km = ConstraintsJacobian(BiomechanicalModel,qm,solid_path1,solid_path2,num_solid,num_markers,k,dq,dependancies); + Kp = Jacobian_closedloop_fullq(qp)'; + Km = Jacobian_closedloop_fullq(qm)'; Kdev(:,:,qchoix) = (Kp - Km)/(2*dq); -% Kdev2(:,:,qchoix) = ConstraintProjectionDerivative(BiomechanicalModel.OsteoArticularModel,solid_path1,solid_path2,num_solid,num_markers,q,k,qchoix,"one"); - end - - - - - - - +% Closed loop constraints +% for qchoix=1:length(q) +% +% +% % Kdev2(:,:,qchoix) = ConstraintProjectionDerivative(BiomechanicalModel.OsteoArticularModel,solid_path1,solid_path2,num_solid,num_markers,q,k,qchoix,"one"); +% end +% +% +% K=[]; +% +% if ~isempty(dependancies) +% for pp=1:size(dependancies,2) +% K(size(K,1)+1,dependancies(pp).solid,dependancies(pp).solid) = 0; +% +% ddf = dependancies(pp).ddq; +% +% if size(dependancies(pp).Joint,1)==1 +% K(size(K,1),dependancies(pp).Joint,dependancies(pp).Joint)= ddf(q(dependancies(pp).Joint)); +% +% else +% if size(dependancies(pp).Joint,1)==2 +% K(size(K,1),[dependancies(pp).Joint],... +% [dependancies(pp).Joint])= ddf(q(dependancies(pp).Joint(1)),q(dependancies(pp).Joint(2))); +% end +% end +% +% end +% end end \ No newline at end of file diff --git a/Functions/Kinematics/CostFunctionSymbolicIK2.m b/Functions/Kinematics/CostFunctionSymbolicIK2.m index aaf58866..24c62208 100644 --- a/Functions/Kinematics/CostFunctionSymbolicIK2.m +++ b/Functions/Kinematics/CostFunctionSymbolicIK2.m @@ -1,4 +1,4 @@ -function [error] = CostFunctionSymbolicIK2(q,positions,weights) +function [error,J] = CostFunctionSymbolicIK2(q,positions,weights,J_marqueurs_handle) % Cost function used for the inverse kinematics step using an optimization method % % INPUT @@ -22,4 +22,6 @@ a = sum(newweights(:).*(-X_markers(q,pcut,Rcut) + positions).^2); error = sum(a(~isnan(a))); +J = -2*(-X_markers(q,pcut,Rcut) + positions)'* J_marqueurs_handle(q,pcut,Rcut); + end \ No newline at end of file diff --git a/Functions/Kinematics/SymbolicFunctionGenerationIK.m b/Functions/Kinematics/SymbolicFunctionGenerationIK.m index b05e6a58..a8caca1e 100644 --- a/Functions/Kinematics/SymbolicFunctionGenerationIK.m +++ b/Functions/Kinematics/SymbolicFunctionGenerationIK.m @@ -298,6 +298,8 @@ if ~isempty(intersect({Human_model.name},'root0')) NvHuman_model= Human_model(1:end-6); +else + NvHuman_model = Human_model; end From 44ec0ee44a5263023dc7f468ef90faae4e8aaa61 Mon Sep 17 00:00:00 2001 From: TheoRouvier Date: Fri, 5 Aug 2022 17:03:44 +0200 Subject: [PATCH 21/46] Mini bug fix - still bugged --- Functions/Kinematics/ConstraintsJacobian.m | 2 +- Functions/Kinematics/InverseKinematicsLM.m | 2 +- Functions/Kinematics/SymbolicFunctionGenerationIK.m | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Functions/Kinematics/ConstraintsJacobian.m b/Functions/Kinematics/ConstraintsJacobian.m index 95a53f26..93ce0e16 100644 --- a/Functions/Kinematics/ConstraintsJacobian.m +++ b/Functions/Kinematics/ConstraintsJacobian.m @@ -114,7 +114,7 @@ for pp=1:size(dependancies,2) K(size(K,1)+1,dependancies(pp).solid) = -1; - df = dependancies(pp).dq; + df = dependancies(pp).dq{1}; if size(dependancies(pp).Joint,1)==1 K(size(K,1),dependancies(pp).Joint)= df(q(dependancies(pp).Joint)); diff --git a/Functions/Kinematics/InverseKinematicsLM.m b/Functions/Kinematics/InverseKinematicsLM.m index bb64c31a..c847e51e 100644 --- a/Functions/Kinematics/InverseKinematicsLM.m +++ b/Functions/Kinematics/InverseKinematicsLM.m @@ -96,7 +96,7 @@ l_sup1=[Human_model.limit_sup]'; end -%weights = ones(1,length(real_markers)); +weights = ones(1,length(real_markers)); AnalysisParameters.IK.weights'; diff --git a/Functions/Kinematics/SymbolicFunctionGenerationIK.m b/Functions/Kinematics/SymbolicFunctionGenerationIK.m index a8caca1e..f0956f5c 100644 --- a/Functions/Kinematics/SymbolicFunctionGenerationIK.m +++ b/Functions/Kinematics/SymbolicFunctionGenerationIK.m @@ -303,7 +303,7 @@ end -KT=ConstraintsJacobian(NvHuman_model,q(1:end-6),solid_path1,solid_path2,num_solid,num_markers,dependancies)'; +KT=ConstraintsJacobian(NvHuman_model,q(1:end-6),solid_path1,solid_path2,num_solid,num_markers,1,1,dependancies)'; % % tic() % for indk=1:size(KT,1) From 9a044a40f49d92cd6315c09695bc18e468d24f0c Mon Sep 17 00:00:00 2001 From: LivetClr Date: Mon, 8 Aug 2022 09:58:27 +0200 Subject: [PATCH 22/46] Minor bug fix again --- Functions/Kinematics/ConstraintsJacobian.m | 4 ++-- Functions/Kinematics/InverseKinematicsLM.m | 2 +- Functions/Kinematics/SymbolicFunctionGenerationIK.m | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Functions/Kinematics/ConstraintsJacobian.m b/Functions/Kinematics/ConstraintsJacobian.m index 93ce0e16..fd897006 100644 --- a/Functions/Kinematics/ConstraintsJacobian.m +++ b/Functions/Kinematics/ConstraintsJacobian.m @@ -1,4 +1,4 @@ -function K=ConstraintsJacobian(Human_model,q,solid_path1,solid_path2,num_solid,num_markers,k,dq,dependancies) +function K=ConstraintsJacobian(Human_model,q,solid_path1,solid_path2,num_solid,num_markers,dependancies) % Return the constraint matrix K, which is the jacobian of the constraints % by q @@ -114,7 +114,7 @@ for pp=1:size(dependancies,2) K(size(K,1)+1,dependancies(pp).solid) = -1; - df = dependancies(pp).dq{1}; + df = dependancies(pp).dq; if size(dependancies(pp).Joint,1)==1 K(size(K,1),dependancies(pp).Joint)= df(q(dependancies(pp).Joint)); diff --git a/Functions/Kinematics/InverseKinematicsLM.m b/Functions/Kinematics/InverseKinematicsLM.m index c847e51e..238c05e0 100644 --- a/Functions/Kinematics/InverseKinematicsLM.m +++ b/Functions/Kinematics/InverseKinematicsLM.m @@ -97,7 +97,7 @@ end weights = ones(1,length(real_markers)); -AnalysisParameters.IK.weights'; +%weights = AnalysisParameters.IK.weights'; Jfq = BiomechanicalModel.Jacob.Jfq; diff --git a/Functions/Kinematics/SymbolicFunctionGenerationIK.m b/Functions/Kinematics/SymbolicFunctionGenerationIK.m index f0956f5c..a8caca1e 100644 --- a/Functions/Kinematics/SymbolicFunctionGenerationIK.m +++ b/Functions/Kinematics/SymbolicFunctionGenerationIK.m @@ -303,7 +303,7 @@ end -KT=ConstraintsJacobian(NvHuman_model,q(1:end-6),solid_path1,solid_path2,num_solid,num_markers,1,1,dependancies)'; +KT=ConstraintsJacobian(NvHuman_model,q(1:end-6),solid_path1,solid_path2,num_solid,num_markers,dependancies)'; % % tic() % for indk=1:size(KT,1) From 6d79c48cd9324d4197069bd238d7ce156db140b1 Mon Sep 17 00:00:00 2001 From: LivetClr Date: Mon, 8 Aug 2022 10:04:31 +0200 Subject: [PATCH 23/46] Minor bug fix continues --- .../Geometrical/GeometricalCalibration.m | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/Functions/Calibration/Geometrical/GeometricalCalibration.m b/Functions/Calibration/Geometrical/GeometricalCalibration.m index 0debcbf0..c365f9cb 100644 --- a/Functions/Calibration/Geometrical/GeometricalCalibration.m +++ b/Functions/Calibration/Geometrical/GeometricalCalibration.m @@ -316,8 +316,8 @@ dft =matlabFunction(jacobian(t1,[theta,phi]),'vars',[theta,phi]); ddft =matlabFunction(jacobian(jacobian(t1,[theta,phi]),[theta,phi]),'vars',[theta,phi]); Human_model_calib(j).kinematic_dependancy.q= ft; - Human_model_calib(j).kinematic_dependancy.dq={dft}; - Human_model_calib(j).kinematic_dependancy.ddq={ddft}; + Human_model_calib(j).kinematic_dependancy.dq=dft; + Human_model_calib(j).kinematic_dependancy.ddq=ddft; end case 'RScapuloThoracic_J2' if sum(contains({Human_model_calib.name},'RScapuloThoracic_Jalpha')) @@ -335,11 +335,11 @@ t1 = calib_parameters.radius(2)*sin(theta); ft =matlabFunction(t1,'vars',[theta]); - dft =matlabFunction(jacobian(t1,[theta,phi]),'vars',[theta]); - ddft =matlabFunction(jacobian(jacobian(t1,[theta,phi]),[theta]),'vars',[theta]); + dft =matlabFunction(jacobian(t1,[theta]),'vars',[theta]); + ddft =matlabFunction(jacobian(jacobian(t1,[theta]),[theta]),'vars',[theta]); Human_model_calib(j).kinematic_dependancy.q= ft; - Human_model_calib(j).kinematic_dependancy.dq={dft}; - Human_model_calib(j).kinematic_dependancy.ddq={ddft}; + Human_model_calib(j).kinematic_dependancy.dq=dft; + Human_model_calib(j).kinematic_dependancy.ddq=ddft; end case 'RScapuloThoracic_J3' @@ -362,8 +362,8 @@ dft =matlabFunction(jacobian(t1,[theta,phi]),'vars',[theta,phi]); ddft =matlabFunction(jacobian(jacobian(t1,[theta,phi]),[theta,phi]),'vars',[theta,phi]); Human_model_calib(j).kinematic_dependancy.q= ft; - Human_model_calib(j).kinematic_dependancy.dq={dft}; - Human_model_calib(j).kinematic_dependancy.ddq={ddft}; + Human_model_calib(j).kinematic_dependancy.dq=dft; + Human_model_calib(j).kinematic_dependancy.ddq=ddft; end case 'LScapuloThoracic_J1' @@ -385,8 +385,8 @@ dft =matlabFunction(jacobian(t1,[theta,phi]),'vars',[theta,phi]); ddft =matlabFunction(jacobian(jacobian(t1,[theta,phi]),[theta,phi]),'vars',[theta,phi]); Human_model_calib(j).kinematic_dependancy.q= ft; - Human_model_calib(j).kinematic_dependancy.dq={dft}; - Human_model_calib(j).kinematic_dependancy.ddq={ddft}; + Human_model_calib(j).kinematic_dependancy.dq=dft; + Human_model_calib(j).kinematic_dependancy.ddq=ddft; end case 'LScapuloThoracic_J2' @@ -408,8 +408,8 @@ dft =matlabFunction(jacobian(t1,[theta]),'vars',[theta]); ddft =matlabFunction(jacobian(jacobian(t1,[theta]),[theta]),'vars',[theta]); Human_model_calib(j).kinematic_dependancy.q= ft; - Human_model_calib(j).kinematic_dependancy.dq={dft}; - Human_model_calib(j).kinematic_dependancy.ddq={ddft}; + Human_model_calib(j).kinematic_dependancy.dq=dft; + Human_model_calib(j).kinematic_dependancy.ddq=ddft; end case 'LScapuloThoracic_J3' @@ -431,8 +431,8 @@ dft =matlabFunction(jacobian(t1,[theta,phi]),'vars',[theta,phi]); ddft =matlabFunction(jacobian(jacobian(t1,[theta,phi]),[theta,phi]),'vars',[theta,phi]); Human_model_calib(j).kinematic_dependancy.q= ft; - Human_model_calib(j).kinematic_dependancy.dq={dft}; - Human_model_calib(j).kinematic_dependancy.ddq={ddft}; + Human_model_calib(j).kinematic_dependancy.dq=dft; + Human_model_calib(j).kinematic_dependancy.ddq=ddft; end case 'RScapuloThoracic_J4' From 6b911dbdc974e156fd099c875c4ad6b2a1af2898 Mon Sep 17 00:00:00 2001 From: LivetClr Date: Mon, 8 Aug 2022 11:04:20 +0200 Subject: [PATCH 24/46] Cleaning code --- .../Optimization/ForcesComputationOptiNum.m | 59 ++++--------------- 1 file changed, 12 insertions(+), 47 deletions(-) diff --git a/Functions/MuscleForces/Optimization/ForcesComputationOptiNum.m b/Functions/MuscleForces/Optimization/ForcesComputationOptiNum.m index 1ed65e97..1ce29406 100644 --- a/Functions/MuscleForces/Optimization/ForcesComputationOptiNum.m +++ b/Functions/MuscleForces/Optimization/ForcesComputationOptiNum.m @@ -29,6 +29,8 @@ load([filename '/ExperimentalData.mat']); %#ok time = ExperimentalData.Time; freq = 1/time(2); +addpath('Symbolic_function') + Muscles = BiomechanicalModel.Muscles; load([filename '/InverseKinematicsResults']) %#ok @@ -52,43 +54,30 @@ end %% computation of muscle moment arms from joint posture -% L0=zeros(Nb_muscles,1); -% Ls=zeros(Nb_muscles,1); -% for i=1:Nb_muscles -% L0(i) = BiomechanicalModel.Muscles(i).l0; -% Ls(i) = BiomechanicalModel.Muscles(i).ls; -% end Lmt=zeros(Nb_muscles,Nb_frames); R=zeros(Nb_q,Nb_muscles,Nb_frames); + + for i=1:Nb_frames % for each frames - % Lmt(idm,i) = MuscleLengthComputationNum(BiomechanicalModel,q(:,i)); %dependant of every q (q_complete) - R(:,:,i) = MomentArmsComputationPrecise(BiomechanicalModel,q(:,i)); %depend on reduced set of q (q_red) -% R(:,:,i) = MomentArmsComputationNum(BiomechanicalModel,q(:,i),0.0001); %depend on reduced set of q (q_red) + Lmt(:s,i) = MuscleLengthComputationNum(BiomechanicalModel,q(:,i)); %dependant of every q (q_complete) + R(:,:,i) = MomentArmsComputationAnalytic(BiomechanicalModel,q(:,i)); %depend on reduced set of q (q_red) end -idxj=find(sum(R(:,:,1),2)~=0)'; -% Lm = Lmt./(Ls./L0+1); -% % Muscle length ratio to optimal length -% Lm_norm = Lm./L0; -% % Muscle velocity -% Vm = gradient(Lm_norm)*freq; +idxj=find(sum(R(:,:,1),2)~=0)'; %% Computation of muscle forces (optimization) % Optimisation parameters Amin = zeros(Nb_muscles,1); A0 = 0.5*ones(Nb_muscles,1); -Fmax = [Muscles(idm).f0]'; +Fmax = 3*[Muscles(idm).f0]'; Amax = ones(Nb_muscles,1); Fopt = zeros(Nb_muscles,Nb_frames); Aopt = zeros(size(Fopt)); -% Muscle Forces Matrices computation -%[Fa,Fp]=AnalysisParameters.Muscles.MuscleModel(Lm,Vm,Fmax); - % Solver parameters -options1 = optimoptions(@fmincon,'Algorithm','sqp','Display','final','GradObj','off','GradConstr','off','TolFun',1e-6,'MaxIterations',100000,'MaxFunEvals',100000); -options2 = optimoptions(@fmincon,'Algorithm','sqp','Display','final','GradObj','off','GradConstr','off','TolFun',1e-6,'MaxIterations',1000,'MaxFunEvals',2000000); +options1 = optimoptions(@fmincon,'Algorithm','sqp','Display','off','GradObj','off','GradConstr','off','TolFun',1e-6,'MaxIterations',100000,'MaxFunEvals',100000); +options2 = optimoptions(@fmincon,'Algorithm','sqp','Display','off','GradObj','off','GradConstr','off','TolFun',1e-6,'MaxIterations',1000,'MaxFunEvals',2000000); h = waitbar(0,['Forces Computation (' filename ')']); @@ -96,62 +85,38 @@ KT = Jacobian_closedloop_fullq(q(:,1)); -% tic(); -% KT2 = FullConstraintsJacobian(BiomechanicalModel,q(:,1),solid_path1,solid_path2,num_solid,num_markers,ones(size(q,1),1),0.0000001,dependancies)'; -% toc(); - lambda = zeros(size(KT,2),1); -if isempty(lambda) - idxj = [38 39 40 41]; % BO : elbow to hand -else - idxj = 38:47; % BF : elbow to hand -end - - -%G = null(KT(idxj,:)'); -%G=eye(size(KT)); % Moment arms and Active forces -% Aeq = G'*R(idq,:,1).*Fa(:,1)' ; -%Aeq = [G'*R(idxj,:,1).*Fmax' , G'*KT(idxj,:)] ; Aeq = [R(idxj,:,1).*Fmax' , KT(idxj,:)] ; % Joint Torques -%beq = G'*(torques(idq,1) - R(idq,:,1)*Fp(:,1)); beq = torques(idxj,1); % First frame optimization Amin = [Amin; -inf*ones(size(lambda))]; Amax = [Amax; inf*ones(size(lambda))]; [X(:,1)] = AnalysisParameters.Muscles.Costfunction([A0 ; lambda], Aeq, beq, Amin, Amax, options1, AnalysisParameters.Muscles.CostfunctionOptions, Fmax, Fmax); -%[Aopt(:,1)] = AnalysisParameters.Muscles.Costfunction(A0, Aeq, beq, Amin, Amax, options1, AnalysisParameters.Muscles.CostfunctionOptions, Fa(:,1), Fmax); % Muscular activiy Aopt(:,1) = X(1:Nb_muscles,1); A0 = X(:,1); Fopt(:,1) = Fmax.*Aopt(:,1); -%Fopt(:,1) = Fa(:,1).*Aopt(1:Nb_muscles,1)+Fp(:,1); waitbar(1/Nb_frames) for i=2:Nb_frames % for following frames % Closed-loop constraints - KT=Jacobian_closedloop_fullq(q(:,i)); - %G = null(KT(idxj,:)'); - %G=eye(size(KT)); + KT = Jacobian_closedloop_fullq(q(:,i)); % Moment arms and Active forces - % Aeq = G'*R(idq,:,i).*Fa(:,i)'; Aeq = [R(idxj,:,i).*Fmax' , KT(idxj,:)] ; % Joint Torques -% beq=G'*(torques(idq,i)- R(idq,:,1)*Fp(:,i)); beq=torques(idxj,i); % Optimization -% [Aopt(:,i)] = AnalysisParameters.Muscles.Costfunction(A0, Aeq, beq, Amin, Amax, options2, AnalysisParameters.Muscles.CostfunctionOptions, Fa(:,i), Fmax); - [X(:,i)] = AnalysisParameters.Muscles.Costfunction(A0, Aeq, beq, Amin, Amax, options1, AnalysisParameters.Muscles.CostfunctionOptions, Fmax, Fmax); + [X(:,i)] = AnalysisParameters.Muscles.Costfunction(A0, Aeq, beq, Amin, Amax, options2, AnalysisParameters.Muscles.CostfunctionOptions, Fmax, Fmax); % Muscular activity Aopt(:,i) = X(1:Nb_muscles,i); A0=X(:,i); Fopt(:,i) = Fmax.*Aopt(:,i); -% Fopt(:,i) = Fa(:,i).*Aopt(1:Nb_muscles,i)+Fp(:,i); waitbar(i/Nb_frames) end From 198071806f0aee3f452f6ad2f8ed708845b4fc44 Mon Sep 17 00:00:00 2001 From: TheoRouvier Date: Mon, 8 Aug 2022 15:12:20 +0200 Subject: [PATCH 25/46] correction to tangent model --- .../Animation/DataExtractionForAnimation.m | 8 +- .../ModelParts/Scapula_Shoulder_Tangent.m | 160 +++++------------- 2 files changed, 50 insertions(+), 118 deletions(-) diff --git a/Functions/Animation/DataExtractionForAnimation.m b/Functions/Animation/DataExtractionForAnimation.m index 08251167..e7bf6d9d 100644 --- a/Functions/Animation/DataExtractionForAnimation.m +++ b/Functions/Animation/DataExtractionForAnimation.m @@ -97,10 +97,10 @@ q=q_complet(1:end-6); end else - if isfield(BiomechanicalModel,'ClosedLoopData') - [~,q] = ForwardKinematicsConstrained(BiomechanicalModel,q); - q = q(1:end-6); - end +% if isfield(BiomechanicalModel,'ClosedLoopData') +% [~,q] = ForwardKinematicsConstrained(BiomechanicalModel,q); +% q = q(1:end-6); +% end end diff --git a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m index 71777768..c42834c8 100644 --- a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m +++ b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m @@ -260,23 +260,13 @@ %% Scapulo-thoracic joint -syms theta1 theta2 real % theta1: longitude; theta2: parametric latitude +syms theta1 theta2 real% longitude latitude +x = Thorax_Rx^2*cos(theta1)*cos(theta2); -% The coordinates of the Scapula center on the ellipsoid are function of -% longitude and parametric latitude -x = Thorax_Rx*sin(theta2); -y = -Thorax_Ry*sin(theta1)*cos(theta2); -z = Mirror(3,3)*Thorax_Rz*cos(theta1)*cos(theta2); +y = Thorax_Ry^2*sin(theta2); -% PHI: Geodetic latitude -PHI = atan((Thorax_Rz*Thorax_Ry*tan(theta2)*(1 - tan(theta1)^2))/(Thorax_Rx*Thorax_Ry-Thorax_Rx*Thorax_Rz*tan(theta1)^2)); +z = -Sign*Thorax_Rz^2*cos(theta2)*sin(theta1); -% ALPHA: the angle enabling the scapula tangency on the ellipsoid -ALPHA = atan( tan(theta1)*(Thorax_Rz*(1 - tan(theta1)^2)/(Thorax_Ry- Thorax_Rz*tan(theta1)^2) -1)); - - -%% "Human_model" structure generation - num_solid=0; % ScapuloThoracic_J1 num_solid=num_solid+1; % solid number @@ -296,19 +286,23 @@ Human_model(incr_solid).I=zeros(3,3); % Reference inertia matrix Human_model(incr_solid).c=[0 0 0]'; % Centre of mass position in local frame Human_model(incr_solid).calib_k_constraint=[]; -Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta angle +Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta1 angle Human_model(incr_solid).theta=[]; Human_model(incr_solid).KinematicsCut=[]; % kinematic cut Human_model(incr_solid).linear_constraint=[]; Human_model(incr_solid).Visual=0; % Dependancy Human_model(incr_solid).kinematic_dependancy.active=1; -Human_model(incr_solid).kinematic_dependancy.Joint=[incr_solid+4]; % ScapuloThoracic_J4bis +Human_model(incr_solid).kinematic_dependancy.Joint=[incr_solid+3; incr_solid+4]; % Thoracicellips % Kinematic dependancy function -f_tx = matlabFunction( x,'vars',{theta2}); +f_tx = matlabFunction(x,'vars',{theta1,theta2}); +df_tx = matlabFunction(jacobian(x,[theta1,theta2]),'vars',{theta1,theta2}); +ddf_tx = matlabFunction(jacobian(jacobian(x,[theta1,theta2]),[theta1,theta2]),'vars',{theta1,theta2}); Human_model(incr_solid).kinematic_dependancy.q=f_tx; -Human_model(incr_solid).comment='scapulothoracic x regression'; -Human_model(incr_solid).FunctionalAngle=[name]; +Human_model(incr_solid).kinematic_dependancy.dq=df_tx; +Human_model(incr_solid).kinematic_dependancy.ddq=ddf_tx; +Human_model(incr_solid).comment=[FullSide 'Scapulothoracic x displacement']; +Human_model(incr_solid).FunctionalAngle=[FullSide 'Scapulothoracic x displacement']; % ScapuloThoracic_J2 num_solid=num_solid+1; % solid number @@ -328,19 +322,23 @@ Human_model(incr_solid).I=zeros(3,3); % Reference inertia matrix Human_model(incr_solid).c=[0 0 0]'; % Centre of mass position in local frame Human_model(incr_solid).calib_k_constraint=[]; -Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta angle +Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta1 angle Human_model(incr_solid).theta=[]; Human_model(incr_solid).KinematicsCut=[]; % kinematic cut Human_model(incr_solid).linear_constraint=[]; Human_model(incr_solid).Visual=0; -Human_model(incr_solid).comment='scapulothoracic y regression'; -Human_model(incr_solid).FunctionalAngle=[name]; +Human_model(incr_solid).comment=[FullSide 'Scapulothoracic y displacement']; +Human_model(incr_solid).FunctionalAngle=[FullSide 'Scapulothoracic y displacement']; % Dependancy Human_model(incr_solid).kinematic_dependancy.active=1; -Human_model(incr_solid).kinematic_dependancy.Joint=[incr_solid+4; incr_solid+3]; % ScapuloThoracic_J5; ScapuloThoracic_J4bis +Human_model(incr_solid).kinematic_dependancy.Joint=incr_solid+3; % Thoracicellips % Kinematic dependancy function -f_ty = matlabFunction(y,'vars',{theta1,theta2}); +f_ty = matlabFunction(y,'vars',{theta2}); +d_fty = matlabFunction(jacobian(y,[theta2]),'vars',{theta2}); +dd_fty = matlabFunction(jacobian(jacobian(y,[theta2]),[theta2]),'vars',{theta2}); Human_model(incr_solid).kinematic_dependancy.q=f_ty; +Human_model(incr_solid).kinematic_dependancy.dq=d_fty; +Human_model(incr_solid).kinematic_dependancy.ddq=dd_fty; % ScapuloThoracic_J3 num_solid=num_solid+1; % solid number @@ -360,20 +358,23 @@ Human_model(incr_solid).I=zeros(3,3); % Reference inertia matrix Human_model(incr_solid).c=[0 0 0]'; % Centre of mass position in local frame Human_model(incr_solid).calib_k_constraint=[]; -Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta angle +Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta1 angle Human_model(incr_solid).theta=[]; Human_model(incr_solid).KinematicsCut=[]; % kinematic cut Human_model(incr_solid).linear_constraint=[]; Human_model(incr_solid).Visual=0; -Human_model(incr_solid).FunctionalAngle=[name]; -Human_model(incr_solid).comment='scapulothoracic z regression'; +Human_model(incr_solid).FunctionalAngle=[FullSide 'Scapulothoracic z displacement']; +Human_model(incr_solid).comment=[FullSide 'Scapulothoracic z displacement']; % Dependancy Human_model(incr_solid).kinematic_dependancy.active=1; -Human_model(incr_solid).kinematic_dependancy.Joint=[incr_solid+3; incr_solid+2]; % ScapuloThoracic_J5; ScapuloThoracic_J4bis +Human_model(incr_solid).kinematic_dependancy.Joint=[incr_solid+1; incr_solid+2]; % Thoracicellips % Kinematic dependancy function f_tz = matlabFunction(z,'vars',{theta1,theta2}); +df_tz = matlabFunction(jacobian(z,[theta1,theta2]),'vars',{theta1,theta2}); +ddf_tz = matlabFunction(jacobian(jacobian(z,[theta1,theta2]),[theta1,theta2]),'vars',{theta1,theta2}); Human_model(incr_solid).kinematic_dependancy.q=f_tz; - +Human_model(incr_solid).kinematic_dependancy.dq=df_tz; +Human_model(incr_solid).kinematic_dependancy.ddq=ddf_tz; % ScapuloThoracic_J4 num_solid=num_solid+1; % solid number @@ -383,56 +384,23 @@ Human_model(incr_solid).sister=0; % Solid's sister Human_model(incr_solid).child=s_ScapuloThoracic_J5; % Solid's child Human_model(incr_solid).mother=s_ScapuloThoracic_J3; % Solid's mother -Human_model(incr_solid).a=[0 0 -1]'; +Human_model(incr_solid).a=[0 1 0]'; %theta1 Human_model(incr_solid).joint=1; -Human_model(incr_solid).limit_inf=-pi/4; -Human_model(incr_solid).limit_sup=pi/4; +Human_model(incr_solid).limit_inf=-pi/2; +Human_model(incr_solid).limit_sup=pi/2; Human_model(incr_solid).ActiveJoint=1; Human_model(incr_solid).m=0; % Reference mass Human_model(incr_solid).b=[0 0 0]'; % Attachment point position in mother's frame Human_model(incr_solid).I=zeros(3,3); % Reference inertia matrix Human_model(incr_solid).c=[0 0 0]'; % Centre of mass position in local frame Human_model(incr_solid).calib_k_constraint=[]; -Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta angle -Human_model(incr_solid).theta=[]; -Human_model(incr_solid).KinematicsCut=[]; % kinematic cut -Human_model(incr_solid).linear_constraint=[]; -Human_model(incr_solid).Visual=0; -Human_model(incr_solid).FunctionalAngle=[name]; -Human_model(incr_solid).FunctionalAngle=[FullSide 'Scapula elevation(-)/depression(+)']; -Human_model(incr_solid).comment=[FullSide 'Scapula elevation(-)/depression(+)']; -% Dependancy -Human_model(incr_solid).kinematic_dependancy.active=1; -Human_model(incr_solid).kinematic_dependancy.Joint=[incr_solid+2; incr_solid+1]; % ScapuloThoracic_J5; ScapuloThoracic_J4bis -% Kinematic dependancy function -Ft_PHI= matlabFunction(PHI,'vars',{theta1,theta2}); -Human_model(incr_solid).kinematic_dependancy.q=Ft_PHI; - - -% ScapuloThoracic_J4bis -num_solid=num_solid+1; % solid number -name=list_solid{num_solid}; % solid name -eval(['incr_solid=s_' name ';']) % solid number in model tree -Human_model(incr_solid).name=[Side name]; % solid name with side -Human_model(incr_solid).sister=s_ScapuloThoracic_J4; % Solid's sister -Human_model(incr_solid).child=0; % Solid's child -Human_model(incr_solid).mother=s_ScapuloThoracic_J3; % Solid's mother -Human_model(incr_solid).a=[1 0 0]'; -Human_model(incr_solid).joint=1; -Human_model(incr_solid).limit_inf=-Inf; -Human_model(incr_solid).limit_sup=Inf; -Human_model(incr_solid).ActiveJoint=1; -Human_model(incr_solid).m=0; % Reference mass -Human_model(incr_solid).b=[0 0 0]'; % Attachment point position in mother's frame -Human_model(incr_solid).I=zeros(3,3); % Reference inertia matrix -Human_model(incr_solid).c=[0 0 0]'; % Centre of mass position in local frame -Human_model(incr_solid).calib_k_constraint=[]; -Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta angle +Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta1 angle Human_model(incr_solid).theta=[]; Human_model(incr_solid).KinematicsCut=[]; % kinematic cut Human_model(incr_solid).linear_constraint=[]; Human_model(incr_solid).Visual=0; -Human_model(incr_solid).comment=[FullSide 'Scapula parametric elevation - depression']; +Human_model(incr_solid).FunctionalAngle=[FullSide 'Scapula abduction)']; %theta 1 +Human_model(incr_solid).comment=[FullSide 'Scapula abduction']; % ScapuloThoracic_J5 num_solid=num_solid+1; % solid number @@ -440,9 +408,9 @@ eval(['incr_solid=s_' name ';']) % solid number in model tree Human_model(incr_solid).name=[Side name]; % solid name with side Human_model(incr_solid).sister=0; % Solid's sister -Human_model(incr_solid).child=s_ScapuloThoracic_Jalpha; % Solid's child +Human_model(incr_solid).child=s_ScapuloThoracic_J6; % Solid's child Human_model(incr_solid).mother=s_ScapuloThoracic_J4; % Solid's mother -Human_model(incr_solid).a=[0 1 0]'; +Human_model(incr_solid).a=[0 0 1]'; Human_model(incr_solid).joint=1; Human_model(incr_solid).limit_inf=-pi/2; Human_model(incr_solid).limit_sup=pi/2; @@ -452,50 +420,14 @@ Human_model(incr_solid).I=zeros(3,3); % Reference inertia matrix Human_model(incr_solid).c=[0 0 0]'; % Centre of mass position in local frame Human_model(incr_solid).calib_k_constraint=[]; -Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta angle +Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta1 angle Human_model(incr_solid).theta=[]; Human_model(incr_solid).KinematicsCut=[]; % kinematic cut Human_model(incr_solid).linear_constraint=[]; Human_model(incr_solid).Visual=0; -if Sign == 1 - Human_model(incr_solid).FunctionalAngle='Right Scapula abduction(+)/adduction(-)'; - Human_model(incr_solid).comment='Right Scapula abduction(+)/adduction(-)'; -else - Human_model(incr_solid).FunctionalAngle='Left Scapula abduction(-)/adduction(+)'; - Human_model(incr_solid).comment='Left Scapula abduction(-)/adduction(+)'; -end +Human_model(incr_solid).FunctionalAngle='Elevatio,'; %theta2 +Human_model(incr_solid).comment='Elevation'; -% ScapuloThoracic_Jalpha -num_solid=num_solid+1; % solid number -name=list_solid{num_solid}; % solid name -eval(['incr_solid=s_' name ';']) % solid number in model tree -Human_model(incr_solid).name=[Side name]; % solid name with side -Human_model(incr_solid).sister=0; % Solid's sister -Human_model(incr_solid).child=s_ScapuloThoracic_J6; % Solid's child -Human_model(incr_solid).mother=s_ScapuloThoracic_J5; % Solid's mother -Human_model(incr_solid).a=[1 0 0]'; -Human_model(incr_solid).joint=1; -Human_model(incr_solid).limit_inf=-pi; -Human_model(incr_solid).limit_sup=pi; -Human_model(incr_solid).ActiveJoint=1; -Human_model(incr_solid).m=0; % Reference mass -Human_model(incr_solid).b=[0 0 0]'; % Attachment point position in mother's frame -Human_model(incr_solid).I=zeros(3,3); % Reference inertia matrix -Human_model(incr_solid).c=[0 0 0]'; % Centre of mass position in local frame -Human_model(incr_solid).calib_k_constraint=[]; -Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta angle -Human_model(incr_solid).theta=[]; -Human_model(incr_solid).KinematicsCut=[]; % kinematic cut -Human_model(incr_solid).linear_constraint=[]; -Human_model(incr_solid).Visual=0; -Human_model(incr_solid).comment='Scapula tangency angle'; -Human_model(incr_solid).FunctionalAngle=[name]; -% Dependancy -Human_model(incr_solid).kinematic_dependancy.active=1; -Human_model(incr_solid).kinematic_dependancy.Joint=[incr_solid-1]; % ScapuloThoracic_J5 -% Kinematic dependancy function -Ft_ALPHA= matlabFunction(ALPHA,'vars',{theta1}); -Human_model(incr_solid).kinematic_dependancy.q=Ft_ALPHA; % ScapuloThoracic_J6 @@ -505,8 +437,8 @@ Human_model(incr_solid).name=[Side name]; % solid name with side Human_model(incr_solid).sister=0; % Solid's sister Human_model(incr_solid).child=s_Scapula; % Solid's child -Human_model(incr_solid).mother=s_ScapuloThoracic_Jalpha; % Solid's mother -Human_model(incr_solid).a=[1 0 0]'; +Human_model(incr_solid).mother=s_ScapuloThoracic_J5; % Solid's mother +Human_model(incr_solid).a=[-1 0 0]'; Human_model(incr_solid).joint=1; Human_model(incr_solid).limit_inf=-pi/2; Human_model(incr_solid).limit_sup=pi/2; @@ -516,7 +448,7 @@ Human_model(incr_solid).I=zeros(3,3); % Reference inertia matrix Human_model(incr_solid).c=[0 0 0]'; % Centre of mass position in local frame Human_model(incr_solid).calib_k_constraint=[]; -Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta angle +Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta1 angle Human_model(incr_solid).theta=[]; Human_model(incr_solid).KinematicsCut=[]; % kinematic cut Human_model(incr_solid).linear_constraint=[]; @@ -542,8 +474,8 @@ Human_model(incr_solid).I=[I_Scapula(1) I_Scapula(4) I_Scapula(5); I_Scapula(4) I_Scapula(2) I_Scapula(6); I_Scapula(5) I_Scapula(6) I_Scapula(3)]; % Reference inertia matrix Human_model(incr_solid).c=-Scapula_stJointNode; % Centre of mass position in local frame Human_model(incr_solid).calib_k_constraint=[]; -Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta angle -Human_model(incr_solid).theta=0; +Human_model(incr_solid).u=[0 1 0]; % fixed rotation with respect to u axis of theta1 angle +Human_model(incr_solid).theta=-pi/2; Human_model(incr_solid).KinematicsCut=[]; % kinematic cut Human_model(incr_solid).linear_constraint=[]; Human_model(incr_solid).anat_position=Scapula_position_set; From fa916ace67388b1c60ccd7db3b3f6aabfcc66c6a Mon Sep 17 00:00:00 2001 From: TheoRouvier Date: Mon, 8 Aug 2022 15:17:33 +0200 Subject: [PATCH 26/46] bug fix --- .../UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m index c42834c8..074d5ddb 100644 --- a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m +++ b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m @@ -23,7 +23,7 @@ %% Solid list -list_solid={'ScapuloThoracic_J1' 'ScapuloThoracic_J2' 'ScapuloThoracic_J3' 'ScapuloThoracic_J4' 'ScapuloThoracic_J4bis' 'ScapuloThoracic_J5' 'ScapuloThoracic_Jalpha' 'ScapuloThoracic_J6' 'Scapula'}; +list_solid={'ScapuloThoracic_J1' 'ScapuloThoracic_J2' 'ScapuloThoracic_J3' 'ScapuloThoracic_J4' 'ScapuloThoracic_J5' 'ScapuloThoracic_J6' 'Scapula'}; %% Choix jambe droite ou gauche if Side == 'R' @@ -474,7 +474,7 @@ Human_model(incr_solid).I=[I_Scapula(1) I_Scapula(4) I_Scapula(5); I_Scapula(4) I_Scapula(2) I_Scapula(6); I_Scapula(5) I_Scapula(6) I_Scapula(3)]; % Reference inertia matrix Human_model(incr_solid).c=-Scapula_stJointNode; % Centre of mass position in local frame Human_model(incr_solid).calib_k_constraint=[]; -Human_model(incr_solid).u=[0 1 0]; % fixed rotation with respect to u axis of theta1 angle +Human_model(incr_solid).u=[0 1 0]'; % fixed rotation with respect to u axis of theta1 angle Human_model(incr_solid).theta=-pi/2; Human_model(incr_solid).KinematicsCut=[]; % kinematic cut Human_model(incr_solid).linear_constraint=[]; From a98379d6e41c56a9fd76533763f028c4bbc74924 Mon Sep 17 00:00:00 2001 From: TheoRouvier Date: Wed, 10 Aug 2022 11:59:40 +0200 Subject: [PATCH 27/46] Shoulder tangency model reworked : now better than seth --- .../Geometrical/GeometricalCalibration.m | 105 ++++++------ .../Symbolic_ForwardKinematicsCoupure_A.m | 77 +++++---- .../ModelParts/Scapula_Shoulder_Tangent.m | 151 +++++++++++++----- 3 files changed, 199 insertions(+), 134 deletions(-) diff --git a/Functions/Calibration/Geometrical/GeometricalCalibration.m b/Functions/Calibration/Geometrical/GeometricalCalibration.m index c365f9cb..568eb102 100644 --- a/Functions/Calibration/Geometrical/GeometricalCalibration.m +++ b/Functions/Calibration/Geometrical/GeometricalCalibration.m @@ -300,11 +300,11 @@ switch Human_model_calib(j).name case 'RScapuloThoracic_J1' if sum(contains({Human_model_calib.name},'RScapuloThoracic_Jalpha')) - syms theta2 real - t1 = calib_parameters.radius(1)*sin(theta2); - ft =matlabFunction(t1,'vars',[theta2]); - dft =matlabFunction(jacobian(t1,[theta2]),'vars',[theta2]); - ddft =matlabFunction(jacobian(jacobian(t1,[theta2]),[theta2]),'vars',[theta2]); + syms theta1 theta2 real + t1 = -calib_parameters.radius(1)*cos(theta1)*cos(theta2); + ft =matlabFunction(t1,'vars',[theta1,theta2]); + dft =matlabFunction(jacobian(t1,[theta1,theta2]),'vars',[theta1,theta2]); + ddft =matlabFunction(jacobian(jacobian(t1,[theta1,theta2]),[theta1,theta2]),'vars',[theta1,theta2]); Human_model_calib(j).kinematic_dependancy.q= ft; Human_model_calib(j).kinematic_dependancy.dq=dft; Human_model_calib(j).kinematic_dependancy.ddq=ddft; @@ -321,12 +321,12 @@ end case 'RScapuloThoracic_J2' if sum(contains({Human_model_calib.name},'RScapuloThoracic_Jalpha')) - syms theta1 theta2 real - t1 = -calib_parameters.radius(2)*sin(theta1)*cos(theta2); - ft =matlabFunction(t1,'vars',[theta1,theta2]); - dft =matlabFunction(jacobian(t1,[theta1,theta2]),'vars',[theta1,theta2]); - ddft =matlabFunction(jacobian(jacobian(t1,[theta1,theta2]),[theta1,theta2]),'vars',[theta1,theta2]); - Human_model_calib(j).kinematic_dependancy.q= ft; + syms theta2 real + t1 = calib_parameters.radius(2)*sin(theta2); + ft =matlabFunction(t1,'vars',[theta2]); + dft =matlabFunction(jacobian(t1,[theta2]),'vars',[theta2]); + ddft =matlabFunction(jacobian(jacobian(t1,[theta2]),[theta2]),'vars',[theta2]); + Human_model_calib(j).kinematic_dependancy.q=ft; Human_model_calib(j).kinematic_dependancy.dq=dft; Human_model_calib(j).kinematic_dependancy.ddq=ddft; else @@ -346,7 +346,7 @@ if sum(contains({Human_model_calib.name},'RScapuloThoracic_Jalpha')) syms theta1 theta2 real - t1 = calib_parameters.radius(3)*cos(theta1)*cos(theta2); + t1 = calib_parameters.radius(3)*sin(theta1)*cos(theta2); ft =matlabFunction(t1,'vars',[theta1,theta2]); dft =matlabFunction(jacobian(t1,[theta1,theta2]),'vars',[theta1,theta2]); ddft =matlabFunction(jacobian(jacobian(t1,[theta1,theta2]),[theta1,theta2]),'vars',[theta1,theta2]); @@ -368,14 +368,14 @@ case 'LScapuloThoracic_J1' if sum(contains({Human_model_calib.name},'LScapuloThoracic_Jalpha')) - syms theta2 - t1=calib_parameters.radius(4)*sin(theta2); - ft =matlabFunction(t1,'vars',[theta2]); - dft =matlabFunction(jacobian(t1,[theta2]),'vars',[theta2]); - ddft =matlabFunction(jacobian(jacobian(t1,[theta2]),[theta2]),'vars',[theta2]); + syms theta1 theta2 real + t1 = -calib_parameters.radius(4)*cos(theta1)*cos(theta2); + ft =matlabFunction(t1,'vars',[theta1,theta2]); + dft =matlabFunction(jacobian(t1,[theta1,theta2]),'vars',[theta1,theta2]); + ddft =matlabFunction(jacobian(jacobian(t1,[theta1,theta2]),[theta1,theta2]),'vars',[theta1,theta2]); Human_model_calib(j).kinematic_dependancy.q= ft; Human_model_calib(j).kinematic_dependancy.dq=dft; - Human_model_calib(j).kinematic_dependancy.ddq=ddft ; + Human_model_calib(j).kinematic_dependancy.ddq=ddft; else syms theta phi real % latitude longitude @@ -391,12 +391,12 @@ end case 'LScapuloThoracic_J2' if sum(contains({Human_model_calib.name},'LScapuloThoracic_Jalpha')) - syms theta1 theta2 - t1 = -calib_parameters.radius(5)*sin(theta1)*cos(theta2); - ft =matlabFunction(t1,'vars',[theta1,theta2]); - dft =matlabFunction(jacobian(t1,[theta1,theta2]),'vars',[theta1,theta2]); - ddft =matlabFunction(jacobian(jacobian(t1,[theta1,theta2]),[theta1,theta2]),'vars',[theta1,theta2]); - Human_model_calib(j).kinematic_dependancy.q= ft; + syms theta2 real + t1 = calib_parameters.radius(5)*sin(theta2); + ft =matlabFunction(t1,'vars',[theta2]); + dft =matlabFunction(jacobian(t1,[theta2]),'vars',[theta2]); + ddft =matlabFunction(jacobian(jacobian(t1,[theta2]),[theta2]),'vars',[theta2]); + Human_model_calib(j).kinematic_dependancy.q=ft; Human_model_calib(j).kinematic_dependancy.dq=dft; Human_model_calib(j).kinematic_dependancy.ddq=ddft; @@ -414,8 +414,8 @@ end case 'LScapuloThoracic_J3' if sum(contains({Human_model_calib.name},'LScapuloThoracic_Jalpha')) - syms theta1 theta2 - t1 = -calib_parameters.radius(6)*cos(theta1)*cos(theta2); + syms theta1 theta2 real + t1 = -calib_parameters.radius(6)*sin(theta1)*cos(theta2); ft =matlabFunction(t1,'vars',[theta1,theta2]); dft =matlabFunction(jacobian(t1,[theta1,theta2]),'vars',[theta1,theta2]); ddft =matlabFunction(jacobian(jacobian(t1,[theta1,theta2]),[theta1,theta2]),'vars',[theta1,theta2]); @@ -435,14 +435,14 @@ Human_model_calib(j).kinematic_dependancy.ddq=ddft; end - case 'RScapuloThoracic_J4' + case 'RScapuloThoracic_J5' if sum(contains({Human_model_calib.name},'RScapuloThoracic_Jalpha')) - syms theta1 theta2 % latitude longitude - t1=atan((calib_parameters.radius(3)*calib_parameters.radius(2)*tan(theta2)*(1 - tan(theta1)^2))/(calib_parameters.radius(1)*calib_parameters.radius(2)-calib_parameters.radius(1)*calib_parameters.radius(3)*tan(theta1)^2)); + syms theta1 theta2 real % latitude longitude + t1 = atan(-(calib_parameters.radius(1)*calib_parameters.radius(3)*tan(theta2)*(1 + tan(theta1)^2))/(calib_parameters.radius(3)*calib_parameters.radius(2)+calib_parameters.radius(1)*calib_parameters.radius(2)*tan(theta1)^2)); ft =matlabFunction(t1,'vars',[theta1,theta2]); dft =matlabFunction(jacobian(t1,[theta1,theta2]),'vars',[theta1,theta2]); ddft =matlabFunction(jacobian(jacobian(t1,[theta1,theta2]),[theta1,theta2]),'vars',[theta1,theta2]); - Human_model_calib(j).kinematic_dependancy.q= ft; + Human_model_calib(j).kinematic_dependancy.q=ft; Human_model_calib(j).kinematic_dependancy.dq=dft; Human_model_calib(j).kinematic_dependancy.ddq=ddft; @@ -450,45 +450,42 @@ case 'RScapuloThoracic_Jalpha' - syms theta1 - t1=atan( tan(theta1)*(calib_parameters.radius(3)*(1 - tan(theta1)^2)/(calib_parameters.radius(2) - calib_parameters.radius(3)*tan(theta1)^2) -1)); - ft =matlabFunction(t1,'vars',[theta1]); - dft =matlabFunction(jacobian(t1,[theta1]),'vars',[theta1]); - ddft =matlabFunction(jacobian(jacobian(t1,[theta1]),[theta1]),'vars',[theta1]); - Human_model_calib(j).kinematic_dependancy.q= ft; + syms theta1 theta2 real + phi = atan(-(calib_parameters.radius(1)*calib_parameters.radius(3)*tan(theta2)*(1 + tan(theta1)^2))/(calib_parameters.radius(3)*calib_parameters.radius(2)+calib_parameters.radius(1)*calib_parameters.radius(2)*tan(theta1)^2)); + t1=atan(tan(theta1)*(-calib_parameters.radius(2)/calib_parameters.radius(3)*sin(phi)/tan(theta2)-cos(phi))); + ft =matlabFunction(t1,'vars',[theta1,theta2]); + dft =matlabFunction(jacobian(t1,[theta1,theta2]),'vars',[theta1,theta2]); + ddft =matlabFunction(jacobian(jacobian(t1,[theta1,theta2]),[theta1,theta2]),'vars',[theta1,theta2]); + Human_model_calib(j).kinematic_dependancy.q=ft; Human_model_calib(j).kinematic_dependancy.dq=dft; Human_model_calib(j).kinematic_dependancy.ddq=ddft; - case 'LScapuloThoracic_J4' + case 'LScapuloThoracic_J5' if sum(contains({Human_model_calib.name},'LScapuloThoracic_Jalpha')) - syms theta1 theta2 % latitude longitude - t1= atan((calib_parameters.radius(6)*calib_parameters.radius(5)*tan(theta2)*(1 - tan(theta1)^2))/(calib_parameters.radius(4)*calib_parameters.radius(5)-calib_parameters.radius(4)*calib_parameters.radius(6)*tan(theta1)^2)); + syms theta1 theta2 real % latitude longitude + t1 = atan(-(calib_parameters.radius(4)*calib_parameters.radius(6)*tan(theta2)*(1 + tan(theta1)^2))/(calib_parameters.radius(6)*calib_parameters.radius(5)+calib_parameters.radius(4)*calib_parameters.radius(5)*tan(theta1)^2)); ft =matlabFunction(t1,'vars',[theta1,theta2]); dft =matlabFunction(jacobian(t1,[theta1,theta2]),'vars',[theta1,theta2]); ddft =matlabFunction(jacobian(jacobian(t1,[theta1,theta2]),[theta1,theta2]),'vars',[theta1,theta2]); - Human_model_calib(j).kinematic_dependancy.q= ft; + Human_model_calib(j).kinematic_dependancy.q=ft; Human_model_calib(j).kinematic_dependancy.dq=dft; Human_model_calib(j).kinematic_dependancy.ddq=ddft; + end + case 'LScapuloThoracic_Jalpha' - syms theta1 - t1=atan( tan(theta1)*(calib_parameters.radius(6)*(1 - tan(theta1)^2)/(calib_parameters.radius(5) - calib_parameters.radius(6)*tan(theta1)^2) -1)); - ft =matlabFunction(t1,'vars',[theta1]); - dft =matlabFunction(jacobian(t1,[theta1]),'vars',[theta1]); - ddft =matlabFunction(jacobian(jacobian(t1,[theta1]),[theta1]),'vars',[theta1]); - Human_model_calib(j).kinematic_dependancy.q= ft; + syms theta1 theta2 real + phi= atan(-(calib_parameters.radius(4)*calib_parameters.radius(6)*tan(theta2)*(1 + tan(theta1)^2))/(calib_parameters.radius(6)*calib_parameters.radius(5)+calib_parameters.radius(4)*calib_parameters.radius(5)*tan(theta1)^2)); + t1=atan(tan(theta1)*(-calib_parameters.radius(5)/calib_parameters.radius(6)*sin(phi)/tan(theta2)-cos(phi))); + ft =matlabFunction(t1,'vars',[theta1,theta2]); + dft =matlabFunction(jacobian(t1,[theta1,theta2]),'vars',[theta1,theta2]); + ddft =matlabFunction(jacobian(jacobian(t1,[theta1,theta2]),[theta1,theta2]),'vars',[theta1,theta2]); + Human_model_calib(j).kinematic_dependancy.q=ft; Human_model_calib(j).kinematic_dependancy.dq=dft; Human_model_calib(j).kinematic_dependancy.ddq=ddft; - - end - - - - - - + end end diff --git a/Functions/Calibration/Geometrical/Symbolic_ForwardKinematicsCoupure_A.m b/Functions/Calibration/Geometrical/Symbolic_ForwardKinematicsCoupure_A.m index 0c00ef5c..52c3b390 100644 --- a/Functions/Calibration/Geometrical/Symbolic_ForwardKinematicsCoupure_A.m +++ b/Functions/Calibration/Geometrical/Symbolic_ForwardKinematicsCoupure_A.m @@ -59,10 +59,9 @@ case 'RScapuloThoracic_J1' if sum(contains({Human_model.name},'RScapuloThoracic_Jalpha')) - - [~,idx_theta2] = intersect({Human_model.name},'RScapuloThoracic_J4bis'); - - q= radius(1)*sin(Q(idx_theta2)); + [~,idx_theta1] = intersect({Human_model.name},'RScapuloThoracic_J4'); + [~,idx_theta2] = intersect({Human_model.name},'RScapuloThoracic_J5bis'); + q= radius(1)*cos(Q(idx_theta1))*cos(Q(idx_theta2)); else %theta elevation [~,idx_theta] = intersect({Human_model.name},'RScapuloThoracic_J4'); @@ -76,9 +75,8 @@ case 'RScapuloThoracic_J2' if sum(contains({Human_model.name},'RScapuloThoracic_Jalpha')) - [~,idx_theta1] = intersect({Human_model.name},'RScapuloThoracic_J5'); - [~,idx_theta2] = intersect({Human_model.name},'RScapuloThoracic_J4bis'); - q= -radius(2)*sin(Q(idx_theta1))*cos(Q(idx_theta2)); + [~,idx_theta2] = intersect({Human_model.name},'RScapuloThoracic_J5bis'); + q= radius(2)*sin(Q(idx_theta2)); else @@ -86,16 +84,16 @@ [~,idx_theta] = intersect({Human_model.name},'RScapuloThoracic_J4'); q= radius(2)*sin(Q(idx_theta)); - + end case 'RScapuloThoracic_J3' if sum(contains({Human_model.name},'RScapuloThoracic_Jalpha')) - [~,idx_theta1] = intersect({Human_model.name},'RScapuloThoracic_J5'); - [~,idx_theta2] = intersect({Human_model.name},'RScapuloThoracic_J4bis'); - q= radius(3)*cos(Q(idx_theta1))*cos(Q(idx_theta2)); + [~,idx_theta1] = intersect({Human_model.name},'RScapuloThoracic_J4'); + [~,idx_theta2] = intersect({Human_model.name},'RScapuloThoracic_J5bis'); + q= radius(3)*sin(Q(idx_theta1))*cos(Q(idx_theta2)); else @@ -111,9 +109,9 @@ if sum(contains({Human_model.name},'LScapuloThoracic_Jalpha')) - - [~,idx_theta2] = intersect({Human_model.name},'LScapuloThoracic_J4bis'); - q= radius(4)*sin(Q(idx_theta2)); + [~,idx_theta1] = intersect({Human_model.name},'LScapuloThoracic_J4'); + [~,idx_theta2] = intersect({Human_model.name},'LScapuloThoracic_J5bis'); + q= radius(4)*cos(Q(idx_theta1))*cos(Q(idx_theta2)); else @@ -123,7 +121,7 @@ [~,idx_phi] = intersect({Human_model.name},'LScapuloThoracic_J5'); q= -radius(4)*cos(Q(idx_theta))*cos(Q(idx_phi)); - + end @@ -133,26 +131,25 @@ if sum(contains({Human_model.name},'LScapuloThoracic_Jalpha')) - [~,idx_theta1] = intersect({Human_model.name},'LScapuloThoracic_J5'); - [~,idx_theta2] = intersect({Human_model.name},'LScapuloThoracic_J4bis'); - q= -radius(5)*sin(Q(idx_theta1))*cos(Q(idx_theta2)); + [~,idx_theta2] = intersect({Human_model.name},'LScapuloThoracic_J5bis'); + q= radius(5)*sin(Q(idx_theta2)); else %theta elevation [~,idx_theta] = intersect({Human_model.name},'LScapuloThoracic_J4'); - + q=radius(5)*sin(Q(idx_theta)); - + end case 'LScapuloThoracic_J3' if sum(contains({Human_model.name},'LScapuloThoracic_Jalpha')) - [~,idx_theta1] = intersect({Human_model.name},'LScapuloThoracic_J5'); - [~,idx_theta2] = intersect({Human_model.name},'LScapuloThoracic_J4bis'); - q= -radius(6)*cos(Q(idx_theta1))*cos(Q(idx_theta2)); + [~,idx_theta1] = intersect({Human_model.name},'LScapuloThoracic_J4'); + [~,idx_theta2] = intersect({Human_model.name},'LScapuloThoracic_J5bis'); + q= -radius(6)*sin(Q(idx_theta1))*cos(Q(idx_theta2)); else @@ -162,39 +159,42 @@ [~,idx_phi] = intersect({Human_model.name},'LScapuloThoracic_J5'); q=-radius(6)*cos(Q(idx_theta))*sin(Q(idx_phi)); - + end - case 'RScapuloThoracic_J4' + case 'RScapuloThoracic_J5' if sum(contains({Human_model.name},'RScapuloThoracic_Jalpha')) - [~,idx_theta1] = intersect({Human_model.name},'RScapuloThoracic_J5'); - [~,idx_theta2] = intersect({Human_model.name},'RScapuloThoracic_J4bis'); - q = atan((radius(3)*radius(2)*tan(Q(idx_theta2))*(1 - tan( Q(idx_theta1))^2))/(radius(1)*radius(2)-radius(1)*radius(3)*tan( Q(idx_theta1))^2)); + [~,idx_theta1] = intersect({Human_model.name},'RScapuloThoracic_J4'); + [~,idx_theta2] = intersect({Human_model.name},'RScapuloThoracic_J5bis'); + q = atan(-(radius(1)*radius(3)*tan(Q(idx_theta2))*(1 + tan(Q(idx_theta1))^2))/(radius(3)*radius(2)+radius(1)*radius(2)*tan(Q(idx_theta1))^2)); end case 'RScapuloThoracic_Jalpha' + [~,idx_theta1] = intersect({Human_model.name},'RScapuloThoracic_J4'); + [~,idx_theta2] = intersect({Human_model.name},'RScapuloThoracic_J5bis'); + phi= atan(-(radius(1)*radius(3)*tan(Q(idx_theta2))*(1 + tan(Q(idx_theta1))^2))/(radius(3)*radius(2)+radius(1)*radius(2)*tan(Q(idx_theta1))^2)); + q= atan(tan(Q(idx_theta1))*(-radius(2)/radius(3)*sin(phi)/tan(Q(idx_theta2))-cos(phi))); - [~,idx_theta1] = intersect({Human_model.name},'RScapuloThoracic_J5'); - q= atan( tan(Q(idx_theta1))*(radius(3)*(1 - tan(Q(idx_theta1))^2)/(radius(2) - radius(3)*tan(Q(idx_theta1))^2) -1)); - - case 'LScapuloThoracic_J4' + case 'LScapuloThoracic_J5' if sum(contains({Human_model.name},'LScapuloThoracic_Jalpha')) - [~,idx_theta1] = intersect({Human_model.name},'LScapuloThoracic_J5'); - [~,idx_theta2] = intersect({Human_model.name},'LScapuloThoracic_J4bis'); - q = atan((radius(6)*radius(5)*tan(Q(idx_theta2))*(1 - tan( Q(idx_theta1))^2))/(radius(4)*radius(5)-radius(4)*radius(6)*tan( Q(idx_theta1))^2)); + [~,idx_theta1] = intersect({Human_model.name},'LScapuloThoracic_J4'); + [~,idx_theta2] = intersect({Human_model.name},'LScapuloThoracic_J5bis'); + q = atan(-(radius(4)*radius(6)*tan(Q(idx_theta2))*(1 + tan(Q(idx_theta1))^2))/(radius(6)*radius(5)+radius(4)*radius(5)*tan(Q(idx_theta1))^2)); end case 'LScapuloThoracic_Jalpha' - [~,idx_theta1] = intersect({Human_model.name},'LScapuloThoracic_J5'); - q= atan( tan(Q(idx_theta1))*(radius(3)*(1 - tan(Q(idx_theta1))^2)/(radius(2) - radius(3)*tan(Q(idx_theta1))^2) -1)); + [~,idx_theta1] = intersect({Human_model.name},'LScapuloThoracic_J4'); + [~,idx_theta2] = intersect({Human_model.name},'LScapuloThoracic_J5bis'); + phi=atan(-(radius(4)*radius(6)*tan(Q(idx_theta2))*(1 + tan(Q(idx_theta1))^2))/(radius(6)*radius(5)+radius(4)*radius(5)*tan(Q(idx_theta1))^2)); + q= atan(tan(Q(idx_theta1))*(-radius(5)/radius(6)*sin(phi)/tan(Q(idx_theta2))-cos(phi))); end @@ -227,7 +227,7 @@ eval(['assume(R' num2str(num_cut) 'cut(' num2str(zz) ',' num2str(z) '),''real'');']) end end - + if Human_model(j).joint == 1 % liaison pivot (pin joint) % Human_model(j).p=eval(['R' num2str(num_cut) 'cut'])*(k(i)*Human_model(j).b)+eval(['p' num2str(num_cut) 'cut']); % position du rep�re (reference frame position) Human_model(j).p=eval(['R' num2str(num_cut) 'cut'])*(k(i)*Human_model(j).b)+eval(['p' num2str(num_cut) 'cut']); % position du rep�re (reference frame position) @@ -248,7 +248,6 @@ end if Human_model(j).joint == 2 % liaison glissi�re (slide joint) % Human_model(j).p = Human_model(i).R *( k(i)*Human_model(j).b + angle* Human_model(j).a) + Human_model(i).p; - Human_model(j).p = Human_model(i).R *( k(i)*Human_model(j).b + q* axe ) + Human_model(i).p; % l'orientation de l'axe de rotation d�pend de a, et d'une % variation d'orientation diff --git a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m index 074d5ddb..a1d9ed62 100644 --- a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m +++ b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m @@ -23,7 +23,7 @@ %% Solid list -list_solid={'ScapuloThoracic_J1' 'ScapuloThoracic_J2' 'ScapuloThoracic_J3' 'ScapuloThoracic_J4' 'ScapuloThoracic_J5' 'ScapuloThoracic_J6' 'Scapula'}; +list_solid={'ScapuloThoracic_J1' 'ScapuloThoracic_J2' 'ScapuloThoracic_J3' 'ScapuloThoracic_J4' 'ScapuloThoracic_J5' 'ScapuloThoracic_J5bis' 'ScapuloThoracic_Jalpha' 'ScapuloThoracic_J6' 'Scapula'}; %% Choix jambe droite ou gauche if Side == 'R' @@ -260,13 +260,24 @@ %% Scapulo-thoracic joint -syms theta1 theta2 real% longitude latitude -x = Thorax_Rx^2*cos(theta1)*cos(theta2); -y = Thorax_Ry^2*sin(theta2); +syms theta1 theta2 real % theta1: longitude; theta2: parametric latitude; phi: geocentric latitude -z = -Sign*Thorax_Rz^2*cos(theta2)*sin(theta1); +% The coordinates of the Scapula center on the ellipsoid are function of +% longitude and parametric latitude +x = -Thorax_Rx*cos(theta1)*cos(theta2); +y = Thorax_Ry*sin(theta2); +z = Mirror(3,3)*Thorax_Rz*sin(theta1)*cos(theta2); +% PHI: Geodetic latitude +PHI = atan(-(Thorax_Rx*Thorax_Rz*tan(theta2)*(1 + tan(theta1)^2))/(Thorax_Rz*Thorax_Ry+Thorax_Rx*Thorax_Ry*tan(theta1)^2)); + +% ALPHA: the angle enabling the scapula tangency on the ellipsoid +ALPHA = atan(tan(theta1)*(-Thorax_Ry/Thorax_Rz*sin(PHI)/tan(theta2)-cos(PHI))); + + +%% "Human_model" structure generation + num_solid=0; % ScapuloThoracic_J1 num_solid=num_solid+1; % solid number @@ -286,23 +297,19 @@ Human_model(incr_solid).I=zeros(3,3); % Reference inertia matrix Human_model(incr_solid).c=[0 0 0]'; % Centre of mass position in local frame Human_model(incr_solid).calib_k_constraint=[]; -Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta1 angle +Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta angle Human_model(incr_solid).theta=[]; Human_model(incr_solid).KinematicsCut=[]; % kinematic cut Human_model(incr_solid).linear_constraint=[]; Human_model(incr_solid).Visual=0; % Dependancy Human_model(incr_solid).kinematic_dependancy.active=1; -Human_model(incr_solid).kinematic_dependancy.Joint=[incr_solid+3; incr_solid+4]; % Thoracicellips +Human_model(incr_solid).kinematic_dependancy.Joint=[incr_solid+3;incr_solid+5]; % ScapuloThoracic_J4bis % Kinematic dependancy function -f_tx = matlabFunction(x,'vars',{theta1,theta2}); -df_tx = matlabFunction(jacobian(x,[theta1,theta2]),'vars',{theta1,theta2}); -ddf_tx = matlabFunction(jacobian(jacobian(x,[theta1,theta2]),[theta1,theta2]),'vars',{theta1,theta2}); +f_tx = matlabFunction( x,'vars',{theta1,theta2}); Human_model(incr_solid).kinematic_dependancy.q=f_tx; -Human_model(incr_solid).kinematic_dependancy.dq=df_tx; -Human_model(incr_solid).kinematic_dependancy.ddq=ddf_tx; -Human_model(incr_solid).comment=[FullSide 'Scapulothoracic x displacement']; -Human_model(incr_solid).FunctionalAngle=[FullSide 'Scapulothoracic x displacement']; +Human_model(incr_solid).comment='scapulothoracic x regression'; +Human_model(incr_solid).FunctionalAngle=[name]; % ScapuloThoracic_J2 num_solid=num_solid+1; % solid number @@ -322,23 +329,19 @@ Human_model(incr_solid).I=zeros(3,3); % Reference inertia matrix Human_model(incr_solid).c=[0 0 0]'; % Centre of mass position in local frame Human_model(incr_solid).calib_k_constraint=[]; -Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta1 angle +Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta angle Human_model(incr_solid).theta=[]; Human_model(incr_solid).KinematicsCut=[]; % kinematic cut Human_model(incr_solid).linear_constraint=[]; Human_model(incr_solid).Visual=0; -Human_model(incr_solid).comment=[FullSide 'Scapulothoracic y displacement']; -Human_model(incr_solid).FunctionalAngle=[FullSide 'Scapulothoracic y displacement']; +Human_model(incr_solid).comment='scapulothoracic y regression'; +Human_model(incr_solid).FunctionalAngle=[name]; % Dependancy Human_model(incr_solid).kinematic_dependancy.active=1; -Human_model(incr_solid).kinematic_dependancy.Joint=incr_solid+3; % Thoracicellips +Human_model(incr_solid).kinematic_dependancy.Joint=[incr_solid+4]; % ScapuloThoracic_J5; ScapuloThoracic_J4bis % Kinematic dependancy function f_ty = matlabFunction(y,'vars',{theta2}); -d_fty = matlabFunction(jacobian(y,[theta2]),'vars',{theta2}); -dd_fty = matlabFunction(jacobian(jacobian(y,[theta2]),[theta2]),'vars',{theta2}); Human_model(incr_solid).kinematic_dependancy.q=f_ty; -Human_model(incr_solid).kinematic_dependancy.dq=d_fty; -Human_model(incr_solid).kinematic_dependancy.ddq=dd_fty; % ScapuloThoracic_J3 num_solid=num_solid+1; % solid number @@ -358,23 +361,19 @@ Human_model(incr_solid).I=zeros(3,3); % Reference inertia matrix Human_model(incr_solid).c=[0 0 0]'; % Centre of mass position in local frame Human_model(incr_solid).calib_k_constraint=[]; -Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta1 angle +Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta angle Human_model(incr_solid).theta=[]; Human_model(incr_solid).KinematicsCut=[]; % kinematic cut Human_model(incr_solid).linear_constraint=[]; Human_model(incr_solid).Visual=0; -Human_model(incr_solid).FunctionalAngle=[FullSide 'Scapulothoracic z displacement']; -Human_model(incr_solid).comment=[FullSide 'Scapulothoracic z displacement']; +Human_model(incr_solid).FunctionalAngle=[name]; +Human_model(incr_solid).comment='scapulothoracic z regression'; % Dependancy Human_model(incr_solid).kinematic_dependancy.active=1; -Human_model(incr_solid).kinematic_dependancy.Joint=[incr_solid+1; incr_solid+2]; % Thoracicellips +Human_model(incr_solid).kinematic_dependancy.Joint=[incr_solid+1; incr_solid+3]; % ScapuloThoracic_J5; ScapuloThoracic_J4bis % Kinematic dependancy function f_tz = matlabFunction(z,'vars',{theta1,theta2}); -df_tz = matlabFunction(jacobian(z,[theta1,theta2]),'vars',{theta1,theta2}); -ddf_tz = matlabFunction(jacobian(jacobian(z,[theta1,theta2]),[theta1,theta2]),'vars',{theta1,theta2}); Human_model(incr_solid).kinematic_dependancy.q=f_tz; -Human_model(incr_solid).kinematic_dependancy.dq=df_tz; -Human_model(incr_solid).kinematic_dependancy.ddq=ddf_tz; % ScapuloThoracic_J4 num_solid=num_solid+1; % solid number @@ -384,7 +383,7 @@ Human_model(incr_solid).sister=0; % Solid's sister Human_model(incr_solid).child=s_ScapuloThoracic_J5; % Solid's child Human_model(incr_solid).mother=s_ScapuloThoracic_J3; % Solid's mother -Human_model(incr_solid).a=[0 1 0]'; %theta1 +Human_model(incr_solid).a=[0 1 0]'; %longitude Human_model(incr_solid).joint=1; Human_model(incr_solid).limit_inf=-pi/2; Human_model(incr_solid).limit_sup=pi/2; @@ -394,13 +393,18 @@ Human_model(incr_solid).I=zeros(3,3); % Reference inertia matrix Human_model(incr_solid).c=[0 0 0]'; % Centre of mass position in local frame Human_model(incr_solid).calib_k_constraint=[]; -Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta1 angle +Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta angle Human_model(incr_solid).theta=[]; Human_model(incr_solid).KinematicsCut=[]; % kinematic cut Human_model(incr_solid).linear_constraint=[]; Human_model(incr_solid).Visual=0; -Human_model(incr_solid).FunctionalAngle=[FullSide 'Scapula abduction)']; %theta 1 -Human_model(incr_solid).comment=[FullSide 'Scapula abduction']; +if Sign == 1 + Human_model(incr_solid).FunctionalAngle='Right Scapula abduction(+)/adduction(-)'; + Human_model(incr_solid).comment='Right Scapula abduction(+)/adduction(-)'; +else + Human_model(incr_solid).FunctionalAngle='Left Scapula abduction(-)/adduction(+)'; + Human_model(incr_solid).comment='Left Scapula abduction(-)/adduction(+)'; +end % ScapuloThoracic_J5 num_solid=num_solid+1; % solid number @@ -408,27 +412,92 @@ eval(['incr_solid=s_' name ';']) % solid number in model tree Human_model(incr_solid).name=[Side name]; % solid name with side Human_model(incr_solid).sister=0; % Solid's sister -Human_model(incr_solid).child=s_ScapuloThoracic_J6; % Solid's child +Human_model(incr_solid).child=s_ScapuloThoracic_Jalpha; % Solid's child Human_model(incr_solid).mother=s_ScapuloThoracic_J4; % Solid's mother -Human_model(incr_solid).a=[0 0 1]'; +Human_model(incr_solid).a=[0 0 1]'; Human_model(incr_solid).joint=1; -Human_model(incr_solid).limit_inf=-pi/2; -Human_model(incr_solid).limit_sup=pi/2; +Human_model(incr_solid).limit_inf=-pi/4; +Human_model(incr_solid).limit_sup=pi/4; Human_model(incr_solid).ActiveJoint=1; Human_model(incr_solid).m=0; % Reference mass Human_model(incr_solid).b=[0 0 0]'; % Attachment point position in mother's frame Human_model(incr_solid).I=zeros(3,3); % Reference inertia matrix Human_model(incr_solid).c=[0 0 0]'; % Centre of mass position in local frame Human_model(incr_solid).calib_k_constraint=[]; -Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta1 angle +Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta angle Human_model(incr_solid).theta=[]; Human_model(incr_solid).KinematicsCut=[]; % kinematic cut Human_model(incr_solid).linear_constraint=[]; Human_model(incr_solid).Visual=0; -Human_model(incr_solid).FunctionalAngle='Elevatio,'; %theta2 -Human_model(incr_solid).comment='Elevation'; +Human_model(incr_solid).FunctionalAngle=[name]; +Human_model(incr_solid).FunctionalAngle=[FullSide 'Scapula elevation(-)/depression(+)']; +Human_model(incr_solid).comment=[FullSide 'Scapula elevation(-)/depression(+)']; +% Dependancy +Human_model(incr_solid).kinematic_dependancy.active=1; +Human_model(incr_solid).kinematic_dependancy.Joint=[incr_solid-1; incr_solid+1]; % ScapuloThoracic_J5; ScapuloThoracic_J4bis +% Kinematic dependancy function +Ft_PHI= matlabFunction(PHI,'vars',{theta1,theta2}); +Human_model(incr_solid).kinematic_dependancy.q=Ft_PHI; +% ScapuloThoracic_J5bis +num_solid=num_solid+1; % solid number +name=list_solid{num_solid}; % solid name +eval(['incr_solid=s_' name ';']) % solid number in model tree +Human_model(incr_solid).name=[Side name]; % solid name with side +Human_model(incr_solid).sister=s_ScapuloThoracic_J5; % Solid's sister +Human_model(incr_solid).child=0; % Solid's child +Human_model(incr_solid).mother=s_ScapuloThoracic_J4; % Solid's mother +Human_model(incr_solid).a=[0 0 1]'; +Human_model(incr_solid).joint=1; +Human_model(incr_solid).limit_inf=-Inf; +Human_model(incr_solid).limit_sup=Inf; +Human_model(incr_solid).ActiveJoint=1; +Human_model(incr_solid).m=0; % Reference mass +Human_model(incr_solid).b=[0 0 0]'; % Attachment point position in mother's frame +Human_model(incr_solid).I=zeros(3,3); % Reference inertia matrix +Human_model(incr_solid).c=[0 0 0]'; % Centre of mass position in local frame +Human_model(incr_solid).calib_k_constraint=[]; +Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta angle +Human_model(incr_solid).theta=[]; +Human_model(incr_solid).KinematicsCut=[]; % kinematic cut +Human_model(incr_solid).linear_constraint=[]; +Human_model(incr_solid).Visual=0; +Human_model(incr_solid).comment=[FullSide 'Scapula parametric elevation - depression']; + + + +% ScapuloThoracic_Jalpha +num_solid=num_solid+1; % solid number +name=list_solid{num_solid}; % solid name +eval(['incr_solid=s_' name ';']) % solid number in model tree +Human_model(incr_solid).name=[Side name]; % solid name with side +Human_model(incr_solid).sister=0; % Solid's sister +Human_model(incr_solid).child=s_ScapuloThoracic_J6; % Solid's child +Human_model(incr_solid).mother=s_ScapuloThoracic_J5; % Solid's mother +Human_model(incr_solid).a=[0 1 0]'; +Human_model(incr_solid).joint=1; +Human_model(incr_solid).limit_inf=-pi; +Human_model(incr_solid).limit_sup=pi; +Human_model(incr_solid).ActiveJoint=1; +Human_model(incr_solid).m=0; % Reference mass +Human_model(incr_solid).b=[0 0 0]'; % Attachment point position in mother's frame +Human_model(incr_solid).I=zeros(3,3); % Reference inertia matrix +Human_model(incr_solid).c=[0 0 0]'; % Centre of mass position in local frame +Human_model(incr_solid).calib_k_constraint=[]; +Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta angle +Human_model(incr_solid).theta=[]; +Human_model(incr_solid).KinematicsCut=[]; % kinematic cut +Human_model(incr_solid).linear_constraint=[]; +Human_model(incr_solid).Visual=0; +Human_model(incr_solid).comment='Scapula tangency angle'; +Human_model(incr_solid).FunctionalAngle=[name]; +% Dependancy +Human_model(incr_solid).kinematic_dependancy.active=1; +Human_model(incr_solid).kinematic_dependancy.Joint=[incr_solid-3; incr_solid-1]; % ScapuloThoracic_J5 +% Kinematic dependancy function +Ft_ALPHA= matlabFunction(ALPHA,'vars',{theta1,theta2}); +Human_model(incr_solid).kinematic_dependancy.q=Ft_ALPHA; % ScapuloThoracic_J6 num_solid=num_solid+1; % solid number From 2ceb3b1132ab3a042121d69c02544b054fbbbc84 Mon Sep 17 00:00:00 2001 From: TheoRouvier Date: Wed, 17 Aug 2022 10:36:13 +0200 Subject: [PATCH 28/46] Bug fixing in kinematic dependancy --- Functions/Kinematics/KinematicDependancy.m | 12 +++++--- .../ModelParts/Scapula_Shoulder_Tangent.m | 30 +++++++++---------- 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/Functions/Kinematics/KinematicDependancy.m b/Functions/Kinematics/KinematicDependancy.m index b6f37ef0..c87ad0b6 100644 --- a/Functions/Kinematics/KinematicDependancy.m +++ b/Functions/Kinematics/KinematicDependancy.m @@ -21,11 +21,10 @@ -dependancies=[]; if isfield(Human_model,'kinematic_dependancy') - dependancies=[Human_model.kinematic_dependancy]; - - if ~isempty(dependancies) + dependancies_struct=Human_model.kinematic_dependancy; + if ~isempty(dependancies_struct) + dependancies=[Human_model.kinematic_dependancy]; ind_output=1; for k=1:size(Human_model,2) if ~isempty(Human_model(k).kinematic_dependancy) @@ -33,7 +32,12 @@ ind_output=ind_output+1; end end + else + %most likely dependancies field is empty + dependancies=[]; end +else + dependancies=[]; end diff --git a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m index a1d9ed62..69f69bad 100644 --- a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m +++ b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m @@ -90,20 +90,20 @@ % Centre of mass location in OpenSim frame Scapula_CoM = Thorax_osim2antoine.*Mirror*[-0.054694 -0.035032 -0.043734]'; % Landmarks location in CusToM frame -Scapula_ghJointNode = Thorax_osim2antoine.*Mirror*[-0.00955; -0.034; 0.009] - Scapula_CoM; -Scapula_stJointNode = Thorax_osim2antoine.*Mirror*[-0.05982; -0.03904; -0.056] - Scapula_CoM; -Scapula_acJointNode = Thorax_osim2antoine.*Mirror*[-0.01357; 0.00011; -0.01523] - Scapula_CoM; +Scapula_ghJointNode = Thorax_osim2antoine.*Mirror*[-0.00955; -0.034; 0.009] - Scapula_CoM; +Scapula_stJointNode = Thorax_osim2antoine.*Mirror*[-0.05982; -0.03904; -0.056] - Scapula_CoM; +Scapula_acJointNode = Thorax_osim2antoine.*Mirror*[-0.01357; 0.00011; -0.01523] - Scapula_CoM; Scapula_acromion_plane = Thorax_osim2antoine.*Mirror*[-0.0142761 0.0131922 -0.00563961]' - Scapula_CoM; -Scapula_acromion = Thorax_osim2antoine.*Mirror*[-0.0142761 0.0131922 -0.00563961]' - Scapula_CoM; -Scapula_cluster_lat = Thorax_osim2antoine.*Mirror*[-0.0860033 0.0298369 -0.00786593]' - Scapula_CoM; -Scapula_cluster_med = Thorax_osim2antoine.*Mirror*[-0.0956621 0.0398035 -0.0552027]' - Scapula_CoM; -Scapula_cluster_mid = Thorax_osim2antoine.*Mirror*[-0.119492 0.0147336 -0.0385808]' - Scapula_CoM; -Scapula_locator_AI = Thorax_osim2antoine.*Mirror*[-0.109351 -0.1132 -0.0903848]' - Scapula_CoM; -Scapula_locator_TS = Thorax_osim2antoine.*Mirror*[-0.0874576 -0.0120416 -0.098654]' - Scapula_CoM; -Scapula_locator_AA = Thorax_osim2antoine.*Mirror*[-0.0393614 -0.00318483 0.0080672]' - Scapula_CoM; -Thorax_Rx = Thorax_osim2antoine(1)*0.07; -Thorax_Ry = Thorax_osim2antoine(2)*0.15; -Thorax_Rz = Thorax_osim2antoine(3)*0.07; +Scapula_acromion = Thorax_osim2antoine.*Mirror*[-0.0142761 0.0131922 -0.00563961]' - Scapula_CoM; +Scapula_cluster_lat = Thorax_osim2antoine.*Mirror*[-0.0860033 0.0298369 -0.00786593]' - Scapula_CoM; +Scapula_cluster_med = Thorax_osim2antoine.*Mirror*[-0.0956621 0.0398035 -0.0552027]' - Scapula_CoM; +Scapula_cluster_mid = Thorax_osim2antoine.*Mirror*[-0.119492 0.0147336 -0.0385808]' - Scapula_CoM; +Scapula_locator_AI = Thorax_osim2antoine.*Mirror*[-0.109351 -0.1132 -0.0903848]' - Scapula_CoM; +Scapula_locator_TS = Thorax_osim2antoine.*Mirror*[-0.0874576 -0.0120416 -0.098654]' - Scapula_CoM; +Scapula_locator_AA = Thorax_osim2antoine.*Mirror*[-0.0393614 -0.00318483 0.0080672]' - Scapula_CoM; +Thorax_Rx = Thorax_osim2antoine(1)*0.07; +Thorax_Ry = Thorax_osim2antoine(2)*0.15; +Thorax_Rz = Thorax_osim2antoine(3)*0.07; %% Definition of anatomical landmarThorax_osim2antoine.s (with respect to the center of mass of the solid) @@ -543,8 +543,8 @@ Human_model(incr_solid).I=[I_Scapula(1) I_Scapula(4) I_Scapula(5); I_Scapula(4) I_Scapula(2) I_Scapula(6); I_Scapula(5) I_Scapula(6) I_Scapula(3)]; % Reference inertia matrix Human_model(incr_solid).c=-Scapula_stJointNode; % Centre of mass position in local frame Human_model(incr_solid).calib_k_constraint=[]; -Human_model(incr_solid).u=[0 1 0]'; % fixed rotation with respect to u axis of theta1 angle -Human_model(incr_solid).theta=-pi/2; +Human_model(incr_solid).u=[]; % fixed rotation with respect to u axis of theta1 angle +Human_model(incr_solid).theta=0; Human_model(incr_solid).KinematicsCut=[]; % kinematic cut Human_model(incr_solid).linear_constraint=[]; Human_model(incr_solid).anat_position=Scapula_position_set; From f354d9c4a2be3641c6dfb6439d314f0d3e1498e1 Mon Sep 17 00:00:00 2001 From: TheoRouvier Date: Wed, 1 Feb 2023 14:56:33 +0100 Subject: [PATCH 29/46] small updates to rodrigues --- Functions/AlgoMathsModel/Rodrigues.m | 2 +- Functions/Dynamics/CalcMC.m | 2 +- Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Functions/AlgoMathsModel/Rodrigues.m b/Functions/AlgoMathsModel/Rodrigues.m index 50266b97..ef281a0a 100644 --- a/Functions/AlgoMathsModel/Rodrigues.m +++ b/Functions/AlgoMathsModel/Rodrigues.m @@ -22,7 +22,7 @@ ap=[0 -a(3) a(2);... a(3) 0 -a(1);... -a(2) a(1) 0]; - R=[1 0 0;0 1 0;0 0 1]+ap*sin(q)+ap*ap*(1-cos(q)); + R=[1 0 0;0 1 0;0 0 1]+ap.*sin(q)+ap.*ap.*(1-cos(q)); end end \ No newline at end of file diff --git a/Functions/Dynamics/CalcMC.m b/Functions/Dynamics/CalcMC.m index 2ad0d1d7..356cd556 100644 --- a/Functions/Dynamics/CalcMC.m +++ b/Functions/Dynamics/CalcMC.m @@ -18,6 +18,6 @@ if j==0 mc=0; else - mc=Human_model(j).m*(Human_model(j).p+Human_model(j).R*Human_model(j).c); + mc=Human_model(j).m.*(Human_model(j).p+Human_model(j).R.*Human_model(j).c); mc=mc+CalcMC(Human_model,Human_model(j).sister)+CalcMC(Human_model,Human_model(j).child); end \ No newline at end of file diff --git a/Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m b/Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m index a79f1258..8345d9af 100644 --- a/Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m +++ b/Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m @@ -97,7 +97,7 @@ Humerus_Biceps_via7 = (osim2antoine.*[0.0228 -0.1754 -0.0063])*Mirror; %in local frame OSIMarm26 %Humerus_ECRL = (k*[-0.005 -0.260 -0.002])*Mirror; %in local frame gh Murray2001 -% Humerus_Brachialis = (k*[0.008 -0.184 -0.013])*Mirror; %in local frame gh Murray2001 +%Humerus_Brachialis = (k*[0.008 -0.184 -0.013])*Mirror; %in local frame gh Murray2001 %Humerus_Brachialis = (k*[0.0068 -0.1739 -0.0036])*Mirror; %in local frame OSIMarm26 %Humerus_PronatorTeres = (k*[0.003 -0.270 -0.051])*Mirror; %in local frame gh Murray2001 From 06cfd065072710419a0f8f48b1bb52c5b462f23a Mon Sep 17 00:00:00 2001 From: TheoRouvier Date: Tue, 21 Mar 2023 15:38:25 +0100 Subject: [PATCH 30/46] Debugging of rodrigues and uppertrunkclavicle model --- Functions/AlgoMathsModel/Rodrigues.m | 3 +-- .../Osteoarticular/UpperTrunk/UpperTrunkClavicle.m | 10 +++++----- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/Functions/AlgoMathsModel/Rodrigues.m b/Functions/AlgoMathsModel/Rodrigues.m index ef281a0a..28cb8777 100644 --- a/Functions/AlgoMathsModel/Rodrigues.m +++ b/Functions/AlgoMathsModel/Rodrigues.m @@ -22,7 +22,6 @@ ap=[0 -a(3) a(2);... a(3) 0 -a(1);... -a(2) a(1) 0]; - R=[1 0 0;0 1 0;0 0 1]+ap.*sin(q)+ap.*ap.*(1-cos(q)); + R=[1 0 0;0 1 0;0 0 1]+ap.*sin(q)+pagemtimes(ap,ap).*(1-cos(q)); end - end \ No newline at end of file diff --git a/Functions/Models/Osteoarticular/UpperTrunk/UpperTrunkClavicle.m b/Functions/Models/Osteoarticular/UpperTrunk/UpperTrunkClavicle.m index eaf364db..272015d7 100644 --- a/Functions/Models/Osteoarticular/UpperTrunk/UpperTrunkClavicle.m +++ b/Functions/Models/Osteoarticular/UpperTrunk/UpperTrunkClavicle.m @@ -317,11 +317,11 @@ 'Lclavicle_r_trap_cl_r-P1',[1 0 0; 0 1 0; 0 0 -1]*(Thorax_osim2antoine'.*([-0.0171;0.019;0.0727]));... % Muscles from (Seth et al., 2019) 'LClavicle_TrapeziusClavicle_S-P2',[1 0 0; 0 1 0; 0 0 -1]*(Thorax_osim2antoine'.*([-0.0301;0.0249;0.0910])-CoM_Clavicle_osim');... - 'LScapula_BicepsL_o',[1 0 0; 0 1 0; 0 0 -1]*(Thorax_osim2antoine'.*([-0.03123;-0.02353;-0.01305])-Clavicle2Scapula);... - 'LScapula_BicepsL_via1',[1 0 0; 0 1 0; 0 0 -1]*(Thorax_osim2antoine'.*([-0.02094;-0.01309;-0.00461])-Clavicle2Scapula);... - 'LScapula_BicepsS_o',[1 0 0; 0 1 0; 0 0 -1]*(Thorax_osim2antoine'.*([0.01268;-0.03931;-0.02625])-Clavicle2Scapula);... - 'LScapula_BicepsS_via1',[1 0 0; 0 1 0; 0 0 -1]*(Thorax_osim2antoine'.*([0.00093;-0.06704;-0.01593])-Clavicle2Scapula);... - 'LScapula_Triceps_o',[1 0 0; 0 1 0; 0 0 -1]*(Thorax_osim2antoine'.*([-0.04565;-0.04073;-0.01377])-Clavicle2Scapula);... + 'LScapula_BicepsL_o',[1 0 0; 0 1 0; 0 0 -1]*(Thorax_osim2antoine'.*([-0.03123;-0.02353;-0.01305])-Clavicle2Scapula');... + 'LScapula_BicepsL_via1',[1 0 0; 0 1 0; 0 0 -1]*(Thorax_osim2antoine'.*([-0.02094;-0.01309;-0.00461])-Clavicle2Scapula');... + 'LScapula_BicepsS_o',[1 0 0; 0 1 0; 0 0 -1]*(Thorax_osim2antoine'.*([0.01268;-0.03931;-0.02625])-Clavicle2Scapula');... + 'LScapula_BicepsS_via1',[1 0 0; 0 1 0; 0 0 -1]*(Thorax_osim2antoine'.*([0.00093;-0.06704;-0.01593])-Clavicle2Scapula');... + 'LScapula_Triceps_o',[1 0 0; 0 1 0; 0 0 -1]*(Thorax_osim2antoine'.*([-0.04565;-0.04073;-0.01377])-Clavicle2Scapula');... % % % Scapula Muscle paths from (Puchaud et al., 2019) % 'LScapula_DELT1-P3',[1 0 0; 0 1 0; 0 0 -1]*(Thorax_osim2antoine'.*([0.04347;-0.03252;0.00099])-Clavicle2Scapula');... From 20e09eef5a9681435717ad8bd98c574da049ceae Mon Sep 17 00:00:00 2001 From: TheoRouvier Date: Wed, 5 Apr 2023 15:47:27 +0200 Subject: [PATCH 31/46] bug correction --- .../ExternalForces/FromExperiments/Wheelchair.m | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Functions/ExternalForces/FromExperiments/Wheelchair.m b/Functions/ExternalForces/FromExperiments/Wheelchair.m index 543c67ce..9fc3eda2 100644 --- a/Functions/ExternalForces/FromExperiments/Wheelchair.m +++ b/Functions/ExternalForces/FromExperiments/Wheelchair.m @@ -63,12 +63,12 @@ %% Handrim forces are added in variable external_forces % Wheelchair frame computation based on marker position -A = cell{nb_frame,1}; -pWheelchair = cell{nb_frame,1}; -xWheelchair = cell{nb_frame,1}; -yWheelchair = cell{nb_frame,1}; -zWheelchair = cell{nb_frame,1}; -RWheelchair = cell{nb_frame,1}; +A = cell(nb_frame,1); +pWheelchair = cell(nb_frame,1); +xWheelchair = cell(nb_frame,1); +yWheelchair = cell(nb_frame,1); +zWheelchair = cell(nb_frame,1); +RWheelchair = cell(nb_frame,1); for i=1:nbframe % Center of wheelchair frame (midpoint between right and left wheel) A{i} =(real_markers(list_markers_wheelchair{2,2}).position(i,:)+real_markers(list_markers_wheelchair{3,2}).position(i,:))/2; From 55bcdce38afcf93cc046e324aca373e6754f7923 Mon Sep 17 00:00:00 2001 From: TheoRouvier Date: Tue, 11 Apr 2023 22:12:14 +0200 Subject: [PATCH 32/46] Correction to ID --- .../InputDataImport/C3dProcessedData.m | 5 +++ Functions/Dynamics/InverseDynamics.m | 2 +- .../ExternalForcesComputation.m | 2 +- .../FromExperiments/Wheelchair.m | 31 ++++++++++++------- Functions/Kinematics/InverseKinematicsLM.m | 5 ++- Functions/Main.m | 18 +++++------ .../ModelParts/Scapula_Shoulder_Tangent.m | 4 +-- .../CostFunction/PolynomialFunction.m | 4 +-- .../Optimization/ForcesComputationOptiNum.m | 6 ++-- 9 files changed, 45 insertions(+), 32 deletions(-) diff --git a/Functions/DataImport/InputDataImport/C3dProcessedData.m b/Functions/DataImport/InputDataImport/C3dProcessedData.m index bf6f5181..7bd91244 100644 --- a/Functions/DataImport/InputDataImport/C3dProcessedData.m +++ b/Functions/DataImport/InputDataImport/C3dProcessedData.m @@ -112,10 +112,15 @@ if isempty(find(markers.(list_marker_c3d{ii})==0,1)) real_markers(cpt).name=list_m_table(Ia(ii)); real_markers(cpt).position_c3d=markers.(list_marker_c3d{ii})/1000; + real_markers(cpt).weight = 1; cpt = cpt+1; else warning(['A least one marker is occluded in ' filename ', occluded markers :']) disp(list_m_table(Ia(ii))); + real_markers(cpt).name=list_m_table(Ia(ii)); + real_markers(cpt).position_c3d=zeros(nb_frame,3); + real_markers(cpt).weight = 0; + cpt = cpt+1; end end diff --git a/Functions/Dynamics/InverseDynamics.m b/Functions/Dynamics/InverseDynamics.m index cbd61cbf..c504e363 100644 --- a/Functions/Dynamics/InverseDynamics.m +++ b/Functions/Dynamics/InverseDynamics.m @@ -22,7 +22,7 @@ % Georges Dumont %________________________________________________________ -parfor num_fil = 1:numel(AnalysisParameters.filename) +for num_fil = 1:numel(AnalysisParameters.filename) filename = AnalysisParameters.filename{num_fil}(1:end-(numel(AnalysisParameters.General.Extension)-1)); disp(['Inverse dynamics (' filename ') ...']) diff --git a/Functions/ExternalForces/ExternalForcesComputation.m b/Functions/ExternalForces/ExternalForcesComputation.m index f31cb944..32fc79c7 100644 --- a/Functions/ExternalForces/ExternalForcesComputation.m +++ b/Functions/ExternalForces/ExternalForcesComputation.m @@ -30,7 +30,7 @@ load('BiomechanicalModel.mat'); %#ok end -parfor i = 1:numel(AnalysisParameters.filename) +for i = 1:numel(AnalysisParameters.filename) filename = AnalysisParameters.filename{i}(1:end-(numel(AnalysisParameters.General.Extension)-1)); if AnalysisParameters.ID.InputData == 0 [ExternalForcesComputationResults] = ExternalForces_Zero(filename, BiomechanicalModel); diff --git a/Functions/ExternalForces/FromExperiments/Wheelchair.m b/Functions/ExternalForces/FromExperiments/Wheelchair.m index 9fc3eda2..94939855 100644 --- a/Functions/ExternalForces/FromExperiments/Wheelchair.m +++ b/Functions/ExternalForces/FromExperiments/Wheelchair.m @@ -23,11 +23,11 @@ load([filename '/ExperimentalData.mat']); %#ok time = ExperimentalData.Time; real_markers = ExperimentalData.MarkerPositions; -nbframe=numel(time); +nb_frame=numel(time); f_mocap=1/time(2); % Initialisation -for f=1:nbframe +for f=1:nb_frame for n=1:numel(Human_model) external_forces(f).fext(n).fext=zeros(3,2); %#ok end @@ -43,16 +43,19 @@ % Filtrage des données (data filtering) if AnalysisParameters.ExternalForces.FilterActive - for i=1:numel(Right_Handrim) - Right_Handrim(i)=filt_data(Right_Handrim(i),AnalysisParameters.ExternalForces.FilterCutOff,f_mocap); + for i=1:size(Right_Handrim,2) + Right_Handrim(:,i)=filt_data(Right_Handrim(:,i),AnalysisParameters.ExternalForces.FilterCutOff,f_mocap); end - for i=1:numel(Left_Handrim) - Left_Handrim(i)=filt_data(Left_Handrim(i),AnalysisParameters.ExternalForces.FilterCutOff,f_mocap); + for i=1:size(Left_Handrim,2) + Left_Handrim(:,i)=filt_data(Left_Handrim(:,i),AnalysisParameters.ExternalForces.FilterCutOff,f_mocap); end end % Wheelchair frame -list_markers_wheelchair={'FRMA';'FRMRG';'FRMRD';'FRMAVG';'FRMAVD'}; +list_markers_wheelchair={'FRMA';'FRMRG';'FRMRD';'FRMAVG';'FRMAVD';'MC2G';'MC5G';'MC2D';'MC5D'}; +[real_markers]=C3dProcessedData(filename, list_markers_wheelchair); + + for i=1:numel(list_markers_wheelchair) % finding number of marker for j=1:numel(real_markers) if strcmp(list_markers_wheelchair{i},real_markers(j).name) @@ -69,28 +72,32 @@ yWheelchair = cell(nb_frame,1); zWheelchair = cell(nb_frame,1); RWheelchair = cell(nb_frame,1); -for i=1:nbframe +for i=1:nb_frame % Center of wheelchair frame (midpoint between right and left wheel) - A{i} =(real_markers(list_markers_wheelchair{2,2}).position(i,:)+real_markers(list_markers_wheelchair{3,2}).position(i,:))/2; + A{i} =(real_markers(list_markers_wheelchair{2,2}).position_c3d(i,:)+real_markers(list_markers_wheelchair{3,2}).position_c3d(i,:))/2; pWheelchair{i} =A{i}'; % Wheelchair frame z-axis - zWheelchair_i =(real_markers(list_markers_wheelchair{3,2}).position(i,:)-real_markers(list_markers_wheelchair{2,2}).position(i,:)); + zWheelchair_i =(real_markers(list_markers_wheelchair{3,2}).position_c3d(i,:)-real_markers(list_markers_wheelchair{2,2}).position_c3d(i,:)); zWheelchair{i} =zWheelchair_i/norm(zWheelchair_i); yWheelchair{i} =[0 0 1]; xWheelchair{i} =cross(zWheelchair{i},yWheelchair{i}); zWheelchair{i} =cross(xWheelchair{i},yWheelchair{i}); RWheelchair{i} =[xWheelchair{i}' yWheelchair{i}' zWheelchair{i}']; + + COP_Right(i,:) = (real_markers(list_markers_wheelchair{9,2}).position_c3d(i,:)+real_markers(list_markers_wheelchair{8,2}).position_c3d(i,:))/2; + COP_Left(i,:) = (real_markers(list_markers_wheelchair{7,2}).position_c3d(i,:)+real_markers(list_markers_wheelchair{6,2}).position_c3d(i,:))/2; + end % Right Handrim forces Solid_name='RHand'; Solid=find(strcmp({Human_model.name},Solid_name)); -[external_forces] = addPlatformForces(external_forces, Solid, pWheelchair, RWheelchair, -[Right_Handrim],COP); +[external_forces] = addPlatformForces(external_forces, Solid, pWheelchair, RWheelchair, -[Right_Handrim],COP_Right); % Left Handrim forces Solid_name='LHand'; Solid=find(strcmp({Human_model.name},Solid_name)); -[external_forces] = addPlatformForces(external_forces, Solid, pWheelchair, RWheelchair, -[Left_Handrim(1:6)], COP); +[external_forces] = addPlatformForces(external_forces, Solid, pWheelchair, RWheelchair, -[Left_Handrim], COP_Left); % Sauvegarde des données if exist([filename '/ExternalForcesComputationResults.mat'],'file') load([filename '/ExternalForcesComputationResults.mat']); diff --git a/Functions/Kinematics/InverseKinematicsLM.m b/Functions/Kinematics/InverseKinematicsLM.m index 238c05e0..befd444b 100644 --- a/Functions/Kinematics/InverseKinematicsLM.m +++ b/Functions/Kinematics/InverseKinematicsLM.m @@ -95,9 +95,8 @@ l_inf1=[Human_model.limit_inf]'; l_sup1=[Human_model.limit_sup]'; end - -weights = ones(1,length(real_markers)); -%weights = AnalysisParameters.IK.weights'; +weights = ones(1,length(real_markers)).*[real_markers(:).weight]; +%weights = AnalysisParameters.IK.weights'.*real_markers.weights; Jfq = BiomechanicalModel.Jacob.Jfq; diff --git a/Functions/Main.m b/Functions/Main.m index 67992a6f..d4e95149 100644 --- a/Functions/Main.m +++ b/Functions/Main.m @@ -32,25 +32,25 @@ %% Inverse kinematics %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -if AnalysisParameters.IK.Active - InverseKinematics(AnalysisParameters); -end +% if AnalysisParameters.IK.Active +% InverseKinematics(AnalysisParameters); +% end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% External forces computation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -if AnalysisParameters.ID.Active - ExternalForcesComputation(AnalysisParameters, ModelParameters); -end +% if AnalysisParameters.ID.Active +% ExternalForcesComputation(AnalysisParameters, ModelParameters); +% end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Inverse dynamics %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -if AnalysisParameters.ID.Active - InverseDynamics(AnalysisParameters); -end +% if AnalysisParameters.ID.Active +% InverseDynamics(AnalysisParameters); +% end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Muscle forces computation diff --git a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m index 69f69bad..b1cea09d 100644 --- a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m +++ b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m @@ -411,7 +411,7 @@ name=list_solid{num_solid}; % solid name eval(['incr_solid=s_' name ';']) % solid number in model tree Human_model(incr_solid).name=[Side name]; % solid name with side -Human_model(incr_solid).sister=0; % Solid's sister +Human_model(incr_solid).sister=s_ScapuloThoracic_J5bis; % Solid's sister Human_model(incr_solid).child=s_ScapuloThoracic_Jalpha; % Solid's child Human_model(incr_solid).mother=s_ScapuloThoracic_J4; % Solid's mother Human_model(incr_solid).a=[0 0 1]'; @@ -445,7 +445,7 @@ name=list_solid{num_solid}; % solid name eval(['incr_solid=s_' name ';']) % solid number in model tree Human_model(incr_solid).name=[Side name]; % solid name with side -Human_model(incr_solid).sister=s_ScapuloThoracic_J5; % Solid's sister +Human_model(incr_solid).sister=0; % Solid's sister Human_model(incr_solid).child=0; % Solid's child Human_model(incr_solid).mother=s_ScapuloThoracic_J4; % Solid's mother Human_model(incr_solid).a=[0 0 1]'; diff --git a/Functions/MuscleForces/CostFunction/PolynomialFunction.m b/Functions/MuscleForces/CostFunction/PolynomialFunction.m index 3515ad8c..44ef6f6e 100644 --- a/Functions/MuscleForces/CostFunction/PolynomialFunction.m +++ b/Functions/MuscleForces/CostFunction/PolynomialFunction.m @@ -1,4 +1,4 @@ -function [Aopt] = PolynomialFunction(A0, Aeq, beq, Amin, Amax, fmincon_options, options, Fa, Fmax, varargin) +function [Aopt,exitflag] = PolynomialFunction(A0, Aeq, beq, Amin, Amax, fmincon_options, options, Fa, Fmax, varargin) % Optimization used for the force sharing problem: polynomial function % % Based on : @@ -39,5 +39,5 @@ cost_function = @(A) (sum((Fa./Fmax(1:ind_act-1)).*A(1:ind_act-1)).^(options) + sum(A(ind_act:end).^2 )); end % Optimization -Aopt = fmincon(cost_function,A0,[],[],Aeq,beq,Amin,Amax,[],fmincon_options); +[Aopt,~,exitflag] = fmincon(cost_function,A0,[],[],Aeq,beq,Amin,Amax,[],fmincon_options); end \ No newline at end of file diff --git a/Functions/MuscleForces/Optimization/ForcesComputationOptiNum.m b/Functions/MuscleForces/Optimization/ForcesComputationOptiNum.m index 1ce29406..f3c44fdc 100644 --- a/Functions/MuscleForces/Optimization/ForcesComputationOptiNum.m +++ b/Functions/MuscleForces/Optimization/ForcesComputationOptiNum.m @@ -59,13 +59,15 @@ for i=1:Nb_frames % for each frames - Lmt(:s,i) = MuscleLengthComputationNum(BiomechanicalModel,q(:,i)); %dependant of every q (q_complete) + Lmt(:,i) = MuscleLengthComputationNum(BiomechanicalModel,q(:,i)); %dependant of every q (q_complete) R(:,:,i) = MomentArmsComputationAnalytic(BiomechanicalModel,q(:,i)); %depend on reduced set of q (q_red) end idxj=find(sum(R(:,:,1),2)~=0)'; +idxj=41:68; + %% Computation of muscle forces (optimization) % Optimisation parameters Amin = zeros(Nb_muscles,1); @@ -77,7 +79,7 @@ % Solver parameters options1 = optimoptions(@fmincon,'Algorithm','sqp','Display','off','GradObj','off','GradConstr','off','TolFun',1e-6,'MaxIterations',100000,'MaxFunEvals',100000); -options2 = optimoptions(@fmincon,'Algorithm','sqp','Display','off','GradObj','off','GradConstr','off','TolFun',1e-6,'MaxIterations',1000,'MaxFunEvals',2000000); +options2 = optimoptions(@fmincon,'Algorithm','sqp','Display','final','GradObj','off','GradConstr','off','TolFun',1e-6,'MaxIterations',1000,'MaxFunEvals',2000000); h = waitbar(0,['Forces Computation (' filename ')']); From 2380c724d53cbcc225691c291cb72e90b0975f70 Mon Sep 17 00:00:00 2001 From: TheoRouvier Date: Tue, 11 Apr 2023 22:25:26 +0200 Subject: [PATCH 33/46] correction to shoulder model --- Functions/Main.m | 13 ++++++------- .../Models/Osteoarticular/Arm/ModelParts/Upperarm.m | 8 ++++---- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/Functions/Main.m b/Functions/Main.m index d4e95149..7921bad5 100644 --- a/Functions/Main.m +++ b/Functions/Main.m @@ -32,9 +32,9 @@ %% Inverse kinematics %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% if AnalysisParameters.IK.Active -% InverseKinematics(AnalysisParameters); -% end +if AnalysisParameters.IK.Active + InverseKinematics(AnalysisParameters); +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% External forces computation @@ -48,16 +48,15 @@ %% Inverse dynamics %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% if AnalysisParameters.ID.Active -% InverseDynamics(AnalysisParameters); -% end +if AnalysisParameters.ID.Active + InverseDynamics(AnalysisParameters); +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Muscle forces computation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if AnalysisParameters.Muscles.Active -% MuscleForcesComputation(AnalysisParameters); MuscleForcesComputationNum(AnalysisParameters); end diff --git a/Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m b/Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m index 8345d9af..ae5a1578 100644 --- a/Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m +++ b/Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m @@ -340,10 +340,10 @@ OsteoArticularModel(incr_solid).joint=1; if Signe == 'R' OsteoArticularModel(incr_solid).limit_inf=-4*pi/5; % inferior joint biomechanical stop - OsteoArticularModel(incr_solid).limit_sup=pi/4; % superior joint biomechanical stop + OsteoArticularModel(incr_solid).limit_sup=pi/2; % superior joint biomechanical stop OsteoArticularModel(incr_solid).FunctionalAngle='Right GH Elevation(-)/Depression(+)'; else - OsteoArticularModel(incr_solid).limit_inf=-pi/4; % inferior joint biomechanical stop + OsteoArticularModel(incr_solid).limit_inf=-pi/2; % inferior joint biomechanical stop OsteoArticularModel(incr_solid).limit_sup=4*pi/5; % superior joint biomechanical stop OsteoArticularModel(incr_solid).FunctionalAngle='Left GH Elevation(+)/Depression(-)'; end @@ -397,10 +397,10 @@ OsteoArticularModel(incr_solid).joint=1; if Signe == 'R' OsteoArticularModel(incr_solid).limit_inf=-pi/2; - OsteoArticularModel(incr_solid).limit_sup=pi/6; % superior joint biomechanical stop + OsteoArticularModel(incr_solid).limit_sup=pi; % superior joint biomechanical stop OsteoArticularModel(incr_solid).FunctionalAngle='Right GH Axial rotation Internal(+)/External(-)'; else - OsteoArticularModel(incr_solid).limit_inf=-pi/6; + OsteoArticularModel(incr_solid).limit_inf=-pi; OsteoArticularModel(incr_solid).limit_sup=pi/2; % superior joint biomechanical stop OsteoArticularModel(incr_solid).FunctionalAngle='Left GH Axial rotation Internal(-)/External(+)'; end From 1e7617877bf9e83b588522e47997266d4bbdf3e9 Mon Sep 17 00:00:00 2001 From: TheoRouvier Date: Wed, 12 Apr 2023 10:16:50 +0200 Subject: [PATCH 34/46] Update to arm model (Holzbaur 2005) --- Functions/Main.m | 6 +- .../Osteoarticular/Arm/ModelParts/Upperarm.m | 102 +++++++++--------- .../ModelParts/Scapula_Shoulder_Tangent.m | 24 ++--- 3 files changed, 67 insertions(+), 65 deletions(-) diff --git a/Functions/Main.m b/Functions/Main.m index 7921bad5..03c3f842 100644 --- a/Functions/Main.m +++ b/Functions/Main.m @@ -40,9 +40,9 @@ %% External forces computation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% if AnalysisParameters.ID.Active -% ExternalForcesComputation(AnalysisParameters, ModelParameters); -% end +if AnalysisParameters.ID.Active + ExternalForcesComputation(AnalysisParameters, ModelParameters); +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Inverse dynamics diff --git a/Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m b/Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m index ae5a1578..75cbf281 100644 --- a/Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m +++ b/Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m @@ -24,7 +24,8 @@ % Authors : Antoine Muller, Charles Pontonnier, Pierre Puchaud and % Georges Dumont %________________________________________________________ -list_solid={'Glenohumeral_J1' 'Glenohumeral_J2' 'Glenohumeral_J3' 'Humerus'}; +% list_solid={'Glenohumeral_J1' 'Glenohumeral_J2' 'Glenohumeral_J3' 'Humerus'}; +list_solid={'Glenohumeral_J1' 'Glenohumeral_J2' 'Humerus'}; %% Choose right or left arm if Signe == 'R' @@ -311,10 +312,17 @@ OsteoArticularModel(incr_solid).sister=0; % sister : defined as an input of the function OsteoArticularModel(incr_solid).child=s_Glenohumeral_J2; OsteoArticularModel(incr_solid).mother=s_mother; % mother : defined as an input of the function -OsteoArticularModel(incr_solid).a=[0 1 0]'; % rotation /x +OsteoArticularModel(incr_solid).a=[1 0 0]'; % rotation /x OsteoArticularModel(incr_solid).joint=1; -OsteoArticularModel(incr_solid).limit_inf=-pi; % inferior joint biomechanical stop -OsteoArticularModel(incr_solid).limit_sup=pi; % superior joint biomechanical stop +if Signe == 'R' + OsteoArticularModel(incr_solid).limit_inf=-4*pi/5; % inferior joint biomechanical stop + OsteoArticularModel(incr_solid).limit_sup=pi/2; % superior joint biomechanical stop + OsteoArticularModel(incr_solid).FunctionalAngle='Right GH Elevation(-)/Depression(+)'; +else + OsteoArticularModel(incr_solid).limit_inf=-pi/2; % inferior joint biomechanical stop + OsteoArticularModel(incr_solid).limit_sup=4*pi/5; % superior joint biomechanical stop + OsteoArticularModel(incr_solid).FunctionalAngle='Left GH Elevation(+)/Depression(-)'; +end % superior joint biomechanical stop OsteoArticularModel(incr_solid).m=0; % reference mass OsteoArticularModel(incr_solid).b=pos_attachment_pt; % attachment point with respect to the parent's frame OsteoArticularModel(incr_solid).I=zeros(3,3); % reference inertia matrix @@ -334,56 +342,51 @@ eval(['incr_solid=s_' name ';']) % number of the solid in the model OsteoArticularModel(incr_solid).name=[Signe name]; OsteoArticularModel(incr_solid).sister=0; -OsteoArticularModel(incr_solid).child=s_Glenohumeral_J3; -OsteoArticularModel(incr_solid).mother=s_Glenohumeral_J1; -OsteoArticularModel(incr_solid).a=[1 0 0]'; -OsteoArticularModel(incr_solid).joint=1; -if Signe == 'R' - OsteoArticularModel(incr_solid).limit_inf=-4*pi/5; % inferior joint biomechanical stop - OsteoArticularModel(incr_solid).limit_sup=pi/2; % superior joint biomechanical stop - OsteoArticularModel(incr_solid).FunctionalAngle='Right GH Elevation(-)/Depression(+)'; -else - OsteoArticularModel(incr_solid).limit_inf=-pi/2; % inferior joint biomechanical stop - OsteoArticularModel(incr_solid).limit_sup=4*pi/5; % superior joint biomechanical stop - OsteoArticularModel(incr_solid).FunctionalAngle='Left GH Elevation(+)/Depression(-)'; -end -OsteoArticularModel(incr_solid).m=0; -OsteoArticularModel(incr_solid).b=[0 0 0]'; -OsteoArticularModel(incr_solid).I=zeros(3,3); -OsteoArticularModel(incr_solid).c=[0 0 0]'; -OsteoArticularModel(incr_solid).Visual=0; - -% Glenohumeral_J3 % Negative GH elevation (ISB recommandations: Wu et al. 2005) -num_solid=num_solid+1; % number of the solid ... -name=list_solid{num_solid}; % name of the solid -eval(['incr_solid=s_' name ';']) % number of the solid in the model -OsteoArticularModel(incr_solid).name=[Signe name]; -OsteoArticularModel(incr_solid).sister=0; +% OsteoArticularModel(incr_solid).child=s_Glenohumeral_J3; OsteoArticularModel(incr_solid).child=s_Humerus; -OsteoArticularModel(incr_solid).mother=s_Glenohumeral_J2; -OsteoArticularModel(incr_solid).a=[0 1 0]'; +OsteoArticularModel(incr_solid).mother=s_Glenohumeral_J1; +OsteoArticularModel(incr_solid).a=[0 0 1]'; OsteoArticularModel(incr_solid).joint=1; -OsteoArticularModel(incr_solid).limit_inf=-pi; % inferior joint biomechanical stop +OsteoArticularModel(incr_solid).limit_inf=-pi/2; OsteoArticularModel(incr_solid).limit_sup=pi; % superior joint biomechanical stop -OsteoArticularModel(incr_solid).FunctionalAngle='Negative GH plane of elevation'; -OsteoArticularModel(incr_solid).comment='Negative GH plane of elevation'; +OsteoArticularModel(incr_solid).FunctionalAngle='GH Plane of Elevation(+)/Depression(-)'; OsteoArticularModel(incr_solid).m=0; OsteoArticularModel(incr_solid).b=[0 0 0]'; OsteoArticularModel(incr_solid).I=zeros(3,3); OsteoArticularModel(incr_solid).c=[0 0 0]'; OsteoArticularModel(incr_solid).Visual=0; -% Dependancy -OsteoArticularModel(incr_solid).kinematic_dependancy.active=1; -OsteoArticularModel(incr_solid).kinematic_dependancy.Joint=incr_solid-2; % Thoracicellips -% Kinematic dependancy function -syms theta_plane real -plane_elev = -theta_plane; -f_plane_elev = matlabFunction(plane_elev,'vars',{theta_plane}); -df_plane_elev = matlabFunction(jacobian(plane_elev,theta_plane),'vars',{theta_plane}); -ddf_plane_elev = matlabFunction(jacobian(jacobian(plane_elev,theta_plane),theta_plane),'vars',{theta_plane}); -OsteoArticularModel(incr_solid).kinematic_dependancy.q=f_plane_elev; -OsteoArticularModel(incr_solid).kinematic_dependancy.dq=df_plane_elev; -OsteoArticularModel(incr_solid).kinematic_dependancy.ddq=ddf_plane_elev; + +% % Glenohumeral_J3 % Negative GH elevation (ISB recommandations: Wu et al. 2005) +% num_solid=num_solid+1; % number of the solid ... +% name=list_solid{num_solid}; % name of the solid +% eval(['incr_solid=s_' name ';']) % number of the solid in the model +% OsteoArticularModel(incr_solid).name=[Signe name]; +% OsteoArticularModel(incr_solid).sister=0; +% OsteoArticularModel(incr_solid).child=s_Humerus; +% OsteoArticularModel(incr_solid).mother=s_Glenohumeral_J2; +% OsteoArticularModel(incr_solid).a=[0 1 0]'; +% OsteoArticularModel(incr_solid).joint=1; +% OsteoArticularModel(incr_solid).limit_inf=-pi; % inferior joint biomechanical stop +% OsteoArticularModel(incr_solid).limit_sup=pi; % superior joint biomechanical stop +% OsteoArticularModel(incr_solid).FunctionalAngle='Negative GH plane of elevation'; +% OsteoArticularModel(incr_solid).comment='Negative GH plane of elevation'; +% OsteoArticularModel(incr_solid).m=0; +% OsteoArticularModel(incr_solid).b=[0 0 0]'; +% OsteoArticularModel(incr_solid).I=zeros(3,3); +% OsteoArticularModel(incr_solid).c=[0 0 0]'; +% OsteoArticularModel(incr_solid).Visual=0; +% % Dependancy +% OsteoArticularModel(incr_solid).kinematic_dependancy.active=1; +% OsteoArticularModel(incr_solid).kinematic_dependancy.Joint=incr_solid-2; % Thoracicellips +% % Kinematic dependancy function +% syms theta_plane real +% plane_elev = -theta_plane; +% f_plane_elev = matlabFunction(plane_elev,'vars',{theta_plane}); +% df_plane_elev = matlabFunction(jacobian(plane_elev,theta_plane),'vars',{theta_plane}); +% ddf_plane_elev = matlabFunction(jacobian(jacobian(plane_elev,theta_plane),theta_plane),'vars',{theta_plane}); +% OsteoArticularModel(incr_solid).kinematic_dependancy.q=f_plane_elev; +% OsteoArticularModel(incr_solid).kinematic_dependancy.dq=df_plane_elev; +% OsteoArticularModel(incr_solid).kinematic_dependancy.ddq=ddf_plane_elev; % Humerus % GH axial rotation (ISB recommandations: Wu et al. 2005) num_solid=num_solid+1; % number of the solid ... @@ -392,16 +395,17 @@ OsteoArticularModel(incr_solid).name=[Signe name]; OsteoArticularModel(incr_solid).sister=0; OsteoArticularModel(incr_solid).child=0; -OsteoArticularModel(incr_solid).mother=s_Glenohumeral_J3; +% OsteoArticularModel(incr_solid).mother=s_Glenohumeral_J3; +OsteoArticularModel(incr_solid).mother=s_Glenohumeral_J2; OsteoArticularModel(incr_solid).a=[0 1 0]'; OsteoArticularModel(incr_solid).joint=1; if Signe == 'R' - OsteoArticularModel(incr_solid).limit_inf=-pi/2; + OsteoArticularModel(incr_solid).limit_inf=-pi; OsteoArticularModel(incr_solid).limit_sup=pi; % superior joint biomechanical stop OsteoArticularModel(incr_solid).FunctionalAngle='Right GH Axial rotation Internal(+)/External(-)'; else OsteoArticularModel(incr_solid).limit_inf=-pi; - OsteoArticularModel(incr_solid).limit_sup=pi/2; % superior joint biomechanical stop + OsteoArticularModel(incr_solid).limit_sup=pi; % superior joint biomechanical stop OsteoArticularModel(incr_solid).FunctionalAngle='Left GH Axial rotation Internal(-)/External(+)'; end OsteoArticularModel(incr_solid).m=Mass.UpperArm_Mass; diff --git a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m index b1cea09d..63e5265c 100644 --- a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m +++ b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m @@ -31,13 +31,11 @@ Sign=1; Cote='D'; FullSide='Right'; -else - if Side == 'L' - Mirror=[1 0 0; 0 1 0; 0 0 -1]; - Sign=-1; - Cote='G'; - FullSide='Left'; - end +elseif Side == 'L' + Mirror=[1 0 0; 0 1 0; 0 0 -1]; + Sign=-1; + Cote='G'; + FullSide='Left'; end %% Solid numbering incremation @@ -416,8 +414,8 @@ Human_model(incr_solid).mother=s_ScapuloThoracic_J4; % Solid's mother Human_model(incr_solid).a=[0 0 1]'; Human_model(incr_solid).joint=1; -Human_model(incr_solid).limit_inf=-pi/4; -Human_model(incr_solid).limit_sup=pi/4; +Human_model(incr_solid).limit_inf=-Inf; +Human_model(incr_solid).limit_sup=Inf; Human_model(incr_solid).ActiveJoint=1; Human_model(incr_solid).m=0; % Reference mass Human_model(incr_solid).b=[0 0 0]'; % Attachment point position in mother's frame @@ -450,8 +448,8 @@ Human_model(incr_solid).mother=s_ScapuloThoracic_J4; % Solid's mother Human_model(incr_solid).a=[0 0 1]'; Human_model(incr_solid).joint=1; -Human_model(incr_solid).limit_inf=-Inf; -Human_model(incr_solid).limit_sup=Inf; +Human_model(incr_solid).limit_inf=-pi/4; +Human_model(incr_solid).limit_sup=pi/4; Human_model(incr_solid).ActiveJoint=1; Human_model(incr_solid).m=0; % Reference mass Human_model(incr_solid).b=[0 0 0]'; % Attachment point position in mother's frame @@ -477,8 +475,8 @@ Human_model(incr_solid).mother=s_ScapuloThoracic_J5; % Solid's mother Human_model(incr_solid).a=[0 1 0]'; Human_model(incr_solid).joint=1; -Human_model(incr_solid).limit_inf=-pi; -Human_model(incr_solid).limit_sup=pi; +Human_model(incr_solid).limit_inf=-Inf; +Human_model(incr_solid).limit_sup=Inf; Human_model(incr_solid).ActiveJoint=1; Human_model(incr_solid).m=0; % Reference mass Human_model(incr_solid).b=[0 0 0]'; % Attachment point position in mother's frame From 74451575120f5835242cf153f5b5912dd1943ffd Mon Sep 17 00:00:00 2001 From: TheoRouvier Date: Wed, 12 Apr 2023 14:37:45 +0200 Subject: [PATCH 35/46] update to calibration weights --- Functions/Calibration/Geometrical/GeometricalCalibration.m | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Functions/Calibration/Geometrical/GeometricalCalibration.m b/Functions/Calibration/Geometrical/GeometricalCalibration.m index 568eb102..4c7e7cee 100644 --- a/Functions/Calibration/Geometrical/GeometricalCalibration.m +++ b/Functions/Calibration/Geometrical/GeometricalCalibration.m @@ -233,7 +233,8 @@ calib_parameters.kp_opt_scap = kp_opt_scap(:,end); k_init = kp_opt_scap(:,end); end -weights=ones(length(list_markers),1); +% weights=ones(length(list_markers),1); +weights = ones(length(real_markers),1).*[real_markers(:).weight]; [kp_opt,crit,errorm,q0]=GeomCalibOptimization(k_init,weights,Nb_qred,nb_frame_calib,Base_position,Base_rotation,list_function,Rcut,pcut,real_markers_calib,nbcut,list_function_markers,Aeq_ik,beq_ik,l_inf,l_sup,Aeq_calib,beq_calib); calib_parameters.crit = crit; calib_parameters.errorm = errorm; From df8ff229124a85ac34ab1e3a42f6331e380bc4b6 Mon Sep 17 00:00:00 2001 From: TheoRouvier Date: Thu, 13 Apr 2023 10:01:48 +0200 Subject: [PATCH 36/46] Update to geometrical calibration --- Functions/Calibration/Geometrical/GeometricalCalibration.m | 4 ++-- Functions/Dynamics/InverseDynamics.m | 2 +- Functions/Kinematics/InverseKinematicsLM.m | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Functions/Calibration/Geometrical/GeometricalCalibration.m b/Functions/Calibration/Geometrical/GeometricalCalibration.m index 4c7e7cee..9072b617 100644 --- a/Functions/Calibration/Geometrical/GeometricalCalibration.m +++ b/Functions/Calibration/Geometrical/GeometricalCalibration.m @@ -234,7 +234,7 @@ k_init = kp_opt_scap(:,end); end % weights=ones(length(list_markers),1); -weights = ones(length(real_markers),1).*[real_markers(:).weight]; +weights = ones(length(real_markers),1).*[real_markers(:).weight]'; [kp_opt,crit,errorm,q0]=GeomCalibOptimization(k_init,weights,Nb_qred,nb_frame_calib,Base_position,Base_rotation,list_function,Rcut,pcut,real_markers_calib,nbcut,list_function_markers,Aeq_ik,beq_ik,l_inf,l_sup,Aeq_calib,beq_calib); calib_parameters.crit = crit; calib_parameters.errorm = errorm; @@ -260,7 +260,7 @@ for i=1:numel(Human_model_save) Human_model_calib(i).b=Human_model_save(i).b*calib_parameters.k_calib(OsteoArticularModel(i).mother); % b (k de la m�re) Human_model_calib(i).c=Human_model_save(i).c*calib_parameters.k_calib(i); % c - Human_model_calib(i).I=Human_model_save(i).I*calib_parameters.k_calib(i); % I + Human_model_calib(i).I=Human_model_save(i).I*calib_parameters.k_calib(i)*calib_parameters.k_calib(i); % I for j=1:size(Human_model_save(i).anat_position,1) Human_model_calib(i).anat_position{j,2}=Human_model_save(i).anat_position{j,2}*calib_parameters.k_calib(i); end diff --git a/Functions/Dynamics/InverseDynamics.m b/Functions/Dynamics/InverseDynamics.m index c504e363..cbd61cbf 100644 --- a/Functions/Dynamics/InverseDynamics.m +++ b/Functions/Dynamics/InverseDynamics.m @@ -22,7 +22,7 @@ % Georges Dumont %________________________________________________________ -for num_fil = 1:numel(AnalysisParameters.filename) +parfor num_fil = 1:numel(AnalysisParameters.filename) filename = AnalysisParameters.filename{num_fil}(1:end-(numel(AnalysisParameters.General.Extension)-1)); disp(['Inverse dynamics (' filename ') ...']) diff --git a/Functions/Kinematics/InverseKinematicsLM.m b/Functions/Kinematics/InverseKinematicsLM.m index befd444b..86d8d498 100644 --- a/Functions/Kinematics/InverseKinematicsLM.m +++ b/Functions/Kinematics/InverseKinematicsLM.m @@ -69,7 +69,7 @@ %% Inverse kinematics frame per frame -options1 = optimoptions(@fmincon,'Algorithm','interior-point','Display','final','TolFun',1e-6,'TolCon',1e-6,'MaxFunEvals',2e5,'MaxIter',2e5,'TolX',1e-9,'SpecifyObjectiveGradient',true,'DerivativeCheck','off'); +options1 = optimoptions(@fmincon,'Algorithm','interior-point','Display','off','TolFun',1e-6,'TolCon',1e-6,'MaxFunEvals',2e5,'MaxIter',2e5,'TolX',1e-9,'SpecifyObjectiveGradient',true,'DerivativeCheck','off'); q=zeros(nb_solid,nb_frame); ceq=zeros(6*nbClosedLoop,nb_frame); addpath('Symbolic_function') From 3314d6b0b02460e0ada6c729d9813dd4b3d4f417 Mon Sep 17 00:00:00 2001 From: TheoRouvier Date: Thu, 13 Apr 2023 14:03:17 +0200 Subject: [PATCH 37/46] update to weights --- Functions/Kinematics/CostFunctionLM.m | 2 +- Functions/Kinematics/ErrorMarkersIK.m | 11 +++++++++-- Functions/MuscleForces/MomentArmsComputationInit.m | 9 ++++----- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/Functions/Kinematics/CostFunctionLM.m b/Functions/Kinematics/CostFunctionLM.m index 074ab305..fa6ba5cf 100644 --- a/Functions/Kinematics/CostFunctionLM.m +++ b/Functions/Kinematics/CostFunctionLM.m @@ -37,7 +37,7 @@ func = [ dX ; gamma*constraints ; zeta*hbutees(q)]; if nargout > 1 % Two output arguments - J = IK_Jacobian(q,pcut,Rcut, l_inf1,l_sup1,Aeq_ik,gamma,zeta, J_marqueurs_handle,newweights); % Jacobian of the function evaluated at q + J = IK_Jacobian(q,pcut,Rcut, l_inf1,l_sup1,Aeq_ik,gamma,zeta, J_marqueurs_handle,newweights(:)); % Jacobian of the function evaluated at q end end \ No newline at end of file diff --git a/Functions/Kinematics/ErrorMarkersIK.m b/Functions/Kinematics/ErrorMarkersIK.m index 594139d7..7a46e238 100644 --- a/Functions/Kinematics/ErrorMarkersIK.m +++ b/Functions/Kinematics/ErrorMarkersIK.m @@ -1,4 +1,4 @@ -function [error] = ErrorMarkersIK(q,positions) +function [error] = ErrorMarkersIK(q,positions,varargin) % Computation of reconstruction error for the inverse kinematics step % Computation of the distance between the position of each experimental % marker and the position of the corresponded model marker @@ -20,6 +20,13 @@ %________________________________________________________ [Rcut,pcut]=fcut(q); -error = sqrt(sum(reshape(-X_markers(q,pcut,Rcut) + positions,3,length(positions)/3).^2,1)); +if isempty(varargin) + error = sqrt(sum(reshape(-X_markers(q,pcut,Rcut) + positions,3,length(positions)/3).^2,1)); +else + weights = varargin{1}; + newweights= repmat(weights,1,3)'; + error = sqrt(sum(reshape(newweights(:).*(-X_markers(q,pcut,Rcut) + positions),3,length(positions)/3).^2)); + + % error = sqrt(sum(reshape(-X_markers(q,pcut,Rcut) + positions,3,length(positions)/3).^2,1)); end \ No newline at end of file diff --git a/Functions/MuscleForces/MomentArmsComputationInit.m b/Functions/MuscleForces/MomentArmsComputationInit.m index f53e8255..07468523 100644 --- a/Functions/MuscleForces/MomentArmsComputationInit.m +++ b/Functions/MuscleForces/MomentArmsComputationInit.m @@ -154,14 +154,13 @@ q = sym('q', [numel(NvBiom.OsteoArticularModel) 1]); % joint coordinates initialization (number of solids - 1 (pelvis)) assume(q,'real') -tic() + [P1P2,P4P3] = MomentArmsComputationPreciseSym(NvBiom,q); -toc() - tic() - matlabFunction(P1P2,'file',['Symbolic_function/MomentArmP1P2'],'vars',{q}); + +matlabFunction(P1P2,'file',['Symbolic_function/MomentArmP1P2'],'vars',{q}); matlabFunction(P4P3,'file',['Symbolic_function/MomentArmP4P3'],'vars',{q}); -toc() + % % MomentArmMatrix = MomentArmsComputationPrecise(BiomechanicalModel,q); %depend on reduced set of q (q_red) From 8349cd1a88f28f6b1bc61d2e80c15dfe9117575d Mon Sep 17 00:00:00 2001 From: TheoRouvier Date: Fri, 14 Apr 2023 17:28:25 +0200 Subject: [PATCH 38/46] Update to Calibration method --- .../Geometrical/GeomCalibOptimization.m | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/Functions/Calibration/Geometrical/GeomCalibOptimization.m b/Functions/Calibration/Geometrical/GeomCalibOptimization.m index 1213c40d..4ef2db89 100644 --- a/Functions/Calibration/Geometrical/GeomCalibOptimization.m +++ b/Functions/Calibration/Geometrical/GeomCalibOptimization.m @@ -21,18 +21,18 @@ gamma = 150; zeta = 20; -q0 = q_value{1}(:,f); - -parfor f = 1:nb_frame_calib - +q_inter = zeros(Nb_qred,nb_frame_calib); +ik_function_objective=@(qvar) ErrorMarkersCalib(qvar,k_init,real_markers_calib,f,list_function_markers,Base_position{f},Base_rotation{f},Rcut,pcut,nbcut,list_function); +hclosedloophandle = {@(qvar)ClosedLoopCalib(Base_position{f},Base_rotation{f},qvar,k_init); @(x) Aeq_ik*x - beq_ik} ; +fun = @(q) CostFunctionLMCalib(q,ik_function_objective,gamma,hclosedloophandle,zeta,buteehandle,weights); +[q_inter(:,f)] = lsqnonlin(fun,q_inter(:,f),[],[],optionsLM); +for f = 2:nb_frame_calib ik_function_objective=@(qvar) ErrorMarkersCalib(qvar,k_init,real_markers_calib,f,list_function_markers,Base_position{f},Base_rotation{f},Rcut,pcut,nbcut,list_function); hclosedloophandle = {@(qvar)ClosedLoopCalib(Base_position{f},Base_rotation{f},qvar,k_init); @(x) Aeq_ik*x - beq_ik} ; - fun = @(q) CostFunctionLMCalib(q,ik_function_objective,gamma,hclosedloophandle,zeta,buteehandle,weights); - - [q_inter(:,f)] = lsqnonlin(fun,q0,[],[],optionsLM); + [q_inter(:,f)] = lsqnonlin(fun,q_inter(:,f-1),[],[],optionsLM); end -q_value{1}(:,2:nb_frame_calib) = q_inter(:,2:nb_frame_calib); +q_value{1}= q_inter; % Error computation @@ -63,19 +63,17 @@ [kp_opt(:,g+1)] = fmincon(pk_function_objective,kp_opt(:,g),[],[],Aeq_calib,beq_calib,limit_inf_calib,limit_sup_calib,[],options2); q_value{g+1}=zeros(size(q_value{g})); %#ok - + q_inter=q_value{g}; % Articular coordinates optimisation - q0=q_value{g}(:,f); kp_g = kp_opt(:,g+1); parfor f =1:nb_frame_calib - ik_function_objective=@(qvar) ErrorMarkersCalib(qvar,kp_g,real_markers_calib,f,list_function_markers,Base_position{f},Base_rotation{f},Rcut,pcut,nbcut,list_function); hclosedloophandle = {@(qvar)ClosedLoopCalib(Base_position{f},Base_rotation{f},qvar,kp_g); @(x) Aeq_ik*x - beq_ik} ; fun = @(q) CostFunctionLMCalib(q,ik_function_objective,gamma,hclosedloophandle,zeta,buteehandle,weights); - [q_inter(:,f)] = lsqnonlin(fun,q0,[],[],optionsLM); + [q_inter(:,f)] = lsqnonlin(fun,q_inter(:,f),[],[],optionsLM); end From e3468419b28404918b051c6f2964ca78c48f15ae Mon Sep 17 00:00:00 2001 From: TheoRouvier Date: Sat, 15 Apr 2023 09:48:27 +0200 Subject: [PATCH 39/46] update to calibration and ik lm --- .../Geometrical/CostFunctionLMCalib.m | 7 ++-- .../Geometrical/GeomCalibOptimization.m | 11 ++++--- .../FromExperiments/Wheelchair.m | 24 ++++++++------ Functions/Kinematics/InverseKinematicsLM.m | 33 ++++++++----------- .../Osteoarticular/Arm/ModelParts/Upperarm.m | 1 - 5 files changed, 36 insertions(+), 40 deletions(-) diff --git a/Functions/Calibration/Geometrical/CostFunctionLMCalib.m b/Functions/Calibration/Geometrical/CostFunctionLMCalib.m index f7ded408..99926fb1 100644 --- a/Functions/Calibration/Geometrical/CostFunctionLMCalib.m +++ b/Functions/Calibration/Geometrical/CostFunctionLMCalib.m @@ -21,14 +21,13 @@ %________________________________________________________ - constraints=[]; + constraints=cell(length(hclosedloophandle),1); for k=1:length(hclosedloophandle) fonc = hclosedloophandle{k}; - constraints = [constraints ; fonc(q)]; + constraints{k} = fonc(q); end - + constraints=[constraints{:}]; dX = weights.*ik_function_objective(q); - func = [ dX ; gamma*constraints ; zeta*hbutees(q)]; end \ No newline at end of file diff --git a/Functions/Calibration/Geometrical/GeomCalibOptimization.m b/Functions/Calibration/Geometrical/GeomCalibOptimization.m index 4ef2db89..bec47ad4 100644 --- a/Functions/Calibration/Geometrical/GeomCalibOptimization.m +++ b/Functions/Calibration/Geometrical/GeomCalibOptimization.m @@ -8,8 +8,9 @@ nonlcon=@(qvar)ClosedLoopCalib(Base_position{f},Base_rotation{f},qvar,k_init); % testé! -options1 = optimoptions(@fmincon,'Algorithm','interior-point','Display','off','TolFun',1e-2,'MaxFunEvals',2e5,'MaxIter',2e5); +options1 = optimoptions(@fmincon,'Algorithm','interior-point','Display','off','TolFun',1e-4,'MaxFunEvals',2e5,'MaxIter',2e5); options2 = optimoptions(@fmincon,'Algorithm','interior-point','Display','off','TolFun',1e-6,'MaxFunEvals',2e9,'MaxIter',2e9); +h = waitbar(0,['First iteration of Inverse Kinematics']); [q_value{1}(:,f)] = fmincon(ik_function_objective,q0,[],[],Aeq_ik,beq_ik,l_inf,l_sup,nonlcon,options1); @@ -20,7 +21,7 @@ buteehandle = @(q) Limits(q,l_inf,l_sup); gamma = 150; zeta = 20; - +waitbar(f/nb_frame_calib) q_inter = zeros(Nb_qred,nb_frame_calib); ik_function_objective=@(qvar) ErrorMarkersCalib(qvar,k_init,real_markers_calib,f,list_function_markers,Base_position{f},Base_rotation{f},Rcut,pcut,nbcut,list_function); hclosedloophandle = {@(qvar)ClosedLoopCalib(Base_position{f},Base_rotation{f},qvar,k_init); @(x) Aeq_ik*x - beq_ik} ; @@ -31,8 +32,10 @@ hclosedloophandle = {@(qvar)ClosedLoopCalib(Base_position{f},Base_rotation{f},qvar,k_init); @(x) Aeq_ik*x - beq_ik} ; fun = @(q) CostFunctionLMCalib(q,ik_function_objective,gamma,hclosedloophandle,zeta,buteehandle,weights); [q_inter(:,f)] = lsqnonlin(fun,q_inter(:,f-1),[],[],optionsLM); + waitbar(f/nb_frame_calib) end q_value{1}= q_inter; +close(h) % Error computation @@ -73,9 +76,7 @@ hclosedloophandle = {@(qvar)ClosedLoopCalib(Base_position{f},Base_rotation{f},qvar,kp_g); @(x) Aeq_ik*x - beq_ik} ; fun = @(q) CostFunctionLMCalib(q,ik_function_objective,gamma,hclosedloophandle,zeta,buteehandle,weights); - [q_inter(:,f)] = lsqnonlin(fun,q_inter(:,f),[],[],optionsLM); - - + [q_inter(:,f)] = lsqnonlin(fun,q_inter(:,f),[],[],optionsLM); end q_value{g+1} = q_inter; diff --git a/Functions/ExternalForces/FromExperiments/Wheelchair.m b/Functions/ExternalForces/FromExperiments/Wheelchair.m index 94939855..303d9d7d 100644 --- a/Functions/ExternalForces/FromExperiments/Wheelchair.m +++ b/Functions/ExternalForces/FromExperiments/Wheelchair.m @@ -22,7 +22,6 @@ Human_model = BiomechanicalModel.OsteoArticularModel; load([filename '/ExperimentalData.mat']); %#ok time = ExperimentalData.Time; -real_markers = ExperimentalData.MarkerPositions; nb_frame=numel(time); f_mocap=1/time(2); @@ -72,21 +71,26 @@ yWheelchair = cell(nb_frame,1); zWheelchair = cell(nb_frame,1); RWheelchair = cell(nb_frame,1); +RCapteur_fauteuil =[ + 0.9696 0.2444 0 + -0.2444 0.9696 0 + 0 0.0122 1.0000]; for i=1:nb_frame % Center of wheelchair frame (midpoint between right and left wheel) A{i} =(real_markers(list_markers_wheelchair{2,2}).position_c3d(i,:)+real_markers(list_markers_wheelchair{3,2}).position_c3d(i,:))/2; pWheelchair{i} =A{i}'; - % Wheelchair frame z-axis + % Wheelchair frame z-axis : FRMRD-FRMRG zWheelchair_i =(real_markers(list_markers_wheelchair{3,2}).position_c3d(i,:)-real_markers(list_markers_wheelchair{2,2}).position_c3d(i,:)); zWheelchair{i} =zWheelchair_i/norm(zWheelchair_i); - yWheelchair{i} =[0 0 1]; - xWheelchair{i} =cross(zWheelchair{i},yWheelchair{i}); - zWheelchair{i} =cross(xWheelchair{i},yWheelchair{i}); - RWheelchair{i} =[xWheelchair{i}' yWheelchair{i}' zWheelchair{i}']; - - COP_Right(i,:) = (real_markers(list_markers_wheelchair{9,2}).position_c3d(i,:)+real_markers(list_markers_wheelchair{8,2}).position_c3d(i,:))/2; - COP_Left(i,:) = (real_markers(list_markers_wheelchair{7,2}).position_c3d(i,:)+real_markers(list_markers_wheelchair{6,2}).position_c3d(i,:))/2; - + % FRMAVD - FRMRD + xWheelchair_i = (real_markers(list_markers_wheelchair{5,2}).position_c3d(i,:)-real_markers(list_markers_wheelchair{3,2}).position_c3d(i,:)); + xWheelchair{i} = xWheelchair_i/norm(xWheelchair_i); + yWheelchair{i} = cross(zWheelchair{i},xWheelchair{i})/norm(cross(zWheelchair{i},xWheelchair{i})); + xWheelchair{i} = cross(yWheelchair{i},zWheelchair{i})/norm( cross(yWheelchair{i},zWheelchair{i})); + RWheelchair{i} = [xWheelchair{i}' yWheelchair{i}' zWheelchair{i}']; + RWheelchair{i} = RWheelchair{i}*RCapteur_fauteuil; + COP_Right(i,:) = (RWheelchair{i}'*((real_markers(list_markers_wheelchair{9,2}).position_c3d(i,:)+real_markers(list_markers_wheelchair{8,2}).position_c3d(i,:))/2)')'-A{i}; + COP_Left(i,:) = (RWheelchair{i}'*((real_markers(list_markers_wheelchair{7,2}).position_c3d(i,:)+real_markers(list_markers_wheelchair{6,2}).position_c3d(i,:))/2)')'-A{i}; end % Right Handrim forces diff --git a/Functions/Kinematics/InverseKinematicsLM.m b/Functions/Kinematics/InverseKinematicsLM.m index 86d8d498..b84db6a7 100644 --- a/Functions/Kinematics/InverseKinematicsLM.m +++ b/Functions/Kinematics/InverseKinematicsLM.m @@ -118,6 +118,11 @@ h = waitbar(0,['Inverse Kinematics (' filename ')']); % 1st frame : classical optimization +buteehandle = @(q) Limits(q,l_inf1,l_sup1); +gamma = 100; +zeta = 20; + +optionsLM = optimset('Algorithm','Levenberg-Marquardt','Display','off','MaxIter',4e6,'MaxFunEval',5e6,'Jacobian','on','DerivativeCheck','off','TolFun',1e-3); if ~isfield(BiomechanicalModel,'ClosedLoopData') if isfield(BiomechanicalModel,'GeometricalCalibration') && isfield(BiomechanicalModel.GeometricalCalibration,'q0') @@ -147,21 +152,15 @@ ik_function_objective=@(qvar)CostFunctionSymbolicIK2(qvar, positions(:),weights,J_marqueurs_handle); nonlcon=@(qvar)ClosedLoop(qvar); - [q(:,1)] = fmincon(ik_function_objective,q0,[],[],Aeq_ik,beq_ik,l_inf1,l_sup1,nonlcon,options1); - hclosedloophandle = {@(qvar) ClosedLoopceq(qvar) ; @(x) Aeq_ik*x - beq_ik} ; + [q(:,1)] = fmincon(ik_function_objective,q0,[],[],Aeq_ik,beq_ik,l_inf1,l_sup1,nonlcon,options1); + hclosedloophandle = {@(qvar) ClosedLoopceq(qvar) ; @(x) Aeq_ik*x - beq_ik} ; + fun = @(q) CostFunctionLM(q,positions(:),gamma,hclosedloophandle,zeta,buteehandle,weights,l_inf1,l_sup1,Aeq_ik,J_marqueurs_handle); + [q(:,1)] = lsqnonlin(fun,q(:,1),[],[],optionsLM); end -buteehandle = @(q) Limits(q,l_inf1,l_sup1); -gamma = 100; -zeta = 20; - -waitbar(1/nb_frame) - -optionsLM = optimset('Algorithm','Levenberg-Marquardt','Display','off','MaxIter',4e6,'MaxFunEval',5e6,'Jacobian','on','DerivativeCheck','off','TolFun',1e-3); positions = zeros(3, length(real_markers)); for f = 2:nb_frame - % Precomputation of markers positions at each frame for m=1:length(real_markers) positions(:,m) = real_markers(m).position(f,:)'; @@ -194,7 +193,7 @@ positions(:,m) = real_markers(m).position(f,:)'; end - [KinematicsError(:,f)] = ErrorMarkersIK(q(:,f),positions(:)); + [KinematicsError(:,f)] = ErrorMarkersIK(q(:,f),positions(:),weights); end else nonlcon=@(qvar)ClosedLoop(qvar); @@ -205,7 +204,7 @@ for m=1:length(real_markers) positions(:,m) = real_markers(m).position(f,:)'; end - [KinematicsError(:,f)] = ErrorMarkersIK(q(:,f),positions(:)); + [KinematicsError(:,f)] = ErrorMarkersIK(q(:,f),positions(:),weights); [~,ceq(:,f)]=nonlcon(q(:,f)); end end @@ -244,19 +243,13 @@ if isfield(BiomechanicalModel,'ClosedLoopData') for f=1:nb_frame K = Jacobian_closedloop_fullq(q(:,f))'; - Kdev=ConstraintsJacobianDerivative(q(:,f),0.0001); - G = null(K); - nvdq(:,f) = sum(dq(:,f)'*G.*G,2); - - + nvdq(:,f) = sum(dq(:,f)'*G.*G,2); A = [K zeros(size(K)) ; reshape(pagemtimes(Kdev,nvdq(:,f)),size(K)) K]; G2 = null(A); xtilde = sum([dq(:,f) ; ddq(:,f)]'*G2.*G2,2); - - nvddq(:,f) = xtilde(length(nvdq(:,f))+1:end); - + nvddq(:,f) = xtilde(length(nvdq(:,f))+1:end); end end diff --git a/Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m b/Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m index 75cbf281..bc82bbb5 100644 --- a/Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m +++ b/Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m @@ -334,7 +334,6 @@ OsteoArticularModel(incr_solid).ClosedLoop=[]; % if this solid close a closed-loop chain : {number of solid i on which is attached this solid ; attachement point (local frame of solid i} OsteoArticularModel(incr_solid).linear_constraint=[]; OsteoArticularModel(incr_solid).Visual=0; -OsteoArticularModel(incr_solid).FunctionalAngle=[FullSide 'GH plane of elevation']; % Glenohumeral_J2 % Negative GH elevation (ISB recommandations: Wu et al. 2005) num_solid=num_solid+1; % number of the solid ... From 28a2ab94f88e4a8dc0f59c00b4b9afdb174870d4 Mon Sep 17 00:00:00 2001 From: TheoRouvier Date: Thu, 27 Jul 2023 09:25:35 +0200 Subject: [PATCH 40/46] post thesis update --- .../Geometrical/CostFunctionLMCalib.m | 7 +- .../Geometrical/CostFunctionSymbolicCalib.m | 2 + .../Geometrical/ErrorMarkersCalibLM.m | 43 ++ .../Geometrical/GeomCalibOptimization.m | 6 +- .../Geometrical/GeometricalCalibration.m | 2 +- .../Calibration/Scapula/AjouterScaploc.m | 17 + .../Scapula/ConvertClustertoScaplocBilinear.m | 393 ++++++++++++++---- Functions/DataImport/Get_real_markers.m | 1 + .../InputDataImport/C3dProcessedData.m | 7 +- Functions/Models/Markers/Marker_set1.m | 19 +- .../Osteoarticular/Arm/ModelParts/Upperarm.m | 4 +- Functions/MuscleForces/CostFunction/MinMax.m | 4 +- .../Optimization/ForcesComputationOptiNum.m | 21 +- 13 files changed, 427 insertions(+), 99 deletions(-) create mode 100644 Functions/Calibration/Geometrical/ErrorMarkersCalibLM.m create mode 100644 Functions/Calibration/Scapula/AjouterScaploc.m diff --git a/Functions/Calibration/Geometrical/CostFunctionLMCalib.m b/Functions/Calibration/Geometrical/CostFunctionLMCalib.m index 99926fb1..84a26a21 100644 --- a/Functions/Calibration/Geometrical/CostFunctionLMCalib.m +++ b/Functions/Calibration/Geometrical/CostFunctionLMCalib.m @@ -26,8 +26,13 @@ fonc = hclosedloophandle{k}; constraints{k} = fonc(q); end + + + + newweights= repmat(weights,1,3)'; + constraints=[constraints{:}]; - dX = weights.*ik_function_objective(q); + dX = newweights(:).*ik_function_objective(q); func = [ dX ; gamma*constraints ; zeta*hbutees(q)]; end \ No newline at end of file diff --git a/Functions/Calibration/Geometrical/CostFunctionSymbolicCalib.m b/Functions/Calibration/Geometrical/CostFunctionSymbolicCalib.m index e611994b..56579644 100644 --- a/Functions/Calibration/Geometrical/CostFunctionSymbolicCalib.m +++ b/Functions/Calibration/Geometrical/CostFunctionSymbolicCalib.m @@ -36,6 +36,8 @@ (Pelvis_position,Pelvis_rotation,q,k,... pcut,Rcut) - real_markers(m).position(f,:)') ; end + + W=diag(weights); error=e'*W*e; diff --git a/Functions/Calibration/Geometrical/ErrorMarkersCalibLM.m b/Functions/Calibration/Geometrical/ErrorMarkersCalibLM.m new file mode 100644 index 00000000..5fcd95b0 --- /dev/null +++ b/Functions/Calibration/Geometrical/ErrorMarkersCalibLM.m @@ -0,0 +1,43 @@ +function [error] = ErrorMarkersCalibLM(q,k,real_markers,f,list_markers,Pelvis_position,Pelvis_rotation,Rcut,pcut,nbcut,list_function) + +% Computation of reconstruction error for the geometrical calibration +% Computation of the distance between the position of each experimental +% marker and the position of the corresponded model marker +% +% INPUT +% - q: vector of joint coordinates at a given instant +% - k: vector of homothety coefficient +% - Pelvis_position: position of the pelvis at the considered instant +% - Pelvis_rotation: rotation of the pelvis at the considered instant +% - positions : matrix of experimental marker positions +% OUTPUT +% - error: distance between the position of each experimental marker and +% the position of the corresponded model marker +%________________________________________________________ +% +% Licence +% Toolbox distributed under GPL 3.0 Licence +%________________________________________________________ +% +% Authors : Antoine Muller, Charles Pontonnier, Pierre Puchaud and +% Georges Dumont +%________________________________________________________ + + + + for c=1:nbcut + if c==1 + [Rcut(:,:,c),pcut(:,:,c)]=list_function{c}(Pelvis_position,Pelvis_rotation,q,k,[],[]); + else + [Rcut(:,:,c),pcut(:,:,c)]=list_function{c}(Pelvis_position,Pelvis_rotation,q,k,pcut,Rcut); + end + end + error=zeros(3*numel(list_markers),1); + for m=1:numel(list_markers) +% error(m,:) = norm(eval([list_markers{m} '_Position(Pelvis_position,Pelvis_rotation,q,k,pcut,Rcut)']) - real_markers(m).position(f,:)'); + error(1+3*(m-1):3+3*(m-1),:) = list_markers{m}... + (Pelvis_position,Pelvis_rotation,q,k,... + pcut,Rcut) - real_markers(m).position(f,:)'; + end + +end \ No newline at end of file diff --git a/Functions/Calibration/Geometrical/GeomCalibOptimization.m b/Functions/Calibration/Geometrical/GeomCalibOptimization.m index bec47ad4..3ebcb48f 100644 --- a/Functions/Calibration/Geometrical/GeomCalibOptimization.m +++ b/Functions/Calibration/Geometrical/GeomCalibOptimization.m @@ -23,12 +23,12 @@ zeta = 20; waitbar(f/nb_frame_calib) q_inter = zeros(Nb_qred,nb_frame_calib); -ik_function_objective=@(qvar) ErrorMarkersCalib(qvar,k_init,real_markers_calib,f,list_function_markers,Base_position{f},Base_rotation{f},Rcut,pcut,nbcut,list_function); +ik_function_objective=@(qvar) ErrorMarkersCalibLM(qvar,k_init,real_markers_calib,f,list_function_markers,Base_position{f},Base_rotation{f},Rcut,pcut,nbcut,list_function); hclosedloophandle = {@(qvar)ClosedLoopCalib(Base_position{f},Base_rotation{f},qvar,k_init); @(x) Aeq_ik*x - beq_ik} ; fun = @(q) CostFunctionLMCalib(q,ik_function_objective,gamma,hclosedloophandle,zeta,buteehandle,weights); [q_inter(:,f)] = lsqnonlin(fun,q_inter(:,f),[],[],optionsLM); for f = 2:nb_frame_calib - ik_function_objective=@(qvar) ErrorMarkersCalib(qvar,k_init,real_markers_calib,f,list_function_markers,Base_position{f},Base_rotation{f},Rcut,pcut,nbcut,list_function); + ik_function_objective=@(qvar) ErrorMarkersCalibLM(qvar,k_init,real_markers_calib,f,list_function_markers,Base_position{f},Base_rotation{f},Rcut,pcut,nbcut,list_function); hclosedloophandle = {@(qvar)ClosedLoopCalib(Base_position{f},Base_rotation{f},qvar,k_init); @(x) Aeq_ik*x - beq_ik} ; fun = @(q) CostFunctionLMCalib(q,ik_function_objective,gamma,hclosedloophandle,zeta,buteehandle,weights); [q_inter(:,f)] = lsqnonlin(fun,q_inter(:,f-1),[],[],optionsLM); @@ -71,7 +71,7 @@ kp_g = kp_opt(:,g+1); parfor f =1:nb_frame_calib - ik_function_objective=@(qvar) ErrorMarkersCalib(qvar,kp_g,real_markers_calib,f,list_function_markers,Base_position{f},Base_rotation{f},Rcut,pcut,nbcut,list_function); + ik_function_objective=@(qvar) ErrorMarkersCalibLM(qvar,kp_g,real_markers_calib,f,list_function_markers,Base_position{f},Base_rotation{f},Rcut,pcut,nbcut,list_function); hclosedloophandle = {@(qvar)ClosedLoopCalib(Base_position{f},Base_rotation{f},qvar,kp_g); @(x) Aeq_ik*x - beq_ik} ; diff --git a/Functions/Calibration/Geometrical/GeometricalCalibration.m b/Functions/Calibration/Geometrical/GeometricalCalibration.m index 9072b617..d3ca2474 100644 --- a/Functions/Calibration/Geometrical/GeometricalCalibration.m +++ b/Functions/Calibration/Geometrical/GeometricalCalibration.m @@ -234,7 +234,7 @@ k_init = kp_opt_scap(:,end); end % weights=ones(length(list_markers),1); -weights = ones(length(real_markers),1).*[real_markers(:).weight]'; +weights =(ones(1,length(real_markers)).*[real_markers(:).weight])'; [kp_opt,crit,errorm,q0]=GeomCalibOptimization(k_init,weights,Nb_qred,nb_frame_calib,Base_position,Base_rotation,list_function,Rcut,pcut,real_markers_calib,nbcut,list_function_markers,Aeq_ik,beq_ik,l_inf,l_sup,Aeq_calib,beq_calib); calib_parameters.crit = crit; calib_parameters.errorm = errorm; diff --git a/Functions/Calibration/Scapula/AjouterScaploc.m b/Functions/Calibration/Scapula/AjouterScaploc.m new file mode 100644 index 00000000..d6df5a43 --- /dev/null +++ b/Functions/Calibration/Scapula/AjouterScaploc.m @@ -0,0 +1,17 @@ +function AjouterScaploc(filename) + + + real_markers=SplineScapLocTransformation(Lastframe,Firstframe,real_markers,O_SCAP_ar,O_SCAP_mi,O_SCAP_av,... +PSI_SCAPLOC_vers_epine_av, PSI_SCAPLOC_vers_epine_mi,PSI_SCAPLOC_vers_epine_ar,... +THETA_SCAPLOC_vers_epine_av, THETA_SCAPLOC_vers_epine_mi, THETA_SCAPLOC_vers_epine_ar,... +PHI_SCAPLOC_vers_epine_av, PHI_SCAPLOC_vers_epine_mi, PHI_SCAPLOC_vers_epine_ar,... +O_SCAPLOC_vers_epine_av, O_SCAPLOC_vers_epine_mi, O_SCAPLOC_vers_epine_ar,... +SCAPLOCB_SCAPLOC, SCAPLOCLM_SCAPLOC,SCAPLOCMM_SCAPLOC ); + + + + + + + +end \ No newline at end of file diff --git a/Functions/Calibration/Scapula/ConvertClustertoScaplocBilinear.m b/Functions/Calibration/Scapula/ConvertClustertoScaplocBilinear.m index cba9f7d0..55056ce1 100644 --- a/Functions/Calibration/Scapula/ConvertClustertoScaplocBilinear.m +++ b/Functions/Calibration/Scapula/ConvertClustertoScaplocBilinear.m @@ -1,77 +1,326 @@ -function [new_name,p_trial]=ConvertClustertoScaplocBilinear(filename_trial, filename_arr, filename_av, filename_n, token_mean) - +function [new_name,p_trial]=ConvertClustertoScaplocBilinear(filename_trial, filename_arr, filename_av, token_mean,droiteougauche) +%% Open files +subject = char(filename_trial(1:6)); +% Open file of trial +h_trial = btkReadAcquisition([char(filename_trial)]); +markers_trial=btkGetMarkers(h_trial); +ListMarkersName_trial = fieldnames(markers_trial); +% Open file for rear pose +h_arr = btkReadAcquisition([char(filename_arr)]); +markers_arr=btkGetMarkers(h_arr); +% Open file for advanced pose +h_av = btkReadAcquisition([char(filename_av)]); +markers_av=btkGetMarkers(h_av); - [~,p_trial_arr_n,SCAPLOCB_trial_arr_n,SCAPLOCMM_trial_arr_n,SCAPLOCLM_trial_arr_n]=ConvertClustertoScaplocLinear(filename_trial, filename_arr, filename_n, token_mean); - p_trial_arr_n = p_trial_arr_n(:); - %% Arr -> neutre - - - [~,p_trial_n_av,SCAPLOCB_trial_n_av,SCAPLOCMM_trial_n_av,SCAPLOCLM_trial_n_av]=ConvertClustertoScaplocLinear(filename_trial, filename_n, filename_av, token_mean); - - - - - SCAPLOCB_trial = SCAPLOCB_trial_arr_n; - SCAPLOCB_trial(p_trial_arr_n>1,:) = SCAPLOCB_trial_n_av(p_trial_arr_n>1,:); - - - SCAPLOCMM_trial = SCAPLOCMM_trial_arr_n; - SCAPLOCMM_trial(p_trial_arr_n>1,:) = SCAPLOCMM_trial_n_av(p_trial_arr_n>1,:); - +%% Get positions of clusters and scaploc in filename arr and filename av +% Trial cluster +names_trial = fieldnames(markers_trial); +% prefix_trial = names_trial{contains(names_trial,'SCAPGB')}; +prefix_trial = '';%prefix_trial(1:6); +try + SCAPDB_trial=markers_trial.([prefix_trial 'SCAPGB']); +catch + SCAPDB_trial=markers_trial.([prefix_trial 'SCAPDB']); +end +nb_frame = size(SCAPDB_trial,1); +SCAPDB_trial = reshape(SCAPDB_trial, [nb_frame 1 3]); +SCAPDB_trial = permute(SCAPDB_trial, [3,2,1]); +try + SCAPDH_trial = markers_trial.([prefix_trial 'SCAPGH']); +catch + SCAPDH_trial = markers_trial.([prefix_trial 'SCAPDH']); - SCAPLOCLM_trial = SCAPLOCLM_trial_arr_n; - SCAPLOCLM_trial(p_trial_arr_n>1,:) = SCAPLOCLM_trial_n_av(p_trial_arr_n>1,:); - - p_trial = p_trial_arr_n; - p_trial(p_trial_arr_n>1) = p_trial_n_av(p_trial_arr_n>1); - - - - % Open file of trial - h_trial = btkReadAcquisition([char(filename_trial)]); - markers_trial=btkGetMarkers(h_trial); - ListMarkersName_trial = fieldnames(markers_trial); - -%% Open files - subject = char(filename_trial(1:6)); - % Open file of trial - h_trial = btkReadAcquisition([char(filename_trial)]); - markers_trial=btkGetMarkers(h_trial); - ListMarkersName_trial = fieldnames(markers_trial); +end +SCAPDH_trial = reshape(SCAPDH_trial, [nb_frame 1 3]); +SCAPDH_trial = permute(SCAPDH_trial, [3,2,1]); +try + SCAPDL_trial = markers_trial.([prefix_trial 'SCAPGL']); +catch + SCAPDL_trial = markers_trial.([prefix_trial 'SCAPDL']); +end +SCAPDL_trial = reshape(SCAPDL_trial, [nb_frame 1 3]); +SCAPDL_trial = permute(SCAPDL_trial, [3,2,1]); + +%Thorax trial +C7_trial=markers_trial.([prefix_trial 'C7']); +C7_trial = reshape(C7_trial, [nb_frame 1 3]); +C7_trial = permute(C7_trial, [3,2,1]); +MAN_trial = markers_trial.([prefix_trial 'MAN']); +MAN_trial = reshape(MAN_trial, [nb_frame 1 3]); +MAN_trial = permute(MAN_trial, [3,2,1]); +T8_trial = markers_trial.([prefix_trial 'T8']); +T8_trial = reshape(T8_trial, [nb_frame 1 3]); +T8_trial = permute(T8_trial, [3,2,1]); + +% Rear cluster +names_arr = fieldnames(markers_arr); +prefix_arr = names_arr{contains(names_arr,'SCAPGB')}; +prefix_arr =prefix_arr(1:end-6); +% prefix_arr = '';%prefix_arr(1:6); +SCAPDB_arr=markers_arr.([prefix_arr 'SCAPGB']); +SCAPDH_arr=markers_arr.([prefix_arr 'SCAPGH']); +SCAPDL_arr=markers_arr.([prefix_arr 'SCAPGL']); +%THORAX ARRIERE +C7_arr=markers_arr.([prefix_arr 'C7']); +MAN_arr=markers_arr.([prefix_arr 'MAN']); +T8_arr=markers_arr.([prefix_arr 'T8']); + + +% Rear scaploc +try + prefix_scaploc = names_arr{contains(names_arr,'Scaploc_B')}; + prefix_scaploc = prefix_scaploc(1:end-9); +catch + prefix_scaploc=''; +end +try + SCAPLOCB_arr=markers_arr.([prefix_scaploc 'Scaploc_B']); + SCAPLOCMM_arr=markers_arr.([prefix_scaploc 'Scaploc_MM']); + SCAPLOCLM_arr=markers_arr.([prefix_scaploc 'Scaploc_LM']); +catch + SCAPLOCB_arr=markers_arr.([prefix_scaploc 'SCAPLOCB']); + SCAPLOCMM_arr=markers_arr.([prefix_scaploc 'SCAPLOCMM']); + SCAPLOCLM_arr=markers_arr.([prefix_scaploc 'SCAPLOCLM']); +end +% Advanced cluster +names_av = fieldnames(markers_av); +prefix_av = names_av{contains(names_av,'SCAPGB')}; +prefix_av = prefix_av(1:end-6); +SCAPDB_av=markers_av.([prefix_av 'SCAPGB']); +SCAPDH_av=markers_av.([prefix_av 'SCAPGH']); +SCAPDL_av=markers_av.([prefix_av 'SCAPGL']); + +%THORAX AVANT +C7_av=markers_av.([prefix_av 'C7']); +MAN_av=markers_av.([prefix_av 'MAN']); +T8_av=markers_av.([prefix_av 'T8']); +% Advanced scaploc + +try + SCAPLOCB_av=markers_av.([prefix_scaploc 'Scaploc_B']); + SCAPLOCMM_av=markers_av.([prefix_scaploc 'Scaploc_MM']); + SCAPLOCLM_av=markers_av.([prefix_scaploc 'Scaploc_LM']); +catch + SCAPLOCB_av=markers_av.([prefix_scaploc 'SCAPLOCB']); + SCAPLOCMM_av=markers_av.([prefix_scaploc 'SCAPLOCMM']); + SCAPLOCLM_av=markers_av.([prefix_scaploc 'SCAPLOCLM']); +end + +%% Mean the positions of the markers to reduce noise on static poses +if token_mean==1 + % Rear cluster + SCAPDB_arr=mean(SCAPDB_arr); + SCAPDH_arr=mean(SCAPDH_arr); + SCAPDL_arr=mean(SCAPDL_arr); + %Rear thorax + C7_arr=mean(C7_arr); + MAN_arr=mean(MAN_arr); + T8_arr=mean(T8_arr); + % Rear scaploc + SCAPLOCB_arr=mean(SCAPLOCB_arr); + SCAPLOCMM_arr=mean(SCAPLOCMM_arr); + SCAPLOCLM_arr=mean(SCAPLOCLM_arr); + % Advanced cluster + SCAPDB_av=mean(SCAPDB_av); + SCAPDH_av=mean(SCAPDH_av); + SCAPDL_av=mean(SCAPDL_av); + %Advanced thorax + C7_av=mean(C7_av); + MAN_av=mean(MAN_av); + T8_av=mean(T8_av); + % Advanced scaploc + SCAPLOCB_av=mean(SCAPLOCB_av); + SCAPLOCMM_av=mean(SCAPLOCMM_av); + SCAPLOCLM_av=mean(SCAPLOCLM_av); +else + % Rear cluster + SCAPDB_arr=SCAPDB_arr(1,:); + SCAPDH_arr=SCAPDH_arr(1,:); + SCAPDL_arr=SCAPDL_arr(1,:); + % Rear scaploc + SCAPLOCB_arr=SCAPLOCB_arr(1,:); + SCAPLOCMM_arr=SCAPLOCMM_arr(1,:); + SCAPLOCLM_arr=SCAPLOCLM_arr(1,:); + %Rear thorax + C7_arr=C7_arr(1,:); + MAN_arr=MAN_arr(1,:); + T8_arr=T8_arr(1,:); + % Advanced scaploc + SCAPDB_av=SCAPDB_av(1,:); + SCAPDH_av=SCAPDH_av(1,:); + SCAPDL_av=SCAPDL_av(1,:); + % Advanced scaploc + SCAPLOCB_av=SCAPLOCB_av(1,:); + SCAPLOCMM_av=SCAPLOCMM_av(1,:); + SCAPLOCLM_av=SCAPLOCLM_av(1,:); + %Advanced thorax + C7_av=C7_av(1,:); + MAN_av=MAN_av(1,:); + T8_av=T8_av(1,:); +end + +%% Find coefficients for quaternion interpolation +% Rear cluster homogeneous matrix +O_spine_arr = SCAPDB_arr; +X_spine_arr = (SCAPDL_arr - SCAPDB_arr)/norm(SCAPDL_arr - SCAPDB_arr); +yt_spine_arr = SCAPDH_arr - SCAPDB_arr; +Z_spine_arr = (cross(X_spine_arr,yt_spine_arr))/norm(cross(X_spine_arr,yt_spine_arr)); +Y_spine_arr = cross(Z_spine_arr,X_spine_arr); +T_spine_world_arr = [X_spine_arr' Y_spine_arr' Z_spine_arr' O_spine_arr'; 0 0 0 1]; +% Rear Thorax homogeneous matrix +O_thorax_arr = C7_arr; +X_thorax_arr = (MAN_arr - C7_arr)/norm(MAN_arr - C7_arr); +yt_thorax_arr = T8_arr - C7_arr; +Z_thorax_arr = (cross(X_thorax_arr,yt_thorax_arr))/norm(cross(X_thorax_arr,yt_thorax_arr)); +Y_thorax_arr = cross(Z_thorax_arr,X_thorax_arr)/norm(cross(Z_thorax_arr,X_thorax_arr)); +T_thorax_world_arr = [X_thorax_arr' Y_thorax_arr' Z_thorax_arr' O_thorax_arr'; 0 0 0 1]; + +% Rear scaploc homogeneous matrix +O_SCAPLOC_arr = SCAPLOCB_arr; +X_SCAPLOC_arr = (SCAPLOCLM_arr - SCAPLOCB_arr)/norm(SCAPLOCLM_arr - SCAPLOCB_arr); +yt_SCAPLOC_arr = (SCAPLOCMM_arr - SCAPLOCB_arr)/norm(SCAPLOCMM_arr - SCAPLOCB_arr); +Z_SCAPLOC_arr = cross(X_SCAPLOC_arr,yt_SCAPLOC_arr)/norm(cross(X_SCAPLOC_arr,yt_SCAPLOC_arr)); +Y_SCAPLOC_arr = cross(Z_SCAPLOC_arr,X_SCAPLOC_arr); +T_SCAPLOC_world_arr = [X_SCAPLOC_arr' Y_SCAPLOC_arr' Z_SCAPLOC_arr' O_SCAPLOC_arr'; 0 0 0 1]; +% Scaploc markers in scaploc frame +SCAPLOCMM_SCAPLOC=T_SCAPLOC_world_arr\[SCAPLOCMM_arr';1]; +SCAPLOCLM_SCAPLOC=T_SCAPLOC_world_arr\[SCAPLOCLM_arr';1]; +SCAPLOCB_SCAPLOC=T_SCAPLOC_world_arr\[SCAPLOCB_arr';1]; +SCAPLOCMM_SCAPLOC=SCAPLOCMM_SCAPLOC(1:3)'; +SCAPLOCLM_SCAPLOC=SCAPLOCLM_SCAPLOC(1:3)'; +SCAPLOCB_SCAPLOC=SCAPLOCB_SCAPLOC(1:3)'; +% Rear homogenous matrix between scaploc and cluster +T_SCAPLOC_spine_arr = T_spine_world_arr\T_SCAPLOC_world_arr; +% Distance between scaploc and cluster on rear pose +O_SCAPLOC_spine_arr = T_SCAPLOC_spine_arr(:,4); +O_SCAPLOC_spine_arr = O_SCAPLOC_spine_arr(1:3); + +% Rotation matrix between scaploc and cluster on rear pose +R_SCAPLOC_spine_arr = T_SCAPLOC_spine_arr(1:3,1:3); +% Quaternion between scaploc and cluster on rear pose +Q_SCAPLOC_spine_arr = quaternion(rotm2quat(R_SCAPLOC_spine_arr)); + +% Advanced cluster homogeneous matrix +O_spine_av = SCAPDB_av; +X_spine_av = (SCAPDL_av - SCAPDB_av)/norm(SCAPDL_av - SCAPDB_av); +yt_spine_av = SCAPDH_av - SCAPDB_av; +Z_spine_av = (cross(X_spine_av,yt_spine_av))/norm(cross(X_spine_av,yt_spine_av)); +Y_spine_av = cross(Z_spine_av,X_spine_av); +T_spine_world_av = [X_spine_av' Y_spine_av' Z_spine_av' O_spine_av'; 0 0 0 1]; +% Advanced thorax homogeneous matrix +O_thorax_av = C7_av; +X_thorax_av = (MAN_av - C7_av)/norm(MAN_av - C7_av); +yt_thorax_av = T8_av - C7_av; +Z_thorax_av = (cross(X_thorax_av,yt_thorax_av))/norm(cross(X_thorax_av,yt_thorax_av)); +Y_thorax_av = cross(Z_thorax_av,X_thorax_av)/norm(cross(Z_thorax_av,X_thorax_av)); +T_thorax_world_av = [X_thorax_av' Y_thorax_av' Z_thorax_av' O_thorax_av'; 0 0 0 1]; + +% Advanced scaploc homogeneous matrix +O_SCAPLOC_av = SCAPLOCB_av; +X_SCAPLOC_av = (SCAPLOCLM_av - SCAPLOCB_av)/norm(SCAPLOCLM_av - SCAPLOCB_av); +yt_SCAPLOC_av = (SCAPLOCMM_av - SCAPLOCB_av)/norm(SCAPLOCMM_av - SCAPLOCB_av); +Z_SCAPLOC_av = cross(X_SCAPLOC_av,yt_SCAPLOC_av)/norm(cross(X_SCAPLOC_av,yt_SCAPLOC_av)); +Y_SCAPLOC_av = cross(Z_SCAPLOC_av,X_SCAPLOC_av); +T_SCAPLOC_world_av = [X_SCAPLOC_av' Y_SCAPLOC_av' Z_SCAPLOC_av' O_SCAPLOC_av'; 0 0 0 1]; +% Advanced homogenous matrix between scaploc and cluster +T_SCAPLOC_spine_av = T_spine_world_av\T_SCAPLOC_world_av; +% Distance between scaploc and cluster on advance pose +O_SCAPLOC_spine_av = T_SCAPLOC_spine_av(:,4); +O_SCAPLOC_spine_av = O_SCAPLOC_spine_av(1:3); +% Rotation matrix between scaploc and cluster on advanced pose +R_SCAPLOC_spine_av = T_SCAPLOC_spine_av(1:3,1:3); +% Quaternion between scaploc and cluster on advanced pose +Q_SCAPLOC_spine_av = quaternion(rotm2quat(R_SCAPLOC_spine_av)); + +% Trial cluster homogeneous matrix +O_spine_trial = SCAPDB_trial; +X_spine_trial = (SCAPDL_trial - SCAPDB_trial)./vecnorm(SCAPDL_trial - SCAPDB_trial); +yt_spine_trial = SCAPDH_trial - SCAPDB_trial; +Z_spine_trial = (cross(X_spine_trial,yt_spine_trial))./vecnorm(cross(X_spine_trial,yt_spine_trial)); +Y_spine_trial = cross(Z_spine_trial,X_spine_trial); +last_row = zeros(1,4,nb_frame);last_row(:,4,:)=1; +H_spine_world_trial = [X_spine_trial Y_spine_trial Z_spine_trial O_spine_trial]; +H_spine_world_trial(4,:,:)=last_row; + +% Trial thorax homogeneous matrix +O_thorax_trial = C7_trial; +X_thorax_trial = (MAN_trial - C7_trial)./vecnorm(MAN_trial - C7_trial); +yt_thorax_trial = T8_trial - C7_trial; +Z_thorax_trial = (cross(X_thorax_trial,yt_thorax_trial))./vecnorm(cross(X_thorax_trial,yt_thorax_trial)); +Y_thorax_trial = cross(Z_thorax_trial,X_thorax_trial)./vecnorm(cross(Z_thorax_trial,X_thorax_trial)); +last_row = zeros(1,4,nb_frame);last_row(:,4,:)=1; +T_thorax_world_trial = [X_thorax_trial Y_thorax_trial Z_thorax_trial O_thorax_trial]; +T_thorax_world_trial(4,:,:)=last_row; + +%% Apply quaternion interpolation to cluster from filename_trial +O_spine_thorax_arr = T_thorax_world_arr\[O_spine_arr';1]; +O_spine_thorax_arr = O_spine_thorax_arr(1:3); +O_spine_thorax_av = T_thorax_world_av\[O_spine_av';1]; +O_spine_thorax_av = O_spine_thorax_av(1:3); +for i=1:nb_frame + O_spine_thorax_trial(:,:,i) = T_thorax_world_trial(:,:,i)\[O_spine_trial(:,:,i);1]; +end +O_spine_thorax_trial=O_spine_thorax_trial(1:3,:,:); +% Interpolation coefficient based on cluster position +p_trial=vecnorm(O_spine_thorax_arr-O_spine_thorax_trial)./norm(O_spine_thorax_av-O_spine_thorax_arr); +% Slerp interpolation to compute quaternion between virtual scaploc and +% cluster during trial +Q_SCAPLOC_spine_trial = QuatSlerpAtHome(Q_SCAPLOC_spine_arr,Q_SCAPLOC_spine_av,p_trial); +% Rotation matrix between virtual scaploc and cluster +R_SCAPLOC_spine_trial = quat2rotm(Q_SCAPLOC_spine_trial(:)); +% Distance between virtual scaploc and cluster +O_SCAPLOC_spine_trial = (O_SCAPLOC_spine_av-O_SCAPLOC_spine_arr).*p_trial + O_SCAPLOC_spine_arr; +% Homogeneous matrix between virtaul scaploc and cluster +H_SCAPLOC_spine_trial = [R_SCAPLOC_spine_trial O_SCAPLOC_spine_trial]; +H_SCAPLOC_spine_trial(4,:,:)=last_row; +% Homogeneous matrix between virtual scaploc and world +H_SCAPLOC_world_trial = pagemtimes(H_spine_world_trial,H_SCAPLOC_spine_trial); +% Homogeneous matrix between virtual scaploc and thorax +% Computation of virtual scaploc marker positions +SCAPLOCB_trial=pagemtimes(H_SCAPLOC_world_trial,[SCAPLOCB_SCAPLOC';1]); +SCAPLOCLM_trial=pagemtimes(H_SCAPLOC_world_trial,[SCAPLOCLM_SCAPLOC';1]); +SCAPLOCMM_trial=pagemtimes(H_SCAPLOC_world_trial,[SCAPLOCMM_SCAPLOC';1]); +SCAPLOCB_trial=reshape(permute(SCAPLOCB_trial(1:3,:,:),[3,1,2]),[nb_frame 3]); +SCAPLOCLM_trial=reshape(permute(SCAPLOCLM_trial(1:3,:,:),[3,1,2]),[nb_frame 3]); +SCAPLOCMM_trial=reshape(permute(SCAPLOCMM_trial(1:3,:,:),[3,1,2]),[nb_frame 3]); %% Write scaploc in filename_c3d and save it - % Number of markers in trial - pn_trial=btkGetPointNumber(h_trial); - % Adding virtual SCAPLOC markers to list of markers - pn_new=pn_trial+3; - labels=[ListMarkersName_trial; {'SCAPLOCB';'SCAPLOCMM';'SCAPLOCLM'}]; - % Number of frames in trial - nb_frame_trial=btkGetLastFrame(h_trial)-btkGetFirstFrame(h_trial)+1; - % Trial acquisition frequency - f_trial=btkGetPointFrequency(h_trial); - - % Creation of a new c3d file - h_new = btkNewAcquisition(pn_new,nb_frame_trial); - % Setting acquisition frequency - btkSetFrequency(h_new, f_trial); - - % Copying markers from trial - for i=1:pn_trial - btkSetPointLabel(h_new, i, labels{i}); - btkSetPoint(h_new, i, markers_trial.(ListMarkersName_trial{i})); - end - % Defining virtual SCAPLOC markers - % SCAPLOCB - btkSetPointLabel(h_new, pn_new-2, labels{pn_new-2}); - btkSetPoint(h_new, pn_new-2, SCAPLOCB_trial); - % SCAPLOCMM - btkSetPointLabel(h_new, pn_new-1, labels{pn_new-1}); - btkSetPoint(h_new, pn_new-1, SCAPLOCMM_trial); - % SCAPLOCLM - btkSetPointLabel(h_new, pn_new, labels{pn_new}); - btkSetPoint(h_new, pn_new, SCAPLOCLM_trial); - - % Write and save c3d - new_name=[char(filename_trial(1:end-4)) '_scaplocBilinear.c3d']; - btkWriteAcquisition(h_new, new_name); +% Number of markers in trial +pn_trial=btkGetPointNumber(h_trial); +% Adding virtual SCAPLOC markers to list of markers +pn_new=pn_trial+3; +if strcmp(droiteougauche,'D') +labels=[ListMarkersName_trial; {'SCAPLOCB';'SCAPLOCMM';'SCAPLOCLM'}]; +else + labels=[ListMarkersName_trial; {'SCAPLOCB1';'SCAPLOCMM1';'SCAPLOCLM1'}]; +end +% Number of frames in trial +nb_frame_trial=btkGetLastFrame(h_trial)-btkGetFirstFrame(h_trial)+1; +% Trial acquisition frequency +f_trial=btkGetPointFrequency(h_trial); + +% Creation of a new c3d file +h_new = btkNewAcquisition(pn_new,nb_frame_trial); +% Setting acquisition frequency +btkSetFrequency(h_new, f_trial); + +% Copying markers from trial +for i=1:pn_trial + btkSetPointLabel(h_new, i, labels{i}); + btkSetPoint(h_new, i, markers_trial.(ListMarkersName_trial{i})); +end +% Defining virtual SCAPLOC markers +% SCAPLOCB +btkSetPointLabel(h_new, pn_new-2, labels{pn_new-2}); +btkSetPoint(h_new, pn_new-2, SCAPLOCB_trial); +% SCAPLOCMM +btkSetPointLabel(h_new, pn_new-1, labels{pn_new-1}); +btkSetPoint(h_new, pn_new-1, SCAPLOCMM_trial); +% SCAPLOCLM +btkSetPointLabel(h_new, pn_new, labels{pn_new}); +btkSetPoint(h_new, pn_new, SCAPLOCLM_trial); + +% Write and save c3d +new_name=[char(filename_trial(1:end-4)) '.c3d']; +btkWriteAcquisition(h_new, new_name); end \ No newline at end of file diff --git a/Functions/DataImport/Get_real_markers.m b/Functions/DataImport/Get_real_markers.m index 1ca236a0..2ca2852e 100644 --- a/Functions/DataImport/Get_real_markers.m +++ b/Functions/DataImport/Get_real_markers.m @@ -147,6 +147,7 @@ % Filtrage (Filtering) if AnalysisParameters.General.FilterActive for i=1:numel(real_markers) + real_markers(i).position_c3d(isnan(real_markers(i).position_c3d))=0; real_markers(i).position = filt_data(real_markers(i).position_c3d,AnalysisParameters.General.FilterCutOff,f); end else diff --git a/Functions/DataImport/InputDataImport/C3dProcessedData.m b/Functions/DataImport/InputDataImport/C3dProcessedData.m index 7bd91244..8504333d 100644 --- a/Functions/DataImport/InputDataImport/C3dProcessedData.m +++ b/Functions/DataImport/InputDataImport/C3dProcessedData.m @@ -112,7 +112,12 @@ if isempty(find(markers.(list_marker_c3d{ii})==0,1)) real_markers(cpt).name=list_m_table(Ia(ii)); real_markers(cpt).position_c3d=markers.(list_marker_c3d{ii})/1000; - real_markers(cpt).weight = 1; + if ~sum(isnan(real_markers(cpt).position_c3d)) + real_markers(cpt).weight = 1; + else + real_markers(cpt).weight = 0; + end + cpt = cpt+1; else warning(['A least one marker is occluded in ' filename ', occluded markers :']) diff --git a/Functions/Models/Markers/Marker_set1.m b/Functions/Models/Markers/Marker_set1.m index a43cc6f1..2fc25700 100644 --- a/Functions/Models/Markers/Marker_set1.m +++ b/Functions/Models/Markers/Marker_set1.m @@ -29,6 +29,7 @@ Side1={'D';'G'}; Side2={'R';'L'}; +Side3={'';'1'}; % Arm for i=1:2 s=[s;{['EL' Side1{i}] [Side2{i} 'RAD'] {'On';'On';'Off'}; ['EM' Side1{i}] [Side2{i} 'HUM'] {'Off';'Off';'Off'}; ... @@ -44,22 +45,14 @@ ['CAL' Side1{i}] [Side2{i} 'HEE'] {'Off';'On';'Off'}; ... ['MT1' Side1{i}] [Side2{i} 'TARI'] {'Off';'On';'On'}; ['MT5' Side1{i}] [Side2{i} 'TAR'] {'Off';'Off';'Off'}; ... }]; + + s=[s;{['SCAPLOCLM' Side3{i}] ['ScapLoc_AA_',Side2{i}] {'On';'On';'On'};... + ['SCAPLOCMM' Side3{i}] ['ScapLoc_TS_',Side2{i}] {'On';'On';'On'};... + [ 'SCAPLOCB' Side3{i}] ['ScapLoc_AI_',Side2{i}] {'On';'On';'On'};... + }]; end -if length(varargin)>1 - Scapulalocator = varargin{2}; - if Scapulalocator.active - for idx=1:2 - if ~isempty(find(strcmp(Scapulalocator.side,Side2{idx}),1)) - s=[s;{'SCLL' ['ScapLoc_AA_',Side2{idx}] {'On';'On';'On'};... - 'SCLM' ['ScapLoc_TS_',Side2{idx}] {'On';'On';'On'};... - 'SCLB' ['ScapLoc_AI_',Side2{idx}] {'On';'On';'On'};... - }]; - end - end - end -end Markers=struct('name',{s{:,1}}','anat_position',{s{:,2}}','calib_dir',{s{:,3}}'); %#ok diff --git a/Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m b/Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m index bc82bbb5..94d09b97 100644 --- a/Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m +++ b/Functions/Models/Osteoarticular/Arm/ModelParts/Upperarm.m @@ -317,11 +317,11 @@ if Signe == 'R' OsteoArticularModel(incr_solid).limit_inf=-4*pi/5; % inferior joint biomechanical stop OsteoArticularModel(incr_solid).limit_sup=pi/2; % superior joint biomechanical stop - OsteoArticularModel(incr_solid).FunctionalAngle='Right GH Elevation(-)/Depression(+)'; + OsteoArticularModel(incr_solid).FunctionalAngle='Right GH Abduction(-)/Adduction(+)'; else OsteoArticularModel(incr_solid).limit_inf=-pi/2; % inferior joint biomechanical stop OsteoArticularModel(incr_solid).limit_sup=4*pi/5; % superior joint biomechanical stop - OsteoArticularModel(incr_solid).FunctionalAngle='Left GH Elevation(+)/Depression(-)'; + OsteoArticularModel(incr_solid).FunctionalAngle='Left GH Abduction(+)/Adduction(-)'; end % superior joint biomechanical stop OsteoArticularModel(incr_solid).m=0; % reference mass OsteoArticularModel(incr_solid).b=pos_attachment_pt; % attachment point with respect to the parent's frame diff --git a/Functions/MuscleForces/CostFunction/MinMax.m b/Functions/MuscleForces/CostFunction/MinMax.m index 4e0e208e..fd1d9ad4 100644 --- a/Functions/MuscleForces/CostFunction/MinMax.m +++ b/Functions/MuscleForces/CostFunction/MinMax.m @@ -1,4 +1,4 @@ -function [Aopt] = MinMax(A0, Aeq, beq, Amin, Amax, fmincon_options, ~, ~, ~, varargin) +function [Aopt,exitflag] = MinMax(A0, Aeq, beq, Amin, Amax, fmincon_options, ~, ~, ~, varargin) % Optimization used for the force sharing problem: min/max criteria % % Based on: @@ -28,7 +28,7 @@ cost_function = @(A) A(1); % optimization Aeqbis=[zeros(size(Aeq,1),1) Aeq]; -Aopt_inter = fmincon(cost_function,[1;A0],[],[],Aeqbis,beq,[0;Amin],[Inf;Amax],@(A) constraint_minmax(A),fmincon_options); +[Aopt_inter,~,exitflag] = fmincon(cost_function,[1;A0],[],[],Aeqbis,beq,[0;Amin],[Inf;Amax],@(A) constraint_minmax(A),fmincon_options); Aopt=Aopt_inter(2:end,:); end diff --git a/Functions/MuscleForces/Optimization/ForcesComputationOptiNum.m b/Functions/MuscleForces/Optimization/ForcesComputationOptiNum.m index f3c44fdc..d769ba52 100644 --- a/Functions/MuscleForces/Optimization/ForcesComputationOptiNum.m +++ b/Functions/MuscleForces/Optimization/ForcesComputationOptiNum.m @@ -64,22 +64,35 @@ end + +% mus_flexion = [1,9,13,12]; +% mus_pro = [7,8]; +% num_pro= 42; +% num_flexion = 41; +% R(num_pro,mus_flexion,:)= 0; +% R(num_flexion,mus_pro,:)= 0; +% mus_flexion=mus_flexion+17; +% mus_pro = mus_pro+17; +% num_pro= 49; +% num_flexion = 48; +% R(num_pro,mus_flexion,:)= 0; +% R(num_flexion,mus_pro,:)= 0; idxj=find(sum(R(:,:,1),2)~=0)'; -idxj=41:68; +% idxj=[38:51]; %GH jusque Main %% Computation of muscle forces (optimization) % Optimisation parameters Amin = zeros(Nb_muscles,1); A0 = 0.5*ones(Nb_muscles,1); -Fmax = 3*[Muscles(idm).f0]'; +Fmax = 1*[Muscles(idm).f0]'; Amax = ones(Nb_muscles,1); Fopt = zeros(Nb_muscles,Nb_frames); Aopt = zeros(size(Fopt)); % Solver parameters options1 = optimoptions(@fmincon,'Algorithm','sqp','Display','off','GradObj','off','GradConstr','off','TolFun',1e-6,'MaxIterations',100000,'MaxFunEvals',100000); -options2 = optimoptions(@fmincon,'Algorithm','sqp','Display','final','GradObj','off','GradConstr','off','TolFun',1e-6,'MaxIterations',1000,'MaxFunEvals',2000000); +options2 = optimoptions(@fmincon,'Algorithm','sqp','Display','off','GradObj','off','GradConstr','off','TolFun',1e-6,'MaxIterations',1000,'MaxFunEvals',2000000); h = waitbar(0,['Forces Computation (' filename ')']); @@ -107,7 +120,7 @@ for i=2:Nb_frames % for following frames % Closed-loop constraints - KT = Jacobian_closedloop_fullq(q(:,i)); + KT = Jacobian_closedloop_fullq(q(:,i)); % Moment arms and Active forces Aeq = [R(idxj,:,i).*Fmax' , KT(idxj,:)] ; From 3b7a565dbd15dbd44168b052dcf9b55adb119eb4 Mon Sep 17 00:00:00 2001 From: TheoRouvier Date: Wed, 6 Sep 2023 13:25:29 +0200 Subject: [PATCH 41/46] added scaploc to both shoulders option --- Functions/Interface/GenerateParameters.mlapp | Bin 106227 -> 148683 bytes Functions/Models/Markers/Marker_set1.m | 21 +++++++++++++----- Functions/Models/Markers/Marker_set2.m | 9 ++++---- .../UpperTrunk/ModelParts/Scapula_Shoulder.m | 5 +++-- 4 files changed, 24 insertions(+), 11 deletions(-) diff --git a/Functions/Interface/GenerateParameters.mlapp b/Functions/Interface/GenerateParameters.mlapp index af7269c2931e24ab3f4de6d784a6457ca0106a09..e4f9d67ae980bef78f25fc061103a01509543de4 100644 GIT binary patch delta 134658 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

I&uj!UV5X0K+E0Y%UkA)ocs&3pm(*I` zBAeAht^AplU*6K9tu{W0RX+DuH$;=6N^N(?wCo|u_E^cv7Z|65&zSCHxlT%A*Tss@ zwHgG=pQdteTq&XQXnK)Pqr+&d^;E@|pOnO27UE!@%^hu>ev@uygGlZk+@!rhY%`|o zTMJkUQV#u;oO2_Cy1)_g^PyjXYc3^EIbKk9mQg7n;~~=Mwn91*I`yCsj}B#Gx0j7H zTt;UZi@=0o2lk1oLS==xFaO=OAV#;hXbKV|f9kd-*69GfhI2;z%W>y+wX<*-3#YLmFj+U}o zN%0XzYpm3*W-^`T4*JtG+2O` zQopLX6v@~V80dS8Bq*xH_?U_pj8%^oXVg{3v3hiQ;AO?H5-s{76xwx=bgYE&kcgHG zF0My2fW`e?V%pKMzwC#GOJY}}IyFxl@dh(Hd}8HoIDO14>i@p6yt~Y?EUV`ELTAu)@-5F?{f#S- z≶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 Lz?h92gB|b>Z?XS1 delta 91915 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

3}) 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 diff --git a/Functions/Models/Markers/Marker_set1.m b/Functions/Models/Markers/Marker_set1.m index 2fc25700..816d2dbe 100644 --- a/Functions/Models/Markers/Marker_set1.m +++ b/Functions/Models/Markers/Marker_set1.m @@ -45,13 +45,24 @@ ['CAL' Side1{i}] [Side2{i} 'HEE'] {'Off';'On';'Off'}; ... ['MT1' Side1{i}] [Side2{i} 'TARI'] {'Off';'On';'On'}; ['MT5' Side1{i}] [Side2{i} 'TAR'] {'Off';'Off';'Off'}; ... }]; - - s=[s;{['SCAPLOCLM' Side3{i}] ['ScapLoc_AA_',Side2{i}] {'On';'On';'On'};... - ['SCAPLOCMM' Side3{i}] ['ScapLoc_TS_',Side2{i}] {'On';'On';'On'};... - [ 'SCAPLOCB' Side3{i}] ['ScapLoc_AI_',Side2{i}] {'On';'On';'On'};... - }]; + end +Side={'R';'L'}; +if length(varargin)>=2 + Scapulalocator = varargin{2}; + if Scapulalocator.active + for idx=1:2 + temp = strfind(Scapulalocator.side,Side{idx}); + if ~isempty(temp{:}) + s=[s;{['SCAPLOCLM',Side{idx}] ['ScapLoc_AA_',Side{idx}] {'On';'On';'On'};... + ['SCAPLOCMM',Side{idx}] ['ScapLoc_TS_',Side{idx}] {'On';'On';'On'};... + ['SCAPLOCB',Side{idx}] ['ScapLoc_AI_',Side{idx}] {'On';'On';'On'};... + }]; + end + end + end +end diff --git a/Functions/Models/Markers/Marker_set2.m b/Functions/Models/Markers/Marker_set2.m index d04ddad5..9f0fe3fc 100644 --- a/Functions/Models/Markers/Marker_set2.m +++ b/Functions/Models/Markers/Marker_set2.m @@ -37,10 +37,11 @@ Scapulalocator = varargin{1}; if Scapulalocator.active for idx=1:2 - if ~isempty(find(strcmp(Scapulalocator.side,Side{idx}),1)) - s=[s;{'ScapLocAA' ['ScapLoc_AA_',Side{idx}] {'On';'On';'On'};... - 'ScapLocTS' ['ScapLoc_TS_',Side{idx}] {'On';'On';'On'};... - 'ScapLocAI' ['ScapLoc_AI_',Side{idx}] {'On';'On';'On'};... + temp = strfind(Scapulalocator.side,Side{idx}); + if ~isempty(temp{:}) + s=[s;{['ScapLocAA_',Side{idx}] ['ScapLoc_AA_',Side{idx}] {'On';'On';'On'};... + ['ScapLocTS_',Side{idx}] ['ScapLoc_TS_',Side{idx}] {'On';'On';'On'};... + ['ScapLocAI_',Side{idx}] ['ScapLoc_AI_',Side{idx}] {'On';'On';'On'};... }]; end end diff --git a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder.m b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder.m index df5be5dc..fd4eab64 100644 --- a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder.m +++ b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder.m @@ -231,11 +231,12 @@ Scapulalocator = varargin{1}; Scapulalocator = Scapulalocator{1, 1}; if Scapulalocator.active - if ~isempty(find(strcmp(Scapulalocator.side,Side),1)) + temp = strfind(Scapulalocator.side,Side); + if ~isempty(temp{:}) vec_1 = Scapula_locator_AA - Scapula_locator_AI; vec_2 = Scapula_locator_TS - Scapula_locator_AI; normal= Sign*cross(vec_1,vec_2)/norm(cross(vec_1,vec_2)); - ind = find(strcmp(Scapulalocator.side,Side),1); + ind = 1; Scapula_locator_AA = Scapula_locator_AA + Scapulalocator.height(ind)*normal*1e-2; Scapula_locator_AI = Scapula_locator_AI + Scapulalocator.height(ind)*normal*1e-2; Scapula_locator_TS = Scapula_locator_TS + Scapulalocator.height(ind)*normal*1e-2; From 11825ad8f9ddd1a1eada8730daaa54845c8ee062 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?ROUVIER=20Th=C3=A9o?= Date: Thu, 7 Sep 2023 10:40:22 +0200 Subject: [PATCH 42/46] Update to scapula gliding plane contraints --- .../Calibration/CalibrateModelGenerationNum.m | 4 +- .../Symbolic_ForwardKinematicsCoupure_A.m | 2 +- Functions/Kinematics/AddClosedLoopEquations.m | 16 +- .../Kinematics/ForwardKinematics_ClosedLoop.m | 277 +++++++++++++++--- Functions/Kinematics/InverseKinematicsLM.m | 4 +- .../Kinematics/NonLinCon_ClosedLoop_Sym.m | 10 +- .../Kinematics/SymbolicFunctionGenerationIK.m | 4 +- .../Symbolic_ForwardKinematicsCoupure.m | 8 +- .../ModelParts/Scapula_Shoulder_Tangent.m | 5 +- 9 files changed, 263 insertions(+), 67 deletions(-) diff --git a/Functions/Calibration/CalibrateModelGenerationNum.m b/Functions/Calibration/CalibrateModelGenerationNum.m index 5ae63a6c..15d03565 100644 --- a/Functions/Calibration/CalibrateModelGenerationNum.m +++ b/Functions/Calibration/CalibrateModelGenerationNum.m @@ -62,7 +62,7 @@ disp('Preliminary Computations ...') [BiomechanicalModel.OsteoArticularModel] = Add6dof(BiomechanicalModel.OsteoArticularModel); [BiomechanicalModel.OsteoArticularModel, BiomechanicalModel.Jacob, ... - BiomechanicalModel.Generalized_Coordinates] = SymbolicFunctionGenerationIK(BiomechanicalModel.OsteoArticularModel,BiomechanicalModel.Markers); + BiomechanicalModel.Generalized_Coordinates] = SymbolicFunctionGenerationIK(BiomechanicalModel.OsteoArticularModel,BiomechanicalModel.Markers,BiomechanicalModel.GeometricalCalibration.radius); disp('... Preliminary Computations done') %% Inertial calibration @@ -121,7 +121,7 @@ %% Closedloop equations disp('Closed loop equations ...') -BiomechanicalModel = AddClosedLoopEquations(BiomechanicalModel); +BiomechanicalModel = AddClosedLoopEquations(BiomechanicalModel,BiomechanicalModel.GeometricalCalibration.radius); disp('... Closed loop equations done') save('BiomechanicalModel','BiomechanicalModel'); diff --git a/Functions/Calibration/Geometrical/Symbolic_ForwardKinematicsCoupure_A.m b/Functions/Calibration/Geometrical/Symbolic_ForwardKinematicsCoupure_A.m index 52c3b390..3e7bf4eb 100644 --- a/Functions/Calibration/Geometrical/Symbolic_ForwardKinematicsCoupure_A.m +++ b/Functions/Calibration/Geometrical/Symbolic_ForwardKinematicsCoupure_A.m @@ -275,7 +275,7 @@ end end [solid_path1,solid_path2]=find_solid_path(Human_model,j,num_solid); - [c{numClosedLoop},ceq{numClosedLoop}]=NonLinCon_ClosedLoop_Sym(Human_model,solid_path1,solid_path2,num_solid,num_markers,Q,k); + [c{numClosedLoop},ceq{numClosedLoop}]=NonLinCon_ClosedLoop_Sym(Human_model,solid_path1,solid_path2,num_solid,num_markers,Q,k,radius); numClosedLoop=numClosedLoop+1; end diff --git a/Functions/Kinematics/AddClosedLoopEquations.m b/Functions/Kinematics/AddClosedLoopEquations.m index da6bfc75..053092dc 100644 --- a/Functions/Kinematics/AddClosedLoopEquations.m +++ b/Functions/Kinematics/AddClosedLoopEquations.m @@ -8,7 +8,7 @@ % % OUTPUT % - BiomechanicalModel: musculoskeletal model -%________________________________________________________ +%_______________________________________________________ % % Licence % Toolbox distributed under GPL 3.0 Licence @@ -18,6 +18,10 @@ % Georges Dumont %________________________________________________________ +if ~isempty(varargin) + radius=varargin{1}; +end + HumanModel = BiomechanicalModel.OsteoArticularModel; syms q qred real; @@ -30,12 +34,12 @@ ConstraintEq =[]; %% Find constraint equations for closing the loop if size(solid_path1)==[1 1] - [~,ConstraintEq]=NonLinCon_ClosedLoop_Sym(HumanModel,solid_path1{1},solid_path2{1},num_solid,num_markers,q,ones(1,length(q))); + [~,ConstraintEq]=NonLinCon_ClosedLoop_Sym(HumanModel,solid_path1{1},solid_path2{1},num_solid,num_markers,q,ones(1,length(q)),radius); ConstraintEq=ConstraintEq'; else ConstraintEq =[]; for idx= 1:length(num_solid) - [~,ConstraintEq1]=NonLinCon_ClosedLoop_Sym(HumanModel,solid_path1{idx},solid_path2{idx},num_solid(idx),num_markers(idx),q,ones(1,length(q))); + [~,ConstraintEq1]=NonLinCon_ClosedLoop_Sym(HumanModel,solid_path1{idx},solid_path2{idx},num_solid(idx),num_markers(idx),q,ones(1,length(q)),radius); ConstraintEq = [ConstraintEq ConstraintEq1']; end end @@ -93,9 +97,9 @@ Karti = Kartisym(oneqset); % User choice - if ~isempty(varargin) - qinddep = varargin{1}; - end + % if ~isempty(varargin) + % qinddep = varargin{1}; + % end if length(qinddep) < size(Karti,2) - rank(Karti) starting_columns = unique(col); diff --git a/Functions/Kinematics/ForwardKinematics_ClosedLoop.m b/Functions/Kinematics/ForwardKinematics_ClosedLoop.m index 549ba5b4..0528b683 100644 --- a/Functions/Kinematics/ForwardKinematics_ClosedLoop.m +++ b/Functions/Kinematics/ForwardKinematics_ClosedLoop.m @@ -1,4 +1,4 @@ -function [Human_model,p,R] = ForwardKinematics_ClosedLoop(Human_model,n,s,solid_path,p,R,q,k) +function [Human_model,p,R] = ForwardKinematics_ClosedLoop(Human_model,n,s,solid_path,p,R,q,k,radius) % Computation of a symbolic forward kinematics % % INPUT @@ -13,6 +13,7 @@ % - R: matrix rotatio of the closed loops % - q: vector of joint coordinates % - k: vector of homothety coefficient +% - radius : vector of ellipsoid radius % OUTPUT % - Human_model: osteo-articular model (see the Documentation for the % structure) @@ -35,51 +36,241 @@ %% incr�mentation de la position et orientation if n ~= 0 - % if n~=(numel(solid_path)) - j=solid_path(n); % num�ro du solide - i=Human_model(j).mother; % num�ro de la m�re - - if size(Human_model(j).linear_constraint) == [0 0] % si coordonn�e articulaire fonction lin�aire d'une autre coordonn�e articulaire - angle=q(j); - else - angle=Human_model(j).linear_constraint(2)*q(Human_model(j).linear_constraint(1)); % qj=alpha*q - end - - if Human_model(j).joint == 1 % liaison pivot - p=R*(k(i)*Human_model(j).b)+p; % position du rep�re - R=R*Rodrigues(Human_model(j).a,angle)*Rodrigues(Human_model(j).u,Human_model(j).theta); % orientation du rep�re - end - if Human_model(j).joint == 2 % liaison glissi�re - p=R*(k(i)*Human_model(j).b + angle*Human_model(j).a)+p; - R=R*Rodrigues(Human_model(j).u,Human_model(j).theta); - end - - % else -% if n==(numel(solid_path)) && ~isempty(Human_model(solid_path(n)).ClosedLoop) -% j=solid_path(n); % num�ro du solide -% i=Human_model(j).mother; % num�ro de la m�re -% -% if size(Human_model(j).linear_constraint) == [0 0] % si coordonn�e articulaire fonction lin�aire d'une autre coordonn�e articulaire -% angle=-q(j); -% else -% angle=-Human_model(j).linear_constraint(2)*q(Human_model(j).linear_constraint(1)); % qj=alpha*q -% end -% -% if Human_model(j).joint == 1 % liaison pivot -% p=R*(k(i)*Human_model(j).b)+p; % position du rep�re -% R=R*Rodrigues(Human_model(j).a,angle)*Rodrigues(Human_model(j).u,Human_model(j).theta); % orientation du rep�re -% end -% if Human_model(j).joint == 2 % liaison glissi�re -% p=R*(k(i)*Human_model(j).b + angle*Human_model(j).a)+p; -% R=R*Rodrigues(Human_model(j).u,Human_model(j).theta); -% end - -% end - % end + % if n~=(numel(solid_path)) + j=solid_path(n); % num�ro du solide + i=Human_model(j).mother; % num�ro de la m�re + + if size(Human_model(j).linear_constraint) == [0 0] % si coordonn�e articulaire fonction lin�aire d'une autre coordonn�e articulaire + angle=q(j); + else + angle=Human_model(j).linear_constraint(2)*q(Human_model(j).linear_constraint(1)); % qj=alpha*q + end + + %ajout parafencing pour palier a la contrainte qui ne depend pas de + %la gueule de l'ellipse je crois + + switch Human_model(j).name + case 'RScapuloThoracic_J1' + + if sum(contains({Human_model.name},'RScapuloThoracic_Jalpha')) + [~,idx_theta1] = intersect({Human_model.name},'RScapuloThoracic_J4'); + [~,idx_theta2] = intersect({Human_model.name},'RScapuloThoracic_J5bis'); + angle= -radius(1)*cos(q(idx_theta1))*cos(q(idx_theta2)); %jmettrais bien un moins ici pr correspondre au x de la + else + %theta elevation + [~,idx_theta] = intersect({Human_model.name},'RScapuloThoracic_J4'); + %phi abduction + [~,idx_phi] = intersect({Human_model.name},'RScapuloThoracic_J5'); + + + angle= -radius(1)*cos(q(idx_theta))*cos(q(idx_phi)); + end + + case 'RScapuloThoracic_J2' + if sum(contains({Human_model.name},'RScapuloThoracic_Jalpha')) + + [~,idx_theta2] = intersect({Human_model.name},'RScapuloThoracic_J5bis'); + angle= radius(2)*sin(q(idx_theta2)); + + else + + %theta elevation + [~,idx_theta] = intersect({Human_model.name},'RScapuloThoracic_J4'); + + angle= radius(2)*sin(q(idx_theta)); + + end + case 'RScapuloThoracic_J3' + + + if sum(contains({Human_model.name},'RScapuloThoracic_Jalpha')) + + [~,idx_theta1] = intersect({Human_model.name},'RScapuloThoracic_J4'); + [~,idx_theta2] = intersect({Human_model.name},'RScapuloThoracic_J5bis'); + angle= radius(3)*sin(q(idx_theta1))*cos(q(idx_theta2)); + + else + + %theta elevation + [~,idx_theta] = intersect({Human_model.name},'RScapuloThoracic_J4'); + %phi abduction + [~,idx_phi] = intersect({Human_model.name},'RScapuloThoracic_J5'); + + angle=radius(3)*cos(q(idx_theta))*sin(q(idx_phi)); + end + + case 'LScapuloThoracic_J1' + + + if sum(contains({Human_model.name},'LScapuloThoracic_Jalpha')) + [~,idx_theta1] = intersect({Human_model.name},'LScapuloThoracic_J4'); + [~,idx_theta2] = intersect({Human_model.name},'LScapuloThoracic_J5bis'); + angle= radius(4)*cos(q(idx_theta1))*cos(q(idx_theta2)); + + else + + %theta elevation + [~,idx_theta] = intersect({Human_model.name},'LScapuloThoracic_J4'); + %phi abduction + [~,idx_phi] = intersect({Human_model.name},'LScapuloThoracic_J5'); + + angle= -radius(4)*cos(q(idx_theta))*cos(q(idx_phi)); + + + + end + + case 'LScapuloThoracic_J2' + + + if sum(contains({Human_model.name},'LScapuloThoracic_Jalpha')) + + [~,idx_theta2] = intersect({Human_model.name},'LScapuloThoracic_J5bis'); + angle= radius(5)*sin(q(idx_theta2)); + + else + + %theta elevation + [~,idx_theta] = intersect({Human_model.name},'LScapuloThoracic_J4'); + + angle=radius(5)*sin(q(idx_theta)); + + end + + case 'LScapuloThoracic_J3' + + if sum(contains({Human_model.name},'LScapuloThoracic_Jalpha')) + + [~,idx_theta1] = intersect({Human_model.name},'LScapuloThoracic_J4'); + [~,idx_theta2] = intersect({Human_model.name},'LScapuloThoracic_J5bis'); + angle= -radius(6)*sin(q(idx_theta1))*cos(q(idx_theta2)); + + else + + %theta elevation + [~,idx_theta] = intersect({Human_model.name},'LScapuloThoracic_J4'); + %phi abduction + [~,idx_phi] = intersect({Human_model.name},'LScapuloThoracic_J5'); + + angle=-radius(6)*cos(q(idx_theta))*sin(q(idx_phi)); + + + end + + + case 'RScapuloThoracic_J5' + if sum(contains({Human_model.name},'RScapuloThoracic_Jalpha')) + + [~,idx_theta1] = intersect({Human_model.name},'RScapuloThoracic_J4'); + [~,idx_theta2] = intersect({Human_model.name},'RScapuloThoracic_J5bis'); + angle = atan(-(radius(1)*radius(3)*tan(q(idx_theta2))*(1 + tan(q(idx_theta1))^2))/(radius(3)*radius(2)+radius(1)*radius(2)*tan(q(idx_theta1))^2)); + + end + + case 'RScapuloThoracic_Jalpha' + [~,idx_theta1] = intersect({Human_model.name},'RScapuloThoracic_J4'); + [~,idx_theta2] = intersect({Human_model.name},'RScapuloThoracic_J5bis'); + phi= atan(-(radius(1)*radius(3)*tan(q(idx_theta2))*(1 + tan(q(idx_theta1))^2))/(radius(3)*radius(2)+radius(1)*radius(2)*tan(q(idx_theta1))^2)); + angle= atan(tan(q(idx_theta1))*(-radius(2)/radius(3)*sin(phi)/tan(q(idx_theta2))-cos(phi))); + + + case 'LScapuloThoracic_J5' + if sum(contains({Human_model.name},'LScapuloThoracic_Jalpha')) + + [~,idx_theta1] = intersect({Human_model.name},'LScapuloThoracic_J4'); + [~,idx_theta2] = intersect({Human_model.name},'LScapuloThoracic_J5bis'); + angle = atan(-(radius(4)*radius(6)*tan(q(idx_theta2))*(1 + tan(q(idx_theta1))^2))/(radius(6)*radius(5)+radius(4)*radius(5)*tan(q(idx_theta1))^2)); + + end + + case 'LScapuloThoracic_Jalpha' + + [~,idx_theta1] = intersect({Human_model.name},'LScapuloThoracic_J4'); + [~,idx_theta2] = intersect({Human_model.name},'LScapuloThoracic_J5bis'); + phi=atan(-(radius(4)*radius(6)*tan(q(idx_theta2))*(1 + tan(q(idx_theta1))^2))/(radius(6)*radius(5)+radius(4)*radius(5)*tan(q(idx_theta1))^2)); + angle= atan(tan(q(idx_theta1))*(-radius(5)/radius(6)*sin(phi)/tan(q(idx_theta2))-cos(phi))); + + + end +% %Rscapula +% if j==10 +% +% [~,idx_theta1] = intersect({Human_model.name},'RScapuloThoracic_J4'); +% [~,idx_theta2] = intersect({Human_model.name},'RScapuloThoracic_J5bis'); +% angle= -radius(1)*cos(q(idx_theta1))*cos(q(idx_theta2)); %jmettrais bien un moins ici pr correspondre au x de la +% end +% +% +% if j==11 +% +% [~,idx_theta2] = intersect({Human_model.name},'RScapuloThoracic_J5bis'); +% angle= radius(2)*sin(q(idx_theta2)); +% end +% +% if j==12 +% [~,idx_theta1] = intersect({Human_model.name},'RScapuloThoracic_J4'); +% [~,idx_theta2] = intersect({Human_model.name},'RScapuloThoracic_J5bis'); +% angle= radius(3)*sin(q(idx_theta1))*cos(q(idx_theta2)); +% end + +% %LScapula +% if j==25 +% +% [~,idx_theta1] = intersect({Human_model.name},'RScapuloThoracic_J4'); +% [~,idx_theta2] = intersect({Human_model.name},'RScapuloThoracic_J5bis'); +% angle= -radius(1)*cos(q(idx_theta1))*cos(q(idx_theta2)); %jmettrais bien un moins ici pr correspondre au x de la +% end +% +% +% if j==26 +% +% [~,idx_theta2] = intersect({Human_model.name},'RScapuloThoracic_J5bis'); +% angle= radius(2)*sin(q(idx_theta2)); +% end +% +% if j==27 +% [~,idx_theta1] = intersect({Human_model.name},'RScapuloThoracic_J4'); +% [~,idx_theta2] = intersect({Human_model.name},'RScapuloThoracic_J5bis'); +% angle= radius(3)*sin(q(idx_theta1))*cos(q(idx_theta2)); +% end + %fin ajout + + + if Human_model(j).joint == 1 % liaison pivot + p=R*(k(i)*Human_model(j).b)+p; % position du rep�re + R=R*Rodrigues(Human_model(j).a,angle)*Rodrigues(Human_model(j).u,Human_model(j).theta); % orientation du rep�re + end + if Human_model(j).joint == 2 % liaison glissi�re + p=R*(k(i)*Human_model(j).b + angle*Human_model(j).a)+p; + R=R*Rodrigues(Human_model(j).u,Human_model(j).theta); + end + + % else + % if n==(numel(solid_path)) && ~isempty(Human_model(solid_path(n)).ClosedLoop) + % j=solid_path(n); % num�ro du solide + % i=Human_model(j).mother; % num�ro de la m�re + % + % if size(Human_model(j).linear_constraint) == [0 0] % si coordonn�e articulaire fonction lin�aire d'une autre coordonn�e articulaire + % angle=-q(j); + % else + % angle=-Human_model(j).linear_constraint(2)*q(Human_model(j).linear_constraint(1)); % qj=alpha*q + % end + % + % if Human_model(j).joint == 1 % liaison pivot + % p=R*(k(i)*Human_model(j).b)+p; % position du rep�re + % R=R*Rodrigues(Human_model(j).a,angle)*Rodrigues(Human_model(j).u,Human_model(j).theta); % orientation du rep�re + % end + % if Human_model(j).joint == 2 % liaison glissi�re + % p=R*(k(i)*Human_model(j).b + angle*Human_model(j).a)+p; + % R=R*Rodrigues(Human_model(j).u,Human_model(j).theta); + % end + + % end + % end end n=n+1; -[Human_model,p,R] = ForwardKinematics_ClosedLoop(Human_model,n,s,solid_path,p,R,q,k); +[Human_model,p,R] = ForwardKinematics_ClosedLoop(Human_model,n,s,solid_path,p,R,q,k,radius); end \ No newline at end of file diff --git a/Functions/Kinematics/InverseKinematicsLM.m b/Functions/Kinematics/InverseKinematicsLM.m index b84db6a7..5c555f01 100644 --- a/Functions/Kinematics/InverseKinematicsLM.m +++ b/Functions/Kinematics/InverseKinematicsLM.m @@ -69,7 +69,7 @@ %% Inverse kinematics frame per frame -options1 = optimoptions(@fmincon,'Algorithm','interior-point','Display','off','TolFun',1e-6,'TolCon',1e-6,'MaxFunEvals',2e5,'MaxIter',2e5,'TolX',1e-9,'SpecifyObjectiveGradient',true,'DerivativeCheck','off'); +options1 = optimoptions(@fmincon,'Algorithm','interior-point','Display','final','TolFun',1e-6,'TolCon',1e-6,'MaxFunEvals',2e5,'MaxIter',2e5,'TolX',1e-9,'SpecifyObjectiveGradient',true,'DerivativeCheck','off'); q=zeros(nb_solid,nb_frame); ceq=zeros(6*nbClosedLoop,nb_frame); addpath('Symbolic_function') @@ -122,7 +122,7 @@ gamma = 100; zeta = 20; -optionsLM = optimset('Algorithm','Levenberg-Marquardt','Display','off','MaxIter',4e6,'MaxFunEval',5e6,'Jacobian','on','DerivativeCheck','off','TolFun',1e-3); +optionsLM = optimset('Algorithm','Levenberg-Marquardt','Display','final','MaxIter',4e6,'MaxFunEval',5e6,'Jacobian','on','DerivativeCheck','off','TolFun',1e-3); if ~isfield(BiomechanicalModel,'ClosedLoopData') if isfield(BiomechanicalModel,'GeometricalCalibration') && isfield(BiomechanicalModel.GeometricalCalibration,'q0') diff --git a/Functions/Kinematics/NonLinCon_ClosedLoop_Sym.m b/Functions/Kinematics/NonLinCon_ClosedLoop_Sym.m index 0e43f353..b0cd1346 100644 --- a/Functions/Kinematics/NonLinCon_ClosedLoop_Sym.m +++ b/Functions/Kinematics/NonLinCon_ClosedLoop_Sym.m @@ -1,4 +1,4 @@ -function [c,ceq]=NonLinCon_ClosedLoop_Sym(Human_model,solid_path1,solid_path2,num_solid,num_markers,q,k) +function [c,ceq]=NonLinCon_ClosedLoop_Sym(Human_model,solid_path1,solid_path2,num_solid,num_markers,q,k,radius) % Non-linear equation used in the inverse kinematics step for closed loops % % INPUT @@ -34,7 +34,7 @@ % Computation on path s = Human_model(num_solid).c + Human_model(num_solid).anat_position{num_markers,2}; % position with respects to the position of the mother solid joint of the closed loop - [~,p_ClosedLoop,R_ClosedLoop] = ForwardKinematics_ClosedLoop(Human_model,1,s,solid_path1,[0 0 0]',eye(3),q,k); + [~,p_ClosedLoop,R_ClosedLoop] = ForwardKinematics_ClosedLoop(Human_model,1,s,solid_path1,[0 0 0]',eye(3),q,k,radius); % Rotation matrix and Position vector % Rtemp=R_ClosedLoop; @@ -68,7 +68,7 @@ % Computation on path s = Human_model(num_solid).c + Human_model(num_solid).anat_position{num_markers,2}; % position with respects to the position of the mother solid joint of the closed loop - [~,p_ClosedLoop,R_ClosedLoop] = ForwardKinematics_ClosedLoop(Human_model,1,s,solid_path2,[0 0 0]',eye(3),q,k); + [~,p_ClosedLoop,R_ClosedLoop] = ForwardKinematics_ClosedLoop(Human_model,1,s,solid_path2,[0 0 0]',eye(3),q,k,radius); % Rotation matrix and Position vector %Rtemp=R_ClosedLoop; @@ -100,8 +100,8 @@ else% if the loop is cut elsewhere in the loop % Computation on path - [Human_model,p_ClosedLoop1,R_ClosedLoop1] = ForwardKinematics_ClosedLoop(Human_model,1,[0 0 0],solid_path1,[0 0 0]',eye(3),q,k); - [Human_model,p_ClosedLoop2,R_ClosedLoop2] = ForwardKinematics_ClosedLoop(Human_model,1,[0 0 0],solid_path2,[0 0 0]',eye(3),q,k); + [Human_model,p_ClosedLoop1,R_ClosedLoop1] = ForwardKinematics_ClosedLoop(Human_model,1,[0 0 0],solid_path1,[0 0 0]',eye(3),q,k,radius); + [Human_model,p_ClosedLoop2,R_ClosedLoop2] = ForwardKinematics_ClosedLoop(Human_model,1,[0 0 0],solid_path2,[0 0 0]',eye(3),q,k,radius); if ~isempty(intersect(solid_path1,num_solid)) % Finding the solid with the anatomical position to be respected p_ClosedLoop1 = p_ClosedLoop1 + R_ClosedLoop1*(Human_model(num_solid).c+Human_model(num_solid).anat_position{num_markers,2}); else diff --git a/Functions/Kinematics/SymbolicFunctionGenerationIK.m b/Functions/Kinematics/SymbolicFunctionGenerationIK.m index a8caca1e..60666f52 100644 --- a/Functions/Kinematics/SymbolicFunctionGenerationIK.m +++ b/Functions/Kinematics/SymbolicFunctionGenerationIK.m @@ -1,4 +1,4 @@ -function [Human_model,Jacob,Generalized_Coordinates]=SymbolicFunctionGenerationIK(Human_model,Markers_set) +function [Human_model,Jacob,Generalized_Coordinates]=SymbolicFunctionGenerationIK(Human_model,Markers_set,radius) % Computation of function used in the inverse kinematics step % Generated functions contain the global position of each marker and its % Jacobian matrix. All functions are evaluated according to the joint @@ -99,7 +99,7 @@ % Computation of the symbolic markers position %[Human_model,Markers_set,~,~,p_ClosedLoop,R_ClosedLoop]=Symbolic_ForwardKinematicsCoupure(Human_model,Markers_set,s_root,q,k,p_adapt,1,1); -[Human_model,Markers_set,~,~,c_ClosedLoop,ceq_ClosedLoop]=Symbolic_ForwardKinematicsCoupure(Human_model,Markers_set,s_root,q_complete,k,p_adapt,1,1); +[Human_model,Markers_set,~,~,c_ClosedLoop,ceq_ClosedLoop]=Symbolic_ForwardKinematicsCoupure(Human_model,Markers_set,s_root,q_complete,k,p_adapt,1,1,{},{},radius); % position and rotation of the solids used as cuts for ii=1:max([Human_model.KinematicsCut]) diff --git a/Functions/Kinematics/Symbolic_ForwardKinematicsCoupure.m b/Functions/Kinematics/Symbolic_ForwardKinematicsCoupure.m index 147e075c..27cbf1d6 100644 --- a/Functions/Kinematics/Symbolic_ForwardKinematicsCoupure.m +++ b/Functions/Kinematics/Symbolic_ForwardKinematicsCoupure.m @@ -1,5 +1,5 @@ function [Human_model,Markers_set,num_cut,numClosedLoop,c,ceq]=... - Symbolic_ForwardKinematicsCoupure(Human_model,Markers_set,j,q,k,p_adapt,num_cut,numClosedLoop,c,ceq) + Symbolic_ForwardKinematicsCoupure(Human_model,Markers_set,j,q,k,p_adapt,num_cut,numClosedLoop,c,ceq,radius) % Computation of a symbolic forward kinematics % % INPUT @@ -109,7 +109,7 @@ end end [solid_path1,solid_path2]=find_solid_path(Human_model,j,num_solid); - [c{numClosedLoop},ceq{numClosedLoop}]=NonLinCon_ClosedLoop_Sym(Human_model,solid_path1,solid_path2,num_solid,num_markers,q,k); + [c{numClosedLoop},ceq{numClosedLoop}]=NonLinCon_ClosedLoop_Sym(Human_model,solid_path1,solid_path2,num_solid,num_markers,q,k,radius); % s = Human_model(num_solid).c + Human_model(num_solid).anat_position{num_markers,2}; % position with respects to the position of the mother solid joint of the closed loop % [Human_model,p_ClosedLoop{numClosedLoop},R_ClosedLoop{numClosedLoop}] = ForwardKinematics_ClosedLoop(Human_model,1,s,solid_path,[0 0 0]',eye(3),q,k); numClosedLoop=numClosedLoop+1; @@ -126,7 +126,7 @@ end end -[Human_model,Markers_set,num_cut,numClosedLoop,c,ceq]=Symbolic_ForwardKinematicsCoupure(Human_model,Markers_set,Human_model(j).sister,q,k,p_adapt,num_cut,numClosedLoop,c,ceq); -[Human_model,Markers_set,num_cut,numClosedLoop,c,ceq]=Symbolic_ForwardKinematicsCoupure(Human_model,Markers_set,Human_model(j).child,q,k,p_adapt,num_cut,numClosedLoop,c,ceq); +[Human_model,Markers_set,num_cut,numClosedLoop,c,ceq]=Symbolic_ForwardKinematicsCoupure(Human_model,Markers_set,Human_model(j).sister,q,k,p_adapt,num_cut,numClosedLoop,c,ceq,radius); +[Human_model,Markers_set,num_cut,numClosedLoop,c,ceq]=Symbolic_ForwardKinematicsCoupure(Human_model,Markers_set,Human_model(j).child,q,k,p_adapt,num_cut,numClosedLoop,c,ceq,radius); end \ No newline at end of file diff --git a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m index 63e5265c..bc6c87b6 100644 --- a/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m +++ b/Functions/Models/Osteoarticular/UpperTrunk/ModelParts/Scapula_Shoulder_Tangent.m @@ -227,11 +227,12 @@ Scapulalocator = varargin{1}; Scapulalocator = Scapulalocator{1, 1}; if Scapulalocator.active - if ~isempty(find(strcmp(Scapulalocator.side,Side),1)) + temp = strfind(Scapulalocator.side,Side); + if ~isempty(temp{:}) vec_1 = Scapula_locator_AA - Scapula_locator_AI; vec_2 = Scapula_locator_TS - Scapula_locator_AI; normal= Sign*cross(vec_1,vec_2)/norm(cross(vec_1,vec_2)); - ind = find(strcmp(Scapulalocator.side,Side),1); + ind = 1; Scapula_locator_AA = Scapula_locator_AA + Scapulalocator.height(ind)*normal*1e-2; Scapula_locator_AI = Scapula_locator_AI + Scapulalocator.height(ind)*normal*1e-2; Scapula_locator_TS = Scapula_locator_TS + Scapulalocator.height(ind)*normal*1e-2; From 3bec04164914911c801055e278a122e83d862b09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?ROUVIER=20Th=C3=A9o?= Date: Wed, 13 Sep 2023 16:31:40 +0200 Subject: [PATCH 43/46] Bug correction --- .../Scapula/ConvertClustertoScaplocBilinear.m | 79 ++++++++----------- Functions/Kinematics/InverseKinematicsLM.m | 4 +- Functions/Models/Markers/Marker_set1.m | 9 +-- 3 files changed, 40 insertions(+), 52 deletions(-) diff --git a/Functions/Calibration/Scapula/ConvertClustertoScaplocBilinear.m b/Functions/Calibration/Scapula/ConvertClustertoScaplocBilinear.m index 55056ce1..22c1907e 100644 --- a/Functions/Calibration/Scapula/ConvertClustertoScaplocBilinear.m +++ b/Functions/Calibration/Scapula/ConvertClustertoScaplocBilinear.m @@ -1,4 +1,4 @@ -function [new_name,p_trial]=ConvertClustertoScaplocBilinear(filename_trial, filename_arr, filename_av, token_mean,droiteougauche) +function [new_name,p_trial]=ConvertClustertoScaplocBilinear(filename_trial, filename_arr, filename_av, token_mean,side) %% Open files subject = char(filename_trial(1:6)); % Open file of trial @@ -15,29 +15,24 @@ %% Get positions of clusters and scaploc in filename arr and filename av % Trial cluster names_trial = fieldnames(markers_trial); -% prefix_trial = names_trial{contains(names_trial,'SCAPGB')}; -prefix_trial = '';%prefix_trial(1:6); -try - SCAPDB_trial=markers_trial.([prefix_trial 'SCAPGB']); -catch - SCAPDB_trial=markers_trial.([prefix_trial 'SCAPDB']); +prefix_trial = names_trial{contains(names_trial,['SCAP' side 'B'])}; +prefix_trial=prefix_trial(1:end-6); +if strcmp(prefix_trial,['SCAP' side 'B']) + prefix_trial=''; end + +SCAPDB_trial=markers_trial.([prefix_trial 'SCAP' side 'B']); + nb_frame = size(SCAPDB_trial,1); SCAPDB_trial = reshape(SCAPDB_trial, [nb_frame 1 3]); SCAPDB_trial = permute(SCAPDB_trial, [3,2,1]); -try - SCAPDH_trial = markers_trial.([prefix_trial 'SCAPGH']); -catch - SCAPDH_trial = markers_trial.([prefix_trial 'SCAPDH']); - -end + +SCAPDH_trial = markers_trial.([prefix_trial 'SCAP' side 'H']); SCAPDH_trial = reshape(SCAPDH_trial, [nb_frame 1 3]); SCAPDH_trial = permute(SCAPDH_trial, [3,2,1]); -try - SCAPDL_trial = markers_trial.([prefix_trial 'SCAPGL']); -catch - SCAPDL_trial = markers_trial.([prefix_trial 'SCAPDL']); -end + +SCAPDL_trial = markers_trial.([prefix_trial 'SCAP' side 'L']); + SCAPDL_trial = reshape(SCAPDL_trial, [nb_frame 1 3]); SCAPDL_trial = permute(SCAPDL_trial, [3,2,1]); @@ -54,12 +49,15 @@ % Rear cluster names_arr = fieldnames(markers_arr); -prefix_arr = names_arr{contains(names_arr,'SCAPGB')}; -prefix_arr =prefix_arr(1:end-6); +prefix_arr = names_arr{contains(names_arr,['SCAP' side 'B'])}; +prefix_arr=prefix_arr(1:end-6); +if strcmp(prefix_arr,['SCAP' side 'B']) + prefix_arr=''; +end % prefix_arr = '';%prefix_arr(1:6); -SCAPDB_arr=markers_arr.([prefix_arr 'SCAPGB']); -SCAPDH_arr=markers_arr.([prefix_arr 'SCAPGH']); -SCAPDL_arr=markers_arr.([prefix_arr 'SCAPGL']); +SCAPDB_arr=markers_arr.([prefix_arr 'SCAP' side 'B']); +SCAPDH_arr=markers_arr.([prefix_arr 'SCAP' side 'H']); +SCAPDL_arr=markers_arr.([prefix_arr 'SCAP' side 'L']); %THORAX ARRIERE C7_arr=markers_arr.([prefix_arr 'C7']); MAN_arr=markers_arr.([prefix_arr 'MAN']); @@ -68,7 +66,7 @@ % Rear scaploc try - prefix_scaploc = names_arr{contains(names_arr,'Scaploc_B')}; + prefix_scaploc = names_arr{contains(names_arr,['Scaploc_B' side])}; prefix_scaploc = prefix_scaploc(1:end-9); catch prefix_scaploc=''; @@ -84,11 +82,14 @@ end % Advanced cluster names_av = fieldnames(markers_av); -prefix_av = names_av{contains(names_av,'SCAPGB')}; -prefix_av = prefix_av(1:end-6); -SCAPDB_av=markers_av.([prefix_av 'SCAPGB']); -SCAPDH_av=markers_av.([prefix_av 'SCAPGH']); -SCAPDL_av=markers_av.([prefix_av 'SCAPGL']); +prefix_av = names_av{contains(names_av,['SCAP' side 'B'])}; +prefix_av=prefix_av(1:end-6); +if strcmp(prefix_av,['SCAP' side 'B']) + prefix_av=''; +end +SCAPDB_av=markers_av.([prefix_av 'SCAP' side 'B']); +SCAPDH_av=markers_av.([prefix_av 'SCAP' side 'H']); +SCAPDL_av=markers_av.([prefix_av 'SCAP' side 'L']); %THORAX AVANT C7_av=markers_av.([prefix_av 'C7']); @@ -141,10 +142,6 @@ SCAPLOCB_arr=SCAPLOCB_arr(1,:); SCAPLOCMM_arr=SCAPLOCMM_arr(1,:); SCAPLOCLM_arr=SCAPLOCLM_arr(1,:); - %Rear thorax - C7_arr=C7_arr(1,:); - MAN_arr=MAN_arr(1,:); - T8_arr=T8_arr(1,:); % Advanced scaploc SCAPDB_av=SCAPDB_av(1,:); SCAPDH_av=SCAPDH_av(1,:); @@ -153,10 +150,6 @@ SCAPLOCB_av=SCAPLOCB_av(1,:); SCAPLOCMM_av=SCAPLOCMM_av(1,:); SCAPLOCLM_av=SCAPLOCLM_av(1,:); - %Advanced thorax - C7_av=C7_av(1,:); - MAN_av=MAN_av(1,:); - T8_av=T8_av(1,:); end %% Find coefficients for quaternion interpolation @@ -172,7 +165,7 @@ X_thorax_arr = (MAN_arr - C7_arr)/norm(MAN_arr - C7_arr); yt_thorax_arr = T8_arr - C7_arr; Z_thorax_arr = (cross(X_thorax_arr,yt_thorax_arr))/norm(cross(X_thorax_arr,yt_thorax_arr)); -Y_thorax_arr = cross(Z_thorax_arr,X_thorax_arr)/norm(cross(Z_thorax_arr,X_thorax_arr)); +Y_thorax_arr = cross(Z_thorax_arr,X_thorax_arr); T_thorax_world_arr = [X_thorax_arr' Y_thorax_arr' Z_thorax_arr' O_thorax_arr'; 0 0 0 1]; % Rear scaploc homogeneous matrix @@ -212,7 +205,7 @@ X_thorax_av = (MAN_av - C7_av)/norm(MAN_av - C7_av); yt_thorax_av = T8_av - C7_av; Z_thorax_av = (cross(X_thorax_av,yt_thorax_av))/norm(cross(X_thorax_av,yt_thorax_av)); -Y_thorax_av = cross(Z_thorax_av,X_thorax_av)/norm(cross(Z_thorax_av,X_thorax_av)); +Y_thorax_av = cross(Z_thorax_av,X_thorax_av); T_thorax_world_av = [X_thorax_av' Y_thorax_av' Z_thorax_av' O_thorax_av'; 0 0 0 1]; % Advanced scaploc homogeneous matrix @@ -247,7 +240,7 @@ X_thorax_trial = (MAN_trial - C7_trial)./vecnorm(MAN_trial - C7_trial); yt_thorax_trial = T8_trial - C7_trial; Z_thorax_trial = (cross(X_thorax_trial,yt_thorax_trial))./vecnorm(cross(X_thorax_trial,yt_thorax_trial)); -Y_thorax_trial = cross(Z_thorax_trial,X_thorax_trial)./vecnorm(cross(Z_thorax_trial,X_thorax_trial)); +Y_thorax_trial = cross(Z_thorax_trial,X_thorax_trial); last_row = zeros(1,4,nb_frame);last_row(:,4,:)=1; T_thorax_world_trial = [X_thorax_trial Y_thorax_trial Z_thorax_trial O_thorax_trial]; T_thorax_world_trial(4,:,:)=last_row; @@ -289,11 +282,7 @@ pn_trial=btkGetPointNumber(h_trial); % Adding virtual SCAPLOC markers to list of markers pn_new=pn_trial+3; -if strcmp(droiteougauche,'D') -labels=[ListMarkersName_trial; {'SCAPLOCB';'SCAPLOCMM';'SCAPLOCLM'}]; -else - labels=[ListMarkersName_trial; {'SCAPLOCB1';'SCAPLOCMM1';'SCAPLOCLM1'}]; -end +labels=[ListMarkersName_trial; {['SCAPLOCB' side];['SCAPLOCMM' side];['SCAPLOCLM' side]}]; % Number of frames in trial nb_frame_trial=btkGetLastFrame(h_trial)-btkGetFirstFrame(h_trial)+1; % Trial acquisition frequency diff --git a/Functions/Kinematics/InverseKinematicsLM.m b/Functions/Kinematics/InverseKinematicsLM.m index 5c555f01..b84db6a7 100644 --- a/Functions/Kinematics/InverseKinematicsLM.m +++ b/Functions/Kinematics/InverseKinematicsLM.m @@ -69,7 +69,7 @@ %% Inverse kinematics frame per frame -options1 = optimoptions(@fmincon,'Algorithm','interior-point','Display','final','TolFun',1e-6,'TolCon',1e-6,'MaxFunEvals',2e5,'MaxIter',2e5,'TolX',1e-9,'SpecifyObjectiveGradient',true,'DerivativeCheck','off'); +options1 = optimoptions(@fmincon,'Algorithm','interior-point','Display','off','TolFun',1e-6,'TolCon',1e-6,'MaxFunEvals',2e5,'MaxIter',2e5,'TolX',1e-9,'SpecifyObjectiveGradient',true,'DerivativeCheck','off'); q=zeros(nb_solid,nb_frame); ceq=zeros(6*nbClosedLoop,nb_frame); addpath('Symbolic_function') @@ -122,7 +122,7 @@ gamma = 100; zeta = 20; -optionsLM = optimset('Algorithm','Levenberg-Marquardt','Display','final','MaxIter',4e6,'MaxFunEval',5e6,'Jacobian','on','DerivativeCheck','off','TolFun',1e-3); +optionsLM = optimset('Algorithm','Levenberg-Marquardt','Display','off','MaxIter',4e6,'MaxFunEval',5e6,'Jacobian','on','DerivativeCheck','off','TolFun',1e-3); if ~isfield(BiomechanicalModel,'ClosedLoopData') if isfield(BiomechanicalModel,'GeometricalCalibration') && isfield(BiomechanicalModel.GeometricalCalibration,'q0') diff --git a/Functions/Models/Markers/Marker_set1.m b/Functions/Models/Markers/Marker_set1.m index 816d2dbe..99bf89be 100644 --- a/Functions/Models/Markers/Marker_set1.m +++ b/Functions/Models/Markers/Marker_set1.m @@ -48,16 +48,15 @@ end -Side={'R';'L'}; if length(varargin)>=2 Scapulalocator = varargin{2}; if Scapulalocator.active for idx=1:2 - temp = strfind(Scapulalocator.side,Side{idx}); + temp = strfind(Scapulalocator.side,Side2{idx}); if ~isempty(temp{:}) - s=[s;{['SCAPLOCLM',Side{idx}] ['ScapLoc_AA_',Side{idx}] {'On';'On';'On'};... - ['SCAPLOCMM',Side{idx}] ['ScapLoc_TS_',Side{idx}] {'On';'On';'On'};... - ['SCAPLOCB',Side{idx}] ['ScapLoc_AI_',Side{idx}] {'On';'On';'On'};... + s=[s;{['SCAPLOCLM',Side1{idx}] ['ScapLoc_AA_',Side2{idx}] {'On';'On';'On'};... + ['SCAPLOCMM',Side1{idx}] ['ScapLoc_TS_',Side2{idx}] {'On';'On';'On'};... + ['SCAPLOCB',Side1{idx}] ['ScapLoc_AI_',Side2{idx}] {'On';'On';'On'};... }]; end end From 64e3ce11a4604500f699f7a453ecc36e0ec0b998 Mon Sep 17 00:00:00 2001 From: RouvierT Date: Thu, 21 Sep 2023 14:42:49 +0200 Subject: [PATCH 44/46] Bug correction in Inverse Kinematics --- .../Geometrical/CostFunctionLMCalib.m | 8 +--- .../Geometrical/ErrorMarkersCalibLM.m | 30 +++++++------- .../Geometrical/GeomCalibOptimization.m | 5 +-- Functions/Kinematics/CostFunctionLM.m | 39 ++++++++++--------- .../Kinematics/CostFunctionSymbolicIK2.m | 2 +- Functions/Kinematics/ErrorMarkersIK.m | 8 ++-- Functions/Kinematics/InverseKinematics.m | 2 +- 7 files changed, 44 insertions(+), 50 deletions(-) diff --git a/Functions/Calibration/Geometrical/CostFunctionLMCalib.m b/Functions/Calibration/Geometrical/CostFunctionLMCalib.m index 84a26a21..6ff72667 100644 --- a/Functions/Calibration/Geometrical/CostFunctionLMCalib.m +++ b/Functions/Calibration/Geometrical/CostFunctionLMCalib.m @@ -26,13 +26,9 @@ fonc = hclosedloophandle{k}; constraints{k} = fonc(q); end - - - - newweights= repmat(weights,1,3)'; - constraints=[constraints{:}]; + newweights= repmat(weights,3,1); dX = newweights(:).*ik_function_objective(q); - func = [ dX ; gamma*constraints ; zeta*hbutees(q)]; + func = [ dX ; gamma*constraints(:) ; zeta*hbutees(q)]; end \ No newline at end of file diff --git a/Functions/Calibration/Geometrical/ErrorMarkersCalibLM.m b/Functions/Calibration/Geometrical/ErrorMarkersCalibLM.m index 5fcd95b0..69485466 100644 --- a/Functions/Calibration/Geometrical/ErrorMarkersCalibLM.m +++ b/Functions/Calibration/Geometrical/ErrorMarkersCalibLM.m @@ -23,21 +23,19 @@ % Georges Dumont %________________________________________________________ - - - for c=1:nbcut - if c==1 - [Rcut(:,:,c),pcut(:,:,c)]=list_function{c}(Pelvis_position,Pelvis_rotation,q,k,[],[]); - else - [Rcut(:,:,c),pcut(:,:,c)]=list_function{c}(Pelvis_position,Pelvis_rotation,q,k,pcut,Rcut); - end - end - error=zeros(3*numel(list_markers),1); - for m=1:numel(list_markers) -% error(m,:) = norm(eval([list_markers{m} '_Position(Pelvis_position,Pelvis_rotation,q,k,pcut,Rcut)']) - real_markers(m).position(f,:)'); - error(1+3*(m-1):3+3*(m-1),:) = list_markers{m}... - (Pelvis_position,Pelvis_rotation,q,k,... - pcut,Rcut) - real_markers(m).position(f,:)'; + + +for c=1:nbcut + if c==1 + [Rcut(:,:,c),pcut(:,:,c)]=list_function{c}(Pelvis_position,Pelvis_rotation,q,k,[],[]); + else + [Rcut(:,:,c),pcut(:,:,c)]=list_function{c}(Pelvis_position,Pelvis_rotation,q,k,pcut,Rcut); end - +end +error=zeros(3*numel(list_markers),1); +for m=1:numel(list_markers) + error(1+3*(m-1):3+3*(m-1),:) = ( list_markers{m}... + (Pelvis_position,Pelvis_rotation,q,k,... + pcut,Rcut) - real_markers(m).position(f,:)'); +end end \ No newline at end of file diff --git a/Functions/Calibration/Geometrical/GeomCalibOptimization.m b/Functions/Calibration/Geometrical/GeomCalibOptimization.m index 3ebcb48f..fea44102 100644 --- a/Functions/Calibration/Geometrical/GeomCalibOptimization.m +++ b/Functions/Calibration/Geometrical/GeomCalibOptimization.m @@ -83,9 +83,8 @@ % Error computation errorm{g+1}=zeros(length(real_markers_calib),nb_frame_calib); %#ok for f=1:nb_frame_calib - - [errorm{g+1}(:,f)] = ErrorMarkersCalib(q_value{g+1}(:,f),kp_opt(:,g+1),real_markers_calib,f,list_function_markers,Base_position{f},Base_rotation{f},Rcut,pcut,nbcut,list_function); - + temp = weights.*ErrorMarkersCalib(q_value{g+1}(:,f),kp_opt(:,g+1),real_markers_calib,f,list_function_markers,Base_position{f},Base_rotation{f},Rcut,pcut,nbcut,list_function); + [errorm{g+1}(:,f)] = temp(weights~=0); end % Stop criteria diff --git a/Functions/Kinematics/CostFunctionLM.m b/Functions/Kinematics/CostFunctionLM.m index fa6ba5cf..1ec0959c 100644 --- a/Functions/Kinematics/CostFunctionLM.m +++ b/Functions/Kinematics/CostFunctionLM.m @@ -1,6 +1,6 @@ function [func,J]=CostFunctionLM(q,positions,gamma,hclosedloophandle,zeta,hbutees,weights, l_inf1,l_sup1,Aeq_ik,J_marqueurs_handle) % Limit penalisation for LM algorithm -% +% % INPUT % - q: vector of joint coordinates at a given instant % - positions : vector of experimental marker positions @@ -21,23 +21,24 @@ %________________________________________________________ - % cut evaluation - [Rcut,pcut]=fcut(q); +% cut evaluation +[Rcut,pcut]=fcut(q); + +newweights= repmat(weights,3,1); + +% dx +dX = newweights(:).*(-X_markers(q,pcut,Rcut) + positions); + +constraints=cell(length(hclosedloophandle),1); +for k=1:length(hclosedloophandle) + fonc = hclosedloophandle{k}; + constraints{k}= fonc(q); +end +constraints=[constraints{:}]; +func = [ dX ; gamma*constraints(:) ; zeta*hbutees(q)]; + +if nargout > 1 % Two output arguments + J = IK_Jacobian(q,pcut,Rcut, l_inf1,l_sup1,Aeq_ik,gamma,zeta, J_marqueurs_handle,newweights(:)); % Jacobian of the function evaluated at q +end - newweights= repmat(weights,1,3)'; - % dx - dX = newweights(:).*(-X_markers(q,pcut,Rcut) + positions); - - constraints=[]; - for k=1:length(hclosedloophandle) - fonc = hclosedloophandle{k}; - constraints = [constraints ; fonc(q)]; - end - - func = [ dX ; gamma*constraints ; zeta*hbutees(q)]; - - if nargout > 1 % Two output arguments - J = IK_Jacobian(q,pcut,Rcut, l_inf1,l_sup1,Aeq_ik,gamma,zeta, J_marqueurs_handle,newweights(:)); % Jacobian of the function evaluated at q - end - end \ No newline at end of file diff --git a/Functions/Kinematics/CostFunctionSymbolicIK2.m b/Functions/Kinematics/CostFunctionSymbolicIK2.m index 24c62208..f51aa376 100644 --- a/Functions/Kinematics/CostFunctionSymbolicIK2.m +++ b/Functions/Kinematics/CostFunctionSymbolicIK2.m @@ -18,7 +18,7 @@ [Rcut,pcut]=fcut(q); % Vectorial norm of marker distance -newweights= repmat(weights,1,3)'; +newweights= repmat(weights,3,1); a = sum(newweights(:).*(-X_markers(q,pcut,Rcut) + positions).^2); error = sum(a(~isnan(a))); diff --git a/Functions/Kinematics/ErrorMarkersIK.m b/Functions/Kinematics/ErrorMarkersIK.m index 7a46e238..7e0ae135 100644 --- a/Functions/Kinematics/ErrorMarkersIK.m +++ b/Functions/Kinematics/ErrorMarkersIK.m @@ -1,6 +1,6 @@ function [error] = ErrorMarkersIK(q,positions,varargin) % Computation of reconstruction error for the inverse kinematics step -% Computation of the distance between the position of each experimental +% Computation of the distance between the position of each experimental % marker and the position of the corresponded model marker % % INPUT @@ -8,7 +8,7 @@ % - positions : vector of experimental marker positions % OUTPUT % - error: distance between the position of each experimental marker and -% the position of the corresponded model marker +% the position of the corresponded model marker %________________________________________________________ % % Licence @@ -24,9 +24,9 @@ error = sqrt(sum(reshape(-X_markers(q,pcut,Rcut) + positions,3,length(positions)/3).^2,1)); else weights = varargin{1}; - newweights= repmat(weights,1,3)'; + newweights= repmat(weights,3,1); error = sqrt(sum(reshape(newweights(:).*(-X_markers(q,pcut,Rcut) + positions),3,length(positions)/3).^2)); - % error = sqrt(sum(reshape(-X_markers(q,pcut,Rcut) + positions,3,length(positions)/3).^2,1)); + % error = sqrt(sum(reshape(-X_markers(q,pcut,Rcut) + positions,3,length(positions)/3).^2,1)); end \ No newline at end of file diff --git a/Functions/Kinematics/InverseKinematics.m b/Functions/Kinematics/InverseKinematics.m index c86c40d7..8244806a 100644 --- a/Functions/Kinematics/InverseKinematics.m +++ b/Functions/Kinematics/InverseKinematics.m @@ -49,7 +49,7 @@ SaveDataIK(filename,ExperimentalData,InverseKinematicsResults); end else -parfor i = 1:numel(AnalysisParameters.filename) +for i = 1:numel(AnalysisParameters.filename) if isequal(AnalysisParameters.General.InputData, @MVNX_V3) % Load inverse kinematics from a MVNX MVNXInverseKinematics(AnalysisParameters.filename{i}(1:end-(numel(AnalysisParameters.General.Extension)-1)), AnalysisParameters); else From a1755a492f061fa26895112e1a6caa0806ff4dba Mon Sep 17 00:00:00 2001 From: RouvierT Date: Fri, 22 Sep 2023 14:23:51 +0200 Subject: [PATCH 45/46] Bug correction --- Functions/Calibration/Geometrical/CostFunctionLMCalib.m | 5 ++--- Functions/Kinematics/CostFunctionLM.m | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/Functions/Calibration/Geometrical/CostFunctionLMCalib.m b/Functions/Calibration/Geometrical/CostFunctionLMCalib.m index 6ff72667..25995fe2 100644 --- a/Functions/Calibration/Geometrical/CostFunctionLMCalib.m +++ b/Functions/Calibration/Geometrical/CostFunctionLMCalib.m @@ -21,12 +21,11 @@ %________________________________________________________ - constraints=cell(length(hclosedloophandle),1); + constraints=[]; for k=1:length(hclosedloophandle) fonc = hclosedloophandle{k}; - constraints{k} = fonc(q); + constraints = [constraints ; fonc(q)]; end - constraints=[constraints{:}]; newweights= repmat(weights,3,1); dX = newweights(:).*ik_function_objective(q); func = [ dX ; gamma*constraints(:) ; zeta*hbutees(q)]; diff --git a/Functions/Kinematics/CostFunctionLM.m b/Functions/Kinematics/CostFunctionLM.m index 1ec0959c..fd1ce993 100644 --- a/Functions/Kinematics/CostFunctionLM.m +++ b/Functions/Kinematics/CostFunctionLM.m @@ -29,12 +29,11 @@ % dx dX = newweights(:).*(-X_markers(q,pcut,Rcut) + positions); -constraints=cell(length(hclosedloophandle),1); +constraints=[]; for k=1:length(hclosedloophandle) fonc = hclosedloophandle{k}; - constraints{k}= fonc(q); + constraints= [constraints; fonc(q)]; end -constraints=[constraints{:}]; func = [ dX ; gamma*constraints(:) ; zeta*hbutees(q)]; if nargout > 1 % Two output arguments From f0013f444095b7b71ef3bc44b8a5d99f1bbc37a6 Mon Sep 17 00:00:00 2001 From: Charles Pontonnier <44056682+cpontonn@users.noreply.github.com> Date: Mon, 10 Feb 2025 12:00:10 +0100 Subject: [PATCH 46/46] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 0c54ed5b..3b5f6005 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ **CusToM Status:** [![status](http://joss.theoj.org/papers/4b412d584fbfa911edfae882146e2cd3/status.svg)](http://joss.theoj.org/papers/4b412d584fbfa911edfae882146e2cd3) +![alt text](https://github.com/anmuller/CusToM/blob/master/logo_custom.png) + **License:** [![License](https://camo.githubusercontent.com/899066452bb77fd8731295847eb9c17dfdf601d8/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d474e555f47504c76332d6f72616e67652e737667)](https://github.com/anmuller/CusToM/blob/Dev_IRSST/LICENSE)