#include "ikfast.h"
#include <cmath>
#include <vector>
#include <limits>
#include <algorithm>
#include <complex>
#include <stdexcept>
#include <sstream>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
Go to the source code of this file.
Classes | |
class | IKSolver |
Defines | |
#define | __PRETTY_FUNCTION__ __func__ |
#define | IK2PI ((IkReal)6.28318530717959) |
#define | IK2PI ((IkReal)6.28318530717959) |
#define | IKFAST_ALIGNED16(x) x __attribute((aligned(16))) |
#define | IKFAST_ALIGNED16(x) x __attribute((aligned(16))) |
#define | IKFAST_ASSERT(b) { if( !(b) ) { std::stringstream ss; ss << "ikfast exception: " << __FILE__ << ":" << __LINE__ << ": " <<__PRETTY_FUNCTION__ << ": Assertion '" << #b << "' failed"; throw std::runtime_error(ss.str()); } } |
#define | IKFAST_ATAN2_MAGTHRESH ((IkReal)2e-6) |
#define | IKFAST_COMPILE_ASSERT(x) extern int __dummy[(int)x] |
#define | IKFAST_COMPILE_ASSERT(x) extern int __dummy[(int)x] |
#define | IKFAST_HAS_LIBRARY |
#define | IKFAST_HAS_LIBRARY |
#define | IKFAST_SINCOS_THRESH ((IkReal)0.000001) |
#define | IKFAST_SOLUTION_THRESH ((IkReal)1e-6) |
#define | IKFAST_STRINGIZE(s) IKFAST_STRINGIZE2(s) |
#define | IKFAST_STRINGIZE(s) IKFAST_STRINGIZE2(s) |
#define | IKFAST_STRINGIZE2(s) #s |
#define | IKFAST_STRINGIZE2(s) #s |
#define | IKPI ((IkReal)3.14159265358979) |
#define | IKPI ((IkReal)3.14159265358979) |
#define | IKPI_2 ((IkReal)1.57079632679490) |
#define | IKPI_2 ((IkReal)1.57079632679490) |
Functions | |
IKFAST_API void | ComputeFk (const IkReal *j, IkReal *eetrans, IkReal *eerot) |
IKFAST_API bool | ComputeIk (const IkReal *eetrans, const IkReal *eerot, const IkReal *pfree, IkSolutionListBase< IkReal > &solutions) |
void | dgeev_ (const char *jobvl, const char *jobvr, const int *n, double *a, const int *lda, double *wr, double *wi, double *vl, const int *ldvl, double *vr, const int *ldvr, double *work, const int *lwork, int *info) |
void | dgesv_ (const int *n, const int *nrhs, double *a, const int *lda, int *ipiv, double *b, const int *ldb, int *info) |
void | dgetrf_ (const int *m, const int *n, double *a, const int *lda, int *ipiv, int *info) |
void | dgetri_ (const int *n, const double *a, const int *lda, int *ipiv, double *work, const int *lwork, int *info) |
void | dgetrs_ (const char *trans, const int *n, const int *nrhs, double *a, const int *lda, int *ipiv, double *b, const int *ldb, int *info) |
IKFAST_API int * | GetFreeParameters () |
IKFAST_API const char * | GetIkFastVersion () |
IKFAST_API int | GetIkRealSize () |
IKFAST_API int | GetIkType () |
IKFAST_API const char * | GetKinematicsHash () |
IKFAST_API int | GetNumFreeParameters () |
IKFAST_API int | GetNumJoints () |
float | IKabs (float f) |
double | IKabs (double f) |
float | IKacos (float f) |
double | IKacos (double f) |
float | IKasin (float f) |
double | IKasin (double f) |
float | IKatan2 (float fy, float fx) |
double | IKatan2 (double fy, double fx) |
float | IKcos (float f) |
double | IKcos (double f) |
IKFAST_COMPILE_ASSERT (IKFAST_VERSION==61) | |
float | IKfmod (float x, float y) |
double | IKfmod (double x, double y) |
float | IKlog (float f) |
double | IKlog (double f) |
float | IKsign (float f) |
double | IKsign (double f) |
float | IKsin (float f) |
double | IKsin (double f) |
float | IKsqr (float f) |
double | IKsqr (double f) |
float | IKsqrt (float f) |
double | IKsqrt (double f) |
float | IKtan (float f) |
double | IKtan (double f) |
int | main (int argc, char **argv) |
void | zgetrf_ (const int *m, const int *n, std::complex< double > *a, const int *lda, int *ipiv, int *info) |
#define __PRETTY_FUNCTION__ __func__ |
#define IK2PI ((IkReal)6.28318530717959) |
#define IK2PI ((IkReal)6.28318530717959) |
Definition at line 62 of file katana_450_6m90a_ikfast_solver.cpp.
#define IKFAST_ALIGNED16 | ( | x | ) | x __attribute((aligned(16))) |
Definition at line 59 of file katana_450_6m90a_ikfast_solver.cpp.
#define IKFAST_ALIGNED16 | ( | x | ) | x __attribute((aligned(16))) |
#define IKFAST_ASSERT | ( | b | ) | { if( !(b) ) { std::stringstream ss; ss << "ikfast exception: " << __FILE__ << ":" << __LINE__ << ": " <<__PRETTY_FUNCTION__ << ": Assertion '" << #b << "' failed"; throw std::runtime_error(ss.str()); } } |
#define IKFAST_ATAN2_MAGTHRESH ((IkReal)2e-6) |
#define IKFAST_COMPILE_ASSERT | ( | x | ) | extern int __dummy[(int)x] |
#define IKFAST_COMPILE_ASSERT | ( | x | ) | extern int __dummy[(int)x] |
Definition at line 25 of file katana_450_6m90a_ikfast_solver.cpp.
#define IKFAST_HAS_LIBRARY |
Definition at line 67 of file katana_450_6m90a_ikfast_plugin.cpp.
#define IKFAST_HAS_LIBRARY |
autogenerated analytical inverse kinematics code from ikfast program part of OpenRAVE
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
ikfast version 61 generated on 2013-06-28 15:11:30.888996 To compile with gcc: gcc -lstdc++ ik.cpp To compile without any main function as a shared object (might need -llapack): gcc -fPIC -lstdc++ -DIKFAST_NO_MAIN -DIKFAST_CLIBRARY -shared -Wl,-soname,libik.so -o libik.so ik.cpp
Definition at line 20 of file katana_450_6m90a_ikfast_solver.cpp.
#define IKFAST_SINCOS_THRESH ((IkReal)0.000001) |
#define IKFAST_SOLUTION_THRESH ((IkReal)1e-6) |
#define IKFAST_STRINGIZE | ( | s | ) | IKFAST_STRINGIZE2(s) |
#define IKFAST_STRINGIZE | ( | s | ) | IKFAST_STRINGIZE2(s) |
Definition at line 35 of file katana_450_6m90a_ikfast_solver.cpp.
#define IKFAST_STRINGIZE2 | ( | s | ) | #s |
Definition at line 34 of file katana_450_6m90a_ikfast_solver.cpp.
#define IKFAST_STRINGIZE2 | ( | s | ) | #s |
#define IKPI ((IkReal)3.14159265358979) |
Definition at line 63 of file katana_450_6m90a_ikfast_solver.cpp.
#define IKPI ((IkReal)3.14159265358979) |
#define IKPI_2 ((IkReal)1.57079632679490) |
Definition at line 64 of file katana_450_6m90a_ikfast_solver.cpp.
#define IKPI_2 ((IkReal)1.57079632679490) |
IKFAST_API void ComputeFk | ( | const IkReal * | j, |
IkReal * | eetrans, | ||
IkReal * | eerot | ||
) |
solves the forward kinematics equations.
pfree | is an array specifying the free joints of the chain. |
Definition at line 210 of file katana_450_6m90a_ikfast_solver.cpp.
IKFAST_API bool ComputeIk | ( | const IkReal * | eetrans, |
const IkReal * | eerot, | ||
const IkReal * | pfree, | ||
IkSolutionListBase< IkReal > & | solutions | ||
) |
solves the inverse kinematics equations.
pfree | is an array specifying the free joints of the chain. |
Definition at line 1471 of file katana_450_6m90a_ikfast_solver.cpp.
void dgeev_ | ( | const char * | jobvl, |
const char * | jobvr, | ||
const int * | n, | ||
double * | a, | ||
const int * | lda, | ||
double * | wr, | ||
double * | wi, | ||
double * | vl, | ||
const int * | ldvl, | ||
double * | vr, | ||
const int * | ldvr, | ||
double * | work, | ||
const int * | lwork, | ||
int * | info | ||
) |
void dgesv_ | ( | const int * | n, |
const int * | nrhs, | ||
double * | a, | ||
const int * | lda, | ||
int * | ipiv, | ||
double * | b, | ||
const int * | ldb, | ||
int * | info | ||
) |
void dgetrf_ | ( | const int * | m, |
const int * | n, | ||
double * | a, | ||
const int * | lda, | ||
int * | ipiv, | ||
int * | info | ||
) |
void dgetri_ | ( | const int * | n, |
const double * | a, | ||
const int * | lda, | ||
int * | ipiv, | ||
double * | work, | ||
const int * | lwork, | ||
int * | info | ||
) |
void dgetrs_ | ( | const char * | trans, |
const int * | n, | ||
const int * | nrhs, | ||
double * | a, | ||
const int * | lda, | ||
int * | ipiv, | ||
double * | b, | ||
const int * | ldb, | ||
int * | info | ||
) |
IKFAST_API int* GetFreeParameters | ( | ) |
Definition at line 253 of file katana_450_6m90a_ikfast_solver.cpp.
IKFAST_API const char* GetIkFastVersion | ( | ) |
Definition at line 1478 of file katana_450_6m90a_ikfast_solver.cpp.
IKFAST_API int GetIkRealSize | ( | ) |
Definition at line 256 of file katana_450_6m90a_ikfast_solver.cpp.
IKFAST_API int GetIkType | ( | ) |
Definition at line 258 of file katana_450_6m90a_ikfast_solver.cpp.
IKFAST_API const char* GetKinematicsHash | ( | ) |
Definition at line 1476 of file katana_450_6m90a_ikfast_solver.cpp.
IKFAST_API int GetNumFreeParameters | ( | ) |
Definition at line 252 of file katana_450_6m90a_ikfast_solver.cpp.
IKFAST_API int GetNumJoints | ( | ) |
Definition at line 254 of file katana_450_6m90a_ikfast_solver.cpp.
float IKabs | ( | float | f | ) | [inline] |
Definition at line 88 of file katana_450_6m90a_ikfast_solver.cpp.
double IKabs | ( | double | f | ) | [inline] |
Definition at line 89 of file katana_450_6m90a_ikfast_solver.cpp.
float IKacos | ( | float | f | ) | [inline] |
Definition at line 145 of file katana_450_6m90a_ikfast_solver.cpp.
double IKacos | ( | double | f | ) | [inline] |
Definition at line 152 of file katana_450_6m90a_ikfast_solver.cpp.
float IKasin | ( | float | f | ) | [inline] |
Definition at line 112 of file katana_450_6m90a_ikfast_solver.cpp.
double IKasin | ( | double | f | ) | [inline] |
Definition at line 119 of file katana_450_6m90a_ikfast_solver.cpp.
float IKatan2 | ( | float | fy, |
float | fx | ||
) | [inline] |
Definition at line 167 of file katana_450_6m90a_ikfast_solver.cpp.
double IKatan2 | ( | double | fy, |
double | fx | ||
) | [inline] |
Definition at line 177 of file katana_450_6m90a_ikfast_solver.cpp.
float IKcos | ( | float | f | ) | [inline] |
Definition at line 161 of file katana_450_6m90a_ikfast_solver.cpp.
double IKcos | ( | double | f | ) | [inline] |
Definition at line 162 of file katana_450_6m90a_ikfast_solver.cpp.
IKFAST_COMPILE_ASSERT | ( | IKFAST_VERSION | = =61 | ) |
float IKfmod | ( | float | x, |
float | y | ||
) | [inline] |
Definition at line 128 of file katana_450_6m90a_ikfast_solver.cpp.
double IKfmod | ( | double | x, |
double | y | ||
) | [inline] |
Definition at line 137 of file katana_450_6m90a_ikfast_solver.cpp.
float IKlog | ( | float | f | ) | [inline] |
Definition at line 94 of file katana_450_6m90a_ikfast_solver.cpp.
double IKlog | ( | double | f | ) | [inline] |
Definition at line 95 of file katana_450_6m90a_ikfast_solver.cpp.
float IKsign | ( | float | f | ) | [inline] |
Definition at line 188 of file katana_450_6m90a_ikfast_solver.cpp.
double IKsign | ( | double | f | ) | [inline] |
Definition at line 198 of file katana_450_6m90a_ikfast_solver.cpp.
float IKsin | ( | float | f | ) | [inline] |
Definition at line 159 of file katana_450_6m90a_ikfast_solver.cpp.
double IKsin | ( | double | f | ) | [inline] |
Definition at line 160 of file katana_450_6m90a_ikfast_solver.cpp.
float IKsqr | ( | float | f | ) | [inline] |
Definition at line 91 of file katana_450_6m90a_ikfast_solver.cpp.
double IKsqr | ( | double | f | ) | [inline] |
Definition at line 92 of file katana_450_6m90a_ikfast_solver.cpp.
float IKsqrt | ( | float | f | ) | [inline] |
Definition at line 165 of file katana_450_6m90a_ikfast_solver.cpp.
double IKsqrt | ( | double | f | ) | [inline] |
Definition at line 166 of file katana_450_6m90a_ikfast_solver.cpp.
float IKtan | ( | float | f | ) | [inline] |
Definition at line 163 of file katana_450_6m90a_ikfast_solver.cpp.
double IKtan | ( | double | f | ) | [inline] |
Definition at line 164 of file katana_450_6m90a_ikfast_solver.cpp.
int main | ( | int | argc, |
char ** | argv | ||
) |
Definition at line 1490 of file katana_450_6m90a_ikfast_solver.cpp.
void zgetrf_ | ( | const int * | m, |
const int * | n, | ||
std::complex< double > * | a, | ||
const int * | lda, | ||
int * | ipiv, | ||
int * | info | ||
) |