├── generate_trajectory ├── COND.m ├── Compute_Amatrix.m ├── Compute_Bmatrix.m ├── Compute_Dynmatrix.m ├── Excitation_Trajectory.m ├── Newtown_InverseDynamics.m └── mycon.m ├── identify ├── cacluate_K.m ├── calculateS.m ├── calculteBB.m ├── calculteBigK.m ├── calculteBp.m ├── calculteCC.m ├── calculteGandM.m ├── compute_frame_transform.m ├── identificationOf6Dof.m ├── mergeBandC.m ├── myPlot.m ├── newton_euler_dynamic.m ├── plotWithIdenData.m ├── plotverify.m ├── qrLeast.m ├── readMe.txt ├── sym_MBCG.mat └── tauAndTauIden.mat └── readMe.txt /generate_trajectory/COND.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lsk-gith/robot_dynamic_identify/0793659682a7bbbda4c64b1afa002a186de35687/generate_trajectory/COND.m -------------------------------------------------------------------------------- /generate_trajectory/Compute_Amatrix.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lsk-gith/robot_dynamic_identify/0793659682a7bbbda4c64b1afa002a186de35687/generate_trajectory/Compute_Amatrix.m -------------------------------------------------------------------------------- /generate_trajectory/Compute_Bmatrix.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lsk-gith/robot_dynamic_identify/0793659682a7bbbda4c64b1afa002a186de35687/generate_trajectory/Compute_Bmatrix.m -------------------------------------------------------------------------------- /generate_trajectory/Compute_Dynmatrix.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lsk-gith/robot_dynamic_identify/0793659682a7bbbda4c64b1afa002a186de35687/generate_trajectory/Compute_Dynmatrix.m -------------------------------------------------------------------------------- /generate_trajectory/Excitation_Trajectory.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lsk-gith/robot_dynamic_identify/0793659682a7bbbda4c64b1afa002a186de35687/generate_trajectory/Excitation_Trajectory.m -------------------------------------------------------------------------------- /generate_trajectory/Newtown_InverseDynamics.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lsk-gith/robot_dynamic_identify/0793659682a7bbbda4c64b1afa002a186de35687/generate_trajectory/Newtown_InverseDynamics.m -------------------------------------------------------------------------------- /generate_trajectory/mycon.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lsk-gith/robot_dynamic_identify/0793659682a7bbbda4c64b1afa002a186de35687/generate_trajectory/mycon.m -------------------------------------------------------------------------------- /identify/cacluate_K.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lsk-gith/robot_dynamic_identify/0793659682a7bbbda4c64b1afa002a186de35687/identify/cacluate_K.m -------------------------------------------------------------------------------- /identify/calculateS.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lsk-gith/robot_dynamic_identify/0793659682a7bbbda4c64b1afa002a186de35687/identify/calculateS.m -------------------------------------------------------------------------------- /identify/calculteBB.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lsk-gith/robot_dynamic_identify/0793659682a7bbbda4c64b1afa002a186de35687/identify/calculteBB.m -------------------------------------------------------------------------------- /identify/calculteBigK.m: -------------------------------------------------------------------------------- 1 | function [KK,FF] = calculteBigK(dh,q,dq,ddq) 2 | KK = []; 3 | FF=[]; 4 | for i=1:size(q,2) 5 | [R,P] = compute_frame_transform(dh,q(:,i)); 6 | [w,dw,dv] = newton_euler_dynamic(dh,q(:,i), dq(:,i), ddq(:,i)); 7 | [K,F]= cacluate_K(dh,w,dw,dv,R,P,q(:,i),dq(:,i), ddq(:,i)); 8 | FF = [FF;F]; 9 | KK = [KK;K]; 10 | end 11 | end -------------------------------------------------------------------------------- /identify/calculteBp.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lsk-gith/robot_dynamic_identify/0793659682a7bbbda4c64b1afa002a186de35687/identify/calculteBp.m -------------------------------------------------------------------------------- /identify/calculteCC.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lsk-gith/robot_dynamic_identify/0793659682a7bbbda4c64b1afa002a186de35687/identify/calculteCC.m -------------------------------------------------------------------------------- /identify/calculteGandM.m: -------------------------------------------------------------------------------- 1 | function [G,M]=calculteGandM(dh,BP,op2,P) 2 | q = sym('q',[6,1]); 3 | assume(q,'real'); 4 | % dq = sym('dq',[6,1]); 5 | % assume(dq,'real'); 6 | % ddq = sym('ddq',[6,1]); 7 | % assume(ddq,'real'); 8 | dq=[0,0,0,0,0,0]'; 9 | ddq=[0,0,0,0,0,0]'; 10 | Bp = sym('Bp',[size(BP,1)-12,1]); 11 | assume(Bp,'real'); 12 | K = calculteBigK(dh,q,dq,ddq); 13 | kk = []; 14 | for i = 1:size(op2,2) 15 | kk = [kk,K(:,op2(i))]; 16 | end 17 | G = kk * P * Bp;%6X1 18 | for i=1:6 19 | ddq(i)=1; 20 | K = calculteBigK(dh,q,dq,ddq); 21 | kk = []; 22 | for ii = 1:size(op2,2) 23 | kk = [kk,K(:,op2(ii))]; 24 | end 25 | MG= kk * P * Bp;%6X1 26 | MG = MG - G; 27 | for j=1:6 28 | M(j,i)=MG(j); 29 | ddq(i)=0; 30 | end 31 | end 32 | end -------------------------------------------------------------------------------- /identify/compute_frame_transform.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lsk-gith/robot_dynamic_identify/0793659682a7bbbda4c64b1afa002a186de35687/identify/compute_frame_transform.m -------------------------------------------------------------------------------- /identify/identificationOf6Dof.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lsk-gith/robot_dynamic_identify/0793659682a7bbbda4c64b1afa002a186de35687/identify/identificationOf6Dof.m -------------------------------------------------------------------------------- /identify/mergeBandC.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lsk-gith/robot_dynamic_identify/0793659682a7bbbda4c64b1afa002a186de35687/identify/mergeBandC.m -------------------------------------------------------------------------------- /identify/myPlot.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lsk-gith/robot_dynamic_identify/0793659682a7bbbda4c64b1afa002a186de35687/identify/myPlot.m -------------------------------------------------------------------------------- /identify/newton_euler_dynamic.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lsk-gith/robot_dynamic_identify/0793659682a7bbbda4c64b1afa002a186de35687/identify/newton_euler_dynamic.m -------------------------------------------------------------------------------- /identify/plotWithIdenData.m: -------------------------------------------------------------------------------- 1 | load('tauAndTauIden.mat'); 2 | Fram = plotverify(tau,tauIden); 3 | S = calculateS(tau,tauIden); 4 | im1=frame2im(Fram); -------------------------------------------------------------------------------- /identify/plotverify.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lsk-gith/robot_dynamic_identify/0793659682a7bbbda4c64b1afa002a186de35687/identify/plotverify.m -------------------------------------------------------------------------------- /identify/qrLeast.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lsk-gith/robot_dynamic_identify/0793659682a7bbbda4c64b1afa002a186de35687/identify/qrLeast.m -------------------------------------------------------------------------------- /identify/readMe.txt: -------------------------------------------------------------------------------- 1 | excel表格文件组合值为:Angle Velocity Accelerate q, dq, ddq 2 | (1-6)(7-12)(13-18)(19-24)(25-30)(31-36) 3 | Current CurrentFilt Force ForceFilt 4 | (37-42)(43-48)(49-54)(55-60) 5 | 当然都是相同长度的数据, 6 | 以Accelerate长度为基准 7 | 数据比较大,没发上传 8 | 参考文档地址:https://www.jianshu.com/p/bc1153523024 9 | -------------------------------------------------------------------------------- /identify/sym_MBCG.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lsk-gith/robot_dynamic_identify/0793659682a7bbbda4c64b1afa002a186de35687/identify/sym_MBCG.mat -------------------------------------------------------------------------------- /identify/tauAndTauIden.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lsk-gith/robot_dynamic_identify/0793659682a7bbbda4c64b1afa002a186de35687/identify/tauAndTauIden.mat -------------------------------------------------------------------------------- /readMe.txt: -------------------------------------------------------------------------------- 1 | 文档地址:https://www.jianshu.com/p/986f389c83d1 --------------------------------------------------------------------------------