AXY:Basics of joint parameters identification
Model based control can bring great benefit to robot control, but it requires exact model parameters. This document describes how these parameters can be identified (automatically).
Contents
Record identification motion profile
The motion profile should provoke all motion states described by the model. Ideally it should move over the whole position range of the joint, have plenty accelerations/decelerations and have different constant velocity phases.
The recorded file must contain the position feedback along with the torque feedback.
Derivative without phase shift
For parameter identification joint velocity and acceleration is needed. Standard numeric derivative of position feedback leads to phase shift, which impairs the identification. To avoid the phase shift interpolated derivative should be used instead. Hereby the numeric derivative is spline-interpolated and values at original sampling times are taken.
Interpolated derivative is implemented in aico.motionAnalyser by the function signal_deriveInterp.
Mathematical derivation
In a simple case an actuating joint can be described with the following motion equation:
Here the symbols are:
Torque (feedback) Velocity and acceleration (feedback) Moment of inertia Viscous friction coefficient Coulomb friction coefficient
It is assumed that the joints position, velocity and acceleration feedbacks together with the torque feedback are known (recorded). The unknown model parameters are , and .
The recorded value tuples can be represented as a over-determined linear equation system:
These n equations can also be written as a single matrix equation:
One solution of this system of equations can be obtained by using the pseudoinverse of .
- Failed to parse (unknown function "\ritht"): {\displaystyle \mathbf{p} = \left ( \mathbf{X}^T \cdot \mathbf{X} \ritht )^{-1} \cdot \mathbf{X}^T \cdot \boldsymbol{\tau} \qquad \mathrm{(3)} }
HowTo identify joint parameters
- Use AF function IDM_IdentParamsJoint to move an identification profile and create a record.
- Process the obtained record with the aico.motionAnalyser function joint_identDynamics.
Verification
See verification page.