DHLink
DHLink
DHLink is a base of a kinematic link that can be added to DHChain to form a kinematic chain.
DHLink kinematic properties can be configured using Denavit–Hartenberg (also called DH) parameters and an unlimited number of constraints (including loops) between links.
According to the DH parameter system, every kinematic link has 4 parameters:
- Alpha - Angle in radians between old Z and new Z plane
- Theta - Angle in radians between old X and new X plane
- A - Length of the common normal
- D - Offset along the previous Z to the common normal
More info about the DH parameters can be found at:
The following 3 types can be added to DHChain component to form a kinematic chain:
Link | Description |
---|---|
DHRevoluteLink | a DHLink that can rotate around its joint. It means that its Theta parameter is changeable and other DH parameters are fixed via its mechanical body constraints. The most common example of DHRevoluteLink is a hinge joint connected to some arm. |
DHPrismaticLink | a DHLink that allows a linear motion along a single axis i.e. the D parameter of it is changeable and other DH parameters are fixed via its mechanical body constraints. The most common example of a DHPrismaticLink is a cylinder. |
DHFixedLink | a DHLink that links joints so that all DH parameters are fixed via link mechanical body constraints. In other words, DHFixedLink is a non-rotating, non-movable connection from link start to link end. |
To create a kinematic chain, the predecessor DHLink should be connected (routed) to the successor DHLink. One DHLink can be a predecessor to multiple successor links. All DH parameters of the successor DHLink are always applied relative to the predecessor DHLink end position.
In addition to DH parameters, every DHLink also has an end Position port with values in (cartesian) coordinates (X, Y and Z), relative to the DHChain StartPosition, in the form of a Position port. All DHLinks have also a RotationMatrix port that expresses the link end rotation. The RotationMatrix port consists of 3 x 3 matrix values describing the orientation of the link end relative to DCHain start, as described in Robotics Kinematics and Dynamics/Description of Position and Orientation.
DHRevoluteLink and DHPrismaticLink have 2 parameters for their changeable (i.e. degree of freedom) DH value. One (named Theta or D correspondingly) can be valued (e.g. routed) from outside of DHChain (for example from the control joystick or the actual link position sensor) and will be the input for kinematic solver calculations. Other (named ThetaSolved or DSolved accordingly) is read-only and is valued by the kinematic solver and this value can be used to order the actual link mover (winch or stepper motor etc) to go to the new position.
DHLink can also have one or many PositionConstraint ports, that can be routed from two different sources:
Purpose | Routed from | Constraint description |
---|---|---|
Loop Constraint | Position port of any DHLink | Creates kinematic loop, i.e. solver tries to find positions for links (by changing link degree of freedom parameters) so that these link end positions would be exactly in the same place. |
Fixed Position Constraint | Some other Position port | Creates fixed position constraint, i.e. solver tries to find positions for links (by changing link degree of freedom parameters) so that the link end position would be at the coordinates specified by the connected port. |
DHLink changeable parameters can also have a joint Limits port that set Min and Max values so that the kinematic solver will try to solve the link position so that the parameter will be between these values.
Get started with CDP Studio today
Let us help you take your great ideas and turn them into the products your customer will love.