Go to file
shamil 75b04d4203 modifying readme 2021-04-10 10:32:51 +03:00
URe the last version of the project 2019-12-18 14:25:45 +03:00
autogen optimal code was generated for system matrices, then they were compiled into C code to be used in observer design. Some conclusions about drive gains and identification trajectories were made 2020-03-26 14:03:47 +03:00
basic_param the last version of the project 2019-12-18 14:25:45 +03:00
dataset_ur10e modifying readme 2021-04-10 10:32:51 +03:00
functions indeitification of UR is changed and writeen in terms of functions in order to ease comparison of different data and drive gains. Pendubot indentification is changed to include validation with parameters from CAD 2020-02-07 15:07:15 +03:00
planar2DOF new trajectories for indentification. Ellipsoid constraint on the center of mass for pendubot 2020-02-21 10:57:10 +03:00
screw_algthms the last version of the project 2019-12-18 14:25:45 +03:00
trajectory_optmzn system matrices is generated in symbolic form as a function of standard rigid body parameters. Folder are slightly restructured 2020-03-06 15:55:03 +03:00
utils the last version of the project 2019-12-18 14:25:45 +03:00
README.md modifying readme 2021-04-10 10:32:51 +03:00
baseQR.mat Objectve function as well as constraint fucntion for trajectory optimization slightly changed. Now the structure of the robot is not an input argument. Moreover, objective function can work with QR decomposition based base parameters. 2019-12-19 13:31:18 +03:00
driveGains.mat optimal code was generated for system matrices, then they were compiled into C code to be used in observer design. Some conclusions about drive gains and identification trajectories were made 2020-03-26 14:03:47 +03:00
main_ur.m optimal code was generated for system matrices, then they were compiled into C code to be used in observer design. Some conclusions about drive gains and identification trajectories were made 2020-03-26 14:03:47 +03:00
temp_ellipsoid_constraints.m new trajectories for indentification. Ellipsoid constraint on the center of mass for pendubot 2020-02-21 10:57:10 +03:00
ur10_idntfcn_smltn.m identifiation of nonlinear friction model to better fit model. In indentification of inertial parameters physical consistency is added. Identification of drive paramteres is moved to seperate file 2020-01-16 10:48:37 +03:00
ur_base_params_QRlgr.m added file that check if optimized trajectory collides with table on which the robot is fixed. Moreover kinematics of UR is derived is analytical form, so it can be used in trajectory optimization in order to stay away from table, however is considerably slows down the optimization. Even on sever with 40 cpus patter search computes it for hours. Moreover, added files for identification of the pendubot. 2020-02-05 07:55:09 +03:00
ur_base_params_QRscrw.m the last version of the project 2019-12-18 14:25:45 +03:00
ur_base_params_sym.m experiment design is changed as to have two options for optimization algorithms - pattern search and genetic algorithm. Generation of full regressor and well as load regressor are put into seperate file 2019-12-19 09:48:18 +03:00
ur_exprmt_dsgn.m system matrices is generated in symbolic form as a function of standard rigid body parameters. Folder are slightly restructured 2020-03-06 15:55:03 +03:00
ur_idntfcn_drvgns.m optimal code was generated for system matrices, then they were compiled into C code to be used in observer design. Some conclusions about drive gains and identification trajectories were made 2020-03-26 14:03:47 +03:00
ur_idntfcn_frcn.m added file that check if optimized trajectory collides with table on which the robot is fixed. Moreover kinematics of UR is derived is analytical form, so it can be used in trajectory optimization in order to stay away from table, however is considerably slows down the optimization. Even on sever with 40 cpus patter search computes it for hours. Moreover, added files for identification of the pendubot. 2020-02-05 07:55:09 +03:00
ur_idntfcn_real.m optimal code was generated for system matrices, then they were compiled into C code to be used in observer design. Some conclusions about drive gains and identification trajectories were made 2020-03-26 14:03:47 +03:00
ur_regressors_lgr.m optimal code was generated for system matrices, then they were compiled into C code to be used in observer design. Some conclusions about drive gains and identification trajectories were made 2020-03-26 14:03:47 +03:00
ur_vldtn.m optimal code was generated for system matrices, then they were compiled into C code to be used in observer design. Some conclusions about drive gains and identification trajectories were made 2020-03-26 14:03:47 +03:00

README.md

<<<<<<< Updated upstream

Here inertial parameter identification of robotic systems is implemented.

Identification consistes of several steps:

-> finding base parameters

-> trajectory optimization

-> 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. One of the outputs of the project was a paper -- Practical Aspects of Model-Based Collision Detection, 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