SMC_Frame_DenavitHartenberg (FUN) ¶ FUNCTION SMC_Frame_DenavitHartenberg Computes the affine-linear transformation based on the Denavit Hartenberg parameters. The transformation transforms from the joint coordinate system i to i-1. InOut: Scope Name Type Inout frDst SMC_Frame Input dJointAngle_rad LREAL dLinkOffset_u LREAL dLinkLength_u LREAL dLinkTwist_sin LREAL dLinkTwist_cos LREAL
SMC_Frame_DenavitHartenbergI (FUN) ¶ FUNCTION SMC_Frame_DenavitHartenbergI Computes the inverse affine-linear transformation based on the Denavit Hartenberg parameters. The transformation transforms from the joint coordinate system i-1 to i. InOut: Scope Name Type Inout frDst SMC_Frame Input dJointAngle_rad LREAL dLinkOffset_u LREAL dLinkLength_u LREAL dLinkTwist_sin LREAL dLinkTwist_cos LREAL
SMC_Frame_Derive (FUN) ¶ FUNCTION SMC_Frame_Derive Computes the numerical derivative of two frames f0 = f(x-h/2), f1 = f(x+h/2) as v = (f1.vT - f0.vT) / h q = ln(q1*q0^(-1)) / h where q0 and q1 are the quaternions corresponding to f0.mR and f1.mR. InOut: Scope Name Type Comment Inout v SMC_Vector3D The difference quotient of the position q SMC_Quat The axis/angle difference quotient expressed as a quaternion Inout Const f0 SMC_Frame The frame evaluated h/2 to the left f1 SMC_Frame The frame evaluated h/2 to the right Input h LREAL The step size, must be <> 0
SMC_Frame_Dist (FUN) ¶ FUNCTION SMC_Frame_Dist Computes the distance in position and orientation of two frames. InOut: Scope Name Type Comment Inout Const f1 SMC_Frame f2 SMC_Frame Output dDistCart LREAL The absolute euclidean distance in position dDistOrientation LREAL The absolute difference in orientation, measured in radian.
SMC_Frame_Equals (FUN) ¶ FUNCTION SMC_Frame_Equals : BOOL InOut: Scope Name Type Inout Const f1 SMC_Frame f2 SMC_Frame Return SMC_Frame_Equals BOOL
SMC_Frame_Inverse (FUN) ¶ FUNCTION SMC_Frame_Inverse Inverts a frame. The resulting frame represents the inverse transformation. InOut: Scope Name Type Inout fDst SMC_Frame Inout Const fSrc SMC_Frame
ElemFunQueue.GetFromStart (METH) ¶ METHOD FINAL GetFromStart : POINTER TO ElemFun Returns a pointer to the n-th element if the queue is at least n elements, otherwise 0. The pointer is valid until the next call to RemoveFirst. Only to be called safely from the reading task, or when it is made sure that no elements are removed concurrently. InOut: Scope Name Type Input n UDINT Return GetFromStart POINTER TO ElemFun
ElemFunQueue.GetIdxFromPtr (METH) ¶ METHOD FINAL GetIdxFromPtr : BOOL InOut: Scope Name Type Input pef POINTER TO ElemFun Return GetIdxFromPtr BOOL Output idx UDINT
ElemFunQueue.Init (METH) ¶ METHOD FINAL Init : BOOL InOut: Scope Name Type Comment Input pD POINTER TO ARRAY [0..0] OF ElemFun udiSizeDataBytes UDINT pDTraces POINTER TO ARRAY [0..0] OF ElemFunTrace udiSizeTracesDataBytes UDINT enableReferenceCounting BOOL Whether reference counting of the coordinate system is enabled for the ElemFun objects that are managed by this queue. Return Init BOOL
ElemFunQueue (FB) ¶ FUNCTION_BLOCK FINAL ElemFunQueue A fifo queue of element functions elements (of type ElemFun). The queue can be written by one task and read by another. The method Append is only called by the producer task, the methods GetFromStart and RemoveFirst are only called by the consumer task. Methods: AddChecksum Append Capacity Full GetFromEnd GetFromStart GetIdxFromPtr Init IsEmpty NumElems RemoveAll RemoveFirst RemoveFirstN RemoveLast RemoveLastN Reset SetPointer SpaceLeft SpaceTracesLeft SplitAt Structure: AddChecksum (Method) Append (Method) Capacity (Method) Full (Method) GetFromEnd (Method) GetFromStart (Method) GetIdxFromPtr (Method) Init (Method) IsEmpty (Method) NumElems (Method) RemoveAll (Method) RemoveFirst (Method) RemoveFirstN (Method) RemoveLast (Method) RemoveLastN (Method) Reset (Method) SetPointer (Method) SpaceLeft (Method) SpaceTracesLeft (Method) SplitAt (Method)