EASY-ROBâ„¢ Kernel  v9.304
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 - 2024
7 
8  Date: JUN 2024
9  Version: 9.304
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  v8308 nov 2021 License.enc
54  v8602 mar 2022 Pre Release
55  v8603 aug 2022 Pre Release
56  v8604 sep 2022 PreRelease - AutoPath Minimize -> try to reach last waypoint first
57  v8605 oct 2022 PreRelease - AutoPath Abort Problem
58  v8606 apr 2023 BugFix loc_FreeGrp(()
59  v9301 jul 2023 Pre Release
60  v9302 dec 2023 Pre Release, PKM: Delta-5D
61  v9304 jun 2024 Pre Release, Cloos
62 */
63 
64 #ifndef _erk_capi_h
65 #define _erk_capi_h
66 
67 #include "erk_capi_types.h"
68 
69 // Forward Declarations
70 class ERK_CAPI;
71 
72 class ERK_CAPI_ADMIN;
73 class ERK_CAPI_CALLBACKS;
74 
75 class ERK_CAPI_DEVICES;
76 class ERK_CAPI_ROB;
77 class ERK_CAPI_ROB_KIN;
80 class ERK_CAPI_MOP;
81 class ERK_CAPI_MOP_DATA;
82 class ERK_CAPI_MOP_PATH;
83 class ERK_CAPI_MOP_PREP;
84 class ERK_CAPI_MOP_EXEC;
85 class ERK_CAPI_TOOLPATH;
101 
102 class ERK_CAPI_SIM;
104 
105 class ERK_CAPI_AUTOPATH;
106 
107 class ERK_CAPI_TARGETS;
108 
109 class ERK_CAPI_GEO;
110 class ERK_CAPI_GEO_MNGR;
111 
112 class ERK_CAPI_SYS;
115 
116 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ER_CAPI
118 // class ERK_CAPI
120 
123 class ERK_CAPI
124 {
125 public:
126 
130 
134 
138 
142 
146 
150 
154 
155 };
156 
157 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_ADMIN
159 // class ERK_CAPI_ADMIN
160 //
164 class ERK_CAPI_ADMIN : public ERK_CAPI
165 {
169 
170 public:
174  static DLLAPI int ER_STDCALL erKernelGetVersion(void);
175 
184  static DLLAPI int ER_STDCALL erKernelSetLicensePriority(int license_priority);
185 
193  static DLLAPI int ER_STDCALL erKernelGetLicensePriority(int *license_priority);
194 
202  static DLLAPI int ER_STDCALL erKernelSetLicenseFile(char *license_file);
203 
211  static DLLAPI int ER_STDCALL erKernelAddLicenseFile(char *license_file);
212 
219  static DLLAPI int ER_STDCALL erKernelGetLicenseFile(char *license_file);
220 
246  static DLLAPI int ER_STDCALL erKernelInitialize(char *HostApplicationPath, char *Sold_To_ID, long mode=0);
247 
253  static DLLAPI void ER_STDCALL erKernelFree(void);
254 
260  static DLLAPI int ER_STDCALL erKernelGetLicense(char *hw_id);
261 
267  static DLLAPI int ER_STDCALL erKernelGetHardwareID(char *hw_id);
268 
274  static DLLAPI int ER_STDCALL erKernelGetExpirationDate(char *expdate);
275 
281  static DLLAPI int ER_STDCALL erKernelGetOptions(char *opt);
282 
288  static DLLAPI int ER_STDCALL erKernelGetOptionsDisabled(char *nopt);
289 };
290 
291 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_CALLBACKS
293 // class ERK_CAPI_CALLBACKS
294 //
299 {
300 public:
301 
302  /* AddToHostLog
303  Fügt dem Log der Hostanwendung einen Eintrag hinzu, oder gibt eine Statusmeldung in der
304  Statuszeile aus.
305  */
310  static DLLAPI void ER_STDCALL erSetCallBack_LogProc(TerLogProc Handler);
311 
312  /* Enable/Disable
313  AddToHostLog messages
314  */
333  static DLLAPI void ER_STDCALL erEnableCallBack_LogProc(long onoff);
334 
335  /* HostLoadGeometry
336  Fordert die Hostanwendung auf eine Geometrie aus einer Datei zu laden.
337 
338  ErHandle: Handle der Kinematik, der die Geometrie zugeordnet werden soll.
339  GeoHandle: Handle auf eine eventuell schon zuvor geladene Geomtrie der Kinematik
340  Funktioniert derzeit nicht und muss 0 sein.
341  Scaling: Skalierungsfactor mit dem die Geomtrie skaliert werden soll.
342  GeoMat: Eine Transformation zur Lagekorrektur der Geometrie.
343  FileName: Name der Datei, die geladen werden soll. Derzeit wird ein vollständiger Pfad erwartet.
344 
345  Returns: Handle auf die geladene Geomtrie. Im Fehlerfall wird 0 zurückgeliefert
346  */
353 
354  /* HostUpdateGeometry
355  Fordert die Hostanwendung auf die Kinematiktransformation der Geometrie zu aktualisieren.
356 
357  ErHandle: Handle der Kinematik, der die Geometrie zugeordnet werden soll.
358  GeoHandle: Handle auf die Geomtrie, wie von "HostLoadGeometry" geliefert.
359  KinMat: Die neue Transformation.
360 
361  Returns: Im Fehlerfall 1, ansonsten 0
362  */
369 
370  /* HostFreeGeometry
371  Fordert die Hostanwendung die Geometrie freizugeben.
372 
373  ErHandle: Handle der Kinematik, der die Geometrie zugeordnet werden soll.
374  GeoHandle: Handle auf die Geomtrie, wie von "HostLoadGeometry" geliefert.
375 
376  Returns: Im Fehlerfall 1, ansonsten 0
377  */
384 
385  /* HostGetActualTravelRanges
386  Fordert die Hostanwendung die Travel Ranges zu berechnen.
387 
388  ErHandle: Handle der Kinematik, der die Travel Ranges zugeordnet werden soll.
389 
390  Returns: Im Fehlerfall 1, ansonsten 0
391  */
398  /* HostNotify
399  Gibt Meldung an die Hostanwendung.
400  */
407 
408  /* HostGrpSync
409  GrpSync IO Hostanwendung.
410  */
416 };
417 
418 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_DEVICES
420 // class ERK_CAPI_DEVICES
421 //
426 {
427 public:
431 
435 
439 
440 public:
451  static DLLAPI int ER_STDCALL erInitKin(ER_HND *er_hnd, Host_HND host_hnd=NULL);
452 
453  /* erUnloadKin
454  Unload Robot Handle
455  Return 0-OK, 1-Error
456  */
466  static DLLAPI int ER_STDCALL erUnloadKin(ER_HND *er_hnd);
467 
468  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
469  //
470  // erConnect* NEW_050402
471  //
472  // erConnectPositioner erConnectPositionerSetSync erConnectPositionerGetSync
473  // erConnectConveyor erConnectConveyorSetSync erConnectConveyorGetSync
474  // erConnectTrackMotion erConnectTrackMotionSetSync erConnectTrackMotionGetSync
475  // erConnectRobot erConnectRobotSetSync erConnectRobotGetSync
476  //
477  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
478  /* erConnectPositioner
479  Connects Positioner Kinematik mit dem Handle 'er_hnd_connect' zum Roboter mit dem Handle 'er_hnd'
480  Return 0-OK, 1-Error
481  */
507  static DLLAPI int ER_STDCALL erConnectPositioner(ER_HND er_hnd, ER_HND er_hnd_connect);
508 
516 
517  /* erConnectPositionerSetSync
518  Setzt Sync Flag der Positioner Kinematik
519  Return 0-OK, 1-Error
520  */
530  static DLLAPI int ER_STDCALL erConnectPositionerSetSync(ER_HND er_hnd, long connect_sync);
531 
532  /* erConnectPositionerGetSync
533  Liest Sync Flag der Positioner Kinematik
534  Return -1-Error, ER_SYNC_UNDEF, ER_SYNC_OFF, ER_SYNC_ON
535  */
545 
546  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
547  /* erConnectConveyor
548  Connects Conveyor Kinematik mit dem Handle 'er_hnd_connect' zum Roboter mit dem Handle 'er_hnd'
549  Return 0-OK, 1-Error
550  */
576  static DLLAPI int ER_STDCALL erConnectConveyor(ER_HND er_hnd, ER_HND er_hnd_connect);
577 
585 
586  /* erConnectConveyorSetSync
587  Setzt Sync Flag der Conveyor Kinematik
588  Return 0-OK, 1-Error
589  */
599  static DLLAPI int ER_STDCALL erConnectConveyorSetSync(ER_HND er_hnd, long connect_sync);
600 
601  /* erConnectConveyorGetSync
602  Liest Sync Flag der Conveyor Kinematik
603  Return -1-Error, ER_SYNC_UNDEF, ER_SYNC_OFF, ER_SYNC_ON
604  */
614 
615  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
616  /* erConnectTrackMotion
617  Connects Track Kinematik mit dem Handle 'er_hnd_connect' zum Roboter mit dem Handle 'er_hnd'
618  Return 0-OK, 1-Error
619  */
645  static DLLAPI int ER_STDCALL erConnectTrackMotion(ER_HND er_hnd, ER_HND er_hnd_connect);
646 
654 
655  /* erConnectTrackMotionSetSync
656  Setzt Sync Flag der TrackMotion Kinematik
657  Return 0-OK, 1-Error
658  */
668  static DLLAPI int ER_STDCALL erConnectTrackMotionSetSync(ER_HND er_hnd, long connect_sync);
669  /* erConnectTrackMotionGetSync
670  Liest Sync Flag der TrackMotion Kinematik
671  Return -1-Error, ER_SYNC_UNDEF, ER_SYNC_OFF, ER_SYNC_ON, ER_SYNC_CONVEYOR
672  */
683 
684  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
685  /* erConnectRobot
686  Connects Robot Kinematik mit dem Handle 'er_hnd_connect' zum Roboter mit dem Handle 'er_hnd'
687  Return 0-OK, 1-Error
688  */
714  static DLLAPI int ER_STDCALL erConnectRobot(ER_HND er_hnd, ER_HND er_hnd_connect);
715 
723 
724  /* erConnectRobotSetSync
725  Setzt Sync Flag der Robot Kinematik
726  Return 0-OK, 1-Error
727  */
737  static DLLAPI int ER_STDCALL erConnectRobotSetSync(ER_HND er_hnd, long connect_sync);
738  /* erConnectRobotGetSync
739  Liest Sync Flag der Robot Kinematik
740  Return -1-Error, ER_SYNC_UNDEF, ER_SYNC_OFF, ER_SYNC_ON
741  */
750  static DLLAPI int ER_STDCALL erConnectRobotGetSync(ER_HND er_hnd);
751 
752  /* erUnloadTool
753  Loescht Tool GeoHandle und setzt Tool auf Ident
754  Important:
755  Damit die TCP Position stimmt, muss ein rob_kin_update() folgen
756  Return 0-OK, 1-Error
757  */
767  static DLLAPI int ER_STDCALL erUnloadTool(ER_HND er_hnd);
768 
769  /* erLoadKin
770  Load an easy-rob robot file with tool
771  Return 0-OK, 1-Error oder Abort
772  */
784  static DLLAPI int ER_STDCALL erLoadKin(ER_HND er_hnd,char *fln_rob);
785 
786  /* erLoadTool
787  Load an easy-rob tool file
788  Return 0-OK, 1-Error oder Abort
789  */
797  static DLLAPI int ER_STDCALL erLoadTool(ER_HND er_hnd,char *fln_tool);
798 
799  /* erGet_n_Kin
800  Return Number of loaded Robots "m_n_rob_kin"
801  */
807  static DLLAPI int ER_STDCALL erGet_n_Kin(ER_HND er_hnd);
808 
809  /* erGet_n_Kin_IR
810  Return Number of loaded Robots with more than 3 joints and inverse kinematics "m_n_rob_kin_ir"
811  */
817  static DLLAPI int ER_STDCALL erGet_n_Kin_IR(ER_HND er_hnd);
818 
819  /* erGetName
820  Name of Robot
821  Return 0-OK, 1-Error oder Abort
822  */
828  static DLLAPI int ER_STDCALL erGetName(ER_HND er_hnd,char *name);
829 };
830 
831 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_ROB
833 // class ERK_CAPI_ROB
834 //
839 {
840 public:
841 
845 
849 
853 };
854 
856 // class ERK_CAPI_ROB_KIN
857 //
863 {
864 public:
865 
866  /* erGetIDs
867  Kinematik ID - kinematischer Typ
868  RRRRRR_id =1; // Manutec
869  TTTRRR_id =2; // Portal
870  RRRRRR_bl_id =3; // ABB back link
871  UNIV_ROB_id =10; // Universelle Koordinaten
872  DH_id =11; // DH Koordinaten
873  inv_id - ID fuer inverse Kineamtik
874  inv_sub_id - Sub ID fuer inverse Kineamtik
875  Return 0-OK, 1-Error oder Abort
876  */
889  static DLLAPI int ER_STDCALL erGetIDs(ER_HND er_hnd,long *kin_id,long *inv_id, long *inv_sub_id);
890 
891  /* erGet_num_dofs
892  Return Number of Robot active joints
893  */
899  static DLLAPI int ER_STDCALL erGet_num_dofs(ER_HND er_hnd);
900 
901  /* erGet_num_dofs_passive
902  Return Number of Robot passive joints
903  */
909  static DLLAPI int ER_STDCALL erGet_num_dofs_passive(ER_HND er_hnd);
910 
911  /* erGetJointTypes
912  gets type of active robot joints 0-Rot 1-Trans
913  Return 0-OK, 1-Error oder Abort
914  */
923  static DLLAPI int ER_STDCALL erGetJointTypes(ER_HND er_hnd, long *jnt_type_active);
924 
925  /* erGetJointTypes_passive
926  gets type of passive robot joints 0-Rot 1-Trans
927  Return 0-OK, 1-Error oder Abort
928  */
937  static DLLAPI int ER_STDCALL erGetJointTypes_passive(ER_HND er_hnd, long *jnt_type_passive);
938 
939  /* erGetJointDirections
940  gets direction of active robot joints 1-JNT_DIRECTION_X, 2-JNT_DIRECTION_Y, 3-JNT_DIRECTION_Z
941  Return 0-OK, 1-Error oder Abort
942  */
951  static DLLAPI int ER_STDCALL erGetJointDirections(ER_HND er_hnd, long *jnt_direction_active);
952 
953  /* erGetJointDirections_passive
954  gets type direction of passive robot joints 1-JNT_DIRECTION_X, 2-JNT_DIRECTION_Y, 3-JNT_DIRECTION_Z
955  Return 0-OK, 1-Error oder Abort
956  */
965  static DLLAPI int ER_STDCALL erGetJointDirections_passive(ER_HND er_hnd, long *jnt_direction_passive);
966 
967  /* erGetJointChainTypes
968  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
969  Return 0-OK, 1-Error or Abort
970  */
978  static DLLAPI int ER_STDCALL erGetJointChainTypes(ER_HND er_hnd, long *jnt_chain_type_active);
979 
980  /* erGetJointChainTypes_passive
981  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
982  Return 0-OK, 1-Error or Abort
983  */
991  static DLLAPI int ER_STDCALL erGetJointChainTypes_passive(ER_HND er_hnd, long *jnt_chain_type_passive);
992 
993  /* erGetJointAttachDof_active
994  gets Attach-Dof of active robot joints
995  Return 0-OK, 1-Error or Abort
996  */
1006  static DLLAPI int ER_STDCALL erGetJointAttachDof_active(ER_HND er_hnd, long *jnt_attach_dof_active);
1007 
1008  /* erGetJointAttachDof_passive
1009  gets Attach-Dof of passive robot joints
1010  Return 0-OK, 1-Error or Abort
1011  */
1020  static DLLAPI int ER_STDCALL erGetJointAttachDof_passive(ER_HND er_hnd, long *jnt_attach_dof_passive);
1021 
1022  /* erGetMoveBaseMode
1023  gets moveable base mode 0-Robot base is fix (default), 1-Robot base is moveable
1024  Return 0-OK, 1-Error oder Abort
1025  */
1035  static DLLAPI int ER_STDCALL erGetMoveBaseMode(ER_HND er_hnd,long *move_base_mode);
1036 
1037  /* erGetMoveBasepJointIdx
1038  gets passive joint idx representing the moveable base
1039  0-Robot base is fix (default)
1040  n-index of passive joint representing the moveable base
1041  Return 0-OK, 1-Error oder Abort
1042  */
1051  static DLLAPI int ER_STDCALL erGetMoveBasepJointIdx(ER_HND er_hnd,long *move_base_pjointidx);
1052 
1053  /* erGetpJointMoveBase
1054  get transformation from passive joint 'pjnt' to the moveable base 'mb'
1055  Return 0-OK, 1-Error oder Abort
1056  */
1065  static DLLAPI int ER_STDCALL erGetpJointMoveBase(ER_HND er_hnd,DFRAME *pjntTmb);
1066 
1067  /* erGetRobotBaseToMoveBase
1068  get transformation from robot base 'b' to the moveable base 'mb'
1069  bTmb is Ident, if moveable base is fix
1070  Return 0-OK, 1-Error oder Abort
1071  */
1080  static DLLAPI int ER_STDCALL erGetRobotBaseToMoveBase(ER_HND er_hnd,DFRAME *bTmb);
1081 
1082  /* erSetJoints
1083  Set Robot joints
1084  Return 0-OK, 1-Error oder Abort
1085  */
1094  static DLLAPI int ER_STDCALL erSetJoints(ER_HND er_hnd,double *q_solut);
1095 
1096  /* erSetJoint
1097  Set Robot joint
1098  Return 0-OK, 1-Error oder Abort
1099  */
1110  static DLLAPI int ER_STDCALL erSetJoint(ER_HND er_hnd,double q_solut, long jnt_no);
1111 
1112  /* erGetJoints
1113  Get current (active) Robot joints
1114  Return 0-OK, 1-Error oder Abort
1115  */
1127  static DLLAPI int ER_STDCALL erGetJoints(ER_HND er_hnd,double *q_solut);
1128 
1129  /* erGetJointSolutions
1130  Get all (active) Robot joints solutions
1131  Return 0-OK, 1-Error oder Abort
1132  */
1181  static DLLAPI int ER_STDCALL erGetJointSolutions(ER_HND er_hnd,double *q_solutions, long *q_warnings);
1182 
1183  /* erGetJointSpeeds
1184  Get current (active) Robot joint speeds
1185  Return 0-OK, 1-Error oder Abort
1186  */
1196  static DLLAPI int ER_STDCALL erGetJointSpeeds(ER_HND er_hnd,double *v_solut);
1197 
1198  /* erGetJointAccels
1199  Get current (active) Robot joint accels
1200  Return 0-OK, 1-Error oder Abort
1201  */
1211  static DLLAPI int ER_STDCALL erGetJointAccels(ER_HND er_hnd,double *a_solut);
1212 
1213  /* erGetJoints_passive
1214  Get current passive Robot joints
1215  */
1225  static DLLAPI int ER_STDCALL erGetJoints_passive(ER_HND er_hnd,double *q_passive);
1226 
1227  /* erSetConfig
1228  Set Robot configuration
1229  */
1242  static DLLAPI int ER_STDCALL erSetConfig(ER_HND er_hnd, long config);
1243 
1244  /* erGetConfig
1245  Set Robot configuration
1246  */
1255  static DLLAPI int ER_STDCALL erGetConfig(ER_HND er_hnd, long *config);
1256 
1257  /* erFindConfig
1258  Find current Robot configuration
1259  */
1270  static DLLAPI int ER_STDCALL erFindConfig(ER_HND er_hnd, long *config); // NEW_050324
1271 
1272  /* erGetNumConfigs
1273  Get Number of Robot configurations
1274  */
1281  static DLLAPI int ER_STDCALL erGetNumConfigs(ER_HND er_hnd, long *num_configs);
1282 
1283  /* erInvKinRobotBaseTip
1284  Inverse bTt is Robot base to Tip
1285  Return:
1286  Return code for inverse kinematics, INV_WARN_*
1287  */
1301  static DLLAPI int ER_STDCALL erInvKinRobotBaseTip (ER_HND er_hnd,DFRAME *bTt);
1302 
1303  /* erInvKinWorldTip
1304  Inverse iTt is World to Tip
1305  Return:
1306  Return code for inverse kinematics, INV_WARN_*
1307  */
1321  static DLLAPI int ER_STDCALL erInvKinWorldTip(ER_HND er_hnd,DFRAME *iTt);
1322 
1323  /* erInvKinRobotBaseTcp
1324  Inverse bTt is Robot base to Tcp
1325  Return:
1326  Return code for inverse kinematics, INV_WARN_*
1327  */
1341  static DLLAPI int ER_STDCALL erInvKinRobotBaseTcp (ER_HND er_hnd,DFRAME *bTw);
1342 
1343  /* erInvKinWorldTcp
1344  Inverse iTt is World to Tcp
1345  Return:
1346  Return code for inverse kinematics, INV_WARN_*
1347  */
1361  static DLLAPI int ER_STDCALL erInvKinWorldTcp(ER_HND er_hnd,DFRAME *iTw);
1362 
1363  /* erSetTool
1364  Set Tool Tip to Tcp
1365  */
1372  static DLLAPI int ER_STDCALL erSetTool(ER_HND er_hnd,DFRAME *tTw);
1373  /* erGetTool
1374  Get Tool Tip to Tcp
1375  */
1389  static DLLAPI int ER_STDCALL erGetTool(ER_HND er_hnd,DFRAME *tTw);
1390 
1391  /* erGetToolFix
1392  Get Tool Tip to fix Tcp, without Tool Offset
1393  */
1410  static DLLAPI int ER_STDCALL erGetToolFix(ER_HND er_hnd, DFRAME *tTwfix);
1411 
1412  /* erSetToolOffset
1413  Set Tool Offset Tcp' to Tcp
1414  */
1421  static DLLAPI int ER_STDCALL erSetToolOffset(ER_HND er_hnd, DFRAME *wTwo);
1422 
1423  /* erGetToolOffset
1424  Get Tool Offset Tcp' to Tcp
1425  */
1457  static DLLAPI int ER_STDCALL erGetToolOffset(ER_HND er_hnd, DFRAME *wTwo);
1458 
1459  /* erSetBaseRobotBase
1460  Set Base w.r.t. RobotBase
1461  */
1470  static DLLAPI int ER_STDCALL erSetBaseRobotBase(ER_HND er_hnd,DFRAME *bTbase);
1471 
1472  /* erGetBaseRobotBase
1473  Get Base w.r.t. RobotBase
1474  */
1483  static DLLAPI int ER_STDCALL erGetBaseRobotBase(ER_HND er_hnd,DFRAME *bTbase);
1484 
1485  /* erSetBaseWorld
1486  Set Base w.r.t. World
1487  */
1496  static DLLAPI int ER_STDCALL erSetBaseWorld(ER_HND er_hnd,DFRAME *iTbase);
1497 
1498  /* erGetBaseWorld
1499  Get Base w.r.t. World
1500  */
1509  static DLLAPI int ER_STDCALL erGetBaseWorld(ER_HND er_hnd,DFRAME *iTbase);
1510 
1511  /* erSetRobotBase
1512  Set RobotBase, World to Robot base
1513  */
1520  static DLLAPI int ER_STDCALL erSetRobotBase(ER_HND er_hnd,DFRAME *iTb);
1521 
1522  /* erGetRobotBase
1523  Get RobotBase, World to Robot base
1524  */
1538  static DLLAPI int ER_STDCALL erGetRobotBase(ER_HND er_hnd,DFRAME *iTb);
1539 
1540  /* erGetRobotBaseTip
1541  Get Robot Tip w.r.t. Robot base
1542  */
1549  static DLLAPI int ER_STDCALL erGetRobotBaseTip(ER_HND er_hnd,DFRAME *bTt);
1550  /* erGetRobotBaseTcp
1551  Get Robot Tcp w.r.t. Robot base
1552  */
1559  static DLLAPI int ER_STDCALL erGetRobotBaseTcp(ER_HND er_hnd,DFRAME *bTw);
1560 
1561  /* erGetWorldTip
1562  Get Robot Tip w.r.t. World
1563  */
1570  static DLLAPI int ER_STDCALL erGetWorldTip(ER_HND er_hnd,DFRAME *iTt);
1571 
1572  /* erGetWorldTcp
1573  Get Robot Tcp w.r.t. World
1574  */
1581  static DLLAPI int ER_STDCALL erGetWorldTcp(ER_HND er_hnd,DFRAME *iTw);
1582 
1583  /* erUpdateKin
1584  Update the complete kinematic
1585  */
1594  static DLLAPI int ER_STDCALL erUpdateKin(ER_HND er_hnd);
1595 
1596  /* erGetJointFrameRobotBase
1597  Transformation from RobotBase to (active) Robot Joint
1598  Return 0-OK, 1-Error oder Abort
1599  */
1608  static DLLAPI int ER_STDCALL erGetJointFrameRobotBase(ER_HND er_hnd,long active_jnt_no,DFRAME *bTax);
1609 
1610  /* erGetJointFrameRobotBase_passive
1611  Transformation from RobotBase to passive Robot Joint
1612  Return 0-OK, 1-Error oder Abort
1613  */
1622  static DLLAPI int ER_STDCALL erGetJointFrameRobotBase_passive(ER_HND er_hnd,long passive_jnt_no,DFRAME *bTax);
1623 
1624  /* erGetJointFrameWorld
1625  Transformation from World to (active) Robot Joint
1626  Return 0-OK, 1-Error oder Abort
1627  */
1636  static DLLAPI int ER_STDCALL erGetJointFrameWorld(ER_HND er_hnd,long active_jnt_no,DFRAME *iTax);
1637 
1638  /* erGetJointFrameWorld_passive
1639  Transformation from World to passive Robot Joint
1640  Return 0-OK, 1-Error oder Abort
1641  */
1650  static DLLAPI int ER_STDCALL erGetJointFrameWorld_passive(ER_HND er_hnd,long passive_jnt_no,DFRAME *iTax);
1651 
1652  /* erSetExtTcpRobotBase
1653  Set external Tcp w.r.t Robot Base
1654  Return 0-OK, 1-Error oder Abort
1655  Ausnahme: Beim Positioner ist der external Tcp w.r.t flange des positioners
1656  */
1665  static DLLAPI int ER_STDCALL erSetExtTcpRobotBase(ER_HND er_hnd,DFRAME *bText, long use_ext_flange);
1666 
1667  /* erGetExtTcpRobotBase
1668  Get external Tcp w.r.t. Robot Base
1669  Return 0-OK, 1-Error oder Abort
1670  */
1677  static DLLAPI int ER_STDCALL erGetExtTcpRobotBase(ER_HND er_hnd,DFRAME *bText);
1678 
1679  /* erSetExtTcpWorld
1680  Set external Tcp w.r.t world
1681  Return 0-OK, 1-Error oder Abort
1682  */
1689  static DLLAPI int ER_STDCALL erSetExtTcpWorld(ER_HND er_hnd,DFRAME *iText);
1690 
1691  /* erGetExtTcpWorld
1692  Get external Tcp w.r.t. world
1693  Return 0-OK, 1-Error oder Abort
1694  */
1701  static DLLAPI int ER_STDCALL erGetExtTcpWorld(ER_HND er_hnd,DFRAME *iText);
1702 
1703  /* erSetExtTcpMode
1704  Set ExtTcpMode 0-IPO_MODE_BASE (Werk ZEUG fuehrend), 1-IPO_MODE_TOOL (Werk STUECK fuehren)
1705  Return 0-OK, 1-Error oder Abort
1706  */
1714  static DLLAPI int ER_STDCALL erSetExtTcpMode(ER_HND er_hnd,long ext_tcp_mode);
1715 
1716  /* erGetExtTcpMode
1717  Get ExtTcpMode 0-IPO_MODE_BASE (Werk ZEUG fuehrend), 1-IPO_MODE_TOOL (Werk STUECK fuehren)
1718  Return 0-OK, 1-Error oder Abort
1719  */
1727  static DLLAPI int ER_STDCALL erGetExtTcpMode(ER_HND er_hnd, long *ext_tcp_mode);
1728 };
1729 
1731 // class ERK_CAPI_ROB_KIN_API
1732 //
1737 {
1738 public:
1739 
1740  /* erGetInvKinID
1741  Inverse kinematics ID for cRobot
1742  Return 0-OK, 1-Error oder Abort
1743  */
1750  static DLLAPI int ER_STDCALL erGetInvKinID(ER_HND er_hnd, long *invkin_id);
1751 
1752  /* erGetInvKinSubID
1753  Inverse kinematics Sub-ID for cRobot
1754  Return 0-OK, 1-Error oder Abort
1755  */
1762  static DLLAPI int ER_STDCALL erGetInvKinSubID(ER_HND er_hnd, long *invkinsub_id);
1763 
1764  /* erSetJointSolutions
1765  Set all (active) Robot joints solutions
1766  Return 0-OK, 1-Error oder Abort
1767  */
1815  static DLLAPI int ER_STDCALL erSetJointSolutions(ER_HND er_hnd, double *q_solutions, long *q_warnings);
1816 
1817  /* erSetJointDyn
1818  Set actual robot joint
1819  Return 0-OK, 1-Error oder Abort
1820  */
1831  static DLLAPI int ER_STDCALL erSetJointDyn(ER_HND er_hnd, double q_dyn, long jnt_no);
1832 
1833  /* erGetRobotBasetoFirstJoint
1834  Robot Base to first joint of kinematics chain
1835  Return 0-OK, 1-Error oder Abort
1836  */
1843  static DLLAPI int ER_STDCALL erGetRobotBasetoFirstJoint(ER_HND er_hnd, DFRAME *bT0);
1844 
1845  /* erGetJointFrameActiveNext
1846  Get kinematics transformation to the next joint for each active joint "Geometric Data to next"
1847  Return 0-OK, 1-Error oder Abort
1848  */
1897  static DLLAPI int ER_STDCALL erGetJointFrameActiveNext(ER_HND er_hnd, long active_jnt_no, DFRAME *T_nxt);
1898 
1899  /* erSetJointFrameActiveNext
1900  Set kinematics transformation to the next joint for each active joint "Geometric Data to next"
1901  Return 0-OK, 1-Error oder Abort
1902  */
1913  static DLLAPI int ER_STDCALL erSetJointFrameActiveNext(ER_HND er_hnd, long active_jnt_no, DFRAME *T_nxt);
1914 
1915  /* erGetJointFrameActiveLast
1916  Get kinematics transformation from last joint for each active joint "Geometric Data from last"
1917  Return 0-OK, 1-Error oder Abort
1918  */
1929  static DLLAPI int ER_STDCALL erGetJointFrameActiveLast(ER_HND er_hnd, long active_jnt_no, DFRAME *T_last); /* erGetJointFrameActiveLast
1930 
1931  /* Set kinematics transformation from last joint for each active joint "Geometric Data from last"
1932  Return 0-OK, 1-Error oder Abort
1933  */
1944  static DLLAPI int ER_STDCALL erSetJointFrameActiveLast(ER_HND er_hnd, long active_jnt_no, DFRAME *T_last);
1945 
1946  /* erGetJointFramePassiveNext
1947  Get kinematics transformation to the next joint for each passive joint "Geometric Data to next"
1948  Return 0-OK, 1-Error oder Abort
1949  */
1958  static DLLAPI int ER_STDCALL erGetJointFramePassiveNext(ER_HND er_hnd, long passive_jnt_no, DFRAME *T_nxt);
1959 
1960  /* erSetJointFramePassiveNext
1961  Set kinematics transformation to the next joint for each passive joint "Geometric Data to next"
1962  Return 0-OK, 1-Error oder Abort
1963  */
1974  static DLLAPI int ER_STDCALL erSetJointFramePassiveNext(ER_HND er_hnd, long passive_jnt_no, DFRAME *T_nxt);
1975 
1976  /* erGetJointFramePassiveLast
1977  Get kinematics transformation to the next joint for each passive joint "Geometric Data to next"
1978  Return 0-OK, 1-Error oder Abort
1979  */
1990  static DLLAPI int ER_STDCALL erGetJointFramePassiveLast(ER_HND er_hnd, long passive_jnt_no, DFRAME *T_last);
1991 
1992  /* erSetJointFramePassiveLast
1993  Set kinematics transformation to the next joint for each passive joint "Geometric Data to next"
1994  Return 0-OK, 1-Error oder Abort
1995  */
2006  static DLLAPI int ER_STDCALL erSetJointFramePassiveLast(ER_HND er_hnd, long passive_jnt_no, DFRAME *T_last);
2007 
2008  /* erGet_erk_kin_usr_ptr
2009  Access user pointer for user defined inverse and forward kinematics in EasySimKernel_apikinx64.dll
2010  Return pointer to user defined memory
2011  */
2073  static DLLAPI void** ER_STDCALL erGet_erk_kin_usr_ptr(ER_HND er_hnd);
2074 };
2076 // class ERK_CAPI_ROB_ATRIBUTES
2077 //
2082 {
2083 public:
2084 
2085  /* erGetName
2086  Name of Robot
2087  Return 0-OK, 1-Error oder Abort
2088  */
2094  static DLLAPI int ER_STDCALL erGetName(ER_HND er_hnd, char *name);
2095 
2096  /* erSetHomepos
2097  Set Robot Home position
2098  */
2108  static DLLAPI int ER_STDCALL erSetHomepos(ER_HND er_hnd,double *homepos);
2109 
2110  /* erGetHomepos
2111  Get Robot Home position
2112  */
2122  static DLLAPI int ER_STDCALL erGetHomepos(ER_HND er_hnd,double *homepos);
2123 
2124  /* erSetSweMin
2125  Set Robot min. SWE Switch
2126  */
2136  static DLLAPI int ER_STDCALL erSetSweMin(ER_HND er_hnd,double *swe_min);
2137 
2138  /* erGetSweMin
2139  Get min. SWE Switch
2140  */
2150  static DLLAPI int ER_STDCALL erGetSweMin(ER_HND er_hnd,double *swe_min);
2151 
2152  /* erGetSweMinCalc
2153  Get min. calculated SWE Switch
2154  */
2165  static DLLAPI int ER_STDCALL erGetSweMinCalc(ER_HND er_hnd,double *swe_min_calc);
2166 
2167  /* erSetSweMax
2168  Set max. SWE Switch
2169  */
2179  static DLLAPI int ER_STDCALL erSetSweMax(ER_HND er_hnd,double *swe_max);
2180 
2181  /* erGetSweMax
2182  Get max. SWE Switch
2183  */
2193  static DLLAPI int ER_STDCALL erGetSweMax(ER_HND er_hnd,double *swe_max);
2194  /* erGetSweMaxCalc
2195  Get max. calculated SWE Switch
2196  */
2207  static DLLAPI int ER_STDCALL erGetSweMaxCalc(ER_HND er_hnd,double *swe_max_calc);
2208 
2209  /* erGetSweMinMaxCalc
2210  Get min. and max. calculated SWE Switches
2211  */
2223  static DLLAPI int ER_STDCALL erGetSweMinMaxCalc(ER_HND er_hnd,double *swe_min_calc,double *swe_max_calc);
2224 
2232  static DLLAPI int ER_STDCALL erGetSweCalcMode(ER_HND er_hnd,long *swe_calc_mode);
2233 
2243  static DLLAPI int ER_STDCALL erSetSweMin_passive(ER_HND er_hnd, double *swe_min_passive);
2253  static DLLAPI int ER_STDCALL erGetSweMin_passive(ER_HND er_hnd, double *swe_min_passive);
2254 
2264  static DLLAPI int ER_STDCALL erSetSweMax_passive(ER_HND er_hnd, double *swe_max_passive);
2274  static DLLAPI int ER_STDCALL erGetSweMax_passive(ER_HND er_hnd, double *swe_max_passive);
2275 
2276  /* erGetConfigName
2277  Name of robot configuration
2278  Return 0-OK, 1-Error oder Abort
2279  */
2287  static DLLAPI int ER_STDCALL erGetConfigName(ER_HND er_hnd, long config_idx, char *config_name);
2288 
2289  /* erGetJointName
2290  Name of active robot joint
2291  Return 0-OK, 1-Error oder Abort
2292  */
2299  static DLLAPI int ER_STDCALL erGetJointName(ER_HND er_hnd, long active_jnt_no, char *jnt_name);
2300 
2301  /* erGetJointName_passive
2302  Name of passive robot joint
2303  Return 0-OK, 1-Error oder Abort
2304  */
2311  static DLLAPI int ER_STDCALL erGetJointName_passive(ER_HND er_hnd, long passive_jnt_no, char *jnt_name_passive);
2312 
2313  /* erSetJointSign
2314  Set Joint Directions
2315  */
2323  static DLLAPI int ER_STDCALL erSetJointSign(ER_HND er_hnd,double *joint_sign); // NEW_050324
2324 
2325  /* erGetJointSign
2326  Get Joint Sign
2327  */
2336  static DLLAPI int ER_STDCALL erGetJointSign(ER_HND er_hnd,double *joint_sign); // NEW_050324
2337 
2338  /* erSetJointOffset
2339  Set Joint Offsets
2340  */
2348  static DLLAPI int ER_STDCALL erSetJointOffset(ER_HND er_hnd,double *joint_offset); // NEW_050324
2349 
2350  /* erGetJointOffset
2351  Get Joint Offsets
2352  */
2360  static DLLAPI int ER_STDCALL erGetJointOffset(ER_HND er_hnd,double *joint_offset); // NEW_050324
2361 
2362  /* erSetVqMax
2363  Set max. joint speed [rad/s,m/s]
2364  */
2372  static DLLAPI int ER_STDCALL erSetVqMax(ER_HND er_hnd,double *vq_max);
2373 
2374  /* erGetVqMax
2375  Get max. joint speed [rad/s,m/s]
2376  */
2384  static DLLAPI int ER_STDCALL erGetVqMax(ER_HND er_hnd,double *vq_max);
2385 
2386  /* erSetAqMax
2387  Set max. joint acceleration [rad/s^2,m/s^2]
2388  */
2396  static DLLAPI int ER_STDCALL erSetAqMax(ER_HND er_hnd,double *aq_max);
2397 
2398  /* erGetAqMax
2399  Get max. joint acceleration [rad/s^2,m/s^2]
2400  */
2408  static DLLAPI int ER_STDCALL erGetAqMax(ER_HND er_hnd,double *aq_max);
2409 
2410  /* erSetVxMax
2411  Set max. cartesian speed [m/s]
2412  */
2419  static DLLAPI int ER_STDCALL erSetVxMax(ER_HND er_hnd,double vx_max);
2420 
2421  /* erGetVxMax
2422  Get max. cartesian speed [m/s]
2423  */
2430  static DLLAPI int ER_STDCALL erGetVxMax(ER_HND er_hnd,double *vx_max);
2431 
2432  /* erSetVxOriMax
2433  Set max. cartesian orientation speed [rad/s]
2434  */
2441  static DLLAPI int ER_STDCALL erSetVxOriMax(ER_HND er_hnd,double vx_ori_max);
2442 
2443  /* erGetVxOriMax
2444  Get max. cartesian orientation orientation speed [rad/s]
2445  */
2452  static DLLAPI int ER_STDCALL erGetVxOriMax(ER_HND er_hnd,double *vx_ori_max);
2453 
2454  /* erSetAxMax
2455  Set max. cartesian acceleration [m/s^2]
2456  */
2463  static DLLAPI int ER_STDCALL erSetAxMax(ER_HND er_hnd,double ax_max);
2464 
2465  /* erGetAxMax
2466  Get max. cartesian acceleration [m/s^2]
2467  */
2474  static DLLAPI int ER_STDCALL erGetAxMax(ER_HND er_hnd,double *ax_max);
2475 
2476  /* erSetAxOriMax
2477  Set max. cartesian orientation acceleration [rad/s^2]
2478  */
2486  static DLLAPI int ER_STDCALL erSetAxOriMax(ER_HND er_hnd,double ax_ori_max);
2487  /* erGetAxOriMax
2488  Get max. cartesian orientation acceleration [rad/s^2]
2489  */
2496  static DLLAPI int ER_STDCALL erGetAxOriMax(ER_HND er_hnd,double *ax_ori_max);
2497 
2498  /* erGetBackLink obsolete -> use erGetBacklink(...)
2499  Get Back Link returns robot back link information
2500  *backlink = 0-KIN_BACK_LINK_NO | 1-KIN_BACK_LINK_YES | 2-KIN_BACK_LINK_UNKNOWN
2501  Return 0-OK, 1-Error oder Abort
2502  */
2505  static DLLAPI int ER_STDCALL erGetBackLink(ER_HND er_hnd,long *backlink); // obsolete -> use erGetBacklink(...)
2506 
2507  /* erSetBacklink
2508  Set Backlink extended attribute
2509  */
2519  static DLLAPI int ER_STDCALL erSetBacklink(ER_HND er_hnd,long backlink);
2520 
2521  /* erGetBacklink
2522  Get Backlink extended attribute
2523  */
2533  static DLLAPI int ER_STDCALL erGetBacklink(ER_HND er_hnd,long *backlink);
2534 
2535  /* erSetAxis_couplingA2A3
2536  Set Axis_couplingA2A3 extended attribute
2537  */
2547  static DLLAPI int ER_STDCALL erSetAxis_couplingA2A3(ER_HND er_hnd,long axis_couplingA2A3);
2548 
2549  /* erGetAxis_couplingA2A3
2550  Get Axis_couplingA2A3 extended attribute
2551  */
2561  static DLLAPI int ER_STDCALL erGetAxis_couplingA2A3(ER_HND er_hnd,long *axis_couplingA2A3);
2562 
2563  /* erSetCounter_weight
2564  Set Counter_weight extended attribute
2565  */
2575  static DLLAPI int ER_STDCALL erSetCounter_weight(ER_HND er_hnd,long counter_weight);
2576 
2577  /* erGetCounter_weight
2578  Get Counter_weight extended attribute
2579  */
2589  static DLLAPI int ER_STDCALL erGetCounter_weight(ER_HND er_hnd,long *counter_weight);
2590 
2591  /* erSetTurn_interval
2592  Set Turn_interval [rad,m]
2593  */
2604  static DLLAPI int ER_STDCALL erSetTurn_interval(ER_HND er_hnd,double *turn_interval);
2605 
2606  /* erGetTurn_interval
2607  Get Turn_interval [rad,m]
2608  */
2619  static DLLAPI int ER_STDCALL erGetTurn_interval(ER_HND er_hnd,double *turn_interval);
2620 
2621  /* erSetTurn_offset
2622  Set Turn_offset [rad,m]
2623  */
2634  static DLLAPI int ER_STDCALL erSetTurn_offset(ER_HND er_hnd,double *turn_offset);
2635 
2636  /* erGetTurn_offset
2637  Get Turn_offset [rad,m]
2638  */
2649  static DLLAPI int ER_STDCALL erGetTurn_offset(ER_HND er_hnd,double *turn_offset);
2650 
2651  /* erSetTurn_value
2652  Set Turn_value, will set turn_enable
2653  */
2666  static DLLAPI int ER_STDCALL erSetTurn_value(ER_HND er_hnd,long *turn_value);
2667 
2668  /* erGetTurn_value
2669  Get Turn_value
2670  */
2681  static DLLAPI int ER_STDCALL erGetTurn_value(ER_HND er_hnd,long *turn_value);
2682 };
2683 
2684 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_MOP
2686 // class ERK_CAPI_MOP
2687 //
2692 {
2693 public:
2697 
2701 
2705 
2709 
2710 public:
2711  /* erINITIALIZE
2712  Erzeugt ein Roboter Handle
2713  Opcode 101, Chapter 3.4.1, Page 3-26
2714  Return 0-OK, 1-Error
2715  entspricht erInitKin()
2716  */
2726  static DLLAPI int ER_STDCALL erINITIALIZE (ER_HND *er_hnd, Host_HND host_hnd=NULL);
2727 
2728  /* erRESET
2729  Definition: Resets an instance of a robot to an initial state
2730  Opcode 102, Chapter 3.4.1, Page 3-29
2731  Return 0-OK, 1-Error
2732  */
2754  static DLLAPI int ER_STDCALL erRESET(ER_HND er_hnd);
2755 
2756  /* erTERMINATE
2757  Loescht Roboter Handle
2758  Definition: Terminates an instance of a robot of the Kernel
2759  Opcode 103, Chapter 3.4.1, Page 3-30
2760  Return 0-OK, 1-Error
2761  see erUnloadKin()
2762  */
2770  static DLLAPI int ER_STDCALL erTERMINATE(ER_HND *er_hnd);
2771 
2772  /* erSET_INITIAL_POSITION
2773  sets the robot model to a position according to the input data
2774  Opcode 116, Chapter 3.4.3, Page 3-50
2775  Return 0-OK, 1-Error
2776  */
2786  static DLLAPI int ER_STDCALL erSET_INITIAL_POSITION(ER_HND er_hnd, INITIAL_POSITION_DATA *p_initial_position_data);
2787 
2788  /*erSELECT_TRACKING
2789  Definition: Selects the Tracking On or Off in the Kernel
2790  Opcode 146, Chapter 3.4.7, Page 3-93
2791  Return 0-OK, 1-Error, -1- not supported
2792  */
2804  static DLLAPI int ER_STDCALL erSELECT_TRACKING(ER_HND er_hnd, long conveyor_flags);
2805 
2806  /*erSET_CONVEYOR_POSITION
2807  Definition: Sends the conveyor position to the Kernel
2808  Opcode 147, Chapter 3.4.7, Page 3-94
2809  Return 0-OK, 1-Error, -1- not supported
2810  */
2826  static DLLAPI int ER_STDCALL erSET_CONVEYOR_POSITION(ER_HND er_hnd, long input_format, long conveyor_flags, double conveyor_pos);
2827 
2828  /*erDEFINE_EVENT
2829  Definition: Defines an internal asynchronous event that is to be generated relative to position and/or time in the Kernel
2830  Opcode 148, Chapter 3.4.8, Page 3-96
2831  Return 0-OK, 1-Error, -1- not supported
2832  */
2846  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);
2847 
2848  /*erCANCEL_EVENT
2849  Definition: This function makes it possible to cancel an event previously defined in the Kernel by the erDEFINE_EVENT() function
2850  Opcode 149, Chapter 3.4.8, Page 3-99
2851  Return 0-OK, 1-Error, -1- not supported
2852  */
2862  static DLLAPI int ER_STDCALL erCANCEL_EVENT(ER_HND er_hnd, long event_id);
2863 
2864  /*erGET_EVENT
2865  Definition: This function gets information about an internal asynchronous event that occurred in the Kernel
2866  Opcode 150, Chapter 3.4.8, Page 3-100
2867  Return 0-OK, 1-Error, -1- not supported
2868  */
2878  static DLLAPI int ER_STDCALL erGET_EVENT(ER_HND er_hnd, long event_nr);
2879 
2880  /*erGET_MESSAGE
2881  Definition: Gives information about controller messages that occurred
2882  Opcode 154, Chapter 3.4.9, Page 3-104
2883  Return 0-OK, 1-Error, -1- not supported
2884  */
2895  static DLLAPI int ER_STDCALL erGET_MESSAGE(ER_HND er_hnd, long message_number);
2896 };
2897 
2899 // class ERK_CAPI_MOP_DATA
2900 //
2905 {
2906 public:
2926  static DLLAPI int ER_STDCALL erSetTrackingWindow(ER_HND er_hnd, long active, double up, double down, TErTrackingWindowID id_tw, char *name=NULL);
2927 
2928  /* erSetconveyorStartCondition
2929  tx0 - Offsetposition in x-Rtg. bzgl. Conveyorflanch
2930  Return 0-OK, 1-Error
2931  */
2941  static DLLAPI int ER_STDCALL erSetconveyorStartCondition(ER_HND er_hnd, double tx0);
2942 
2943  /* erSetSpeedReductionEnable
2944  */
2956  static DLLAPI int ER_STDCALL erSetSpeedReductionEnable(ER_HND er_hnd,long speed_reduction_enable);
2957 
2958  /* erGetSpeedReductionEnable
2959  */
2971  static DLLAPI int ER_STDCALL erGetSpeedReductionEnable(ER_HND er_hnd,long *speed_reduction_enable);
2972 
2973  /*erSELECT_MOTION_TYPE
2974  motion_type, ER_JOINT = 1, ER_LIN = 2, ER_SLEW = 3, ER_CIRC = 4
2975  Opcode 120, Chapter 3.4.4, Page 3-58
2976  */
2987  static DLLAPI int ER_STDCALL erSELECT_MOTION_TYPE(ER_HND er_hnd, long motion_type);
2988 
2989  /*erSELECT_TARGET_TYPE
2990  Definition: selects one of different types for the specification of targets
2991  Opcode 121, Chapter 3.4.4, Page 3-59
2992  Return 0-OK, 1-Error
2993 
2994  Currently supported:
2995  0 - absolute w.r.t. object frame
2996  9 - single axis motion
2997  */
3009  static DLLAPI int ER_STDCALL erSELECT_TARGET_TYPE(ER_HND er_hnd, long target_type);
3010 
3011  /*erSELECT_TRAJECTORY_MODE
3012  Definition: Selects on or off for the trajectory mode
3013  Opcode 122, Chapter 3.4.4, Page 3-62
3014  Return 0-OK, 1-Error, -1-not supported
3015  */
3025  static DLLAPI int ER_STDCALL erSELECT_TRAJECTORY_MODE(ER_HND er_hnd, long trajectory_on);
3026 
3027  /*erSET_ADVANCE_MOTION
3028  Definition: defines the number of motions, the motion planner may run in advance of the interpolator (look_ahead)
3029  Opcode 127, Chapter 3.4.4, Page 3-67
3030  */
3038  static DLLAPI int ER_STDCALL erSET_ADVANCE_MOTION(ER_HND er_hnd, long Number_of_motion);
3039  /*erSET_MOTION_FILTER
3040  Definition: defines the filter factor for smoothing velocity profiles of motions
3041  Opcode 128, Chapter 3.4.4, Page 3-68
3042  */
3051  static DLLAPI int ER_STDCALL erSET_MOTION_FILTER(ER_HND er_hnd, long filter_factor);
3052 
3053  /*erREVERSE_MOTION
3054  Definition: Instructs to do a reverse motion
3055  Opcode 130, Chapter 3.4.4, Page 3-70
3056  Return 0-OK, 1-Error, -1-not supported
3057  */
3070  static DLLAPI int ER_STDCALL erREVERSE_MOTION(ER_HND er_hnd, double distance );
3071 
3072  /*erSET_PAYLOAD_PARAMETER
3073  Definition: Allows specifying payloads at different locations on the robot.
3074  It has to be supported when the payload influences the motion planning.
3075  E.g. the load by a tool on the flange may be specified
3076  Opcode 160, Chapter 3.4.4, Page 3-71
3077  Return 0-OK, 1-Error, -1-not supported
3078  */
3094  static DLLAPI int ER_STDCALL erSET_PAYLOAD_PARAMETER(ER_HND er_hnd, long storage, char *frame_id, long param_number, double param_value);
3095 
3096  /*erSET_CONFIGURATION_CONTROL
3097  Definition: Allows the setting of controller-specific data for the control of robot configurations
3098  Opcode 161, Chapter 3.4.4, Page 3-72
3099  Return 0-OK, 1-Error, -1-not supported
3100  */
3112  static DLLAPI int ER_STDCALL erSET_CONFIGURATION_CONTROL(ER_HND er_hnd, char *param_id, char *param_contents);
3113 
3114  /*erSET_OVERRIDE_SPEED
3115  Definition: Sets correction values for scaling the programmed speed during program execution
3116  Opcode 139, Chapter 3.4.5, Page 3-82
3117  Return 0-OK, 1-Error, -1-not supported
3118  */
3132  static DLLAPI int ER_STDCALL erSET_OVERRIDE_SPEED(ER_HND er_hnd, double correction_value, long correction_type);
3133 
3134  /*erSET_OVERRIDE_ACCELERATION
3135  Definition: Sets correction values for scaling the robot acceleration
3136  Opcode 155, Chapter 3.4.5, Page 3-83
3137  Return 0-OK, 1-Error, -1-not supported
3138  */
3155  static DLLAPI int ER_STDCALL erSET_OVERRIDE_ACCELERATION(ER_HND er_hnd, double correction_value, long accel_type, long correction_type);
3156 
3157  /*erSET_OVERRIDE_SPEED_EX
3158  Definition: Sets override for scaling the programmed speed during program execution
3159  Return 0-OK, 1-Error, -1-not supported
3160  */
3174  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);
3175 
3176  /*erSET_OVERRIDE_ACCELERATION_EX
3177  Definition: Sets override for scaling the programmed acceleration during program execution
3178  Return 0-OK, 1-Error, -1-not supported
3179  */
3193  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);
3194 };
3195 
3197 // class ERK_CAPI_MOP_PATH
3198 //
3204 {
3205 public:
3206 
3207  /* erSetAutoAccel
3208  Enables automatic calculation of acceleration
3209  depending on programmed speed
3210  ON = 7 – Calculation for PTP, POS and ORI
3211  POS = 1 – Calculation for motions for Position
3212  ORI = 2 – Calculation for motions for Orientation
3213  AX = 4 – Calculation for PTP motions
3214  OFF = 0 – Calculation deactivated
3215  */
3232  static DLLAPI int ER_STDCALL erSetAutoAccel(ER_HND er_hnd,long autoaccel);
3233 
3234  /* erGetAutoAccel
3235  Get status for automatic calculation of acceleration
3236  depending on programmed speed
3237  ON = 7 – Calculation for PTP, POS and ORI
3238  POS = 1 – Calculation for motions for Position
3239  ORI = 2 – Calculation for motions for Orientation
3240  AX = 4 – Calculation for PTP motions
3241  OFF = 0 – Calculation deactivated
3242  */
3259  static DLLAPI int ER_STDCALL erGetAutoAccel(ER_HND er_hnd,long *autoaccel);
3260 
3261  /* erSetAccSet
3262  Set lagging of accelerations.
3263  The arguments Acc and Ramp are given in percentage values in the range 20% to 100%
3264  Acc: Acceleration and Deceleration as percentage value of normal values
3265  Ramp: Change of Acceleration and Deceleration as percentage value of normal values
3266  */
3278  static DLLAPI int ER_STDCALL erSetAccSet(ER_HND er_hnd,double acc,double ramp);
3279 
3280  /* erGetAccSet
3281  Get current lagging of accelerations.
3282  The arguments Acc and Ramp are given in percentage values in the range 20% to 100%
3283  Acc: Acceleration and Deceleration as percentage value of normal values
3284  Ramp: Change of Acceleration and Deceleration as percentage value of normal values
3285  */
3297  static DLLAPI int ER_STDCALL erGetAccSet(ER_HND er_hnd,double *acc,double *ramp);
3298 
3299  /* erSET_INTERPOLATION_TIME
3300  sets the interpolation time in [ms]
3301  Opcode 119, Chapter 3.4.3, Page 3-56
3302  Return 0-OK, 1-Error
3303  */
3313  static DLLAPI int ER_STDCALL erSET_INTERPOLATION_TIME(ER_HND er_hnd, double InterpolationTime);
3314 
3315  /*erSELECT_ORIENTATION_INTERPOLATION_MODE
3316  NEW_041112
3317  */
3328  static DLLAPI int ER_STDCALL erSELECT_ORIENTATION_INTERPOLATION_MODE(ER_HND er_hnd, long interpolation_mode, long ori_const);
3329 
3330  /*erSELECT_CIRCULAR_ORIENTATION_INTERPOLATION_MODE
3331  NEW_070122
3332  Definition:
3333  selects the circular orientation interpolation mode
3334  circ_orientation_interpolation_mode:
3335  0: use Start- and Target Orientation
3336  1: use Start-, Via- and Target Orientation, default
3337  2: use Start-, Via- and Target Orientation, hereby the robot reaches the orientation in Via Point
3338  3: Tangential in Abhängigkeit der Orientierung im StartPunkt
3339  4: Constant, Fix
3340  Return 0-OK, 1-Error
3341  */
3351  static DLLAPI int ER_STDCALL erSELECT_CIRCULAR_ORIENTATION_INTERPOLATION_MODE(ER_HND er_hnd, long circ_orientation_interpolation_mode);
3352 
3353  /*erSELECT_DOMINANT_INTERPOLATION
3354  Definition: Sets the interplation space defining the movement
3355  Opcode 124, Chapter 3.4.4, Page 3-66
3356  Return 0-OK, 1-Error
3357  */
3373  static DLLAPI int ER_STDCALL erSELECT_DOMINANT_INTERPOLATION(ER_HND er_hnd, long dominant_int_type, long dominant_int_param=0);
3374 
3375  /*erSET_JOINT_SPEEDS
3376  Definition:
3377  sets the joint speed expressed as percentage of the maximal joint speed for each specified joint
3378  Opcode 131, Chapter 3.4.5, Page 3-74
3379  */
3393  static DLLAPI int ER_STDCALL erSET_JOINT_SPEEDS(ER_HND er_hnd, long all_joint_flags, long joint_flags, double speed_percent);
3394 
3395  /*erSET_CARTESIAN_POSITION_SPEED
3396  Definition: speed for cartesian motion [m/sec]
3397  Opcode 133, Chapter 3.4.5, Page 3-75
3398  Return 0-OK, 1-Error
3399  */
3407  static DLLAPI int ER_STDCALL erSET_CARTESIAN_POSITION_SPEED(ER_HND er_hnd, double speed_value);
3408 
3409  /*erSET_CARTESIAN_ORIENTATION_SPEED
3410  Definition: sets speed for the orientation during cartesian motion [rad/sec]
3411  Opcode 134, Chapter 3.4.5, Page 3-76
3412  Return 0-OK, 1-Error
3413  */
3423  static DLLAPI int ER_STDCALL erSET_CARTESIAN_ORIENTATION_SPEED(ER_HND er_hnd, long rotation_no, double speed_ori_value);
3424 
3425  /*erSET_JOINT_ACCELERATIONS
3426  sets the joint accelerations expressed as percentage of the maximal joint acceleration for each specified joint
3427  Opcode 135, Chapter 3.4.5, Page 3-77
3428  Return 0-OK, 1-Error
3429  */
3446  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);
3447 
3448  /*erSET_CARTESIAN_POSITION_ACCELERATIONS
3449  Definition: sets acceleration for cartesian motion [m/sec^2]
3450  Opcode 137, Chapter 3.4.5, Page 3-78
3451  accel_type
3452  1: // accel
3453  2: // decel
3454  3: // accel + decel
3455  */
3466  static DLLAPI int ER_STDCALL erSET_CARTESIAN_POSITION_ACCELERATION(ER_HND er_hnd, double accel_value, long accel_type);
3467 
3468  /*erSET_CARTESIAN_ORIENTATION_ACCELERATION
3469  Definition: sets the acceleration for the orientation during cartesian motion [rad/sec^2]
3470  Opcode 138, Chapter 3.4.5, Page 3-79
3471  Return 0-OK, 1-Error
3472  */
3485  static DLLAPI int ER_STDCALL erSET_CARTESIAN_ORIENTATION_ACCELERATION(ER_HND er_hnd, long rotation_no, double accel_ori_value, long accel_type);
3486 
3487  /*erGET_CARTESIAN_POSITION_ACCELERATIONS
3488  Definition: gets acceleration for cartesian motion [m/sec^2]
3489  accel_type
3490  1: // accel
3491  2: // decel
3492  Return 0-OK, 1-Error
3493  */
3503  static DLLAPI int ER_STDCALL erGET_CARTESIAN_POSITION_ACCELERATION(ER_HND er_hnd, double *accel_value, long accel_type);
3504 
3505  /*erGET_CARTESIAN_ORIENTATION_ACCELERATION
3506  Definition: Gets the acceleration for the orientation during cartesian motion [rad/sec^2]
3507  accel_type
3508  1: // accel
3509  2: // decel
3510  Return 0-OK, 1-Error
3511  */
3523  static DLLAPI int ER_STDCALL erGET_CARTESIAN_ORIENTATION_ACCELERATION(ER_HND er_hnd, long rotation_no, double *accel_ori_value, long accel_type);
3524 
3525  /*erSET_JOINT_JERKS
3526  Definition: Sets the joint jerk expressed as a percentage of the maximal joint jerk for each specified joint.
3527  Opcode 162, Chapter 3.4.5, Page 3-80
3528  Return 0-OK, 1-Error, -1-not supported
3529  */
3546  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);
3547 
3548  /*erSET_MOTION_TIME
3549  Definition: Specifies the motion time for the next motion
3550  Opcode 156, Chapter 3.4.5, Page 3-81
3551  Return 0-OK, 1-Error, -1-not supported
3552  */
3561  static DLLAPI int ER_STDCALL erSET_MOTION_TIME(ER_HND er_hnd, double time_value);
3562 
3563  /*erSELECT_FLYBY_MODE
3564  */
3575  static DLLAPI int ER_STDCALL erSELECT_FLYBY_MODE(ER_HND er_hnd, long flyby_on);
3576 
3577  /*erSET_FLYBY_CRITERIA_PARAMETER
3578  Definition: Sets the value of a flyby parameter
3579  Opcode 141, Chapter 3.4.6, Page 3-86
3580  Return 0-OK, 1-Error, -1- not supported
3581  */
3593  static DLLAPI int ER_STDCALL erSET_FLYBY_CRITERIA_PARAMETER(ER_HND er_hnd, long param_number, long joint_nr, double param_value);
3594 
3595  /*erSELECT_FLYBY_CRITERIA
3596  Definition: Selects a flyby criterion (parameter)
3597  Opcode 142, Chapter 3.4.6, Page 3-87
3598  Return 0-OK, 1-Error, -1- not supported
3599  */
3609  static DLLAPI int ER_STDCALL erSELECT_FLYBY_CRITERIA(ER_HND er_hnd, long param_number);
3610 
3611  /*erCANCEL_FLYBY_CRITERIA
3612  Definition: Cancels (unselects) a fly-by criterion
3613  Opcode 143, Chapter 3.4.6, Page 3-88
3614  Return 0-OK, 1-Error, -1- not supported
3615  */
3625  static DLLAPI int ER_STDCALL erCANCEL_FLYBY_CRITERIA(ER_HND er_hnd, long param_number);
3626 
3627  /*erSELECT_POINT_ACCURACY
3628  Definition: Selects a criterion for when a target is reached
3629  Opcode 144, Chapter 3.4.6, Page 3-89
3630  Return 0-OK, 1-Error, -1- not supported
3631  */
3641  static DLLAPI int ER_STDCALL erSELECT_POINT_ACCURACY(ER_HND er_hnd, long accuracy_type);
3642 
3643  /*erSET_POINT_ACCURACY_PARAMETER
3644  Definition: Sets the value of a parameter determining point accuracy
3645  Opcode 145, Chapter 3.4.6, Page 3-90
3646  Return 0-OK, 1-Error, -1- not supported
3647  */
3658  static DLLAPI int ER_STDCALL erSET_POINT_ACCURACY_PARAMETER(ER_HND er_hnd, long accuracy_type, double accuracy_value );
3659 };
3660 
3662 // class ERK_CAPI_MOP_PREP
3663 //
3668 {
3669 public:
3670  /* erSET_NEXT_TARGET
3671  sends the next target position. This may include intermediate position, radius, angle for circular motion
3672  Opcode 117, Chapter 3.4.3, Page 3-52
3673  Return
3674  1 - need more data, nothing to do
3675  0 - OK, next step is calculated successful
3676  -17 - specified motion type is not supported
3677  -34 - Error in matrix. Incomplete matrix
3678  -35 - Cartesian position expected
3679  -36 - Joint position expected
3680  -43 - Initial position not set
3681  -51 - no solution is found. One joint is out of range
3682  -52 - Cartesian position is out of work range
3683  -59 - specified position is singular
3684  -68 - fatal error, stopped calculating
3685  -71 - Position not stored, target buffer is full
3686  -78 - The specified position is not acceptable
3687  -79 - Not ready to receive targets
3688  */
3715  static DLLAPI int ER_STDCALL erSET_NEXT_TARGET(ER_HND er_hnd, NEXT_TARGET_DATA *p_next_target_data);
3716 
3717  /* erSET_NEXT_TARGET_ADVANCE
3718  Definition: Sends about next target data
3719  Return 0-OK, 1-Error
3720  */
3731  static DLLAPI int ER_STDCALL erSET_NEXT_TARGET_ADVANCE(ER_HND er_hnd, NEXT_TARGET_DATA_ADVANCE *p_next_target_data_advance);
3732 
3733  /*erSTOP_MOTION
3734  Definition: Stops the on-going motion toward the target
3735  Opcode 151, Chapter 3.4.8, Page 3-101
3736  Return 0-OK, 1-Error
3737  */
3749  static DLLAPI int ER_STDCALL erSTOP_MOTION(ER_HND er_hnd);
3750 
3751  /*erCONTINUE_MOTION
3752  Definition: Continues a motion that was stopped with the erSTOP_MOTION() function
3753  Opcode 152, Chapter 3.4.8, Page 3-102
3754  Return 0-OK, 1-Error
3755  */
3766  static DLLAPI int ER_STDCALL erCONTINUE_MOTION(ER_HND er_hnd);
3767 
3768  /*erCANCEL_MOTION
3769  Definition: Cancel a motion that was stopped with erSTOP_MOTION() function
3770  Opcode 153, Chapter 3.4.8, Page 3-103
3771  Return 0-OK, 1-Error
3772  */
3783  static DLLAPI int ER_STDCALL erCANCEL_MOTION(ER_HND er_hnd);
3784 };
3785 
3787 // class ERK_CAPI_MOP_EXEC
3788 //
3793 {
3794 public:
3795  /* erGET_NEXT_STEP
3796  returns the next interpolated position step, the
3797  elapsed time and supplementary information like events, joint limits and messages
3798  Opcode 118, Chapter 3.4.3, Page 3-54
3799  Return
3800  2 - final step, target reached or speed is zero
3801  1 - need more data, nothing to do
3802  0 - OK, next step is calculated successful
3803  -13 - the specified output format is not supported
3804  -17 - the specified motion type is not supported
3805  -25 - the motion is not possible in the specified time
3806  -42 - no target set
3807  -51 - no solution is found. One joint is out of range
3808  -52 - Cartesian position is out of work range
3809  -68 - fatal error, stopped calculating
3810  -76 - incomplete or inconsistent motion specification, can't move
3811  -1053 - Cartesian position is out of boudary work range
3812  -1059 - Cartesian position is singular
3813  */
3845  static DLLAPI int ER_STDCALL erGET_NEXT_STEP(ER_HND er_hnd, long output_format, NEXT_STEP_DATA *p_next_step_data, double time);
3846 
3856  static DLLAPI int ER_STDCALL erGetCurrentStepData(ER_HND er_hnd, CURRENT_STEP_DATA *p_current_step_data);
3857 
3858  /*erSET_OVERRIDE_POSITION
3859  Definition: Sets a correction offset which will be added to the path during program execution
3860  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.
3861  Opcode 129, Chapter 3.4.4, Page 3-69
3862  Return 0-OK, 1-Error, -1- not supported
3863  */
3873  static DLLAPI int ER_STDCALL erSET_OVERRIDE_POSITION(ER_HND er_hnd, DFRAME *PosOffset);
3874 
3875  /*erGET_CURRENT_TARGETID
3876  Definition: Returns the TargetID of the motion in execution
3877  Opcode 163, Chapter 3.4.6, Page 3-91
3878  Return 0-OK, 1-Error
3879  */
3888 };
3889 
3890 
3891 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_TOOLPATH
3893 // class ERK_CAPI_TOOLPATH
3894 //
3899 {
3900 public:
3904 
3908 
3912 
3916 
3920 
3924 
3928 
3932 
3936 
3940 
3944 
3948 
3952 
3956 
3960 
3961 public:
3987  static DLLAPI int ER_STDCALL erInitToolPath (ER_HND er_hnd, ER_TOOLPATH_HND *er_tpth_hnd);
3988 
3994  static DLLAPI int ER_STDCALL erUnloadToolPath (ER_TOOLPATH_HND *er_tpth_hnd);
3995 
4006  static DLLAPI int ER_STDCALL erInsertToolPath (ER_HND er_hnd, ER_TOOLPATH_HND *er_tpth_hnd, ER_TOOLPATH_HND er_tpth_hnd_ref);
4007 
4015  static DLLAPI int ER_STDCALL erSwapToolPath (ER_TOOLPATH_HND er_tpth_hnd1, ER_TOOLPATH_HND er_tpth_hnd2);
4016 
4023 
4028  static DLLAPI char* ER_STDCALL erToolPathName (ER_TOOLPATH_HND er_tpth_hnd); // Name ToolPath
4029 
4036  static DLLAPI long ER_STDCALL erToolPathEnable (ER_TOOLPATH_HND er_tpth_hnd, long enable); // 0-Disable, 1-Enable, 2-Status
4037 
4043  static DLLAPI ER_HND ER_STDCALL erToolPathGetRobotHandle (ER_TOOLPATH_HND er_tpth_hnd); // Get Robot Handle belonging to tool path handle
4049  static DLLAPI ER_HND ER_STDCALL erToolPathGetTrackMotionHandle (ER_TOOLPATH_HND er_tpth_hnd); // Get TrackMotion Handle belonging to tool path handle
4055  static DLLAPI ER_HND ER_STDCALL erToolPathGetPositionerHandle (ER_TOOLPATH_HND er_tpth_hnd); // Get Positioner Handle belonging to tool path handle
4061  static DLLAPI ER_HND ER_STDCALL erToolPathGetConveyorHandle (ER_TOOLPATH_HND er_tpth_hnd); // Get Conveyor Handle belonging to tool path handle
4062 
4071  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
4072 
4081  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
4082 
4091  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
4092 
4097  static DLLAPI char* ER_STDCALL erToolPathLogFileName (ER_TOOLPATH_HND er_tpth_hnd); // Log File Name ToolPath
4102  static DLLAPI char* ER_STDCALL erToolPathPrgFileName (ER_TOOLPATH_HND er_tpth_hnd); // Prg File Name ToolPath
4103 
4114 
4122  static DLLAPI long ER_STDCALL CpyEventsTemplate(ER_TOOLPATH_HND er_tpth_hnd, ER_TARGET_EVENTS_HND hnd); // Copy target events data to template
4129  static DLLAPI ER_TARGET_EVENTS_HND ER_STDCALL GetEventsTemplateHnd(ER_TOOLPATH_HND er_tpth_hnd); // Get handle to internal events template data
4130 
4138  static DLLAPI long ER_STDCALL CpyMotionAttributesTemplate (ER_TOOLPATH_HND er_tpth_hnd, ER_TARGET_ATTRIBUTES_HND hnd); // Copy target attributes data to template
4145  static DLLAPI ER_TARGET_ATTRIBUTES_HND ER_STDCALL GetMotionAttributesTemplateHnd (ER_TOOLPATH_HND er_tpth_hnd); // Get handle to internal attributes template data
4146 
4162 
4178 
4194 
4210 
4219 
4227 
4228 
4235  static DLLAPI long ER_STDCALL erToolPathReset (ER_TOOLPATH_HND er_tpth_hnd); // Reset all tool path target locations
4244  static DLLAPI int ER_STDCALL erToolPathResetInitRobot (ER_TOOLPATH_HND er_tpth_hnd,double *q_start=NULL);
4253  static DLLAPI int ER_STDCALL erToolPathResetInitTrackMotion (ER_TOOLPATH_HND er_tpth_hnd,double *q_start=NULL);
4262  static DLLAPI int ER_STDCALL erToolPathResetInitPositioner (ER_TOOLPATH_HND er_tpth_hnd,double *q_start=NULL);
4271  static DLLAPI int ER_STDCALL erToolPathResetInitConveyor (ER_TOOLPATH_HND er_tpth_hnd,double *q_start=NULL);
4272 
4273 
4282  static DLLAPI int ER_STDCALL erToolPathSetInitPos (ER_TOOLPATH_HND er_tpth_hnd,double InterpolationTime=0);
4283 
4336  static DLLAPI int ER_STDCALL erGET_NEXT_TOOLPATH_STEP_INIT(ER_TOOLPATH_HND er_tpth_hnd, long cntrl);
4337 
4440  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);
4441 
4448 
4457 };
4458 
4459 
4464 {
4465 public:
4466  // Target Locations
4475  static DLLAPI long ER_STDCALL erTargetLocationReset (ER_TARGET_LOCATION_HND er_tarloc_hnd); // Reset target location
4476 
4486  static DLLAPI int ER_STDCALL erAddTargetLocation (ER_TOOLPATH_HND er_tpth_hnd,ER_TARGET_LOCATION_HND *er_tarloc_hnd);
4487 
4500  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);
4501 
4509  static DLLAPI int ER_STDCALL erUnloadTargetLocation (ER_TARGET_LOCATION_HND *er_tarloc_hnd);
4510 
4520  static DLLAPI int ER_STDCALL erSwapTargetLocation (ER_TARGET_LOCATION_HND er_tarloc_hnd1, ER_TARGET_LOCATION_HND er_tarloc_hnd2);
4521 
4528 
4534  static DLLAPI char* ER_STDCALL erGetTargetLocationName (ER_TARGET_LOCATION_HND er_tarloc_hnd);
4535 
4542 
4548 
4553  static DLLAPI ER_HND ER_STDCALL erhGetTargetLocationER_HND (ER_TARGET_LOCATION_HND er_tarloc_hnd); // Device Handle belonging to target location handle
4554 
4561 
4568 
4575 
4582 
4595  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);
4596 
4612  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);
4628  static DLLAPI long ER_STDCALL erSetTargetLocation_Move_Joint_Frame(ER_TARGET_LOCATION_HND er_tarloc_hnd, DFRAME *CartPosFrame, long configuration = 0, long ptp_target_calculation_mode = ER_PTP_TARGET_CALC_MODE_UNDEF, double speed_percent = 0, double override_speed = 0, DFRAME *ToolFrame = 0, DFRAME *BaseFrame = 0);
4629 
4642  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);
4658  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);
4674  static DLLAPI long ER_STDCALL erSetTargetLocation_Move_Slew_Frame(ER_TARGET_LOCATION_HND er_tarloc_hnd, DFRAME *CartPosFrame, long configuration = 0, long ptp_target_calculation_mode = ER_PTP_TARGET_CALC_MODE_UNDEF, double speed_percent = 0, double override_speed = 0, DFRAME *ToolFrame = 0, DFRAME *BaseFrame = 0);
4675 
4691  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);
4707  static DLLAPI long ER_STDCALL erSetTargetLocation_Move_LIN_Frame(ER_TARGET_LOCATION_HND er_tarloc_hnd, DFRAME *CartPosFrame, double speed_cp = 0, double speed_ori = 0, double override_speed = 0, long flyby_on = -1, DFRAME *ToolFrame = 0, DFRAME *BaseFrame = 0);
4708 
4725  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);
4742  static DLLAPI long ER_STDCALL erSetTargetLocation_Move_CIRC_Frame(ER_TARGET_LOCATION_HND er_tarloc_hnd, DFRAME *CartPosFrameVia, DFRAME *CartPosFrame, double speed_cp = 0, double speed_ori = 0, double override_speed = 0, long flyby_on = -1, DFRAME *ToolFrame = 0, DFRAME *BaseFrame = 0);
4743  //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);
4744  //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);
4745 };
4746 
4751 {
4752 public:
4753  // Header Data
4766 
4773 
4779  static DLLAPI char* ER_STDCALL erGetTargetLocationName (ER_TARGET_LOCATION_HND er_tarloc_hnd);
4780 
4787 
4798  static DLLAPI long ER_STDCALL erTargetLocationValid (ER_TARGET_LOCATION_HND er_tarloc_hnd, long valid);
4799 };
4800 
4805 {
4806 public:
4807  // Instructions, individual information text
4817 
4825 
4833 
4841 
4851  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
4852 };
4853 
4858 {
4859 public:
4860  // Events
4872 
4906  static DLLAPI long ER_STDCALL Set_EventDOUT(ER_TARGET_EVENTS_HND hnd, int idx = 1, long io_value = ER_EVENT_BOOL_UNDEF, char *io_name = 0, long strig_type = ER_EVENT_TRIGGER_OFF, double strig_time = 0, double strig_dist = 0, long ttrig_type = ER_EVENT_TRIGGER_OFF, double ttrig_time = 0, double ttrig_dist = 0);
4923  static DLLAPI long ER_STDCALL Get_EventDOUT(ER_TARGET_EVENTS_HND hnd, int idx, long *io_value, char *io_name, long *strig_type, double *strig_time, double *strig_dist, long *ttrig_type, double *ttrig_time, double *ttrig_dist);
4924 
4955  static DLLAPI long ER_STDCALL Set_EventDIN(ER_TARGET_EVENTS_HND hnd, int idx = 1, long io_value = ER_EVENT_BOOL_UNDEF, char *io_name = 0, long leadcond_type = ER_EVENT_CONDITION_UNDEF, double leadcond_value = 0, long lagcond_type = ER_EVENT_CONDITION_UNDEF, double lagcond_value = 0);
4956 };
4957 
4958 
4963 {
4964 public:
4965  // Auxiliary Motion Attributes
4972 };
4973 
4978 {
4979 public:
4980  // Motion Attributes
4991 
4998  static DLLAPI long *ER_STDCALL inq_enabled (ER_TARGET_ATTRIBUTES_HND hnd); // enables/disables this target
4999 
5005  static DLLAPI TErTargetID *ER_STDCALL inq_target_id (ER_TARGET_ATTRIBUTES_HND hnd); // unique target ID, NEXT_TARGET_DATA.TargetID
5006 
5014  static DLLAPI double *ER_STDCALL inq_WobjCartPosVec(ER_TARGET_ATTRIBUTES_HND hnd); // WorkObject valid for all cartesian targets CartPosVec, CartPosVecVia
5023  static DLLAPI DFRAME *ER_STDCALL Get_WobjCartPosFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *WobjCartPosFrame); // WorkObject valid for all cartesian targets CartPosVec, CartPosVecVia
5032  static DLLAPI DFRAME *ER_STDCALL Set_WobjCartPosFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *WobjCartPosFrame); // WorkObject valid for all cartesian targets CartPosVec, CartPosVecVia
5033 
5040  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()
5041 
5042 
5051  static DLLAPI double *ER_STDCALL inq_BaseVec (ER_TARGET_ATTRIBUTES_HND hnd); // work object, $BASE, $UFrame has only effect if ::IPO_MODE_BASE, erSetBaseRobotBase()
5061  static DLLAPI DFRAME *ER_STDCALL Get_BaseFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *BaseFrame); // work object, $BASE, $UFrame has only effect if ::IPO_MODE_BASE, erSetBaseRobotBase()
5071  static DLLAPI DFRAME *ER_STDCALL Set_BaseFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *BaseFrame); // work object, $BASE, $UFrame has only effect if ::IPO_MODE_BASE, erSetBaseRobotBase()
5072 
5080  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()
5081 
5089  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()
5090 
5117 
5134 
5135 
5162 
5179 
5180 
5207 
5224 
5232  static DLLAPI double *ER_STDCALL inq_ToolVec (ER_TARGET_ATTRIBUTES_HND hnd); // Tool/TCP data, erSetTool()
5241  static DLLAPI DFRAME *ER_STDCALL Get_ToolFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *ToolFrame); // Tool/TCP data, erSetTool()
5250  static DLLAPI DFRAME *ER_STDCALL Set_ToolFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *ToolFrame); // Tool/TCP data, erSetTool()
5251 
5259  static DLLAPI long *ER_STDCALL inq_ToolIdx (ER_TARGET_ATTRIBUTES_HND hnd); // user defined Idx for Tool/TCP data, erSetTool()
5267  static DLLAPI char *ER_STDCALL inq_ToolName (ER_TARGET_ATTRIBUTES_HND hnd); // user defined Name for Tool/TCP data, erSetTool()
5268 
5276  static DLLAPI double *ER_STDCALL inq_ToolOffsetVec(ER_TARGET_ATTRIBUTES_HND hnd); // Tool/TCP offset data, erSetToolOffset()
5285  static DLLAPI DFRAME *ER_STDCALL Get_ToolOffsetFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *ToolOffsetFrame); // Tool/TCP offset data, erSetToolOffset()
5294  static DLLAPI DFRAME *ER_STDCALL Set_ToolOffsetFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *ToolOffsetFrame); // Tool/TCP offset data, erSetToolOffset()
5302  static DLLAPI long *ER_STDCALL inq_ToolOffsetIdx(ER_TARGET_ATTRIBUTES_HND hnd); // user defined Idx for Tool/TCP offset data, erSetToolOffset()
5310  static DLLAPI char *ER_STDCALL inq_ToolOffsetName(ER_TARGET_ATTRIBUTES_HND hnd); // user defined Name for Tool/TCP offset data, erSetToolOffset()
5311 
5324  static DLLAPI long *ER_STDCALL inq_speed_reduction_enable(ER_TARGET_ATTRIBUTES_HND hnd); // ER_SPEED_REDUCTION_ENABLE , ER_SPEED_REDUCTION_DISABLE, erGetSpeedReductionEnable()
5325 
5343  static DLLAPI long *ER_STDCALL inq_motype (ER_TARGET_ATTRIBUTES_HND hnd); // ER_JOINT , ER_LIN, ER_SLEW, ER_CIRC, erSELECT_MOTION_TYPE()
5344 
5354  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()
5355 
5363  static DLLAPI long *ER_STDCALL inq_advance_motion (ER_TARGET_ATTRIBUTES_HND hnd); // look ahead by 1 is only supported, erSET_ADVANCE_MOTION()
5364 
5372  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()
5373 
5374 
5383  static DLLAPI double *ER_STDCALL inq_acc (ER_TARGET_ATTRIBUTES_HND hnd); // 20-100[%] Set lagging of accelerations deceleration, erSetAccSet()
5384 
5393  static DLLAPI double *ER_STDCALL inq_ramp (ER_TARGET_ATTRIBUTES_HND hnd); // 20-100[%] Set lagging of accelerations deceleration, erSetAccSet()
5394 
5404  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()
5405 
5415  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()
5416 
5426  static DLLAPI double *ER_STDCALL inq_flyby_speed_percent (ER_TARGET_ATTRIBUTES_HND hnd);// if flyby_on enabled: [%], erSET_FLYBY_CRITERIA_PARAMETER(), tbd
5427 
5437  static DLLAPI double *ER_STDCALL inq_flyby_dist (ER_TARGET_ATTRIBUTES_HND hnd); // if flyby_on enabled: [m], erSET_FLYBY_CRITERIA_PARAMETER(), tbd
5438 
5454  static DLLAPI long *ER_STDCALL inq_autoaccel (ER_TARGET_ATTRIBUTES_HND hnd); // ER_AUTOACCEL_MODE_OFF, -_POS, -_ORI, -_AX, -_DEF, -_ON, erSetAutoAccel()
5455 
5464  static DLLAPI double *ER_STDCALL inq_LeadWaitTime (ER_TARGET_ATTRIBUTES_HND hnd); // Wait time [s], before move will start, NEXT_TARGET_DATA.LeadWaitTime
5473  static DLLAPI double *ER_STDCALL inq_LagWaitTime (ER_TARGET_ATTRIBUTES_HND hnd); // Wait time [s], after robot reaches its target, NEXT_TARGET_DATA.LagWaitTime
5474 };
5475 
5480 {
5481 public:
5482  // Target data for Joint Move
5502  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()
5503 
5509  static DLLAPI double *ER_STDCALL inq_speed_percent (ER_TARGET_MOVE_JOINT_HND hnd); // joint speed [%], erSET_JOINT_SPEEDS()
5515  static DLLAPI double *ER_STDCALL inq_accel_percent (ER_TARGET_MOVE_JOINT_HND hnd); // joint acceleration [%], erSET_JOINT_ACCELERATIONS()
5525  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
5536  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
5542  static DLLAPI long *ER_STDCALL inq_configuration (ER_TARGET_MOVE_JOINT_HND hnd); // Target manipulator configuration string, NEXT_TARGET_DATA.Configuration
5550  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
5551 
5559  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[]
5560 };
5561 
5566 {
5567 public:
5568  // Target data for CP Move
5587  static DLLAPI long *ER_STDCALL inq_target_type (ER_TARGET_MOVE_CP_HND hnd); // ER_TARGET_TYPE_ABS
5593  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()
5599  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()
5605  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()
5611  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()
5622  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
5632  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
5640  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()
5654  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()
5655 };
5656 
5661 {
5662 public:
5663  // Motion execution data at target
5686  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
5693  static DLLAPI double ER_STDCALL erGetMotionExec_time_stamp (ER_TARGET_MOTION_EXEC_HND hnd); // Time stamp [s] when target location is reached
5698  static DLLAPI double ER_STDCALL erGetMotionExec_trajectory_time (ER_TARGET_MOTION_EXEC_HND hnd); // Trajectory Time [s] for current motion to target
5712  static DLLAPI long ER_STDCALL erGetMotionExec_configuration (ER_TARGET_MOTION_EXEC_HND hnd); // current manipulator configuration at target location, [1..number of robot configurations]
5713 
5719  static DLLAPI double *ER_STDCALL erGetMotionExec_JointPos (ER_TARGET_MOTION_EXEC_HND hnd); // Joint Location at target location
5720 
5726  static DLLAPI double *ER_STDCALL erGetMotionExec_ExtAxValues (ER_TARGET_MOTION_EXEC_HND hnd); // External axis values at target location
5727 };
5728 
5733 {
5734 public:
5735  // External axis data definition for Track/Slider-Motion
5784 
5791  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
5792 
5800  static DLLAPI long *ER_STDCALL inq_sync_type (ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND hnd); // ER_SYNC_OFF, ER_SYNC_ON, erConnectTrackMotionSetSync(), erConnectPositionerSetSync()
5801 
5815  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[]
5816 
5830  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);
5831 };
5836 {
5837 public:
5838  // External axis data definition for Positioner/TurnTable
5905  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
5906 
5914  static DLLAPI long *ER_STDCALL inq_sync_type (ER_TARGET_EXTAX_DEVICE_POSITIONER_HND hnd); // ER_SYNC_OFF, ER_SYNC_ON, erConnectPositionerSetSync()
5928  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[]
5942  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);
5943 };
5944 
5949 {
5950 public:
5969  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
5977  static DLLAPI long *ER_STDCALL inq_sync_type(ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND hnd); // ER_SYNC_OFF, ER_SYNC_ON, erConnectConveyorSetSync()
5991  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[]
6005  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);
6006 
6026  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);
6027 
6038 };
6039 
6044 {
6045 public:
6056  static DLLAPI long ER_STDCALL erTPth_TBox_Fct(int FctIdx, int FctSubIdx, ER_TOOLPATH_HND er_tpth_hnd, int constraint_param, char *svalues=NULL);
6057 };
6058 
6063 {
6064 public:
6104  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);
6105 };
6106 
6111 {
6112 public:
6118  static DLLAPI int ER_STDCALL erTPth_Fct(ER_TOOLPATH_HND er_tpth_hnd);
6119 };
6120 
6121 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_SIM
6123 // class ERK_CAPI_SIM
6124 //
6128 class ERK_CAPI_SIM: public ERK_CAPI
6129 {
6130 public:
6134 };
6135 
6137 // class ERK_CAPI_SIM_COLLISION
6138 //
6143 {
6144 public:
6145  /* Creates a collision handle for one Model and preallocate memory for n_tris triangles
6146  */
6155  static DLLAPI int ER_STDCALL erColl_BeginModel(ER_COLLISION_HND *er_coll_hnd, long n_tris);
6156 
6157  /* Adds a triangle to a Model
6158  */
6170  static DLLAPI int ER_STDCALL erColl_AddTri(ER_COLLISION_HND er_coll_hnd, double *p1, double *p2, double *p3, long id);
6171 
6172  /* brief Stop building a Model
6173  */
6180  static DLLAPI int ER_STDCALL erColl_EndModel(ER_COLLISION_HND er_coll_hnd);
6181 
6182  /* Perform the collision check of two Models
6183  See also erColl_ChkCollision_res() to get the collision results immediately
6184  */
6338  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);
6339 
6340  /* Perform the collision check of two Models
6341  Collision results returned immediately compared to erColl_ChkCollision()
6342  */
6686  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);
6687 
6719  static DLLAPI int ER_STDCALL erColl_ChkCollision_res_free(long query_type, void *pres);
6720 
6721  /* Unload a Model. Free all allocated memory
6722  */
6729  static DLLAPI int ER_STDCALL erColl_UnloadModel(ER_COLLISION_HND *er_coll_hnd);
6730 
6731  /* Get Collision result for query ::ER_COLL_QUERY_TYPE_COLLIDE
6732  */
6741 
6742  /* Get Collision result for query ::ER_COLL_QUERY_TYPE_DISTANCE
6743  */
6752 
6753  /* Get Collision result for query ::ER_COLL_QUERY_TYPE_TOLERANCE
6754  */
6763 };
6764 
6766 // class ERK_CAPI_AUTOPATH
6767 //
6772 {
6773 public:
6777  static DLLAPI char* ER_STDCALL AutoPathVer(void);
6778 
6786 
6862 
6870 
6878 
6945  static DLLAPI int ER_STDCALL AutoPath_SetCallback_CheckConstraints(BOOL (*ptr_CheckConstraints)(int,void*));
6946 
6954  static DLLAPI int ER_STDCALL SetPoseStart(double *pose_start);
6955 
6963  static DLLAPI int ER_STDCALL SetPoseEnd(double *pose_end);
6964 
6971  static DLLAPI int ER_STDCALL FindPath(void);
6972 
6976  static DLLAPI double* ER_STDCALL GetConfigurationPose(void);
6977 
6981  static DLLAPI double* ER_STDCALL GetStartPose(void);
6982 
6986  static DLLAPI double* ER_STDCALL GetEndPose(void);
6987 
6991  static DLLAPI double* ER_STDCALL GetAxisConstraintsMin(void);
6992 
6996  static DLLAPI double* ER_STDCALL GetAxisConstraintsMax(void);
6997 
7003  static DLLAPI int ER_STDCALL AbortPlanning(void);
7004 
7011  static DLLAPI int ER_STDCALL GetPlanningStatus(void);
7012 
7017  static DLLAPI int ER_STDCALL GetNumberOfWayPoints(void);
7018 
7022  static DLLAPI int ER_STDCALL GetWayPointDof(void);
7023 
7028  static DLLAPI double* ER_STDCALL GetWayPoint(int idx);
7033  static DLLAPI int ER_STDCALL ClearAllWayPoints(void);
7034 
7040  static DLLAPI int ER_STDCALL SetAccuracy(UINT accuracy);
7041 
7051  static DLLAPI int ER_STDCALL SetAxisConstraints(int axisBit=AUTOPATH_SDK_AXIS_BIT_DOF6, int setting=0, double qConstraintMin=0, double qConstraintMax=0);
7052 
7059  static DLLAPI int ER_STDCALL SetAxisPriority(int axisBit, int priority);
7064  static DLLAPI int ER_STDCALL SetAxisEnable(int axisBit, int enable);
7065 
7082  static DLLAPI int ER_STDCALL SetParameter(int ap_option, int ap_value);
7098  static DLLAPI int ER_STDCALL GetParameter(int ap_option);
7099 
7133  static DLLAPI int ER_STDCALL GetResults(int ap_result);
7134 };
7135 
7136 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_TARGETS
7138 // class ERK_CAPI_TARGETS
7139 //
7144 {
7145 public:
7146 };
7147 
7148 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_GEO
7150 // class ERK_CAPI_GEO
7151 //
7155 class ERK_CAPI_GEO : public ERK_CAPI
7156 {
7157 public:
7161 
7162 public:
7163  /* erUpdateGeo
7164  Update all Models for each robot joint
7165  */
7174  static DLLAPI int ER_STDCALL erUpdateGeo(ER_HND er_hnd);
7175 };
7176 
7178 // class ERK_CAPI_GEO_MNGR
7179 //
7184 {
7185 public:
7186  //~~~~~~~~~~~~~~~~~~~~~
7187  // Administration
7188  //~~~~~~~~~~~~~~~~~~~~~
7192  static DLLAPI int ER_STDCALL erGeoMngr_GetVersion();
7193 
7199  static DLLAPI TErGeoHandle ER_STDCALL erGeoMngr_LoadGeometry(ER_HND er_hnd, LOAD_GEOMETRY_DATA *p_load_geometry_data);
7200 
7207  static DLLAPI int ER_STDCALL erGeoMngr_FreeGeometry(ER_HND er_hnd, TErGeoHandle GeoHandle);
7208 
7209  //~~~~~~~~~~~~~~~~~~~~~
7210  // Access to geometries
7211  //~~~~~~~~~~~~~~~~~~~~~
7218 
7227  static DLLAPI int ER_STDCALL erGeoMngr_GetGeometry(ER_HND er_hnd, int geometryIndex, LOAD_GEOMETRY_DATA *p_load_geometry_data, DFRAME* kinMat);
7228 
7325  static DLLAPI int ER_STDCALL erGeoMngr_GetNumAxisGeometries(ER_HND er_hnd, int axis_nr);
7326 
7327  // fills structure pointed to by p_load_geometry_data with geometry loading data
7328 
7338  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);
7339 
7370  static DLLAPI const double* ER_STDCALL erGeoMngr_GetGeometryBBox(TErGeoHandle geometryHandle);
7371 
7372  // Achsen-BBox über alle Geometry-BBoxes einer Achse
7373  static DLLAPI const double* ER_STDCALL erGeoMngr_GetAxisBBox(ER_HND er_hnd, int axis_id);
7374  // Device-BBox
7375  static DLLAPI const double* ER_STDCALL erGeoMngr_GetDeviceBBox(ER_HND er_hnd);
7376  static DLLAPI int ER_STDCALL erGeoMngr_GetGeometryNumObjs(TErGeoHandle geometryHandle);
7377 
7378  static DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumPoints(TErGeoHandle geometryHandle, int objidx);
7379  static DLLAPI double* ER_STDCALL erGeoMngr_GetGeometryObjPoint(TErGeoHandle geometryHandle, int objidx, int index);
7380  static DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumPointNormals(TErGeoHandle geometryHandle, int objidx);
7381  static DLLAPI double* ER_STDCALL erGeoMngr_GetGeometryObjPointNormal(TErGeoHandle geometryHandle, int objidx, int index);
7382  static DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumLines(TErGeoHandle geometryHandle, int objidx);
7383  static DLLAPI size_t* ER_STDCALL erGeoMngr_GetGeometryObjLine(TErGeoHandle geometryHandle, int objidx, int index);
7384  static DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumPolygons(TErGeoHandle geometryHandle, int objidx);
7385  static DLLAPI size_t* ER_STDCALL erGeoMngr_GetGeometryObjPolygon(TErGeoHandle geometryHandle, int objidx, int index);
7386 
7387  // ist die Obj-Color intern -2 (USER_COLOR); wird die user color (die Farbe, die in der LOAD_GEOMETRY_DATA-Struktur steht); zurückgegeben
7388  // sonst : konkrete Farbe
7389  static DLLAPI double* ER_STDCALL erGeoMngr_GetGeometryObjColor(TErGeoHandle geometryHandle, int objidx);
7390  // der Farbcode (kann auch -2 (USER_COLOR); sein, damit die Host-Applikation eine eigene UserColor festlegen kann);
7391  static DLLAPI long ER_STDCALL erGeoMngr_GetGeometryObjColorCode(TErGeoHandle geometryHandle, int objidx);
7392 
7393  // Get number of clones >=1
7395  // Get clone handle
7397  //double* ER_STDCALL erGeoMngr_GetGeometryPolygoneNormal(TErGeoHandle geometryHandle, int index);
7398  //double* ER_STDCALL erGeoMngr_GetGeometryPolygoneCenter(TErGeoHandle geometryHandle, int index);
7399  static DLLAPI int ER_STDCALL erGeoMngr_SetGeometryCollisionHandle(TErGeoHandle geometryHandle, ER_COLLISION_HND collisionHandle);
7401  static DLLAPI int ER_STDCALL erGeoMngr_SetGeometryIsCollided(TErGeoHandle geometryHandle, int isCollided);
7402  static DLLAPI int* ER_STDCALL erGeoMngr_GetGeometryIsCollided(TErGeoHandle geometryHandle);
7403  static DLLAPI int ER_STDCALL erGeoMngr_CheckBoundingBoxCollision(DFRAME* T1, const double* bbox1, DFRAME* T2, const double* bbox2, double tolerance);
7404 };
7405 
7406 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_SYS
7408 // class ERK_CAPI_SYS
7409 //
7413 class ERK_CAPI_SYS : public ERK_CAPI
7414 {
7415 public:
7419 
7423 };
7424 
7426 // class ERK_CAPI_SYS_UTILITIES
7427 //
7432 {
7433 public:
7434 };
7435 
7437 // class ERK_CAPI_SYS_MATHEMATICS
7438 //
7443 {
7444 public:
7459  static DLLAPI int ER_STDCALL erMath_FrameToVecIdx(DFRAME *T, double *vec, long rotation_idx=ER_ROT_XYZ);
7460 
7475  static DLLAPI int ER_STDCALL erMath_VecToFrameIdx(double *vec, DFRAME *T, long rotation_idx=ER_ROT_XYZ);
7476 
7491  static DLLAPI int ER_STDCALL erMath_PxyzRxyzToFrame(double x,double y,double z,double Rx,double Ry,double Rz, DFRAME *T);
7492 
7500  static DLLAPI int ER_STDCALL erMath_Frame_Ident(DFRAME *T); // T = Ident
7501 
7512  static DLLAPI int ER_STDCALL erMath_Frame_Trans(DFRAME *T, double x, double y, double z); // set frame position T.p[] = [x,y,z]
7513 
7525  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)
7526 
7537  static DLLAPI int ER_STDCALL erMath_AngleBetween(DFRAME *Ts, DFRAME *Te, double *angle, double *k=NULL);
7538 
7549  static DLLAPI int ER_STDCALL erMath_DistBetween(DFRAME *Ts, DFRAME *Te, double *dist, double *dv=NULL);
7550 
7563  static DLLAPI int ER_STDCALL erMath_CircCenterPoint(double *ps, double *pv, double *pe, DFRAME *pTc, double *radius, double *phi, double *phi_via = NULL);
7564 
7565 
7574  static DLLAPI int ER_STDCALL erMath_invT(DFRAME *To,DFRAME *Ti); // To = inv(Ti)
7575 
7584  static DLLAPI int ER_STDCALL erMath_invR(DFRAME *Ro,DFRAME *Ri); // Ro = inv(Ri) = transpose(Ri) = Ri'
7585 
7595  static DLLAPI int ER_STDCALL erMath_mul_R_R(DFRAME *Ro,DFRAME *Ri1,DFRAME *Ri2); // Ro = Ri1 * Ri2
7596 
7606  static DLLAPI int ER_STDCALL erMath_mul_T_T(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2); // To = Ti1 * Ti2
7607 
7619  static DLLAPI int ER_STDCALL erMath_mul_T_invT (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2); // To = Ti1 * inv(Ti2)
7620 
7632  static DLLAPI int ER_STDCALL erMath_mul_invT_T (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2); // To = inv(Ti1) * Ti2
7633 
7645  static DLLAPI int ER_STDCALL erMath_mul_invT_invT (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2); // To = inv(Ti1) * inv(Ti2)
7646 
7657  static DLLAPI int ER_STDCALL erMath_mul_T_pos (double *po,DFRAME *T,double *pi); // po = T * pi
7658 
7670  static DLLAPI int ER_STDCALL erMath_mul_invT_pos (double *po,DFRAME *T,double *pi); // po = inv(T) * pi
7671 
7681  static DLLAPI int ER_STDCALL erMath_mul_R_pos (double *po,DFRAME *R,double *pi); // po = R * pi
7682 
7694  static DLLAPI int ER_STDCALL erMath_mul_invR_pos (double *po,DFRAME *R,double *pi); // po = R' * pi
7695 
7706  static DLLAPI int ER_STDCALL erMath_mul_T_T_T(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = Ti1 * Ti2 * Ti3
7707 
7720  static DLLAPI int ER_STDCALL erMath_mul_T_T_invT(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = Ti1 * Ti2 * inv(Ti3)
7721 
7734  static DLLAPI int ER_STDCALL erMath_mul_T_invT_T(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = Ti1 * inv(Ti2) * Ti3
7735 
7748  static DLLAPI int ER_STDCALL erMath_mul_T_invT_invT(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = Ti1 * inv(Ti2) * inv(Ti3)
7749 
7762  static DLLAPI int ER_STDCALL erMath_mul_invT_T_T(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = inv(Ti1) * Ti2 * Ti3
7763 
7776  static DLLAPI int ER_STDCALL erMath_mul_invT_T_invT(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = inv(Ti1) * Ti2 * inv(Ti3)
7777 
7790  static DLLAPI int ER_STDCALL erMath_mul_invT_invT_T(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = inv(Ti1) * inv(Ti2) * Ti3
7791 
7804  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)
7805 
7816  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
7829  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]
7842  static DLLAPI DFRAME* ER_STDCALL erMath_SetFramePosOri(DFRAME *To, 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] to a DFRAME
7854  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
7861  static DLLAPI double* ER_STDCALL erMath_CpyVec(double *dst, double *src, int n); // cpy vector of size n
7867  static DLLAPI double* ER_STDCALL erMath_ResetVec(double *dst, int n); // reset vector of size n
7868 };
7869 
7870 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ static
7871 
7873 // static
7875 /* Unload a Model. Free all allocated memory
7876 */
7881 DLLAPI ERK_CAPI *_inq_erk_capi(void); // ERK_CAPI *p = _inq_erk_capi();
7882 
7883 /*
7884 //--------------------------------------------------------------------------------------------------
7885 //
7886 // The usage of below definitions is optional, but recommended for a better support by EASY-ROB
7887 //
7888 //--------------------------------------------------------------------------------------------------
7889 
7890 #include "erk_capi_types.h"
7891 
7892 #ifdef DLLAPI
7893 #undef DLLAPI
7894 #endif
7895 
7896 #define DLLAPI
7897 
7898 #include "erk_capi.h"
7899 #include "erk_capi_definitions.h"
7900 */
7901 
7902 #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:198
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 ER_TARGET_EVENTS_HND ER_STDCALL GetEventsHnd(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Handle for target events data Typical events belonging to a target location are: e....
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:750
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 ...
static DLLAPI DFRAME *ER_STDCALL Set_extTcpOffsetFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *extTcpOffsetFrame)
external Tool/TCP offset data w.r.t. extTcpBase, extTcpWorld, for a target location Transformation fr...
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 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_...
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:3792
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,...
Homogeneous 4x4 transformation matrix, a Frame with 3x3 orthogonal noa-matrix (n = o x a) and 3x1 pos...
Definition: erk_capi_types.h:90
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...
const long ER_EVENT_CONDITION_UNDEF
event condition for binary input is undefined
Definition: erk_capi_types.h:607
unsigned int * ER_TARGET_MOVE_CP_HND
unique Target data for CP Move handle
Definition: erk_capi_types.h:213
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)
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:684
static ERK_CAPI_TOOLPATH_MOVE_CP erk_toolpath_move_cp
Method class to specify a cp motion for target location.
Definition: erk_capi.h:3931
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:153
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....
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:2696
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:5479
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 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 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:850
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:81
Method class to set and get tool path events for target locations.
Definition: erk_capi.h:4857
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 ERK_CAPI_TOOLPATH_EVENTS erk_toolpath_events
Method class to set and get tool path events for target locations.
Definition: erk_capi.h:3915
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....
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....
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"....
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:3919
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....
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,...
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:848
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....
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:3927
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...
static DLLAPI long ER_STDCALL erSetTargetLocation_Move_Slew_Frame(ER_TARGET_LOCATION_HND er_tarloc_hnd, DFRAME *CartPosFrame, long configuration=0, long ptp_target_calculation_mode=ER_PTP_TARGET_CALC_MODE_UNDEF, double speed_percent=0, double override_speed=0, DFRAME *ToolFrame=0, DFRAME *BaseFrame=0)
Move_Slew, not synchronized PTP, motion definition for target location Remarks Use erAddTargetLocati...
static DLLAPI DFRAME *ER_STDCALL Set_extTcpWorldFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *extTcpWorldFrame)
external Tool (TCP) w.r.t. Robot World or flange of positioner, for a target location Transformation ...
const long ER_ROT_IDENT
Rotation Index: Identity, erMath_Frame_Rot()
Definition: erk_capi_types.h:727
static 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_ramp(ER_TARGET_ATTRIBUTES_HND hnd)
Change of acceleration and deceleration as percentage value in the range from 20% to 100% of normal v...
static 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...
Collision results for query ER_COLL_QUERY_TYPE_TOLERANCE, see erColl_GetResults_Tolerance()
Definition: erk_capi_types.h:807
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:141
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.
static DLLAPI long ER_STDCALL Set_EventDOUT(ER_TARGET_EVENTS_HND hnd, int idx=1, long io_value=ER_EVENT_BOOL_UNDEF, char *io_name=0, long strig_type=ER_EVENT_TRIGGER_OFF, double strig_time=0, double strig_dist=0, long ttrig_type=ER_EVENT_TRIGGER_OFF, double ttrig_time=0, double ttrig_dist=0)
Set an event for a boolean output for target location A boolean event for binary outputs is controlle...
Method class to set and get Instructions for target locations.
Definition: erk_capi.h:4804
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(),...
static DLLAPI long ER_STDCALL erSetTargetLocation_Move_LIN_Frame(ER_TARGET_LOCATION_HND er_tarloc_hnd, DFRAME *CartPosFrame, double speed_cp=0, double speed_ori=0, double override_speed=0, long flyby_on=-1, DFRAME *ToolFrame=0, DFRAME *BaseFrame=0)
Move_LIN, continious path motion definition for target location Remarks Use erAddTargetLocation() to...
unsigned int * ER_TARGET_EXTAX_DEVICE_POSITIONER_HND
unique External axis data definition for Positioner/TurnTable handle
Definition: erk_capi_types.h:216
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,...
static ERK_CAPI_MOP_EXEC erk_capi_mop_exec
Method class for motion execution.
Definition: erk_capi.h:2708
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....
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:6110
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:645
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....
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....
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 long ER_STDCALL erSetTargetLocation_Move_Joint_Frame(ER_TARGET_LOCATION_HND er_tarloc_hnd, DFRAME *CartPosFrame, long configuration=0, long ptp_target_calculation_mode=ER_PTP_TARGET_CALC_MODE_UNDEF, double speed_percent=0, double override_speed=0, DFRAME *ToolFrame=0, DFRAME *BaseFrame=0)
Move_Joint, full synchronized PTP, motion definition for target location Remarks Use erAddTargetLoca...
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:4977
static DLLAPI long ER_STDCALL erGetMotionExec_configuration(ER_TARGET_MOTION_EXEC_HND hnd)
Robot configuration, when reaching the target, while interpolation through the complete tool path Rem...
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:4463
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...
static DLLAPI double *ER_STDCALL inq_ToolOffsetVec(ER_TARGET_ATTRIBUTES_HND hnd)
ToolOffset (TCP) for a target location Offset Transformation from TCP see inq_ToolOffsetIdx(),...
unsigned int * ER_TARGET_LOCATION_HND
unique Target location handle, created with erAddTargetLocation()
Definition: erk_capi_types.h:206
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....
static DLLAPI DFRAME *ER_STDCALL Set_WobjCartPosFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *WobjCartPosFrame)
Set WorkObject valid for all cartesian target locations such as CartPosVec, CartPosVecVia Using this ...
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:2691
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 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 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.
static ERK_CAPI_ROB erk_capi_rob
Method class kinematics and transformations.
Definition: erk_capi.h:430
void(ER_STDCALL * TerLogProc)(long LogType, char *LogMessage)
Callback function type definition for Log messages, erSetCallBack_LogProc()
Definition: erk_capi_types.h:629
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 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 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,...
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:6133
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....
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....
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:778
static ERK_CAPI_TOOLPATH_TARGETS erk_toolpath_targets
Method class to create, unload and specify target locations.
Definition: erk_capi.h:3903
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....
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,...
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:215
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.
static ERK_CAPI_ROB_KIN erk_capi_rob_kin
Method class forward-, Inverse kinematics, desired robot joints, tools, position w....
Definition: erk_capi.h:844
Method class for tool path definition.
Definition: erk_capi.h:3898
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:2904
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...
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,...
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...
unsigned int * ER_TARGET_EVENTS_HND
unique Events handle
Definition: erk_capi_types.h:209
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 through the complet...
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:298
static DLLAPI int ER_STDCALL erKernelAddLicenseFile(char *license_file)
Set an additional location and name of license file. Call this function before initializing the Kerne...
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,...
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,...
Definition: erk_capi.h:2700
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:675
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:7160
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:211
static ERK_CAPI_ADMIN erk_capi_admin
Method class to administrate this Robotics Simulation Kernel.
Definition: erk_capi.h:129
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:402
#define DLLAPI
Definition: erk_capi_types.h:80
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:3943
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....
Definition: erk_capi.h:862
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,...
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.
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:636
Method class API for forward- and Inverse kinematics.
Definition: erk_capi.h:1736
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:6142
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:6771
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,...
Definition: erk_capi.h:7422
static DLLAPI char *ER_STDCALL erToolPathName(ER_TOOLPATH_HND er_tpth_hnd)
Name of 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 DFRAME *ER_STDCALL Get_WobjCartPosFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *WobjCartPosFrame)
Get WorkObject valid for all cartesian target locations such as CartPosVec, CartPosVecVia Using this ...
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,...
const long ER_EVENT_TRIGGER_OFF
Signal Trigger to control binary output. OFF will not set output event.
Definition: erk_capi_types.h:603
static DLLAPI int ER_STDCALL erUpdateKin(ER_HND er_hnd)
Updates the complete kinematics. This function calculates the location of all axis coorsys,...
const long ER_EVENT_BOOL_UNDEF
Event status for binary input/output events is undefined.
Definition: erk_capi_types.h:599
unsigned int TErGeoHandle
unique Geometry handle used for callback functions TerLoadGeometryProc()
Definition: erk_capi_types.h:200
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:5835
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 DFRAME *ER_STDCALL Get_extTcpOffsetFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *extTcpOffsetFrame)
external Tool/TCP offset data w.r.t. extTcpBase, extTcpWorld, for a target location Transformation fr...
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 int ER_STDCALL erMath_CircCenterPoint(double *ps, double *pv, double *pe, DFRAME *pTc, double *radius, double *phi, double *phi_via=NULL)
Circle calculation from three points ps over pv to pe. Calculates center of circle,...
static 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 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 DLLAPI long *ER_STDCALL inq_speed_reduction_enable(ER_TARGET_ATTRIBUTES_HND hnd)
Speed reduction enable for a target location The speed reduction enable can be one of the following v...
static ERK_CAPI_TOOLPATH_TOOLBOX erk_toolpath_toolbox
Method class for miscellaneous tool path calculations.
Definition: erk_capi.h:3951
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:6062
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....
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 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 ERK_CAPI_TOOLPATH erk_capi_toolpath
Method class for tool path definition.
Definition: erk_capi.h:438
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,...
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:425
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:3923
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:755
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:5660
static DLLAPI int ER_STDCALL erGetConfig(ER_HND er_hnd, long *config)
Get current robot configuration Gets current robot configuration. See also erSetConfig()....
static DLLAPI int ER_STDCALL erColl_EndModel(ER_COLLISION_HND er_coll_hnd)
Stop building a Model.
static DLLAPI DFRAME *ER_STDCALL Get_BaseFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *BaseFrame)
Program shift Base for a target location Base '$BASE, $UFrame' has only if IPO_MODE_BASE is set and e...
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....
const long ER_SYNC_UNDEF
device synchronization not defined
Definition: erk_capi_types.h:358
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:4750
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:2081
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:7155
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:201
static DLLAPI int ER_STDCALL erSetExtTcpWorld(ER_HND er_hnd, DFRAME *iText)
Set location of external TCP w.r.t inertia (world).
static 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...
brief Method class to specify external axis data for a track/slider-motion for target location
Definition: erk_capi.h:5732
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:375
unsigned int * ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND
unique External device definition for Conveyor
Definition: erk_capi_types.h:217
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:123
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:5565
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:3947
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....
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 ER_TARGET_EVENTS_HND ER_STDCALL GetEventsTemplateHnd(ER_TOOLPATH_HND er_tpth_hnd)
Get events template data from tool path. Get the events template data belonging to the tool path er_t...
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 DFRAME *ER_STDCALL Get_extTcpBaseFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *extTcpBaseFrame)
external Tool (TCP) w.r.t. Robot Base or flange of positioner, for a target location Transformation f...
static DLLAPI DFRAME *ER_STDCALL erMath_SetFramePosOri(DFRAME *To, double x, double y, double z, double Rx, double Ry, double Rz)
Cpy and convert a target location (position+orientation) to a DFRAME position x,y,...
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:205
static ERK_CAPI_MOP_PREP erk_capi_mop_prep
Method class for motion planning (preparation)
Definition: erk_capi.h:2704
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...
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:149
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....
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 through 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,...
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 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 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,...
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:7418
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....
static ERK_CAPI_TOOLPATH_CREATE erk_toolpath_create
Method class to create tool pathes.
Definition: erk_capi.h:3959
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:7143
static DLLAPI DFRAME *ER_STDCALL Set_BaseFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *BaseFrame)
Program shift Base for a target location Base '$BASE, $UFrame' has only if IPO_MODE_BASE is set and e...
static 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 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 erKernelGetExpirationDate(char *expdate)
Supplies expiration date.
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,...
Definition: erk_capi.h:7442
Method class for simulation settings.
Definition: erk_capi.h:6128
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:199
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:3911
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...
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,...
brief Method class to specify external axis data for a conveyor for target location
Definition: erk_capi.h:5948
const long ER_ROT_XYZ
Rotation Index: RotX*RotY*RotZ, EASY-ROB, Staeubli CS8, erMath_VecToFrameIdx(), erMath_FrameToVecIdx.
Definition: erk_capi_types.h:732
Collision results for query ER_COLL_QUERY_TYPE_DISTANCE, see erColl_GetResults_Distance() The followi...
Definition: erk_capi_types.h:793
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 DFRAME *ER_STDCALL Get_ToolOffsetFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *ToolOffsetFrame)
ToolOffset (TCP) for a target location Offset Transformation from TCP see inq_ToolOffsetIdx(),...
static DLLAPI int ER_STDCALL erConnectTrackMotionGetSync(ER_HND er_hnd)
Get robots synchronization flag for synchronization between robot and track motion....
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:3955
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....
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:208
Geometry data structure for callback function. Used when loading and updating robot geometries With c...
Definition: erk_capi_types.h:260
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:3939
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:203
long(ER_STDCALL * TerFreeGeometryProc)(ER_HND ErHandle, TErGeoHandle GeoHandle)
Callback function type definition to free or delete a geometry, erSetCallBack_FreeGeometryProc()....
Definition: erk_capi_types.h:654
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:838
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 int ER_STDCALL erGetToolOffset(ER_HND er_hnd, DFRAME *wTwo)
Get robot tool offset (TCP) data w.r.t. robots fix Tcp.
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 through 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:434
static DLLAPI int ER_STDCALL erGetToolFix(ER_HND er_hnd, DFRAME *tTwfix)
Get robot tool fix (TCP) data w.r.t. robots flange, without Tool Offset.
Method class for miscellaneous tool path calculations.
Definition: erk_capi.h:6043
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:7413
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:212
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...
static DLLAPI long ER_STDCALL erSetTargetLocation_Move_CIRC_Frame(ER_TARGET_LOCATION_HND er_tarloc_hnd, DFRAME *CartPosFrameVia, DFRAME *CartPosFrame, double speed_cp=0, double speed_ori=0, double override_speed=0, long flyby_on=-1, DFRAME *ToolFrame=0, DFRAME *BaseFrame=0)
Move_CIRC, continious path motion definition for target location Remarks Use erAddTargetLocation() t...
Method class to administrate this Robotics Simulation Kernel.
Definition: erk_capi.h:164
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:3907
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()
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,...
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:133
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 DFRAME *ER_STDCALL Set_ToolOffsetFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *ToolOffsetFrame)
ToolOffset (TCP) for a target location Offset Transformation from TCP see inq_ToolOffsetIdx(),...
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:202
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 erSetToolOffset(ER_HND er_hnd, DFRAME *wTwo)
Set robot tool offset (TCP) data w.r.t. robots fix Tcp.
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,...
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 long ER_STDCALL Set_EventDIN(ER_TARGET_EVENTS_HND hnd, int idx=1, long io_value=ER_EVENT_BOOL_UNDEF, char *io_name=0, long leadcond_type=ER_EVENT_CONDITION_UNDEF, double leadcond_value=0, long lagcond_type=ER_EVENT_CONDITION_UNDEF, double lagcond_value=0)
Set event conditions for a binary input for target location An input is checked before a movement sta...
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....
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 long ER_STDCALL CpyEventsTemplate(ER_TOOLPATH_HND er_tpth_hnd, ER_TARGET_EVENTS_HND hnd)
Copy events to template data. The events defined with events handle hnd are copied to the events temp...
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)
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:7183
static DLLAPI double *ER_STDCALL erGetMotionExec_JointPos(ER_TARGET_MOTION_EXEC_HND hnd)
Joint position at target location, while interpolation through 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:3935
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...
static DLLAPI DFRAME *ER_STDCALL Set_extTcpBaseFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *extTcpBaseFrame)
external Tool (TCP) w.r.t. Robot Base or flange of positioner, for a target location Transformation f...
static ERK_CAPI_SIM erk_capi_sim
Method class for simulation settings.
Definition: erk_capi.h:137
static ERK_CAPI_TARGETS erk_capi_targets
Method class for paths and tags.
Definition: erk_capi.h:145
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:3667
unsigned int * ER_TARGET_HEAD_HND
unique Header data handle
Definition: erk_capi_types.h:207
static DLLAPI DFRAME *ER_STDCALL Get_ToolFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *ToolFrame)
Tool (TCP) for a target location Transformation from Tip to TCP see inq_ToolIdx(),...
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:922
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 DLLAPI DFRAME *ER_STDCALL Set_ToolFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *ToolFrame)
Tool (TCP) for a target location Transformation from Tip to TCP see inq_ToolIdx(),...
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:852
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:7431
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"....
static DLLAPI DFRAME *ER_STDCALL Get_extTcpWorldFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *extTcpWorldFrame)
external Tool (TCP) w.r.t. Robot World or flange of positioner, for a target location Transformation ...
unsigned int * ER_TARGET_MOTION_EXEC_HND
unique handle for motion execution data at target
Definition: erk_capi_types.h:214
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....
static DLLAPI double ER_STDCALL erGetMotionExec_trajectory_time(ER_TARGET_MOTION_EXEC_HND hnd)
Trajectory time [s], time to reach the target location, while interpolation through the complete tool...
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...
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:665
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,...
static DLLAPI long ER_STDCALL Get_EventDOUT(ER_TARGET_EVENTS_HND hnd, int idx, long *io_value, char *io_name, long *strig_type, double *strig_time, double *strig_dist, long *ttrig_type, double *ttrig_time, double *ttrig_dist)
Get an event for a boolean output for target location A boolean event for binary outputs is controlle...
static ERK_CAPI_CALLBACKS erk_capi_callback
Method class for Callback functions.
Definition: erk_capi.h:168
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,...
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...
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:4962
unsigned int * ER_TARGET_ATTRIBUTES_AUX_HND
unique Auxiliary motion attributes handle
Definition: erk_capi_types.h:210
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,...
Definition: erk_capi.h:3203