Solves the inverse kinematics problem for a linkage. An iterative solution procedure is utilized.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| procedure(vecfcn), | intent(in), | pointer | :: | mdl |
A routine used to compute the forward kinematics for the linkage given the current joint variable estimates. |
|
| 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), | target, dimension(:) | :: | constraints |
An N-element array containing the target values (constraints) for each of the N kinematic equations in the model. N must be at least equal to M (the number of joint variables). |
|
| real(kind=real64), | intent(out), | optional, | target, dimension(:) | :: | df |
An optional N-element array that, if supplied, can be used to retrieve the residuals of each of the N kinematic equations. |
| class(constrained_equation_solver), | intent(inout), | optional, | target | :: | slvr |
An optional solver that can be used in place of the default Levenberg-Marquardt solver. |
| type(iteration_behavior), | intent(out), | optional | :: | ib |
An optional output that can be used to gather information on the solver. |
|
| procedure(jacobianfcn), | intent(in), | optional, | pointer | :: | jfcn |
A routine that can be used to provide the Jacobian matrix for the linkage. |
| real(kind=real64), | intent(in), | optional, | dimension(size(qo)) | :: | qmax |
An optional set of upper limits on each of the joint variables. If not provided, the default is the output of the 'huge' intrinsic function. |
| real(kind=real64), | intent(in), | optional, | dimension(size(qo)) | :: | qmin |
An optional set of lower limits on each of the joint variables. If not provided, the default is the negative of the output of the 'huge' intrinsic function. |
| class(*), | intent(inout), | optional, | target | :: | args |
An optional argument that can be used to communicate with mdl. |
| class(errors), | intent(inout), | optional, | target | :: | err |
An errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. |
An M-element array containing the computed joint variables.