Benutzer-Werkzeuge

Webseiten-Werkzeuge


modellingcomponents:elements:robotics

DH

Determines a list of Denavit Hartenberg parameters and the corresponding coordinate systems from a list of revolute joint axes.

If static calibration is used the determined joint axes origins and points are determined in local coordinates to the coordinate systems of its corresponding joint axes.

The x- and z-Axes of the base coordinate system (and its origin) are determined by the general attribute „coordinateSystem“.

Attributes

Name Type Description optional
name String name of the element No
method String Different variants of Denavit Hartenberg parameterisation exists. The most used one named „distal“ and defines the coordinate systems at the distal end of the segments. The x-axes of the the corresponding coordinate systems are upright to both adjusting joint axes. An importend variant is named as „modified“. Its x-axes are upright only to one of the two adjoining joint axes. The default method is „distal“ and is used if to method is explicitly defined by usage this attribute. Yes
xAxesDirections Comma separated list of Strings List of x-axis direction expressions. No
jointAxes Comma seperated List of Strings List of joint axes element names with an optional „-“ as an prefix which indicates the the direction of the axis should be negated. Die position of the first axis is used as origin of the base coordinate system. No
calibrateIncludes name of a switch Name of a switch to define the static calibration trial with the normal pose of the robot arm Yes
nominalD Comma seperated list of double values >=0, NaN included Used for method=„modified“ only. List of nominal values useful to set to values >=0 for nearly parallel joint axes. There exist no d0-value but the TCP system is in line with the previous axis and in a fixed length distance. So set the last values in the list to that value explicitly. Set values to „NaN“ if the corresponding axes are not nearly parallel which allows automated determination of the d-value. Yes
lastD REAL Used for classical Denavit Hartenberg method only. Defines the last d parameter in [mm]. This parameter can not be estimated. It is assumed that the last coordinate system (the CS of the TCP) has the same z-direction as the last joint axis (r==0, alpha==0). The parameter d is the translation of the origin of the last joint axis in direction of this axis. If the parameter is not set it is automatically set to (0d,0d,0d) which results in a TCP coordinate system identical to the wrist2 CS, but a warning is written into the log. Yes
signR Comma seperated list of boolean values „true“ or „false“ This allows to switch the sign of r-vector, default should be false. Especially in the case of DH-classical the calculation of the theta angles is based on a flipped r-vector/x-axis if the signR attribute is set to „true“. Yes
Origin VECTOR_3D Mathematical expression of the origin of the base coordinate system. No
X0Axis VECTOR_3D Mathematical expression defining the x-axis of the base coordinate system, fixed on the base segment, rotating with the rotation of the base joint. This can be determined in a static calibration trial and fixed to the base cluster. No

Methods

Name Description
classical This is the default method. This defines coordinate systems at the distal end of the links and the x-axes are orthogonal to both adjacent joint-axes.
modified The modified version of the Denavit Hartenberg parameterisation defines coordinate systems at the proximal side of the links. The x-axes are orthogonal only to its corresponding coordinate system (joint axis).

Generated trajectories

Name Type Description
<name>X0Axis Vector3d The direction of the X-axis of the base coordinate system, as defined by the attribute X0Axis (expression).
<name>Origin Vector3d The Origin of the base coordinate system, as defined by the attribute Origin (expression)„.
<name>XAxis<Index> Vector3d X-axes directions, as defined by the attribute (expression) „xAxisDirections“.
<name>Alpha<Index> Double alpha (twist angle) in [deg]
<name>Theta<Index> Double theta (joint angle) in [deg]
<name>D<Index> Double d (displacement or link offset) in [mm]
<name>R<Index> Double r (link length) in [mm]
<name>O<Index> Vector3d Origin of the Denavit Harteberg based coordinate system.
<name>P<Index> Vector3d Endpoint of the previous x-axis on the z-axis.

If the method is „modified“ than the index starts for „R“ and „Alpha“ with one and for „Theta“ and „D“ with zero, else all of them start with one.

Generated parameters

If the attribute „calibrateIncludes“ is used, the following parameters are determined as mean/std values over the complete trial, which is assumed to be a static trial.

Name Type Description
<name>P<Index>Mean Vector3d Position on the joint axis, where the x-axis of the previous joint ends, in local coordinates of the CS to the correspoinding joint axis.
<name>O<Index>Mean Vector3d Origin of the DH-coordindate system in local coordinates of the CS to the corresponding joint axis.
<name>Alpha<Index>Mean Double alpha (twist angle) in [deg]
<name>Theta<Index>Mean Double theta (joint angle) in [deg]
<name>D<Index>Mean Double d (displacement or link offset) in [mm]
<name>R<Index>Mean Double r (link length) in [mm]
<name>Alpha<Index>Std Double alpha (twist angle) std in [deg]
<name>Theta<Index>Std Double theta (joint angle) sd in [deg]
<name>D<Index>Std Double d (displacement or link offset) std in [mm]
<name>R<Index>Std Double r (link length) std in [mm]

Example

<DH name="mDHSARA"
    method="modified"
    xAxesDirections="GlobeX,BaseX,ShoulderX,ElbowX,Wrist1X,Wrist2X,TCPX"                      
    jointAxes="GlobeZ,BaseAxisSARA,ShoulderAxisSARA,ElbowAxisSARA,WristAxis1SARA,WristAxis2SARA,TCPAxisSARA"
    calibrateIncludes="static_calibrate1"
    nominalD="NaN, 0.0, 0.0, NaN, NaN, 0.099381832"/> 
<DH name="DHSARA"
    method="classical"
    xAxesDirections="GlobeX,BaseX,ShoulderX,ElbowX,Wrist1X,Wrist2X,TCPX"                      
    jointAxes="GlobeZ,BaseAxisSARA,ShoulderAxisSARA,ElbowAxisSARA,WristAxis1SARA,WristAxis2SARA,TCPAxisSARA"
    Origin="UROrigin"
    X0Axis="URXAxis"
    calibrateIncludes="static_calibrate1"
    lastD="99.9"/>

Generated parameters

The mean/std values of the following table are calculated, if the attribute „phase“ is set and also the attribute average=„true“ or meanStd=„true“. If the last attribute is set than also the corresponding std-values are calculated. All values are are based on mean-values for each phase. These mean-values are averaged and also the std for this mean is determined.

Name Type Description
<name>Alpha<Index>PhasesMean REAL alpha in [deg]; for each phase the mean is calculated; than the mean of all of these values is determined.
<name>Alpha<Index>PhasesStd REAL For each phase the mean is calculated; than the mean of all of these values is determined and the std of this mean is determined.
<name>Theta<Index>PhasesMean REAL theta in [deg]; for each phase the mean is calculated; than the mean of all of these values is determined.
<name>Theta<Index>PhasesStd REAL theta in [deg]; for each phase the mean is calculated; than the mean of all of these values is determined and the std of this mean is determined.
<name>D<Index>PhasesMean REAL D in [mm]; for each phase the mean is calculated; than the mean of all of these values is determined.
<name>D<Index>PhasesStd REAL std for each phase the std is calculated; than the mean of all of these values is determined and the std of this mean is determined.
<name>R<Index>PhasesMean REAL R in [mm]; for each phase the mean is calculated; than the mean of all of these values is determined.
<name>R<Index>PhasesStd REAL R in [mm]; for each phase the mean is calculated; than the mean of all of these values is determined and the std of this mean is determined.

FKDH

This element determines forward (direct) kinematics. A cartesian coordinate system based on a parent coordinate system and by a sequence of screw motions defined by Denavit-Hartenberg convention is determined.

Attributes

Attribute Type Description Required
name String Name of the element Yes
method String Name of the method: default=„classical“ or „distal“, „modified“ No
coordinateSystem String Defines the the reference coordinate system by its name. If it is not set than (0,0,0) ist used as the origin and e1, e2, e3 are used as its axes. No
alpha Comma seperated list of REAL values in [rad]. Denavit-Hartenberg parameter alpha between the joint axes. Yes
deltaTheta Comma seperated list of REAL values in [rad]. Angle in static neutral pose between Denavit Hartenberg x-axis ® and the corresponding joint angle measurement by the robot. Yes
theta Comma seperated list of REAL value in [rad] variable names. Denavit-Hartenberg parameter theta around the joint axes. Yes
d Comma seperated list of REAL values in [mm] Denavit-Hartenberg parameter d along the joint axes. Yes
r Comma seperated list of REAL values in [mm] Denavit-Hartenberg parameter r (equivalent to a) between the joint axes. Yes

Generated trajectories

Name Type Description
<name> MATRIX_3X3D Representation of the three orthogonal orientation axes of the result coordinate system (columns of the matrix). This is the last in the DH sequence, often called TCP frame.
<name>Position COLUMN_VECTOR_3D Origin of the result coordinate system.
<name><index> MATRIX_3X3D Representation of the three orthogonal orientation axes of the determined local coordinate system (columns of the matrix).
<name>Position<index> COLUMN_VECTOR_3D Origin of the coordinate system.

The index starts with 1 because with the index 0 typically the reference system is called.

For the last coordinate system trajectories are created without the index as a suffix. This system can be accessed by further calcmodel elements.

Example

<FKDH name="DK"
      coordinateSystem="GLOBE"
      alpha="0.5,90,0.0,0.0"
      deltaTheta="1.0,3.4,2.0,0.5"
      d="0.145,7089234,0892734"
      r="0.234,5123,123,765"
      theta="Angle0,Angle1,Angle2,Angle3"/> 

An alternative is to use corresponding function

<CoordinateSystem name="BaseUR"
                  Pose="dhm(Angle0, DH_alpha0, DH_d0, DH_r0)"/> 

for each joint in the sequence. This makes the sequence of transformations more transparent but also needs to write more xml.

modellingcomponents/elements/robotics.txt · Zuletzt geändert: 2022/02/09 08:22 von oliver

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki