EASY-ROBâ„¢ Kernel  v8.307
 All Classes Files Functions Variables Typedefs Macros Pages
erk_capi.h
Go to the documentation of this file.
1 /*
2  EASY-ROB Robotics Simulation Kernel
3 
4  EASY-ROB Software GmbH
5 
6  Copyright (c) 1996 - 2021
7 
8  Date: JUL 2021
9  Version: 8.307
10 
11  Header file
12  erk_capi.h
13 
14  Autor
15  EASY-ROB Software GmbH
16 
17  Version
18  v6303 nov 2013
19  v6306 may 2014
20  v6307 aug 2014
21  v6310 dec 2014
22  v6601 jan 2015
23  v6604 mar 2015
24  v6606 jul 2015
25  v6608 jul 2015 VS 2012
26  v6609 jul 2015 erColl_ChkCollision_res() thread save
27  v6610 sep 2015 erColl_ChkCollision_res_free()
28  v6611 dec 2015 Support ER_MOTION_FILTER_GEO for external axis
29  v6612 jan 2016 BugFix MultiKIN Option, erGet_n_Kin_IR()
30  v7001 mar 2016 Major Release, MatrixLock
31  v7002 jun 2016
32  v7003 jul 2016 0-DOF Devices
33  v7004 aug 2016
34  v7005 sep 2016
35  v7302 apr 2017
36  v7305 sep 2017
37  v7306 dec 2017
38  v7309 mar 2018
39  v7601 apr 2018
40  v7602 may 2018 API PostProc
41  v7603 jul 2018
42  v7606 nov 2018
43  v7607 feb 2019 autopath
44  v8001 aug 2019
45  v8003 sep 2019
46  v8004 dec 2019 GEOMNGR
47  v8005 feb 2020 ToolOffset
48  v8006 may 2020 API Kin
49  v8007 jun 2020 ER_KIN_PASSIVE_JNTS = 36
50  v8301 jul 2020 ERK_CAPI_GEO_MNGR integration API
51  v8304 dec 2020 Major Release
52  v8307 jul 2021 additional methods to access kinematics attributes, license priority ER_LICENSE_PRIORITY_LMNGR, ER_LICENSE_PRIORITY_LOCAL
53 */
54 
55 #ifndef _erk_capi_h
56 #define _erk_capi_h
57 
58 #include "erk_capi_types.h"
59 
60 // Forward Declarations
61 class ERK_CAPI;
62 
63 class ERK_CAPI_ADMIN;
64 class ERK_CAPI_CALLBACKS;
65 
66 class ERK_CAPI_DEVICES;
67 class ERK_CAPI_ROB;
68 class ERK_CAPI_ROB_KIN;
71 class ERK_CAPI_MOP;
72 class ERK_CAPI_MOP_DATA;
73 class ERK_CAPI_MOP_PATH;
74 class ERK_CAPI_MOP_PREP;
75 class ERK_CAPI_MOP_EXEC;
76 class ERK_CAPI_TOOLPATH;
91 
92 class ERK_CAPI_SIM;
94 
95 class ERK_CAPI_AUTOPATH;
96 
97 class ERK_CAPI_TARGETS;
98 
99 class ERK_CAPI_GEO;
100 class ERK_CAPI_GEO_MNGR;
101 
102 class ERK_CAPI_SYS;
105 
106 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ER_CAPI
108 // class ERK_CAPI
110 
113 class ERK_CAPI
114 {
115 public:
116 
120 
124 
128 
132 
136 
140 
144 
145 };
146 
147 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_ADMIN
149 // class ERK_CAPI_ADMIN
150 //
154 class ERK_CAPI_ADMIN : public ERK_CAPI
155 {
159 
160 public:
164  static DLLAPI int ER_STDCALL erKernelGetVersion(void);
165 
174  static DLLAPI int ER_STDCALL erKernelSetLicensePriority(int license_priority);
175 
183  static DLLAPI int ER_STDCALL erKernelGetLicensePriority(int *license_priority);
184 
192  static DLLAPI int ER_STDCALL erKernelSetLicenseFile(char *license_file);
193 
200  static DLLAPI int ER_STDCALL erKernelGetLicenseFile(char *license_file);
201 
227  static DLLAPI int ER_STDCALL erKernelInitialize(char *HostApplicationPath, char *Sold_To_ID, long mode=0);
228 
234  static DLLAPI void ER_STDCALL erKernelFree(void);
235 
241  static DLLAPI int ER_STDCALL erKernelGetLicense(char *hw_id);
242 
248  static DLLAPI int ER_STDCALL erKernelGetHardwareID(char *hw_id);
249 
255  static DLLAPI int ER_STDCALL erKernelGetOptions(char *opt);
256 
262  static DLLAPI int ER_STDCALL erKernelGetOptionsDisabled(char *nopt);
263 };
264 
265 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_CALLBACKS
267 // class ERK_CAPI_CALLBACKS
268 //
273 {
274 public:
275 
276  /* AddToHostLog
277  Fügt dem Log der Hostanwendung einen Eintrag hinzu, oder gibt eine Statusmeldung in der
278  Statuszeile aus.
279  */
284  static DLLAPI void ER_STDCALL erSetCallBack_LogProc(TerLogProc Handler);
285 
286  /* Enable/Disable
287  AddToHostLog messages
288  */
307  static DLLAPI void ER_STDCALL erEnableCallBack_LogProc(long onoff);
308 
309  /* HostLoadGeometry
310  Fordert die Hostanwendung auf eine Geometrie aus einer Datei zu laden.
311 
312  ErHandle: Handle der Kinematik, der die Geometrie zugeordnet werden soll.
313  GeoHandle: Handle auf eine eventuell schon zuvor geladene Geomtrie der Kinematik
314  Funktioniert derzeit nicht und muss 0 sein.
315  Scaling: Skalierungsfactor mit dem die Geomtrie skaliert werden soll.
316  GeoMat: Eine Transformation zur Lagekorrektur der Geometrie.
317  FileName: Name der Datei, die geladen werden soll. Derzeit wird ein vollständiger Pfad erwartet.
318 
319  Returns: Handle auf die geladene Geomtrie. Im Fehlerfall wird 0 zurückgeliefert
320  */
327 
328  /* HostUpdateGeometry
329  Fordert die Hostanwendung auf die Kinematiktransformation der Geometrie zu aktualisieren.
330 
331  ErHandle: Handle der Kinematik, der die Geometrie zugeordnet werden soll.
332  GeoHandle: Handle auf die Geomtrie, wie von "HostLoadGeometry" geliefert.
333  KinMat: Die neue Transformation.
334 
335  Returns: Im Fehlerfall 1, ansonsten 0
336  */
343 
344  /* HostFreeGeometry
345  Fordert die Hostanwendung die Geometrie freizugeben.
346 
347  ErHandle: Handle der Kinematik, der die Geometrie zugeordnet werden soll.
348  GeoHandle: Handle auf die Geomtrie, wie von "HostLoadGeometry" geliefert.
349 
350  Returns: Im Fehlerfall 1, ansonsten 0
351  */
358 
359  /* HostGetActualTravelRanges
360  Fordert die Hostanwendung die Travel Ranges zu berechnen.
361 
362  ErHandle: Handle der Kinematik, der die Travel Ranges zugeordnet werden soll.
363 
364  Returns: Im Fehlerfall 1, ansonsten 0
365  */
372  /* HostNotify
373  Gibt Meldung an die Hostanwendung.
374  */
381 
382  /* HostGrpSync
383  GrpSync IO Hostanwendung.
384  */
390 };
391 
392 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_DEVICES
394 // class ERK_CAPI_DEVICES
395 //
400 {
401 public:
405 
409 
413 
414 public:
425  static DLLAPI int ER_STDCALL erInitKin(ER_HND *er_hnd, Host_HND host_hnd=NULL);
426 
427  /* erUnloadKin
428  Unload Robot Handle
429  Return 0-OK, 1-Error
430  */
440  static DLLAPI int ER_STDCALL erUnloadKin(ER_HND *er_hnd);
441 
442  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
443  //
444  // erConnect* NEW_050402
445  //
446  // erConnectPositioner erConnectPositionerSetSync erConnectPositionerGetSync
447  // erConnectConveyor erConnectConveyorSetSync erConnectConveyorGetSync
448  // erConnectTrackMotion erConnectTrackMotionSetSync erConnectTrackMotionGetSync
449  // erConnectRobot erConnectRobotSetSync erConnectRobotGetSync
450  //
451  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
452  /* erConnectPositioner
453  Connects Positioner Kinematik mit dem Handle 'er_hnd_connect' zum Roboter mit dem Handle 'er_hnd'
454  Return 0-OK, 1-Error
455  */
481  static DLLAPI int ER_STDCALL erConnectPositioner(ER_HND er_hnd, ER_HND er_hnd_connect);
482 
490 
491  /* erConnectPositionerSetSync
492  Setzt Sync Flag der Positioner Kinematik
493  Return 0-OK, 1-Error
494  */
504  static DLLAPI int ER_STDCALL erConnectPositionerSetSync(ER_HND er_hnd, long connect_sync);
505 
506  /* erConnectPositionerGetSync
507  Liest Sync Flag der Positioner Kinematik
508  Return -1-Error, ER_SYNC_UNDEF, ER_SYNC_OFF, ER_SYNC_ON
509  */
519 
520  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
521  /* erConnectConveyor
522  Connects Conveyor Kinematik mit dem Handle 'er_hnd_connect' zum Roboter mit dem Handle 'er_hnd'
523  Return 0-OK, 1-Error
524  */
550  static DLLAPI int ER_STDCALL erConnectConveyor(ER_HND er_hnd, ER_HND er_hnd_connect);
551 
559 
560  /* erConnectConveyorSetSync
561  Setzt Sync Flag der Conveyor Kinematik
562  Return 0-OK, 1-Error
563  */
573  static DLLAPI int ER_STDCALL erConnectConveyorSetSync(ER_HND er_hnd, long connect_sync);
574 
575  /* erConnectConveyorGetSync
576  Liest Sync Flag der Conveyor Kinematik
577  Return -1-Error, ER_SYNC_UNDEF, ER_SYNC_OFF, ER_SYNC_ON
578  */
588 
589  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
590  /* erConnectTrackMotion
591  Connects Track Kinematik mit dem Handle 'er_hnd_connect' zum Roboter mit dem Handle 'er_hnd'
592  Return 0-OK, 1-Error
593  */
619  static DLLAPI int ER_STDCALL erConnectTrackMotion(ER_HND er_hnd, ER_HND er_hnd_connect);
620 
628 
629  /* erConnectTrackMotionSetSync
630  Setzt Sync Flag der TrackMotion Kinematik
631  Return 0-OK, 1-Error
632  */
642  static DLLAPI int ER_STDCALL erConnectTrackMotionSetSync(ER_HND er_hnd, long connect_sync);
643  /* erConnectTrackMotionGetSync
644  Liest Sync Flag der TrackMotion Kinematik
645  Return -1-Error, ER_SYNC_UNDEF, ER_SYNC_OFF, ER_SYNC_ON, ER_SYNC_CONVEYOR
646  */
657 
658  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
659  /* erConnectRobot
660  Connects Robot Kinematik mit dem Handle 'er_hnd_connect' zum Roboter mit dem Handle 'er_hnd'
661  Return 0-OK, 1-Error
662  */
688  static DLLAPI int ER_STDCALL erConnectRobot(ER_HND er_hnd, ER_HND er_hnd_connect);
689 
697 
698  /* erConnectRobotSetSync
699  Setzt Sync Flag der Robot Kinematik
700  Return 0-OK, 1-Error
701  */
711  static DLLAPI int ER_STDCALL erConnectRobotSetSync(ER_HND er_hnd, long connect_sync);
712  /* erConnectRobotGetSync
713  Liest Sync Flag der Robot Kinematik
714  Return -1-Error, ER_SYNC_UNDEF, ER_SYNC_OFF, ER_SYNC_ON
715  */
724  static DLLAPI int ER_STDCALL erConnectRobotGetSync(ER_HND er_hnd);
725 
726  /* erUnloadTool
727  Loescht Tool GeoHandle und setzt Tool auf Ident
728  Important:
729  Damit die TCP Position stimmt, muss ein rob_kin_update() folgen
730  Return 0-OK, 1-Error
731  */
741  static DLLAPI int ER_STDCALL erUnloadTool(ER_HND er_hnd);
742 
743  /* erLoadKin
744  Load an easy-rob robot file with tool
745  Return 0-OK, 1-Error oder Abort
746  */
758  static DLLAPI int ER_STDCALL erLoadKin(ER_HND er_hnd,char *fln_rob);
759 
760  /* erLoadTool
761  Load an easy-rob tool file
762  Return 0-OK, 1-Error oder Abort
763  */
771  static DLLAPI int ER_STDCALL erLoadTool(ER_HND er_hnd,char *fln_tool);
772 
773  /* erGet_n_Kin
774  Return Number of loaded Robots "m_n_rob_kin"
775  */
781  static DLLAPI int ER_STDCALL erGet_n_Kin(ER_HND er_hnd);
782 
783  /* erGet_n_Kin_IR
784  Return Number of loaded Robots with more than 3 joints and inverse kinematics "m_n_rob_kin_ir"
785  */
791  static DLLAPI int ER_STDCALL erGet_n_Kin_IR(ER_HND er_hnd);
792 
793  /* erGetName
794  Name of Robot
795  Return 0-OK, 1-Error oder Abort
796  */
802  static DLLAPI int ER_STDCALL erGetName(ER_HND er_hnd,char *name);
803 };
804 
805 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_ROB
807 // class ERK_CAPI_ROB
808 //
813 {
814 public:
815 
819 
823 
827 };
828 
830 // class ERK_CAPI_ROB_KIN
831 //
837 {
838 public:
839 
840  /* erGetIDs
841  Kinematik ID - kinematischer Typ
842  RRRRRR_id =1; // Manutec
843  TTTRRR_id =2; // Portal
844  RRRRRR_bl_id =3; // ABB back link
845  UNIV_ROB_id =10; // Universelle Koordinaten
846  DH_id =11; // DH Koordinaten
847  inv_id - ID fuer inverse Kineamtik
848  inv_sub_id - Sub ID fuer inverse Kineamtik
849  Return 0-OK, 1-Error oder Abort
850  */
863  static DLLAPI int ER_STDCALL erGetIDs(ER_HND er_hnd,long *kin_id,long *inv_id, long *inv_sub_id);
864 
865  /* erGet_num_dofs
866  Return Number of Robot active joints
867  */
873  static DLLAPI int ER_STDCALL erGet_num_dofs(ER_HND er_hnd);
874 
875  /* erGet_num_dofs_passive
876  Return Number of Robot passive joints
877  */
883  static DLLAPI int ER_STDCALL erGet_num_dofs_passive(ER_HND er_hnd);
884 
885  /* erGetJointTypes
886  gets type of active robot joints 0-Rot 1-Trans
887  Return 0-OK, 1-Error oder Abort
888  */
897  static DLLAPI int ER_STDCALL erGetJointTypes(ER_HND er_hnd, long *jnt_type_active);
898 
899  /* erGetJointTypes_passive
900  gets type of passive robot joints 0-Rot 1-Trans
901  Return 0-OK, 1-Error oder Abort
902  */
911  static DLLAPI int ER_STDCALL erGetJointTypes_passive(ER_HND er_hnd, long *jnt_type_passive);
912 
913  /* erGetJointDirections
914  gets direction of active robot joints 1-JNT_DIRECTION_X, 2-JNT_DIRECTION_Y, 3-JNT_DIRECTION_Z
915  Return 0-OK, 1-Error oder Abort
916  */
925  static DLLAPI int ER_STDCALL erGetJointDirections(ER_HND er_hnd, long *jnt_direction_active);
926 
927  /* erGetJointDirections_passive
928  gets type direction of passive robot joints 1-JNT_DIRECTION_X, 2-JNT_DIRECTION_Y, 3-JNT_DIRECTION_Z
929  Return 0-OK, 1-Error oder Abort
930  */
939  static DLLAPI int ER_STDCALL erGetJointDirections_passive(ER_HND er_hnd, long *jnt_direction_passive);
940 
941  /* erGetJointChainTypes
942  gets chain type of active robot joints 1-JNT_CHAIN_TYPE_CHAIN, 2-JNT_CHAIN_TYPE_NO_CHAIN, 3-JNT_CHAIN_TYPE_SEP_NO_CHAIN
943  Return 0-OK, 1-Error or Abort
944  */
952  static DLLAPI int ER_STDCALL erGetJointChainTypes(ER_HND er_hnd, long *jnt_chain_type_active);
953 
954  /* erGetJointChainTypes_passive
955  gets chain type of passive robot joints 1-JNT_CHAIN_TYPE_CHAIN, 2-JNT_CHAIN_TYPE_NO_CHAIN, 3-JNT_CHAIN_TYPE_SEP_NO_CHAIN
956  Return 0-OK, 1-Error or Abort
957  */
965  static DLLAPI int ER_STDCALL erGetJointChainTypes_passive(ER_HND er_hnd, long *jnt_chain_type_passive);
966 
967  /* erGetJointAttachDof_active
968  gets Attach-Dof of active robot joints
969  Return 0-OK, 1-Error or Abort
970  */
980  static DLLAPI int ER_STDCALL erGetJointAttachDof_active(ER_HND er_hnd, long *jnt_attach_dof_active);
981 
982  /* erGetJointAttachDof_passive
983  gets Attach-Dof of passive robot joints
984  Return 0-OK, 1-Error or Abort
985  */
994  static DLLAPI int ER_STDCALL erGetJointAttachDof_passive(ER_HND er_hnd, long *jnt_attach_dof_passive);
995 
996  /* erGetMoveBaseMode
997  gets moveable base mode 0-Robot base is fix (default), 1-Robot base is moveable
998  Return 0-OK, 1-Error oder Abort
999  */
1009  static DLLAPI int ER_STDCALL erGetMoveBaseMode(ER_HND er_hnd,long *move_base_mode);
1010 
1011  /* erGetMoveBasepJointIdx
1012  gets passive joint idx representing the moveable base
1013  0-Robot base is fix (default)
1014  n-index of passive joint representing the moveable base
1015  Return 0-OK, 1-Error oder Abort
1016  */
1025  static DLLAPI int ER_STDCALL erGetMoveBasepJointIdx(ER_HND er_hnd,long *move_base_pjointidx);
1026 
1027  /* erGetpJointMoveBase
1028  get transformation from passive joint 'pjnt' to the moveable base 'mb'
1029  Return 0-OK, 1-Error oder Abort
1030  */
1039  static DLLAPI int ER_STDCALL erGetpJointMoveBase(ER_HND er_hnd,DFRAME *pjntTmb);
1040 
1041  /* erGetRobotBaseToMoveBase
1042  get transformation from robot base 'b' to the moveable base 'mb'
1043  bTmb is Ident, if moveable base is fix
1044  Return 0-OK, 1-Error oder Abort
1045  */
1054  static DLLAPI int ER_STDCALL erGetRobotBaseToMoveBase(ER_HND er_hnd,DFRAME *bTmb);
1055 
1056  /* erSetJoints
1057  Set Robot joints
1058  Return 0-OK, 1-Error oder Abort
1059  */
1068  static DLLAPI int ER_STDCALL erSetJoints(ER_HND er_hnd,double *q_solut);
1069 
1070  /* erSetJoint
1071  Set Robot joint
1072  Return 0-OK, 1-Error oder Abort
1073  */
1084  static DLLAPI int ER_STDCALL erSetJoint(ER_HND er_hnd,double q_solut, long jnt_no);
1085 
1086  /* erGetJoints
1087  Get current (active) Robot joints
1088  Return 0-OK, 1-Error oder Abort
1089  */
1101  static DLLAPI int ER_STDCALL erGetJoints(ER_HND er_hnd,double *q_solut);
1102 
1103  /* erGetJointSolutions
1104  Get all (active) Robot joints solutions
1105  Return 0-OK, 1-Error oder Abort
1106  */
1155  static DLLAPI int ER_STDCALL erGetJointSolutions(ER_HND er_hnd,double *q_solutions, long *q_warnings);
1156 
1157  /* erGetJointSpeeds
1158  Get current (active) Robot joint speeds
1159  Return 0-OK, 1-Error oder Abort
1160  */
1170  static DLLAPI int ER_STDCALL erGetJointSpeeds(ER_HND er_hnd,double *v_solut);
1171 
1172  /* erGetJointAccels
1173  Get current (active) Robot joint accels
1174  Return 0-OK, 1-Error oder Abort
1175  */
1185  static DLLAPI int ER_STDCALL erGetJointAccels(ER_HND er_hnd,double *a_solut);
1186 
1187  /* erGetJoints_passive
1188  Get current passive Robot joints
1189  */
1199  static DLLAPI int ER_STDCALL erGetJoints_passive(ER_HND er_hnd,double *q_passive);
1200 
1201  /* erSetConfig
1202  Set Robot configuration
1203  */
1216  static DLLAPI int ER_STDCALL erSetConfig(ER_HND er_hnd, long config);
1217 
1218  /* erGetConfig
1219  Set Robot configuration
1220  */
1229  static DLLAPI int ER_STDCALL erGetConfig(ER_HND er_hnd, long *config);
1230 
1231  /* erFindConfig
1232  Find current Robot configuration
1233  */
1244  static DLLAPI int ER_STDCALL erFindConfig(ER_HND er_hnd, long *config); // NEW_050324
1245 
1246  /* erGetNumConfigs
1247  Get Number of Robot configurations
1248  */
1255  static DLLAPI int ER_STDCALL erGetNumConfigs(ER_HND er_hnd, long *num_configs);
1256 
1257  /* erInvKinRobotBaseTip
1258  Inverse bTt is Robot base to Tip
1259  Return:
1260  Return code for inverse kinematics, INV_WARN_*
1261  */
1275  static DLLAPI int ER_STDCALL erInvKinRobotBaseTip (ER_HND er_hnd,DFRAME *bTt);
1276 
1277  /* erInvKinWorldTip
1278  Inverse iTt is World to Tip
1279  Return:
1280  Return code for inverse kinematics, INV_WARN_*
1281  */
1295  static DLLAPI int ER_STDCALL erInvKinWorldTip(ER_HND er_hnd,DFRAME *iTt);
1296 
1297  /* erInvKinRobotBaseTcp
1298  Inverse bTt is Robot base to Tcp
1299  Return:
1300  Return code for inverse kinematics, INV_WARN_*
1301  */
1315  static DLLAPI int ER_STDCALL erInvKinRobotBaseTcp (ER_HND er_hnd,DFRAME *bTw);
1316 
1317  /* erInvKinWorldTcp
1318  Inverse iTt is World to Tcp
1319  Return:
1320  Return code for inverse kinematics, INV_WARN_*
1321  */
1335  static DLLAPI int ER_STDCALL erInvKinWorldTcp(ER_HND er_hnd,DFRAME *iTw);
1336 
1337  /* erSetTool
1338  Set Tool Tip to Tcp
1339  */
1346  static DLLAPI int ER_STDCALL erSetTool(ER_HND er_hnd,DFRAME *tTw);
1347  /* erGetTool
1348  Get Tool Tip to Tcp
1349  */
1363  static DLLAPI int ER_STDCALL erGetTool(ER_HND er_hnd,DFRAME *tTw);
1364 
1365  /* erSetBaseRobotBase
1366  Set Base w.r.t. RobotBase
1367  */
1376  static DLLAPI int ER_STDCALL erSetBaseRobotBase(ER_HND er_hnd,DFRAME *bTbase);
1377 
1378  /* erGetBaseRobotBase
1379  Get Base w.r.t. RobotBase
1380  */
1389  static DLLAPI int ER_STDCALL erGetBaseRobotBase(ER_HND er_hnd,DFRAME *bTbase);
1390 
1391  /* erSetBaseWorld
1392  Set Base w.r.t. World
1393  */
1402  static DLLAPI int ER_STDCALL erSetBaseWorld(ER_HND er_hnd,DFRAME *iTbase);
1403 
1404  /* erGetBaseWorld
1405  Get Base w.r.t. World
1406  */
1415  static DLLAPI int ER_STDCALL erGetBaseWorld(ER_HND er_hnd,DFRAME *iTbase);
1416 
1417  /* erSetRobotBase
1418  Set RobotBase, World to Robot base
1419  */
1426  static DLLAPI int ER_STDCALL erSetRobotBase(ER_HND er_hnd,DFRAME *iTb);
1427 
1428  /* erGetRobotBase
1429  Get RobotBase, World to Robot base
1430  */
1444  static DLLAPI int ER_STDCALL erGetRobotBase(ER_HND er_hnd,DFRAME *iTb);
1445 
1446  /* erGetRobotBaseTip
1447  Get Robot Tip w.r.t. Robot base
1448  */
1455  static DLLAPI int ER_STDCALL erGetRobotBaseTip(ER_HND er_hnd,DFRAME *bTt);
1456  /* erGetRobotBaseTcp
1457  Get Robot Tcp w.r.t. Robot base
1458  */
1465  static DLLAPI int ER_STDCALL erGetRobotBaseTcp(ER_HND er_hnd,DFRAME *bTw);
1466 
1467  /* erGetWorldTip
1468  Get Robot Tip w.r.t. World
1469  */
1476  static DLLAPI int ER_STDCALL erGetWorldTip(ER_HND er_hnd,DFRAME *iTt);
1477 
1478  /* erGetWorldTcp
1479  Get Robot Tcp w.r.t. World
1480  */
1487  static DLLAPI int ER_STDCALL erGetWorldTcp(ER_HND er_hnd,DFRAME *iTw);
1488 
1489  /* erUpdateKin
1490  Update the complete kinematic
1491  */
1500  static DLLAPI int ER_STDCALL erUpdateKin(ER_HND er_hnd);
1501 
1502  /* erGetJointFrameRobotBase
1503  Transformation from RobotBase to (active) Robot Joint
1504  Return 0-OK, 1-Error oder Abort
1505  */
1514  static DLLAPI int ER_STDCALL erGetJointFrameRobotBase(ER_HND er_hnd,long active_jnt_no,DFRAME *bTax);
1515 
1516  /* erGetJointFrameRobotBase_passive
1517  Transformation from RobotBase to passive Robot Joint
1518  Return 0-OK, 1-Error oder Abort
1519  */
1528  static DLLAPI int ER_STDCALL erGetJointFrameRobotBase_passive(ER_HND er_hnd,long passive_jnt_no,DFRAME *bTax);
1529 
1530  /* erGetJointFrameWorld
1531  Transformation from World to (active) Robot Joint
1532  Return 0-OK, 1-Error oder Abort
1533  */
1542  static DLLAPI int ER_STDCALL erGetJointFrameWorld(ER_HND er_hnd,long active_jnt_no,DFRAME *iTax);
1543 
1544  /* erGetJointFrameWorld_passive
1545  Transformation from World to passive Robot Joint
1546  Return 0-OK, 1-Error oder Abort
1547  */
1556  static DLLAPI int ER_STDCALL erGetJointFrameWorld_passive(ER_HND er_hnd,long passive_jnt_no,DFRAME *iTax);
1557 
1558  /* erSetExtTcpRobotBase
1559  Set external Tcp w.r.t Robot Base
1560  Return 0-OK, 1-Error oder Abort
1561  Ausnahme: Beim Positioner ist der external Tcp w.r.t flange des positioners
1562  */
1571  static DLLAPI int ER_STDCALL erSetExtTcpRobotBase(ER_HND er_hnd,DFRAME *bText, long use_ext_flange);
1572 
1573  /* erGetExtTcpRobotBase
1574  Get external Tcp w.r.t. Robot Base
1575  Return 0-OK, 1-Error oder Abort
1576  */
1583  static DLLAPI int ER_STDCALL erGetExtTcpRobotBase(ER_HND er_hnd,DFRAME *bText);
1584 
1585  /* erSetExtTcpWorld
1586  Set external Tcp w.r.t world
1587  Return 0-OK, 1-Error oder Abort
1588  */
1595  static DLLAPI int ER_STDCALL erSetExtTcpWorld(ER_HND er_hnd,DFRAME *iText);
1596 
1597  /* erGetExtTcpWorld
1598  Get external Tcp w.r.t. world
1599  Return 0-OK, 1-Error oder Abort
1600  */
1607  static DLLAPI int ER_STDCALL erGetExtTcpWorld(ER_HND er_hnd,DFRAME *iText);
1608 
1609  /* erSetExtTcpMode
1610  Set ExtTcpMode 0-IPO_MODE_BASE (Werk ZEUG fuehrend), 1-IPO_MODE_TOOL (Werk STUECK fuehren)
1611  Return 0-OK, 1-Error oder Abort
1612  */
1620  static DLLAPI int ER_STDCALL erSetExtTcpMode(ER_HND er_hnd,long ext_tcp_mode);
1621 
1622  /* erGetExtTcpMode
1623  Get ExtTcpMode 0-IPO_MODE_BASE (Werk ZEUG fuehrend), 1-IPO_MODE_TOOL (Werk STUECK fuehren)
1624  Return 0-OK, 1-Error oder Abort
1625  */
1633  static DLLAPI int ER_STDCALL erGetExtTcpMode(ER_HND er_hnd, long *ext_tcp_mode);
1634 };
1635 
1637 // class ERK_CAPI_ROB_KIN_API
1638 //
1643 {
1644 public:
1645 
1646  /* erGetInvKinID
1647  Inverse kinematics ID for cRobot
1648  Return 0-OK, 1-Error oder Abort
1649  */
1656  static DLLAPI int ER_STDCALL erGetInvKinID(ER_HND er_hnd, long *invkin_id);
1657 
1658  /* erGetInvKinSubID
1659  Inverse kinematics Sub-ID for cRobot
1660  Return 0-OK, 1-Error oder Abort
1661  */
1668  static DLLAPI int ER_STDCALL erGetInvKinSubID(ER_HND er_hnd, long *invkinsub_id);
1669 
1670  /* erSetJointSolutions
1671  Set all (active) Robot joints solutions
1672  Return 0-OK, 1-Error oder Abort
1673  */
1721  static DLLAPI int ER_STDCALL erSetJointSolutions(ER_HND er_hnd, double *q_solutions, long *q_warnings);
1722 
1723  /* erSetJointDyn
1724  Set actual robot joint
1725  Return 0-OK, 1-Error oder Abort
1726  */
1737  static DLLAPI int ER_STDCALL erSetJointDyn(ER_HND er_hnd, double q_dyn, long jnt_no);
1738 
1739  /* erGetRobotBasetoFirstJoint
1740  Robot Base to first joint of kinematics chain
1741  Return 0-OK, 1-Error oder Abort
1742  */
1749  static DLLAPI int ER_STDCALL erGetRobotBasetoFirstJoint(ER_HND er_hnd, DFRAME *bT0);
1750 
1751  /* erGetJointFrameActiveNext
1752  Get kinematics transformation to the next joint for each active joint "Geometric Data to next"
1753  Return 0-OK, 1-Error oder Abort
1754  */
1803  static DLLAPI int ER_STDCALL erGetJointFrameActiveNext(ER_HND er_hnd, long active_jnt_no, DFRAME *T_nxt);
1804 
1805  /* erSetJointFrameActiveNext
1806  Set kinematics transformation to the next joint for each active joint "Geometric Data to next"
1807  Return 0-OK, 1-Error oder Abort
1808  */
1819  static DLLAPI int ER_STDCALL erSetJointFrameActiveNext(ER_HND er_hnd, long active_jnt_no, DFRAME *T_nxt);
1820 
1821  /* erGetJointFrameActiveLast
1822  Get kinematics transformation from last joint for each active joint "Geometric Data from last"
1823  Return 0-OK, 1-Error oder Abort
1824  */
1835  static DLLAPI int ER_STDCALL erGetJointFrameActiveLast(ER_HND er_hnd, long active_jnt_no, DFRAME *T_last); /* erGetJointFrameActiveLast
1836 
1837  /* Set kinematics transformation from last joint for each active joint "Geometric Data from last"
1838  Return 0-OK, 1-Error oder Abort
1839  */
1850  static DLLAPI int ER_STDCALL erSetJointFrameActiveLast(ER_HND er_hnd, long active_jnt_no, DFRAME *T_last);
1851 
1852  /* erGetJointFramePassiveNext
1853  Get kinematics transformation to the next joint for each passive joint "Geometric Data to next"
1854  Return 0-OK, 1-Error oder Abort
1855  */
1864  static DLLAPI int ER_STDCALL erGetJointFramePassiveNext(ER_HND er_hnd, long passive_jnt_no, DFRAME *T_nxt);
1865 
1866  /* erSetJointFramePassiveNext
1867  Set kinematics transformation to the next joint for each passive joint "Geometric Data to next"
1868  Return 0-OK, 1-Error oder Abort
1869  */
1880  static DLLAPI int ER_STDCALL erSetJointFramePassiveNext(ER_HND er_hnd, long passive_jnt_no, DFRAME *T_nxt);
1881 
1882  /* erGetJointFramePassiveLast
1883  Get kinematics transformation to the next joint for each passive joint "Geometric Data to next"
1884  Return 0-OK, 1-Error oder Abort
1885  */
1896  static DLLAPI int ER_STDCALL erGetJointFramePassiveLast(ER_HND er_hnd, long passive_jnt_no, DFRAME *T_last);
1897 
1898  /* erSetJointFramePassiveLast
1899  Set kinematics transformation to the next joint for each passive joint "Geometric Data to next"
1900  Return 0-OK, 1-Error oder Abort
1901  */
1912  static DLLAPI int ER_STDCALL erSetJointFramePassiveLast(ER_HND er_hnd, long passive_jnt_no, DFRAME *T_last);
1913 
1914  /* erGet_erk_kin_usr_ptr
1915  Access user pointer for user defined inverse and forward kinematics in EasySimKernel_apikinx64.dll
1916  Return pointer to user defined memory
1917  */
1979  static DLLAPI void** ER_STDCALL erGet_erk_kin_usr_ptr(ER_HND er_hnd);
1980 };
1982 // class ERK_CAPI_ROB_ATRIBUTES
1983 //
1988 {
1989 public:
1990 
1991  /* erGetName
1992  Name of Robot
1993  Return 0-OK, 1-Error oder Abort
1994  */
2000  static DLLAPI int ER_STDCALL erGetName(ER_HND er_hnd, char *name);
2001 
2002  /* erSetHomepos
2003  Set Robot Home position
2004  */
2014  static DLLAPI int ER_STDCALL erSetHomepos(ER_HND er_hnd,double *homepos);
2015 
2016  /* erGetHomepos
2017  Get Robot Home position
2018  */
2028  static DLLAPI int ER_STDCALL erGetHomepos(ER_HND er_hnd,double *homepos);
2029 
2030  /* erSetSweMin
2031  Set Robot min. SWE Switch
2032  */
2042  static DLLAPI int ER_STDCALL erSetSweMin(ER_HND er_hnd,double *swe_min);
2043 
2044  /* erGetSweMin
2045  Get min. SWE Switch
2046  */
2056  static DLLAPI int ER_STDCALL erGetSweMin(ER_HND er_hnd,double *swe_min);
2057 
2058  /* erGetSweMinCalc
2059  Get min. calculated SWE Switch
2060  */
2071  static DLLAPI int ER_STDCALL erGetSweMinCalc(ER_HND er_hnd,double *swe_min_calc);
2072 
2073  /* erSetSweMax
2074  Set max. SWE Switch
2075  */
2085  static DLLAPI int ER_STDCALL erSetSweMax(ER_HND er_hnd,double *swe_max);
2086 
2087  /* erGetSweMax
2088  Get max. SWE Switch
2089  */
2099  static DLLAPI int ER_STDCALL erGetSweMax(ER_HND er_hnd,double *swe_max);
2100  /* erGetSweMaxCalc
2101  Get max. calculated SWE Switch
2102  */
2113  static DLLAPI int ER_STDCALL erGetSweMaxCalc(ER_HND er_hnd,double *swe_max_calc);
2114 
2115  /* erGetSweMinMaxCalc
2116  Get min. and max. calculated SWE Switches
2117  */
2129  static DLLAPI int ER_STDCALL erGetSweMinMaxCalc(ER_HND er_hnd,double *swe_min_calc,double *swe_max_calc);
2130 
2138  static DLLAPI int ER_STDCALL erGetSweCalcMode(ER_HND er_hnd,long *swe_calc_mode);
2139 
2149  static DLLAPI int ER_STDCALL erSetSweMin_passive(ER_HND er_hnd, double *swe_min_passive);
2159  static DLLAPI int ER_STDCALL erGetSweMin_passive(ER_HND er_hnd, double *swe_min_passive);
2160 
2170  static DLLAPI int ER_STDCALL erSetSweMax_passive(ER_HND er_hnd, double *swe_max_passive);
2180  static DLLAPI int ER_STDCALL erGetSweMax_passive(ER_HND er_hnd, double *swe_max_passive);
2181 
2182  /* erGetConfigName
2183  Name of robot configuration
2184  Return 0-OK, 1-Error oder Abort
2185  */
2193  static DLLAPI int ER_STDCALL erGetConfigName(ER_HND er_hnd, long config_idx, char *config_name);
2194 
2195  /* erGetJointName
2196  Name of active robot joint
2197  Return 0-OK, 1-Error oder Abort
2198  */
2205  static DLLAPI int ER_STDCALL erGetJointName(ER_HND er_hnd, long active_jnt_no, char *jnt_name);
2206 
2207  /* erGetJointName_passive
2208  Name of passive robot joint
2209  Return 0-OK, 1-Error oder Abort
2210  */
2217  static DLLAPI int ER_STDCALL erGetJointName_passive(ER_HND er_hnd, long passive_jnt_no, char *jnt_name_passive);
2218 
2219  /* erSetJointSign
2220  Set Joint Directions
2221  */
2229  static DLLAPI int ER_STDCALL erSetJointSign(ER_HND er_hnd,double *joint_sign); // NEW_050324
2230 
2231  /* erGetJointSign
2232  Get Joint Sign
2233  */
2242  static DLLAPI int ER_STDCALL erGetJointSign(ER_HND er_hnd,double *joint_sign); // NEW_050324
2243 
2244  /* erSetJointOffset
2245  Set Joint Offsets
2246  */
2254  static DLLAPI int ER_STDCALL erSetJointOffset(ER_HND er_hnd,double *joint_offset); // NEW_050324
2255 
2256  /* erGetJointOffset
2257  Get Joint Offsets
2258  */
2266  static DLLAPI int ER_STDCALL erGetJointOffset(ER_HND er_hnd,double *joint_offset); // NEW_050324
2267 
2268  /* erSetVqMax
2269  Set max. joint speed [rad/s,m/s]
2270  */
2278  static DLLAPI int ER_STDCALL erSetVqMax(ER_HND er_hnd,double *vq_max);
2279 
2280  /* erGetVqMax
2281  Get max. joint speed [rad/s,m/s]
2282  */
2290  static DLLAPI int ER_STDCALL erGetVqMax(ER_HND er_hnd,double *vq_max);
2291 
2292  /* erSetAqMax
2293  Set max. joint acceleration [rad/s^2,m/s^2]
2294  */
2302  static DLLAPI int ER_STDCALL erSetAqMax(ER_HND er_hnd,double *aq_max);
2303 
2304  /* erGetAqMax
2305  Get max. joint acceleration [rad/s^2,m/s^2]
2306  */
2314  static DLLAPI int ER_STDCALL erGetAqMax(ER_HND er_hnd,double *aq_max);
2315 
2316  /* erSetVxMax
2317  Set max. cartesian speed [m/s]
2318  */
2325  static DLLAPI int ER_STDCALL erSetVxMax(ER_HND er_hnd,double vx_max);
2326 
2327  /* erGetVxMax
2328  Get max. cartesian speed [m/s]
2329  */
2336  static DLLAPI int ER_STDCALL erGetVxMax(ER_HND er_hnd,double *vx_max);
2337 
2338  /* erSetVxOriMax
2339  Set max. cartesian orientation speed [rad/s]
2340  */
2347  static DLLAPI int ER_STDCALL erSetVxOriMax(ER_HND er_hnd,double vx_ori_max);
2348 
2349  /* erGetVxOriMax
2350  Get max. cartesian orientation orientation speed [rad/s]
2351  */
2358  static DLLAPI int ER_STDCALL erGetVxOriMax(ER_HND er_hnd,double *vx_ori_max);
2359 
2360  /* erSetAxMax
2361  Set max. cartesian acceleration [m/s^2]
2362  */
2369  static DLLAPI int ER_STDCALL erSetAxMax(ER_HND er_hnd,double ax_max);
2370 
2371  /* erGetAxMax
2372  Get max. cartesian acceleration [m/s^2]
2373  */
2380  static DLLAPI int ER_STDCALL erGetAxMax(ER_HND er_hnd,double *ax_max);
2381 
2382  /* erSetAxOriMax
2383  Set max. cartesian orientation acceleration [rad/s^2]
2384  */
2392  static DLLAPI int ER_STDCALL erSetAxOriMax(ER_HND er_hnd,double ax_ori_max);
2393  /* erGetAxOriMax
2394  Get max. cartesian orientation acceleration [rad/s^2]
2395  */
2402  static DLLAPI int ER_STDCALL erGetAxOriMax(ER_HND er_hnd,double *ax_ori_max);
2403 
2404  /* erGetBackLink obsolete -> use erGetBacklink(...)
2405  Get Back Link returns robot back link information
2406  *backlink = 0-KIN_BACK_LINK_NO | 1-KIN_BACK_LINK_YES | 2-KIN_BACK_LINK_UNKNOWN
2407  Return 0-OK, 1-Error oder Abort
2408  */
2411  static DLLAPI int ER_STDCALL erGetBackLink(ER_HND er_hnd,long *backlink); // obsolete -> use erGetBacklink(...)
2412 
2413  /* erSetBacklink
2414  Set Backlink extended attribute
2415  */
2425  static DLLAPI int ER_STDCALL erSetBacklink(ER_HND er_hnd,long backlink);
2426 
2427  /* erGetBacklink
2428  Get Backlink extended attribute
2429  */
2439  static DLLAPI int ER_STDCALL erGetBacklink(ER_HND er_hnd,long *backlink);
2440 
2441  /* erSetAxis_couplingA2A3
2442  Set Axis_couplingA2A3 extended attribute
2443  */
2453  static DLLAPI int ER_STDCALL erSetAxis_couplingA2A3(ER_HND er_hnd,long axis_couplingA2A3);
2454 
2455  /* erGetAxis_couplingA2A3
2456  Get Axis_couplingA2A3 extended attribute
2457  */
2467  static DLLAPI int ER_STDCALL erGetAxis_couplingA2A3(ER_HND er_hnd,long *axis_couplingA2A3);
2468 
2469  /* erSetCounter_weight
2470  Set Counter_weight extended attribute
2471  */
2481  static DLLAPI int ER_STDCALL erSetCounter_weight(ER_HND er_hnd,long counter_weight);
2482 
2483  /* erGetCounter_weight
2484  Get Counter_weight extended attribute
2485  */
2495  static DLLAPI int ER_STDCALL erGetCounter_weight(ER_HND er_hnd,long *counter_weight);
2496 
2497  /* erSetTurn_interval
2498  Set Turn_interval [rad,m]
2499  */
2510  static DLLAPI int ER_STDCALL erSetTurn_interval(ER_HND er_hnd,double *turn_interval);
2511 
2512  /* erGetTurn_interval
2513  Get Turn_interval [rad,m]
2514  */
2525  static DLLAPI int ER_STDCALL erGetTurn_interval(ER_HND er_hnd,double *turn_interval);
2526 
2527  /* erSetTurn_offset
2528  Set Turn_offset [rad,m]
2529  */
2540  static DLLAPI int ER_STDCALL erSetTurn_offset(ER_HND er_hnd,double *turn_offset);
2541 
2542  /* erGetTurn_offset
2543  Get Turn_offset [rad,m]
2544  */
2555  static DLLAPI int ER_STDCALL erGetTurn_offset(ER_HND er_hnd,double *turn_offset);
2556 
2557  /* erSetTurn_value
2558  Set Turn_value, will set turn_enable
2559  */
2572  static DLLAPI int ER_STDCALL erSetTurn_value(ER_HND er_hnd,long *turn_value);
2573 
2574  /* erGetTurn_value
2575  Get Turn_value
2576  */
2587  static DLLAPI int ER_STDCALL erGetTurn_value(ER_HND er_hnd,long *turn_value);
2588 };
2589 
2590 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_MOP
2592 // class ERK_CAPI_MOP
2593 //
2598 {
2599 public:
2603 
2607 
2611 
2615 
2616 public:
2617  /* erINITIALIZE
2618  Erzeugt ein Roboter Handle
2619  Opcode 101, Chapter 3.4.1, Page 3-26
2620  Return 0-OK, 1-Error
2621  entspricht erInitKin()
2622  */
2632  static DLLAPI int ER_STDCALL erINITIALIZE (ER_HND *er_hnd, Host_HND host_hnd=NULL);
2633 
2634  /* erRESET
2635  Definition: Resets an instance of a robot to an initial state
2636  Opcode 102, Chapter 3.4.1, Page 3-29
2637  Return 0-OK, 1-Error
2638  */
2660  static DLLAPI int ER_STDCALL erRESET(ER_HND er_hnd);
2661 
2662  /* erTERMINATE
2663  Loescht Roboter Handle
2664  Definition: Terminates an instance of a robot of the Kernel
2665  Opcode 103, Chapter 3.4.1, Page 3-30
2666  Return 0-OK, 1-Error
2667  see erUnloadKin()
2668  */
2677  static DLLAPI int ER_STDCALL erTERMINATE(ER_HND *er_hnd);
2678 
2679  /* erSET_INITIAL_POSITION
2680  sets the robot model to a position according to the input data
2681  Opcode 116, Chapter 3.4.3, Page 3-50
2682  Return 0-OK, 1-Error
2683  */
2693  static DLLAPI int ER_STDCALL erSET_INITIAL_POSITION(ER_HND er_hnd, INITIAL_POSITION_DATA *p_initial_position_data);
2694 
2695  /*erSELECT_TRACKING
2696  Definition: Selects the Tracking On or Off in the Kernel
2697  Opcode 146, Chapter 3.4.7, Page 3-93
2698  Return 0-OK, 1-Error, -1- not supported
2699  */
2711  static DLLAPI int ER_STDCALL erSELECT_TRACKING(ER_HND er_hnd, long conveyor_flags);
2712 
2713  /*erSET_CONVEYOR_POSITION
2714  Definition: Sends the conveyor position to the Kernel
2715  Opcode 147, Chapter 3.4.7, Page 3-94
2716  Return 0-OK, 1-Error, -1- not supported
2717  */
2733  static DLLAPI int ER_STDCALL erSET_CONVEYOR_POSITION(ER_HND er_hnd, long input_format, long conveyor_flags, double conveyor_pos);
2734 
2735  /*erDEFINE_EVENT
2736  Definition: Defines an internal asynchronous event that is to be generated relative to position and/or time in the Kernel
2737  Opcode 148, Chapter 3.4.8, Page 3-96
2738  Return 0-OK, 1-Error, -1- not supported
2739  */
2753  static DLLAPI int ER_STDCALL erDEFINE_EVENT(ER_HND er_hnd, long event_id, long target_id, double resolution, long type_of_event, double event_spec);
2754 
2755  /*erCANCEL_EVENT
2756  Definition: This function makes it possible to cancel an event previously defined in the Kernel by the erDEFINE_EVENT() function
2757  Opcode 149, Chapter 3.4.8, Page 3-99
2758  Return 0-OK, 1-Error, -1- not supported
2759  */
2769  static DLLAPI int ER_STDCALL erCANCEL_EVENT(ER_HND er_hnd, long event_id);
2770 
2771  /*erGET_EVENT
2772  Definition: This function gets information about an internal asynchronous event that occurred in the Kernel
2773  Opcode 150, Chapter 3.4.8, Page 3-100
2774  Return 0-OK, 1-Error, -1- not supported
2775  */
2785  static DLLAPI int ER_STDCALL erGET_EVENT(ER_HND er_hnd, long event_nr);
2786 
2787  /*erGET_MESSAGE
2788  Definition: Gives information about controller messages that occurred
2789  Opcode 154, Chapter 3.4.9, Page 3-104
2790  Return 0-OK, 1-Error, -1- not supported
2791  */
2802  static DLLAPI int ER_STDCALL erGET_MESSAGE(ER_HND er_hnd, long message_number);
2803 };
2804 
2806 // class ERK_CAPI_MOP_DATA
2807 //
2812 {
2813 public:
2833  static DLLAPI int ER_STDCALL erSetTrackingWindow(ER_HND er_hnd, long active, double up, double down, TErTrackingWindowID id_tw, char *name=NULL);
2834 
2835  /* erSetconveyorStartCondition
2836  tx0 - Offsetposition in x-Rtg. bzgl. Conveyorflanch
2837  Return 0-OK, 1-Error
2838  */
2848  static DLLAPI int ER_STDCALL erSetconveyorStartCondition(ER_HND er_hnd, double tx0);
2849 
2850  /* erSetSpeedReductionEnable
2851  */
2863  static DLLAPI int ER_STDCALL erSetSpeedReductionEnable(ER_HND er_hnd,long speed_reduction_enable);
2864 
2865  /* erGetSpeedReductionEnable
2866  */
2878  static DLLAPI int ER_STDCALL erGetSpeedReductionEnable(ER_HND er_hnd,long *speed_reduction_enable);
2879 
2880  /*erSELECT_MOTION_TYPE
2881  motion_type, ER_JOINT = 1, ER_LIN = 2, ER_SLEW = 3, ER_CIRC = 4
2882  Opcode 120, Chapter 3.4.4, Page 3-58
2883  */
2894  static DLLAPI int ER_STDCALL erSELECT_MOTION_TYPE(ER_HND er_hnd, long motion_type);
2895 
2896  /*erSELECT_TARGET_TYPE
2897  Definition: selects one of different types for the specification of targets
2898  Opcode 121, Chapter 3.4.4, Page 3-59
2899  Return 0-OK, 1-Error
2900 
2901  Currently supported:
2902  0 - absolute w.r.t. object frame
2903  9 - single axis motion
2904  */
2916  static DLLAPI int ER_STDCALL erSELECT_TARGET_TYPE(ER_HND er_hnd, long target_type);
2917 
2918  /*erSELECT_TRAJECTORY_MODE
2919  Definition: Selects on or off for the trajectory mode
2920  Opcode 122, Chapter 3.4.4, Page 3-62
2921  Return 0-OK, 1-Error, -1-not supported
2922  */
2932  static DLLAPI int ER_STDCALL erSELECT_TRAJECTORY_MODE(ER_HND er_hnd, long trajectory_on);
2933 
2934  /*erSET_ADVANCE_MOTION
2935  Definition: defines the number of motions, the motion planner may run in advance of the interpolator (look_ahead)
2936  Opcode 127, Chapter 3.4.4, Page 3-67
2937  */
2945  static DLLAPI int ER_STDCALL erSET_ADVANCE_MOTION(ER_HND er_hnd, long Number_of_motion);
2946  /*erSET_MOTION_FILTER
2947  Definition: defines the filter factor for smoothing velocity profiles of motions
2948  Opcode 128, Chapter 3.4.4, Page 3-68
2949  */
2958  static DLLAPI int ER_STDCALL erSET_MOTION_FILTER(ER_HND er_hnd, long filter_factor);
2959 
2960  /*erREVERSE_MOTION
2961  Definition: Instructs to do a reverse motion
2962  Opcode 130, Chapter 3.4.4, Page 3-70
2963  Return 0-OK, 1-Error, -1-not supported
2964  */
2977  static DLLAPI int ER_STDCALL erREVERSE_MOTION(ER_HND er_hnd, double distance );
2978 
2979  /*erSET_PAYLOAD_PARAMETER
2980  Definition: Allows specifying payloads at different locations on the robot.
2981  It has to be supported when the payload influences the motion planning.
2982  E.g. the load by a tool on the flange may be specified
2983  Opcode 160, Chapter 3.4.4, Page 3-71
2984  Return 0-OK, 1-Error, -1-not supported
2985  */
3001  static DLLAPI int ER_STDCALL erSET_PAYLOAD_PARAMETER(ER_HND er_hnd, long storage, char *frame_id, long param_number, double param_value);
3002 
3003  /*erSET_CONFIGURATION_CONTROL
3004  Definition: Allows the setting of controller-specific data for the control of robot configurations
3005  Opcode 161, Chapter 3.4.4, Page 3-72
3006  Return 0-OK, 1-Error, -1-not supported
3007  */
3019  static DLLAPI int ER_STDCALL erSET_CONFIGURATION_CONTROL(ER_HND er_hnd, char *param_id, char *param_contents);
3020 
3021  /*erSET_OVERRIDE_SPEED
3022  Definition: Sets correction values for scaling the programmed speed during program execution
3023  Opcode 139, Chapter 3.4.5, Page 3-82
3024  Return 0-OK, 1-Error, -1-not supported
3025  */
3039  static DLLAPI int ER_STDCALL erSET_OVERRIDE_SPEED(ER_HND er_hnd, double correction_value, long correction_type);
3040 
3041  /*erSET_OVERRIDE_ACCELERATION
3042  Definition: Sets correction values for scaling the robot acceleration
3043  Opcode 155, Chapter 3.4.5, Page 3-83
3044  Return 0-OK, 1-Error, -1-not supported
3045  */
3062  static DLLAPI int ER_STDCALL erSET_OVERRIDE_ACCELERATION(ER_HND er_hnd, double correction_value, long accel_type, long correction_type);
3063 
3064  /*erSET_OVERRIDE_SPEED_EX
3065  Definition: Sets override for scaling the programmed speed during program execution
3066  Return 0-OK, 1-Error, -1-not supported
3067  */
3081  static DLLAPI int ER_STDCALL erSET_OVERRIDE_SPEED_EX(ER_HND er_hnd, ER_HND er_hnd_slave, double speed_override, double tcp_speed_max=0);
3082 
3083  /*erSET_OVERRIDE_ACCELERATION_EX
3084  Definition: Sets override for scaling the programmed acceleration during program execution
3085  Return 0-OK, 1-Error, -1-not supported
3086  */
3100  static DLLAPI int ER_STDCALL erSET_OVERRIDE_ACCELERATION_EX(ER_HND er_hnd, ER_HND er_hnd_slave, double accel_override, double tcp_accel_max=0);
3101 };
3102 
3104 // class ERK_CAPI_MOP_PATH
3105 //
3111 {
3112 public:
3113 
3114  /* erSetAutoAccel
3115  Enables automatic calculation of acceleration
3116  depending on programmed speed
3117  ON = 7 – Calculation for PTP, POS and ORI
3118  POS = 1 – Calculation for motions for Position
3119  ORI = 2 – Calculation for motions for Orientation
3120  AX = 4 – Calculation for PTP motions
3121  OFF = 0 – Calculation deactivated
3122  */
3139  static DLLAPI int ER_STDCALL erSetAutoAccel(ER_HND er_hnd,long autoaccel);
3140 
3141  /* erGetAutoAccel
3142  Get status for automatic calculation of acceleration
3143  depending on programmed speed
3144  ON = 7 – Calculation for PTP, POS and ORI
3145  POS = 1 – Calculation for motions for Position
3146  ORI = 2 – Calculation for motions for Orientation
3147  AX = 4 – Calculation for PTP motions
3148  OFF = 0 – Calculation deactivated
3149  */
3166  static DLLAPI int ER_STDCALL erGetAutoAccel(ER_HND er_hnd,long *autoaccel);
3167 
3168  /* erSetAccSet
3169  Set lagging of accelerations.
3170  The arguments Acc and Ramp are given in percentage values in the range 20% to 100%
3171  Acc: Acceleration and Deceleration as percentage value of normal values
3172  Ramp: Change of Acceleration and Deceleration as percentage value of normal values
3173  */
3185  static DLLAPI int ER_STDCALL erSetAccSet(ER_HND er_hnd,double acc,double ramp);
3186 
3187  /* erGetAccSet
3188  Get current lagging of accelerations.
3189  The arguments Acc and Ramp are given in percentage values in the range 20% to 100%
3190  Acc: Acceleration and Deceleration as percentage value of normal values
3191  Ramp: Change of Acceleration and Deceleration as percentage value of normal values
3192  */
3204  static DLLAPI int ER_STDCALL erGetAccSet(ER_HND er_hnd,double *acc,double *ramp);
3205 
3206  /* erSET_INTERPOLATION_TIME
3207  sets the interpolation time in [ms]
3208  Opcode 119, Chapter 3.4.3, Page 3-56
3209  Return 0-OK, 1-Error
3210  */
3220  static DLLAPI int ER_STDCALL erSET_INTERPOLATION_TIME(ER_HND er_hnd, double InterpolationTime);
3221 
3222  /*erSELECT_ORIENTATION_INTERPOLATION_MODE
3223  NEW_041112
3224  */
3235  static DLLAPI int ER_STDCALL erSELECT_ORIENTATION_INTERPOLATION_MODE(ER_HND er_hnd, long interpolation_mode, long ori_const);
3236 
3237  /*erSELECT_CIRCULAR_ORIENTATION_INTERPOLATION_MODE
3238  NEW_070122
3239  Definition:
3240  selects the circular orientation interpolation mode
3241  circ_orientation_interpolation_mode:
3242  0: use Start- and Target Orientation
3243  1: use Start-, Via- and Target Orientation, default
3244  2: use Start-, Via- and Target Orientation, hereby the robot reaches the orientation in Via Point
3245  3: Tangential in Abhängigkeit der Orientierung im StartPunkt
3246  4: Constant, Fix
3247  Return 0-OK, 1-Error
3248  */
3258  static DLLAPI int ER_STDCALL erSELECT_CIRCULAR_ORIENTATION_INTERPOLATION_MODE(ER_HND er_hnd, long circ_orientation_interpolation_mode);
3259 
3260  /*erSELECT_DOMINANT_INTERPOLATION
3261  Definition: Sets the interplation space defining the movement
3262  Opcode 124, Chapter 3.4.4, Page 3-66
3263  Return 0-OK, 1-Error
3264  */
3280  static DLLAPI int ER_STDCALL erSELECT_DOMINANT_INTERPOLATION(ER_HND er_hnd, long dominant_int_type, long dominant_int_param=0);
3281 
3282  /*erSET_JOINT_SPEEDS
3283  Definition:
3284  sets the joint speed expressed as percentage of the maximal joint speed for each specified joint
3285  Opcode 131, Chapter 3.4.5, Page 3-74
3286  */
3300  static DLLAPI int ER_STDCALL erSET_JOINT_SPEEDS(ER_HND er_hnd, long all_joint_flags, long joint_flags, double speed_percent);
3301 
3302  /*erSET_CARTESIAN_POSITION_SPEED
3303  Definition: speed for cartesian motion [m/sec]
3304  Opcode 133, Chapter 3.4.5, Page 3-75
3305  Return 0-OK, 1-Error
3306  */
3314  static DLLAPI int ER_STDCALL erSET_CARTESIAN_POSITION_SPEED(ER_HND er_hnd, double speed_value);
3315 
3316  /*erSET_CARTESIAN_ORIENTATION_SPEED
3317  Definition: sets speed for the orientation during cartesian motion [rad/sec]
3318  Opcode 134, Chapter 3.4.5, Page 3-76
3319  Return 0-OK, 1-Error
3320  */
3330  static DLLAPI int ER_STDCALL erSET_CARTESIAN_ORIENTATION_SPEED(ER_HND er_hnd, long rotation_no, double speed_ori_value);
3331 
3332  /*erSET_JOINT_ACCELERATIONS
3333  sets the joint accelerations expressed as percentage of the maximal joint acceleration for each specified joint
3334  Opcode 135, Chapter 3.4.5, Page 3-77
3335  Return 0-OK, 1-Error
3336  */
3353  static DLLAPI int ER_STDCALL erSET_JOINT_ACCELERATIONS(ER_HND er_hnd, long all_joint_flags, long joint_flags, double accel_percent, long accel_type);
3354 
3355  /*erSET_CARTESIAN_POSITION_ACCELERATIONS
3356  Definition: sets acceleration for cartesian motion [m/sec^2]
3357  Opcode 137, Chapter 3.4.5, Page 3-78
3358  accel_type
3359  1: // accel
3360  2: // decel
3361  3: // accel + decel
3362  */
3373  static DLLAPI int ER_STDCALL erSET_CARTESIAN_POSITION_ACCELERATION(ER_HND er_hnd, double accel_value, long accel_type);
3374 
3375  /*erSET_CARTESIAN_ORIENTATION_ACCELERATION
3376  Definition: sets the acceleration for the orientation during cartesian motion [rad/sec^2]
3377  Opcode 138, Chapter 3.4.5, Page 3-79
3378  Return 0-OK, 1-Error
3379  */
3392  static DLLAPI int ER_STDCALL erSET_CARTESIAN_ORIENTATION_ACCELERATION(ER_HND er_hnd, long rotation_no, double accel_ori_value, long accel_type);
3393 
3394  /*erGET_CARTESIAN_POSITION_ACCELERATIONS
3395  Definition: gets acceleration for cartesian motion [m/sec^2]
3396  accel_type
3397  1: // accel
3398  2: // decel
3399  Return 0-OK, 1-Error
3400  */
3410  static DLLAPI int ER_STDCALL erGET_CARTESIAN_POSITION_ACCELERATION(ER_HND er_hnd, double *accel_value, long accel_type);
3411 
3412  /*erGET_CARTESIAN_ORIENTATION_ACCELERATION
3413  Definition: Gets the acceleration for the orientation during cartesian motion [rad/sec^2]
3414  accel_type
3415  1: // accel
3416  2: // decel
3417  Return 0-OK, 1-Error
3418  */
3430  static DLLAPI int ER_STDCALL erGET_CARTESIAN_ORIENTATION_ACCELERATION(ER_HND er_hnd, long rotation_no, double *accel_ori_value, long accel_type);
3431 
3432  /*erSET_JOINT_JERKS
3433  Definition: Sets the joint jerk expressed as a percentage of the maximal joint jerk for each specified joint.
3434  Opcode 162, Chapter 3.4.5, Page 3-80
3435  Return 0-OK, 1-Error, -1-not supported
3436  */
3453  static DLLAPI int ER_STDCALL erSET_JOINT_JERKS(ER_HND er_hnd, long all_joint_flags, long joint_flags, double jerk_percent, long jerk_type);
3454 
3455  /*erSET_MOTION_TIME
3456  Definition: Specifies the motion time for the next motion
3457  Opcode 156, Chapter 3.4.5, Page 3-81
3458  Return 0-OK, 1-Error, -1-not supported
3459  */
3468  static DLLAPI int ER_STDCALL erSET_MOTION_TIME(ER_HND er_hnd, double time_value);
3469 
3470  /*erSELECT_FLYBY_MODE
3471  */
3482  static DLLAPI int ER_STDCALL erSELECT_FLYBY_MODE(ER_HND er_hnd, long flyby_on);
3483 
3484  /*erSET_FLYBY_CRITERIA_PARAMETER
3485  Definition: Sets the value of a flyby parameter
3486  Opcode 141, Chapter 3.4.6, Page 3-86
3487  Return 0-OK, 1-Error, -1- not supported
3488  */
3500  static DLLAPI int ER_STDCALL erSET_FLYBY_CRITERIA_PARAMETER(ER_HND er_hnd, long param_number, long joint_nr, double param_value);
3501 
3502  /*erSELECT_FLYBY_CRITERIA
3503  Definition: Selects a flyby criterion (parameter)
3504  Opcode 142, Chapter 3.4.6, Page 3-87
3505  Return 0-OK, 1-Error, -1- not supported
3506  */
3516  static DLLAPI int ER_STDCALL erSELECT_FLYBY_CRITERIA(ER_HND er_hnd, long param_number);
3517 
3518  /*erCANCEL_FLYBY_CRITERIA
3519  Definition: Cancels (unselects) a fly-by criterion
3520  Opcode 143, Chapter 3.4.6, Page 3-88
3521  Return 0-OK, 1-Error, -1- not supported
3522  */
3532  static DLLAPI int ER_STDCALL erCANCEL_FLYBY_CRITERIA(ER_HND er_hnd, long param_number);
3533 
3534  /*erSELECT_POINT_ACCURACY
3535  Definition: Selects a criterion for when a target is reached
3536  Opcode 144, Chapter 3.4.6, Page 3-89
3537  Return 0-OK, 1-Error, -1- not supported
3538  */
3548  static DLLAPI int ER_STDCALL erSELECT_POINT_ACCURACY(ER_HND er_hnd, long accuracy_type);
3549 
3550  /*erSET_POINT_ACCURACY_PARAMETER
3551  Definition: Sets the value of a parameter determining point accuracy
3552  Opcode 145, Chapter 3.4.6, Page 3-90
3553  Return 0-OK, 1-Error, -1- not supported
3554  */
3565  static DLLAPI int ER_STDCALL erSET_POINT_ACCURACY_PARAMETER(ER_HND er_hnd, long accuracy_type, double accuracy_value );
3566 };
3567 
3569 // class ERK_CAPI_MOP_PREP
3570 //
3575 {
3576 public:
3577  /* erSET_NEXT_TARGET
3578  sends the next target position. This may include intermediate position, radius, angle for circular motion
3579  Opcode 117, Chapter 3.4.3, Page 3-52
3580  Return
3581  1 - need more data, nothing to do
3582  0 - OK, next step is calculated successful
3583  -17 - specified motion type is not supported
3584  -34 - Error in matrix. Incomplete matrix
3585  -35 - Cartesian position expected
3586  -36 - Joint position expected
3587  -43 - Initial position not set
3588  -51 - no solution is found. One joint is out of range
3589  -52 - Cartesian position is out of work range
3590  -59 - specified position is singular
3591  -68 - fatal error, stopped calculating
3592  -71 - Position not stored, target buffer is full
3593  -78 - The specified position is not acceptable
3594  -79 - Not ready to receive targets
3595  */
3622  static DLLAPI int ER_STDCALL erSET_NEXT_TARGET(ER_HND er_hnd, NEXT_TARGET_DATA *p_next_target_data);
3623 
3624  /* erSET_NEXT_TARGET_ADVANCE
3625  Definition: Sends about next target data
3626  Return 0-OK, 1-Error
3627  */
3638  static DLLAPI int ER_STDCALL erSET_NEXT_TARGET_ADVANCE(ER_HND er_hnd, NEXT_TARGET_DATA_ADVANCE *p_next_target_data_advance);
3639 
3640  /*erSTOP_MOTION
3641  Definition: Stops the on-going motion toward the target
3642  Opcode 151, Chapter 3.4.8, Page 3-101
3643  Return 0-OK, 1-Error
3644  */
3656  static DLLAPI int ER_STDCALL erSTOP_MOTION(ER_HND er_hnd);
3657 
3658  /*erCONTINUE_MOTION
3659  Definition: Continues a motion that was stopped with the erSTOP_MOTION() function
3660  Opcode 152, Chapter 3.4.8, Page 3-102
3661  Return 0-OK, 1-Error
3662  */
3673  static DLLAPI int ER_STDCALL erCONTINUE_MOTION(ER_HND er_hnd);
3674 
3675  /*erCANCEL_MOTION
3676  Definition: Cancel a motion that was stopped with erSTOP_MOTION() function
3677  Opcode 153, Chapter 3.4.8, Page 3-103
3678  Return 0-OK, 1-Error
3679  */
3690  static DLLAPI int ER_STDCALL erCANCEL_MOTION(ER_HND er_hnd);
3691 };
3692 
3694 // class ERK_CAPI_MOP_EXEC
3695 //
3700 {
3701 public:
3702  /* erGET_NEXT_STEP
3703  returns the next interpolated position step, the
3704  elapsed time and supplementary information like events, joint limits and messages
3705  Opcode 118, Chapter 3.4.3, Page 3-54
3706  Return
3707  2 - final step, target reached or speed is zero
3708  1 - need more data, nothing to do
3709  0 - OK, next step is calculated successful
3710  -13 - the specified output format is not supported
3711  -17 - the specified motion type is not supported
3712  -25 - the motion is not possible in the specified time
3713  -42 - no target set
3714  -51 - no solution is found. One joint is out of range
3715  -52 - Cartesian position is out of work range
3716  -68 - fatal error, stopped calculating
3717  -76 - incomplete or inconsistent motion specification, can't move
3718  -1053 - Cartesian position is out of boudary work range
3719  -1059 - Cartesian position is singular
3720  */
3752  static DLLAPI int ER_STDCALL erGET_NEXT_STEP(ER_HND er_hnd, long output_format, NEXT_STEP_DATA *p_next_step_data, double time);
3753 
3763  static DLLAPI int ER_STDCALL erGetCurrentStepData(ER_HND er_hnd, CURRENT_STEP_DATA *p_current_step_data);
3764 
3765  /*erSET_OVERRIDE_POSITION
3766  Definition: Sets a correction offset which will be added to the path during program execution
3767  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.
3768  Opcode 129, Chapter 3.4.4, Page 3-69
3769  Return 0-OK, 1-Error, -1- not supported
3770  */
3780  static DLLAPI int ER_STDCALL erSET_OVERRIDE_POSITION(ER_HND er_hnd, DFRAME *PosOffset);
3781 
3782  /*erGET_CURRENT_TARGETID
3783  Definition: Returns the TargetID of the motion in execution
3784  Opcode 163, Chapter 3.4.6, Page 3-91
3785  Return 0-OK, 1-Error
3786  */
3795 };
3796 
3797 
3798 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_TOOLPATH
3800 // class ERK_CAPI_TOOLPATH
3801 //
3806 {
3807 public:
3811 
3815 
3819 
3823 
3827 
3831 
3835 
3839 
3843 
3847 
3851 
3855 
3859 
3863 
3864 public:
3890  static DLLAPI int ER_STDCALL erInitToolPath (ER_HND er_hnd, ER_TOOLPATH_HND *er_tpth_hnd);
3891 
3897  static DLLAPI int ER_STDCALL erUnloadToolPath (ER_TOOLPATH_HND *er_tpth_hnd);
3898 
3909  static DLLAPI int ER_STDCALL erInsertToolPath (ER_HND er_hnd, ER_TOOLPATH_HND *er_tpth_hnd, ER_TOOLPATH_HND er_tpth_hnd_ref);
3910 
3918  static DLLAPI int ER_STDCALL erSwapToolPath (ER_TOOLPATH_HND er_tpth_hnd1, ER_TOOLPATH_HND er_tpth_hnd2);
3919 
3926 
3932  //static DLLAPI ER_HND ER_STDCALL erToolPathGetER_HND (ER_TOOLPATH_HND er_tpth_hnd); // Device Handle belonging to tool path handle
3933 
3938  static DLLAPI char* ER_STDCALL erToolPathName (ER_TOOLPATH_HND er_tpth_hnd); // Name ToolPath
3939 
3946  static DLLAPI long ER_STDCALL erToolPathEnable (ER_TOOLPATH_HND er_tpth_hnd, long enable); // 0-Disable, 1-Enable, 2-Status
3947 
3953  static DLLAPI ER_HND ER_STDCALL erToolPathGetRobotHandle (ER_TOOLPATH_HND er_tpth_hnd); // Get Robot Handle belonging to tool path handle
3959  static DLLAPI ER_HND ER_STDCALL erToolPathGetTrackMotionHandle (ER_TOOLPATH_HND er_tpth_hnd); // Get TrackMotion Handle belonging to tool path handle
3965  static DLLAPI ER_HND ER_STDCALL erToolPathGetPositionerHandle (ER_TOOLPATH_HND er_tpth_hnd); // Get Positioner Handle belonging to tool path handle
3971  static DLLAPI ER_HND ER_STDCALL erToolPathGetConveyorHandle (ER_TOOLPATH_HND er_tpth_hnd); // Get Conveyor Handle belonging to tool path handle
3972 
3981  static DLLAPI long ER_STDCALL erToolPathSetTrackMotionHandle (ER_TOOLPATH_HND er_tpth_hnd, ER_HND hnd_TrackMotion=NULL);// Set TrackMotion Handle belonging to tool path handle
3982 
3991  static DLLAPI long ER_STDCALL erToolPathSetPositionerHandle (ER_TOOLPATH_HND er_tpth_hnd, ER_HND hnd_Positioner=NULL); // Set Positioner Handle belonging to tool path handle
3992 
4001  static DLLAPI long ER_STDCALL erToolPathSetConveyorHandle (ER_TOOLPATH_HND er_tpth_hnd, ER_HND hnd_Conveyor=NULL); // Set Conveyor Handle belonging to tool path handle
4002 
4007  static DLLAPI char* ER_STDCALL erToolPathLogFileName (ER_TOOLPATH_HND er_tpth_hnd); // Log File Name ToolPath
4012  static DLLAPI char* ER_STDCALL erToolPathPrgFileName (ER_TOOLPATH_HND er_tpth_hnd); // Prg File Name ToolPath
4013 
4024 
4032  static DLLAPI long ER_STDCALL CpyMotionAttributesTemplate (ER_TOOLPATH_HND er_tpth_hnd, ER_TARGET_ATTRIBUTES_HND hnd); // Copy target attributes data to template
4039  static DLLAPI ER_TARGET_ATTRIBUTES_HND ER_STDCALL GetMotionAttributesTemplateHnd (ER_TOOLPATH_HND er_tpth_hnd); // Get handle to internal attributes template data
4040 
4056 
4072 
4088 
4104 
4113 
4121 
4122 
4129  static DLLAPI long ER_STDCALL erToolPathReset (ER_TOOLPATH_HND er_tpth_hnd); // Reset all tool path target locations
4138  static DLLAPI int ER_STDCALL ERK_CAPI_TOOLPATH::erToolPathResetInitRobot (ER_TOOLPATH_HND er_tpth_hnd,double *q_start=NULL);
4147  static DLLAPI int ER_STDCALL ERK_CAPI_TOOLPATH::erToolPathResetInitTrackMotion (ER_TOOLPATH_HND er_tpth_hnd,double *q_start=NULL);
4156  static DLLAPI int ER_STDCALL ERK_CAPI_TOOLPATH::erToolPathResetInitPositioner (ER_TOOLPATH_HND er_tpth_hnd,double *q_start=NULL);
4165  static DLLAPI int ER_STDCALL ERK_CAPI_TOOLPATH::erToolPathResetInitConveyor (ER_TOOLPATH_HND er_tpth_hnd,double *q_start=NULL);
4166 
4167 
4176  static DLLAPI int ER_STDCALL ERK_CAPI_TOOLPATH::erToolPathSetInitPos (ER_TOOLPATH_HND er_tpth_hnd,double InterpolationTime=0);
4177 
4231 
4334  static DLLAPI int ER_STDCALL ERK_CAPI_TOOLPATH::erGET_NEXT_TOOLPATH_STEP(ER_TOOLPATH_HND er_tpth_hnd, long cntrl, NEXT_STEP_DATA *p_next_step_data=NULL, double time=0);
4335 
4342 
4351 };
4352 
4353 
4358 {
4359 public:
4360  // Target Locations
4369  static DLLAPI long ER_STDCALL erTargetLocationReset (ER_TARGET_LOCATION_HND er_tarloc_hnd); // Reset target location
4370 
4380  static DLLAPI int ER_STDCALL erAddTargetLocation (ER_TOOLPATH_HND er_tpth_hnd,ER_TARGET_LOCATION_HND *er_tarloc_hnd);
4381 
4394  static DLLAPI int 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);
4395 
4403  static DLLAPI int ER_STDCALL erUnloadTargetLocation (ER_TARGET_LOCATION_HND *er_tarloc_hnd);
4404 
4414  static DLLAPI int ER_STDCALL erSwapTargetLocation (ER_TARGET_LOCATION_HND er_tarloc_hnd1, ER_TARGET_LOCATION_HND er_tarloc_hnd2);
4415 
4422 
4428  static DLLAPI char* ER_STDCALL erGetTargetLocationName (ER_TARGET_LOCATION_HND er_tarloc_hnd);
4429 
4436 
4442 
4447  static DLLAPI ER_HND ER_STDCALL erhGetTargetLocationER_HND (ER_TARGET_LOCATION_HND er_tarloc_hnd); // Device Handle belonging to target location handle
4448 
4455 
4462 
4469 
4476 
4489  static 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);
4490 
4506  static 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);
4519  static 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);
4535  static 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);
4536 
4552  static 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);
4553 
4570  static 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);
4571  //static DLLAPI long ER_STDCALL erSetTargetLocation_ExtAx_TrackMotion (ER_TARGET_LOCATION_HND er_tarloc_hnd, double axis_value_01, double speed_value_01=0, long sync_type=ER_SYNC_UNDEF, ER_HND er_hnd_connect=0);
4572  //static DLLAPI long ER_STDCALL erSetTargetLocation_ExtAx_Positioner (ER_TARGET_LOCATION_HND er_tarloc_hnd, double axis_value_01,double axis_value_02, double speed_value_01=0, double speed_value_02=0, long sync_type=ER_SYNC_UNDEF, ER_HND er_hnd_connect=0);
4573 };
4574 
4579 {
4580 public:
4581  // Header Data
4594 
4601 
4607  static DLLAPI char* ER_STDCALL erGetTargetLocationName (ER_TARGET_LOCATION_HND er_tarloc_hnd);
4608 
4615 
4626  static DLLAPI long ER_STDCALL erTargetLocationValid (ER_TARGET_LOCATION_HND er_tarloc_hnd, long valid);
4627 };
4628 
4633 {
4634 public:
4635  // Instructions, individual information text
4645 
4653 
4661 
4669 
4679  static DLLAPI int ER_STDCALL erSetInstructions (ER_TARGET_LOCATION_HND er_tarloc_hnd, char *InfoTxt=NULL, char *LeadInst=NULL, char *LagInst=NULL); // Set Instructions: information text, LeadInstructions, LagInstructions
4680 };
4681 
4686 {
4687 public:
4688  // Auxiliary Motion Attributes
4695 };
4696 
4701 {
4702 public:
4703  // Motion Attributes
4714 
4721  static DLLAPI long *ER_STDCALL inq_enabled (ER_TARGET_ATTRIBUTES_HND hnd); // enables/disables this target
4722 
4728  static DLLAPI TErTargetID *ER_STDCALL inq_target_id (ER_TARGET_ATTRIBUTES_HND hnd); // unique target ID, NEXT_TARGET_DATA.TargetID
4729 
4737  static DLLAPI double *ER_STDCALL inq_WobjCartPosVec (ER_TARGET_ATTRIBUTES_HND hnd); // WorkObject valid for all cartesian targets CartPosVec, CartPosVecVia
4738 
4745  static DLLAPI long *ER_STDCALL inq_ext_tcp_mode (ER_TARGET_ATTRIBUTES_HND hnd); // The external TCP can be ::IPO_MODE_BASE (tool guided) or ::IPO_MODE_TOOL (work object guided), erSetExtTcpMode()
4746 
4747 
4756  static DLLAPI double *ER_STDCALL inq_BaseVec (ER_TARGET_ATTRIBUTES_HND hnd); // work object, $BASE, $UFrame has only effect if ::IPO_MODE_BASE, erSetBaseRobotBase()
4757 
4765  static DLLAPI long *ER_STDCALL inq_BaseIdx (ER_TARGET_ATTRIBUTES_HND hnd); // user defined Idx for work object, $BASE, $UFrame has only effect if ::IPO_MODE_BASE, erSetBaseRobotBase()
4766 
4774  static DLLAPI char *ER_STDCALL inq_BaseName (ER_TARGET_ATTRIBUTES_HND hnd); // user defined Name for work object, $BASE, $UFrame has only effect if ::IPO_MODE_BASE, erSetBaseRobotBase()
4775 
4776 
4801 
4802 
4827 
4828 
4853 
4854 
4855 
4863  static DLLAPI double *ER_STDCALL inq_ToolVec (ER_TARGET_ATTRIBUTES_HND hnd); // Tool/TCP data, erSetTool()
4871  static DLLAPI long *ER_STDCALL inq_ToolIdx (ER_TARGET_ATTRIBUTES_HND hnd); // user defined Idx for Tool/TCP data, erSetTool()
4879  static DLLAPI char *ER_STDCALL inq_ToolName (ER_TARGET_ATTRIBUTES_HND hnd); // user defined Name for Tool/TCP data, erSetTool()
4880 
4888  DLLAPI double *ER_STDCALL inq_ToolOffsetVec(ER_TARGET_ATTRIBUTES_HND hnd); // Tool/TCP offset data, erSetToolOffset()
4896  DLLAPI long *ER_STDCALL inq_ToolOffsetIdx(ER_TARGET_ATTRIBUTES_HND hnd); // user defined Idx for Tool/TCP offset data, erSetToolOffset()
4904  DLLAPI char *ER_STDCALL inq_ToolOffsetName(ER_TARGET_ATTRIBUTES_HND hnd); // user defined Name for Tool/TCP offset data, erSetToolOffset()
4905 
4923  static DLLAPI long *ER_STDCALL inq_motype (ER_TARGET_ATTRIBUTES_HND hnd); // ER_JOINT , ER_LIN, ER_SLEW, ER_CIRC, erSELECT_MOTION_TYPE()
4924 
4934  static DLLAPI long *ER_STDCALL inq_dom_type (ER_TARGET_ATTRIBUTES_HND hnd); // 1-ER_DOMINANT_INTERPOLATION_POS, 2-ER_DOMINANT_INTERPOLATION_ORI, 3-ER_DOMINANT_INTERPOLATION_AXIS, 4-ER_DOMINANT_INTERPOLATION_AUTO, erSELECT_DOMINANT_INTERPOLATION()
4935 
4943  static DLLAPI long *ER_STDCALL inq_advance_motion (ER_TARGET_ATTRIBUTES_HND hnd); // look ahead by 1 is only supported, erSET_ADVANCE_MOTION()
4944 
4952  static DLLAPI double *ER_STDCALL inq_override_speed (ER_TARGET_ATTRIBUTES_HND hnd); // [%] Sets correction values for scaling the programmed speed, becomes effective for the next target supplied by erSET_NEXT_TARGET, erSET_OVERRIDE_SPEED()
4953 
4954 
4963  static DLLAPI double *ER_STDCALL inq_acc (ER_TARGET_ATTRIBUTES_HND hnd); // 20-100[%] Set lagging of accelerations deceleration, erSetAccSet()
4964 
4973  static DLLAPI double *ER_STDCALL inq_ramp (ER_TARGET_ATTRIBUTES_HND hnd); // 20-100[%] Set lagging of accelerations deceleration, erSetAccSet()
4974 
4984  static DLLAPI long *ER_STDCALL inq_filter_factor (ER_TARGET_ATTRIBUTES_HND hnd); // Velocity profile: 0-geo (ER_MOTION_FILTER_GEO), 1-c2 (ER_MOTION_FILTER_C2), erSET_MOTION_FILTER()
4985 
4995  static DLLAPI long *ER_STDCALL inq_flyby_on (ER_TARGET_ATTRIBUTES_HND hnd); // 0-OFF, 1-ON only when LIN or CIRC, erSELECT_FLYBY_MODE()
4996 
5006  static DLLAPI double *ER_STDCALL inq_flyby_speed_percent (ER_TARGET_ATTRIBUTES_HND hnd);// if flyby_on enabled: [%], erSET_FLYBY_CRITERIA_PARAMETER(), tbd
5007 
5017  static DLLAPI double *ER_STDCALL inq_flyby_dist (ER_TARGET_ATTRIBUTES_HND hnd); // if flyby_on enabled: [m], erSET_FLYBY_CRITERIA_PARAMETER(), tbd
5018 
5034  static DLLAPI long *ER_STDCALL inq_autoaccel (ER_TARGET_ATTRIBUTES_HND hnd); // ER_AUTOACCEL_MODE_OFF, -_POS, -_ORI, -_AX, -_DEF, -_ON, erSetAutoAccel()
5035 
5044  static DLLAPI double *ER_STDCALL inq_LeadWaitTime (ER_TARGET_ATTRIBUTES_HND hnd); // Wait time [s], before move will start, NEXT_TARGET_DATA.LeadWaitTime
5053  static DLLAPI double *ER_STDCALL inq_LagWaitTime (ER_TARGET_ATTRIBUTES_HND hnd); // Wait time [s], after robot reaches its target, NEXT_TARGET_DATA.LagWaitTime
5054 };
5055 
5060 {
5061 public:
5062  // Target data for Joint Move
5082  static DLLAPI long *ER_STDCALL inq_target_type (ER_TARGET_MOVE_JOINT_HND hnd); // ER_TARGET_TYPE_ABS, ER_TARGET_TYPE_ABSJOINT, erSELECT_TARGET_TYPE()
5083 
5089  static DLLAPI double *ER_STDCALL inq_speed_percent (ER_TARGET_MOVE_JOINT_HND hnd); // joint speed [%], erSET_JOINT_SPEEDS()
5095  static DLLAPI double *ER_STDCALL inq_accel_percent (ER_TARGET_MOVE_JOINT_HND hnd); // joint acceleration [%], erSET_JOINT_ACCELERATIONS()
5105  static DLLAPI double *ER_STDCALL inq_JointPos (ER_TARGET_MOVE_JOINT_HND hnd); // Target Joint Location for ER_TARGET_TYPE_ABSJOINT, q1 [m,rad], NEXT_TARGET_DATA.JointPos
5116  static DLLAPI double *ER_STDCALL inq_CartPosVec (ER_TARGET_MOVE_JOINT_HND hnd); // Cart. Target Location for ER_TARGET_TYPE_ABS, Pxyz [m] Rxyz [rad], NEXT_TARGET_DATA.CartPos
5122  static DLLAPI long *ER_STDCALL inq_configuration (ER_TARGET_MOVE_JOINT_HND hnd); // Target manipulator configuration string, NEXT_TARGET_DATA.Configuration
5130  static DLLAPI long *ER_STDCALL inq_ptp_target_calculation_mode (ER_TARGET_MOVE_JOINT_HND hnd); // PTP target calculation mode, ::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, NEXT_TARGET_DATA.ptp_target_calculation_mode
5131 
5139  static DLLAPI long *ER_STDCALL inq_turn_value (ER_TARGET_MOVE_JOINT_HND hnd); // Target turn values if ::ER_PTP_TARGET_CALC_MODE_TURNS is enabled, NEXT_TARGET_DATA.turn_value[]
5140 };
5141 
5146 {
5147 public:
5148  // Target data for CP Move
5167  static DLLAPI long *ER_STDCALL inq_target_type (ER_TARGET_MOVE_CP_HND hnd); // ER_TARGET_TYPE_ABS
5173  static DLLAPI double *ER_STDCALL inq_speed_cp (ER_TARGET_MOVE_CP_HND hnd); // cp speed [m/s], ori speed [deg/s], erSET_CARTESIAN_POSITION_SPEED(), erSET_CARTESIAN_ORIENTATION_SPEED()
5179  static DLLAPI double *ER_STDCALL inq_speed_ori (ER_TARGET_MOVE_CP_HND hnd); // cp speed [m/s], ori speed [deg/s], erSET_CARTESIAN_POSITION_SPEED(), erSET_CARTESIAN_ORIENTATION_SPEED()
5185  static DLLAPI double *ER_STDCALL inq_accel_cp (ER_TARGET_MOVE_CP_HND hnd); // cp accel [m/s^2], [deg/s^2], erSET_CARTESIAN_POSITION_ACCELERATION(), erSET_CARTESIAN_ORIENTATION_ACCELERATION()
5191  static DLLAPI double *ER_STDCALL inq_accel_ori (ER_TARGET_MOVE_CP_HND hnd); // cp accel [m/s^2], [deg/s^2], erSET_CARTESIAN_POSITION_ACCELERATION(), erSET_CARTESIAN_ORIENTATION_ACCELERATION()
5202  static DLLAPI double *ER_STDCALL inq_CartPosVec (ER_TARGET_MOVE_CP_HND hnd); // Cart. Target Location for ER_LIN and ER_CIRC move, Pxyz [m] Rxyz [rad], NEXT_TARGET_DATA.CartPos
5212  static DLLAPI double *ER_STDCALL inq_CartPosVecVia (ER_TARGET_MOVE_CP_HND hnd); // Cart. Via Location for ER_CIRC move, Pxyz [m] Rxyz [rad], NEXT_TARGET_DATA.CartPos
5220  static DLLAPI long *ER_STDCALL inq_interpolation_mode (ER_TARGET_MOVE_CP_HND hnd); // =1 one angle (QUATERNION), =2 two angle (QUATERNION), =3 three angle (VARIABLE), erSELECT_ORIENTATION_INTERPOLATION_MODE()
5234  static DLLAPI long *ER_STDCALL inq_circ_orientation_interpolation_mode (ER_TARGET_MOVE_CP_HND hnd); // ::ER_CIRC_ORI_INTERPOLATION_START_END ... ::ER_CIRC_ORI_INTERPOLATION_FIX, erSELECT_CIRCULAR_ORIENTATION_INTERPOLATION_MODE()
5235 };
5236 
5241 {
5242 public:
5243  // Motion execution data at target
5266  static DLLAPI long ER_STDCALL erGetMotionExec_motion_success (ER_TARGET_MOTION_EXEC_HND hnd); // 1 - TARGET_LOCATION reached successfully, 0 - TARGET_LOCATION not reached successfully
5273  static DLLAPI double ER_STDCALL erGetMotionExec_time_stamp (ER_TARGET_MOTION_EXEC_HND hnd); // Time stamp [s] when target location is reached
5278  static DLLAPI double ER_STDCALL erGetMotionExec_trajectory_time (ER_TARGET_MOTION_EXEC_HND hnd); // Trajectory Time [s] for current motion to target
5292  static DLLAPI long ER_STDCALL erGetMotionExec_configuration (ER_TARGET_MOTION_EXEC_HND hnd); // current manipulator configuration at target location, [1..number of robot configurations]
5293 
5299  static DLLAPI double *ER_STDCALL erGetMotionExec_JointPos (ER_TARGET_MOTION_EXEC_HND hnd); // Joint Location at target location
5300 
5306  static DLLAPI double *ER_STDCALL erGetMotionExec_ExtAxValues (ER_TARGET_MOTION_EXEC_HND hnd); // External axis values at target location
5307 };
5308 
5313 {
5314 public:
5315  // External axis data definition for Track/Slider-Motion
5364 
5371  static DLLAPI long *ER_STDCALL inq_number_extax_used (ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND hnd); // Number of "used" external axis. Note: The total number of external axis must not exceed ER_EXTAX_KIN_DATA_MAX
5372 
5380  static DLLAPI long *ER_STDCALL inq_sync_type (ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND hnd); // ER_SYNC_OFF, ER_SYNC_ON, erConnectTrackMotionSetSync(), erConnectPositionerSetSync()
5381 
5395  static DLLAPI ER_EXTAX_KIN_DATA *ER_STDCALL inq_extax_data (ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND hnd, long extax_idx); // external axis data, NEXT_TARGET_DATA.extax_data[]
5396 
5410  static DLLAPI long ER_STDCALL SetExtAxTrackMotionIdx (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);
5411 };
5416 {
5417 public:
5418  // External axis data definition for Positioner/TurnTable
5485  static DLLAPI long *ER_STDCALL inq_number_extax_used (ER_TARGET_EXTAX_DEVICE_POSITIONER_HND hnd); // Number of "used" external axis. Note: The total number of external axis must not exceed ER_EXTAX_KIN_DATA_MAX
5486 
5494  static DLLAPI long *ER_STDCALL inq_sync_type (ER_TARGET_EXTAX_DEVICE_POSITIONER_HND hnd); // ER_SYNC_OFF, ER_SYNC_ON, erConnectPositionerSetSync()
5508  static DLLAPI ER_EXTAX_KIN_DATA *ER_STDCALL inq_extax_data (ER_TARGET_EXTAX_DEVICE_POSITIONER_HND hnd, long extax_idx); // external axis data, NEXT_TARGET_DATA.extax_data[]
5522  static DLLAPI long ER_STDCALL SetExtAxPositionerIdx (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);
5523 };
5524 
5529 {
5530 public:
5549  static DLLAPI long *ER_STDCALL inq_number_extax_used(ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND hnd); // Number of "used" external axis. Note: The total number of external axis must not exceed ER_EXTAX_KIN_DATA_MAX
5557  static DLLAPI long *ER_STDCALL inq_sync_type(ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND hnd); // ER_SYNC_OFF, ER_SYNC_ON, erConnectConveyorSetSync()
5571  static DLLAPI ER_EXTAX_KIN_DATA *ER_STDCALL inq_extax_data(ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND hnd, long extax_idx); // external axis data, NEXT_TARGET_DATA.extax_data[]
5585  static DLLAPI long ER_STDCALL SetExtAxConveyorIdx(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);
5586 
5606  static DLLAPI long ER_STDCALL Set_Target_ConveyorTrackingWindow(ER_TARGET_LOCATION_HND er_tarloc_hnd, long active, double up, double down, TErTrackingWindowID id_tw, char *name = NULL);
5607 
5618 };
5619 
5624 {
5625 public:
5636  static DLLAPI long ER_STDCALL erTPth_TBox_Fct(int FctIdx, int FctSubIdx, ER_TOOLPATH_HND er_tpth_hnd, int constraint_param, char *svalues=NULL);
5637 };
5638 
5643 {
5644 public:
5684  static 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);
5685 };
5686 
5691 {
5692 public:
5698  static DLLAPI int ER_STDCALL erTPth_Fct(ER_TOOLPATH_HND er_tpth_hnd);
5699 };
5700 
5701 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_SIM
5703 // class ERK_CAPI_SIM
5704 //
5708 class ERK_CAPI_SIM: public ERK_CAPI
5709 {
5710 public:
5714 };
5715 
5717 // class ERK_CAPI_SIM_COLLISION
5718 //
5723 {
5724 public:
5725  /* Creates a collision handle for one Model and preallocate memory for n_tris triangles
5726  */
5735  static DLLAPI int ER_STDCALL erColl_BeginModel(ER_COLLISION_HND *er_coll_hnd, long n_tris);
5736 
5737  /* Adds a triangle to a Model
5738  */
5750  static DLLAPI int ER_STDCALL erColl_AddTri(ER_COLLISION_HND er_coll_hnd, double *p1, double *p2, double *p3, long id);
5751 
5752  /* brief Stop building a Model
5753  */
5760  static DLLAPI int ER_STDCALL erColl_EndModel(ER_COLLISION_HND er_coll_hnd);
5761 
5762  /* Perform the collision check of two Models
5763  See also erColl_ChkCollision_res() to get the collision results immediately
5764  */
5918  static DLLAPI int 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);
5919 
5920  /* Perform the collision check of two Models
5921  Collision results returned immediately compared to erColl_ChkCollision()
5922  */
6266  static DLLAPI int 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);
6267 
6299  static DLLAPI int ER_STDCALL erColl_ChkCollision_res_free(long query_type, void *pres);
6300 
6301  /* Unload a Model. Free all allocated memory
6302  */
6309  static DLLAPI int ER_STDCALL erColl_UnloadModel(ER_COLLISION_HND *er_coll_hnd);
6310 
6311  /* Get Collision result for query ::ER_COLL_QUERY_TYPE_COLLIDE
6312  */
6321 
6322  /* Get Collision result for query ::ER_COLL_QUERY_TYPE_DISTANCE
6323  */
6332 
6333  /* Get Collision result for query ::ER_COLL_QUERY_TYPE_TOLERANCE
6334  */
6343 };
6344 
6346 // class ERK_CAPI_AUTOPATH
6347 //
6352 {
6353 public:
6358 
6366 
6440 
6448 
6456 
6523  static DLLAPI int ER_STDCALL ERK_CAPI_AUTOPATH::AutoPath_SetCallback_CheckConstraints(BOOL (*ptr_CheckConstraints)(int,void*));
6524 
6532  static DLLAPI int ER_STDCALL ERK_CAPI_AUTOPATH::SetPoseStart(double *pose_start);
6533 
6541  static DLLAPI int ER_STDCALL ERK_CAPI_AUTOPATH::SetPoseEnd(double *pose_end);
6542 
6550 
6555 
6559  static DLLAPI double* ER_STDCALL ERK_CAPI_AUTOPATH::GetStartPose(void);
6560 
6564  static DLLAPI double* ER_STDCALL ERK_CAPI_AUTOPATH::GetEndPose(void);
6565 
6570 
6575 
6582 
6590 
6596 
6601 
6606  static DLLAPI double* ER_STDCALL ERK_CAPI_AUTOPATH::GetWayPoint(int idx);
6612 
6618  static DLLAPI int ER_STDCALL ERK_CAPI_AUTOPATH::SetAccuracy(UINT accuracy);
6619 
6629  static DLLAPI int ER_STDCALL ERK_CAPI_AUTOPATH::SetAxisConstraints(int axisBit=AUTOPATH_SDK_AXIS_BIT_DOF6, int setting=0, double qConstraintMin=0, double qConstraintMax=0);
6630 
6637  static DLLAPI int ER_STDCALL ERK_CAPI_AUTOPATH::SetAxisPriority(int axisBit, int priority);
6642  static DLLAPI int ER_STDCALL ERK_CAPI_AUTOPATH::SetAxisEnable(int axisBit, int enable);
6643 
6660  static DLLAPI int ER_STDCALL ERK_CAPI_AUTOPATH::SetParameter(int ap_option, int ap_value);
6676  static DLLAPI int ER_STDCALL ERK_CAPI_AUTOPATH::GetParameter(int ap_option);
6677 
6711  static DLLAPI int ER_STDCALL ERK_CAPI_AUTOPATH::GetResults(int ap_result);
6712 };
6713 
6714 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_TARGETS
6716 // class ERK_CAPI_TARGETS
6717 //
6722 {
6723 public:
6724 };
6725 
6726 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_GEO
6728 // class ERK_CAPI_GEO
6729 //
6733 class ERK_CAPI_GEO : public ERK_CAPI
6734 {
6735 public:
6739 
6740 public:
6741  /* erUpdateGeo
6742  Update all Models for each robot joint
6743  */
6752  static DLLAPI int ER_STDCALL erUpdateGeo(ER_HND er_hnd);
6753 };
6754 
6756 // class ERK_CAPI_GEO_MNGR
6757 //
6762 {
6763 public:
6764  //~~~~~~~~~~~~~~~~~~~~~
6765  // Administration
6766  //~~~~~~~~~~~~~~~~~~~~~
6770  static DLLAPI int ER_STDCALL erGeoMngr_GetVersion();
6771 
6777  static DLLAPI TErGeoHandle ER_STDCALL erGeoMngr_LoadGeometry(ER_HND er_hnd, LOAD_GEOMETRY_DATA *p_load_geometry_data);
6778 
6785  static DLLAPI int ER_STDCALL erGeoMngr_FreeGeometry(ER_HND er_hnd, TErGeoHandle GeoHandle);
6786 
6787  //~~~~~~~~~~~~~~~~~~~~~
6788  // Access to geometries
6789  //~~~~~~~~~~~~~~~~~~~~~
6796 
6805  static DLLAPI int ER_STDCALL erGeoMngr_GetGeometry(ER_HND er_hnd, int geometryIndex, LOAD_GEOMETRY_DATA *p_load_geometry_data, DFRAME* kinMat);
6806 
6904 
6905  // fills structure pointed to by p_load_geometry_data with geometry loading data
6906 
6916  static DLLAPI int ER_STDCALL ERK_CAPI_GEO_MNGR::erGeoMngr_GetAxisGeometry(ER_HND er_hnd, int axis_nr, int geometryIndex, LOAD_GEOMETRY_DATA *p_load_geometry_data, DFRAME* kinMat);
6917 
6948  static DLLAPI const double* ER_STDCALL ERK_CAPI_GEO_MNGR::erGeoMngr_GetGeometryBBox(TErGeoHandle geometryHandle);
6949 
6950  // Achsen-BBox über alle Geometry-BBoxes einer Achse
6951  static DLLAPI const double* ER_STDCALL ERK_CAPI_GEO_MNGR::erGeoMngr_GetAxisBBox(ER_HND er_hnd, int axis_id);
6952  // Device-BBox
6955 
6957  static DLLAPI double* ER_STDCALL ERK_CAPI_GEO_MNGR::erGeoMngr_GetGeometryObjPoint(TErGeoHandle geometryHandle, int objidx, int index);
6959  static DLLAPI double* ER_STDCALL ERK_CAPI_GEO_MNGR::erGeoMngr_GetGeometryObjPointNormal(TErGeoHandle geometryHandle, int objidx, int index);
6961  static DLLAPI size_t* ER_STDCALL ERK_CAPI_GEO_MNGR::erGeoMngr_GetGeometryObjLine(TErGeoHandle geometryHandle, int objidx, int index);
6963  static DLLAPI size_t* ER_STDCALL ERK_CAPI_GEO_MNGR::erGeoMngr_GetGeometryObjPolygon(TErGeoHandle geometryHandle, int objidx, int index);
6964 
6965  // ist die Obj-Color intern -2 (USER_COLOR); wird die user color (die Farbe, die in der LOAD_GEOMETRY_DATA-Struktur steht); zurückgegeben
6966  // sonst : konkrete Farbe
6967  static DLLAPI double* ER_STDCALL ERK_CAPI_GEO_MNGR::erGeoMngr_GetGeometryObjColor(TErGeoHandle geometryHandle, int objidx);
6968  // der Farbcode (kann auch -2 (USER_COLOR); sein, damit die Host-Applikation eine eigene UserColor festlegen kann);
6970 
6971  // Get number of clones >=1
6973  // Get clone handle
6975  //double* ER_STDCALL ERK_CAPI_GEO_MNGR::erGeoMngr_GetGeometryPolygoneNormal(TErGeoHandle geometryHandle, int index);
6976  //double* ER_STDCALL ERK_CAPI_GEO_MNGR::erGeoMngr_GetGeometryPolygoneCenter(TErGeoHandle geometryHandle, int index);
6979  static DLLAPI int ER_STDCALL ERK_CAPI_GEO_MNGR::erGeoMngr_SetGeometryIsCollided(TErGeoHandle geometryHandle, int isCollided);
6981  static DLLAPI int ER_STDCALL ERK_CAPI_GEO_MNGR::erGeoMngr_CheckBoundingBoxCollision(DFRAME* T1, const double* bbox1, DFRAME* T2, const double* bbox2, double tolerance);
6982 };
6983 
6984 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_SYS
6986 // class ERK_CAPI_SYS
6987 //
6991 class ERK_CAPI_SYS : public ERK_CAPI
6992 {
6993 public:
6997 
7001 };
7002 
7004 // class ERK_CAPI_SYS_UTILITIES
7005 //
7010 {
7011 public:
7012 };
7013 
7015 // class ERK_CAPI_SYS_MATHEMATICS
7016 //
7021 {
7022 public:
7037  static DLLAPI int ER_STDCALL erMath_FrameToVecIdx(DFRAME *T, double *vec, long rotation_idx=ER_ROT_XYZ);
7038 
7053  static DLLAPI int ER_STDCALL erMath_VecToFrameIdx(double *vec, DFRAME *T, long rotation_idx=ER_ROT_XYZ);
7054 
7069  static DLLAPI int ER_STDCALL erMath_PxyzRxyzToFrame(double x,double y,double z,double Rx,double Ry,double Rz, DFRAME *T);
7070 
7078  static DLLAPI int ER_STDCALL erMath_Frame_Ident(DFRAME *T); // T = Ident
7079 
7090  static DLLAPI int ER_STDCALL erMath_Frame_Trans(DFRAME *T, double x, double y, double z); // set frame position T.p[] = [x,y,z]
7091 
7103  static DLLAPI int ER_STDCALL erMath_Frame_Rot(DFRAME *T, double q, long rotation_idx=ER_ROT_IDENT); // rotation_idx = ER_ROT_IDENT, ER_ROT_X, ER_ROT_Y, ER_ROT_Z, T = f(q,rotation_idx)
7104 
7115  static DLLAPI int ER_STDCALL erMath_AngleBetween(DFRAME *Ts, DFRAME *Te, double *angle, double *k=NULL);
7116 
7127  static DLLAPI int ER_STDCALL erMath_DistBetween(DFRAME *Ts, DFRAME *Te, double *dist, double *dv=NULL);
7128 
7137  static DLLAPI int ER_STDCALL erMath_invT(DFRAME *To,DFRAME *Ti); // To = inv(Ti)
7138 
7147  static DLLAPI int ER_STDCALL erMath_invR(DFRAME *Ro,DFRAME *Ri); // Ro = inv(Ri) = transpose(Ri) = Ri'
7148 
7158  static DLLAPI int ER_STDCALL erMath_mul_R_R(DFRAME *Ro,DFRAME *Ri1,DFRAME *Ri2); // Ro = Ri1 * Ri2
7159 
7169  static DLLAPI int ER_STDCALL erMath_mul_T_T(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2); // To = Ti1 * Ti2
7170 
7182  static DLLAPI int ER_STDCALL erMath_mul_T_invT (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2); // To = Ti1 * inv(Ti2)
7183 
7195  static DLLAPI int ER_STDCALL erMath_mul_invT_T (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2); // To = inv(Ti1) * Ti2
7196 
7208  static DLLAPI int ER_STDCALL erMath_mul_invT_invT (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2); // To = inv(Ti1) * inv(Ti2)
7209 
7220  static DLLAPI int ER_STDCALL erMath_mul_T_pos (double *po,DFRAME *T,double *pi); // po = T * pi
7221 
7233  static DLLAPI int ER_STDCALL erMath_mul_invT_pos (double *po,DFRAME *T,double *pi); // po = inv(T) * pi
7234 
7244  static DLLAPI int ER_STDCALL erMath_mul_R_pos (double *po,DFRAME *R,double *pi); // po = R * pi
7245 
7257  static DLLAPI int ER_STDCALL erMath_mul_invR_pos (double *po,DFRAME *R,double *pi); // po = R' * pi
7258 
7269  static DLLAPI int ER_STDCALL erMath_mul_T_T_T(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = Ti1 * Ti2 * Ti3
7270 
7283  static DLLAPI int ER_STDCALL erMath_mul_T_T_invT(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = Ti1 * Ti2 * inv(Ti3)
7284 
7297  static DLLAPI int ER_STDCALL erMath_mul_T_invT_T(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = Ti1 * inv(Ti2) * Ti3
7298 
7311  static DLLAPI int ER_STDCALL erMath_mul_T_invT_invT(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = Ti1 * inv(Ti2) * inv(Ti3)
7312 
7325  static DLLAPI int ER_STDCALL erMath_mul_invT_T_T(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = inv(Ti1) * Ti2 * Ti3
7326 
7339  static DLLAPI int ER_STDCALL erMath_mul_invT_T_invT(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = inv(Ti1) * Ti2 * inv(Ti3)
7340 
7353  static DLLAPI int ER_STDCALL erMath_mul_invT_invT_T(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = inv(Ti1) * inv(Ti2) * Ti3
7354 
7367  static DLLAPI int ER_STDCALL erMath_mul_invT_invT_invT(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = To = inv(Ti1) * inv(Ti2) * inv(Ti3)
7368 
7379  static DLLAPI double* ER_STDCALL erMath_SetVec6(double *vec, double q1,double q2,double q3,double q4,double q5,double q6); // cpy vector of size n
7392  static DLLAPI double* ER_STDCALL erMath_SetVec6PosOri(double *vec, double x,double y,double z,double Rx,double Ry,double Rz); // cpy vector of size n, x,y,z in [mm], Rx,Ry,Rz in [deg]
7404  static DLLAPI double* ER_STDCALL erMath_SetVec_n(double *vec, int n, double q1,double q2,double q3,double q4,double q5,double q6); // cpy vector of size n
7411  static DLLAPI double* ER_STDCALL erMath_CpyVec(double *dst, double *src, int n); // cpy vector of size n
7417  static DLLAPI double* ER_STDCALL erMath_ResetVec(double *dst, int n); // reset vector of size n
7418 };
7419 
7420 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ static
7421 
7423 // static
7425 /* Unload a Model. Free all allocated memory
7426 */
7431 DLLAPI ERK_CAPI *_inq_erk_capi(void); // ERK_CAPI *p = _inq_erk_capi();
7432 
7433 /*
7434 //--------------------------------------------------------------------------------------------------
7435 //
7436 // The usage of below definitions is optional, but recommended for a better support by EASY-ROB
7437 //
7438 //--------------------------------------------------------------------------------------------------
7439 
7440 #include "erk_capi_types.h"
7441 
7442 #ifdef DLLAPI
7443 #undef DLLAPI
7444 #endif
7445 
7446 #define DLLAPI
7447 
7448 #include "erk_capi.h"
7449 #include "erk_capi_definitions.h"
7450 */
7451 
7452 #endif // _erk_capi_h
static DLLAPI int ER_STDCALL erColl_GetResults_Tolerance(ER_ToleranceResult *er_tres)
Get Collision result for query ER_COLL_QUERY_TYPE_TOLERANCE. Remarks Call erColl_ChkCollision() firs...
unsigned int * ER_HND
unique Kinematics handle, created with erInitKin()
Definition: erk_capi_types.h:187
static DLLAPI int ER_STDCALL GetParameter(int ap_option)
Get parameter Paramter ap_option is one of AUTOPATH_SDK_PARAMETER_DYNADJUST AUTOPATH_SDK_PARAMETER_...
static DLLAPI long *ER_STDCALL inq_ToolIdx(ER_TARGET_ATTRIBUTES_HND hnd)
Idx for Tool for a target location see inq_ToolVec(), inq_ToolName() This ToolIdx could be useful whe...
const long ER_COLL_QUERY_TYPE_COLLIDE
detects collision between two PQP_Models, erColl_ChkCollision()
Definition: erk_capi_types.h:716
static DLLAPI int 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() Initiali...
static DLLAPI int 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 ...
DLLAPI double *ER_STDCALL inq_extTcpWorldVec(ER_TARGET_ATTRIBUTES_HND hnd)
external Tool (TCP) w.r.t. Robot World or flange of positioner, for a target location Transformation ...
static DLLAPI double *ER_STDCALL inq_accel_cp(ER_TARGET_MOVE_CP_HND hnd)
Cartesian acceleration [m/s^2], for CP move for target location.
static DLLAPI int ER_STDCALL erGetAxOriMax(ER_HND er_hnd, double *ax_ori_max)
Get maximum cartesian orientation acceleration.
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_hn...
static 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 reset...
static DLLAPI int 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 Conve...
Method class for motion execution.
Definition: erk_capi.h:3699
static DLLAPI int ER_STDCALL AutoPathInit(AutoPath_ConfigurationSpace *apcs)
Initialize AutoPath Call this functions to setup the autopath configuration space Parameter apcs defi...
static DLLAPI int 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().
Homogeneous 4x4 transformation matrix, a Frame with 3x3 orthogonal noa-matrix (n = o x a) and 3x1 pos...
Definition: erk_capi_types.h:81
Contains target data for next move This structure contains all required data for the next target Usag...
static 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 p...
static DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumPointNormals(TErGeoHandle geometryHandle, int objidx)
static DLLAPI int ER_STDCALL GetPlanningStatus(void)
Get path planning status The planning status is one of AUTOPATH_SDK_STATUS_MP_IDLE AUTOPATH_SDK_STA...
DLLAPI double *ER_STDCALL inq_ToolOffsetVec(ER_TARGET_ATTRIBUTES_HND hnd)
ToolOffset (TCP) for a target location Offset Transformation from TCP see inq_ToolOffsetIdx(), inq_ToolOffsetName()
unsigned int * ER_TARGET_MOVE_CP_HND
unique Target data for CP Move handle
Definition: erk_capi_types.h:201
static DLLAPI void ER_STDCALL erSetCallBack_UpdateGeometryProc(TerUpdateGeometryProc Handler)
Define Callback function to update geometries The Host application is prompted to update a geometry...
static DLLAPI double *ER_STDCALL erGeoMngr_GetGeometryObjPointNormal(TErGeoHandle geometryHandle, int objidx, int index)
static ERK_CAPI_TOOLPATH_MOVE_CP erk_toolpath_move_cp
Method class to specify a cp motion for target location.
Definition: erk_capi.h:3834
static DLLAPI int 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 formula...
static DLLAPI int ER_STDCALL erGet_num_dofs_passive(ER_HND er_hnd)
Get number of passive robot joints.
static DLLAPI int ER_STDCALL erGetJointName_passive(ER_HND er_hnd, long passive_jnt_no, char *jnt_name_passive)
Get the name of passive robot joint.
static DLLAPI double *ER_STDCALL inq_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 e...
static ERK_CAPI_SYS erk_capi_sys
Method class for mathematical calculations, simulation status, units.
Definition: erk_capi.h:143
static DLLAPI int ER_STDCALL erGeoMngr_GetVersion()
GeoMngr Version.
static DLLAPI int 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 ...
static DLLAPI int 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 ...
static DLLAPI int 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 NU...
static DLLAPI int 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 follo...
static DLLAPI int 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.
static DLLAPI void ER_STDCALL erSetCallBack_GetActualTravelRangesProc(TerGetActualTravelRangesProc Handler)
Define Callback function to calculate travel ranges by host application The Host application takes ca...
static DLLAPI int 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...
static DLLAPI int 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 ...
static ERK_CAPI_MOP_DATA erk_capi_mop_data
Method class for start-, target data, motion time, etc.
Definition: erk_capi.h:2602
static DLLAPI int 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...
brief Method class to specify a joint motion for target location
Definition: erk_capi.h:5059
long(ER_STDCALL * TerUpdateGeometryProc)(ER_HND ErHandle, TErGeoHandle GeoHandle, DFRAME *KinMat)
Callback function type definition to update a geometry, erSetCallBack_UpdateGeometryProc() ...
Definition: erk_capi_types.h:611
static DLLAPI ER_TARGET_LOCATION_HND ER_STDCALL erToolPathGetTargetLocationFirst(ER_TOOLPATH_HND er_tpth_hnd)
Get the first 'target location handle' in the tool path.
static DLLAPI int ER_STDCALL AutoPathFreeMem(AutoPath_ConfigurationSpace *apcs)
free memory of AutoPath_ConfigurationSpace data see example AutoPathInit()
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 erG...
static DLLAPI int 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 Rem...
static DLLAPI double *ER_STDCALL GetWayPoint(int idx)
Get way point.
static DLLAPI double *ER_STDCALL inq_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 int...
const int AUTOPATH_SDK_AXIS_BIT_DOF6
axisBit Axis 1..6
Definition: erk_capi_types.h:816
static DLLAPI ER_TARGET_LOCATION_HND ER_STDCALL erGetTargetLocationNext(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Get next target location in a tool path.
#define ER_STDCALL
Definition: erk_capi_types.h:72
static DLLAPI double *ER_STDCALL GetEndPose(void)
Get End Pose return pointer, size nConfig.
static DLLAPI int 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() ...
static DLLAPI int 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()
static DLLAPI int ER_STDCALL erUnloadToolPath(ER_TOOLPATH_HND *er_tpth_hnd)
Unload an instance of a kinematics tool path.
static DLLAPI int ER_STDCALL erGetJointFrameActiveNext(ER_HND er_hnd, long active_jnt_no, DFRAME *T_nxt)
Get kinematics transformation to the next joint for each active joint "Geometric Data to next"...
static 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 explanatio...
static 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 erAddTargetLocati...
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 callb...
static 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 th...
static DLLAPI int 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 p...
static DLLAPI ER_EXTAX_KIN_DATA *ER_STDCALL inq_extax_data(ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND hnd, long extax_idx)
External axis values for Conveyor Values ER_EXTAX_KIN_DATA are: .
static DLLAPI int 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()
static DLLAPI int ER_STDCALL erSetJointFrameActiveLast(ER_HND er_hnd, long active_jnt_no, DFRAME *T_last)
Set kinematics transformation from last joint for each active joint "Geometric Data from last"...
void(ER_STDCALL * TerLogProc)(long LogType, char *LogMessage)
Callback function type definition for Log messages, erSetCallBack_LogProc()
Definition: erk_capi_types.h:595
static ERK_CAPI_TOOLPATH_ATTRIBUTES_AUX erk_toolpath_attributes_aux
Method class to set and get tool path auxiliary motion attributes for target locations.
Definition: erk_capi.h:3822
static DLLAPI int ER_STDCALL erKernelGetOptionsDisabled(char *nopt)
Supplies option string containing all disabled options.
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 erSet...
static DLLAPI int 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 typ...
static DLLAPI int ER_STDCALL erSetVxOriMax(ER_HND er_hnd, double vx_ori_max)
Set maximum cartesian orientation speed.
static DLLAPI int 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.
static DLLAPI int ER_STDCALL erColl_UnloadModel(ER_COLLISION_HND *er_coll_hnd)
Unload a Model. Free all allocated memory.
static DLLAPI int 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...
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()
static DLLAPI long *ER_STDCALL inq_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_PT...
static ERK_CAPI_ROB_KIN_API erk_capi_rob_kin_api
Method class API for forward- and Inverse kinematics.
Definition: erk_capi.h:822
static DLLAPI ER_HND ER_STDCALL erToolPathGetPositionerHandle(ER_TOOLPATH_HND er_tpth_hnd)
Get device positioner handle belonging to tool path handle.
static DLLAPI int ER_STDCALL erGeoMngr_GetGeometry(ER_HND er_hnd, int geometryIndex, LOAD_GEOMETRY_DATA *p_load_geometry_data, DFRAME *kinMat)
Fills structure LOAD_GEOMETRY_DATA with geometry loading data.
static DLLAPI int 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 ...
static DLLAPI int ER_STDCALL erConnectRobotGetSync(ER_HND er_hnd)
Get robots synchronization flag for synchronization between robot and slave robot. See also erConnectRobotSetSync()
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 obj...
static DLLAPI const double *ER_STDCALL erGeoMngr_GetGeometryBBox(TErGeoHandle geometryHandle)
Return BBox array of complete geometry.
static DLLAPI long *ER_STDCALL inq_number_extax_used(ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND hnd)
Number of external axis used for Conveyor see example GetExtAxConveyorHnd()
static DLLAPI void ER_STDCALL erKernelFree(void)
Free all internal Kernel data. Calling this function will delete all internal Kernel data After calli...
static ERK_CAPI_TOOLPATH_MOVE_JOINT erk_toolpath_move_joint
Method class to specify a joint motion for target location.
Definition: erk_capi.h:3830
static DLLAPI long ER_STDCALL Set_Target_ConveyorStartOffsetCondition(ER_TARGET_LOCATION_HND er_tarloc_hnd, double tx0)
Sets the conveyor start offset condition. This function set the conveyor start condition for the Trac...
DLLAPI long *ER_STDCALL inq_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_...
const long ER_ROT_IDENT
Rotation Index: Identity, erMath_Frame_Rot()
Definition: erk_capi_types.h:693
static DLLAPI double *ER_STDCALL inq_ramp(ER_TARGET_ATTRIBUTES_HND hnd)
Change of acceleration and deceleration as percentage value in the range from 20% to 100% of normal v...
long(ER_STDCALL * TerFreeGeometryProc)(ER_HND ErHandle, TErGeoHandle GeoHandle)
Callback function type definition to free or delete a geometry, erSetCallBack_FreeGeometryProc(). This callback function is used when unloading a kinemaitcs erUnloadKin() or a tool erUnloadTool()
Definition: erk_capi_types.h:620
Collision results for query ER_COLL_QUERY_TYPE_TOLERANCE, see erColl_GetResults_Tolerance() ...
Definition: erk_capi_types.h:773
static DLLAPI int ER_STDCALL AutoPathSetMem(AutoPath_ConfigurationSpace *apcs)
allocate memory for AutoPath_ConfigurationSpace data depending on nConfig see example AutoPathInit() ...
static DLLAPI int ER_STDCALL SetAxisEnable(int axisBit, int enable)
Set axis enable.
static DLLAPI int 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...
static DLLAPI char *ER_STDCALL erGetTargetLocationNameVia(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Name of target Via location in a tool path, in case of circular motion.
static DLLAPI int ER_STDCALL erGeoMngr_GetNumAxisGeometries(ER_HND er_hnd, int axis_nr)
Get number of geometries belonging to an axis/joint of a kinematics/device.
static ERK_CAPI_AUTOPATH erk_capi_autopath
Method class for collision free path planning.
Definition: erk_capi.h:131
static DLLAPI double *ER_STDCALL inq_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...
Method class to set and get Instructions for target locations.
Definition: erk_capi.h:4632
static DLLAPI double *ER_STDCALL inq_ToolVec(ER_TARGET_ATTRIBUTES_HND hnd)
Tool (TCP) for a target location Transformation from Tip to TCP see inq_ToolIdx(), inq_ToolName()
unsigned int * ER_TARGET_EXTAX_DEVICE_POSITIONER_HND
unique External axis data definition for Positioner/TurnTable handle
Definition: erk_capi_types.h:204
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 an...
static DLLAPI void ER_STDCALL erEnableCallBack_LogProc(long onoff)
Enable/Disable Log messages. This function enables or disables Log Messages used with callback functi...
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 ...
static DLLAPI int 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.
static ERK_CAPI_MOP_EXEC erk_capi_mop_exec
Method class for motion execution.
Definition: erk_capi.h:2614
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...
static DLLAPI int 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 event...
static DLLAPI int 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()
static DLLAPI int 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_mod...
Method class for motion execution.
Definition: erk_capi.h:5690
static DLLAPI int 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...
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()
static DLLAPI double *ER_STDCALL GetStartPose(void)
Get Start Pose return pointer, size nConfig.
static DLLAPI int 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()
static DLLAPI int 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 jo...
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() Initi...
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...
static DLLAPI long *ER_STDCALL inq_target_type(ER_TARGET_MOVE_JOINT_HND hnd)
Target type for joint move for target location is one of.
static DLLAPI int ER_STDCALL SetAxisPriority(int axisBit, int priority)
Set axis priority.
static DLLAPI int 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...
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 tr...
static DLLAPI int 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...
static DLLAPI int 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 targe...
static DLLAPI int 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.
static DLLAPI ER_HND ER_STDCALL erConnectRobotGetHND(ER_HND er_hnd)
Get robots connection handle between robot and slave robot. See also erConnectRobot() ...
static DLLAPI int 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 [...
static DLLAPI int ER_STDCALL erGetName(ER_HND er_hnd, char *name)
Get the name of the robot.
static DLLAPI void ER_STDCALL erSetCallBack_GrpSyncProc(TerGrpSyncProc Handler)
Define Callback function for group synchonization.
static DLLAPI int 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 erGetJointTy...
Method class to set and get tool path motion attributes for target locations.
Definition: erk_capi.h:4700
static DLLAPI long ER_STDCALL erGetMotionExec_configuration(ER_TARGET_MOTION_EXEC_HND hnd)
Robot configuration, when reaching the target, while interpolation trough the complete tool path Rema...
static DLLAPI int 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...
static DLLAPI double *ER_STDCALL inq_accel_ori(ER_TARGET_MOVE_CP_HND hnd)
Cartesian orientation acceleration [rad/s^2], for CP move for target location.
static DLLAPI double *ER_STDCALL inq_WobjCartPosVec(ER_TARGET_ATTRIBUTES_HND hnd)
WorkObject valid for all cartesian target locations such as CartPosVec, CartPosVecVia Using this tran...
static DLLAPI int 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...
static 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 cop...
static DLLAPI ER_HND ER_STDCALL erConnectPositionerGetHND(ER_HND er_hnd)
Get robots connection handle between robot and positioner. See also erConnectPositioner() ...
static DLLAPI int 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.
Method class to create, unload and specify target locations.
Definition: erk_capi.h:4357
static DLLAPI int ER_STDCALL erColl_GetResults_Distance(ER_DistanceResult *er_dres)
Get Collision result for query ER_COLL_QUERY_TYPE_DISTANCE. Remarks Call erColl_ChkCollision() first...
unsigned int * ER_TARGET_LOCATION_HND
unique Target location handle, created with erAddTargetLocation()
Definition: erk_capi_types.h:195
static DLLAPI int ER_STDCALL AutoPathTerminate(AutoPath_ConfigurationSpace *apcs)
Terminate AutoPath call AutoPathFreeMem() first, see example AutoPathInit()
static 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 exter...
static DLLAPI int 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 transfo...
static DLLAPI int 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...
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 pr...
static DLLAPI int 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 [...
static DLLAPI int ER_STDCALL erGetWorldTcp(ER_HND er_hnd, DFRAME *iTw)
Get robot tcp location w.r.t. inertia (world) coorsys.
static DLLAPI int 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.
static DLLAPI int 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 ...
static DLLAPI int ER_STDCALL erGetVxOriMax(ER_HND er_hnd, double *vx_ori_max)
Get maximum cartesian orientation speed.
static DLLAPI int 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 a...
static 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 ...
Method class for motion planning and -execution.
Definition: erk_capi.h:2597
static DLLAPI int ER_STDCALL AutoPath_SetCallback_CheckConstraints(BOOL(*ptr_CheckConstraints)(int, void *))
Defines a callback function to check constraints during AutoPath calculation The callback function is...
static DLLAPI int 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 ...
static DLLAPI double *ER_STDCALL inq_speed_percent(ER_TARGET_MOVE_JOINT_HND hnd)
Speed_percent percentage speed definition [>0-1000%] for joint move for target location.
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 j...
static DLLAPI ER_HND ER_STDCALL erhGetTargetLocationER_HND(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Device handle belonging to target location.
static DLLAPI ER_TARGET_HEAD_HND ER_STDCALL GetHeaderDataHnd(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Handle for target header data.
DLLAPI char *ER_STDCALL inq_ToolOffsetName(ER_TARGET_ATTRIBUTES_HND hnd)
Name for ToolOffset for a target location see inq_ToolOffsetVec(), inq_ToolOffsetIdx() This ToolOffse...
static ERK_CAPI_ROB erk_capi_rob
Method class kinematics and transformations.
Definition: erk_capi.h:404
static DLLAPI int ER_STDCALL erGetWorldTip(ER_HND er_hnd, DFRAME *iTt)
Get robot tip location w.r.t. inertia (world) coorsys.
static DLLAPI int 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 t...
static DLLAPI long *ER_STDCALL inq_enabled(ER_TARGET_ATTRIBUTES_HND hnd)
Enables/disables a target location If the target location is disabled, the trajectory interpolator wi...
static DLLAPI int ER_STDCALL erGetRobotBasetoFirstJoint(ER_HND er_hnd, DFRAME *bT0)
Robot Base to first joint of kinematics chain. .
static DLLAPI int 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 DFRAM...
static 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...
static DLLAPI int 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...
static DLLAPI int 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.
static DLLAPI int ER_STDCALL erGetTargetLocationNumber(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Number of target locations in a tool path.
static ERK_CAPI_SIM_COLLISION erk_capi_sim_collision
Method class for collision, tolerances, etc.
Definition: erk_capi.h:5713
static DLLAPI long *ER_STDCALL inq_sync_type(ER_TARGET_EXTAX_DEVICE_POSITIONER_HND hnd)
Synchonization for Positioner/TurnTable For a Positioner/TurnTable motion, the synchonization can be...
static DLLAPI int 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()
static DLLAPI int ER_STDCALL erGeoMngr_GetGeometryNumObjs(TErGeoHandle geometryHandle)
static DLLAPI int 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.
static DLLAPI ER_HND ER_STDCALL erToolPathGetConveyorHandle(ER_TOOLPATH_HND er_tpth_hnd)
Get device conveyor handle belonging to tool path handle.
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 ...
static DLLAPI int 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 m...
static DLLAPI int ER_STDCALL SetParameter(int ap_option, int ap_value)
Set parameter Paramter ap_option is one of AUTOPATH_SDK_PARAMETER_DYNADJUST AUTOPATH_SDK_PARAMETER_A...
static DLLAPI TErTargetID *ER_STDCALL inq_target_id(ER_TARGET_ATTRIBUTES_HND hnd)
unique target ID of a target location
static DLLAPI double *ER_STDCALL inq_LeadWaitTime(ER_TARGET_ATTRIBUTES_HND hnd)
Leading time [s] before robot will start moving to target location Remarks Default value: 0 Has only...
static DLLAPI int 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.
Collision results for query ER_COLL_QUERY_TYPE_COLLIDE, see erColl_GetResults_Collide() ...
Definition: erk_capi_types.h:744
static ERK_CAPI_TOOLPATH_TARGETS erk_toolpath_targets
Method class to create, unload and specify target locations.
Definition: erk_capi.h:3810
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...
static DLLAPI int ER_STDCALL erUnloadTool(ER_HND er_hnd)
Unload a kinematics tool. Unloads a kinematics tool givin by the unique kinematics handle...
static DLLAPI int 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...
static 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 and customized tool path calculations. Requires DLL EasySimKernel_tboxx64.dll.
static DLLAPI int ER_STDCALL erGetAxMax(ER_HND er_hnd, double *ax_max)
Get maximum cartesian acceleration.
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...
static DLLAPI int 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.
static DLLAPI int 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 th...
static DLLAPI int 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 ...
unsigned int * ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND
unique External axis data definition for Track/Slider handle
Definition: erk_capi_types.h:203
static DLLAPI ER_TARGET_LOCATION_HND ER_STDCALL erGetTargetLocationLast(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Get last target location in a tool path.
static 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 ...
static DLLAPI double *ER_STDCALL inq_speed_ori(ER_TARGET_MOVE_CP_HND hnd)
Cartesian orientation speed [rad/s], for CP move for target location.
DLLAPI char *ER_STDCALL inq_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...
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.
Definition: erk_capi.h:818
Method class for tool path definition.
Definition: erk_capi.h:3805
static DLLAPI int ER_STDCALL erSetAutoAccel(ER_HND er_hnd, long autoaccel)
Enables automatic calculation of acceleration depending on programmed speed. Using AutoAccel is a pro...
static DLLAPI long *ER_STDCALL inq_dom_type(ER_TARGET_ATTRIBUTES_HND hnd)
Dominant interpolation type for a target location The dominant interpolation type can be one of the f...
static DLLAPI int 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...
static DLLAPI int *ER_STDCALL erGeoMngr_GetGeometryIsCollided(TErGeoHandle geometryHandle)
static DLLAPI int 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 t...
static DLLAPI int 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...
Method class for start-, target data, motion time, etc.
Definition: erk_capi.h:2811
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...
DLLAPI double *ER_STDCALL inq_extTcpBaseVec(ER_TARGET_ATTRIBUTES_HND hnd)
external Tool (TCP) w.r.t. Robot Base or flange of positioner, for a target location Transformation f...
static DLLAPI char *ER_STDCALL erToolPathLogFileName(ER_TOOLPATH_HND er_tpth_hnd)
Name log file.
static DLLAPI int 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 homogeneou...
static DLLAPI int 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 c...
static 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.
static 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 GetInst...
static DLLAPI int 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 uni...
static DLLAPI double *ER_STDCALL GetAxisConstraintsMin(void)
Get minimum axis constraints return pointer, size nConfig.
static DLLAPI char *ER_STDCALL erToolPathPrgFileName(ER_TOOLPATH_HND er_tpth_hnd)
Name program file.
static DLLAPI int 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 ca...
static DLLAPI int ER_STDCALL erCANCEL_MOTION(ER_HND er_hnd)
Cancel a motion that was stopped with erSTOP_MOTION() function. Opcode 153, Chapter 3...
static 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 trough the complete...
static DLLAPI long *ER_STDCALL inq_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 desir...
static DLLAPI int ER_STDCALL SetPoseEnd(double *pose_end)
Set end configuration Remarks This pose must be valid - collision free, based on callback function "...
static DLLAPI int 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) Rem...
static DLLAPI long ER_STDCALL SetExtAxPositionerIdx(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 GetExtAxPositioner...
static DLLAPI int ER_STDCALL erGET_NEXT_TOOLPATH_STEP_INIT(ER_TOOLPATH_HND er_tpth_hnd, long cntrl)
Initializes the interpolation through a complete tool path Parameter cntrl must be set to ER_MOP_GNTP...
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...
Method class for Callback functions.
Definition: erk_capi.h:272
static DLLAPI ER_TARGET_LOCATION_HND ER_STDCALL erGetTargetLocationFirst(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Get first target location in a tool path.
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.
static 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 erAddTargetLoc...
static ERK_CAPI_MOP_PATH erk_capi_mop_path
Method class for path specifications, motion type (PTP, LIN, CIRC), speeds, acceleration, waiting time, etc.
Definition: erk_capi.h:2606
DLLAPI double *ER_STDCALL inq_extTcpOffsetVec(ER_TARGET_ATTRIBUTES_HND hnd)
external Tool/TCP offset data w.r.t. extTcpBase, extTcpWorld, for a target location Transformation fr...
static DLLAPI int 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 jo...
static DLLAPI int ER_STDCALL erGetRobotBaseTip(ER_HND er_hnd, DFRAME *bTt)
Get robot tip (flange) location w.r.t. robot base.
static DLLAPI int 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...
static ERK_CAPI_GEO_MNGR erk_capi_geo_mngr
Method class to access geometry manager methods.
Definition: erk_capi.h:6738
static DLLAPI ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND ER_STDCALL GetExtAxConveyorHnd(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Handle for external axis of a Conveyor-Motion Typical data belonging to external axis data are: numb...
static DLLAPI char *ER_STDCALL inq_ToolName(ER_TARGET_ATTRIBUTES_HND hnd)
Name for Tool for a target location see inq_ToolVec(), inq_ToolIdx() This ToolName could be useful wh...
static DLLAPI int 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 disable...
unsigned int * ER_TARGET_ATTRIBUTES_HND
unique Motion attributes handle
Definition: erk_capi_types.h:199
static ERK_CAPI_ADMIN erk_capi_admin
Method class to administrate this Robotics Simulation Kernel.
Definition: erk_capi.h:119
static DLLAPI const double *ER_STDCALL erGeoMngr_GetAxisBBox(ER_HND er_hnd, int axis_id)
static DLLAPI int 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 i...
const long ER_PTP_TARGET_CALC_MODE_UNDEF
default ER_PTP_TARGET_CALC_MODE_SHORTEST_ANGLE, NEXT_TARGET_DATA
Definition: erk_capi_types.h:387
#define DLLAPI
Definition: erk_capi_types.h:71
static ERK_CAPI_TOOLPATH_EXTAX_POSITIONER erk_toolpath_extax_positioner
Method class to specify external axis data for a positioner for target location.
Definition: erk_capi.h:3846
static 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_...
Method class forward-, Inverse kinematics, desired robot joints, tools, position w.r.t. world and reference system.
Definition: erk_capi.h:836
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 .
static DLLAPI int ER_STDCALL erSetTool(ER_HND er_hnd, DFRAME *tTw)
Set robot tool (TCP) data w.r.t. robots flange.
Contains desired data for next interpolation step Usage with erGET_NEXT_STEP()
static DLLAPI int 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_cal...
static DLLAPI int ER_STDCALL erKernelSetLicenseFile(char *license_file)
Set location and name of license file. Call this function before initializing the Kernel erKernelInit...
static DLLAPI int ER_STDCALL erGetJointName(ER_HND er_hnd, long active_jnt_no, char *jnt_name)
Get the name of active robot joint.
static DLLAPI int ER_STDCALL erGeoMngr_SetGeometryIsCollided(TErGeoHandle geometryHandle, int isCollided)
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 ...
static 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.
Method class API for forward- and Inverse kinematics.
Definition: erk_capi.h:1642
static DLLAPI long *ER_STDCALL inq_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 (wor...
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...
static DLLAPI char *ER_STDCALL erGetTargetLocationName(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Name of target location in a tool path.
static DLLAPI int ER_STDCALL ClearAllWayPoints(void)
Clear all way points.
static DLLAPI int ER_STDCALL erGetExtTcpRobotBase(ER_HND er_hnd, DFRAME *bText)
Get location of external TCP w.r.t robot base.
Method class for collision, tolerances, etc.
Definition: erk_capi.h:5722
static DLLAPI int 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...
static DLLAPI long *ER_STDCALL inq_BaseIdx(ER_TARGET_ATTRIBUTES_HND hnd)
Idx for program shift Base for a target location see inq_BaseVec(), inq_BaseName() This BaseIdx could...
static DLLAPI int 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...
static DLLAPI int ER_STDCALL erConnectPositionerGetSync(ER_HND er_hnd)
Get robots synchronization flag for synchronization between robot and positioner. See also erConnectP...
Method for collision free path planning.
Definition: erk_capi.h:6351
static DLLAPI int ER_STDCALL erGeoMngr_FreeGeometry(ER_HND er_hnd, TErGeoHandle GeoHandle)
Free or delete a geometry by host application if callback function is defined, see erSetCallBack_Free...
static ERK_CAPI_SYS_MATHEMATICS erk_capi_sys_mathematics
Method class for mathematical calculations, multiplications of homogeneous matrices, conversion Euler angle, triangle calculations, formula parser, etc.
Definition: erk_capi.h:7000
static DLLAPI char *ER_STDCALL erToolPathName(ER_TOOLPATH_HND er_tpth_hnd)
Device Handle belonging to tool path.
static 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 erAddTargetL...
static DLLAPI double *ER_STDCALL inq_speed_cp(ER_TARGET_MOVE_CP_HND hnd)
Cartesian speed [m/s], for CP move for target location.
External axis target data for connected devices belongs to structure NEXT_TARGET_DATA.
static 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 erAddTargetLoca...
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_h...
static DLLAPI double *ER_STDCALL erGeoMngr_GetGeometryObjColor(TErGeoHandle geometryHandle, int objidx)
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 erSet...
static DLLAPI int 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...
static DLLAPI int ER_STDCALL erColl_GetResults_Collide(ER_CollideResult *er_cres)
Get Collision result for query ER_COLL_QUERY_TYPE_COLLIDE. Remarks Call erColl_ChkCollision() first...
static DLLAPI int ER_STDCALL erUpdateKin(ER_HND er_hnd)
Updates the complete kinematics. This function calculates the location of all axis coorsys...
unsigned int TErGeoHandle
unique Geometry handle used for callback functions TerLoadGeometryProc()
Definition: erk_capi_types.h:189
static 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 exter...
static DLLAPI int 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 i...
static DLLAPI int 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 bef...
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 attach...
static DLLAPI int ER_STDCALL erSetVxMax(ER_HND er_hnd, double vx_max)
Set maximum cartesian speed.
static 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...
static DLLAPI int 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 alon...
static DLLAPI int ER_STDCALL erGeoMngr_SetGeometryCollisionHandle(TErGeoHandle geometryHandle, ER_COLLISION_HND collisionHandle)
brief Method class to specify external axis data for a positioner for target location ...
Definition: erk_capi.h:5415
static DLLAPI int ER_STDCALL erKernelGetLicense(char *hw_id)
Check license and supplies unique HardwareID or DongleID.
static DLLAPI ER_HND ER_STDCALL erToolPathGetTrackMotionHandle(ER_TOOLPATH_HND er_tpth_hnd)
Get device track motion handle belonging to tool path handle.
static DLLAPI int 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 hom...
static 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...
static DLLAPI int 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 typ...
static DLLAPI double *ER_STDCALL inq_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 ...
static DLLAPI long *ER_STDCALL inq_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...
static ERK_CAPI_TOOLPATH_TOOLBOX erk_toolpath_toolbox
Method class for miscellaneous tool path calculations.
Definition: erk_capi.h:3854
static DLLAPI int ER_STDCALL erInitToolPath(ER_HND er_hnd, ER_TOOLPATH_HND *er_tpth_hnd)
Create a unique tool path handle for a kinematics.
Method for post processing, creating a robot program for a tool path.
Definition: erk_capi.h:5642
static DLLAPI int 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 matrice...
static DLLAPI int 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...
static DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumLines(TErGeoHandle geometryHandle, int objidx)
static DLLAPI int 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()
static DLLAPI double *ER_STDCALL erGeoMngr_GetGeometryObjPoint(TErGeoHandle geometryHandle, int objidx, int index)
static DLLAPI int ER_STDCALL erGeoMngr_GetAxisGeometry(ER_HND er_hnd, int axis_nr, int geometryIndex, LOAD_GEOMETRY_DATA *p_load_geometry_data, DFRAME *kinMat)
Fills structure LOAD_GEOMETRY_DATA for geometry with geometryIndex belonging to joint with axis_nr...
static ERK_CAPI_TOOLPATH erk_capi_toolpath
Method class for tool path definition.
Definition: erk_capi.h:412
static DLLAPI int 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...
static DLLAPI int ER_STDCALL SetPoseStart(double *pose_start)
Set start configuration Remarks This pose must be valid - collision free, based on callback function...
static DLLAPI int ER_STDCALL erGetTargetLocationIdx(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Index of target location.
static DLLAPI int 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 uni...
static DLLAPI int ER_STDCALL erGetName(ER_HND er_hnd, char *name)
Get the name of the robot.
static DLLAPI double *ER_STDCALL GetConfigurationPose(void)
current configuration pose during FindPath Process return pointer, size nConfig
static DLLAPI int ER_STDCALL erUnloadTargetLocation(ER_TARGET_LOCATION_HND *er_tarloc_hnd)
Unload/delete a target location from a tool path Remarks Use erGetTargetLocationNumber() to receive ...
static 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 .
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.
static 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...
Method class to create, attach, update devices, for kinematics calculations and for motion planning a...
Definition: erk_capi.h:399
static ERK_CAPI_TOOLPATH_ATTRIBUTES erk_toolpath_attributes
Method class to set and get tool path motion attributes for target locations.
Definition: erk_capi.h:3826
static 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 ...
Contains additional desired data for current interpolation step Usage with erGetCurrentStepData() aft...
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_...
const int ER_COLL_FIRST_CONTACT
report first intersecting tri pair found, erColl_ChkCollision()
Definition: erk_capi_types.h:721
static DLLAPI ER_TARGET_ATTRIBUTES_AUX_HND ER_STDCALL GetMotionAttributesAuxHnd(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Handle for target attributes auxiliary data.
static DLLAPI double *ER_STDCALL inq_CartPosVec(ER_TARGET_MOVE_JOINT_HND hnd)
Cartesian position w.r.t. Base for joint move for target location Remarks Use for.
static DLLAPI long ER_STDCALL SetExtAxConveyorIdx(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 ...
static DLLAPI int ER_STDCALL FindPath(void)
Start motion planner, find a collision free path between start and end pose In each step...
static DLLAPI int ER_STDCALL erGetJointFramePassiveNext(ER_HND er_hnd, long passive_jnt_no, DFRAME *T_nxt)
Get kinematics transformation to the next joint for each passive joint "Geometric Data to next"...
static DLLAPI int 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 ...
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 prisma...
brief Method class to access motion execution data at target
Definition: erk_capi.h:5240
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().
static DLLAPI int ER_STDCALL erColl_EndModel(ER_COLLISION_HND er_coll_hnd)
Stop building a Model.
static DLLAPI ER_COLLISION_HND *ER_STDCALL erGeoMngr_GetGeometryCollisionHandle(TErGeoHandle geometryHandle)
static DLLAPI void **ER_STDCALL erGet_erk_kin_usr_ptr(ER_HND er_hnd)
Access user pointer for user defined inverse and forward kinematics in EasySimKernel_apikinx64.dll This allows the user to allocate individual memory. The EASY-ROB Kernel administrates this pointer, related to the current device Remarks see erSetJointSolutions() to return the calculated results, joint solution and warning for each solution, depending on the number of robot configuration.
const long ER_SYNC_UNDEF
device synchronization not defined
Definition: erk_capi_types.h:346
static DLLAPI int 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...
Method class to set and get tool path motion header data for target locations.
Definition: erk_capi.h:4578
DLLAPI long *ER_STDCALL inq_extTcpOffsetIdx(ER_TARGET_ATTRIBUTES_HND hnd)
Idx for external Tool/TCP offset data w.r.t. extTcpBase, extTcpWorld, for a target location see inq_e...
static DLLAPI ER_TARGET_LOCATION_HND ER_STDCALL erGetTargetLocationPrev(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Get previous target location in a tool path.
Definition: erk_capi.h:1987
static DLLAPI int ER_STDCALL erSetJointFrameActiveNext(ER_HND er_hnd, long active_jnt_no, DFRAME *T_nxt)
Set kinematics transformation to the next joint for each active joint "Geometric Data to next"...
static DLLAPI int ER_STDCALL erKernelGetOptions(char *opt)
Supplies option string containing all enabled options.
static DLLAPI int 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 ...
Method class to handle 3D Geometry Data.
Definition: erk_capi.h:6733
static DLLAPI int 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(...
unsigned int TErTargetID
unique Target identifier
Definition: erk_capi_types.h:190
static DLLAPI int ER_STDCALL erSetExtTcpWorld(ER_HND er_hnd, DFRAME *iText)
Set location of external TCP w.r.t inertia (world).
brief Method class to specify external axis data for a track/slider-motion for target location ...
Definition: erk_capi.h:5312
static DLLAPI int ER_STDCALL erGetJointFrameActiveLast(ER_HND er_hnd, long active_jnt_no, DFRAME *T_last)
Get kinematics transformation from last joint for each active joint "Geometric Data from last"...
static DLLAPI int ER_STDCALL GetNumberOfWayPoints(void)
Get number of calculated way points, including start and end pose call this method after FindPath() s...
sets the robot model to a position according to the input data. Usage with erSET_INITIAL_POSITION() ...
Definition: erk_capi_types.h:363
unsigned int * ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND
unique External device definition for Conveyor
Definition: erk_capi_types.h:205
static DLLAPI int 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 DFR...
Method class containing all other ERK_CAPI_* classes.
Definition: erk_capi.h:113
static DLLAPI size_t *ER_STDCALL erGeoMngr_GetGeometryObjLine(TErGeoHandle geometryHandle, int objidx, int index)
brief Method class to specify a cp motion for target location
Definition: erk_capi.h:5145
static DLLAPI ER_TARGET_LOCATION_HND ER_STDCALL erToolPathGetTargetLocationLast(ER_TOOLPATH_HND er_tpth_hnd)
Get the last 'target location handle' in the tool path.
static ERK_CAPI_TOOLPATH_EXTAX_CONVEYOR erk_toolpath_extax_conveyor
Method class to specify external axis data for a conveyor for target location.
Definition: erk_capi.h:3850
static DLLAPI int 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.
static DLLAPI ER_EXTAX_KIN_DATA *ER_STDCALL inq_extax_data(ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND hnd, long extax_idx)
External axis values for Track/Slider Values ER_EXTAX_KIN_DATA are: .
static DLLAPI double *ER_STDCALL inq_override_speed(ER_TARGET_ATTRIBUTES_HND hnd)
Correction values as percentage value for scaling the programmed speed for a target location Remarks ...
static DLLAPI int 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 Pos...
static DLLAPI ER_TARGET_EXTAX_DEVICE_POSITIONER_HND ER_STDCALL GetExtAxPositionerHnd(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Handle for external axis of a Positioner/TurnTable-Motion Typical data belonging to external axis da...
static 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 GetIns...
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 ...
static DLLAPI int ER_STDCALL erMath_Frame_Ident(DFRAME *T)
Set the homogeneous 4x4 transformation matrix T to identity. T = Ident A frame DFRAME is a homogeneou...
unsigned int * ER_TOOLPATH_HND
unique Tool path handle, created with erInitToolPath()
Definition: erk_capi_types.h:194
static ERK_CAPI_MOP_PREP erk_capi_mop_prep
Method class for motion planning (preparation)
Definition: erk_capi.h:2610
static DLLAPI int 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 j...
static DLLAPI int 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 m...
DLLAPI char *ER_STDCALL inq_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 in...
static DLLAPI int ER_STDCALL erKernelGetHardwareID(char *hw_id)
Supplies unique HardwareID or DongleID.
static DLLAPI int 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 s...
static ERK_CAPI_GEO erk_capi_geo
Method class to handle 3D Geometry Data.
Definition: erk_capi.h:139
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.
static DLLAPI ER_TARGET_MOTION_EXEC_HND ER_STDCALL GetMotionExecHnd(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Handle for target execution data Target execution data are calculated while interpolation trough the ...
static DLLAPI size_t *ER_STDCALL erGeoMngr_GetGeometryObjPolygon(TErGeoHandle geometryHandle, int objidx, int index)
static DLLAPI int 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()
static DLLAPI int 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)...
static DLLAPI ER_TARGET_MOVE_CP_HND ER_STDCALL GetMoveCPHnd(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...
DLLAPI long *ER_STDCALL inq_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...
static DLLAPI long *ER_STDCALL inq_advance_motion(ER_TARGET_ATTRIBUTES_HND hnd)
Number of motions, the motion planner may run in advance of the interpolator (look_ahead) for a targe...
static DLLAPI char *ER_STDCALL AutoPathVer(void)
AutoPath Version.
static 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 GetInstruct...
static 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 e...
static DLLAPI ER_TARGET_ATTRIBUTES_HND ER_STDCALL GetMotionAttributesHnd(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Handle for target attributes data Typical attributes belonging to a target location are: e...
static DLLAPI int ER_STDCALL erGetInvKinID(ER_HND er_hnd, long *invkin_id)
Inverse kinematics ID for cRobot.
static DLLAPI void ER_STDCALL erSetCallBack_LogProc(TerLogProc Handler)
Define Callback function for Log Messages.
static DLLAPI void ER_STDCALL erSetCallBack_LoadGeometryProc(TerLoadGeometryProc Handler)
Define Callback function to load a geometry The Host application is prompted to load a geometry...
static ERK_CAPI_SYS_UTILITIES erk_capi_sys_utilities
Method class for helping functions, color conversion, etc.
Definition: erk_capi.h:6996
static 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...
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 ty...
static DLLAPI int ER_STDCALL erGet_num_dofs(ER_HND er_hnd)
Get number of active robot joints.
static DLLAPI int 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(...
static DLLAPI int 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 ro...
static DLLAPI int ER_STDCALL erGet_n_Kin(ER_HND er_hnd)
Get the number of loaded kinematics.
static DLLAPI int 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.
static ERK_CAPI_TOOLPATH_CREATE erk_toolpath_create
Method class to create tool pathes.
Definition: erk_capi.h:3862
static DLLAPI int 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_E...
static DLLAPI int ER_STDCALL erGeoMngr_CheckBoundingBoxCollision(DFRAME *T1, const double *bbox1, DFRAME *T2, const double *bbox2, double tolerance)
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...
Method class for paths and tags.
Definition: erk_capi.h:6721
static DLLAPI long *ER_STDCALL inq_autoaccel(ER_TARGET_ATTRIBUTES_HND hnd)
Automatic calculation of acceleration depending on programmed speed for a target location Using AutoA...
static DLLAPI int 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 ...
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 v...
static DLLAPI int ER_STDCALL erGetNumConfigs(ER_HND er_hnd, long *num_configs)
Get number of possible robot configurations.
static DLLAPI long *ER_STDCALL inq_filter_factor(ER_TARGET_ATTRIBUTES_HND hnd)
Filter factor for smoothing velocity profiles of motions The filter_factor is one of ER_MOTION_FILTER...
static DLLAPI char *ER_STDCALL inq_BaseName(ER_TARGET_ATTRIBUTES_HND hnd)
Name for program shift Base for a target location see inq_BaseVec(), inq_BaseIdx() This BaseName coul...
static DLLAPI int 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 paylo...
static DLLAPI int 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 erCONTINU...
Method class for mathematical calculations, multiplications of homogeneous matrices, conversion Euler angle, triangle calculations, formula parser, etc.
Definition: erk_capi.h:7020
Method class for simulation settings.
Definition: erk_capi.h:5708
static DLLAPI long *ER_STDCALL inq_configuration(ER_TARGET_MOVE_JOINT_HND hnd)
configuration Robot configuration [1-ER_KIN_CONFIGS] for target location
static DLLAPI long *ER_STDCALL inq_number_extax_used(ER_TARGET_EXTAX_DEVICE_POSITIONER_HND hnd)
Number of external axis used for Positioner/TurnTable see example GetExtAxPositionerHnd() ...
static DLLAPI int ER_STDCALL erGeoMngr_GetGeometryCloneCount(TErGeoHandle geometryHandle)
static DLLAPI int 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...
unsigned int * Host_HND
unique Host handle given from Host, NULL per default, erInitKin()
Definition: erk_capi_types.h:188
static DLLAPI int 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...
static DLLAPI int 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 jo...
static DLLAPI int 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...
static DLLAPI int ER_STDCALL erConnectConveyorGetSync(ER_HND er_hnd)
Get robots synchronization flag for synchronization between robot and conveyor. See also erConnectCon...
static DLLAPI int ER_STDCALL GetWayPointDof(void)
Get dof of calculated way points.
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 obj...
static DLLAPI int 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 bef...
static DLLAPI char *ER_STDCALL erGetTargetLocationNameVia(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Name of target Via location, in case of circular motion.
static DLLAPI int ER_STDCALL erGetJointFramePassiveLast(ER_HND er_hnd, long passive_jnt_no, DFRAME *T_last)
Get kinematics transformation from last joint for each passive joint "Geometric Data from last"...
static 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() t...
static DLLAPI int 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...
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...
static ERK_CAPI_TOOLPATH_INSTRUCTIONS erk_toolpath_instructions
Method class to set and get Instructions for target locations.
Definition: erk_capi.h:3818
static DLLAPI int 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 suppo...
TErGeoHandle(ER_STDCALL * TerLoadGeometryProc)(ER_HND ErHandle, LOAD_GEOMETRY_DATA *p_load_geometry_data)
Callback function type definition to load a geometry, erSetCallBack_LoadGeometryProc() ...
Definition: erk_capi_types.h:602
static DLLAPI int 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...
static DLLAPI int ER_STDCALL erSetJointFramePassiveNext(ER_HND er_hnd, long passive_jnt_no, DFRAME *T_nxt)
Set kinematics transformation to the next joint for each passive joint "Geometric Data to next"...
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()
brief Method class to specify external axis data for a conveyor for target location ...
Definition: erk_capi.h:5528
const long ER_ROT_XYZ
Rotation Index: RotX*RotY*RotZ, EASY-ROB, Staeubli CS8, erMath_VecToFrameIdx(), erMath_FrameToVecIdx...
Definition: erk_capi_types.h:698
Collision results for query ER_COLL_QUERY_TYPE_DISTANCE, see erColl_GetResults_Distance() The followi...
Definition: erk_capi_types.h:759
static DLLAPI int 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...
static DLLAPI int ER_STDCALL erConnectTrackMotionGetSync(ER_HND er_hnd)
Get robots synchronization flag for synchronization between robot and track motion. See also erConnectTrackMotionSetSync()
static DLLAPI int ER_STDCALL erSetconveyorStartCondition(ER_HND er_hnd, double tx0)
Sets the conveyor start condition. This function set the conveyor start condition for the Tracking Wi...
static DLLAPI int ER_STDCALL erGeoMngr_GetNumGeometries(ER_HND er_hnd)
Get number of loaded geometries for specified device.
static ERK_CAPI_TOOLPATH_APIPP erk_toolpath_apipp
Method for post processing, creating a robot program for a tool path.
Definition: erk_capi.h:3858
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...
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...
static DLLAPI long ER_STDCALL SetExtAxTrackMotionIdx(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() R...
Contains target data for about next move "advance move" This structure contains all required data for...
static DLLAPI int ER_STDCALL SetAccuracy(UINT accuracy)
Set accuracy.
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()
static DLLAPI double *ER_STDCALL erMath_ResetVec(double *dst, int n)
Reset vector dst = 0.
static DLLAPI int ER_STDCALL erTPth_Fct(ER_TOOLPATH_HND er_tpth_hnd)
Do Fct. ... tbd.
unsigned int * ER_TARGET_INSTRUCTIONS_HND
Instructions, individual information text.
Definition: erk_capi_types.h:197
Geometry data structure for callback function. Used when loading and updating robot geometries With c...
Definition: erk_capi_types.h:248
static ERK_CAPI_TOOLPATH_EXTAX_TRACKMOTION erk_toolpath_extax_trackmotion
Method class to specify external axis data for a track/slider-motion for target location.
Definition: erk_capi.h:3842
static DLLAPI int ER_STDCALL AbortPlanning(void)
Abort path planning use GetPlanningStatus()
unsigned int * ER_COLLISION_HND
unique Collision handle, created with erColl_BeginModel()
Definition: erk_capi_types.h:192
static DLLAPI int ER_STDCALL erSetRobotBase(ER_HND er_hnd, DFRAME *iTb)
Set robot base location w.r.t. world.
Method class kinematics and transformations.
Definition: erk_capi.h:812
DLLAPI ERK_CAPI * _inq_erk_capi(void)
Address to ERK_CAPI method class.
static DLLAPI TErGeoHandle ER_STDCALL erGeoMngr_LoadGeometry(ER_HND er_hnd, LOAD_GEOMETRY_DATA *p_load_geometry_data)
Loads a geometry by host application if callback function is defined, see erSetCallBack_LoadGeometryP...
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 f...
static DLLAPI const double *ER_STDCALL erGeoMngr_GetDeviceBBox(ER_HND er_hnd)
static DLLAPI double *ER_STDCALL erGetMotionExec_ExtAxValues(ER_TARGET_MOTION_EXEC_HND hnd)
External axis values at target location, while interpolation trough the complete tool path...
static DLLAPI int 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 t...
static ERK_CAPI_MOP erk_capi_mop
Method class for motion planning and -execution.
Definition: erk_capi.h:408
Method class for miscellaneous tool path calculations.
Definition: erk_capi.h:5623
static DLLAPI ER_HND ER_STDCALL erConnectTrackMotionGetHND(ER_HND er_hnd)
Get robots connection handle between robot and track motion. See also erConnectTrackMotion() ...
Method class for mathematical calculations, simulation status, units.
Definition: erk_capi.h:6991
static DLLAPI int 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...
static DLLAPI int ER_STDCALL erGetRobotBaseTcp(ER_HND er_hnd, DFRAME *bTw)
Get robot tcp location w.r.t. robot base.
static DLLAPI double *ER_STDCALL inq_JointPos(ER_TARGET_MOVE_JOINT_HND hnd)
Joint position for joint move for target location Remarks Use for.
static DLLAPI long *ER_STDCALL inq_number_extax_used(ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND hnd)
Number of external axis used for Track/Slider see example GetExtAxTrackMotionHnd() ...
static DLLAPI void ER_STDCALL erSetCallBack_FreeGeometryProc(TerFreeGeometryProc Handler)
Define Callback function to free Geometry The Host application is prompted to free a geometry...
unsigned int * ER_TARGET_MOVE_JOINT_HND
unique Target data for Joint Move handle
Definition: erk_capi_types.h:200
static DLLAPI int ER_STDCALL erSetAxMax(ER_HND er_hnd, double ax_max)
Set maximum cartesian acceleration.
static DLLAPI int 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 supporte...
Method class to administrate this Robotics Simulation Kernel.
Definition: erk_capi.h:154
static ERK_CAPI_TOOLPATH_HEAD erk_toolpath_head
Method class to set and get tool path motion header data for target locations.
Definition: erk_capi.h:3814
static DLLAPI int ER_STDCALL erSetAxOriMax(ER_HND er_hnd, double ax_ori_max)
Set maximum cartesian orientation acceleration.
static DLLAPI int ER_STDCALL erGetBackLink(ER_HND er_hnd, long *backlink)
Get robot back link status, obsolete function, use erGetBacklink()
DLLAPI long *ER_STDCALL inq_ToolOffsetIdx(ER_TARGET_ATTRIBUTES_HND hnd)
Idx for ToolOffset for a target location see inq_ToolOffsetVec(), inq_ToolOffsetName() This ToolOffse...
static DLLAPI int 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()
static DLLAPI int ER_STDCALL GetResults(int ap_result)
Get results Paramter ap_result is one of AUTOPATH_SDK_RESULT_CHECKS AUTOPATH_SDK_RESULT_SECONDS AU...
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 an...
static ERK_CAPI_DEVICES erk_capi_devices
Method class to create, attach, update devices, for kinematics calculations and for motion planning a...
Definition: erk_capi.h:123
static DLLAPI int 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) Rem...
static DLLAPI long *ER_STDCALL inq_circ_orientation_interpolation_mode(ER_TARGET_MOVE_CP_HND hnd)
Circular orientation interpolation mode for CP move for target location The circular orientation inte...
static DLLAPI int ER_STDCALL erGetExtTcpWorld(ER_HND er_hnd, DFRAME *iText)
Get location of external TCP w.r.t inertia (world).
static DLLAPI int ER_STDCALL erGetTargetLocationIdx(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Index of target location in a tool path.
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_n...
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...
static DLLAPI double *ER_STDCALL inq_accel_percent(ER_TARGET_MOVE_JOINT_HND hnd)
Accel_percent percentage acceleration definition [>0-1000%] for joint move for target location...
static DLLAPI int ER_STDCALL erGetVxMax(ER_HND er_hnd, double *vx_max)
Get maximum cartesian speed.
static 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...
unsigned int TErTrackingWindowID
unique TrackingWindow identifier
Definition: erk_capi_types.h:191
static DLLAPI char *ER_STDCALL erGetTargetLocationName(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Name of target location.
static DLLAPI long ER_STDCALL Set_Target_ConveyorTrackingWindow(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 wind...
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 .
static 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 p...
static DLLAPI int ER_STDCALL erGetRobotBase(ER_HND er_hnd, DFRAME *iTb)
Get robot base location w.r.t. world.
static DLLAPI ER_HND ER_STDCALL erToolPathGetRobotHandle(ER_TOOLPATH_HND er_tpth_hnd)
Get device robot handle belonging to tool path handle.
static 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...
static DLLAPI int 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
static DLLAPI int 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 ...
static DLLAPI int 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 ...
static DLLAPI ER_TARGET_MOVE_JOINT_HND ER_STDCALL GetMoveJointHnd(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Handle for target move joint data Typical data belonging to a move joint target location are: target_...
static DLLAPI double *ER_STDCALL GetAxisConstraintsMax(void)
Get maximum axis constraints return pointer, size nConfig.
static DLLAPI int ER_STDCALL erKernelSetLicensePriority(int license_priority)
Set license priority. Call this function before initializing the Kernel erKernelInitialize() Paramete...
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 f...
static DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumPolygons(TErGeoHandle geometryHandle, int objidx)
static DLLAPI int 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 re...
static 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 templ...
static DLLAPI int 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...
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 e...
static DLLAPI int ER_STDCALL erGetTool(ER_HND er_hnd, DFRAME *tTw)
Get robot tool (TCP) data w.r.t. robots flange.
static DLLAPI TErGeoHandle ER_STDCALL erGeoMngr_GetGeometryCloneHandle(TErGeoHandle geometryHandle)
DLLAPI char *ER_STDCALL inq_extTcpOffsetName(ER_TARGET_ATTRIBUTES_HND hnd)
Name for external Tool/TCP offset data w.r.t. extTcpBase, extTcpWorld, for a target location see inq_...
static DLLAPI ER_EXTAX_KIN_DATA *ER_STDCALL inq_extax_data(ER_TARGET_EXTAX_DEVICE_POSITIONER_HND hnd, long extax_idx)
External axis values for Positioner/TurnTable Values ER_EXTAX_KIN_DATA are: .
static 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.
Method class to access geometry manager 'GeoMngr' methods.
Definition: erk_capi.h:6761
static DLLAPI double *ER_STDCALL erGetMotionExec_JointPos(ER_TARGET_MOTION_EXEC_HND hnd)
Joint position at target location, while interpolation trough the complete tool path.
static DLLAPI ER_TOOLPATH_HND ER_STDCALL erGetTargetLocationToolPathHnd(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Tool path handle belonging to target location handle.
static ERK_CAPI_TOOLPATH_MOTION_EXEC erk_toolpath_motion_exec
Method class to access motion execution data at target.
Definition: erk_capi.h:3838
static DLLAPI ER_HND ER_STDCALL erConnectConveyorGetHND(ER_HND er_hnd)
Get robots connection handle between robot and conveyor. See also erConnectConveyor() ...
static DLLAPI int 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...
static DLLAPI int 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 Tr...
long(ER_STDCALL * TerGetActualTravelRangesProc)(ER_HND ErHandle, Host_HND HostHandle, double *Joints, double *TravelRangeMin, double *TravelRangeMax)
Callback function type definition for user defined calculation of min./max. travel ranges in current ...
Definition: erk_capi_types.h:631
static ERK_CAPI_SIM erk_capi_sim
Method class for simulation settings.
Definition: erk_capi.h:127
static ERK_CAPI_TARGETS erk_capi_targets
Method class for paths and tags.
Definition: erk_capi.h:135
static DLLAPI long *ER_STDCALL inq_flyby_on(ER_TARGET_ATTRIBUTES_HND hnd)
Rounding / flyby condition for a target location In case of flyby enabled, the robot moves through a ...
Method class for motion planning (preparation)
Definition: erk_capi.h:3574
unsigned int * ER_TARGET_HEAD_HND
unique Header data handle
Definition: erk_capi_types.h:196
static DLLAPI void ER_STDCALL erSetCallBack_NotifyProc(TerNotifyProc Handler)
Define Callback function for notify messages The Kernel informs the host application about internel s...
static DLLAPI ER_TARGET_INSTRUCTIONS_HND ER_STDCALL GetInstructionsHnd(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Handle for target instruction data Remarks Instructions are individual command or information attach...
static DLLAPI double *ER_STDCALL inq_LagWaitTime(ER_TARGET_ATTRIBUTES_HND hnd)
Lagging time [s] after robot reaches its target location Remarks Default value: 0 Has only an effect...
static DLLAPI int ER_STDCALL erGetInvKinSubID(ER_HND er_hnd, long *invkinsub_id)
Inverse kinematics Sub-ID for cRobot.
static DLLAPI int ER_STDCALL erMath_invR(DFRAME *Ro, DFRAME *Ri)
Builds the inverse of the 3x3 orientation matrix from a homogeneous 4x4 transformation matrix T...
static DLLAPI long ER_STDCALL erGeoMngr_GetGeometryObjColorCode(TErGeoHandle geometryHandle, int objidx)
static DLLAPI double *ER_STDCALL inq_acc(ER_TARGET_ATTRIBUTES_HND hnd)
Acceleration and deceleration as percentage value in the range from 20% to 100% of normal values for ...
static DLLAPI double *ER_STDCALL erMath_CpyVec(double *dst, double *src, int n)
Cpy vector dst = src.
static DLLAPI int 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.
static DLLAPI int ER_STDCALL SetAxisConstraints(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_CONSTRA...
static DLLAPI int 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 wind...
Definition: erk_capi_types.h:887
static DLLAPI int 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.
static DLLAPI ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND ER_STDCALL GetExtAxTrackMotionHnd(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Handle for external axis of a Track/Slider-Motion Typical data belonging to external axis data are: ...
static DLLAPI long *ER_STDCALL inq_interpolation_mode(ER_TARGET_MOVE_CP_HND hnd)
Orientation interpolation mode for CP move for target location The interpolation_mode is one of =1 on...
static DLLAPI long *ER_STDCALL inq_sync_type(ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND hnd)
Synchonization for Track/Slider For a Track/Slider motion, the synchonization should be always ER_SY...
static ERK_CAPI_ROB_ATRIBUTES erk_capi_rob_attributes
Method class for robot/device attributes, travel ranges, home position, device name, ...
Definition: erk_capi.h:826
static 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 e...
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 movea...
static 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.
static DLLAPI int 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...
Method class for helping functions, color conversion, etc.
Definition: erk_capi.h:7009
static DLLAPI int ER_STDCALL erMath_invT(DFRAME *To, DFRAME *Ti)
Builds the inverse of a homogeneous 4x4 transformation matrix T. To = inv(Ti) = ( Ri' ...
static DLLAPI int 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 p...
static DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumPoints(TErGeoHandle geometryHandle, int objidx)
static DLLAPI int ER_STDCALL erSetJointFramePassiveLast(ER_HND er_hnd, long passive_jnt_no, DFRAME *T_last)
Set kinematics transformation from last joint for each passive joint "Geometric Data from last"...
unsigned int * ER_TARGET_MOTION_EXEC_HND
unique handle for motion execution data at target
Definition: erk_capi_types.h:202
long(ER_STDCALL * TerNotifyProc)(ER_HND ErHandle, Host_HND HostHandle, TErNotifyData *p_NotifyData, TErExtraData ExtraData)
Callback function type definition for notifications, erSetCallBack_NotifyProc()
Definition: erk_capi_types.h:641
static DLLAPI int 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.
static DLLAPI double ER_STDCALL erGetMotionExec_trajectory_time(ER_TARGET_MOTION_EXEC_HND hnd)
Trajectory time [s], elapsed time to reach the target location, while interpolation trough the comple...
static DLLAPI int 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 pe...
static 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 wi...
static DLLAPI int 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 matrice...
static DLLAPI int 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...
static DLLAPI int 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 ...
static DLLAPI long *ER_STDCALL inq_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.
static ERK_CAPI_CALLBACKS erk_capi_callback
Method class for Callback functions.
Definition: erk_capi.h:158
static DLLAPI int ER_STDCALL erKernelGetVersion(void)
Robotics Simulation Kernel Version.
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()
static DLLAPI long *ER_STDCALL inq_target_type(ER_TARGET_MOVE_CP_HND hnd)
Target type for CP move for target location is always.
static DLLAPI int ER_STDCALL erToolPathGetTargetLocationNumber(ER_TOOLPATH_HND er_tpth_hnd)
Get the number of target locations in tool path.
static DLLAPI int ER_STDCALL erUpdateGeo(ER_HND er_hnd)
Updates all geometry location for each robot joint. This function causes the call of callback functio...
long(ER_STDCALL * TerGrpSyncProc)(ER_HND ErHandle, Host_HND HostHandle, TErGrpSyncData *p_GrpSyncData)
Callback function type definition group synchronization, erSetCallBack_GrpSyncProc() ...
Definition: erk_capi_types.h:650
static DLLAPI int 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 oper...
Method class to set and get tool path auxiliary motion attributes for target locations.
Definition: erk_capi.h:4685
unsigned int * ER_TARGET_ATTRIBUTES_AUX_HND
unique Auxiliary motion attributes handle
Definition: erk_capi_types.h:198
static DLLAPI double *ER_STDCALL inq_CartPosVec(ER_TARGET_MOVE_CP_HND hnd)
Cartesian position w.r.t. Base for CP move for target location Remarks Use for.
static DLLAPI int 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 jo...
Method class for path specifications, motion type (PTP, LIN, CIRC), speeds, acceleration, waiting time, etc.
Definition: erk_capi.h:3110