EASY-ROB™ Kernel  v8.606
Static Public Member Functions | List of all members
ERK_CAPI_ROB_KIN Class Reference

Method class forward-, Inverse kinematics, desired robot joints, tools, position w.r.t. world and reference system. More...

#include <erk_capi.h>

Inheritance diagram for ERK_CAPI_ROB_KIN:
ERK_CAPI_ROB ERK_CAPI_DEVICES ERK_CAPI

Static Public Member Functions

static DLLAPI int 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...
 
static DLLAPI int ER_STDCALL erGet_num_dofs (ER_HND er_hnd)
 Get number of active robot joints. More...
 
static DLLAPI int ER_STDCALL erGet_num_dofs_passive (ER_HND er_hnd)
 Get number of passive robot joints. More...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int ER_STDCALL erGetNumConfigs (ER_HND er_hnd, long *num_configs)
 Get number of possible robot configurations. More...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int ER_STDCALL erSetTool (ER_HND er_hnd, DFRAME *tTw)
 Set robot tool (TCP) data w.r.t. robots flange. More...
 
static DLLAPI int ER_STDCALL erGetTool (ER_HND er_hnd, DFRAME *tTw)
 Get robot tool (TCP) data w.r.t. robots flange. More...
 
static DLLAPI int ER_STDCALL erGetToolFix (ER_HND er_hnd, DFRAME *tTwfix)
 Get robot tool fix (TCP) data w.r.t. robots flange, without Tool Offset. More...
 
static DLLAPI int ER_STDCALL erSetToolOffset (ER_HND er_hnd, DFRAME *wTwo)
 Set robot tool offset (TCP) data w.r.t. robots fix Tcp. More...
 
static DLLAPI int ER_STDCALL erGetToolOffset (ER_HND er_hnd, DFRAME *wTwo)
 Get robot tool offset (TCP) data w.r.t. robots fix Tcp. More...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int ER_STDCALL erSetRobotBase (ER_HND er_hnd, DFRAME *iTb)
 Set robot base location w.r.t. world. More...
 
static DLLAPI int ER_STDCALL erGetRobotBase (ER_HND er_hnd, DFRAME *iTb)
 Get robot base location w.r.t. world. More...
 
static DLLAPI int ER_STDCALL erGetRobotBaseTip (ER_HND er_hnd, DFRAME *bTt)
 Get robot tip (flange) location w.r.t. robot base. More...
 
static DLLAPI int ER_STDCALL erGetRobotBaseTcp (ER_HND er_hnd, DFRAME *bTw)
 Get robot tcp location w.r.t. robot base. More...
 
static DLLAPI int ER_STDCALL erGetWorldTip (ER_HND er_hnd, DFRAME *iTt)
 Get robot tip location w.r.t. inertia (world) coorsys. More...
 
static DLLAPI int ER_STDCALL erGetWorldTcp (ER_HND er_hnd, DFRAME *iTw)
 Get robot tcp location w.r.t. inertia (world) coorsys. More...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int ER_STDCALL erGetExtTcpRobotBase (ER_HND er_hnd, DFRAME *bText)
 Get location of external TCP w.r.t robot base. More...
 
static DLLAPI int ER_STDCALL erSetExtTcpWorld (ER_HND er_hnd, DFRAME *iText)
 Set location of external TCP w.r.t inertia (world). More...
 
static DLLAPI int ER_STDCALL erGetExtTcpWorld (ER_HND er_hnd, DFRAME *iText)
 Get location of external TCP w.r.t inertia (world). More...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
- Static Public Member Functions inherited from ERK_CAPI_DEVICES
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI ER_HND ER_STDCALL erConnectPositionerGetHND (ER_HND er_hnd)
 Get robots connection handle between robot and positioner.
See also erConnectPositioner() More...
 
static DLLAPI int 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...
 
static DLLAPI int ER_STDCALL erConnectPositionerGetSync (ER_HND er_hnd)
 Get robots synchronization flag for synchronization between robot and positioner.
See also erConnectPositionerSetSync() More...
 
static DLLAPI int 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...
 
static DLLAPI ER_HND ER_STDCALL erConnectConveyorGetHND (ER_HND er_hnd)
 Get robots connection handle between robot and conveyor.
See also erConnectConveyor() More...
 
static DLLAPI int 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...
 
static DLLAPI int ER_STDCALL erConnectConveyorGetSync (ER_HND er_hnd)
 Get robots synchronization flag for synchronization between robot and conveyor.
See also erConnectConveyorSetSync() More...
 
static DLLAPI int 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...
 
static DLLAPI ER_HND ER_STDCALL erConnectTrackMotionGetHND (ER_HND er_hnd)
 Get robots connection handle between robot and track motion.
See also erConnectTrackMotion() More...
 
static DLLAPI int 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...
 
static DLLAPI int ER_STDCALL erConnectTrackMotionGetSync (ER_HND er_hnd)
 Get robots synchronization flag for synchronization between robot and track motion.
See also erConnectTrackMotionSetSync() More...
 
static DLLAPI int 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...
 
static DLLAPI ER_HND ER_STDCALL erConnectRobotGetHND (ER_HND er_hnd)
 Get robots connection handle between robot and slave robot.
See also erConnectRobot() More...
 
static DLLAPI int 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...
 
static DLLAPI int ER_STDCALL erConnectRobotGetSync (ER_HND er_hnd)
 Get robots synchronization flag for synchronization between robot and slave robot.
See also erConnectRobotSetSync() More...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int 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...
 
static DLLAPI int ER_STDCALL erGet_n_Kin (ER_HND er_hnd)
 Get the number of loaded kinematics. More...
 
static DLLAPI int 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...
 
static DLLAPI int ER_STDCALL erGetName (ER_HND er_hnd, char *name)
 Get the name of the robot. More...
 

Additional Inherited Members

- Static Public Attributes inherited from ERK_CAPI_ROB
static ERK_CAPI_ROB_KIN erk_capi_rob_kin
 Method class forward-, Inverse kinematics, desired robot joints, tools, position w.r.t. world and reference system. More...
 
static ERK_CAPI_ROB_KIN_API erk_capi_rob_kin_api
 Method class API for forward- and Inverse kinematics. More...
 
static ERK_CAPI_ROB_ATRIBUTES erk_capi_rob_attributes
 Method class for robot/device attributes, travel ranges, home position, device name, ... More...
 
- Static Public Attributes inherited from ERK_CAPI_DEVICES
static ERK_CAPI_ROB erk_capi_rob
 Method class kinematics and transformations. More...
 
static ERK_CAPI_MOP erk_capi_mop
 Method class for motion planning and -execution. More...
 
static ERK_CAPI_TOOLPATH erk_capi_toolpath
 Method class for tool path definition. More...
 
- Static Public Attributes inherited from ERK_CAPI
static ERK_CAPI_ADMIN erk_capi_admin
 Method class to administrate this Robotics Simulation Kernel. More...
 
static ERK_CAPI_DEVICES erk_capi_devices
 Method class to create, attach, update devices, for kinematics calculations and for motion planning and -execution. More...
 
static ERK_CAPI_SIM erk_capi_sim
 Method class for simulation settings. More...
 
static ERK_CAPI_AUTOPATH erk_capi_autopath
 Method class for collision free path planning. More...
 
static ERK_CAPI_TARGETS erk_capi_targets
 Method class for paths and tags. More...
 
static ERK_CAPI_GEO erk_capi_geo
 Method class to handle 3D Geometry Data. More...
 
static ERK_CAPI_SYS erk_capi_sys
 Method class for mathematical calculations, simulation status, units. More...
 

Detailed Description

Method class forward-, Inverse kinematics, desired robot joints, tools, position w.r.t. world and reference system.

Member Function Documentation

◆ erFindConfig()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erFindConfig ( ER_HND  er_hnd,
long *  config 
)
static

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

◆ erGet_num_dofs()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGet_num_dofs ( ER_HND  er_hnd)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGet_num_dofs_passive ( ER_HND  er_hnd)
static

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

◆ erGetBaseRobotBase()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetBaseRobotBase ( ER_HND  er_hnd,
DFRAME bTbase 
)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetBaseWorld ( ER_HND  er_hnd,
DFRAME iTbase 
)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetConfig ( ER_HND  er_hnd,
long *  config 
)
static

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

◆ erGetExtTcpMode()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetExtTcpMode ( ER_HND  er_hnd,
long *  ext_tcp_mode 
)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetExtTcpRobotBase ( ER_HND  er_hnd,
DFRAME bText 
)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetExtTcpWorld ( ER_HND  er_hnd,
DFRAME iText 
)
static

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

◆ erGetIDs()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetIDs ( ER_HND  er_hnd,
long *  kin_id,
long *  inv_id,
long *  inv_sub_id 
)
static

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

◆ erGetJointAccels()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetJointAccels ( ER_HND  er_hnd,
double *  a_solut 
)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetJointAttachDof_active ( ER_HND  er_hnd,
long *  jnt_attach_dof_active 
)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetJointAttachDof_passive ( ER_HND  er_hnd,
long *  jnt_attach_dof_passive 
)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetJointChainTypes ( ER_HND  er_hnd,
long *  jnt_chain_type_active 
)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetJointChainTypes_passive ( ER_HND  er_hnd,
long *  jnt_chain_type_passive 
)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetJointDirections ( ER_HND  er_hnd,
long *  jnt_direction_active 
)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetJointDirections_passive ( ER_HND  er_hnd,
long *  jnt_direction_passive 
)
static

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

◆ erGetJointFrameRobotBase()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetJointFrameRobotBase ( ER_HND  er_hnd,
long  active_jnt_no,
DFRAME bTax 
)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetJointFrameRobotBase_passive ( ER_HND  er_hnd,
long  passive_jnt_no,
DFRAME bTax 
)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetJointFrameWorld ( ER_HND  er_hnd,
long  active_jnt_no,
DFRAME iTax 
)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetJointFrameWorld_passive ( ER_HND  er_hnd,
long  passive_jnt_no,
DFRAME iTax 
)
static

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

◆ erGetJoints()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetJoints ( ER_HND  er_hnd,
double *  q_solut 
)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetJoints_passive ( ER_HND  er_hnd,
double *  q_passive 
)
static

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

◆ erGetJointSolutions()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetJointSolutions ( ER_HND  er_hnd,
double *  q_solutions,
long *  q_warnings 
)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetJointSpeeds ( ER_HND  er_hnd,
double *  v_solut 
)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetJointTypes ( ER_HND  er_hnd,
long *  jnt_type_active 
)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetJointTypes_passive ( ER_HND  er_hnd,
long *  jnt_type_passive 
)
static

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

◆ erGetMoveBaseMode()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetMoveBaseMode ( ER_HND  er_hnd,
long *  move_base_mode 
)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetMoveBasepJointIdx ( ER_HND  er_hnd,
long *  move_base_pjointidx 
)
static

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

◆ erGetNumConfigs()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetNumConfigs ( ER_HND  er_hnd,
long *  num_configs 
)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetpJointMoveBase ( ER_HND  er_hnd,
DFRAME pjntTmb 
)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetRobotBase ( ER_HND  er_hnd,
DFRAME iTb 
)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetRobotBaseTcp ( ER_HND  er_hnd,
DFRAME bTw 
)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetRobotBaseTip ( ER_HND  er_hnd,
DFRAME bTt 
)
static

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

◆ erGetRobotBaseToMoveBase()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetRobotBaseToMoveBase ( ER_HND  er_hnd,
DFRAME bTmb 
)
static

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

◆ erGetTool()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetTool ( ER_HND  er_hnd,
DFRAME tTw 
)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetToolFix ( ER_HND  er_hnd,
DFRAME tTwfix 
)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetToolOffset ( ER_HND  er_hnd,
DFRAME wTwo 
)
static

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

◆ erGetWorldTcp()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetWorldTcp ( ER_HND  er_hnd,
DFRAME iTw 
)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erGetWorldTip ( ER_HND  er_hnd,
DFRAME iTt 
)
static

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

◆ erInvKinRobotBaseTcp()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erInvKinRobotBaseTcp ( ER_HND  er_hnd,
DFRAME bTw 
)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erInvKinRobotBaseTip ( ER_HND  er_hnd,
DFRAME bTt 
)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erInvKinWorldTcp ( ER_HND  er_hnd,
DFRAME iTw 
)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erInvKinWorldTip ( ER_HND  er_hnd,
DFRAME iTt 
)
static

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

◆ erSetBaseRobotBase()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erSetBaseRobotBase ( ER_HND  er_hnd,
DFRAME bTbase 
)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erSetBaseWorld ( ER_HND  er_hnd,
DFRAME iTbase 
)
static

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

◆ erSetConfig()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erSetConfig ( ER_HND  er_hnd,
long  config 
)
static

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

◆ erSetExtTcpMode()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erSetExtTcpMode ( ER_HND  er_hnd,
long  ext_tcp_mode 
)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erSetExtTcpRobotBase ( ER_HND  er_hnd,
DFRAME bText,
long  use_ext_flange 
)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erSetExtTcpWorld ( ER_HND  er_hnd,
DFRAME iText 
)
static

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

◆ erSetJoint()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erSetJoint ( ER_HND  er_hnd,
double  q_solut,
long  jnt_no 
)
static

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

◆ erSetJoints()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erSetJoints ( ER_HND  er_hnd,
double *  q_solut 
)
static

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

◆ erSetRobotBase()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erSetRobotBase ( ER_HND  er_hnd,
DFRAME iTb 
)
static

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

◆ erSetTool()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erSetTool ( ER_HND  er_hnd,
DFRAME tTw 
)
static

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()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erSetToolOffset ( ER_HND  er_hnd,
DFRAME wTwo 
)
static

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

◆ erUpdateKin()

static DLLAPI int ER_STDCALL ERK_CAPI_ROB_KIN::erUpdateKin ( ER_HND  er_hnd)
static

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

The documentation for this class was generated from the following file: