diff --git a/README.md b/README.md index 198ce1f..9c8628d 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ +<<<<<<< Updated upstream # Here inertial parameter identification of robotic systems is implemented. # Identification consistes of several steps: # -> finding base parameters @@ -5,3 +6,14 @@ # -> running the trajectory on real robot and recording obtained trajectories # -> offline data processing # -> parameter estimation +======= +# Dynamic calibration (dynamic parameter indentification) for rigid body manipulator +The code was developed in the framework of the human-robot interaction project at [Innopolis University](https://innopolis.university/en/). One of the outputs of the project was a paper -- [Practical Aspects of Model-Based Collision Detection](https://www.frontiersin.org/articles/10.3389/frobt.2020.571574/full), where we provide some review of the recent developments in the field of dynamic calibration, outline the steps required for dynamic parameter identification and provide many useful references. If you have questions from theoretical perspective, please check the paper first. If find paper and code useful, consider citing it in your own papers. + +The parameter identification prcedure can be divided into several steps: +## Finding regressor +Right now, there are two ways to find regressor matrix: +1. using screw algorithm (function *screw_regressor.m* or *screw_regressor2.m*) +2. using generated matrix function. The expression for the regressor is obtained symbolically using Euler-Lagrage equations, and then the function is generated from symbolic expression (script *ur_regressors_lgr.m*) +Keep in mind that two methods output different regressors, the reason for that is the way you structure the vector of standard parameters! +>>>>>>> Stashed changes diff --git a/data_ur10/collision/ur-20_01_22-push_pose_1.csv b/dataset_ur10e/collision/ur-20_01_22-push_pose_1.csv similarity index 100% rename from data_ur10/collision/ur-20_01_22-push_pose_1.csv rename to dataset_ur10e/collision/ur-20_01_22-push_pose_1.csv diff --git a/data_ur10/collision/ur-20_01_22-push_pose_2.csv b/dataset_ur10e/collision/ur-20_01_22-push_pose_2.csv similarity index 100% rename from data_ur10/collision/ur-20_01_22-push_pose_2.csv rename to dataset_ur10e/collision/ur-20_01_22-push_pose_2.csv diff --git a/data_ur10/identification_data/ur-19_09_27-11_28_22.csv b/dataset_ur10e/identification_data/ur-19_09_27-11_28_22.csv similarity index 100% rename from data_ur10/identification_data/ur-19_09_27-11_28_22.csv rename to dataset_ur10e/identification_data/ur-19_09_27-11_28_22.csv diff --git a/data_ur10/identification_data/ur-19_09_27-11_32_02.csv b/dataset_ur10e/identification_data/ur-19_09_27-11_32_02.csv similarity index 100% rename from data_ur10/identification_data/ur-19_09_27-11_32_02.csv rename to dataset_ur10e/identification_data/ur-19_09_27-11_32_02.csv diff --git a/data_ur10/identification_data/ur-19_09_27-15_11_06.csv b/dataset_ur10e/identification_data/ur-19_09_27-15_11_06.csv similarity index 100% rename from data_ur10/identification_data/ur-19_09_27-15_11_06.csv rename to dataset_ur10e/identification_data/ur-19_09_27-15_11_06.csv diff --git a/data_ur10/identification_data/ur-19_10_01-13_51_41.csv b/dataset_ur10e/identification_data/ur-19_10_01-13_51_41.csv similarity index 100% rename from data_ur10/identification_data/ur-19_10_01-13_51_41.csv rename to dataset_ur10e/identification_data/ur-19_10_01-13_51_41.csv diff --git a/data_ur10/identification_data/ur-19_10_01-14_04_13.csv b/dataset_ur10e/identification_data/ur-19_10_01-14_04_13.csv similarity index 100% rename from data_ur10/identification_data/ur-19_10_01-14_04_13.csv rename to dataset_ur10e/identification_data/ur-19_10_01-14_04_13.csv diff --git a/data_ur10/identification_data/ur-19_10_01-14_04_41.csv b/dataset_ur10e/identification_data/ur-19_10_01-14_04_41.csv similarity index 100% rename from data_ur10/identification_data/ur-19_10_01-14_04_41.csv rename to dataset_ur10e/identification_data/ur-19_10_01-14_04_41.csv diff --git a/data_ur10/identification_data/ur-19_12_23_free.csv b/dataset_ur10e/identification_data/ur-19_12_23_free.csv similarity index 100% rename from data_ur10/identification_data/ur-19_12_23_free.csv rename to dataset_ur10e/identification_data/ur-19_12_23_free.csv diff --git a/data_ur10/identification_data/ur-20_01_13-load_2600.csv b/dataset_ur10e/identification_data/ur-20_01_13-load_2600.csv similarity index 100% rename from data_ur10/identification_data/ur-20_01_13-load_2600.csv rename to dataset_ur10e/identification_data/ur-20_01_13-load_2600.csv diff --git a/data_ur10/identification_data/ur-20_01_31-load.csv b/dataset_ur10e/identification_data/ur-20_01_31-load.csv similarity index 100% rename from data_ur10/identification_data/ur-20_01_31-load.csv rename to dataset_ur10e/identification_data/ur-20_01_31-load.csv diff --git a/data_ur10/identification_data/ur-20_01_31-unload.csv b/dataset_ur10e/identification_data/ur-20_01_31-unload.csv similarity index 100% rename from data_ur10/identification_data/ur-20_01_31-unload.csv rename to dataset_ur10e/identification_data/ur-20_01_31-unload.csv diff --git a/data_ur10/identification_data/ur-20_02_05-20sec_12harm.csv b/dataset_ur10e/identification_data/ur-20_02_05-20sec_12harm.csv similarity index 100% rename from data_ur10/identification_data/ur-20_02_05-20sec_12harm.csv rename to dataset_ur10e/identification_data/ur-20_02_05-20sec_12harm.csv diff --git a/data_ur10/identification_data/ur-20_02_05-20sec_8harm.csv b/dataset_ur10e/identification_data/ur-20_02_05-20sec_8harm.csv similarity index 100% rename from data_ur10/identification_data/ur-20_02_05-20sec_8harm.csv rename to dataset_ur10e/identification_data/ur-20_02_05-20sec_8harm.csv diff --git a/data_ur10/identification_data/ur-20_02_06-20sec_10harm.csv b/dataset_ur10e/identification_data/ur-20_02_06-20sec_10harm.csv similarity index 100% rename from data_ur10/identification_data/ur-20_02_06-20sec_10harm.csv rename to dataset_ur10e/identification_data/ur-20_02_06-20sec_10harm.csv diff --git a/data_ur10/identification_data/ur-20_02_06-20sec_5harm.csv b/dataset_ur10e/identification_data/ur-20_02_06-20sec_5harm.csv similarity index 100% rename from data_ur10/identification_data/ur-20_02_06-20sec_5harm.csv rename to dataset_ur10e/identification_data/ur-20_02_06-20sec_5harm.csv diff --git a/data_ur10/identification_data/ur-20_02_10-20sec_7harm.csv b/dataset_ur10e/identification_data/ur-20_02_10-20sec_7harm.csv similarity index 100% rename from data_ur10/identification_data/ur-20_02_10-20sec_7harm.csv rename to dataset_ur10e/identification_data/ur-20_02_10-20sec_7harm.csv diff --git a/data_ur10/identification_data/ur-20_02_10-30sec_12harm.csv b/dataset_ur10e/identification_data/ur-20_02_10-30sec_12harm.csv similarity index 100% rename from data_ur10/identification_data/ur-20_02_10-30sec_12harm.csv rename to dataset_ur10e/identification_data/ur-20_02_10-30sec_12harm.csv diff --git a/data_ur10/identification_data/ur-20_02_12-40sec_12harm.csv b/dataset_ur10e/identification_data/ur-20_02_12-40sec_12harm.csv similarity index 100% rename from data_ur10/identification_data/ur-20_02_12-40sec_12harm.csv rename to dataset_ur10e/identification_data/ur-20_02_12-40sec_12harm.csv diff --git a/data_ur10/identification_data/ur-20_02_12-50sec_12harm.csv b/dataset_ur10e/identification_data/ur-20_02_12-50sec_12harm.csv similarity index 100% rename from data_ur10/identification_data/ur-20_02_12-50sec_12harm.csv rename to dataset_ur10e/identification_data/ur-20_02_12-50sec_12harm.csv diff --git a/data_ur10/identification_data/ur-20_02_19_14harm50sec.csv b/dataset_ur10e/identification_data/ur-20_02_19_14harm50sec.csv similarity index 100% rename from data_ur10/identification_data/ur-20_02_19_14harm50sec.csv rename to dataset_ur10e/identification_data/ur-20_02_19_14harm50sec.csv diff --git a/data_ur10/identification_data/ur-20_02_19_14harm50secLoad.csv b/dataset_ur10e/identification_data/ur-20_02_19_14harm50secLoad.csv similarity index 100% rename from data_ur10/identification_data/ur-20_02_19_14harm50secLoad.csv rename to dataset_ur10e/identification_data/ur-20_02_19_14harm50secLoad.csv diff --git a/data_ur10/identification_data/ur-20_02_19_15harm50sec.csv b/dataset_ur10e/identification_data/ur-20_02_19_15harm50sec.csv similarity index 100% rename from data_ur10/identification_data/ur-20_02_19_15harm50sec.csv rename to dataset_ur10e/identification_data/ur-20_02_19_15harm50sec.csv diff --git a/data_ur10/identification_data/ur-20_02_19_15harm50secLoad.csv b/dataset_ur10e/identification_data/ur-20_02_19_15harm50secLoad.csv similarity index 100% rename from data_ur10/identification_data/ur-20_02_19_15harm50secLoad.csv rename to dataset_ur10e/identification_data/ur-20_02_19_15harm50secLoad.csv diff --git a/data_ur10/jointwise_motion/ur-20_01_22-joint_1.csv b/dataset_ur10e/jointwise_motion/ur-20_01_22-joint_1.csv similarity index 100% rename from data_ur10/jointwise_motion/ur-20_01_22-joint_1.csv rename to dataset_ur10e/jointwise_motion/ur-20_01_22-joint_1.csv diff --git a/data_ur10/jointwise_motion/ur-20_01_22-joint_2.csv b/dataset_ur10e/jointwise_motion/ur-20_01_22-joint_2.csv similarity index 100% rename from data_ur10/jointwise_motion/ur-20_01_22-joint_2.csv rename to dataset_ur10e/jointwise_motion/ur-20_01_22-joint_2.csv diff --git a/data_ur10/jointwise_motion/ur-20_01_22-joint_3.csv b/dataset_ur10e/jointwise_motion/ur-20_01_22-joint_3.csv similarity index 100% rename from data_ur10/jointwise_motion/ur-20_01_22-joint_3.csv rename to dataset_ur10e/jointwise_motion/ur-20_01_22-joint_3.csv diff --git a/data_ur10/jointwise_motion/ur-20_01_22-joint_4.csv b/dataset_ur10e/jointwise_motion/ur-20_01_22-joint_4.csv similarity index 100% rename from data_ur10/jointwise_motion/ur-20_01_22-joint_4.csv rename to dataset_ur10e/jointwise_motion/ur-20_01_22-joint_4.csv diff --git a/data_ur10/jointwise_motion/ur-20_01_22-joint_5.csv b/dataset_ur10e/jointwise_motion/ur-20_01_22-joint_5.csv similarity index 100% rename from data_ur10/jointwise_motion/ur-20_01_22-joint_5.csv rename to dataset_ur10e/jointwise_motion/ur-20_01_22-joint_5.csv diff --git a/data_ur10/jointwise_motion/ur-20_01_22-joint_6.csv b/dataset_ur10e/jointwise_motion/ur-20_01_22-joint_6.csv similarity index 100% rename from data_ur10/jointwise_motion/ur-20_01_22-joint_6.csv rename to dataset_ur10e/jointwise_motion/ur-20_01_22-joint_6.csv diff --git a/data_ur10/validation_data/ur-20_01_17-p1.csv b/dataset_ur10e/validation_data/ur-20_01_17-p1.csv similarity index 100% rename from data_ur10/validation_data/ur-20_01_17-p1.csv rename to dataset_ur10e/validation_data/ur-20_01_17-p1.csv diff --git a/data_ur10/validation_data/ur-20_01_17-p10.csv b/dataset_ur10e/validation_data/ur-20_01_17-p10.csv similarity index 100% rename from data_ur10/validation_data/ur-20_01_17-p10.csv rename to dataset_ur10e/validation_data/ur-20_01_17-p10.csv diff --git a/data_ur10/validation_data/ur-20_01_17-p2.csv b/dataset_ur10e/validation_data/ur-20_01_17-p2.csv similarity index 100% rename from data_ur10/validation_data/ur-20_01_17-p2.csv rename to dataset_ur10e/validation_data/ur-20_01_17-p2.csv diff --git a/data_ur10/validation_data/ur-20_01_17-p3.csv b/dataset_ur10e/validation_data/ur-20_01_17-p3.csv similarity index 100% rename from data_ur10/validation_data/ur-20_01_17-p3.csv rename to dataset_ur10e/validation_data/ur-20_01_17-p3.csv diff --git a/data_ur10/validation_data/ur-20_01_17-p4.csv b/dataset_ur10e/validation_data/ur-20_01_17-p4.csv similarity index 100% rename from data_ur10/validation_data/ur-20_01_17-p4.csv rename to dataset_ur10e/validation_data/ur-20_01_17-p4.csv diff --git a/data_ur10/validation_data/ur-20_01_17-p5.csv b/dataset_ur10e/validation_data/ur-20_01_17-p5.csv similarity index 100% rename from data_ur10/validation_data/ur-20_01_17-p5.csv rename to dataset_ur10e/validation_data/ur-20_01_17-p5.csv diff --git a/data_ur10/validation_data/ur-20_01_17-p6.csv b/dataset_ur10e/validation_data/ur-20_01_17-p6.csv similarity index 100% rename from data_ur10/validation_data/ur-20_01_17-p6.csv rename to dataset_ur10e/validation_data/ur-20_01_17-p6.csv diff --git a/data_ur10/validation_data/ur-20_01_17-p7.csv b/dataset_ur10e/validation_data/ur-20_01_17-p7.csv similarity index 100% rename from data_ur10/validation_data/ur-20_01_17-p7.csv rename to dataset_ur10e/validation_data/ur-20_01_17-p7.csv diff --git a/data_ur10/validation_data/ur-20_01_17-p8.csv b/dataset_ur10e/validation_data/ur-20_01_17-p8.csv similarity index 100% rename from data_ur10/validation_data/ur-20_01_17-p8.csv rename to dataset_ur10e/validation_data/ur-20_01_17-p8.csv diff --git a/data_ur10/validation_data/ur-20_01_17-p9.csv b/dataset_ur10e/validation_data/ur-20_01_17-p9.csv similarity index 100% rename from data_ur10/validation_data/ur-20_01_17-p9.csv rename to dataset_ur10e/validation_data/ur-20_01_17-p9.csv diff --git a/data_ur10/validation_data/ur-20_01_17-ptp_10_points.csv b/dataset_ur10e/validation_data/ur-20_01_17-ptp_10_points.csv similarity index 100% rename from data_ur10/validation_data/ur-20_01_17-ptp_10_points.csv rename to dataset_ur10e/validation_data/ur-20_01_17-ptp_10_points.csv diff --git a/data_ur10/validation_data/vldtnTrjctrySttcs.mat b/dataset_ur10e/validation_data/vldtnTrjctrySttcs.mat similarity index 100% rename from data_ur10/validation_data/vldtnTrjctrySttcs.mat rename to dataset_ur10e/validation_data/vldtnTrjctrySttcs.mat diff --git a/ur_knmtcs.m b/ur_knmtcs.m deleted file mode 100644 index 26c7e10..0000000 --- a/ur_knmtcs.m +++ /dev/null @@ -1,93 +0,0 @@ -% Get robot description -run('main_ur.m') - -%{ -q_sym = sym('q%d',[6,1], 'real'); - -T_pk = sym(zeros(4,4,6)); % transformation between links -T_0k = sym(zeros(4,4,7)); T_0k(:,:,1) = sym(eye(4)); - -for i = 1:6 - jnt_axs_k = str2num(ur10.robot.joint{i}.axis.Attributes.xyz)'; -% Transformation from parent link frame p to current joint frame - rpy_k = sym(str2num(ur10.robot.joint{i}.origin.Attributes.rpy)); - R_pj = RPY(rpy_k); - R_pj(abs(R_pj)