ISMKinematicWithConfigurations4.IsConfigSingular (METH) ¶ METHOD IsConfigSingular : BOOL Returns if a given configuration of a robot is singular. InOut: Scope Name Type Comment Return IsConfigSingular BOOL Inout Const cd CONFIGDATA In: The configuration of the robot
ISMKinematicWithInfo (ITF) ¶ INTERFACE ISMKinematicWithInfo EXTENDS MC_KIN_REF_SM3 Additional interface that provides information about a kinematics. If a kinematics has rotary joints, this interface must be implemented. The method GetAxisProperties needs to return which joints are linear and which are rotary. Properties: NumAxes , inherited from MC_KIN_REF_SM3 Methods: GetAxisProperties IsSingularity AxesToCartesian , inherited from MC_KIN_REF_SM3 CartesianToAxes , inherited from MC_KIN_REF_SM3 Structure: GetAxisProperties (Method) IsSingularity (Method)
ISMKinematicWithInfo.GetAxisProperties (METH) ¶ METHOD GetAxisProperties Returns a structure that contains the properties of one axis. InOut: Scope Name Type Comment Inout props Axis_Properties Out: The properties of the axis. Note that the kinematics needs to indicate which joints are linear and which are rotary. The limits should be set to unlimited by default. The kinematics may provide a limited range for an axis. Input udiAxis UDINT Number of axis [0..NumAxes-1]
ISMKinematicWithInfo.IsSingularity (METH) ¶ METHOD IsSingularity : BOOL Returns if the robot is in a singularity with the given axes positions. InOut: Scope Name Type Comment Return IsSingularity BOOL Inout Const a AXISPOS_REF In: The position of all axes
ISMKinematicWithInfo2 (ITF) ¶ INTERFACE ISMKinematicWithInfo2 EXTENDS ISMKinematicWithInfo Additional interface that provides information about a kinematic. Properties: NumAxes , inherited from MC_KIN_REF_SM3 Methods: GetKinematicsName AxesToCartesian , inherited from MC_KIN_REF_SM3 CartesianToAxes , inherited from MC_KIN_REF_SM3 GetAxisProperties , inherited from ISMKinematicWithInfo IsSingularity , inherited from ISMKinematicWithInfo Structure: GetKinematicsName (Method)
ISMKinematicWithInfo2.GetKinematicsName (METH) ¶ METHOD GetKinematicsName : STRING(255) Returns a readable name of the kinematics. InOut: Scope Name Type Return GetKinematicsName STRING(255)
ISMKinematicWithConfigurations.GetConfigurationDataSize (METH) ¶ METHOD GetConfigurationDataSize : INT The size of the configuration data (in byte), supposed to be constant. InOut: Scope Name Type Return GetConfigurationDataSize INT
ISMKinematicWithConfigurations.GetDefaultConfigurationData (METH) ¶ METHOD GetDefaultConfigurationData : BOOL Returns the default configuration of the kinematics, serialized to a CONFIGDATA variable. InOut: Scope Name Type Comment Return GetDefaultConfigurationData BOOL Inout cd CONFIGDATA Out: The serialized default configuration data
ISMKinematicWithConfigurations2 (ITF) ¶ INTERFACE ISMKinematicWithConfigurations2 EXTENDS ISMKinematicWithConfigurations Extension interface of ISMKinematicWithConfigurations Properties: NumAxes , inherited from MC_KIN_REF_SM3 Methods: CPConnectible AxesToCartesian , inherited from MC_KIN_REF_SM3 CartesianToAxes , inherited from MC_KIN_REF_SM3 GetConfigurationDataSize , inherited from ISMKinematicWithConfigurations GetDefaultConfigurationData , inherited from ISMKinematicWithConfigurations Structure: CPConnectible (Method)
ISMKinematicWithConfigurations2.CPConnectible (METH) ¶ METHOD CPConnectible : BOOL Returns whether it is possible to CP interpolate between two positions with these configurations without (necessarily) causing a jump. A return value TRUE means that there is no singularity between the configurations, and that there is no other reason for a certain jump of axis values. The implementation must fulfill the following properties: CPConnectible(c, c) = TRUE (reflexive property) CPConnectible(c1, c2) = CPConnectible(c2, c1) (symmetric property) CPConnectible(c1, c2) AND CPConnectible(c2, c3) => CPConnectible(c1, c3) (transitive property) Note If TRUE is returned, then it may still be the case that, for a given CP movement starting from configuration cd1, cd2 is unreachable. An example would be two configurations that denote different periods for a rotary axis. Depending on the path between the positions, the target axis position may be reachable or not. However, if TRUE is returned, that means that for each position with configuration cd1 and each position with configuration cd2, there is a path that connects the two positions. InOut: Scope Name Type Return CPConnectible BOOL Inout Const cd1 CONFIGDATA cd2 CONFIGDATA