EASY-ROBâ„¢ Kernel  v8.603
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 - 2022
7 
8  Date: AUG 2022
9  Version: 8.603
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 */
57 
58 #ifndef _erk_capi_h
59 #define _erk_capi_h
60 
61 #include "erk_capi_types.h"
62 
63 // Forward Declarations
64 class ERK_CAPI;
65 
66 class ERK_CAPI_ADMIN;
67 class ERK_CAPI_CALLBACKS;
68 
69 class ERK_CAPI_DEVICES;
70 class ERK_CAPI_ROB;
71 class ERK_CAPI_ROB_KIN;
74 class ERK_CAPI_MOP;
75 class ERK_CAPI_MOP_DATA;
76 class ERK_CAPI_MOP_PATH;
77 class ERK_CAPI_MOP_PREP;
78 class ERK_CAPI_MOP_EXEC;
79 class ERK_CAPI_TOOLPATH;
95 
96 class ERK_CAPI_SIM;
98 
99 class ERK_CAPI_AUTOPATH;
100 
101 class ERK_CAPI_TARGETS;
102 
103 class ERK_CAPI_GEO;
104 class ERK_CAPI_GEO_MNGR;
105 
106 class ERK_CAPI_SYS;
109 
110 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ER_CAPI
112 // class ERK_CAPI
114 
117 class ERK_CAPI
118 {
119 public:
120 
124 
128 
132 
136 
140 
144 
148 
149 };
150 
151 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_ADMIN
153 // class ERK_CAPI_ADMIN
154 //
158 class ERK_CAPI_ADMIN : public ERK_CAPI
159 {
163 
164 public:
168  static DLLAPI int ER_STDCALL erKernelGetVersion(void);
169 
178  static DLLAPI int ER_STDCALL erKernelSetLicensePriority(int license_priority);
179 
187  static DLLAPI int ER_STDCALL erKernelGetLicensePriority(int *license_priority);
188 
196  static DLLAPI int ER_STDCALL erKernelSetLicenseFile(char *license_file);
197 
205  static DLLAPI int ER_STDCALL erKernelAddLicenseFile(char *license_file);
206 
213  static DLLAPI int ER_STDCALL erKernelGetLicenseFile(char *license_file);
214 
240  static DLLAPI int ER_STDCALL erKernelInitialize(char *HostApplicationPath, char *Sold_To_ID, long mode=0);
241 
247  static DLLAPI void ER_STDCALL erKernelFree(void);
248 
254  static DLLAPI int ER_STDCALL erKernelGetLicense(char *hw_id);
255 
261  static DLLAPI int ER_STDCALL erKernelGetHardwareID(char *hw_id);
262 
268  static DLLAPI int ER_STDCALL erKernelGetOptions(char *opt);
269 
275  static DLLAPI int ER_STDCALL erKernelGetOptionsDisabled(char *nopt);
276 };
277 
278 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_CALLBACKS
280 // class ERK_CAPI_CALLBACKS
281 //
286 {
287 public:
288 
289  /* AddToHostLog
290  Fügt dem Log der Hostanwendung einen Eintrag hinzu, oder gibt eine Statusmeldung in der
291  Statuszeile aus.
292  */
297  static DLLAPI void ER_STDCALL erSetCallBack_LogProc(TerLogProc Handler);
298 
299  /* Enable/Disable
300  AddToHostLog messages
301  */
320  static DLLAPI void ER_STDCALL erEnableCallBack_LogProc(long onoff);
321 
322  /* HostLoadGeometry
323  Fordert die Hostanwendung auf eine Geometrie aus einer Datei zu laden.
324 
325  ErHandle: Handle der Kinematik, der die Geometrie zugeordnet werden soll.
326  GeoHandle: Handle auf eine eventuell schon zuvor geladene Geomtrie der Kinematik
327  Funktioniert derzeit nicht und muss 0 sein.
328  Scaling: Skalierungsfactor mit dem die Geomtrie skaliert werden soll.
329  GeoMat: Eine Transformation zur Lagekorrektur der Geometrie.
330  FileName: Name der Datei, die geladen werden soll. Derzeit wird ein vollständiger Pfad erwartet.
331 
332  Returns: Handle auf die geladene Geomtrie. Im Fehlerfall wird 0 zurückgeliefert
333  */
340 
341  /* HostUpdateGeometry
342  Fordert die Hostanwendung auf die Kinematiktransformation der Geometrie zu aktualisieren.
343 
344  ErHandle: Handle der Kinematik, der die Geometrie zugeordnet werden soll.
345  GeoHandle: Handle auf die Geomtrie, wie von "HostLoadGeometry" geliefert.
346  KinMat: Die neue Transformation.
347 
348  Returns: Im Fehlerfall 1, ansonsten 0
349  */
356 
357  /* HostFreeGeometry
358  Fordert die Hostanwendung die Geometrie freizugeben.
359 
360  ErHandle: Handle der Kinematik, der die Geometrie zugeordnet werden soll.
361  GeoHandle: Handle auf die Geomtrie, wie von "HostLoadGeometry" geliefert.
362 
363  Returns: Im Fehlerfall 1, ansonsten 0
364  */
371 
372  /* HostGetActualTravelRanges
373  Fordert die Hostanwendung die Travel Ranges zu berechnen.
374 
375  ErHandle: Handle der Kinematik, der die Travel Ranges zugeordnet werden soll.
376 
377  Returns: Im Fehlerfall 1, ansonsten 0
378  */
385  /* HostNotify
386  Gibt Meldung an die Hostanwendung.
387  */
394 
395  /* HostGrpSync
396  GrpSync IO Hostanwendung.
397  */
403 };
404 
405 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_DEVICES
407 // class ERK_CAPI_DEVICES
408 //
413 {
414 public:
418 
422 
426 
427 public:
438  static DLLAPI int ER_STDCALL erInitKin(ER_HND *er_hnd, Host_HND host_hnd=NULL);
439 
440  /* erUnloadKin
441  Unload Robot Handle
442  Return 0-OK, 1-Error
443  */
453  static DLLAPI int ER_STDCALL erUnloadKin(ER_HND *er_hnd);
454 
455  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
456  //
457  // erConnect* NEW_050402
458  //
459  // erConnectPositioner erConnectPositionerSetSync erConnectPositionerGetSync
460  // erConnectConveyor erConnectConveyorSetSync erConnectConveyorGetSync
461  // erConnectTrackMotion erConnectTrackMotionSetSync erConnectTrackMotionGetSync
462  // erConnectRobot erConnectRobotSetSync erConnectRobotGetSync
463  //
464  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
465  /* erConnectPositioner
466  Connects Positioner Kinematik mit dem Handle 'er_hnd_connect' zum Roboter mit dem Handle 'er_hnd'
467  Return 0-OK, 1-Error
468  */
494  static DLLAPI int ER_STDCALL erConnectPositioner(ER_HND er_hnd, ER_HND er_hnd_connect);
495 
503 
504  /* erConnectPositionerSetSync
505  Setzt Sync Flag der Positioner Kinematik
506  Return 0-OK, 1-Error
507  */
517  static DLLAPI int ER_STDCALL erConnectPositionerSetSync(ER_HND er_hnd, long connect_sync);
518 
519  /* erConnectPositionerGetSync
520  Liest Sync Flag der Positioner Kinematik
521  Return -1-Error, ER_SYNC_UNDEF, ER_SYNC_OFF, ER_SYNC_ON
522  */
532 
533  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
534  /* erConnectConveyor
535  Connects Conveyor Kinematik mit dem Handle 'er_hnd_connect' zum Roboter mit dem Handle 'er_hnd'
536  Return 0-OK, 1-Error
537  */
563  static DLLAPI int ER_STDCALL erConnectConveyor(ER_HND er_hnd, ER_HND er_hnd_connect);
564 
572 
573  /* erConnectConveyorSetSync
574  Setzt Sync Flag der Conveyor Kinematik
575  Return 0-OK, 1-Error
576  */
586  static DLLAPI int ER_STDCALL erConnectConveyorSetSync(ER_HND er_hnd, long connect_sync);
587 
588  /* erConnectConveyorGetSync
589  Liest Sync Flag der Conveyor Kinematik
590  Return -1-Error, ER_SYNC_UNDEF, ER_SYNC_OFF, ER_SYNC_ON
591  */
601 
602  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
603  /* erConnectTrackMotion
604  Connects Track Kinematik mit dem Handle 'er_hnd_connect' zum Roboter mit dem Handle 'er_hnd'
605  Return 0-OK, 1-Error
606  */
632  static DLLAPI int ER_STDCALL erConnectTrackMotion(ER_HND er_hnd, ER_HND er_hnd_connect);
633 
641 
642  /* erConnectTrackMotionSetSync
643  Setzt Sync Flag der TrackMotion Kinematik
644  Return 0-OK, 1-Error
645  */
655  static DLLAPI int ER_STDCALL erConnectTrackMotionSetSync(ER_HND er_hnd, long connect_sync);
656  /* erConnectTrackMotionGetSync
657  Liest Sync Flag der TrackMotion Kinematik
658  Return -1-Error, ER_SYNC_UNDEF, ER_SYNC_OFF, ER_SYNC_ON, ER_SYNC_CONVEYOR
659  */
670 
671  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
672  /* erConnectRobot
673  Connects Robot Kinematik mit dem Handle 'er_hnd_connect' zum Roboter mit dem Handle 'er_hnd'
674  Return 0-OK, 1-Error
675  */
701  static DLLAPI int ER_STDCALL erConnectRobot(ER_HND er_hnd, ER_HND er_hnd_connect);
702 
710 
711  /* erConnectRobotSetSync
712  Setzt Sync Flag der Robot Kinematik
713  Return 0-OK, 1-Error
714  */
724  static DLLAPI int ER_STDCALL erConnectRobotSetSync(ER_HND er_hnd, long connect_sync);
725  /* erConnectRobotGetSync
726  Liest Sync Flag der Robot Kinematik
727  Return -1-Error, ER_SYNC_UNDEF, ER_SYNC_OFF, ER_SYNC_ON
728  */
737  static DLLAPI int ER_STDCALL erConnectRobotGetSync(ER_HND er_hnd);
738 
739  /* erUnloadTool
740  Loescht Tool GeoHandle und setzt Tool auf Ident
741  Important:
742  Damit die TCP Position stimmt, muss ein rob_kin_update() folgen
743  Return 0-OK, 1-Error
744  */
754  static DLLAPI int ER_STDCALL erUnloadTool(ER_HND er_hnd);
755 
756  /* erLoadKin
757  Load an easy-rob robot file with tool
758  Return 0-OK, 1-Error oder Abort
759  */
771  static DLLAPI int ER_STDCALL erLoadKin(ER_HND er_hnd,char *fln_rob);
772 
773  /* erLoadTool
774  Load an easy-rob tool file
775  Return 0-OK, 1-Error oder Abort
776  */
784  static DLLAPI int ER_STDCALL erLoadTool(ER_HND er_hnd,char *fln_tool);
785 
786  /* erGet_n_Kin
787  Return Number of loaded Robots "m_n_rob_kin"
788  */
794  static DLLAPI int ER_STDCALL erGet_n_Kin(ER_HND er_hnd);
795 
796  /* erGet_n_Kin_IR
797  Return Number of loaded Robots with more than 3 joints and inverse kinematics "m_n_rob_kin_ir"
798  */
804  static DLLAPI int ER_STDCALL erGet_n_Kin_IR(ER_HND er_hnd);
805 
806  /* erGetName
807  Name of Robot
808  Return 0-OK, 1-Error oder Abort
809  */
815  static DLLAPI int ER_STDCALL erGetName(ER_HND er_hnd,char *name);
816 };
817 
818 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_ROB
820 // class ERK_CAPI_ROB
821 //
826 {
827 public:
828 
832 
836 
840 };
841 
843 // class ERK_CAPI_ROB_KIN
844 //
850 {
851 public:
852 
853  /* erGetIDs
854  Kinematik ID - kinematischer Typ
855  RRRRRR_id =1; // Manutec
856  TTTRRR_id =2; // Portal
857  RRRRRR_bl_id =3; // ABB back link
858  UNIV_ROB_id =10; // Universelle Koordinaten
859  DH_id =11; // DH Koordinaten
860  inv_id - ID fuer inverse Kineamtik
861  inv_sub_id - Sub ID fuer inverse Kineamtik
862  Return 0-OK, 1-Error oder Abort
863  */
876  static DLLAPI int ER_STDCALL erGetIDs(ER_HND er_hnd,long *kin_id,long *inv_id, long *inv_sub_id);
877 
878  /* erGet_num_dofs
879  Return Number of Robot active joints
880  */
886  static DLLAPI int ER_STDCALL erGet_num_dofs(ER_HND er_hnd);
887 
888  /* erGet_num_dofs_passive
889  Return Number of Robot passive joints
890  */
896  static DLLAPI int ER_STDCALL erGet_num_dofs_passive(ER_HND er_hnd);
897 
898  /* erGetJointTypes
899  gets type of active robot joints 0-Rot 1-Trans
900  Return 0-OK, 1-Error oder Abort
901  */
910  static DLLAPI int ER_STDCALL erGetJointTypes(ER_HND er_hnd, long *jnt_type_active);
911 
912  /* erGetJointTypes_passive
913  gets type of passive robot joints 0-Rot 1-Trans
914  Return 0-OK, 1-Error oder Abort
915  */
924  static DLLAPI int ER_STDCALL erGetJointTypes_passive(ER_HND er_hnd, long *jnt_type_passive);
925 
926  /* erGetJointDirections
927  gets direction of active robot joints 1-JNT_DIRECTION_X, 2-JNT_DIRECTION_Y, 3-JNT_DIRECTION_Z
928  Return 0-OK, 1-Error oder Abort
929  */
938  static DLLAPI int ER_STDCALL erGetJointDirections(ER_HND er_hnd, long *jnt_direction_active);
939 
940  /* erGetJointDirections_passive
941  gets type direction of passive robot joints 1-JNT_DIRECTION_X, 2-JNT_DIRECTION_Y, 3-JNT_DIRECTION_Z
942  Return 0-OK, 1-Error oder Abort
943  */
952  static DLLAPI int ER_STDCALL erGetJointDirections_passive(ER_HND er_hnd, long *jnt_direction_passive);
953 
954  /* erGetJointChainTypes
955  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
956  Return 0-OK, 1-Error or Abort
957  */
965  static DLLAPI int ER_STDCALL erGetJointChainTypes(ER_HND er_hnd, long *jnt_chain_type_active);
966 
967  /* erGetJointChainTypes_passive
968  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
969  Return 0-OK, 1-Error or Abort
970  */
978  static DLLAPI int ER_STDCALL erGetJointChainTypes_passive(ER_HND er_hnd, long *jnt_chain_type_passive);
979 
980  /* erGetJointAttachDof_active
981  gets Attach-Dof of active robot joints
982  Return 0-OK, 1-Error or Abort
983  */
993  static DLLAPI int ER_STDCALL erGetJointAttachDof_active(ER_HND er_hnd, long *jnt_attach_dof_active);
994 
995  /* erGetJointAttachDof_passive
996  gets Attach-Dof of passive robot joints
997  Return 0-OK, 1-Error or Abort
998  */
1007  static DLLAPI int ER_STDCALL erGetJointAttachDof_passive(ER_HND er_hnd, long *jnt_attach_dof_passive);
1008 
1009  /* erGetMoveBaseMode
1010  gets moveable base mode 0-Robot base is fix (default), 1-Robot base is moveable
1011  Return 0-OK, 1-Error oder Abort
1012  */
1022  static DLLAPI int ER_STDCALL erGetMoveBaseMode(ER_HND er_hnd,long *move_base_mode);
1023 
1024  /* erGetMoveBasepJointIdx
1025  gets passive joint idx representing the moveable base
1026  0-Robot base is fix (default)
1027  n-index of passive joint representing the moveable base
1028  Return 0-OK, 1-Error oder Abort
1029  */
1038  static DLLAPI int ER_STDCALL erGetMoveBasepJointIdx(ER_HND er_hnd,long *move_base_pjointidx);
1039 
1040  /* erGetpJointMoveBase
1041  get transformation from passive joint 'pjnt' to the moveable base 'mb'
1042  Return 0-OK, 1-Error oder Abort
1043  */
1052  static DLLAPI int ER_STDCALL erGetpJointMoveBase(ER_HND er_hnd,DFRAME *pjntTmb);
1053 
1054  /* erGetRobotBaseToMoveBase
1055  get transformation from robot base 'b' to the moveable base 'mb'
1056  bTmb is Ident, if moveable base is fix
1057  Return 0-OK, 1-Error oder Abort
1058  */
1067  static DLLAPI int ER_STDCALL erGetRobotBaseToMoveBase(ER_HND er_hnd,DFRAME *bTmb);
1068 
1069  /* erSetJoints
1070  Set Robot joints
1071  Return 0-OK, 1-Error oder Abort
1072  */
1081  static DLLAPI int ER_STDCALL erSetJoints(ER_HND er_hnd,double *q_solut);
1082 
1083  /* erSetJoint
1084  Set Robot joint
1085  Return 0-OK, 1-Error oder Abort
1086  */
1097  static DLLAPI int ER_STDCALL erSetJoint(ER_HND er_hnd,double q_solut, long jnt_no);
1098 
1099  /* erGetJoints
1100  Get current (active) Robot joints
1101  Return 0-OK, 1-Error oder Abort
1102  */
1114  static DLLAPI int ER_STDCALL erGetJoints(ER_HND er_hnd,double *q_solut);
1115 
1116  /* erGetJointSolutions
1117  Get all (active) Robot joints solutions
1118  Return 0-OK, 1-Error oder Abort
1119  */
1168  static DLLAPI int ER_STDCALL erGetJointSolutions(ER_HND er_hnd,double *q_solutions, long *q_warnings);
1169 
1170  /* erGetJointSpeeds
1171  Get current (active) Robot joint speeds
1172  Return 0-OK, 1-Error oder Abort
1173  */
1183  static DLLAPI int ER_STDCALL erGetJointSpeeds(ER_HND er_hnd,double *v_solut);
1184 
1185  /* erGetJointAccels
1186  Get current (active) Robot joint accels
1187  Return 0-OK, 1-Error oder Abort
1188  */
1198  static DLLAPI int ER_STDCALL erGetJointAccels(ER_HND er_hnd,double *a_solut);
1199 
1200  /* erGetJoints_passive
1201  Get current passive Robot joints
1202  */
1212  static DLLAPI int ER_STDCALL erGetJoints_passive(ER_HND er_hnd,double *q_passive);
1213 
1214  /* erSetConfig
1215  Set Robot configuration
1216  */
1229  static DLLAPI int ER_STDCALL erSetConfig(ER_HND er_hnd, long config);
1230 
1231  /* erGetConfig
1232  Set Robot configuration
1233  */
1242  static DLLAPI int ER_STDCALL erGetConfig(ER_HND er_hnd, long *config);
1243 
1244  /* erFindConfig
1245  Find current Robot configuration
1246  */
1257  static DLLAPI int ER_STDCALL erFindConfig(ER_HND er_hnd, long *config); // NEW_050324
1258 
1259  /* erGetNumConfigs
1260  Get Number of Robot configurations
1261  */
1268  static DLLAPI int ER_STDCALL erGetNumConfigs(ER_HND er_hnd, long *num_configs);
1269 
1270  /* erInvKinRobotBaseTip
1271  Inverse bTt is Robot base to Tip
1272  Return:
1273  Return code for inverse kinematics, INV_WARN_*
1274  */
1288  static DLLAPI int ER_STDCALL erInvKinRobotBaseTip (ER_HND er_hnd,DFRAME *bTt);
1289 
1290  /* erInvKinWorldTip
1291  Inverse iTt is World to Tip
1292  Return:
1293  Return code for inverse kinematics, INV_WARN_*
1294  */
1308  static DLLAPI int ER_STDCALL erInvKinWorldTip(ER_HND er_hnd,DFRAME *iTt);
1309 
1310  /* erInvKinRobotBaseTcp
1311  Inverse bTt is Robot base to Tcp
1312  Return:
1313  Return code for inverse kinematics, INV_WARN_*
1314  */
1328  static DLLAPI int ER_STDCALL erInvKinRobotBaseTcp (ER_HND er_hnd,DFRAME *bTw);
1329 
1330  /* erInvKinWorldTcp
1331  Inverse iTt is World to Tcp
1332  Return:
1333  Return code for inverse kinematics, INV_WARN_*
1334  */
1348  static DLLAPI int ER_STDCALL erInvKinWorldTcp(ER_HND er_hnd,DFRAME *iTw);
1349 
1350  /* erSetTool
1351  Set Tool Tip to Tcp
1352  */
1359  static DLLAPI int ER_STDCALL erSetTool(ER_HND er_hnd,DFRAME *tTw);
1360  /* erGetTool
1361  Get Tool Tip to Tcp
1362  */
1376  static DLLAPI int ER_STDCALL erGetTool(ER_HND er_hnd,DFRAME *tTw);
1377 
1378  /* erGetToolFix
1379  Get Tool Tip to fix Tcp, without Tool Offset
1380  */
1397  static DLLAPI int ER_STDCALL erGetToolFix(ER_HND er_hnd, DFRAME *tTwfix);
1398 
1399  /* erSetToolOffset
1400  Set Tool Offset Tcp' to Tcp
1401  */
1408  static DLLAPI int ER_STDCALL erSetToolOffset(ER_HND er_hnd, DFRAME *wTwo);
1409 
1410  /* erGetToolOffset
1411  Get Tool Offset Tcp' to Tcp
1412  */
1444  static DLLAPI int ER_STDCALL erGetToolOffset(ER_HND er_hnd, DFRAME *wTwo);
1445 
1446  /* erSetBaseRobotBase
1447  Set Base w.r.t. RobotBase
1448  */
1457  static DLLAPI int ER_STDCALL erSetBaseRobotBase(ER_HND er_hnd,DFRAME *bTbase);
1458 
1459  /* erGetBaseRobotBase
1460  Get Base w.r.t. RobotBase
1461  */
1470  static DLLAPI int ER_STDCALL erGetBaseRobotBase(ER_HND er_hnd,DFRAME *bTbase);
1471 
1472  /* erSetBaseWorld
1473  Set Base w.r.t. World
1474  */
1483  static DLLAPI int ER_STDCALL erSetBaseWorld(ER_HND er_hnd,DFRAME *iTbase);
1484 
1485  /* erGetBaseWorld
1486  Get Base w.r.t. World
1487  */
1496  static DLLAPI int ER_STDCALL erGetBaseWorld(ER_HND er_hnd,DFRAME *iTbase);
1497 
1498  /* erSetRobotBase
1499  Set RobotBase, World to Robot base
1500  */
1507  static DLLAPI int ER_STDCALL erSetRobotBase(ER_HND er_hnd,DFRAME *iTb);
1508 
1509  /* erGetRobotBase
1510  Get RobotBase, World to Robot base
1511  */
1525  static DLLAPI int ER_STDCALL erGetRobotBase(ER_HND er_hnd,DFRAME *iTb);
1526 
1527  /* erGetRobotBaseTip
1528  Get Robot Tip w.r.t. Robot base
1529  */
1536  static DLLAPI int ER_STDCALL erGetRobotBaseTip(ER_HND er_hnd,DFRAME *bTt);
1537  /* erGetRobotBaseTcp
1538  Get Robot Tcp w.r.t. Robot base
1539  */
1546  static DLLAPI int ER_STDCALL erGetRobotBaseTcp(ER_HND er_hnd,DFRAME *bTw);
1547 
1548  /* erGetWorldTip
1549  Get Robot Tip w.r.t. World
1550  */
1557  static DLLAPI int ER_STDCALL erGetWorldTip(ER_HND er_hnd,DFRAME *iTt);
1558 
1559  /* erGetWorldTcp
1560  Get Robot Tcp w.r.t. World
1561  */
1568  static DLLAPI int ER_STDCALL erGetWorldTcp(ER_HND er_hnd,DFRAME *iTw);
1569 
1570  /* erUpdateKin
1571  Update the complete kinematic
1572  */
1581  static DLLAPI int ER_STDCALL erUpdateKin(ER_HND er_hnd);
1582 
1583  /* erGetJointFrameRobotBase
1584  Transformation from RobotBase to (active) Robot Joint
1585  Return 0-OK, 1-Error oder Abort
1586  */
1595  static DLLAPI int ER_STDCALL erGetJointFrameRobotBase(ER_HND er_hnd,long active_jnt_no,DFRAME *bTax);
1596 
1597  /* erGetJointFrameRobotBase_passive
1598  Transformation from RobotBase to passive Robot Joint
1599  Return 0-OK, 1-Error oder Abort
1600  */
1609  static DLLAPI int ER_STDCALL erGetJointFrameRobotBase_passive(ER_HND er_hnd,long passive_jnt_no,DFRAME *bTax);
1610 
1611  /* erGetJointFrameWorld
1612  Transformation from World to (active) Robot Joint
1613  Return 0-OK, 1-Error oder Abort
1614  */
1623  static DLLAPI int ER_STDCALL erGetJointFrameWorld(ER_HND er_hnd,long active_jnt_no,DFRAME *iTax);
1624 
1625  /* erGetJointFrameWorld_passive
1626  Transformation from World to passive Robot Joint
1627  Return 0-OK, 1-Error oder Abort
1628  */
1637  static DLLAPI int ER_STDCALL erGetJointFrameWorld_passive(ER_HND er_hnd,long passive_jnt_no,DFRAME *iTax);
1638 
1639  /* erSetExtTcpRobotBase
1640  Set external Tcp w.r.t Robot Base
1641  Return 0-OK, 1-Error oder Abort
1642  Ausnahme: Beim Positioner ist der external Tcp w.r.t flange des positioners
1643  */
1652  static DLLAPI int ER_STDCALL erSetExtTcpRobotBase(ER_HND er_hnd,DFRAME *bText, long use_ext_flange);
1653 
1654  /* erGetExtTcpRobotBase
1655  Get external Tcp w.r.t. Robot Base
1656  Return 0-OK, 1-Error oder Abort
1657  */
1664  static DLLAPI int ER_STDCALL erGetExtTcpRobotBase(ER_HND er_hnd,DFRAME *bText);
1665 
1666  /* erSetExtTcpWorld
1667  Set external Tcp w.r.t world
1668  Return 0-OK, 1-Error oder Abort
1669  */
1676  static DLLAPI int ER_STDCALL erSetExtTcpWorld(ER_HND er_hnd,DFRAME *iText);
1677 
1678  /* erGetExtTcpWorld
1679  Get external Tcp w.r.t. world
1680  Return 0-OK, 1-Error oder Abort
1681  */
1688  static DLLAPI int ER_STDCALL erGetExtTcpWorld(ER_HND er_hnd,DFRAME *iText);
1689 
1690  /* erSetExtTcpMode
1691  Set ExtTcpMode 0-IPO_MODE_BASE (Werk ZEUG fuehrend), 1-IPO_MODE_TOOL (Werk STUECK fuehren)
1692  Return 0-OK, 1-Error oder Abort
1693  */
1701  static DLLAPI int ER_STDCALL erSetExtTcpMode(ER_HND er_hnd,long ext_tcp_mode);
1702 
1703  /* erGetExtTcpMode
1704  Get 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 erGetExtTcpMode(ER_HND er_hnd, long *ext_tcp_mode);
1715 };
1716 
1718 // class ERK_CAPI_ROB_KIN_API
1719 //
1724 {
1725 public:
1726 
1727  /* erGetInvKinID
1728  Inverse kinematics ID for cRobot
1729  Return 0-OK, 1-Error oder Abort
1730  */
1737  static DLLAPI int ER_STDCALL erGetInvKinID(ER_HND er_hnd, long *invkin_id);
1738 
1739  /* erGetInvKinSubID
1740  Inverse kinematics Sub-ID for cRobot
1741  Return 0-OK, 1-Error oder Abort
1742  */
1749  static DLLAPI int ER_STDCALL erGetInvKinSubID(ER_HND er_hnd, long *invkinsub_id);
1750 
1751  /* erSetJointSolutions
1752  Set all (active) Robot joints solutions
1753  Return 0-OK, 1-Error oder Abort
1754  */
1802  static DLLAPI int ER_STDCALL erSetJointSolutions(ER_HND er_hnd, double *q_solutions, long *q_warnings);
1803 
1804  /* erSetJointDyn
1805  Set actual robot joint
1806  Return 0-OK, 1-Error oder Abort
1807  */
1818  static DLLAPI int ER_STDCALL erSetJointDyn(ER_HND er_hnd, double q_dyn, long jnt_no);
1819 
1820  /* erGetRobotBasetoFirstJoint
1821  Robot Base to first joint of kinematics chain
1822  Return 0-OK, 1-Error oder Abort
1823  */
1830  static DLLAPI int ER_STDCALL erGetRobotBasetoFirstJoint(ER_HND er_hnd, DFRAME *bT0);
1831 
1832  /* erGetJointFrameActiveNext
1833  Get kinematics transformation to the next joint for each active joint "Geometric Data to next"
1834  Return 0-OK, 1-Error oder Abort
1835  */
1884  static DLLAPI int ER_STDCALL erGetJointFrameActiveNext(ER_HND er_hnd, long active_jnt_no, DFRAME *T_nxt);
1885 
1886  /* erSetJointFrameActiveNext
1887  Set kinematics transformation to the next joint for each active joint "Geometric Data to next"
1888  Return 0-OK, 1-Error oder Abort
1889  */
1900  static DLLAPI int ER_STDCALL erSetJointFrameActiveNext(ER_HND er_hnd, long active_jnt_no, DFRAME *T_nxt);
1901 
1902  /* erGetJointFrameActiveLast
1903  Get kinematics transformation from last joint for each active joint "Geometric Data from last"
1904  Return 0-OK, 1-Error oder Abort
1905  */
1916  static DLLAPI int ER_STDCALL erGetJointFrameActiveLast(ER_HND er_hnd, long active_jnt_no, DFRAME *T_last); /* erGetJointFrameActiveLast
1917 
1918  /* Set kinematics transformation from last joint for each active joint "Geometric Data from last"
1919  Return 0-OK, 1-Error oder Abort
1920  */
1931  static DLLAPI int ER_STDCALL erSetJointFrameActiveLast(ER_HND er_hnd, long active_jnt_no, DFRAME *T_last);
1932 
1933  /* erGetJointFramePassiveNext
1934  Get kinematics transformation to the next joint for each passive joint "Geometric Data to next"
1935  Return 0-OK, 1-Error oder Abort
1936  */
1945  static DLLAPI int ER_STDCALL erGetJointFramePassiveNext(ER_HND er_hnd, long passive_jnt_no, DFRAME *T_nxt);
1946 
1947  /* erSetJointFramePassiveNext
1948  Set kinematics transformation to the next joint for each passive joint "Geometric Data to next"
1949  Return 0-OK, 1-Error oder Abort
1950  */
1961  static DLLAPI int ER_STDCALL erSetJointFramePassiveNext(ER_HND er_hnd, long passive_jnt_no, DFRAME *T_nxt);
1962 
1963  /* erGetJointFramePassiveLast
1964  Get kinematics transformation to the next joint for each passive joint "Geometric Data to next"
1965  Return 0-OK, 1-Error oder Abort
1966  */
1977  static DLLAPI int ER_STDCALL erGetJointFramePassiveLast(ER_HND er_hnd, long passive_jnt_no, DFRAME *T_last);
1978 
1979  /* erSetJointFramePassiveLast
1980  Set kinematics transformation to the next joint for each passive joint "Geometric Data to next"
1981  Return 0-OK, 1-Error oder Abort
1982  */
1993  static DLLAPI int ER_STDCALL erSetJointFramePassiveLast(ER_HND er_hnd, long passive_jnt_no, DFRAME *T_last);
1994 
1995  /* erGet_erk_kin_usr_ptr
1996  Access user pointer for user defined inverse and forward kinematics in EasySimKernel_apikinx64.dll
1997  Return pointer to user defined memory
1998  */
2060  static DLLAPI void** ER_STDCALL erGet_erk_kin_usr_ptr(ER_HND er_hnd);
2061 };
2063 // class ERK_CAPI_ROB_ATRIBUTES
2064 //
2069 {
2070 public:
2071 
2072  /* erGetName
2073  Name of Robot
2074  Return 0-OK, 1-Error oder Abort
2075  */
2081  static DLLAPI int ER_STDCALL erGetName(ER_HND er_hnd, char *name);
2082 
2083  /* erSetHomepos
2084  Set Robot Home position
2085  */
2095  static DLLAPI int ER_STDCALL erSetHomepos(ER_HND er_hnd,double *homepos);
2096 
2097  /* erGetHomepos
2098  Get Robot Home position
2099  */
2109  static DLLAPI int ER_STDCALL erGetHomepos(ER_HND er_hnd,double *homepos);
2110 
2111  /* erSetSweMin
2112  Set Robot min. SWE Switch
2113  */
2123  static DLLAPI int ER_STDCALL erSetSweMin(ER_HND er_hnd,double *swe_min);
2124 
2125  /* erGetSweMin
2126  Get min. SWE Switch
2127  */
2137  static DLLAPI int ER_STDCALL erGetSweMin(ER_HND er_hnd,double *swe_min);
2138 
2139  /* erGetSweMinCalc
2140  Get min. calculated SWE Switch
2141  */
2152  static DLLAPI int ER_STDCALL erGetSweMinCalc(ER_HND er_hnd,double *swe_min_calc);
2153 
2154  /* erSetSweMax
2155  Set max. SWE Switch
2156  */
2166  static DLLAPI int ER_STDCALL erSetSweMax(ER_HND er_hnd,double *swe_max);
2167 
2168  /* erGetSweMax
2169  Get max. SWE Switch
2170  */
2180  static DLLAPI int ER_STDCALL erGetSweMax(ER_HND er_hnd,double *swe_max);
2181  /* erGetSweMaxCalc
2182  Get max. calculated SWE Switch
2183  */
2194  static DLLAPI int ER_STDCALL erGetSweMaxCalc(ER_HND er_hnd,double *swe_max_calc);
2195 
2196  /* erGetSweMinMaxCalc
2197  Get min. and max. calculated SWE Switches
2198  */
2210  static DLLAPI int ER_STDCALL erGetSweMinMaxCalc(ER_HND er_hnd,double *swe_min_calc,double *swe_max_calc);
2211 
2219  static DLLAPI int ER_STDCALL erGetSweCalcMode(ER_HND er_hnd,long *swe_calc_mode);
2220 
2230  static DLLAPI int ER_STDCALL erSetSweMin_passive(ER_HND er_hnd, double *swe_min_passive);
2240  static DLLAPI int ER_STDCALL erGetSweMin_passive(ER_HND er_hnd, double *swe_min_passive);
2241 
2251  static DLLAPI int ER_STDCALL erSetSweMax_passive(ER_HND er_hnd, double *swe_max_passive);
2261  static DLLAPI int ER_STDCALL erGetSweMax_passive(ER_HND er_hnd, double *swe_max_passive);
2262 
2263  /* erGetConfigName
2264  Name of robot configuration
2265  Return 0-OK, 1-Error oder Abort
2266  */
2274  static DLLAPI int ER_STDCALL erGetConfigName(ER_HND er_hnd, long config_idx, char *config_name);
2275 
2276  /* erGetJointName
2277  Name of active robot joint
2278  Return 0-OK, 1-Error oder Abort
2279  */
2286  static DLLAPI int ER_STDCALL erGetJointName(ER_HND er_hnd, long active_jnt_no, char *jnt_name);
2287 
2288  /* erGetJointName_passive
2289  Name of passive robot joint
2290  Return 0-OK, 1-Error oder Abort
2291  */
2298  static DLLAPI int ER_STDCALL erGetJointName_passive(ER_HND er_hnd, long passive_jnt_no, char *jnt_name_passive);
2299 
2300  /* erSetJointSign
2301  Set Joint Directions
2302  */
2310  static DLLAPI int ER_STDCALL erSetJointSign(ER_HND er_hnd,double *joint_sign); // NEW_050324
2311 
2312  /* erGetJointSign
2313  Get Joint Sign
2314  */
2323  static DLLAPI int ER_STDCALL erGetJointSign(ER_HND er_hnd,double *joint_sign); // NEW_050324
2324 
2325  /* erSetJointOffset
2326  Set Joint Offsets
2327  */
2335  static DLLAPI int ER_STDCALL erSetJointOffset(ER_HND er_hnd,double *joint_offset); // NEW_050324
2336 
2337  /* erGetJointOffset
2338  Get Joint Offsets
2339  */
2347  static DLLAPI int ER_STDCALL erGetJointOffset(ER_HND er_hnd,double *joint_offset); // NEW_050324
2348 
2349  /* erSetVqMax
2350  Set max. joint speed [rad/s,m/s]
2351  */
2359  static DLLAPI int ER_STDCALL erSetVqMax(ER_HND er_hnd,double *vq_max);
2360 
2361  /* erGetVqMax
2362  Get max. joint speed [rad/s,m/s]
2363  */
2371  static DLLAPI int ER_STDCALL erGetVqMax(ER_HND er_hnd,double *vq_max);
2372 
2373  /* erSetAqMax
2374  Set max. joint acceleration [rad/s^2,m/s^2]
2375  */
2383  static DLLAPI int ER_STDCALL erSetAqMax(ER_HND er_hnd,double *aq_max);
2384 
2385  /* erGetAqMax
2386  Get max. joint acceleration [rad/s^2,m/s^2]
2387  */
2395  static DLLAPI int ER_STDCALL erGetAqMax(ER_HND er_hnd,double *aq_max);
2396 
2397  /* erSetVxMax
2398  Set max. cartesian speed [m/s]
2399  */
2406  static DLLAPI int ER_STDCALL erSetVxMax(ER_HND er_hnd,double vx_max);
2407 
2408  /* erGetVxMax
2409  Get max. cartesian speed [m/s]
2410  */
2417  static DLLAPI int ER_STDCALL erGetVxMax(ER_HND er_hnd,double *vx_max);
2418 
2419  /* erSetVxOriMax
2420  Set max. cartesian orientation speed [rad/s]
2421  */
2428  static DLLAPI int ER_STDCALL erSetVxOriMax(ER_HND er_hnd,double vx_ori_max);
2429 
2430  /* erGetVxOriMax
2431  Get max. cartesian orientation orientation speed [rad/s]
2432  */
2439  static DLLAPI int ER_STDCALL erGetVxOriMax(ER_HND er_hnd,double *vx_ori_max);
2440 
2441  /* erSetAxMax
2442  Set max. cartesian acceleration [m/s^2]
2443  */
2450  static DLLAPI int ER_STDCALL erSetAxMax(ER_HND er_hnd,double ax_max);
2451 
2452  /* erGetAxMax
2453  Get max. cartesian acceleration [m/s^2]
2454  */
2461  static DLLAPI int ER_STDCALL erGetAxMax(ER_HND er_hnd,double *ax_max);
2462 
2463  /* erSetAxOriMax
2464  Set max. cartesian orientation acceleration [rad/s^2]
2465  */
2473  static DLLAPI int ER_STDCALL erSetAxOriMax(ER_HND er_hnd,double ax_ori_max);
2474  /* erGetAxOriMax
2475  Get max. cartesian orientation acceleration [rad/s^2]
2476  */
2483  static DLLAPI int ER_STDCALL erGetAxOriMax(ER_HND er_hnd,double *ax_ori_max);
2484 
2485  /* erGetBackLink obsolete -> use erGetBacklink(...)
2486  Get Back Link returns robot back link information
2487  *backlink = 0-KIN_BACK_LINK_NO | 1-KIN_BACK_LINK_YES | 2-KIN_BACK_LINK_UNKNOWN
2488  Return 0-OK, 1-Error oder Abort
2489  */
2492  static DLLAPI int ER_STDCALL erGetBackLink(ER_HND er_hnd,long *backlink); // obsolete -> use erGetBacklink(...)
2493 
2494  /* erSetBacklink
2495  Set Backlink extended attribute
2496  */
2506  static DLLAPI int ER_STDCALL erSetBacklink(ER_HND er_hnd,long backlink);
2507 
2508  /* erGetBacklink
2509  Get Backlink extended attribute
2510  */
2520  static DLLAPI int ER_STDCALL erGetBacklink(ER_HND er_hnd,long *backlink);
2521 
2522  /* erSetAxis_couplingA2A3
2523  Set Axis_couplingA2A3 extended attribute
2524  */
2534  static DLLAPI int ER_STDCALL erSetAxis_couplingA2A3(ER_HND er_hnd,long axis_couplingA2A3);
2535 
2536  /* erGetAxis_couplingA2A3
2537  Get Axis_couplingA2A3 extended attribute
2538  */
2548  static DLLAPI int ER_STDCALL erGetAxis_couplingA2A3(ER_HND er_hnd,long *axis_couplingA2A3);
2549 
2550  /* erSetCounter_weight
2551  Set Counter_weight extended attribute
2552  */
2562  static DLLAPI int ER_STDCALL erSetCounter_weight(ER_HND er_hnd,long counter_weight);
2563 
2564  /* erGetCounter_weight
2565  Get Counter_weight extended attribute
2566  */
2576  static DLLAPI int ER_STDCALL erGetCounter_weight(ER_HND er_hnd,long *counter_weight);
2577 
2578  /* erSetTurn_interval
2579  Set Turn_interval [rad,m]
2580  */
2591  static DLLAPI int ER_STDCALL erSetTurn_interval(ER_HND er_hnd,double *turn_interval);
2592 
2593  /* erGetTurn_interval
2594  Get Turn_interval [rad,m]
2595  */
2606  static DLLAPI int ER_STDCALL erGetTurn_interval(ER_HND er_hnd,double *turn_interval);
2607 
2608  /* erSetTurn_offset
2609  Set Turn_offset [rad,m]
2610  */
2621  static DLLAPI int ER_STDCALL erSetTurn_offset(ER_HND er_hnd,double *turn_offset);
2622 
2623  /* erGetTurn_offset
2624  Get Turn_offset [rad,m]
2625  */
2636  static DLLAPI int ER_STDCALL erGetTurn_offset(ER_HND er_hnd,double *turn_offset);
2637 
2638  /* erSetTurn_value
2639  Set Turn_value, will set turn_enable
2640  */
2653  static DLLAPI int ER_STDCALL erSetTurn_value(ER_HND er_hnd,long *turn_value);
2654 
2655  /* erGetTurn_value
2656  Get Turn_value
2657  */
2668  static DLLAPI int ER_STDCALL erGetTurn_value(ER_HND er_hnd,long *turn_value);
2669 };
2670 
2671 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_MOP
2673 // class ERK_CAPI_MOP
2674 //
2679 {
2680 public:
2684 
2688 
2692 
2696 
2697 public:
2698  /* erINITIALIZE
2699  Erzeugt ein Roboter Handle
2700  Opcode 101, Chapter 3.4.1, Page 3-26
2701  Return 0-OK, 1-Error
2702  entspricht erInitKin()
2703  */
2713  static DLLAPI int ER_STDCALL erINITIALIZE (ER_HND *er_hnd, Host_HND host_hnd=NULL);
2714 
2715  /* erRESET
2716  Definition: Resets an instance of a robot to an initial state
2717  Opcode 102, Chapter 3.4.1, Page 3-29
2718  Return 0-OK, 1-Error
2719  */
2741  static DLLAPI int ER_STDCALL erRESET(ER_HND er_hnd);
2742 
2743  /* erTERMINATE
2744  Loescht Roboter Handle
2745  Definition: Terminates an instance of a robot of the Kernel
2746  Opcode 103, Chapter 3.4.1, Page 3-30
2747  Return 0-OK, 1-Error
2748  see erUnloadKin()
2749  */
2757  static DLLAPI int ER_STDCALL erTERMINATE(ER_HND *er_hnd);
2758 
2759  /* erSET_INITIAL_POSITION
2760  sets the robot model to a position according to the input data
2761  Opcode 116, Chapter 3.4.3, Page 3-50
2762  Return 0-OK, 1-Error
2763  */
2773  static DLLAPI int ER_STDCALL erSET_INITIAL_POSITION(ER_HND er_hnd, INITIAL_POSITION_DATA *p_initial_position_data);
2774 
2775  /*erSELECT_TRACKING
2776  Definition: Selects the Tracking On or Off in the Kernel
2777  Opcode 146, Chapter 3.4.7, Page 3-93
2778  Return 0-OK, 1-Error, -1- not supported
2779  */
2791  static DLLAPI int ER_STDCALL erSELECT_TRACKING(ER_HND er_hnd, long conveyor_flags);
2792 
2793  /*erSET_CONVEYOR_POSITION
2794  Definition: Sends the conveyor position to the Kernel
2795  Opcode 147, Chapter 3.4.7, Page 3-94
2796  Return 0-OK, 1-Error, -1- not supported
2797  */
2813  static DLLAPI int ER_STDCALL erSET_CONVEYOR_POSITION(ER_HND er_hnd, long input_format, long conveyor_flags, double conveyor_pos);
2814 
2815  /*erDEFINE_EVENT
2816  Definition: Defines an internal asynchronous event that is to be generated relative to position and/or time in the Kernel
2817  Opcode 148, Chapter 3.4.8, Page 3-96
2818  Return 0-OK, 1-Error, -1- not supported
2819  */
2833  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);
2834 
2835  /*erCANCEL_EVENT
2836  Definition: This function makes it possible to cancel an event previously defined in the Kernel by the erDEFINE_EVENT() function
2837  Opcode 149, Chapter 3.4.8, Page 3-99
2838  Return 0-OK, 1-Error, -1- not supported
2839  */
2849  static DLLAPI int ER_STDCALL erCANCEL_EVENT(ER_HND er_hnd, long event_id);
2850 
2851  /*erGET_EVENT
2852  Definition: This function gets information about an internal asynchronous event that occurred in the Kernel
2853  Opcode 150, Chapter 3.4.8, Page 3-100
2854  Return 0-OK, 1-Error, -1- not supported
2855  */
2865  static DLLAPI int ER_STDCALL erGET_EVENT(ER_HND er_hnd, long event_nr);
2866 
2867  /*erGET_MESSAGE
2868  Definition: Gives information about controller messages that occurred
2869  Opcode 154, Chapter 3.4.9, Page 3-104
2870  Return 0-OK, 1-Error, -1- not supported
2871  */
2882  static DLLAPI int ER_STDCALL erGET_MESSAGE(ER_HND er_hnd, long message_number);
2883 };
2884 
2886 // class ERK_CAPI_MOP_DATA
2887 //
2892 {
2893 public:
2913  static DLLAPI int ER_STDCALL erSetTrackingWindow(ER_HND er_hnd, long active, double up, double down, TErTrackingWindowID id_tw, char *name=NULL);
2914 
2915  /* erSetconveyorStartCondition
2916  tx0 - Offsetposition in x-Rtg. bzgl. Conveyorflanch
2917  Return 0-OK, 1-Error
2918  */
2928  static DLLAPI int ER_STDCALL erSetconveyorStartCondition(ER_HND er_hnd, double tx0);
2929 
2930  /* erSetSpeedReductionEnable
2931  */
2943  static DLLAPI int ER_STDCALL erSetSpeedReductionEnable(ER_HND er_hnd,long speed_reduction_enable);
2944 
2945  /* erGetSpeedReductionEnable
2946  */
2958  static DLLAPI int ER_STDCALL erGetSpeedReductionEnable(ER_HND er_hnd,long *speed_reduction_enable);
2959 
2960  /*erSELECT_MOTION_TYPE
2961  motion_type, ER_JOINT = 1, ER_LIN = 2, ER_SLEW = 3, ER_CIRC = 4
2962  Opcode 120, Chapter 3.4.4, Page 3-58
2963  */
2974  static DLLAPI int ER_STDCALL erSELECT_MOTION_TYPE(ER_HND er_hnd, long motion_type);
2975 
2976  /*erSELECT_TARGET_TYPE
2977  Definition: selects one of different types for the specification of targets
2978  Opcode 121, Chapter 3.4.4, Page 3-59
2979  Return 0-OK, 1-Error
2980 
2981  Currently supported:
2982  0 - absolute w.r.t. object frame
2983  9 - single axis motion
2984  */
2996  static DLLAPI int ER_STDCALL erSELECT_TARGET_TYPE(ER_HND er_hnd, long target_type);
2997 
2998  /*erSELECT_TRAJECTORY_MODE
2999  Definition: Selects on or off for the trajectory mode
3000  Opcode 122, Chapter 3.4.4, Page 3-62
3001  Return 0-OK, 1-Error, -1-not supported
3002  */
3012  static DLLAPI int ER_STDCALL erSELECT_TRAJECTORY_MODE(ER_HND er_hnd, long trajectory_on);
3013 
3014  /*erSET_ADVANCE_MOTION
3015  Definition: defines the number of motions, the motion planner may run in advance of the interpolator (look_ahead)
3016  Opcode 127, Chapter 3.4.4, Page 3-67
3017  */
3025  static DLLAPI int ER_STDCALL erSET_ADVANCE_MOTION(ER_HND er_hnd, long Number_of_motion);
3026  /*erSET_MOTION_FILTER
3027  Definition: defines the filter factor for smoothing velocity profiles of motions
3028  Opcode 128, Chapter 3.4.4, Page 3-68
3029  */
3038  static DLLAPI int ER_STDCALL erSET_MOTION_FILTER(ER_HND er_hnd, long filter_factor);
3039 
3040  /*erREVERSE_MOTION
3041  Definition: Instructs to do a reverse motion
3042  Opcode 130, Chapter 3.4.4, Page 3-70
3043  Return 0-OK, 1-Error, -1-not supported
3044  */
3057  static DLLAPI int ER_STDCALL erREVERSE_MOTION(ER_HND er_hnd, double distance );
3058 
3059  /*erSET_PAYLOAD_PARAMETER
3060  Definition: Allows specifying payloads at different locations on the robot.
3061  It has to be supported when the payload influences the motion planning.
3062  E.g. the load by a tool on the flange may be specified
3063  Opcode 160, Chapter 3.4.4, Page 3-71
3064  Return 0-OK, 1-Error, -1-not supported
3065  */
3081  static DLLAPI int ER_STDCALL erSET_PAYLOAD_PARAMETER(ER_HND er_hnd, long storage, char *frame_id, long param_number, double param_value);
3082 
3083  /*erSET_CONFIGURATION_CONTROL
3084  Definition: Allows the setting of controller-specific data for the control of robot configurations
3085  Opcode 161, Chapter 3.4.4, Page 3-72
3086  Return 0-OK, 1-Error, -1-not supported
3087  */
3099  static DLLAPI int ER_STDCALL erSET_CONFIGURATION_CONTROL(ER_HND er_hnd, char *param_id, char *param_contents);
3100 
3101  /*erSET_OVERRIDE_SPEED
3102  Definition: Sets correction values for scaling the programmed speed during program execution
3103  Opcode 139, Chapter 3.4.5, Page 3-82
3104  Return 0-OK, 1-Error, -1-not supported
3105  */
3119  static DLLAPI int ER_STDCALL erSET_OVERRIDE_SPEED(ER_HND er_hnd, double correction_value, long correction_type);
3120 
3121  /*erSET_OVERRIDE_ACCELERATION
3122  Definition: Sets correction values for scaling the robot acceleration
3123  Opcode 155, Chapter 3.4.5, Page 3-83
3124  Return 0-OK, 1-Error, -1-not supported
3125  */
3142  static DLLAPI int ER_STDCALL erSET_OVERRIDE_ACCELERATION(ER_HND er_hnd, double correction_value, long accel_type, long correction_type);
3143 
3144  /*erSET_OVERRIDE_SPEED_EX
3145  Definition: Sets override for scaling the programmed speed during program execution
3146  Return 0-OK, 1-Error, -1-not supported
3147  */
3161  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);
3162 
3163  /*erSET_OVERRIDE_ACCELERATION_EX
3164  Definition: Sets override for scaling the programmed acceleration during program execution
3165  Return 0-OK, 1-Error, -1-not supported
3166  */
3180  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);
3181 };
3182 
3184 // class ERK_CAPI_MOP_PATH
3185 //
3191 {
3192 public:
3193 
3194  /* erSetAutoAccel
3195  Enables automatic calculation of acceleration
3196  depending on programmed speed
3197  ON = 7 – Calculation for PTP, POS and ORI
3198  POS = 1 – Calculation for motions for Position
3199  ORI = 2 – Calculation for motions for Orientation
3200  AX = 4 – Calculation for PTP motions
3201  OFF = 0 – Calculation deactivated
3202  */
3219  static DLLAPI int ER_STDCALL erSetAutoAccel(ER_HND er_hnd,long autoaccel);
3220 
3221  /* erGetAutoAccel
3222  Get status for automatic calculation of acceleration
3223  depending on programmed speed
3224  ON = 7 – Calculation for PTP, POS and ORI
3225  POS = 1 – Calculation for motions for Position
3226  ORI = 2 – Calculation for motions for Orientation
3227  AX = 4 – Calculation for PTP motions
3228  OFF = 0 – Calculation deactivated
3229  */
3246  static DLLAPI int ER_STDCALL erGetAutoAccel(ER_HND er_hnd,long *autoaccel);
3247 
3248  /* erSetAccSet
3249  Set lagging of accelerations.
3250  The arguments Acc and Ramp are given in percentage values in the range 20% to 100%
3251  Acc: Acceleration and Deceleration as percentage value of normal values
3252  Ramp: Change of Acceleration and Deceleration as percentage value of normal values
3253  */
3265  static DLLAPI int ER_STDCALL erSetAccSet(ER_HND er_hnd,double acc,double ramp);
3266 
3267  /* erGetAccSet
3268  Get current lagging of accelerations.
3269  The arguments Acc and Ramp are given in percentage values in the range 20% to 100%
3270  Acc: Acceleration and Deceleration as percentage value of normal values
3271  Ramp: Change of Acceleration and Deceleration as percentage value of normal values
3272  */
3284  static DLLAPI int ER_STDCALL erGetAccSet(ER_HND er_hnd,double *acc,double *ramp);
3285 
3286  /* erSET_INTERPOLATION_TIME
3287  sets the interpolation time in [ms]
3288  Opcode 119, Chapter 3.4.3, Page 3-56
3289  Return 0-OK, 1-Error
3290  */
3300  static DLLAPI int ER_STDCALL erSET_INTERPOLATION_TIME(ER_HND er_hnd, double InterpolationTime);
3301 
3302  /*erSELECT_ORIENTATION_INTERPOLATION_MODE
3303  NEW_041112
3304  */
3315  static DLLAPI int ER_STDCALL erSELECT_ORIENTATION_INTERPOLATION_MODE(ER_HND er_hnd, long interpolation_mode, long ori_const);
3316 
3317  /*erSELECT_CIRCULAR_ORIENTATION_INTERPOLATION_MODE
3318  NEW_070122
3319  Definition:
3320  selects the circular orientation interpolation mode
3321  circ_orientation_interpolation_mode:
3322  0: use Start- and Target Orientation
3323  1: use Start-, Via- and Target Orientation, default
3324  2: use Start-, Via- and Target Orientation, hereby the robot reaches the orientation in Via Point
3325  3: Tangential in Abhängigkeit der Orientierung im StartPunkt
3326  4: Constant, Fix
3327  Return 0-OK, 1-Error
3328  */
3338  static DLLAPI int ER_STDCALL erSELECT_CIRCULAR_ORIENTATION_INTERPOLATION_MODE(ER_HND er_hnd, long circ_orientation_interpolation_mode);
3339 
3340  /*erSELECT_DOMINANT_INTERPOLATION
3341  Definition: Sets the interplation space defining the movement
3342  Opcode 124, Chapter 3.4.4, Page 3-66
3343  Return 0-OK, 1-Error
3344  */
3360  static DLLAPI int ER_STDCALL erSELECT_DOMINANT_INTERPOLATION(ER_HND er_hnd, long dominant_int_type, long dominant_int_param=0);
3361 
3362  /*erSET_JOINT_SPEEDS
3363  Definition:
3364  sets the joint speed expressed as percentage of the maximal joint speed for each specified joint
3365  Opcode 131, Chapter 3.4.5, Page 3-74
3366  */
3380  static DLLAPI int ER_STDCALL erSET_JOINT_SPEEDS(ER_HND er_hnd, long all_joint_flags, long joint_flags, double speed_percent);
3381 
3382  /*erSET_CARTESIAN_POSITION_SPEED
3383  Definition: speed for cartesian motion [m/sec]
3384  Opcode 133, Chapter 3.4.5, Page 3-75
3385  Return 0-OK, 1-Error
3386  */
3394  static DLLAPI int ER_STDCALL erSET_CARTESIAN_POSITION_SPEED(ER_HND er_hnd, double speed_value);
3395 
3396  /*erSET_CARTESIAN_ORIENTATION_SPEED
3397  Definition: sets speed for the orientation during cartesian motion [rad/sec]
3398  Opcode 134, Chapter 3.4.5, Page 3-76
3399  Return 0-OK, 1-Error
3400  */
3410  static DLLAPI int ER_STDCALL erSET_CARTESIAN_ORIENTATION_SPEED(ER_HND er_hnd, long rotation_no, double speed_ori_value);
3411 
3412  /*erSET_JOINT_ACCELERATIONS
3413  sets the joint accelerations expressed as percentage of the maximal joint acceleration for each specified joint
3414  Opcode 135, Chapter 3.4.5, Page 3-77
3415  Return 0-OK, 1-Error
3416  */
3433  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);
3434 
3435  /*erSET_CARTESIAN_POSITION_ACCELERATIONS
3436  Definition: sets acceleration for cartesian motion [m/sec^2]
3437  Opcode 137, Chapter 3.4.5, Page 3-78
3438  accel_type
3439  1: // accel
3440  2: // decel
3441  3: // accel + decel
3442  */
3453  static DLLAPI int ER_STDCALL erSET_CARTESIAN_POSITION_ACCELERATION(ER_HND er_hnd, double accel_value, long accel_type);
3454 
3455  /*erSET_CARTESIAN_ORIENTATION_ACCELERATION
3456  Definition: sets the acceleration for the orientation during cartesian motion [rad/sec^2]
3457  Opcode 138, Chapter 3.4.5, Page 3-79
3458  Return 0-OK, 1-Error
3459  */
3472  static DLLAPI int ER_STDCALL erSET_CARTESIAN_ORIENTATION_ACCELERATION(ER_HND er_hnd, long rotation_no, double accel_ori_value, long accel_type);
3473 
3474  /*erGET_CARTESIAN_POSITION_ACCELERATIONS
3475  Definition: gets acceleration for cartesian motion [m/sec^2]
3476  accel_type
3477  1: // accel
3478  2: // decel
3479  Return 0-OK, 1-Error
3480  */
3490  static DLLAPI int ER_STDCALL erGET_CARTESIAN_POSITION_ACCELERATION(ER_HND er_hnd, double *accel_value, long accel_type);
3491 
3492  /*erGET_CARTESIAN_ORIENTATION_ACCELERATION
3493  Definition: Gets the acceleration for the orientation during cartesian motion [rad/sec^2]
3494  accel_type
3495  1: // accel
3496  2: // decel
3497  Return 0-OK, 1-Error
3498  */
3510  static DLLAPI int ER_STDCALL erGET_CARTESIAN_ORIENTATION_ACCELERATION(ER_HND er_hnd, long rotation_no, double *accel_ori_value, long accel_type);
3511 
3512  /*erSET_JOINT_JERKS
3513  Definition: Sets the joint jerk expressed as a percentage of the maximal joint jerk for each specified joint.
3514  Opcode 162, Chapter 3.4.5, Page 3-80
3515  Return 0-OK, 1-Error, -1-not supported
3516  */
3533  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);
3534 
3535  /*erSET_MOTION_TIME
3536  Definition: Specifies the motion time for the next motion
3537  Opcode 156, Chapter 3.4.5, Page 3-81
3538  Return 0-OK, 1-Error, -1-not supported
3539  */
3548  static DLLAPI int ER_STDCALL erSET_MOTION_TIME(ER_HND er_hnd, double time_value);
3549 
3550  /*erSELECT_FLYBY_MODE
3551  */
3562  static DLLAPI int ER_STDCALL erSELECT_FLYBY_MODE(ER_HND er_hnd, long flyby_on);
3563 
3564  /*erSET_FLYBY_CRITERIA_PARAMETER
3565  Definition: Sets the value of a flyby parameter
3566  Opcode 141, Chapter 3.4.6, Page 3-86
3567  Return 0-OK, 1-Error, -1- not supported
3568  */
3580  static DLLAPI int ER_STDCALL erSET_FLYBY_CRITERIA_PARAMETER(ER_HND er_hnd, long param_number, long joint_nr, double param_value);
3581 
3582  /*erSELECT_FLYBY_CRITERIA
3583  Definition: Selects a flyby criterion (parameter)
3584  Opcode 142, Chapter 3.4.6, Page 3-87
3585  Return 0-OK, 1-Error, -1- not supported
3586  */
3596  static DLLAPI int ER_STDCALL erSELECT_FLYBY_CRITERIA(ER_HND er_hnd, long param_number);
3597 
3598  /*erCANCEL_FLYBY_CRITERIA
3599  Definition: Cancels (unselects) a fly-by criterion
3600  Opcode 143, Chapter 3.4.6, Page 3-88
3601  Return 0-OK, 1-Error, -1- not supported
3602  */
3612  static DLLAPI int ER_STDCALL erCANCEL_FLYBY_CRITERIA(ER_HND er_hnd, long param_number);
3613 
3614  /*erSELECT_POINT_ACCURACY
3615  Definition: Selects a criterion for when a target is reached
3616  Opcode 144, Chapter 3.4.6, Page 3-89
3617  Return 0-OK, 1-Error, -1- not supported
3618  */
3628  static DLLAPI int ER_STDCALL erSELECT_POINT_ACCURACY(ER_HND er_hnd, long accuracy_type);
3629 
3630  /*erSET_POINT_ACCURACY_PARAMETER
3631  Definition: Sets the value of a parameter determining point accuracy
3632  Opcode 145, Chapter 3.4.6, Page 3-90
3633  Return 0-OK, 1-Error, -1- not supported
3634  */
3645  static DLLAPI int ER_STDCALL erSET_POINT_ACCURACY_PARAMETER(ER_HND er_hnd, long accuracy_type, double accuracy_value );
3646 };
3647 
3649 // class ERK_CAPI_MOP_PREP
3650 //
3655 {
3656 public:
3657  /* erSET_NEXT_TARGET
3658  sends the next target position. This may include intermediate position, radius, angle for circular motion
3659  Opcode 117, Chapter 3.4.3, Page 3-52
3660  Return
3661  1 - need more data, nothing to do
3662  0 - OK, next step is calculated successful
3663  -17 - specified motion type is not supported
3664  -34 - Error in matrix. Incomplete matrix
3665  -35 - Cartesian position expected
3666  -36 - Joint position expected
3667  -43 - Initial position not set
3668  -51 - no solution is found. One joint is out of range
3669  -52 - Cartesian position is out of work range
3670  -59 - specified position is singular
3671  -68 - fatal error, stopped calculating
3672  -71 - Position not stored, target buffer is full
3673  -78 - The specified position is not acceptable
3674  -79 - Not ready to receive targets
3675  */
3702  static DLLAPI int ER_STDCALL erSET_NEXT_TARGET(ER_HND er_hnd, NEXT_TARGET_DATA *p_next_target_data);
3703 
3704  /* erSET_NEXT_TARGET_ADVANCE
3705  Definition: Sends about next target data
3706  Return 0-OK, 1-Error
3707  */
3718  static DLLAPI int ER_STDCALL erSET_NEXT_TARGET_ADVANCE(ER_HND er_hnd, NEXT_TARGET_DATA_ADVANCE *p_next_target_data_advance);
3719 
3720  /*erSTOP_MOTION
3721  Definition: Stops the on-going motion toward the target
3722  Opcode 151, Chapter 3.4.8, Page 3-101
3723  Return 0-OK, 1-Error
3724  */
3736  static DLLAPI int ER_STDCALL erSTOP_MOTION(ER_HND er_hnd);
3737 
3738  /*erCONTINUE_MOTION
3739  Definition: Continues a motion that was stopped with the erSTOP_MOTION() function
3740  Opcode 152, Chapter 3.4.8, Page 3-102
3741  Return 0-OK, 1-Error
3742  */
3753  static DLLAPI int ER_STDCALL erCONTINUE_MOTION(ER_HND er_hnd);
3754 
3755  /*erCANCEL_MOTION
3756  Definition: Cancel a motion that was stopped with erSTOP_MOTION() function
3757  Opcode 153, Chapter 3.4.8, Page 3-103
3758  Return 0-OK, 1-Error
3759  */
3770  static DLLAPI int ER_STDCALL erCANCEL_MOTION(ER_HND er_hnd);
3771 };
3772 
3774 // class ERK_CAPI_MOP_EXEC
3775 //
3780 {
3781 public:
3782  /* erGET_NEXT_STEP
3783  returns the next interpolated position step, the
3784  elapsed time and supplementary information like events, joint limits and messages
3785  Opcode 118, Chapter 3.4.3, Page 3-54
3786  Return
3787  2 - final step, target reached or speed is zero
3788  1 - need more data, nothing to do
3789  0 - OK, next step is calculated successful
3790  -13 - the specified output format is not supported
3791  -17 - the specified motion type is not supported
3792  -25 - the motion is not possible in the specified time
3793  -42 - no target set
3794  -51 - no solution is found. One joint is out of range
3795  -52 - Cartesian position is out of work range
3796  -68 - fatal error, stopped calculating
3797  -76 - incomplete or inconsistent motion specification, can't move
3798  -1053 - Cartesian position is out of boudary work range
3799  -1059 - Cartesian position is singular
3800  */
3832  static DLLAPI int ER_STDCALL erGET_NEXT_STEP(ER_HND er_hnd, long output_format, NEXT_STEP_DATA *p_next_step_data, double time);
3833 
3843  static DLLAPI int ER_STDCALL erGetCurrentStepData(ER_HND er_hnd, CURRENT_STEP_DATA *p_current_step_data);
3844 
3845  /*erSET_OVERRIDE_POSITION
3846  Definition: Sets a correction offset which will be added to the path during program execution
3847  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.
3848  Opcode 129, Chapter 3.4.4, Page 3-69
3849  Return 0-OK, 1-Error, -1- not supported
3850  */
3860  static DLLAPI int ER_STDCALL erSET_OVERRIDE_POSITION(ER_HND er_hnd, DFRAME *PosOffset);
3861 
3862  /*erGET_CURRENT_TARGETID
3863  Definition: Returns the TargetID of the motion in execution
3864  Opcode 163, Chapter 3.4.6, Page 3-91
3865  Return 0-OK, 1-Error
3866  */
3875 };
3876 
3877 
3878 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_TOOLPATH
3880 // class ERK_CAPI_TOOLPATH
3881 //
3886 {
3887 public:
3891 
3895 
3899 
3903 
3907 
3911 
3915 
3919 
3923 
3927 
3931 
3935 
3939 
3943 
3947 
3948 public:
3974  static DLLAPI int ER_STDCALL erInitToolPath (ER_HND er_hnd, ER_TOOLPATH_HND *er_tpth_hnd);
3975 
3981  static DLLAPI int ER_STDCALL erUnloadToolPath (ER_TOOLPATH_HND *er_tpth_hnd);
3982 
3993  static DLLAPI int ER_STDCALL erInsertToolPath (ER_HND er_hnd, ER_TOOLPATH_HND *er_tpth_hnd, ER_TOOLPATH_HND er_tpth_hnd_ref);
3994 
4002  static DLLAPI int ER_STDCALL erSwapToolPath (ER_TOOLPATH_HND er_tpth_hnd1, ER_TOOLPATH_HND er_tpth_hnd2);
4003 
4010 
4015  static DLLAPI char* ER_STDCALL erToolPathName (ER_TOOLPATH_HND er_tpth_hnd); // Name ToolPath
4016 
4023  static DLLAPI long ER_STDCALL erToolPathEnable (ER_TOOLPATH_HND er_tpth_hnd, long enable); // 0-Disable, 1-Enable, 2-Status
4024 
4030  static DLLAPI ER_HND ER_STDCALL erToolPathGetRobotHandle (ER_TOOLPATH_HND er_tpth_hnd); // Get Robot Handle belonging to tool path handle
4036  static DLLAPI ER_HND ER_STDCALL erToolPathGetTrackMotionHandle (ER_TOOLPATH_HND er_tpth_hnd); // Get TrackMotion Handle belonging to tool path handle
4042  static DLLAPI ER_HND ER_STDCALL erToolPathGetPositionerHandle (ER_TOOLPATH_HND er_tpth_hnd); // Get Positioner Handle belonging to tool path handle
4048  static DLLAPI ER_HND ER_STDCALL erToolPathGetConveyorHandle (ER_TOOLPATH_HND er_tpth_hnd); // Get Conveyor Handle belonging to tool path handle
4049 
4058  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
4059 
4068  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
4069 
4078  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
4079 
4084  static DLLAPI char* ER_STDCALL erToolPathLogFileName (ER_TOOLPATH_HND er_tpth_hnd); // Log File Name ToolPath
4089  static DLLAPI char* ER_STDCALL erToolPathPrgFileName (ER_TOOLPATH_HND er_tpth_hnd); // Prg File Name ToolPath
4090 
4101 
4109  static DLLAPI long ER_STDCALL CpyEventsTemplate(ER_TOOLPATH_HND er_tpth_hnd, ER_TARGET_EVENTS_HND hnd); // Copy target events data to template
4116  static DLLAPI ER_TARGET_EVENTS_HND ER_STDCALL GetEventsTemplateHnd(ER_TOOLPATH_HND er_tpth_hnd); // Get handle to internal events template data
4117 
4125  static DLLAPI long ER_STDCALL CpyMotionAttributesTemplate (ER_TOOLPATH_HND er_tpth_hnd, ER_TARGET_ATTRIBUTES_HND hnd); // Copy target attributes data to template
4132  static DLLAPI ER_TARGET_ATTRIBUTES_HND ER_STDCALL GetMotionAttributesTemplateHnd (ER_TOOLPATH_HND er_tpth_hnd); // Get handle to internal attributes template data
4133 
4149 
4165 
4181 
4197 
4206 
4214 
4215 
4222  static DLLAPI long ER_STDCALL erToolPathReset (ER_TOOLPATH_HND er_tpth_hnd); // Reset all tool path target locations
4231  static DLLAPI int ER_STDCALL erToolPathResetInitRobot (ER_TOOLPATH_HND er_tpth_hnd,double *q_start=NULL);
4240  static DLLAPI int ER_STDCALL erToolPathResetInitTrackMotion (ER_TOOLPATH_HND er_tpth_hnd,double *q_start=NULL);
4249  static DLLAPI int ER_STDCALL erToolPathResetInitPositioner (ER_TOOLPATH_HND er_tpth_hnd,double *q_start=NULL);
4258  static DLLAPI int ER_STDCALL erToolPathResetInitConveyor (ER_TOOLPATH_HND er_tpth_hnd,double *q_start=NULL);
4259 
4260 
4269  static DLLAPI int ER_STDCALL erToolPathSetInitPos (ER_TOOLPATH_HND er_tpth_hnd,double InterpolationTime=0);
4270 
4323  static DLLAPI int ER_STDCALL erGET_NEXT_TOOLPATH_STEP_INIT(ER_TOOLPATH_HND er_tpth_hnd, long cntrl);
4324 
4427  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);
4428 
4435 
4444 };
4445 
4446 
4451 {
4452 public:
4453  // Target Locations
4462  static DLLAPI long ER_STDCALL erTargetLocationReset (ER_TARGET_LOCATION_HND er_tarloc_hnd); // Reset target location
4463 
4473  static DLLAPI int ER_STDCALL erAddTargetLocation (ER_TOOLPATH_HND er_tpth_hnd,ER_TARGET_LOCATION_HND *er_tarloc_hnd);
4474 
4487  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);
4488 
4496  static DLLAPI int ER_STDCALL erUnloadTargetLocation (ER_TARGET_LOCATION_HND *er_tarloc_hnd);
4497 
4507  static DLLAPI int ER_STDCALL erSwapTargetLocation (ER_TARGET_LOCATION_HND er_tarloc_hnd1, ER_TARGET_LOCATION_HND er_tarloc_hnd2);
4508 
4515 
4521  static DLLAPI char* ER_STDCALL erGetTargetLocationName (ER_TARGET_LOCATION_HND er_tarloc_hnd);
4522 
4529 
4535 
4540  static DLLAPI ER_HND ER_STDCALL erhGetTargetLocationER_HND (ER_TARGET_LOCATION_HND er_tarloc_hnd); // Device Handle belonging to target location handle
4541 
4548 
4555 
4562 
4569 
4582  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);
4583 
4599  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);
4615  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);
4616 
4629  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);
4645  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);
4661  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);
4662 
4678  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);
4694  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);
4695 
4712  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);
4729  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);
4730  //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);
4731  //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);
4732 };
4733 
4738 {
4739 public:
4740  // Header Data
4753 
4760 
4766  static DLLAPI char* ER_STDCALL erGetTargetLocationName (ER_TARGET_LOCATION_HND er_tarloc_hnd);
4767 
4774 
4785  static DLLAPI long ER_STDCALL erTargetLocationValid (ER_TARGET_LOCATION_HND er_tarloc_hnd, long valid);
4786 };
4787 
4792 {
4793 public:
4794  // Instructions, individual information text
4804 
4812 
4820 
4828 
4838  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
4839 };
4840 
4845 {
4846 public:
4847  // Events
4859 
4893  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);
4910  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);
4911 
4942  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);
4943 };
4944 
4945 
4950 {
4951 public:
4952  // Auxiliary Motion Attributes
4959 };
4960 
4965 {
4966 public:
4967  // Motion Attributes
4978 
4985  static DLLAPI long *ER_STDCALL inq_enabled (ER_TARGET_ATTRIBUTES_HND hnd); // enables/disables this target
4986 
4992  static DLLAPI TErTargetID *ER_STDCALL inq_target_id (ER_TARGET_ATTRIBUTES_HND hnd); // unique target ID, NEXT_TARGET_DATA.TargetID
4993 
5001  static DLLAPI double *ER_STDCALL inq_WobjCartPosVec(ER_TARGET_ATTRIBUTES_HND hnd); // WorkObject valid for all cartesian targets CartPosVec, CartPosVecVia
5010  static DLLAPI DFRAME *ER_STDCALL Get_WobjCartPosFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *WobjCartPosFrame); // WorkObject valid for all cartesian targets CartPosVec, CartPosVecVia
5019  static DLLAPI DFRAME *ER_STDCALL Set_WobjCartPosFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *WobjCartPosFrame); // WorkObject valid for all cartesian targets CartPosVec, CartPosVecVia
5020 
5027  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()
5028 
5029 
5038  static DLLAPI double *ER_STDCALL inq_BaseVec (ER_TARGET_ATTRIBUTES_HND hnd); // work object, $BASE, $UFrame has only effect if ::IPO_MODE_BASE, erSetBaseRobotBase()
5048  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()
5058  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()
5059 
5067  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()
5068 
5076  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()
5077 
5104 
5121 
5122 
5149 
5166 
5167 
5194 
5211 
5219  static DLLAPI double *ER_STDCALL inq_ToolVec (ER_TARGET_ATTRIBUTES_HND hnd); // Tool/TCP data, erSetTool()
5228  static DLLAPI DFRAME *ER_STDCALL Get_ToolFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *ToolFrame); // Tool/TCP data, erSetTool()
5237  static DLLAPI DFRAME *ER_STDCALL Set_ToolFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *ToolFrame); // Tool/TCP data, erSetTool()
5238 
5246  static DLLAPI long *ER_STDCALL inq_ToolIdx (ER_TARGET_ATTRIBUTES_HND hnd); // user defined Idx for Tool/TCP data, erSetTool()
5254  static DLLAPI char *ER_STDCALL inq_ToolName (ER_TARGET_ATTRIBUTES_HND hnd); // user defined Name for Tool/TCP data, erSetTool()
5255 
5263  static DLLAPI double *ER_STDCALL inq_ToolOffsetVec(ER_TARGET_ATTRIBUTES_HND hnd); // Tool/TCP offset data, erSetToolOffset()
5272  static DLLAPI DFRAME *ER_STDCALL Get_ToolOffsetFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *ToolOffsetFrame); // Tool/TCP offset data, erSetToolOffset()
5281  static DLLAPI DFRAME *ER_STDCALL Set_ToolOffsetFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *ToolOffsetFrame); // Tool/TCP offset data, erSetToolOffset()
5289  static DLLAPI long *ER_STDCALL inq_ToolOffsetIdx(ER_TARGET_ATTRIBUTES_HND hnd); // user defined Idx for Tool/TCP offset data, erSetToolOffset()
5297  static DLLAPI char *ER_STDCALL inq_ToolOffsetName(ER_TARGET_ATTRIBUTES_HND hnd); // user defined Name for Tool/TCP offset data, erSetToolOffset()
5298 
5311  static DLLAPI long *ER_STDCALL inq_speed_reduction_enable(ER_TARGET_ATTRIBUTES_HND hnd); // ER_SPEED_REDUCTION_ENABLE , ER_SPEED_REDUCTION_DISABLE, erGetSpeedReductionEnable()
5312 
5330  static DLLAPI long *ER_STDCALL inq_motype (ER_TARGET_ATTRIBUTES_HND hnd); // ER_JOINT , ER_LIN, ER_SLEW, ER_CIRC, erSELECT_MOTION_TYPE()
5331 
5341  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()
5342 
5350  static DLLAPI long *ER_STDCALL inq_advance_motion (ER_TARGET_ATTRIBUTES_HND hnd); // look ahead by 1 is only supported, erSET_ADVANCE_MOTION()
5351 
5359  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()
5360 
5361 
5370  static DLLAPI double *ER_STDCALL inq_acc (ER_TARGET_ATTRIBUTES_HND hnd); // 20-100[%] Set lagging of accelerations deceleration, erSetAccSet()
5371 
5380  static DLLAPI double *ER_STDCALL inq_ramp (ER_TARGET_ATTRIBUTES_HND hnd); // 20-100[%] Set lagging of accelerations deceleration, erSetAccSet()
5381 
5391  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()
5392 
5402  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()
5403 
5413  static DLLAPI double *ER_STDCALL inq_flyby_speed_percent (ER_TARGET_ATTRIBUTES_HND hnd);// if flyby_on enabled: [%], erSET_FLYBY_CRITERIA_PARAMETER(), tbd
5414 
5424  static DLLAPI double *ER_STDCALL inq_flyby_dist (ER_TARGET_ATTRIBUTES_HND hnd); // if flyby_on enabled: [m], erSET_FLYBY_CRITERIA_PARAMETER(), tbd
5425 
5441  static DLLAPI long *ER_STDCALL inq_autoaccel (ER_TARGET_ATTRIBUTES_HND hnd); // ER_AUTOACCEL_MODE_OFF, -_POS, -_ORI, -_AX, -_DEF, -_ON, erSetAutoAccel()
5442 
5451  static DLLAPI double *ER_STDCALL inq_LeadWaitTime (ER_TARGET_ATTRIBUTES_HND hnd); // Wait time [s], before move will start, NEXT_TARGET_DATA.LeadWaitTime
5460  static DLLAPI double *ER_STDCALL inq_LagWaitTime (ER_TARGET_ATTRIBUTES_HND hnd); // Wait time [s], after robot reaches its target, NEXT_TARGET_DATA.LagWaitTime
5461 };
5462 
5467 {
5468 public:
5469  // Target data for Joint Move
5489  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()
5490 
5496  static DLLAPI double *ER_STDCALL inq_speed_percent (ER_TARGET_MOVE_JOINT_HND hnd); // joint speed [%], erSET_JOINT_SPEEDS()
5502  static DLLAPI double *ER_STDCALL inq_accel_percent (ER_TARGET_MOVE_JOINT_HND hnd); // joint acceleration [%], erSET_JOINT_ACCELERATIONS()
5512  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
5523  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
5529  static DLLAPI long *ER_STDCALL inq_configuration (ER_TARGET_MOVE_JOINT_HND hnd); // Target manipulator configuration string, NEXT_TARGET_DATA.Configuration
5537  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
5538 
5546  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[]
5547 };
5548 
5553 {
5554 public:
5555  // Target data for CP Move
5574  static DLLAPI long *ER_STDCALL inq_target_type (ER_TARGET_MOVE_CP_HND hnd); // ER_TARGET_TYPE_ABS
5580  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()
5586  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()
5592  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()
5598  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()
5609  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
5619  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
5627  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()
5641  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()
5642 };
5643 
5648 {
5649 public:
5650  // Motion execution data at target
5673  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
5680  static DLLAPI double ER_STDCALL erGetMotionExec_time_stamp (ER_TARGET_MOTION_EXEC_HND hnd); // Time stamp [s] when target location is reached
5685  static DLLAPI double ER_STDCALL erGetMotionExec_trajectory_time (ER_TARGET_MOTION_EXEC_HND hnd); // Trajectory Time [s] for current motion to target
5699  static DLLAPI long ER_STDCALL erGetMotionExec_configuration (ER_TARGET_MOTION_EXEC_HND hnd); // current manipulator configuration at target location, [1..number of robot configurations]
5700 
5706  static DLLAPI double *ER_STDCALL erGetMotionExec_JointPos (ER_TARGET_MOTION_EXEC_HND hnd); // Joint Location at target location
5707 
5713  static DLLAPI double *ER_STDCALL erGetMotionExec_ExtAxValues (ER_TARGET_MOTION_EXEC_HND hnd); // External axis values at target location
5714 };
5715 
5720 {
5721 public:
5722  // External axis data definition for Track/Slider-Motion
5771 
5778  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
5779 
5787  static DLLAPI long *ER_STDCALL inq_sync_type (ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND hnd); // ER_SYNC_OFF, ER_SYNC_ON, erConnectTrackMotionSetSync(), erConnectPositionerSetSync()
5788 
5802  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[]
5803 
5817  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);
5818 };
5823 {
5824 public:
5825  // External axis data definition for Positioner/TurnTable
5892  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
5893 
5901  static DLLAPI long *ER_STDCALL inq_sync_type (ER_TARGET_EXTAX_DEVICE_POSITIONER_HND hnd); // ER_SYNC_OFF, ER_SYNC_ON, erConnectPositionerSetSync()
5915  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[]
5929  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);
5930 };
5931 
5936 {
5937 public:
5956  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
5964  static DLLAPI long *ER_STDCALL inq_sync_type(ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND hnd); // ER_SYNC_OFF, ER_SYNC_ON, erConnectConveyorSetSync()
5978  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[]
5992  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);
5993 
6013  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);
6014 
6025 };
6026 
6031 {
6032 public:
6043  static DLLAPI long ER_STDCALL erTPth_TBox_Fct(int FctIdx, int FctSubIdx, ER_TOOLPATH_HND er_tpth_hnd, int constraint_param, char *svalues=NULL);
6044 };
6045 
6050 {
6051 public:
6091  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);
6092 };
6093 
6098 {
6099 public:
6105  static DLLAPI int ER_STDCALL erTPth_Fct(ER_TOOLPATH_HND er_tpth_hnd);
6106 };
6107 
6108 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_SIM
6110 // class ERK_CAPI_SIM
6111 //
6115 class ERK_CAPI_SIM: public ERK_CAPI
6116 {
6117 public:
6121 };
6122 
6124 // class ERK_CAPI_SIM_COLLISION
6125 //
6130 {
6131 public:
6132  /* Creates a collision handle for one Model and preallocate memory for n_tris triangles
6133  */
6142  static DLLAPI int ER_STDCALL erColl_BeginModel(ER_COLLISION_HND *er_coll_hnd, long n_tris);
6143 
6144  /* Adds a triangle to a Model
6145  */
6157  static DLLAPI int ER_STDCALL erColl_AddTri(ER_COLLISION_HND er_coll_hnd, double *p1, double *p2, double *p3, long id);
6158 
6159  /* brief Stop building a Model
6160  */
6167  static DLLAPI int ER_STDCALL erColl_EndModel(ER_COLLISION_HND er_coll_hnd);
6168 
6169  /* Perform the collision check of two Models
6170  See also erColl_ChkCollision_res() to get the collision results immediately
6171  */
6325  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);
6326 
6327  /* Perform the collision check of two Models
6328  Collision results returned immediately compared to erColl_ChkCollision()
6329  */
6673  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);
6674 
6706  static DLLAPI int ER_STDCALL erColl_ChkCollision_res_free(long query_type, void *pres);
6707 
6708  /* Unload a Model. Free all allocated memory
6709  */
6716  static DLLAPI int ER_STDCALL erColl_UnloadModel(ER_COLLISION_HND *er_coll_hnd);
6717 
6718  /* Get Collision result for query ::ER_COLL_QUERY_TYPE_COLLIDE
6719  */
6728 
6729  /* Get Collision result for query ::ER_COLL_QUERY_TYPE_DISTANCE
6730  */
6739 
6740  /* Get Collision result for query ::ER_COLL_QUERY_TYPE_TOLERANCE
6741  */
6750 };
6751 
6753 // class ERK_CAPI_AUTOPATH
6754 //
6759 {
6760 public:
6764  static DLLAPI char* ER_STDCALL AutoPathVer(void);
6765 
6773 
6849 
6857 
6865 
6932  static DLLAPI int ER_STDCALL AutoPath_SetCallback_CheckConstraints(BOOL (*ptr_CheckConstraints)(int,void*));
6933 
6941  static DLLAPI int ER_STDCALL SetPoseStart(double *pose_start);
6942 
6950  static DLLAPI int ER_STDCALL SetPoseEnd(double *pose_end);
6951 
6958  static DLLAPI int ER_STDCALL FindPath(void);
6959 
6963  static DLLAPI double* ER_STDCALL GetConfigurationPose(void);
6964 
6968  static DLLAPI double* ER_STDCALL GetStartPose(void);
6969 
6973  static DLLAPI double* ER_STDCALL GetEndPose(void);
6974 
6978  static DLLAPI double* ER_STDCALL GetAxisConstraintsMin(void);
6979 
6983  static DLLAPI double* ER_STDCALL GetAxisConstraintsMax(void);
6984 
6990  static DLLAPI int ER_STDCALL AbortPlanning(void);
6991 
6998  static DLLAPI int ER_STDCALL GetPlanningStatus(void);
6999 
7004  static DLLAPI int ER_STDCALL GetNumberOfWayPoints(void);
7005 
7009  static DLLAPI int ER_STDCALL GetWayPointDof(void);
7010 
7015  static DLLAPI double* ER_STDCALL GetWayPoint(int idx);
7020  static DLLAPI int ER_STDCALL ClearAllWayPoints(void);
7021 
7027  static DLLAPI int ER_STDCALL SetAccuracy(UINT accuracy);
7028 
7038  static DLLAPI int ER_STDCALL SetAxisConstraints(int axisBit=AUTOPATH_SDK_AXIS_BIT_DOF6, int setting=0, double qConstraintMin=0, double qConstraintMax=0);
7039 
7046  static DLLAPI int ER_STDCALL SetAxisPriority(int axisBit, int priority);
7051  static DLLAPI int ER_STDCALL SetAxisEnable(int axisBit, int enable);
7052 
7069  static DLLAPI int ER_STDCALL SetParameter(int ap_option, int ap_value);
7085  static DLLAPI int ER_STDCALL GetParameter(int ap_option);
7086 
7120  static DLLAPI int ER_STDCALL GetResults(int ap_result);
7121 };
7122 
7123 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_TARGETS
7125 // class ERK_CAPI_TARGETS
7126 //
7131 {
7132 public:
7133 };
7134 
7135 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_GEO
7137 // class ERK_CAPI_GEO
7138 //
7142 class ERK_CAPI_GEO : public ERK_CAPI
7143 {
7144 public:
7148 
7149 public:
7150  /* erUpdateGeo
7151  Update all Models for each robot joint
7152  */
7161  static DLLAPI int ER_STDCALL erUpdateGeo(ER_HND er_hnd);
7162 };
7163 
7165 // class ERK_CAPI_GEO_MNGR
7166 //
7171 {
7172 public:
7173  //~~~~~~~~~~~~~~~~~~~~~
7174  // Administration
7175  //~~~~~~~~~~~~~~~~~~~~~
7179  static DLLAPI int ER_STDCALL erGeoMngr_GetVersion();
7180 
7186  static DLLAPI TErGeoHandle ER_STDCALL erGeoMngr_LoadGeometry(ER_HND er_hnd, LOAD_GEOMETRY_DATA *p_load_geometry_data);
7187 
7194  static DLLAPI int ER_STDCALL erGeoMngr_FreeGeometry(ER_HND er_hnd, TErGeoHandle GeoHandle);
7195 
7196  //~~~~~~~~~~~~~~~~~~~~~
7197  // Access to geometries
7198  //~~~~~~~~~~~~~~~~~~~~~
7205 
7214  static DLLAPI int ER_STDCALL erGeoMngr_GetGeometry(ER_HND er_hnd, int geometryIndex, LOAD_GEOMETRY_DATA *p_load_geometry_data, DFRAME* kinMat);
7215 
7312  static DLLAPI int ER_STDCALL erGeoMngr_GetNumAxisGeometries(ER_HND er_hnd, int axis_nr);
7313 
7314  // fills structure pointed to by p_load_geometry_data with geometry loading data
7315 
7325  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);
7326 
7357  static DLLAPI const double* ER_STDCALL erGeoMngr_GetGeometryBBox(TErGeoHandle geometryHandle);
7358 
7359  // Achsen-BBox über alle Geometry-BBoxes einer Achse
7360  static DLLAPI const double* ER_STDCALL erGeoMngr_GetAxisBBox(ER_HND er_hnd, int axis_id);
7361  // Device-BBox
7362  static DLLAPI const double* ER_STDCALL erGeoMngr_GetDeviceBBox(ER_HND er_hnd);
7363  static DLLAPI int ER_STDCALL erGeoMngr_GetGeometryNumObjs(TErGeoHandle geometryHandle);
7364 
7365  static DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumPoints(TErGeoHandle geometryHandle, int objidx);
7366  static DLLAPI double* ER_STDCALL erGeoMngr_GetGeometryObjPoint(TErGeoHandle geometryHandle, int objidx, int index);
7367  static DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumPointNormals(TErGeoHandle geometryHandle, int objidx);
7368  static DLLAPI double* ER_STDCALL erGeoMngr_GetGeometryObjPointNormal(TErGeoHandle geometryHandle, int objidx, int index);
7369  static DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumLines(TErGeoHandle geometryHandle, int objidx);
7370  static DLLAPI size_t* ER_STDCALL erGeoMngr_GetGeometryObjLine(TErGeoHandle geometryHandle, int objidx, int index);
7371  static DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumPolygons(TErGeoHandle geometryHandle, int objidx);
7372  static DLLAPI size_t* ER_STDCALL erGeoMngr_GetGeometryObjPolygon(TErGeoHandle geometryHandle, int objidx, int index);
7373 
7374  // ist die Obj-Color intern -2 (USER_COLOR); wird die user color (die Farbe, die in der LOAD_GEOMETRY_DATA-Struktur steht); zurückgegeben
7375  // sonst : konkrete Farbe
7376  static DLLAPI double* ER_STDCALL erGeoMngr_GetGeometryObjColor(TErGeoHandle geometryHandle, int objidx);
7377  // der Farbcode (kann auch -2 (USER_COLOR); sein, damit die Host-Applikation eine eigene UserColor festlegen kann);
7378  static DLLAPI long ER_STDCALL erGeoMngr_GetGeometryObjColorCode(TErGeoHandle geometryHandle, int objidx);
7379 
7380  // Get number of clones >=1
7382  // Get clone handle
7384  //double* ER_STDCALL erGeoMngr_GetGeometryPolygoneNormal(TErGeoHandle geometryHandle, int index);
7385  //double* ER_STDCALL erGeoMngr_GetGeometryPolygoneCenter(TErGeoHandle geometryHandle, int index);
7386  static DLLAPI int ER_STDCALL erGeoMngr_SetGeometryCollisionHandle(TErGeoHandle geometryHandle, ER_COLLISION_HND collisionHandle);
7388  static DLLAPI int ER_STDCALL erGeoMngr_SetGeometryIsCollided(TErGeoHandle geometryHandle, int isCollided);
7389  static DLLAPI int* ER_STDCALL erGeoMngr_GetGeometryIsCollided(TErGeoHandle geometryHandle);
7390  static DLLAPI int ER_STDCALL erGeoMngr_CheckBoundingBoxCollision(DFRAME* T1, const double* bbox1, DFRAME* T2, const double* bbox2, double tolerance);
7391 };
7392 
7393 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_SYS
7395 // class ERK_CAPI_SYS
7396 //
7400 class ERK_CAPI_SYS : public ERK_CAPI
7401 {
7402 public:
7406 
7410 };
7411 
7413 // class ERK_CAPI_SYS_UTILITIES
7414 //
7419 {
7420 public:
7421 };
7422 
7424 // class ERK_CAPI_SYS_MATHEMATICS
7425 //
7430 {
7431 public:
7446  static DLLAPI int ER_STDCALL erMath_FrameToVecIdx(DFRAME *T, double *vec, long rotation_idx=ER_ROT_XYZ);
7447 
7462  static DLLAPI int ER_STDCALL erMath_VecToFrameIdx(double *vec, DFRAME *T, long rotation_idx=ER_ROT_XYZ);
7463 
7478  static DLLAPI int ER_STDCALL erMath_PxyzRxyzToFrame(double x,double y,double z,double Rx,double Ry,double Rz, DFRAME *T);
7479 
7487  static DLLAPI int ER_STDCALL erMath_Frame_Ident(DFRAME *T); // T = Ident
7488 
7499  static DLLAPI int ER_STDCALL erMath_Frame_Trans(DFRAME *T, double x, double y, double z); // set frame position T.p[] = [x,y,z]
7500 
7512  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)
7513 
7524  static DLLAPI int ER_STDCALL erMath_AngleBetween(DFRAME *Ts, DFRAME *Te, double *angle, double *k=NULL);
7525 
7536  static DLLAPI int ER_STDCALL erMath_DistBetween(DFRAME *Ts, DFRAME *Te, double *dist, double *dv=NULL);
7537 
7550  static DLLAPI int ER_STDCALL erMath_CircCenterPoint(double *ps, double *pv, double *pe, DFRAME *pTc, double *radius, double *phi, double *phi_via = NULL);
7551 
7552 
7561  static DLLAPI int ER_STDCALL erMath_invT(DFRAME *To,DFRAME *Ti); // To = inv(Ti)
7562 
7571  static DLLAPI int ER_STDCALL erMath_invR(DFRAME *Ro,DFRAME *Ri); // Ro = inv(Ri) = transpose(Ri) = Ri'
7572 
7582  static DLLAPI int ER_STDCALL erMath_mul_R_R(DFRAME *Ro,DFRAME *Ri1,DFRAME *Ri2); // Ro = Ri1 * Ri2
7583 
7593  static DLLAPI int ER_STDCALL erMath_mul_T_T(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2); // To = Ti1 * Ti2
7594 
7606  static DLLAPI int ER_STDCALL erMath_mul_T_invT (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2); // To = Ti1 * inv(Ti2)
7607 
7619  static DLLAPI int ER_STDCALL erMath_mul_invT_T (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2); // To = inv(Ti1) * Ti2
7620 
7632  static DLLAPI int ER_STDCALL erMath_mul_invT_invT (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2); // To = inv(Ti1) * inv(Ti2)
7633 
7644  static DLLAPI int ER_STDCALL erMath_mul_T_pos (double *po,DFRAME *T,double *pi); // po = T * pi
7645 
7657  static DLLAPI int ER_STDCALL erMath_mul_invT_pos (double *po,DFRAME *T,double *pi); // po = inv(T) * pi
7658 
7668  static DLLAPI int ER_STDCALL erMath_mul_R_pos (double *po,DFRAME *R,double *pi); // po = R * pi
7669 
7681  static DLLAPI int ER_STDCALL erMath_mul_invR_pos (double *po,DFRAME *R,double *pi); // po = R' * pi
7682 
7693  static DLLAPI int ER_STDCALL erMath_mul_T_T_T(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = Ti1 * Ti2 * Ti3
7694 
7707  static DLLAPI int ER_STDCALL erMath_mul_T_T_invT(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = Ti1 * Ti2 * inv(Ti3)
7708 
7721  static DLLAPI int ER_STDCALL erMath_mul_T_invT_T(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = Ti1 * inv(Ti2) * Ti3
7722 
7735  static DLLAPI int ER_STDCALL erMath_mul_T_invT_invT(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = Ti1 * inv(Ti2) * inv(Ti3)
7736 
7749  static DLLAPI int ER_STDCALL erMath_mul_invT_T_T(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = inv(Ti1) * Ti2 * Ti3
7750 
7763  static DLLAPI int ER_STDCALL erMath_mul_invT_T_invT(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = inv(Ti1) * Ti2 * inv(Ti3)
7764 
7777  static DLLAPI int ER_STDCALL erMath_mul_invT_invT_T(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = inv(Ti1) * inv(Ti2) * Ti3
7778 
7791  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)
7792 
7803  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
7816  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]
7829  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
7841  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
7848  static DLLAPI double* ER_STDCALL erMath_CpyVec(double *dst, double *src, int n); // cpy vector of size n
7854  static DLLAPI double* ER_STDCALL erMath_ResetVec(double *dst, int n); // reset vector of size n
7855 };
7856 
7857 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ static
7858 
7860 // static
7862 /* Unload a Model. Free all allocated memory
7863 */
7868 DLLAPI ERK_CAPI *_inq_erk_capi(void); // ERK_CAPI *p = _inq_erk_capi();
7869 
7870 /*
7871 //--------------------------------------------------------------------------------------------------
7872 //
7873 // The usage of below definitions is optional, but recommended for a better support by EASY-ROB
7874 //
7875 //--------------------------------------------------------------------------------------------------
7876 
7877 #include "erk_capi_types.h"
7878 
7879 #ifdef DLLAPI
7880 #undef DLLAPI
7881 #endif
7882 
7883 #define DLLAPI
7884 
7885 #include "erk_capi.h"
7886 #include "erk_capi_definitions.h"
7887 */
7888 
7889 #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:192
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:744
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:3779
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:84
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:601
unsigned int * ER_TARGET_MOVE_CP_HND
unique Target data for CP Move handle
Definition: erk_capi_types.h:207
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:678
static ERK_CAPI_TOOLPATH_MOVE_CP erk_toolpath_move_cp
Method class to specify a cp motion for target location.
Definition: erk_capi.h:3918
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:147
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:2683
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:5466
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:844
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:75
Method class to set and get tool path events for target locations.
Definition: erk_capi.h:4844
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:3902
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:3906
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:835
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:3914
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:721
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:801
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:135
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:4791
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:210
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:2695
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:6097
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:639
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:4964
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:4450
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:200
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:2678
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:417
void(ER_STDCALL * TerLogProc)(long LogType, char *LogMessage)
Callback function type definition for Log messages, erSetCallBack_LogProc()
Definition: erk_capi_types.h:623
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:6120
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:772
static ERK_CAPI_TOOLPATH_TARGETS erk_toolpath_targets
Method class to create, unload and specify target locations.
Definition: erk_capi.h:3890
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:209
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:831
Method class for tool path definition.
Definition: erk_capi.h:3885
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:2891
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:203
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:285
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:2687
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:669
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:7147
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:205
static ERK_CAPI_ADMIN erk_capi_admin
Method class to administrate this Robotics Simulation Kernel.
Definition: erk_capi.h:123
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:396
#define DLLAPI
Definition: erk_capi_types.h:74
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:3930
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:849
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:630
Method class API for forward- and Inverse kinematics.
Definition: erk_capi.h:1723
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:6129
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:6758
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:7409
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:597
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:593
unsigned int TErGeoHandle
unique Geometry handle used for callback functions TerLoadGeometryProc()
Definition: erk_capi_types.h:194
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:5822
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:3938
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:6049
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:425
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:412
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:3910
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:749
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:5647
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:352
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:4737
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:2068
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:7142
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:195
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:5719
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:369
unsigned int * ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND
unique External device definition for Conveyor
Definition: erk_capi_types.h:211
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:117
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:5552
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:3934
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:199
static ERK_CAPI_MOP_PREP erk_capi_mop_prep
Method class for motion planning (preparation)
Definition: erk_capi.h:2691
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:143
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:7405
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:3946
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:7130
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 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:7429
Method class for simulation settings.
Definition: erk_capi.h:6115
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:193
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:3898
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:5935
const long ER_ROT_XYZ
Rotation Index: RotX*RotY*RotZ, EASY-ROB, Staeubli CS8, erMath_VecToFrameIdx(), erMath_FrameToVecIdx.
Definition: erk_capi_types.h:726
Collision results for query ER_COLL_QUERY_TYPE_DISTANCE, see erColl_GetResults_Distance() The followi...
Definition: erk_capi_types.h:787
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:3942
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:202
Geometry data structure for callback function. Used when loading and updating robot geometries With c...
Definition: erk_capi_types.h:254
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:3926
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:197
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:648
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:825
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:421
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:6030
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:7400
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:206
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:158
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:3894
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:127
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:196
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:7170
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:3922
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:131
static ERK_CAPI_TARGETS erk_capi_targets
Method class for paths and tags.
Definition: erk_capi.h:139
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:3654
unsigned int * ER_TARGET_HEAD_HND
unique Header data handle
Definition: erk_capi_types.h:201
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:915
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:839
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:7418
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:208
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:659
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:162
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:4949
unsigned int * ER_TARGET_ATTRIBUTES_AUX_HND
unique Auxiliary motion attributes handle
Definition: erk_capi_types.h:204
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:3190