EASY-ROBâ„¢ Kernel  v8.606
Functions
er_Kernel_main.h File Reference
#include "erk_capi_types.h"

Go to the source code of this file.

Functions

DLLAPI long ER_STDCALL erKernelGetVersion (void)
 Returns the Kernels Version. More...
 
DLLAPI long ER_STDCALL erKernelSetLicensePriority (int license_priority)
 Set license priority.
Call this function before initializing the Kernel erKernelInitialize()
Parameter license_priority is one of ER_LICENSE_PRIORITY_LMNGR, ER_LICENSE_PRIORITY_LOCAL
If license_priority is not set, ER_LICENSE_PRIORITY_LMNGR is default setting, see erKernelGetLicensePriority() More...
 
DLLAPI long ER_STDCALL erKernelGetLicensePriority (int *license_priority)
 Get license priority.
Parameter license_priority is one of ER_LICENSE_PRIORITY_LMNGR, ER_LICENSE_PRIORITY_LOCAL
If license_priority is not set, ER_LICENSE_PRIORITY_LMNGR is default setting, see erKernelSetLicensePriority() More...
 
DLLAPI long ER_STDCALL erKernelSetLicenseFile (char *license_file)
 Set location and name of license file.
Call this function before initializing the Kernel erKernelInitialize()
If license_file is not set, it is supposed that the license file resides in the current folder, see erKernelGetLicenseFile(), erKernelAddLicenseFile() More...
 
DLLAPI long ER_STDCALL erKernelAddLicenseFile (char *license_file)
 Set an additional location and name of license file.
Call this function before initializing the Kernel erKernelInitialize()
If license_file is not set, it is supposed that the license file resides in the current folder, see erKernelGetLicenseFile(), erKernelSetLicenseFile() More...
 
DLLAPI long ER_STDCALL erKernelGetLicenseFile (char *license_file)
 Get location and name of license file.
If license_file is not set the string is empty, see erKernelSetLicenseFile(), erKernelAddLicenseFile() More...
 
DLLAPI long ER_STDCALL erKernelInitialize (char *HostApplicationPath, char *Sold_To_ID, long mode=0)
 Initializes the Kernel.
After calling this initial functions all other kernel functions are available.
Before calling this initial functions all callback functions should be defined and initialized, thus they can be used when calling this function.
The HostApplicationPath must contain the path where the host application is running. The maximum string lenght is ER_HS_MAXSTR
The Sold_To_ID contains an individual customer identifier, per default = NULL
The mode is not implemented yet, per default = 0. More...
 
DLLAPI void ER_STDCALL erKernelFree (void)
 Free all internal Kernel data.
Calling this function will delete all internal Kernel data
After calling this functions not any kernel functions is available
Even callback functions are not available. More...
 
DLLAPI long ER_STDCALL erKernelGetLicense (char *hw_id)
 Check license and supplies unique HardwareID or DongleID. More...
 
DLLAPI long ER_STDCALL erKernelGetHardwareID (char *hw_id)
 Supplies unique HardwareID or DongleID. More...
 
DLLAPI long ER_STDCALL erKernelGetOptions (char *opt)
 Supplies option string containing all enabled options. More...
 
DLLAPI long ER_STDCALL erKernelGetOptionsDisabled (char *nopt)
 Supplies option string containing all disabled options. More...
 
DLLAPI void ER_STDCALL erSetCallBack_LogProc (TerLogProc Handler)
 Define Callback function for Log Messages. More...
 
DLLAPI void ER_STDCALL erEnableCallBack_LogProc (long onoff)
 Enable/Disable Log messages.
This function enables or disables Log Messages used with callback function TerLogProc This function can be called before kernel initialization erKernelInitialize() More...
 
DLLAPI void ER_STDCALL erSetCallBack_LoadGeometryProc (TerLoadGeometryProc Handler)
 Define Callback function to load a geometry The Host application is prompted to load a geometry. More...
 
DLLAPI void ER_STDCALL erSetCallBack_UpdateGeometryProc (TerUpdateGeometryProc Handler)
 Define Callback function to updat a geometries The Host application is prompted to update a geometry. More...
 
DLLAPI void ER_STDCALL erSetCallBack_FreeGeometryProc (TerFreeGeometryProc Handler)
 Define Callback function to free Geometry The Host application is prompted to free a geometry. More...
 
DLLAPI void ER_STDCALL erSetCallBack_GetActualTravelRangesProc (TerGetActualTravelRangesProc Handler)
 Define Callback function to calculate travel ranges by host application The Host application takes care to calculate the travel ranges. More...
 
DLLAPI void ER_STDCALL erSetCallBack_NotifyProc (TerNotifyProc Handler)
 Define Callback function for notify messages The Kernel informs the host application about internel status messages. More...
 
DLLAPI void ER_STDCALL erSetCallBack_GrpSyncProc (TerGrpSyncProc Handler)
 Define Callback function for group synchonization. More...
 
DLLAPI long ER_STDCALL erInitKin (ER_HND *er_hnd, Host_HND host_hnd=NULL)
 Create a unique kinematics handle.
Opcode 101, Chapter 3.4.1, Page 3-26, same as erINITIALIZE()
Initializes one instance of a robot and creates an unique kinematics handle er_hnd belonging to a robot kinematics.
This handles is necessary to access individual data from the robot and to call other functions.
Use erLoadKin() to load an EASY-ROB rob file (*.rob) containing a kinematics. More...
 
DLLAPI long ER_STDCALL erUnloadKin (ER_HND *er_hnd)
 Unload an instance of kinematics of the Kernel.
Unloads an instance of kinematics givin by the unique kinematics handle.
Unloading a kinematics will call callback function TerFreeGeometryProc for each geometry belonging to this kinematics.
The number of loaded kinematics will be decremented.
This kinematics handle er_hnd is set to NULL and is not valid after calling this function. More...
 
DLLAPI long ER_STDCALL erConnectPositioner (ER_HND er_hnd, ER_HND er_hnd_connect)
 Connects a positioner kinematics with handle er_hnd_connect to the robot kinematics with handle er_hnd.
Remarks
Use erConnectPositionerSetSync() for synchronized motion with a positioner.
Use erConnectPositionerGetSync() to receive synchronization status between robot and the connected positioner. More...
 
DLLAPI ER_HND ER_STDCALL erConnectPositionerGetHND (ER_HND er_hnd)
 Get robots connection handle between robot and positioner.
See also erConnectPositioner() More...
 
DLLAPI long ER_STDCALL erConnectPositionerSetSync (ER_HND er_hnd, long connect_sync)
 Set robots synchronization flag for synchronization between robot and positioner.
The synchronization flag connect_sync can be one of the following values.
1: ER_SYNC_OFF, 2: ER_SYNC_ON
See also erConnectPositionerGetSync() More...
 
DLLAPI long ER_STDCALL erConnectPositionerGetSync (ER_HND er_hnd)
 Get robots synchronization flag for synchronization between robot and positioner.
See also erConnectPositionerSetSync() More...
 
DLLAPI long ER_STDCALL erConnectConveyor (ER_HND er_hnd, ER_HND er_hnd_connect)
 Connects a conveyor kinematics with handle er_hnd_connect to the robot kinematics with handle er_hnd.
Remarks
Use erConnectConveyorSetSync() for synchronized motion with a conveyor.
Use erConnectConveyorGetSync() to receive synchronization status between robot and the connected conveyor. More...
 
DLLAPI ER_HND ER_STDCALL erConnectConveyorGetHND (ER_HND er_hnd)
 Get robots connection handle between robot and conveyor.
See also erConnectConveyor() More...
 
DLLAPI long ER_STDCALL erConnectConveyorSetSync (ER_HND er_hnd, long connect_sync)
 Set robots synchronization flag for synchronization between robot and conveyor.
The synchronization flag connect_sync can be one of the following values.
1: ER_SYNC_OFF, 2: ER_SYNC_ON
See also erConnectConveyorGetSync() More...
 
DLLAPI long ER_STDCALL erConnectConveyorGetSync (ER_HND er_hnd)
 Get robots synchronization flag for synchronization between robot and conveyor.
See also erConnectConveyorSetSync() More...
 
DLLAPI long ER_STDCALL erConnectTrackMotion (ER_HND er_hnd, ER_HND er_hnd_connect)
 Connects a track motion kinematics with handle er_hnd_connect to the robot kinematics with handle er_hnd.
Remarks
Use erConnectTrackMotionSetSync() for synchronized motion with a track motion.
Use erConnectTrackMotionGetSync() to receive synchronization status between robot and the connected track motion. More...
 
DLLAPI ER_HND ER_STDCALL erConnectTrackMotionGetHND (ER_HND er_hnd)
 Get robots connection handle between robot and track motion.
See also erConnectTrackMotion() More...
 
DLLAPI long ER_STDCALL erConnectTrackMotionSetSync (ER_HND er_hnd, long connect_sync)
 Set robots synchronization flag for synchronization between robot and track motion.
The synchronization flag connect_sync can be one of the following values.
1: ER_SYNC_OFF, 2: ER_SYNC_ON, 4: ER_SYNC_CONVEYOR
See also erConnectTrackMotionGetSync() More...
 
DLLAPI long ER_STDCALL erConnectTrackMotionGetSync (ER_HND er_hnd)
 Get robots synchronization flag for synchronization between robot and track motion.
See also erConnectTrackMotionSetSync() More...
 
DLLAPI long ER_STDCALL erConnectRobot (ER_HND er_hnd, ER_HND er_hnd_connect)
 Connects a slave robot kinematics with handle er_hnd_connect to the robot kinematics with handle er_hnd.
Remarks
Use erConnectRobotSetSync() for synchronized motion with a slave robot.
Use erConnectRobotGetSync() to receive synchronization status between robot and the connected slave robot. More...
 
DLLAPI ER_HND ER_STDCALL erConnectRobotGetHND (ER_HND er_hnd)
 Get robots connection handle between robot and slave robot.
See also erConnectRobot() More...
 
DLLAPI long ER_STDCALL erConnectRobotSetSync (ER_HND er_hnd, long connect_sync)
 Set robots synchronization flag for synchronization between robot and slave robot.
The synchronization flag connect_sync can be one of the following values.
1: ER_SYNC_OFF, 2: ER_SYNC_ON
See also erConnectRobotGetSync() More...
 
DLLAPI long ER_STDCALL erConnectRobotGetSync (ER_HND er_hnd)
 Get robots synchronization flag for synchronization between robot and slave robot.
See also erConnectRobotSetSync() More...
 
DLLAPI long ER_STDCALL erUnloadTool (ER_HND er_hnd)
 Unload a kinematics tool.
Unloads a kinematics tool givin by the unique kinematics handle.
Unloading a kinematics tool will call callback function TerFreeGeometryProc for each geometry belonging to this kinematics tool.
Remarks
This kinematics handle er_hnd is still valid after calling this function. More...
 
DLLAPI long ER_STDCALL erLoadKin (ER_HND er_hnd, char *fln_rob)
 Load an EASY-ROB rob file (*.rob) containing a kinematics.
Loading a robfile will call the callback function TerLoadGeometryProc() each time when a geometry-file-name is detected in the robfile.
In this case the host application has to read or import the geometry and store it inside their own structure.
Remarks
Get a valid unique kinematics handle with erInitKin()
In case the robfile cannot be loaded, the kinematics handle is not valid anymore. Get a new kinematics handle with erInitKin() More...
 
DLLAPI long ER_STDCALL erLoadTool (ER_HND er_hnd, char *fln_tool)
 Load an EASY-ROB tool file (*.tol) containing tool (tcp) data.
Loading a toolfile will call the callback function TerLoadGeometryProc() each time when a geometry-file-name is detected in the toolfile.
. More...
 
DLLAPI long ER_STDCALL erGet_n_Kin (ER_HND er_hnd)
 Get the number of loaded kinematics. More...
 
DLLAPI long ER_STDCALL erGet_n_Kin_IR (ER_HND er_hnd)
 Get the number of loaded kinematics with more than 3 joints and inverse kinematics. More...
 
DLLAPI long ER_STDCALL erGetName (ER_HND er_hnd, char *name)
 Get the name of the robot. More...
 
DLLAPI long ER_STDCALL erGetIDs (ER_HND er_hnd, long *kin_id, long *inv_id, long *inv_sub_id)
 Get Kinematics ID of the robot.
kin_id represents the kinematics ID. It can be one of the following values.
ER_RRRRRR_ID =1, ER_TTTRRR_ID =2, ER_RRRRRR_BL_ID =3, ER_UNIV_ROB_ID =10, ER_DH_ID =11
Remarks
Most robots are modelled with universal coordinates ER_UNIV_ROB_ID. More...
 
DLLAPI long ER_STDCALL erGet_num_dofs (ER_HND er_hnd)
 Get number of active robot joints. More...
 
DLLAPI long ER_STDCALL erGet_num_dofs_passive (ER_HND er_hnd)
 Get number of passive robot joints. More...
 
DLLAPI long ER_STDCALL erGetJointTypes (ER_HND er_hnd, long *jnt_type_active)
 Get active robot joint types. An active robot joint type can be rotational JNT_TYPE_ROT or prismatic JNT_TYPE_TRANS
See also erGetJointSign(), erGetJointDirections() More...
 
DLLAPI long ER_STDCALL erGetJointTypes_passive (ER_HND er_hnd, long *jnt_type_passive)
 Get passive robot joint types. A passive robot joint type can be rotational JNT_TYPE_ROT or prismatic JNT_TYPE_TRANS
See also erGetJointDirections_passive() More...
 
DLLAPI long ER_STDCALL erGetJointDirections (ER_HND er_hnd, long *jnt_direction_active)
 Get direction of active robot joints. A robot joint direction can be JNT_DIRECTION_X, JNT_DIRECTION_Y or JNT_DIRECTION_Z
See also erGetJointSign(), erGetJointTypes() More...
 
DLLAPI long ER_STDCALL erGetJointDirections_passive (ER_HND er_hnd, long *jnt_direction_passive)
 Get direction of passive robot joints. A robot joint direction can be JNT_DIRECTION_X, JNT_DIRECTION_Y or JNT_DIRECTION_Z
See also erGetJointTypes_passive() More...
 
DLLAPI long ER_STDCALL erGetJointChainTypes (ER_HND er_hnd, long *jnt_chain_type_active)
 Get chain type of active robot joints. A robot chain type can be JNT_CHAIN_TYPE_CHAIN, JNT_CHAIN_TYPE_NO_CHAIN or JNT_CHAIN_TYPE_SEP_NO_CHAIN
. More...
 
DLLAPI long ER_STDCALL erGetJointChainTypes_passive (ER_HND er_hnd, long *jnt_chain_type_passive)
 Get chain type of passive robot joints. A robot chain type can be JNT_CHAIN_TYPE_CHAIN, JNT_CHAIN_TYPE_NO_CHAIN or JNT_CHAIN_TYPE_SEP_NO_CHAIN
. More...
 
DLLAPI long ER_STDCALL erGetJointAttachDof_active (ER_HND er_hnd, long *jnt_attach_dof_active)
 Get Attach-Dof of active robot joints. An active joint with chain type JNT_CHAIN_TYPE_CHAIN is attached to an active or passive joint.
A valid Attach-Dof number for such an active joint is [0..num_dof], whereby num_dof represents the number of active joints
A negative Attach-Dof value of -99 means that the active joint has a chain type of JNT_CHAIN_TYPE_NO_CHAIN or JNT_CHAIN_TYPE_SEP_NO_CHAIN. More...
 
DLLAPI long ER_STDCALL erGetJointAttachDof_passive (ER_HND er_hnd, long *jnt_attach_dof_passive)
 Get Attach-Dof of passive robot joints. A passive joint is attached to an active joint. A valid Attach-Dof number number is [0..num_dof], whereby num_dof represents the number of active joints
A negative Attach-Dof represents an error. More...
 
DLLAPI long ER_STDCALL erGetMoveBaseMode (ER_HND er_hnd, long *move_base_mode)
 Gets moveable base mode.
A kinematics base can be fixed or moveable.
0: Robot base is fix (default)
1: Robot base is moveable. More...
 
DLLAPI long ER_STDCALL erGetMoveBasepJointIdx (ER_HND er_hnd, long *move_base_pjointidx)
 Gets passive joint idx representing the moveable base.
If a kinematics base is moveable, the move_base_pjointidx gives the index [1..number of passive joints] of the passive joints representing the moveable base.
Otherwise it is 0, see erGetMoveBaseMode(), erGetpJointMoveBase() More...
 
DLLAPI long ER_STDCALL erGetpJointMoveBase (ER_HND er_hnd, DFRAME *pjntTmb)
 Get transformation from passive joint 'pjnt' to the moveable base 'mb'.
If a kinematics base is moveable, the pjntTmb contains the transformation from passive joint 'pjnt' to the moveable base 'mb' frame.
Otherwise pjntTmb is identity, see erGetMoveBasepJointIdx(), erGetRobotBaseToMoveBase() More...
 
DLLAPI long ER_STDCALL erGetRobotBaseToMoveBase (ER_HND er_hnd, DFRAME *bTmb)
 Get transformation from robot base 'b' to the moveable base 'mb'.
If a kinematics base is moveable, the bTmb contains the transformation from robot base 'b' to the moveable base 'mb' frame.
Otherwise bTmb is identity, see erGetMoveBasepJointIdx(), erGetpJointMoveBase() More...
 
DLLAPI long ER_STDCALL erSetJoints (ER_HND er_hnd, double *q_solut)
 Set robot joint data. The kinematics joint data q_solut are in units [m] for prismatic joint type
and [rad] for rotational joint type. More...
 
DLLAPI long ER_STDCALL erSetJoint (ER_HND er_hnd, double q_solut, long jnt_no)
 Set a single robot joint data. The kinematics joint data q_solut are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of active joints with erGet_num_dofs() More...
 
DLLAPI long ER_STDCALL erGetJoints (ER_HND er_hnd, double *q_solut)
 Get robot joint data. The kinematics joint data q_solut are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of active joints with erGet_num_dofs()
Remarks
Call this function after calling the inverse kinematics transformation, erInvKinRobotBaseTip(), erInvKinWorldTip(), erInvKinRobotBaseTcp(), erInvKinWorldTcp() More...
 
DLLAPI long ER_STDCALL erGetJointSolutions (ER_HND er_hnd, double *q_solutions, long *q_warnings)
 Get all robot joint solutions. The kinematics joint data q_solutions are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of active joints with erGet_num_dofs()
Get the number of configurations with erGetNumConfigs()
Remarks
Call this function after calling the inverse kinematics transformation, erInvKinRobotBaseTip(), erInvKinWorldTip(), erInvKinRobotBaseTcp(), erInvKinWorldTcp() More...
 
DLLAPI long ER_STDCALL erGetJointSpeeds (ER_HND er_hnd, double *v_solut)
 Get robot joint speeds. The kinematics joint speeds v_solut are in units [m/s] for prismatic joint type
and [rad/s] for rotational joint type
Get the number of active joints with erGet_num_dofs() More...
 
DLLAPI long ER_STDCALL erGetJointAccels (ER_HND er_hnd, double *a_solut)
 Get robot joint accelerations. The kinematics joint accelerations a_solut are in units [m/s^2] for prismatic joint type
and [rad/s^2] for rotational joint type
Get the number of active joints with erGet_num_dofs() More...
 
DLLAPI long ER_STDCALL erGetJoints_passive (ER_HND er_hnd, double *q_passive)
 Get passive robot joint data. The kinematics passive joint data q_passive are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of passive joints with erGet_num_dofs_passive() More...
 
DLLAPI long ER_STDCALL erSetConfig (ER_HND er_hnd, long config)
 Set robot configuration
A new robot configuration takes effect when calling the inverse kinematics transformation.
See The config is valid for 1 to number of possible configurations, see erGetNumConfigs()
Remarks
The motion planner can change the configuration only for the motion types ER_JOINT (ER_PTP) or ER_SLEW.
In case of CP (continuous path, i.e. ER_LIN or ER_CIRC), a givin configuration will be ignored. More...
 
DLLAPI long ER_STDCALL erGetConfig (ER_HND er_hnd, long *config)
 Get current robot configuration
Gets current robot configuration. See also erSetConfig().
The config is valid for 1 to number of possible configurations, see erGetNumConfigs(). More...
 
DLLAPI long ER_STDCALL erFindConfig (ER_HND er_hnd, long *config)
 Find current robot configuration
Finds current robot configuration, depending on current robot joint location.
The config is valid for 1 to number of possible configurations, see erGetNumConfigs()
Remarks
If the robot configuration cannot be found, a notify message ER_NOTIFY_CODE_FIND_CONFIG_FAILED will be generated. More...
 
DLLAPI long ER_STDCALL erGetNumConfigs (ER_HND er_hnd, long *num_configs)
 Get number of possible robot configurations. More...
 
DLLAPI long ER_STDCALL erInvKinRobotBaseTip (ER_HND er_hnd, DFRAME *bTt)
 Calculating the inverse kinematics transformation.
The bTt is the location of the flange w.r.t. robots base.
Get the calculated robot joint data with erGetJoints(). More...
 
DLLAPI long ER_STDCALL erInvKinWorldTip (ER_HND er_hnd, DFRAME *iTt)
 Calculating the inverse kinematics transformation.
The iTt is the location of the flange w.r.t. inertia (world).
Get the calculated robot joint data with erGetJoints(). More...
 
DLLAPI long ER_STDCALL erInvKinRobotBaseTcp (ER_HND er_hnd, DFRAME *bTw)
 Calculating the inverse kinematics transformation.
The bTw is the location of the tcp w.r.t. robots base.
Get the calculated robot joint data with erGetJoints(). More...
 
DLLAPI long ER_STDCALL erInvKinWorldTcp (ER_HND er_hnd, DFRAME *iTw)
 Calculating the inverse kinematics transformation.
The iTw is the location of the tcp w.r.t. inertia (world).
Get the calculated robot joint data with erGetJoints(). More...
 
DLLAPI long ER_STDCALL erSetTool (ER_HND er_hnd, DFRAME *tTw)
 Set robot tool (TCP) data w.r.t. robots flange. More...
 
DLLAPI long ER_STDCALL erGetTool (ER_HND er_hnd, DFRAME *tTw)
 Get robot tool (TCP) data w.r.t. robots flange. More...
 
DLLAPI long ER_STDCALL erGetToolFix (ER_HND er_hnd, DFRAME *tTwfix)
 Get robot tool fix (TCP) data w.r.t. robots flange, without Tool Offset. More...
 
DLLAPI long ER_STDCALL erSetToolOffset (ER_HND er_hnd, DFRAME *wTwo)
 Set robot tool offset (TCP) data w.r.t. robots fix Tcp. More...
 
DLLAPI long ER_STDCALL erGetToolOffset (ER_HND er_hnd, DFRAME *wTwo)
 Get robot tool offset (TCP) data w.r.t. robots fix Tcp. More...
 
DLLAPI long ER_STDCALL erSetBaseRobotBase (ER_HND er_hnd, DFRAME *bTbase)
 Set $BASE (wobj) w.r.t robot base.
The $BASE frame has only effect when IPO_MODE_BASE is set in erSetExtTcpMode()
All targets are defined w.r.t to this BASE frame (program shifting) More...
 
DLLAPI long ER_STDCALL erGetBaseRobotBase (ER_HND er_hnd, DFRAME *bTbase)
 Get $BASE (wobj) w.r.t robot base.
The $BASE frame has only effect when IPO_MODE_BASE is set in erSetExtTcpMode()
All targets are defined w.r.t to this BASE frame (program shifting) More...
 
DLLAPI long ER_STDCALL erSetBaseWorld (ER_HND er_hnd, DFRAME *iTbase)
 Set $BASE (wobj) w.r.t inertia (world). The $BASE frame has only effect when IPO_MODE_BASE is set in erSetExtTcpMode()
All targets are defined w.r.t to this BASE frame (program shifting) More...
 
DLLAPI long ER_STDCALL erGetBaseWorld (ER_HND er_hnd, DFRAME *iTbase)
 Get $BASE (wobj) w.r.t inertia (world). The $BASE frame has only effect when IPO_MODE_BASE is set in erSetExtTcpMode()
All targets are defined w.r.t to this BASE frame (program shifting) More...
 
DLLAPI long ER_STDCALL erSetRobotBase (ER_HND er_hnd, DFRAME *iTb)
 Set robot base location w.r.t. world. More...
 
DLLAPI long ER_STDCALL erGetRobotBase (ER_HND er_hnd, DFRAME *iTb)
 Get robot base location w.r.t. world. More...
 
DLLAPI long ER_STDCALL erGetRobotBaseTip (ER_HND er_hnd, DFRAME *bTt)
 Get robot tip (flange) location w.r.t. robot base. More...
 
DLLAPI long ER_STDCALL erGetRobotBaseTcp (ER_HND er_hnd, DFRAME *bTw)
 Get robot tcp location w.r.t. robot base. More...
 
DLLAPI long ER_STDCALL erGetWorldTip (ER_HND er_hnd, DFRAME *iTt)
 Get robot tip location w.r.t. inertia (world) coorsys. More...
 
DLLAPI long ER_STDCALL erGetWorldTcp (ER_HND er_hnd, DFRAME *iTw)
 Get robot tcp location w.r.t. inertia (world) coorsys. More...
 
DLLAPI long ER_STDCALL erUpdateKin (ER_HND er_hnd)
 Updates the complete kinematics. This function calculates the location of all axis coorsys, the robots tip and tcp w.r.t. robot base.
In most cases the forward kinematics calculation is executed.
Call this function first, before retrieving the location of axis coorsys. More...
 
DLLAPI long ER_STDCALL erGetJointFrameRobotBase (ER_HND er_hnd, long active_jnt_no, DFRAME *bTax)
 Get location of active joint coorsys w.r.t robot base.
Get the number of active joints with erGet_num_dofs() More...
 
DLLAPI long ER_STDCALL erGetJointFrameRobotBase_passive (ER_HND er_hnd, long passive_jnt_no, DFRAME *bTax)
 Get location of passive joint coorsys w.r.t robot base.
Get the number of passive joints with erGet_num_dofs_passive() More...
 
DLLAPI long ER_STDCALL erGetJointFrameWorld (ER_HND er_hnd, long active_jnt_no, DFRAME *iTax)
 Get location of active joint coorsys w.r.t innertia (world).
Get the number of active joints with erGet_num_dofs() More...
 
DLLAPI long ER_STDCALL erGetJointFrameWorld_passive (ER_HND er_hnd, long passive_jnt_no, DFRAME *iTax)
 Get location of passive joint coorsys w.r.t innertia (world).
Get the number of passive joints with erGet_num_dofs_passive() More...
 
DLLAPI long ER_STDCALL erSetExtTcpRobotBase (ER_HND er_hnd, DFRAME *bText, long use_ext_flange)
 Set location of external TCP w.r.t robot base.
Exeption: If use_ext_flange is set, the external TCP w.r.t is defined w.r.t. the (tip) flange of a positioner for example. More...
 
DLLAPI long ER_STDCALL erGetExtTcpRobotBase (ER_HND er_hnd, DFRAME *bText)
 Get location of external TCP w.r.t robot base. More...
 
DLLAPI long ER_STDCALL erSetExtTcpWorld (ER_HND er_hnd, DFRAME *iText)
 Set location of external TCP w.r.t inertia (world). More...
 
DLLAPI long ER_STDCALL erGetExtTcpWorld (ER_HND er_hnd, DFRAME *iText)
 Get location of external TCP w.r.t inertia (world). More...
 
DLLAPI long ER_STDCALL erSetExtTcpMode (ER_HND er_hnd, long ext_tcp_mode)
 Set external TCP mode.
The external TCP can be IPO_MODE_BASE (tool guided) or IPO_MODE_TOOL (work object guided) More...
 
DLLAPI long ER_STDCALL erGetExtTcpMode (ER_HND er_hnd, long *ext_tcp_mode)
 Get external TCP mode.
The external TCP can be IPO_MODE_BASE (tool guided) or IPO_MODE_TOOL (work object guided) More...
 
DLLAPI long ER_STDCALL erGetInvKinID (ER_HND er_hnd, long *invkin_id)
 Inverse kinematics ID for cRobot.
. More...
 
DLLAPI long ER_STDCALL erGetInvKinSubID (ER_HND er_hnd, long *invkinsub_id)
 Inverse kinematics Sub-ID for cRobot.
. More...
 
DLLAPI long ER_STDCALL erSetJointSolutions (ER_HND er_hnd, double *q_solutions, long *q_warnings)
 Set all robot joint solutions. The kinematics joint data q_solutions are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of active joints with erGet_num_dofs()
Get the number of configurations with erGetNumConfigs()
Remarks
Call this function after calling the inverse kinematics transformation, erInvKinRobotBaseTip(), erInvKinWorldTip(), erInvKinRobotBaseTcp(), erInvKinWorldTcp() More...
 
DLLAPI long ER_STDCALL erSetJointDyn (ER_HND er_hnd, double q_dyn, long jnt_no)
 Set a single actual robot joint data. The kinematics joint data q_dyn are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of active joints with erGet_num_dofs() More...
 
DLLAPI long ER_STDCALL erGetRobotBasetoFirstJoint (ER_HND er_hnd, DFRAME *T)
 
DLLAPI long ER_STDCALL erGetJointFrameActiveNext (ER_HND er_hnd, long active_jnt_no, DFRAME *T)
 
DLLAPI long ER_STDCALL erSetJointFrameActiveNext (ER_HND er_hnd, long active_jnt_no, DFRAME *T)
 
DLLAPI long ER_STDCALL erGetJointFrameActiveLast (ER_HND er_hnd, long active_jnt_no, DFRAME *T)
 
DLLAPI long ER_STDCALL erSetJointFrameActiveLast (ER_HND er_hnd, long active_jnt_no, DFRAME *T)
 
DLLAPI long ER_STDCALL erGetJointFramePassiveNext (ER_HND er_hnd, long passive_jnt_no, DFRAME *T)
 
DLLAPI long ER_STDCALL erSetJointFramePassiveNext (ER_HND er_hnd, long passive_jnt_no, DFRAME *T)
 
DLLAPI long ER_STDCALL erGetJointFramePassiveLast (ER_HND er_hnd, long passive_jnt_no, DFRAME *T)
 
DLLAPI long ER_STDCALL erSetJointFramePassiveLast (ER_HND er_hnd, long passive_jnt_no, DFRAME *T)
 
DLLAPI void **ER_STDCALL erGet_erk_kin_usr_ptr (ER_HND er_hnd)
 
DLLAPI long ER_STDCALL erSetHomepos (ER_HND er_hnd, double *homepos)
 Set robot joint homeposition. The kinematics joint homepos are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs() More...
 
DLLAPI long ER_STDCALL erGetHomepos (ER_HND er_hnd, double *homepos)
 Get robot joint homeposition. The kinematics joint homepos are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs() More...
 
DLLAPI long ER_STDCALL erSetSweMin (ER_HND er_hnd, double *swe_min)
 Set fix minimum travel ranges. The kinematics travel ranges swe_min are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs() More...
 
DLLAPI long ER_STDCALL erGetSweMin (ER_HND er_hnd, double *swe_min)
 Get fix minimum travel ranges. The kinematics travel ranges swe_min are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs() More...
 
DLLAPI long ER_STDCALL erGetSweMinCalc (ER_HND er_hnd, double *swe_min_calc)
 Get calculated minimum travel ranges. The kinematics calculated travel ranges swe_min_calc are in units [m] for prismatic joint type
and [rad] for rotational joint type
Use erGetSweCalcMode() to find out if travel ranges are fix or depending on equations
Get the number of joints with erGet_num_dofs() More...
 
DLLAPI long ER_STDCALL erSetSweMax (ER_HND er_hnd, double *swe_max)
 Set fix maximum travel ranges. The kinematics travel ranges swe_max are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs() More...
 
DLLAPI long ER_STDCALL erGetSweMax (ER_HND er_hnd, double *swe_max)
 Get fix maximum travel ranges. The kinematics travel ranges swe_max are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs() More...
 
DLLAPI long ER_STDCALL erGetSweMaxCalc (ER_HND er_hnd, double *swe_max_calc)
 Get calculated maximum travel ranges. The kinematics calculated travel ranges swe_max_calc are in units [m] for prismatic joint type
and [rad] for rotational joint type
Use erGetSweCalcMode() to find out if travel ranges are fix or depending on equations
Get the number of joints with erGet_num_dofs() More...
 
DLLAPI long ER_STDCALL erGetSweMinMaxCalc (ER_HND er_hnd, double *swe_min_calc, double *swe_max_calc)
 Get calculated minimum and maximum travel ranges. The kinematics calculated travel ranges swe_min_calc and swe_max_calc are in units [m] for prismatic joint type
and [rad] for rotational joint type
Use erGetSweCalcMode() to find out if travel ranges are fix or depending on equations
Get the number of joints with erGet_num_dofs() More...
 
DLLAPI long ER_STDCALL erGetSweCalcMode (ER_HND er_hnd, long *swe_calc_mode)
 Get calculation mode for travel ranges Travel ranges can be fixed or depending on joints by a formular for example. More...
 
DLLAPI long ER_STDCALL erSetSweMin_passive (ER_HND er_hnd, double *swe_min_passive)
 Set fix minimum travel ranges for passive joints. The kinematics travel ranges swe_min_passive are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs_passive() More...
 
DLLAPI long ER_STDCALL erGetSweMin_passive (ER_HND er_hnd, double *swe_min_passive)
 Get fix minimum travel ranges from passive joints. The kinematics travel ranges swe_min_passive are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of passive joints with erGet_num_dofs_passive() More...
 
DLLAPI long ER_STDCALL erSetSweMax_passive (ER_HND er_hnd, double *swe_max_passive)
 Set fix maximum travel ranges for passive joints. The kinematics travel ranges swe_max_passive are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs_passive() More...
 
DLLAPI long ER_STDCALL erGetSweMax_passive (ER_HND er_hnd, double *swe_max_passive)
 Get fix maximum travel ranges from passive joints. The kinematics travel ranges swe_max_passive are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of passive joints with erGet_num_dofs_passive() More...
 
DLLAPI long ER_STDCALL erGetConfigName (ER_HND er_hnd, long config_idx, char *config_name)
 Get the name of robot configuration. Get the number of configurations with erGetNumConfigs()
. More...
 
DLLAPI long ER_STDCALL erGetJointName (ER_HND er_hnd, long active_jnt_no, char *jnt_name)
 Get the name of active robot joint. More...
 
DLLAPI long ER_STDCALL erGetJointName_passive (ER_HND er_hnd, long passive_jnt_no, char *jnt_name_passive)
 Get the name of passive robot joint. More...
 
DLLAPI long ER_STDCALL erSetJointSign (ER_HND er_hnd, double *joint_sign)
 Set sign of robot joints. A robot joint sign can be positive +1 or negative -1. More...
 
DLLAPI long ER_STDCALL erGetJointSign (ER_HND er_hnd, double *joint_sign)
 Get sign of robot joints.
A robot joint sign can be positive +1 or negative -1.
See also erGetJointTypes(), erGetJointDirections() More...
 
DLLAPI long ER_STDCALL erSetJointOffset (ER_HND er_hnd, double *joint_offset)
 Set offset of robot joints.
Robot joint offsets joint_offset are in units [m] for prismatic joint type and [rad] for rotational joint type. More...
 
DLLAPI long ER_STDCALL erGetJointOffset (ER_HND er_hnd, double *joint_offset)
 Get offset of robot joints.
Robot joint offsets joint_offset are in units [m] for prismatic joint type and [rad] for rotational joint type. More...
 
DLLAPI long ER_STDCALL erSetVqMax (ER_HND er_hnd, double *vq_max)
 Set maximum of robot joint speeds.
Robot joint speeds vq_max are in units [m/s] for prismatic joint type and [rad/s] for rotational joint type. More...
 
DLLAPI long ER_STDCALL erGetVqMax (ER_HND er_hnd, double *vq_max)
 Get maximum of robot joint speeds.
Robot joint speeds vq_max are in units [m/s] for prismatic joint type and [rad/s] for rotational joint type. More...
 
DLLAPI long ER_STDCALL erSetAqMax (ER_HND er_hnd, double *aq_max)
 Set maximum of robot joint accelerations.
Robot joint accelerations aq_max are in units [m/s^2] for prismatic joint type and [rad/s^2] for rotational joint type. More...
 
DLLAPI long ER_STDCALL erGetAqMax (ER_HND er_hnd, double *aq_max)
 Get maximum of robot joint accelerations.
Robot joint accelerations aq_max are in units [m/s^2] for prismatic joint type and [rad/s^2] for rotational joint type. More...
 
DLLAPI long ER_STDCALL erSetVxMax (ER_HND er_hnd, double vx_max)
 Set maximum cartesian speed. More...
 
DLLAPI long ER_STDCALL erGetVxMax (ER_HND er_hnd, double *vx_max)
 Get maximum cartesian speed. More...
 
DLLAPI long ER_STDCALL erSetVxOriMax (ER_HND er_hnd, double vx_ori_max)
 Set maximum cartesian orientation speed. More...
 
DLLAPI long ER_STDCALL erGetVxOriMax (ER_HND er_hnd, double *vx_ori_max)
 Get maximum cartesian orientation speed. More...
 
DLLAPI long ER_STDCALL erSetAxMax (ER_HND er_hnd, double ax_max)
 Set maximum cartesian acceleration. More...
 
DLLAPI long ER_STDCALL erGetAxMax (ER_HND er_hnd, double *ax_max)
 Get maximum cartesian acceleration. More...
 
DLLAPI long ER_STDCALL erSetAxOriMax (ER_HND er_hnd, double ax_ori_max)
 Set maximum cartesian orientation acceleration. More...
 
DLLAPI long ER_STDCALL erGetAxOriMax (ER_HND er_hnd, double *ax_ori_max)
 Get maximum cartesian orientation acceleration. More...
 
DLLAPI long ER_STDCALL erGetBackLink (ER_HND er_hnd, long *backlink)
 Get robot back link status, obsolete function, use erGetBacklink() More...
 
DLLAPI long ER_STDCALL erSetBacklink (ER_HND er_hnd, long backlink)
 Set robot back link status
The back link status can be one of the following values.
KIN_BACK_LINK_NO=0, KIN_BACK_LINK_YES =1 or KIN_BACK_LINK_UNKNOWN =2
see also erGetBacklink() More...
 
DLLAPI long ER_STDCALL erGetBacklink (ER_HND er_hnd, long *backlink)
 Get robot back link status
The back link status can be one of the following values.
KIN_BACK_LINK_NO=0, KIN_BACK_LINK_YES =1 or KIN_BACK_LINK_UNKNOWN =2
see also erSetBacklink() More...
 
DLLAPI long ER_STDCALL erSetAxis_couplingA2A3 (ER_HND er_hnd, long axis_couplingA2A3)
 Set robot axis coupling between axis 2 and 3
The axis coupling can be one of the following values.
KIN_A2A3_COUPLING_NO=0, KIN_A2A3_COUPLING_YES =1 or KIN_A2A3_COUPLING_UNKNOWN =2
see also erGetAxis_couplingA2A3() More...
 
DLLAPI long ER_STDCALL erGetAxis_couplingA2A3 (ER_HND er_hnd, long *axis_couplingA2A3)
 Get robot axis coupling between axis 2 and 3
The axis coupling can be one of the following values.
KIN_A2A3_COUPLING_NO=0, KIN_A2A3_COUPLING_YES =1 or KIN_A2A3_COUPLING_UNKNOWN =2
see also erSetAxis_couplingA2A3() More...
 
DLLAPI long ER_STDCALL erSetCounter_weight (ER_HND er_hnd, long counter_weight)
 Set robot counter weight
The robot counter weight can be one of the following values.
KIN_COUNTER_WEIGHT_NO=0, KIN_COUNTER_WEIGHT_YES =1 or KIN_COUNTER_WEIGHT_UNKNOWN =2
see also erGetCounter_weight() More...
 
DLLAPI long ER_STDCALL erGetCounter_weight (ER_HND er_hnd, long *counter_weight)
 Get robot counter weight
The robot counter weight can be one of the following values.
KIN_COUNTER_WEIGHT_NO=0, KIN_COUNTER_WEIGHT_YES =1 or KIN_COUNTER_WEIGHT_UNKNOWN =2
see also erSetCounter_weight() More...
 
DLLAPI long ER_STDCALL erSetTurn_interval (ER_HND er_hnd, double *turn_interval)
 Set the turn interval for each robot joints
The kinematics turn interval turn_interval are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs()
See also erGetTurn_interval() More...
 
DLLAPI long ER_STDCALL erGetTurn_interval (ER_HND er_hnd, double *turn_interval)
 Get the turn interval for each robot joints
The kinematics turn interval turn_interval are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs()
See also erSetTurn_interval() More...
 
DLLAPI long ER_STDCALL erSetTurn_offset (ER_HND er_hnd, double *turn_offset)
 Set the turn offset for each robot joints
The kinematics turn offset turn_offset are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs()
See also erGetTurn_offset() More...
 
DLLAPI long ER_STDCALL erGetTurn_offset (ER_HND er_hnd, double *turn_offset)
 Get the turn offset for each robot joints
The kinematics turn offset turn_offset are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs()
See also erSetTurn_offset() More...
 
DLLAPI long ER_STDCALL erSetTurn_value (ER_HND er_hnd, long *turn_value)
 Set the turn value for each robot joint
The turn value turn_value determine the desired Turn in the target for the inverse kinematics calculation and for the trajectory planning
It takes effect if ER_PTP_TARGET_CALC_MODE_TURNS is set. The givin turn value must be a valid value and depends on the turn interval erSetTurn_interval() and the turn offset erSetTurn_offset(),
and as well from the robot joint location and its configuration.
Get the number of joints with erGet_num_dofs()
See also erGetTurn_value() More...
 
DLLAPI long ER_STDCALL erGetTurn_value (ER_HND er_hnd, long *turn_value)
 Get the turn value for each robot joints
The turn value turn_value determine the desired Turn in the target for the inverse kinematics calculation and for the motion planning
It takes effect if ER_PTP_TARGET_CALC_MODE_TURNS is set. Get the number of joints with erGet_num_dofs()
See also erSetTurn_value() More...
 
DLLAPI long ER_STDCALL erINITIALIZE (ER_HND *er_hnd, Host_HND host_hnd=NULL)
 Create a unique kinematics handle.
Opcode 101, Chapter 3.4.1, Page 3-26, same as erInitKin()
Initializes one instance of a robot and creates an unique kinematics handle er_hnd belonging to a robot kinematics.
This handles is necessary to access individual data from the robot and to call other functions. More...
 
DLLAPI long ER_STDCALL erRESET (ER_HND er_hnd)
 Resets an instance of a robot to an initial state.
Opcode 102, Chapter 3.4.1, Page 3-29
Settings are. More...
 
DLLAPI long ER_STDCALL erTERMINATE (ER_HND *er_hnd)
 Terminates an instance of a robot of the Kernel
Opcode 103, Chapter 3.4.1, Page 3-30
See erUnloadKin() More...
 
DLLAPI long ER_STDCALL erSET_INITIAL_POSITION (ER_HND er_hnd, INITIAL_POSITION_DATA *p_initial_position_data)
 Sets the robot model to a position according to the input data
Opcode 116, Chapter 3.4.3, Page 3-50
Remarks
After initialization of the Kernel and after jogging the robot in the Host-Application, this function must be called at least once, before the erSET NEXT TARGET() function can be called. More...
 
DLLAPI long ER_STDCALL erSELECT_TRACKING (ER_HND er_hnd, long conveyor_flags)
 Selects the Tracking On or Off in the Kernel.
Opcode 146, Chapter 3.4.7, Page 3-93
Function not supported
In conveyor_flags, each of the 32 bits specifies if the corresponding conveyor is on or off:
Bit on (1): Conveyor on, Bit off (0): Conveyor off. More...
 
DLLAPI long ER_STDCALL erSET_CONVEYOR_POSITION (ER_HND er_hnd, long input_format, long conveyor_flags, double conveyor_pos)
 Sends the conveyor position to the Kernel.
Opcode 147, Chapter 3.4.7, Page 3-94
Function not supported
The input_format specifies the format of the input to this function. Can be one of the following values:
1: Joint encoder, 2: Joint angle/distance
In conveyor_flags, each of the 32 bits specifies if the corresponding conveyor is on or off:
Bit on (1): Conveyor on, Bit off (0): Conveyor off. More...
 
DLLAPI long ER_STDCALL erDEFINE_EVENT (ER_HND er_hnd, long event_id, long target_id, double resolution, long type_of_event, double event_spec)
 Defines an internal asynchronous event that is to be generated relative to position and/or time in the Kernel.
Opcode 148, Chapter 3.4.8, Page 3-96
Function not supported More...
 
DLLAPI long ER_STDCALL erCANCEL_EVENT (ER_HND er_hnd, long event_id)
 This function makes it possible to cancel an event previously defined in the Kernel by the erDEFINE_EVENT() function.
Opcode 149, Chapter 3.4.8, Page 3-99
Function not supported More...
 
DLLAPI long ER_STDCALL erGET_EVENT (ER_HND er_hnd, long event_nr)
 This function gets information about an internal asynchronous event that occurred in the Kernel.
Opcode 150, Chapter 3.4.8, Page 3-100
Function not supported More...
 
DLLAPI long ER_STDCALL erGET_MESSAGE (ER_HND er_hnd, long message_number)
 Gives information about controller messages that occurred.
Opcode 154, Chapter 3.4.9, Page 3-104
Function not supported Use notify messages instead TErNotifyData. More...
 
DLLAPI long ER_STDCALL erSetTrackingWindow (ER_HND er_hnd, long active, double up, double down, TErTrackingWindowID id_tw, char *name=NULL)
 Activates and deactivates the boundaries for a Tracking Window.
This function enables a tracking window (typical for a painting applications) and defines the boudary Up- and Down-Stream values.
This function works in conjunction with erConnectConveyor(), erConnectConveyorSetSync() and erSetconveyorStartCondition()
Remarks
Connect the robot first with a conveyor, using erConnectConveyor(), and set the synchronization to ER_SYNC_ON, using erConnectConveyorSetSync(), before activating the tracking window.
A tracking window can have one of the following status:
0: TRK_WND_NOT_ACTIVE, 1: TRK_WND_WAITING, 2: TRK_WND_INSIDE or 3: TRK_WND_OUT_OF_BOUNDARY
and will be obtained with the NEXT_STEP_DATA when calling erGET_NEXT_STEP()
Activating a tracking window sets the status to TRK_WND_WAITING.
Deactivating a tracking window sets the status to TRK_WND_NOT_ACTIVE. More...
 
DLLAPI long ER_STDCALL erSetconveyorStartCondition (ER_HND er_hnd, double tx0)
 Sets the conveyor start condition.
This function set the conveyor start condition for the Tracking Window (typical for a painting applications).
The tx0 in units [m] is an offset position in X-direction and is defined w.r.t. to the flange of the conveyor device.
This function works in conjunction with erSetTrackingWindow() More...
 
DLLAPI long ER_STDCALL erSetEvents_DOUT (ER_HND er_hnd, int idx=1, long io_value=ER_EVENT_BOOL_UNDEF, char *io_name=0, long strig_type=ER_EVENT_TRIGGER_OFF, double strig_time=0, double strig_dist=0, long ttrig_type=ER_EVENT_TRIGGER_OFF, double ttrig_time=0, double ttrig_dist=0)
 Set an event for a boolean output
A boolean event for binary outputs is controlled by trigger data, when the movement starts and when the movement reaches the target location.
When a trigger condition is met, the binary output is set to ER_EVENT_BOOL_OFF or ER_EVENT_BOOL_ON.
Trigger data can be set when the movement starts and when the movement reaches the target.
Each trigger consist of three parameters: type ,time and distance.
Trigger signal type can be one of the following values. More...
 
DLLAPI long ER_STDCALL erSetEvents_DIN (ER_HND er_hnd, int idx=1, long io_value=ER_EVENT_BOOL_UNDEF, char *io_name=0, long leadcond_type=ER_EVENT_CONDITION_UNDEF, double leadcond_value=0, long lagcond_type=ER_EVENT_CONDITION_UNDEF, double lagcond_value=0)
 Set event conditions for a binary input for target location
An input is checked before a movement starts (leading) and/or when the movement reaches the target (lagging).
In the case of flyby, the checks are made closed to the start and the target location.
Each check depends on the specified condition type combined with a condition value.
A condition type can be one of the following values. More...
 
DLLAPI long ER_STDCALL erSetSpeedReductionEnable (ER_HND er_hnd, long speed_reduction_enable)
 Set speed reduction enable.
If speed reduction is enabled, the robots TCP speed gets reduced (while motion execution in erGET_NEXT_STEP()) if the desired nominal joint speeds exceeds the maximum allowed joint speed, defined with erSetVqMax().
Remarks
Per default, speed reduction is enabled.
Speed reduction causes the TrajectoryTime to increase, while the RemainingTime represents the minimum time necessary to reach the target. More...
 
DLLAPI long ER_STDCALL erGetSpeedReductionEnable (ER_HND er_hnd, long *speed_reduction_enable)
 Get speed reduction enable.
If speed reduction is enabled, the robots TCP speed gets reduced (while motion execution in erGET_NEXT_STEP()) if the desired nominal joint speeds exceeds the maximum allowed joint speed, defined with erSetVqMax().
Remarks
Per default, speed reduction is enabled.
Speed reduction causes the TrajectoryTime to increase, while the RemainingTime represents the minimum time necessary to reach the target. More...
 
DLLAPI long ER_STDCALL erSELECT_MOTION_TYPE (ER_HND er_hnd, long motion_type)
 Selects the motion type.
Opcode 120, Chapter 3.4.4, Page 3-58
The motion_type can be one of the following values
ER_JOINT = ER_PTP = 1, ER_LIN = 2, ER_SLEW = 3, ER_CIRC = 4. More...
 
DLLAPI long ER_STDCALL erSELECT_TARGET_TYPE (ER_HND er_hnd, long target_type)
 selects one of different types for the specification of targets.
Opcode 121, Chapter 3.4.4, Page 3-59
The target_type can be one of the following values
ER_TARGET_TYPE_ABS = 0 absolute w.r.t. object frame
ER_TARGET_TYPE_ABSJOINT = 9 single axis motion More...
 
DLLAPI long ER_STDCALL erSELECT_TRAJECTORY_MODE (ER_HND er_hnd, long trajectory_on)
 Selects on or off for the trajectory mode.
Opcode 122, Chapter 3.4.4, Page 3-62
The trajectory_on can be one of the following values
0: OFF or 1: ON. More...
 
DLLAPI long ER_STDCALL erSET_ADVANCE_MOTION (ER_HND er_hnd, long Number_of_motion)
 Defines the number of motions, the motion planner may run in advance of the interpolator (look_ahead).
Opcode 127, Chapter 3.4.4, Page 3-67. More...
 
DLLAPI long ER_STDCALL erSET_MOTION_FILTER (ER_HND er_hnd, long filter_factor)
 defines the filter factor for smoothing velocity profiles of motions.
Opcode 128, Chapter 3.4.4, Page 3-68
Per default ER_MOTION_FILTER_GEO is set More...
 
DLLAPI long ER_STDCALL erREVERSE_MOTION (ER_HND er_hnd, double distance)
 Instructs to do a reverse motion.
Opcode 130, Chapter 3.4.4, Page 3-70
The robot moves backwards along the same path as it used to get to the current position. After calling this function, erGET_NEXT_STEP() should be called repeatedly in order to get the reverse motion steps. More...
 
DLLAPI long ER_STDCALL erSET_PAYLOAD_PARAMETER (ER_HND er_hnd, long storage, char *frame_id, long param_number, double param_value)
 Allows specifying payloads at different locations on the robot.
It has to be supported when the payload influences the motion planning.
E.g. the load by a tool on the flange may be specified.
Opcode 160, Chapter 3.4.4, Page 3-71
The storage pecifies where to modify the data and can be one of the following values.
1: Modify in memory, 2: Modify on disk. More...
 
DLLAPI long ER_STDCALL erSET_CONFIGURATION_CONTROL (ER_HND er_hnd, char *param_id, char *param_contents)
 Allows the setting of controller-specific data for the control of robot configurations.
Opcode 161, Chapter 3.4.4, Page 3-72
Function not supported
Use function erSetConfig(), erGetConfig() to change the robots configuration. More...
 
DLLAPI long ER_STDCALL erSET_OVERRIDE_SPEED (ER_HND er_hnd, double correction_value, long correction_type)
 Sets correction values for scaling the programmed speed during program execution.
Opcode 139, Chapter 3.4.5, Page 3-82.
The parameter correction_type specifies when the correction is effective and can be one of the following values.
0: It becomes effective at the next call to erGET_NEXT_STEP()
1: It becomes effective for the next target supplied by erSET_NEXT_TARGET()
See also erSET_OVERRIDE_SPEED_EX() More...
 
DLLAPI long ER_STDCALL erSET_OVERRIDE_ACCELERATION (ER_HND er_hnd, double correction_value, long accel_type, long correction_type)
 Sets correction values for scaling the robot acceleration.
Opcode 155, Chapter 3.4.5, Page 3-83.
The accel_type specifies the type of acceleration and can be one of the following values.
1: Acceleration, 2: Deceleration, 3: Acceleration and deceleration.
The parameter correction_type specifies when the correction is effective and can be one of the following values.
0: It becomes effective at the next call to erGET_NEXT_STEP()
1: It becomes effective for the next target supplied by erSET_NEXT_TARGET()
See also erSET_OVERRIDE_ACCELERATION_EX() More...
 
DLLAPI long ER_STDCALL erSET_OVERRIDE_SPEED_EX (ER_HND er_hnd, ER_HND er_hnd_slave, double speed_override, double tcp_speed_max=0)
 Sets override for scaling the programmed speed during program execution.
If er_hnd_slave is NULL, speed_override and tcp_speed_max set for the kinematics with handle er_hnd for the next call to erSET_NEXT_TARGET().
If er_hnd_slave is equal to er_hnd, speed_override and tcp_speed_max set for the kinematics with handle er_hnd and becomes effective immediatly, erGET_NEXT_STEP().
If er_hnd_slave is set and NOT equal to er_hnd, speed_override and tcp_speed_max set for the kinematics with handle er_hnd_slave and becomes effective immediatly, erGET_NEXT_STEP().
See also erSET_OVERRIDE_SPEED() More...
 
DLLAPI long ER_STDCALL erSET_OVERRIDE_ACCELERATION_EX (ER_HND er_hnd, ER_HND er_hnd_slave, double accel_override, double tcp_accel_max=0)
 Sets override for scaling the programmed acceleration during program execution.
If er_hnd_slave is NULL, speed_override and tcp_speed_max set for the kinematics with handle er_hnd for the next call to erSET_NEXT_TARGET().
If er_hnd_slave is equal to er_hnd, accel_override and tcp_accel_max set for the kinematics with handle er_hnd and becomes effective immediatly, erGET_NEXT_STEP().
If er_hnd_slave is set and NOT equal to er_hnd, accel_override and tcp_accel_max set for the kinematics with handle er_hnd_slave and becomes effective immediatly, erGET_NEXT_STEP().
See also erSET_OVERRIDE_ACCELERATION() More...
 
DLLAPI long ER_STDCALL erSetAutoAccel (ER_HND er_hnd, long autoaccel)
 Enables automatic calculation of acceleration depending on programmed speed.
Using AutoAccel is a proper way to come close to real cycle times.
The parameter autoaccel specifies the effect when planning a new motion and can be one of the following values.
0: ER_AUTOACCEL_MODE_OFF disables auto accel calculation for all motions
1: ER_AUTOACCEL_MODE_POS calculation for CP motions for position
2: ER_AUTOACCEL_MODE_ORI calculation for CP motions
4: ER_AUTOACCEL_MODE_AX Calculation for PTP motions
3: ER_AUTOACCEL_MODE_DEF calculation for CP motions for position and for orientation
7: ER_AUTOACCEL_MODE_ON enables calculation for all motions
Remarks
If auto accel is enabled, other acceleration functions such as erSET_JOINT_ACCELERATIONS(), erSET_CARTESIAN_POSITION_ACCELERATION() and erSET_CARTESIAN_ORIENTATION_ACCELERATION() will have no effect. More...
 
DLLAPI long ER_STDCALL erGetAutoAccel (ER_HND er_hnd, long *autoaccel)
 Get status for automatic calculation of acceleration depending on programmed speed.
Using AutoAccel is a proper way to come close to real cycle times.
The parameter autoaccel specifies the effect when planning a new motion and can be one of the following values.
0: ER_AUTOACCEL_MODE_OFF disables auto accel calculation for all motions
1: ER_AUTOACCEL_MODE_POS calculation for CP motions for position
2: ER_AUTOACCEL_MODE_ORI calculation for CP motions
4: ER_AUTOACCEL_MODE_AX Calculation for PTP motions
3: ER_AUTOACCEL_MODE_DEF calculation for CP motions for position and for orientation
7: ER_AUTOACCEL_MODE_ON enables calculation for all motions
Remarks
If auto accel is enabled, other acceleration functions such as erSET_JOINT_ACCELERATIONS(), erSET_CARTESIAN_POSITION_ACCELERATION() and erSET_CARTESIAN_ORIENTATION_ACCELERATION() will have no effect. More...
 
DLLAPI long ER_STDCALL erSetAccSet (ER_HND er_hnd, double acc, double ramp)
 Set lagging of accelerations.
Using AccSet is a proper way to come close to real cycle times when the robot carries high payloads for example.
The parameter acc and ramp are given in percentage values in the range from 20% to 100%.
acc: Acceleration and Deceleration as percentage value of normal values.
ramp: Change of Acceleration and Deceleration as percentage value of normal values. More...
 
DLLAPI long ER_STDCALL erGetAccSet (ER_HND er_hnd, double *acc, double *ramp)
 Get lagging of accelerations.
Using AccSet is a proper way to come close to real cycle times when the robot carries high payloads for example.
The parameter acc and ramp are given in percentage values in the range from 20% to 100%.
acc: Acceleration and Deceleration as percentage value of normal values.
ramp: Change of Acceleration and Deceleration as percentage value of normal values. More...
 
DLLAPI long ER_STDCALL erSET_INTERPOLATION_TIME (ER_HND er_hnd, double InterpolationTime)
 Sets the interpolation time.
Opcode 119, Chapter 3.4.3, Page 3-56 Set the interpolation time step. This has an effect when calling erGET_NEXT_STEP()
Per default the interpolation time is set to 50ms. More...
 
DLLAPI long ER_STDCALL erSELECT_ORIENTATION_INTERPOLATION_MODE (ER_HND er_hnd, long interpolation_mode, long ori_const)
 Set orientation interpolation mode.
Opcode 123, Chapter 3.4.4, Page 3-63
The interpolation_mode is per default =1 one angle (QUATERNION)
The ori_const is 0: Orientation is variant or 1: Orientation is constant. More...
 
DLLAPI long ER_STDCALL erSELECT_CIRCULAR_ORIENTATION_INTERPOLATION_MODE (ER_HND er_hnd, long circ_orientation_interpolation_mode)
 Selects the circular orientation interpolation mode.
The parameter circ_orientation_interpolation_mode specifies how the orientation is interpolated during a circle motion and can be one of the following values.
0: ER_CIRC_ORI_INTERPOLATION_START_END, 1: ER_CIRC_ORI_INTERPOLATION_START_VIA_END, 2: ER_CIRC_ORI_INTERPOLATION_START_VIAORI_END
3: ER_CIRC_ORI_INTERPOLATION_TANGENTIAL, 4: ER_CIRC_ORI_INTERPOLATION_FIX. More...
 
DLLAPI long ER_STDCALL erSELECT_DOMINANT_INTERPOLATION (ER_HND er_hnd, long dominant_int_type, long dominant_int_param=0)
 Sets the interplation space defining the movement.
Opcode 124, Chapter 3.4.4, Page 3-66
The parameter dominant_int_type specifies the dominant interpolation type and can be one of the following values.
ER_DOMINANT_INTERPOLATION_POS, ER_DOMINANT_INTERPOLATION_ORI, ER_DOMINANT_INTERPOLATION_AXIS, ER_DOMINANT_INTERPOLATION_AUTO
The parameter dominant_int_param ( not supported) specifies an extra parameter for certain interpolation types and can be one of the following values.
2: specifies which orientation component is master.
3: specifies which axis is master.
If dominant_int_param is 0 then the controller will select an axis. More...
 
DLLAPI long ER_STDCALL erSET_JOINT_SPEEDS (ER_HND er_hnd, long all_joint_flags, long joint_flags, double speed_percent)
 sets the joint speed expressed as percentage of the maximal joint speed.
Opcode 131, Chapter 3.4.5, Page 3-74.
Remarks
If all_joint_flags is 1, the value in speed_percent is in [rad/s] for rotational joint type and in [m/s] for prismatic joint type.
It is recommended to set all_joint_flags =0 and use joint_flags, where speed_percent is a percentage value.
The maximum joint speeds can be changed with erSetVqMax() and erGetVqMax(). More...
 
DLLAPI long ER_STDCALL erSET_CARTESIAN_POSITION_SPEED (ER_HND er_hnd, double speed_value)
 Sets the speed for Cartesian motion.
Opcode 133, Chapter 3.4.5, Page 3-75. More...
 
DLLAPI long ER_STDCALL erSET_CARTESIAN_ORIENTATION_SPEED (ER_HND er_hnd, long rotation_no, double speed_ori_value)
 Sets the speed for the orientation during Cartesian motion.
Opcode 134, Chapter 3.4.5, Page 3-76.
The rotation_no should be 1. More...
 
DLLAPI long ER_STDCALL erSET_JOINT_ACCELERATIONS (ER_HND er_hnd, long all_joint_flags, long joint_flags, double accel_percent, long accel_type)
 Sets the joint accelerations expressed as percentage of the maximal joint acceleration.
Opcode 135, Chapter 3.4.5, Page 3-77.
Remarks
If all_joint_flags is 1, the value in accel_percent is in [rad/s^2] for rotational joint type and in [m/s^2] for prismatic joint type.
It is recommended to set all_joint_flags =0 and use joint_flags, where accel_percent is a percentage value.
The maximum joint accelerations can be changed with erSetAqMax() and erGetAqMax().
The accel_type specifies the type of acceleration and can be one of the following values.
1: Acceleration, 2: Deceleration, 3: Acceleration and deceleration. More...
 
DLLAPI long ER_STDCALL erSET_CARTESIAN_POSITION_ACCELERATION (ER_HND er_hnd, double accel_value, long accel_type)
 Sets acceleration for cartesian motion [m/sec^2].
Opcode 137, Chapter 3.4.5, Page 3-78.
The accel_type specifies the type of acceleration and can be one of the following values.
1: Acceleration, 2: Deceleration, 3: Acceleration and deceleration. More...
 
DLLAPI long ER_STDCALL erSET_CARTESIAN_ORIENTATION_ACCELERATION (ER_HND er_hnd, long rotation_no, double accel_ori_value, long accel_type)
 Sets acceleration for the orientation during cartesian motion [m/sec^2].
Opcode 138, Chapter 3.4.5, Page 3-79.
The rotation_no should be 1.
The accel_type specifies the type of acceleration and can be one of the following values.
1: Acceleration, 2: Deceleration, 3: Acceleration and deceleration. More...
 
DLLAPI long ER_STDCALL erGET_CARTESIAN_POSITION_ACCELERATION (ER_HND er_hnd, double *accel_value, long accel_type)
 Gets acceleration for cartesian motion [m/sec^2].
The accel_type specifies the type of acceleration and can be one of the following values.
1: Acceleration, 2: Deceleration. More...
 
DLLAPI long ER_STDCALL erGET_CARTESIAN_ORIENTATION_ACCELERATION (ER_HND er_hnd, long rotation_no, double *accel_ori_value, long accel_type)
 Gets acceleration for the orientation during cartesian motion [m/sec^2].
The rotation_no should be 1.
The accel_type specifies the type of acceleration and can be one of the following values.
1: Acceleration, 2: Deceleration. More...
 
DLLAPI long ER_STDCALL erSET_JOINT_JERKS (ER_HND er_hnd, long all_joint_flags, long joint_flags, double jerk_percent, long jerk_type)
 Sets the joint jerk expressed as a percentage of the maximal joint jerk for each specified joint.
Opcode 162, Chapter 3.4.5, Page 3-80.
Remarks
If all_joint_flags is 1, the value in jerk_percent is in [rad/s^3] for rotational joint type and in [m/s^3] for prismatic joint type.
It is recommended to set all_joint_flags =0 and use joint_flags, where jerk_percent is a percentage value.
The jerk_type specifies the type of jerk and can be one of the following values.
1: Jerk during acceleration, 2: Jerk during deceleration, 3: Jerk during acceleration and deceleration. More...
 
DLLAPI long ER_STDCALL erSET_MOTION_TIME (ER_HND er_hnd, double time_value)
 Specifies the motion time for the next motion.
Opcode 156, Chapter 3.4.5, Page 3-81. More...
 
DLLAPI long ER_STDCALL erSELECT_FLYBY_MODE (ER_HND er_hnd, long flyby_on)
 Defines rounding / flyby condition.
Opcode 140, Chapter 3.4.6, Page 3-85
Per default Flyby is disabled
In case of flyby, the robot moves through a CP target with programmed speeds and will not decelerate. Disbable flyby, to reach the target with zero speed (fine position). More...
 
DLLAPI long ER_STDCALL erSET_FLYBY_CRITERIA_PARAMETER (ER_HND er_hnd, long param_number, long joint_nr, double param_value)
 Sets the value of a flyby parameter.
Opcode 141, Chapter 3.4.6, Page 3-86
Function not supported More...
 
DLLAPI long ER_STDCALL erSELECT_FLYBY_CRITERIA (ER_HND er_hnd, long param_number)
 Selects a flyby criterion (parameter).
Opcode 142, Chapter 3.4.6, Page 3-87
Function not supported More...
 
DLLAPI long ER_STDCALL erCANCEL_FLYBY_CRITERIA (ER_HND er_hnd, long param_number)
 Cancels (unselects) a fly-by criterion.
Opcode 143, Chapter 3.4.6, Page 3-88
Function not supported More...
 
DLLAPI long ER_STDCALL erSELECT_POINT_ACCURACY (ER_HND er_hnd, long accuracy_type)
 Selects a criterion for when a target is reached.
Opcode 144, Chapter 3.4.6, Page 3-89
Function not supported More...
 
DLLAPI long ER_STDCALL erSET_POINT_ACCURACY_PARAMETER (ER_HND er_hnd, long accuracy_type, double accuracy_value)
 Sets the value of a parameter determining point accuracy.
Opcode 145, Chapter 3.4.6, Page 3-90
Function not supported More...
 
DLLAPI long ER_STDCALL erSET_NEXT_TARGET (ER_HND er_hnd, NEXT_TARGET_DATA *p_next_target_data)
 Sends the next target position. This may include intermediate position, radius and angle for circular motion.
Opcode 117, Chapter 3.4.3, Page 3-52
This function prepares the next motion based on givin target data in NEXT_TARGET_DATA.
If the return is OK, the TrajectoryTime in [sec] is calculated
Remarks
The function may pass a position and a further TargetParamValue at the same time. For some motion types the Kernel may require more than one call of erSET_NEXT_TARGET() before it can start the motion (e.g. ER_CIRC). Function erGET_NEXT_STEP() reports this as normal, returning Status = 1 (need more data) and ElapsedTime = 0. Use erSET_NEXT_TARGET_ADVANCE() to define data for the about next target. More...
 
DLLAPI long ER_STDCALL erSET_NEXT_TARGET_ADVANCE (ER_HND er_hnd, NEXT_TARGET_DATA_ADVANCE *p_next_target_data_advance)
 Sends about next target data
The function gives information about the next target, stored in NEXT_TARGET_DATA_ADVANCE
Remarks
This function should be called once, just before calling erSET_NEXT_TARGET()
Parameter AdvanceParam=2 sets all data in NEXT_TARGET_DATA_ADVANCE to default values. More...
 
DLLAPI long ER_STDCALL erSTOP_MOTION (ER_HND er_hnd)
 Stops the on-going motion toward the target.
Opcode 151, Chapter 3.4.8, Page 3-101
See also erCONTINUE_MOTION(), erCANCEL_MOTION()
Remarks
After calling this function, the erGET_NEXT_STEP() should be called repeatedly until its Status is 2 (speed is zero) in order to get the deceleration steps. More...
 
DLLAPI long ER_STDCALL erCONTINUE_MOTION (ER_HND er_hnd)
 Continues a motion that was stopped with the erSTOP_MOTION() function.
Opcode 152, Chapter 3.4.8, Page 3-102
See also erSTOP_MOTION(), erCANCEL_MOTION()
Remarks
After calling this function, the erGET_NEXT_STEP() should be called repeatedly in order to get the acceleration steps. More...
 
DLLAPI long ER_STDCALL erCANCEL_MOTION (ER_HND er_hnd)
 Cancel a motion that was stopped with erSTOP_MOTION() function.
Opcode 153, Chapter 3.4.8, Page 3-103
See also erSTOP_MOTION(), erCONTINUE_MOTION()
Remarks
This function clears any remaining target positions in the Kernel. More...
 
DLLAPI long ER_STDCALL erGET_NEXT_STEP (ER_HND er_hnd, long output_format, NEXT_STEP_DATA *p_next_step_data, double time)
 Returns the next interpolated position step
the elapsed time and supplementary information like events, joint limits and messages.
Opcode 118, Chapter 3.4.3, Page 3-54
The output_format specifies the format desired as output and can be one of the following values.
1: Joint encoder, 2: Joint angle/distance, 4: Cartesian ( w/orientation ), 5: Cartesian and joint encoder, 6: Cartesian and joint angle/distance
Per default, output_format should be set = 2
Remarks
After the target position has been set (using the erSET_NEXT_TARGET()), this function should be called repeatedly until the Status is 1 or 2, specifying that the Host-Application interpreter can continue. If Status is 1 and the Host-Application interpreter finds more target positions it should send the next one to this Kernel using the erSET_NEXT_TARGET() function before erGET_NEXT_STEP() is called again. If the Status is 1 and the Host-Application interpreter finds no more target positions it can continue to call this function until Status is 2. More...
 
DLLAPI long ER_STDCALL erGetCurrentStepData (ER_HND er_hnd, CURRENT_STEP_DATA *p_current_step_data)
 Returns interpolation data for the current interpolated step
Remarks
After the next step data are calculated, calling erGET_NEXT_STEP() , this function return additional interpolated data,
such as motion type, distance to Target, time to Target, Target ID, Override, ... More...
 
DLLAPI long ER_STDCALL erSET_OVERRIDE_POSITION (ER_HND er_hnd, DFRAME *PosOffset)
 Sets a correction offset which will be added to the path during program execution.
Opcode 129, Chapter 3.4.4, Page 3-69
This function can be used for sensor-compensated motion. It is effective at each time step. The passed value is valid until the function is called again. More...
 
DLLAPI TErTargetID ER_STDCALL erGET_CURRENT_TARGETID (ER_HND er_hnd)
 Returns the TargetID of the motion in execution.
Opcode 163, Chapter 3.4.6, Page 3-91. More...
 
DLLAPI long ER_STDCALL erInitToolPath (ER_HND er_hnd, ER_TOOLPATH_HND *er_tpth_hnd)
 Create a unique tool path handle for a kinematics. More...
 
DLLAPI long ER_STDCALL erUnloadToolPath (ER_TOOLPATH_HND *er_tpth_hnd)
 Unload an instance of a kinematics tool path. More...
 
DLLAPI long ER_STDCALL erInsertToolPath (ER_HND er_hnd, ER_TOOLPATH_HND *er_tpth_hnd, ER_TOOLPATH_HND er_tpth_hnd_ref)
 Create and insert a unique tool path handle.
The created tool path handle er_tpth_hnd is inserted before the tool path handle er_tpth_hnd_ref
Remarks
If parameter er_tpth_hnd_ref is NULL, the new tool path is appended. More...
 
DLLAPI long ER_STDCALL erSwapToolPath (ER_TOOLPATH_HND er_tpth_hnd1, ER_TOOLPATH_HND er_tpth_hnd2)
 Swap two tool pathes.
Swaps the position of two tool path handles. More...
 
DLLAPI long ER_STDCALL erToolPathGetTargetLocationNumber (ER_TOOLPATH_HND er_tpth_hnd)
 Get the number of target locations in tool path. More...
 
DLLAPI ER_HND ER_STDCALL erToolPathGetER_HND (ER_TOOLPATH_HND er_tpth_hnd)
 Device Handle belonging to tool path.
This method is obsolete -> use erToolPathGetRobotHandle() More...
 
DLLAPI char *ER_STDCALL erToolPathName (ER_TOOLPATH_HND er_tpth_hnd)
 Name of tool path. More...
 
DLLAPI long ER_STDCALL erToolPathEnable (ER_TOOLPATH_HND er_tpth_hnd, long enable)
 Enable or disable tool path
Parameter enable is one of ER_ONOFF_DISABLE, ER_ONOFF_ENABLE, ER_ONOFF_STATUS. More...
 
DLLAPI ER_HND ER_STDCALL erToolPathGetRobotHandle (ER_TOOLPATH_HND er_tpth_hnd)
 Get device robot handle belonging to tool path handle. More...
 
DLLAPI ER_HND ER_STDCALL erToolPathGetTrackMotionHandle (ER_TOOLPATH_HND er_tpth_hnd)
 Get device track motion handle belonging to tool path handle. More...
 
DLLAPI ER_HND ER_STDCALL erToolPathGetPositionerHandle (ER_TOOLPATH_HND er_tpth_hnd)
 Get device positioner handle belonging to tool path handle. More...
 
DLLAPI ER_HND ER_STDCALL erToolPathGetConveyorHandle (ER_TOOLPATH_HND er_tpth_hnd)
 Get device conveyor handle belonging to tool path handle. More...
 
DLLAPI long ER_STDCALL erToolPathSetTrackMotionHandle (ER_TOOLPATH_HND er_tpth_hnd, ER_HND hnd_TrackMotion=NULL)
 Set track motion handle belonging to tool path handle.
The tool path handles the track motion device as external axis, see erConnectTrackMotion()
hnd_TrackMotion=NULL will remove track motion handle from the tool path. More...
 
DLLAPI long ER_STDCALL erToolPathSetPositionerHandle (ER_TOOLPATH_HND er_tpth_hnd, ER_HND hnd_Positioner=NULL)
 Set positioner handle belonging to tool path handle.
The tool path handles the positioner device as external axis, see erConnectPositioner()
hnd_Positioner=NULL will remove positioner handle from the tool path. More...
 
DLLAPI long ER_STDCALL erToolPathSetConveyorHandle (ER_TOOLPATH_HND er_tpth_hnd, ER_HND hnd_Conveyor=NULL)
 Set conveyor handle belonging to tool path handle.
The tool path handles the conveyor device as external axis, see erConnectConveyor()
hnd_Conveyor=NULL will remove conveyor handle from the tool path. More...
 
DLLAPI char *ER_STDCALL erToolPathLogFileName (ER_TOOLPATH_HND er_tpth_hnd)
 Name log file. More...
 
DLLAPI char *ER_STDCALL erToolPathPrgFileName (ER_TOOLPATH_HND er_tpth_hnd)
 Name program file. More...
 
DLLAPI ER_TARGET_LOCATION_HND ER_STDCALL erToolPathGetTargetLocationFirst (ER_TOOLPATH_HND er_tpth_hnd)
 Get the first 'target location handle' in the tool path. More...
 
DLLAPI ER_TARGET_LOCATION_HND ER_STDCALL erToolPathGetTargetLocationLast (ER_TOOLPATH_HND er_tpth_hnd)
 Get the last 'target location handle' in the tool path. More...
 
DLLAPI long ER_STDCALL CpyEventsTemplate (ER_TOOLPATH_HND er_tpth_hnd, ER_TARGET_EVENTS_HND hnd)
 Copy events to template data.
The events defined with events handle hnd are copied to the events template belonging to the tool path handle er_tpth_hnd. More...
 
DLLAPI ER_TARGET_EVENTS_HND ER_STDCALL GetEventsTemplateHnd (ER_TOOLPATH_HND er_tpth_hnd)
 Get events template data from tool path.
Get the events template data belonging to the tool path er_tpth_hnd. More...
 
DLLAPI long ER_STDCALL CpyMotionAttributesTemplate (ER_TOOLPATH_HND er_tpth_hnd, ER_TARGET_ATTRIBUTES_HND hnd)
 Copy attributes to template data.
The attributes defined with attribute handle hnd are copied to the attribute template belonging to the tool path handle er_tpth_hnd. More...
 
DLLAPI ER_TARGET_ATTRIBUTES_HND ER_STDCALL GetMotionAttributesTemplateHnd (ER_TOOLPATH_HND er_tpth_hnd)
 Get attributes template data from tool path.
Get the attributes template data belonging to the tool path er_tpth_hnd. More...
 
DLLAPI long ER_STDCALL CpyMoveJointTemplate (ER_TOOLPATH_HND er_tpth_hnd, ER_TARGET_MOVE_JOINT_HND hnd)
 Copy move joint data to template data.
The move joint data defined with move joint handle hnd are copied to the move joint template belonging to the tool path handle er_tpth_hnd. More...
 
DLLAPI ER_TARGET_MOVE_JOINT_HND ER_STDCALL GetMoveJointTemplate (ER_TOOLPATH_HND er_tpth_hnd)
 Get move joint template data from tool path.
Get the move joint template data belonging to the tool path er_tpth_hnd. More...
 
DLLAPI long ER_STDCALL CpyMoveCPTemplate (ER_TOOLPATH_HND er_tpth_hnd, ER_TARGET_MOVE_CP_HND hnd)
 Copy move cp data to template data.
The move cp data defined with move cp handle hnd are copied to the move cp template belonging to the tool path handle er_tpth_hnd. More...
 
DLLAPI ER_TARGET_MOVE_CP_HND ER_STDCALL GetMoveCPTemplate (ER_TOOLPATH_HND er_tpth_hnd)
 Get move cp template data from tool path.
Get the move cp template data belonging to the tool path er_tpth_hnd. More...
 
DLLAPI long ER_STDCALL CpyExtAxTrackMotionTemplate (ER_TOOLPATH_HND er_tpth_hnd, ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND hnd)
 Copy external axis track motion data to template data.
The external axis track motion data defined with external axis track motion handle hnd are copied to the external axis track motion template belonging to the tool path handle er_tpth_hnd. More...
 
DLLAPI ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND ER_STDCALL GetExtAxTrackMotionTemplate (ER_TOOLPATH_HND er_tpth_hnd)
 Get external axis track motion template data from tool path.
Get the external axis track motion template data belonging to the tool path er_tpth_hnd. More...
 
DLLAPI long ER_STDCALL CpyExtAxPositionerTemplate (ER_TOOLPATH_HND er_tpth_hnd, ER_TARGET_EXTAX_DEVICE_POSITIONER_HND hnd)
 Copy external axis positioner data to template data.
The external axis positioner data defined with external axis positioner handle hnd are copied to the external axis positioner template belonging to the tool path handle er_tpth_hnd. More...
 
DLLAPI ER_TARGET_EXTAX_DEVICE_POSITIONER_HND ER_STDCALL GetExtAxPositionerTemplate (ER_TOOLPATH_HND er_tpth_hnd)
 Get external axis positioner template data from tool path.
Get the external axis positioner template data belonging to the tool path er_tpth_hnd. More...
 
DLLAPI long ER_STDCALL CpyExtAxConveyorTemplate (ER_TOOLPATH_HND er_tpth_hnd, ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND hnd)
 Copy external axis conveyor data to template data.
The external axis conveyor data defined with external axis conveyor handle hnd are copied to the external axis conveyor template belonging to the tool path handle er_tpth_hnd. More...
 
DLLAPI ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND ER_STDCALL GetExtAxConveyorTemplate (ER_TOOLPATH_HND er_tpth_hnd)
 Get external axis conveyor template data from tool path.
Get the external axis conveyor template data belonging to the tool path er_tpth_hnd. More...
 
DLLAPI long ER_STDCALL erToolPathReset (ER_TOOLPATH_HND er_tpth_hnd)
 Reset all tool path target locations.
All target locations defined in tool path er_tpth_hnd are resetted to default values and set to invalid. More...
 
DLLAPI long ER_STDCALL erToolPathResetInitRobot (ER_TOOLPATH_HND er_tpth_hnd, double *q_start=NULL)
 Set initial joint start location for the robot.
Remarks
Read current joint data from loaded robot. This method must be called before the interpolation starts. More...
 
DLLAPI long ER_STDCALL erToolPathResetInitTrackMotion (ER_TOOLPATH_HND er_tpth_hnd, double *q_start=NULL)
 Set initial joint start location for the TrackMotion.
Remarks
Read current joint data from loaded TrackMotion. This method must be called before the interpolation starts. More...
 
DLLAPI long ER_STDCALL erToolPathResetInitPositioner (ER_TOOLPATH_HND er_tpth_hnd, double *q_start=NULL)
 Set initial joint start location for the Positioner.
Remarks
Read current joint data from loaded Positioner. This method must be called before the interpolation starts. More...
 
DLLAPI long ER_STDCALL erToolPathResetInitConveyor (ER_TOOLPATH_HND er_tpth_hnd, double *q_start=NULL)
 Set initial joint start location for the Conveyor.
Remarks
Read current joint data from loaded Conveyor. This method must be called before the interpolation starts. More...
 
DLLAPI long ER_STDCALL erToolPathSetInitPos (ER_TOOLPATH_HND er_tpth_hnd, double InterpolationTime=0)
 Initializes the Trajectory Planner based on current settings.
Remarks
This method must be called before the interpolation starts, see erGET_NEXT_TOOLPATH_STEP() More...
 
DLLAPI long ER_STDCALL erGET_NEXT_TOOLPATH_STEP_INIT (ER_TOOLPATH_HND er_tpth_hnd, long cntrl=ER_MOP_GNTPS_CNTRL_INIT)
 Initializes the interpolation through a complete tool path
Parameter cntrl must be set to ER_MOP_GNTPS_CNTRL_INIT
and can be extended by an individual bitwise-inclusive-OR operator (|) of. More...
 
DLLAPI long ER_STDCALL erGET_NEXT_TOOLPATH_STEP (ER_TOOLPATH_HND er_tpth_hnd, long cntrl, NEXT_STEP_DATA *p_next_step_data=NULL, double time=0)
 Interpolation through a complete tool path
Parameter cntrl is an individual bitwise-inclusive-OR operator (|) of ER_MOP_GNTPS_CNTRL_NEXT_STEP, ER_MOP_GNTPS_CNTRL_UPDATE_GEO, ER_MOP_GNTPS_CNTRL_STEPDATA_OUT
Remarks
Before using this method, call erGET_NEXT_TOOLPATH_STEP_INIT(), see also erGET_NEXT_STEP() More...
 
DLLAPI ER_TARGET_LOCATION_HND ER_STDCALL erGET_NEXT_TOOLPATH_STEP_cTargetLocation (ER_TOOLPATH_HND er_tpth_hnd)
 Get the current 'target location handle' while interpolation through a complete tool path. More...
 
DLLAPI long ER_STDCALL erGET_NEXT_TOOLPATH_STEP_TERMINATE (ER_TOOLPATH_HND er_tpth_hnd)
 Terminates interpolation
Remarks
This method must be called after the interpolation of a tool path, see erGET_NEXT_TOOLPATH_STEP() More...
 
DLLAPI long ER_STDCALL erTargetLocationReset (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Reset Target location to default values
Remarks
The target location is marked as invalid.
See ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid() to set, unset the validity of a target location or request the validity status. More...
 
DLLAPI long ER_STDCALL erAddTargetLocation (ER_TOOLPATH_HND er_tpth_hnd, ER_TARGET_LOCATION_HND *er_tarloc_hnd)
 Add a new target location to a tool path
Remarks
The new target location is reset to default values and marked as invalid, use erGetTargetLocationNumber() to receive the number of target locations in the tool path.
See ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid() to set, unset the validity of a target location or request the validity status. More...
 
DLLAPI long ER_STDCALL erInsertTargetLocation (ER_TOOLPATH_HND er_tpth_hnd, ER_TARGET_LOCATION_HND *er_tarloc_hnd, ER_TARGET_LOCATION_HND er_tarloc_hnd_ref=NULL)
 Insert a new target location to a tool path before an existing target location
Remarks
The new target location is inserted before the target location with handle er_tarloc_hnd_ref.
If parameter er_tarloc_hnd_ref is NULL, the new target location is appended, see erAddTargetLocation().
The new target location is reset to default values and marked as invalid, use erGetTargetLocationNumber() to receive the number of target locations in the tool path.
See ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid() to set, unset the validity of a target location or request the validity status. More...
 
DLLAPI long ER_STDCALL erUnloadTargetLocation (ER_TARGET_LOCATION_HND *er_tarloc_hnd)
 Unload/delete a target location from a tool path
Remarks
Use erGetTargetLocationNumber() to receive the number of remaining target locations in the tool path. More...
 
DLLAPI long ER_STDCALL erSwapTargetLocation (ER_TARGET_LOCATION_HND er_tarloc_hnd1, ER_TARGET_LOCATION_HND er_tarloc_hnd2)
 Swap the order of two target location in a tool path
Remarks
Both target location handle must be in the same tool path.
Use erGetTargetLocationIdx() to get the belonging index for each target location. More...
 
DLLAPI long ER_STDCALL erGetTargetLocationNumber (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Number of target locations in a tool path. More...
 
DLLAPI ER_HND ER_STDCALL erhGetTargetLocationER_HND (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Device handle belonging to target location. More...
 
DLLAPI ER_TARGET_LOCATION_HND ER_STDCALL erGetTargetLocationFirst (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Get first target location in a tool path. More...
 
DLLAPI ER_TARGET_LOCATION_HND ER_STDCALL erGetTargetLocationLast (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Get last target location in a tool path. More...
 
DLLAPI ER_TARGET_LOCATION_HND ER_STDCALL erGetTargetLocationNext (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Get next target location in a tool path. More...
 
DLLAPI ER_TARGET_LOCATION_HND ER_STDCALL erGetTargetLocationPrev (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Get previous target location in a tool path. More...
 
DLLAPI long ER_STDCALL erSetTargetLocation_Move_JointAbs (ER_TARGET_LOCATION_HND er_tarloc_hnd, double *JointPos, double speed_percent=0, double override_speed=0, double *Tool=0)
 Move_JointAbs, full synchronized PTP, motion definition for target location
Remarks
Use erAddTargetLocation() to create a valid target location handle er_tarloc_hnd
The target location will be set to valid after successful motion definition, see ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid() More...
 
DLLAPI long ER_STDCALL erSetTargetLocation_Move_Joint (ER_TARGET_LOCATION_HND er_tarloc_hnd, double *CartPosVec, long configuration=0, long ptp_target_calculation_mode=ER_PTP_TARGET_CALC_MODE_UNDEF, double speed_percent=0, double override_speed=0, double *Tool=0, double *Base=0)
 Move_Joint, full synchronized PTP, motion definition for target location
Remarks
Use erAddTargetLocation() to create a valid target location handle er_tarloc_hnd
The target location will be set to valid after successful motion definition, see ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid() More...
 
DLLAPI long ER_STDCALL erSetTargetLocation_Move_Joint_Frame (ER_TARGET_LOCATION_HND er_tarloc_hnd, DFRAME *CartPosFrame, long configuration=0, long ptp_target_calculation_mode=ER_PTP_TARGET_CALC_MODE_UNDEF, double speed_percent=0, double override_speed=0, DFRAME *ToolFrame=0, DFRAME *BaseFrame=0)
 Move_Joint, full synchronized PTP, motion definition for target location
Remarks
Use erAddTargetLocation() to create a valid target location handle er_tarloc_hnd
The target location will be set to valid after successful motion definition, see ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid() More...
 
DLLAPI long ER_STDCALL erSetTargetLocation_Move_SlewAbs (ER_TARGET_LOCATION_HND er_tarloc_hnd, double *JointPos, double speed_percent=0, double override_speed=0, double *Tool=0)
 Move_SlewAbs, not synchronized PTP, motion definition for target location
Remarks
Use erAddTargetLocation() to create a valid target location handle er_tarloc_hnd
The target location will be set to valid after successful motion definition, see ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid() More...
 
DLLAPI long ER_STDCALL erSetTargetLocation_Move_Slew (ER_TARGET_LOCATION_HND er_tarloc_hnd, double *CartPosVec, long configuration=0, long ptp_target_calculation_mode=ER_PTP_TARGET_CALC_MODE_UNDEF, double speed_percent=0, double override_speed=0, double *Tool=0, double *Base=0)
 Move_Slew, not synchronized PTP, motion definition for target location
Remarks
Use erAddTargetLocation() to create a valid target location handle er_tarloc_hnd
The target location will be set to valid after successful motion definition, see ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid() More...
 
DLLAPI long ER_STDCALL erSetTargetLocation_Move_Slew_Frame (ER_TARGET_LOCATION_HND er_tarloc_hnd, DFRAME *CartPosFrame, long configuration=0, long ptp_target_calculation_mode=ER_PTP_TARGET_CALC_MODE_UNDEF, double speed_percent=0, double override_speed=0, DFRAME *ToolFrame=0, DFRAME *BaseFrame=0)
 Move_Slew, not synchronized PTP, motion definition for target location
Remarks
Use erAddTargetLocation() to create a valid target location handle er_tarloc_hnd
The target location will be set to valid after successful motion definition, see ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid() More...
 
DLLAPI long ER_STDCALL erSetTargetLocation_Move_LIN (ER_TARGET_LOCATION_HND er_tarloc_hnd, double *CartPosVec, double speed_cp=0, double speed_ori=0, double override_speed=0, long flyby_on=-1, double *Tool=0, double *Base=0)
 Move_LIN, continious path motion definition for target location
Remarks
Use erAddTargetLocation() to create a valid target location handle er_tarloc_hnd
The target location will be set to valid after successful motion definition, see ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid() More...
 
DLLAPI long ER_STDCALL erSetTargetLocation_Move_LIN_Frame (ER_TARGET_LOCATION_HND er_tarloc_hnd, DFRAME *CartPosFrame, double speed_cp=0, double speed_ori=0, double override_speed=0, long flyby_on=-1, DFRAME *ToolFrame=0, DFRAME *BaseFrame=0)
 Move_LIN, continious path motion definition for target location
Remarks
Use erAddTargetLocation() to create a valid target location handle er_tarloc_hnd
The target location will be set to valid after successful motion definition, see ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid() More...
 
DLLAPI long ER_STDCALL erSetTargetLocation_Move_CIRC (ER_TARGET_LOCATION_HND er_tarloc_hnd, double *CartPosVecVia, double *CartPosVec, double speed_cp=0, double speed_ori=0, double override_speed=0, long flyby_on=-1, double *Tool=0, double *Base=0)
 Move_CIRC, continious path motion definition for target location
Remarks
Use erAddTargetLocation() to create a valid target location handle er_tarloc_hnd
The target location will be set to valid after successful motion definition, see ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid() More...
 
DLLAPI long ER_STDCALL erSetTargetLocation_Move_CIRC_Frame (ER_TARGET_LOCATION_HND er_tarloc_hnd, DFRAME *CartPosFrameVia, DFRAME *CartPosFrame, double speed_cp=0, double speed_ori=0, double override_speed=0, long flyby_on=-1, DFRAME *ToolFrame=0, DFRAME *BaseFrame=0)
 Move_CIRC, continious path motion definition for target location
Remarks
Use erAddTargetLocation() to create a valid target location handle er_tarloc_hnd
The target location will be set to valid after successful motion definition, see ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid() More...
 
DLLAPI ER_TARGET_HEAD_HND ER_STDCALL erGetTargetLocationHeaderDataHnd (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Handle for target header data. More...
 
DLLAPI ER_TOOLPATH_HND ER_STDCALL erGetTargetLocationToolPathHnd (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Tool path handle belonging to target location handle. More...
 
DLLAPI long ER_STDCALL erGetTargetLocationIdx (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Index of target location. More...
 
DLLAPI char *ER_STDCALL erGetTargetLocationName (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Name of target location. More...
 
DLLAPI char *ER_STDCALL erGetTargetLocationNameVia (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Name of target Via location, in case of circular motion. More...
 
DLLAPI long ER_STDCALL erTargetLocationValid (ER_TARGET_LOCATION_HND er_tarloc_hnd, long valid)
 Validity of a target location
A target location is per default invalid when created e.g. ERK_CAPI_TOOLPATH_TARGETS::erAddTargetLocation() and set to valid when a motion e.g. ERK_CAPI_TOOLPATH_TARGETS::erSetTargetLocation_Move_LIN() is defined.
This method allows to ask the validity of this target location valid=2,
to set the validity of this target location valid=1,
or to unset the validity of this target location valid=0. More...
 
DLLAPI ER_TARGET_INSTRUCTIONS_HND ER_STDCALL erGetTargetLocationInstructionsHnd (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Handle for target instruction data
Remarks
Instructions are individual command or information attached to a target location. They don't influence in the calculated trajectory.
Instructions are very useful when creating a robot program using the API post processing function ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc(). More...
 
DLLAPI char *ER_STDCALL erGetInstructions_information (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Get information target instruction data for target location.
For further explanations see GetInstructionsHnd(), erSetInstructions(). More...
 
DLLAPI char *ER_STDCALL erGetInstructions_LeadInstructions (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Get LeadInstructions target instruction data for target location.
For further explanations see GetInstructionsHnd(), erSetInstructions(). More...
 
DLLAPI char *ER_STDCALL erGetInstructions_LagInstructions (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Get LagInstructions target instruction data for target location.
For further explanations see GetInstructionsHnd(), erSetInstructions(). More...
 
DLLAPI int ER_STDCALL erSetInstructions (ER_TARGET_LOCATION_HND er_tarloc_hnd, char *InfoTxt=NULL, char *LeadInst=NULL, char *LagInst=NULL)
 Set target instruction data for information, leading- and lagging instruction.
For further explanations see GetInstructionsHnd(). More...
 
DLLAPI ER_TARGET_EVENTS_HND ER_STDCALL erGetTargetLocationEventsHnd (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Handle for target events data. More...
 
DLLAPI long ER_STDCALL erSetEvents_EventDOUT (ER_TARGET_EVENTS_HND hnd, int idx=1, long io_value=ER_EVENT_BOOL_UNDEF, char *io_name=0, long strig_type=ER_EVENT_TRIGGER_OFF, double strig_time=0, double strig_dist=0, long ttrig_type=ER_EVENT_TRIGGER_OFF, double ttrig_time=0, double ttrig_dist=0)
 Set an event for a boolean output for target location
A boolean event for binary outputs is controlled by trigger data, when the movement starts and when the movement reaches the target location.
When a trigger condition is met, the binary output is set to ER_EVENT_BOOL_OFF or ER_EVENT_BOOL_ON.
Trigger data can be set when the movement starts and when the movement reaches the target.
Each trigger consist of three parameters: type ,time and distance.
Trigger signal type can be one of the following values. More...
 
DLLAPI long ER_STDCALL erGetEvents_EventDOUT (ER_TARGET_EVENTS_HND hnd, int idx, long *io_value, char *io_name, long *strig_type, double *strig_time, double *strig_dist, long *ttrig_type, double *ttrig_time, double *ttrig_dist)
 Get an event for a boolean output for target location
A boolean event for binary outputs is controlled by trigger data, when the movement starts and when the movement reaches the target location.
see detailed information in Set_EventDOUT() or erSetEvents_EventDOUT() More...
 
DLLAPI long ER_STDCALL erSetEvents_EventDIN (ER_TARGET_EVENTS_HND hnd, int idx=1, long io_value=ER_EVENT_BOOL_UNDEF, char *io_name=0, long leadcond_type=ER_EVENT_CONDITION_UNDEF, double leadcond_value=0, long lagcond_type=ER_EVENT_CONDITION_UNDEF, double lagcond_value=0)
 Set event conditions for a binary input for target location
An input is checked before a movement starts (leading) and/or when the movement reaches the target (lagging).
In the case of flyby, the checks are made closed to the start and the target location.
Each check depends on the specified condition type combined with a condition value.
A condition type can be one of the following values. More...
 
DLLAPI ER_TARGET_ATTRIBUTES_AUX_HND ER_STDCALL erGetTargetLocationMotionAttributesAuxHnd (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Handle for target attributes auxiliary data. More...
 
DLLAPI ER_TARGET_ATTRIBUTES_HND ER_STDCALL erGetTargetLocationMotionAttributesHnd (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Handle for target attributes data
Typical attributes belonging to a target location are:
e.g. target_id, external TCP, Base data, Tool data , motion type, override speed, velocity profile, flyby, autoaccel, lead- and lag time, etc.
Remarks
The returned handle ER_TARGET_ATTRIBUTES_HND is used to access target attributes data. More...
 
DLLAPI long *ER_STDCALL erGetMotionAttributes_enabled (ER_TARGET_ATTRIBUTES_HND hnd)
 Enables/disables a target location
If the target location is disabled, the trajectory interpolator will skip this target. More...
 
DLLAPI TErTargetID *ER_STDCALL erGetMotionAttributes_target_id (ER_TARGET_ATTRIBUTES_HND hnd)
 unique target ID of a target location More...
 
DLLAPI double *ER_STDCALL erGetMotionAttributes_WobjCartPosVec (ER_TARGET_ATTRIBUTES_HND hnd)
 WorkObject valid for all cartesian target locations such as CartPosVec, CartPosVecVia
Using this transformation, all cartesian targets 'T' are modified to T' = WorkObj * T
see e.g. ERK_CAPI_TOOLPATH_TARGETS::erSetTargetLocation_Move_LIN() More...
 
DLLAPI DFRAME *ER_STDCALL erGetMotionAttributes_WobjCartPosFrame (ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *WobjCartPosFrame)
 Get WorkObject valid for all cartesian target locations such as CartPosVec, CartPosVecVia
Using this transformation, all cartesian targets 'T' are modified to T' = WorkObj * T
see e.g. ERK_CAPI_TOOLPATH_TARGETS::erSetTargetLocation_Move_LIN() More...
 
DLLAPI DFRAME *ER_STDCALL erSetMotionAttributes_WobjCartPosFrame (ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *WobjCartPosFrame)
 Set WorkObject valid for all cartesian target locations such as CartPosVec, CartPosVecVia
Using this transformation, all cartesian targets 'T' are modified to T' = WorkObj * T
see e.g. ERK_CAPI_TOOLPATH_TARGETS::erSetTargetLocation_Move_LIN() More...
 
DLLAPI long *ER_STDCALL erGetMotionAttributes_ext_tcp_mode (ER_TARGET_ATTRIBUTES_HND hnd)
 Enables/disables external TCP for a target location
IPO_MODE_BASE (tool guided) or IPO_MODE_TOOL (work object guided) More...
 
DLLAPI double *ER_STDCALL erGetMotionAttributes_BaseVec (ER_TARGET_ATTRIBUTES_HND hnd)
 Program shift Base for a target location
Base '$BASE, $UFrame' has only if IPO_MODE_BASE is set and external TCP disabled
All targets are defined w.r.t to this BASE frame (program shifting)
see inq_BaseIdx(), inq_BaseName() More...
 
DLLAPI DFRAME *ER_STDCALL erGetMotionAttributes_BaseFrame (ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *BaseFrame)
 Program shift Base for a target location
Base '$BASE, $UFrame' has only if IPO_MODE_BASE is set and external TCP disabled
All targets are defined w.r.t to this BASE frame (program shifting)
see inq_BaseIdx(), inq_BaseName() More...
 
DLLAPI DFRAME *ER_STDCALL erSetMotionAttributes_BaseFrame (ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *BaseFrame)
 Program shift Base for a target location
Base '$BASE, $UFrame' has only if IPO_MODE_BASE is set and external TCP disabled
All targets are defined w.r.t to this BASE frame (program shifting)
see inq_BaseIdx(), inq_BaseName() More...
 
DLLAPI long *ER_STDCALL erGetMotionAttributes_BaseIdx (ER_TARGET_ATTRIBUTES_HND hnd)
 Idx for program shift Base for a target location
see inq_BaseVec(), inq_BaseName()
This BaseIdx could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc() More...
 
DLLAPI char *ER_STDCALL erGetMotionAttributes_BaseName (ER_TARGET_ATTRIBUTES_HND hnd)
 Name for program shift Base for a target location
see inq_BaseVec(), inq_BaseIdx()
This BaseName could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc() More...
 
DLLAPI double *ER_STDCALL erGetMotionAttributes_extTcpBaseVec (ER_TARGET_ATTRIBUTES_HND hnd)
 external Tool (TCP) w.r.t. Robot Base or flange of positioner, for a target location
Transformation from RobotBase or from flange of positioner to external TCP
see inq_extTcpBaseIdx(), inq_extTcpBaseName() More...
 
DLLAPI DFRAME *ER_STDCALL erGetMotionAttributes_extTcpBaseFrame (ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *extTcpBaseFrame)
 external Tool (TCP) w.r.t. Robot Base or flange of positioner, for a target location
Transformation from RobotBase or from flange of positioner to external TCP
see inq_extTcpBaseIdx(), inq_extTcpBaseName() More...
 
DLLAPI DFRAME *ER_STDCALL erSetMotionAttributes_extTcpBaseFrame (ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *extTcpBaseFrame)
 external Tool (TCP) w.r.t. Robot Base or flange of positioner, for a target location
Transformation from RobotBase or from flange of positioner to external TCP
see inq_extTcpBaseIdx(), inq_extTcpBaseName() More...
 
DLLAPI long *ER_STDCALL erGetMotionAttributes_extTcpBaseIdx (ER_TARGET_ATTRIBUTES_HND hnd)
 Idx for external Tool (TCP) w.r.t. Robot Base or flange of positioner, for a target location
see inq_extTcpBaseVec(), inq_extTcpBaseName()
This extTcpBaseIdx could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc() More...
 
DLLAPI char *ER_STDCALL erGetMotionAttributes_extTcpBaseName (ER_TARGET_ATTRIBUTES_HND hnd)
 Name for external Tool (TCP) w.r.t. Robot Base or flange of positioner, for a target location
see inq_extTcpBaseVec(), inq_extTcpBaseIdx()
This extTcpBaseName could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc() More...
 
DLLAPI double *ER_STDCALL erGetMotionAttributes_extTcpWorldVec (ER_TARGET_ATTRIBUTES_HND hnd)
 external Tool (TCP) w.r.t. Robot World or flange of positioner, for a target location
Transformation from RobotWorld or from flange of positioner to external TCP
see inq_extTcpWorldIdx(), inq_extTcpWorldName() More...
 
DLLAPI DFRAME *ER_STDCALL erGetMotionAttributes_extTcpWorldFrame (ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *extTcpWorldFrame)
 external Tool (TCP) w.r.t. Robot World or flange of positioner, for a target location
Transformation from RobotWorld or from flange of positioner to external TCP
see inq_extTcpWorldIdx(), inq_extTcpWorldName() More...
 
DLLAPI DFRAME *ER_STDCALL erSetMotionAttributes_extTcpWorldFrame (ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *extTcpWorldFrame)
 external Tool (TCP) w.r.t. Robot World or flange of positioner, for a target location
Transformation from RobotWorld or from flange of positioner to external TCP
see inq_extTcpWorldIdx(), inq_extTcpWorldName() More...
 
DLLAPI long *ER_STDCALL erGetMotionAttributes_extTcpWorldIdx (ER_TARGET_ATTRIBUTES_HND hnd)
 Idx for external Tool (TCP) w.r.t. Robot World or flange of positioner, for a target location
see inq_extTcpWorldVec(), inq_extTcpWorldName()
This extTcpWorldIdx could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc() More...
 
DLLAPI char *ER_STDCALL erGetMotionAttributes_extTcpWorldName (ER_TARGET_ATTRIBUTES_HND hnd)
 Name for external Tool (TCP) w.r.t. Robot World or flange of positioner, for a target location
see inq_extTcpWorldVec(), inq_extTcpWorldIdx()
This extTcpWorldName could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc() More...
 
DLLAPI double *ER_STDCALL erGetMotionAttributes_extTcpOffsetVec (ER_TARGET_ATTRIBUTES_HND hnd)
 external Tool/TCP offset data w.r.t. extTcpBase, extTcpWorld, for a target location
Transformation from extTcpBase or extTcpWorld
see inq_extTcpOffsetIdx(), inq_extTcpOffsetName() More...
 
DLLAPI DFRAME *ER_STDCALL erGetMotionAttributes_extTcpOffsetFrame (ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *extTcpOffsetFrame)
 external Tool/TCP offset data w.r.t. extTcpBase, extTcpWorld, for a target location
Transformation from extTcpBase or extTcpWorld
see inq_extTcpOffsetIdx(), inq_extTcpOffsetName() More...
 
DLLAPI DFRAME *ER_STDCALL erSetMotionAttributes_extTcpOffsetFrame (ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *extTcpOffsetFrame)
 external Tool/TCP offset data w.r.t. extTcpBase, extTcpWorld, for a target location
Transformation from extTcpBase or extTcpWorld
see inq_extTcpOffsetIdx(), inq_extTcpOffsetName() More...
 
DLLAPI long *ER_STDCALL erGetMotionAttributes_extTcpOffsetIdx (ER_TARGET_ATTRIBUTES_HND hnd)
 Idx for external Tool/TCP offset data w.r.t. extTcpBase, extTcpWorld, for a target location
see inq_extTcpOffsetVec(), inq_extTcpOffsetName()
This extTcpOffsetIdx could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc() More...
 
DLLAPI char *ER_STDCALL erGetMotionAttributes_extTcpOffsetName (ER_TARGET_ATTRIBUTES_HND hnd)
 Name for external Tool/TCP offset data w.r.t. extTcpBase, extTcpWorld, for a target location
see inq_extTcpOffsetVec(), inq_extTcpOffsetIdx()
This extTcpOffsetName could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc() More...
 
DLLAPI double *ER_STDCALL erGetMotionAttributes_ToolVec (ER_TARGET_ATTRIBUTES_HND hnd)
 Tool (TCP) for a target location
Transformation from Tip to TCP
see inq_ToolIdx(), inq_ToolName() More...
 
DLLAPI DFRAME *ER_STDCALL erGetMotionAttributes_ToolFrame (ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *ToolFrame)
 Tool (TCP) for a target location
Transformation from Tip to TCP
see inq_ToolIdx(), inq_ToolName() More...
 
DLLAPI DFRAME *ER_STDCALL erSetMotionAttributes_ToolFrame (ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *ToolFrame)
 Tool (TCP) for a target location
Transformation from Tip to TCP
see inq_ToolIdx(), inq_ToolName() More...
 
DLLAPI long *ER_STDCALL erGetMotionAttributes_ToolIdx (ER_TARGET_ATTRIBUTES_HND hnd)
 Idx for Tool for a target location
see inq_ToolVec(), inq_ToolName()
This ToolIdx could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc() More...
 
DLLAPI char *ER_STDCALL erGetMotionAttributes_ToolName (ER_TARGET_ATTRIBUTES_HND hnd)
 Name for Tool for a target location
see inq_ToolVec(), inq_ToolIdx()
This ToolName could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc() More...
 
DLLAPI double *ER_STDCALL erGetMotionAttributes_ToolOffsetVec (ER_TARGET_ATTRIBUTES_HND hnd)
 ToolOffset (TCP) for a target location
Offset Transformation from TCP
see inq_ToolOffsetIdx(), inq_ToolOffsetName() More...
 
DLLAPI DFRAME *ER_STDCALL erGetMotionAttributes_ToolOffsetFrame (ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *ToolOffsetFrame)
 ToolOffset (TCP) for a target location
Offset Transformation from TCP
see inq_ToolOffsetIdx(), inq_ToolOffsetName() More...
 
DLLAPI DFRAME *ER_STDCALL erSetMotionAttributes_ToolOffsetFrame (ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *ToolOffsetFrame)
 ToolOffset (TCP) for a target location
Offset Transformation from TCP
see inq_ToolOffsetIdx(), inq_ToolOffsetName() More...
 
DLLAPI long *ER_STDCALL erGetMotionAttributes_ToolOffsetIdx (ER_TARGET_ATTRIBUTES_HND hnd)
 Idx for ToolOffset for a target location
see inq_ToolOffsetVec(), inq_ToolOffsetName()
This ToolOffsetIdx could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc() More...
 
DLLAPI char *ER_STDCALL erGetMotionAttributes_ToolOffsetName (ER_TARGET_ATTRIBUTES_HND hnd)
 Name for ToolOffset for a target location
see inq_ToolOffsetVec(), inq_ToolOffsetIdx()
This ToolOffsetName could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc() More...
 
DLLAPI long *ER_STDCALL erGetMotionAttributes_speed_reduction_enable (ER_TARGET_ATTRIBUTES_HND hnd)
 Speed reduction enable for a target location
The speed reduction enable can be one of the following values
ER_SPEED_REDUCTION_ENABLE = 1, ER_SPEED_REDUCTION_DISABLE = 0
If speed reduction is enabled, the robots TCP speed gets reduced (while motion execution in erGET_NEXT_STEP()) if the desired nominal joint speeds exceeds the maximum allowed joint speed, defined with erSetVqMax().
Remarks
Per default, speed reduction is enabled.
Speed reduction causes the TrajectoryTime to increase, while the RemainingTime represents the minimum time necessary to reach the target. More...
 
DLLAPI long *ER_STDCALL erGetMotionAttributes_motype (ER_TARGET_ATTRIBUTES_HND hnd)
 Motion Type for a target location
The motion type can be one of the following values
ER_JOINT = ER_PTP = 1, ER_LIN = 2, ER_SLEW = 3, ER_CIRC = 4
Remarks
Methods such as. More...
 
DLLAPI long *ER_STDCALL erGetMotionAttributes_dom_type (ER_TARGET_ATTRIBUTES_HND hnd)
 Dominant interpolation type for a target location
The dominant interpolation type can be one of the following values.
ER_DOMINANT_INTERPOLATION_POS, ER_DOMINANT_INTERPOLATION_ORI, ER_DOMINANT_INTERPOLATION_AXIS, ER_DOMINANT_INTERPOLATION_AUTO
Remarks
Default setting is ER_DOMINANT_INTERPOLATION_AUTO. More...
 
DLLAPI long *ER_STDCALL erGetMotionAttributes_advance_motion (ER_TARGET_ATTRIBUTES_HND hnd)
 Number of motions, the motion planner may run in advance of the interpolator (look_ahead) for a target location
Remarks
Default value: 1. More...
 
DLLAPI double *ER_STDCALL erGetMotionAttributes_override_speed (ER_TARGET_ATTRIBUTES_HND hnd)
 Correction values as percentage value for scaling the programmed speed for a target location
Remarks
Default value: 100%. More...
 
DLLAPI double *ER_STDCALL erGetMotionAttributes_acc (ER_TARGET_ATTRIBUTES_HND hnd)
 Acceleration and deceleration as percentage value in the range from 20% to 100% of normal values for a target location
Remarks
Default value: 100%
Smaller values results in a smoother acceleration and deceleratio nwhen the robot carries high payloads for example. More...
 
DLLAPI double *ER_STDCALL erGetMotionAttributes_ramp (ER_TARGET_ATTRIBUTES_HND hnd)
 Change of acceleration and deceleration as percentage value in the range from 20% to 100% of normal values for a target location
Remarks
Default value: 100%
Smaller values results in a smoother acceleration and deceleration when the robot carries high payloads for example. More...
 
DLLAPI long *ER_STDCALL erGetMotionAttributes_filter_factor (ER_TARGET_ATTRIBUTES_HND hnd)
 Filter factor for smoothing velocity profiles of motions
The filter_factor is one of ER_MOTION_FILTER_GEO or ER_MOTION_FILTER_C2
Remarks
Per default ER_MOTION_FILTER_C2 is set
It makes sense to keep one filter_factor for the complete tool path. More...
 
DLLAPI long *ER_STDCALL erGetMotionAttributes_flyby_on (ER_TARGET_ATTRIBUTES_HND hnd)
 Rounding / flyby condition for a target location
In case of flyby enabled, the robot moves through a target location with programmed speeds and will not decelerate
flyby_on is one of ER_FLYBY_OFF, ER_FLYBY_ON
Remarks
Default value: ER_FLYBY_OFF. More...
 
DLLAPI double *ER_STDCALL erGetMotionAttributes_flyby_speed_percent (ER_TARGET_ATTRIBUTES_HND hnd)
 flyby by speed [%] for a target location
In case of flyby by speed, the robot starts moving into the next segment when the current speed is less then the flyby_speed_percent value.
flyby_speed_percent has only an effect if flyby is enabled and if set > 0%, see inq_flyby_on(), inq_flyby_dist()
Remarks
Default value: 0% More...
 
DLLAPI double *ER_STDCALL erGetMotionAttributes_flyby_dist (ER_TARGET_ATTRIBUTES_HND hnd)
 flyby by distance [m] for a target location
In case of flyby by distance, the robot starts moving into the next segment when the distance to the target is less then the flyby_dist value.
flyby_dist has only an effect if flyby is enabled and if set > 0 [m], see inq_flyby_on(), inq_flyby_speed_percent()
Remarks
Default value: 0 [m] More...
 
DLLAPI long *ER_STDCALL erGetMotionAttributes_autoaccel (ER_TARGET_ATTRIBUTES_HND hnd)
 Automatic calculation of acceleration depending on programmed speed for a target location
Using AutoAccel is a proper way to come close to real cycle times.
Autoaccel can be one of the following values.
0: ER_AUTOACCEL_MODE_OFF disables auto accel calculation for all motions
1: ER_AUTOACCEL_MODE_POS calculation for CP motions for position
2: ER_AUTOACCEL_MODE_ORI calculation for CP motions
4: ER_AUTOACCEL_MODE_AX Calculation for PTP motions
3: ER_AUTOACCEL_MODE_DEF calculation for CP motions for position and for orientation
7: ER_AUTOACCEL_MODE_ON enables calculation for all motions
Remarks
Default value: ER_AUTOACCEL_MODE_OFF. More...
 
DLLAPI double *ER_STDCALL erGetMotionAttributes_LeadWaitTime (ER_TARGET_ATTRIBUTES_HND hnd)
 Leading time [s] before robot will start moving to target location
Remarks
Default value: 0
Has only an effect when flyby is disabled, see inq_LagWaitTime() More...
 
DLLAPI double *ER_STDCALL erGetMotionAttributes_LagWaitTime (ER_TARGET_ATTRIBUTES_HND hnd)
 Lagging time [s] after robot reaches its target location
Remarks
Default value: 0
Has only an effect when flyby is disabled, see inq_LeadWaitTime() More...
 
DLLAPI ER_TARGET_MOVE_JOINT_HND ER_STDCALL erGetTargetLocationMoveJointHnd (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Handle for target move joint data
Typical data belonging to a move joint target location are:
target_type, speed_percent, accel_percent, JointPos , CartPosVec, configuration, ptp_target_calculation_mode, turn_value
Remarks
The returned handle ER_TARGET_MOVE_JOINT_HND is used to access target move joint data. More...
 
DLLAPI long *ER_STDCALL erGetMoveJoint_target_type (ER_TARGET_MOVE_JOINT_HND hnd)
 Target type for joint move for target location
is one of. More...
 
DLLAPI double *ER_STDCALL erGetMoveJoint_speed_percent (ER_TARGET_MOVE_JOINT_HND hnd)
 Speed_percent percentage speed definition [>0-1000%] for joint move for target location. More...
 
DLLAPI double *ER_STDCALL erGetMoveJoint_accel_percent (ER_TARGET_MOVE_JOINT_HND hnd)
 Accel_percent percentage acceleration definition [>0-1000%] for joint move for target location. More...
 
DLLAPI double *ER_STDCALL erGetMoveJoint_JointPos (ER_TARGET_MOVE_JOINT_HND hnd)
 Joint position for joint move for target location
Remarks
Use for. More...
 
DLLAPI double *ER_STDCALL erGetMoveJoint_CartPosVec (ER_TARGET_MOVE_JOINT_HND hnd)
 Cartesian position w.r.t. Base for joint move for target location
Remarks
Use for. More...
 
DLLAPI long *ER_STDCALL erGetMoveJoint_configuration (ER_TARGET_MOVE_JOINT_HND hnd)
 configuration Robot configuration [1-ER_KIN_CONFIGS] for target location
More...
 
DLLAPI long *ER_STDCALL erGetMoveJoint_ptp_target_calculation_mode (ER_TARGET_MOVE_JOINT_HND hnd)
 Ptp_target_calculation_mode for target location
is one of
ER_PTP_TARGET_CALC_MODE_SHORTEST_ANGLE, ER_PTP_TARGET_CALC_MODE_TURNS, ER_PTP_TARGET_CALC_MODE_MATH, ER_PTP_TARGET_CALC_MODE_IN_TRAVEL_RANGE, ER_PTP_TARGET_CALC_MODE_VAR_CONFIG. More...
 
DLLAPI long *ER_STDCALL erGetMoveJoint_turn_value (ER_TARGET_MOVE_JOINT_HND hnd)
 Turn value for each robot joint for joint move for target location
The turn value determine the desired Turn in the target for the inverse kinematics calculation and for the trajectory planning
It takes effect if ER_PTP_TARGET_CALC_MODE_TURNS is set, see inq_ptp_target_calculation_mode() More...
 
DLLAPI ER_TARGET_MOVE_CP_HND ER_STDCALL erGetTargetLocationMoveCPHnd (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Handle for target move CP data
Typical data belonging to a move CP target location are:
target_type, speed_cp, speed_ori, accel_cp, accel_ori, CartPosVec, CartPosVecVia, interpolation_mode, orientation_interpolation_mode
Remarks
The returned handle ER_TARGET_MOVE_CP_HND is used to access target move CP data. More...
 
DLLAPI long *ER_STDCALL erGetMoveCP_target_type (ER_TARGET_MOVE_CP_HND hnd)
 Target type for CP move for target location
is always. More...
 
DLLAPI double *ER_STDCALL erGetMoveCP_speed_cp (ER_TARGET_MOVE_CP_HND hnd)
 Cartesian speed [m/s], for CP move for target location. More...
 
DLLAPI double *ER_STDCALL erGetMoveCP_speed_ori (ER_TARGET_MOVE_CP_HND hnd)
 Cartesian orientation speed [rad/s], for CP move for target location. More...
 
DLLAPI double *ER_STDCALL erGetMoveCP_accel_cp (ER_TARGET_MOVE_CP_HND hnd)
 Cartesian acceleration [m/s^2], for CP move for target location. More...
 
DLLAPI double *ER_STDCALL erGetMoveCP_accel_ori (ER_TARGET_MOVE_CP_HND hnd)
 Cartesian orientation acceleration [rad/s^2], for CP move for target location. More...
 
DLLAPI double *ER_STDCALL erGetMoveCP_CartPosVec (ER_TARGET_MOVE_CP_HND hnd)
 Cartesian position w.r.t. Base for CP move for target location
Remarks
Use for. More...
 
DLLAPI double *ER_STDCALL erGetMoveCP_CartPosVecVia (ER_TARGET_MOVE_CP_HND hnd)
 Cartesian position at VIA location w.r.t. Base for CP move for target location
Remarks
Use for. More...
 
DLLAPI long *ER_STDCALL erGetMoveCP_interpolation_mode (ER_TARGET_MOVE_CP_HND hnd)
 Orientation interpolation mode for CP move for target location
The interpolation_mode is one of =1 one angle (QUATERNION), =2 two angle (QUATERNION), =3 three angle (VARIABLE)
per default =1 one angle (QUATERNION) More...
 
DLLAPI long *ER_STDCALL erGetMoveCP_circ_orientation_interpolation_mode (ER_TARGET_MOVE_CP_HND hnd)
 Circular orientation interpolation mode for CP move for target location
The circular orientation interpolation_mode is one of. More...
 
DLLAPI ER_TARGET_MOTION_EXEC_HND ER_STDCALL erGetTargetLocationMotionExecHnd (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Handle for target execution data
Target execution data are calculated while interpolation through the complete tool path, if the robot has reached the target
see also. More...
 
DLLAPI long ER_STDCALL erGetMotionExec_motion_success (ER_TARGET_MOTION_EXEC_HND hnd)
 Motion success is true when the robot has reached the target location successfully
Remarks
ERK_CAPI_TOOLPATH::erGET_NEXT_TOOLPATH_STEP_INIT() at the beginning of interpolation will reset motion_success for each targat location. More...
 
DLLAPI double ER_STDCALL erGetMotionExec_time_stamp (ER_TARGET_MOTION_EXEC_HND hnd)
 Time stamp - total execution time [s] at the target location, while interpolation through the complete tool path
Remarks
ERK_CAPI_TOOLPATH::erGET_NEXT_TOOLPATH_STEP_INIT() sets the time_stamp = 0. More...
 
DLLAPI double ER_STDCALL erGetMotionExec_trajectory_time (ER_TARGET_MOTION_EXEC_HND hnd)
 Trajectory time [s], time to reach the target location, while interpolation through the complete tool path. More...
 
DLLAPI long ER_STDCALL erGetMotionExec_configuration (ER_TARGET_MOTION_EXEC_HND hnd)
 Robot configuration, when reaching the target, while interpolation through the complete tool path
Remarks
Normally a robot configuration will
NOT change during a CP (ER_LIN, ER_CIRC) move
Valid robot configurations are between 1 and number of possible configurations depending on robot, maximum ER_KIN_CONFIGS
A valid robot configuration can be specified with. More...
 
DLLAPI double *ER_STDCALL erGetMotionExec_JointPos (ER_TARGET_MOTION_EXEC_HND hnd)
 Joint position at target location, while interpolation through the complete tool path. More...
 
DLLAPI double *ER_STDCALL erGetMotionExec_ExtAxValues (ER_TARGET_MOTION_EXEC_HND hnd)
 External axis values at target location, while interpolation through the complete tool path. More...
 
DLLAPI ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND ER_STDCALL erGetTargetLocationExtAxTrackHnd (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Handle for external axis of a Track/Slider-Motion
Typical data belonging to external axis data are:
number of external axis used, synchonization type, external axis data
Remarks
External axis data should be specified after the move definition of a target location The returned handle ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND is used to access external axis data for Track/Slider-Motion
see example SetExtAxTrackMotionIdx() More...
 
DLLAPI long *ER_STDCALL erGetExtAxTrack_number_extax_used (ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND hnd)
 Number of external axis used for Track/Slider
see example GetExtAxTrackMotionHnd() More...
 
DLLAPI long *ER_STDCALL erGetExtAxTrack_sync_type (ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND hnd)
 Synchonization for Track/Slider
For a Track/Slider motion, the synchonization should be always ER_SYNC_ON
see example GetExtAxTrackMotionHnd() More...
 
DLLAPI ER_EXTAX_KIN_DATA *ER_STDCALL erGetExtAxTrack_extax_data (ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND hnd, long extax_idx)
 External axis values for Track/Slider
Values ER_EXTAX_KIN_DATA are:
. More...
 
DLLAPI long ER_STDCALL erSetExtAxTrackIdx (ER_TARGET_LOCATION_HND er_tarloc_hnd, long extax_idx, double axis_value, double speed_value=0, long sync_type=ER_SYNC_UNDEF, ER_HND er_hnd_connect=0)
 Set external axis values for Track/Slider for target location
see example GetExtAxTrackMotionHnd()
Remarks
Use ERK_CAPI_TOOLPATH::erToolPathSetTrackMotionHandle() to set the Track/Slider device, belonging to this tool path. More...
 
DLLAPI ER_TARGET_EXTAX_DEVICE_POSITIONER_HND ER_STDCALL erGetTargetLocationExtAxPositionerHnd (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Handle for external axis of a Positioner/TurnTable-Motion
Typical data belonging to external axis data are:
number of external axis used, synchonization type, external axis data
Remarks
External axis data should be specified after the move definition of a target location The returned handle ER_TARGET_EXTAX_DEVICE_POSITIONER_HND is used to access external axis data for Positioner/TurnTable-Motion
see example SetExtAxPositionerIdx() More...
 
DLLAPI long *ER_STDCALL erGetExtAxPositioner_number_extax_used (ER_TARGET_EXTAX_DEVICE_POSITIONER_HND hnd)
 Number of external axis used for Positioner/TurnTable
see example GetExtAxPositionerHnd() More...
 
DLLAPI long *ER_STDCALL erGetExtAxPositioner_sync_type (ER_TARGET_EXTAX_DEVICE_POSITIONER_HND hnd)
 Synchonization for Positioner/TurnTable
For a Positioner/TurnTable motion, the synchonization can be one of ER_SYNC_ON, ER_SYNC_OFF
see example GetExtAxPositionerHnd() More...
 
DLLAPI ER_EXTAX_KIN_DATA *ER_STDCALL erGetExtAxPositioner_extax_data (ER_TARGET_EXTAX_DEVICE_POSITIONER_HND hnd, long extax_idx)
 External axis values for Positioner/TurnTable
Values ER_EXTAX_KIN_DATA are:
. More...
 
DLLAPI long ER_STDCALL erSetExtAxPositionerIdx (ER_TARGET_LOCATION_HND er_tarloc_hnd, long extax_idx, double axis_value, double speed_value=0, long sync_type=ER_SYNC_UNDEF, ER_HND er_hnd_connect=0)
 Set external axis values for Positioner/TurnTable for target location
see example GetExtAxPositionerHnd()
Remarks
Use ERK_CAPI_TOOLPATH::erToolPathSetPositionerHandle() to set the Positioner/TurnTable device, belonging to this tool path. More...
 
DLLAPI ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND ER_STDCALL erGetTargetLocationExtAxConveyorHnd (ER_TARGET_LOCATION_HND er_tarloc_hnd)
 Handle for external axis of a Conveyor-Motion
Typical data belonging to external axis data are:
number of external axis used, synchonization type, external axis data
Remarks
External axis data should be specified after the move definition of a target location The returned handle ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND is used to access external axis data for Conveyor-Motion
see example erGetExtAxConveyor_sync_type() More...
 
DLLAPI long *ER_STDCALL erGetExtAxConveyor_number_extax_used (ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND hnd)
 Number of external axis used for Conveyor
see example GetExtAxConveyorHnd() More...
 
DLLAPI long *ER_STDCALL erGetExtAxConveyor_sync_type (ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND hnd)
 Synchonization for Conveyor
For a Conveyor motion, the synchonization can be one of ER_SYNC_ON, ER_SYNC_OFF
see example GetExtAxConveyorHnd() More...
 
DLLAPI ER_EXTAX_KIN_DATA *ER_STDCALL erGetExtAxConveyor_extax_data (ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND hnd, long extax_idx)
 External axis values for Conveyor
Values ER_EXTAX_KIN_DATA are:
. More...
 
DLLAPI long ER_STDCALL erSetExtAxConveyorIdx (ER_TARGET_LOCATION_HND er_tarloc_hnd, long extax_idx, double axis_value, double speed_value=0, long sync_type=ER_SYNC_UNDEF, ER_HND er_hnd_connect=0)
 Set external axis values for Conveyor for target location
see example GetExtAxConveyorHnd()
Remarks
Use ERK_CAPI_TOOLPATH::erToolPathSetConveyorHandle() to set the Conveyor device, belonging to this tool path. More...
 
DLLAPI long ER_STDCALL erSetConveyorTrackingWindow (ER_TARGET_LOCATION_HND er_tarloc_hnd, long active, double up, double down, TErTrackingWindowID id_tw, char *name=NULL)
 Activates and deactivates the boundaries for a Tracking Window.
This function enables a tracking window (typical for a painting applications) and defines the boudary Up- and Down-Stream values.
This function works in conjunction with erConnectConveyor(), erConnectConveyorSetSync() and erSetconveyorStartCondition()
Remarks
Connect the robot first with a conveyor, using erConnectConveyor(), and set the synchronization to ER_SYNC_ON, using erConnectConveyorSetSync(), before activating the tracking window.
A tracking window can have one of the following status:
0: TRK_WND_NOT_ACTIVE, 1: TRK_WND_WAITING, 2: TRK_WND_INSIDE or 3: TRK_WND_OUT_OF_BOUNDARY
and will be obtained with the NEXT_STEP_DATA when calling erGET_NEXT_STEP()
Activating a tracking window sets the status to TRK_WND_WAITING.
Deactivating a tracking window sets the status to TRK_WND_NOT_ACTIVE. More...
 
DLLAPI long ER_STDCALL erSetConveyorStartOffsetCondition (ER_TARGET_LOCATION_HND er_tarloc_hnd, double tx0)
 Sets the conveyor start offset condition.
This function set the conveyor start condition for the Tracking Window (typical for a painting applications).
The tx0 in units [m] is an offset position in X-direction and is defined w.r.t. to the flange of the conveyor device.
This function works in conjunction with erSetTrackingWindow() More...
 
DLLAPI long ER_STDCALL erTPth_TBox_Fct (int FctIdx, int FctSubIdx, ER_TOOLPATH_HND er_tpth_hnd, int constraint_param, char *svalues=NULL)
 Method for miscellaneous tool path calculations Requires DLL EasySimKernel_tboxx64.dll. More...
 
DLLAPI long ER_STDCALL erTPth_PostProc (char *ApiPP_Dll_Name, int FctIdx, int FctSubIdx, ER_TOOLPATH_HND er_tpth_hnd, char *program_name, char *target_path=NULL, int pp_param=0, char *svalues=NULL)
 Method for post processing, creating a robot program for a tool path
An example Visual Studio Project is available, creating a robot program for KUKA Controller.
The name of the DLL is user defined, e.g. 'EasySimKernel_apippx64.dll'
Remarks
The DLL is loaded and linked will calling this method. Thus, the DLL can be generated again without restarting the Host application.
This allows quick changes and adjustments in the shop floor. More...
 
DLLAPI long ER_STDCALL erTPth_Fct (ER_TOOLPATH_HND er_tpth_hnd)
 Do Fct. ... tbd. More...
 
DLLAPI long ER_STDCALL erColl_BeginModel (ER_COLLISION_HND *er_coll_hnd, long n_tris)
 Creates a collision handle for one Model and preallocate memory for n_tris triangles. More...
 
DLLAPI long ER_STDCALL erColl_AddTri (ER_COLLISION_HND er_coll_hnd, double *p1, double *p2, double *p3, long id)
 Adds a triangle to a Model.
call erColl_BeginModel() once to create a new unique model handle. More...
 
DLLAPI long ER_STDCALL erColl_EndModel (ER_COLLISION_HND er_coll_hnd)
 Stop building a Model. More...
 
DLLAPI long ER_STDCALL erColl_ChkCollision (ER_COLLISION_HND er_coll_hnd_1, DFRAME *iT_1, ER_COLLISION_HND er_coll_hnd_2, DFRAME *iT_2, long query_type=ER_COLL_QUERY_TYPE_COLLIDE, long contact_type=ER_COLL_FIRST_CONTACT, double rel_err=0, double abs_err=0, double tolerance=0)
 Perform the collision check of two Models.
See also erColl_ChkCollision_res() to get the collision results immediately
The query type query_type can be one of the following values.
0: ER_COLL_QUERY_TYPE_UNDEF skip collision checks
1: ER_COLL_QUERY_TYPE_COLLIDE detects collision between two Models
2: ER_COLL_QUERY_TYPE_DISTANCE computes the distance between two Models
3: ER_COLL_QUERY_TYPE_TOLERANCE checks if distance between Models is <= tolerance
The contact type contact_type is used for query type ER_COLL_QUERY_TYPE_COLLIDE and can be one of the following values.
1: ER_COLL_ALL_CONTACTS , the erColl_GetResults_Collide() contains an array with all colliding triangle pairs ER_CollideResult.
2: ER_COLL_FIRST_CONTACT , the erColl_GetResults_Collide() array will only get the first colliding triangle pair found.
Collide
Detects collsion. This is the fastest method.
Distance
Computes minimum distance between two Models. This method takes the most time !!!
Tolerances
Specify tolerance for query type ER_COLL_QUERY_TYPE_DISTANCE or ER_COLL_QUERY_TYPE_TOLERANCE
Checks if distance between Models is <= tolerance.
Remarks
If erColl_ChkCollision() returns with ER_COLL_DETECTED call, depending on the query type, one of the collision result functions erColl_GetResults_Collide(), erColl_GetResults_Distance() or erColl_GetResults_Tolerance() to receive more detailed information about the collision status. More...
 
DLLAPI long ER_STDCALL erColl_ChkCollision_res (ER_COLLISION_HND er_coll_hnd_1, DFRAME *iT_1, ER_COLLISION_HND er_coll_hnd_2, DFRAME *iT_2, long query_type=ER_COLL_QUERY_TYPE_COLLIDE, long contact_type=ER_COLL_FIRST_CONTACT, double rel_err=0, double abs_err=0, double tolerance=0, void *pres=NULL)
 Perform the collision check of two Models.
Collision results returned immediately by parameter pres compared to erColl_ChkCollision()
The query type query_type can be one of the following values.
0: ER_COLL_QUERY_TYPE_UNDEF skip collision checks
1: ER_COLL_QUERY_TYPE_COLLIDE detects collision between two Models
2: ER_COLL_QUERY_TYPE_DISTANCE computes the distance between two Models
3: ER_COLL_QUERY_TYPE_TOLERANCE checks if distance between Models is <= tolerance
The contact type contact_type is used for query type ER_COLL_QUERY_TYPE_COLLIDE and can be one of the following values.
1: ER_COLL_ALL_CONTACTS , the erColl_GetResults_Collide() contains an array with all colliding triangle pairs ER_CollideResult.
2: ER_COLL_FIRST_CONTACT , the erColl_GetResults_Collide() array will only get the first colliding triangle pair found.
Collide
Detects collsion. This is the fastest method.
Distance
Computes minimum distance between two Models. This method takes the most time !!!
Tolerances
Specify tolerance for query type ER_COLL_QUERY_TYPE_DISTANCE or ER_COLL_QUERY_TYPE_TOLERANCE
Checks if distance between Models is <= tolerance.
Remarks
If erColl_ChkCollision_res() returns with ER_COLL_DETECTED, get more detailed information about the collision status by parameter pres. More...
 
DLLAPI long ER_STDCALL erColl_ChkCollision_res_free (long query_type, void *pres)
 Frees allocated memory for Collision results for parameter pres
The query type query_type can be one of the following values.
0: ER_COLL_QUERY_TYPE_UNDEF skip operation
1: ER_COLL_QUERY_TYPE_COLLIDE frees allocated data in ER_CollideResult
2: ER_COLL_QUERY_TYPE_DISTANCE frees allocated data in ER_DistanceResult
3: ER_COLL_QUERY_TYPE_TOLERANCE frees allocated data in ER_ToleranceResult
Remarks
Note that the allocated memory in the Collision results structures must be administrated by the Kernel and not in the host application. More...
 
DLLAPI long ER_STDCALL erColl_UnloadModel (ER_COLLISION_HND *er_coll_hnd)
 Unload a Model. Free all allocated memory. More...
 
DLLAPI long ER_STDCALL erColl_GetResults_Collide (ER_CollideResult *er_cres)
 Get Collision result for query ER_COLL_QUERY_TYPE_COLLIDE. Remarks
Call erColl_ChkCollision() first, before calling this function
Call erColl_ChkCollision_res() to receive the collision result immediately. More...
 
DLLAPI long ER_STDCALL erColl_GetResults_Distance (ER_DistanceResult *er_dres)
 Get Collision result for query ER_COLL_QUERY_TYPE_DISTANCE. Remarks
Call erColl_ChkCollision() first, before calling this function
Call erColl_ChkCollision_res() to receive the collision result immediately. More...
 
DLLAPI long ER_STDCALL erColl_GetResults_Tolerance (ER_ToleranceResult *er_tres)
 Get Collision result for query ER_COLL_QUERY_TYPE_TOLERANCE. Remarks
Call erColl_ChkCollision() first, before calling this function
Call erColl_ChkCollision_res() to receive the collision result immediately. More...
 
DLLAPI char *ER_STDCALL erk_AutoPathVer (void)
 AutoPath Version. More...
 
DLLAPI int ER_STDCALL erk_AutoPathSetMem (AutoPath_ConfigurationSpace *apcs)
 allocate memory for AutoPath_ConfigurationSpace data depending on nConfig
see example AutoPathInit() More...
 
DLLAPI int ER_STDCALL erk_AutoPathInit (AutoPath_ConfigurationSpace *apcs)
 Initialize AutoPath
Call this functions to setup the autopath configuration space
Parameter apcs defines the complete configuration for all used devices, such as
number of configurations up to AUTOPATH_SDK_KIN_DOFS, device handle for each configuration, device axis index, etc.
call AutoPathSetMem() first. More...
 
DLLAPI int ER_STDCALL erk_AutoPathFreeMem (AutoPath_ConfigurationSpace *apcs)
 free memory of AutoPath_ConfigurationSpace data
see example AutoPathInit() More...
 
DLLAPI int ER_STDCALL erk_AutoPathTerminate (AutoPath_ConfigurationSpace *apcs)
 Terminate AutoPath
call AutoPathFreeMem() first, see example AutoPathInit() More...
 
DLLAPI int ER_STDCALL erk_AutoPath_SetCallback_CheckConstraints (BOOL(*ptr_CheckConstraints)(int, void *))
 Defines a callback function to check constraints during AutoPath calculation
The callback function is called with two parameters
Parameter action in Callback_API_CheckConstraints() is a bitwise inclusive OR operator (|) of
AUTOPATH_SDK_CHK_CONSTRAINT_UNDEF, AUTOPATH_SDK_CHK_CONSTRAINT_START, AUTOPATH_SDK_CHK_CONSTRAINT_DEST, AUTOPATH_SDK_CHK_CONSTRAINT_COLLISION, AUTOPATH_SDK_CHK_CONSTRAINT_SWE, AUTOPATH_SDK_CHK_CONSTRAINT_CART_SPACE, AUTOPATH_SDK_CHK_CONSTRAINT_ISCFREE
Parameter vapcs in Callback_API_CheckConstraints() defines the autopath configuration space AutoPath_ConfigurationSpace
see example AutoPathInit() More...
 
DLLAPI int ER_STDCALL erk_AutoPathSetPoseStart (double *pose_start)
 Set start configuration
Remarks
This pose must be valid - collision free, based on callback function "ptr_CheckConstraints" to check constraints. More...
 
DLLAPI int ER_STDCALL erk_AutoPathSetPoseEnd (double *pose_end)
 Set end configuration
Remarks
This pose must be valid - collision free, based on callback function "ptr_CheckConstraints" to check constraints. More...
 
DLLAPI int ER_STDCALL erk_AutoPathFindPath (void)
 Start motion planner, find a collision free path between start and end pose
In each step, the callback function "ptr_CheckConstraints" is called, to check constraints If the target is reached, the callback function is called with action parameter AUTOPATH_SDK_STATUS_MP_SUCCESS. More...
 
DLLAPI double *ER_STDCALL erk_AutoPathGetConfigurationPose (void)
 current configuration pose during FindPath Process return pointer, size nConfig More...
 
DLLAPI double *ER_STDCALL erk_AutoPathGetStartPose (void)
 Get Start Pose return pointer, size nConfig. More...
 
DLLAPI double *ER_STDCALL erk_AutoPathGetEndPose (void)
 Get End Pose return pointer, size nConfig. More...
 
DLLAPI double *ER_STDCALL erk_AutoPathGetAxisConstraintsMin (void)
 Get minimum axis constraints return pointer, size nConfig. More...
 
DLLAPI double *ER_STDCALL erk_AutoPathGetAxisConstraintsMax (void)
 Get maximum axis constraints return pointer, size nConfig. More...
 
DLLAPI int ER_STDCALL erk_AutoPathAbortPlanning (void)
 Abort path planning
use GetPlanningStatus() More...
 
DLLAPI int ER_STDCALL erk_AutoPathGetPlanningStatus (void)
 Get path planning status
The planning status is one of
AUTOPATH_SDK_STATUS_MP_IDLE
AUTOPATH_SDK_STATUS_MP_RUNNING. More...
 
DLLAPI int ER_STDCALL erk_AutoPathGetNumberOfWayPoints (void)
 Get number of calculated way points, including start and end pose
call this method after FindPath() succeeded. More...
 
DLLAPI int ER_STDCALL erk_AutoPathGetWayPointDof (void)
 Get dof of calculated way points. More...
 
DLLAPI double *ER_STDCALL erk_AutoPathGetWayPoint (int idx)
 Get way point. More...
 
DLLAPI int ER_STDCALL erk_AutoPathClearAllWayPoints (void)
 Clear all way points. More...
 
DLLAPI int ER_STDCALL erk_AutoPathSetAccuracy (UINT accuracy)
 Set accuracy. More...
 
DLLAPI int ER_STDCALL erk_AutoPathSetAxisConstraints (int axisBit=AUTOPATH_SDK_AXIS_BIT_DOF6, int setting=0, double qConstraintMin=0, double qConstraintMax=0)
 Set axis constraints
Parameter setting is a bitwise inclusive OR operator (|) of AUTOPATH_SDK_CONSTRAINT_RESET, AUTOPATH_SDK_CONSTRAINT_MIN, AUTOPATH_SDK_CONSTRAINT_MAX. More...
 
DLLAPI int ER_STDCALL erk_AutoPathSetAxisPriority (int axisBit, int priority)
 Set axis priority. More...
 
DLLAPI int ER_STDCALL erk_AutoPathSetAxisEnable (int axisBit, int enable)
 Set axis enable. More...
 
DLLAPI int ER_STDCALL erk_AutoPathSetParameter (int ap_option, int ap_value)
 Set parameter Paramter ap_option is one of
AUTOPATH_SDK_PARAMETER_DYNADJUST
AUTOPATH_SDK_PARAMETER_ALGORITHM
AUTOPATH_SDK_PARAMETER_NTREES
AUTOPATH_SDK_PARAMETER_MIN_NUM_WAYPOINTS
AUTOPATH_SDK_PARAMETER_FORCE_DETERM_BEHAVIOR
AUTOPATH_SDK_PARAMETER_LIMIT_REVOLUTE_JNT_CSPACE
AUTOPATH_SDK_PARAMETER_THREAD_PRIORITY
AUTOPATH_SDK_PARAMETER_THREAD_EXECUTION
AUTOPATH_SDK_PARAMETER_SEED_VALUE. More...
 
DLLAPI int ER_STDCALL erk_AutoPathGetParameter (int ap_option)
 Get parameter Paramter ap_option is one of
AUTOPATH_SDK_PARAMETER_DYNADJUST
AUTOPATH_SDK_PARAMETER_ALGORITHM
AUTOPATH_SDK_PARAMETER_NTREES
AUTOPATH_SDK_PARAMETER_MIN_NUM_WAYPOINTS
AUTOPATH_SDK_PARAMETER_FORCE_DETERM_BEHAVIOR
AUTOPATH_SDK_PARAMETER_LIMIT_REVOLUTE_JNT_CSPACE
AUTOPATH_SDK_PARAMETER_THREAD_PRIORITY
AUTOPATH_SDK_PARAMETER_THREAD_EXECUTION
AUTOPATH_SDK_PARAMETER_SEED_VALUE. More...
 
DLLAPI int ER_STDCALL erk_AutoPathGetResults (int ap_result)
 Get results Paramter ap_result is one of
AUTOPATH_SDK_RESULT_CHECKS
AUTOPATH_SDK_RESULT_SECONDS
AUTOPATH_SDK_RESULT_CPS
AUTOPATH_SDK_RESULT_CFREE
AUTOPATH_SDK_RESULT_COBSTACLE
AUTOPATH_SDK_RESULT_CDENSITY
AUTOPATH_SDK_RESULT_DSECONDS
AUTOPATH_SDK_RESULT_SEED_VALUE
AUTOPATH_SDK_RESULT_QUALITY_INDEX
AUTOPATH_SDK_RESULT_QUALITY_INDEX_STD_DEV. More...
 
DLLAPI long ER_STDCALL erUpdateGeo (ER_HND er_hnd)
 Updates all geometry location for each robot joint. This function causes the call of callback function TerUpdateGeometryProc().
The resulted geometry location w.r.t. robot base is the product of
KinMat and GeoMat. More...
 
DLLAPI int ER_STDCALL erGeoMngr_GetVersion ()
 GeoMngr Version. More...
 
DLLAPI TErGeoHandle ER_STDCALL erGeoMngr_LoadGeometry (ER_HND er_hnd, LOAD_GEOMETRY_DATA *p_load_geometry_data)
 Load a geometry. More...
 
DLLAPI int ER_STDCALL erGeoMngr_FreeGeometry (ER_HND er_hnd, TErGeoHandle GeoHandle)
 Free or delete a geometry. More...
 
DLLAPI int ER_STDCALL erGeoMngr_GetNumGeometries (ER_HND er_hnd)
 Get number of loaded geometries for specified device. More...
 
DLLAPI int ER_STDCALL erGeoMngr_GetGeometry (ER_HND er_hnd, int geometryIndex, LOAD_GEOMETRY_DATA *p_load_geometry_data, DFRAME *kinMat)
 
DLLAPI int ER_STDCALL erGeoMngr_GetNumAxisGeometries (ER_HND er_hnd, int axis_nr)
 
DLLAPI int ER_STDCALL erGeoMngr_GetAxisGeometry (ER_HND er_hnd, int axis_nr, int geometryIndex, LOAD_GEOMETRY_DATA *p_load_geometry_data, DFRAME *kinMat)
 
DLLAPI const double *ER_STDCALL erGeoMngr_GetGeometryBBox (TErGeoHandle geometryHandle)
 
DLLAPI const double *ER_STDCALL erGeoMngr_GetAxisBBox (ER_HND er_hnd, int axis_id)
 
DLLAPI const double *ER_STDCALL erGeoMngr_GetDeviceBBox (ER_HND er_hnd)
 
DLLAPI int ER_STDCALL erGeoMngr_GetGeometryNumObjs (TErGeoHandle geometryHandle)
 
DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumPoints (TErGeoHandle geometryHandle, int objidx)
 
DLLAPI double *ER_STDCALL erGeoMngr_GetGeometryObjPoint (TErGeoHandle geometryHandle, int objidx, int index)
 
DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumPointNormals (TErGeoHandle geometryHandle, int objidx)
 
DLLAPI double *ER_STDCALL erGeoMngr_GetGeometryObjPointNormal (TErGeoHandle geometryHandle, int objidx, int index)
 
DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumLines (TErGeoHandle geometryHandle, int objidx)
 
DLLAPI size_t *ER_STDCALL erGeoMngr_GetGeometryObjLine (TErGeoHandle geometryHandle, int objidx, int index)
 
DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumPolygons (TErGeoHandle geometryHandle, int objidx)
 
DLLAPI size_t *ER_STDCALL erGeoMngr_GetGeometryObjPolygon (TErGeoHandle geometryHandle, int objidx, int index)
 
DLLAPI double *ER_STDCALL erGeoMngr_GetGeometryObjColor (TErGeoHandle geometryHandle, int objidx)
 
DLLAPI long ER_STDCALL erGeoMngr_GetGeometryObjColorCode (TErGeoHandle geometryHandle, int objidx)
 
DLLAPI int ER_STDCALL erGeoMngr_GetGeometryCloneCount (TErGeoHandle geometryHandle)
 
DLLAPI TErGeoHandle ER_STDCALL erGeoMngr_GetGeometryCloneHandle (TErGeoHandle geometryHandle)
 
DLLAPI int ER_STDCALL erGeoMngr_SetGeometryCollisionHandle (TErGeoHandle geometryHandle, ER_COLLISION_HND collisionHandle)
 
DLLAPI ER_COLLISION_HND *ER_STDCALL erGeoMngr_GetGeometryCollisionHandle (TErGeoHandle geometryHandle)
 
DLLAPI int ER_STDCALL erGeoMngr_SetGeometryIsCollided (TErGeoHandle geometryHandle, int isCollided)
 
DLLAPI int *ER_STDCALL erGeoMngr_GetGeometryIsCollided (TErGeoHandle geometryHandle)
 
DLLAPI int ER_STDCALL erGeoMngr_CheckBoundingBoxCollision (DFRAME *T1, const double *bbox1, DFRAME *T2, const double *bbox2, double tolerance)
 
DLLAPI long ER_STDCALL erMath_FrameToVecIdx (DFRAME *T, double *vec, long rotation_idx=ER_ROT_XYZ)
 Converts a frame into an euler vector or quaternion. Frame T is converted into a vector vec
A frame DFRAME is a homogeneous 4x4 transformation matrix.
Depending on the rotation index rotation_idx, which is one of
ER_ROT_XYZ = RotX * RotY' * RotZ'' default,
ER_ROT_XYZ, ER_ROT_ZYX, ER_ROT_YXZ, ER_ROT_ZYZ,ER_ROT_XYX, ER_ROT_RPY, ER_ROT_QUAT, ER_ROT_CA, ER_ROT_ZYpZ,
ER_ROT_Y9XZ, ER_ROT_Z9XY, ER_ROT_Z9XZ, ER_ROT_Z9YX, ER_ROT_IJK, ER_ROT_ANGLE_1
See also erMath_VecToFrameIdx() More...
 
DLLAPI long ER_STDCALL erMath_VecToFrameIdx (double *vec, DFRAME *T, long rotation_idx=ER_ROT_XYZ)
 Converts an euler vector or quaternion into a frame. Vector vec is converted into a frame T
A frame DFRAME is a homogeneous 4x4 transformation matrix.
Depending on the rotation index rotation_idx, which is one of
ER_ROT_XYZ = RotX * RotY' * RotZ'' default,
ER_ROT_XYZ, ER_ROT_ZYX, ER_ROT_YXZ, ER_ROT_ZYZ,ER_ROT_XYX, ER_ROT_RPY, ER_ROT_QUAT, ER_ROT_CA, ER_ROT_ZYpZ,
ER_ROT_Y9XZ, ER_ROT_Z9XY, ER_ROT_Z9XZ, ER_ROT_Z9YX, ER_ROT_IJK, ER_ROT_ANGLE_1
See also erMath_FrameToVecIdx() More...
 
DLLAPI long ER_STDCALL erMath_PxyzRxyzToFrame (double x, double y, double z, double Rx, double Ry, double Rz, DFRAME *T)
 Converts an euler represented location with rotation index ER_ROT_XYZ into a frame.
Location x, y, z, Rx, Ry, Rz are converted into a frame T
A frame DFRAME is a homogeneous 4x4 transformation matrix.
See also erMath_VecToFrameIdx(), erMath_FrameToVecIdx() More...
 
DLLAPI long ER_STDCALL erMath_Frame_Ident (DFRAME *T)
 Set the homogeneous 4x4 transformation matrix T to identity.
T = Ident
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_Frame_Trans (DFRAME *T, double x, double y, double z)
 Set position of homogeneous 4x4 transformation matrix.
T.p[] = [x,y,z]
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_Frame_Rot (DFRAME *T, double q, long rotation_idx=ER_ROT_IDENT)
 Set orientation of homogeneous 4x4 transformation matrix.
T = f(q,rotation_idx)
The rotation index rotation_idx, is one of
ER_ROT_IDENT=default, ER_ROT_X, ER_ROT_Y or ER_ROT_Z
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_AngleBetween (DFRAME *Ts, DFRAME *Te, double *angle, double *k=NULL)
 Calculates the angle and the equivalent angle axis between two homogeneous 4x4 transformation matrices.
Rotation from start frame Ts into end frame Te by angle of rotation angle about the equivalent angle axis k
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_DistBetween (DFRAME *Ts, DFRAME *Te, double *dist, double *dv=NULL)
 Calculates the distance and direction between two homogeneous 4x4 transformation matrices.
Translation from start frame Ts into end frame Te by the distance dist in direction vd
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_CircCenterPoint (double *ps, double *pv, double *pe, DFRAME *pTc, double *radius, double *phi, double *phi_via=NULL)
 Circle calculation from three points ps over pv to pe.
Calculates center of circle, radius and angle. More...
 
DLLAPI long ER_STDCALL erMath_invT (DFRAME *To, DFRAME *Ti)
 Builds the inverse of a homogeneous 4x4 transformation matrix T.
To = inv(Ti) = ( Ri' , -Ri'*pi ), Ri' is transpose of Ri
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_invR (DFRAME *Ro, DFRAME *Ri)
 Builds the inverse of the 3x3 orientation matrix from a homogeneous 4x4 transformation matrix T.
Ro = inv(Ri) = transpose(Ri) = Ri', with Ti = ( Ri , pi )
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_R_R (DFRAME *Ro, DFRAME *Ri1, DFRAME *Ri2)
 Orientation multiplication of two homogeneous 4x4 transformation matrices.
Ro = Ri1 * Ri2
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_T_T (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2)
 Multiplication of two homogeneous 4x4 transformation matrices.
To = Ti1 * Ti2
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_T_invT (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2)
 Multiplication of two homogeneous 4x4 transformation matrices.
To = Ti1 * inv(Ti2)
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_invT_T (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2)
 Multiplication of two homogeneous 4x4 transformation matrices.
To = inv(Ti1) * Ti2
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_invT_invT (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2)
 Multiplication of two homogeneous 4x4 transformation matrices.
To = inv(Ti1) * inv(Ti2)
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_T_pos (double *po, DFRAME *T, double *pi)
 Multiplication of a 3x1 position with a homogeneous 4x4 transformation matrices.
po = T * pi, pi is vector of size ER_DIM
po = R*pi + p, with T = ( R , p) A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_invT_pos (double *po, DFRAME *T, double *pi)
 Multiplication of a 3x1 position with the inverse of a homogeneous 4x4 transformation matrices.
po = inv(T) * pi, pi is vector of size ER_DIM
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_R_pos (double *po, DFRAME *R, double *pi)
 Multiplication of a 3x1 position with the 3x3 orientation of a homogeneous 4x4 transformation matrices.
po = R * pi, pi is vector of size ER_DIM
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_invR_pos (double *po, DFRAME *R, double *pi)
 Multiplication of a 3x1 position with the transpose of a 3x3 orientation of a homogeneous 4x4 transformation matrices.
po = R' * pi, pi is vector of size ER_DIM
Remarks
R' = inv(R) is the transpose of R, see erMath_invR()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_T_T_T (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2, DFRAME *Ti3)
 Tripple multiplication of homogeneous 4x4 transformation matrices.
To = Ti1 * Ti2 * Ti3
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_T_T_invT (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2, DFRAME *Ti3)
 Tripple multiplication of homogeneous 4x4 transformation matrices.
To = Ti1 * Ti2 * inv(Ti3)
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_T_invT_T (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2, DFRAME *Ti3)
 Tripple multiplication of homogeneous 4x4 transformation matrices.
To = Ti1 * inv(Ti2) * Ti3
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_T_invT_invT (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2, DFRAME *Ti3)
 Tripple multiplication of homogeneous 4x4 transformation matrices.
To = Ti1 * inv(Ti2) * inv(Ti3)
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_invT_T_T (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2, DFRAME *Ti3)
 Tripple multiplication of homogeneous 4x4 transformation matrices.
To = inv(Ti1) * Ti2 * Ti3
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_invT_T_invT (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2, DFRAME *Ti3)
 Tripple multiplication of homogeneous 4x4 transformation matrices.
To = inv(Ti1) * Ti2 * inv(Ti3)
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_invT_invT_T (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2, DFRAME *Ti3)
 Tripple multiplication of homogeneous 4x4 transformation matrices.
To = inv(Ti1) * inv(Ti2) * Ti3
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI long ER_STDCALL erMath_mul_invT_invT_invT (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2, DFRAME *Ti3)
 Tripple multiplication of homogeneous 4x4 transformation matrices.
To = inv(Ti1) * inv(Ti2) * inv(Ti3)
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
DLLAPI double *ER_STDCALL erMath_SetVec6 (double *vec, double q1, double q2, double q3, double q4, double q5, double q6)
 Cpy six values to a vector. More...
 
DLLAPI double *ER_STDCALL erMath_SetVec6PosOri (double *vec, double x, double y, double z, double Rx, double Ry, double Rz)
 Cpy and convert a target location (position+orientation) to a vector
position x,y,z in [mm] converted to [m] by ER_mm2m
orientation Rx,Ry,Rz in [deg] converted to [rad] by ER_RAD
. More...
 
DLLAPI DFRAME *ER_STDCALL erMath_SetFramePosOri (DFRAME *To, double x, double y, double z, double Rx, double Ry, double Rz)
 Cpy and convert a target location (position+orientation) to a DFRAME
position x,y,z in [mm] converted to [m] by ER_mm2m
orientation Rx,Ry,Rz in [deg] converted to [rad] by ER_RAD
. More...
 
DLLAPI double *ER_STDCALL erMath_SetVec_n (double *vec, int n, double q1, double q2, double q3, double q4, double q5, double q6)
 Cpy n values to a vector. More...
 
DLLAPI double *ER_STDCALL erMath_CpyVec (double *dst, double *src, int n)
 Cpy vector dst = src. More...
 
DLLAPI double *ER_STDCALL erMath_ResetVec (double *dst, int n)
 Reset vector dst = 0. More...
 

Function Documentation

◆ CpyEventsTemplate()

DLLAPI long ER_STDCALL CpyEventsTemplate ( ER_TOOLPATH_HND  er_tpth_hnd,
ER_TARGET_EVENTS_HND  hnd 
)

Copy events to template data.
The events defined with events handle hnd are copied to the events template belonging to the tool path handle er_tpth_hnd.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
[in]hndtarget location events handle ER_TARGET_EVENTS_HND
Return values
0- Ok
1- Error

◆ CpyExtAxConveyorTemplate()

DLLAPI long ER_STDCALL CpyExtAxConveyorTemplate ( ER_TOOLPATH_HND  er_tpth_hnd,
ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND  hnd 
)

Copy external axis conveyor data to template data.
The external axis conveyor data defined with external axis conveyor handle hnd are copied to the external axis conveyor template belonging to the tool path handle er_tpth_hnd.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
[in]hndexternal axis conveyor handle ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND
Return values
0- Ok
1- Error

◆ CpyExtAxPositionerTemplate()

DLLAPI long ER_STDCALL CpyExtAxPositionerTemplate ( ER_TOOLPATH_HND  er_tpth_hnd,
ER_TARGET_EXTAX_DEVICE_POSITIONER_HND  hnd 
)

Copy external axis positioner data to template data.
The external axis positioner data defined with external axis positioner handle hnd are copied to the external axis positioner template belonging to the tool path handle er_tpth_hnd.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
[in]hndexternal axis positioner handle ER_TARGET_EXTAX_DEVICE_POSITIONER_HND
Return values
0- Ok
1- Error

◆ CpyExtAxTrackMotionTemplate()

DLLAPI long ER_STDCALL CpyExtAxTrackMotionTemplate ( ER_TOOLPATH_HND  er_tpth_hnd,
ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND  hnd 
)

Copy external axis track motion data to template data.
The external axis track motion data defined with external axis track motion handle hnd are copied to the external axis track motion template belonging to the tool path handle er_tpth_hnd.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
[in]hndexternal axis track motion handle ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND
Return values
0- Ok
1- Error

◆ CpyMotionAttributesTemplate()

DLLAPI long ER_STDCALL CpyMotionAttributesTemplate ( ER_TOOLPATH_HND  er_tpth_hnd,
ER_TARGET_ATTRIBUTES_HND  hnd 
)

Copy attributes to template data.
The attributes defined with attribute handle hnd are copied to the attribute template belonging to the tool path handle er_tpth_hnd.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
[in]hndattribute handle ER_TARGET_ATTRIBUTES_HND
Return values
0- Ok
1- Error

◆ CpyMoveCPTemplate()

DLLAPI long ER_STDCALL CpyMoveCPTemplate ( ER_TOOLPATH_HND  er_tpth_hnd,
ER_TARGET_MOVE_CP_HND  hnd 
)

Copy move cp data to template data.
The move cp data defined with move cp handle hnd are copied to the move cp template belonging to the tool path handle er_tpth_hnd.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
[in]hndmove cp handle ER_TARGET_MOVE_CP_HND
Return values
0- Ok
1- Error

◆ CpyMoveJointTemplate()

DLLAPI long ER_STDCALL CpyMoveJointTemplate ( ER_TOOLPATH_HND  er_tpth_hnd,
ER_TARGET_MOVE_JOINT_HND  hnd 
)

Copy move joint data to template data.
The move joint data defined with move joint handle hnd are copied to the move joint template belonging to the tool path handle er_tpth_hnd.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
[in]hndmove joint handle ER_TARGET_MOVE_JOINT_HND
Return values
0- Ok
1- Error

◆ erAddTargetLocation()

DLLAPI long ER_STDCALL erAddTargetLocation ( ER_TOOLPATH_HND  er_tpth_hnd,
ER_TARGET_LOCATION_HND er_tarloc_hnd 
)

Add a new target location to a tool path
Remarks
The new target location is reset to default values and marked as invalid, use erGetTargetLocationNumber() to receive the number of target locations in the tool path.
See ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid() to set, unset the validity of a target location or request the validity status.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
[out]er_tarloc_hnda new unique target location handle ER_TARGET_LOCATION_HND
Return values
0- Ok
1- Error

◆ erCANCEL_EVENT()

DLLAPI long ER_STDCALL erCANCEL_EVENT ( ER_HND  er_hnd,
long  event_id 
)

This function makes it possible to cancel an event previously defined in the Kernel by the erDEFINE_EVENT() function.
Opcode 149, Chapter 3.4.8, Page 3-99
Function not supported

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]event_id
Return values
0- OK
1- Error, invalid handle
-1- not supported

◆ erCANCEL_FLYBY_CRITERIA()

DLLAPI long ER_STDCALL erCANCEL_FLYBY_CRITERIA ( ER_HND  er_hnd,
long  param_number 
)

Cancels (unselects) a fly-by criterion.
Opcode 143, Chapter 3.4.6, Page 3-88
Function not supported

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]param_numberspecifies which parameter to cancel
Return values
0- OK
1- Error, invalid handle
-1- not supported

◆ erCANCEL_MOTION()

DLLAPI long ER_STDCALL erCANCEL_MOTION ( ER_HND  er_hnd)

Cancel a motion that was stopped with erSTOP_MOTION() function.
Opcode 153, Chapter 3.4.8, Page 3-103
See also erSTOP_MOTION(), erCONTINUE_MOTION()
Remarks
This function clears any remaining target positions in the Kernel.

Parameters
[in]er_hndunique kinematics handle ER_HND
Return values
0- OK
1- Error, invalid handle
-55- the function is not performed. Motion in progress

◆ erColl_AddTri()

DLLAPI long ER_STDCALL erColl_AddTri ( ER_COLLISION_HND  er_coll_hnd,
double *  p1,
double *  p2,
double *  p3,
long  id 
)

Adds a triangle to a Model.
call erColl_BeginModel() once to create a new unique model handle.

Parameters
[in]er_coll_hnda valid unique Collision handle ER_COLLISION_HND
[in]p11st point of triangle
[in]p22nd point of triangle
[in]p33rd point of triangle
[in]idunique identifier for this triangle
Return values
0- ER_COLL_OK - OK
1- ER_COLL_ERROR - Error, kernel not initialized
2- ER_COLL_HND_INVALID - Collision handle invalid

◆ erColl_BeginModel()

DLLAPI long ER_STDCALL erColl_BeginModel ( ER_COLLISION_HND er_coll_hnd,
long  n_tris 
)

Creates a collision handle for one Model and preallocate memory for n_tris triangles.

Parameters
[out]er_coll_hndunique Collision handle ER_COLLISION_HND
[in]n_trisnumber of model triangles
Return values
0- ER_COLL_OK - OK
1- ER_COLL_ERROR - Error, kernel not initialized
2- ER_COLL_HND_INVALID - Collision handle invalid
-1- ER_COLL_ERR_MODEL_OUT_OF_MEMORY - not enough memory

◆ erColl_ChkCollision()

DLLAPI long ER_STDCALL erColl_ChkCollision ( ER_COLLISION_HND  er_coll_hnd_1,
DFRAME iT_1,
ER_COLLISION_HND  er_coll_hnd_2,
DFRAME iT_2,
long  query_type = ER_COLL_QUERY_TYPE_COLLIDE,
long  contact_type = ER_COLL_FIRST_CONTACT,
double  rel_err = 0,
double  abs_err = 0,
double  tolerance = 0 
)

Perform the collision check of two Models.
See also erColl_ChkCollision_res() to get the collision results immediately
The query type query_type can be one of the following values.
0: ER_COLL_QUERY_TYPE_UNDEF skip collision checks
1: ER_COLL_QUERY_TYPE_COLLIDE detects collision between two Models
2: ER_COLL_QUERY_TYPE_DISTANCE computes the distance between two Models
3: ER_COLL_QUERY_TYPE_TOLERANCE checks if distance between Models is <= tolerance
The contact type contact_type is used for query type ER_COLL_QUERY_TYPE_COLLIDE and can be one of the following values.
1: ER_COLL_ALL_CONTACTS , the erColl_GetResults_Collide() contains an array with all colliding triangle pairs ER_CollideResult.
2: ER_COLL_FIRST_CONTACT , the erColl_GetResults_Collide() array will only get the first colliding triangle pair found.
Collide
Detects collsion. This is the fastest method.
Distance
Computes minimum distance between two Models. This method takes the most time !!!
Tolerances
Specify tolerance for query type ER_COLL_QUERY_TYPE_DISTANCE or ER_COLL_QUERY_TYPE_TOLERANCE
Checks if distance between Models is <= tolerance.
Remarks
If erColl_ChkCollision() returns with ER_COLL_DETECTED call, depending on the query type, one of the collision result functions erColl_GetResults_Collide(), erColl_GetResults_Distance() or erColl_GetResults_Tolerance() to receive more detailed information about the collision status.

// Example:
// Collision Model
//
// A Collision Model stores geometry to be used in a proximity query.
// The geometry is loaded with a call to erColl_BeginModel(), at least one call to
// erColl_AddTri(), and then a call to erColl_EndModel().
//
// create a two triangle models
//
ER_COLLISION_HND er_coll_hnd_1 = NULL; // unique Collision handle for the 1st Model
ER_COLLISION_HND er_coll_hnd_2 = NULL; // unique Collision handle for the 2nd Model
ER_COLLISION_HND *er_coll_hnd; // points to er_coll_hnd_1 or er_coll_hnd_2
long id; // tri identifier
long number_of_tris_1 = 6; // number of tris for the 1st Model
long number_of_tris_2 = 4; // number of tris for the 2nd Model
//~~~~~~~~~~~~~~~~~~~~~~~~~
// erColl_BeginModel
//~~~~~~~~~~~~~~~~~~~~~~~~~
// 1st Model
er_coll_hnd = &er_coll_hnd_1;
ret=erColl_BeginModel(er_coll_hnd,number_of_tris_1);
// 2nd Model
er_coll_hnd = &er_coll_hnd_2;
ret=erColl_BeginModel(er_coll_hnd,number_of_tris_2);
//~~~~~~~~~~~~~~~~~~~~~~~~~
// erColl_AddTri
//~~~~~~~~~~~~~~~~~~~~~~~~~
// define 5 points for a pyramide
double p1[ER_DIM] = { 0.5, 0, 0.0};
double p2[ER_DIM] = { 0.0, 0.5, 0.0};
double p3[ER_DIM] = {-0.5, 0.0, 0.0};
double p4[ER_DIM] = { 0.0,-0.5, 0.0};
double p5[ER_DIM] = { 0.0, 0.0, 0.5};
// 1st Model
er_coll_hnd = &er_coll_hnd_1;
id=0;
ret=erColl_AddTri(*er_coll_hnd,p1,p2,p5,id++);
ret=erColl_AddTri(*er_coll_hnd,p2,p3,p5,id++);
ret=erColl_AddTri(*er_coll_hnd,p3,p4,p5,id++);
ret=erColl_AddTri(*er_coll_hnd,p4,p1,p5,id++);
ret=erColl_AddTri(*er_coll_hnd,p1,p4,p3,id++); // with a bottom
ret=erColl_AddTri(*er_coll_hnd,p3,p2,p1,id++); // with a bottom
if (ret==ER_COLL_OK)
erColl_EndModel(*er_coll_hnd);
// 2nd Model
er_coll_hnd = &er_coll_hnd_2;
id=0;
ret=erColl_AddTri(*er_coll_hnd,p1,p2,p5,id++);
ret=erColl_AddTri(*er_coll_hnd,p2,p3,p5,id++);
ret=erColl_AddTri(*er_coll_hnd,p3,p4,p5,id++);
ret=erColl_AddTri(*er_coll_hnd,p4,p1,p5,id++);
if (ret==ER_COLL_OK)
erColl_EndModel(*er_coll_hnd);
//~~~~~~~~~~~~~~~~~~~~~~~~~
// erColl_ChkCollision
//~~~~~~~~~~~~~~~~~~~~~~~~~
long collision = 0; // ER_COLL_DETECTED- collision, 0- no collision
DFRAME T_1; // location of 1st Model
DFRAME T_2; // location of 2nd Model
// translate 2nd Model to z=1.5 and rotate about y-axis by 180 deg
erMath_PxyzRxyzToFrame( 0.1, 0.1, 1.5, 0.0, 180.0*ER_RAD, 0.0, &T_2);
long query_type = ER_COLL_QUERY_TYPE_DISTANCE; // or one of ER_COLL_QUERY_TYPE_COLLIDE , ER_COLL_QUERY_TYPE_DISTANCE, ER_COLL_QUERY_TYPE_TOLERANCE
long contact_type = ER_COLL_ALL_CONTACTS; // or one of ER_COLL_FIRST_CONTACT, if query_type is ER_COLL_QUERY_TYPE_COLLIDE
// if query_type is one of ER_COLL_QUERY_TYPE_DISTANCE, ER_COLL_QUERY_TYPE_TOLERANCE
double rel_err = 0; // the relative error margin from actual distance
double abs_err = 0; // the absolute error margin from actual distance
double tolerance = 100 * ER_mm2m; // 100 [mm]
collision = erColl_ChkCollision(
er_coll_hnd_1, // unique Collision handle for the 1st Model
&T_1, // location of 1st object
er_coll_hnd_2, // unique Collision handle for the 2nd Model
&T_2, // location of 2nd object
query_type, // ER_COLL_QUERY_TYPE_COLLIDE, ER_COLL_QUERY_TYPE_DISTANCE, ER_COLL_QUERY_TYPE_TOLERANCE
contact_type, // ER_COLL_FIRST_CONTACT, ER_COLL_ALL_CONTACTS
rel_err, // the relative error margin from actual distance
abs_err, // the absolute error margin from actual distance
tolerance // Tolerance [m]
);
//~~~~~~~~~~~~~~~~~~~~~~~~~
// Get collision results
//~~~~~~~~~~~~~~~~~~~~~~~~~
if (collision==ER_COLL_DETECTED ||
{
switch (query_type) {
// ....
break;
// ....
break;
// ....
break;
};
}
// ....
Parameters
[in]er_coll_hnd_1unique Collision handle for the 1st Model ER_COLLISION_HND
[in]iT_1a location of the 1st Model w.r.t. inertia DFRAME
[in]er_coll_hnd_2unique Collision handle for the 2nd Model ER_COLLISION_HND
[in]iT_2a location of the 2nd Model w.r.t. inertia DFRAME
[in]query_typecollision query type
[in]contact_typecollision contact type
[in]rel_errrelative error margin from actual distance
[in]abs_errabsolute error margin from actual distance
[in]toleranceTolerance value
Return values
3- ER_COLL_DETECTED - Collision detected
1- ER_COLL_ERROR - Error, kernel not initialized
2- ER_COLL_HND_INVALID - Collision handle invalid

◆ erColl_ChkCollision_res()

DLLAPI long ER_STDCALL erColl_ChkCollision_res ( ER_COLLISION_HND  er_coll_hnd_1,
DFRAME iT_1,
ER_COLLISION_HND  er_coll_hnd_2,
DFRAME iT_2,
long  query_type = ER_COLL_QUERY_TYPE_COLLIDE,
long  contact_type = ER_COLL_FIRST_CONTACT,
double  rel_err = 0,
double  abs_err = 0,
double  tolerance = 0,
void *  pres = NULL 
)

Perform the collision check of two Models.
Collision results returned immediately by parameter pres compared to erColl_ChkCollision()
The query type query_type can be one of the following values.
0: ER_COLL_QUERY_TYPE_UNDEF skip collision checks
1: ER_COLL_QUERY_TYPE_COLLIDE detects collision between two Models
2: ER_COLL_QUERY_TYPE_DISTANCE computes the distance between two Models
3: ER_COLL_QUERY_TYPE_TOLERANCE checks if distance between Models is <= tolerance
The contact type contact_type is used for query type ER_COLL_QUERY_TYPE_COLLIDE and can be one of the following values.
1: ER_COLL_ALL_CONTACTS , the erColl_GetResults_Collide() contains an array with all colliding triangle pairs ER_CollideResult.
2: ER_COLL_FIRST_CONTACT , the erColl_GetResults_Collide() array will only get the first colliding triangle pair found.
Collide
Detects collsion. This is the fastest method.
Distance
Computes minimum distance between two Models. This method takes the most time !!!
Tolerances
Specify tolerance for query type ER_COLL_QUERY_TYPE_DISTANCE or ER_COLL_QUERY_TYPE_TOLERANCE
Checks if distance between Models is <= tolerance.
Remarks
If erColl_ChkCollision_res() returns with ER_COLL_DETECTED, get more detailed information about the collision status by parameter pres.

// Example
//
// Erk_CollisionResult_Init(...) to initialize collision result structures depending on query_type
// Erk_CollisionResult_Output(...) to store collision results into file stream 'fp'
// Erk_Do_Collisions() performe collision check of two Models
//
int Erk_CollisionResult_Init(long query_type, void *pres)
// Initialize collision result structures depending on query_type
// Note that the Kernel will administrate the memory for p->pairs, p->p1, p->p2
// Make sure that these pointers are set to NULL here
{
if (!pres)
return 1;
switch (query_type) {
{
p->num_pairs = 0;
p->pairs = NULL;
}
break;
{
p->rel_err = 0;
p->abs_err = 0;
p->distance = 0;
p->p1 = NULL;
p->p2 = NULL;
}
break;
{
p->tolerance = 0;
p->distance = 0;
p->p1 = NULL;
p->p2 = NULL;
}
break;
};
return 0;
}
int Erk_CollisionResult_Output(long collision, long query_type, int step, void *pres)
// Store collision results into file stream 'fp'
// Pointer 'pres' points to one collision result structure: ER_CollideResult, ER_DistanceResult or ER_ToleranceResult
{
if (!pres)
return 1;
if (collision==ER_COLL_DETECTED ||
{
switch (query_type) {
{
fprintf(fp,"i=%d erColl_GetResults_Collide() num_pairs_alloced %d num_pairs %ld time %.6lf\n",step,
DFRAME *pT = &p->m1Tm2;
out_frame(fp,"m1Tm2",pT);
ER_CollisionPair *pa = p->pairs; // is NULL if no num_pairs
for (int j=0;j<p->num_pairs;j++)
{
fprintf(fp," pairs[%d] id ( %d , %d )\n",j,pa->id1,pa->id2);
pa++;
}
}
break;
{
fprintf(fp,"i=%d erColl_GetResults_Distance() rel_err %.3lf abs_err %.3lf distance %.3lf time %.6lf\n",step,
p->rel_err*100,
DFRAME *pT = &p->m1Tm2;
out_frame(fp,"m1Tm2",pT);
if (p->distance>0)
{
double *v;
v = p->p1;
fprintf(fp," p1 %.3lf %.3lf %.3lf\n",v[0]*ER_m2mm,v[1]*ER_m2mm,v[2]*ER_m2mm);
v = p->p2;
fprintf(fp," p2 %.3lf %.3lf %.3lf\n",v[0]*ER_m2mm,v[1]*ER_m2mm,v[2]*ER_m2mm);
}
}
break;
{
fprintf(fp,"i=%d erColl_GetResults_Tolerance() closer_than_tolerance %s tolerance %.3lf distance %.3lf time %.6lf\n",step,
DFRAME *pT = &p->m1Tm2;
out_frame(fp,"m1Tm2",pT);
if (p->distance>0)
{
double *v;
v = p->p1;
fprintf(fp," p1 %.3lf %.3lf %.3lf\n",v[0]*ER_m2mm,v[1]*ER_m2mm,v[2]*ER_m2mm);
v = p->p2;
fprintf(fp," p2 %.3lf %.3lf %.3lf\n",v[0]*ER_m2mm,v[1]*ER_m2mm,v[2]*ER_m2mm);
}
}
break;
};
}
return 0;
}
int Erk_Do_Collisions()
// do some collisions
{
// Collision Model
//
// A Collision Model stores geometry to be used in a proximity query.
// The geometry is loaded with a call to erColl_BeginModel(), at least one call to
// erColl_AddTri(), and then a call to erColl_EndModel().
//
// create a two triangle models
//
int ret=ER_COLL_OK;
long collision = ER_COLL_OK; // ER_COLL_DETECTED - collision, ER_COLL_OK - no collision
//~~~~~~~~~~~~~~~~~~~~~~~~~
// erColl_BeginModel
//~~~~~~~~~~~~~~~~~~~~~~~~~
ER_COLLISION_HND er_coll_hnd_1 = NULL; // unique Collision handle for the 1st Model
ER_COLLISION_HND er_coll_hnd_2 = NULL; // unique Collision handle for the 2nd Model
ER_COLLISION_HND *er_coll_hnd; // points to er_coll_hnd_1 or er_coll_hnd_2
long id; // tri identifier
long number_of_tris_1 = 6; // number of tris for the 1st Model
long number_of_tris_2 = 4; // number of tris for the 2nd Model
// 1st Model
er_coll_hnd = &er_coll_hnd_1;
ret=erColl_BeginModel(er_coll_hnd,number_of_tris_1);
// 2nd Model
er_coll_hnd = &er_coll_hnd_2;
ret=erColl_BeginModel(er_coll_hnd,number_of_tris_2);
//~~~~~~~~~~~~~~~~~~~~~~~~~
// erColl_AddTri
//~~~~~~~~~~~~~~~~~~~~~~~~~
// define 5 points for a pyramide
double p1[ER_DIM] = { 0.5, 0, 0.0};
double p2[ER_DIM] = { 0.0, 0.5, 0.0};
double p3[ER_DIM] = {-0.5, 0.0, 0.0};
double p4[ER_DIM] = { 0.0,-0.5, 0.0};
double p5[ER_DIM] = { 0.0, 0.0, 0.5};
// 1st Model
er_coll_hnd = &er_coll_hnd_1;
id=0;
ret=erColl_AddTri(*er_coll_hnd,p1,p2,p5,id++);
ret=erColl_AddTri(*er_coll_hnd,p2,p3,p5,id++);
ret=erColl_AddTri(*er_coll_hnd,p3,p4,p5,id++);
ret=erColl_AddTri(*er_coll_hnd,p4,p1,p5,id++);
ret=erColl_AddTri(*er_coll_hnd,p1,p4,p3,id++); // bottom
ret=erColl_AddTri(*er_coll_hnd,p3,p2,p1,id++); // bottom
if (ret==ER_COLL_OK)
erColl_EndModel(*er_coll_hnd);
// 2nd Model
er_coll_hnd = &er_coll_hnd_2;
id=0;
ret=erColl_AddTri(*er_coll_hnd,p1,p2,p5,id++);
ret=erColl_AddTri(*er_coll_hnd,p2,p3,p5,id++);
ret=erColl_AddTri(*er_coll_hnd,p3,p4,p5,id++);
ret=erColl_AddTri(*er_coll_hnd,p4,p1,p5,id++);
if (ret==ER_COLL_OK)
erColl_EndModel(*er_coll_hnd);
//~~~~~~~~~~~~~~~~~~~~~~~~~
// erColl_ChkCollision
//~~~~~~~~~~~~~~~~~~~~~~~~~
DFRAME T_1; // location of 1st Model
DFRAME T_2; // location of 2nd Model
// translate 2nd Model to z=1.5 and rotate about y-axis by 180°
erMath_PxyzRxyzToFrame( 0.1, 0.1, 1.5, 0.0, 180.0*ER_RAD, 0.0, &T_2);
// Choose query_type
long query_type = ER_COLL_QUERY_TYPE_DISTANCE; // or one of ER_COLL_QUERY_TYPE_COLLIDE , ER_COLL_QUERY_TYPE_DISTANCE, ER_COLL_QUERY_TYPE_TOLERANCE
// Set contact_type
// Note: Only relevant for query_type = ER_COLL_QUERY_TYPE_COLLIDE
long contact_type = ER_COLL_ALL_CONTACTS; // or one of ER_COLL_FIRST_CONTACT, if query_type is ER_COLL_QUERY_TYPE_COLLIDE
// Set rel_err, abs_err and tolerance
// Note: Only relevant for query_type = ER_COLL_QUERY_TYPE_DISTANCE or ER_COLL_QUERY_TYPE_TOLERANCE
double rel_err = 0; // the relative error margin from actual distance
double abs_err = 0; // the absolute error margin from actual distance
double tolerance = 100 * ER_mm2m; // 100 [mm]
// Initialize collision result structures
// depending on query_type
void *pres=NULL;
pres = query_type==ER_COLL_QUERY_TYPE_COLLIDE ? (void *)&er_cres :
query_type==ER_COLL_QUERY_TYPE_DISTANCE ? (void *)&er_dres :
query_type==ER_COLL_QUERY_TYPE_TOLERANCE ? (void *)&er_tres :
NULL;
// Initialize collision result structures depending on query_type
Erk_CollisionResult_Init(query_type,pres);
// make some collision tests,
// while moving 2nd Model down by 100 mm step
for (int i=0;ret==ER_COLL_OK && i<20;i++)
{
T_2.p[2] -= 100 * ER_mm2m; // move 2nd Model in -z direction
er_coll_hnd_1, // unique Collision handle for the 1st Model
&T_1, // location of 1st object
er_coll_hnd_2, // unique Collision handle for the 2nd Model
&T_2, // location of 2nd object
query_type, // ER_COLL_QUERY_TYPE_COLLIDE, ER_COLL_QUERY_TYPE_DISTANCE, ER_COLL_QUERY_TYPE_TOLERANCE
contact_type, // ER_COLL_FIRST_CONTACT, ER_COLL_ALL_CONTACTS
rel_err, // the relative error margin from actual distance
abs_err, // the absolute error margin from actual distance
tolerance, // Tolerance [m]
pres // pres collision result depending on query type is ::ER_CollideResult, ::ER_DistanceResult or ::ER_ToleranceResult
);
fprintf(fp,"i=%d erColl_ChkCollision() T_2.p[2]=%.5lf , collision = %ld\n",i,T_2.p[2],collision);
if (collision==ER_COLL_ERROR || collision==ER_COLL_HND_INVALID)
{
}
//~~~~~~~~~~~~~~~~~~~~~~~~~
// Output of collision results
//~~~~~~~~~~~~~~~~~~~~~~~~~
if (pres) // Pointer 'pres' points to one collision result structure: ER_CollideResult, ER_DistanceResult or ER_ToleranceResult
Erk_CollisionResult_Output(collision,query_type,i,pres); // Store collision results into file stream 'fp'
else
{
//~~~~~~~~~~~~~~~~~~~~~~~~~
// Get collision results
// Using
// erColl_GetResults_Collide()
// erColl_GetResults_Distance()
// erColl_GetResults_Tolerance()
//~~~~~~~~~~~~~~~~~~~~~~~~~
switch (query_type) {
pres = (void*) &er_cres;
break;
pres = (void*) &er_dres;
break;
pres = (void*) &er_tres;
break;
};
if (pres)
Erk_CollisionResult_Output(collision,query_type,i,pres); // Store collision results into file stream 'fp'
}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~
// Free collision result structures depending on query_type
//~~~~~~~~~~~~~~~~~~~~~~~~~
if (pres)
//~~~~~~~~~~~~~~~~~~~~~~~~~
// erColl_UnloadModel
//~~~~~~~~~~~~~~~~~~~~~~~~~
// 1st Model
er_coll_hnd = &er_coll_hnd_1;
erColl_UnloadModel(er_coll_hnd);
// 2nd Model
er_coll_hnd = &er_coll_hnd_2;
erColl_UnloadModel(er_coll_hnd);
return 0;
}
// ....
Parameters
[in]er_coll_hnd_1unique Collision handle for the 1st Model ER_COLLISION_HND
[in]iT_1a location of the 1st Model w.r.t. inertia DFRAME
[in]er_coll_hnd_2unique Collision handle for the 2nd Model ER_COLLISION_HND
[in]iT_2a location of the 2nd Model w.r.t. inertia DFRAME
[in]query_typecollision query type
[in]contact_typecollision contact type
[in]rel_errrelative error margin from actual distance
[in]abs_errabsolute error margin from actual distance
[in]toleranceTolerance value query_type
[out]prespointer to collision result structure ER_CollideResult, ER_DistanceResult or ER_ToleranceResult, depending on query type
Return values
3- ER_COLL_DETECTED - Collision detected
1- ER_COLL_ERROR - Error, kernel not initialized
2- ER_COLL_HND_INVALID - Collision handle invalid

◆ erColl_ChkCollision_res_free()

DLLAPI long ER_STDCALL erColl_ChkCollision_res_free ( long  query_type,
void *  pres 
)

Frees allocated memory for Collision results for parameter pres
The query type query_type can be one of the following values.
0: ER_COLL_QUERY_TYPE_UNDEF skip operation
1: ER_COLL_QUERY_TYPE_COLLIDE frees allocated data in ER_CollideResult
2: ER_COLL_QUERY_TYPE_DISTANCE frees allocated data in ER_DistanceResult
3: ER_COLL_QUERY_TYPE_TOLERANCE frees allocated data in ER_ToleranceResult
Remarks
Note that the allocated memory in the Collision results structures must be administrated by the Kernel and not in the host application.

// Example
//
// Erk_CollisionResult_Exit(...) to frees collision result structures depending on query_type
//
int Erk_CollisionResult_Exit(long query_type, void *pres)
// frees collision result structures depending on query_type
{
if (!pres)
return ER_COLL_ERROR;
long ret = erColl_ChkCollision_res_free(query_type,pres);
return ret;
}
// ....
Parameters
[in]query_typecollision query type
[out]prespointer to collision result structure ER_CollideResult, ER_DistanceResult or ER_ToleranceResult, depending on query type
Return values
0- ER_COLL_OK - Ok, free memory done
1- ER_COLL_ERROR - Error, kernel not initialized

◆ erColl_EndModel()

DLLAPI long ER_STDCALL erColl_EndModel ( ER_COLLISION_HND  er_coll_hnd)

Stop building a Model.

Parameters
[in]er_coll_hnda valid unique Collision handle ER_COLLISION_HND
Return values
0- ER_COLL_OK - OK
1- ER_COLL_ERROR - Error, kernel not initialized
2- ER_COLL_HND_INVALID - Collision handle invalid

◆ erColl_GetResults_Collide()

DLLAPI long ER_STDCALL erColl_GetResults_Collide ( ER_CollideResult er_cres)

Get Collision result for query ER_COLL_QUERY_TYPE_COLLIDE. Remarks
Call erColl_ChkCollision() first, before calling this function
Call erColl_ChkCollision_res() to receive the collision result immediately.

Parameters
[out]er_crescollide results ER_CollideResult
Return values
0- OK
1- Error, kernel not initialized

◆ erColl_GetResults_Distance()

DLLAPI long ER_STDCALL erColl_GetResults_Distance ( ER_DistanceResult er_dres)

Get Collision result for query ER_COLL_QUERY_TYPE_DISTANCE. Remarks
Call erColl_ChkCollision() first, before calling this function
Call erColl_ChkCollision_res() to receive the collision result immediately.

Parameters
[out]er_dresdistance results ER_DistanceResult
Return values
0- OK
1- Error, kernel not initialized

◆ erColl_GetResults_Tolerance()

DLLAPI long ER_STDCALL erColl_GetResults_Tolerance ( ER_ToleranceResult er_tres)

Get Collision result for query ER_COLL_QUERY_TYPE_TOLERANCE. Remarks
Call erColl_ChkCollision() first, before calling this function
Call erColl_ChkCollision_res() to receive the collision result immediately.

Parameters
[out]er_trestolerance results ER_ToleranceResult
Return values
0- OK
1- Error, kernel not initialized

◆ erColl_UnloadModel()

DLLAPI long ER_STDCALL erColl_UnloadModel ( ER_COLLISION_HND er_coll_hnd)

Unload a Model. Free all allocated memory.

Parameters
[in]er_coll_hnda valid unique Collision handle ER_COLLISION_HND
Return values
0- ER_COLL_OK - OK
1- ER_COLL_ERROR - Error, kernel not initialized
2- ER_COLL_HND_INVALID - Collision handle invalid

◆ erConnectConveyor()

DLLAPI long ER_STDCALL erConnectConveyor ( ER_HND  er_hnd,
ER_HND  er_hnd_connect 
)

Connects a conveyor kinematics with handle er_hnd_connect to the robot kinematics with handle er_hnd.
Remarks
Use erConnectConveyorSetSync() for synchronized motion with a conveyor.
Use erConnectConveyorGetSync() to receive synchronization status between robot and the connected conveyor.

// Example:
long ret;
ER_HND c_er_hnd; // valid robot handle
ret = erInitKin(&c_er_hnd); // Create a unique kinematics handle
ret = erLoadKin(c_er_hnd,"a robot file name"); // Load an EASY-ROB rob file (*.rob) containing a kinematics
ER_HND er_hnd_conveyor; // valid conveyor handle
ret = erInitKin(&er_hnd_conveyor); // Create a unique kinematics handle
ret = erLoadKin(er_hnd_conveyor,"a conveyor file name"); // Load an EASY-ROB rob file (*.rob) containing a kinematics
ret = erConnectConveyor(c_er_hnd,er_hnd_conveyor); // Connects a conveyor to the robot
long sync_type = ER_SYNC_ON; // device synchronization, ER_SYNC_OFF, ER_SYNC_ON
ret = erConnectConveyorSetSync(c_er_hnd,sync_type); // Set robots synchronization flag
...
Parameters
[in]er_hndunique kinematics handle for the robot ER_HND
[in]er_hnd_connectunique kinematics handle for the conveyor ER_HND
Return values
0- OK
1- Error, not licensed option, invalid handle

◆ erConnectConveyorGetHND()

DLLAPI ER_HND ER_STDCALL erConnectConveyorGetHND ( ER_HND  er_hnd)

Get robots connection handle between robot and conveyor.
See also erConnectConveyor()

Parameters
[in]er_hndunique kinematics handle for the robot ER_HND
Return values
NULL- not connected or error
notNULL - valid handle for connected device

◆ erConnectConveyorGetSync()

DLLAPI long ER_STDCALL erConnectConveyorGetSync ( ER_HND  er_hnd)

Get robots synchronization flag for synchronization between robot and conveyor.
See also erConnectConveyorSetSync()

Parameters
[in]er_hndunique kinematics handle for the robot ER_HND
Return values
0- ER_SYNC_UNDEF - Error, synchronization not defined, robot is maybe not connected to conveyor
1- ER_SYNC_OFF - synchronization is OFF
2- ER_SYNC_ON - synchronization is ON
-1- Error, not licensed option, invalid handle

◆ erConnectConveyorSetSync()

DLLAPI long ER_STDCALL erConnectConveyorSetSync ( ER_HND  er_hnd,
long  connect_sync 
)

Set robots synchronization flag for synchronization between robot and conveyor.
The synchronization flag connect_sync can be one of the following values.
1: ER_SYNC_OFF, 2: ER_SYNC_ON
See also erConnectConveyorGetSync()

Parameters
[in]er_hndunique kinematics handle for the robot ER_HND
[in]connect_syncsynchronization flag
Return values
0- OK
1- Error, not licensed option, invalid handle

◆ erConnectPositioner()

DLLAPI long ER_STDCALL erConnectPositioner ( ER_HND  er_hnd,
ER_HND  er_hnd_connect 
)

Connects a positioner kinematics with handle er_hnd_connect to the robot kinematics with handle er_hnd.
Remarks
Use erConnectPositionerSetSync() for synchronized motion with a positioner.
Use erConnectPositionerGetSync() to receive synchronization status between robot and the connected positioner.

// Example:
long ret;
ER_HND c_er_hnd; // valid robot handle
ret = erInitKin(&c_er_hnd); // Create a unique kinematics handle
ret = erLoadKin(c_er_hnd,"a robot file name"); // Load an EASY-ROB rob file (*.rob) containing a kinematics
ER_HND er_hnd_positioner; // valid positioner handle
ret = erInitKin(&er_hnd_positioner); // Create a unique kinematics handle
ret = erLoadKin(er_hnd_positioner,"a positioner file name"); // Load an EASY-ROB rob file (*.rob) containing a kinematics
ret = erConnectPositioner(c_er_hnd,er_hnd_positioner); // Connects a positioner to the robot
long sync_type = ER_SYNC_ON; // device synchronization, ER_SYNC_OFF or ER_SYNC_ON
ret = erConnectPositionerSetSync(c_er_hnd,sync_type); // Set robots synchronization flag
...
Parameters
[in]er_hndunique kinematics handle for the robot ER_HND
[in]er_hnd_connectunique kinematics handle for the positioner ER_HND
Return values
0- OK
1- Error, not licensed option, invalid handle

◆ erConnectPositionerGetHND()

DLLAPI ER_HND ER_STDCALL erConnectPositionerGetHND ( ER_HND  er_hnd)

Get robots connection handle between robot and positioner.
See also erConnectPositioner()

Parameters
[in]er_hndunique kinematics handle for the robot ER_HND
Return values
NULL- not connected or error
notNULL - valid handle for connected device

◆ erConnectPositionerGetSync()

DLLAPI long ER_STDCALL erConnectPositionerGetSync ( ER_HND  er_hnd)

Get robots synchronization flag for synchronization between robot and positioner.
See also erConnectPositionerSetSync()

Parameters
[in]er_hndunique kinematics handle for the robot ER_HND
Return values
0- ER_SYNC_UNDEF - Error, synchronization not defined, robot is maybe not connected to positioner
1- ER_SYNC_OFF - synchronization is OFF
2- ER_SYNC_ON - synchronization is ON
-1- Error, not licensed option, invalid handle

◆ erConnectPositionerSetSync()

DLLAPI long ER_STDCALL erConnectPositionerSetSync ( ER_HND  er_hnd,
long  connect_sync 
)

Set robots synchronization flag for synchronization between robot and positioner.
The synchronization flag connect_sync can be one of the following values.
1: ER_SYNC_OFF, 2: ER_SYNC_ON
See also erConnectPositionerGetSync()

Parameters
[in]er_hndunique kinematics handle for the robot ER_HND
[in]connect_syncsynchronization flag
Return values
0- OK
1- Error, not licensed option, invalid handle

◆ erConnectRobot()

DLLAPI long ER_STDCALL erConnectRobot ( ER_HND  er_hnd,
ER_HND  er_hnd_connect 
)

Connects a slave robot kinematics with handle er_hnd_connect to the robot kinematics with handle er_hnd.
Remarks
Use erConnectRobotSetSync() for synchronized motion with a slave robot.
Use erConnectRobotGetSync() to receive synchronization status between robot and the connected slave robot.

// Example:
long ret;
ER_HND c_er_hnd; // valid robot handle
ret = erInitKin(&c_er_hnd); // Create a unique kinematics handle
ret = erLoadKin(c_er_hnd,"a robot file name"); // Load an EASY-ROB rob file (*.rob) containing a kinematics
ER_HND er_hnd_slave_robot; // valid slave robot handle
ret = erInitKin(&er_hnd_slave_robot); // Create a unique kinematics handle
ret = erLoadKin(er_hnd_slave_robot,"a slave robot file name"); // Load an EASY-ROB rob file (*.rob) containing a kinematics
ret = erConnectConveyor(c_er_hnd,er_hnd_slave_robot); // Connects a slave robot to the robot
long sync_type = ER_SYNC_ON; // device synchronization, ER_SYNC_OFF, ER_SYNC_ON
ret = erConnectRobot(c_er_hnd,sync_type); // Set robots synchronization flag
...
Parameters
[in]er_hndunique kinematics handle for the robot ER_HND
[in]er_hnd_connectunique kinematics handle for the slave robot ER_HND
Return values
0- OK
1- Error, not licensed option, invalid handle

◆ erConnectRobotGetHND()

DLLAPI ER_HND ER_STDCALL erConnectRobotGetHND ( ER_HND  er_hnd)

Get robots connection handle between robot and slave robot.
See also erConnectRobot()

Parameters
[in]er_hndunique kinematics handle for the robot ER_HND
Return values
NULL- not connected or error
notNULL - valid handle for connected device

◆ erConnectRobotGetSync()

DLLAPI long ER_STDCALL erConnectRobotGetSync ( ER_HND  er_hnd)

Get robots synchronization flag for synchronization between robot and slave robot.
See also erConnectRobotSetSync()

Parameters
[in]er_hndunique kinematics handle for the robot ER_HND
Return values
0- ER_SYNC_UNDEF - Error, synchronization not defined, robot is maybe not connected to slave robot
1- ER_SYNC_OFF - synchronization is OFF
2- ER_SYNC_ON - synchronization is ON
-1- Error, not licensed option, invalid handle

◆ erConnectRobotSetSync()

DLLAPI long ER_STDCALL erConnectRobotSetSync ( ER_HND  er_hnd,
long  connect_sync 
)

Set robots synchronization flag for synchronization between robot and slave robot.
The synchronization flag connect_sync can be one of the following values.
1: ER_SYNC_OFF, 2: ER_SYNC_ON
See also erConnectRobotGetSync()

Parameters
[in]er_hndunique kinematics handle for the robot ER_HND
[in]connect_syncsynchronization flag
Return values
0- OK
1- Error, not licensed option, invalid handle

◆ erConnectTrackMotion()

DLLAPI long ER_STDCALL erConnectTrackMotion ( ER_HND  er_hnd,
ER_HND  er_hnd_connect 
)

Connects a track motion kinematics with handle er_hnd_connect to the robot kinematics with handle er_hnd.
Remarks
Use erConnectTrackMotionSetSync() for synchronized motion with a track motion.
Use erConnectTrackMotionGetSync() to receive synchronization status between robot and the connected track motion.

// Example:
long ret;
ER_HND c_er_hnd; // valid robot handle
ret = erInitKin(&c_er_hnd); // Create a unique kinematics handle
ret = erLoadKin(c_er_hnd,"a robot file name"); // Load an EASY-ROB rob file (*.rob) containing a kinematics
ER_HND er_hnd_track_motion; // valid track motion handle
ret = erInitKin(&er_hnd_track_motion); // Create a unique kinematics handle
ret = erLoadKin(er_hnd_track_motion,"a track motion file name"); // Load an EASY-ROB rob file (*.rob) containing a kinematics
ret = erConnectTrackMotion(c_er_hnd,er_hnd_track_motion); // Connects a track motion to the robot
long sync_type = ER_SYNC_ON; // device synchronization, ER_SYNC_OFF, ER_SYNC_ON, ER_SYNC_CONVEYOR
ret = erConnectTrackMotion(c_er_hnd,sync_type); // Set robots synchronization flag
...
Parameters
[in]er_hndunique kinematics handle for the robot ER_HND
[in]er_hnd_connectunique kinematics handle for the track motion ER_HND
Return values
0- OK
1- Error, not licensed option, invalid handle

◆ erConnectTrackMotionGetHND()

DLLAPI ER_HND ER_STDCALL erConnectTrackMotionGetHND ( ER_HND  er_hnd)

Get robots connection handle between robot and track motion.
See also erConnectTrackMotion()

Parameters
[in]er_hndunique kinematics handle for the robot ER_HND
Return values
NULL- not connected or error
notNULL - valid handle for connected device

◆ erConnectTrackMotionGetSync()

DLLAPI long ER_STDCALL erConnectTrackMotionGetSync ( ER_HND  er_hnd)

Get robots synchronization flag for synchronization between robot and track motion.
See also erConnectTrackMotionSetSync()

Parameters
[in]er_hndunique kinematics handle for the robot ER_HND
Return values
0- ER_SYNC_UNDEF - Error, synchronization not defined, robot is maybe not connected to track motion
1- ER_SYNC_OFF - synchronization is OFF
2- ER_SYNC_ON - synchronization is ON
4- ER_SYNC_CONVEYOR - additional synchronization with Conveyor
-1- Error, not licensed option, invalid handle

◆ erConnectTrackMotionSetSync()

DLLAPI long ER_STDCALL erConnectTrackMotionSetSync ( ER_HND  er_hnd,
long  connect_sync 
)

Set robots synchronization flag for synchronization between robot and track motion.
The synchronization flag connect_sync can be one of the following values.
1: ER_SYNC_OFF, 2: ER_SYNC_ON, 4: ER_SYNC_CONVEYOR
See also erConnectTrackMotionGetSync()

Parameters
[in]er_hndunique kinematics handle for the robot ER_HND
[in]connect_syncsynchronization flag
Return values
0- OK
1- Error, not licensed option, invalid handle

◆ erCONTINUE_MOTION()

DLLAPI long ER_STDCALL erCONTINUE_MOTION ( ER_HND  er_hnd)

Continues a motion that was stopped with the erSTOP_MOTION() function.
Opcode 152, Chapter 3.4.8, Page 3-102
See also erSTOP_MOTION(), erCANCEL_MOTION()
Remarks
After calling this function, the erGET_NEXT_STEP() should be called repeatedly in order to get the acceleration steps.

Parameters
[in]er_hndunique kinematics handle ER_HND
Return values
0- OK
1- Error, invalid handle
-55- the function is not performed. Motion in progress

◆ erDEFINE_EVENT()

DLLAPI long ER_STDCALL erDEFINE_EVENT ( ER_HND  er_hnd,
long  event_id,
long  target_id,
double  resolution,
long  type_of_event,
double  event_spec 
)

Defines an internal asynchronous event that is to be generated relative to position and/or time in the Kernel.
Opcode 148, Chapter 3.4.8, Page 3-96
Function not supported

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]event_id
[in]target_id
[in]resolution
[in]type_of_event
[in]event_spec
Return values
0- OK
1- Error, invalid handle
-1- not supported

◆ erEnableCallBack_LogProc()

DLLAPI void ER_STDCALL erEnableCallBack_LogProc ( long  onoff)

Enable/Disable Log messages.
This function enables or disables Log Messages used with callback function TerLogProc This function can be called before kernel initialization erKernelInitialize()

// Example:
long m_LogProc; // 1-enable Log Messages for Callback Function, see erSetCallBack_LogProc(); 0-disable
m_LogProc = 1; // enable log messages before kernel initialization
...
char HostPath[LS_MAXSTR]; // HostApplictaionPathPath
getcwd(HostPath,LS_MAXSTR); // get current workinbg directory
char *Sold_To_ID = NULL; // individual customer identifier
erKernelInitialize(HostPath,Sold_To_ID);
...
Parameters
[in]onoff=1 enable, =0 disable
Return values
void

◆ erFindConfig()

DLLAPI long ER_STDCALL erFindConfig ( ER_HND  er_hnd,
long *  config 
)

Find current robot configuration
Finds current robot configuration, depending on current robot joint location.
The config is valid for 1 to number of possible configurations, see erGetNumConfigs()
Remarks
If the robot configuration cannot be found, a notify message ER_NOTIFY_CODE_FIND_CONFIG_FAILED will be generated.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]configrobot configuration number [1..number of robot configurations]
Return values
0- OK
1- Error, invalid handle

◆ erGeoMngr_CheckBoundingBoxCollision()

DLLAPI int ER_STDCALL erGeoMngr_CheckBoundingBoxCollision ( DFRAME T1,
const double *  bbox1,
DFRAME T2,
const double *  bbox2,
double  tolerance 
)

◆ erGeoMngr_FreeGeometry()

DLLAPI int ER_STDCALL erGeoMngr_FreeGeometry ( ER_HND  er_hnd,
TErGeoHandle  GeoHandle 
)

Free or delete a geometry.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]GeoHandleunique geometry handle TErGeoHandle
Return values
0- OK
1- Error

◆ erGeoMngr_GetAxisBBox()

DLLAPI const double* ER_STDCALL erGeoMngr_GetAxisBBox ( ER_HND  er_hnd,
int  axis_id 
)

◆ erGeoMngr_GetAxisGeometry()

DLLAPI int ER_STDCALL erGeoMngr_GetAxisGeometry ( ER_HND  er_hnd,
int  axis_nr,
int  geometryIndex,
LOAD_GEOMETRY_DATA p_load_geometry_data,
DFRAME kinMat 
)

◆ erGeoMngr_GetDeviceBBox()

DLLAPI const double* ER_STDCALL erGeoMngr_GetDeviceBBox ( ER_HND  er_hnd)

◆ erGeoMngr_GetGeometry()

DLLAPI int ER_STDCALL erGeoMngr_GetGeometry ( ER_HND  er_hnd,
int  geometryIndex,
LOAD_GEOMETRY_DATA p_load_geometry_data,
DFRAME kinMat 
)

◆ erGeoMngr_GetGeometryBBox()

DLLAPI const double* ER_STDCALL erGeoMngr_GetGeometryBBox ( TErGeoHandle  geometryHandle)

◆ erGeoMngr_GetGeometryCloneCount()

DLLAPI int ER_STDCALL erGeoMngr_GetGeometryCloneCount ( TErGeoHandle  geometryHandle)

◆ erGeoMngr_GetGeometryCloneHandle()

DLLAPI TErGeoHandle ER_STDCALL erGeoMngr_GetGeometryCloneHandle ( TErGeoHandle  geometryHandle)

◆ erGeoMngr_GetGeometryCollisionHandle()

DLLAPI ER_COLLISION_HND* ER_STDCALL erGeoMngr_GetGeometryCollisionHandle ( TErGeoHandle  geometryHandle)

◆ erGeoMngr_GetGeometryIsCollided()

DLLAPI int* ER_STDCALL erGeoMngr_GetGeometryIsCollided ( TErGeoHandle  geometryHandle)

◆ erGeoMngr_GetGeometryNumObjs()

DLLAPI int ER_STDCALL erGeoMngr_GetGeometryNumObjs ( TErGeoHandle  geometryHandle)

◆ erGeoMngr_GetGeometryObjColor()

DLLAPI double* ER_STDCALL erGeoMngr_GetGeometryObjColor ( TErGeoHandle  geometryHandle,
int  objidx 
)

◆ erGeoMngr_GetGeometryObjColorCode()

DLLAPI long ER_STDCALL erGeoMngr_GetGeometryObjColorCode ( TErGeoHandle  geometryHandle,
int  objidx 
)

◆ erGeoMngr_GetGeometryObjLine()

DLLAPI size_t* ER_STDCALL erGeoMngr_GetGeometryObjLine ( TErGeoHandle  geometryHandle,
int  objidx,
int  index 
)

◆ erGeoMngr_GetGeometryObjNumLines()

DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumLines ( TErGeoHandle  geometryHandle,
int  objidx 
)

◆ erGeoMngr_GetGeometryObjNumPointNormals()

DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumPointNormals ( TErGeoHandle  geometryHandle,
int  objidx 
)

◆ erGeoMngr_GetGeometryObjNumPoints()

DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumPoints ( TErGeoHandle  geometryHandle,
int  objidx 
)

◆ erGeoMngr_GetGeometryObjNumPolygons()

DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumPolygons ( TErGeoHandle  geometryHandle,
int  objidx 
)

◆ erGeoMngr_GetGeometryObjPoint()

DLLAPI double* ER_STDCALL erGeoMngr_GetGeometryObjPoint ( TErGeoHandle  geometryHandle,
int  objidx,
int  index 
)

◆ erGeoMngr_GetGeometryObjPointNormal()

DLLAPI double* ER_STDCALL erGeoMngr_GetGeometryObjPointNormal ( TErGeoHandle  geometryHandle,
int  objidx,
int  index 
)

◆ erGeoMngr_GetGeometryObjPolygon()

DLLAPI size_t* ER_STDCALL erGeoMngr_GetGeometryObjPolygon ( TErGeoHandle  geometryHandle,
int  objidx,
int  index 
)

◆ erGeoMngr_GetNumAxisGeometries()

DLLAPI int ER_STDCALL erGeoMngr_GetNumAxisGeometries ( ER_HND  er_hnd,
int  axis_nr 
)

◆ erGeoMngr_GetNumGeometries()

DLLAPI int ER_STDCALL erGeoMngr_GetNumGeometries ( ER_HND  er_hnd)

Get number of loaded geometries for specified device.

Parameters
[in]er_hndunique kinematics handle ER_HND
Return values
0- no geometries loaded or invalid handle
>0- number of loaded geometries

◆ erGeoMngr_GetVersion()

DLLAPI int ER_STDCALL erGeoMngr_GetVersion ( )

GeoMngr Version.

Return values
versionGeoMngr version number

◆ erGeoMngr_LoadGeometry()

DLLAPI TErGeoHandle ER_STDCALL erGeoMngr_LoadGeometry ( ER_HND  er_hnd,
LOAD_GEOMETRY_DATA p_load_geometry_data 
)

Load a geometry.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]p_load_geometry_dataLOAD_GEOMETRY_DATA
Return values
TErGeoHandleunique geometry handle created by GeoMngr

◆ erGeoMngr_SetGeometryCollisionHandle()

DLLAPI int ER_STDCALL erGeoMngr_SetGeometryCollisionHandle ( TErGeoHandle  geometryHandle,
ER_COLLISION_HND  collisionHandle 
)

◆ erGeoMngr_SetGeometryIsCollided()

DLLAPI int ER_STDCALL erGeoMngr_SetGeometryIsCollided ( TErGeoHandle  geometryHandle,
int  isCollided 
)

◆ erGET_CARTESIAN_ORIENTATION_ACCELERATION()

DLLAPI long ER_STDCALL erGET_CARTESIAN_ORIENTATION_ACCELERATION ( ER_HND  er_hnd,
long  rotation_no,
double *  accel_ori_value,
long  accel_type 
)

Gets acceleration for the orientation during cartesian motion [m/sec^2].
The rotation_no should be 1.
The accel_type specifies the type of acceleration and can be one of the following values.
1: Acceleration, 2: Deceleration.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]rotation_noNumber of the rotation axis
[out]accel_ori_valueAcceleration for orientation [rad/^2]
[in]accel_typeType of acceleration.
Return values
0- OK
1- Error

◆ erGET_CARTESIAN_POSITION_ACCELERATION()

DLLAPI long ER_STDCALL erGET_CARTESIAN_POSITION_ACCELERATION ( ER_HND  er_hnd,
double *  accel_value,
long  accel_type 
)

Gets acceleration for cartesian motion [m/sec^2].
The accel_type specifies the type of acceleration and can be one of the following values.
1: Acceleration, 2: Deceleration.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]accel_valueCartesian speed in [m/s]
[in]accel_typeType of acceleration.
Return values
0- OK
1- Error

◆ erGET_CURRENT_TARGETID()

DLLAPI TErTargetID ER_STDCALL erGET_CURRENT_TARGETID ( ER_HND  er_hnd)

Returns the TargetID of the motion in execution.
Opcode 163, Chapter 3.4.6, Page 3-91.

Parameters
[in]er_hndunique kinematics handle ER_HND
Return values
0- OK
1- Error, invalid handle
TErTargetID- target identifier that was passed with erSET NEXT TARGET(), TErTargetID

◆ erGet_erk_kin_usr_ptr()

DLLAPI void** ER_STDCALL erGet_erk_kin_usr_ptr ( ER_HND  er_hnd)

◆ erGET_EVENT()

DLLAPI long ER_STDCALL erGET_EVENT ( ER_HND  er_hnd,
long  event_nr 
)

This function gets information about an internal asynchronous event that occurred in the Kernel.
Opcode 150, Chapter 3.4.8, Page 3-100
Function not supported

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]event_nrspecifies which of the occurred events to get
Return values
0- OK
1- Error, invalid handle
-1- not supported

◆ erGET_MESSAGE()

DLLAPI long ER_STDCALL erGET_MESSAGE ( ER_HND  er_hnd,
long  message_number 
)

Gives information about controller messages that occurred.
Opcode 154, Chapter 3.4.9, Page 3-104
Function not supported Use notify messages instead TErNotifyData.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]message_numberspecifies which of the reported message to get
Return values
0- OK
1- Error, invalid handle
-1- not supported

◆ erGet_n_Kin()

DLLAPI long ER_STDCALL erGet_n_Kin ( ER_HND  er_hnd)

Get the number of loaded kinematics.

Parameters
[in]er_hndunique kinematics handle ER_HND
Return values
0- Error, invalid handle
number_of_robots

◆ erGet_n_Kin_IR()

DLLAPI long ER_STDCALL erGet_n_Kin_IR ( ER_HND  er_hnd)

Get the number of loaded kinematics with more than 3 joints and inverse kinematics.

Parameters
[in]er_hndunique kinematics handle ER_HND
Return values
0- Error, invalid handle
number_of_robots_ir

◆ erGET_NEXT_STEP()

DLLAPI long ER_STDCALL erGET_NEXT_STEP ( ER_HND  er_hnd,
long  output_format,
NEXT_STEP_DATA p_next_step_data,
double  time 
)

Returns the next interpolated position step
the elapsed time and supplementary information like events, joint limits and messages.
Opcode 118, Chapter 3.4.3, Page 3-54
The output_format specifies the format desired as output and can be one of the following values.
1: Joint encoder, 2: Joint angle/distance, 4: Cartesian ( w/orientation ), 5: Cartesian and joint encoder, 6: Cartesian and joint angle/distance
Per default, output_format should be set = 2
Remarks
After the target position has been set (using the erSET_NEXT_TARGET()), this function should be called repeatedly until the Status is 1 or 2, specifying that the Host-Application interpreter can continue. If Status is 1 and the Host-Application interpreter finds more target positions it should send the next one to this Kernel using the erSET_NEXT_TARGET() function before erGET_NEXT_STEP() is called again. If the Status is 1 and the Host-Application interpreter finds no more target positions it can continue to call this function until Status is 2.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]output_formatformat desired as output
[out]p_next_step_datadata for next interpolation step NEXT_STEP_DATA
[in]timetime [s]
Return values
2- final step, target reached or speed is zero
1- need more data, nothing to do
0- OK, next step is calculated successful
-13- the specified output format is not supported
-17- the specified motion type is not supported
-25- the motion is not possible in the specified time
-42- no target set
-51- no solution is found. One joint is out of range
-52- Cartesian position is out of work range
-68- fatal error, stopped calculating
-76- incomplete or inconsistent motion specification, can't move
-1053- Cartesian position is out of boudary work range
-1059- Cartesian position is singular

◆ erGET_NEXT_TOOLPATH_STEP()

DLLAPI long ER_STDCALL erGET_NEXT_TOOLPATH_STEP ( ER_TOOLPATH_HND  er_tpth_hnd,
long  cntrl,
NEXT_STEP_DATA p_next_step_data = NULL,
double  time = 0 
)

Interpolation through a complete tool path
Parameter cntrl is an individual bitwise-inclusive-OR operator (|) of ER_MOP_GNTPS_CNTRL_NEXT_STEP, ER_MOP_GNTPS_CNTRL_UPDATE_GEO, ER_MOP_GNTPS_CNTRL_STEPDATA_OUT
Remarks
Before using this method, call erGET_NEXT_TOOLPATH_STEP_INIT(), see also erGET_NEXT_STEP()

// Example:
int CErERK::ToolPath_erGET_NEXT_TOOLPATH_STEP(ER_TOOLPATH_HND my_tp_hnd, double InterpolationTime, char *folder, char *robfile)
// IN:
// my_tp_hnd - tool path handle
// InterpolationTime - sampling rate for interpolation in [ms]
// folder - folder, loacation of logfiles
// robfile - use for logfile names
//....
//----------------------------------
// Step 0
// 1. Initializes the MotionPlanner based on current settings
//----------------------------------
erk_toolpath.erToolPathSetInitPos(my_tp_hnd,InterpolationTime); // Initializes the Trajectory Planner, InterpolationTime [ms]
//----------------------------------
// Step I
// Initialize Interpolation -> ER_MOP_GNTPS_CNTRL_INIT
//----------------------------------
int res = erk_toolpath.erGET_NEXT_TOOLPATH_STEP_INIT(my_tp_hnd,cntrl);
if (res)
return res; // Error
//----------------------------------
// Step II
// Start Interpolation -> ER_MOP_GNTPS_CNTRL_NEXT_STEP
//----------------------------------
NEXT_STEP_DATA next_step_data;
double *TrajectoryTime = &next_step_data.TrajectoryTime; // resulted trajectory time
double gtime=0;
double dt_ipo = InterpolationTime*0.001; // dt_ipo in [sec]
// call erGET_NEXT_TOOLPATH_STEP() until the end of ToolPath
int gnts_status=ER_MOP_GNS_OK_SUCCESS;
while (gnts_status!=ER_MOP_GNS_ERROR && gnts_status!=ER_MOP_GNT_NO_TARGETS && gnts_status!=ER_MOP_GNS_TOOLPATH_REACHED)
{
gtime += dt_ipo; // time in [sec]
//
// erGET_NEXT_TOOLPATH_STEP returns at each interpolation step a current status 'gnts_status'
//
gnts_status = erk_toolpath.erGET_NEXT_TOOLPATH_STEP(my_tp_hnd,cntrl,&next_step_data,gtime);
switch (gnts_status) {
default:
break;
// Error
if (fp_er_dat) fprintf(fp_er_dat,"Host erGET_NEXT_TOOLPATH_STEP() Error MOP_GNS_ERROR gtime %.3lf TrajectoryTime %.3lf\n",gtime,*TrajectoryTime);
break;
// Error
if (fp_er_dat) fprintf(fp_er_dat,"Host erGET_NEXT_TOOLPATH_STEP() Error MOP_GNS_NO_TARGETS gtime %.3lf TrajectoryTime %.3lf\n",gtime,*TrajectoryTime);
break;
// Interpolates between two target locations
// Get Results ....
break;
// It is one step (<dt_ipo) before reaching the target location
// If Flyby is enabled, the next interpolation step moves to the next target, if exist
if (fp_er_dat) fprintf(fp_er_dat,"Host erGET_NEXT_TOOLPATH_STEP() NEED_MORE_DATA gtime %.3lf TrajectoryTime %.3lf\n",gtime,*TrajectoryTime);
// Get Results ....
break;
// The target location is exactly reached. Flyby disabled normally
if (fp_er_dat) fprintf(fp_er_dat,"Host erGET_NEXT_TOOLPATH_STEP() TARGET_REACHED gtime %.3lf TrajectoryTime %.3lf\n",gtime,*TrajectoryTime);
// Get Results ....
break;
// All target location are interpolated successfully
if (fp_er_dat) fprintf(fp_er_dat,"Host erGET_NEXT_TOOLPATH_STEP() TOOLPATH_REACHED gtime %.3lf TrajectoryTime %.3lf\n",gtime,*TrajectoryTime);
// Get Results ....
break;
}
}
//----------------------------------
// Step III
// Terminate Interpolation -> ER_MOP_GNTPS_CNTRL_TERMINATE
//----------------------------------
// ....
return res;
Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
[in]cntrl
[out]p_next_step_datadata for next interpolation step NEXT_STEP_DATA
[in]timetime [s]
Return values
ER_MOP_GNS_OK_SUCCESS- OK, next step is calculated successful
ER_MOP_GNS_NEED_MORE_DATA- need more data, nothing to do
ER_MOP_GNS_TARGET_REACHED- final step, target reached or speed is zero
ER_MOP_GNS_TOOLPATH_REACHED- final step, last toolpath target reached
ER_MOP_GNS_ERROR- Error
ER_MOP_GNT_NO_TARGETS- Error, no targets available

◆ erGET_NEXT_TOOLPATH_STEP_cTargetLocation()

DLLAPI ER_TARGET_LOCATION_HND ER_STDCALL erGET_NEXT_TOOLPATH_STEP_cTargetLocation ( ER_TOOLPATH_HND  er_tpth_hnd)

Get the current 'target location handle' while interpolation through a complete tool path.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
Return values
handlefor target location ER_TARGET_LOCATION_HND
NULL- Error

◆ erGET_NEXT_TOOLPATH_STEP_INIT()

DLLAPI long ER_STDCALL erGET_NEXT_TOOLPATH_STEP_INIT ( ER_TOOLPATH_HND  er_tpth_hnd,
long  cntrl = ER_MOP_GNTPS_CNTRL_INIT 
)

Initializes the interpolation through a complete tool path
Parameter cntrl must be set to ER_MOP_GNTPS_CNTRL_INIT
and can be extended by an individual bitwise-inclusive-OR operator (|) of.

Remarks
This method must be called before the interpolation starts, see erGET_NEXT_TOOLPATH_STEP()

// Example:
int CErERK::ToolPath_erGET_NEXT_TOOLPATH_STEP(ER_TOOLPATH_HND my_tp_hnd, double InterpolationTime, char *folder, char *robfile)
// IN:
// my_tp_hnd - tool path handle
// InterpolationTime - sampling rate for interpolation in [ms]
// folder - folder, loacation of logfiles
// robfile - use for logfile names
//....
//----------------------------------
// Step I
// Initialize Interpolation -> ER_MOP_GNTPS_CNTRL_INIT
//----------------------------------
// Optional, create output file names and streams
if (folder && robfile)
{
// Create output file names for log_file and prg_file
char *tp_log_fln = erk_toolpath.erToolPathLogFileName(my_tp_hnd);
char *tp_prg_fln = erk_toolpath.erToolPathPrgFileName(my_tp_hnd);
sprintf(tp_log_fln,"%s\\%s-%s",folder,"er_ERK-UDll-Shell-MOP-Positioner-GNS",robfile);
#ifdef _WIN64
sprintf(&tp_log_fln[strlen(tp_log_fln)-4],"x64.dat"); // new extension dat
#else
sprintf(&tp_log_fln[strlen(tp_log_fln)-4],".dat"); // new extension dat
#endif
strcpy(tp_prg_fln,tp_log_fln);
sprintf(&tp_prg_fln[strlen(tp_prg_fln)-4],".prg"); // change extension prg
}
int res = erk_toolpath.erGET_NEXT_TOOLPATH_STEP_INIT(my_tp_hnd,cntrl);
if (res)
return res; // Error
// ....
Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
[in]cntrl
Return values
0- Ok
1- Error

◆ erGET_NEXT_TOOLPATH_STEP_TERMINATE()

DLLAPI long ER_STDCALL erGET_NEXT_TOOLPATH_STEP_TERMINATE ( ER_TOOLPATH_HND  er_tpth_hnd)

Terminates interpolation
Remarks
This method must be called after the interpolation of a tool path, see erGET_NEXT_TOOLPATH_STEP()

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
Return values
0- Ok
1- Error

◆ erGet_num_dofs()

DLLAPI long ER_STDCALL erGet_num_dofs ( ER_HND  er_hnd)

Get number of active robot joints.

Parameters
[in]er_hndunique kinematics handle ER_HND
Return values
n_dof_activenumber of active robot joints
0Error, invalid handle

◆ erGet_num_dofs_passive()

DLLAPI long ER_STDCALL erGet_num_dofs_passive ( ER_HND  er_hnd)

Get number of passive robot joints.

Parameters
[in]er_hndunique kinematics handle ER_HND
Return values
n_dof_passivenumber of passive robot joints
0Error, invalid handle

◆ erGetAccSet()

DLLAPI long ER_STDCALL erGetAccSet ( ER_HND  er_hnd,
double *  acc,
double *  ramp 
)

Get lagging of accelerations.
Using AccSet is a proper way to come close to real cycle times when the robot carries high payloads for example.
The parameter acc and ramp are given in percentage values in the range from 20% to 100%.
acc: Acceleration and Deceleration as percentage value of normal values.
ramp: Change of Acceleration and Deceleration as percentage value of normal values.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]accacceleration and deceleration
[out]rampchange of acceleration and deceleration
Return values
0- OK
1- Error

◆ erGetAqMax()

DLLAPI long ER_STDCALL erGetAqMax ( ER_HND  er_hnd,
double *  aq_max 
)

Get maximum of robot joint accelerations.
Robot joint accelerations aq_max are in units [m/s^2] for prismatic joint type and [rad/s^2] for rotational joint type.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]aq_maxmaximum of robot joint accelerations, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erGetAutoAccel()

DLLAPI long ER_STDCALL erGetAutoAccel ( ER_HND  er_hnd,
long *  autoaccel 
)

Get status for automatic calculation of acceleration depending on programmed speed.
Using AutoAccel is a proper way to come close to real cycle times.
The parameter autoaccel specifies the effect when planning a new motion and can be one of the following values.
0: ER_AUTOACCEL_MODE_OFF disables auto accel calculation for all motions
1: ER_AUTOACCEL_MODE_POS calculation for CP motions for position
2: ER_AUTOACCEL_MODE_ORI calculation for CP motions
4: ER_AUTOACCEL_MODE_AX Calculation for PTP motions
3: ER_AUTOACCEL_MODE_DEF calculation for CP motions for position and for orientation
7: ER_AUTOACCEL_MODE_ON enables calculation for all motions
Remarks
If auto accel is enabled, other acceleration functions such as erSET_JOINT_ACCELERATIONS(), erSET_CARTESIAN_POSITION_ACCELERATION() and erSET_CARTESIAN_ORIENTATION_ACCELERATION() will have no effect.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]autoacceldefines auto acceleration mode
Return values
0- OK
1- Error

◆ erGetAxis_couplingA2A3()

DLLAPI long ER_STDCALL erGetAxis_couplingA2A3 ( ER_HND  er_hnd,
long *  axis_couplingA2A3 
)

Get robot axis coupling between axis 2 and 3
The axis coupling can be one of the following values.
KIN_A2A3_COUPLING_NO=0, KIN_A2A3_COUPLING_YES =1 or KIN_A2A3_COUPLING_UNKNOWN =2
see also erSetAxis_couplingA2A3()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]axis_couplingA2A3axis coupling between axis 2 and 3
Return values
0- OK
1- Error, invalid handle

◆ erGetAxMax()

DLLAPI long ER_STDCALL erGetAxMax ( ER_HND  er_hnd,
double *  ax_max 
)

Get maximum cartesian acceleration.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]ax_maxmaximum cartesian acceleration [m/s^2]
Return values
0- OK
1- Error, invalid handle

◆ erGetAxOriMax()

DLLAPI long ER_STDCALL erGetAxOriMax ( ER_HND  er_hnd,
double *  ax_ori_max 
)

Get maximum cartesian orientation acceleration.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]ax_ori_maxmaximum cartesian orientation acceleration [rad/s^2]
Return values
0- OK
1- Error, invalid handle

◆ erGetBackLink()

DLLAPI long ER_STDCALL erGetBackLink ( ER_HND  er_hnd,
long *  backlink 
)

Get robot back link status, obsolete function, use erGetBacklink()

◆ erGetBacklink()

DLLAPI long ER_STDCALL erGetBacklink ( ER_HND  er_hnd,
long *  backlink 
)

Get robot back link status
The back link status can be one of the following values.
KIN_BACK_LINK_NO=0, KIN_BACK_LINK_YES =1 or KIN_BACK_LINK_UNKNOWN =2
see also erSetBacklink()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]backlinkrobot back link status
Return values
0- OK
1- Error, invalid handle

◆ erGetBaseRobotBase()

DLLAPI long ER_STDCALL erGetBaseRobotBase ( ER_HND  er_hnd,
DFRAME bTbase 
)

Get $BASE (wobj) w.r.t robot base.
The $BASE frame has only effect when IPO_MODE_BASE is set in erSetExtTcpMode()
All targets are defined w.r.t to this BASE frame (program shifting)

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]bTbaseBASE frame w.r.t. to robot base 'b' DFRAME
Return values
0- OK
1- Error, invalid handle

◆ erGetBaseWorld()

DLLAPI long ER_STDCALL erGetBaseWorld ( ER_HND  er_hnd,
DFRAME iTbase 
)

Get $BASE (wobj) w.r.t inertia (world). The $BASE frame has only effect when IPO_MODE_BASE is set in erSetExtTcpMode()
All targets are defined w.r.t to this BASE frame (program shifting)

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]iTbaseBASE frame w.r.t. to inertia 'i' DFRAME
Return values
0- OK
1- Error, invalid handle

◆ erGetConfig()

DLLAPI long ER_STDCALL erGetConfig ( ER_HND  er_hnd,
long *  config 
)

Get current robot configuration
Gets current robot configuration. See also erSetConfig().
The config is valid for 1 to number of possible configurations, see erGetNumConfigs().

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]configrobot configuration number [1..number of robot configurations]
Return values
0- OK
1- Error, invalid handle

◆ erGetConfigName()

DLLAPI long ER_STDCALL erGetConfigName ( ER_HND  er_hnd,
long  config_idx,
char *  config_name 
)

Get the name of robot configuration. Get the number of configurations with erGetNumConfigs()
.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]config_idxconfiguration index [1..number of robot configurations]
[out]config_namename of robot configuration, maximum lengths ER_MAXSTR
Return values
NULLinvalid handle

◆ erGetCounter_weight()

DLLAPI long ER_STDCALL erGetCounter_weight ( ER_HND  er_hnd,
long *  counter_weight 
)

Get robot counter weight
The robot counter weight can be one of the following values.
KIN_COUNTER_WEIGHT_NO=0, KIN_COUNTER_WEIGHT_YES =1 or KIN_COUNTER_WEIGHT_UNKNOWN =2
see also erSetCounter_weight()

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]counter_weightrobot counter weight
Return values
0- OK
1- Error, invalid handle

◆ erGetCurrentStepData()

DLLAPI long ER_STDCALL erGetCurrentStepData ( ER_HND  er_hnd,
CURRENT_STEP_DATA p_current_step_data 
)

Returns interpolation data for the current interpolated step
Remarks
After the next step data are calculated, calling erGET_NEXT_STEP() , this function return additional interpolated data,
such as motion type, distance to Target, time to Target, Target ID, Override, ...

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]p_current_step_datadata for current interpolation step CURRENT_STEP_DATA
Return values
0- OK, next step is calculated successful
1- Error, no interpolation data available

◆ erGetEvents_EventDOUT()

DLLAPI long ER_STDCALL erGetEvents_EventDOUT ( ER_TARGET_EVENTS_HND  hnd,
int  idx,
long *  io_value,
char *  io_name,
long *  strig_type,
double *  strig_time,
double *  strig_dist,
long *  ttrig_type,
double *  ttrig_time,
double *  ttrig_dist 
)

Get an event for a boolean output for target location
A boolean event for binary outputs is controlled by trigger data, when the movement starts and when the movement reaches the target location.
see detailed information in Set_EventDOUT() or erSetEvents_EventDOUT()

Parameters
[in]hnd- unique target location events handle ER_TARGET_EVENTS_HND
[in]idx- number of event [1..ER_EVENT_BOOL_N]
[out]io_value- one of ER_EVENT_BOOL_UNDEF, ER_EVENT_BOOL_OFF, ER_EVENT_BOOL_ON
[out]io_name- name of event, =0 keep template name, maximum lengths ER_MAXSTR
[out]strig_type- Start Trigger type to control binary output, one of ER_EVENT_TRIGGER_OFF, ER_EVENT_TRIGGER_DWN, ER_EVENT_TRIGGER_UP
[out]strig_time- Trigger time [s] from start location when the signal trigger occurs
[out]strig_dist- Trigger distance [m] from start location when the signal trigger occurs, only effect when > 0
[out]ttrig_type- Target trigger type to control binary output, one of ER_EVENT_TRIGGER_OFF, ER_EVENT_TRIGGER_DWN, ER_EVENT_TRIGGER_UP
[out]ttrig_time- Trigger time [s] to target location when the signal trigger occurs
[out]ttrig_dist- Trigger distance [m] to target location when the signal trigger occurs, only effect when > 0
Return values
0- OK, event data set successfully
1- Error

◆ erGetExtAxConveyor_extax_data()

DLLAPI ER_EXTAX_KIN_DATA* ER_STDCALL erGetExtAxConveyor_extax_data ( ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND  hnd,
long  extax_idx 
)

External axis values for Conveyor
Values ER_EXTAX_KIN_DATA are:
.

  • ER_HND er_hnd_connect; ///< Handle of connected device
  • long axis_idx; ///< axis idx of controlled joint for connected device [0..ER_EXTAX_KIN_DATA_MAX-1]
  • double axis_value; ///< Target value [m,rad]
  • double speed_value; ///< Target speed [m/s,rad/s]

see example GetExtAxConveyorHnd()

Parameters
[in]hndunique handle for external axis data definition for Conveyor ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND
[in]extax_idx- axis idx of controlled joint for connected device [0..ER_EXTAX_KIN_DATA_MAX-1]
Return values
pointerto ER_EXTAX_KIN_DATA - external axis values
NULL- Error

◆ erGetExtAxConveyor_number_extax_used()

DLLAPI long* ER_STDCALL erGetExtAxConveyor_number_extax_used ( ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND  hnd)

Number of external axis used for Conveyor
see example GetExtAxConveyorHnd()

Parameters
[in]hndunique handle for external axis data definition for Conveyor ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND
Return values
pointerto long - number of external axis used
NULL- Error

◆ erGetExtAxConveyor_sync_type()

DLLAPI long* ER_STDCALL erGetExtAxConveyor_sync_type ( ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND  hnd)

Synchonization for Conveyor
For a Conveyor motion, the synchonization can be one of ER_SYNC_ON, ER_SYNC_OFF
see example GetExtAxConveyorHnd()

Parameters
[in]hndunique handle for external axis data definition for Conveyor ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND
Return values
pointerto long - synchonization
NULL- Error

◆ erGetExtAxPositioner_extax_data()

DLLAPI ER_EXTAX_KIN_DATA* ER_STDCALL erGetExtAxPositioner_extax_data ( ER_TARGET_EXTAX_DEVICE_POSITIONER_HND  hnd,
long  extax_idx 
)

External axis values for Positioner/TurnTable
Values ER_EXTAX_KIN_DATA are:
.

  • ER_HND er_hnd_connect; ///< Handle of connected device
  • long axis_idx; ///< axis idx of controlled joint for connected device [0..ER_EXTAX_KIN_DATA_MAX-1]
  • double axis_value; ///< Target value [m,rad]
  • double speed_value; ///< Target speed [m/s,rad/s]

see example GetExtAxPositionerHnd()

Parameters
[in]hndunique handle for external axis data definition for Positioner/TurnTable ER_TARGET_EXTAX_DEVICE_POSITIONER_HND
[in]extax_idx- axis idx of controlled joint for connected device [0..ER_EXTAX_KIN_DATA_MAX-1]
Return values
pointerto ER_EXTAX_KIN_DATA - external axis values
NULL- Error

◆ erGetExtAxPositioner_number_extax_used()

DLLAPI long* ER_STDCALL erGetExtAxPositioner_number_extax_used ( ER_TARGET_EXTAX_DEVICE_POSITIONER_HND  hnd)

Number of external axis used for Positioner/TurnTable
see example GetExtAxPositionerHnd()

Parameters
[in]hndunique handle for external axis data definition for Positioner/TurnTable ER_TARGET_EXTAX_DEVICE_POSITIONER_HND
Return values
pointerto long - number of external axis used
NULL- Error

◆ erGetExtAxPositioner_sync_type()

DLLAPI long* ER_STDCALL erGetExtAxPositioner_sync_type ( ER_TARGET_EXTAX_DEVICE_POSITIONER_HND  hnd)

Synchonization for Positioner/TurnTable
For a Positioner/TurnTable motion, the synchonization can be one of ER_SYNC_ON, ER_SYNC_OFF
see example GetExtAxPositionerHnd()

Parameters
[in]hndunique handle for external axis data definition for Positioner/TurnTable ER_TARGET_EXTAX_DEVICE_POSITIONER_HND
Return values
pointerto long - synchonization
NULL- Error

◆ erGetExtAxTrack_extax_data()

DLLAPI ER_EXTAX_KIN_DATA* ER_STDCALL erGetExtAxTrack_extax_data ( ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND  hnd,
long  extax_idx 
)

External axis values for Track/Slider
Values ER_EXTAX_KIN_DATA are:
.

  • ER_HND er_hnd_connect; ///< Handle of connected device
  • long axis_idx; ///< axis idx of controlled joint for connected device [0..ER_EXTAX_KIN_DATA_MAX-1]
  • double axis_value; ///< Target value [m,rad]
  • double speed_value; ///< Target speed [m/s,rad/s]

see example GetExtAxTrackMotionHnd()

Parameters
[in]hndunique handle for external axis data definition for Track/Slider ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND
[in]extax_idx- axis idx of controlled joint for connected device [0..ER_EXTAX_KIN_DATA_MAX-1]
Return values
pointerto ER_EXTAX_KIN_DATA - external axis values
NULL- Error

◆ erGetExtAxTrack_number_extax_used()

DLLAPI long* ER_STDCALL erGetExtAxTrack_number_extax_used ( ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND  hnd)

Number of external axis used for Track/Slider
see example GetExtAxTrackMotionHnd()

Parameters
[in]hndunique handle for external axis data definition for Track/Slider ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND
Return values
pointerto long - number of external axis used
NULL- Error

◆ erGetExtAxTrack_sync_type()

DLLAPI long* ER_STDCALL erGetExtAxTrack_sync_type ( ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND  hnd)

Synchonization for Track/Slider
For a Track/Slider motion, the synchonization should be always ER_SYNC_ON
see example GetExtAxTrackMotionHnd()

Parameters
[in]hndunique handle for external axis data definition for Track/Slider ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND
Return values
pointerto long - synchonization
NULL- Error

◆ erGetExtTcpMode()

DLLAPI long ER_STDCALL erGetExtTcpMode ( ER_HND  er_hnd,
long *  ext_tcp_mode 
)

Get external TCP mode.
The external TCP can be IPO_MODE_BASE (tool guided) or IPO_MODE_TOOL (work object guided)

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]ext_tcp_modeexternal TCP mode IPO_MODE_BASE, IPO_MODE_TOOL
Return values
0- OK
1- Error, invalid handle

◆ erGetExtTcpRobotBase()

DLLAPI long ER_STDCALL erGetExtTcpRobotBase ( ER_HND  er_hnd,
DFRAME bText 
)

Get location of external TCP w.r.t robot base.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]bTextlocation of external TCP w.r.t robot base 'b' DFRAME
Return values
0- OK
1- Error, invalid handle

◆ erGetExtTcpWorld()

DLLAPI long ER_STDCALL erGetExtTcpWorld ( ER_HND  er_hnd,
DFRAME iText 
)

Get location of external TCP w.r.t inertia (world).

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]iTextlocation of external TCP w.r.t inertia 'i' DFRAME
Return values
0- OK
1- Error, invalid handle

◆ erGetHomepos()

DLLAPI long ER_STDCALL erGetHomepos ( ER_HND  er_hnd,
double *  homepos 
)

Get robot joint homeposition. The kinematics joint homepos are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]homeposrobot joint homeposition, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erGetIDs()

DLLAPI long ER_STDCALL erGetIDs ( ER_HND  er_hnd,
long *  kin_id,
long *  inv_id,
long *  inv_sub_id 
)

Get Kinematics ID of the robot.
kin_id represents the kinematics ID. It can be one of the following values.
ER_RRRRRR_ID =1, ER_TTTRRR_ID =2, ER_RRRRRR_BL_ID =3, ER_UNIV_ROB_ID =10, ER_DH_ID =11
Remarks
Most robots are modelled with universal coordinates ER_UNIV_ROB_ID.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]kin_idkinematics ID
[out]inv_idkinematics ID for inverse calculation
[out]inv_sub_idkinematics Sub-ID for inverse calculation
Return values
0- OK
1- Error

◆ erGetInstructions_information()

DLLAPI char* ER_STDCALL erGetInstructions_information ( ER_TARGET_LOCATION_HND  er_tarloc_hnd)

Get information target instruction data for target location.
For further explanations see GetInstructionsHnd(), erSetInstructions().

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
Return values
pointerto char for target instruction information, maximum lengths ER_HS_MAXSTR
NULL- Error

◆ erGetInstructions_LagInstructions()

DLLAPI char* ER_STDCALL erGetInstructions_LagInstructions ( ER_TARGET_LOCATION_HND  er_tarloc_hnd)

Get LagInstructions target instruction data for target location.
For further explanations see GetInstructionsHnd(), erSetInstructions().

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
Return values
pointerto char for target instruction LagInstructions, maximum lengths ER_HS_MAXSTR
NULL- Error

◆ erGetInstructions_LeadInstructions()

DLLAPI char* ER_STDCALL erGetInstructions_LeadInstructions ( ER_TARGET_LOCATION_HND  er_tarloc_hnd)

Get LeadInstructions target instruction data for target location.
For further explanations see GetInstructionsHnd(), erSetInstructions().

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
Return values
pointerto char for target instruction LeadInstructions, maximum lengths ER_HS_MAXSTR
NULL- Error

◆ erGetInvKinID()

DLLAPI long ER_STDCALL erGetInvKinID ( ER_HND  er_hnd,
long *  invkin_id 
)

Inverse kinematics ID for cRobot.
.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]invkin_idinverse kinematics ID
Return values
0- OK
1- Error, invalid handle

◆ erGetInvKinSubID()

DLLAPI long ER_STDCALL erGetInvKinSubID ( ER_HND  er_hnd,
long *  invkinsub_id 
)

Inverse kinematics Sub-ID for cRobot.
.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]invkinsub_idinverse kinematics Sub-ID
Return values
0- OK
1- Error, invalid handle

◆ erGetJointAccels()

DLLAPI long ER_STDCALL erGetJointAccels ( ER_HND  er_hnd,
double *  a_solut 
)

Get robot joint accelerations. The kinematics joint accelerations a_solut are in units [m/s^2] for prismatic joint type
and [rad/s^2] for rotational joint type
Get the number of active joints with erGet_num_dofs()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]a_solutrobot joint accelerations, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erGetJointAttachDof_active()

DLLAPI long ER_STDCALL erGetJointAttachDof_active ( ER_HND  er_hnd,
long *  jnt_attach_dof_active 
)

Get Attach-Dof of active robot joints. An active joint with chain type JNT_CHAIN_TYPE_CHAIN is attached to an active or passive joint.
A valid Attach-Dof number for such an active joint is [0..num_dof], whereby num_dof represents the number of active joints
A negative Attach-Dof value of -99 means that the active joint has a chain type of JNT_CHAIN_TYPE_NO_CHAIN or JNT_CHAIN_TYPE_SEP_NO_CHAIN.

Parameters
[in]er_hndunique kinematics handle::ER_HND
[out]jnt_attach_dof_activeAttach-Dof of active robot joints, max size::ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erGetJointAttachDof_passive()

DLLAPI long ER_STDCALL erGetJointAttachDof_passive ( ER_HND  er_hnd,
long *  jnt_attach_dof_passive 
)

Get Attach-Dof of passive robot joints. A passive joint is attached to an active joint. A valid Attach-Dof number number is [0..num_dof], whereby num_dof represents the number of active joints
A negative Attach-Dof represents an error.

Parameters
[in]er_hndunique kinematics handle::ER_HND
[out]jnt_attach_dof_passiveAttach-Dof of passive robot joints, max size::ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erGetJointChainTypes()

DLLAPI long ER_STDCALL erGetJointChainTypes ( ER_HND  er_hnd,
long *  jnt_chain_type_active 
)

Get chain type of active robot joints. A robot chain type can be JNT_CHAIN_TYPE_CHAIN, JNT_CHAIN_TYPE_NO_CHAIN or JNT_CHAIN_TYPE_SEP_NO_CHAIN
.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]jnt_chain_type_activechain type of active robot joints, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erGetJointChainTypes_passive()

DLLAPI long ER_STDCALL erGetJointChainTypes_passive ( ER_HND  er_hnd,
long *  jnt_chain_type_passive 
)

Get chain type of passive robot joints. A robot chain type can be JNT_CHAIN_TYPE_CHAIN, JNT_CHAIN_TYPE_NO_CHAIN or JNT_CHAIN_TYPE_SEP_NO_CHAIN
.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]jnt_chain_type_passivechain type of passive robot joints, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erGetJointDirections()

DLLAPI long ER_STDCALL erGetJointDirections ( ER_HND  er_hnd,
long *  jnt_direction_active 
)

Get direction of active robot joints. A robot joint direction can be JNT_DIRECTION_X, JNT_DIRECTION_Y or JNT_DIRECTION_Z
See also erGetJointSign(), erGetJointTypes()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]jnt_direction_activedirection of active robot joints, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erGetJointDirections_passive()

DLLAPI long ER_STDCALL erGetJointDirections_passive ( ER_HND  er_hnd,
long *  jnt_direction_passive 
)

Get direction of passive robot joints. A robot joint direction can be JNT_DIRECTION_X, JNT_DIRECTION_Y or JNT_DIRECTION_Z
See also erGetJointTypes_passive()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]jnt_direction_passivedirection of passive robot joints, max size ER_KIN_PASSIVE_JNTS
Return values
0- OK
1- Error, invalid handle

◆ erGetJointFrameActiveLast()

DLLAPI long ER_STDCALL erGetJointFrameActiveLast ( ER_HND  er_hnd,
long  active_jnt_no,
DFRAME T 
)

◆ erGetJointFrameActiveNext()

DLLAPI long ER_STDCALL erGetJointFrameActiveNext ( ER_HND  er_hnd,
long  active_jnt_no,
DFRAME T 
)

◆ erGetJointFramePassiveLast()

DLLAPI long ER_STDCALL erGetJointFramePassiveLast ( ER_HND  er_hnd,
long  passive_jnt_no,
DFRAME T 
)

◆ erGetJointFramePassiveNext()

DLLAPI long ER_STDCALL erGetJointFramePassiveNext ( ER_HND  er_hnd,
long  passive_jnt_no,
DFRAME T 
)

◆ erGetJointFrameRobotBase()

DLLAPI long ER_STDCALL erGetJointFrameRobotBase ( ER_HND  er_hnd,
long  active_jnt_no,
DFRAME bTax 
)

Get location of active joint coorsys w.r.t robot base.
Get the number of active joints with erGet_num_dofs()

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]active_jnt_noactive joint number [1..number of active joints], max active_jnt_no is ER_KIN_DOFS
[out]bTaxlocation of active joint coorsys w.r.t robot base DFRAME
Return values
0- OK
1- Error, invalid handle

◆ erGetJointFrameRobotBase_passive()

DLLAPI long ER_STDCALL erGetJointFrameRobotBase_passive ( ER_HND  er_hnd,
long  passive_jnt_no,
DFRAME bTax 
)

Get location of passive joint coorsys w.r.t robot base.
Get the number of passive joints with erGet_num_dofs_passive()

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]passive_jnt_nopassive joint number [1..number of passive joints], max passive_jnt_no is ER_KIN_PASSIVE_JNTS
[out]bTaxlocation of passive joint coorsys w.r.t robot base DFRAME
Return values
0- OK
1- Error, invalid handle, invalid passive_jnt_no

◆ erGetJointFrameWorld()

DLLAPI long ER_STDCALL erGetJointFrameWorld ( ER_HND  er_hnd,
long  active_jnt_no,
DFRAME iTax 
)

Get location of active joint coorsys w.r.t innertia (world).
Get the number of active joints with erGet_num_dofs()

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]active_jnt_noactive joint number [1..number of active joints], max active_jnt_no is ER_KIN_DOFS
[out]iTaxlocation of active joint coorsys w.r.t innertia DFRAME
Return values
0- OK
1- Error, invalid handle

◆ erGetJointFrameWorld_passive()

DLLAPI long ER_STDCALL erGetJointFrameWorld_passive ( ER_HND  er_hnd,
long  passive_jnt_no,
DFRAME iTax 
)

Get location of passive joint coorsys w.r.t innertia (world).
Get the number of passive joints with erGet_num_dofs_passive()

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]passive_jnt_nopassive joint number [1..number of passive joints], max passive_jnt_no is ER_KIN_PASSIVE_JNTS
[out]iTaxlocation of passive joint coorsys w.r.t innertia DFRAME
Return values
0- OK
1- Error, invalid handle

◆ erGetJointName()

DLLAPI long ER_STDCALL erGetJointName ( ER_HND  er_hnd,
long  active_jnt_no,
char *  jnt_name 
)

Get the name of active robot joint.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]active_jnt_noactive joint number [1..ER_KIN_DOFS]
[out]jnt_namename of active robot joint, maximum lengths ER_MAXSTR
Return values
NULLinvalid handle

◆ erGetJointName_passive()

DLLAPI long ER_STDCALL erGetJointName_passive ( ER_HND  er_hnd,
long  passive_jnt_no,
char *  jnt_name_passive 
)

Get the name of passive robot joint.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]passive_jnt_nopassive joint number [1..ER_KIN_PASSIVE_JNTS]
[out]jnt_name_passivename of passive robot joint, maximum lengths ER_MAXSTR
Return values
NULLinvalid handle

◆ erGetJointOffset()

DLLAPI long ER_STDCALL erGetJointOffset ( ER_HND  er_hnd,
double *  joint_offset 
)

Get offset of robot joints.
Robot joint offsets joint_offset are in units [m] for prismatic joint type and [rad] for rotational joint type.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]joint_offsetrobot joint offset, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erGetJoints()

DLLAPI long ER_STDCALL erGetJoints ( ER_HND  er_hnd,
double *  q_solut 
)

Get robot joint data. The kinematics joint data q_solut are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of active joints with erGet_num_dofs()
Remarks
Call this function after calling the inverse kinematics transformation, erInvKinRobotBaseTip(), erInvKinWorldTip(), erInvKinRobotBaseTcp(), erInvKinWorldTcp()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]q_solutrobot joint data, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erGetJoints_passive()

DLLAPI long ER_STDCALL erGetJoints_passive ( ER_HND  er_hnd,
double *  q_passive 
)

Get passive robot joint data. The kinematics passive joint data q_passive are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of passive joints with erGet_num_dofs_passive()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]q_passivepassive robot joint data, max size ER_KIN_PASSIVE_JNTS
Return values
0- OK
1- Error, invalid handle

◆ erGetJointSign()

DLLAPI long ER_STDCALL erGetJointSign ( ER_HND  er_hnd,
double *  joint_sign 
)

Get sign of robot joints.
A robot joint sign can be positive +1 or negative -1.
See also erGetJointTypes(), erGetJointDirections()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]joint_signsign of a robot joint, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erGetJointSolutions()

DLLAPI long ER_STDCALL erGetJointSolutions ( ER_HND  er_hnd,
double *  q_solutions,
long *  q_warnings 
)

Get all robot joint solutions. The kinematics joint data q_solutions are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of active joints with erGet_num_dofs()
Get the number of configurations with erGetNumConfigs()
Remarks
Call this function after calling the inverse kinematics transformation, erInvKinRobotBaseTip(), erInvKinWorldTip(), erInvKinRobotBaseTcp(), erInvKinWorldTcp()

// Example:
double q[ER_KIN_DOFS]; // contains current solution
double q_solutions[ER_KIN_CONFIGS*ER_KIN_DOFS]; // contains all solutions
long q_warnings[ER_KIN_CONFIGS]; // warning for each solution
long ret;
ER_HND c_er_hnd; // valid robot handle
long num_configs;
ret = erGetNumConfigs(c_er_hnd,&num_configs); // Get number of possible robot configurations
long inv_warn = INV_WARN_OK;
inv_warn=erInvKinRobotBaseTcp(c_er_hnd,&bTw); // Calculating the inverse kinematics transformation
erGetJoints(c_er_hnd,q); // Get robot joint data
erGetJointSolutions(c_er_hnd,q_solutions,q_warnings); // Get all robot joint solutions
char *warn_s[] = {"OK" , "SINGULAR" , "UNREACH" , "CNFG" , "INVKIN" , "SWE_EXCEED" , "?"};
for (int i=0;i<num_configs;i++)
{
char s[ER_MAXSTR];
long q_warn = q_warnings[i];
sprintf(s,"q_sol[%d] (%s): ",i,warn_s[q_warn]);
if (q_warn!= INV_WARN_OK && q_warn!= INV_WARN_SINGULAR && q_warn!= INV_WARN_SWE_EXCEED)
{
fprintf(fp,"%s\n",s);
continue;
}
double *dq = &q_solutions[i*ER_KIN_DOFS];
out_vec_joints(fp,s,dq,jointtype,num_dofs);
}
...
Parameters
[in]er_hndunique kinematics handle ER_HND
[out]q_solutionsrobot joint data, max size ER_KIN_CONFIGS * ER_KIN_DOFS
[out]q_warningswarning for each solution, max size ER_KIN_CONFIGS
Return values
0- OK
1- Error, invalid handle

◆ erGetJointSpeeds()

DLLAPI long ER_STDCALL erGetJointSpeeds ( ER_HND  er_hnd,
double *  v_solut 
)

Get robot joint speeds. The kinematics joint speeds v_solut are in units [m/s] for prismatic joint type
and [rad/s] for rotational joint type
Get the number of active joints with erGet_num_dofs()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]v_solutrobot joint speeds, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erGetJointTypes()

DLLAPI long ER_STDCALL erGetJointTypes ( ER_HND  er_hnd,
long *  jnt_type_active 
)

Get active robot joint types. An active robot joint type can be rotational JNT_TYPE_ROT or prismatic JNT_TYPE_TRANS
See also erGetJointSign(), erGetJointDirections()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]jnt_type_activeactive robot joint type, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erGetJointTypes_passive()

DLLAPI long ER_STDCALL erGetJointTypes_passive ( ER_HND  er_hnd,
long *  jnt_type_passive 
)

Get passive robot joint types. A passive robot joint type can be rotational JNT_TYPE_ROT or prismatic JNT_TYPE_TRANS
See also erGetJointDirections_passive()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]jnt_type_passivepassive robot joint type, max size ER_KIN_PASSIVE_JNTS
Return values
0- OK
1- Error, invalid handle

◆ erGetMotionAttributes_acc()

DLLAPI double* ER_STDCALL erGetMotionAttributes_acc ( ER_TARGET_ATTRIBUTES_HND  hnd)

Acceleration and deceleration as percentage value in the range from 20% to 100% of normal values for a target location
Remarks
Default value: 100%
Smaller values results in a smoother acceleration and deceleratio nwhen the robot carries high payloads for example.

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto double - acc
NULL- Error

◆ erGetMotionAttributes_advance_motion()

DLLAPI long* ER_STDCALL erGetMotionAttributes_advance_motion ( ER_TARGET_ATTRIBUTES_HND  hnd)

Number of motions, the motion planner may run in advance of the interpolator (look_ahead) for a target location
Remarks
Default value: 1.

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto long - advance_motion
NULL- Error

◆ erGetMotionAttributes_autoaccel()

DLLAPI long* ER_STDCALL erGetMotionAttributes_autoaccel ( ER_TARGET_ATTRIBUTES_HND  hnd)

Automatic calculation of acceleration depending on programmed speed for a target location
Using AutoAccel is a proper way to come close to real cycle times.
Autoaccel can be one of the following values.
0: ER_AUTOACCEL_MODE_OFF disables auto accel calculation for all motions
1: ER_AUTOACCEL_MODE_POS calculation for CP motions for position
2: ER_AUTOACCEL_MODE_ORI calculation for CP motions
4: ER_AUTOACCEL_MODE_AX Calculation for PTP motions
3: ER_AUTOACCEL_MODE_DEF calculation for CP motions for position and for orientation
7: ER_AUTOACCEL_MODE_ON enables calculation for all motions
Remarks
Default value: ER_AUTOACCEL_MODE_OFF.

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto double - autoaccel
NULL- Error

◆ erGetMotionAttributes_BaseFrame()

DLLAPI DFRAME* ER_STDCALL erGetMotionAttributes_BaseFrame ( ER_TARGET_ATTRIBUTES_HND  hnd,
DFRAME BaseFrame 
)

Program shift Base for a target location
Base '$BASE, $UFrame' has only if IPO_MODE_BASE is set and external TCP disabled
All targets are defined w.r.t to this BASE frame (program shifting)
see inq_BaseIdx(), inq_BaseName()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
[out]BaseFramelocation DFRAME
Return values
pointerto DFRAME - BaseFrame, DFRAME
NULL- Error

◆ erGetMotionAttributes_BaseIdx()

DLLAPI long* ER_STDCALL erGetMotionAttributes_BaseIdx ( ER_TARGET_ATTRIBUTES_HND  hnd)

Idx for program shift Base for a target location
see inq_BaseVec(), inq_BaseName()
This BaseIdx could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto long - Base idx
NULL- Error

◆ erGetMotionAttributes_BaseName()

DLLAPI char* ER_STDCALL erGetMotionAttributes_BaseName ( ER_TARGET_ATTRIBUTES_HND  hnd)

Name for program shift Base for a target location
see inq_BaseVec(), inq_BaseIdx()
This BaseName could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto char - Base name, maximum lengths ER_MAXSTR
NULL- Error

◆ erGetMotionAttributes_BaseVec()

DLLAPI double* ER_STDCALL erGetMotionAttributes_BaseVec ( ER_TARGET_ATTRIBUTES_HND  hnd)

Program shift Base for a target location
Base '$BASE, $UFrame' has only if IPO_MODE_BASE is set and external TCP disabled
All targets are defined w.r.t to this BASE frame (program shifting)
see inq_BaseIdx(), inq_BaseName()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto double - Base vector, definition Pxyz [m] Rxyz [rad] ER_DOF6
NULL- Error

◆ erGetMotionAttributes_dom_type()

DLLAPI long* ER_STDCALL erGetMotionAttributes_dom_type ( ER_TARGET_ATTRIBUTES_HND  hnd)

Dominant interpolation type for a target location
The dominant interpolation type can be one of the following values.
ER_DOMINANT_INTERPOLATION_POS, ER_DOMINANT_INTERPOLATION_ORI, ER_DOMINANT_INTERPOLATION_AXIS, ER_DOMINANT_INTERPOLATION_AUTO
Remarks
Default setting is ER_DOMINANT_INTERPOLATION_AUTO.

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto long - dominant interpolation type
NULL- Error

◆ erGetMotionAttributes_enabled()

DLLAPI long* ER_STDCALL erGetMotionAttributes_enabled ( ER_TARGET_ATTRIBUTES_HND  hnd)

Enables/disables a target location
If the target location is disabled, the trajectory interpolator will skip this target.

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto long - to enable and disable the target location
NULL- Error

◆ erGetMotionAttributes_ext_tcp_mode()

DLLAPI long* ER_STDCALL erGetMotionAttributes_ext_tcp_mode ( ER_TARGET_ATTRIBUTES_HND  hnd)

Enables/disables external TCP for a target location
IPO_MODE_BASE (tool guided) or IPO_MODE_TOOL (work object guided)

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto long - to enable and disable external TCP
NULL- Error

◆ erGetMotionAttributes_extTcpBaseFrame()

DLLAPI DFRAME* ER_STDCALL erGetMotionAttributes_extTcpBaseFrame ( ER_TARGET_ATTRIBUTES_HND  hnd,
DFRAME extTcpBaseFrame 
)

external Tool (TCP) w.r.t. Robot Base or flange of positioner, for a target location
Transformation from RobotBase or from flange of positioner to external TCP
see inq_extTcpBaseIdx(), inq_extTcpBaseName()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
[out]extTcpBaseFramelocation DFRAME
Return values
pointerto DFRAME - extTcpBaseFrame, DFRAME
NULL- Error

◆ erGetMotionAttributes_extTcpBaseIdx()

DLLAPI long* ER_STDCALL erGetMotionAttributes_extTcpBaseIdx ( ER_TARGET_ATTRIBUTES_HND  hnd)

Idx for external Tool (TCP) w.r.t. Robot Base or flange of positioner, for a target location
see inq_extTcpBaseVec(), inq_extTcpBaseName()
This extTcpBaseIdx could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto long - extTcpBase idx
NULL- Error

◆ erGetMotionAttributes_extTcpBaseName()

DLLAPI char* ER_STDCALL erGetMotionAttributes_extTcpBaseName ( ER_TARGET_ATTRIBUTES_HND  hnd)

Name for external Tool (TCP) w.r.t. Robot Base or flange of positioner, for a target location
see inq_extTcpBaseVec(), inq_extTcpBaseIdx()
This extTcpBaseName could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto char - extTcpBase name, maximum lengths ER_MAXSTR
NULL- Error

◆ erGetMotionAttributes_extTcpBaseVec()

DLLAPI double* ER_STDCALL erGetMotionAttributes_extTcpBaseVec ( ER_TARGET_ATTRIBUTES_HND  hnd)

external Tool (TCP) w.r.t. Robot Base or flange of positioner, for a target location
Transformation from RobotBase or from flange of positioner to external TCP
see inq_extTcpBaseIdx(), inq_extTcpBaseName()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto double - extTcpBase vector, definition Pxyz [m] Rxyz [rad] ER_DOF6
NULL- Error

◆ erGetMotionAttributes_extTcpOffsetFrame()

DLLAPI DFRAME* ER_STDCALL erGetMotionAttributes_extTcpOffsetFrame ( ER_TARGET_ATTRIBUTES_HND  hnd,
DFRAME extTcpOffsetFrame 
)

external Tool/TCP offset data w.r.t. extTcpBase, extTcpWorld, for a target location
Transformation from extTcpBase or extTcpWorld
see inq_extTcpOffsetIdx(), inq_extTcpOffsetName()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
[out]extTcpOffsetFramelocation DFRAME
Return values
pointerto DFRAME - extTcpOffsetFrame, DFRAME
NULL- Error

◆ erGetMotionAttributes_extTcpOffsetIdx()

DLLAPI long* ER_STDCALL erGetMotionAttributes_extTcpOffsetIdx ( ER_TARGET_ATTRIBUTES_HND  hnd)

Idx for external Tool/TCP offset data w.r.t. extTcpBase, extTcpWorld, for a target location
see inq_extTcpOffsetVec(), inq_extTcpOffsetName()
This extTcpOffsetIdx could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto long - extTcpOffset idx
NULL- Error

◆ erGetMotionAttributes_extTcpOffsetName()

DLLAPI char* ER_STDCALL erGetMotionAttributes_extTcpOffsetName ( ER_TARGET_ATTRIBUTES_HND  hnd)

Name for external Tool/TCP offset data w.r.t. extTcpBase, extTcpWorld, for a target location
see inq_extTcpOffsetVec(), inq_extTcpOffsetIdx()
This extTcpOffsetName could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto char - extTcpOffset name, maximum lengths ER_MAXSTR
NULL- Error

◆ erGetMotionAttributes_extTcpOffsetVec()

DLLAPI double* ER_STDCALL erGetMotionAttributes_extTcpOffsetVec ( ER_TARGET_ATTRIBUTES_HND  hnd)

external Tool/TCP offset data w.r.t. extTcpBase, extTcpWorld, for a target location
Transformation from extTcpBase or extTcpWorld
see inq_extTcpOffsetIdx(), inq_extTcpOffsetName()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto double - extTcpOffset vector, definition Pxyz [m] Rxyz [rad] ER_DOF6
NULL- Error

◆ erGetMotionAttributes_extTcpWorldFrame()

DLLAPI DFRAME* ER_STDCALL erGetMotionAttributes_extTcpWorldFrame ( ER_TARGET_ATTRIBUTES_HND  hnd,
DFRAME extTcpWorldFrame 
)

external Tool (TCP) w.r.t. Robot World or flange of positioner, for a target location
Transformation from RobotWorld or from flange of positioner to external TCP
see inq_extTcpWorldIdx(), inq_extTcpWorldName()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
[out]extTcpWorldFramelocation DFRAME
Return values
pointerto DFRAME - extTcpWorldFrame, DFRAME
NULL- Error

◆ erGetMotionAttributes_extTcpWorldIdx()

DLLAPI long* ER_STDCALL erGetMotionAttributes_extTcpWorldIdx ( ER_TARGET_ATTRIBUTES_HND  hnd)

Idx for external Tool (TCP) w.r.t. Robot World or flange of positioner, for a target location
see inq_extTcpWorldVec(), inq_extTcpWorldName()
This extTcpWorldIdx could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto long - extTcpWorld idx
NULL- Error

◆ erGetMotionAttributes_extTcpWorldName()

DLLAPI char* ER_STDCALL erGetMotionAttributes_extTcpWorldName ( ER_TARGET_ATTRIBUTES_HND  hnd)

Name for external Tool (TCP) w.r.t. Robot World or flange of positioner, for a target location
see inq_extTcpWorldVec(), inq_extTcpWorldIdx()
This extTcpWorldName could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto char - extTcpWorld name, maximum lengths ER_MAXSTR
NULL- Error

◆ erGetMotionAttributes_extTcpWorldVec()

DLLAPI double* ER_STDCALL erGetMotionAttributes_extTcpWorldVec ( ER_TARGET_ATTRIBUTES_HND  hnd)

external Tool (TCP) w.r.t. Robot World or flange of positioner, for a target location
Transformation from RobotWorld or from flange of positioner to external TCP
see inq_extTcpWorldIdx(), inq_extTcpWorldName()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto double - extTcpWorld vector, definition Pxyz [m] Rxyz [rad] ER_DOF6
NULL- Error

◆ erGetMotionAttributes_filter_factor()

DLLAPI long* ER_STDCALL erGetMotionAttributes_filter_factor ( ER_TARGET_ATTRIBUTES_HND  hnd)

Filter factor for smoothing velocity profiles of motions
The filter_factor is one of ER_MOTION_FILTER_GEO or ER_MOTION_FILTER_C2
Remarks
Per default ER_MOTION_FILTER_C2 is set
It makes sense to keep one filter_factor for the complete tool path.

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto long - filter_factor
NULL- Error

◆ erGetMotionAttributes_flyby_dist()

DLLAPI double* ER_STDCALL erGetMotionAttributes_flyby_dist ( ER_TARGET_ATTRIBUTES_HND  hnd)

flyby by distance [m] for a target location
In case of flyby by distance, the robot starts moving into the next segment when the distance to the target is less then the flyby_dist value.
flyby_dist has only an effect if flyby is enabled and if set > 0 [m], see inq_flyby_on(), inq_flyby_speed_percent()
Remarks
Default value: 0 [m]

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto double - flyby_dist
NULL- Error

◆ erGetMotionAttributes_flyby_on()

DLLAPI long* ER_STDCALL erGetMotionAttributes_flyby_on ( ER_TARGET_ATTRIBUTES_HND  hnd)

Rounding / flyby condition for a target location
In case of flyby enabled, the robot moves through a target location with programmed speeds and will not decelerate
flyby_on is one of ER_FLYBY_OFF, ER_FLYBY_ON
Remarks
Default value: ER_FLYBY_OFF.

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto long - flyby_on
NULL- Error

◆ erGetMotionAttributes_flyby_speed_percent()

DLLAPI double* ER_STDCALL erGetMotionAttributes_flyby_speed_percent ( ER_TARGET_ATTRIBUTES_HND  hnd)

flyby by speed [%] for a target location
In case of flyby by speed, the robot starts moving into the next segment when the current speed is less then the flyby_speed_percent value.
flyby_speed_percent has only an effect if flyby is enabled and if set > 0%, see inq_flyby_on(), inq_flyby_dist()
Remarks
Default value: 0%

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto double - flyby_speed_percent
NULL- Error

◆ erGetMotionAttributes_LagWaitTime()

DLLAPI double* ER_STDCALL erGetMotionAttributes_LagWaitTime ( ER_TARGET_ATTRIBUTES_HND  hnd)

Lagging time [s] after robot reaches its target location
Remarks
Default value: 0
Has only an effect when flyby is disabled, see inq_LeadWaitTime()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto double - LagWaitTime
NULL- Error

◆ erGetMotionAttributes_LeadWaitTime()

DLLAPI double* ER_STDCALL erGetMotionAttributes_LeadWaitTime ( ER_TARGET_ATTRIBUTES_HND  hnd)

Leading time [s] before robot will start moving to target location
Remarks
Default value: 0
Has only an effect when flyby is disabled, see inq_LagWaitTime()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto double - LeadWaitTime
NULL- Error

◆ erGetMotionAttributes_motype()

DLLAPI long* ER_STDCALL erGetMotionAttributes_motype ( ER_TARGET_ATTRIBUTES_HND  hnd)

Motion Type for a target location
The motion type can be one of the following values
ER_JOINT = ER_PTP = 1, ER_LIN = 2, ER_SLEW = 3, ER_CIRC = 4
Remarks
Methods such as.

sets the motion type automatically

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto long - motion type
NULL- Error

◆ erGetMotionAttributes_override_speed()

DLLAPI double* ER_STDCALL erGetMotionAttributes_override_speed ( ER_TARGET_ATTRIBUTES_HND  hnd)

Correction values as percentage value for scaling the programmed speed for a target location
Remarks
Default value: 100%.

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto double - override_speed
NULL- Error

◆ erGetMotionAttributes_ramp()

DLLAPI double* ER_STDCALL erGetMotionAttributes_ramp ( ER_TARGET_ATTRIBUTES_HND  hnd)

Change of acceleration and deceleration as percentage value in the range from 20% to 100% of normal values for a target location
Remarks
Default value: 100%
Smaller values results in a smoother acceleration and deceleration when the robot carries high payloads for example.

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto double - ramp
NULL- Error

◆ erGetMotionAttributes_speed_reduction_enable()

DLLAPI long* ER_STDCALL erGetMotionAttributes_speed_reduction_enable ( ER_TARGET_ATTRIBUTES_HND  hnd)

Speed reduction enable for a target location
The speed reduction enable can be one of the following values
ER_SPEED_REDUCTION_ENABLE = 1, ER_SPEED_REDUCTION_DISABLE = 0
If speed reduction is enabled, the robots TCP speed gets reduced (while motion execution in erGET_NEXT_STEP()) if the desired nominal joint speeds exceeds the maximum allowed joint speed, defined with erSetVqMax().
Remarks
Per default, speed reduction is enabled.
Speed reduction causes the TrajectoryTime to increase, while the RemainingTime represents the minimum time necessary to reach the target.

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto long - speed_reduction_enable
NULL- Error

◆ erGetMotionAttributes_target_id()

DLLAPI TErTargetID* ER_STDCALL erGetMotionAttributes_target_id ( ER_TARGET_ATTRIBUTES_HND  hnd)

unique target ID of a target location

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto TErTargetID - unique target ID
NULL- Error

◆ erGetMotionAttributes_ToolFrame()

DLLAPI DFRAME* ER_STDCALL erGetMotionAttributes_ToolFrame ( ER_TARGET_ATTRIBUTES_HND  hnd,
DFRAME ToolFrame 
)

Tool (TCP) for a target location
Transformation from Tip to TCP
see inq_ToolIdx(), inq_ToolName()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
[out]ToolFramelocation DFRAME
Return values
pointerto DFRAME - ToolFrame, DFRAME
NULL- Error

◆ erGetMotionAttributes_ToolIdx()

DLLAPI long* ER_STDCALL erGetMotionAttributes_ToolIdx ( ER_TARGET_ATTRIBUTES_HND  hnd)

Idx for Tool for a target location
see inq_ToolVec(), inq_ToolName()
This ToolIdx could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto long - Tool idx
NULL- Error

◆ erGetMotionAttributes_ToolName()

DLLAPI char* ER_STDCALL erGetMotionAttributes_ToolName ( ER_TARGET_ATTRIBUTES_HND  hnd)

Name for Tool for a target location
see inq_ToolVec(), inq_ToolIdx()
This ToolName could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto char - Tool name, maximum lengths ER_MAXSTR
NULL- Error

◆ erGetMotionAttributes_ToolOffsetFrame()

DLLAPI DFRAME* ER_STDCALL erGetMotionAttributes_ToolOffsetFrame ( ER_TARGET_ATTRIBUTES_HND  hnd,
DFRAME ToolOffsetFrame 
)

ToolOffset (TCP) for a target location
Offset Transformation from TCP
see inq_ToolOffsetIdx(), inq_ToolOffsetName()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
[out]ToolOffsetFramelocation DFRAME
Return values
pointerto DFRAME - ToolOffsetFrame, DFRAME
NULL- Error

◆ erGetMotionAttributes_ToolOffsetIdx()

DLLAPI long* ER_STDCALL erGetMotionAttributes_ToolOffsetIdx ( ER_TARGET_ATTRIBUTES_HND  hnd)

Idx for ToolOffset for a target location
see inq_ToolOffsetVec(), inq_ToolOffsetName()
This ToolOffsetIdx could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto long - Tool offset idx
NULL- Error

◆ erGetMotionAttributes_ToolOffsetName()

DLLAPI char* ER_STDCALL erGetMotionAttributes_ToolOffsetName ( ER_TARGET_ATTRIBUTES_HND  hnd)

Name for ToolOffset for a target location
see inq_ToolOffsetVec(), inq_ToolOffsetIdx()
This ToolOffsetName could be useful when using the post processor method ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto char - Tool offset name, maximum lengths ER_MAXSTR
NULL- Error

◆ erGetMotionAttributes_ToolOffsetVec()

DLLAPI double* ER_STDCALL erGetMotionAttributes_ToolOffsetVec ( ER_TARGET_ATTRIBUTES_HND  hnd)

ToolOffset (TCP) for a target location
Offset Transformation from TCP
see inq_ToolOffsetIdx(), inq_ToolOffsetName()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto double - Tool offset vector, definition Pxyz [m] Rxyz [rad] ER_DOF6
NULL- Error

◆ erGetMotionAttributes_ToolVec()

DLLAPI double* ER_STDCALL erGetMotionAttributes_ToolVec ( ER_TARGET_ATTRIBUTES_HND  hnd)

Tool (TCP) for a target location
Transformation from Tip to TCP
see inq_ToolIdx(), inq_ToolName()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto double - Tool vector, definition Pxyz [m] Rxyz [rad] ER_DOF6
NULL- Error

◆ erGetMotionAttributes_WobjCartPosFrame()

DLLAPI DFRAME* ER_STDCALL erGetMotionAttributes_WobjCartPosFrame ( ER_TARGET_ATTRIBUTES_HND  hnd,
DFRAME WobjCartPosFrame 
)

Get WorkObject valid for all cartesian target locations such as CartPosVec, CartPosVecVia
Using this transformation, all cartesian targets 'T' are modified to T' = WorkObj * T
see e.g. ERK_CAPI_TOOLPATH_TARGETS::erSetTargetLocation_Move_LIN()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
[out]WobjCartPosFramework object location DFRAME
Return values
pointerto DFRAME - WobjCartPosFrame, DFRAME
NULL- Error

◆ erGetMotionAttributes_WobjCartPosVec()

DLLAPI double* ER_STDCALL erGetMotionAttributes_WobjCartPosVec ( ER_TARGET_ATTRIBUTES_HND  hnd)

WorkObject valid for all cartesian target locations such as CartPosVec, CartPosVecVia
Using this transformation, all cartesian targets 'T' are modified to T' = WorkObj * T
see e.g. ERK_CAPI_TOOLPATH_TARGETS::erSetTargetLocation_Move_LIN()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
Return values
pointerto double - WorkObejct vector, definition Pxyz [m] Rxyz [rad] ER_DOF6
NULL- Error

◆ erGetMotionExec_configuration()

DLLAPI long ER_STDCALL erGetMotionExec_configuration ( ER_TARGET_MOTION_EXEC_HND  hnd)

Robot configuration, when reaching the target, while interpolation through the complete tool path
Remarks
Normally a robot configuration will
NOT change during a CP (ER_LIN, ER_CIRC) move
Valid robot configurations are between 1 and number of possible configurations depending on robot, maximum ER_KIN_CONFIGS
A valid robot configuration can be specified with.

Parameters
[in]hndunique target execution handle ER_TARGET_MOTION_EXEC_HND
Return values
configuration- robot configuration [1..ER_KIN_CONFIGS], 0-robot configuration can not be calculated

◆ erGetMotionExec_ExtAxValues()

DLLAPI double* ER_STDCALL erGetMotionExec_ExtAxValues ( ER_TARGET_MOTION_EXEC_HND  hnd)

External axis values at target location, while interpolation through the complete tool path.

Parameters
[in]hndunique target execution handle ER_TARGET_MOTION_EXEC_HND
Return values
pointerto double - ExtAxValues vector, maximum size ER_KIN_DOFS
NULL- Error

◆ erGetMotionExec_JointPos()

DLLAPI double* ER_STDCALL erGetMotionExec_JointPos ( ER_TARGET_MOTION_EXEC_HND  hnd)

Joint position at target location, while interpolation through the complete tool path.

Parameters
[in]hndunique target execution handle ER_TARGET_MOTION_EXEC_HND
Return values
pointerto double - JointPos vector, maximum size ER_KIN_DOFS
NULL- Error

◆ erGetMotionExec_motion_success()

DLLAPI long ER_STDCALL erGetMotionExec_motion_success ( ER_TARGET_MOTION_EXEC_HND  hnd)

Motion success is true when the robot has reached the target location successfully
Remarks
ERK_CAPI_TOOLPATH::erGET_NEXT_TOOLPATH_STEP_INIT() at the beginning of interpolation will reset motion_success for each targat location.

Parameters
[in]hndunique target execution handle ER_TARGET_MOTION_EXEC_HND
Return values
motion_success- 1-success, 0-Error reaching the target

◆ erGetMotionExec_time_stamp()

DLLAPI double ER_STDCALL erGetMotionExec_time_stamp ( ER_TARGET_MOTION_EXEC_HND  hnd)

Time stamp - total execution time [s] at the target location, while interpolation through the complete tool path
Remarks
ERK_CAPI_TOOLPATH::erGET_NEXT_TOOLPATH_STEP_INIT() sets the time_stamp = 0.

Parameters
[in]hndunique target execution handle ER_TARGET_MOTION_EXEC_HND
Return values
time_stamp- total execution time [s]

◆ erGetMotionExec_trajectory_time()

DLLAPI double ER_STDCALL erGetMotionExec_trajectory_time ( ER_TARGET_MOTION_EXEC_HND  hnd)

Trajectory time [s], time to reach the target location, while interpolation through the complete tool path.

Parameters
[in]hndunique target execution handle ER_TARGET_MOTION_EXEC_HND
Return values
trajectory_time- elapsed time in [s]

◆ erGetMoveBaseMode()

DLLAPI long ER_STDCALL erGetMoveBaseMode ( ER_HND  er_hnd,
long *  move_base_mode 
)

Gets moveable base mode.
A kinematics base can be fixed or moveable.
0: Robot base is fix (default)
1: Robot base is moveable.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]move_base_modemoveable base mode
Return values
0- OK
1- Error, invalid handle

◆ erGetMoveBasepJointIdx()

DLLAPI long ER_STDCALL erGetMoveBasepJointIdx ( ER_HND  er_hnd,
long *  move_base_pjointidx 
)

Gets passive joint idx representing the moveable base.
If a kinematics base is moveable, the move_base_pjointidx gives the index [1..number of passive joints] of the passive joints representing the moveable base.
Otherwise it is 0, see erGetMoveBaseMode(), erGetpJointMoveBase()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]move_base_pjointidxpassive joint index [0,1..number of passive joints]
Return values
0- OK
1- Error, invalid handle

◆ erGetMoveCP_accel_cp()

DLLAPI double* ER_STDCALL erGetMoveCP_accel_cp ( ER_TARGET_MOVE_CP_HND  hnd)

Cartesian acceleration [m/s^2], for CP move for target location.

Parameters
[in]hndunique target location move CP handle ER_TARGET_MOVE_CP_HND
Return values
pointerto double - accel_cp
NULL- Error

◆ erGetMoveCP_accel_ori()

DLLAPI double* ER_STDCALL erGetMoveCP_accel_ori ( ER_TARGET_MOVE_CP_HND  hnd)

Cartesian orientation acceleration [rad/s^2], for CP move for target location.

Parameters
[in]hndunique target location move CP handle ER_TARGET_MOVE_CP_HND
Return values
pointerto double - accel_ori
NULL- Error

◆ erGetMoveCP_CartPosVec()

DLLAPI double* ER_STDCALL erGetMoveCP_CartPosVec ( ER_TARGET_MOVE_CP_HND  hnd)

Cartesian position w.r.t. Base for CP move for target location
Remarks
Use for.

Parameters
[in]hndunique target location move CP handle ER_TARGET_MOVE_CP_HND
Return values
pointerto double - CartPosVec vector, maximum size ER_DOF6
NULL- Error

◆ erGetMoveCP_CartPosVecVia()

DLLAPI double* ER_STDCALL erGetMoveCP_CartPosVecVia ( ER_TARGET_MOVE_CP_HND  hnd)

Cartesian position at VIA location w.r.t. Base for CP move for target location
Remarks
Use for.

Parameters
[in]hndunique target location move CP handle ER_TARGET_MOVE_CP_HND
Return values
pointerto double - CartPosVec vector, maximum size ER_DOF6
NULL- Error

◆ erGetMoveCP_circ_orientation_interpolation_mode()

DLLAPI long* ER_STDCALL erGetMoveCP_circ_orientation_interpolation_mode ( ER_TARGET_MOVE_CP_HND  hnd)

Circular orientation interpolation mode for CP move for target location
The circular orientation interpolation_mode is one of.

per default = ER_CIRC_ORI_INTERPOLATION_START_END

Parameters
[in]hndunique target location move CP handle ER_TARGET_MOVE_CP_HND
Return values
pointerto long - orientation_interpolation_mode
NULL- Error

◆ erGetMoveCP_interpolation_mode()

DLLAPI long* ER_STDCALL erGetMoveCP_interpolation_mode ( ER_TARGET_MOVE_CP_HND  hnd)

Orientation interpolation mode for CP move for target location
The interpolation_mode is one of =1 one angle (QUATERNION), =2 two angle (QUATERNION), =3 three angle (VARIABLE)
per default =1 one angle (QUATERNION)

Parameters
[in]hndunique target location move CP handle ER_TARGET_MOVE_CP_HND
Return values
pointerto long - interpolation_mode
NULL- Error

◆ erGetMoveCP_speed_cp()

DLLAPI double* ER_STDCALL erGetMoveCP_speed_cp ( ER_TARGET_MOVE_CP_HND  hnd)

Cartesian speed [m/s], for CP move for target location.

Return values
hnd- target location move CP handle ER_TARGET_MOVE_CP_HND
pointerto double - speed_cp
NULL- Error

◆ erGetMoveCP_speed_ori()

DLLAPI double* ER_STDCALL erGetMoveCP_speed_ori ( ER_TARGET_MOVE_CP_HND  hnd)

Cartesian orientation speed [rad/s], for CP move for target location.

Parameters
[in]hndunique target location move CP handle ER_TARGET_MOVE_CP_HND
Return values
pointerto double - speed_ori
NULL- Error

◆ erGetMoveCP_target_type()

DLLAPI long* ER_STDCALL erGetMoveCP_target_type ( ER_TARGET_MOVE_CP_HND  hnd)

Target type for CP move for target location
is always.

Parameters
[in]hndunique target location move CP handle ER_TARGET_MOVE_CP_HND
Return values
pointerto long - target_type
NULL- Error

◆ erGetMoveJoint_accel_percent()

DLLAPI double* ER_STDCALL erGetMoveJoint_accel_percent ( ER_TARGET_MOVE_JOINT_HND  hnd)

Accel_percent percentage acceleration definition [>0-1000%] for joint move for target location.

Parameters
[in]hndunique target move joint handle ER_TARGET_MOVE_JOINT_HND
Return values
pointerto double - accel_percent
NULL- Error

◆ erGetMoveJoint_CartPosVec()

DLLAPI double* ER_STDCALL erGetMoveJoint_CartPosVec ( ER_TARGET_MOVE_JOINT_HND  hnd)

Cartesian position w.r.t. Base for joint move for target location
Remarks
Use for.

Parameters
[in]hndunique target move joint handle ER_TARGET_MOVE_JOINT_HND
Return values
pointerto double - CartPosVec vector, maximum size ER_DOF6
NULL- Error

◆ erGetMoveJoint_configuration()

DLLAPI long* ER_STDCALL erGetMoveJoint_configuration ( ER_TARGET_MOVE_JOINT_HND  hnd)

configuration Robot configuration [1-ER_KIN_CONFIGS] for target location

Parameters
[in]hndunique target move joint handle ER_TARGET_MOVE_JOINT_HND
Return values
pointerto long - configuration
NULL- Error

◆ erGetMoveJoint_JointPos()

DLLAPI double* ER_STDCALL erGetMoveJoint_JointPos ( ER_TARGET_MOVE_JOINT_HND  hnd)

Joint position for joint move for target location
Remarks
Use for.

◆ erGetMoveJoint_ptp_target_calculation_mode()

DLLAPI long* ER_STDCALL erGetMoveJoint_ptp_target_calculation_mode ( ER_TARGET_MOVE_JOINT_HND  hnd)

Ptp_target_calculation_mode for target location
is one of
ER_PTP_TARGET_CALC_MODE_SHORTEST_ANGLE, ER_PTP_TARGET_CALC_MODE_TURNS, ER_PTP_TARGET_CALC_MODE_MATH, ER_PTP_TARGET_CALC_MODE_IN_TRAVEL_RANGE, ER_PTP_TARGET_CALC_MODE_VAR_CONFIG.

Parameters
[in]hndunique target move joint handle ER_TARGET_MOVE_JOINT_HND
Return values
pointerto long - ptp_target_calculation_mode
NULL- Error

◆ erGetMoveJoint_speed_percent()

DLLAPI double* ER_STDCALL erGetMoveJoint_speed_percent ( ER_TARGET_MOVE_JOINT_HND  hnd)

Speed_percent percentage speed definition [>0-1000%] for joint move for target location.

Parameters
[in]hndunique target move joint handle ER_TARGET_MOVE_JOINT_HND
Return values
pointerto double - speed_percent
NULL- Error

◆ erGetMoveJoint_target_type()

DLLAPI long* ER_STDCALL erGetMoveJoint_target_type ( ER_TARGET_MOVE_JOINT_HND  hnd)

Target type for joint move for target location
is one of.

Parameters
[in]hndunique target move joint handle ER_TARGET_MOVE_JOINT_HND
Return values
pointerto long - target_type
NULL- Error

◆ erGetMoveJoint_turn_value()

DLLAPI long* ER_STDCALL erGetMoveJoint_turn_value ( ER_TARGET_MOVE_JOINT_HND  hnd)

Turn value for each robot joint for joint move for target location
The turn value determine the desired Turn in the target for the inverse kinematics calculation and for the trajectory planning
It takes effect if ER_PTP_TARGET_CALC_MODE_TURNS is set, see inq_ptp_target_calculation_mode()

Parameters
[in]hndunique target move joint handle ER_TARGET_MOVE_JOINT_HND
Return values
pointerto long - turn_value vector, maximum size ER_KIN_DOFS
NULL- Error

◆ erGetName()

DLLAPI long ER_STDCALL erGetName ( ER_HND  er_hnd,
char *  name 
)

Get the name of the robot.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]namename of the robot, maximum lengths ER_MAXSTR
Return values
NULLinvalid handle

◆ erGetNumConfigs()

DLLAPI long ER_STDCALL erGetNumConfigs ( ER_HND  er_hnd,
long *  num_configs 
)

Get number of possible robot configurations.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]num_configsnumber of possible robot configurations
Return values
0- OK
1- Error, invalid handle

◆ erGetpJointMoveBase()

DLLAPI long ER_STDCALL erGetpJointMoveBase ( ER_HND  er_hnd,
DFRAME pjntTmb 
)

Get transformation from passive joint 'pjnt' to the moveable base 'mb'.
If a kinematics base is moveable, the pjntTmb contains the transformation from passive joint 'pjnt' to the moveable base 'mb' frame.
Otherwise pjntTmb is identity, see erGetMoveBasepJointIdx(), erGetRobotBaseToMoveBase()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]pjntTmbtransformation 'pjnt' to 'mb' DFRAME
Return values
0- OK
1- Error, invalid handle

◆ erGetRobotBase()

DLLAPI long ER_STDCALL erGetRobotBase ( ER_HND  er_hnd,
DFRAME iTb 
)

Get robot base location w.r.t. world.

// Example:
DFRAME iTb;
erGetRobotBase(c_er_hnd,&iTb); // read robot base position
iTb.p[2] = 500*ER_mm2m; // set robot base position w.r.t World 'i' to 500 mm in z direction
erSetRobotBase(c_er_hnd,&iTb); // set robot base position
Parameters
[in]er_hndunique kinematics handle ER_HND
[out]iTblocation if the robots base w.r.t. world ('i' - inertia). DFRAME
Return values
0- OK
1- Error, invalid handle

◆ erGetRobotBaseTcp()

DLLAPI long ER_STDCALL erGetRobotBaseTcp ( ER_HND  er_hnd,
DFRAME bTw 
)

Get robot tcp location w.r.t. robot base.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]bTwlocation if the robots tcp w.r.t. robots base ('b' - robot base, 'w' - wrist,tcp). DFRAME
Return values
0- OK
1- Error, invalid handle

◆ erGetRobotBaseTip()

DLLAPI long ER_STDCALL erGetRobotBaseTip ( ER_HND  er_hnd,
DFRAME bTt 
)

Get robot tip (flange) location w.r.t. robot base.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]bTtlocation of the robots tip w.r.t. robots base ('b' - robot base, 't' - tip). DFRAME
Return values
0- OK
1- Error, invalid handle

◆ erGetRobotBasetoFirstJoint()

DLLAPI long ER_STDCALL erGetRobotBasetoFirstJoint ( ER_HND  er_hnd,
DFRAME T 
)

◆ erGetRobotBaseToMoveBase()

DLLAPI long ER_STDCALL erGetRobotBaseToMoveBase ( ER_HND  er_hnd,
DFRAME bTmb 
)

Get transformation from robot base 'b' to the moveable base 'mb'.
If a kinematics base is moveable, the bTmb contains the transformation from robot base 'b' to the moveable base 'mb' frame.
Otherwise bTmb is identity, see erGetMoveBasepJointIdx(), erGetpJointMoveBase()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]bTmbtransformation 'b' to 'mb' DFRAME
Return values
0- OK
1- Error, invalid handle

◆ erGetSpeedReductionEnable()

DLLAPI long ER_STDCALL erGetSpeedReductionEnable ( ER_HND  er_hnd,
long *  speed_reduction_enable 
)

Get speed reduction enable.
If speed reduction is enabled, the robots TCP speed gets reduced (while motion execution in erGET_NEXT_STEP()) if the desired nominal joint speeds exceeds the maximum allowed joint speed, defined with erSetVqMax().
Remarks
Per default, speed reduction is enabled.
Speed reduction causes the TrajectoryTime to increase, while the RemainingTime represents the minimum time necessary to reach the target.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]speed_reduction_enable1-enabled per default, 0-disabled
Return values
0- OK
1- Error, invalid handle

◆ erGetSweCalcMode()

DLLAPI long ER_STDCALL erGetSweCalcMode ( ER_HND  er_hnd,
long *  swe_calc_mode 
)

Get calculation mode for travel ranges Travel ranges can be fixed or depending on joints by a formular for example.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]swe_calc_mode=0 use fix swe_min and swe_max, =1 use equations to calculate SWE Switches
Return values
0- OK
1- Error, invalid handle

◆ erGetSweMax()

DLLAPI long ER_STDCALL erGetSweMax ( ER_HND  er_hnd,
double *  swe_max 
)

Get fix maximum travel ranges. The kinematics travel ranges swe_max are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]swe_maxfix maximum travel ranges, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erGetSweMax_passive()

DLLAPI long ER_STDCALL erGetSweMax_passive ( ER_HND  er_hnd,
double *  swe_max_passive 
)

Get fix maximum travel ranges from passive joints. The kinematics travel ranges swe_max_passive are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of passive joints with erGet_num_dofs_passive()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]swe_max_passivefix maximum travel ranges, max size ER_KIN_PASSIVE_JNTS
Return values
0- OK
1- Error, invalid handle

◆ erGetSweMaxCalc()

DLLAPI long ER_STDCALL erGetSweMaxCalc ( ER_HND  er_hnd,
double *  swe_max_calc 
)

Get calculated maximum travel ranges. The kinematics calculated travel ranges swe_max_calc are in units [m] for prismatic joint type
and [rad] for rotational joint type
Use erGetSweCalcMode() to find out if travel ranges are fix or depending on equations
Get the number of joints with erGet_num_dofs()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]swe_max_calccalculated maximum travel ranges, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erGetSweMin()

DLLAPI long ER_STDCALL erGetSweMin ( ER_HND  er_hnd,
double *  swe_min 
)

Get fix minimum travel ranges. The kinematics travel ranges swe_min are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]swe_minfix minimum travel ranges, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erGetSweMin_passive()

DLLAPI long ER_STDCALL erGetSweMin_passive ( ER_HND  er_hnd,
double *  swe_min_passive 
)

Get fix minimum travel ranges from passive joints. The kinematics travel ranges swe_min_passive are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of passive joints with erGet_num_dofs_passive()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]swe_min_passivefix minimum travel ranges, max size ER_KIN_PASSIVE_JNTS
Return values
0- OK
1- Error, invalid handle

◆ erGetSweMinCalc()

DLLAPI long ER_STDCALL erGetSweMinCalc ( ER_HND  er_hnd,
double *  swe_min_calc 
)

Get calculated minimum travel ranges. The kinematics calculated travel ranges swe_min_calc are in units [m] for prismatic joint type
and [rad] for rotational joint type
Use erGetSweCalcMode() to find out if travel ranges are fix or depending on equations
Get the number of joints with erGet_num_dofs()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]swe_min_calccalculated minimum travel ranges, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erGetSweMinMaxCalc()

DLLAPI long ER_STDCALL erGetSweMinMaxCalc ( ER_HND  er_hnd,
double *  swe_min_calc,
double *  swe_max_calc 
)

Get calculated minimum and maximum travel ranges. The kinematics calculated travel ranges swe_min_calc and swe_max_calc are in units [m] for prismatic joint type
and [rad] for rotational joint type
Use erGetSweCalcMode() to find out if travel ranges are fix or depending on equations
Get the number of joints with erGet_num_dofs()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]swe_min_calccalculated minimum travel ranges, max size ER_KIN_DOFS
[out]swe_max_calccalculated maximum travel ranges, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erGetTargetLocationEventsHnd()

DLLAPI ER_TARGET_EVENTS_HND ER_STDCALL erGetTargetLocationEventsHnd ( ER_TARGET_LOCATION_HND  er_tarloc_hnd)

Handle for target events data.

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
Return values
hnd- target location events handle ER_TARGET_EVENTS_HND
NULL- Error, invalid target locations

◆ erGetTargetLocationExtAxConveyorHnd()

DLLAPI ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND ER_STDCALL erGetTargetLocationExtAxConveyorHnd ( ER_TARGET_LOCATION_HND  er_tarloc_hnd)

Handle for external axis of a Conveyor-Motion
Typical data belonging to external axis data are:
number of external axis used, synchonization type, external axis data
Remarks
External axis data should be specified after the move definition of a target location The returned handle ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND is used to access external axis data for Conveyor-Motion
see example erGetExtAxConveyor_sync_type()

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
Return values
hnd- handle for external axis data definition for Conveyor ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND
NULL- Error, invalid target locations

◆ erGetTargetLocationExtAxPositionerHnd()

DLLAPI ER_TARGET_EXTAX_DEVICE_POSITIONER_HND ER_STDCALL erGetTargetLocationExtAxPositionerHnd ( ER_TARGET_LOCATION_HND  er_tarloc_hnd)

Handle for external axis of a Positioner/TurnTable-Motion
Typical data belonging to external axis data are:
number of external axis used, synchonization type, external axis data
Remarks
External axis data should be specified after the move definition of a target location The returned handle ER_TARGET_EXTAX_DEVICE_POSITIONER_HND is used to access external axis data for Positioner/TurnTable-Motion
see example SetExtAxPositionerIdx()

// Example:
// IN:
// my_tp_hnd - tool path handle
...
ER_TARGET_LOCATION_HND er_tarloc_hnd=NULL;
...
// Add a target location to tool path
if (!(er_tarloc_hnd = erk_toolpath_targets.erGetTargetLocationNext(er_tarloc_hnd)))
res = erk_toolpath_targets.erAddTargetLocation(my_tp_hnd,&er_tarloc_hnd); // add a new target location
// Specify a move
// Define External Axis values
long extax_idx = 1; // 1st external axis
double axis_value = 300.0*ER_mm2m;
double speed_value = 100.0*ER_mm2m;
long sync_type = ER_SYNC_ON;
res = erk_toolpath_extax_positioner.SetExtAxPositionerIdx(er_tarloc_hnd,extax_idx,axis_value,speed_value,sync_type);
extax_idx = 1; // 2nd external axis
...
{
// Read content or modify previous setting
long number_extax_used = *erk_toolpath_extax_positioner.inq_number_extax_used(er_extax_pos_hnd)
long sync_type = *erk_toolpath_extax_positioner.inq_sync_type(er_extax_pos_hnd)
ER_EXTAX_KIN_DATA *pextax_data_positioner; // pointer to ER_EXTAX_KIN_DATA - external axis values
long extax_idx = 0; // 1st external axis
pextax_data_positioner = erk_toolpath_extax_positioner.inq_extax_data(er_extax_pos_hnd,extax_idx);
pextax_data_positioner->er_hnd_connect; // Handle of connected device
pextax_data_positioner->axis_idx; // axis idx of controlled joint for connected device [0..ER_EXTAX_KIN_DATA_MAX-1]
pextax_data_positioner->axis_value; // positioner motion position
pextax_data_positioner->speed_value; // positioner motion speed
long extax_idx = 1; // 2nd external axis
pextax_data_positioner = erk_toolpath_extax_positioner.inq_extax_data(er_extax_pos_hnd,extax_idx);
pextax_data_positioner->er_hnd_connect; // Handle of connected device
pextax_data_positioner->axis_idx; // axis idx of controlled joint for connected device [0..ER_EXTAX_KIN_DATA_MAX-1]
pextax_data_positioner->axis_value; // positioner motion position
pextax_data_positioner->speed_value; // positioner motion speed
...
}
...
Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
Return values
hnd- handle for external axis data definition for Positioner/TurnTable ER_TARGET_EXTAX_DEVICE_POSITIONER_HND
NULL- Error, invalid target locations

◆ erGetTargetLocationExtAxTrackHnd()

DLLAPI ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND ER_STDCALL erGetTargetLocationExtAxTrackHnd ( ER_TARGET_LOCATION_HND  er_tarloc_hnd)

Handle for external axis of a Track/Slider-Motion
Typical data belonging to external axis data are:
number of external axis used, synchonization type, external axis data
Remarks
External axis data should be specified after the move definition of a target location The returned handle ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND is used to access external axis data for Track/Slider-Motion
see example SetExtAxTrackMotionIdx()

// Example:
// IN:
// my_tp_hnd - tool path handle
...
ER_TARGET_LOCATION_HND er_tarloc_hnd=NULL;
...
// Add a target location to tool path
if (!(er_tarloc_hnd = erk_toolpath_targets.erGetTargetLocationNext(er_tarloc_hnd)))
res = erk_toolpath_targets.erAddTargetLocation(my_tp_hnd,&er_tarloc_hnd); // add a new target location
// Specify a move
// Define External Axis values
long extax_idx = 0; // 1st external axis
double axis_value = 300.0*ER_mm2m;
double speed_value = 100.0*ER_mm2m;
long sync_type = ER_SYNC_ON;
res = erk_toolpath_extax_trackmotion.SetExtAxTrackMotionIdx(er_tarloc_hnd,extax_idx,axis_value,speed_value,sync_type);
...
{
// Read content or modify previous setting
long number_extax_used = *erk_toolpath_extax_trackmotion.inq_number_extax_used(er_extax_track_hnd)
long sync_type = *erk_toolpath_extax_trackmotion.inq_sync_type(er_extax_track_hnd)
long extax_idx = 0; // 1st external axis
ER_EXTAX_KIN_DATA *pextax_track = erk_toolpath_extax_trackmotion.inq_extax_data(er_extax_track_hnd,extax_idx);
pextax_track->er_hnd_connect; // Handle of connected device
pextax_track->axis_idx; // axis idx of controlled joint for connected device [0..ER_EXTAX_KIN_DATA_MAX-1]
pextax_track->axis_value; // track motion position
pextax_track->speed_value; // track motion speed
...
}
...
Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
Return values
hnd- handle for external axis data definition for Track/Slider ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND
NULL- Error, invalid target locations

◆ erGetTargetLocationFirst()

DLLAPI ER_TARGET_LOCATION_HND ER_STDCALL erGetTargetLocationFirst ( ER_TARGET_LOCATION_HND  er_tarloc_hnd)

Get first target location in a tool path.

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
Return values
targetlocation handle - first target location in a tool path ER_TARGET_LOCATION_HND
NULL- Error, tool path has no target locations

◆ erGetTargetLocationHeaderDataHnd()

DLLAPI ER_TARGET_HEAD_HND ER_STDCALL erGetTargetLocationHeaderDataHnd ( ER_TARGET_LOCATION_HND  er_tarloc_hnd)

Handle for target header data.

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
Return values
hnd- target location header handle ER_TARGET_HEAD_HND
NULL- Error, invalid target locations

◆ erGetTargetLocationIdx()

DLLAPI long ER_STDCALL erGetTargetLocationIdx ( ER_TARGET_LOCATION_HND  er_tarloc_hnd)

Index of target location.

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
Return values
>0- Idx of target location
0- Error

◆ erGetTargetLocationInstructionsHnd()

DLLAPI ER_TARGET_INSTRUCTIONS_HND ER_STDCALL erGetTargetLocationInstructionsHnd ( ER_TARGET_LOCATION_HND  er_tarloc_hnd)

Handle for target instruction data
Remarks
Instructions are individual command or information attached to a target location. They don't influence in the calculated trajectory.
Instructions are very useful when creating a robot program using the API post processing function ERK_CAPI_TOOLPATH_APIPP::erTPth_PostProc().

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
Return values
hnd- target location instruction handle ER_TARGET_INSTRUCTIONS_HND
NULL- Error, invalid target locations

◆ erGetTargetLocationLast()

DLLAPI ER_TARGET_LOCATION_HND ER_STDCALL erGetTargetLocationLast ( ER_TARGET_LOCATION_HND  er_tarloc_hnd)

Get last target location in a tool path.

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
Return values
targetlocation handle - last target location in a tool path ER_TARGET_LOCATION_HND
NULL- Error, tool path has no target locations

◆ erGetTargetLocationMotionAttributesAuxHnd()

DLLAPI ER_TARGET_ATTRIBUTES_AUX_HND ER_STDCALL erGetTargetLocationMotionAttributesAuxHnd ( ER_TARGET_LOCATION_HND  er_tarloc_hnd)

Handle for target attributes auxiliary data.

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
Return values
hnd- target location attributes auxiliary handle ER_TARGET_ATTRIBUTES_AUX_HND
NULL- Error, invalid target locations

◆ erGetTargetLocationMotionAttributesHnd()

DLLAPI ER_TARGET_ATTRIBUTES_HND ER_STDCALL erGetTargetLocationMotionAttributesHnd ( ER_TARGET_LOCATION_HND  er_tarloc_hnd)

Handle for target attributes data
Typical attributes belonging to a target location are:
e.g. target_id, external TCP, Base data, Tool data , motion type, override speed, velocity profile, flyby, autoaccel, lead- and lag time, etc.
Remarks
The returned handle ER_TARGET_ATTRIBUTES_HND is used to access target attributes data.

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
Return values
hnd- target location attributes handle ER_TARGET_ATTRIBUTES_HND
NULL- Error, invalid target locations

◆ erGetTargetLocationMotionExecHnd()

DLLAPI ER_TARGET_MOTION_EXEC_HND ER_STDCALL erGetTargetLocationMotionExecHnd ( ER_TARGET_LOCATION_HND  er_tarloc_hnd)

Handle for target execution data
Target execution data are calculated while interpolation through the complete tool path, if the robot has reached the target
see also.

Typical data belonging to a target execution data are:
motion_success, time_stamp, trajectory_time, robot configuration, JointPos, external axis values
Remarks
The returned handle ER_TARGET_MOTION_EXEC_HND is used to access target execution data

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
Return values
hnd- target execution handle ER_TARGET_MOTION_EXEC_HND
NULL- Error, invalid target locations

◆ erGetTargetLocationMoveCPHnd()

DLLAPI ER_TARGET_MOVE_CP_HND ER_STDCALL erGetTargetLocationMoveCPHnd ( ER_TARGET_LOCATION_HND  er_tarloc_hnd)

Handle for target move CP data
Typical data belonging to a move CP target location are:
target_type, speed_cp, speed_ori, accel_cp, accel_ori, CartPosVec, CartPosVecVia, interpolation_mode, orientation_interpolation_mode
Remarks
The returned handle ER_TARGET_MOVE_CP_HND is used to access target move CP data.

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
Return values
hnd- target location move CP handle ER_TARGET_MOVE_CP_HND
NULL- Error, invalid target locations

◆ erGetTargetLocationMoveJointHnd()

DLLAPI ER_TARGET_MOVE_JOINT_HND ER_STDCALL erGetTargetLocationMoveJointHnd ( ER_TARGET_LOCATION_HND  er_tarloc_hnd)

Handle for target move joint data
Typical data belonging to a move joint target location are:
target_type, speed_percent, accel_percent, JointPos , CartPosVec, configuration, ptp_target_calculation_mode, turn_value
Remarks
The returned handle ER_TARGET_MOVE_JOINT_HND is used to access target move joint data.

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
Return values
hnd- target location move joint handle ER_TARGET_MOVE_JOINT_HND
NULL- Error, invalid target locations

◆ erGetTargetLocationName()

DLLAPI char* ER_STDCALL erGetTargetLocationName ( ER_TARGET_LOCATION_HND  er_tarloc_hnd)

Name of target location.

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
Return values
pointerto char for 'target location name', maximum lengths ER_MAXSTR
NULL- Error

◆ erGetTargetLocationNameVia()

DLLAPI char* ER_STDCALL erGetTargetLocationNameVia ( ER_TARGET_LOCATION_HND  er_tarloc_hnd)

Name of target Via location, in case of circular motion.

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
Return values
pointerto char for 'target location name', maximum lengths ER_MAXSTR
NULL- Error

◆ erGetTargetLocationNext()

DLLAPI ER_TARGET_LOCATION_HND ER_STDCALL erGetTargetLocationNext ( ER_TARGET_LOCATION_HND  er_tarloc_hnd)

Get next target location in a tool path.

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
Return values
targetlocation handle - next target location in a tool path ER_TARGET_LOCATION_HND
NULL- target location er_tarloc_hnd is the last one, or tool path has no target locations

◆ erGetTargetLocationNumber()

DLLAPI long ER_STDCALL erGetTargetLocationNumber ( ER_TARGET_LOCATION_HND  er_tarloc_hnd)

Number of target locations in a tool path.

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
Return values
n- number of target locations in a tool path

◆ erGetTargetLocationPrev()

DLLAPI ER_TARGET_LOCATION_HND ER_STDCALL erGetTargetLocationPrev ( ER_TARGET_LOCATION_HND  er_tarloc_hnd)

Get previous target location in a tool path.

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
Return values
targetlocation handle - previous target location in a tool path ER_TARGET_LOCATION_HND
NULL- target location er_tarloc_hnd is the first one, or tool path has no target locations

◆ erGetTargetLocationToolPathHnd()

DLLAPI ER_TOOLPATH_HND ER_STDCALL erGetTargetLocationToolPathHnd ( ER_TARGET_LOCATION_HND  er_tarloc_hnd)

Tool path handle belonging to target location handle.

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
Return values
hnd- tool path handle ER_TOOLPATH_HND
NULL- Error, invalid target locations

◆ erGetTool()

DLLAPI long ER_STDCALL erGetTool ( ER_HND  er_hnd,
DFRAME tTw 
)

Get robot tool (TCP) data w.r.t. robots flange.

// Example:
DFRAME tTw;
erGetTool(c_er_hnd,&tTw); // read tool
tTw.p[2] = 100*ER_mm2m; // set tool to 100 mm in z direction
erSetTool(c_er_hnd,&tTw); // set new tool
Parameters
[in]er_hndunique kinematics handle ER_HND
[out]tTwtool data w.r.t. the robots flange ('t' - tip, 'w' - wrist). DFRAME
Return values
0- OK
1- Error, invalid handle

◆ erGetToolFix()

DLLAPI long ER_STDCALL erGetToolFix ( ER_HND  er_hnd,
DFRAME tTwfix 
)

Get robot tool fix (TCP) data w.r.t. robots flange, without Tool Offset.

// Example:
DFRAME tTw;
erGetTool(c_er_hnd,&tTw); // read tool
tTw.p[2] = 100*ER_mm2m; // set tool to 100 mm in z direction
erSetTool(c_er_hnd,&tTw); // set new tool, reset tool offset and set tool fix as well
DFRAME tTwfix;
erGetToolFix(c_er_hnd,&tTwfix); // read tool fix
// Result: tTwfix.p[2] = 0.1; same as tTw
Parameters
[in]er_hndunique kinematics handle ER_HND
[out]tTwfixtool data w.r.t. the robots flange ('t' - tip, 'wf' - wrist). DFRAME
Return values
0- OK
1- Error, invalid handle

◆ erGetToolOffset()

DLLAPI long ER_STDCALL erGetToolOffset ( ER_HND  er_hnd,
DFRAME wTwo 
)

Get robot tool offset (TCP) data w.r.t. robots fix Tcp.

// Example:
DFRAME tTw; // fix tool data
erGetTool(c_er_hnd,&tTw); // read tool, suppose it is identity
// Result: tTw.p[2] = 0.0;
DFRAME wTwo;
erGetToolOffset(c_er_hnd,&wTwo); // read tool offset, suppose it is identity
wTwo.p[2] = 100*ER_mm2m; // set tool offset to 100 mm in z direction
erSetToolOffset(c_er_hnd,&wTwo); // set the tool offset
// Important:
// the current tool data includes the tool offset!
erGetTool(c_er_hnd,&tTw); // read tool again
// Result tTw.p[2] = 0.1;
erGetToolOffset(c_er_hnd,&wTwo); // read tool offset, suppose it is identity
// Result wTwo.p[2] = 0.1;
// Change Tool offset once more to 150mm in z direction
wTwo.p[2] = 150*ER_mm2m; // set tool offset to 100 mm in z direction
erSetToolOffset(c_er_hnd,&wTwo); // set the tool offset
erGetTool(c_er_hnd,&tTw); // read tool again
// Result tTw.p[2] = 0.15;
Parameters
[in]er_hndunique kinematics handle ER_HND
[out]wTwotool data w.r.t. the robots flange ('w' - wrist, 'wo' - wrist offset). DFRAME
Return values
0- OK
1- Error, invalid handle

◆ erGetTurn_interval()

DLLAPI long ER_STDCALL erGetTurn_interval ( ER_HND  er_hnd,
double *  turn_interval 
)

Get the turn interval for each robot joints
The kinematics turn interval turn_interval are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs()
See also erSetTurn_interval()

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]turn_intervalturn interval, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erGetTurn_offset()

DLLAPI long ER_STDCALL erGetTurn_offset ( ER_HND  er_hnd,
double *  turn_offset 
)

Get the turn offset for each robot joints
The kinematics turn offset turn_offset are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs()
See also erSetTurn_offset()

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]turn_offsetturn offset, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erGetTurn_value()

DLLAPI long ER_STDCALL erGetTurn_value ( ER_HND  er_hnd,
long *  turn_value 
)

Get the turn value for each robot joints
The turn value turn_value determine the desired Turn in the target for the inverse kinematics calculation and for the motion planning
It takes effect if ER_PTP_TARGET_CALC_MODE_TURNS is set. Get the number of joints with erGet_num_dofs()
See also erSetTurn_value()

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]turn_valueturn value, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erGetVqMax()

DLLAPI long ER_STDCALL erGetVqMax ( ER_HND  er_hnd,
double *  vq_max 
)

Get maximum of robot joint speeds.
Robot joint speeds vq_max are in units [m/s] for prismatic joint type and [rad/s] for rotational joint type.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]vq_maxmaximum of robot joint speeds, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erGetVxMax()

DLLAPI long ER_STDCALL erGetVxMax ( ER_HND  er_hnd,
double *  vx_max 
)

Get maximum cartesian speed.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]vx_maxmaximum cartesian speed [m/s]
Return values
0- OK
1- Error, invalid handle

◆ erGetVxOriMax()

DLLAPI long ER_STDCALL erGetVxOriMax ( ER_HND  er_hnd,
double *  vx_ori_max 
)

Get maximum cartesian orientation speed.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]vx_ori_maxmaximum cartesian orientation speed [rad/s]
Return values
0- OK
1- Error, invalid handle

◆ erGetWorldTcp()

DLLAPI long ER_STDCALL erGetWorldTcp ( ER_HND  er_hnd,
DFRAME iTw 
)

Get robot tcp location w.r.t. inertia (world) coorsys.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]iTwlocation if the robots tcp w.r.t. inertia ('i' - inertia, 'w' - wrist,tcp). DFRAME
Return values
0- OK
1- Error, invalid handle

◆ erGetWorldTip()

DLLAPI long ER_STDCALL erGetWorldTip ( ER_HND  er_hnd,
DFRAME iTt 
)

Get robot tip location w.r.t. inertia (world) coorsys.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]iTtlocation if the robots tip w.r.t. inertia ('i' - inertia, 't' - tip). DFRAME
Return values
0- OK
1- Error, invalid handle

◆ erhGetTargetLocationER_HND()

DLLAPI ER_HND ER_STDCALL erhGetTargetLocationER_HND ( ER_TARGET_LOCATION_HND  er_tarloc_hnd)

Device handle belonging to target location.

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
Return values
er_hnd- device robot handle

◆ erINITIALIZE()

DLLAPI long ER_STDCALL erINITIALIZE ( ER_HND er_hnd,
Host_HND  host_hnd = NULL 
)

Create a unique kinematics handle.
Opcode 101, Chapter 3.4.1, Page 3-26, same as erInitKin()
Initializes one instance of a robot and creates an unique kinematics handle er_hnd belonging to a robot kinematics.
This handles is necessary to access individual data from the robot and to call other functions.

Parameters
[out]er_hnda new unique kinematics handle ER_HND
[in]host_hndunique host handle Host_HND
Return values
0- OK
1- Error, cannot create a valid handle

◆ erInitKin()

DLLAPI long ER_STDCALL erInitKin ( ER_HND er_hnd,
Host_HND  host_hnd = NULL 
)

Create a unique kinematics handle.
Opcode 101, Chapter 3.4.1, Page 3-26, same as erINITIALIZE()
Initializes one instance of a robot and creates an unique kinematics handle er_hnd belonging to a robot kinematics.
This handles is necessary to access individual data from the robot and to call other functions.
Use erLoadKin() to load an EASY-ROB rob file (*.rob) containing a kinematics.

Parameters
[out]er_hnda new unique kinematics handle ER_HND
[in]host_hndunique host handle Host_HND
Return values
0- OK
1- Error, cannot create a valid handle, Option MultiKIN not licensed

◆ erInitToolPath()

DLLAPI long ER_STDCALL erInitToolPath ( ER_HND  er_hnd,
ER_TOOLPATH_HND er_tpth_hnd 
)

Create a unique tool path handle for a kinematics.

// Example:
//---------------------------------------------
// 1.Create empty tool path handles
//---------------------------------------------
ER_TOOLPATH_HND er_toolpath_hnds[2]; // two ToolPath handle
int n_toolpath_hnd = sizeof(er_toolpath_hnds)/sizeof(er_toolpath_hnds[0]);
for (int i=0;i<n_toolpath_hnd;++i)
er_toolpath_hnds[i]=NULL;
//---------------------------------------------
// 2.Create a unique tool path handle for a kinematics, er_hnd_ unique kinematics handle
// Note that this tool path belongs to the dive specified by 'er_hnd_'
//---------------------------------------------
for (int i=0;i<n_toolpath_hnd;++i)
if (res=erk_toolpath.erInitToolPath(er_hnd_,&er_toolpath_hnds[i]))
return 1; // error
// ....
Parameters
[in]er_hndunique kinematics handle ER_HND
[out]er_tpth_hnda new unique tool path handle ER_TOOLPATH_HND
Return values
0- OK
1- Error, cannot create a valid handle

◆ erInsertTargetLocation()

DLLAPI long ER_STDCALL erInsertTargetLocation ( ER_TOOLPATH_HND  er_tpth_hnd,
ER_TARGET_LOCATION_HND er_tarloc_hnd,
ER_TARGET_LOCATION_HND  er_tarloc_hnd_ref = NULL 
)

Insert a new target location to a tool path before an existing target location
Remarks
The new target location is inserted before the target location with handle er_tarloc_hnd_ref.
If parameter er_tarloc_hnd_ref is NULL, the new target location is appended, see erAddTargetLocation().
The new target location is reset to default values and marked as invalid, use erGetTargetLocationNumber() to receive the number of target locations in the tool path.
See ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid() to set, unset the validity of a target location or request the validity status.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
[out]er_tarloc_hnda new unique target location handle ER_TARGET_LOCATION_HND
[in]er_tarloc_hnd_refexisting target location handle ER_TARGET_LOCATION_HND
Return values
0- Ok
1- Error

◆ erInsertToolPath()

DLLAPI long ER_STDCALL erInsertToolPath ( ER_HND  er_hnd,
ER_TOOLPATH_HND er_tpth_hnd,
ER_TOOLPATH_HND  er_tpth_hnd_ref 
)

Create and insert a unique tool path handle.
The created tool path handle er_tpth_hnd is inserted before the tool path handle er_tpth_hnd_ref
Remarks
If parameter er_tpth_hnd_ref is NULL, the new tool path is appended.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]er_tpth_hnda new unique tool path handle ER_TOOLPATH_HND
[in]er_tpth_hnd_refunique tool path handle ER_TOOLPATH_HND
Return values
0- OK
1- Error, cannot create a valid handle

◆ erInvKinRobotBaseTcp()

DLLAPI long ER_STDCALL erInvKinRobotBaseTcp ( ER_HND  er_hnd,
DFRAME bTw 
)

Calculating the inverse kinematics transformation.
The bTw is the location of the tcp w.r.t. robots base.
Get the calculated robot joint data with erGetJoints().

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]bTwrobots tcp ('w' - wrist) w.r.t. robots base 'b'. DFRAME
Return values
0- INV_WARN_OK "OK", target location is reachable
1- INV_WARN_SINGULAR Warning, target location is reachable, but location is in singularity
2- INV_WARN_UNREACH, failed, target location is unreachable
3- INV_WARN_CNFG, ERROR calulating inverse solution for current robot configuration
4- INV_WARN_NO_INVKIN, ERROR kinematics has no inverse kinematics defned
5- INV_WARN_SWE_EXCEED, Warning: inverse kinematics calculation successful, target location is reachable, but travel ranges are exceeded
-1- INV_WARN_ERROR, invalid handle

◆ erInvKinRobotBaseTip()

DLLAPI long ER_STDCALL erInvKinRobotBaseTip ( ER_HND  er_hnd,
DFRAME bTt 
)

Calculating the inverse kinematics transformation.
The bTt is the location of the flange w.r.t. robots base.
Get the calculated robot joint data with erGetJoints().

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]bTtrobots flange ('t' - tip) w.r.t. robots base 'b'. DFRAME
Return values
0- INV_WARN_OK "OK", target location is reachable
1- INV_WARN_SINGULAR Warning, target location is reachable, but location is in singularity
2- INV_WARN_UNREACH, failed, target location is unreachable
3- INV_WARN_CNFG, ERROR calulating inverse solution for current robot configuration
4- INV_WARN_NO_INVKIN, ERROR kinematics has no inverse kinematics defned
5- INV_WARN_SWE_EXCEED, Warning: inverse kinematics calculation successful, target location is reachable, but travel ranges are exceeded
-1- INV_WARN_ERROR, invalid handle

◆ erInvKinWorldTcp()

DLLAPI long ER_STDCALL erInvKinWorldTcp ( ER_HND  er_hnd,
DFRAME iTw 
)

Calculating the inverse kinematics transformation.
The iTw is the location of the tcp w.r.t. inertia (world).
Get the calculated robot joint data with erGetJoints().

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]iTwrobots tcp ('w' - wrist) w.r.t. inertia 'i'. DFRAME
Return values
0- INV_WARN_OK "OK", target location is reachable
1- INV_WARN_SINGULAR Warning, target location is reachable, but location is in singularity
2- INV_WARN_UNREACH, failed, target location is unreachable
3- INV_WARN_CNFG, ERROR calulating inverse solution for current robot configuration
4- INV_WARN_NO_INVKIN, ERROR kinematics has no inverse kinematics defned
5- INV_WARN_SWE_EXCEED, Warning: inverse kinematics calculation successful, target location is reachable, but travel ranges are exceeded
-1- INV_WARN_ERROR, invalid handle

◆ erInvKinWorldTip()

DLLAPI long ER_STDCALL erInvKinWorldTip ( ER_HND  er_hnd,
DFRAME iTt 
)

Calculating the inverse kinematics transformation.
The iTt is the location of the flange w.r.t. inertia (world).
Get the calculated robot joint data with erGetJoints().

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]iTtrobots flange ('t' - tip) w.r.t. inertia 'i'. DFRAME
Return values
0- INV_WARN_OK "OK", target location is reachable
1- INV_WARN_SINGULAR Warning, target location is reachable, but location is in singularity
2- INV_WARN_UNREACH, failed, target location is unreachable
3- INV_WARN_CNFG, ERROR calulating inverse solution for current robot configuration
4- INV_WARN_NO_INVKIN, ERROR kinematics has no inverse kinematics defned
5- INV_WARN_SWE_EXCEED, Warning: inverse kinematics calculation successful, target location is reachable, but travel ranges are exceeded
-1- INV_WARN_ERROR, invalid handle

◆ erk_AutoPath_SetCallback_CheckConstraints()

DLLAPI int ER_STDCALL erk_AutoPath_SetCallback_CheckConstraints ( BOOL(*)(int, void *)  ptr_CheckConstraints)

Defines a callback function to check constraints during AutoPath calculation
The callback function is called with two parameters
Parameter action in Callback_API_CheckConstraints() is a bitwise inclusive OR operator (|) of
AUTOPATH_SDK_CHK_CONSTRAINT_UNDEF, AUTOPATH_SDK_CHK_CONSTRAINT_START, AUTOPATH_SDK_CHK_CONSTRAINT_DEST, AUTOPATH_SDK_CHK_CONSTRAINT_COLLISION, AUTOPATH_SDK_CHK_CONSTRAINT_SWE, AUTOPATH_SDK_CHK_CONSTRAINT_CART_SPACE, AUTOPATH_SDK_CHK_CONSTRAINT_ISCFREE
Parameter vapcs in Callback_API_CheckConstraints() defines the autopath configuration space AutoPath_ConfigurationSpace
see example AutoPathInit()

// Example:
// Callback function
static BOOL Callback_API_CheckConstraints_apcs(int action, void*vapcs)
// Return
// TRUE - constraints
// FALSE - constraints fulfilled
{
BOOL do_chk=FALSE;
switch (action) {
case AUTOPATH_SDK_CHK_CONSTRAINT_START: // SetPoseStart()
case AUTOPATH_SDK_CHK_CONSTRAINT_DEST: // SetPoseEnd()
do_chk=TRUE;
break;
// target reached
break;
}
...
if (do_chk)
{
double* currentConfiguration = erk_autopath.GetConfigurationPose();
result = Check Constraints_in_HostApp(...)
}
...
return result; // true - violated, false - ok
}
...
AutoPath_ConfigurationSpace *papcs = new AutoPath_ConfigurationSpace;
...
erk_autopath.AutoPathInit(papcs);
...
// Set callback function pointer
erk_autopath.AutoPath_SetCallback_CheckConstraints(Callback_API_CheckConstraints_apcs);
...
// do autopath calculation ....
erk_autoPath.FindPath();
// get way points
...
// Reset callback function pointer
erk_autopath.AutoPath_SetCallback_CheckConstraints(NULL);
...
Parameters
[in]ptr_CheckConstraints(int) callback function pointer
Return values
0- Ok
1- Error

◆ erk_AutoPathAbortPlanning()

DLLAPI int ER_STDCALL erk_AutoPathAbortPlanning ( void  )

Abort path planning
use GetPlanningStatus()

Return values
0- AUTOPATH_SDK_OK
1- AUTOPATH_SDK_ERROR

◆ erk_AutoPathClearAllWayPoints()

DLLAPI int ER_STDCALL erk_AutoPathClearAllWayPoints ( void  )

Clear all way points.

Return values
0- AUTOPATH_SDK_OK
1- AUTOPATH_SDK_ERROR

◆ erk_AutoPathFindPath()

DLLAPI int ER_STDCALL erk_AutoPathFindPath ( void  )

Start motion planner, find a collision free path between start and end pose
In each step, the callback function "ptr_CheckConstraints" is called, to check constraints If the target is reached, the callback function is called with action parameter AUTOPATH_SDK_STATUS_MP_SUCCESS.

Return values
0- AUTOPATH_SDK_OK
1- AUTOPATH_SDK_ERROR

◆ erk_AutoPathFreeMem()

DLLAPI int ER_STDCALL erk_AutoPathFreeMem ( AutoPath_ConfigurationSpace apcs)

free memory of AutoPath_ConfigurationSpace data
see example AutoPathInit()

Parameters
[in]apcsautopath configuration space AutoPath_ConfigurationSpace
Return values
0- AUTOPATH_SDK_OK - OK
1- AUTOPATH_SDK_ERROR - Error, AutoPath initialization failed

◆ erk_AutoPathGetAxisConstraintsMax()

DLLAPI double* ER_STDCALL erk_AutoPathGetAxisConstraintsMax ( void  )

Get maximum axis constraints return pointer, size nConfig.

◆ erk_AutoPathGetAxisConstraintsMin()

DLLAPI double* ER_STDCALL erk_AutoPathGetAxisConstraintsMin ( void  )

Get minimum axis constraints return pointer, size nConfig.

◆ erk_AutoPathGetConfigurationPose()

DLLAPI double* ER_STDCALL erk_AutoPathGetConfigurationPose ( void  )

current configuration pose during FindPath Process return pointer, size nConfig

◆ erk_AutoPathGetEndPose()

DLLAPI double* ER_STDCALL erk_AutoPathGetEndPose ( void  )

Get End Pose return pointer, size nConfig.

◆ erk_AutoPathGetNumberOfWayPoints()

DLLAPI int ER_STDCALL erk_AutoPathGetNumberOfWayPoints ( void  )

Get number of calculated way points, including start and end pose
call this method after FindPath() succeeded.

Return values
numberof way points

◆ erk_AutoPathGetParameter()

DLLAPI int ER_STDCALL erk_AutoPathGetParameter ( int  ap_option)

◆ erk_AutoPathGetPlanningStatus()

DLLAPI int ER_STDCALL erk_AutoPathGetPlanningStatus ( void  )

Get path planning status
The planning status is one of
AUTOPATH_SDK_STATUS_MP_IDLE
AUTOPATH_SDK_STATUS_MP_RUNNING.

Return values
planningstatus

◆ erk_AutoPathGetResults()

DLLAPI int ER_STDCALL erk_AutoPathGetResults ( int  ap_result)

Get results Paramter ap_result is one of
AUTOPATH_SDK_RESULT_CHECKS
AUTOPATH_SDK_RESULT_SECONDS
AUTOPATH_SDK_RESULT_CPS
AUTOPATH_SDK_RESULT_CFREE
AUTOPATH_SDK_RESULT_COBSTACLE
AUTOPATH_SDK_RESULT_CDENSITY
AUTOPATH_SDK_RESULT_DSECONDS
AUTOPATH_SDK_RESULT_SEED_VALUE
AUTOPATH_SDK_RESULT_QUALITY_INDEX
AUTOPATH_SDK_RESULT_QUALITY_INDEX_STD_DEV.

// Example:
...
char *ap_result_s[] = {"?","Checks","Seconds","CpS","CFree","CObstacle","CDensity","dSeconds","?","?","?"};
{
int ap_result=i;
int ap_value = erk_autopath.GetResults(ap_result);
_info_line_msg(0," GetResults(%s) = %d",ap_result_s[ap_result],ap_value);
}
int seed_value = erk_autopath.GetResults(AUTOPATH_SDK_RESULT_SEED_VALUE); // Random starting seed value to influence behavior
int quality_index = erk_autopath.GetResults(AUTOPATH_SDK_RESULT_QUALITY_INDEX); // Quality Index based on calculated way points
int quality_index_std_dev = erk_autopath.GetResults(AUTOPATH_SDK_RESULT_QUALITY_INDEX_STD_DEV); // Quality Index Standard Deviation, based on calculated way points
_info_line_msg(0," Seed_Value = %d Thread_Exec %s",seed_value,thread_exec?"Yes":"No");
...
Parameters
[in]ap_result- autopath result
Return values
0- AUTOPATH_SDK_OK
1- AUTOPATH_SDK_ERROR

◆ erk_AutoPathGetStartPose()

DLLAPI double* ER_STDCALL erk_AutoPathGetStartPose ( void  )

Get Start Pose return pointer, size nConfig.

◆ erk_AutoPathGetWayPoint()

DLLAPI double* ER_STDCALL erk_AutoPathGetWayPoint ( int  idx)

Get way point.

Parameters
[in]idx[0.. number of way points-1]
Return values
pointer

◆ erk_AutoPathGetWayPointDof()

DLLAPI int ER_STDCALL erk_AutoPathGetWayPointDof ( void  )

Get dof of calculated way points.

Return values
dofof way points

◆ erk_AutoPathInit()

DLLAPI int ER_STDCALL erk_AutoPathInit ( AutoPath_ConfigurationSpace apcs)

Initialize AutoPath
Call this functions to setup the autopath configuration space
Parameter apcs defines the complete configuration for all used devices, such as
number of configurations up to AUTOPATH_SDK_KIN_DOFS, device handle for each configuration, device axis index, etc.
call AutoPathSetMem() first.

// Example:
int nConfig = 6;
papcs->initialized = 0;
papcs->nConfig = nConfig;
papcs->deviceHandle = NULL;
papcs->deviceAxisIdx = NULL;
papcs->AxisEnable = NULL;
papcs->AxisPriority = NULL;
papcs->AxisRotTrans = NULL;
papcs->AxisType = NULL;
papcs->ConstraintMin = NULL;
papcs->ConstraintMax = NULL;
papcs->SpeedWeight = NULL;
papcs->DistanceWeight = NULL;
papcs->UsrData = NULL;
...
erk_autopath.AutoPathSetMem(papcs); // allocate memory depending on nConfig
...
// set AutoPath_ConfigurationSpace data for each configuration
for (int i=0;i<papcs->nConfig;++i)
{
papcs->deviceHandle[i] = er_hnd[i];
papcs->deviceAxisIdx[i] = i;
papcs->AxisEnable[i] = 1;
papcs->AxisPriority[i] = 50;
papcs->AxisType[i] = AUTOPATH_SDK_AXIS_TYPE_ROBOT; // Robot
papcs->ConstraintMin[i] = ...;
papcs->ConstraintMax[i] = ...;
papcs->SpeedWeight[i] = 1;
papcs->DistanceWeight[i]= 1;
}
erk_autopath.AutoPathInit(papcs); // Initialize AutoPath
...
// Set callback function pointer
erk_autopath.AutoPath_SetCallback_CheckConstraints(Callback_API_CheckConstraints_apcs);
...
// define additional settings
...
// define start and destination
// -> SetPoseStart(), SetPoseEnd()
// do autopath calculation
// -> FindPath();
// get results
// -> GetNumberOfWayPoints(), GetWayPoint(), GetResults()
...
// Verify results, move along all waypoints
...
// Clear all WayPoints
// -> ClearAllWayPoints()
...
// Reset callback function pointer
erk_autopath.AutoPath_SetCallback_CheckConstraints(NULL);
...
// Terminate AutoPath
erk_autopath.AutoPathFreeMem(papcs); // free memory of AutoPath_ConfigurationSpace data
delete papcs;
papcs= NULL;
erk_autopath.AutoPathTerminate(papcs); // Terminate AutoPath
...
Parameters
[in]apcsautopath configuration space AutoPath_ConfigurationSpace
Return values
0- AUTOPATH_SDK_OK - OK
1- AUTOPATH_SDK_ERROR - Error, AutoPath initialization failed
2- AUTOPATH_SDK_INVALID_LICENSE - Error, AutoPath not licensed

◆ erk_AutoPathSetAccuracy()

DLLAPI int ER_STDCALL erk_AutoPathSetAccuracy ( UINT  accuracy)

Set accuracy.

Parameters
[in]accuracy[1..100]
Return values
0- AUTOPATH_SDK_OK
1- AUTOPATH_SDK_ERROR

◆ erk_AutoPathSetAxisConstraints()

DLLAPI int ER_STDCALL erk_AutoPathSetAxisConstraints ( int  axisBit = AUTOPATH_SDK_AXIS_BIT_DOF6,
int  setting = 0,
double  qConstraintMin = 0,
double  qConstraintMax = 0 
)

Set axis constraints
Parameter setting is a bitwise inclusive OR operator (|) of AUTOPATH_SDK_CONSTRAINT_RESET, AUTOPATH_SDK_CONSTRAINT_MIN, AUTOPATH_SDK_CONSTRAINT_MAX.

Parameters
[in]axisBit- a bitwise inclusive OR operator (|) of AUTOPATH_SDK_AXIS_BIT_1 ... AUTOPATH_SDK_AXIS_BIT_24
[in]setting
[in]qConstraintMin- size of nConfig
[in]qConstraintMax- size of nConfig
Return values
0- AUTOPATH_SDK_OK
1- AUTOPATH_SDK_ERROR

◆ erk_AutoPathSetAxisEnable()

DLLAPI int ER_STDCALL erk_AutoPathSetAxisEnable ( int  axisBit,
int  enable 
)

Set axis enable.

Return values
0- AUTOPATH_SDK_OK
1- AUTOPATH_SDK_ERROR

◆ erk_AutoPathSetAxisPriority()

DLLAPI int ER_STDCALL erk_AutoPathSetAxisPriority ( int  axisBit,
int  priority 
)

Set axis priority.

Parameters
[in]axisBit
[in]priority[1..50..100]
Return values
0- AUTOPATH_SDK_OK
1- AUTOPATH_SDK_ERROR

◆ erk_AutoPathSetMem()

DLLAPI int ER_STDCALL erk_AutoPathSetMem ( AutoPath_ConfigurationSpace apcs)

allocate memory for AutoPath_ConfigurationSpace data depending on nConfig
see example AutoPathInit()

Parameters
[in]apcsautopath configuration space AutoPath_ConfigurationSpace
Return values
0- AUTOPATH_SDK_OK - OK
1- AUTOPATH_SDK_ERROR - Error, AutoPath initialization failed

◆ erk_AutoPathSetParameter()

DLLAPI int ER_STDCALL erk_AutoPathSetParameter ( int  ap_option,
int  ap_value 
)

◆ erk_AutoPathSetPoseEnd()

DLLAPI int ER_STDCALL erk_AutoPathSetPoseEnd ( double *  pose_end)

Set end configuration
Remarks
This pose must be valid - collision free, based on callback function "ptr_CheckConstraints" to check constraints.

Parameters
[in]pose_endpointer to start pose, maximum size AUTOPATH_SDK_KIN_DOFS
Return values
0- AUTOPATH_SDK_OK
1- AUTOPATH_SDK_ERROR

◆ erk_AutoPathSetPoseStart()

DLLAPI int ER_STDCALL erk_AutoPathSetPoseStart ( double *  pose_start)

Set start configuration
Remarks
This pose must be valid - collision free, based on callback function "ptr_CheckConstraints" to check constraints.

Parameters
[in]pose_startpointer to start pose, maximum size AUTOPATH_SDK_KIN_DOFS
Return values
0- AUTOPATH_SDK_OK
1- AUTOPATH_SDK_ERROR

◆ erk_AutoPathTerminate()

DLLAPI int ER_STDCALL erk_AutoPathTerminate ( AutoPath_ConfigurationSpace apcs)

Terminate AutoPath
call AutoPathFreeMem() first, see example AutoPathInit()

Parameters
[in]apcsautopath configuration space AutoPath_ConfigurationSpace
Return values
0- AUTOPATH_SDK_OK - OK
1- AUTOPATH_SDK_ERROR - Error, AutoPath initialization failed

◆ erk_AutoPathVer()

DLLAPI char* ER_STDCALL erk_AutoPathVer ( void  )

AutoPath Version.

Return values
versionAutoPath version number

◆ erKernelAddLicenseFile()

DLLAPI long ER_STDCALL erKernelAddLicenseFile ( char *  license_file)

Set an additional location and name of license file.
Call this function before initializing the Kernel erKernelInitialize()
If license_file is not set, it is supposed that the license file resides in the current folder, see erKernelGetLicenseFile(), erKernelSetLicenseFile()

Parameters
[in]license_filestring, maximum lengths ER_HS_MAXSTR
Return values
0- OK
1- Error file not found or Kernal already initialized

◆ erKernelFree()

DLLAPI void ER_STDCALL erKernelFree ( void  )

Free all internal Kernel data.
Calling this function will delete all internal Kernel data
After calling this functions not any kernel functions is available
Even callback functions are not available.

◆ erKernelGetHardwareID()

DLLAPI long ER_STDCALL erKernelGetHardwareID ( char *  hw_id)

Supplies unique HardwareID or DongleID.

Parameters
[out]hw_idstring, maximum lengths ER_MAXSTR
Return values
0- OK
1- Error no Hardware ID or Dongle ID available

◆ erKernelGetLicense()

DLLAPI long ER_STDCALL erKernelGetLicense ( char *  hw_id)

Check license and supplies unique HardwareID or DongleID.

Parameters
[out]hw_idstring, maximum lengths ER_MAXSTR
Return values
0- Ok, valid license with valid Hardware- or Dongle ID
1- Invalid license, Hardware- or Dongle ID not availabe

◆ erKernelGetLicenseFile()

DLLAPI long ER_STDCALL erKernelGetLicenseFile ( char *  license_file)

Get location and name of license file.
If license_file is not set the string is empty, see erKernelSetLicenseFile(), erKernelAddLicenseFile()

Parameters
[out]license_filestring, maximum lengths ER_HS_MAXSTR
Return values
0- OK
1- Error file not found or not set

◆ erKernelGetLicensePriority()

DLLAPI long ER_STDCALL erKernelGetLicensePriority ( int *  license_priority)

Get license priority.
Parameter license_priority is one of ER_LICENSE_PRIORITY_LMNGR, ER_LICENSE_PRIORITY_LOCAL
If license_priority is not set, ER_LICENSE_PRIORITY_LMNGR is default setting, see erKernelSetLicensePriority()

Parameters
[out]license_prioritylicense priority
Return values
0- OK
1- Error, invalid license priority or Kernal already initialized

◆ erKernelGetOptions()

DLLAPI long ER_STDCALL erKernelGetOptions ( char *  opt)

Supplies option string containing all enabled options.

Parameters
[out]optOption string, maximum lengths ER_LS_MAXSTR
Return values
0- OK
1- Error NOT licensed

◆ erKernelGetOptionsDisabled()

DLLAPI long ER_STDCALL erKernelGetOptionsDisabled ( char *  nopt)

Supplies option string containing all disabled options.

Parameters
[out]noptOption string, maximum lengths ER_LS_MAXSTR
Return values
0- OK
1- Error NOT licensed

◆ erKernelGetVersion()

DLLAPI long ER_STDCALL erKernelGetVersion ( void  )

Returns the Kernels Version.

Return values
versionKernel version number

◆ erKernelInitialize()

DLLAPI long ER_STDCALL erKernelInitialize ( char *  HostApplicationPath,
char *  Sold_To_ID,
long  mode = 0 
)

Initializes the Kernel.
After calling this initial functions all other kernel functions are available.
Before calling this initial functions all callback functions should be defined and initialized, thus they can be used when calling this function.
The HostApplicationPath must contain the path where the host application is running. The maximum string lenght is ER_HS_MAXSTR
The Sold_To_ID contains an individual customer identifier, per default = NULL
The mode is not implemented yet, per default = 0.

// Example:
char HostPath[LS_MAXSTR]; // HostApplictaionPathPath
getcwd(HostPath,LS_MAXSTR); // get current workinbg directory
char *Sold_To_ID = NULL; // individual customer identifier
if(erKernelInitialize(HostPath,Sold_To_ID))
{
return 1; // failed
}
// success, continue
...
Parameters
[in]HostApplicationPathhost application path
[in]Sold_To_IDindividual customer identifier
[in]mode=0, tbd
Return values
0- OK
1- Error, cannot initialize kernel, no valid license for example

◆ erKernelSetLicenseFile()

DLLAPI long ER_STDCALL erKernelSetLicenseFile ( char *  license_file)

Set location and name of license file.
Call this function before initializing the Kernel erKernelInitialize()
If license_file is not set, it is supposed that the license file resides in the current folder, see erKernelGetLicenseFile(), erKernelAddLicenseFile()

Parameters
[in]license_filestring, maximum lengths ER_HS_MAXSTR
Return values
0- OK
1- Error file not found or Kernal already initialized

◆ erKernelSetLicensePriority()

DLLAPI long ER_STDCALL erKernelSetLicensePriority ( int  license_priority)

Set license priority.
Call this function before initializing the Kernel erKernelInitialize()
Parameter license_priority is one of ER_LICENSE_PRIORITY_LMNGR, ER_LICENSE_PRIORITY_LOCAL
If license_priority is not set, ER_LICENSE_PRIORITY_LMNGR is default setting, see erKernelGetLicensePriority()

Parameters
[in]license_prioritylicense priority
Return values
0- OK
1- Error, invalid license priority or Kernal already initialized

◆ erLoadKin()

DLLAPI long ER_STDCALL erLoadKin ( ER_HND  er_hnd,
char *  fln_rob 
)

Load an EASY-ROB rob file (*.rob) containing a kinematics.
Loading a robfile will call the callback function TerLoadGeometryProc() each time when a geometry-file-name is detected in the robfile.
In this case the host application has to read or import the geometry and store it inside their own structure.
Remarks
Get a valid unique kinematics handle with erInitKin()
In case the robfile cannot be loaded, the kinematics handle is not valid anymore. Get a new kinematics handle with erInitKin()

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]fln_robrobot file name (*.rob)
Return values
0- OK
1- Error, cannot load file

◆ erLoadTool()

DLLAPI long ER_STDCALL erLoadTool ( ER_HND  er_hnd,
char *  fln_tool 
)

Load an EASY-ROB tool file (*.tol) containing tool (tcp) data.
Loading a toolfile will call the callback function TerLoadGeometryProc() each time when a geometry-file-name is detected in the toolfile.
.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]fln_tooltool file name (*.tol)
Return values
0- OK
1- Error, cannot load file

◆ erMath_AngleBetween()

DLLAPI long ER_STDCALL erMath_AngleBetween ( DFRAME Ts,
DFRAME Te,
double *  angle,
double *  k = NULL 
)

Calculates the angle and the equivalent angle axis between two homogeneous 4x4 transformation matrices.
Rotation from start frame Ts into end frame Te by angle of rotation angle about the equivalent angle axis k
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[in]Tsstart frame DFRAME
[in]Teend frame DFRAME
[out]angleangle of rotation [rad]
[out]knormalized equivalent angle axis
Return values
0- OK
1- Error, invalid rotation idx, kernel not initialized

◆ erMath_CircCenterPoint()

DLLAPI long ER_STDCALL erMath_CircCenterPoint ( double *  ps,
double *  pv,
double *  pe,
DFRAME pTc,
double *  radius,
double *  phi,
double *  phi_via = NULL 
)

Circle calculation from three points ps over pv to pe.
Calculates center of circle, radius and angle.

Parameters
[in]ps1st start point, ER_DIM
[in]pv2nd via point, ER_DIM
[in]pe3rd end point, ER_DIM
[out]pTccenter of circle, DFRAME
[out]radiusof circle
[out]phiangle of complete circle segment from ps over pv to pe
[out]phi_viaangle of circle segment from ps to pv
Return values
0- OK
1- Error, cannot calculate circle, maybe ps, pv and pe are on a line

◆ erMath_CpyVec()

DLLAPI double* ER_STDCALL erMath_CpyVec ( double *  dst,
double *  src,
int  n 
)

Cpy vector dst = src.

Parameters
[out]dst- destination
[in]src- source
[in]n- number of values to cpy
Return values
pointerto double of dst

◆ erMath_DistBetween()

DLLAPI long ER_STDCALL erMath_DistBetween ( DFRAME Ts,
DFRAME Te,
double *  dist,
double *  dv = NULL 
)

Calculates the distance and direction between two homogeneous 4x4 transformation matrices.
Translation from start frame Ts into end frame Te by the distance dist in direction vd
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[in]Tsstart frame DFRAME
[in]Teend frame DFRAME
[out]distdistance
[out]dvnormalized direction
Return values
0- OK
1- Error, invalid rotation idx, kernel not initialized

◆ erMath_Frame_Ident()

DLLAPI long ER_STDCALL erMath_Frame_Ident ( DFRAME T)

Set the homogeneous 4x4 transformation matrix T to identity.
T = Ident
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Tframe identity DFRAME
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_Frame_Rot()

DLLAPI long ER_STDCALL erMath_Frame_Rot ( DFRAME T,
double  q,
long  rotation_idx = ER_ROT_IDENT 
)

Set orientation of homogeneous 4x4 transformation matrix.
T = f(q,rotation_idx)
The rotation index rotation_idx, is one of
ER_ROT_IDENT=default, ER_ROT_X, ER_ROT_Y or ER_ROT_Z
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Tframe DFRAME
[in]qrotation angle [rad]
[in]rotation_idxrotation index
Return values
0- OK
1- Error, invalid rotation idx, kernel not initialized

◆ erMath_Frame_Trans()

DLLAPI long ER_STDCALL erMath_Frame_Trans ( DFRAME T,
double  x,
double  y,
double  z 
)

Set position of homogeneous 4x4 transformation matrix.
T.p[] = [x,y,z]
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Tframe DFRAME
[in]xX position
[in]yY position
[in]zZ position
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_FrameToVecIdx()

DLLAPI long ER_STDCALL erMath_FrameToVecIdx ( DFRAME T,
double *  vec,
long  rotation_idx = ER_ROT_XYZ 
)

Converts a frame into an euler vector or quaternion. Frame T is converted into a vector vec
A frame DFRAME is a homogeneous 4x4 transformation matrix.
Depending on the rotation index rotation_idx, which is one of
ER_ROT_XYZ = RotX * RotY' * RotZ'' default,
ER_ROT_XYZ, ER_ROT_ZYX, ER_ROT_YXZ, ER_ROT_ZYZ,ER_ROT_XYX, ER_ROT_RPY, ER_ROT_QUAT, ER_ROT_CA, ER_ROT_ZYpZ,
ER_ROT_Y9XZ, ER_ROT_Z9XY, ER_ROT_Z9XZ, ER_ROT_Z9YX, ER_ROT_IJK, ER_ROT_ANGLE_1
See also erMath_VecToFrameIdx()

Parameters
[in]Thomegeneous matrix DFRAME
[out]vecvector (euler, quaternion in [rad]), max size is ER_DOF6 or ER_DOF_QUAT for ER_ROT_QUAT
[in]rotation_idxrotation index
Return values
0- Error, invalid rotation_idx, no results calculated in vector vec
>=5- number of valid calculated values in vector vec, depending on the rotation index rotation_idx

◆ erMath_invR()

DLLAPI long ER_STDCALL erMath_invR ( DFRAME Ro,
DFRAME Ri 
)

Builds the inverse of the 3x3 orientation matrix from a homogeneous 4x4 transformation matrix T.
Ro = inv(Ri) = transpose(Ri) = Ri', with Ti = ( Ri , pi )
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Roinverse of Ri DFRAME
[in]Riframe DFRAME
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_invT()

DLLAPI long ER_STDCALL erMath_invT ( DFRAME To,
DFRAME Ti 
)

Builds the inverse of a homogeneous 4x4 transformation matrix T.
To = inv(Ti) = ( Ri' , -Ri'*pi ), Ri' is transpose of Ri
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Toinverse of Ti DFRAME
[in]Tiframe DFRAME
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_invR_pos()

DLLAPI long ER_STDCALL erMath_mul_invR_pos ( double *  po,
DFRAME R,
double *  pi 
)

Multiplication of a 3x1 position with the transpose of a 3x3 orientation of a homogeneous 4x4 transformation matrices.
po = R' * pi, pi is vector of size ER_DIM
Remarks
R' = inv(R) is the transpose of R, see erMath_invR()
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]poposition product of inv(R) and pi ER_DIM
[in]R3x3 orientation frame DFRAME
[in]piposition ER_DIM
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_invT_invT()

DLLAPI long ER_STDCALL erMath_mul_invT_invT ( DFRAME To,
DFRAME Ti1,
DFRAME Ti2 
)

Multiplication of two homogeneous 4x4 transformation matrices.
To = inv(Ti1) * inv(Ti2)
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Toproduct of Ti1 and inv(Ti2) DFRAME
[in]Ti11st frame DFRAME
[in]Ti22nd frame DFRAME
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_invT_invT_invT()

DLLAPI long ER_STDCALL erMath_mul_invT_invT_invT ( DFRAME To,
DFRAME Ti1,
DFRAME Ti2,
DFRAME Ti3 
)

Tripple multiplication of homogeneous 4x4 transformation matrices.
To = inv(Ti1) * inv(Ti2) * inv(Ti3)
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Toproduct of inv(Ti1) and inv(Ti2) and inv(Ti3) DFRAME
[in]Ti11st frame DFRAME
[in]Ti22nd frame DFRAME
[in]Ti33rd frame DFRAME
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_invT_invT_T()

DLLAPI long ER_STDCALL erMath_mul_invT_invT_T ( DFRAME To,
DFRAME Ti1,
DFRAME Ti2,
DFRAME Ti3 
)

Tripple multiplication of homogeneous 4x4 transformation matrices.
To = inv(Ti1) * inv(Ti2) * Ti3
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Toproduct of inv(Ti1) and inv(Ti2) and Ti3 DFRAME
[in]Ti11st frame DFRAME
[in]Ti22nd frame DFRAME
[in]Ti33rd frame DFRAME
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_invT_pos()

DLLAPI long ER_STDCALL erMath_mul_invT_pos ( double *  po,
DFRAME T,
double *  pi 
)

Multiplication of a 3x1 position with the inverse of a homogeneous 4x4 transformation matrices.
po = inv(T) * pi, pi is vector of size ER_DIM
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]poposition product of inv(T) and pi ER_DIM
[in]Tframe DFRAME
[in]piposition ER_DIM
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_invT_T()

DLLAPI long ER_STDCALL erMath_mul_invT_T ( DFRAME To,
DFRAME Ti1,
DFRAME Ti2 
)

Multiplication of two homogeneous 4x4 transformation matrices.
To = inv(Ti1) * Ti2
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Toproduct of Ti1 and inv(Ti2) DFRAME
[in]Ti11st frame DFRAME
[in]Ti22nd frame DFRAME
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_invT_T_invT()

DLLAPI long ER_STDCALL erMath_mul_invT_T_invT ( DFRAME To,
DFRAME Ti1,
DFRAME Ti2,
DFRAME Ti3 
)

Tripple multiplication of homogeneous 4x4 transformation matrices.
To = inv(Ti1) * Ti2 * inv(Ti3)
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Toproduct of inv(Ti1) and Ti2 and inv(Ti3) DFRAME
[in]Ti11st frame DFRAME
[in]Ti22nd frame DFRAME
[in]Ti33rd frame DFRAME
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_invT_T_T()

DLLAPI long ER_STDCALL erMath_mul_invT_T_T ( DFRAME To,
DFRAME Ti1,
DFRAME Ti2,
DFRAME Ti3 
)

Tripple multiplication of homogeneous 4x4 transformation matrices.
To = inv(Ti1) * Ti2 * Ti3
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Toproduct of inv(Ti1) and Ti2 and Ti3 DFRAME
[in]Ti11st frame DFRAME
[in]Ti22nd frame DFRAME
[in]Ti33rd frame DFRAME
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_R_pos()

DLLAPI long ER_STDCALL erMath_mul_R_pos ( double *  po,
DFRAME R,
double *  pi 
)

Multiplication of a 3x1 position with the 3x3 orientation of a homogeneous 4x4 transformation matrices.
po = R * pi, pi is vector of size ER_DIM
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]poposition product of R and pi ER_DIM
[in]R3x3 orientation frame DFRAME
[in]piposition ER_DIM
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_R_R()

DLLAPI long ER_STDCALL erMath_mul_R_R ( DFRAME Ro,
DFRAME Ri1,
DFRAME Ri2 
)

Orientation multiplication of two homogeneous 4x4 transformation matrices.
Ro = Ri1 * Ri2
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Roproduct of Ri1 and Ri2 DFRAME
[in]Ri11st frame orientation DFRAME
[in]Ri22nd frame orientation DFRAME
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_T_invT()

DLLAPI long ER_STDCALL erMath_mul_T_invT ( DFRAME To,
DFRAME Ti1,
DFRAME Ti2 
)

Multiplication of two homogeneous 4x4 transformation matrices.
To = Ti1 * inv(Ti2)
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Toproduct of Ti1 and inv(Ti2) DFRAME
[in]Ti11st frame DFRAME
[in]Ti22nd frame DFRAME
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_T_invT_invT()

DLLAPI long ER_STDCALL erMath_mul_T_invT_invT ( DFRAME To,
DFRAME Ti1,
DFRAME Ti2,
DFRAME Ti3 
)

Tripple multiplication of homogeneous 4x4 transformation matrices.
To = Ti1 * inv(Ti2) * inv(Ti3)
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Toproduct of Ti1 and inv(Ti2) and inv(Ti3) DFRAME
[in]Ti11st frame DFRAME
[in]Ti22nd frame DFRAME
[in]Ti33rd frame DFRAME
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_T_invT_T()

DLLAPI long ER_STDCALL erMath_mul_T_invT_T ( DFRAME To,
DFRAME Ti1,
DFRAME Ti2,
DFRAME Ti3 
)

Tripple multiplication of homogeneous 4x4 transformation matrices.
To = Ti1 * inv(Ti2) * Ti3
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Toproduct of Ti1 and inv(Ti2) and Ti3 DFRAME
[in]Ti11st frame DFRAME
[in]Ti22nd frame DFRAME
[in]Ti33rd frame DFRAME
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_T_pos()

DLLAPI long ER_STDCALL erMath_mul_T_pos ( double *  po,
DFRAME T,
double *  pi 
)

Multiplication of a 3x1 position with a homogeneous 4x4 transformation matrices.
po = T * pi, pi is vector of size ER_DIM
po = R*pi + p, with T = ( R , p) A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]poposition product of T and pi ER_DIM
[in]Tframe DFRAME
[in]piposition ER_DIM
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_T_T()

DLLAPI long ER_STDCALL erMath_mul_T_T ( DFRAME To,
DFRAME Ti1,
DFRAME Ti2 
)

Multiplication of two homogeneous 4x4 transformation matrices.
To = Ti1 * Ti2
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Toproduct of Ti1 and Ti2 DFRAME
[in]Ti11st frame DFRAME
[in]Ti22nd frame DFRAME
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_T_T_invT()

DLLAPI long ER_STDCALL erMath_mul_T_T_invT ( DFRAME To,
DFRAME Ti1,
DFRAME Ti2,
DFRAME Ti3 
)

Tripple multiplication of homogeneous 4x4 transformation matrices.
To = Ti1 * Ti2 * inv(Ti3)
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Toproduct of Ti1 and Ti2 and inv(Ti3) DFRAME
[in]Ti11st frame DFRAME
[in]Ti22nd frame DFRAME
[in]Ti33rd frame DFRAME
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_T_T_T()

DLLAPI long ER_STDCALL erMath_mul_T_T_T ( DFRAME To,
DFRAME Ti1,
DFRAME Ti2,
DFRAME Ti3 
)

Tripple multiplication of homogeneous 4x4 transformation matrices.
To = Ti1 * Ti2 * Ti3
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Toproduct of Ti1 and Ti2 and Ti3 DFRAME
[in]Ti11st frame DFRAME
[in]Ti22nd frame DFRAME
[in]Ti33rd frame DFRAME
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_PxyzRxyzToFrame()

DLLAPI long ER_STDCALL erMath_PxyzRxyzToFrame ( double  x,
double  y,
double  z,
double  Rx,
double  Ry,
double  Rz,
DFRAME T 
)

Converts an euler represented location with rotation index ER_ROT_XYZ into a frame.
Location x, y, z, Rx, Ry, Rz are converted into a frame T
A frame DFRAME is a homogeneous 4x4 transformation matrix.
See also erMath_VecToFrameIdx(), erMath_FrameToVecIdx()

Parameters
[in]xX position
[in]yY position
[in]zZ position
[in]Rxrotation angle about X axis in [rad]
[in]Ryrotation angle about Y axis in [rad]
[in]Rzrotation angle about Z axis in [rad]
[out]Thomegeneous matrix DFRAME
Return values
0- OK
1- Error, invalid rotation idx, kernel not initialized

◆ erMath_ResetVec()

DLLAPI double* ER_STDCALL erMath_ResetVec ( double *  dst,
int  n 
)

Reset vector dst = 0.

Parameters
[out]dst- destination
[in]n- number of values to reset to 0
Return values
pointerto double of dst

◆ erMath_SetFramePosOri()

DLLAPI DFRAME* ER_STDCALL erMath_SetFramePosOri ( DFRAME To,
double  x,
double  y,
double  z,
double  Rx,
double  Ry,
double  Rz 
)

Cpy and convert a target location (position+orientation) to a DFRAME
position x,y,z in [mm] converted to [m] by ER_mm2m
orientation Rx,Ry,Rz in [deg] converted to [rad] by ER_RAD
.

Parameters
[in,out]To- DFRAME
[in]x- x position
[in]y- y position
[in]z- z position
[in]Rx- x rotation
[in]Ry- y rotation
[in]Rz- z rotation
Return values
pointerto DFRAME of To

◆ erMath_SetVec6()

DLLAPI double* ER_STDCALL erMath_SetVec6 ( double *  vec,
double  q1,
double  q2,
double  q3,
double  q4,
double  q5,
double  q6 
)

Cpy six values to a vector.

Parameters
[in,out]vec- [q1,q2,q3, q4,q5,q6]
[in]q1- 1st value
[in]q2- 2nd value
[in]q3- 3rd value
[in]q4- 4th value
[in]q5- 5th value
[in]q6- 6th value
Return values
pointerto double of vec

◆ erMath_SetVec6PosOri()

DLLAPI double* ER_STDCALL erMath_SetVec6PosOri ( double *  vec,
double  x,
double  y,
double  z,
double  Rx,
double  Ry,
double  Rz 
)

Cpy and convert a target location (position+orientation) to a vector
position x,y,z in [mm] converted to [m] by ER_mm2m
orientation Rx,Ry,Rz in [deg] converted to [rad] by ER_RAD
.

Parameters
[in,out]vec- [x,y,z, Rx,Ry,Rz]
[in]x- x position
[in]y- y position
[in]z- z position
[in]Rx- x rotation
[in]Ry- y rotation
[in]Rz- z rotation
Return values
pointerto double of vec

◆ erMath_SetVec_n()

DLLAPI double* ER_STDCALL erMath_SetVec_n ( double *  vec,
int  n,
double  q1,
double  q2,
double  q3,
double  q4,
double  q5,
double  q6 
)

Cpy n values to a vector.

Parameters
[in,out]vec- [q1,q2,q3, q4,q5,q6]
[in]n- number of values to cpy, maximum is 6
[in]q1- 1st value
[in]q2- 2nd value
[in]q3- 3rd value
[in]q4- 4th value
[in]q5- 5th value
[in]q6- 6th value
Return values
pointerto double of vec

◆ erMath_VecToFrameIdx()

DLLAPI long ER_STDCALL erMath_VecToFrameIdx ( double *  vec,
DFRAME T,
long  rotation_idx = ER_ROT_XYZ 
)

Converts an euler vector or quaternion into a frame. Vector vec is converted into a frame T
A frame DFRAME is a homogeneous 4x4 transformation matrix.
Depending on the rotation index rotation_idx, which is one of
ER_ROT_XYZ = RotX * RotY' * RotZ'' default,
ER_ROT_XYZ, ER_ROT_ZYX, ER_ROT_YXZ, ER_ROT_ZYZ,ER_ROT_XYX, ER_ROT_RPY, ER_ROT_QUAT, ER_ROT_CA, ER_ROT_ZYpZ,
ER_ROT_Y9XZ, ER_ROT_Z9XY, ER_ROT_Z9XZ, ER_ROT_Z9YX, ER_ROT_IJK, ER_ROT_ANGLE_1
See also erMath_FrameToVecIdx()

Parameters
[in]vecvector (euler, quaternion in [rad]), max size is ER_DOF6 or ER_DOF_QUAT for ER_ROT_QUAT
[out]Thomegeneous matrix DFRAME
[in]rotation_idxrotation index
Return values
0- OK
1- Error, invalid rotation idx, kernel not initialized

◆ erRESET()

DLLAPI long ER_STDCALL erRESET ( ER_HND  er_hnd)

Resets an instance of a robot to an initial state.
Opcode 102, Chapter 3.4.1, Page 3-29
Settings are.

  • Set kinematics to its current joint location
  • Set kinematics to its current tcp location
  • IPO_MODE_BASE (external TCP disabled)
  • $BASE (wobj) equals to robot base frame
  • Interpolation time = 50ms
  • ER_TARGET_TYPE_ABS
  • ER_MOTION_FILTER_GEO
  • ER_AUTOACCEL_MODE_OFF
  • motion type ER_JOINT (ER_PTP)
  • Orientation interpolation mode = one angle (QUATERNION) for motion type ER_LIN, ER_CIRC
  • AccSet 100%
  • Reset Tracking Windows
  • Reset external axis data
  • Reset group synchronization data
    Parameters
    [in]er_hndunique kinematics handle ER_HND
    Return values
    0- OK
    1- Error, invalid handle

◆ erREVERSE_MOTION()

DLLAPI long ER_STDCALL erREVERSE_MOTION ( ER_HND  er_hnd,
double  distance 
)

Instructs to do a reverse motion.
Opcode 130, Chapter 3.4.4, Page 3-70
The robot moves backwards along the same path as it used to get to the current position. After calling this function, erGET_NEXT_STEP() should be called repeatedly in order to get the reverse motion steps.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]distanceSpecifies the length of the reverse motion in mm (i.e. how far the robot will move)
Return values
0- OK
1- Error
-1- not supported
-28- the specified distance is out of range

◆ erSELECT_CIRCULAR_ORIENTATION_INTERPOLATION_MODE()

DLLAPI long ER_STDCALL erSELECT_CIRCULAR_ORIENTATION_INTERPOLATION_MODE ( ER_HND  er_hnd,
long  circ_orientation_interpolation_mode 
)

Selects the circular orientation interpolation mode.
The parameter circ_orientation_interpolation_mode specifies how the orientation is interpolated during a circle motion and can be one of the following values.
0: ER_CIRC_ORI_INTERPOLATION_START_END, 1: ER_CIRC_ORI_INTERPOLATION_START_VIA_END, 2: ER_CIRC_ORI_INTERPOLATION_START_VIAORI_END
3: ER_CIRC_ORI_INTERPOLATION_TANGENTIAL, 4: ER_CIRC_ORI_INTERPOLATION_FIX.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]circ_orientation_interpolation_modecircular orientation interpolation mode
Return values
0- OK
1- Error

◆ erSELECT_DOMINANT_INTERPOLATION()

DLLAPI long ER_STDCALL erSELECT_DOMINANT_INTERPOLATION ( ER_HND  er_hnd,
long  dominant_int_type,
long  dominant_int_param = 0 
)

Sets the interplation space defining the movement.
Opcode 124, Chapter 3.4.4, Page 3-66
The parameter dominant_int_type specifies the dominant interpolation type and can be one of the following values.
ER_DOMINANT_INTERPOLATION_POS, ER_DOMINANT_INTERPOLATION_ORI, ER_DOMINANT_INTERPOLATION_AXIS, ER_DOMINANT_INTERPOLATION_AUTO
The parameter dominant_int_param ( not supported) specifies an extra parameter for certain interpolation types and can be one of the following values.
2: specifies which orientation component is master.
3: specifies which axis is master.
If dominant_int_param is 0 then the controller will select an axis.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]dominant_int_typedominant interpolation type
[in]dominant_int_param=0, not supported
Return values
0- OK
1- Error
-20- The specified dominant interpolation space is not supported

◆ erSELECT_FLYBY_CRITERIA()

DLLAPI long ER_STDCALL erSELECT_FLYBY_CRITERIA ( ER_HND  er_hnd,
long  param_number 
)

Selects a flyby criterion (parameter).
Opcode 142, Chapter 3.4.6, Page 3-87
Function not supported

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]param_numberspecifies which parameter to select
Return values
0- OK
1- Error, invalid handle
-1- not supported

◆ erSELECT_FLYBY_MODE()

DLLAPI long ER_STDCALL erSELECT_FLYBY_MODE ( ER_HND  er_hnd,
long  flyby_on 
)

Defines rounding / flyby condition.
Opcode 140, Chapter 3.4.6, Page 3-85
Per default Flyby is disabled
In case of flyby, the robot moves through a CP target with programmed speeds and will not decelerate. Disbable flyby, to reach the target with zero speed (fine position).

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]flyby_on0=disabled, 1=enabled
Return values
0- OK
1- Error

◆ erSELECT_MOTION_TYPE()

DLLAPI long ER_STDCALL erSELECT_MOTION_TYPE ( ER_HND  er_hnd,
long  motion_type 
)

Selects the motion type.
Opcode 120, Chapter 3.4.4, Page 3-58
The motion_type can be one of the following values
ER_JOINT = ER_PTP = 1, ER_LIN = 2, ER_SLEW = 3, ER_CIRC = 4.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]motion_typemotion type
Return values
0- OK
1- Error, invalid handle or not licensed option
-17- The specified motion type is not supported

◆ erSELECT_ORIENTATION_INTERPOLATION_MODE()

DLLAPI long ER_STDCALL erSELECT_ORIENTATION_INTERPOLATION_MODE ( ER_HND  er_hnd,
long  interpolation_mode,
long  ori_const 
)

Set orientation interpolation mode.
Opcode 123, Chapter 3.4.4, Page 3-63
The interpolation_mode is per default =1 one angle (QUATERNION)
The ori_const is 0: Orientation is variant or 1: Orientation is constant.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]interpolation_mode=1 one angle (QUATERNION), =2 two angle (QUATERNION), =3 three angle (VARIABLE)
[in]ori_constvariant or constant orientation
Return values
0- OK
1- Error

◆ erSELECT_POINT_ACCURACY()

DLLAPI long ER_STDCALL erSELECT_POINT_ACCURACY ( ER_HND  er_hnd,
long  accuracy_type 
)

Selects a criterion for when a target is reached.
Opcode 144, Chapter 3.4.6, Page 3-89
Function not supported

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]accuracy_typespecifies type of point accuracy to select
Return values
0- OK
1- Error, invalid handle
-1- not supported

◆ erSELECT_TARGET_TYPE()

DLLAPI long ER_STDCALL erSELECT_TARGET_TYPE ( ER_HND  er_hnd,
long  target_type 
)

selects one of different types for the specification of targets.
Opcode 121, Chapter 3.4.4, Page 3-59
The target_type can be one of the following values
ER_TARGET_TYPE_ABS = 0 absolute w.r.t. object frame
ER_TARGET_TYPE_ABSJOINT = 9 single axis motion

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]target_typetarget type
Return values
0- OK
1- Error, invalid handle
-18- Specified target_type is not supported

◆ erSELECT_TRACKING()

DLLAPI long ER_STDCALL erSELECT_TRACKING ( ER_HND  er_hnd,
long  conveyor_flags 
)

Selects the Tracking On or Off in the Kernel.
Opcode 146, Chapter 3.4.7, Page 3-93
Function not supported
In conveyor_flags, each of the 32 bits specifies if the corresponding conveyor is on or off:
Bit on (1): Conveyor on, Bit off (0): Conveyor off.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]conveyor_flags
Return values
0- OK
1- Error, invalid handle
-1- not supported

◆ erSELECT_TRAJECTORY_MODE()

DLLAPI long ER_STDCALL erSELECT_TRAJECTORY_MODE ( ER_HND  er_hnd,
long  trajectory_on 
)

Selects on or off for the trajectory mode.
Opcode 122, Chapter 3.4.4, Page 3-62
The trajectory_on can be one of the following values
0: OFF or 1: ON.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]trajectory_ontrajectory enbaled or disabled
Return values
0- OK
1- Error, invalid handle

◆ erSET_ADVANCE_MOTION()

DLLAPI long ER_STDCALL erSET_ADVANCE_MOTION ( ER_HND  er_hnd,
long  Number_of_motion 
)

Defines the number of motions, the motion planner may run in advance of the interpolator (look_ahead).
Opcode 127, Chapter 3.4.4, Page 3-67.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]Number_of_motion
Return values
0- OK
1- Error

◆ erSET_CARTESIAN_ORIENTATION_ACCELERATION()

DLLAPI long ER_STDCALL erSET_CARTESIAN_ORIENTATION_ACCELERATION ( ER_HND  er_hnd,
long  rotation_no,
double  accel_ori_value,
long  accel_type 
)

Sets acceleration for the orientation during cartesian motion [m/sec^2].
Opcode 138, Chapter 3.4.5, Page 3-79.
The rotation_no should be 1.
The accel_type specifies the type of acceleration and can be one of the following values.
1: Acceleration, 2: Deceleration, 3: Acceleration and deceleration.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]rotation_noNumber of the rotation axis
[in]accel_ori_valueAcceleration for orientation [rad/^2]
[in]accel_typeType of acceleration.
Return values
0- OK
1- Error

◆ erSET_CARTESIAN_ORIENTATION_SPEED()

DLLAPI long ER_STDCALL erSET_CARTESIAN_ORIENTATION_SPEED ( ER_HND  er_hnd,
long  rotation_no,
double  speed_ori_value 
)

Sets the speed for the orientation during Cartesian motion.
Opcode 134, Chapter 3.4.5, Page 3-76.
The rotation_no should be 1.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]rotation_noNumber of the rotation axis
[in]speed_ori_valueCartesian orientation speed in [rad/sec]
Return values
0- OK
1- Error

◆ erSET_CARTESIAN_POSITION_ACCELERATION()

DLLAPI long ER_STDCALL erSET_CARTESIAN_POSITION_ACCELERATION ( ER_HND  er_hnd,
double  accel_value,
long  accel_type 
)

Sets acceleration for cartesian motion [m/sec^2].
Opcode 137, Chapter 3.4.5, Page 3-78.
The accel_type specifies the type of acceleration and can be one of the following values.
1: Acceleration, 2: Deceleration, 3: Acceleration and deceleration.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]accel_valueAcceleration [m/^2]
[in]accel_typeType of acceleration.
Return values
0- OK
1- Error

◆ erSET_CARTESIAN_POSITION_SPEED()

DLLAPI long ER_STDCALL erSET_CARTESIAN_POSITION_SPEED ( ER_HND  er_hnd,
double  speed_value 
)

Sets the speed for Cartesian motion.
Opcode 133, Chapter 3.4.5, Page 3-75.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]speed_valueCartesian speed in [m/s]
Return values
0- OK
1- Error

◆ erSET_CONFIGURATION_CONTROL()

DLLAPI long ER_STDCALL erSET_CONFIGURATION_CONTROL ( ER_HND  er_hnd,
char *  param_id,
char *  param_contents 
)

Allows the setting of controller-specific data for the control of robot configurations.
Opcode 161, Chapter 3.4.4, Page 3-72
Function not supported
Use function erSetConfig(), erGetConfig() to change the robots configuration.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]param_ididentifier of the parameter to set
[in]param_contentscontents of the parameter to set
Return values
0- OK
1- Error
-1- not supported

◆ erSET_CONVEYOR_POSITION()

DLLAPI long ER_STDCALL erSET_CONVEYOR_POSITION ( ER_HND  er_hnd,
long  input_format,
long  conveyor_flags,
double  conveyor_pos 
)

Sends the conveyor position to the Kernel.
Opcode 147, Chapter 3.4.7, Page 3-94
Function not supported
The input_format specifies the format of the input to this function. Can be one of the following values:
1: Joint encoder, 2: Joint angle/distance
In conveyor_flags, each of the 32 bits specifies if the corresponding conveyor is on or off:
Bit on (1): Conveyor on, Bit off (0): Conveyor off.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]input_formatinput format
[in]conveyor_flagsspecifies which of the 32 conveyor positions are valid
[in]conveyor_posspecifies the position values of up to 32 conveyors
Return values
0- OK
1- Error, invalid handle
-1- not supported

◆ erSET_FLYBY_CRITERIA_PARAMETER()

DLLAPI long ER_STDCALL erSET_FLYBY_CRITERIA_PARAMETER ( ER_HND  er_hnd,
long  param_number,
long  joint_nr,
double  param_value 
)

Sets the value of a flyby parameter.
Opcode 141, Chapter 3.4.6, Page 3-86
Function not supported

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]param_numberspecifies which parameter to set
[in]joint_nrspecifies for which joint the parameter is set. It is zero if it is valid for the whole robot
[in]param_valuespecifies the value of the parameter
Return values
0- OK
1- Error, invalid handle
-1- not supported

◆ erSET_INITIAL_POSITION()

DLLAPI long ER_STDCALL erSET_INITIAL_POSITION ( ER_HND  er_hnd,
INITIAL_POSITION_DATA p_initial_position_data 
)

Sets the robot model to a position according to the input data
Opcode 116, Chapter 3.4.3, Page 3-50
Remarks
After initialization of the Kernel and after jogging the robot in the Host-Application, this function must be called at least once, before the erSET NEXT TARGET() function can be called.

Parameters
[in]er_hndunique kinematics handle ER_HND
[out]p_initial_position_datainitial position INITIAL_POSITION_DATA
Return values
0- OK
1- Error

◆ erSET_INTERPOLATION_TIME()

DLLAPI long ER_STDCALL erSET_INTERPOLATION_TIME ( ER_HND  er_hnd,
double  InterpolationTime 
)

Sets the interpolation time.
Opcode 119, Chapter 3.4.3, Page 3-56 Set the interpolation time step. This has an effect when calling erGET_NEXT_STEP()
Per default the interpolation time is set to 50ms.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]InterpolationTimeInterpolation time [ms]
Return values
0- OK
1- Error

◆ erSET_JOINT_ACCELERATIONS()

DLLAPI long ER_STDCALL erSET_JOINT_ACCELERATIONS ( ER_HND  er_hnd,
long  all_joint_flags,
long  joint_flags,
double  accel_percent,
long  accel_type 
)

Sets the joint accelerations expressed as percentage of the maximal joint acceleration.
Opcode 135, Chapter 3.4.5, Page 3-77.
Remarks
If all_joint_flags is 1, the value in accel_percent is in [rad/s^2] for rotational joint type and in [m/s^2] for prismatic joint type.
It is recommended to set all_joint_flags =0 and use joint_flags, where accel_percent is a percentage value.
The maximum joint accelerations can be changed with erSetAqMax() and erGetAqMax().
The accel_type specifies the type of acceleration and can be one of the following values.
1: Acceleration, 2: Deceleration, 3: Acceleration and deceleration.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]all_joint_flagson 1 ignore JointFlags, use first real value for all joints, on 0 use JointFlags
[in]joint_flagsbitstring Specifies on which joints the acceleration is set
[in]accel_percentJoint acceleration percentage [1%..200%], or real value ([rad/s^2] or [m/s^2]) for all joints
[in]accel_typeType of acceleration.
Return values
0- OK
1- Error

◆ erSET_JOINT_JERKS()

DLLAPI long ER_STDCALL erSET_JOINT_JERKS ( ER_HND  er_hnd,
long  all_joint_flags,
long  joint_flags,
double  jerk_percent,
long  jerk_type 
)

Sets the joint jerk expressed as a percentage of the maximal joint jerk for each specified joint.
Opcode 162, Chapter 3.4.5, Page 3-80.
Remarks
If all_joint_flags is 1, the value in jerk_percent is in [rad/s^3] for rotational joint type and in [m/s^3] for prismatic joint type.
It is recommended to set all_joint_flags =0 and use joint_flags, where jerk_percent is a percentage value.
The jerk_type specifies the type of jerk and can be one of the following values.
1: Jerk during acceleration, 2: Jerk during deceleration, 3: Jerk during acceleration and deceleration.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]all_joint_flagson 1 ignore JointFlags, use first real value for all joints, on 0 use JointFlags
[in]joint_flagsbitstring Specifies on which joints the jerk is set
[in]jerk_percentJoint jerk percentage [1%..200%], or real value ([rad/s^3] or [m/s^3]) for all joints
[in]jerk_typeType of jerk.
Return values
0- OK
1- Error
-1- not supported

◆ erSET_JOINT_SPEEDS()

DLLAPI long ER_STDCALL erSET_JOINT_SPEEDS ( ER_HND  er_hnd,
long  all_joint_flags,
long  joint_flags,
double  speed_percent 
)

sets the joint speed expressed as percentage of the maximal joint speed.
Opcode 131, Chapter 3.4.5, Page 3-74.
Remarks
If all_joint_flags is 1, the value in speed_percent is in [rad/s] for rotational joint type and in [m/s] for prismatic joint type.
It is recommended to set all_joint_flags =0 and use joint_flags, where speed_percent is a percentage value.
The maximum joint speeds can be changed with erSetVqMax() and erGetVqMax().

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]all_joint_flagson 1 ignore JointFlags, use first real value for all joints, on 0 use JointFlags
[in]joint_flagsbitstring Specifies on which joints the speed is set
[in]speed_percentJoint speed percentage [1%..200%], or real value ([rad/s] or [m/s]) for all joints
Return values
0- OK
1- Error

◆ erSET_MOTION_FILTER()

DLLAPI long ER_STDCALL erSET_MOTION_FILTER ( ER_HND  er_hnd,
long  filter_factor 
)

defines the filter factor for smoothing velocity profiles of motions.
Opcode 128, Chapter 3.4.4, Page 3-68
Per default ER_MOTION_FILTER_GEO is set

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]filter_factorER_MOTION_FILTER_GEO or ER_MOTION_FILTER_C2
Return values
0- OK
1- Error

◆ erSET_MOTION_TIME()

DLLAPI long ER_STDCALL erSET_MOTION_TIME ( ER_HND  er_hnd,
double  time_value 
)

Specifies the motion time for the next motion.
Opcode 156, Chapter 3.4.5, Page 3-81.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]time_valuemotion time [ms].
Return values
0- OK
1- Error
-1- not supported

◆ erSET_NEXT_TARGET()

DLLAPI long ER_STDCALL erSET_NEXT_TARGET ( ER_HND  er_hnd,
NEXT_TARGET_DATA p_next_target_data 
)

Sends the next target position. This may include intermediate position, radius and angle for circular motion.
Opcode 117, Chapter 3.4.3, Page 3-52
This function prepares the next motion based on givin target data in NEXT_TARGET_DATA.
If the return is OK, the TrajectoryTime in [sec] is calculated
Remarks
The function may pass a position and a further TargetParamValue at the same time. For some motion types the Kernel may require more than one call of erSET_NEXT_TARGET() before it can start the motion (e.g. ER_CIRC). Function erGET_NEXT_STEP() reports this as normal, returning Status = 1 (need more data) and ElapsedTime = 0. Use erSET_NEXT_TARGET_ADVANCE() to define data for the about next target.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]p_next_target_datanext target data NEXT_TARGET_DATA
Return values
1- need more data, nothing to do
0- OK, next step is calculated successful
-17- specified motion type is not supported
-34- Error in matrix. Incomplete matrix
-35- Cartesian position expected
-36- Joint position expected
-43- Initial position not set
-51- no solution is found. One joint is out of range
-52- Cartesian position is out of work range
-59- specified position is singular
-68- fatal error, stopped calculating
-71- Position not stored, target buffer is full
-78- The specified position is not acceptable
-79- Not ready to receive targets

◆ erSET_NEXT_TARGET_ADVANCE()

DLLAPI long ER_STDCALL erSET_NEXT_TARGET_ADVANCE ( ER_HND  er_hnd,
NEXT_TARGET_DATA_ADVANCE p_next_target_data_advance 
)

Sends about next target data
The function gives information about the next target, stored in NEXT_TARGET_DATA_ADVANCE
Remarks
This function should be called once, just before calling erSET_NEXT_TARGET()
Parameter AdvanceParam=2 sets all data in NEXT_TARGET_DATA_ADVANCE to default values.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]p_next_target_data_advanceabout next target data NEXT_TARGET_DATA_ADVANCE
Return values
0- OK, valid about next target data
1- Error, in validabout next target data

◆ erSET_OVERRIDE_ACCELERATION()

DLLAPI long ER_STDCALL erSET_OVERRIDE_ACCELERATION ( ER_HND  er_hnd,
double  correction_value,
long  accel_type,
long  correction_type 
)

Sets correction values for scaling the robot acceleration.
Opcode 155, Chapter 3.4.5, Page 3-83.
The accel_type specifies the type of acceleration and can be one of the following values.
1: Acceleration, 2: Deceleration, 3: Acceleration and deceleration.
The parameter correction_type specifies when the correction is effective and can be one of the following values.
0: It becomes effective at the next call to erGET_NEXT_STEP()
1: It becomes effective for the next target supplied by erSET_NEXT_TARGET()
See also erSET_OVERRIDE_ACCELERATION_EX()

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]correction_valueacceleration correction in [%]
[in]accel_typeSpecifies when the correction is effective
[in]correction_typeSpecifies when the correction is effective
Return values
0- OK
1- Error
-1- not supported

◆ erSET_OVERRIDE_ACCELERATION_EX()

DLLAPI long ER_STDCALL erSET_OVERRIDE_ACCELERATION_EX ( ER_HND  er_hnd,
ER_HND  er_hnd_slave,
double  accel_override,
double  tcp_accel_max = 0 
)

Sets override for scaling the programmed acceleration during program execution.
If er_hnd_slave is NULL, speed_override and tcp_speed_max set for the kinematics with handle er_hnd for the next call to erSET_NEXT_TARGET().
If er_hnd_slave is equal to er_hnd, accel_override and tcp_accel_max set for the kinematics with handle er_hnd and becomes effective immediatly, erGET_NEXT_STEP().
If er_hnd_slave is set and NOT equal to er_hnd, accel_override and tcp_accel_max set for the kinematics with handle er_hnd_slave and becomes effective immediatly, erGET_NEXT_STEP().
See also erSET_OVERRIDE_ACCELERATION()

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]er_hnd_slaveunique slave kinematics handle ER_HND
[in]accel_overrideacceleration override in [%]
[in]tcp_accel_maxmaximum tcp acceleration [m/s^3]
Return values
0- OK
1- Error
-1- not supported

◆ erSET_OVERRIDE_POSITION()

DLLAPI long ER_STDCALL erSET_OVERRIDE_POSITION ( ER_HND  er_hnd,
DFRAME PosOffset 
)

Sets a correction offset which will be added to the path during program execution.
Opcode 129, Chapter 3.4.4, Page 3-69
This function can be used for sensor-compensated motion. It is effective at each time step. The passed value is valid until the function is called again.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]PosOffsetcorrection offset DFRAME
Return values
0- OK
1- Error
-1- not supported

◆ erSET_OVERRIDE_SPEED()

DLLAPI long ER_STDCALL erSET_OVERRIDE_SPEED ( ER_HND  er_hnd,
double  correction_value,
long  correction_type 
)

Sets correction values for scaling the programmed speed during program execution.
Opcode 139, Chapter 3.4.5, Page 3-82.
The parameter correction_type specifies when the correction is effective and can be one of the following values.
0: It becomes effective at the next call to erGET_NEXT_STEP()
1: It becomes effective for the next target supplied by erSET_NEXT_TARGET()
See also erSET_OVERRIDE_SPEED_EX()

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]correction_valuespeed correction in [%]
[in]correction_typeSpecifies when the correction is effective
Return values
0- OK
1- Error
-1- not supported

◆ erSET_OVERRIDE_SPEED_EX()

DLLAPI long ER_STDCALL erSET_OVERRIDE_SPEED_EX ( ER_HND  er_hnd,
ER_HND  er_hnd_slave,
double  speed_override,
double  tcp_speed_max = 0 
)

Sets override for scaling the programmed speed during program execution.
If er_hnd_slave is NULL, speed_override and tcp_speed_max set for the kinematics with handle er_hnd for the next call to erSET_NEXT_TARGET().
If er_hnd_slave is equal to er_hnd, speed_override and tcp_speed_max set for the kinematics with handle er_hnd and becomes effective immediatly, erGET_NEXT_STEP().
If er_hnd_slave is set and NOT equal to er_hnd, speed_override and tcp_speed_max set for the kinematics with handle er_hnd_slave and becomes effective immediatly, erGET_NEXT_STEP().
See also erSET_OVERRIDE_SPEED()

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]er_hnd_slaveunique slave kinematics handle ER_HND
[in]speed_overridespeed override in [%]
[in]tcp_speed_maxmaximum tcp speed [m/s]
Return values
0- OK
1- Error
-1- not supported

◆ erSET_PAYLOAD_PARAMETER()

DLLAPI long ER_STDCALL erSET_PAYLOAD_PARAMETER ( ER_HND  er_hnd,
long  storage,
char *  frame_id,
long  param_number,
double  param_value 
)

Allows specifying payloads at different locations on the robot.
It has to be supported when the payload influences the motion planning.
E.g. the load by a tool on the flange may be specified.
Opcode 160, Chapter 3.4.4, Page 3-71
The storage pecifies where to modify the data and can be one of the following values.
1: Modify in memory, 2: Modify on disk.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]storagepecifies where to modify the data.
[in]frame_idframe to which the payload is attached, e.g. FLANGE
[in]param_numberspecifies which parameter to set
[in]param_valuespecifies the value of the parameter
Return values
0- OK
1- Error
-1- not supported

◆ erSET_POINT_ACCURACY_PARAMETER()

DLLAPI long ER_STDCALL erSET_POINT_ACCURACY_PARAMETER ( ER_HND  er_hnd,
long  accuracy_type,
double  accuracy_value 
)

Sets the value of a parameter determining point accuracy.
Opcode 145, Chapter 3.4.6, Page 3-90
Function not supported

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]accuracy_typespecifies the type of point accuracy to give a value
[in]accuracy_valueSpecifies the value of the point accuracy
Return values
0- OK
1- Error, invalid handle
-1- not supported

◆ erSetAccSet()

DLLAPI long ER_STDCALL erSetAccSet ( ER_HND  er_hnd,
double  acc,
double  ramp 
)

Set lagging of accelerations.
Using AccSet is a proper way to come close to real cycle times when the robot carries high payloads for example.
The parameter acc and ramp are given in percentage values in the range from 20% to 100%.
acc: Acceleration and Deceleration as percentage value of normal values.
ramp: Change of Acceleration and Deceleration as percentage value of normal values.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]accacceleration and deceleration
[in]rampchange of acceleration and deceleration
Return values
0- OK
1- Error

◆ erSetAqMax()

DLLAPI long ER_STDCALL erSetAqMax ( ER_HND  er_hnd,
double *  aq_max 
)

Set maximum of robot joint accelerations.
Robot joint accelerations aq_max are in units [m/s^2] for prismatic joint type and [rad/s^2] for rotational joint type.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]aq_maxmaximum of robot joint accelerations, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erSetAutoAccel()

DLLAPI long ER_STDCALL erSetAutoAccel ( ER_HND  er_hnd,
long  autoaccel 
)

Enables automatic calculation of acceleration depending on programmed speed.
Using AutoAccel is a proper way to come close to real cycle times.
The parameter autoaccel specifies the effect when planning a new motion and can be one of the following values.
0: ER_AUTOACCEL_MODE_OFF disables auto accel calculation for all motions
1: ER_AUTOACCEL_MODE_POS calculation for CP motions for position
2: ER_AUTOACCEL_MODE_ORI calculation for CP motions
4: ER_AUTOACCEL_MODE_AX Calculation for PTP motions
3: ER_AUTOACCEL_MODE_DEF calculation for CP motions for position and for orientation
7: ER_AUTOACCEL_MODE_ON enables calculation for all motions
Remarks
If auto accel is enabled, other acceleration functions such as erSET_JOINT_ACCELERATIONS(), erSET_CARTESIAN_POSITION_ACCELERATION() and erSET_CARTESIAN_ORIENTATION_ACCELERATION() will have no effect.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]autoacceldefines auto acceleration mode
Return values
0- OK
1- Error

◆ erSetAxis_couplingA2A3()

DLLAPI long ER_STDCALL erSetAxis_couplingA2A3 ( ER_HND  er_hnd,
long  axis_couplingA2A3 
)

Set robot axis coupling between axis 2 and 3
The axis coupling can be one of the following values.
KIN_A2A3_COUPLING_NO=0, KIN_A2A3_COUPLING_YES =1 or KIN_A2A3_COUPLING_UNKNOWN =2
see also erGetAxis_couplingA2A3()

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]axis_couplingA2A3axis coupling between axis 2 and 3
Return values
0- OK
1- Error, invalid handle

◆ erSetAxMax()

DLLAPI long ER_STDCALL erSetAxMax ( ER_HND  er_hnd,
double  ax_max 
)

Set maximum cartesian acceleration.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]ax_maxmaximum cartesian acceleration [m/s^2]
Return values
0- OK
1- Error, invalid handle

◆ erSetAxOriMax()

DLLAPI long ER_STDCALL erSetAxOriMax ( ER_HND  er_hnd,
double  ax_ori_max 
)

Set maximum cartesian orientation acceleration.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]ax_ori_maxmaximum cartesian orientation acceleration [rad/s^2]
Return values
0- OK
1- Error, invalid handle

◆ erSetBacklink()

DLLAPI long ER_STDCALL erSetBacklink ( ER_HND  er_hnd,
long  backlink 
)

Set robot back link status
The back link status can be one of the following values.
KIN_BACK_LINK_NO=0, KIN_BACK_LINK_YES =1 or KIN_BACK_LINK_UNKNOWN =2
see also erGetBacklink()

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]backlinkrobot back link status
Return values
0- OK
1- Error, invalid handle

◆ erSetBaseRobotBase()

DLLAPI long ER_STDCALL erSetBaseRobotBase ( ER_HND  er_hnd,
DFRAME bTbase 
)

Set $BASE (wobj) w.r.t robot base.
The $BASE frame has only effect when IPO_MODE_BASE is set in erSetExtTcpMode()
All targets are defined w.r.t to this BASE frame (program shifting)

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]bTbaseBASE frame w.r.t. to robot base 'b' DFRAME
Return values
0- OK
1- Error, invalid handle

◆ erSetBaseWorld()

DLLAPI long ER_STDCALL erSetBaseWorld ( ER_HND  er_hnd,
DFRAME iTbase 
)

Set $BASE (wobj) w.r.t inertia (world). The $BASE frame has only effect when IPO_MODE_BASE is set in erSetExtTcpMode()
All targets are defined w.r.t to this BASE frame (program shifting)

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]iTbaseBASE frame w.r.t. to inertia 'i' DFRAME
Return values
0- OK
1- Error, invalid handle

◆ erSetCallBack_FreeGeometryProc()

DLLAPI void ER_STDCALL erSetCallBack_FreeGeometryProc ( TerFreeGeometryProc  Handler)

Define Callback function to free Geometry The Host application is prompted to free a geometry.

Parameters
[in]HandlerTerFreeGeometryProc function pointer
Return values
void

◆ erSetCallBack_GetActualTravelRangesProc()

DLLAPI void ER_STDCALL erSetCallBack_GetActualTravelRangesProc ( TerGetActualTravelRangesProc  Handler)

Define Callback function to calculate travel ranges by host application The Host application takes care to calculate the travel ranges.

Parameters
[in]HandlerTerGetActualTravelRangesProc function pointer
Return values
void

◆ erSetCallBack_GrpSyncProc()

DLLAPI void ER_STDCALL erSetCallBack_GrpSyncProc ( TerGrpSyncProc  Handler)

Define Callback function for group synchonization.

Parameters
[in]HandlerTerGrpSyncProc function pointer
Return values
void

◆ erSetCallBack_LoadGeometryProc()

DLLAPI void ER_STDCALL erSetCallBack_LoadGeometryProc ( TerLoadGeometryProc  Handler)

Define Callback function to load a geometry The Host application is prompted to load a geometry.

Parameters
[in]HandlerTerLoadGeometryProc function pointer
Return values
void

◆ erSetCallBack_LogProc()

DLLAPI void ER_STDCALL erSetCallBack_LogProc ( TerLogProc  Handler)

Define Callback function for Log Messages.

Parameters
[in]HandlerTerLogProc function pointer
Return values
void

◆ erSetCallBack_NotifyProc()

DLLAPI void ER_STDCALL erSetCallBack_NotifyProc ( TerNotifyProc  Handler)

Define Callback function for notify messages The Kernel informs the host application about internel status messages.

Parameters
[in]HandlerTerNotifyProc function pointer
Return values
void

◆ erSetCallBack_UpdateGeometryProc()

DLLAPI void ER_STDCALL erSetCallBack_UpdateGeometryProc ( TerUpdateGeometryProc  Handler)

Define Callback function to updat a geometries The Host application is prompted to update a geometry.

Parameters
[in]HandlerTerUpdateGeometryProc function pointer
Return values
void

◆ erSetConfig()

DLLAPI long ER_STDCALL erSetConfig ( ER_HND  er_hnd,
long  config 
)

Set robot configuration
A new robot configuration takes effect when calling the inverse kinematics transformation.
See The config is valid for 1 to number of possible configurations, see erGetNumConfigs()
Remarks
The motion planner can change the configuration only for the motion types ER_JOINT (ER_PTP) or ER_SLEW.
In case of CP (continuous path, i.e. ER_LIN or ER_CIRC), a givin configuration will be ignored.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]configrobot configuration number [1..number of robot configurations]
Return values
0- OK
1- Error, invalid handle

◆ erSetconveyorStartCondition()

DLLAPI long ER_STDCALL erSetconveyorStartCondition ( ER_HND  er_hnd,
double  tx0 
)

Sets the conveyor start condition.
This function set the conveyor start condition for the Tracking Window (typical for a painting applications).
The tx0 in units [m] is an offset position in X-direction and is defined w.r.t. to the flange of the conveyor device.
This function works in conjunction with erSetTrackingWindow()

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]tx0offset position in X-direction [m]
Return values
0- OK
1- Error, not licensed option, invalid handle

◆ erSetConveyorStartOffsetCondition()

DLLAPI long ER_STDCALL erSetConveyorStartOffsetCondition ( ER_TARGET_LOCATION_HND  er_tarloc_hnd,
double  tx0 
)

Sets the conveyor start offset condition.
This function set the conveyor start condition for the Tracking Window (typical for a painting applications).
The tx0 in units [m] is an offset position in X-direction and is defined w.r.t. to the flange of the conveyor device.
This function works in conjunction with erSetTrackingWindow()

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
[in]tx0offset position in X-direction [m]
Return values
0- OK
1- Error, not licensed option, invalid handle

◆ erSetConveyorTrackingWindow()

DLLAPI long ER_STDCALL erSetConveyorTrackingWindow ( ER_TARGET_LOCATION_HND  er_tarloc_hnd,
long  active,
double  up,
double  down,
TErTrackingWindowID  id_tw,
char *  name = NULL 
)

Activates and deactivates the boundaries for a Tracking Window.
This function enables a tracking window (typical for a painting applications) and defines the boudary Up- and Down-Stream values.
This function works in conjunction with erConnectConveyor(), erConnectConveyorSetSync() and erSetconveyorStartCondition()
Remarks
Connect the robot first with a conveyor, using erConnectConveyor(), and set the synchronization to ER_SYNC_ON, using erConnectConveyorSetSync(), before activating the tracking window.
A tracking window can have one of the following status:
0: TRK_WND_NOT_ACTIVE, 1: TRK_WND_WAITING, 2: TRK_WND_INSIDE or 3: TRK_WND_OUT_OF_BOUNDARY
and will be obtained with the NEXT_STEP_DATA when calling erGET_NEXT_STEP()
Activating a tracking window sets the status to TRK_WND_WAITING.
Deactivating a tracking window sets the status to TRK_WND_NOT_ACTIVE.

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
[in]active0: disable, 1: enable
[in]upboudary Up stream, where tracking window begins, [m]
[in]downboudary Down stream, where tracking window ends, [m]
[in]id_twunique tracking window identifier TErTrackingWindowID
[in]nameoptional name for the tracking window, per default = NULL
Return values
0- OK
1- Error, not licensed option, invalid handle

◆ erSetCounter_weight()

DLLAPI long ER_STDCALL erSetCounter_weight ( ER_HND  er_hnd,
long  counter_weight 
)

Set robot counter weight
The robot counter weight can be one of the following values.
KIN_COUNTER_WEIGHT_NO=0, KIN_COUNTER_WEIGHT_YES =1 or KIN_COUNTER_WEIGHT_UNKNOWN =2
see also erGetCounter_weight()

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]counter_weightrobot counter weight
Return values
0- OK
1- Error, invalid handle

◆ erSetEvents_DIN()

DLLAPI long ER_STDCALL erSetEvents_DIN ( ER_HND  er_hnd,
int  idx = 1,
long  io_value = ER_EVENT_BOOL_UNDEF,
char *  io_name = 0,
long  leadcond_type = ER_EVENT_CONDITION_UNDEF,
double  leadcond_value = 0,
long  lagcond_type = ER_EVENT_CONDITION_UNDEF,
double  lagcond_value = 0 
)

Set event conditions for a binary input for target location
An input is checked before a movement starts (leading) and/or when the movement reaches the target (lagging).
In the case of flyby, the checks are made closed to the start and the target location.
Each check depends on the specified condition type combined with a condition value.
A condition type can be one of the following values.

Remarks
Suppose you want to check input #3:
Before the movement starts the input must be 'set' and after the target is reached the input must be >=2.
Arguments are: idx = 3, io_value = ER_EVENT_BOOL_UNDEF, io_name = 0 (keep name),
leadcond_type = ER_EVENT_CONDITION_WAIT_DIN_SET, leadcond_value = 0 (has no effect)
lagcond_type = ER_EVENT_CONDITION_WAIT_DIN_GE, lagcond_value = 2

Parameters
[in]er_hnd- unique kinematics handle ER_HND
[in]idx- number of event [1..ER_EVENT_BOOL_N]
[in]io_value- one of ER_EVENT_BOOL_UNDEF, ER_EVENT_BOOL_OFF, ER_EVENT_BOOL_ON
[in]io_name- name of event, =0 keep template name, maximum lengths ER_MAXSTR
[in]leadcond_type- leading condition type
[in]leadcond_value- leading condition value >=0
[in]lagcond_type- lagging condition type
[in]lagcond_value- lagging condition value >=0
Return values
0- OK, event data set successfully
1- Error

◆ erSetEvents_DOUT()

DLLAPI long ER_STDCALL erSetEvents_DOUT ( ER_HND  er_hnd,
int  idx = 1,
long  io_value = ER_EVENT_BOOL_UNDEF,
char *  io_name = 0,
long  strig_type = ER_EVENT_TRIGGER_OFF,
double  strig_time = 0,
double  strig_dist = 0,
long  ttrig_type = ER_EVENT_TRIGGER_OFF,
double  ttrig_time = 0,
double  ttrig_dist = 0 
)

Set an event for a boolean output
A boolean event for binary outputs is controlled by trigger data, when the movement starts and when the movement reaches the target location.
When a trigger condition is met, the binary output is set to ER_EVENT_BOOL_OFF or ER_EVENT_BOOL_ON.
Trigger data can be set when the movement starts and when the movement reaches the target.
Each trigger consist of three parameters: type ,time and distance.
Trigger signal type can be one of the following values.

Trigger time and distance

  • time [s] - time from start or to target location when the signal trigger occurs
  • distance [m] - distance from start or to target location when the signal trigger occurs

Remarks
Suppose you want to set binary output #3 200ms after the start of the movement and deactivate it again either 500ms or 250mm before reaching the target.
Arguments are: idx = 3, io_value = ER_EVENT_BOOL_UNDEF, io_name = 0 (keep name),
strig_type = ER_EVENT_TRIGGER_UP, strig_time = 0.2, strig_dist = 0 (only effect when > 0)
ttrig_type = ER_EVENT_TRIGGER_DWN, ttrig_time = 0.5, ttrig_dist = 0.25

Parameters
[in]er_hnd- unique kinematics handle ER_HND
[in]idx- number of event [1..ER_EVENT_BOOL_N]
[in]io_value- one of ER_EVENT_BOOL_UNDEF, ER_EVENT_BOOL_OFF, ER_EVENT_BOOL_ON
[in]io_name- name of event, =0 keep template name, maximum lengths ER_MAXSTR
[in]strig_type- Start Trigger type to control binary output, one of ER_EVENT_TRIGGER_OFF, ER_EVENT_TRIGGER_DWN, ER_EVENT_TRIGGER_UP
[in]strig_time- Trigger time [s] from start location when the signal trigger occurs
[in]strig_dist- Trigger distance [m] from start location when the signal trigger occurs, only effect when > 0
[in]ttrig_type- Target trigger type to control binary output, one of ER_EVENT_TRIGGER_OFF, ER_EVENT_TRIGGER_DWN, ER_EVENT_TRIGGER_UP
[in]ttrig_time- Trigger time [s] to target location when the signal trigger occurs
[in]ttrig_dist- Trigger distance [m] to target location when the signal trigger occurs, only effect when > 0
Return values
0- OK, event data set successfully
1- Error

◆ erSetEvents_EventDIN()

DLLAPI long ER_STDCALL erSetEvents_EventDIN ( ER_TARGET_EVENTS_HND  hnd,
int  idx = 1,
long  io_value = ER_EVENT_BOOL_UNDEF,
char *  io_name = 0,
long  leadcond_type = ER_EVENT_CONDITION_UNDEF,
double  leadcond_value = 0,
long  lagcond_type = ER_EVENT_CONDITION_UNDEF,
double  lagcond_value = 0 
)

Set event conditions for a binary input for target location
An input is checked before a movement starts (leading) and/or when the movement reaches the target (lagging).
In the case of flyby, the checks are made closed to the start and the target location.
Each check depends on the specified condition type combined with a condition value.
A condition type can be one of the following values.

Remarks
Suppose you want to check input #3:
Before the movement starts the input must be 'set' and after the target is reached the input must be >=2.
Arguments are: idx = 3, io_value = ER_EVENT_BOOL_UNDEF, io_name = 0 (keep name),
leadcond_type = ER_EVENT_CONDITION_WAIT_DIN_SET, leadcond_value = 0 (has no effect)
lagcond_type = ER_EVENT_CONDITION_WAIT_DIN_GE, lagcond_value = 2

Parameters
[in]hnd- unique target location events handle ER_TARGET_EVENTS_HND
[in]idx- number of event [1..ER_EVENT_BOOL_N]
[in]io_value- one of ER_EVENT_BOOL_UNDEF, ER_EVENT_BOOL_OFF, ER_EVENT_BOOL_ON
[in]io_name- name of event, =0 keep template name, maximum lengths ER_MAXSTR
[in]leadcond_type- leading condition type
[in]leadcond_value- leading condition value >=0
[in]lagcond_type- lagging condition type
[in]lagcond_value- lagging condition value >=0
Return values
0- OK, event data set successfully
1- Error

◆ erSetEvents_EventDOUT()

DLLAPI long ER_STDCALL erSetEvents_EventDOUT ( ER_TARGET_EVENTS_HND  hnd,
int  idx = 1,
long  io_value = ER_EVENT_BOOL_UNDEF,
char *  io_name = 0,
long  strig_type = ER_EVENT_TRIGGER_OFF,
double  strig_time = 0,
double  strig_dist = 0,
long  ttrig_type = ER_EVENT_TRIGGER_OFF,
double  ttrig_time = 0,
double  ttrig_dist = 0 
)

Set an event for a boolean output for target location
A boolean event for binary outputs is controlled by trigger data, when the movement starts and when the movement reaches the target location.
When a trigger condition is met, the binary output is set to ER_EVENT_BOOL_OFF or ER_EVENT_BOOL_ON.
Trigger data can be set when the movement starts and when the movement reaches the target.
Each trigger consist of three parameters: type ,time and distance.
Trigger signal type can be one of the following values.

Trigger time and distance

  • time [s] - time from start or to target location when the signal trigger occurs
  • distance [m] - distance from start or to target location when the signal trigger occurs

see Get_EventDOUT() or erGetEvents_EventDOUT()
Remarks
Suppose you want to set binary output #3 200ms after the start of the movement and deactivate it again either 500ms or 250mm before reaching the target.
Arguments are: idx = 3, io_value = ER_EVENT_BOOL_UNDEF, io_name = 0 (keep name),
strig_type = ER_EVENT_TRIGGER_UP, strig_time = 0.2, strig_dist = 0 (only effect when > 0)
ttrig_type = ER_EVENT_TRIGGER_DWN, ttrig_time = 0.5, ttrig_dist = 0.25

Parameters
[in]hnd- unique target location events handle ER_TARGET_EVENTS_HND
[in]idx- number of event [1..ER_EVENT_BOOL_N]
[in]io_value- one of ER_EVENT_BOOL_UNDEF, ER_EVENT_BOOL_OFF, ER_EVENT_BOOL_ON
[in]io_name- name of event, =0 keep template name, maximum lengths ER_MAXSTR
[in]strig_type- Start Trigger type to control binary output, one of ER_EVENT_TRIGGER_OFF, ER_EVENT_TRIGGER_DWN, ER_EVENT_TRIGGER_UP
[in]strig_time- Trigger time [s] from start location when the signal trigger occurs
[in]strig_dist- Trigger distance [m] from start location when the signal trigger occurs, only effect when > 0
[in]ttrig_type- Target trigger type to control binary output, one of ER_EVENT_TRIGGER_OFF, ER_EVENT_TRIGGER_DWN, ER_EVENT_TRIGGER_UP
[in]ttrig_time- Trigger time [s] to target location when the signal trigger occurs
[in]ttrig_dist- Trigger distance [m] to target location when the signal trigger occurs, only effect when > 0
Return values
0- OK, event data set successfully
1- Error

◆ erSetExtAxConveyorIdx()

DLLAPI long ER_STDCALL erSetExtAxConveyorIdx ( ER_TARGET_LOCATION_HND  er_tarloc_hnd,
long  extax_idx,
double  axis_value,
double  speed_value = 0,
long  sync_type = ER_SYNC_UNDEF,
ER_HND  er_hnd_connect = 0 
)

Set external axis values for Conveyor for target location
see example GetExtAxConveyorHnd()
Remarks
Use ERK_CAPI_TOOLPATH::erToolPathSetConveyorHandle() to set the Conveyor device, belonging to this tool path.

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
[in]extax_idx- axis idx of controlled joint for connected device [0..ER_EXTAX_KIN_DATA_MAX-1]
[in]axis_value- target value [m,rad]
[in]speed_value- target speed [m/s,rad/s]
[in]sync_type- synchonization type ER_SYNC_ON, ER_SYNC_OFF
[in]er_hnd_connect- handle of Conveyor device, belonging to this tool path, if not here, previous settings are valid
Return values
0- Ok
1- Error

◆ erSetExtAxPositionerIdx()

DLLAPI long ER_STDCALL erSetExtAxPositionerIdx ( ER_TARGET_LOCATION_HND  er_tarloc_hnd,
long  extax_idx,
double  axis_value,
double  speed_value = 0,
long  sync_type = ER_SYNC_UNDEF,
ER_HND  er_hnd_connect = 0 
)

Set external axis values for Positioner/TurnTable for target location
see example GetExtAxPositionerHnd()
Remarks
Use ERK_CAPI_TOOLPATH::erToolPathSetPositionerHandle() to set the Positioner/TurnTable device, belonging to this tool path.

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
[in]extax_idx- axis idx of controlled joint for connected device [0..ER_EXTAX_KIN_DATA_MAX-1]
[in]axis_value- target value [m,rad]
[in]speed_value- target speed [m/s,rad/s]
[in]sync_type- synchonization type ER_SYNC_ON, ER_SYNC_OFF
[in]er_hnd_connect- handle of Positioner/TurnTable device, belonging to this tool path, if not here, previous settings are valid
Return values
0- Ok
1- Error

◆ erSetExtAxTrackIdx()

DLLAPI long ER_STDCALL erSetExtAxTrackIdx ( ER_TARGET_LOCATION_HND  er_tarloc_hnd,
long  extax_idx,
double  axis_value,
double  speed_value = 0,
long  sync_type = ER_SYNC_UNDEF,
ER_HND  er_hnd_connect = 0 
)

Set external axis values for Track/Slider for target location
see example GetExtAxTrackMotionHnd()
Remarks
Use ERK_CAPI_TOOLPATH::erToolPathSetTrackMotionHandle() to set the Track/Slider device, belonging to this tool path.

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
[in]extax_idx- axis idx of controlled joint for connected device [0..ER_EXTAX_KIN_DATA_MAX-1]
[in]axis_value- target value [m,rad]
[in]speed_value- target speed [m/s,rad/s]
[in]sync_type- synchonization type ER_SYNC_ON, ER_SYNC_OFF
[in]er_hnd_connect- handle of Track/Slider device, belonging to this tool path, if not here, previous settings are valid
Return values
0- Ok
1- Error

◆ erSetExtTcpMode()

DLLAPI long ER_STDCALL erSetExtTcpMode ( ER_HND  er_hnd,
long  ext_tcp_mode 
)

Set external TCP mode.
The external TCP can be IPO_MODE_BASE (tool guided) or IPO_MODE_TOOL (work object guided)

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]ext_tcp_modeexternal TCP mode IPO_MODE_BASE, IPO_MODE_TOOL
Return values
0- OK
1- Error, invalid handle

◆ erSetExtTcpRobotBase()

DLLAPI long ER_STDCALL erSetExtTcpRobotBase ( ER_HND  er_hnd,
DFRAME bText,
long  use_ext_flange 
)

Set location of external TCP w.r.t robot base.
Exeption: If use_ext_flange is set, the external TCP w.r.t is defined w.r.t. the (tip) flange of a positioner for example.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]bTextlocation of external TCP w.r.t robot base 'b' DFRAME
[in]use_ext_flange=1 if external TCP w.r.t positioner, else w.r.t to robot base
Return values
0- OK
1- Error, invalid handle

◆ erSetExtTcpWorld()

DLLAPI long ER_STDCALL erSetExtTcpWorld ( ER_HND  er_hnd,
DFRAME iText 
)

Set location of external TCP w.r.t inertia (world).

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]iTextlocation of external TCP w.r.t inertia 'i' DFRAME
Return values
0- OK
1- Error, invalid handle

◆ erSetHomepos()

DLLAPI long ER_STDCALL erSetHomepos ( ER_HND  er_hnd,
double *  homepos 
)

Set robot joint homeposition. The kinematics joint homepos are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs()

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]homeposrobot joint homeposition, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erSetInstructions()

DLLAPI int ER_STDCALL erSetInstructions ( ER_TARGET_LOCATION_HND  er_tarloc_hnd,
char *  InfoTxt = NULL,
char *  LeadInst = NULL,
char *  LagInst = NULL 
)

Set target instruction data for information, leading- and lagging instruction.
For further explanations see GetInstructionsHnd().

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
[in]InfoTxtjust any information text, maximum lengths ER_HS_MAXSTR
[in]LeadInstan instruction text should be valid or executed before the robot starts the move to the target, maximum lengths ER_HS_MAXSTR
[in]LagInstan instruction text should be valid or executed when the robot has reached its target, maximum lengths ER_HS_MAXSTR
Return values
0- Ok
1- Error

◆ erSetJoint()

DLLAPI long ER_STDCALL erSetJoint ( ER_HND  er_hnd,
double  q_solut,
long  jnt_no 
)

Set a single robot joint data. The kinematics joint data q_solut are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of active joints with erGet_num_dofs()

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]q_solutrobot joint data, max size ER_KIN_DOFS
[in]jnt_nojoint number [1..number of active joints], max jnt_no is ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erSetJointDyn()

DLLAPI long ER_STDCALL erSetJointDyn ( ER_HND  er_hnd,
double  q_dyn,
long  jnt_no 
)

Set a single actual robot joint data. The kinematics joint data q_dyn are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of active joints with erGet_num_dofs()

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]q_dynrobot joint data, max size ER_KIN_DOFS
[in]jnt_nojoint number [1..number of active joints], max jnt_no is ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erSetJointFrameActiveLast()

DLLAPI long ER_STDCALL erSetJointFrameActiveLast ( ER_HND  er_hnd,
long  active_jnt_no,
DFRAME T 
)

◆ erSetJointFrameActiveNext()

DLLAPI long ER_STDCALL erSetJointFrameActiveNext ( ER_HND  er_hnd,
long  active_jnt_no,
DFRAME T 
)

◆ erSetJointFramePassiveLast()

DLLAPI long ER_STDCALL erSetJointFramePassiveLast ( ER_HND  er_hnd,
long  passive_jnt_no,
DFRAME T 
)

◆ erSetJointFramePassiveNext()

DLLAPI long ER_STDCALL erSetJointFramePassiveNext ( ER_HND  er_hnd,
long  passive_jnt_no,
DFRAME T 
)

◆ erSetJointOffset()

DLLAPI long ER_STDCALL erSetJointOffset ( ER_HND  er_hnd,
double *  joint_offset 
)

Set offset of robot joints.
Robot joint offsets joint_offset are in units [m] for prismatic joint type and [rad] for rotational joint type.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]joint_offsetrobot joint offset, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erSetJoints()

DLLAPI long ER_STDCALL erSetJoints ( ER_HND  er_hnd,
double *  q_solut 
)

Set robot joint data. The kinematics joint data q_solut are in units [m] for prismatic joint type
and [rad] for rotational joint type.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]q_solutrobot joint data, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erSetJointSign()

DLLAPI long ER_STDCALL erSetJointSign ( ER_HND  er_hnd,
double *  joint_sign 
)

Set sign of robot joints. A robot joint sign can be positive +1 or negative -1.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]joint_signsign of a robot joint, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erSetJointSolutions()

DLLAPI long ER_STDCALL erSetJointSolutions ( ER_HND  er_hnd,
double *  q_solutions,
long *  q_warnings 
)

Set all robot joint solutions. The kinematics joint data q_solutions are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of active joints with erGet_num_dofs()
Get the number of configurations with erGetNumConfigs()
Remarks
Call this function after calling the inverse kinematics transformation, erInvKinRobotBaseTip(), erInvKinWorldTip(), erInvKinRobotBaseTcp(), erInvKinWorldTcp()

// Example:
Parameters
[in]er_hndunique kinematics handle ER_HND
[in]q_solutionsrobot joint data, max size ER_KIN_CONFIGS * ER_KIN_DOFS
[in]q_warningswarning for each solution, max size ER_KIN_CONFIGS
Return values
0- OK
1- Error, invalid handle

◆ erSetMotionAttributes_BaseFrame()

DLLAPI DFRAME* ER_STDCALL erSetMotionAttributes_BaseFrame ( ER_TARGET_ATTRIBUTES_HND  hnd,
DFRAME BaseFrame 
)

Program shift Base for a target location
Base '$BASE, $UFrame' has only if IPO_MODE_BASE is set and external TCP disabled
All targets are defined w.r.t to this BASE frame (program shifting)
see inq_BaseIdx(), inq_BaseName()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
[in]BaseFramelocation DFRAME
Return values
pointerto DFRAME - BaseFrame, DFRAME
NULL- Error

◆ erSetMotionAttributes_extTcpBaseFrame()

DLLAPI DFRAME* ER_STDCALL erSetMotionAttributes_extTcpBaseFrame ( ER_TARGET_ATTRIBUTES_HND  hnd,
DFRAME extTcpBaseFrame 
)

external Tool (TCP) w.r.t. Robot Base or flange of positioner, for a target location
Transformation from RobotBase or from flange of positioner to external TCP
see inq_extTcpBaseIdx(), inq_extTcpBaseName()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
[in]extTcpBaseFramelocation DFRAME
Return values
pointerto DFRAME - extTcpBaseFrame, DFRAME
NULL- Error

◆ erSetMotionAttributes_extTcpOffsetFrame()

DLLAPI DFRAME* ER_STDCALL erSetMotionAttributes_extTcpOffsetFrame ( ER_TARGET_ATTRIBUTES_HND  hnd,
DFRAME extTcpOffsetFrame 
)

external Tool/TCP offset data w.r.t. extTcpBase, extTcpWorld, for a target location
Transformation from extTcpBase or extTcpWorld
see inq_extTcpOffsetIdx(), inq_extTcpOffsetName()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
[in]extTcpOffsetFramelocation DFRAME
Return values
pointerto DFRAME - extTcpOffsetFrame, DFRAME
NULL- Error

◆ erSetMotionAttributes_extTcpWorldFrame()

DLLAPI DFRAME* ER_STDCALL erSetMotionAttributes_extTcpWorldFrame ( ER_TARGET_ATTRIBUTES_HND  hnd,
DFRAME extTcpWorldFrame 
)

external Tool (TCP) w.r.t. Robot World or flange of positioner, for a target location
Transformation from RobotWorld or from flange of positioner to external TCP
see inq_extTcpWorldIdx(), inq_extTcpWorldName()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
[in]extTcpWorldFramelocation DFRAME
Return values
pointerto DFRAME - extTcpWorldFrame, DFRAME
NULL- Error

◆ erSetMotionAttributes_ToolFrame()

DLLAPI DFRAME* ER_STDCALL erSetMotionAttributes_ToolFrame ( ER_TARGET_ATTRIBUTES_HND  hnd,
DFRAME ToolFrame 
)

Tool (TCP) for a target location
Transformation from Tip to TCP
see inq_ToolIdx(), inq_ToolName()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
[in]ToolFramelocation DFRAME
Return values
pointerto DFRAME - ToolFrame, DFRAME
NULL- Error

◆ erSetMotionAttributes_ToolOffsetFrame()

DLLAPI DFRAME* ER_STDCALL erSetMotionAttributes_ToolOffsetFrame ( ER_TARGET_ATTRIBUTES_HND  hnd,
DFRAME ToolOffsetFrame 
)

ToolOffset (TCP) for a target location
Offset Transformation from TCP
see inq_ToolOffsetIdx(), inq_ToolOffsetName()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
[in]ToolOffsetFramelocation DFRAME
Return values
pointerto DFRAME - ToolOffsetFrame, DFRAME
NULL- Error

◆ erSetMotionAttributes_WobjCartPosFrame()

DLLAPI DFRAME* ER_STDCALL erSetMotionAttributes_WobjCartPosFrame ( ER_TARGET_ATTRIBUTES_HND  hnd,
DFRAME WobjCartPosFrame 
)

Set WorkObject valid for all cartesian target locations such as CartPosVec, CartPosVecVia
Using this transformation, all cartesian targets 'T' are modified to T' = WorkObj * T
see e.g. ERK_CAPI_TOOLPATH_TARGETS::erSetTargetLocation_Move_LIN()

Parameters
[in]hndunique target attributes handle ER_TARGET_ATTRIBUTES_HND
[in]WobjCartPosFramework object location DFRAME
Return values
pointerto DFRAME - WobjCartPosFrame, DFRAME
NULL- Error

◆ erSetRobotBase()

DLLAPI long ER_STDCALL erSetRobotBase ( ER_HND  er_hnd,
DFRAME iTb 
)

Set robot base location w.r.t. world.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]iTblocation if the robots base w.r.t. world ('i' - inertia, 'b' - base). DFRAME
Return values
0- OK
1- Error, invalid handle

◆ erSetSpeedReductionEnable()

DLLAPI long ER_STDCALL erSetSpeedReductionEnable ( ER_HND  er_hnd,
long  speed_reduction_enable 
)

Set speed reduction enable.
If speed reduction is enabled, the robots TCP speed gets reduced (while motion execution in erGET_NEXT_STEP()) if the desired nominal joint speeds exceeds the maximum allowed joint speed, defined with erSetVqMax().
Remarks
Per default, speed reduction is enabled.
Speed reduction causes the TrajectoryTime to increase, while the RemainingTime represents the minimum time necessary to reach the target.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]speed_reduction_enable1-enable, 0-disable
Return values
0- OK
1- Error, invalid handle

◆ erSetSweMax()

DLLAPI long ER_STDCALL erSetSweMax ( ER_HND  er_hnd,
double *  swe_max 
)

Set fix maximum travel ranges. The kinematics travel ranges swe_max are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs()

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]swe_maxfix maximum travel ranges, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erSetSweMax_passive()

DLLAPI long ER_STDCALL erSetSweMax_passive ( ER_HND  er_hnd,
double *  swe_max_passive 
)

Set fix maximum travel ranges for passive joints. The kinematics travel ranges swe_max_passive are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs_passive()

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]swe_max_passivefix maximum travel ranges, max size ER_KIN_PASSIVE_JNTS
Return values
0- OK
1- Error, invalid handle

◆ erSetSweMin()

DLLAPI long ER_STDCALL erSetSweMin ( ER_HND  er_hnd,
double *  swe_min 
)

Set fix minimum travel ranges. The kinematics travel ranges swe_min are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs()

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]swe_minfix minimum travel ranges, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erSetSweMin_passive()

DLLAPI long ER_STDCALL erSetSweMin_passive ( ER_HND  er_hnd,
double *  swe_min_passive 
)

Set fix minimum travel ranges for passive joints. The kinematics travel ranges swe_min_passive are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs_passive()

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]swe_min_passivefix minimum travel ranges, max size ER_KIN_PASSIVE_JNTS
Return values
0- OK
1- Error, invalid handle

◆ erSetTargetLocation_Move_CIRC()

DLLAPI long ER_STDCALL erSetTargetLocation_Move_CIRC ( ER_TARGET_LOCATION_HND  er_tarloc_hnd,
double *  CartPosVecVia,
double *  CartPosVec,
double  speed_cp = 0,
double  speed_ori = 0,
double  override_speed = 0,
long  flyby_on = -1,
double *  Tool = 0,
double *  Base = 0 
)

Move_CIRC, continious path motion definition for target location
Remarks
Use erAddTargetLocation() to create a valid target location handle er_tarloc_hnd
The target location will be set to valid after successful motion definition, see ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid()

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
[in]CartPosVecViaTarget Position at VIA location, vector definition Pxyz [m] Rxyz [rad] ER_DOF6
[in]CartPosVecTarget Position vector, definition Pxyz [m] Rxyz [rad] ER_DOF6
[in]speed_cpcartesian speed [m/s], 0 will use template definitions
[in]speed_oricartesian orientation speed [rad/s], 0 will use template definitions
[in]override_speedpercentage override_speed definition [>0-1000%], 0 will use template definitions
[in]flyby_onone of ER_FLYBY_OFF or ER_FLYBY_ON, -1 will use template definitions
[in]ToolTool vector, definition Pxyz [m] Rxyz [rad] ER_DOF6, 0 will use template definitions
[in]BaseBase vector, definition Pxyz [m] Rxyz [rad] ER_DOF6, 0 will use template definitions
Return values
0- Ok
1- Error

◆ erSetTargetLocation_Move_CIRC_Frame()

DLLAPI long ER_STDCALL erSetTargetLocation_Move_CIRC_Frame ( ER_TARGET_LOCATION_HND  er_tarloc_hnd,
DFRAME CartPosFrameVia,
DFRAME CartPosFrame,
double  speed_cp = 0,
double  speed_ori = 0,
double  override_speed = 0,
long  flyby_on = -1,
DFRAME ToolFrame = 0,
DFRAME BaseFrame = 0 
)

Move_CIRC, continious path motion definition for target location
Remarks
Use erAddTargetLocation() to create a valid target location handle er_tarloc_hnd
The target location will be set to valid after successful motion definition, see ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid()

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
[in]CartPosFrameViaTarget Frame at VIA location, DFRAME
[in]CartPosFrameTarget Frame, DFRAME
[in]speed_cpcartesian speed [m/s], 0 will use template definitions
[in]speed_oricartesian orientation speed [rad/s], 0 will use template definitions
[in]override_speedpercentage override_speed definition [>0-1000%], 0 will use template definitions
[in]flyby_onone of ER_FLYBY_OFF or ER_FLYBY_ON, -1 will use template definitions
[in]ToolFrameDFRAME, 0 will use template definitions
[in]BaseFrameDFRAME, 0 will use template definitions
Return values
0- Ok
1- Error

◆ erSetTargetLocation_Move_Joint()

DLLAPI long ER_STDCALL erSetTargetLocation_Move_Joint ( ER_TARGET_LOCATION_HND  er_tarloc_hnd,
double *  CartPosVec,
long  configuration = 0,
long  ptp_target_calculation_mode = ER_PTP_TARGET_CALC_MODE_UNDEF,
double  speed_percent = 0,
double  override_speed = 0,
double *  Tool = 0,
double *  Base = 0 
)

Move_Joint, full synchronized PTP, motion definition for target location
Remarks
Use erAddTargetLocation() to create a valid target location handle er_tarloc_hnd
The target location will be set to valid after successful motion definition, see ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid()

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
[in]CartPosVecTarget Position vector, definition Pxyz [m] Rxyz [rad] ER_DOF6
[in]configurationRobot configuration [1-ER_KIN_CONFIGS], 0 will use template definitions
[in]ptp_target_calculation_modeis one of ER_PTP_TARGET_CALC_MODE_SHORTEST_ANGLE, ER_PTP_TARGET_CALC_MODE_TURNS, ER_PTP_TARGET_CALC_MODE_MATH, ER_PTP_TARGET_CALC_MODE_IN_TRAVEL_RANGE, ER_PTP_TARGET_CALC_MODE_VAR_CONFIG, 0=ER_PTP_TARGET_CALC_MODE_UNDEF will use template definitions
[in]speed_percentpercentage speed definition [>0-1000%], 0 will use template definitions
[in]override_speedpercentage override_speed definition [>0-1000%], 0 will use template definitions
[in]ToolTool vector, definition Pxyz [m] Rxyz [rad] ER_DOF6, 0 will use template definitions
[in]BaseBase vector, definition Pxyz [m] Rxyz [rad] ER_DOF6, 0 will use template definitions
Return values
0- Ok
1- Error

◆ erSetTargetLocation_Move_Joint_Frame()

DLLAPI long ER_STDCALL erSetTargetLocation_Move_Joint_Frame ( ER_TARGET_LOCATION_HND  er_tarloc_hnd,
DFRAME CartPosFrame,
long  configuration = 0,
long  ptp_target_calculation_mode = ER_PTP_TARGET_CALC_MODE_UNDEF,
double  speed_percent = 0,
double  override_speed = 0,
DFRAME ToolFrame = 0,
DFRAME BaseFrame = 0 
)

Move_Joint, full synchronized PTP, motion definition for target location
Remarks
Use erAddTargetLocation() to create a valid target location handle er_tarloc_hnd
The target location will be set to valid after successful motion definition, see ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid()

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
[in]CartPosFrameTarget Frame, DFRAME
[in]configurationRobot configuration [1-ER_KIN_CONFIGS], 0 will use template definitions
[in]ptp_target_calculation_modeis one of ER_PTP_TARGET_CALC_MODE_SHORTEST_ANGLE, ER_PTP_TARGET_CALC_MODE_TURNS, ER_PTP_TARGET_CALC_MODE_MATH, ER_PTP_TARGET_CALC_MODE_IN_TRAVEL_RANGE, ER_PTP_TARGET_CALC_MODE_VAR_CONFIG, 0=ER_PTP_TARGET_CALC_MODE_UNDEF will use template definitions
[in]speed_percentpercentage speed definition [>0-1000%], 0 will use template definitions
[in]override_speedpercentage override_speed definition [>0-1000%], 0 will use template definitions
[in]ToolFrameDFRAME, 0 will use template definitions
[in]BaseFrameDFRAME, 0 will use template definitions
Return values
0- Ok
1- Error

◆ erSetTargetLocation_Move_JointAbs()

DLLAPI long ER_STDCALL erSetTargetLocation_Move_JointAbs ( ER_TARGET_LOCATION_HND  er_tarloc_hnd,
double *  JointPos,
double  speed_percent = 0,
double  override_speed = 0,
double *  Tool = 0 
)

Move_JointAbs, full synchronized PTP, motion definition for target location
Remarks
Use erAddTargetLocation() to create a valid target location handle er_tarloc_hnd
The target location will be set to valid after successful motion definition, see ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid()

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
[in]JointPostarget joint location [m,rad], maximum size ER_KIN_DOFS
[in]speed_percentpercentage speed definition [>0-1000%], 0 will use template definitions
[in]override_speedpercentage override_speed definition [>0-1000%], 0 will use template definitions
[in]ToolTool vector definition Pxyz [m] Rxyz [rad] ER_DOF6, 0 will use template definitions
Return values
0- Ok
1- Error

◆ erSetTargetLocation_Move_LIN()

DLLAPI long ER_STDCALL erSetTargetLocation_Move_LIN ( ER_TARGET_LOCATION_HND  er_tarloc_hnd,
double *  CartPosVec,
double  speed_cp = 0,
double  speed_ori = 0,
double  override_speed = 0,
long  flyby_on = -1,
double *  Tool = 0,
double *  Base = 0 
)

Move_LIN, continious path motion definition for target location
Remarks
Use erAddTargetLocation() to create a valid target location handle er_tarloc_hnd
The target location will be set to valid after successful motion definition, see ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid()

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
[in]CartPosVecTarget Position vector, definition Pxyz [m] Rxyz [rad] ER_DOF6
[in]speed_cpcartesian speed [m/s], 0 will use template definitions
[in]speed_oricartesian orientation speed [rad/s], 0 will use template definitions
[in]override_speedpercentage override_speed definition [>0-1000%], 0 will use template definitions
[in]flyby_onone of ER_FLYBY_OFF or ER_FLYBY_ON, -1 will use template definitions
[in]ToolTool vector, definition Pxyz [m] Rxyz [rad] ER_DOF6, 0 will use template definitions
[in]BaseBase vector, definition Pxyz [m] Rxyz [rad] ER_DOF6, 0 will use template definitions
Return values
0- Ok
1- Error

◆ erSetTargetLocation_Move_LIN_Frame()

DLLAPI long ER_STDCALL erSetTargetLocation_Move_LIN_Frame ( ER_TARGET_LOCATION_HND  er_tarloc_hnd,
DFRAME CartPosFrame,
double  speed_cp = 0,
double  speed_ori = 0,
double  override_speed = 0,
long  flyby_on = -1,
DFRAME ToolFrame = 0,
DFRAME BaseFrame = 0 
)

Move_LIN, continious path motion definition for target location
Remarks
Use erAddTargetLocation() to create a valid target location handle er_tarloc_hnd
The target location will be set to valid after successful motion definition, see ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid()

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
[in]CartPosFrameTarget Frame, DFRAME
[in]speed_cpcartesian speed [m/s], 0 will use template definitions
[in]speed_oricartesian orientation speed [rad/s], 0 will use template definitions
[in]override_speedpercentage override_speed definition [>0-1000%], 0 will use template definitions
[in]flyby_onone of ER_FLYBY_OFF or ER_FLYBY_ON, -1 will use template definitions
[in]ToolFrameDFRAME, 0 will use template definitions
[in]BaseFrameDFRAME, 0 will use template definitions
Return values
0- Ok
1- Error

◆ erSetTargetLocation_Move_Slew()

DLLAPI long ER_STDCALL erSetTargetLocation_Move_Slew ( ER_TARGET_LOCATION_HND  er_tarloc_hnd,
double *  CartPosVec,
long  configuration = 0,
long  ptp_target_calculation_mode = ER_PTP_TARGET_CALC_MODE_UNDEF,
double  speed_percent = 0,
double  override_speed = 0,
double *  Tool = 0,
double *  Base = 0 
)

Move_Slew, not synchronized PTP, motion definition for target location
Remarks
Use erAddTargetLocation() to create a valid target location handle er_tarloc_hnd
The target location will be set to valid after successful motion definition, see ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid()

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
[in]CartPosVecTarget Position vector, definition Pxyz [m] Rxyz [rad] ER_DOF6
[in]configurationRobot configuration [1-ER_KIN_CONFIGS], 0 will use template definitions
[in]ptp_target_calculation_modeis one of ER_PTP_TARGET_CALC_MODE_SHORTEST_ANGLE, ER_PTP_TARGET_CALC_MODE_TURNS, ER_PTP_TARGET_CALC_MODE_MATH, ER_PTP_TARGET_CALC_MODE_IN_TRAVEL_RANGE, ER_PTP_TARGET_CALC_MODE_VAR_CONFIG, 0=ER_PTP_TARGET_CALC_MODE_UNDEF will use template definitions
[in]speed_percentpercentage speed definition [>0-1000%], 0 will use template definitions
[in]override_speedpercentage override_speed definition [>0-1000%], 0 will use template definitions
[in]ToolTool vector, definition Pxyz [m] Rxyz [rad] ER_DOF6, 0 will use template definitions
[in]BaseBase vector, definition Pxyz [m] Rxyz [rad] ER_DOF6, 0 will use template definitions
Return values
0- Ok
1- Error

◆ erSetTargetLocation_Move_Slew_Frame()

DLLAPI long ER_STDCALL erSetTargetLocation_Move_Slew_Frame ( ER_TARGET_LOCATION_HND  er_tarloc_hnd,
DFRAME CartPosFrame,
long  configuration = 0,
long  ptp_target_calculation_mode = ER_PTP_TARGET_CALC_MODE_UNDEF,
double  speed_percent = 0,
double  override_speed = 0,
DFRAME ToolFrame = 0,
DFRAME BaseFrame = 0 
)

Move_Slew, not synchronized PTP, motion definition for target location
Remarks
Use erAddTargetLocation() to create a valid target location handle er_tarloc_hnd
The target location will be set to valid after successful motion definition, see ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid()

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
[in]CartPosFrameTarget Frame, DFRAME
[in]configurationRobot configuration [1-ER_KIN_CONFIGS], 0 will use template definitions
[in]ptp_target_calculation_modeis one of ER_PTP_TARGET_CALC_MODE_SHORTEST_ANGLE, ER_PTP_TARGET_CALC_MODE_TURNS, ER_PTP_TARGET_CALC_MODE_MATH, ER_PTP_TARGET_CALC_MODE_IN_TRAVEL_RANGE, ER_PTP_TARGET_CALC_MODE_VAR_CONFIG, 0=ER_PTP_TARGET_CALC_MODE_UNDEF will use template definitions
[in]speed_percentpercentage speed definition [>0-1000%], 0 will use template definitions
[in]override_speedpercentage override_speed definition [>0-1000%], 0 will use template definitions
[in]ToolFrameDFRAME, 0 will use template definitions
[in]BaseFrameDFRAME, 0 will use template definitions
Return values
0- Ok
1- Error

◆ erSetTargetLocation_Move_SlewAbs()

DLLAPI long ER_STDCALL erSetTargetLocation_Move_SlewAbs ( ER_TARGET_LOCATION_HND  er_tarloc_hnd,
double *  JointPos,
double  speed_percent = 0,
double  override_speed = 0,
double *  Tool = 0 
)

Move_SlewAbs, not synchronized PTP, motion definition for target location
Remarks
Use erAddTargetLocation() to create a valid target location handle er_tarloc_hnd
The target location will be set to valid after successful motion definition, see ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid()

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
[in]JointPostarget joint location [m,rad], maximum size ER_KIN_DOFS
[in]speed_percentpercentage speed definition [>0-1000%], 0 will use template definitions
[in]override_speedpercentage override_speed definition [>0-1000%], 0 will use template definitions
[in]ToolTool vector, definition Pxyz [m] Rxyz [rad] ER_DOF6, 0 will use template definitions
Return values
0- Ok
1- Error

◆ erSetTool()

DLLAPI long ER_STDCALL erSetTool ( ER_HND  er_hnd,
DFRAME tTw 
)

Set robot tool (TCP) data w.r.t. robots flange.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]tTwtool data w.r.t. the robots flange ('t' - tip, 'w' - wrist). DFRAME
Return values
0- OK
1- Error, invalid handle

◆ erSetToolOffset()

DLLAPI long ER_STDCALL erSetToolOffset ( ER_HND  er_hnd,
DFRAME wTwo 
)

Set robot tool offset (TCP) data w.r.t. robots fix Tcp.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]wTwotool offset data w.r.t. the robots fix tcp ('w' - wrist, 'wo' - wrist offset). DFRAME
Return values
0- OK
1- Error, invalid handle

◆ erSetTrackingWindow()

DLLAPI long ER_STDCALL erSetTrackingWindow ( ER_HND  er_hnd,
long  active,
double  up,
double  down,
TErTrackingWindowID  id_tw,
char *  name = NULL 
)

Activates and deactivates the boundaries for a Tracking Window.
This function enables a tracking window (typical for a painting applications) and defines the boudary Up- and Down-Stream values.
This function works in conjunction with erConnectConveyor(), erConnectConveyorSetSync() and erSetconveyorStartCondition()
Remarks
Connect the robot first with a conveyor, using erConnectConveyor(), and set the synchronization to ER_SYNC_ON, using erConnectConveyorSetSync(), before activating the tracking window.
A tracking window can have one of the following status:
0: TRK_WND_NOT_ACTIVE, 1: TRK_WND_WAITING, 2: TRK_WND_INSIDE or 3: TRK_WND_OUT_OF_BOUNDARY
and will be obtained with the NEXT_STEP_DATA when calling erGET_NEXT_STEP()
Activating a tracking window sets the status to TRK_WND_WAITING.
Deactivating a tracking window sets the status to TRK_WND_NOT_ACTIVE.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]active0: disable, 1: enable
[in]upboudary Up stream, where tracking window begins, [m]
[in]downboudary Down stream, where tracking window ends, [m]
[in]id_twunique tracking window identifier TErTrackingWindowID
[in]nameoptional name for the tracking window, per default = NULL
Return values
0- OK
1- Error, not licensed option, invalid handle

◆ erSetTurn_interval()

DLLAPI long ER_STDCALL erSetTurn_interval ( ER_HND  er_hnd,
double *  turn_interval 
)

Set the turn interval for each robot joints
The kinematics turn interval turn_interval are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs()
See also erGetTurn_interval()

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]turn_intervalturn interval, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erSetTurn_offset()

DLLAPI long ER_STDCALL erSetTurn_offset ( ER_HND  er_hnd,
double *  turn_offset 
)

Set the turn offset for each robot joints
The kinematics turn offset turn_offset are in units [m] for prismatic joint type
and [rad] for rotational joint type
Get the number of joints with erGet_num_dofs()
See also erGetTurn_offset()

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]turn_offsetturn offset, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erSetTurn_value()

DLLAPI long ER_STDCALL erSetTurn_value ( ER_HND  er_hnd,
long *  turn_value 
)

Set the turn value for each robot joint
The turn value turn_value determine the desired Turn in the target for the inverse kinematics calculation and for the trajectory planning
It takes effect if ER_PTP_TARGET_CALC_MODE_TURNS is set. The givin turn value must be a valid value and depends on the turn interval erSetTurn_interval() and the turn offset erSetTurn_offset(),
and as well from the robot joint location and its configuration.
Get the number of joints with erGet_num_dofs()
See also erGetTurn_value()

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]turn_valueturn value, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erSetVqMax()

DLLAPI long ER_STDCALL erSetVqMax ( ER_HND  er_hnd,
double *  vq_max 
)

Set maximum of robot joint speeds.
Robot joint speeds vq_max are in units [m/s] for prismatic joint type and [rad/s] for rotational joint type.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]vq_maxmaximum of robot joint speeds, max size ER_KIN_DOFS
Return values
0- OK
1- Error, invalid handle

◆ erSetVxMax()

DLLAPI long ER_STDCALL erSetVxMax ( ER_HND  er_hnd,
double  vx_max 
)

Set maximum cartesian speed.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]vx_maxmaximum cartesian speed [m/s]
Return values
0- OK
1- Error, invalid handle

◆ erSetVxOriMax()

DLLAPI long ER_STDCALL erSetVxOriMax ( ER_HND  er_hnd,
double  vx_ori_max 
)

Set maximum cartesian orientation speed.

Parameters
[in]er_hndunique kinematics handle ER_HND
[in]vx_ori_maxmaximum cartesian orientation speed [rad/s]
Return values
0- OK
1- Error, invalid handle

◆ erSTOP_MOTION()

DLLAPI long ER_STDCALL erSTOP_MOTION ( ER_HND  er_hnd)

Stops the on-going motion toward the target.
Opcode 151, Chapter 3.4.8, Page 3-101
See also erCONTINUE_MOTION(), erCANCEL_MOTION()
Remarks
After calling this function, the erGET_NEXT_STEP() should be called repeatedly until its Status is 2 (speed is zero) in order to get the deceleration steps.

Parameters
[in]er_hndunique kinematics handle ER_HND
Return values
0- OK
1- Error, invalid handle
-54- STOP_MOTION is unsuccessful. No motion in progress

◆ erSwapTargetLocation()

DLLAPI long ER_STDCALL erSwapTargetLocation ( ER_TARGET_LOCATION_HND  er_tarloc_hnd1,
ER_TARGET_LOCATION_HND  er_tarloc_hnd2 
)

Swap the order of two target location in a tool path
Remarks
Both target location handle must be in the same tool path.
Use erGetTargetLocationIdx() to get the belonging index for each target location.

Parameters
[in]er_tarloc_hnd11st unique target location handle ER_TARGET_LOCATION_HND
[in]er_tarloc_hnd22nd unique target location handle ER_TARGET_LOCATION_HND
Return values
0- Ok
1- Error

◆ erSwapToolPath()

DLLAPI long ER_STDCALL erSwapToolPath ( ER_TOOLPATH_HND  er_tpth_hnd1,
ER_TOOLPATH_HND  er_tpth_hnd2 
)

Swap two tool pathes.
Swaps the position of two tool path handles.

Parameters
[in]er_tpth_hnd1unique tool path handle ER_TOOLPATH_HND
[in]er_tpth_hnd2unique tool path handle ER_TOOLPATH_HND
Return values
0- OK
1- Error, cannot swap, maybe invalid handles

◆ erTargetLocationReset()

DLLAPI long ER_STDCALL erTargetLocationReset ( ER_TARGET_LOCATION_HND  er_tarloc_hnd)

Reset Target location to default values
Remarks
The target location is marked as invalid.
See ERK_CAPI_TOOLPATH_HEAD::erTargetLocationValid() to set, unset the validity of a target location or request the validity status.

Parameters
[in]er_tarloc_hndunique handle for target location ER_TARGET_LOCATION_HND
Return values
0- Ok
1- Error

◆ erTargetLocationValid()

DLLAPI long ER_STDCALL erTargetLocationValid ( ER_TARGET_LOCATION_HND  er_tarloc_hnd,
long  valid 
)

Validity of a target location
A target location is per default invalid when created e.g. ERK_CAPI_TOOLPATH_TARGETS::erAddTargetLocation() and set to valid when a motion e.g. ERK_CAPI_TOOLPATH_TARGETS::erSetTargetLocation_Move_LIN() is defined.
This method allows to ask the validity of this target location valid=2,
to set the validity of this target location valid=1,
or to unset the validity of this target location valid=0.

Parameters
[in]er_tarloc_hndunique target location handle ER_TARGET_LOCATION_HND
[in]validValidity parameter
Return values
pointerto char for 'target location name', maximum lengths ER_MAXSTR
NULL- Error

◆ erTERMINATE()

DLLAPI long ER_STDCALL erTERMINATE ( ER_HND er_hnd)

Terminates an instance of a robot of the Kernel
Opcode 103, Chapter 3.4.1, Page 3-30
See erUnloadKin()

Parameters
[in,out]er_hndunique kinematics handle, set to NULL after successful call ER_HND
Return values
0- OK
1- Error

◆ erToolPathEnable()

DLLAPI long ER_STDCALL erToolPathEnable ( ER_TOOLPATH_HND  er_tpth_hnd,
long  enable 
)

Enable or disable tool path
Parameter enable is one of ER_ONOFF_DISABLE, ER_ONOFF_ENABLE, ER_ONOFF_STATUS.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
[in]enable
Return values
currentenable status

◆ erToolPathGetConveyorHandle()

DLLAPI ER_HND ER_STDCALL erToolPathGetConveyorHandle ( ER_TOOLPATH_HND  er_tpth_hnd)

Get device conveyor handle belonging to tool path handle.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
Return values
NULL- Error, invalid handle, cannot find device conveyor handle
er_hnddevice conveyor handle

◆ erToolPathGetER_HND()

DLLAPI ER_HND ER_STDCALL erToolPathGetER_HND ( ER_TOOLPATH_HND  er_tpth_hnd)

Device Handle belonging to tool path.
This method is obsolete -> use erToolPathGetRobotHandle()

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
Return values
NULL- Error, invalid handle, cannot find device handle
er_hnddevice handle

◆ erToolPathGetPositionerHandle()

DLLAPI ER_HND ER_STDCALL erToolPathGetPositionerHandle ( ER_TOOLPATH_HND  er_tpth_hnd)

Get device positioner handle belonging to tool path handle.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
Return values
NULL- Error, invalid handle, cannot find device positioner handle
er_hnddevice positioner handle

◆ erToolPathGetRobotHandle()

DLLAPI ER_HND ER_STDCALL erToolPathGetRobotHandle ( ER_TOOLPATH_HND  er_tpth_hnd)

Get device robot handle belonging to tool path handle.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
Return values
NULL- Error, invalid handle, cannot find device robot handle
er_hnddevice robot handle

◆ erToolPathGetTargetLocationFirst()

DLLAPI ER_TARGET_LOCATION_HND ER_STDCALL erToolPathGetTargetLocationFirst ( ER_TOOLPATH_HND  er_tpth_hnd)

Get the first 'target location handle' in the tool path.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
Return values
handlefor target location ER_TARGET_LOCATION_HND

◆ erToolPathGetTargetLocationLast()

DLLAPI ER_TARGET_LOCATION_HND ER_STDCALL erToolPathGetTargetLocationLast ( ER_TOOLPATH_HND  er_tpth_hnd)

Get the last 'target location handle' in the tool path.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
Return values
handlefor target location ER_TARGET_LOCATION_HND

◆ erToolPathGetTargetLocationNumber()

DLLAPI long ER_STDCALL erToolPathGetTargetLocationNumber ( ER_TOOLPATH_HND  er_tpth_hnd)

Get the number of target locations in tool path.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
Return values
0- Error, no targets or invalid handle
number_of_targets

◆ erToolPathGetTrackMotionHandle()

DLLAPI ER_HND ER_STDCALL erToolPathGetTrackMotionHandle ( ER_TOOLPATH_HND  er_tpth_hnd)

Get device track motion handle belonging to tool path handle.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
Return values
NULL- Error, invalid handle, cannot find device track motion handle
er_hnddevice track motion handle

◆ erToolPathLogFileName()

DLLAPI char* ER_STDCALL erToolPathLogFileName ( ER_TOOLPATH_HND  er_tpth_hnd)

Name log file.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
Return values
pointerto char for 'log file name'

◆ erToolPathName()

DLLAPI char* ER_STDCALL erToolPathName ( ER_TOOLPATH_HND  er_tpth_hnd)

Name of tool path.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
Return values
pointerto char for 'tool path name', maximum lengths ER_MAXSTR

◆ erToolPathPrgFileName()

DLLAPI char* ER_STDCALL erToolPathPrgFileName ( ER_TOOLPATH_HND  er_tpth_hnd)

Name program file.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
Return values
pointerto char for 'log program name'

◆ erToolPathReset()

DLLAPI long ER_STDCALL erToolPathReset ( ER_TOOLPATH_HND  er_tpth_hnd)

Reset all tool path target locations.
All target locations defined in tool path er_tpth_hnd are resetted to default values and set to invalid.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
Return values
0- Ok
1- Error

◆ erToolPathResetInitConveyor()

DLLAPI long ER_STDCALL erToolPathResetInitConveyor ( ER_TOOLPATH_HND  er_tpth_hnd,
double *  q_start = NULL 
)

Set initial joint start location for the Conveyor.
Remarks
Read current joint data from loaded Conveyor. This method must be called before the interpolation starts.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
[in]q_startinitial joint start location
Return values
0- Ok
1- Error

◆ erToolPathResetInitPositioner()

DLLAPI long ER_STDCALL erToolPathResetInitPositioner ( ER_TOOLPATH_HND  er_tpth_hnd,
double *  q_start = NULL 
)

Set initial joint start location for the Positioner.
Remarks
Read current joint data from loaded Positioner. This method must be called before the interpolation starts.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
[in]q_startinitial joint start location
Return values
0- Ok
1- Error

◆ erToolPathResetInitRobot()

DLLAPI long ER_STDCALL erToolPathResetInitRobot ( ER_TOOLPATH_HND  er_tpth_hnd,
double *  q_start = NULL 
)

Set initial joint start location for the robot.
Remarks
Read current joint data from loaded robot. This method must be called before the interpolation starts.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
[in]q_startinitial joint start location
Return values
0- Ok
1- Error

◆ erToolPathResetInitTrackMotion()

DLLAPI long ER_STDCALL erToolPathResetInitTrackMotion ( ER_TOOLPATH_HND  er_tpth_hnd,
double *  q_start = NULL 
)

Set initial joint start location for the TrackMotion.
Remarks
Read current joint data from loaded TrackMotion. This method must be called before the interpolation starts.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
[in]q_startinitial joint start location
Return values
0- Ok
1- Error

◆ erToolPathSetConveyorHandle()

DLLAPI long ER_STDCALL erToolPathSetConveyorHandle ( ER_TOOLPATH_HND  er_tpth_hnd,
ER_HND  hnd_Conveyor = NULL 
)

Set conveyor handle belonging to tool path handle.
The tool path handles the conveyor device as external axis, see erConnectConveyor()
hnd_Conveyor=NULL will remove conveyor handle from the tool path.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
[in]hnd_Conveyorunique device track handle ER_HND
Return values
-1- Error, invalid handle, cannot set device conveyor handle
0- Ok, Device conveyor handle set

◆ erToolPathSetInitPos()

DLLAPI long ER_STDCALL erToolPathSetInitPos ( ER_TOOLPATH_HND  er_tpth_hnd,
double  InterpolationTime = 0 
)

Initializes the Trajectory Planner based on current settings.
Remarks
This method must be called before the interpolation starts, see erGET_NEXT_TOOLPATH_STEP()

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
[in]InterpolationTime- sampling rate for interpolation in [ms]
Return values
0- Ok
1- Error

◆ erToolPathSetPositionerHandle()

DLLAPI long ER_STDCALL erToolPathSetPositionerHandle ( ER_TOOLPATH_HND  er_tpth_hnd,
ER_HND  hnd_Positioner = NULL 
)

Set positioner handle belonging to tool path handle.
The tool path handles the positioner device as external axis, see erConnectPositioner()
hnd_Positioner=NULL will remove positioner handle from the tool path.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
[in]hnd_Positionerunique device track handle ER_HND
Return values
-1- Error, invalid handle, cannot set device positioner handle
0- Ok, Device positioner handle set

◆ erToolPathSetTrackMotionHandle()

DLLAPI long ER_STDCALL erToolPathSetTrackMotionHandle ( ER_TOOLPATH_HND  er_tpth_hnd,
ER_HND  hnd_TrackMotion = NULL 
)

Set track motion handle belonging to tool path handle.
The tool path handles the track motion device as external axis, see erConnectTrackMotion()
hnd_TrackMotion=NULL will remove track motion handle from the tool path.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
[in]hnd_TrackMotionunique device track handle ER_HND
Return values
-1- Error, invalid handle, cannot set device track motion handle
0- Ok, Device track motion handle set

◆ erTPth_Fct()

DLLAPI long ER_STDCALL erTPth_Fct ( ER_TOOLPATH_HND  er_tpth_hnd)

Do Fct. ... tbd.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
Return values
0- OK
1- Error, cannot Do Fct

◆ erTPth_PostProc()

DLLAPI long ER_STDCALL erTPth_PostProc ( char *  ApiPP_Dll_Name,
int  FctIdx,
int  FctSubIdx,
ER_TOOLPATH_HND  er_tpth_hnd,
char *  program_name,
char *  target_path = NULL,
int  pp_param = 0,
char *  svalues = NULL 
)

Method for post processing, creating a robot program for a tool path
An example Visual Studio Project is available, creating a robot program for KUKA Controller.
The name of the DLL is user defined, e.g. 'EasySimKernel_apippx64.dll'
Remarks
The DLL is loaded and linked will calling this method. Thus, the DLL can be generated again without restarting the Host application.
This allows quick changes and adjustments in the shop floor.

// Example:
ER_TOOLPATH_HND my_tp_hnd = er_toolpath_hnds[0]; // the one to work with
// Calling PostProcess
char *ApiPP_Dll_Name = {"EasySimKernel_apippx64.dll"}; // ApiPP_Dll_Name Name of ERK_APIPP DLL
int pp_FctIdx = 1; // FctIdx main function idx = [1..]
int pp_FctSubIdx = 1; // FctSubIdx sub function idx = [1..] corresponding to main function idx
char *program_name = {"Kuka-KR60-3-HA"}; // program_name Robot program name without extension
char *target_path = NULL; // target_path target path of created robot program
int pp_param = 0; // pp_param individual input value
char *pp_svalues = {"0 0 0"}; // svalues string value containing individual input values corresponding to pp_param
int res = erk_toolpath_apipp.erTPth_PostProc(ApiPP_Dll_Name,pp_FctIdx,pp_FctSubIdx,my_tp_hnd, program_name,target_path,pp_param,pp_svalues);
if(!ret)
return 1; // failed
// success, continue
...
Parameters
[in]ApiPP_Dll_NameName of ERK_APIPP DLL
[in]FctIdxmain function idx = [1..]
[in]FctSubIdxsub function idx = [1..] corresponding to main function idx
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
[in]program_nameRobot program name without extension
[in]target_pathtarget path of created robot program
[in]pp_paramindividual input value
[in]svaluesstring value containing individual input values corresponding to pp_param
Return values
0- OK
1- Error, cannot performe task

◆ erTPth_TBox_Fct()

DLLAPI long ER_STDCALL erTPth_TBox_Fct ( int  FctIdx,
int  FctSubIdx,
ER_TOOLPATH_HND  er_tpth_hnd,
int  constraint_param,
char *  svalues = NULL 
)

Method for miscellaneous tool path calculations Requires DLL EasySimKernel_tboxx64.dll.

Parameters
[in]FctIdxmain function idx = [1..]
[in]FctSubIdxsub function idx = [1..] corresponding to main function idx
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
[in]constraint_paramconstraint parameter is an individual bitwise-inclusive-OR operator (|)
[in]svaluesstring value containing individual input values corresponding to constraint_param
Return values
0- OK
1- Error, cannot performe task

◆ erUnloadKin()

DLLAPI long ER_STDCALL erUnloadKin ( ER_HND er_hnd)

Unload an instance of kinematics of the Kernel.
Unloads an instance of kinematics givin by the unique kinematics handle.
Unloading a kinematics will call callback function TerFreeGeometryProc for each geometry belonging to this kinematics.
The number of loaded kinematics will be decremented.
This kinematics handle er_hnd is set to NULL and is not valid after calling this function.

Parameters
[in,out]er_hndunique kinematics handle set to NULL after successful call ER_HND
Return values
0- OK
1- Error

◆ erUnloadTargetLocation()

DLLAPI long ER_STDCALL erUnloadTargetLocation ( ER_TARGET_LOCATION_HND er_tarloc_hnd)

Unload/delete a target location from a tool path
Remarks
Use erGetTargetLocationNumber() to receive the number of remaining target locations in the tool path.

Parameters
[in,out]er_tarloc_hndunique target location handle set to NULL after successful call ER_TARGET_LOCATION_HND
Return values
0- Ok
1- Error

◆ erUnloadTool()

DLLAPI long ER_STDCALL erUnloadTool ( ER_HND  er_hnd)

Unload a kinematics tool.
Unloads a kinematics tool givin by the unique kinematics handle.
Unloading a kinematics tool will call callback function TerFreeGeometryProc for each geometry belonging to this kinematics tool.
Remarks
This kinematics handle er_hnd is still valid after calling this function.

Parameters
[in]er_hndunique kinematics handle ER_HND
Return values
0- OK
1- Error

◆ erUnloadToolPath()

DLLAPI long ER_STDCALL erUnloadToolPath ( ER_TOOLPATH_HND er_tpth_hnd)

Unload an instance of a kinematics tool path.

Parameters
[in,out]er_tpth_hndunique tool path handle set to NULL after successful call ER_TOOLPATH_HND
Return values
0- OK
1- Error

◆ erUpdateGeo()

DLLAPI long ER_STDCALL erUpdateGeo ( ER_HND  er_hnd)

Updates all geometry location for each robot joint. This function causes the call of callback function TerUpdateGeometryProc().
The resulted geometry location w.r.t. robot base is the product of
KinMat and GeoMat.

Parameters
[in]er_hndunique kinematics handle ER_HND
Return values
0- OK
1- Error, invalid handle

◆ erUpdateKin()

DLLAPI long ER_STDCALL erUpdateKin ( ER_HND  er_hnd)

Updates the complete kinematics. This function calculates the location of all axis coorsys, the robots tip and tcp w.r.t. robot base.
In most cases the forward kinematics calculation is executed.
Call this function first, before retrieving the location of axis coorsys.

Parameters
[in]er_hndunique kinematics handle ER_HND
Return values
0- OK
1- Error, invalid handle

◆ GetEventsTemplateHnd()

DLLAPI ER_TARGET_EVENTS_HND ER_STDCALL GetEventsTemplateHnd ( ER_TOOLPATH_HND  er_tpth_hnd)

Get events template data from tool path.
Get the events template data belonging to the tool path er_tpth_hnd.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
Return values
events_template_dataER_TARGET_EVENTS_HND
NULL- Error

◆ GetExtAxConveyorTemplate()

DLLAPI ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND ER_STDCALL GetExtAxConveyorTemplate ( ER_TOOLPATH_HND  er_tpth_hnd)

Get external axis conveyor template data from tool path.
Get the external axis conveyor template data belonging to the tool path er_tpth_hnd.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
Return values
extax_conveyor_template_dataER_TARGET_EXTAX_DEVICE_CONVEYOR_HND
NULL- Error

◆ GetExtAxPositionerTemplate()

DLLAPI ER_TARGET_EXTAX_DEVICE_POSITIONER_HND ER_STDCALL GetExtAxPositionerTemplate ( ER_TOOLPATH_HND  er_tpth_hnd)

Get external axis positioner template data from tool path.
Get the external axis positioner template data belonging to the tool path er_tpth_hnd.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
Return values
extax_positioner_template_dataER_TARGET_EXTAX_DEVICE_POSITIONER_HND
NULL- Error

◆ GetExtAxTrackMotionTemplate()

DLLAPI ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND ER_STDCALL GetExtAxTrackMotionTemplate ( ER_TOOLPATH_HND  er_tpth_hnd)

Get external axis track motion template data from tool path.
Get the external axis track motion template data belonging to the tool path er_tpth_hnd.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
Return values
extax_track_motion_template_dataER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND
NULL- Error

◆ GetMotionAttributesTemplateHnd()

DLLAPI ER_TARGET_ATTRIBUTES_HND ER_STDCALL GetMotionAttributesTemplateHnd ( ER_TOOLPATH_HND  er_tpth_hnd)

Get attributes template data from tool path.
Get the attributes template data belonging to the tool path er_tpth_hnd.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
Return values
attributes_template_dataER_TARGET_ATTRIBUTES_HND
NULL- Error

◆ GetMoveCPTemplate()

DLLAPI ER_TARGET_MOVE_CP_HND ER_STDCALL GetMoveCPTemplate ( ER_TOOLPATH_HND  er_tpth_hnd)

Get move cp template data from tool path.
Get the move cp template data belonging to the tool path er_tpth_hnd.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
Return values
move_cp_template_dataER_TARGET_MOVE_CP_HND
NULL- Error

◆ GetMoveJointTemplate()

DLLAPI ER_TARGET_MOVE_JOINT_HND ER_STDCALL GetMoveJointTemplate ( ER_TOOLPATH_HND  er_tpth_hnd)

Get move joint template data from tool path.
Get the move joint template data belonging to the tool path er_tpth_hnd.

Parameters
[in]er_tpth_hndunique tool path handle ER_TOOLPATH_HND
Return values
move_joint_template_dataER_TARGET_MOVE_JOINT_HND
NULL- Error