EASY-ROBâ„¢ Kernel  v8.606
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 - 2023
7 
8  Date: APT 2023
9  Version: 8.606
10 
11  Header file
12  erk_capi.h
13 
14  Autor
15  EASY-ROB Software GmbH
16 
17  Version
18  v6303 nov 2013
19  v6306 may 2014
20  v6307 aug 2014
21  v6310 dec 2014
22  v6601 jan 2015
23  v6604 mar 2015
24  v6606 jul 2015
25  v6608 jul 2015 VS 2012
26  v6609 jul 2015 erColl_ChkCollision_res() thread save
27  v6610 sep 2015 erColl_ChkCollision_res_free()
28  v6611 dec 2015 Support ER_MOTION_FILTER_GEO for external axis
29  v6612 jan 2016 BugFix MultiKIN Option, erGet_n_Kin_IR()
30  v7001 mar 2016 Major Release, MatrixLock
31  v7002 jun 2016
32  v7003 jul 2016 0-DOF Devices
33  v7004 aug 2016
34  v7005 sep 2016
35  v7302 apr 2017
36  v7305 sep 2017
37  v7306 dec 2017
38  v7309 mar 2018
39  v7601 apr 2018
40  v7602 may 2018 API PostProc
41  v7603 jul 2018
42  v7606 nov 2018
43  v7607 feb 2019 autopath
44  v8001 aug 2019
45  v8003 sep 2019
46  v8004 dec 2019 GEOMNGR
47  v8005 feb 2020 ToolOffset
48  v8006 may 2020 API Kin
49  v8007 jun 2020 ER_KIN_PASSIVE_JNTS = 36
50  v8301 jul 2020 ERK_CAPI_GEO_MNGR integration API
51  v8304 dec 2020 Major Release
52  v8307 jul 2021 additional methods to access kinematics attributes, license priority ER_LICENSE_PRIORITY_LMNGR, ER_LICENSE_PRIORITY_LOCAL
53  v8308 nov 2021 License.enc
54  v8602 mar 2022 Pre Release
55  v8603 aug 2022 Pre Release
56  v8604 sep 2022 PreRelease - AutoPath Minimize -> try to reach last waypoint first
57  v8605 oct 2022 PreRelease - AutoPath Abort Problem
58  v8606 apr 2023 BugFix loc_FreeGrp(()
59 */
60 
61 #ifndef _erk_capi_h
62 #define _erk_capi_h
63 
64 #include "erk_capi_types.h"
65 
66 // Forward Declarations
67 class ERK_CAPI;
68 
69 class ERK_CAPI_ADMIN;
70 class ERK_CAPI_CALLBACKS;
71 
72 class ERK_CAPI_DEVICES;
73 class ERK_CAPI_ROB;
74 class ERK_CAPI_ROB_KIN;
77 class ERK_CAPI_MOP;
78 class ERK_CAPI_MOP_DATA;
79 class ERK_CAPI_MOP_PATH;
80 class ERK_CAPI_MOP_PREP;
81 class ERK_CAPI_MOP_EXEC;
82 class ERK_CAPI_TOOLPATH;
98 
99 class ERK_CAPI_SIM;
101 
102 class ERK_CAPI_AUTOPATH;
103 
104 class ERK_CAPI_TARGETS;
105 
106 class ERK_CAPI_GEO;
107 class ERK_CAPI_GEO_MNGR;
108 
109 class ERK_CAPI_SYS;
112 
113 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ER_CAPI
115 // class ERK_CAPI
117 
120 class ERK_CAPI
121 {
122 public:
123 
127 
131 
135 
139 
143 
147 
151 
152 };
153 
154 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_ADMIN
156 // class ERK_CAPI_ADMIN
157 //
161 class ERK_CAPI_ADMIN : public ERK_CAPI
162 {
166 
167 public:
171  static DLLAPI int ER_STDCALL erKernelGetVersion(void);
172 
181  static DLLAPI int ER_STDCALL erKernelSetLicensePriority(int license_priority);
182 
190  static DLLAPI int ER_STDCALL erKernelGetLicensePriority(int *license_priority);
191 
199  static DLLAPI int ER_STDCALL erKernelSetLicenseFile(char *license_file);
200 
208  static DLLAPI int ER_STDCALL erKernelAddLicenseFile(char *license_file);
209 
216  static DLLAPI int ER_STDCALL erKernelGetLicenseFile(char *license_file);
217 
243  static DLLAPI int ER_STDCALL erKernelInitialize(char *HostApplicationPath, char *Sold_To_ID, long mode=0);
244 
250  static DLLAPI void ER_STDCALL erKernelFree(void);
251 
257  static DLLAPI int ER_STDCALL erKernelGetLicense(char *hw_id);
258 
264  static DLLAPI int ER_STDCALL erKernelGetHardwareID(char *hw_id);
265 
271  static DLLAPI int ER_STDCALL erKernelGetOptions(char *opt);
272 
278  static DLLAPI int ER_STDCALL erKernelGetOptionsDisabled(char *nopt);
279 };
280 
281 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_CALLBACKS
283 // class ERK_CAPI_CALLBACKS
284 //
289 {
290 public:
291 
292  /* AddToHostLog
293  Fügt dem Log der Hostanwendung einen Eintrag hinzu, oder gibt eine Statusmeldung in der
294  Statuszeile aus.
295  */
300  static DLLAPI void ER_STDCALL erSetCallBack_LogProc(TerLogProc Handler);
301 
302  /* Enable/Disable
303  AddToHostLog messages
304  */
323  static DLLAPI void ER_STDCALL erEnableCallBack_LogProc(long onoff);
324 
325  /* HostLoadGeometry
326  Fordert die Hostanwendung auf eine Geometrie aus einer Datei zu laden.
327 
328  ErHandle: Handle der Kinematik, der die Geometrie zugeordnet werden soll.
329  GeoHandle: Handle auf eine eventuell schon zuvor geladene Geomtrie der Kinematik
330  Funktioniert derzeit nicht und muss 0 sein.
331  Scaling: Skalierungsfactor mit dem die Geomtrie skaliert werden soll.
332  GeoMat: Eine Transformation zur Lagekorrektur der Geometrie.
333  FileName: Name der Datei, die geladen werden soll. Derzeit wird ein vollständiger Pfad erwartet.
334 
335  Returns: Handle auf die geladene Geomtrie. Im Fehlerfall wird 0 zurückgeliefert
336  */
343 
344  /* HostUpdateGeometry
345  Fordert die Hostanwendung auf die Kinematiktransformation der Geometrie zu aktualisieren.
346 
347  ErHandle: Handle der Kinematik, der die Geometrie zugeordnet werden soll.
348  GeoHandle: Handle auf die Geomtrie, wie von "HostLoadGeometry" geliefert.
349  KinMat: Die neue Transformation.
350 
351  Returns: Im Fehlerfall 1, ansonsten 0
352  */
359 
360  /* HostFreeGeometry
361  Fordert die Hostanwendung die Geometrie freizugeben.
362 
363  ErHandle: Handle der Kinematik, der die Geometrie zugeordnet werden soll.
364  GeoHandle: Handle auf die Geomtrie, wie von "HostLoadGeometry" geliefert.
365 
366  Returns: Im Fehlerfall 1, ansonsten 0
367  */
374 
375  /* HostGetActualTravelRanges
376  Fordert die Hostanwendung die Travel Ranges zu berechnen.
377 
378  ErHandle: Handle der Kinematik, der die Travel Ranges zugeordnet werden soll.
379 
380  Returns: Im Fehlerfall 1, ansonsten 0
381  */
388  /* HostNotify
389  Gibt Meldung an die Hostanwendung.
390  */
397 
398  /* HostGrpSync
399  GrpSync IO Hostanwendung.
400  */
406 };
407 
408 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_DEVICES
410 // class ERK_CAPI_DEVICES
411 //
416 {
417 public:
421 
425 
429 
430 public:
441  static DLLAPI int ER_STDCALL erInitKin(ER_HND *er_hnd, Host_HND host_hnd=NULL);
442 
443  /* erUnloadKin
444  Unload Robot Handle
445  Return 0-OK, 1-Error
446  */
456  static DLLAPI int ER_STDCALL erUnloadKin(ER_HND *er_hnd);
457 
458  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
459  //
460  // erConnect* NEW_050402
461  //
462  // erConnectPositioner erConnectPositionerSetSync erConnectPositionerGetSync
463  // erConnectConveyor erConnectConveyorSetSync erConnectConveyorGetSync
464  // erConnectTrackMotion erConnectTrackMotionSetSync erConnectTrackMotionGetSync
465  // erConnectRobot erConnectRobotSetSync erConnectRobotGetSync
466  //
467  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
468  /* erConnectPositioner
469  Connects Positioner Kinematik mit dem Handle 'er_hnd_connect' zum Roboter mit dem Handle 'er_hnd'
470  Return 0-OK, 1-Error
471  */
497  static DLLAPI int ER_STDCALL erConnectPositioner(ER_HND er_hnd, ER_HND er_hnd_connect);
498 
506 
507  /* erConnectPositionerSetSync
508  Setzt Sync Flag der Positioner Kinematik
509  Return 0-OK, 1-Error
510  */
520  static DLLAPI int ER_STDCALL erConnectPositionerSetSync(ER_HND er_hnd, long connect_sync);
521 
522  /* erConnectPositionerGetSync
523  Liest Sync Flag der Positioner Kinematik
524  Return -1-Error, ER_SYNC_UNDEF, ER_SYNC_OFF, ER_SYNC_ON
525  */
535 
536  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
537  /* erConnectConveyor
538  Connects Conveyor Kinematik mit dem Handle 'er_hnd_connect' zum Roboter mit dem Handle 'er_hnd'
539  Return 0-OK, 1-Error
540  */
566  static DLLAPI int ER_STDCALL erConnectConveyor(ER_HND er_hnd, ER_HND er_hnd_connect);
567 
575 
576  /* erConnectConveyorSetSync
577  Setzt Sync Flag der Conveyor Kinematik
578  Return 0-OK, 1-Error
579  */
589  static DLLAPI int ER_STDCALL erConnectConveyorSetSync(ER_HND er_hnd, long connect_sync);
590 
591  /* erConnectConveyorGetSync
592  Liest Sync Flag der Conveyor Kinematik
593  Return -1-Error, ER_SYNC_UNDEF, ER_SYNC_OFF, ER_SYNC_ON
594  */
604 
605  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
606  /* erConnectTrackMotion
607  Connects Track Kinematik mit dem Handle 'er_hnd_connect' zum Roboter mit dem Handle 'er_hnd'
608  Return 0-OK, 1-Error
609  */
635  static DLLAPI int ER_STDCALL erConnectTrackMotion(ER_HND er_hnd, ER_HND er_hnd_connect);
636 
644 
645  /* erConnectTrackMotionSetSync
646  Setzt Sync Flag der TrackMotion Kinematik
647  Return 0-OK, 1-Error
648  */
658  static DLLAPI int ER_STDCALL erConnectTrackMotionSetSync(ER_HND er_hnd, long connect_sync);
659  /* erConnectTrackMotionGetSync
660  Liest Sync Flag der TrackMotion Kinematik
661  Return -1-Error, ER_SYNC_UNDEF, ER_SYNC_OFF, ER_SYNC_ON, ER_SYNC_CONVEYOR
662  */
673 
674  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
675  /* erConnectRobot
676  Connects Robot Kinematik mit dem Handle 'er_hnd_connect' zum Roboter mit dem Handle 'er_hnd'
677  Return 0-OK, 1-Error
678  */
704  static DLLAPI int ER_STDCALL erConnectRobot(ER_HND er_hnd, ER_HND er_hnd_connect);
705 
713 
714  /* erConnectRobotSetSync
715  Setzt Sync Flag der Robot Kinematik
716  Return 0-OK, 1-Error
717  */
727  static DLLAPI int ER_STDCALL erConnectRobotSetSync(ER_HND er_hnd, long connect_sync);
728  /* erConnectRobotGetSync
729  Liest Sync Flag der Robot Kinematik
730  Return -1-Error, ER_SYNC_UNDEF, ER_SYNC_OFF, ER_SYNC_ON
731  */
740  static DLLAPI int ER_STDCALL erConnectRobotGetSync(ER_HND er_hnd);
741 
742  /* erUnloadTool
743  Loescht Tool GeoHandle und setzt Tool auf Ident
744  Important:
745  Damit die TCP Position stimmt, muss ein rob_kin_update() folgen
746  Return 0-OK, 1-Error
747  */
757  static DLLAPI int ER_STDCALL erUnloadTool(ER_HND er_hnd);
758 
759  /* erLoadKin
760  Load an easy-rob robot file with tool
761  Return 0-OK, 1-Error oder Abort
762  */
774  static DLLAPI int ER_STDCALL erLoadKin(ER_HND er_hnd,char *fln_rob);
775 
776  /* erLoadTool
777  Load an easy-rob tool file
778  Return 0-OK, 1-Error oder Abort
779  */
787  static DLLAPI int ER_STDCALL erLoadTool(ER_HND er_hnd,char *fln_tool);
788 
789  /* erGet_n_Kin
790  Return Number of loaded Robots "m_n_rob_kin"
791  */
797  static DLLAPI int ER_STDCALL erGet_n_Kin(ER_HND er_hnd);
798 
799  /* erGet_n_Kin_IR
800  Return Number of loaded Robots with more than 3 joints and inverse kinematics "m_n_rob_kin_ir"
801  */
807  static DLLAPI int ER_STDCALL erGet_n_Kin_IR(ER_HND er_hnd);
808 
809  /* erGetName
810  Name of Robot
811  Return 0-OK, 1-Error oder Abort
812  */
818  static DLLAPI int ER_STDCALL erGetName(ER_HND er_hnd,char *name);
819 };
820 
821 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_ROB
823 // class ERK_CAPI_ROB
824 //
829 {
830 public:
831 
835 
839 
843 };
844 
846 // class ERK_CAPI_ROB_KIN
847 //
853 {
854 public:
855 
856  /* erGetIDs
857  Kinematik ID - kinematischer Typ
858  RRRRRR_id =1; // Manutec
859  TTTRRR_id =2; // Portal
860  RRRRRR_bl_id =3; // ABB back link
861  UNIV_ROB_id =10; // Universelle Koordinaten
862  DH_id =11; // DH Koordinaten
863  inv_id - ID fuer inverse Kineamtik
864  inv_sub_id - Sub ID fuer inverse Kineamtik
865  Return 0-OK, 1-Error oder Abort
866  */
879  static DLLAPI int ER_STDCALL erGetIDs(ER_HND er_hnd,long *kin_id,long *inv_id, long *inv_sub_id);
880 
881  /* erGet_num_dofs
882  Return Number of Robot active joints
883  */
889  static DLLAPI int ER_STDCALL erGet_num_dofs(ER_HND er_hnd);
890 
891  /* erGet_num_dofs_passive
892  Return Number of Robot passive joints
893  */
899  static DLLAPI int ER_STDCALL erGet_num_dofs_passive(ER_HND er_hnd);
900 
901  /* erGetJointTypes
902  gets type of active robot joints 0-Rot 1-Trans
903  Return 0-OK, 1-Error oder Abort
904  */
913  static DLLAPI int ER_STDCALL erGetJointTypes(ER_HND er_hnd, long *jnt_type_active);
914 
915  /* erGetJointTypes_passive
916  gets type of passive robot joints 0-Rot 1-Trans
917  Return 0-OK, 1-Error oder Abort
918  */
927  static DLLAPI int ER_STDCALL erGetJointTypes_passive(ER_HND er_hnd, long *jnt_type_passive);
928 
929  /* erGetJointDirections
930  gets direction of active robot joints 1-JNT_DIRECTION_X, 2-JNT_DIRECTION_Y, 3-JNT_DIRECTION_Z
931  Return 0-OK, 1-Error oder Abort
932  */
941  static DLLAPI int ER_STDCALL erGetJointDirections(ER_HND er_hnd, long *jnt_direction_active);
942 
943  /* erGetJointDirections_passive
944  gets type direction of passive robot joints 1-JNT_DIRECTION_X, 2-JNT_DIRECTION_Y, 3-JNT_DIRECTION_Z
945  Return 0-OK, 1-Error oder Abort
946  */
955  static DLLAPI int ER_STDCALL erGetJointDirections_passive(ER_HND er_hnd, long *jnt_direction_passive);
956 
957  /* erGetJointChainTypes
958  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
959  Return 0-OK, 1-Error or Abort
960  */
968  static DLLAPI int ER_STDCALL erGetJointChainTypes(ER_HND er_hnd, long *jnt_chain_type_active);
969 
970  /* erGetJointChainTypes_passive
971  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
972  Return 0-OK, 1-Error or Abort
973  */
981  static DLLAPI int ER_STDCALL erGetJointChainTypes_passive(ER_HND er_hnd, long *jnt_chain_type_passive);
982 
983  /* erGetJointAttachDof_active
984  gets Attach-Dof of active robot joints
985  Return 0-OK, 1-Error or Abort
986  */
996  static DLLAPI int ER_STDCALL erGetJointAttachDof_active(ER_HND er_hnd, long *jnt_attach_dof_active);
997 
998  /* erGetJointAttachDof_passive
999  gets Attach-Dof of passive robot joints
1000  Return 0-OK, 1-Error or Abort
1001  */
1010  static DLLAPI int ER_STDCALL erGetJointAttachDof_passive(ER_HND er_hnd, long *jnt_attach_dof_passive);
1011 
1012  /* erGetMoveBaseMode
1013  gets moveable base mode 0-Robot base is fix (default), 1-Robot base is moveable
1014  Return 0-OK, 1-Error oder Abort
1015  */
1025  static DLLAPI int ER_STDCALL erGetMoveBaseMode(ER_HND er_hnd,long *move_base_mode);
1026 
1027  /* erGetMoveBasepJointIdx
1028  gets passive joint idx representing the moveable base
1029  0-Robot base is fix (default)
1030  n-index of passive joint representing the moveable base
1031  Return 0-OK, 1-Error oder Abort
1032  */
1041  static DLLAPI int ER_STDCALL erGetMoveBasepJointIdx(ER_HND er_hnd,long *move_base_pjointidx);
1042 
1043  /* erGetpJointMoveBase
1044  get transformation from passive joint 'pjnt' to the moveable base 'mb'
1045  Return 0-OK, 1-Error oder Abort
1046  */
1055  static DLLAPI int ER_STDCALL erGetpJointMoveBase(ER_HND er_hnd,DFRAME *pjntTmb);
1056 
1057  /* erGetRobotBaseToMoveBase
1058  get transformation from robot base 'b' to the moveable base 'mb'
1059  bTmb is Ident, if moveable base is fix
1060  Return 0-OK, 1-Error oder Abort
1061  */
1070  static DLLAPI int ER_STDCALL erGetRobotBaseToMoveBase(ER_HND er_hnd,DFRAME *bTmb);
1071 
1072  /* erSetJoints
1073  Set Robot joints
1074  Return 0-OK, 1-Error oder Abort
1075  */
1084  static DLLAPI int ER_STDCALL erSetJoints(ER_HND er_hnd,double *q_solut);
1085 
1086  /* erSetJoint
1087  Set Robot joint
1088  Return 0-OK, 1-Error oder Abort
1089  */
1100  static DLLAPI int ER_STDCALL erSetJoint(ER_HND er_hnd,double q_solut, long jnt_no);
1101 
1102  /* erGetJoints
1103  Get current (active) Robot joints
1104  Return 0-OK, 1-Error oder Abort
1105  */
1117  static DLLAPI int ER_STDCALL erGetJoints(ER_HND er_hnd,double *q_solut);
1118 
1119  /* erGetJointSolutions
1120  Get all (active) Robot joints solutions
1121  Return 0-OK, 1-Error oder Abort
1122  */
1171  static DLLAPI int ER_STDCALL erGetJointSolutions(ER_HND er_hnd,double *q_solutions, long *q_warnings);
1172 
1173  /* erGetJointSpeeds
1174  Get current (active) Robot joint speeds
1175  Return 0-OK, 1-Error oder Abort
1176  */
1186  static DLLAPI int ER_STDCALL erGetJointSpeeds(ER_HND er_hnd,double *v_solut);
1187 
1188  /* erGetJointAccels
1189  Get current (active) Robot joint accels
1190  Return 0-OK, 1-Error oder Abort
1191  */
1201  static DLLAPI int ER_STDCALL erGetJointAccels(ER_HND er_hnd,double *a_solut);
1202 
1203  /* erGetJoints_passive
1204  Get current passive Robot joints
1205  */
1215  static DLLAPI int ER_STDCALL erGetJoints_passive(ER_HND er_hnd,double *q_passive);
1216 
1217  /* erSetConfig
1218  Set Robot configuration
1219  */
1232  static DLLAPI int ER_STDCALL erSetConfig(ER_HND er_hnd, long config);
1233 
1234  /* erGetConfig
1235  Set Robot configuration
1236  */
1245  static DLLAPI int ER_STDCALL erGetConfig(ER_HND er_hnd, long *config);
1246 
1247  /* erFindConfig
1248  Find current Robot configuration
1249  */
1260  static DLLAPI int ER_STDCALL erFindConfig(ER_HND er_hnd, long *config); // NEW_050324
1261 
1262  /* erGetNumConfigs
1263  Get Number of Robot configurations
1264  */
1271  static DLLAPI int ER_STDCALL erGetNumConfigs(ER_HND er_hnd, long *num_configs);
1272 
1273  /* erInvKinRobotBaseTip
1274  Inverse bTt is Robot base to Tip
1275  Return:
1276  Return code for inverse kinematics, INV_WARN_*
1277  */
1291  static DLLAPI int ER_STDCALL erInvKinRobotBaseTip (ER_HND er_hnd,DFRAME *bTt);
1292 
1293  /* erInvKinWorldTip
1294  Inverse iTt is World to Tip
1295  Return:
1296  Return code for inverse kinematics, INV_WARN_*
1297  */
1311  static DLLAPI int ER_STDCALL erInvKinWorldTip(ER_HND er_hnd,DFRAME *iTt);
1312 
1313  /* erInvKinRobotBaseTcp
1314  Inverse bTt is Robot base to Tcp
1315  Return:
1316  Return code for inverse kinematics, INV_WARN_*
1317  */
1331  static DLLAPI int ER_STDCALL erInvKinRobotBaseTcp (ER_HND er_hnd,DFRAME *bTw);
1332 
1333  /* erInvKinWorldTcp
1334  Inverse iTt is World to Tcp
1335  Return:
1336  Return code for inverse kinematics, INV_WARN_*
1337  */
1351  static DLLAPI int ER_STDCALL erInvKinWorldTcp(ER_HND er_hnd,DFRAME *iTw);
1352 
1353  /* erSetTool
1354  Set Tool Tip to Tcp
1355  */
1362  static DLLAPI int ER_STDCALL erSetTool(ER_HND er_hnd,DFRAME *tTw);
1363  /* erGetTool
1364  Get Tool Tip to Tcp
1365  */
1379  static DLLAPI int ER_STDCALL erGetTool(ER_HND er_hnd,DFRAME *tTw);
1380 
1381  /* erGetToolFix
1382  Get Tool Tip to fix Tcp, without Tool Offset
1383  */
1400  static DLLAPI int ER_STDCALL erGetToolFix(ER_HND er_hnd, DFRAME *tTwfix);
1401 
1402  /* erSetToolOffset
1403  Set Tool Offset Tcp' to Tcp
1404  */
1411  static DLLAPI int ER_STDCALL erSetToolOffset(ER_HND er_hnd, DFRAME *wTwo);
1412 
1413  /* erGetToolOffset
1414  Get Tool Offset Tcp' to Tcp
1415  */
1447  static DLLAPI int ER_STDCALL erGetToolOffset(ER_HND er_hnd, DFRAME *wTwo);
1448 
1449  /* erSetBaseRobotBase
1450  Set Base w.r.t. RobotBase
1451  */
1460  static DLLAPI int ER_STDCALL erSetBaseRobotBase(ER_HND er_hnd,DFRAME *bTbase);
1461 
1462  /* erGetBaseRobotBase
1463  Get Base w.r.t. RobotBase
1464  */
1473  static DLLAPI int ER_STDCALL erGetBaseRobotBase(ER_HND er_hnd,DFRAME *bTbase);
1474 
1475  /* erSetBaseWorld
1476  Set Base w.r.t. World
1477  */
1486  static DLLAPI int ER_STDCALL erSetBaseWorld(ER_HND er_hnd,DFRAME *iTbase);
1487 
1488  /* erGetBaseWorld
1489  Get Base w.r.t. World
1490  */
1499  static DLLAPI int ER_STDCALL erGetBaseWorld(ER_HND er_hnd,DFRAME *iTbase);
1500 
1501  /* erSetRobotBase
1502  Set RobotBase, World to Robot base
1503  */
1510  static DLLAPI int ER_STDCALL erSetRobotBase(ER_HND er_hnd,DFRAME *iTb);
1511 
1512  /* erGetRobotBase
1513  Get RobotBase, World to Robot base
1514  */
1528  static DLLAPI int ER_STDCALL erGetRobotBase(ER_HND er_hnd,DFRAME *iTb);
1529 
1530  /* erGetRobotBaseTip
1531  Get Robot Tip w.r.t. Robot base
1532  */
1539  static DLLAPI int ER_STDCALL erGetRobotBaseTip(ER_HND er_hnd,DFRAME *bTt);
1540  /* erGetRobotBaseTcp
1541  Get Robot Tcp w.r.t. Robot base
1542  */
1549  static DLLAPI int ER_STDCALL erGetRobotBaseTcp(ER_HND er_hnd,DFRAME *bTw);
1550 
1551  /* erGetWorldTip
1552  Get Robot Tip w.r.t. World
1553  */
1560  static DLLAPI int ER_STDCALL erGetWorldTip(ER_HND er_hnd,DFRAME *iTt);
1561 
1562  /* erGetWorldTcp
1563  Get Robot Tcp w.r.t. World
1564  */
1571  static DLLAPI int ER_STDCALL erGetWorldTcp(ER_HND er_hnd,DFRAME *iTw);
1572 
1573  /* erUpdateKin
1574  Update the complete kinematic
1575  */
1584  static DLLAPI int ER_STDCALL erUpdateKin(ER_HND er_hnd);
1585 
1586  /* erGetJointFrameRobotBase
1587  Transformation from RobotBase to (active) Robot Joint
1588  Return 0-OK, 1-Error oder Abort
1589  */
1598  static DLLAPI int ER_STDCALL erGetJointFrameRobotBase(ER_HND er_hnd,long active_jnt_no,DFRAME *bTax);
1599 
1600  /* erGetJointFrameRobotBase_passive
1601  Transformation from RobotBase to passive Robot Joint
1602  Return 0-OK, 1-Error oder Abort
1603  */
1612  static DLLAPI int ER_STDCALL erGetJointFrameRobotBase_passive(ER_HND er_hnd,long passive_jnt_no,DFRAME *bTax);
1613 
1614  /* erGetJointFrameWorld
1615  Transformation from World to (active) Robot Joint
1616  Return 0-OK, 1-Error oder Abort
1617  */
1626  static DLLAPI int ER_STDCALL erGetJointFrameWorld(ER_HND er_hnd,long active_jnt_no,DFRAME *iTax);
1627 
1628  /* erGetJointFrameWorld_passive
1629  Transformation from World to passive Robot Joint
1630  Return 0-OK, 1-Error oder Abort
1631  */
1640  static DLLAPI int ER_STDCALL erGetJointFrameWorld_passive(ER_HND er_hnd,long passive_jnt_no,DFRAME *iTax);
1641 
1642  /* erSetExtTcpRobotBase
1643  Set external Tcp w.r.t Robot Base
1644  Return 0-OK, 1-Error oder Abort
1645  Ausnahme: Beim Positioner ist der external Tcp w.r.t flange des positioners
1646  */
1655  static DLLAPI int ER_STDCALL erSetExtTcpRobotBase(ER_HND er_hnd,DFRAME *bText, long use_ext_flange);
1656 
1657  /* erGetExtTcpRobotBase
1658  Get external Tcp w.r.t. Robot Base
1659  Return 0-OK, 1-Error oder Abort
1660  */
1667  static DLLAPI int ER_STDCALL erGetExtTcpRobotBase(ER_HND er_hnd,DFRAME *bText);
1668 
1669  /* erSetExtTcpWorld
1670  Set external Tcp w.r.t world
1671  Return 0-OK, 1-Error oder Abort
1672  */
1679  static DLLAPI int ER_STDCALL erSetExtTcpWorld(ER_HND er_hnd,DFRAME *iText);
1680 
1681  /* erGetExtTcpWorld
1682  Get external Tcp w.r.t. world
1683  Return 0-OK, 1-Error oder Abort
1684  */
1691  static DLLAPI int ER_STDCALL erGetExtTcpWorld(ER_HND er_hnd,DFRAME *iText);
1692 
1693  /* erSetExtTcpMode
1694  Set ExtTcpMode 0-IPO_MODE_BASE (Werk ZEUG fuehrend), 1-IPO_MODE_TOOL (Werk STUECK fuehren)
1695  Return 0-OK, 1-Error oder Abort
1696  */
1704  static DLLAPI int ER_STDCALL erSetExtTcpMode(ER_HND er_hnd,long ext_tcp_mode);
1705 
1706  /* erGetExtTcpMode
1707  Get ExtTcpMode 0-IPO_MODE_BASE (Werk ZEUG fuehrend), 1-IPO_MODE_TOOL (Werk STUECK fuehren)
1708  Return 0-OK, 1-Error oder Abort
1709  */
1717  static DLLAPI int ER_STDCALL erGetExtTcpMode(ER_HND er_hnd, long *ext_tcp_mode);
1718 };
1719 
1721 // class ERK_CAPI_ROB_KIN_API
1722 //
1727 {
1728 public:
1729 
1730  /* erGetInvKinID
1731  Inverse kinematics ID for cRobot
1732  Return 0-OK, 1-Error oder Abort
1733  */
1740  static DLLAPI int ER_STDCALL erGetInvKinID(ER_HND er_hnd, long *invkin_id);
1741 
1742  /* erGetInvKinSubID
1743  Inverse kinematics Sub-ID for cRobot
1744  Return 0-OK, 1-Error oder Abort
1745  */
1752  static DLLAPI int ER_STDCALL erGetInvKinSubID(ER_HND er_hnd, long *invkinsub_id);
1753 
1754  /* erSetJointSolutions
1755  Set all (active) Robot joints solutions
1756  Return 0-OK, 1-Error oder Abort
1757  */
1805  static DLLAPI int ER_STDCALL erSetJointSolutions(ER_HND er_hnd, double *q_solutions, long *q_warnings);
1806 
1807  /* erSetJointDyn
1808  Set actual robot joint
1809  Return 0-OK, 1-Error oder Abort
1810  */
1821  static DLLAPI int ER_STDCALL erSetJointDyn(ER_HND er_hnd, double q_dyn, long jnt_no);
1822 
1823  /* erGetRobotBasetoFirstJoint
1824  Robot Base to first joint of kinematics chain
1825  Return 0-OK, 1-Error oder Abort
1826  */
1833  static DLLAPI int ER_STDCALL erGetRobotBasetoFirstJoint(ER_HND er_hnd, DFRAME *bT0);
1834 
1835  /* erGetJointFrameActiveNext
1836  Get kinematics transformation to the next joint for each active joint "Geometric Data to next"
1837  Return 0-OK, 1-Error oder Abort
1838  */
1887  static DLLAPI int ER_STDCALL erGetJointFrameActiveNext(ER_HND er_hnd, long active_jnt_no, DFRAME *T_nxt);
1888 
1889  /* erSetJointFrameActiveNext
1890  Set kinematics transformation to the next joint for each active joint "Geometric Data to next"
1891  Return 0-OK, 1-Error oder Abort
1892  */
1903  static DLLAPI int ER_STDCALL erSetJointFrameActiveNext(ER_HND er_hnd, long active_jnt_no, DFRAME *T_nxt);
1904 
1905  /* erGetJointFrameActiveLast
1906  Get kinematics transformation from last joint for each active joint "Geometric Data from last"
1907  Return 0-OK, 1-Error oder Abort
1908  */
1919  static DLLAPI int ER_STDCALL erGetJointFrameActiveLast(ER_HND er_hnd, long active_jnt_no, DFRAME *T_last); /* erGetJointFrameActiveLast
1920 
1921  /* Set kinematics transformation from last joint for each active joint "Geometric Data from last"
1922  Return 0-OK, 1-Error oder Abort
1923  */
1934  static DLLAPI int ER_STDCALL erSetJointFrameActiveLast(ER_HND er_hnd, long active_jnt_no, DFRAME *T_last);
1935 
1936  /* erGetJointFramePassiveNext
1937  Get kinematics transformation to the next joint for each passive joint "Geometric Data to next"
1938  Return 0-OK, 1-Error oder Abort
1939  */
1948  static DLLAPI int ER_STDCALL erGetJointFramePassiveNext(ER_HND er_hnd, long passive_jnt_no, DFRAME *T_nxt);
1949 
1950  /* erSetJointFramePassiveNext
1951  Set kinematics transformation to the next joint for each passive joint "Geometric Data to next"
1952  Return 0-OK, 1-Error oder Abort
1953  */
1964  static DLLAPI int ER_STDCALL erSetJointFramePassiveNext(ER_HND er_hnd, long passive_jnt_no, DFRAME *T_nxt);
1965 
1966  /* erGetJointFramePassiveLast
1967  Get kinematics transformation to the next joint for each passive joint "Geometric Data to next"
1968  Return 0-OK, 1-Error oder Abort
1969  */
1980  static DLLAPI int ER_STDCALL erGetJointFramePassiveLast(ER_HND er_hnd, long passive_jnt_no, DFRAME *T_last);
1981 
1982  /* erSetJointFramePassiveLast
1983  Set kinematics transformation to the next joint for each passive joint "Geometric Data to next"
1984  Return 0-OK, 1-Error oder Abort
1985  */
1996  static DLLAPI int ER_STDCALL erSetJointFramePassiveLast(ER_HND er_hnd, long passive_jnt_no, DFRAME *T_last);
1997 
1998  /* erGet_erk_kin_usr_ptr
1999  Access user pointer for user defined inverse and forward kinematics in EasySimKernel_apikinx64.dll
2000  Return pointer to user defined memory
2001  */
2063  static DLLAPI void** ER_STDCALL erGet_erk_kin_usr_ptr(ER_HND er_hnd);
2064 };
2066 // class ERK_CAPI_ROB_ATRIBUTES
2067 //
2072 {
2073 public:
2074 
2075  /* erGetName
2076  Name of Robot
2077  Return 0-OK, 1-Error oder Abort
2078  */
2084  static DLLAPI int ER_STDCALL erGetName(ER_HND er_hnd, char *name);
2085 
2086  /* erSetHomepos
2087  Set Robot Home position
2088  */
2098  static DLLAPI int ER_STDCALL erSetHomepos(ER_HND er_hnd,double *homepos);
2099 
2100  /* erGetHomepos
2101  Get Robot Home position
2102  */
2112  static DLLAPI int ER_STDCALL erGetHomepos(ER_HND er_hnd,double *homepos);
2113 
2114  /* erSetSweMin
2115  Set Robot min. SWE Switch
2116  */
2126  static DLLAPI int ER_STDCALL erSetSweMin(ER_HND er_hnd,double *swe_min);
2127 
2128  /* erGetSweMin
2129  Get min. SWE Switch
2130  */
2140  static DLLAPI int ER_STDCALL erGetSweMin(ER_HND er_hnd,double *swe_min);
2141 
2142  /* erGetSweMinCalc
2143  Get min. calculated SWE Switch
2144  */
2155  static DLLAPI int ER_STDCALL erGetSweMinCalc(ER_HND er_hnd,double *swe_min_calc);
2156 
2157  /* erSetSweMax
2158  Set max. SWE Switch
2159  */
2169  static DLLAPI int ER_STDCALL erSetSweMax(ER_HND er_hnd,double *swe_max);
2170 
2171  /* erGetSweMax
2172  Get max. SWE Switch
2173  */
2183  static DLLAPI int ER_STDCALL erGetSweMax(ER_HND er_hnd,double *swe_max);
2184  /* erGetSweMaxCalc
2185  Get max. calculated SWE Switch
2186  */
2197  static DLLAPI int ER_STDCALL erGetSweMaxCalc(ER_HND er_hnd,double *swe_max_calc);
2198 
2199  /* erGetSweMinMaxCalc
2200  Get min. and max. calculated SWE Switches
2201  */
2213  static DLLAPI int ER_STDCALL erGetSweMinMaxCalc(ER_HND er_hnd,double *swe_min_calc,double *swe_max_calc);
2214 
2222  static DLLAPI int ER_STDCALL erGetSweCalcMode(ER_HND er_hnd,long *swe_calc_mode);
2223 
2233  static DLLAPI int ER_STDCALL erSetSweMin_passive(ER_HND er_hnd, double *swe_min_passive);
2243  static DLLAPI int ER_STDCALL erGetSweMin_passive(ER_HND er_hnd, double *swe_min_passive);
2244 
2254  static DLLAPI int ER_STDCALL erSetSweMax_passive(ER_HND er_hnd, double *swe_max_passive);
2264  static DLLAPI int ER_STDCALL erGetSweMax_passive(ER_HND er_hnd, double *swe_max_passive);
2265 
2266  /* erGetConfigName
2267  Name of robot configuration
2268  Return 0-OK, 1-Error oder Abort
2269  */
2277  static DLLAPI int ER_STDCALL erGetConfigName(ER_HND er_hnd, long config_idx, char *config_name);
2278 
2279  /* erGetJointName
2280  Name of active robot joint
2281  Return 0-OK, 1-Error oder Abort
2282  */
2289  static DLLAPI int ER_STDCALL erGetJointName(ER_HND er_hnd, long active_jnt_no, char *jnt_name);
2290 
2291  /* erGetJointName_passive
2292  Name of passive robot joint
2293  Return 0-OK, 1-Error oder Abort
2294  */
2301  static DLLAPI int ER_STDCALL erGetJointName_passive(ER_HND er_hnd, long passive_jnt_no, char *jnt_name_passive);
2302 
2303  /* erSetJointSign
2304  Set Joint Directions
2305  */
2313  static DLLAPI int ER_STDCALL erSetJointSign(ER_HND er_hnd,double *joint_sign); // NEW_050324
2314 
2315  /* erGetJointSign
2316  Get Joint Sign
2317  */
2326  static DLLAPI int ER_STDCALL erGetJointSign(ER_HND er_hnd,double *joint_sign); // NEW_050324
2327 
2328  /* erSetJointOffset
2329  Set Joint Offsets
2330  */
2338  static DLLAPI int ER_STDCALL erSetJointOffset(ER_HND er_hnd,double *joint_offset); // NEW_050324
2339 
2340  /* erGetJointOffset
2341  Get Joint Offsets
2342  */
2350  static DLLAPI int ER_STDCALL erGetJointOffset(ER_HND er_hnd,double *joint_offset); // NEW_050324
2351 
2352  /* erSetVqMax
2353  Set max. joint speed [rad/s,m/s]
2354  */
2362  static DLLAPI int ER_STDCALL erSetVqMax(ER_HND er_hnd,double *vq_max);
2363 
2364  /* erGetVqMax
2365  Get max. joint speed [rad/s,m/s]
2366  */
2374  static DLLAPI int ER_STDCALL erGetVqMax(ER_HND er_hnd,double *vq_max);
2375 
2376  /* erSetAqMax
2377  Set max. joint acceleration [rad/s^2,m/s^2]
2378  */
2386  static DLLAPI int ER_STDCALL erSetAqMax(ER_HND er_hnd,double *aq_max);
2387 
2388  /* erGetAqMax
2389  Get max. joint acceleration [rad/s^2,m/s^2]
2390  */
2398  static DLLAPI int ER_STDCALL erGetAqMax(ER_HND er_hnd,double *aq_max);
2399 
2400  /* erSetVxMax
2401  Set max. cartesian speed [m/s]
2402  */
2409  static DLLAPI int ER_STDCALL erSetVxMax(ER_HND er_hnd,double vx_max);
2410 
2411  /* erGetVxMax
2412  Get max. cartesian speed [m/s]
2413  */
2420  static DLLAPI int ER_STDCALL erGetVxMax(ER_HND er_hnd,double *vx_max);
2421 
2422  /* erSetVxOriMax
2423  Set max. cartesian orientation speed [rad/s]
2424  */
2431  static DLLAPI int ER_STDCALL erSetVxOriMax(ER_HND er_hnd,double vx_ori_max);
2432 
2433  /* erGetVxOriMax
2434  Get max. cartesian orientation orientation speed [rad/s]
2435  */
2442  static DLLAPI int ER_STDCALL erGetVxOriMax(ER_HND er_hnd,double *vx_ori_max);
2443 
2444  /* erSetAxMax
2445  Set max. cartesian acceleration [m/s^2]
2446  */
2453  static DLLAPI int ER_STDCALL erSetAxMax(ER_HND er_hnd,double ax_max);
2454 
2455  /* erGetAxMax
2456  Get max. cartesian acceleration [m/s^2]
2457  */
2464  static DLLAPI int ER_STDCALL erGetAxMax(ER_HND er_hnd,double *ax_max);
2465 
2466  /* erSetAxOriMax
2467  Set max. cartesian orientation acceleration [rad/s^2]
2468  */
2476  static DLLAPI int ER_STDCALL erSetAxOriMax(ER_HND er_hnd,double ax_ori_max);
2477  /* erGetAxOriMax
2478  Get max. cartesian orientation acceleration [rad/s^2]
2479  */
2486  static DLLAPI int ER_STDCALL erGetAxOriMax(ER_HND er_hnd,double *ax_ori_max);
2487 
2488  /* erGetBackLink obsolete -> use erGetBacklink(...)
2489  Get Back Link returns robot back link information
2490  *backlink = 0-KIN_BACK_LINK_NO | 1-KIN_BACK_LINK_YES | 2-KIN_BACK_LINK_UNKNOWN
2491  Return 0-OK, 1-Error oder Abort
2492  */
2495  static DLLAPI int ER_STDCALL erGetBackLink(ER_HND er_hnd,long *backlink); // obsolete -> use erGetBacklink(...)
2496 
2497  /* erSetBacklink
2498  Set Backlink extended attribute
2499  */
2509  static DLLAPI int ER_STDCALL erSetBacklink(ER_HND er_hnd,long backlink);
2510 
2511  /* erGetBacklink
2512  Get Backlink extended attribute
2513  */
2523  static DLLAPI int ER_STDCALL erGetBacklink(ER_HND er_hnd,long *backlink);
2524 
2525  /* erSetAxis_couplingA2A3
2526  Set Axis_couplingA2A3 extended attribute
2527  */
2537  static DLLAPI int ER_STDCALL erSetAxis_couplingA2A3(ER_HND er_hnd,long axis_couplingA2A3);
2538 
2539  /* erGetAxis_couplingA2A3
2540  Get Axis_couplingA2A3 extended attribute
2541  */
2551  static DLLAPI int ER_STDCALL erGetAxis_couplingA2A3(ER_HND er_hnd,long *axis_couplingA2A3);
2552 
2553  /* erSetCounter_weight
2554  Set Counter_weight extended attribute
2555  */
2565  static DLLAPI int ER_STDCALL erSetCounter_weight(ER_HND er_hnd,long counter_weight);
2566 
2567  /* erGetCounter_weight
2568  Get Counter_weight extended attribute
2569  */
2579  static DLLAPI int ER_STDCALL erGetCounter_weight(ER_HND er_hnd,long *counter_weight);
2580 
2581  /* erSetTurn_interval
2582  Set Turn_interval [rad,m]
2583  */
2594  static DLLAPI int ER_STDCALL erSetTurn_interval(ER_HND er_hnd,double *turn_interval);
2595 
2596  /* erGetTurn_interval
2597  Get Turn_interval [rad,m]
2598  */
2609  static DLLAPI int ER_STDCALL erGetTurn_interval(ER_HND er_hnd,double *turn_interval);
2610 
2611  /* erSetTurn_offset
2612  Set Turn_offset [rad,m]
2613  */
2624  static DLLAPI int ER_STDCALL erSetTurn_offset(ER_HND er_hnd,double *turn_offset);
2625 
2626  /* erGetTurn_offset
2627  Get Turn_offset [rad,m]
2628  */
2639  static DLLAPI int ER_STDCALL erGetTurn_offset(ER_HND er_hnd,double *turn_offset);
2640 
2641  /* erSetTurn_value
2642  Set Turn_value, will set turn_enable
2643  */
2656  static DLLAPI int ER_STDCALL erSetTurn_value(ER_HND er_hnd,long *turn_value);
2657 
2658  /* erGetTurn_value
2659  Get Turn_value
2660  */
2671  static DLLAPI int ER_STDCALL erGetTurn_value(ER_HND er_hnd,long *turn_value);
2672 };
2673 
2674 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_MOP
2676 // class ERK_CAPI_MOP
2677 //
2682 {
2683 public:
2687 
2691 
2695 
2699 
2700 public:
2701  /* erINITIALIZE
2702  Erzeugt ein Roboter Handle
2703  Opcode 101, Chapter 3.4.1, Page 3-26
2704  Return 0-OK, 1-Error
2705  entspricht erInitKin()
2706  */
2716  static DLLAPI int ER_STDCALL erINITIALIZE (ER_HND *er_hnd, Host_HND host_hnd=NULL);
2717 
2718  /* erRESET
2719  Definition: Resets an instance of a robot to an initial state
2720  Opcode 102, Chapter 3.4.1, Page 3-29
2721  Return 0-OK, 1-Error
2722  */
2744  static DLLAPI int ER_STDCALL erRESET(ER_HND er_hnd);
2745 
2746  /* erTERMINATE
2747  Loescht Roboter Handle
2748  Definition: Terminates an instance of a robot of the Kernel
2749  Opcode 103, Chapter 3.4.1, Page 3-30
2750  Return 0-OK, 1-Error
2751  see erUnloadKin()
2752  */
2760  static DLLAPI int ER_STDCALL erTERMINATE(ER_HND *er_hnd);
2761 
2762  /* erSET_INITIAL_POSITION
2763  sets the robot model to a position according to the input data
2764  Opcode 116, Chapter 3.4.3, Page 3-50
2765  Return 0-OK, 1-Error
2766  */
2776  static DLLAPI int ER_STDCALL erSET_INITIAL_POSITION(ER_HND er_hnd, INITIAL_POSITION_DATA *p_initial_position_data);
2777 
2778  /*erSELECT_TRACKING
2779  Definition: Selects the Tracking On or Off in the Kernel
2780  Opcode 146, Chapter 3.4.7, Page 3-93
2781  Return 0-OK, 1-Error, -1- not supported
2782  */
2794  static DLLAPI int ER_STDCALL erSELECT_TRACKING(ER_HND er_hnd, long conveyor_flags);
2795 
2796  /*erSET_CONVEYOR_POSITION
2797  Definition: Sends the conveyor position to the Kernel
2798  Opcode 147, Chapter 3.4.7, Page 3-94
2799  Return 0-OK, 1-Error, -1- not supported
2800  */
2816  static DLLAPI int ER_STDCALL erSET_CONVEYOR_POSITION(ER_HND er_hnd, long input_format, long conveyor_flags, double conveyor_pos);
2817 
2818  /*erDEFINE_EVENT
2819  Definition: Defines an internal asynchronous event that is to be generated relative to position and/or time in the Kernel
2820  Opcode 148, Chapter 3.4.8, Page 3-96
2821  Return 0-OK, 1-Error, -1- not supported
2822  */
2836  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);
2837 
2838  /*erCANCEL_EVENT
2839  Definition: This function makes it possible to cancel an event previously defined in the Kernel by the erDEFINE_EVENT() function
2840  Opcode 149, Chapter 3.4.8, Page 3-99
2841  Return 0-OK, 1-Error, -1- not supported
2842  */
2852  static DLLAPI int ER_STDCALL erCANCEL_EVENT(ER_HND er_hnd, long event_id);
2853 
2854  /*erGET_EVENT
2855  Definition: This function gets information about an internal asynchronous event that occurred in the Kernel
2856  Opcode 150, Chapter 3.4.8, Page 3-100
2857  Return 0-OK, 1-Error, -1- not supported
2858  */
2868  static DLLAPI int ER_STDCALL erGET_EVENT(ER_HND er_hnd, long event_nr);
2869 
2870  /*erGET_MESSAGE
2871  Definition: Gives information about controller messages that occurred
2872  Opcode 154, Chapter 3.4.9, Page 3-104
2873  Return 0-OK, 1-Error, -1- not supported
2874  */
2885  static DLLAPI int ER_STDCALL erGET_MESSAGE(ER_HND er_hnd, long message_number);
2886 };
2887 
2889 // class ERK_CAPI_MOP_DATA
2890 //
2895 {
2896 public:
2916  static DLLAPI int ER_STDCALL erSetTrackingWindow(ER_HND er_hnd, long active, double up, double down, TErTrackingWindowID id_tw, char *name=NULL);
2917 
2918  /* erSetconveyorStartCondition
2919  tx0 - Offsetposition in x-Rtg. bzgl. Conveyorflanch
2920  Return 0-OK, 1-Error
2921  */
2931  static DLLAPI int ER_STDCALL erSetconveyorStartCondition(ER_HND er_hnd, double tx0);
2932 
2933  /* erSetSpeedReductionEnable
2934  */
2946  static DLLAPI int ER_STDCALL erSetSpeedReductionEnable(ER_HND er_hnd,long speed_reduction_enable);
2947 
2948  /* erGetSpeedReductionEnable
2949  */
2961  static DLLAPI int ER_STDCALL erGetSpeedReductionEnable(ER_HND er_hnd,long *speed_reduction_enable);
2962 
2963  /*erSELECT_MOTION_TYPE
2964  motion_type, ER_JOINT = 1, ER_LIN = 2, ER_SLEW = 3, ER_CIRC = 4
2965  Opcode 120, Chapter 3.4.4, Page 3-58
2966  */
2977  static DLLAPI int ER_STDCALL erSELECT_MOTION_TYPE(ER_HND er_hnd, long motion_type);
2978 
2979  /*erSELECT_TARGET_TYPE
2980  Definition: selects one of different types for the specification of targets
2981  Opcode 121, Chapter 3.4.4, Page 3-59
2982  Return 0-OK, 1-Error
2983 
2984  Currently supported:
2985  0 - absolute w.r.t. object frame
2986  9 - single axis motion
2987  */
2999  static DLLAPI int ER_STDCALL erSELECT_TARGET_TYPE(ER_HND er_hnd, long target_type);
3000 
3001  /*erSELECT_TRAJECTORY_MODE
3002  Definition: Selects on or off for the trajectory mode
3003  Opcode 122, Chapter 3.4.4, Page 3-62
3004  Return 0-OK, 1-Error, -1-not supported
3005  */
3015  static DLLAPI int ER_STDCALL erSELECT_TRAJECTORY_MODE(ER_HND er_hnd, long trajectory_on);
3016 
3017  /*erSET_ADVANCE_MOTION
3018  Definition: defines the number of motions, the motion planner may run in advance of the interpolator (look_ahead)
3019  Opcode 127, Chapter 3.4.4, Page 3-67
3020  */
3028  static DLLAPI int ER_STDCALL erSET_ADVANCE_MOTION(ER_HND er_hnd, long Number_of_motion);
3029  /*erSET_MOTION_FILTER
3030  Definition: defines the filter factor for smoothing velocity profiles of motions
3031  Opcode 128, Chapter 3.4.4, Page 3-68
3032  */
3041  static DLLAPI int ER_STDCALL erSET_MOTION_FILTER(ER_HND er_hnd, long filter_factor);
3042 
3043  /*erREVERSE_MOTION
3044  Definition: Instructs to do a reverse motion
3045  Opcode 130, Chapter 3.4.4, Page 3-70
3046  Return 0-OK, 1-Error, -1-not supported
3047  */
3060  static DLLAPI int ER_STDCALL erREVERSE_MOTION(ER_HND er_hnd, double distance );
3061 
3062  /*erSET_PAYLOAD_PARAMETER
3063  Definition: Allows specifying payloads at different locations on the robot.
3064  It has to be supported when the payload influences the motion planning.
3065  E.g. the load by a tool on the flange may be specified
3066  Opcode 160, Chapter 3.4.4, Page 3-71
3067  Return 0-OK, 1-Error, -1-not supported
3068  */
3084  static DLLAPI int ER_STDCALL erSET_PAYLOAD_PARAMETER(ER_HND er_hnd, long storage, char *frame_id, long param_number, double param_value);
3085 
3086  /*erSET_CONFIGURATION_CONTROL
3087  Definition: Allows the setting of controller-specific data for the control of robot configurations
3088  Opcode 161, Chapter 3.4.4, Page 3-72
3089  Return 0-OK, 1-Error, -1-not supported
3090  */
3102  static DLLAPI int ER_STDCALL erSET_CONFIGURATION_CONTROL(ER_HND er_hnd, char *param_id, char *param_contents);
3103 
3104  /*erSET_OVERRIDE_SPEED
3105  Definition: Sets correction values for scaling the programmed speed during program execution
3106  Opcode 139, Chapter 3.4.5, Page 3-82
3107  Return 0-OK, 1-Error, -1-not supported
3108  */
3122  static DLLAPI int ER_STDCALL erSET_OVERRIDE_SPEED(ER_HND er_hnd, double correction_value, long correction_type);
3123 
3124  /*erSET_OVERRIDE_ACCELERATION
3125  Definition: Sets correction values for scaling the robot acceleration
3126  Opcode 155, Chapter 3.4.5, Page 3-83
3127  Return 0-OK, 1-Error, -1-not supported
3128  */
3145  static DLLAPI int ER_STDCALL erSET_OVERRIDE_ACCELERATION(ER_HND er_hnd, double correction_value, long accel_type, long correction_type);
3146 
3147  /*erSET_OVERRIDE_SPEED_EX
3148  Definition: Sets override for scaling the programmed speed during program execution
3149  Return 0-OK, 1-Error, -1-not supported
3150  */
3164  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);
3165 
3166  /*erSET_OVERRIDE_ACCELERATION_EX
3167  Definition: Sets override for scaling the programmed acceleration during program execution
3168  Return 0-OK, 1-Error, -1-not supported
3169  */
3183  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);
3184 };
3185 
3187 // class ERK_CAPI_MOP_PATH
3188 //
3194 {
3195 public:
3196 
3197  /* erSetAutoAccel
3198  Enables automatic calculation of acceleration
3199  depending on programmed speed
3200  ON = 7 – Calculation for PTP, POS and ORI
3201  POS = 1 – Calculation for motions for Position
3202  ORI = 2 – Calculation for motions for Orientation
3203  AX = 4 – Calculation for PTP motions
3204  OFF = 0 – Calculation deactivated
3205  */
3222  static DLLAPI int ER_STDCALL erSetAutoAccel(ER_HND er_hnd,long autoaccel);
3223 
3224  /* erGetAutoAccel
3225  Get status for automatic calculation of acceleration
3226  depending on programmed speed
3227  ON = 7 – Calculation for PTP, POS and ORI
3228  POS = 1 – Calculation for motions for Position
3229  ORI = 2 – Calculation for motions for Orientation
3230  AX = 4 – Calculation for PTP motions
3231  OFF = 0 – Calculation deactivated
3232  */
3249  static DLLAPI int ER_STDCALL erGetAutoAccel(ER_HND er_hnd,long *autoaccel);
3250 
3251  /* erSetAccSet
3252  Set lagging of accelerations.
3253  The arguments Acc and Ramp are given in percentage values in the range 20% to 100%
3254  Acc: Acceleration and Deceleration as percentage value of normal values
3255  Ramp: Change of Acceleration and Deceleration as percentage value of normal values
3256  */
3268  static DLLAPI int ER_STDCALL erSetAccSet(ER_HND er_hnd,double acc,double ramp);
3269 
3270  /* erGetAccSet
3271  Get current lagging of accelerations.
3272  The arguments Acc and Ramp are given in percentage values in the range 20% to 100%
3273  Acc: Acceleration and Deceleration as percentage value of normal values
3274  Ramp: Change of Acceleration and Deceleration as percentage value of normal values
3275  */
3287  static DLLAPI int ER_STDCALL erGetAccSet(ER_HND er_hnd,double *acc,double *ramp);
3288 
3289  /* erSET_INTERPOLATION_TIME
3290  sets the interpolation time in [ms]
3291  Opcode 119, Chapter 3.4.3, Page 3-56
3292  Return 0-OK, 1-Error
3293  */
3303  static DLLAPI int ER_STDCALL erSET_INTERPOLATION_TIME(ER_HND er_hnd, double InterpolationTime);
3304 
3305  /*erSELECT_ORIENTATION_INTERPOLATION_MODE
3306  NEW_041112
3307  */
3318  static DLLAPI int ER_STDCALL erSELECT_ORIENTATION_INTERPOLATION_MODE(ER_HND er_hnd, long interpolation_mode, long ori_const);
3319 
3320  /*erSELECT_CIRCULAR_ORIENTATION_INTERPOLATION_MODE
3321  NEW_070122
3322  Definition:
3323  selects the circular orientation interpolation mode
3324  circ_orientation_interpolation_mode:
3325  0: use Start- and Target Orientation
3326  1: use Start-, Via- and Target Orientation, default
3327  2: use Start-, Via- and Target Orientation, hereby the robot reaches the orientation in Via Point
3328  3: Tangential in Abhängigkeit der Orientierung im StartPunkt
3329  4: Constant, Fix
3330  Return 0-OK, 1-Error
3331  */
3341  static DLLAPI int ER_STDCALL erSELECT_CIRCULAR_ORIENTATION_INTERPOLATION_MODE(ER_HND er_hnd, long circ_orientation_interpolation_mode);
3342 
3343  /*erSELECT_DOMINANT_INTERPOLATION
3344  Definition: Sets the interplation space defining the movement
3345  Opcode 124, Chapter 3.4.4, Page 3-66
3346  Return 0-OK, 1-Error
3347  */
3363  static DLLAPI int ER_STDCALL erSELECT_DOMINANT_INTERPOLATION(ER_HND er_hnd, long dominant_int_type, long dominant_int_param=0);
3364 
3365  /*erSET_JOINT_SPEEDS
3366  Definition:
3367  sets the joint speed expressed as percentage of the maximal joint speed for each specified joint
3368  Opcode 131, Chapter 3.4.5, Page 3-74
3369  */
3383  static DLLAPI int ER_STDCALL erSET_JOINT_SPEEDS(ER_HND er_hnd, long all_joint_flags, long joint_flags, double speed_percent);
3384 
3385  /*erSET_CARTESIAN_POSITION_SPEED
3386  Definition: speed for cartesian motion [m/sec]
3387  Opcode 133, Chapter 3.4.5, Page 3-75
3388  Return 0-OK, 1-Error
3389  */
3397  static DLLAPI int ER_STDCALL erSET_CARTESIAN_POSITION_SPEED(ER_HND er_hnd, double speed_value);
3398 
3399  /*erSET_CARTESIAN_ORIENTATION_SPEED
3400  Definition: sets speed for the orientation during cartesian motion [rad/sec]
3401  Opcode 134, Chapter 3.4.5, Page 3-76
3402  Return 0-OK, 1-Error
3403  */
3413  static DLLAPI int ER_STDCALL erSET_CARTESIAN_ORIENTATION_SPEED(ER_HND er_hnd, long rotation_no, double speed_ori_value);
3414 
3415  /*erSET_JOINT_ACCELERATIONS
3416  sets the joint accelerations expressed as percentage of the maximal joint acceleration for each specified joint
3417  Opcode 135, Chapter 3.4.5, Page 3-77
3418  Return 0-OK, 1-Error
3419  */
3436  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);
3437 
3438  /*erSET_CARTESIAN_POSITION_ACCELERATIONS
3439  Definition: sets acceleration for cartesian motion [m/sec^2]
3440  Opcode 137, Chapter 3.4.5, Page 3-78
3441  accel_type
3442  1: // accel
3443  2: // decel
3444  3: // accel + decel
3445  */
3456  static DLLAPI int ER_STDCALL erSET_CARTESIAN_POSITION_ACCELERATION(ER_HND er_hnd, double accel_value, long accel_type);
3457 
3458  /*erSET_CARTESIAN_ORIENTATION_ACCELERATION
3459  Definition: sets the acceleration for the orientation during cartesian motion [rad/sec^2]
3460  Opcode 138, Chapter 3.4.5, Page 3-79
3461  Return 0-OK, 1-Error
3462  */
3475  static DLLAPI int ER_STDCALL erSET_CARTESIAN_ORIENTATION_ACCELERATION(ER_HND er_hnd, long rotation_no, double accel_ori_value, long accel_type);
3476 
3477  /*erGET_CARTESIAN_POSITION_ACCELERATIONS
3478  Definition: gets acceleration for cartesian motion [m/sec^2]
3479  accel_type
3480  1: // accel
3481  2: // decel
3482  Return 0-OK, 1-Error
3483  */
3493  static DLLAPI int ER_STDCALL erGET_CARTESIAN_POSITION_ACCELERATION(ER_HND er_hnd, double *accel_value, long accel_type);
3494 
3495  /*erGET_CARTESIAN_ORIENTATION_ACCELERATION
3496  Definition: Gets the acceleration for the orientation during cartesian motion [rad/sec^2]
3497  accel_type
3498  1: // accel
3499  2: // decel
3500  Return 0-OK, 1-Error
3501  */
3513  static DLLAPI int ER_STDCALL erGET_CARTESIAN_ORIENTATION_ACCELERATION(ER_HND er_hnd, long rotation_no, double *accel_ori_value, long accel_type);
3514 
3515  /*erSET_JOINT_JERKS
3516  Definition: Sets the joint jerk expressed as a percentage of the maximal joint jerk for each specified joint.
3517  Opcode 162, Chapter 3.4.5, Page 3-80
3518  Return 0-OK, 1-Error, -1-not supported
3519  */
3536  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);
3537 
3538  /*erSET_MOTION_TIME
3539  Definition: Specifies the motion time for the next motion
3540  Opcode 156, Chapter 3.4.5, Page 3-81
3541  Return 0-OK, 1-Error, -1-not supported
3542  */
3551  static DLLAPI int ER_STDCALL erSET_MOTION_TIME(ER_HND er_hnd, double time_value);
3552 
3553  /*erSELECT_FLYBY_MODE
3554  */
3565  static DLLAPI int ER_STDCALL erSELECT_FLYBY_MODE(ER_HND er_hnd, long flyby_on);
3566 
3567  /*erSET_FLYBY_CRITERIA_PARAMETER
3568  Definition: Sets the value of a flyby parameter
3569  Opcode 141, Chapter 3.4.6, Page 3-86
3570  Return 0-OK, 1-Error, -1- not supported
3571  */
3583  static DLLAPI int ER_STDCALL erSET_FLYBY_CRITERIA_PARAMETER(ER_HND er_hnd, long param_number, long joint_nr, double param_value);
3584 
3585  /*erSELECT_FLYBY_CRITERIA
3586  Definition: Selects a flyby criterion (parameter)
3587  Opcode 142, Chapter 3.4.6, Page 3-87
3588  Return 0-OK, 1-Error, -1- not supported
3589  */
3599  static DLLAPI int ER_STDCALL erSELECT_FLYBY_CRITERIA(ER_HND er_hnd, long param_number);
3600 
3601  /*erCANCEL_FLYBY_CRITERIA
3602  Definition: Cancels (unselects) a fly-by criterion
3603  Opcode 143, Chapter 3.4.6, Page 3-88
3604  Return 0-OK, 1-Error, -1- not supported
3605  */
3615  static DLLAPI int ER_STDCALL erCANCEL_FLYBY_CRITERIA(ER_HND er_hnd, long param_number);
3616 
3617  /*erSELECT_POINT_ACCURACY
3618  Definition: Selects a criterion for when a target is reached
3619  Opcode 144, Chapter 3.4.6, Page 3-89
3620  Return 0-OK, 1-Error, -1- not supported
3621  */
3631  static DLLAPI int ER_STDCALL erSELECT_POINT_ACCURACY(ER_HND er_hnd, long accuracy_type);
3632 
3633  /*erSET_POINT_ACCURACY_PARAMETER
3634  Definition: Sets the value of a parameter determining point accuracy
3635  Opcode 145, Chapter 3.4.6, Page 3-90
3636  Return 0-OK, 1-Error, -1- not supported
3637  */
3648  static DLLAPI int ER_STDCALL erSET_POINT_ACCURACY_PARAMETER(ER_HND er_hnd, long accuracy_type, double accuracy_value );
3649 };
3650 
3652 // class ERK_CAPI_MOP_PREP
3653 //
3658 {
3659 public:
3660  /* erSET_NEXT_TARGET
3661  sends the next target position. This may include intermediate position, radius, angle for circular motion
3662  Opcode 117, Chapter 3.4.3, Page 3-52
3663  Return
3664  1 - need more data, nothing to do
3665  0 - OK, next step is calculated successful
3666  -17 - specified motion type is not supported
3667  -34 - Error in matrix. Incomplete matrix
3668  -35 - Cartesian position expected
3669  -36 - Joint position expected
3670  -43 - Initial position not set
3671  -51 - no solution is found. One joint is out of range
3672  -52 - Cartesian position is out of work range
3673  -59 - specified position is singular
3674  -68 - fatal error, stopped calculating
3675  -71 - Position not stored, target buffer is full
3676  -78 - The specified position is not acceptable
3677  -79 - Not ready to receive targets
3678  */
3705  static DLLAPI int ER_STDCALL erSET_NEXT_TARGET(ER_HND er_hnd, NEXT_TARGET_DATA *p_next_target_data);
3706 
3707  /* erSET_NEXT_TARGET_ADVANCE
3708  Definition: Sends about next target data
3709  Return 0-OK, 1-Error
3710  */
3721  static DLLAPI int ER_STDCALL erSET_NEXT_TARGET_ADVANCE(ER_HND er_hnd, NEXT_TARGET_DATA_ADVANCE *p_next_target_data_advance);
3722 
3723  /*erSTOP_MOTION
3724  Definition: Stops the on-going motion toward the target
3725  Opcode 151, Chapter 3.4.8, Page 3-101
3726  Return 0-OK, 1-Error
3727  */
3739  static DLLAPI int ER_STDCALL erSTOP_MOTION(ER_HND er_hnd);
3740 
3741  /*erCONTINUE_MOTION
3742  Definition: Continues a motion that was stopped with the erSTOP_MOTION() function
3743  Opcode 152, Chapter 3.4.8, Page 3-102
3744  Return 0-OK, 1-Error
3745  */
3756  static DLLAPI int ER_STDCALL erCONTINUE_MOTION(ER_HND er_hnd);
3757 
3758  /*erCANCEL_MOTION
3759  Definition: Cancel a motion that was stopped with erSTOP_MOTION() function
3760  Opcode 153, Chapter 3.4.8, Page 3-103
3761  Return 0-OK, 1-Error
3762  */
3773  static DLLAPI int ER_STDCALL erCANCEL_MOTION(ER_HND er_hnd);
3774 };
3775 
3777 // class ERK_CAPI_MOP_EXEC
3778 //
3783 {
3784 public:
3785  /* erGET_NEXT_STEP
3786  returns the next interpolated position step, the
3787  elapsed time and supplementary information like events, joint limits and messages
3788  Opcode 118, Chapter 3.4.3, Page 3-54
3789  Return
3790  2 - final step, target reached or speed is zero
3791  1 - need more data, nothing to do
3792  0 - OK, next step is calculated successful
3793  -13 - the specified output format is not supported
3794  -17 - the specified motion type is not supported
3795  -25 - the motion is not possible in the specified time
3796  -42 - no target set
3797  -51 - no solution is found. One joint is out of range
3798  -52 - Cartesian position is out of work range
3799  -68 - fatal error, stopped calculating
3800  -76 - incomplete or inconsistent motion specification, can't move
3801  -1053 - Cartesian position is out of boudary work range
3802  -1059 - Cartesian position is singular
3803  */
3835  static DLLAPI int ER_STDCALL erGET_NEXT_STEP(ER_HND er_hnd, long output_format, NEXT_STEP_DATA *p_next_step_data, double time);
3836 
3846  static DLLAPI int ER_STDCALL erGetCurrentStepData(ER_HND er_hnd, CURRENT_STEP_DATA *p_current_step_data);
3847 
3848  /*erSET_OVERRIDE_POSITION
3849  Definition: Sets a correction offset which will be added to the path during program execution
3850  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.
3851  Opcode 129, Chapter 3.4.4, Page 3-69
3852  Return 0-OK, 1-Error, -1- not supported
3853  */
3863  static DLLAPI int ER_STDCALL erSET_OVERRIDE_POSITION(ER_HND er_hnd, DFRAME *PosOffset);
3864 
3865  /*erGET_CURRENT_TARGETID
3866  Definition: Returns the TargetID of the motion in execution
3867  Opcode 163, Chapter 3.4.6, Page 3-91
3868  Return 0-OK, 1-Error
3869  */
3878 };
3879 
3880 
3881 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_TOOLPATH
3883 // class ERK_CAPI_TOOLPATH
3884 //
3889 {
3890 public:
3894 
3898 
3902 
3906 
3910 
3914 
3918 
3922 
3926 
3930 
3934 
3938 
3942 
3946 
3950 
3951 public:
3977  static DLLAPI int ER_STDCALL erInitToolPath (ER_HND er_hnd, ER_TOOLPATH_HND *er_tpth_hnd);
3978 
3984  static DLLAPI int ER_STDCALL erUnloadToolPath (ER_TOOLPATH_HND *er_tpth_hnd);
3985 
3996  static DLLAPI int ER_STDCALL erInsertToolPath (ER_HND er_hnd, ER_TOOLPATH_HND *er_tpth_hnd, ER_TOOLPATH_HND er_tpth_hnd_ref);
3997 
4005  static DLLAPI int ER_STDCALL erSwapToolPath (ER_TOOLPATH_HND er_tpth_hnd1, ER_TOOLPATH_HND er_tpth_hnd2);
4006 
4013 
4018  static DLLAPI char* ER_STDCALL erToolPathName (ER_TOOLPATH_HND er_tpth_hnd); // Name ToolPath
4019 
4026  static DLLAPI long ER_STDCALL erToolPathEnable (ER_TOOLPATH_HND er_tpth_hnd, long enable); // 0-Disable, 1-Enable, 2-Status
4027 
4033  static DLLAPI ER_HND ER_STDCALL erToolPathGetRobotHandle (ER_TOOLPATH_HND er_tpth_hnd); // Get Robot Handle belonging to tool path handle
4039  static DLLAPI ER_HND ER_STDCALL erToolPathGetTrackMotionHandle (ER_TOOLPATH_HND er_tpth_hnd); // Get TrackMotion Handle belonging to tool path handle
4045  static DLLAPI ER_HND ER_STDCALL erToolPathGetPositionerHandle (ER_TOOLPATH_HND er_tpth_hnd); // Get Positioner Handle belonging to tool path handle
4051  static DLLAPI ER_HND ER_STDCALL erToolPathGetConveyorHandle (ER_TOOLPATH_HND er_tpth_hnd); // Get Conveyor Handle belonging to tool path handle
4052 
4061  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
4062 
4071  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
4072 
4081  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
4082 
4087  static DLLAPI char* ER_STDCALL erToolPathLogFileName (ER_TOOLPATH_HND er_tpth_hnd); // Log File Name ToolPath
4092  static DLLAPI char* ER_STDCALL erToolPathPrgFileName (ER_TOOLPATH_HND er_tpth_hnd); // Prg File Name ToolPath
4093 
4104 
4112  static DLLAPI long ER_STDCALL CpyEventsTemplate(ER_TOOLPATH_HND er_tpth_hnd, ER_TARGET_EVENTS_HND hnd); // Copy target events data to template
4119  static DLLAPI ER_TARGET_EVENTS_HND ER_STDCALL GetEventsTemplateHnd(ER_TOOLPATH_HND er_tpth_hnd); // Get handle to internal events template data
4120 
4128  static DLLAPI long ER_STDCALL CpyMotionAttributesTemplate (ER_TOOLPATH_HND er_tpth_hnd, ER_TARGET_ATTRIBUTES_HND hnd); // Copy target attributes data to template
4135  static DLLAPI ER_TARGET_ATTRIBUTES_HND ER_STDCALL GetMotionAttributesTemplateHnd (ER_TOOLPATH_HND er_tpth_hnd); // Get handle to internal attributes template data
4136 
4152 
4168 
4184 
4200 
4209 
4217 
4218 
4225  static DLLAPI long ER_STDCALL erToolPathReset (ER_TOOLPATH_HND er_tpth_hnd); // Reset all tool path target locations
4234  static DLLAPI int ER_STDCALL erToolPathResetInitRobot (ER_TOOLPATH_HND er_tpth_hnd,double *q_start=NULL);
4243  static DLLAPI int ER_STDCALL erToolPathResetInitTrackMotion (ER_TOOLPATH_HND er_tpth_hnd,double *q_start=NULL);
4252  static DLLAPI int ER_STDCALL erToolPathResetInitPositioner (ER_TOOLPATH_HND er_tpth_hnd,double *q_start=NULL);
4261  static DLLAPI int ER_STDCALL erToolPathResetInitConveyor (ER_TOOLPATH_HND er_tpth_hnd,double *q_start=NULL);
4262 
4263 
4272  static DLLAPI int ER_STDCALL erToolPathSetInitPos (ER_TOOLPATH_HND er_tpth_hnd,double InterpolationTime=0);
4273 
4326  static DLLAPI int ER_STDCALL erGET_NEXT_TOOLPATH_STEP_INIT(ER_TOOLPATH_HND er_tpth_hnd, long cntrl);
4327 
4430  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);
4431 
4438 
4447 };
4448 
4449 
4454 {
4455 public:
4456  // Target Locations
4465  static DLLAPI long ER_STDCALL erTargetLocationReset (ER_TARGET_LOCATION_HND er_tarloc_hnd); // Reset target location
4466 
4476  static DLLAPI int ER_STDCALL erAddTargetLocation (ER_TOOLPATH_HND er_tpth_hnd,ER_TARGET_LOCATION_HND *er_tarloc_hnd);
4477 
4490  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);
4491 
4499  static DLLAPI int ER_STDCALL erUnloadTargetLocation (ER_TARGET_LOCATION_HND *er_tarloc_hnd);
4500 
4510  static DLLAPI int ER_STDCALL erSwapTargetLocation (ER_TARGET_LOCATION_HND er_tarloc_hnd1, ER_TARGET_LOCATION_HND er_tarloc_hnd2);
4511 
4518 
4524  static DLLAPI char* ER_STDCALL erGetTargetLocationName (ER_TARGET_LOCATION_HND er_tarloc_hnd);
4525 
4532 
4538 
4543  static DLLAPI ER_HND ER_STDCALL erhGetTargetLocationER_HND (ER_TARGET_LOCATION_HND er_tarloc_hnd); // Device Handle belonging to target location handle
4544 
4551 
4558 
4565 
4572 
4585  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);
4586 
4602  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);
4618  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);
4619 
4632  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);
4648  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);
4664  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);
4665 
4681  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);
4697  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);
4698 
4715  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);
4732  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);
4733  //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);
4734  //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);
4735 };
4736 
4741 {
4742 public:
4743  // Header Data
4756 
4763 
4769  static DLLAPI char* ER_STDCALL erGetTargetLocationName (ER_TARGET_LOCATION_HND er_tarloc_hnd);
4770 
4777 
4788  static DLLAPI long ER_STDCALL erTargetLocationValid (ER_TARGET_LOCATION_HND er_tarloc_hnd, long valid);
4789 };
4790 
4795 {
4796 public:
4797  // Instructions, individual information text
4807 
4815 
4823 
4831 
4841  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
4842 };
4843 
4848 {
4849 public:
4850  // Events
4862 
4896  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);
4913  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);
4914 
4945  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);
4946 };
4947 
4948 
4953 {
4954 public:
4955  // Auxiliary Motion Attributes
4962 };
4963 
4968 {
4969 public:
4970  // Motion Attributes
4981 
4988  static DLLAPI long *ER_STDCALL inq_enabled (ER_TARGET_ATTRIBUTES_HND hnd); // enables/disables this target
4989 
4995  static DLLAPI TErTargetID *ER_STDCALL inq_target_id (ER_TARGET_ATTRIBUTES_HND hnd); // unique target ID, NEXT_TARGET_DATA.TargetID
4996 
5004  static DLLAPI double *ER_STDCALL inq_WobjCartPosVec(ER_TARGET_ATTRIBUTES_HND hnd); // WorkObject valid for all cartesian targets CartPosVec, CartPosVecVia
5013  static DLLAPI DFRAME *ER_STDCALL Get_WobjCartPosFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *WobjCartPosFrame); // WorkObject valid for all cartesian targets CartPosVec, CartPosVecVia
5022  static DLLAPI DFRAME *ER_STDCALL Set_WobjCartPosFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *WobjCartPosFrame); // WorkObject valid for all cartesian targets CartPosVec, CartPosVecVia
5023 
5030  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()
5031 
5032 
5041  static DLLAPI double *ER_STDCALL inq_BaseVec (ER_TARGET_ATTRIBUTES_HND hnd); // work object, $BASE, $UFrame has only effect if ::IPO_MODE_BASE, erSetBaseRobotBase()
5051  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()
5061  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()
5062 
5070  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()
5071 
5079  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()
5080 
5107 
5124 
5125 
5152 
5169 
5170 
5197 
5214 
5222  static DLLAPI double *ER_STDCALL inq_ToolVec (ER_TARGET_ATTRIBUTES_HND hnd); // Tool/TCP data, erSetTool()
5231  static DLLAPI DFRAME *ER_STDCALL Get_ToolFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *ToolFrame); // Tool/TCP data, erSetTool()
5240  static DLLAPI DFRAME *ER_STDCALL Set_ToolFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *ToolFrame); // Tool/TCP data, erSetTool()
5241 
5249  static DLLAPI long *ER_STDCALL inq_ToolIdx (ER_TARGET_ATTRIBUTES_HND hnd); // user defined Idx for Tool/TCP data, erSetTool()
5257  static DLLAPI char *ER_STDCALL inq_ToolName (ER_TARGET_ATTRIBUTES_HND hnd); // user defined Name for Tool/TCP data, erSetTool()
5258 
5266  static DLLAPI double *ER_STDCALL inq_ToolOffsetVec(ER_TARGET_ATTRIBUTES_HND hnd); // Tool/TCP offset data, erSetToolOffset()
5275  static DLLAPI DFRAME *ER_STDCALL Get_ToolOffsetFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *ToolOffsetFrame); // Tool/TCP offset data, erSetToolOffset()
5284  static DLLAPI DFRAME *ER_STDCALL Set_ToolOffsetFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *ToolOffsetFrame); // Tool/TCP offset data, erSetToolOffset()
5292  static DLLAPI long *ER_STDCALL inq_ToolOffsetIdx(ER_TARGET_ATTRIBUTES_HND hnd); // user defined Idx for Tool/TCP offset data, erSetToolOffset()
5300  static DLLAPI char *ER_STDCALL inq_ToolOffsetName(ER_TARGET_ATTRIBUTES_HND hnd); // user defined Name for Tool/TCP offset data, erSetToolOffset()
5301 
5314  static DLLAPI long *ER_STDCALL inq_speed_reduction_enable(ER_TARGET_ATTRIBUTES_HND hnd); // ER_SPEED_REDUCTION_ENABLE , ER_SPEED_REDUCTION_DISABLE, erGetSpeedReductionEnable()
5315 
5333  static DLLAPI long *ER_STDCALL inq_motype (ER_TARGET_ATTRIBUTES_HND hnd); // ER_JOINT , ER_LIN, ER_SLEW, ER_CIRC, erSELECT_MOTION_TYPE()
5334 
5344  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()
5345 
5353  static DLLAPI long *ER_STDCALL inq_advance_motion (ER_TARGET_ATTRIBUTES_HND hnd); // look ahead by 1 is only supported, erSET_ADVANCE_MOTION()
5354 
5362  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()
5363 
5364 
5373  static DLLAPI double *ER_STDCALL inq_acc (ER_TARGET_ATTRIBUTES_HND hnd); // 20-100[%] Set lagging of accelerations deceleration, erSetAccSet()
5374 
5383  static DLLAPI double *ER_STDCALL inq_ramp (ER_TARGET_ATTRIBUTES_HND hnd); // 20-100[%] Set lagging of accelerations deceleration, erSetAccSet()
5384 
5394  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()
5395 
5405  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()
5406 
5416  static DLLAPI double *ER_STDCALL inq_flyby_speed_percent (ER_TARGET_ATTRIBUTES_HND hnd);// if flyby_on enabled: [%], erSET_FLYBY_CRITERIA_PARAMETER(), tbd
5417 
5427  static DLLAPI double *ER_STDCALL inq_flyby_dist (ER_TARGET_ATTRIBUTES_HND hnd); // if flyby_on enabled: [m], erSET_FLYBY_CRITERIA_PARAMETER(), tbd
5428 
5444  static DLLAPI long *ER_STDCALL inq_autoaccel (ER_TARGET_ATTRIBUTES_HND hnd); // ER_AUTOACCEL_MODE_OFF, -_POS, -_ORI, -_AX, -_DEF, -_ON, erSetAutoAccel()
5445 
5454  static DLLAPI double *ER_STDCALL inq_LeadWaitTime (ER_TARGET_ATTRIBUTES_HND hnd); // Wait time [s], before move will start, NEXT_TARGET_DATA.LeadWaitTime
5463  static DLLAPI double *ER_STDCALL inq_LagWaitTime (ER_TARGET_ATTRIBUTES_HND hnd); // Wait time [s], after robot reaches its target, NEXT_TARGET_DATA.LagWaitTime
5464 };
5465 
5470 {
5471 public:
5472  // Target data for Joint Move
5492  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()
5493 
5499  static DLLAPI double *ER_STDCALL inq_speed_percent (ER_TARGET_MOVE_JOINT_HND hnd); // joint speed [%], erSET_JOINT_SPEEDS()
5505  static DLLAPI double *ER_STDCALL inq_accel_percent (ER_TARGET_MOVE_JOINT_HND hnd); // joint acceleration [%], erSET_JOINT_ACCELERATIONS()
5515  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
5526  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
5532  static DLLAPI long *ER_STDCALL inq_configuration (ER_TARGET_MOVE_JOINT_HND hnd); // Target manipulator configuration string, NEXT_TARGET_DATA.Configuration
5540  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
5541 
5549  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[]
5550 };
5551 
5556 {
5557 public:
5558  // Target data for CP Move
5577  static DLLAPI long *ER_STDCALL inq_target_type (ER_TARGET_MOVE_CP_HND hnd); // ER_TARGET_TYPE_ABS
5583  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()
5589  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()
5595  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()
5601  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()
5612  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
5622  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
5630  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()
5644  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()
5645 };
5646 
5651 {
5652 public:
5653  // Motion execution data at target
5676  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
5683  static DLLAPI double ER_STDCALL erGetMotionExec_time_stamp (ER_TARGET_MOTION_EXEC_HND hnd); // Time stamp [s] when target location is reached
5688  static DLLAPI double ER_STDCALL erGetMotionExec_trajectory_time (ER_TARGET_MOTION_EXEC_HND hnd); // Trajectory Time [s] for current motion to target
5702  static DLLAPI long ER_STDCALL erGetMotionExec_configuration (ER_TARGET_MOTION_EXEC_HND hnd); // current manipulator configuration at target location, [1..number of robot configurations]
5703 
5709  static DLLAPI double *ER_STDCALL erGetMotionExec_JointPos (ER_TARGET_MOTION_EXEC_HND hnd); // Joint Location at target location
5710 
5716  static DLLAPI double *ER_STDCALL erGetMotionExec_ExtAxValues (ER_TARGET_MOTION_EXEC_HND hnd); // External axis values at target location
5717 };
5718 
5723 {
5724 public:
5725  // External axis data definition for Track/Slider-Motion
5774 
5781  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
5782 
5790  static DLLAPI long *ER_STDCALL inq_sync_type (ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND hnd); // ER_SYNC_OFF, ER_SYNC_ON, erConnectTrackMotionSetSync(), erConnectPositionerSetSync()
5791 
5805  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[]
5806 
5820  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);
5821 };
5826 {
5827 public:
5828  // External axis data definition for Positioner/TurnTable
5895  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
5896 
5904  static DLLAPI long *ER_STDCALL inq_sync_type (ER_TARGET_EXTAX_DEVICE_POSITIONER_HND hnd); // ER_SYNC_OFF, ER_SYNC_ON, erConnectPositionerSetSync()
5918  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[]
5932  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);
5933 };
5934 
5939 {
5940 public:
5959  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
5967  static DLLAPI long *ER_STDCALL inq_sync_type(ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND hnd); // ER_SYNC_OFF, ER_SYNC_ON, erConnectConveyorSetSync()
5981  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[]
5995  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);
5996 
6016  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);
6017 
6028 };
6029 
6034 {
6035 public:
6046  static DLLAPI long ER_STDCALL erTPth_TBox_Fct(int FctIdx, int FctSubIdx, ER_TOOLPATH_HND er_tpth_hnd, int constraint_param, char *svalues=NULL);
6047 };
6048 
6053 {
6054 public:
6094  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);
6095 };
6096 
6101 {
6102 public:
6108  static DLLAPI int ER_STDCALL erTPth_Fct(ER_TOOLPATH_HND er_tpth_hnd);
6109 };
6110 
6111 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_SIM
6113 // class ERK_CAPI_SIM
6114 //
6118 class ERK_CAPI_SIM: public ERK_CAPI
6119 {
6120 public:
6124 };
6125 
6127 // class ERK_CAPI_SIM_COLLISION
6128 //
6133 {
6134 public:
6135  /* Creates a collision handle for one Model and preallocate memory for n_tris triangles
6136  */
6145  static DLLAPI int ER_STDCALL erColl_BeginModel(ER_COLLISION_HND *er_coll_hnd, long n_tris);
6146 
6147  /* Adds a triangle to a Model
6148  */
6160  static DLLAPI int ER_STDCALL erColl_AddTri(ER_COLLISION_HND er_coll_hnd, double *p1, double *p2, double *p3, long id);
6161 
6162  /* brief Stop building a Model
6163  */
6170  static DLLAPI int ER_STDCALL erColl_EndModel(ER_COLLISION_HND er_coll_hnd);
6171 
6172  /* Perform the collision check of two Models
6173  See also erColl_ChkCollision_res() to get the collision results immediately
6174  */
6328  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);
6329 
6330  /* Perform the collision check of two Models
6331  Collision results returned immediately compared to erColl_ChkCollision()
6332  */
6676  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);
6677 
6709  static DLLAPI int ER_STDCALL erColl_ChkCollision_res_free(long query_type, void *pres);
6710 
6711  /* Unload a Model. Free all allocated memory
6712  */
6719  static DLLAPI int ER_STDCALL erColl_UnloadModel(ER_COLLISION_HND *er_coll_hnd);
6720 
6721  /* Get Collision result for query ::ER_COLL_QUERY_TYPE_COLLIDE
6722  */
6731 
6732  /* Get Collision result for query ::ER_COLL_QUERY_TYPE_DISTANCE
6733  */
6742 
6743  /* Get Collision result for query ::ER_COLL_QUERY_TYPE_TOLERANCE
6744  */
6753 };
6754 
6756 // class ERK_CAPI_AUTOPATH
6757 //
6762 {
6763 public:
6767  static DLLAPI char* ER_STDCALL AutoPathVer(void);
6768 
6776 
6852 
6860 
6868 
6935  static DLLAPI int ER_STDCALL AutoPath_SetCallback_CheckConstraints(BOOL (*ptr_CheckConstraints)(int,void*));
6936 
6944  static DLLAPI int ER_STDCALL SetPoseStart(double *pose_start);
6945 
6953  static DLLAPI int ER_STDCALL SetPoseEnd(double *pose_end);
6954 
6961  static DLLAPI int ER_STDCALL FindPath(void);
6962 
6966  static DLLAPI double* ER_STDCALL GetConfigurationPose(void);
6967 
6971  static DLLAPI double* ER_STDCALL GetStartPose(void);
6972 
6976  static DLLAPI double* ER_STDCALL GetEndPose(void);
6977 
6981  static DLLAPI double* ER_STDCALL GetAxisConstraintsMin(void);
6982 
6986  static DLLAPI double* ER_STDCALL GetAxisConstraintsMax(void);
6987 
6993  static DLLAPI int ER_STDCALL AbortPlanning(void);
6994 
7001  static DLLAPI int ER_STDCALL GetPlanningStatus(void);
7002 
7007  static DLLAPI int ER_STDCALL GetNumberOfWayPoints(void);
7008 
7012  static DLLAPI int ER_STDCALL GetWayPointDof(void);
7013 
7018  static DLLAPI double* ER_STDCALL GetWayPoint(int idx);
7023  static DLLAPI int ER_STDCALL ClearAllWayPoints(void);
7024 
7030  static DLLAPI int ER_STDCALL SetAccuracy(UINT accuracy);
7031 
7041  static DLLAPI int ER_STDCALL SetAxisConstraints(int axisBit=AUTOPATH_SDK_AXIS_BIT_DOF6, int setting=0, double qConstraintMin=0, double qConstraintMax=0);
7042 
7049  static DLLAPI int ER_STDCALL SetAxisPriority(int axisBit, int priority);
7054  static DLLAPI int ER_STDCALL SetAxisEnable(int axisBit, int enable);
7055 
7072  static DLLAPI int ER_STDCALL SetParameter(int ap_option, int ap_value);
7088  static DLLAPI int ER_STDCALL GetParameter(int ap_option);
7089 
7123  static DLLAPI int ER_STDCALL GetResults(int ap_result);
7124 };
7125 
7126 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_TARGETS
7128 // class ERK_CAPI_TARGETS
7129 //
7134 {
7135 public:
7136 };
7137 
7138 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_GEO
7140 // class ERK_CAPI_GEO
7141 //
7145 class ERK_CAPI_GEO : public ERK_CAPI
7146 {
7147 public:
7151 
7152 public:
7153  /* erUpdateGeo
7154  Update all Models for each robot joint
7155  */
7164  static DLLAPI int ER_STDCALL erUpdateGeo(ER_HND er_hnd);
7165 };
7166 
7168 // class ERK_CAPI_GEO_MNGR
7169 //
7174 {
7175 public:
7176  //~~~~~~~~~~~~~~~~~~~~~
7177  // Administration
7178  //~~~~~~~~~~~~~~~~~~~~~
7182  static DLLAPI int ER_STDCALL erGeoMngr_GetVersion();
7183 
7189  static DLLAPI TErGeoHandle ER_STDCALL erGeoMngr_LoadGeometry(ER_HND er_hnd, LOAD_GEOMETRY_DATA *p_load_geometry_data);
7190 
7197  static DLLAPI int ER_STDCALL erGeoMngr_FreeGeometry(ER_HND er_hnd, TErGeoHandle GeoHandle);
7198 
7199  //~~~~~~~~~~~~~~~~~~~~~
7200  // Access to geometries
7201  //~~~~~~~~~~~~~~~~~~~~~
7208 
7217  static DLLAPI int ER_STDCALL erGeoMngr_GetGeometry(ER_HND er_hnd, int geometryIndex, LOAD_GEOMETRY_DATA *p_load_geometry_data, DFRAME* kinMat);
7218 
7315  static DLLAPI int ER_STDCALL erGeoMngr_GetNumAxisGeometries(ER_HND er_hnd, int axis_nr);
7316 
7317  // fills structure pointed to by p_load_geometry_data with geometry loading data
7318 
7328  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);
7329 
7360  static DLLAPI const double* ER_STDCALL erGeoMngr_GetGeometryBBox(TErGeoHandle geometryHandle);
7361 
7362  // Achsen-BBox über alle Geometry-BBoxes einer Achse
7363  static DLLAPI const double* ER_STDCALL erGeoMngr_GetAxisBBox(ER_HND er_hnd, int axis_id);
7364  // Device-BBox
7365  static DLLAPI const double* ER_STDCALL erGeoMngr_GetDeviceBBox(ER_HND er_hnd);
7366  static DLLAPI int ER_STDCALL erGeoMngr_GetGeometryNumObjs(TErGeoHandle geometryHandle);
7367 
7368  static DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumPoints(TErGeoHandle geometryHandle, int objidx);
7369  static DLLAPI double* ER_STDCALL erGeoMngr_GetGeometryObjPoint(TErGeoHandle geometryHandle, int objidx, int index);
7370  static DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumPointNormals(TErGeoHandle geometryHandle, int objidx);
7371  static DLLAPI double* ER_STDCALL erGeoMngr_GetGeometryObjPointNormal(TErGeoHandle geometryHandle, int objidx, int index);
7372  static DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumLines(TErGeoHandle geometryHandle, int objidx);
7373  static DLLAPI size_t* ER_STDCALL erGeoMngr_GetGeometryObjLine(TErGeoHandle geometryHandle, int objidx, int index);
7374  static DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumPolygons(TErGeoHandle geometryHandle, int objidx);
7375  static DLLAPI size_t* ER_STDCALL erGeoMngr_GetGeometryObjPolygon(TErGeoHandle geometryHandle, int objidx, int index);
7376 
7377  // ist die Obj-Color intern -2 (USER_COLOR); wird die user color (die Farbe, die in der LOAD_GEOMETRY_DATA-Struktur steht); zurückgegeben
7378  // sonst : konkrete Farbe
7379  static DLLAPI double* ER_STDCALL erGeoMngr_GetGeometryObjColor(TErGeoHandle geometryHandle, int objidx);
7380  // der Farbcode (kann auch -2 (USER_COLOR); sein, damit die Host-Applikation eine eigene UserColor festlegen kann);
7381  static DLLAPI long ER_STDCALL erGeoMngr_GetGeometryObjColorCode(TErGeoHandle geometryHandle, int objidx);
7382 
7383  // Get number of clones >=1
7385  // Get clone handle
7387  //double* ER_STDCALL erGeoMngr_GetGeometryPolygoneNormal(TErGeoHandle geometryHandle, int index);
7388  //double* ER_STDCALL erGeoMngr_GetGeometryPolygoneCenter(TErGeoHandle geometryHandle, int index);
7389  static DLLAPI int ER_STDCALL erGeoMngr_SetGeometryCollisionHandle(TErGeoHandle geometryHandle, ER_COLLISION_HND collisionHandle);
7391  static DLLAPI int ER_STDCALL erGeoMngr_SetGeometryIsCollided(TErGeoHandle geometryHandle, int isCollided);
7392  static DLLAPI int* ER_STDCALL erGeoMngr_GetGeometryIsCollided(TErGeoHandle geometryHandle);
7393  static DLLAPI int ER_STDCALL erGeoMngr_CheckBoundingBoxCollision(DFRAME* T1, const double* bbox1, DFRAME* T2, const double* bbox2, double tolerance);
7394 };
7395 
7396 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERK_CAPI_SYS
7398 // class ERK_CAPI_SYS
7399 //
7403 class ERK_CAPI_SYS : public ERK_CAPI
7404 {
7405 public:
7409 
7413 };
7414 
7416 // class ERK_CAPI_SYS_UTILITIES
7417 //
7422 {
7423 public:
7424 };
7425 
7427 // class ERK_CAPI_SYS_MATHEMATICS
7428 //
7433 {
7434 public:
7449  static DLLAPI int ER_STDCALL erMath_FrameToVecIdx(DFRAME *T, double *vec, long rotation_idx=ER_ROT_XYZ);
7450 
7465  static DLLAPI int ER_STDCALL erMath_VecToFrameIdx(double *vec, DFRAME *T, long rotation_idx=ER_ROT_XYZ);
7466 
7481  static DLLAPI int ER_STDCALL erMath_PxyzRxyzToFrame(double x,double y,double z,double Rx,double Ry,double Rz, DFRAME *T);
7482 
7490  static DLLAPI int ER_STDCALL erMath_Frame_Ident(DFRAME *T); // T = Ident
7491 
7502  static DLLAPI int ER_STDCALL erMath_Frame_Trans(DFRAME *T, double x, double y, double z); // set frame position T.p[] = [x,y,z]
7503 
7515  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)
7516 
7527  static DLLAPI int ER_STDCALL erMath_AngleBetween(DFRAME *Ts, DFRAME *Te, double *angle, double *k=NULL);
7528 
7539  static DLLAPI int ER_STDCALL erMath_DistBetween(DFRAME *Ts, DFRAME *Te, double *dist, double *dv=NULL);
7540 
7553  static DLLAPI int ER_STDCALL erMath_CircCenterPoint(double *ps, double *pv, double *pe, DFRAME *pTc, double *radius, double *phi, double *phi_via = NULL);
7554 
7555 
7564  static DLLAPI int ER_STDCALL erMath_invT(DFRAME *To,DFRAME *Ti); // To = inv(Ti)
7565 
7574  static DLLAPI int ER_STDCALL erMath_invR(DFRAME *Ro,DFRAME *Ri); // Ro = inv(Ri) = transpose(Ri) = Ri'
7575 
7585  static DLLAPI int ER_STDCALL erMath_mul_R_R(DFRAME *Ro,DFRAME *Ri1,DFRAME *Ri2); // Ro = Ri1 * Ri2
7586 
7596  static DLLAPI int ER_STDCALL erMath_mul_T_T(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2); // To = Ti1 * Ti2
7597 
7609  static DLLAPI int ER_STDCALL erMath_mul_T_invT (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2); // To = Ti1 * inv(Ti2)
7610 
7622  static DLLAPI int ER_STDCALL erMath_mul_invT_T (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2); // To = inv(Ti1) * Ti2
7623 
7635  static DLLAPI int ER_STDCALL erMath_mul_invT_invT (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2); // To = inv(Ti1) * inv(Ti2)
7636 
7647  static DLLAPI int ER_STDCALL erMath_mul_T_pos (double *po,DFRAME *T,double *pi); // po = T * pi
7648 
7660  static DLLAPI int ER_STDCALL erMath_mul_invT_pos (double *po,DFRAME *T,double *pi); // po = inv(T) * pi
7661 
7671  static DLLAPI int ER_STDCALL erMath_mul_R_pos (double *po,DFRAME *R,double *pi); // po = R * pi
7672 
7684  static DLLAPI int ER_STDCALL erMath_mul_invR_pos (double *po,DFRAME *R,double *pi); // po = R' * pi
7685 
7696  static DLLAPI int ER_STDCALL erMath_mul_T_T_T(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = Ti1 * Ti2 * Ti3
7697 
7710  static DLLAPI int ER_STDCALL erMath_mul_T_T_invT(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = Ti1 * Ti2 * inv(Ti3)
7711 
7724  static DLLAPI int ER_STDCALL erMath_mul_T_invT_T(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = Ti1 * inv(Ti2) * Ti3
7725 
7738  static DLLAPI int ER_STDCALL erMath_mul_T_invT_invT(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = Ti1 * inv(Ti2) * inv(Ti3)
7739 
7752  static DLLAPI int ER_STDCALL erMath_mul_invT_T_T(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = inv(Ti1) * Ti2 * Ti3
7753 
7766  static DLLAPI int ER_STDCALL erMath_mul_invT_T_invT(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = inv(Ti1) * Ti2 * inv(Ti3)
7767 
7780  static DLLAPI int ER_STDCALL erMath_mul_invT_invT_T(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = inv(Ti1) * inv(Ti2) * Ti3
7781 
7794  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)
7795 
7806  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
7819  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]
7832  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
7844  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
7851  static DLLAPI double* ER_STDCALL erMath_CpyVec(double *dst, double *src, int n); // cpy vector of size n
7857  static DLLAPI double* ER_STDCALL erMath_ResetVec(double *dst, int n); // reset vector of size n
7858 };
7859 
7860 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ static
7861 
7863 // static
7865 /* Unload a Model. Free all allocated memory
7866 */
7871 DLLAPI ERK_CAPI *_inq_erk_capi(void); // ERK_CAPI *p = _inq_erk_capi();
7872 
7873 /*
7874 //--------------------------------------------------------------------------------------------------
7875 //
7876 // The usage of below definitions is optional, but recommended for a better support by EASY-ROB
7877 //
7878 //--------------------------------------------------------------------------------------------------
7879 
7880 #include "erk_capi_types.h"
7881 
7882 #ifdef DLLAPI
7883 #undef DLLAPI
7884 #endif
7885 
7886 #define DLLAPI
7887 
7888 #include "erk_capi.h"
7889 #include "erk_capi_definitions.h"
7890 */
7891 
7892 #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:195
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:747
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:3782
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:87
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:604
unsigned int * ER_TARGET_MOVE_CP_HND
unique Target data for CP Move handle
Definition: erk_capi_types.h:210
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:681
static ERK_CAPI_TOOLPATH_MOVE_CP erk_toolpath_move_cp
Method class to specify a cp motion for target location.
Definition: erk_capi.h:3921
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:150
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:2686
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:5469
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:847
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:78
Method class to set and get tool path events for target locations.
Definition: erk_capi.h:4847
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:3905
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:3909
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:838
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:3917
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:724
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:804
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:138
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:4794
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:213
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:2698
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:6100
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:642
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:4967
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:4453
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:203
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:2681
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:420
void(ER_STDCALL * TerLogProc)(long LogType, char *LogMessage)
Callback function type definition for Log messages, erSetCallBack_LogProc()
Definition: erk_capi_types.h:626
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:6123
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:775
static ERK_CAPI_TOOLPATH_TARGETS erk_toolpath_targets
Method class to create, unload and specify target locations.
Definition: erk_capi.h:3893
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:212
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:834
Method class for tool path definition.
Definition: erk_capi.h:3888
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:2894
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:206
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:288
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:2690
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:672
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:7150
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:208
static ERK_CAPI_ADMIN erk_capi_admin
Method class to administrate this Robotics Simulation Kernel.
Definition: erk_capi.h:126
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:399
#define DLLAPI
Definition: erk_capi_types.h:77
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:3933
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:852
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:633
Method class API for forward- and Inverse kinematics.
Definition: erk_capi.h:1726
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:6132
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:6761
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:7412
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:600
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:596
unsigned int TErGeoHandle
unique Geometry handle used for callback functions TerLoadGeometryProc()
Definition: erk_capi_types.h:197
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:5825
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:3941
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:6052
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:428
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:415
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:3913
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:752
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:5650
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:355
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:4740
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:2071
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:7145
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:198
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:5722
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:372
unsigned int * ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND
unique External device definition for Conveyor
Definition: erk_capi_types.h:214
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:120
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:5555
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:3937
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:202
static ERK_CAPI_MOP_PREP erk_capi_mop_prep
Method class for motion planning (preparation)
Definition: erk_capi.h:2694
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:146
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:7408
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:3949
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:7133
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:7432
Method class for simulation settings.
Definition: erk_capi.h:6118
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:196
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:3901
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:5938
const long ER_ROT_XYZ
Rotation Index: RotX*RotY*RotZ, EASY-ROB, Staeubli CS8, erMath_VecToFrameIdx(), erMath_FrameToVecIdx.
Definition: erk_capi_types.h:729
Collision results for query ER_COLL_QUERY_TYPE_DISTANCE, see erColl_GetResults_Distance() The followi...
Definition: erk_capi_types.h:790
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:3945
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:205
Geometry data structure for callback function. Used when loading and updating robot geometries With c...
Definition: erk_capi_types.h:257
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:3929
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:200
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:651
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:828
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:424
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:6033
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:7403
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:209
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:161
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:3897
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:130
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:199
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:7173
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:3925
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:134
static ERK_CAPI_TARGETS erk_capi_targets
Method class for paths and tags.
Definition: erk_capi.h:142
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:3657
unsigned int * ER_TARGET_HEAD_HND
unique Header data handle
Definition: erk_capi_types.h:204
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:919
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:842
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:7421
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:211
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:662
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:165
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:4952
unsigned int * ER_TARGET_ATTRIBUTES_AUX_HND
unique Auxiliary motion attributes handle
Definition: erk_capi_types.h:207
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:3193