libKinematics.h
Go to the documentation of this file.
00001 /* --------------------------------------------------------------------------------
00002  #
00003  #      libKinematics.h
00004  #      Project : Kinematics
00005  #      author : jhaller
00006  #      24.04.2008
00007  #
00008  # --------------------------------------------------------------------------------*/
00009 
00010 /*
00011 * Kinematics library.
00012 *
00013 * General usage: kin_setType or (kin_setMDH and than kin_setImmob if needed,
00014 * kin_setEPC, kin_setEncOff, kin_setRotDir, kin_setAngOff and kin_setAngRan),
00015 * then kin_init, then use the conversion and kinematics functions.
00016 */
00017 
00018 #ifndef WIN32
00019 #define _declspec(dllexport) 
00020 #endif // ifndef WIN32
00021 
00022 extern "C"{
00023 
00024 
00026 
00028 const int MaxDof = 10;
00029 
00030 // This structure holds an int array including its length.
00031 typedef struct IntVector
00032 {
00033         int             length;
00034         int             data[MaxDof];
00035 } IntVector;
00036 // This structure holds a float array including its length.
00037 typedef struct FloatVector
00038 {
00039         int             length;
00040         float   data[MaxDof];
00041 } FloatVector;
00042 
00044 
00060 _declspec(dllexport) int kin_setType(int type);
00061 
00078 _declspec(dllexport) int kin_setMDH(FloatVector* theta, FloatVector* d,
00079                 FloatVector* a, FloatVector* alpha, int typeNr = -1);
00080 
00091 _declspec(dllexport) int kin_setLinkLen(FloatVector* links);
00092 
00102 _declspec(dllexport) int kin_setImmob(int immobile);
00103 
00112 _declspec(dllexport) int kin_setEPC(IntVector* epc);
00113 
00122 _declspec(dllexport) int kin_setEncOff(IntVector* encOffset);
00123 
00134 _declspec(dllexport) int kin_setRotDir(IntVector* rotDir);
00135 
00144 _declspec(dllexport) int kin_setAngOff(FloatVector* angleOffset);
00145 
00155 _declspec(dllexport) int kin_setAngRan(FloatVector* angleRange);
00156 
00165 _declspec(dllexport) int kin_setTcpOff(FloatVector* tcpOffset);
00166 
00168 
00176 _declspec(dllexport) int kin_getType();
00177 
00184 _declspec(dllexport) int kin_getMaxDOF();
00185 
00192 _declspec(dllexport) int kin_getDOF();
00193 
00200 _declspec(dllexport) int kin_getDOM();
00201 
00211 _declspec(dllexport) int kin_getMDH(FloatVector* theta, FloatVector* d,
00212                 FloatVector* a, FloatVector* alpha);
00213 
00218 _declspec(dllexport) int kin_getImmob();
00219 
00225 _declspec(dllexport) int kin_getEPC(IntVector* epc);
00226 
00232 _declspec(dllexport) int kin_getEncOff(IntVector* encOffset);
00233 
00239 _declspec(dllexport) int kin_getRotDir(IntVector* rotDir);
00240 
00247 _declspec(dllexport) int kin_getAngOff(FloatVector* angleOffset);
00248 
00255 _declspec(dllexport) int kin_getAngRan(FloatVector* angleRange);
00256 
00262 _declspec(dllexport) int kin_getTcpOff(FloatVector* tcpOffset);
00263 
00269 _declspec(dllexport) int kin_getVersion(IntVector* version);
00270 
00272 
00281 _declspec(dllexport) int kin_init();
00282 
00284 
00291 _declspec(dllexport) int kin_clean();
00292 
00294 
00303 _declspec(dllexport) int kin_K4D2mDHAng(FloatVector* angleK4D, FloatVector* angleMDH);
00304 
00313 _declspec(dllexport) int kin_mDH2K4DAng(FloatVector* angleMDH, FloatVector* angleK4D);
00314 
00323 _declspec(dllexport) int kin_enc2rad(IntVector* enc, FloatVector* angle);
00324 
00333 _declspec(dllexport) int kin_rad2enc(FloatVector* angle, IntVector* enc);
00334 
00343 _declspec(dllexport) int kin_DK(FloatVector* angle, FloatVector* pose);
00344 
00355 _declspec(dllexport) int kin_IK(FloatVector* pose, FloatVector* prev,
00356                 FloatVector* angle, int maxBisection = 0);
00357 
00358 } // extern c
00359 
00360 
00361 


kni
Author(s): Neuronics AG (see AUTHORS.txt); ROS wrapper by Martin Günther
autogenerated on Mon Oct 6 2014 10:45:33