coordinate_system Interface

public interface coordinate_system

Contents


Module Procedures

private pure function define_link_csys(xim1, zim1, zi, rim1, ri) result(rst)

Defines the DH coordinate system for the specified link.

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: xim1(3)

The x-axis of the previous link.

real(kind=real64), intent(in) :: zim1(3)

The z-axis of the previous link. This is also the axis of the proximal joint of the current link.

real(kind=real64), intent(in) :: zi(3)

The axis of the distal joint of the current link.

real(kind=real64), intent(in) :: rim1(3)

The location of the proximal joint's center or home position.

real(kind=real64), intent(in) :: ri(3)

The location of the distal joint's center or home position.

Return Value type(coordinate_system)

The resulting coordinate system.

private pure function define_csys(i, j, k, o) result(rst)

Defines a new coordinate_system object. It is the callers responsibility to ensure that the supplied vectors are orthogonal to one another.

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: i(3)

The x-axis unit vector.

real(kind=real64), intent(in) :: j(3)

The y-axis unit vector.

real(kind=real64), intent(in) :: k(3)

The x-axis unit vector.

real(kind=real64), intent(in), optional :: o(3)

The location of the coordinate system within a reference coordinate system. If not supplied, a value of (0, 0, 0) will be used.

Return Value type(coordinate_system)

The new coordinate_system object.