EASY-ROBâ„¢ Kernel  v8.606
er_Kernel_main.h
Go to the documentation of this file.
1 /* ------------------------------------------------------------------------------------------
2 
3  EASY-ROB Robotics Simulation Kernel
4 
5  EASY-ROB Software GmbH
6 
7  Copyright (c) 1996 - 2023
8 
9  Date: APR 2023
10  Version: 8.606
11 
12  Description
13  This module declares all interface functions and data types supplied in this kernel and
14  for usages in the host application. The exported functions should be also entered in
15  the modul definition file (EasySimKernel.def).
16  The DLL exports ANCI-C compatable functions.
17  The kernel is available on windows x86, x64 and on Linux.
18 
19  Beschreibung
20  Dieses Modul deklariert alle Schnittstellenfunktionen und Datentypen des Kernels zur
21  Hostanwendung. Die Funktionen, die von der DLL, exportiert werden sollen müssen
22  in die Moduldefinitionsdatei (EasySimKernel.def) eingetragen werden.
23  Die DLL exportiert ANSI-C kompatible Funktionen.
24  Der Kernel ist unter Windows x86, x64 und unter Linux verfügbar.
25 
26  Autor
27  EASY-ROB Software GmbH
28 
29  Modifications
30  26-Feb-2004 - TP,SAN - Erstellt
31  xx-Feb-2004 - SAN - Implementierung
32  10-nov-2004 - SAN - MotionPlanner Implementierung (Key "MotionPlanner")
33  12-nov-2004 - SAN -> NEW_041112
34  24-mar-2005 - SAN -> NEW_050324
35  xx-aug-2012 - SAN -> v6.004
36  1)
37  //#include "ipo_extax.h" // obsolete, use ER_EXTAX_KIN_DATA_MAX instead of EXTAX_KIN_DATA_MAX
38  const long ER_EXTAX_KIN_DATA_MAX = 12; ///< Maximum number of external axis data
39  2)
40  TARGET_TYPE_ABS changes to ER_TARGET_TYPE_ABS ///< Target w.r.t object frame
41  TARGET_TYPE_ABSJOINT changes to ER_TARGET_TYPE_ABSJOINT ///< Target single axis motion,if motion_type = JOINT --> AbsJoint
42  3)
43  erSetSpeedReductionEnable() new
44  erGetSpeedReductionEnable() new
45 
46  //structure NEXT_STEP_DATA is extended by
47  //double DistanceToDestination[DISTANCE_TO_DESTINATION]; ///< distance to destination: [0] distance [m], [1] angle [rad], [2] percentage [%], [3..] tbd
48  07-nov-2013 - SAN -> v6.303
49  class ERK_CAPI
50  13-jan-2015 - SAN -> v6.601
51  31-mar-2015 - SAN -> v6.604
52  01-jul-2015 - SAN -> v6.606
53  13-jul-2015 - SAN -> v6.608 VS-2012
54  27-jul-2015 - SAN -> v6.609 erColl_ChkCollision_res() thread save
55  22-dec-2015 - SAN -> v6.611 Support ER_MOTION_FILTER_GEO for external axis
56  13-jan-2016 - SAN -> v6.612 BugFix MultiKIN Option, erGet_n_Kin_IR()
57  18-mar-2016 - SAN -> v7.001 Major Release, MatrixLock
58  03-jun-2016 - SAN -> v7.002
59  18-jul-2016 - SAN -> v7.003 0-DOF Devices
60  17-aug-2016 - SAN -> v7.004 Famos x64
61  29-sep-2016 - SAN -> v7.005 MultiDongle
62  23-feb-2017 - SAN -> v7.301 Major PreRelease
63  10-apr-2017 - SAN -> v7.302 Major Release
64  28-sep-2017 - SAN -> v7.305 Final Release
65  10-sep-2017 - SAN -> v7.306 ToolPathIntegration ...
66  24-jan-2018 - SAN -> v7.307 Patch
67  06-apr-2018 - SAN -> v7.601 Major PreRelease
68  08-may-2018 - SAN -> v7.602 API PostProc
69  17-jul-2018 - SAN -> v7.603
70  12-nov-2018 - SAN -> v7.606 ToolPath optimization
71  01-feb-2019 - SAN -> v7.607 autopath
72  08-aug-2019 - SAN -> v8.001 Major PreRelease
73  03-sep-2019 - SAN -> v8.002 VS2017
74  17-sep-2019 - SAN -> v8.003 API-INV
75  09-dec-2019 - SAN -> v8.004 GEOMNGR
76  23-feb-2020 - SAN -> v8.005 ToolOffset
77  16-jun-2020 - SAN -> v8.007 ER_KIN_PASSIVE_JNTS = 36
78  29-jul-2020 - SAN -> v8.301 GEOMNGR integration API
79  16-dec-2020 - SAN -> v8.304 Major Release
80  30-jul-2021 - SAN -> v8.307 Additional methods to access kinematics attributes, license priority ER_LICENSE_PRIORITY_LMNGR, ER_LICENSE_PRIORITY_LOCAL
81  29-nov-2021 - SAN -> v8.308 License.enc
82  23-mar-2022 - SAN -> v8.602 PreRelease
83  03-aug-2022 - SAN -> v8.602 Patch erk_AutoPath*() c-functions added
84  09-aug-2022 - SAN -> v8.603 PreRelease
85  08-sep-2022 - SAN -> v8.604 PreRelease - AutoPath Minimize -> try to reach last waypoint first
86  13-oct-2022 - SAN -> v8.605 PreRelease - AutoPath Abort Problem
87  19-apr-2023 - SAN -> v8.606 BugFix in ER_SK_INTERFACE::loc_FreeGrp(()
88 ------------------------------------------------------------------------------------------ */
89 
90 #ifndef _er_kernel_main_h
91 #define _er_kernel_main_h
92 
93 #include "erk_capi_types.h"
94 
95 #ifdef __cplusplus
96 extern "C" {
97 #endif
98 
99 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
100 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
101 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
102 // Administrative Kernel Functions, Initialization etc.
103 // class ERK_CAPI_ADMIN
104 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
105 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
106 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
107 #pragma region region_erk_init_license
108 
113 
122 DLLAPI long ER_STDCALL erKernelSetLicensePriority(int license_priority);
123 
131 DLLAPI long ER_STDCALL erKernelGetLicensePriority(int *license_priority);
132 
140 DLLAPI long ER_STDCALL erKernelSetLicenseFile(char *license_file);
141 
149 DLLAPI long ER_STDCALL erKernelAddLicenseFile(char *license_file);
150 
157 DLLAPI long ER_STDCALL erKernelGetLicenseFile(char *license_file);
158 
184 DLLAPI long ER_STDCALL erKernelInitialize(char *HostApplicationPath, char *Sold_To_ID, long mode=0);
185 
186 #pragma endregion region_erk_init_license
187 
188 #pragma region region_erk_admin
189 
195 DLLAPI void ER_STDCALL erKernelFree(void);
196 
202 DLLAPI long ER_STDCALL erKernelGetLicense(char *hw_id);
203 
209 DLLAPI long ER_STDCALL erKernelGetHardwareID(char *hw_id);
210 
216 DLLAPI long ER_STDCALL erKernelGetOptions(char *opt);
217 
224 
225 #pragma endregion region_erk_admin
226 
227 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
228 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
229 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
230 // Funktionen zum Aufnehmen der Call-Back Funktionen
231 // class ERK_CAPI_CALLBACKS
232 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
233 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
234 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
235 #pragma region region_erk_callbacks
236 
237 /* AddToHostLog
238  Fügt dem Log der Hostanwendung einen Eintrag hinzu, oder gibt eine Statusmeldung in der
239  Statuszeile aus.
240 */
246 
247 /* Enable/Disable
248  AddToHostLog messages
249 */
269 
270 /* HostLoadGeometry
271  Fordert die Hostanwendung auf eine Geometrie aus einer Datei zu laden.
272 
273  ErHandle: Handle der Kinematik, der die Geometrie zugeordnet werden soll.
274  GeoHandle: Handle auf eine eventuell schon zuvor geladene Geomtrie der Kinematik
275  Funktioniert derzeit nicht und muss 0 sein.
276  Scaling: Skalierungsfactor mit dem die Geomtrie skaliert werden soll.
277  GeoMat: Eine Transformation zur Lagekorrektur der Geometrie.
278  FileName: Name der Datei, die geladen werden soll. Derzeit wird ein vollständiger Pfad erwartet.
279 
280  Returns: Handle auf die geladene Geomtrie. Im Fehlerfall wird 0 zurückgeliefert
281 */
288 
289 /* HostUpdateGeometry
290  Fordert die Hostanwendung auf die Kinematiktransformation der Geometrie zu aktualisieren.
291 
292  ErHandle: Handle der Kinematik, der die Geometrie zugeordnet werden soll.
293  GeoHandle: Handle auf die Geomtrie, wie von "HostLoadGeometry" geliefert.
294  KinMat: Die neue Transformation.
295 
296  Returns: Im Fehlerfall 1, ansonsten 0
297 */
304 
305 /* HostFreeGeometry
306  Fordert die Hostanwendung die Geometrie freizugeben.
307 
308  ErHandle: Handle der Kinematik, der die Geometrie zugeordnet werden soll.
309  GeoHandle: Handle auf die Geomtrie, wie von "HostLoadGeometry" geliefert.
310 
311  Returns: Im Fehlerfall 1, ansonsten 0
312 */
319 
320 /* HostGetActualTravelRanges
321  Fordert die Hostanwendung die Travel Ranges zu berechnen.
322 
323  ErHandle: Handle der Kinematik, der die Travel Ranges zugeordnet werden soll.
324 
325  Returns: Im Fehlerfall 1, ansonsten 0
326 */
333 /* HostNotify
334  Gibt Meldung an die Hostanwendung.
335 */
342 
343 /* HostGrpSync
344  GrpSync IO Hostanwendung.
345 */
351 #pragma endregion region_erk_callbacks
352 
353 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
354 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
355 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
356 // class ERK_CAPI_DEVICES
357 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
358 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
359 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
360 
361 #pragma region region_erk_devices
362 
363 /* erInitKin
364  Erzeugt ein Roboter Handle
365  Return 0-OK, 1-Error
366  siehe auch erINITIALIZE
367 */
378 DLLAPI long ER_STDCALL erInitKin(ER_HND *er_hnd, Host_HND host_hnd=NULL);
379 
380 /* erUnloadKin
381  Unload Robot Handle
382  Return 0-OK, 1-Error
383 */
393 DLLAPI long ER_STDCALL erUnloadKin(ER_HND *er_hnd);
394 
395 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
396 //
397 // erConnect* NEW_050402
398 //
399 // erConnectPositioner erConnectPositionerSetSync erConnectPositionerGetSync
400 // erConnectConveyor erConnectConveyorSetSync erConnectConveyorGetSync
401 // erConnectTrackMotion erConnectTrackMotionSetSync erConnectTrackMotionGetSync
402 // erConnectRobot erConnectRobotSetSync erConnectRobotGetSync
403 //
404 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
405 /* erConnectPositioner
406  Connects Positioner Kinematik mit dem Handle 'er_hnd_connect' zum Roboter mit dem Handle 'er_hnd'
407  Return 0-OK, 1-Error
408 */
434 DLLAPI long ER_STDCALL erConnectPositioner(ER_HND er_hnd, ER_HND er_hnd_connect);
442 
443 /* erConnectPositionerSetSync
444  Setzt Sync Flag der Positioner Kinematik
445  Return 0-OK, 1-Error
446 */
456 DLLAPI long ER_STDCALL erConnectPositionerSetSync(ER_HND er_hnd, long connect_sync);
457 
458 /* erConnectPositionerGetSync
459  Liest Sync Flag der Positioner Kinematik
460  Return -1-Error, ER_SYNC_UNDEF, ER_SYNC_OFF, ER_SYNC_ON
461 */
471 
472 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
473 /* erConnectConveyor
474  Connects Conveyor Kinematik mit dem Handle 'er_hnd_connect' zum Roboter mit dem Handle 'er_hnd'
475  Return 0-OK, 1-Error
476 */
502 DLLAPI long ER_STDCALL erConnectConveyor(ER_HND er_hnd, ER_HND er_hnd_connect);
510 
511 /* erConnectConveyorSetSync
512  Setzt Sync Flag der Conveyor Kinematik
513  Return 0-OK, 1-Error
514 */
524 DLLAPI long ER_STDCALL erConnectConveyorSetSync(ER_HND er_hnd, long connect_sync);
525 
526 /* erConnectConveyorGetSync
527  Liest Sync Flag der Conveyor Kinematik
528  Return -1-Error, ER_SYNC_UNDEF, ER_SYNC_OFF, ER_SYNC_ON
529 */
539 
540 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
541 /* erConnectTrackMotion
542  Connects Track Kinematik mit dem Handle 'er_hnd_connect' zum Roboter mit dem Handle 'er_hnd'
543  Return 0-OK, 1-Error
544 */
570 DLLAPI long ER_STDCALL erConnectTrackMotion(ER_HND er_hnd, ER_HND er_hnd_connect);
578 
579 /* erConnectTrackMotionSetSync
580  Setzt Sync Flag der TrackMotion Kinematik
581  Return 0-OK, 1-Error
582 */
592 DLLAPI long ER_STDCALL erConnectTrackMotionSetSync(ER_HND er_hnd, long connect_sync);
593 /* erConnectTrackMotionGetSync
594  Liest Sync Flag der TrackMotion Kinematik
595  Return -1-Error, ER_SYNC_UNDEF, ER_SYNC_OFF, ER_SYNC_ON, ER_SYNC_CONVEYOR
596 */
607 
608 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
609 /* erConnectRobot
610  Connects Robot Kinematik mit dem Handle 'er_hnd_connect' zum Roboter mit dem Handle 'er_hnd'
611  Return 0-OK, 1-Error
612 */
638 DLLAPI long ER_STDCALL erConnectRobot(ER_HND er_hnd, ER_HND er_hnd_connect);
646 
647 /* erConnectRobotSetSync
648  Setzt Sync Flag der Robot Kinematik
649  Return 0-OK, 1-Error
650 */
660 DLLAPI long ER_STDCALL erConnectRobotSetSync(ER_HND er_hnd, long connect_sync);
661 /* erConnectRobotGetSync
662  Liest Sync Flag der Robot Kinematik
663  Return -1-Error, ER_SYNC_UNDEF, ER_SYNC_OFF, ER_SYNC_ON
664 */
674 
675 /* erUnloadTool
676  Loescht Tool GeoHandle und setzt Tool auf Ident
677  Important:
678  Damit die TCP Position stimmt, muss ein rob_kin_update() folgen
679  Return 0-OK, 1-Error
680 */
690 DLLAPI long ER_STDCALL erUnloadTool(ER_HND er_hnd);
691 
692 /* erLoadKin
693  Load an easy-rob robot file with tool
694  Return 0-OK, 1-Error oder Abort
695 */
707 DLLAPI long ER_STDCALL erLoadKin(ER_HND er_hnd,char *fln_rob);
708 
709 /* erLoadTool
710  Load an easy-rob tool file
711  Return 0-OK, 1-Error oder Abort
712 */
720 DLLAPI long ER_STDCALL erLoadTool(ER_HND er_hnd,char *fln_tool);
721 
722 /* erGet_n_Kin
723  Return Number of loaded Robots "m_n_rob_kin"
724 */
730 DLLAPI long ER_STDCALL erGet_n_Kin(ER_HND er_hnd);
731 
732 /* erGet_n_Kin_IR
733  Return Number of loaded Robots with more than 3 joints and inverse kinematics "m_n_rob_kin_ir"
734 */
741 
742 /* erGetName
743  Name of Robot
744  Return 0-OK, 1-Error oder Abort
745 */
751 DLLAPI long ER_STDCALL erGetName(ER_HND er_hnd,char *name);
752 
753 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
754 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
755 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
756 // Robot Kinematics
757 // class ERK_CAPI_ROB_KIN
758 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
759 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
760 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
761 
762 /* erGetIDs
763  Kinematik ID - kinematischer Typ
764  RRRRRR_id =1; // Manutec
765  TTTRRR_id =2; // Portal
766  RRRRRR_bl_id =3; // ABB back link
767  UNIV_ROB_id =10; // Universelle Koordinaten
768  DH_id =11; // DH Koordinaten
769  inv_id - ID fuer inverse Kineamtik
770  inv_sub_id - Sub ID fuer inverse Kineamtik
771  Return 0-OK, 1-Error oder Abort
772 */
785 DLLAPI long ER_STDCALL erGetIDs(ER_HND er_hnd,long *kin_id,long *inv_id, long *inv_sub_id);
786 
787 /* erGet_num_dofs
788  Return Number of Robot active joints
789 */
796 
797 /* erGet_num_dofs_passive
798  Return Number of Robot passive joints
799 */
806 
807 /* erGetJointTypes
808  gets type of active robot joints 0-Rot 1-Trans
809  Return 0-OK, 1-Error oder Abort
810 */
819 DLLAPI long ER_STDCALL erGetJointTypes(ER_HND er_hnd, long *jnt_type_active);
820 
821 /* erGetJointTypes_passive
822  gets type of passive robot joints 0-Rot 1-Trans
823  Return 0-OK, 1-Error oder Abort
824 */
833 DLLAPI long ER_STDCALL erGetJointTypes_passive(ER_HND er_hnd, long *jnt_type_passive);
834 
835 /* erGetJointDirections
836  gets direction of active robot joints 1-JNT_DIRECTION_X, 2-JNT_DIRECTION_Y, 3-JNT_DIRECTION_Z
837  Return 0-OK, 1-Error oder Abort
838 */
847 DLLAPI long ER_STDCALL erGetJointDirections(ER_HND er_hnd, long *jnt_direction_active);
848 
849 /* erGetJointDirections_passive
850  gets type direction of passive robot joints 1-JNT_DIRECTION_X, 2-JNT_DIRECTION_Y, 3-JNT_DIRECTION_Z
851  Return 0-OK, 1-Error oder Abort
852 */
861 DLLAPI long ER_STDCALL erGetJointDirections_passive(ER_HND er_hnd, long *jnt_direction_passive);
862 
863 /* erGetJointChainTypes
864  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
865  Return 0-OK, 1-Error or Abort
866 */
874 DLLAPI long ER_STDCALL erGetJointChainTypes(ER_HND er_hnd, long *jnt_chain_type_active);
875 
876 /* erGetJointChainTypes_passive
877  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
878  Return 0-OK, 1-Error or Abort
879 */
887 DLLAPI long ER_STDCALL erGetJointChainTypes_passive(ER_HND er_hnd, long *jnt_chain_type_passive);
888 
889 /* erGetJointAttachDof_active
890  gets Attach-Dof of active robot joints
891  Return 0-OK, 1-Error or Abort
892 */
902 DLLAPI long ER_STDCALL erGetJointAttachDof_active(ER_HND er_hnd, long *jnt_attach_dof_active);
903 
904 /* erGetJointAttachDof_passive
905  gets Attach-Dof of passive robot joints
906  Return 0-OK, 1-Error or Abort
907 */
916 DLLAPI long ER_STDCALL erGetJointAttachDof_passive(ER_HND er_hnd, long *jnt_attach_dof_passive);
917 
918 /* erGetMoveBaseMode
919  gets moveable base mode 0-Robot base is fix (default), 1-Robot base is moveable
920  Return 0-OK, 1-Error oder Abort
921 */
931 DLLAPI long ER_STDCALL erGetMoveBaseMode(ER_HND er_hnd,long *move_base_mode);
932 
933 /* erGetMoveBasepJointIdx
934  gets passive joint idx representing the moveable base
935  0-Robot base is fix (default)
936  n-index of passive joint representing the moveable base
937  Return 0-OK, 1-Error oder Abort
938 */
947 DLLAPI long ER_STDCALL erGetMoveBasepJointIdx(ER_HND er_hnd,long *move_base_pjointidx);
948 
949 /* erGetpJointMoveBase
950  get transformation from passive joint 'pjnt' to the moveable base 'mb'
951  Return 0-OK, 1-Error oder Abort
952 */
961 DLLAPI long ER_STDCALL erGetpJointMoveBase(ER_HND er_hnd,DFRAME *pjntTmb);
962 
963 /* erGetRobotBaseToMoveBase
964  get transformation from robot base 'b' to the moveable base 'mb'
965  bTmb is Ident, if moveable base is fix
966  Return 0-OK, 1-Error oder Abort
967 */
977 
978 /* erSetJoints
979  Set Robot joints
980  Return 0-OK, 1-Error oder Abort
981 */
990 DLLAPI long ER_STDCALL erSetJoints(ER_HND er_hnd,double *q_solut);
991 
992 /* erSetJoint
993  Set Robot joint
994  Return 0-OK, 1-Error oder Abort
995 */
1006 DLLAPI long ER_STDCALL erSetJoint(ER_HND er_hnd,double q_solut, long jnt_no);
1007 
1008 /* erGetJoints
1009  Get current (active) Robot joints
1010  Return 0-OK, 1-Error oder Abort
1011 */
1023 DLLAPI long ER_STDCALL erGetJoints(ER_HND er_hnd,double *q_solut);
1024 
1025 /* erGetJointSolutions
1026  Get all (active) Robot joints solutions
1027  Return 0-OK, 1-Error oder Abort
1028 */
1077 DLLAPI long ER_STDCALL erGetJointSolutions(ER_HND er_hnd,double *q_solutions, long *q_warnings);
1078 
1079 /* erGetJointSpeeds
1080  Get current (active) Robot joint speeds
1081  Return 0-OK, 1-Error oder Abort
1082 */
1092 DLLAPI long ER_STDCALL erGetJointSpeeds(ER_HND er_hnd,double *v_solut);
1093 
1094 /* erGetJointAccels
1095  Get current (active) Robot joint accels
1096  Return 0-OK, 1-Error oder Abort
1097 */
1107 DLLAPI long ER_STDCALL erGetJointAccels(ER_HND er_hnd,double *a_solut);
1108 
1109 /* erGetJoints_passive
1110  Get current passive Robot joints
1111 */
1121 DLLAPI long ER_STDCALL erGetJoints_passive(ER_HND er_hnd,double *q_passive);
1122 
1123 /* erSetConfig
1124  Set Robot configuration
1125 */
1138 DLLAPI long ER_STDCALL erSetConfig(ER_HND er_hnd, long config);
1139 
1140 /* erGetConfig
1141  Set Robot configuration
1142 */
1151 DLLAPI long ER_STDCALL erGetConfig(ER_HND er_hnd, long *config);
1152 
1153 /* erFindConfig
1154  Find current Robot configuration
1155 */
1166 DLLAPI long ER_STDCALL erFindConfig(ER_HND er_hnd, long *config);
1167 
1168 /* erGetNumConfigs
1169  Get Number of Robot configurations
1170 */
1177 DLLAPI long ER_STDCALL erGetNumConfigs(ER_HND er_hnd, long *num_configs);
1178 
1179 /* erInvKinRobotBaseTip
1180  Inverse bTt is Robot base to Tip
1181  Return:
1182  Return code for inverse kinematics, INV_WARN_*
1183 */
1198 
1199 /* erInvKinWorldTip
1200  Inverse iTt is World to Tip
1201  Return:
1202  Return code for inverse kinematics, INV_WARN_*
1203 */
1217 DLLAPI long ER_STDCALL erInvKinWorldTip(ER_HND er_hnd,DFRAME *iTt);
1218 
1219 /* erInvKinRobotBaseTcp
1220  Inverse bTt is Robot base to Tcp
1221  Return:
1222  Return code for inverse kinematics, INV_WARN_*
1223 */
1238 
1239 /* erInvKinWorldTcp
1240  Inverse iTt is World to Tcp
1241  Return:
1242  Return code for inverse kinematics, INV_WARN_*
1243 */
1257 DLLAPI long ER_STDCALL erInvKinWorldTcp(ER_HND er_hnd,DFRAME *iTw);
1258 
1259 /* erSetTool
1260  Set Tool Tip to Tcp
1261 */
1268 DLLAPI long ER_STDCALL erSetTool(ER_HND er_hnd,DFRAME *tTw);
1269 /* erGetTool
1270  Get Tool Tip to Tcp
1271 */
1285 DLLAPI long ER_STDCALL erGetTool(ER_HND er_hnd,DFRAME *tTw);
1286 
1287 /* erGetToolFix
1288  Get Tool Tip to fix Tcp, without Tool Offset
1289 */
1306 DLLAPI long ER_STDCALL erGetToolFix(ER_HND er_hnd, DFRAME *tTwfix);
1307 
1308 /* erSetToolOffset
1309  Set Tool Offset Tcp' to Tcp
1310 */
1317 DLLAPI long ER_STDCALL erSetToolOffset(ER_HND er_hnd, DFRAME *wTwo);
1318 /* erGetToolOffset
1319  Get Tool Offset Tcp' to Tcp
1320 */
1352 DLLAPI long ER_STDCALL erGetToolOffset(ER_HND er_hnd, DFRAME *wTwo);
1353 
1354 /* erSetBaseRobotBase
1355  Set Base w.r.t. RobotBase
1356 */
1365 DLLAPI long ER_STDCALL erSetBaseRobotBase(ER_HND er_hnd,DFRAME *bTbase);
1366 
1367 /* erGetBaseRobotBase
1368  Get Base w.r.t. RobotBase
1369 */
1378 DLLAPI long ER_STDCALL erGetBaseRobotBase(ER_HND er_hnd,DFRAME *bTbase);
1379 
1380 /* erSetBaseWorld
1381  Set Base w.r.t. World
1382 */
1391 DLLAPI long ER_STDCALL erSetBaseWorld(ER_HND er_hnd,DFRAME *iTbase);
1392 
1393 /* erGetBaseWorld
1394  Get Base w.r.t. World
1395 */
1404 DLLAPI long ER_STDCALL erGetBaseWorld(ER_HND er_hnd,DFRAME *iTbase);
1405 
1406 /* erSetRobotBase
1407  Set RobotBase, World to Robot base
1408 */
1415 DLLAPI long ER_STDCALL erSetRobotBase(ER_HND er_hnd,DFRAME *iTb);
1416 
1417 /* erGetRobotBase
1418  Get RobotBase, World to Robot base
1419 */
1433 DLLAPI long ER_STDCALL erGetRobotBase(ER_HND er_hnd,DFRAME *iTb);
1434 
1435 /* erGetRobotBaseTip
1436  Get Robot Tip w.r.t. Robot base
1437 */
1444 DLLAPI long ER_STDCALL erGetRobotBaseTip(ER_HND er_hnd,DFRAME *bTt);
1445 /* erGetRobotBaseTcp
1446  Get Robot Tcp w.r.t. Robot base
1447 */
1454 DLLAPI long ER_STDCALL erGetRobotBaseTcp(ER_HND er_hnd,DFRAME *bTw);
1455 
1456 /* erGetWorldTip
1457  Get Robot Tip w.r.t. World
1458 */
1465 DLLAPI long ER_STDCALL erGetWorldTip(ER_HND er_hnd,DFRAME *iTt);
1466 
1467 /* erGetWorldTcp
1468  Get Robot Tcp w.r.t. World
1469 */
1476 DLLAPI long ER_STDCALL erGetWorldTcp(ER_HND er_hnd,DFRAME *iTw);
1477 
1478 /* erUpdateKin
1479  Update the complete kinematic
1480 */
1489 DLLAPI long ER_STDCALL erUpdateKin(ER_HND er_hnd);
1490 
1491 /* erGetJointFrameRobotBase
1492  Transformation from RobotBase to (active) Robot Joint
1493  Return 0-OK, 1-Error oder Abort
1494 */
1503 DLLAPI long ER_STDCALL erGetJointFrameRobotBase(ER_HND er_hnd,long active_jnt_no,DFRAME *bTax);
1504 
1505 /* erGetJointFrameRobotBase_passive
1506  Transformation from RobotBase to passive Robot Joint
1507  Return 0-OK, 1-Error oder Abort
1508 */
1517 DLLAPI long ER_STDCALL erGetJointFrameRobotBase_passive(ER_HND er_hnd,long passive_jnt_no,DFRAME *bTax);
1518 
1519 /* erGetJointFrameWorld
1520  Transformation from World to (active) Robot Joint
1521  Return 0-OK, 1-Error oder Abort
1522 */
1531 DLLAPI long ER_STDCALL erGetJointFrameWorld(ER_HND er_hnd,long active_jnt_no,DFRAME *iTax);
1532 
1533 /* erGetJointFrameWorld_passive
1534  Transformation from World to passive Robot Joint
1535  Return 0-OK, 1-Error oder Abort
1536 */
1545 DLLAPI long ER_STDCALL erGetJointFrameWorld_passive(ER_HND er_hnd,long passive_jnt_no,DFRAME *iTax);
1546 
1547 /* erSetExtTcpRobotBase
1548  Set external Tcp w.r.t Robot Base
1549  Return 0-OK, 1-Error oder Abort
1550  Ausnahme: Beim Positioner ist der external Tcp w.r.t flange des positioners
1551 */
1560 DLLAPI long ER_STDCALL erSetExtTcpRobotBase(ER_HND er_hnd,DFRAME *bText, long use_ext_flange);
1561 
1562 /* erGetExtTcpRobotBase
1563  Get external Tcp w.r.t. Robot Base
1564  Return 0-OK, 1-Error oder Abort
1565 */
1572 DLLAPI long ER_STDCALL erGetExtTcpRobotBase(ER_HND er_hnd,DFRAME *bText);
1573 
1574 /* erSetExtTcpWorld
1575  Set external Tcp w.r.t world
1576  Return 0-OK, 1-Error oder Abort
1577 */
1584 DLLAPI long ER_STDCALL erSetExtTcpWorld(ER_HND er_hnd,DFRAME *iText);
1585 
1586 /* erGetExtTcpWorld
1587  Get external Tcp w.r.t. world
1588  Return 0-OK, 1-Error oder Abort
1589 */
1596 DLLAPI long ER_STDCALL erGetExtTcpWorld(ER_HND er_hnd,DFRAME *iText);
1597 
1598 /* erSetExtTcpMode
1599  Set ExtTcpMode 0-IPO_MODE_BASE (Werk ZEUG fuehrend), 1-IPO_MODE_TOOL (Werk STUECK fuehren)
1600  Return 0-OK, 1-Error oder Abort
1601 */
1609 DLLAPI long ER_STDCALL erSetExtTcpMode(ER_HND er_hnd,long ext_tcp_mode);
1610 
1611 /* erGetExtTcpMode
1612  Get ExtTcpMode 0-IPO_MODE_BASE (Werk ZEUG fuehrend), 1-IPO_MODE_TOOL (Werk STUECK fuehren)
1613  Return 0-OK, 1-Error oder Abort
1614 */
1622 DLLAPI long ER_STDCALL erGetExtTcpMode(ER_HND er_hnd,long *ext_tcp_mode);
1623 
1624 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1625 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1626 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1627 // Robot Kinematics API
1628 // class ERK_CAPI_ROB_KIN_API
1629 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1630 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1631 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1632 
1633 /* erGetInvKinID
1634  Inverse kinematics ID for cRobot
1635  Return 0-OK, 1-Error oder Abort
1636 */
1643 DLLAPI long ER_STDCALL erGetInvKinID(ER_HND er_hnd, long *invkin_id);
1644 
1645 /* erGetInvKinSubID
1646  Inverse kinematics Sub-ID for cRobot
1647  Return 0-OK, 1-Error oder Abort
1648 */
1655 DLLAPI long ER_STDCALL erGetInvKinSubID(ER_HND er_hnd, long *invkinsub_id);
1656 
1673 DLLAPI long ER_STDCALL erSetJointSolutions(ER_HND er_hnd, double *q_solutions, long *q_warnings);
1674 
1685 DLLAPI long ER_STDCALL erSetJointDyn(ER_HND er_hnd, double q_dyn, long jnt_no);
1686 
1688 DLLAPI long ER_STDCALL erGetJointFrameActiveNext(ER_HND er_hnd, long active_jnt_no, DFRAME *T);
1689 DLLAPI long ER_STDCALL erSetJointFrameActiveNext(ER_HND er_hnd, long active_jnt_no, DFRAME *T);
1690 DLLAPI long ER_STDCALL erGetJointFrameActiveLast(ER_HND er_hnd, long active_jnt_no, DFRAME *T);
1691 DLLAPI long ER_STDCALL erSetJointFrameActiveLast(ER_HND er_hnd, long active_jnt_no, DFRAME *T);
1692 
1693 DLLAPI long ER_STDCALL erGetJointFramePassiveNext(ER_HND er_hnd, long passive_jnt_no, DFRAME *T);
1694 DLLAPI long ER_STDCALL erSetJointFramePassiveNext(ER_HND er_hnd, long passive_jnt_no, DFRAME *T);
1695 DLLAPI long ER_STDCALL erGetJointFramePassiveLast(ER_HND er_hnd, long passive_jnt_no, DFRAME *T);
1696 DLLAPI long ER_STDCALL erSetJointFramePassiveLast(ER_HND er_hnd, long passive_jnt_no, DFRAME *T);
1698 
1699 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1700 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1701 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1702 // Robot Attributes
1703 // class ERK_CAPI_ROB_ATRIBUTES
1704 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1705 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1706 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1707 
1708 
1709 /* erSetHomepos
1710  Set Robot Home position
1711 */
1721 DLLAPI long ER_STDCALL erSetHomepos(ER_HND er_hnd,double *homepos);
1722 
1723 /* erGetHomepos
1724  Get Robot Home position
1725 */
1735 DLLAPI long ER_STDCALL erGetHomepos(ER_HND er_hnd,double *homepos);
1736 
1737 /* erSetSweMin
1738  Set Robot min. SWE Switch
1739 */
1749 DLLAPI long ER_STDCALL erSetSweMin(ER_HND er_hnd,double *swe_min);
1750 
1751 /* erGetSweMin
1752  Get min. SWE Switch
1753 */
1763 DLLAPI long ER_STDCALL erGetSweMin(ER_HND er_hnd,double *swe_min);
1764 
1765 /* erGetSweMinCalc
1766  Get min. calculated SWE Switch
1767 */
1778 DLLAPI long ER_STDCALL erGetSweMinCalc(ER_HND er_hnd,double *swe_min_calc);
1779 
1780 /* erSetSweMax
1781  Set max. SWE Switch
1782 */
1792 DLLAPI long ER_STDCALL erSetSweMax(ER_HND er_hnd,double *swe_max);
1793 
1794 /* erGetSweMax
1795  Get max. SWE Switch
1796 */
1806 DLLAPI long ER_STDCALL erGetSweMax(ER_HND er_hnd,double *swe_max);
1807 /* erGetSweMaxCalc
1808  Get max. calculated SWE Switch
1809 */
1820 DLLAPI long ER_STDCALL erGetSweMaxCalc(ER_HND er_hnd,double *swe_max_calc);
1821 
1822 /* erGetSweMinMaxCalc
1823  Get min. and max. calculated SWE Switches
1824 */
1836 DLLAPI long ER_STDCALL erGetSweMinMaxCalc(ER_HND er_hnd,double *swe_min_calc,double *swe_max_calc);
1837 
1845 DLLAPI long ER_STDCALL erGetSweCalcMode(ER_HND er_hnd,long *swe_calc_mode);
1846 
1847 /* erSetSweMin_passive
1848  Set Robot min. SWE Switch for passive joints
1849 */
1859 DLLAPI long ER_STDCALL erSetSweMin_passive(ER_HND er_hnd, double *swe_min_passive);
1860 /* erGetSweMin_passive
1861  Get min. SWE Switch from passive joints
1862 */
1872 DLLAPI long ER_STDCALL erGetSweMin_passive(ER_HND er_hnd, double *swe_min_passive);
1873 
1874 /* erSetSweMax_passive
1875  Set Robot max. SWE Switch for passive joints
1876 */
1886 DLLAPI long ER_STDCALL erSetSweMax_passive(ER_HND er_hnd, double *swe_max_passive);
1887 /* erGetSweMax_passive
1888  Get max. SWE Switch from passive joints
1889 */
1899 DLLAPI long ER_STDCALL erGetSweMax_passive(ER_HND er_hnd, double *swe_max_passive);
1900 
1901 /* erGetConfigName
1902  Name of robot configuration
1903  Return 0-OK, 1-Error oder Abort
1904 */
1912 DLLAPI long ER_STDCALL erGetConfigName(ER_HND er_hnd, long config_idx, char *config_name);
1913 
1914 /* erGetJointName
1915  Name of active robot joint
1916  Return 0-OK, 1-Error oder Abort
1917 */
1924 DLLAPI long ER_STDCALL erGetJointName(ER_HND er_hnd, long active_jnt_no, char *jnt_name);
1925 
1926 /* erGetJointName_passive
1927  Name of passive robot joint
1928  Return 0-OK, 1-Error oder Abort
1929 */
1936 DLLAPI long ER_STDCALL erGetJointName_passive(ER_HND er_hnd, long passive_jnt_no, char *jnt_name_passive);
1937 
1938 
1939 /* erSetJointSign
1940  Set Joint Directions
1941 */
1949 DLLAPI long ER_STDCALL erSetJointSign(ER_HND er_hnd,double *joint_sign); // NEW_050324
1950 
1951 /* erGetJointSign
1952  Get Joint Sign
1953 */
1962 DLLAPI long ER_STDCALL erGetJointSign(ER_HND er_hnd,double *joint_sign); // NEW_050324
1963 
1964 /* erSetJointOffset
1965  Set Joint Offsets
1966 */
1974 DLLAPI long ER_STDCALL erSetJointOffset(ER_HND er_hnd,double *joint_offset); // NEW_050324
1975 
1976 /* erGetJointOffset
1977  Get Joint Offsets
1978 */
1986 DLLAPI long ER_STDCALL erGetJointOffset(ER_HND er_hnd,double *joint_offset); // NEW_050324
1987 
1988 /* erSetVqMax
1989  Set max. joint speed [rad/s,m/s]
1990 */
1998 DLLAPI long ER_STDCALL erSetVqMax(ER_HND er_hnd,double *vq_max);
1999 
2000 /* erGetVqMax
2001  Get max. joint speed [rad/s,m/s]
2002 */
2010 DLLAPI long ER_STDCALL erGetVqMax(ER_HND er_hnd,double *vq_max);
2011 
2012 /* erSetAqMax
2013  Set max. joint acceleration [rad/s^2,m/s^2]
2014 */
2022 DLLAPI long ER_STDCALL erSetAqMax(ER_HND er_hnd,double *aq_max);
2023 
2024 /* erGetAqMax
2025  Get max. joint acceleration [rad/s^2,m/s^2]
2026 */
2034 DLLAPI long ER_STDCALL erGetAqMax(ER_HND er_hnd,double *aq_max);
2035 
2036 /* erSetVxMax
2037  Set max. cartesian speed [m/s]
2038 */
2045 DLLAPI long ER_STDCALL erSetVxMax(ER_HND er_hnd,double vx_max);
2046 
2047 /* erGetVxMax
2048  Get max. cartesian speed [m/s]
2049 */
2056 DLLAPI long ER_STDCALL erGetVxMax(ER_HND er_hnd,double *vx_max);
2057 
2058 /* erSetVxOriMax
2059  Set max. cartesian orientation speed [rad/s]
2060 */
2067 DLLAPI long ER_STDCALL erSetVxOriMax(ER_HND er_hnd,double vx_ori_max);
2068 
2069 /* erGetVxOriMax
2070  Get max. cartesian orientation orientation speed [rad/s]
2071 */
2078 DLLAPI long ER_STDCALL erGetVxOriMax(ER_HND er_hnd,double *vx_ori_max);
2079 
2080 /* erSetAxMax
2081  Set max. cartesian acceleration [m/s^2]
2082 */
2089 DLLAPI long ER_STDCALL erSetAxMax(ER_HND er_hnd,double ax_max);
2090 
2091 /* erGetAxMax
2092  Get max. cartesian acceleration [m/s^2]
2093 */
2100 DLLAPI long ER_STDCALL erGetAxMax(ER_HND er_hnd,double *ax_max);
2101 
2102 /* erSetAxOriMax
2103  Set max. cartesian orientation acceleration [rad/s^2]
2104 */
2112 DLLAPI long ER_STDCALL erSetAxOriMax(ER_HND er_hnd,double ax_ori_max);
2113 /* erGetAxOriMax
2114  Get max. cartesian orientation acceleration [rad/s^2]
2115 */
2122 DLLAPI long ER_STDCALL erGetAxOriMax(ER_HND er_hnd,double *ax_ori_max);
2123 
2124 /* erGetBackLink obsolete -> use erGetBacklink(...)
2125  Get Back Link returns robot back link information
2126  *backlink = 0-KIN_BACK_LINK_NO | 1-KIN_BACK_LINK_YES | 2-KIN_BACK_LINK_UNKNOWN
2127  Return 0-OK, 1-Error oder Abort
2128 */
2131 DLLAPI long ER_STDCALL erGetBackLink(ER_HND er_hnd,long *backlink); // obsolete -> use erGetBacklink(...)
2132 
2133 /* erSetBacklink
2134  Set Backlink extended attribute
2135 */
2145 DLLAPI long ER_STDCALL erSetBacklink(ER_HND er_hnd,long backlink);
2146 
2147 /* erGetBacklink
2148  Get Backlink extended attribute
2149 */
2159 DLLAPI long ER_STDCALL erGetBacklink(ER_HND er_hnd,long *backlink);
2160 
2161 /* erSetAxis_couplingA2A3
2162  Set Axis_couplingA2A3 extended attribute
2163 */
2173 DLLAPI long ER_STDCALL erSetAxis_couplingA2A3(ER_HND er_hnd,long axis_couplingA2A3);
2174 
2175 /* erGetAxis_couplingA2A3
2176  Get Axis_couplingA2A3 extended attribute
2177 */
2187 DLLAPI long ER_STDCALL erGetAxis_couplingA2A3(ER_HND er_hnd,long *axis_couplingA2A3);
2188 
2189 /* erSetCounter_weight
2190  Set Counter_weight extended attribute
2191 */
2201 DLLAPI long ER_STDCALL erSetCounter_weight(ER_HND er_hnd,long counter_weight);
2202 
2203 /* erGetCounter_weight
2204  Get Counter_weight extended attribute
2205 */
2215 DLLAPI long ER_STDCALL erGetCounter_weight(ER_HND er_hnd,long *counter_weight);
2216 
2217 /* erSetTurn_interval
2218  Set Turn_interval [rad,m]
2219 */
2230 DLLAPI long ER_STDCALL erSetTurn_interval(ER_HND er_hnd,double *turn_interval);
2231 
2232 /* erGetTurn_interval
2233  Get Turn_interval [rad,m]
2234 */
2245 DLLAPI long ER_STDCALL erGetTurn_interval(ER_HND er_hnd,double *turn_interval);
2246 
2247 /* erSetTurn_offset
2248  Set Turn_offset [rad,m]
2249 */
2260 DLLAPI long ER_STDCALL erSetTurn_offset(ER_HND er_hnd,double *turn_offset);
2261 
2262 /* erGetTurn_offset
2263  Get Turn_offset [rad,m]
2264 */
2275 DLLAPI long ER_STDCALL erGetTurn_offset(ER_HND er_hnd,double *turn_offset);
2276 
2277 /* erSetTurn_value
2278  Set Turn_value, will set turn_enable
2279 */
2292 DLLAPI long ER_STDCALL erSetTurn_value(ER_HND er_hnd,long *turn_value);
2293 
2294 /* erGetTurn_value
2295  Get Turn_value
2296 */
2307 DLLAPI long ER_STDCALL erGetTurn_value(ER_HND er_hnd,long *turn_value);
2308 
2309 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2310 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2311 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2312 // MotionPlanner
2313 // class ERK_CAPI_MOP
2314 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2315 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2316 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2317 
2318 /* erINITIALIZE
2319  Erzeugt ein Roboter Handle
2320  Opcode 101, Chapter 3.4.1, Page 3-26
2321  Return 0-OK, 1-Error
2322  entspricht erInitKin()
2323 */
2333 DLLAPI long ER_STDCALL erINITIALIZE (ER_HND *er_hnd, Host_HND host_hnd=NULL);
2334 
2335 /* erRESET
2336  Definition: Resets an instance of a robot to an initial state
2337  Opcode 102, Chapter 3.4.1, Page 3-29
2338  Return 0-OK, 1-Error
2339 */
2361 DLLAPI long ER_STDCALL erRESET(ER_HND er_hnd);
2362 
2363 /* erTERMINATE
2364  Loescht Roboter Handle
2365  Definition: Terminates an instance of a robot of the Kernel
2366  Opcode 103, Chapter 3.4.1, Page 3-30
2367  Return 0-OK, 1-Error
2368  see erUnloadKin()
2369 */
2377 DLLAPI long ER_STDCALL erTERMINATE(ER_HND *er_hnd);
2378 
2379 /* erSET_INITIAL_POSITION
2380  sets the robot model to a position according to the input data
2381  Opcode 116, Chapter 3.4.3, Page 3-50
2382  Return 0-OK, 1-Error
2383 */
2393 DLLAPI long ER_STDCALL erSET_INITIAL_POSITION(ER_HND er_hnd, INITIAL_POSITION_DATA *p_initial_position_data);
2394 
2395 /*erSELECT_TRACKING
2396  Definition: Selects the Tracking On or Off in the Kernel
2397  Opcode 146, Chapter 3.4.7, Page 3-93
2398  Return 0-OK, 1-Error, -1- not supported
2399 */
2411 DLLAPI long ER_STDCALL erSELECT_TRACKING(ER_HND er_hnd, long conveyor_flags);
2412 
2413 /*erSET_CONVEYOR_POSITION
2414  Definition: Sends the conveyor position to the Kernel
2415  Opcode 147, Chapter 3.4.7, Page 3-94
2416  Return 0-OK, 1-Error, -1- not supported
2417 */
2433 DLLAPI long ER_STDCALL erSET_CONVEYOR_POSITION(ER_HND er_hnd, long input_format, long conveyor_flags, double conveyor_pos);
2434 
2435 /*erDEFINE_EVENT
2436  Definition: Defines an internal asynchronous event that is to be generated relative to position and/or time in the Kernel
2437  Opcode 148, Chapter 3.4.8, Page 3-96
2438  Return 0-OK, 1-Error, -1- not supported
2439 */
2453 DLLAPI long ER_STDCALL erDEFINE_EVENT(ER_HND er_hnd, long event_id, long target_id, double resolution, long type_of_event, double event_spec);
2454 
2455 /*erCANCEL_EVENT
2456  Definition: This function makes it possible to cancel an event previously defined in the Kernel by the erDEFINE_EVENT() function
2457  Opcode 149, Chapter 3.4.8, Page 3-99
2458  Return 0-OK, 1-Error, -1- not supported
2459 */
2469 DLLAPI long ER_STDCALL erCANCEL_EVENT(ER_HND er_hnd, long event_id);
2470 
2471 /*erGET_EVENT
2472  Definition: This function gets information about an internal asynchronous event that occurred in the Kernel
2473  Opcode 150, Chapter 3.4.8, Page 3-100
2474  Return 0-OK, 1-Error, -1- not supported
2475 */
2485 DLLAPI long ER_STDCALL erGET_EVENT(ER_HND er_hnd, long event_nr);
2486 
2487 /*erGET_MESSAGE
2488  Definition: Gives information about controller messages that occurred
2489  Opcode 154, Chapter 3.4.9, Page 3-104
2490  Return 0-OK, 1-Error, -1- not supported
2491 */
2502 DLLAPI long ER_STDCALL erGET_MESSAGE(ER_HND er_hnd, long message_number);
2503 
2504 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2505 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2506 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2507 // MotionPlanner
2508 // class ERK_CAPI_MOP_DATA
2509 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2510 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2511 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2512 
2513 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2514 // Tracking Window
2515 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2516 /* erSetTrackingWindow
2517  Aktiviert/Deaktiviert das Tracking Window und gibt den Trackingbereich [Up..Down] an.
2518  Return 0-OK, 1-Error
2519 */
2539 DLLAPI long ER_STDCALL erSetTrackingWindow(ER_HND er_hnd, long active, double up, double down, TErTrackingWindowID id_tw, char *name=NULL);
2540 
2541 /* erSetconveyorStartCondition
2542  tx0 - Offsetposition in x-Rtg. bzgl. Conveyorflanch
2543  Return 0-OK, 1-Error
2544 */
2554 DLLAPI long ER_STDCALL erSetconveyorStartCondition(ER_HND er_hnd, double tx0);
2555 
2588 DLLAPI long ER_STDCALL erSetEvents_DOUT(ER_HND er_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);
2589 
2620 DLLAPI long ER_STDCALL erSetEvents_DIN(ER_HND er_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);
2621 
2622 //
2623 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2624 
2625 /* erSetSpeedReductionEnable
2626 */
2638 DLLAPI long ER_STDCALL erSetSpeedReductionEnable(ER_HND er_hnd,long speed_reduction_enable);
2639 
2640 /* erGetSpeedReductionEnable
2641 */
2653 DLLAPI long ER_STDCALL erGetSpeedReductionEnable(ER_HND er_hnd,long *speed_reduction_enable);
2654 
2655 /*erSELECT_MOTION_TYPE
2656  motion_type, ER_JOINT = 1, ER_LIN = 2, ER_SLEW = 3, ER_CIRC = 4
2657  Opcode 120, Chapter 3.4.4, Page 3-58
2658 */
2669 DLLAPI long ER_STDCALL erSELECT_MOTION_TYPE(ER_HND er_hnd, long motion_type);
2670 
2671 /*erSELECT_TARGET_TYPE
2672  Definition: selects one of different types for the specification of targets
2673  Opcode 121, Chapter 3.4.4, Page 3-59
2674  Return 0-OK, 1-Error
2675 
2676  Currently supported:
2677  0 - absolute w.r.t. object frame
2678  9 - single axis motion
2679 */
2691 DLLAPI long ER_STDCALL erSELECT_TARGET_TYPE(ER_HND er_hnd, long target_type);
2692 
2693 /*erSELECT_TRAJECTORY_MODE
2694  Definition: Selects on or off for the trajectory mode
2695  Opcode 122, Chapter 3.4.4, Page 3-62
2696  Return 0-OK, 1-Error, -1-not supported
2697 */
2707 DLLAPI long ER_STDCALL erSELECT_TRAJECTORY_MODE(ER_HND er_hnd, long trajectory_on);
2708 
2709 /*erSET_ADVANCE_MOTION
2710  Definition: defines the number of motions, the motion planner may run in advance of the interpolator (look_ahead)
2711  Opcode 127, Chapter 3.4.4, Page 3-67
2712 */
2720 DLLAPI long ER_STDCALL erSET_ADVANCE_MOTION(ER_HND er_hnd, long Number_of_motion);
2721 /*erSET_MOTION_FILTER
2722  Definition: defines the filter factor for smoothing velocity profiles of motions
2723  Opcode 128, Chapter 3.4.4, Page 3-68
2724 */
2733 DLLAPI long ER_STDCALL erSET_MOTION_FILTER(ER_HND er_hnd, long filter_factor);
2734 
2735 /*erREVERSE_MOTION
2736  Definition: Instructs to do a reverse motion
2737  Opcode 130, Chapter 3.4.4, Page 3-70
2738  Return 0-OK, 1-Error, -1-not supported
2739 */
2752 DLLAPI long ER_STDCALL erREVERSE_MOTION(ER_HND er_hnd, double distance );
2753 
2754 /*erSET_PAYLOAD_PARAMETER
2755  Definition: Allows specifying payloads at different locations on the robot.
2756  It has to be supported when the payload influences the motion planning.
2757  E.g. the load by a tool on the flange may be specified
2758  Opcode 160, Chapter 3.4.4, Page 3-71
2759  Return 0-OK, 1-Error, -1-not supported
2760 */
2776 DLLAPI long ER_STDCALL erSET_PAYLOAD_PARAMETER(ER_HND er_hnd, long storage, char *frame_id, long param_number, double param_value);
2777 
2778 /*erSET_CONFIGURATION_CONTROL
2779  Definition: Allows the setting of controller-specific data for the control of robot configurations
2780  Opcode 161, Chapter 3.4.4, Page 3-72
2781  Return 0-OK, 1-Error, -1-not supported
2782 */
2794 DLLAPI long ER_STDCALL erSET_CONFIGURATION_CONTROL(ER_HND er_hnd, char *param_id, char *param_contents);
2795 
2796 /*erSET_OVERRIDE_SPEED
2797  Definition: Sets correction values for scaling the programmed speed during program execution
2798  Opcode 139, Chapter 3.4.5, Page 3-82
2799  Return 0-OK, 1-Error, -1-not supported
2800 */
2814 DLLAPI long ER_STDCALL erSET_OVERRIDE_SPEED(ER_HND er_hnd, double correction_value, long correction_type);
2815 
2816 /*erSET_OVERRIDE_ACCELERATION
2817  Definition: Sets correction values for scaling the robot acceleration
2818  Opcode 155, Chapter 3.4.5, Page 3-83
2819  Return 0-OK, 1-Error, -1-not supported
2820 */
2837 DLLAPI long ER_STDCALL erSET_OVERRIDE_ACCELERATION(ER_HND er_hnd, double correction_value, long accel_type, long correction_type);
2838 
2839 /*erSET_OVERRIDE_SPEED_EX
2840  Definition: Sets override for scaling the programmed speed during program execution
2841  Return 0-OK, 1-Error, -1-not supported
2842 */
2856 DLLAPI long ER_STDCALL erSET_OVERRIDE_SPEED_EX(ER_HND er_hnd, ER_HND er_hnd_slave, double speed_override, double tcp_speed_max=0);
2857 
2858 /*erSET_OVERRIDE_ACCELERATION_EX
2859  Definition: Sets override for scaling the programmed acceleration during program execution
2860  Return 0-OK, 1-Error, -1-not supported
2861 */
2875 DLLAPI long ER_STDCALL erSET_OVERRIDE_ACCELERATION_EX(ER_HND er_hnd, ER_HND er_hnd_slave, double accel_override, double tcp_accel_max=0);
2876 
2877 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2878 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2879 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2880 // MotionPlanner
2881 // class ERK_CAPI_MOP_PATH
2882 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2883 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2884 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2885 
2886 /* erSetAutoAccel
2887  Enables automatic calculation of acceleration
2888  depending on programmed speed
2889  ON = 7 – Calculation for PTP, POS and ORI
2890  POS = 1 – Calculation for motions for Position
2891  ORI = 2 – Calculation for motions for Orientation
2892  AX = 4 – Calculation for PTP motions
2893  OFF = 0 – Calculation deactivated
2894 */
2911 DLLAPI long ER_STDCALL erSetAutoAccel(ER_HND er_hnd,long autoaccel);
2912 
2913 /* erGetAutoAccel
2914  Get status for automatic calculation of acceleration
2915  depending on programmed speed
2916  ON = 7 – Calculation for PTP, POS and ORI
2917  POS = 1 – Calculation for motions for Position
2918  ORI = 2 – Calculation for motions for Orientation
2919  AX = 4 – Calculation for PTP motions
2920  OFF = 0 – Calculation deactivated
2921 */
2938 DLLAPI long ER_STDCALL erGetAutoAccel(ER_HND er_hnd,long *autoaccel);
2939 
2940 /* erSetAccSet
2941  Set lagging of accelerations.
2942  The arguments Acc and Ramp are given in percentage values in the range 20% to 100%
2943  Acc: Acceleration and Deceleration as percentage value of normal values
2944  Ramp: Change of Acceleration and Deceleration as percentage value of normal values
2945 */
2957 DLLAPI long ER_STDCALL erSetAccSet(ER_HND er_hnd,double acc,double ramp);
2958 
2959 /* erGetAccSet
2960  Get current lagging of accelerations.
2961  The arguments Acc and Ramp are given in percentage values in the range 20% to 100%
2962  Acc: Acceleration and Deceleration as percentage value of normal values
2963  Ramp: Change of Acceleration and Deceleration as percentage value of normal values
2964 */
2976 DLLAPI long ER_STDCALL erGetAccSet(ER_HND er_hnd,double *acc,double *ramp);
2977 
2978 /* erSET_INTERPOLATION_TIME
2979  sets the interpolation time in [ms]
2980  Opcode 119, Chapter 3.4.3, Page 3-56
2981  Return 0-OK, 1-Error
2982 */
2992 DLLAPI long ER_STDCALL erSET_INTERPOLATION_TIME(ER_HND er_hnd, double InterpolationTime);
2993 
2994 
2995 /*erSELECT_ORIENTATION_INTERPOLATION_MODE
2996 NEW_041112
2997 */
3008 DLLAPI long ER_STDCALL erSELECT_ORIENTATION_INTERPOLATION_MODE(ER_HND er_hnd, long interpolation_mode, long ori_const);
3009 
3010 /*erSELECT_CIRCULAR_ORIENTATION_INTERPOLATION_MODE
3011 NEW_070122
3012  Definition:
3013  selects the circular orientation interpolation mode
3014  circ_orientation_interpolation_mode:
3015  0: use Start- and Target Orientation
3016  1: use Start-, Via- and Target Orientation, default
3017  2: use Start-, Via- and Target Orientation, hereby the robot reaches the orientation in Via Point
3018  3: Tangential in Abhängigkeit der Orientierung im StartPunkt
3019  4: Constant, Fix
3020  Return 0-OK, 1-Error
3021 */
3031 DLLAPI long ER_STDCALL erSELECT_CIRCULAR_ORIENTATION_INTERPOLATION_MODE(ER_HND er_hnd, long circ_orientation_interpolation_mode);
3032 
3033 /*erSELECT_DOMINANT_INTERPOLATION
3034  Definition: Sets the interplation space defining the movement
3035  Opcode 124, Chapter 3.4.4, Page 3-66
3036  Return 0-OK, 1-Error
3037 */
3053 DLLAPI long ER_STDCALL erSELECT_DOMINANT_INTERPOLATION(ER_HND er_hnd, long dominant_int_type, long dominant_int_param=0);
3054 
3055 /*erSET_JOINT_SPEEDS
3056  Definition:
3057  sets the joint speed expressed as percentage of the maximal joint speed for each specified joint
3058  Opcode 131, Chapter 3.4.5, Page 3-74
3059 */
3073 DLLAPI long ER_STDCALL erSET_JOINT_SPEEDS(ER_HND er_hnd, long all_joint_flags, long joint_flags, double speed_percent);
3074 
3075 /*erSET_CARTESIAN_POSITION_SPEED
3076  Definition: speed for cartesian motion [m/sec]
3077  Opcode 133, Chapter 3.4.5, Page 3-75
3078  Return 0-OK, 1-Error
3079 */
3087 DLLAPI long ER_STDCALL erSET_CARTESIAN_POSITION_SPEED(ER_HND er_hnd, double speed_value);
3088 
3089 /*erSET_CARTESIAN_ORIENTATION_SPEED
3090  Definition: sets speed for the orientation during cartesian motion [rad/sec]
3091  Opcode 134, Chapter 3.4.5, Page 3-76
3092  Return 0-OK, 1-Error
3093 */
3103 DLLAPI long ER_STDCALL erSET_CARTESIAN_ORIENTATION_SPEED(ER_HND er_hnd, long rotation_no, double speed_ori_value);
3104 
3105 /*erSET_JOINT_ACCELERATIONS
3106  sets the joint accelerations expressed as percentage of the maximal joint acceleration for each specified joint
3107  Opcode 135, Chapter 3.4.5, Page 3-77
3108  Return 0-OK, 1-Error
3109 */
3126 DLLAPI long ER_STDCALL erSET_JOINT_ACCELERATIONS(ER_HND er_hnd, long all_joint_flags, long joint_flags, double accel_percent, long accel_type);
3127 
3128 /*erSET_CARTESIAN_POSITION_ACCELERATIONS
3129  Definition: sets acceleration for cartesian motion [m/sec^2]
3130  Opcode 137, Chapter 3.4.5, Page 3-78
3131  accel_type
3132  1: // accel
3133  2: // decel
3134  3: // accel + decel
3135 */
3146 DLLAPI long ER_STDCALL erSET_CARTESIAN_POSITION_ACCELERATION(ER_HND er_hnd, double accel_value, long accel_type);
3147 
3148 /*erSET_CARTESIAN_ORIENTATION_ACCELERATION
3149  Definition: sets the acceleration for the orientation during cartesian motion [rad/sec^2]
3150  Opcode 138, Chapter 3.4.5, Page 3-79
3151  Return 0-OK, 1-Error
3152 */
3165 DLLAPI long ER_STDCALL erSET_CARTESIAN_ORIENTATION_ACCELERATION(ER_HND er_hnd, long rotation_no, double accel_ori_value, long accel_type);
3166 
3167 /*erGET_CARTESIAN_POSITION_ACCELERATIONS
3168  Definition: gets acceleration for cartesian motion [m/sec^2]
3169  accel_type
3170  1: // accel
3171  2: // decel
3172  Return 0-OK, 1-Error
3173 */
3183 DLLAPI long ER_STDCALL erGET_CARTESIAN_POSITION_ACCELERATION(ER_HND er_hnd, double *accel_value, long accel_type);
3184 
3185 /*erGET_CARTESIAN_ORIENTATION_ACCELERATION
3186  Definition: Gets the acceleration for the orientation during cartesian motion [rad/sec^2]
3187  accel_type
3188  1: // accel
3189  2: // decel
3190  Return 0-OK, 1-Error
3191 */
3203 DLLAPI long ER_STDCALL erGET_CARTESIAN_ORIENTATION_ACCELERATION(ER_HND er_hnd, long rotation_no, double *accel_ori_value, long accel_type);
3204 
3205 /*erSET_JOINT_JERKS
3206  Definition: Sets the joint jerk expressed as a percentage of the maximal joint jerk for each specified joint.
3207  Opcode 162, Chapter 3.4.5, Page 3-80
3208  Return 0-OK, 1-Error, -1-not supported
3209 */
3226 DLLAPI long ER_STDCALL erSET_JOINT_JERKS(ER_HND er_hnd, long all_joint_flags, long joint_flags, double jerk_percent, long jerk_type);
3227 
3228 /*erSET_MOTION_TIME
3229  Definition: Specifies the motion time for the next motion
3230  Opcode 156, Chapter 3.4.5, Page 3-81
3231  Return 0-OK, 1-Error, -1-not supported
3232 */
3241 DLLAPI long ER_STDCALL erSET_MOTION_TIME(ER_HND er_hnd, double time_value);
3242 
3243 
3244 /*erSELECT_FLYBY_MODE
3245 */
3256 DLLAPI long ER_STDCALL erSELECT_FLYBY_MODE(ER_HND er_hnd, long flyby_on);
3257 
3258 /*erSET_FLYBY_CRITERIA_PARAMETER
3259  Definition: Sets the value of a flyby parameter
3260  Opcode 141, Chapter 3.4.6, Page 3-86
3261  Return 0-OK, 1-Error, -1- not supported
3262 */
3274 DLLAPI long ER_STDCALL erSET_FLYBY_CRITERIA_PARAMETER(ER_HND er_hnd, long param_number, long joint_nr, double param_value);
3275 
3276 /*erSELECT_FLYBY_CRITERIA
3277  Definition: Selects a flyby criterion (parameter)
3278  Opcode 142, Chapter 3.4.6, Page 3-87
3279  Return 0-OK, 1-Error, -1- not supported
3280 */
3290 DLLAPI long ER_STDCALL erSELECT_FLYBY_CRITERIA(ER_HND er_hnd, long param_number);
3291 
3292 /*erCANCEL_FLYBY_CRITERIA
3293  Definition: Cancels (unselects) a fly-by criterion
3294  Opcode 143, Chapter 3.4.6, Page 3-88
3295  Return 0-OK, 1-Error, -1- not supported
3296 */
3306 DLLAPI long ER_STDCALL erCANCEL_FLYBY_CRITERIA(ER_HND er_hnd, long param_number);
3307 
3308 /*erSELECT_POINT_ACCURACY
3309  Definition: Selects a criterion for when a target is reached
3310  Opcode 144, Chapter 3.4.6, Page 3-89
3311  Return 0-OK, 1-Error, -1- not supported
3312 */
3322 DLLAPI long ER_STDCALL erSELECT_POINT_ACCURACY(ER_HND er_hnd, long accuracy_type);
3323 
3324 /*erSET_POINT_ACCURACY_PARAMETER
3325  Definition: Sets the value of a parameter determining point accuracy
3326  Opcode 145, Chapter 3.4.6, Page 3-90
3327  Return 0-OK, 1-Error, -1- not supported
3328 */
3339 DLLAPI long ER_STDCALL erSET_POINT_ACCURACY_PARAMETER(ER_HND er_hnd, long accuracy_type, double accuracy_value );
3340 
3341 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3342 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3343 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3344 // MotionPlanner
3345 // class ERK_CAPI_MOP_PREP
3346 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3347 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3348 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3349 
3350 /* erSET_NEXT_TARGET
3351  sends the next target position. This may include intermediate position, radius, angle for circular motion
3352  Opcode 117, Chapter 3.4.3, Page 3-52
3353  Return
3354  1 - need more data, nothing to do
3355  0 - OK, next step is calculated successful
3356  -17 - specified motion type is not supported
3357  -34 - Error in matrix. Incomplete matrix
3358  -35 - Cartesian position expected
3359  -36 - Joint position expected
3360  -43 - Initial position not set
3361  -51 - no solution is found. One joint is out of range
3362  -52 - Cartesian position is out of work range
3363  -59 - specified position is singular
3364  -68 - fatal error, stopped calculating
3365  -71 - Position not stored, target buffer is full
3366  -78 - The specified position is not acceptable
3367  -79 - Not ready to receive targets
3368 */
3395 DLLAPI long ER_STDCALL erSET_NEXT_TARGET(ER_HND er_hnd, NEXT_TARGET_DATA *p_next_target_data);
3396 
3397 /* erSET_NEXT_TARGET_ADVANCE
3398  Definition: Sends about next target data
3399  Return 0-OK, 1-Error
3400 */
3411 DLLAPI long ER_STDCALL erSET_NEXT_TARGET_ADVANCE(ER_HND er_hnd, NEXT_TARGET_DATA_ADVANCE *p_next_target_data_advance);
3412 
3413 /*erSTOP_MOTION
3414  Definition: Stops the on-going motion toward the target
3415  Opcode 151, Chapter 3.4.8, Page 3-101
3416  Return 0-OK, 1-Error
3417 */
3429 DLLAPI long ER_STDCALL erSTOP_MOTION(ER_HND er_hnd);
3430 
3431 /*erCONTINUE_MOTION
3432  Definition: Continues a motion that was stopped with the erSTOP_MOTION() function
3433  Opcode 152, Chapter 3.4.8, Page 3-102
3434  Return 0-OK, 1-Error
3435 */
3447 
3448 /*erCANCEL_MOTION
3449  Definition: Cancel a motion that was stopped with erSTOP_MOTION() function
3450  Opcode 153, Chapter 3.4.8, Page 3-103
3451  Return 0-OK, 1-Error
3452 */
3464 
3465 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3466 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3467 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3468 // MotionPlanner
3469 // class ERK_CAPI_MOP_EXEC
3470 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3471 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3472 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3473 
3474 /* erGET_NEXT_STEP
3475  returns the next interpolated position step, the
3476  elapsed time and supplementary information like events, joint limits and messages
3477  Opcode 118, Chapter 3.4.3, Page 3-54
3478  Return
3479  2 - final step, target reached or speed is zero
3480  1 - need more data, nothing to do
3481  0 - OK, next step is calculated successful
3482  -13 - the specified output format is not supported
3483  -17 - the specified motion type is not supported
3484  -25 - the motion is not possible in the specified time
3485  -42 - no target set
3486  -51 - no solution is found. One joint is out of range
3487  -52 - Cartesian position is out of work range
3488  -68 - fatal error, stopped calculating
3489  -76 - incomplete or inconsistent motion specification, can't move
3490  -1053 - Cartesian position is out of boudary work range
3491  -1059 - Cartesian position is singular
3492 */
3524 DLLAPI long ER_STDCALL erGET_NEXT_STEP(ER_HND er_hnd, long output_format, NEXT_STEP_DATA *p_next_step_data, double time);
3525 
3535 DLLAPI long ER_STDCALL erGetCurrentStepData(ER_HND er_hnd, CURRENT_STEP_DATA *p_current_step_data);
3536 
3537 /*erSET_OVERRIDE_POSITION
3538  Definition: Sets a correction offset which will be added to the path during program execution
3539  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.
3540  Opcode 129, Chapter 3.4.4, Page 3-69
3541  Return 0-OK, 1-Error, -1- not supported
3542 */
3552 DLLAPI long ER_STDCALL erSET_OVERRIDE_POSITION(ER_HND er_hnd, DFRAME *PosOffset);
3553 
3554 /*erGET_CURRENT_TARGETID
3555  Definition: Returns the TargetID of the motion in execution
3556  Opcode 163, Chapter 3.4.6, Page 3-91
3557  Return 0-OK, 1-Error
3558 */
3567 
3568 #pragma endregion region_erk_devices
3569 
3570 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3571 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3572 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3573 // ToolPath
3574 // class ERK_CAPI_TOOLPATH
3575 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3576 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3577 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3578 
3579 #pragma region region_CTOOLPATH
3580 #pragma region region_toolpath
3581 
3607 DLLAPI long ER_STDCALL erInitToolPath (ER_HND er_hnd, ER_TOOLPATH_HND *er_tpth_hnd);
3608 
3615 
3626 DLLAPI long ER_STDCALL erInsertToolPath (ER_HND er_hnd, ER_TOOLPATH_HND *er_tpth_hnd, ER_TOOLPATH_HND er_tpth_hnd_ref);
3627 
3635 DLLAPI long ER_STDCALL erSwapToolPath (ER_TOOLPATH_HND er_tpth_hnd1, ER_TOOLPATH_HND er_tpth_hnd2);
3636 
3642 DLLAPI long ER_STDCALL erToolPathGetTargetLocationNumber (ER_TOOLPATH_HND er_tpth_hnd); // Number of Targets in ToolPath
3643 
3650 DLLAPI ER_HND ER_STDCALL erToolPathGetER_HND (ER_TOOLPATH_HND er_tpth_hnd); // Device Handle belonging to tool path handle
3651 
3656 DLLAPI char* ER_STDCALL erToolPathName (ER_TOOLPATH_HND er_tpth_hnd); // Name ToolPath
3657 
3664 DLLAPI long ER_STDCALL erToolPathEnable (ER_TOOLPATH_HND er_tpth_hnd, long enable); // 0-Disable, 1-Enable, 2-Status
3665 
3671 DLLAPI ER_HND ER_STDCALL erToolPathGetRobotHandle (ER_TOOLPATH_HND er_tpth_hnd); // Get Robot Handle belonging to tool path handle
3672 
3678 DLLAPI ER_HND ER_STDCALL erToolPathGetTrackMotionHandle (ER_TOOLPATH_HND er_tpth_hnd); // Get TrackMotion Handle belonging to tool path handle
3679 
3685 DLLAPI ER_HND ER_STDCALL erToolPathGetPositionerHandle (ER_TOOLPATH_HND er_tpth_hnd); // Get Positioner Handle belonging to tool path handle
3686 
3692 DLLAPI ER_HND ER_STDCALL erToolPathGetConveyorHandle (ER_TOOLPATH_HND er_tpth_hnd); // Get Conveyor Handle belonging to tool path handle
3693 
3702 DLLAPI long ER_STDCALL erToolPathSetTrackMotionHandle (ER_TOOLPATH_HND er_tpth_hnd, ER_HND hnd_TrackMotion=NULL); // Set TrackMotion Handle belonging to tool path handle
3711 DLLAPI long ER_STDCALL erToolPathSetPositionerHandle (ER_TOOLPATH_HND er_tpth_hnd, ER_HND hnd_Positioner=NULL); // Set Positioner Handle belonging to tool path handle
3720 DLLAPI long ER_STDCALL erToolPathSetConveyorHandle (ER_TOOLPATH_HND er_tpth_hnd, ER_HND hnd_Conveyor=NULL); // Set Conveyor Handle belonging to tool path handle
3721 
3726 DLLAPI char* ER_STDCALL erToolPathLogFileName (ER_TOOLPATH_HND er_tpth_hnd); // Log File Name ToolPath
3731 DLLAPI char* ER_STDCALL erToolPathPrgFileName (ER_TOOLPATH_HND er_tpth_hnd); // Prg File Name ToolPath
3732 
3738 
3744 
3752 DLLAPI long ER_STDCALL CpyEventsTemplate(ER_TOOLPATH_HND er_tpth_hnd, ER_TARGET_EVENTS_HND hnd); // Copy target events data to template
3759 DLLAPI ER_TARGET_EVENTS_HND ER_STDCALL GetEventsTemplateHnd(ER_TOOLPATH_HND er_tpth_hnd); // Get handle to internal events template data
3760 
3768 DLLAPI long ER_STDCALL CpyMotionAttributesTemplate (ER_TOOLPATH_HND er_tpth_hnd, ER_TARGET_ATTRIBUTES_HND hnd); // Copy target attributes data to template
3769 
3776 DLLAPI ER_TARGET_ATTRIBUTES_HND ER_STDCALL GetMotionAttributesTemplateHnd (ER_TOOLPATH_HND er_tpth_hnd); // Get handle to internal attributes template data
3777 
3786 
3794 
3803 
3811 
3820 
3828 
3837 
3845 
3854 
3862 
3863 
3870 DLLAPI long ER_STDCALL erToolPathReset (ER_TOOLPATH_HND er_tpth_hnd); // Reset all tool path target locations
3871 
3880 DLLAPI long ER_STDCALL erToolPathResetInitRobot(ER_TOOLPATH_HND er_tpth_hnd, double *q_start=NULL); // Read current joint data from loaded robot, set initial joint start location
3881 
3890 DLLAPI long ER_STDCALL erToolPathResetInitTrackMotion(ER_TOOLPATH_HND er_tpth_hnd, double *q_start=NULL); // Read current joint data from loaded TrackMotion, set initial joint start location
3891 
3900 DLLAPI long ER_STDCALL erToolPathResetInitPositioner(ER_TOOLPATH_HND er_tpth_hnd, double *q_start=NULL); // Read current joint data from loaded Positioner, set initial joint start location
3901 
3910 DLLAPI long ER_STDCALL erToolPathResetInitConveyor(ER_TOOLPATH_HND er_tpth_hnd, double *q_start=NULL); // Read current joint data from loaded Conveyor, set initial joint start location
3911 
3920 DLLAPI long ER_STDCALL erToolPathSetInitPos(ER_TOOLPATH_HND er_tpth_hnd, double InterpolationTime=0); // Initializes the MotionPlanner based on current settings
3921 
3922 //DLLAPI long ER_STDCALL erToolPathRunAdv (ER_TOOLPATH_HND er_tpth_hnd);
3923 
3977 
4080 DLLAPI long 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);
4081 
4088 
4097 
4098 //DLLAPI long ER_STDCALL erToolPathDefinition (ER_TOOLPATH_HND er_tpth_hnd); // erzeugt einige TargetLocations
4099 
4100 #pragma endregion region_toolpath
4101 
4102 //--------------------------------
4103 // Target Location ... ERK_CAPI_TOOLPATH_TARGETS
4104 //--------------------------------
4105 
4106 #pragma region region_TargetLocations
4107 
4108 // Target Locations
4117 DLLAPI long ER_STDCALL erTargetLocationReset (ER_TARGET_LOCATION_HND er_tarloc_hnd); // Reset target location
4118 
4141 DLLAPI long 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);
4160 
4165 DLLAPI long ER_STDCALL erGetTargetLocationNumber (ER_TARGET_LOCATION_HND er_tarloc_hnd); // Number of Targets in ToolPath
4170 DLLAPI ER_HND ER_STDCALL erhGetTargetLocationER_HND (ER_TARGET_LOCATION_HND er_tarloc_hnd); // Device Handle belonging to target location handle
4171 
4196 
4209 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);
4225 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);
4241 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);
4254 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);
4270 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);
4286 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);
4302 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);
4318 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);
4335 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);
4352 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);
4353 //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);
4354 //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);
4355 
4356 #pragma endregion region_TargetLocations
4357 
4358 //--------------------------------
4359 // Header Data ... TARGET_HEAD, ERK_CAPI_TOOLPATH_HEAD
4360 //--------------------------------
4361 #pragma region region_HeaderData
4362 
4363  // Header Data
4404 DLLAPI long ER_STDCALL erTargetLocationValid (ER_TARGET_LOCATION_HND er_tarloc_hnd, long valid); // 0-Disable, 1-Enable, 2-Status
4405 #pragma endregion region_HeaderData
4406 
4407 //------------------------------------------------------------------------------
4408 // Instructions, individual information text ... TARGET_INSTRUCTIONS
4409 //------------------------------------------------------------------------------
4410 #pragma region region_Instructions
4411 
4427 DLLAPI char *ER_STDCALL erGetInstructions_information (ER_TARGET_LOCATION_HND er_tarloc_hnd); // User defined individual information text
4434 DLLAPI char *ER_STDCALL erGetInstructions_LeadInstructions (ER_TARGET_LOCATION_HND er_tarloc_hnd); // Instructions separated by semicolon, when target is reached
4441 DLLAPI char *ER_STDCALL erGetInstructions_LagInstructions (ER_TARGET_LOCATION_HND er_tarloc_hnd); // Instructions separated by semicolon, before move will start
4451 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
4452 #pragma endregion region_Instructions
4453 
4454 //--------------------------------
4455 // Events ... TARGET_EVENTS
4456 //--------------------------------
4457 #pragma region region_Events
4458 
4459  // Events
4499 DLLAPI long ER_STDCALL erSetEvents_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);
4516 DLLAPI long ER_STDCALL erGetEvents_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);
4517 
4548 DLLAPI long ER_STDCALL erSetEvents_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);
4549 
4550 #pragma endregion region_Events
4551 
4552 //--------------------------------
4553 // Auxiliary Motion Attributes ... TARGET_ATTRIBUTES_AUX
4554 //--------------------------------
4555 #pragma region region_AuxMotionAttributes
4556 
4557  // Auxiliary Motion Attributes
4564 
4565 #pragma endregion region_AuxMotionAttributes
4566 
4567 //--------------------------------
4568 // Motion Attributes ... TARGET_ATTRIBUTES
4569 //--------------------------------
4570 #pragma region region_MotionAttributes
4571  // Motion Attributes
4588 DLLAPI long *ER_STDCALL erGetMotionAttributes_enabled (ER_TARGET_ATTRIBUTES_HND hnd); // enables/disables this target
4594 DLLAPI TErTargetID *ER_STDCALL erGetMotionAttributes_target_id (ER_TARGET_ATTRIBUTES_HND hnd); // unique target ID, NEXT_TARGET_DATA.TargetID
4602 DLLAPI double *ER_STDCALL erGetMotionAttributes_WobjCartPosVec(ER_TARGET_ATTRIBUTES_HND hnd); // WorkObject valid for all cartesian targets CartPosVec, CartPosVecVia
4611 DLLAPI DFRAME *ER_STDCALL erGetMotionAttributes_WobjCartPosFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *WobjCartPosFrame); // WorkObject valid for all cartesian targets CartPosVec, CartPosVecVia
4620 DLLAPI DFRAME *ER_STDCALL erSetMotionAttributes_WobjCartPosFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *WobjCartPosFrame); // WorkObject valid for all cartesian targets CartPosVec, CartPosVecVia
4621 
4628 DLLAPI long *ER_STDCALL erGetMotionAttributes_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()
4637 DLLAPI double *ER_STDCALL erGetMotionAttributes_BaseVec(ER_TARGET_ATTRIBUTES_HND hnd); // work object, $BASE, $UFrame has only effect if ::IPO_MODE_BASE, erSetBaseRobotBase()
4638 
4648 DLLAPI DFRAME *ER_STDCALL erGetMotionAttributes_BaseFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *BaseFrame); // work object, $BASE, $UFrame has only effect if ::IPO_MODE_BASE, erSetBaseRobotBase()
4658 DLLAPI DFRAME *ER_STDCALL erSetMotionAttributes_BaseFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *BaseFrame); // work object, $BASE, $UFrame has only effect if ::IPO_MODE_BASE, erSetBaseRobotBase()
4659 
4667 DLLAPI long *ER_STDCALL erGetMotionAttributes_BaseIdx (ER_TARGET_ATTRIBUTES_HND hnd); // user defined Idx for work object, $BASE, $UFrame has only effect if ::IPO_MODE_BASE, erSetBaseRobotBase()
4675 DLLAPI char *ER_STDCALL erGetMotionAttributes_BaseName (ER_TARGET_ATTRIBUTES_HND hnd); // user defined Name for work object, $BASE, $UFrame has only effect if ::IPO_MODE_BASE, erSetBaseRobotBase()
4676 
4677 
4704 
4705 
4722 
4723 
4732 
4742 
4752 
4769 
4796 
4813 
4814 
4822 DLLAPI double *ER_STDCALL erGetMotionAttributes_ToolVec (ER_TARGET_ATTRIBUTES_HND hnd); // Tool/TCP data, erSetTool()
4823 
4833 
4843 
4844 
4852 DLLAPI long *ER_STDCALL erGetMotionAttributes_ToolIdx (ER_TARGET_ATTRIBUTES_HND hnd); // user defined Idx for Tool/TCP data, erSetTool()
4860 DLLAPI char *ER_STDCALL erGetMotionAttributes_ToolName (ER_TARGET_ATTRIBUTES_HND hnd); // user defined Name for Tool/TCP data, erSetTool()
4861 
4869 DLLAPI double *ER_STDCALL erGetMotionAttributes_ToolOffsetVec(ER_TARGET_ATTRIBUTES_HND hnd); // Tool/TCP offset data, erSetToolOffset()
4888 
4889 
4897 DLLAPI long *ER_STDCALL erGetMotionAttributes_ToolOffsetIdx(ER_TARGET_ATTRIBUTES_HND hnd); // user defined Idx for Tool/TCP offset data, erSetToolOffset()
4905 DLLAPI char *ER_STDCALL erGetMotionAttributes_ToolOffsetName(ER_TARGET_ATTRIBUTES_HND hnd); // user defined Name for Tool/TCP offset data, erSetToolOffset()
4906 
4920 
4938 DLLAPI long *ER_STDCALL erGetMotionAttributes_motype (ER_TARGET_ATTRIBUTES_HND hnd); // ER_JOINT , ER_LIN, ER_SLEW, ER_CIRC, erSELECT_MOTION_TYPE()
4948 DLLAPI long *ER_STDCALL erGetMotionAttributes_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()
4956 DLLAPI long *ER_STDCALL erGetMotionAttributes_advance_motion (ER_TARGET_ATTRIBUTES_HND hnd); // look ahead by 1 is only supported, erSET_ADVANCE_MOTION()
4964 DLLAPI double *ER_STDCALL erGetMotionAttributes_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()
4973 DLLAPI double *ER_STDCALL erGetMotionAttributes_acc (ER_TARGET_ATTRIBUTES_HND hnd); // 20-100[%] Set lagging of accelerations deceleration, erSetAccSet()
4982 DLLAPI double *ER_STDCALL erGetMotionAttributes_ramp (ER_TARGET_ATTRIBUTES_HND hnd); // 20-100[%] Set lagging of accelerations deceleration, erSetAccSet()
4992 DLLAPI long *ER_STDCALL erGetMotionAttributes_filter_factor (ER_TARGET_ATTRIBUTES_HND hnd); // Velocity profile: 0-geo (ER_MOTION_FILTER_GEO), 1-c2 (ER_MOTION_FILTER_C2), erSET_MOTION_FILTER()
5002 DLLAPI long *ER_STDCALL erGetMotionAttributes_flyby_on (ER_TARGET_ATTRIBUTES_HND hnd); // 0-OFF, 1-ON only when LIN or CIRC, erSELECT_FLYBY_MODE()
5012 DLLAPI double *ER_STDCALL erGetMotionAttributes_flyby_speed_percent (ER_TARGET_ATTRIBUTES_HND hnd); // if flyby_on enabled: [%], erSET_FLYBY_CRITERIA_PARAMETER(), tbd
5022 DLLAPI double *ER_STDCALL erGetMotionAttributes_flyby_dist (ER_TARGET_ATTRIBUTES_HND hnd); // if flyby_on enabled: [m], erSET_FLYBY_CRITERIA_PARAMETER(), tbd
5038 DLLAPI long *ER_STDCALL erGetMotionAttributes_autoaccel (ER_TARGET_ATTRIBUTES_HND hnd); // ER_AUTOACCEL_MODE_OFF, -_POS, -_ORI, -_AX, -_DEF, -_ON, erSetAutoAccel()
5047 DLLAPI double *ER_STDCALL erGetMotionAttributes_LeadWaitTime (ER_TARGET_ATTRIBUTES_HND hnd); // Wait time [s], before move will start, NEXT_TARGET_DATA.LeadWaitTime
5056 DLLAPI double *ER_STDCALL erGetMotionAttributes_LagWaitTime (ER_TARGET_ATTRIBUTES_HND hnd); // Wait time [s], after robot reaches its target, NEXT_TARGET_DATA.LagWaitTime
5057 
5058 #pragma endregion region_MotionAttributes
5059 
5060 //--------------------------------
5061 // Target data for Joint Move ... ERK_CAPI_TOOLPATH_MOVE_JOINT
5062 //--------------------------------
5063 #pragma region region_MoveJoint
5064 
5083 DLLAPI long *ER_STDCALL erGetMoveJoint_target_type (ER_TARGET_MOVE_JOINT_HND hnd); // ER_TARGET_TYPE_ABS, ER_TARGET_TYPE_ABSJOINT, erSELECT_TARGET_TYPE()
5089 DLLAPI double *ER_STDCALL erGetMoveJoint_speed_percent (ER_TARGET_MOVE_JOINT_HND hnd); // joint speed [%], erSET_JOINT_SPEEDS()
5095 DLLAPI double *ER_STDCALL erGetMoveJoint_accel_percent (ER_TARGET_MOVE_JOINT_HND hnd); // joint acceleration [%], erSET_JOINT_ACCELERATIONS()
5105 DLLAPI double *ER_STDCALL erGetMoveJoint_JointPos (ER_TARGET_MOVE_JOINT_HND hnd); // Target Joint Location for ER_TARGET_TYPE_ABSJOINT, q1 [m,rad], NEXT_TARGET_DATA.JointPos
5116 DLLAPI double *ER_STDCALL erGetMoveJoint_CartPosVec (ER_TARGET_MOVE_JOINT_HND hnd); // Cart. Target Location for ER_TARGET_TYPE_ABS, Pxyz [m] Rxyz [rad], NEXT_TARGET_DATA.CartPos
5122 DLLAPI long *ER_STDCALL erGetMoveJoint_configuration (ER_TARGET_MOVE_JOINT_HND hnd); // Target manipulator configuration string, NEXT_TARGET_DATA.Configuration
5130 DLLAPI long *ER_STDCALL erGetMoveJoint_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
5138 DLLAPI long *ER_STDCALL erGetMoveJoint_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[]
5139 
5140 #pragma endregion region_MoveJoint
5141 
5142 //--------------------------------
5143 // Target data for CP Move ... ERK_CAPI_TOOLPATH_MOVE_CP
5144 //--------------------------------
5145 #pragma region region_MoveCP
5146 
5164 DLLAPI long *ER_STDCALL erGetMoveCP_target_type (ER_TARGET_MOVE_CP_HND hnd); // ER_TARGET_TYPE_ABS
5170 DLLAPI double *ER_STDCALL erGetMoveCP_speed_cp (ER_TARGET_MOVE_CP_HND hnd); // cp speed [m/s], ori speed [deg/s], erSET_CARTESIAN_POSITION_SPEED(), erSET_CARTESIAN_ORIENTATION_SPEED()
5176 DLLAPI double *ER_STDCALL erGetMoveCP_speed_ori (ER_TARGET_MOVE_CP_HND hnd); // cp speed [m/s], ori speed [deg/s], erSET_CARTESIAN_POSITION_SPEED(), erSET_CARTESIAN_ORIENTATION_SPEED()
5182 DLLAPI double *ER_STDCALL erGetMoveCP_accel_cp (ER_TARGET_MOVE_CP_HND hnd); // cp accel [m/s^2], [deg/s^2], erSET_CARTESIAN_POSITION_ACCELERATION(), erSET_CARTESIAN_ORIENTATION_ACCELERATION()
5188 DLLAPI double *ER_STDCALL erGetMoveCP_accel_ori (ER_TARGET_MOVE_CP_HND hnd); // cp accel [m/s^2], [deg/s^2], erSET_CARTESIAN_POSITION_ACCELERATION(), erSET_CARTESIAN_ORIENTATION_ACCELERATION()
5199 DLLAPI double *ER_STDCALL erGetMoveCP_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
5209 DLLAPI double *ER_STDCALL erGetMoveCP_CartPosVecVia (ER_TARGET_MOVE_CP_HND hnd); // Cart. Via Location for ER_CIRC move, Pxyz [m] Rxyz [rad], NEXT_TARGET_DATA.CartPos
5217 DLLAPI long *ER_STDCALL erGetMoveCP_interpolation_mode (ER_TARGET_MOVE_CP_HND hnd); // =1 one angle (QUATERNION), =2 two angle (QUATERNION), =3 three angle (VARIABLE), erSELECT_ORIENTATION_INTERPOLATION_MODE()
5231 DLLAPI long *ER_STDCALL erGetMoveCP_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()
5232 #pragma endregion region_MoveCP
5233 
5234 //--------------------------------
5235 // Motion execution data at target ... ERK_CAPI_TOOLPATH_MOTION_EXEC
5236 //--------------------------------
5237 #pragma region region_MotionExec
5238 
5260 DLLAPI long ER_STDCALL erGetMotionExec_motion_success (ER_TARGET_MOTION_EXEC_HND hnd); // 1 - TARGET_LOCATION reached successfully, 0 - TARGET_LOCATION not reached successfully
5267 DLLAPI double ER_STDCALL erGetMotionExec_time_stamp (ER_TARGET_MOTION_EXEC_HND hnd); // Time stamp [s] when target location is reached
5272 DLLAPI double ER_STDCALL erGetMotionExec_trajectory_time (ER_TARGET_MOTION_EXEC_HND hnd); // Trajectory Time [s] for current motion to target
5286 DLLAPI long ER_STDCALL erGetMotionExec_configuration (ER_TARGET_MOTION_EXEC_HND hnd); // current manipulator configuration at target location, [1..number of robot configurations]
5292 DLLAPI double *ER_STDCALL erGetMotionExec_JointPos (ER_TARGET_MOTION_EXEC_HND hnd); // Joint Location at target location
5298 DLLAPI double *ER_STDCALL erGetMotionExec_ExtAxValues (ER_TARGET_MOTION_EXEC_HND hnd); // External axis values at target location
5299 #pragma endregion region_MotionExec
5300 
5301 //--------------------------------
5302 // External axis data definition for Track/Slider-Motion ... ERK_CAPI_TOOLPATH_EXTAX_TRACKMOTION
5303 //--------------------------------
5304 #pragma region region_ExtAxTrack
5305  // External axis data definition for Track/Slider-Motion
5360 DLLAPI long *ER_STDCALL erGetExtAxTrack_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
5368 DLLAPI long *ER_STDCALL erGetExtAxTrack_sync_type (ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND hnd); // ER_SYNC_OFF, ER_SYNC_ON, erConnectTrackMotionSetSync()
5382 DLLAPI ER_EXTAX_KIN_DATA *ER_STDCALL erGetExtAxTrack_extax_data (ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND hnd, long extax_idx); // external axis data, NEXT_TARGET_DATA.extax_data[]
5396 DLLAPI long ER_STDCALL erSetExtAxTrackIdx (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);
5397 #pragma endregion region_ExtAxTrack
5398 
5399 //--------------------------------
5400 // External axis data definition for Positioner/TurnTable ... ERK_CAPI_TOOLPATH_EXTAX_POSITIONER
5401 //--------------------------------
5402 #pragma region region_ExtAxPositioner
5403 
5469 DLLAPI long *ER_STDCALL erGetExtAxPositioner_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
5477 DLLAPI long *ER_STDCALL erGetExtAxPositioner_sync_type (ER_TARGET_EXTAX_DEVICE_POSITIONER_HND hnd); // ER_SYNC_OFF, ER_SYNC_ON, erConnectPositionerSetSync()
5491 DLLAPI ER_EXTAX_KIN_DATA *ER_STDCALL erGetExtAxPositioner_extax_data (ER_TARGET_EXTAX_DEVICE_POSITIONER_HND hnd, long extax_idx); // external axis data, NEXT_TARGET_DATA.extax_data[]
5505 DLLAPI long ER_STDCALL erSetExtAxPositionerIdx (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);
5506 #pragma endregion region_ExtAxPositioner
5507 
5508 //--------------------------------
5509 // External axis data definition for Conveyor ... ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND
5510 //--------------------------------
5511 #pragma region region_ExtAxConveyor
5512 
5530  DLLAPI long *ER_STDCALL erGetExtAxConveyor_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
5538  DLLAPI long *ER_STDCALL erGetExtAxConveyor_sync_type(ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND hnd); // ER_SYNC_OFF, ER_SYNC_ON, erConnectConveyorSetSync()
5552  DLLAPI ER_EXTAX_KIN_DATA *ER_STDCALL erGetExtAxConveyor_extax_data(ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND hnd, long extax_idx); // external axis data, NEXT_TARGET_DATA.extax_data[]
5566  DLLAPI long ER_STDCALL erSetExtAxConveyorIdx(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);
5567 
5587  DLLAPI long ER_STDCALL erSetConveyorTrackingWindow(ER_TARGET_LOCATION_HND er_tarloc_hnd, long active, double up, double down, TErTrackingWindowID id_tw, char *name = NULL);
5588 
5599 #pragma endregion region_ExtAxConveyor
5600 
5601 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5602 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5603 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5604 // ToolBox
5605 // class ERK_CAPI_TOOLPATH_TOOLBOX
5606 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5607 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5608 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5609 #pragma region region_Toolpath_Toolbox
5610 
5620 DLLAPI long ER_STDCALL erTPth_TBox_Fct(int FctIdx, int FctSubIdx, ER_TOOLPATH_HND er_tpth_hnd, int constraint_param, char *svalues=NULL);
5621 #pragma endregion region_Toolpath_Toolbox
5622 
5623 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5624 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5625 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5626 // ToolBox
5627 // class ERK_CAPI_TOOLPATH_APIPP
5628 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5629 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5630 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5631 #pragma region region_apipp_dll
5632 
5671 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);
5672 #pragma endregion region_apipp_dll
5673 
5674 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5675 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5676 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5677 // ToolPath
5678 // class ERK_CAPI_TOOLPATH_CREATE
5679 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5680 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5681 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5687 DLLAPI long ER_STDCALL erTPth_Fct(ER_TOOLPATH_HND er_tpth_hnd);
5688 #pragma endregion region_CTOOLPATH
5689 
5690 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5691 // class ERK_CAPI_SIM
5692 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5693 
5694 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5695 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5696 // erColl_ - Functions
5697 // class ERK_CAPI_SIM_COLLISION
5698 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5699 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5700 
5701 #pragma region region_erSimCollision
5702 
5703 /* Creates a collision handle for one Model and preallocate memory for n_tris triangles
5704 */
5713 DLLAPI long ER_STDCALL erColl_BeginModel(ER_COLLISION_HND *er_coll_hnd, long n_tris);
5714 
5715 /* Adds a triangle to a Model
5716 */
5728 DLLAPI long ER_STDCALL erColl_AddTri(ER_COLLISION_HND er_coll_hnd, double *p1, double *p2, double *p3, long id);
5729 
5730 /* Stop building a Model
5731 */
5739 
5740 /* Perform the collision check of two Models
5741 See also erColl_ChkCollision_res() to get the collision results immediately
5742 */
5896 DLLAPI long 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);
5897 
5898 /* Perform the collision check of two Models
5899  Collision results returned immediately compared to erColl_ChkCollision()
5900  */
6244 DLLAPI long 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);
6245 
6277 DLLAPI long ER_STDCALL erColl_ChkCollision_res_free(long query_type, void *pres);
6278 
6279 /* Unload a Model. Free all allocated memory
6280 */
6288 
6289 /* Get Collision result for query ::ER_COLL_QUERY_TYPE_COLLIDE
6290 */
6300 /* Get Collision result for query ::ER_COLL_QUERY_TYPE_DISTANCE
6301 */
6311 
6312 /* Get Collision result for query ::ER_COLL_QUERY_TYPE_TOLERANCE
6313 */
6323 
6324 #pragma endregion region_erSimCollision
6325 
6326 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6327 // ERK_CAPI_AUTOPATH
6328 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6329 #pragma region region_autopath_sdk
6330 
6333 DLLAPI char* ER_STDCALL erk_AutoPathVer(void);
6334 
6342 
6418 
6426 
6434 
6501 DLLAPI int ER_STDCALL erk_AutoPath_SetCallback_CheckConstraints(BOOL(*ptr_CheckConstraints)(int, void*));
6502 
6510 DLLAPI int ER_STDCALL erk_AutoPathSetPoseStart(double *pose_start);
6511 
6519 DLLAPI int ER_STDCALL erk_AutoPathSetPoseEnd(double *pose_end);
6520 
6528 
6533 
6538 
6543 
6548 
6553 
6560 
6568 
6574 
6579 
6584 DLLAPI double* ER_STDCALL erk_AutoPathGetWayPoint(int idx);
6590 
6596 DLLAPI int ER_STDCALL erk_AutoPathSetAccuracy(UINT accuracy);
6597 
6607 DLLAPI int ER_STDCALL erk_AutoPathSetAxisConstraints(int axisBit = AUTOPATH_SDK_AXIS_BIT_DOF6, int setting = 0, double qConstraintMin = 0, double qConstraintMax = 0);
6608 
6615 DLLAPI int ER_STDCALL erk_AutoPathSetAxisPriority(int axisBit, int priority);
6620 DLLAPI int ER_STDCALL erk_AutoPathSetAxisEnable(int axisBit, int enable);
6621 
6638 DLLAPI int ER_STDCALL erk_AutoPathSetParameter(int ap_option, int ap_value);
6654 DLLAPI int ER_STDCALL erk_AutoPathGetParameter(int ap_option);
6655 
6689 DLLAPI int ER_STDCALL erk_AutoPathGetResults(int ap_result);
6690 
6691 #pragma endregion region_autopath_sdk
6692 
6693 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6694 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6695 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6696 // class ERK_CAPI_GEO
6697 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6698 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6699 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6700 #pragma region region_geo
6701 /* erUpdateGeo
6702  Update all Models for each robot joint
6703 */
6712 DLLAPI long ER_STDCALL erUpdateGeo(ER_HND er_hnd);
6713 #pragma endregion region_geo
6714 
6715 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6716 // class ERK_CAPI_GEO_MNGR
6717 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6718 #pragma region region_GeoMngr
6719 //~~~~~~~~~~~~~~~~~~~~~
6720 // Administration
6721 //~~~~~~~~~~~~~~~~~~~~~
6726 
6733 
6741 
6742 //~~~~~~~~~~~~~~~~~~~~~
6743 // Access to geometries
6744 //~~~~~~~~~~~~~~~~~~~~~
6751 // fills structure pointed to by p_load_geometry_data with geometry loading data
6752 DLLAPI int ER_STDCALL erGeoMngr_GetGeometry(ER_HND er_hnd, int geometryIndex, LOAD_GEOMETRY_DATA *p_load_geometry_data, DFRAME* kinMat);
6753 // return number of geometries for axis of a specified device
6754 DLLAPI int ER_STDCALL erGeoMngr_GetNumAxisGeometries(ER_HND er_hnd, int axis_nr);
6755 // fills structure pointed to by p_load_geometry_data with geometry loading data
6756 DLLAPI int ER_STDCALL erGeoMngr_GetAxisGeometry(ER_HND er_hnd, int axis_nr, int geometryIndex, LOAD_GEOMETRY_DATA *p_load_geometry_data, DFRAME* kinMat);
6757 // BBox über die gesamte Geometrie (also über den gesamten Body)
6758 DLLAPI const double* ER_STDCALL erGeoMngr_GetGeometryBBox(TErGeoHandle geometryHandle);
6759 // Achsen-BBox über alle Geometry-BBoxes einer Achse
6760 DLLAPI const double* ER_STDCALL erGeoMngr_GetAxisBBox(ER_HND er_hnd, int axis_id);
6761 // Device-BBox
6762 DLLAPI const double* ER_STDCALL erGeoMngr_GetDeviceBBox(ER_HND er_hnd);
6763 
6765 
6766 DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumPoints(TErGeoHandle geometryHandle, int objidx);
6767 DLLAPI double* ER_STDCALL erGeoMngr_GetGeometryObjPoint(TErGeoHandle geometryHandle, int objidx, int index);
6769 DLLAPI double* ER_STDCALL erGeoMngr_GetGeometryObjPointNormal(TErGeoHandle geometryHandle, int objidx, int index);
6770 DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumLines(TErGeoHandle geometryHandle, int objidx);
6771 DLLAPI size_t* ER_STDCALL erGeoMngr_GetGeometryObjLine(TErGeoHandle geometryHandle, int objidx, int index);
6772 DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumPolygons(TErGeoHandle geometryHandle, int objidx);
6773 DLLAPI size_t* ER_STDCALL erGeoMngr_GetGeometryObjPolygon(TErGeoHandle geometryHandle, int objidx, int index);
6774 
6775 // ist die Obj-Color intern -2 (USER_COLOR) wird die user color (die Farbe, die in der LOAD_GEOMETRY_DATA-Struktur steht) zurückgegeben
6776 // sonst : konkrete Farbe
6777 DLLAPI double* ER_STDCALL erGeoMngr_GetGeometryObjColor(TErGeoHandle geometryHandle, int objidx);
6778 // der Farbcode (kann auch -2 (USER_COLOR) sein, damit die Host-Applikation eine eigene UserColor festlegen kann)
6779 DLLAPI long ER_STDCALL erGeoMngr_GetGeometryObjColorCode(TErGeoHandle geometryHandle, int objidx);
6780 
6781 DLLAPI int ER_STDCALL erGeoMngr_GetGeometryCloneCount(TErGeoHandle geometryHandle); // Get number of clones >=1
6783 
6784 //DLLAPI double* ER_STDCALL erGeoMngr_GetGeometryPolygoneNormal(TErGeoHandle geometryHandle, int index);
6785 //DLLAPI double* ER_STDCALL erGeoMngr_GetGeometryPolygoneCenter(TErGeoHandle geometryHandle, int index);
6786 
6789 DLLAPI int ER_STDCALL erGeoMngr_SetGeometryIsCollided(TErGeoHandle geometryHandle, int isCollided);
6791 
6792 DLLAPI int ER_STDCALL erGeoMngr_CheckBoundingBoxCollision(DFRAME* T1, const double* bbox1, DFRAME* T2, const double* bbox2, double tolerance);
6793 #pragma endregion region_GeoMngr
6794 
6795 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6796 // class ERK_CAPI_SYS
6797 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6798 
6799 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6800 // class ERK_CAPI_SYS_UTILITIES
6801 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6802 
6803 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6804 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6805 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6806 // erMath_ - Functions
6807 // ERK_CAPI_SYS_MATHEMATICS
6808 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6809 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6810 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6811 
6812 #pragma region region_erMath
6813 
6828 DLLAPI long ER_STDCALL erMath_FrameToVecIdx(DFRAME *T, double *vec, long rotation_idx=ER_ROT_XYZ);
6829 
6844 DLLAPI long ER_STDCALL erMath_VecToFrameIdx(double *vec, DFRAME *T, long rotation_idx=ER_ROT_XYZ);
6845 
6860 DLLAPI long ER_STDCALL erMath_PxyzRxyzToFrame(double x,double y,double z,double Rx,double Ry,double Rz, DFRAME *T);
6861 
6869 DLLAPI long ER_STDCALL erMath_Frame_Ident(DFRAME *T); // T = Ident
6870 
6881 DLLAPI long ER_STDCALL erMath_Frame_Trans(DFRAME *T, double x, double y, double z); // set frame position T.p[] = [x,y,z]
6882 
6894 DLLAPI long 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)
6895 
6906 DLLAPI long ER_STDCALL erMath_AngleBetween(DFRAME *Ts, DFRAME *Te, double *angle, double *k=NULL);
6907 
6918 DLLAPI long ER_STDCALL erMath_DistBetween(DFRAME *Ts, DFRAME *Te, double *dist, double *dv=NULL);
6919 
6932 DLLAPI long ER_STDCALL erMath_CircCenterPoint(double *ps, double *pv, double *pe, DFRAME *pTc, double *radius, double *phi, double *phi_via = NULL);
6933 
6942 DLLAPI long ER_STDCALL erMath_invT(DFRAME *To,DFRAME *Ti); // To = inv(Ti)
6943 
6952 DLLAPI long ER_STDCALL erMath_invR(DFRAME *Ro,DFRAME *Ri); // Ro = inv(Ri) = transpose(Ri) = Ri'
6953 
6963 DLLAPI long ER_STDCALL erMath_mul_R_R(DFRAME *Ro,DFRAME *Ri1,DFRAME *Ri2); // Ro = Ri1 * Ri2
6964 
6974 DLLAPI long ER_STDCALL erMath_mul_T_T(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2); // To = Ti1 * Ti2
6975 
6987 DLLAPI long ER_STDCALL erMath_mul_T_invT (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2); // To = Ti1 * inv(Ti2)
6988 
7000 DLLAPI long ER_STDCALL erMath_mul_invT_T (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2); // To = inv(Ti1) * Ti2
7001 
7013 DLLAPI long ER_STDCALL erMath_mul_invT_invT (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2); // To = inv(Ti1) * inv(Ti2)
7014 
7025 DLLAPI long ER_STDCALL erMath_mul_T_pos (double *po,DFRAME *T,double *pi); // po = T * pi
7026 
7038 DLLAPI long ER_STDCALL erMath_mul_invT_pos (double *po,DFRAME *T,double *pi); // po = inv(T) * pi
7039 
7049 DLLAPI long ER_STDCALL erMath_mul_R_pos (double *po,DFRAME *R,double *pi); // po = R * pi
7050 
7062 DLLAPI long ER_STDCALL erMath_mul_invR_pos (double *po,DFRAME *R,double *pi); // po = R' * pi
7063 
7074 DLLAPI long ER_STDCALL erMath_mul_T_T_T(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = Ti1 * Ti2 * Ti3
7075 
7088 DLLAPI long ER_STDCALL erMath_mul_T_T_invT(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = Ti1 * Ti2 * inv(Ti3)
7089 
7102 DLLAPI long ER_STDCALL erMath_mul_T_invT_T(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = Ti1 * inv(Ti2) * Ti3
7103 
7116 DLLAPI long ER_STDCALL erMath_mul_T_invT_invT(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = Ti1 * inv(Ti2) * inv(Ti3)
7117 
7130 DLLAPI long ER_STDCALL erMath_mul_invT_T_T(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = inv(Ti1) * Ti2 * Ti3
7131 
7144 DLLAPI long ER_STDCALL erMath_mul_invT_T_invT(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = inv(Ti1) * Ti2 * inv(Ti3)
7145 
7158 DLLAPI long ER_STDCALL erMath_mul_invT_invT_T(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = inv(Ti1) * inv(Ti2) * Ti3
7159 
7172 DLLAPI long ER_STDCALL erMath_mul_invT_invT_invT(DFRAME *To,DFRAME *Ti1,DFRAME *Ti2,DFRAME *Ti3); // To = To = inv(Ti1) * inv(Ti2) * inv(Ti3)
7173 
7184 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
7197 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]
7210 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
7222 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
7229 DLLAPI double* ER_STDCALL erMath_CpyVec(double *dst, double *src, int n); // cpy vector of size n
7235 DLLAPI double* ER_STDCALL erMath_ResetVec(double *dst, int n); // reset vector of size n
7236 
7237 #pragma endregion region_erMath
7238 
7239 //------------------------------------------------------------------------------------------
7240 //------------------------------------------------------------------------------------------
7241 
7242 #ifdef __cplusplus
7243 }
7244 #endif
7245 
7246 #endif // _er_kernel_main_h
DLLAPI long ER_STDCALL erColl_UnloadModel(ER_COLLISION_HND *er_coll_hnd)
Unload a Model. Free all allocated memory.
unsigned int * ER_HND
unique Kinematics handle, created with erInitKin()
Definition: erk_capi_types.h:195
DLLAPI long 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...
const long ER_COLL_QUERY_TYPE_COLLIDE
detects collision between two PQP_Models, erColl_ChkCollision()
Definition: erk_capi_types.h:747
DLLAPI long ER_STDCALL erFindConfig(ER_HND er_hnd, long *config)
Find current robot configuration Finds current robot configuration, depending on current robot joint ...
DLLAPI long ER_STDCALL erGetConfig(ER_HND er_hnd, long *config)
Get current robot configuration Gets current robot configuration. See also erSetConfig()....
DLLAPI long 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...
DLLAPI long *ER_STDCALL erGetExtAxTrack_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...
DLLAPI long ER_STDCALL erGet_num_dofs_passive(ER_HND er_hnd)
Get number of passive robot joints.
DLLAPI DFRAME *ER_STDCALL erSetMotionAttributes_ToolOffsetFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *ToolOffsetFrame)
ToolOffset (TCP) for a target location Offset Transformation from TCP see inq_ToolOffsetIdx(),...
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 ...
DLLAPI long ER_STDCALL erKernelSetLicensePriority(int license_priority)
Set license priority. Call this function before initializing the Kernel erKernelInitialize() Paramete...
DLLAPI long 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...
DLLAPI long ER_STDCALL erSetAxMax(ER_HND er_hnd, double ax_max)
Set maximum cartesian acceleration.
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...
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,...
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,...
DLLAPI long ER_STDCALL erSetJointFrameActiveNext(ER_HND er_hnd, long active_jnt_no, DFRAME *T)
DLLAPI long ER_STDCALL erGetJointName_passive(ER_HND er_hnd, long passive_jnt_no, char *jnt_name_passive)
Get the name of passive robot joint.
Homogeneous 4x4 transformation matrix, a Frame with 3x3 orthogonal noa-matrix (n = o x a) and 3x1 pos...
Definition: erk_capi_types.h:87
DLLAPI double *ER_STDCALL erGetMotionAttributes_ramp(ER_TARGET_ATTRIBUTES_HND hnd)
Change of acceleration and deceleration as percentage value in the range from 20% to 100% of normal v...
DLLAPI ER_TOOLPATH_HND ER_STDCALL erGetTargetLocationToolPathHnd(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Tool path handle belonging to target location handle.
Contains target data for next move This structure contains all required data for the next target Usag...
DLLAPI int ER_STDCALL erk_AutoPathGetWayPointDof(void)
Get dof of calculated way points.
const long ER_EVENT_CONDITION_UNDEF
event condition for binary input is undefined
Definition: erk_capi_types.h:604
DLLAPI long ER_STDCALL erGetInvKinID(ER_HND er_hnd, long *invkin_id)
Inverse kinematics ID for cRobot. .
DLLAPI long ER_STDCALL erConnectRobotSetSync(ER_HND er_hnd, long connect_sync)
Set robots synchronization flag for synchronization between robot and slave robot....
DLLAPI char *ER_STDCALL erGetTargetLocationName(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Name of target location.
DLLAPI long ER_STDCALL erInitToolPath(ER_HND er_hnd, ER_TOOLPATH_HND *er_tpth_hnd)
Create a unique tool path handle for a kinematics.
DLLAPI void **ER_STDCALL erGet_erk_kin_usr_ptr(ER_HND er_hnd)
DLLAPI long 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...
unsigned int * ER_TARGET_MOVE_CP_HND
unique Target data for CP Move handle
Definition: erk_capi_types.h:210
DLLAPI long 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...
DLLAPI int ER_STDCALL erk_AutoPathSetAxisEnable(int axisBit, int enable)
Set axis enable.
DLLAPI double *ER_STDCALL erGetMoveJoint_JointPos(ER_TARGET_MOVE_JOINT_HND hnd)
Joint position for joint move for target location Remarks Use for.
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
DLLAPI double *ER_STDCALL erGetMoveCP_accel_cp(ER_TARGET_MOVE_CP_HND hnd)
Cartesian acceleration [m/s^2], for CP move for target location.
DLLAPI int ER_STDCALL erGeoMngr_GetGeometryNumObjs(TErGeoHandle geometryHandle)
DLLAPI long 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
DLLAPI void ER_STDCALL erSetCallBack_LogProc(TerLogProc Handler)
Define Callback function for Log Messages.
DLLAPI long ER_STDCALL erGET_MESSAGE(ER_HND er_hnd, long message_number)
Gives information about controller messages that occurred. Opcode 154, Chapter 3.4....
DLLAPI long 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.
DLLAPI long 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...
DLLAPI long 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...
DLLAPI long 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...
DLLAPI long *ER_STDCALL erGetMotionAttributes_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...
DLLAPI double *ER_STDCALL erGetMoveCP_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.
DLLAPI long 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...
DLLAPI long 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(...
DLLAPI long 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 ...
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....
DLLAPI long 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...
DLLAPI double *ER_STDCALL erk_AutoPathGetConfigurationPose(void)
current configuration pose during FindPath Process return pointer, size nConfig
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 ...
const int AUTOPATH_SDK_AXIS_BIT_DOF6
axisBit Axis 1..6
Definition: erk_capi_types.h:847
DLLAPI ER_TARGET_MOVE_JOINT_HND ER_STDCALL erGetTargetLocationMoveJointHnd(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Handle for target move joint data Typical data belonging to a move joint target location are: target_...
DLLAPI long ER_STDCALL erToolPathGetTargetLocationNumber(ER_TOOLPATH_HND er_tpth_hnd)
Get the number of target locations in tool path.
DLLAPI char *ER_STDCALL erToolPathPrgFileName(ER_TOOLPATH_HND er_tpth_hnd)
Name program file.
#define ER_STDCALL
Definition: erk_capi_types.h:78
DLLAPI long 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...
DLLAPI DFRAME *ER_STDCALL erSetMotionAttributes_extTcpOffsetFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *extTcpOffsetFrame)
external Tool/TCP offset data w.r.t. extTcpBase, extTcpWorld, for a target location Transformation fr...
DLLAPI long 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...
DLLAPI long *ER_STDCALL erGetMoveCP_target_type(ER_TARGET_MOVE_CP_HND hnd)
Target type for CP move for target location is always.
DLLAPI DFRAME *ER_STDCALL erGetMotionAttributes_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...
DLLAPI long *ER_STDCALL erGetExtAxPositioner_number_extax_used(ER_TARGET_EXTAX_DEVICE_POSITIONER_HND hnd)
Number of external axis used for Positioner/TurnTable see example GetExtAxPositionerHnd()
DLLAPI long ER_STDCALL erGetNumConfigs(ER_HND er_hnd, long *num_configs)
Get number of possible robot configurations.
DLLAPI long ER_STDCALL erGetJointName(ER_HND er_hnd, long active_jnt_no, char *jnt_name)
Get the name of active robot joint.
DLLAPI long 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...
DLLAPI long 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....
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.
DLLAPI long 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 ...
DLLAPI long 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...
DLLAPI char *ER_STDCALL erToolPathLogFileName(ER_TOOLPATH_HND er_tpth_hnd)
Name log file.
DLLAPI double *ER_STDCALL erk_AutoPathGetEndPose(void)
Get End Pose return pointer, size nConfig.
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...
DLLAPI int ER_STDCALL erk_AutoPathGetPlanningStatus(void)
Get path planning status The planning status is one of AUTOPATH_SDK_STATUS_MP_IDLE AUTOPATH_SDK_STA...
DLLAPI long *ER_STDCALL erGetMoveCP_circ_orientation_interpolation_mode(ER_TARGET_MOVE_CP_HND hnd)
Circular orientation interpolation mode for CP move for target location The circular orientation inte...
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...
DLLAPI int ER_STDCALL erk_AutoPathSetMem(AutoPath_ConfigurationSpace *apcs)
allocate memory for AutoPath_ConfigurationSpace data depending on nConfig see example AutoPathInit()
DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumPointNormals(TErGeoHandle geometryHandle, int objidx)
DLLAPI long *ER_STDCALL erGetMotionAttributes_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...
DLLAPI long 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...
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.
DLLAPI long 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...
DLLAPI long ER_STDCALL erKernelGetOptions(char *opt)
Supplies option string containing all enabled options.
DLLAPI ER_HND ER_STDCALL erToolPathGetPositionerHandle(ER_TOOLPATH_HND er_tpth_hnd)
Get device positioner handle belonging to tool path handle.
const long ER_ROT_IDENT
Rotation Index: Identity, erMath_Frame_Rot()
Definition: erk_capi_types.h:724
DLLAPI int *ER_STDCALL erGeoMngr_GetGeometryIsCollided(TErGeoHandle geometryHandle)
DLLAPI long 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...
DLLAPI long ER_STDCALL erSetEvents_DIN(ER_HND er_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...
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...
Collision results for query ER_COLL_QUERY_TYPE_TOLERANCE, see erColl_GetResults_Tolerance()
Definition: erk_capi_types.h:804
DLLAPI long 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....
DLLAPI void ER_STDCALL erSetCallBack_UpdateGeometryProc(TerUpdateGeometryProc Handler)
Define Callback function to updat a geometries The Host application is prompted to update a geometry.
DLLAPI ER_TARGET_LOCATION_HND ER_STDCALL erGetTargetLocationLast(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Get last target location in a tool path.
DLLAPI long 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 ...
DLLAPI double *ER_STDCALL erGetMotionAttributes_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...
DLLAPI long 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...
DLLAPI long 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...
DLLAPI double *ER_STDCALL erGetMoveJoint_speed_percent(ER_TARGET_MOVE_JOINT_HND hnd)
Speed_percent percentage speed definition [>0-1000%] for joint move for target location.
DLLAPI DFRAME *ER_STDCALL erSetMotionAttributes_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_EXTAX_DEVICE_POSITIONER_HND
unique External axis data definition for Positioner/TurnTable handle
Definition: erk_capi_types.h:213
DLLAPI double *ER_STDCALL erGetMoveCP_speed_ori(ER_TARGET_MOVE_CP_HND hnd)
Cartesian orientation speed [rad/s], for CP move for target location.
DLLAPI long *ER_STDCALL erGetMoveJoint_target_type(ER_TARGET_MOVE_JOINT_HND hnd)
Target type for joint move for target location is one of.
DLLAPI char *ER_STDCALL erGetMotionAttributes_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...
DLLAPI long ER_STDCALL erKernelSetLicenseFile(char *license_file)
Set location and name of license file. Call this function before initializing the Kernel erKernelInit...
DLLAPI const double *ER_STDCALL erGeoMngr_GetDeviceBBox(ER_HND er_hnd)
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...
DLLAPI void ER_STDCALL erSetCallBack_GrpSyncProc(TerGrpSyncProc Handler)
Define Callback function for group synchonization.
DLLAPI long ER_STDCALL erTPth_Fct(ER_TOOLPATH_HND er_tpth_hnd)
Do Fct. ... tbd.
DLLAPI int ER_STDCALL erk_AutoPathTerminate(AutoPath_ConfigurationSpace *apcs)
Terminate AutoPath call AutoPathFreeMem() first, see example AutoPathInit()
DLLAPI ER_EXTAX_KIN_DATA *ER_STDCALL erGetExtAxConveyor_extax_data(ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND hnd, long extax_idx)
External axis values for Conveyor Values ER_EXTAX_KIN_DATA are: .
DLLAPI long ER_STDCALL erKernelGetOptionsDisabled(char *nopt)
Supplies option string containing all disabled options.
DLLAPI int ER_STDCALL erGeoMngr_GetAxisGeometry(ER_HND er_hnd, int axis_nr, int geometryIndex, LOAD_GEOMETRY_DATA *p_load_geometry_data, DFRAME *kinMat)
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
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...
DLLAPI int ER_STDCALL erGeoMngr_GetNumAxisGeometries(ER_HND er_hnd, int axis_nr)
DLLAPI long 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...
DLLAPI long 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...
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...
DLLAPI long ER_STDCALL erGetBackLink(ER_HND er_hnd, long *backlink)
Get robot back link status, obsolete function, use erGetBacklink()
DLLAPI int ER_STDCALL erk_AutoPathSetAxisPriority(int axisBit, int priority)
Set axis priority.
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...
DLLAPI ER_HND ER_STDCALL erConnectTrackMotionGetHND(ER_HND er_hnd)
Get robots connection handle between robot and track motion. See also erConnectTrackMotion()
DLLAPI long 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....
DLLAPI long ER_STDCALL erSetJointFramePassiveLast(ER_HND er_hnd, long passive_jnt_no, DFRAME *T)
DLLAPI long 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...
DLLAPI char *ER_STDCALL erk_AutoPathVer(void)
AutoPath Version.
DLLAPI int ER_STDCALL erk_AutoPathGetParameter(int ap_option)
Get parameter Paramter ap_option is one of AUTOPATH_SDK_PARAMETER_DYNADJUST AUTOPATH_SDK_PARAMETER_...
DLLAPI long ER_STDCALL erColl_GetResults_Collide(ER_CollideResult *er_cres)
Get Collision result for query ER_COLL_QUERY_TYPE_COLLIDE. Remarks Call erColl_ChkCollision() first,...
DLLAPI long ER_STDCALL erGetVxOriMax(ER_HND er_hnd, double *vx_ori_max)
Get maximum cartesian orientation speed.
DLLAPI long ER_STDCALL erConnectConveyorGetSync(ER_HND er_hnd)
Get robots synchronization flag for synchronization between robot and conveyor. See also erConnectCon...
unsigned int * ER_TARGET_LOCATION_HND
unique Target location handle, created with erAddTargetLocation()
Definition: erk_capi_types.h:203
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...
DLLAPI long 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...
DLLAPI long 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...
DLLAPI long ER_STDCALL erInvKinWorldTip(ER_HND er_hnd, DFRAME *iTt)
Calculating the inverse kinematics transformation. The iTt is the location of the flange w....
DLLAPI long *ER_STDCALL erGetMoveJoint_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,...
DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumPolygons(TErGeoHandle geometryHandle, int objidx)
DLLAPI long 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...
DLLAPI long 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...
DLLAPI long 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...
DLLAPI long 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....
DLLAPI long 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...
DLLAPI long ER_STDCALL erUnloadKin(ER_HND *er_hnd)
Unload an instance of kinematics of the Kernel. Unloads an instance of kinematics givin by the unique...
DLLAPI long ER_STDCALL erMath_mul_T_invT_T(DFRAME *To, DFRAME *Ti1, DFRAME *Ti2, DFRAME *Ti3)
Tripple multiplication of homogeneous 4x4 transformation matrices. To = Ti1 * inv(Ti2) * Ti3 Remarks ...
DLLAPI long ER_STDCALL erGetAxMax(ER_HND er_hnd, double *ax_max)
Get maximum cartesian acceleration.
DLLAPI void ER_STDCALL erEnableCallBack_LogProc(long onoff)
Enable/Disable Log messages. This function enables or disables Log Messages used with callback functi...
DLLAPI long 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...
void(ER_STDCALL * TerLogProc)(long LogType, char *LogMessage)
Callback function type definition for Log messages, erSetCallBack_LogProc()
Definition: erk_capi_types.h:626
DLLAPI double *ER_STDCALL erMath_ResetVec(double *dst, int n)
Reset vector dst = 0.
DLLAPI long 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...
DLLAPI long 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...
DLLAPI long ER_STDCALL erMath_invR(DFRAME *Ro, DFRAME *Ri)
Builds the inverse of the 3x3 orientation matrix from a homogeneous 4x4 transformation matrix T....
DLLAPI long 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....
DLLAPI long 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.
DLLAPI long 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...
DLLAPI long *ER_STDCALL erGetExtAxPositioner_sync_type(ER_TARGET_EXTAX_DEVICE_POSITIONER_HND hnd)
Synchonization for Positioner/TurnTable For a Positioner/TurnTable motion, the synchonization can be...
DLLAPI int ER_STDCALL erGeoMngr_SetGeometryCollisionHandle(TErGeoHandle geometryHandle, ER_COLLISION_HND collisionHandle)
const int ER_MOP_GNTPS_CNTRL_INIT
Get Next Tool Path Step, Initialize ToolPath interpolation.
Definition: erk_capi_types.h:567
DLLAPI long 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...
DLLAPI long 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,...
DLLAPI ER_HND ER_STDCALL erConnectPositionerGetHND(ER_HND er_hnd)
Get robots connection handle between robot and positioner. See also erConnectPositioner()
DLLAPI double *ER_STDCALL erk_AutoPathGetAxisConstraintsMin(void)
Get minimum axis constraints return pointer, size nConfig.
DLLAPI char *ER_STDCALL erGetMotionAttributes_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...
DLLAPI long 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...
DLLAPI ER_HND ER_STDCALL erToolPathGetRobotHandle(ER_TOOLPATH_HND er_tpth_hnd)
Get device robot handle belonging to tool path handle.
DLLAPI int ER_STDCALL erk_AutoPathFindPath(void)
Start motion planner, find a collision free path between start and end pose In each step,...
DLLAPI long 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....
DLLAPI DFRAME *ER_STDCALL erGetMotionAttributes_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 ...
Collision results for query ER_COLL_QUERY_TYPE_COLLIDE, see erColl_GetResults_Collide() .
Definition: erk_capi_types.h:775
DLLAPI long ER_STDCALL erUnloadToolPath(ER_TOOLPATH_HND *er_tpth_hnd)
Unload an instance of a kinematics tool path.
DLLAPI long 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....
DLLAPI long 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...
DLLAPI double *ER_STDCALL erGetMotionAttributes_extTcpWorldVec(ER_TARGET_ATTRIBUTES_HND hnd)
external Tool (TCP) w.r.t. Robot World or flange of positioner, for a target location Transformation ...
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...
DLLAPI long 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...
unsigned int * ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND
unique External axis data definition for Track/Slider handle
Definition: erk_capi_types.h:212
DLLAPI long 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...
DLLAPI long ER_STDCALL erKernelGetLicenseFile(char *license_file)
Get location and name of license file. If license_file is not set the string is empty,...
DLLAPI long 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...
DLLAPI double *ER_STDCALL erGetMotionAttributes_acc(ER_TARGET_ATTRIBUTES_HND hnd)
Acceleration and deceleration as percentage value in the range from 20% to 100% of normal values for ...
DLLAPI long 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.
DLLAPI double *ER_STDCALL erk_AutoPathGetStartPose(void)
Get Start Pose return pointer, size nConfig.
DLLAPI double *ER_STDCALL erGetMotionAttributes_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...
DLLAPI long 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...
DLLAPI long *ER_STDCALL erGetMotionAttributes_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...
DLLAPI long 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....
DLLAPI double *ER_STDCALL erGetMotionAttributes_WobjCartPosVec(ER_TARGET_ATTRIBUTES_HND hnd)
WorkObject valid for all cartesian target locations such as CartPosVec, CartPosVecVia Using this tran...
DLLAPI double *ER_STDCALL erMath_CpyVec(double *dst, double *src, int n)
Cpy vector dst = src.
DLLAPI long 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 [...
DLLAPI long 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....
DLLAPI long ER_STDCALL erGet_n_Kin_IR(ER_HND er_hnd)
Get the number of loaded kinematics with more than 3 joints and inverse kinematics.
DLLAPI long 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...
DLLAPI ER_HND ER_STDCALL erhGetTargetLocationER_HND(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Device handle belonging to target location.
DLLAPI long *ER_STDCALL erGetMoveJoint_configuration(ER_TARGET_MOVE_JOINT_HND hnd)
configuration Robot configuration [1-ER_KIN_CONFIGS] for target location
DLLAPI long 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...
DLLAPI long 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 ...
DLLAPI DFRAME *ER_STDCALL erGetMotionAttributes_ToolFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *ToolFrame)
Tool (TCP) for a target location Transformation from Tip to TCP see inq_ToolIdx(),...
DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumPoints(TErGeoHandle geometryHandle, int objidx)
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...
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...
DLLAPI DFRAME *ER_STDCALL erSetMotionAttributes_WobjCartPosFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *WobjCartPosFrame)
Set WorkObject valid for all cartesian target locations such as CartPosVec, CartPosVecVia Using this ...
DLLAPI double *ER_STDCALL erk_AutoPathGetWayPoint(int idx)
Get way point.
DLLAPI long *ER_STDCALL erGetMotionAttributes_dom_type(ER_TARGET_ATTRIBUTES_HND hnd)
Dominant interpolation type for a target location The dominant interpolation type can be one of the f...
DLLAPI long 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 ...
DLLAPI TErGeoHandle ER_STDCALL erGeoMngr_LoadGeometry(ER_HND er_hnd, LOAD_GEOMETRY_DATA *p_load_geometry_data)
Load a geometry.
DLLAPI double *ER_STDCALL erGetMotionAttributes_LagWaitTime(ER_TARGET_ATTRIBUTES_HND hnd)
Lagging time [s] after robot reaches its target location Remarks Default value: 0 Has only an effect...
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...
unsigned int * ER_TARGET_EVENTS_HND
unique Events handle
Definition: erk_capi_types.h:206
DLLAPI long ER_STDCALL erSetExtTcpWorld(ER_HND er_hnd, DFRAME *iText)
Set location of external TCP w.r.t inertia (world).
DLLAPI long ER_STDCALL erSetEvents_DOUT(ER_HND er_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 A boolean event for binary outputs is controlled by trigger data,...
DLLAPI long 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....
DLLAPI long ER_STDCALL erSetConveyorStartOffsetCondition(ER_TARGET_LOCATION_HND er_tarloc_hnd, double tx0)
Sets the conveyor start offset condition. This function set the conveyor start condition for the Trac...
DLLAPI long ER_STDCALL 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...
DLLAPI long 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...
DLLAPI long ER_STDCALL erGetJointFrameActiveLast(ER_HND er_hnd, long active_jnt_no, DFRAME *T)
DLLAPI long 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...
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
DLLAPI long 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....
DLLAPI long 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,...
DLLAPI int ER_STDCALL erk_AutoPathInit(AutoPath_ConfigurationSpace *apcs)
Initialize AutoPath Call this functions to setup the autopath configuration space Parameter apcs defi...
DLLAPI ER_TARGET_LOCATION_HND ER_STDCALL erGetTargetLocationPrev(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Get previous target location in a tool path.
DLLAPI long 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...
unsigned int * ER_TARGET_ATTRIBUTES_HND
unique Motion attributes handle
Definition: erk_capi_types.h:208
DLLAPI long 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
DLLAPI long 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...
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...
DLLAPI long 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....
DLLAPI DFRAME *ER_STDCALL erGetMotionAttributes_WobjCartPosFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *WobjCartPosFrame)
Get WorkObject valid for all cartesian target locations such as CartPosVec, CartPosVecVia Using this ...
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
DLLAPI long 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...
DLLAPI long ER_STDCALL erConnectTrackMotionSetSync(ER_HND er_hnd, long connect_sync)
Set robots synchronization flag for synchronization between robot and track motion....
DLLAPI long ER_STDCALL erConnectConveyorSetSync(ER_HND er_hnd, long connect_sync)
Set robots synchronization flag for synchronization between robot and conveyor. The synchronization f...
DLLAPI double *ER_STDCALL erGetMotionAttributes_override_speed(ER_TARGET_ATTRIBUTES_HND hnd)
Correction values as percentage value for scaling the programmed speed for a target location Remarks ...
DLLAPI long 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...
DLLAPI long 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() .
DLLAPI double *ER_STDCALL erGetMotionAttributes_LeadWaitTime(ER_TARGET_ATTRIBUTES_HND hnd)
Leading time [s] before robot will start moving to target location Remarks Default value: 0 Has only...
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...
Contains desired data for next interpolation step Usage with erGET_NEXT_STEP()
DLLAPI ER_TARGET_MOTION_EXEC_HND ER_STDCALL erGetTargetLocationMotionExecHnd(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Handle for target execution data Target execution data are calculated while interpolation through the...
DLLAPI int ER_STDCALL erk_AutoPathSetParameter(int ap_option, int ap_value)
Set parameter Paramter ap_option is one of AUTOPATH_SDK_PARAMETER_DYNADJUST AUTOPATH_SDK_PARAMETER_A...
DLLAPI long *ER_STDCALL erGetMotionAttributes_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_...
DLLAPI char *ER_STDCALL erGetMotionAttributes_BaseName(ER_TARGET_ATTRIBUTES_HND hnd)
Name for program shift Base for a target location see inq_BaseVec(), inq_BaseIdx() This BaseName coul...
DLLAPI long ER_STDCALL erSetVxMax(ER_HND er_hnd, double vx_max)
Set maximum cartesian speed.
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...
DLLAPI long 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 [...
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...
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...
DLLAPI long ER_STDCALL erGetToolFix(ER_HND er_hnd, DFRAME *tTwfix)
Get robot tool fix (TCP) data w.r.t. robots flange, without Tool Offset.
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
DLLAPI long ER_STDCALL erKernelAddLicenseFile(char *license_file)
Set an additional location and name of license file. Call this function before initializing the Kerne...
DLLAPI long 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....
DLLAPI long 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,...
DLLAPI long 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 ...
DLLAPI double *ER_STDCALL erGetMotionExec_JointPos(ER_TARGET_MOTION_EXEC_HND hnd)
Joint position at target location, while interpolation through the complete tool path.
External axis target data for connected devices belongs to structure NEXT_TARGET_DATA.
DLLAPI long ER_STDCALL erSetEvents_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...
DLLAPI long ER_STDCALL erGetAutoAccel(ER_HND er_hnd, long *autoaccel)
Get status for automatic calculation of acceleration depending on programmed speed....
DLLAPI long 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...
DLLAPI long *ER_STDCALL erGetMotionAttributes_filter_factor(ER_TARGET_ATTRIBUTES_HND hnd)
Filter factor for smoothing velocity profiles of motions The filter_factor is one of ER_MOTION_FILTER...
DLLAPI long ER_STDCALL erUpdateGeo(ER_HND er_hnd)
Updates all geometry location for each robot joint. This function causes the call of callback functio...
DLLAPI DFRAME *ER_STDCALL erGetMotionAttributes_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...
DLLAPI long 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...
DLLAPI long 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...
const long ER_EVENT_TRIGGER_OFF
Signal Trigger to control binary output. OFF will not set output event.
Definition: erk_capi_types.h:600
DLLAPI double *ER_STDCALL erGetMoveJoint_accel_percent(ER_TARGET_MOVE_JOINT_HND hnd)
Accel_percent percentage acceleration definition [>0-1000%] for joint move for target location.
DLLAPI long ER_STDCALL erUpdateKin(ER_HND er_hnd)
Updates the complete kinematics. This function calculates the location of all axis coorsys,...
DLLAPI long 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...
const long ER_EVENT_BOOL_UNDEF
Event status for binary input/output events is undefined.
Definition: erk_capi_types.h:596
DLLAPI long ER_STDCALL erGetWorldTcp(ER_HND er_hnd, DFRAME *iTw)
Get robot tcp location w.r.t. inertia (world) coorsys.
unsigned int TErGeoHandle
unique Geometry handle used for callback functions TerLoadGeometryProc()
Definition: erk_capi_types.h:197
DLLAPI long 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....
DLLAPI long ER_STDCALL erKernelGetVersion(void)
Returns the Kernels Version.
DLLAPI long *ER_STDCALL erGetMotionAttributes_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...
DLLAPI long ER_STDCALL erSetEvents_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...
DLLAPI long 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...
DLLAPI char *ER_STDCALL erGetTargetLocationNameVia(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Name of target Via location, in case of circular motion.
DLLAPI long 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,...
DLLAPI long ER_STDCALL erSetTool(ER_HND er_hnd, DFRAME *tTw)
Set robot tool (TCP) data w.r.t. robots flange.
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...
DLLAPI int ER_STDCALL erGeoMngr_CheckBoundingBoxCollision(DFRAME *T1, const double *bbox1, DFRAME *T2, const double *bbox2, double tolerance)
DLLAPI long 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.
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...
DLLAPI long 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....
DLLAPI long 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...
DLLAPI long 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....
DLLAPI long 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,...
DLLAPI double *ER_STDCALL erGetMotionAttributes_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 ...
DLLAPI void ER_STDCALL erSetCallBack_NotifyProc(TerNotifyProc Handler)
Define Callback function for notify messages The Kernel informs the host application about internel s...
DLLAPI size_t *ER_STDCALL erGeoMngr_GetGeometryObjPolygon(TErGeoHandle geometryHandle, int objidx, int index)
DLLAPI long 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...
DLLAPI long 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...
DLLAPI int ER_STDCALL erGeoMngr_FreeGeometry(ER_HND er_hnd, TErGeoHandle GeoHandle)
Free or delete a geometry.
DLLAPI long 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...
DLLAPI long ER_STDCALL erGET_NEXT_TOOLPATH_STEP_INIT(ER_TOOLPATH_HND er_tpth_hnd, long cntrl=ER_MOP_GNTPS_CNTRL_INIT)
Initializes the interpolation through a complete tool path Parameter cntrl must be set to ER_MOP_GNTP...
DLLAPI ER_TARGET_LOCATION_HND ER_STDCALL erToolPathGetTargetLocationLast(ER_TOOLPATH_HND er_tpth_hnd)
Get the last 'target location handle' in the tool path.
DLLAPI long 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....
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.
DLLAPI ER_TARGET_ATTRIBUTES_HND ER_STDCALL erGetTargetLocationMotionAttributesHnd(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Handle for target attributes data Typical attributes belonging to a target location are: e....
DLLAPI long ER_STDCALL erGetJointFramePassiveNext(ER_HND er_hnd, long passive_jnt_no, DFRAME *T)
DLLAPI int ER_STDCALL erk_AutoPath_SetCallback_CheckConstraints(BOOL(*ptr_CheckConstraints)(int, void *))
Defines a callback function to check constraints during AutoPath calculation The callback function is...
DLLAPI long 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...
DLLAPI long 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...
DLLAPI long *ER_STDCALL erGetMotionAttributes_flyby_on(ER_TARGET_ATTRIBUTES_HND hnd)
Rounding / flyby condition for a target location In case of flyby enabled, the robot moves through a ...
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...
DLLAPI long 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 ...
DLLAPI long ER_STDCALL erGetJointFramePassiveLast(ER_HND er_hnd, long passive_jnt_no, DFRAME *T)
Contains additional desired data for current interpolation step Usage with erGetCurrentStepData() aft...
DLLAPI long ER_STDCALL erSetAutoAccel(ER_HND er_hnd, long autoaccel)
Enables automatic calculation of acceleration depending on programmed speed. Using AutoAccel is a pro...
const int ER_COLL_FIRST_CONTACT
report first intersecting tri pair found, erColl_ChkCollision()
Definition: erk_capi_types.h:752
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() ...
DLLAPI long 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.
DLLAPI double *ER_STDCALL erGetMotionAttributes_ToolOffsetVec(ER_TARGET_ATTRIBUTES_HND hnd)
ToolOffset (TCP) for a target location Offset Transformation from TCP see inq_ToolOffsetIdx(),...
DLLAPI long *ER_STDCALL erGetExtAxTrack_number_extax_used(ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND hnd)
Number of external axis used for Track/Slider see example GetExtAxTrackMotionHnd()
DLLAPI int ER_STDCALL erGeoMngr_GetGeometryCloneCount(TErGeoHandle geometryHandle)
DLLAPI long *ER_STDCALL erGetMotionAttributes_ToolIdx(ER_TARGET_ATTRIBUTES_HND hnd)
Idx for Tool for a target location see inq_ToolVec(), inq_ToolName() This ToolIdx could be useful whe...
DLLAPI ER_HND ER_STDCALL erConnectConveyorGetHND(ER_HND er_hnd)
Get robots connection handle between robot and conveyor. See also erConnectConveyor()
DLLAPI long ER_STDCALL erCONTINUE_MOTION(ER_HND er_hnd)
Continues a motion that was stopped with the erSTOP_MOTION() function. Opcode 152,...
const long ER_SYNC_UNDEF
device synchronization not defined
Definition: erk_capi_types.h:355
DLLAPI long 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_...
DLLAPI int ER_STDCALL erGeoMngr_GetGeometryObjNumLines(TErGeoHandle geometryHandle, int objidx)
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...
DLLAPI char *ER_STDCALL erGetMotionAttributes_extTcpOffsetName(ER_TARGET_ATTRIBUTES_HND hnd)
Name for external Tool/TCP offset data w.r.t. extTcpBase, extTcpWorld, for a target location see inq_...
DLLAPI long ER_STDCALL erKernelGetLicensePriority(int *license_priority)
Get license priority. Parameter license_priority is one of ER_LICENSE_PRIORITY_LMNGR,...
DLLAPI long 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....
DLLAPI long 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...
DLLAPI long 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 ...
DLLAPI long ER_STDCALL erUnloadTool(ER_HND er_hnd)
Unload a kinematics tool. Unloads a kinematics tool givin by the unique kinematics handle....
DLLAPI long 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...
unsigned int TErTargetID
unique Target identifier
Definition: erk_capi_types.h:198
DLLAPI void ER_STDCALL erSetCallBack_GetActualTravelRangesProc(TerGetActualTravelRangesProc Handler)
Define Callback function to calculate travel ranges by host application The Host application takes ca...
DLLAPI long ER_STDCALL erMath_Frame_Ident(DFRAME *T)
Set the homogeneous 4x4 transformation matrix T to identity. T = Ident A frame DFRAME is a homogeneou...
DLLAPI long ER_STDCALL erGetName(ER_HND er_hnd, char *name)
Get the name of the robot.
DLLAPI long ER_STDCALL erSetJointFramePassiveNext(ER_HND er_hnd, long passive_jnt_no, DFRAME *T)
DLLAPI TErTargetID *ER_STDCALL erGetMotionAttributes_target_id(ER_TARGET_ATTRIBUTES_HND hnd)
unique target ID of a target location
sets the robot model to a position according to the input data. Usage with erSET_INITIAL_POSITION()
Definition: erk_capi_types.h:372
DLLAPI long ER_STDCALL erConnectRobotGetSync(ER_HND er_hnd)
Get robots synchronization flag for synchronization between robot and slave robot....
unsigned int * ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND
unique External device definition for Conveyor
Definition: erk_capi_types.h:214
DLLAPI long 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...
DLLAPI double *ER_STDCALL erk_AutoPathGetAxisConstraintsMax(void)
Get maximum axis constraints return pointer, size nConfig.
DLLAPI long ER_STDCALL erSetExtAxPositionerIdx(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...
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...
DLLAPI long ER_STDCALL erGetTool(ER_HND er_hnd, DFRAME *tTw)
Get robot tool (TCP) data w.r.t. robots flange.
DLLAPI long 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....
DLLAPI long *ER_STDCALL erGetMotionAttributes_ToolOffsetIdx(ER_TARGET_ATTRIBUTES_HND hnd)
Idx for ToolOffset for a target location see inq_ToolOffsetVec(), inq_ToolOffsetName() This ToolOffse...
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...
DLLAPI long 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...
DLLAPI long ER_STDCALL erGetTargetLocationIdx(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Index of target location.
DLLAPI long 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...
DLLAPI long 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...
DLLAPI int ER_STDCALL erk_AutoPathFreeMem(AutoPath_ConfigurationSpace *apcs)
free memory of AutoPath_ConfigurationSpace data see example AutoPathInit()
unsigned int * ER_TOOLPATH_HND
unique Tool path handle, created with erInitToolPath()
Definition: erk_capi_types.h:202
DLLAPI long ER_STDCALL erGetRobotBase(ER_HND er_hnd, DFRAME *iTb)
Get robot base location w.r.t. world.
DLLAPI long 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....
DLLAPI long 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...
DLLAPI int ER_STDCALL erGeoMngr_GetVersion()
GeoMngr Version.
DLLAPI const double *ER_STDCALL erGeoMngr_GetGeometryBBox(TErGeoHandle geometryHandle)
DLLAPI long 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...
DLLAPI long ER_STDCALL erCANCEL_MOTION(ER_HND er_hnd)
Cancel a motion that was stopped with erSTOP_MOTION() function. Opcode 153, Chapter 3....
DLLAPI ER_HND ER_STDCALL erToolPathGetER_HND(ER_TOOLPATH_HND er_tpth_hnd)
Device Handle belonging to tool path. This method is obsolete -> use erToolPathGetRobotHandle()
DLLAPI long ER_STDCALL erGetRobotBasetoFirstJoint(ER_HND er_hnd, DFRAME *T)
DLLAPI long 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...
DLLAPI void ER_STDCALL erSetCallBack_LoadGeometryProc(TerLoadGeometryProc Handler)
Define Callback function to load a geometry The Host application is prompted to load a geometry.
DLLAPI long ER_STDCALL erGetRobotBaseTcp(ER_HND er_hnd, DFRAME *bTw)
Get robot tcp location w.r.t. robot base.
DLLAPI long ER_STDCALL erInvKinRobotBaseTip(ER_HND er_hnd, DFRAME *bTt)
Calculating the inverse kinematics transformation. The bTt is the location of the flange w....
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...
DLLAPI char *ER_STDCALL erGetMotionAttributes_ToolName(ER_TARGET_ATTRIBUTES_HND hnd)
Name for Tool for a target location see inq_ToolVec(), inq_ToolIdx() This ToolName could be useful wh...
DLLAPI long ER_STDCALL erGet_n_Kin(ER_HND er_hnd)
Get the number of loaded kinematics.
DLLAPI long 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 ...
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...
DLLAPI long 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...
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...
DLLAPI long ER_STDCALL erConnectPositionerSetSync(ER_HND er_hnd, long connect_sync)
Set robots synchronization flag for synchronization between robot and positioner. The synchronization...
DLLAPI long 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,...
DLLAPI int ER_STDCALL erGeoMngr_GetNumGeometries(ER_HND er_hnd)
Get number of loaded geometries for specified device.
DLLAPI DFRAME *ER_STDCALL erSetMotionAttributes_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...
DLLAPI long ER_STDCALL erSetVxOriMax(ER_HND er_hnd, double vx_ori_max)
Set maximum cartesian orientation speed.
DLLAPI long 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...
DLLAPI long ER_STDCALL erInvKinWorldTcp(ER_HND er_hnd, DFRAME *iTw)
Calculating the inverse kinematics transformation. The iTw is the location of the tcp w....
DLLAPI long ER_STDCALL erSetToolOffset(ER_HND er_hnd, DFRAME *wTwo)
Set robot tool offset (TCP) data w.r.t. robots fix Tcp.
DLLAPI long 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)...
DLLAPI long 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....
DLLAPI DFRAME *ER_STDCALL erGetMotionAttributes_ToolOffsetFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *ToolOffsetFrame)
ToolOffset (TCP) for a target location Offset Transformation from TCP see inq_ToolOffsetIdx(),...
DLLAPI long 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...
unsigned int * Host_HND
unique Host handle given from Host, NULL per default, erInitKin()
Definition: erk_capi_types.h:196
DLLAPI long 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 ...
DLLAPI long 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
DLLAPI long 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,...
DLLAPI long *ER_STDCALL erGetMotionAttributes_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...
DLLAPI long *ER_STDCALL erGetMotionAttributes_autoaccel(ER_TARGET_ATTRIBUTES_HND hnd)
Automatic calculation of acceleration depending on programmed speed for a target location Using AutoA...
DLLAPI long ER_STDCALL erSetConfig(ER_HND er_hnd, long config)
Set robot configuration A new robot configuration takes effect when calling the inverse kinematics tr...
DLLAPI int ER_STDCALL erGeoMngr_GetGeometry(ER_HND er_hnd, int geometryIndex, LOAD_GEOMETRY_DATA *p_load_geometry_data, DFRAME *kinMat)
DLLAPI int ER_STDCALL erGeoMngr_SetGeometryIsCollided(TErGeoHandle geometryHandle, int isCollided)
const long ER_ROT_XYZ
Rotation Index: RotX*RotY*RotZ, EASY-ROB, Staeubli CS8, erMath_VecToFrameIdx(), erMath_FrameToVecIdx.
Definition: erk_capi_types.h:729
DLLAPI long ER_STDCALL erConnectPositionerGetSync(ER_HND er_hnd)
Get robots synchronization flag for synchronization between robot and positioner. See also erConnectP...
DLLAPI ER_TARGET_EXTAX_DEVICE_POSITIONER_HND ER_STDCALL erGetTargetLocationExtAxPositionerHnd(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Handle for external axis of a Positioner/TurnTable-Motion Typical data belonging to external axis da...
Collision results for query ER_COLL_QUERY_TYPE_DISTANCE, see erColl_GetResults_Distance() The followi...
Definition: erk_capi_types.h:790
DLLAPI long 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...
DLLAPI ER_TARGET_INSTRUCTIONS_HND ER_STDCALL erGetTargetLocationInstructionsHnd(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Handle for target instruction data Remarks Instructions are individual command or information attach...
DLLAPI ER_HND ER_STDCALL erToolPathGetTrackMotionHandle(ER_TOOLPATH_HND er_tpth_hnd)
Get device track motion handle belonging to tool path handle.
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...
DLLAPI long 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....
DLLAPI long *ER_STDCALL erGetExtAxConveyor_number_extax_used(ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND hnd)
Number of external axis used for Conveyor see example GetExtAxConveyorHnd()
DLLAPI double *ER_STDCALL erGeoMngr_GetGeometryObjPointNormal(TErGeoHandle geometryHandle, int objidx, int index)
DLLAPI double *ER_STDCALL erGetMoveCP_CartPosVec(ER_TARGET_MOVE_CP_HND hnd)
Cartesian position w.r.t. Base for CP move for target location Remarks Use for.
DLLAPI long 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,...
Contains target data for about next move "advance move" This structure contains all required data for...
DLLAPI long 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...
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
DLLAPI TErGeoHandle ER_STDCALL erGeoMngr_GetGeometryCloneHandle(TErGeoHandle geometryHandle)
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
DLLAPI ER_TARGET_HEAD_HND ER_STDCALL erGetTargetLocationHeaderDataHnd(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Handle for target header data.
DLLAPI long 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...
DLLAPI long ER_STDCALL erMath_invT(DFRAME *To, DFRAME *Ti)
Builds the inverse of a homogeneous 4x4 transformation matrix T. To = inv(Ti) = ( Ri' ,...
DLLAPI long 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...
DLLAPI long 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.
DLLAPI long ER_STDCALL erGetAxOriMax(ER_HND er_hnd, double *ax_ori_max)
Get maximum cartesian orientation acceleration.
DLLAPI double *ER_STDCALL erGetMotionAttributes_extTcpOffsetVec(ER_TARGET_ATTRIBUTES_HND hnd)
external Tool/TCP offset data w.r.t. extTcpBase, extTcpWorld, for a target location Transformation fr...
DLLAPI ER_TARGET_EXTAX_DEVICE_CONVEYOR_HND ER_STDCALL erGetTargetLocationExtAxConveyorHnd(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Handle for external axis of a Conveyor-Motion Typical data belonging to external axis data are: numb...
DLLAPI long ER_STDCALL erGetEvents_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...
DLLAPI const double *ER_STDCALL erGeoMngr_GetAxisBBox(ER_HND er_hnd, int axis_id)
DLLAPI ER_HND ER_STDCALL erToolPathGetConveyorHandle(ER_TOOLPATH_HND er_tpth_hnd)
Get device conveyor handle belonging to tool path handle.
DLLAPI ER_EXTAX_KIN_DATA *ER_STDCALL erGetExtAxPositioner_extax_data(ER_TARGET_EXTAX_DEVICE_POSITIONER_HND hnd, long extax_idx)
External axis values for Positioner/TurnTable Values ER_EXTAX_KIN_DATA are: .
DLLAPI long ER_STDCALL erGetTargetLocationNumber(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Number of target locations in a tool path.
DLLAPI long 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,...
unsigned int * ER_TARGET_MOVE_JOINT_HND
unique Target data for Joint Move handle
Definition: erk_capi_types.h:209
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....
DLLAPI long ER_STDCALL erColl_EndModel(ER_COLLISION_HND er_coll_hnd)
Stop building a Model.
DLLAPI size_t *ER_STDCALL erGeoMngr_GetGeometryObjLine(TErGeoHandle geometryHandle, int objidx, int index)
DLLAPI int ER_STDCALL erk_AutoPathAbortPlanning(void)
Abort path planning use GetPlanningStatus()
DLLAPI ER_TARGET_ATTRIBUTES_AUX_HND ER_STDCALL erGetTargetLocationMotionAttributesAuxHnd(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Handle for target attributes auxiliary data.
DLLAPI long *ER_STDCALL erGetMoveJoint_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...
DLLAPI long ER_STDCALL erInvKinRobotBaseTcp(ER_HND er_hnd, DFRAME *bTw)
Calculating the inverse kinematics transformation. The bTw is the location of the tcp w....
DLLAPI long ER_STDCALL erGetInvKinSubID(ER_HND er_hnd, long *invkinsub_id)
Inverse kinematics Sub-ID for cRobot. .
DLLAPI long 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 ...
DLLAPI char *ER_STDCALL erGetMotionAttributes_ToolOffsetName(ER_TARGET_ATTRIBUTES_HND hnd)
Name for ToolOffset for a target location see inq_ToolOffsetVec(), inq_ToolOffsetIdx() This ToolOffse...
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...
DLLAPI long ER_STDCALL erGeoMngr_GetGeometryObjColorCode(TErGeoHandle geometryHandle, int objidx)
DLLAPI int ER_STDCALL erk_AutoPathSetPoseEnd(double *pose_end)
Set end configuration Remarks This pose must be valid - collision free, based on callback function "...
DLLAPI double *ER_STDCALL erGetMotionAttributes_ToolVec(ER_TARGET_ATTRIBUTES_HND hnd)
Tool (TCP) for a target location Transformation from Tip to TCP see inq_ToolIdx(),...
DLLAPI long 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...
DLLAPI int ER_STDCALL erk_AutoPathGetNumberOfWayPoints(void)
Get number of calculated way points, including start and end pose call this method after FindPath() s...
DLLAPI long 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...
DLLAPI long 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,...
DLLAPI long 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...
DLLAPI long 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...
DLLAPI long 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...
DLLAPI long ER_STDCALL erSetExtAxConveyorIdx(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 ...
unsigned int TErTrackingWindowID
unique TrackingWindow identifier
Definition: erk_capi_types.h:199
DLLAPI long 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...
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_...
DLLAPI int ER_STDCALL erk_AutoPathSetAccuracy(UINT accuracy)
Set accuracy.
DLLAPI ER_COLLISION_HND *ER_STDCALL erGeoMngr_GetGeometryCollisionHandle(TErGeoHandle geometryHandle)
DLLAPI long 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...
DLLAPI double *ER_STDCALL erGeoMngr_GetGeometryObjColor(TErGeoHandle geometryHandle, int objidx)
DLLAPI ER_EXTAX_KIN_DATA *ER_STDCALL erGetExtAxTrack_extax_data(ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND hnd, long extax_idx)
External axis values for Track/Slider Values ER_EXTAX_KIN_DATA are: .
DLLAPI long ER_STDCALL erGetVxMax(ER_HND er_hnd, double *vx_max)
Get maximum cartesian speed.
DLLAPI DFRAME *ER_STDCALL erSetMotionAttributes_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...
DLLAPI long ER_STDCALL erGetToolOffset(ER_HND er_hnd, DFRAME *wTwo)
Get robot tool offset (TCP) data w.r.t. robots fix Tcp.
DLLAPI long 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....
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...
DLLAPI long 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...
DLLAPI long ER_STDCALL erSetRobotBase(ER_HND er_hnd, DFRAME *iTb)
Set robot base location w.r.t. world.
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,...
DLLAPI long 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,...
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.
DLLAPI long 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...
DLLAPI double *ER_STDCALL erGetMoveCP_speed_cp(ER_TARGET_MOVE_CP_HND hnd)
Cartesian speed [m/s], for CP move for target location.
DLLAPI ER_TARGET_MOVE_CP_HND ER_STDCALL erGetTargetLocationMoveCPHnd(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Handle for target move CP data Typical data belonging to a move CP target location are: target_type,...
DLLAPI long ER_STDCALL 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,...
DLLAPI long 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...
DLLAPI DFRAME *ER_STDCALL erSetMotionAttributes_ToolFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *ToolFrame)
Tool (TCP) for a target location Transformation from Tip to TCP see inq_ToolIdx(),...
DLLAPI long 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 ...
DLLAPI long 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...
DLLAPI void ER_STDCALL erSetCallBack_FreeGeometryProc(TerFreeGeometryProc Handler)
Define Callback function to free Geometry The Host application is prompted to free a geometry.
DLLAPI DFRAME *ER_STDCALL erGetMotionAttributes_extTcpOffsetFrame(ER_TARGET_ATTRIBUTES_HND hnd, DFRAME *extTcpOffsetFrame)
external Tool/TCP offset data w.r.t. extTcpBase, extTcpWorld, for a target location Transformation fr...
DLLAPI int ER_STDCALL erk_AutoPathClearAllWayPoints(void)
Clear all way points.
DLLAPI long 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 ...
DLLAPI long 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,...
DLLAPI ER_TARGET_LOCATION_HND ER_STDCALL erGetTargetLocationNext(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Get next target location in a tool path.
DLLAPI long 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...
DLLAPI ER_TARGET_LOCATION_HND ER_STDCALL erGetTargetLocationFirst(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Get first target location in a tool path.
unsigned int * ER_TARGET_HEAD_HND
unique Header data handle
Definition: erk_capi_types.h:204
DLLAPI long ER_STDCALL erMath_DistBetween(DFRAME *Ts, DFRAME *Te, double *dist, double *dv=NULL)
Calculates the distance and direction between two homogeneous 4x4 transformation matrices....
DLLAPI double *ER_STDCALL erGetMotionAttributes_extTcpBaseVec(ER_TARGET_ATTRIBUTES_HND hnd)
external Tool (TCP) w.r.t. Robot Base or flange of positioner, for a target location Transformation f...
DLLAPI long 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...
DLLAPI long ER_STDCALL erKernelGetLicense(char *hw_id)
Check license and supplies unique HardwareID or DongleID.
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 tool path calculations Requires DLL EasySimKernel_tboxx64....
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 ...
DLLAPI long 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...
DLLAPI long ER_STDCALL erGetWorldTip(ER_HND er_hnd, DFRAME *iTt)
Get robot tip location w.r.t. inertia (world) coorsys.
DLLAPI long ER_STDCALL erGetJointFrameActiveNext(ER_HND er_hnd, long active_jnt_no, DFRAME *T)
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()...
DLLAPI long 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...
DLLAPI long ER_STDCALL erSetJointFrameActiveLast(ER_HND er_hnd, long active_jnt_no, DFRAME *T)
Definition: erk_capi_types.h:919
DLLAPI long 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...
DLLAPI long ER_STDCALL erGetExtTcpWorld(ER_HND er_hnd, DFRAME *iText)
Get location of external TCP w.r.t inertia (world).
DLLAPI long 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...
DLLAPI long 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...
DLLAPI long 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...
DLLAPI long *ER_STDCALL erGetMotionAttributes_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...
DLLAPI long ER_STDCALL erSetConveyorTrackingWindow(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...
DLLAPI int ER_STDCALL erk_AutoPathGetResults(int ap_result)
Get results Paramter ap_result is one of AUTOPATH_SDK_RESULT_CHECKS AUTOPATH_SDK_RESULT_SECONDS AU...
DLLAPI long *ER_STDCALL erGetExtAxConveyor_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,...
DLLAPI long 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...
DLLAPI long ER_STDCALL erColl_GetResults_Distance(ER_DistanceResult *er_dres)
Get Collision result for query ER_COLL_QUERY_TYPE_DISTANCE. Remarks Call erColl_ChkCollision() first...
DLLAPI long ER_STDCALL erConnectTrackMotionGetSync(ER_HND er_hnd)
Get robots synchronization flag for synchronization between robot and track motion....
DLLAPI long 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 ...
DLLAPI ER_TARGET_EXTAX_DEVICE_TRACKMOTION_HND ER_STDCALL erGetTargetLocationExtAxTrackHnd(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Handle for external axis of a Track/Slider-Motion Typical data belonging to external axis data are: ...
DLLAPI long ER_STDCALL erColl_GetResults_Tolerance(ER_ToleranceResult *er_tres)
Get Collision result for query ER_COLL_QUERY_TYPE_TOLERANCE. Remarks Call erColl_ChkCollision() firs...
DLLAPI ER_HND ER_STDCALL erConnectRobotGetHND(ER_HND er_hnd)
Get robots connection handle between robot and slave robot. See also erConnectRobot()
DLLAPI long 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....
DLLAPI long ER_STDCALL erGetRobotBaseTip(ER_HND er_hnd, DFRAME *bTt)
Get robot tip (flange) location w.r.t. robot base.
unsigned int * ER_TARGET_MOTION_EXEC_HND
unique handle for motion execution data at target
Definition: erk_capi_types.h:211
DLLAPI ER_TARGET_EVENTS_HND ER_STDCALL erGetTargetLocationEventsHnd(ER_TARGET_LOCATION_HND er_tarloc_hnd)
Handle for target events data.
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...
DLLAPI ER_TARGET_LOCATION_HND ER_STDCALL erToolPathGetTargetLocationFirst(ER_TOOLPATH_HND er_tpth_hnd)
Get the first 'target location handle' in the tool path.
DLLAPI long ER_STDCALL erGet_num_dofs(ER_HND er_hnd)
Get number of active robot joints.
DLLAPI long 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....
DLLAPI double *ER_STDCALL erGeoMngr_GetGeometryObjPoint(TErGeoHandle geometryHandle, int objidx, int index)
DLLAPI long ER_STDCALL erSetAxOriMax(ER_HND er_hnd, double ax_ori_max)
Set maximum cartesian orientation acceleration.
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.
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
DLLAPI long 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...
DLLAPI long ER_STDCALL erKernelGetHardwareID(char *hw_id)
Supplies unique HardwareID or DongleID.
DLLAPI long *ER_STDCALL erGetMotionAttributes_enabled(ER_TARGET_ATTRIBUTES_HND hnd)
Enables/disables a target location If the target location is disabled, the trajectory interpolator wi...
DLLAPI long 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,...
DLLAPI long ER_STDCALL erUnloadTargetLocation(ER_TARGET_LOCATION_HND *er_tarloc_hnd)
Unload/delete a target location from a tool path Remarks Use erGetTargetLocationNumber() to receive ...
DLLAPI long *ER_STDCALL erGetMoveCP_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...
DLLAPI double *ER_STDCALL erGetMoveCP_accel_ori(ER_TARGET_MOVE_CP_HND hnd)
Cartesian orientation acceleration [rad/s^2], for CP move for target location.
DLLAPI long ER_STDCALL erSetSpeedReductionEnable(ER_HND er_hnd, long speed_reduction_enable)
Set speed reduction enable. If speed reduction is enabled, the robots TCP speed gets reduced (while m...
DLLAPI double *ER_STDCALL erGetMoveJoint_CartPosVec(ER_TARGET_MOVE_JOINT_HND hnd)
Cartesian position w.r.t. Base for joint move for target location Remarks Use for.
DLLAPI long 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...
DLLAPI int ER_STDCALL erk_AutoPathSetAxisConstraints(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...
DLLAPI int ER_STDCALL erk_AutoPathSetPoseStart(double *pose_start)
Set start configuration Remarks This pose must be valid - collision free, based on callback function...
DLLAPI long 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(...
DLLAPI long *ER_STDCALL erGetMotionAttributes_BaseIdx(ER_TARGET_ATTRIBUTES_HND hnd)
Idx for program shift Base for a target location see inq_BaseVec(), inq_BaseName() This BaseIdx could...
DLLAPI long ER_STDCALL erGetExtTcpRobotBase(ER_HND er_hnd, DFRAME *bText)
Get location of external TCP w.r.t robot base.
DLLAPI void ER_STDCALL erKernelFree(void)
Free all internal Kernel data. Calling this function will delete all internal Kernel data After calli...
DLLAPI long 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.
unsigned int * ER_TARGET_ATTRIBUTES_AUX_HND
unique Auxiliary motion attributes handle
Definition: erk_capi_types.h:207
DLLAPI char *ER_STDCALL erToolPathName(ER_TOOLPATH_HND er_tpth_hnd)
Name of tool path.
DLLAPI long ER_STDCALL erSetExtAxTrackIdx(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...
DLLAPI long 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,...