#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 | |
struct | CheckValue< T > |
class | IKSolver |
Macros | |
#define | __PRETTY_FUNCTION__ __func__ |
#define | IK2PI ((IkReal)6.28318530717959) |
#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)1e-7) |
#define | IKFAST_COMPILE_ASSERT(x) extern int __dummy[(int)x] |
#define | IKFAST_EVALCOND_THRESH ((IkReal)0.00001) |
#define | IKFAST_HAS_LIBRARY |
#define | IKFAST_SINCOS_THRESH ((IkReal)1e-7) |
#define | IKFAST_SOLUTION_THRESH ((IkReal)1e-6) |
#define | IKPI ((IkReal)3.14159265358979) |
#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) |
IKFAST_API bool | ComputeIk2 (const IkReal *eetrans, const IkReal *eerot, const IkReal *pfree, IkSolutionListBase< IkReal > &solutions, void *pOpenRAVEManip) |
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 | IKatan2Simple (float fy, float fx) |
double | IKatan2Simple (double fy, double fx) |
template<typename T > | |
CheckValue< T > | IKatan2WithCheck (T fy, T fx, T epsilon) |
float | IKcos (float f) |
double | IKcos (double f) |
IKFAST_COMPILE_ASSERT (IKFAST_VERSION==0x1000004a) | |
float | IKfmod (float x, float y) |
double | IKfmod (double x, double y) |
float | IKlog (float f) |
double | IKlog (double f) |
template<typename T > | |
CheckValue< T > | IKPowWithIntegerCheck (T f, int n) |
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__ |
Definition at line 47 of file ikfast.cpp.
#define IK2PI ((IkReal)6.28318530717959) |
Definition at line 60 of file ikfast.cpp.
Definition at line 57 of file ikfast.cpp.
#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()); } } |
Definition at line 50 of file ikfast.cpp.
#define IKFAST_ATAN2_MAGTHRESH ((IkReal)1e-7) |
Definition at line 108 of file ikfast.cpp.
Definition at line 26 of file ikfast.cpp.
#define IKFAST_EVALCOND_THRESH ((IkReal)0.00001) |
Definition at line 118 of file ikfast.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 0x1000004a generated on 2018-03-20 15:59:06.827909 Generated using solver transform6d 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 21 of file ikfast.cpp.
#define IKFAST_SINCOS_THRESH ((IkReal)1e-7) |
Definition at line 103 of file ikfast.cpp.
#define IKFAST_SOLUTION_THRESH ((IkReal)1e-6) |
Definition at line 113 of file ikfast.cpp.
#define IKPI ((IkReal)3.14159265358979) |
Definition at line 61 of file ikfast.cpp.
#define IKPI_2 ((IkReal)1.57079632679490) |
Definition at line 62 of file ikfast.cpp.
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 300 of file ikfast.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 14605 of file ikfast.cpp.
IKFAST_API bool ComputeIk2 | ( | const IkReal * | eetrans, |
const IkReal * | eerot, | ||
const IkReal * | pfree, | ||
IkSolutionListBase< IkReal > & | solutions, | ||
void * | pOpenRAVEManip | ||
) |
Definition at line 14610 of file ikfast.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 368 of file ikfast.cpp.
IKFAST_API const char* GetIkFastVersion | ( | ) |
Definition at line 14617 of file ikfast.cpp.
IKFAST_API int GetIkRealSize | ( | ) |
Definition at line 371 of file ikfast.cpp.
IKFAST_API int GetIkType | ( | ) |
Definition at line 373 of file ikfast.cpp.
IKFAST_API const char* GetKinematicsHash | ( | ) |
Definition at line 14615 of file ikfast.cpp.
IKFAST_API int GetNumFreeParameters | ( | ) |
Definition at line 367 of file ikfast.cpp.
IKFAST_API int GetNumJoints | ( | ) |
Definition at line 369 of file ikfast.cpp.
|
inline |
Definition at line 92 of file ikfast.cpp.
|
inline |
Definition at line 93 of file ikfast.cpp.
|
inline |
Definition at line 155 of file ikfast.cpp.
|
inline |
Definition at line 162 of file ikfast.cpp.
|
inline |
Definition at line 122 of file ikfast.cpp.
|
inline |
Definition at line 129 of file ikfast.cpp.
|
inline |
Definition at line 180 of file ikfast.cpp.
|
inline |
Definition at line 193 of file ikfast.cpp.
|
inline |
Definition at line 177 of file ikfast.cpp.
|
inline |
Definition at line 190 of file ikfast.cpp.
|
inline |
Definition at line 212 of file ikfast.cpp.
|
inline |
Definition at line 171 of file ikfast.cpp.
|
inline |
Definition at line 172 of file ikfast.cpp.
IKFAST_COMPILE_ASSERT | ( | IKFAST_VERSION | = =0x1000004a | ) |
|
inline |
Definition at line 138 of file ikfast.cpp.
|
inline |
Definition at line 147 of file ikfast.cpp.
|
inline |
Definition at line 98 of file ikfast.cpp.
|
inline |
Definition at line 99 of file ikfast.cpp.
|
inline |
Definition at line 247 of file ikfast.cpp.
|
inline |
Definition at line 226 of file ikfast.cpp.
|
inline |
Definition at line 236 of file ikfast.cpp.
|
inline |
Definition at line 169 of file ikfast.cpp.
|
inline |
Definition at line 170 of file ikfast.cpp.
|
inline |
Definition at line 95 of file ikfast.cpp.
|
inline |
Definition at line 96 of file ikfast.cpp.
|
inline |
Definition at line 175 of file ikfast.cpp.
|
inline |
Definition at line 176 of file ikfast.cpp.
|
inline |
Definition at line 173 of file ikfast.cpp.
|
inline |
Definition at line 174 of file ikfast.cpp.
int main | ( | int | argc, |
char ** | argv | ||
) |
Definition at line 14629 of file ikfast.cpp.
void zgetrf_ | ( | const int * | m, |
const int * | n, | ||
std::complex< double > * | a, | ||
const int * | lda, | ||
int * | ipiv, | ||
int * | info | ||
) |