Defines a serial linkage.
Initializes a new serial_linkage object.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(binary_link), | intent(in), | dimension(:) | :: | lnks |
A collection of binary_link objects. The collection starts with the first link and progresses to the end-effector in a sequential manner. |
The serial_linkage instance.
Computes the forward kinematics for the linkage resulting in a transformation matrix between world and end-effector coordinate frames.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(serial_linkage), | intent(in) | :: | this |
The serial_linkage object. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | q |
The array of joint variables. This array must be the same size as there are number of links in this linkage. |
|
| class(errors), | intent(inout), | optional, | target | :: | err |
An errors-based object providing error handling in the event the array size is incorrect. |
The resulting 4-by-4 transformation matrix.
Gets a pointer to the requested link object.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(serial_linkage), | intent(in) | :: | this |
The serial_linkage object. |
||
| integer(kind=int32), | intent(in) | :: | i |
The index of the link to retrieve (1 = first link). |
A pointer to the requested link.
Gets the number of links in the linkage.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(serial_linkage), | intent(in) | :: | this |
The serial_linkage object. |
The link count.
Solves the inverse kinematics problem for the linkage.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(serial_linkage), | intent(in), | target | :: | this |
The serial_linkage object. |
|
| real(kind=real64), | intent(in), | dimension(:) | :: | qo |
An M-element array containing an initial estimate of the M joint variables. |
|
| real(kind=real64), | intent(in) | :: | trg(4,4) |
A transformation matrix relating the end-effector coordinate frame and the world coordinate frame. This transformation matrix defines the end-effector target for the solver. |
||
| type(iteration_behavior), | intent(out), | optional | :: | ib |
An optional output that can be used to gather information on the solver. |
|
| class(errors), | intent(inout), | optional, | target | :: | err |
An optional error handling object used to retrieve any errors regarding the solver. |
An M-element array containing the computed joint variables that satisfy the constraints.
Constructs the Jacobian matrix for the linkage. The Jacobian matrix relates the joint velocities to the end-effector velocity by .
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(serial_linkage), | intent(in) | :: | this |
The serial_linkage object. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | q |
The array of joint variables. This array must be the same size as there are number of links in this linkage. |
|
| class(errors), | intent(inout), | optional, | target | :: | err |
An errors-based object providing error handling in the event the array size is incorrect. |
The resulting 6-by-N Jacobian matrix where N is the number of links in the linkage.