From 7231ea622cdbcb0a3e4ae37e6b81dd3c617a0f7f Mon Sep 17 00:00:00 2001 From: cosmic_power Date: Fri, 8 Nov 2024 09:22:15 +0800 Subject: [PATCH] add untrack files --- estimate_dyn_form_data.m | 111 +++++++++++++++++++++++ get_Kinematics_EVT.m | 73 +++++++++++++++ get_robot_R1000_EVT.m | 178 +++++++++++++++++++++++++++++++++++++ identification_problem.mat | Bin 0 -> 70140 bytes readDataFile.m | 6 ++ 5 files changed, 368 insertions(+) create mode 100644 estimate_dyn_form_data.m create mode 100644 get_Kinematics_EVT.m create mode 100644 get_robot_R1000_EVT.m create mode 100644 identification_problem.mat create mode 100644 readDataFile.m diff --git a/estimate_dyn_form_data.m b/estimate_dyn_form_data.m new file mode 100644 index 0000000..ac004d0 --- /dev/null +++ b/estimate_dyn_form_data.m @@ -0,0 +1,111 @@ +function robot = estimate_dyn_form_data(robot,opt) +% ------------------------------------------------------------------- +% Get datas +% ------------------------------------------------------------------------ +posData = robot.posData; +currentData = robot.currentData; +[nRow,nCol] = size(posData); +index_p = find(posData(:,nCol-1)==7); +jointPos_p = posData(index_p,1:9); +jointPos_p = jointPos_p(1:100:end,:); +index_n = find(posData(:,nCol-1)==-7); +jointPos_n = posData(index_n,1:9); +jointPos_n = jointPos_n(1:100:end,:); +q = [jointPos_p]'; +qd = q; qdd = q; +motorConst = [0.405, 0.405, 0.167, 0.126,0.073,0.151,0.083,0.073,0.03185]; +gearRatio = [101,101,100,100,100,100,100,100,100]; +% pi -> [m;mc;I] 10 element +index_p = find(currentData(:,nCol-1)==7); +jointCur_p = currentData(index_p,1:9); +jointCur_p = jointCur_p(1:100:end,:); +index_n = find(currentData(:,nCol-1)==-7); +jointCur_n = currentData(index_n,1:9); +jointCur_n = jointCur_n(1:100:end,:); +current = (jointCur_p+jointCur_n)/2; +torque_cur = gearRatio.*motorConst.*current; +tau = torque_cur(:,7)'; + +idntfcnTrjctry.t = 1:length(q); +idntfcnTrjctry.q = q; +idntfcnTrjctry.qd = qd; +idntfcnTrjctry.qdd = qdd; +idntfcnTrjctry.tau = tau; +% ------------------------------------------------------------------- +% Generate Regressors based on data +% ------------------------------------------------------------------------ +drvGains = []; +baseQR = robot.baseQR; +[Tau, Wb] = buildObservationMatrices(idntfcnTrjctry, baseQR, drvGains, opt); + +% --------------------------------------------------------------------- +% Estimate parameters +% --------------------------------------------------------------------- +sol = struct; +method = 'PC-OLS'; +if strcmp(method, 'OLS') + % Usual least squares + [sol.pi_b, sol.pi_fr] = ordinaryLeastSquareEstimation(Tau, Wb); +elseif strcmp(method, 'PC-OLS') + % Physically consistent OLS using SDP optimization + [sol.pi_b] = physicallyConsistentEstimation(Tau, Wb); +else + error("Chosen method for dynamic parameter estimation does not exist"); +end +robot.sol = sol; +% Local unctions + function [Tau, Wb] = buildObservationMatrices(idntfcnTrjctry, baseQR, drvGains,opt) + % The function builds observation matrix for UR10E + E1 = baseQR.permutationMatrix(:,1:baseQR.numberOfBaseParameters); + + Wb = []; Tau = []; + for i = 1:1:length(idntfcnTrjctry.t) + % Yi = regressorWithMotorDynamics(idntfcnTrjctry.q(i,:)',... + % idntfcnTrjctry.qd(i,:)',... + % idntfcnTrjctry.q2d(i,:)'); + % Yfrctni = frictionRegressor(idntfcnTrjctry.qd_fltrd(i,:)'); + % Ybi = [Yi*E1, Yfrctni]; + if opt.isJointTorqueSensor + base_regressor_func = sprintf('base_regressor_%s',opt.robotName); + Yb = feval(base_regressor_func, idntfcnTrjctry.q(:,i), ... + idntfcnTrjctry.qd(:,i),idntfcnTrjctry.qdd(:,i),baseQR); + %hack + joint_idex = robot.ndof-2; + Yb = Yb((joint_idex-1)+1:(joint_idex),:); + Wb = vertcat(Wb, Yb); + % Tau = vertcat(Tau, diag(drvGains)*idntfcnTrjctry.i_fltrd(i,:)'); + Tau = vertcat(Tau, idntfcnTrjctry.tau(:,i)); + elseif opt.isSixAxisFTSensor + base_6AxisFT_regressor_func = sprintf('base_6AxisFT_regressor_%s',opt.robotName); + Yb = feval(base_6AxisFT_regressor_func, idntfcnTrjctry.q(:,i), ... + idntfcnTrjctry.qd(:,i),idntfcnTrjctry.qdd(:,i),baseQR); + joint_idex = robot.ndof-2; + Yb = Yb(6*(joint_idex-1)+1:6*(joint_idex),:); + Wb = vertcat(Wb, Yb); + % Tau = vertcat(Tau, diag(drvGains)*idntfcnTrjctry.i_fltrd(i,:)'); + Tau = vertcat(Tau, idntfcnTrjctry.tau(:,i)); + end + end + end + + + function [pib_OLS, pifrctn_OLS] = ordinaryLeastSquareEstimation(Tau, Wb) + % Function perfroms ordinary least squares estimation of parameters +% pi_OLS = (Wb'*Wb)\(Wb'*Tau); +% pib_OLS = pi_OLS(1:40); % variables for base paramters +% pifrctn_OLS = pi_OLS(41:end); + pib_OLS=pinv(Wb)*Tau; + pifrctn_OLS = 0; + end + function [pib_OLS, pifrctn_OLS] = MultiLeastSquareEstimation(idntfcnTrjctry, Tau, Wb) + % Function perfroms Multi step ordinary least squares estimation of parameters + + pib_OLS=pinv(Wb)*Tau; + pifrctn_OLS = 0; + end + function pib = physicallyConsistentEstimation(Tau, Wb) + % 求解线性规划问题 + options = optimoptions('lsqlin','Algorithm','trust-region-reflective','Display','iter'); + pib = lsqlin(Wb,Tau,[],[],[],[],-2*ones(5,1),2*ones(5,1),[0.9151,0.0092,0.0002,-0.0644,0.1067]',options) + end +end \ No newline at end of file diff --git a/get_Kinematics_EVT.m b/get_Kinematics_EVT.m new file mode 100644 index 0000000..f271c25 --- /dev/null +++ b/get_Kinematics_EVT.m @@ -0,0 +1,73 @@ +function robot = get_Kinematics(robot, opt) +if(opt.Isreal) + switch opt.KM_method + case 'SCREW' + % Get transformation for each joint + thetalist = robot.theta; + Slist = robot.slist; + % TODO:move to lib + for j = 1:length(thetalist) + T=robot.Home.M(:,:,j); + for i = j: -1: 1 + T = MatrixExp6(VecTose3(Slist(:, i) * thetalist(i))) * T; + end + robot.kine.TW(:,:,j) = T; + end + for i = 1:length(thetalist) + if i == 1 + robot.kine.T(:,:,i) = robot.kine.TW(:,:,i); + else + robot.kine.T(:,:,i) = TransInv(robot.kine.TW(:,:,i-1))*robot.kine.TW(:,:,i); + end + end + %stack result into kine structure + robot.kine.R = robot.kine.T(1:3,1:3,:); + robot.kine.t = robot.kine.T(1:3,4,:); + robot.kine.Fkine = robot.kine.TW(:,:,end); + % get the CG at the world base frame + % FIXME: Fix this hack + ct=zeros(3,robot.ndof); + Mlist_CG_Base=zeros(4,4,10); + com_pos_R1 = robot.com_pos_R1; + com_pos_R2 = robot.com_pos_R2; + for i = 1:length(thetalist) + if i == 1 + ct(:,i) = com_pos_R1(:,i); +% elseif i< 9 + else + ct(:,i) = ct(:,i-1)-com_pos_R2(:,i-1)+com_pos_R1(:,i); +% else +% % HACK +% ct(:,i) = ct(:,i-1)-com_pos_R1(:,i-1)-[0;0;0.05896]+com_pos_R1(:,i); + end + robot.Home.com(:,i) = ct(:,i); + M_CG_Base = RpToTrans(robot.Home.R(:,:,i),robot.Home.com(:,i)); + Mlist_CG_Base(:,:,i) = M_CG_Base; + end + robot.kine.Mlist_CG_Base = Mlist_CG_Base; + % get the CG at the last GC frame + Mlist_CG = zeros(4,4,9); + for i = 1:length(thetalist) + if i == 1 + Mlist_CG(:,:,i) = Mlist_CG_Base(:,:,i); + else + Mlist_CG(:,:,i) = TransInv(Mlist_CG_Base(:,:,i-1))*Mlist_CG_Base(:,:,i); + end + end + M = [[1, 0, 0, 0]; [0, 1, 0, 0]; [0, 0, 1, 0]; [0, 0, 0, 1]]; + Mlist_CG = cat(3, Mlist_CG, M); + robot.kine.Mlist_CG = Mlist_CG; + + % Get the end efforce transformation in each joint reference frame + Mlist_ED = zeros(4,4,9); + for i = 1:length(thetalist) + Mlist_ED(:,:,i) = robot.kine.T(:,:,i); + end + M = [[1, 0, 0, 0]; [0, 1, 0, 0]; [0, 0, 1, 0]; [0, 0, 0, 1]]; + Mlist_ED = cat(3, Mlist_ED, M); + robot.kine.Mlist_ED = Mlist_ED; + otherwise + disp('Bad opt.KM_method!') + return; + end +end \ No newline at end of file diff --git a/get_robot_R1000_EVT.m b/get_robot_R1000_EVT.m new file mode 100644 index 0000000..f742f9c --- /dev/null +++ b/get_robot_R1000_EVT.m @@ -0,0 +1,178 @@ +function robot = get_robot_R1000_EVT(theta,dtheta,ddtheta,file,opt) +switch opt.robot_def + case 'direct' + ndof = 9; + robot = struct; + robot.ndof = ndof; + % ------------------------------------------------------------------------ + % Structure define + % ------------------------------------------------------------------------ + robot.m = zeros(1,9); + robot.I = zeros(3,3,9); + robot.com = zeros(3,9); + robot.axis = zeros(3,9); + robot.com_pos_R1 = zeros(3,9); + robot.com_pos_R2 = zeros(3,9); + robot.slist = zeros(6,9); + robot.theta = zeros(9,1); + robot.dtheta = zeros([9,1]); + robot.ddtheta = zeros([9,1]); + robot.Home.com = zeros(3,9); + robot.Home.R = zeros(3,3,9); + robot.Home.P = zeros(3,9); + robot.Home.M = zeros(4,4,9); + robot.kine.TW = zeros(4,4,9); + robot.kine.Fkine = zeros(4,4); + robot.kine.T = zeros(4,4,9); + robot.kine.R = zeros(3,3,9); + robot.kine.t = zeros(3,1,9); + robot.kine.Mlist_CG_Base = zeros(4,4,10); + robot.kine.Mlist_CG = zeros(4,4,10); + robot.kine.Mlist_ED = zeros(4,4,10); + robot.gravity = zeros(3,1); + % ------------------------------------------------------------------------ + % Dynamics parameters + % ------------------------------------------------------------------------ + link_mass = [2.1315260e+01,1.9235354e+01,1.0463871e+01,6.1538806,3.0882893,2.4450941,3.6376589,1.7005420,9.1507819e-1]; + % DVT +% link_mass = [17.42,7.7,2.42,5.19,2.22,1.8,2.31,1.73,1.2]; + axis_of_rot = zeros(3,robot.ndof); + axis_of_rot(:,1) = [0;0;1]; + axis_of_rot(:,2) = [0;-1;0]; + axis_of_rot(:,3) = [0;-1;0]; + axis_of_rot(:,4) = [0;-1;0]; + axis_of_rot(:,5) = [0;0;1]; + axis_of_rot(:,6) = [1;0;0]; + axis_of_rot(:,7) = [0;0;-1]; + axis_of_rot(:,8) = [0;-1;0]; + axis_of_rot(:,9) = [0;0;0]; + + com_pos_R1 = zeros(3,robot.ndof); + com_pos_R2= zeros(3,robot.ndof); + + com_pos_R1(:,1)=[ 1.0440117e+02 -1.1125559e+01 1.2822933e+02]'*1e-3; + com_pos_R2(:,1)=[-8.0598830e+01 -4.2225559e+01 -1.5870672e+01]'*1e-3; + com_pos_R1(:,2)=[ 3.5562148e+02 1.2378198e+01 1.8395830e-03]'*1e-3; + com_pos_R2(:,2)=[-2.4437852e+02 9.4778198e+01 1.8395830e-03]'*1e-3; + com_pos_R1(:,3)=[2.4798242e+02 -3.5267916e+01 4.8648267e-02]'*1e-3; + com_pos_R2(:,3)=[-3.5201758e+02 -2.9007916e+01 4.8648266e-02]'*1e-3; + com_pos_R1(:,4)=[ 4.2341069e+01 5.2603527e+01 1.2271365e+01]'*1e-3; + com_pos_R2(:,4)=[-7.7658931e+01 -1.2956223e+01 1.9271365e+01]'*1e-3; + com_pos_R1(:,5)=[1.0177553e+02 -3.4868152e-02 1.5686100e+00]'*1e-3; + com_pos_R2(:,5)=[-1.0372447e+02 -3.9239008e-02 -5.4313602e+00]'*1e-3; + com_pos_R1(:,6)=[5.9942347e+01 -4.8346177e-02 5.5784018e+00]'*1e-3; + com_pos_R2(:,6)=[-2.3757653e+01 -4.8346177e-02 4.0028402e+01]'*1e-3; + com_pos_R1(:,7)=[4.9494392e-02 -2.4240394e+00 -1.0332489e+02]'*1e-3; + com_pos_R2(:,7)=[4.9494392e-02 -2.4240394e+00 2.7222511e+02]'*1e-3; + com_pos_R1(:,8)=[-2.7158498e+01 -3.3865875e-01 -4.6588829e+01]'*1e-3; + com_pos_R2(:,8)=[ 2.2423433e+02 -3.3865729e-01 1.9671171e+01]'*1e-3; % don't use + com_pos_R1(:,9)=[-1.9853197e+01 1.9076829e-01 -3.0075564e+01]'*1e-3; + % stack result + robot.com_pos_R1 = com_pos_R1; + robot.com_pos_R2 = com_pos_R2; + % FIXME:fix this hack + % Get 3D coordinate of CO + co=zeros(3,robot.ndof-1); + for i = 1:robot.ndof-1 + if i == 1 + co(:,i) = com_pos_R1(:,i)-com_pos_R2(:,i); + else + %From base to ISA Origin + co(:,i) = co(:,i-1)+com_pos_R1(:,i)-com_pos_R2(:,i); +% else +% %From base to ISA Origin +% co(:,i) = co(:,i-1)-[0;0;0.05896]; + end + end + co = [zeros(3,1),co]; + % the inertia tensor wrt the frame oriented as the body frame and with the + % origin in the COM + link_inertia = zeros(3,3,robot.ndof); + link_inertia(:,:,1) = [[1.1212091e+05 -1.1694021e+04 -4.7186593e+04];... + [-1.1694021e+04 2.3289532e+05 -3.0395414e+02];... + [-4.7186593e+04 -3.0395414e+02 2.0033875e+05]]*10^-6; + link_inertia(:,:,2) = [[3.7926328e+04 -9.0569033e+01 4.7526575e+04];... + [-9.0569033e+01 2.9714754e+05 6.8396715e+00];... + [4.7526575e+04 6.8396715e+00 2.8138392e+05]]*10^-6; + link_inertia(:,:,3) = [[4.4513887e+03 1.9981964e-01 -3.0303891e+02];... + [1.9981964e-01 6.7952039e+04 -8.8585864e-02];... + [-3.0303891e+02 -8.8585864e-02 6.9958344e+04]]*10^-6; + link_inertia(:,:,4) = [[1.1642351e+04 2.2997175e+03 2.9159431e+03];... + [2.2997175e+03 2.6031269e+04 -1.3518384e+02];... + [2.9159431e+03 -1.3518384e+02 2.4694742e+04]]*10^-6; + link_inertia(:,:,5) = [[3.0930544e+03 8.3558814e-01 -2.8169092e+03];... + [8.3558814e-01 1.2796446e+04 -3.3666469e+00];... + [-2.8169092e+03 -3.3666469e+00 1.2128856e+04]]*10^-6; + link_inertia(:,:,6) = [[3.6635776e+03 -7.0081461e+00 2.2392870e+00];... + [-7.0081461e+00 1.8152305e+03 -2.4828765e+02];... + [2.2392870e+00 -2.4828765e+02 3.4602935e+03]]*10^-6; + link_inertia(:,:,7) = [[1.3662652e+04 -3.6340953e+00 4.4011670e-01];... + [-3.6340953e+00 1.3222824e+04 -4.3625500e+02];... + [ 4.4011670e-01 -4.3625500e+02 2.2500397e+03]]*10^-6; + link_inertia(:,:,8) = [[1.5162872e+03 -4.6245133e+01 4.4556929e+03];... + [-4.6245133e+01 5.9901606e+04 6.0350548e+0];... + [4.4556929e+03 6.0350548e+0 5.8819998e+04]]*10^-6; + link_inertia(:,:,9) = [[1.1730106e+03 3.3834506e+0 4.6097678e+01];... + [3.3834506e+0 1.7996852e+03 5.2088778e+0];... + [4.6097678e+01 5.2088778e+0 1.3960734e+03]]*10^-6; + % manipulator regressor + com_pos = com_pos_R1; + for i = 1:ndof + robot.m(i) = link_mass(i); + robot.axis(:,i) = axis_of_rot(i); + robot.com(:,i) = com_pos(:,i); + robot.I(:,:,i) = link_inertia(:,:,i); + robot.mc(:,i) = link_mass(i)*com_pos(:,i); + % the inertia tensor wrt the frame oriented as the body frame and with the + % origin in the Joint i + com_vec2mat = vec2skewSymMat(com_pos(:,i)); + robot.I_vec(:,i) = inertiaMatrix2Vector(link_inertia(:,:,i)-... + link_mass(i)*com_vec2mat*com_vec2mat); + robot.pi(:,i) = [robot.m(i);robot.mc(:,i);robot.I_vec(:,i)]; + end + robot.motorConst = [0.405, 0.405, 0.167, 0.126,0.073,0.151,0.083,0.073,0.03185]; + % ------------------------------------------------------------------------ + % Kinematics parameters + % ------------------------------------------------------------------------ + if(opt.Isreal) + robot.theta = theta; + robot.dtheta = dtheta; + robot.ddtheta = ddtheta; + robot.link_type = ['R','R','R','R','R','R','R','R','P']; + switch opt.KM_method + case 'SCREW' + robot.Home.R(:,:,1) = [[1;0;0],[0;1;0],[0;0;1]]; + robot.Home.R(:,:,2) = [[1;0;0],[0;0;1],[0;-1;0]]; + robot.Home.R(:,:,3) = [[1;0;0],[0;0;1],[0;-1;0]]; + robot.Home.R(:,:,4) = [[1;0;0],[0;0;1],[0;-1;0]]; + robot.Home.R(:,:,5) = [[0;-1;0],[1;0;0],[0;0;1]]; + robot.Home.R(:,:,6) = [[0;-1;0],[0;0;-1],[1;0;0]]; + robot.Home.R(:,:,7) = [[1;0;0],[0;-1;0],[0;0;-1]]; + robot.Home.R(:,:,8) = [[0;0;-1],[1;0;0],[0;-1;0]]; + robot.Home.R(:,:,9) = [[0;0;-1],[0;1;0],[1;0;0]]; + for i=1:9 + robot.Home.P(:,i) = co(:,i); + robot.Home.M(:,:,i) = RpToTrans(robot.Home.R(:,:,i),robot.Home.P(:,i)); + end + robot.slist=[[0;0;1;co(:,1)],... + [0;-1;0;cross(-[0;-1;0],co(:,2))]... + [0;-1;0;cross(-[0;-1;0],co(:,3))]... + [0;-1;0;cross(-[0;-1;0],co(:,4))]... + [0;0;1;cross(-[0;0;1],co(:,5))]... + [1;0;0;cross(-[1;0;0],co(:,6))]... + [0;0;-1;cross(-[0;0;-1],co(:,7))]... + [0;-1;0;cross(-[0;-1;0],co(:,8))]... + [0;0;0;1;0;0]]; + otherwise + disp('Bad opt.KM_method!') + return; + end + end + otherwise + robot = []; + disp('Bad robot define options!') + return +end +%Gravity +gravity = [0;0;-9.806]; +robot.gravity = gravity; \ No newline at end of file diff --git a/identification_problem.mat b/identification_problem.mat new file mode 100644 index 0000000000000000000000000000000000000000..04eca9bc480f296b0b2deaeee80a5f801191a405 GIT binary patch literal 70140 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 literal 0 HcmV?d00001 diff --git a/readDataFile.m b/readDataFile.m new file mode 100644 index 0000000..6589133 --- /dev/null +++ b/readDataFile.m @@ -0,0 +1,6 @@ +% function = readDataFile() +folder = 'C:\GitLab\Robotics\Identification\IRDYN\simpack_data\data\'; +posInfoFile = 'GC_cali.csv'; +currentInfoFile = 'GC_cur.csv'; +posData = readmatrix([folder posInfoFile]); +currentData = readmatrix([folder currentInfoFile]); \ No newline at end of file