- 3.0.2 models module.
|
#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>
Classes | |
struct | CheckValue< T > |
class | IKSolver |
Macros | |
#define | IKFAST_HAS_LIBRARY |
#define | IKFAST_COMPILE_ASSERT(x) extern int __dummy[(int)x] |
#define | __PRETTY_FUNCTION__ __func__ |
#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_ALIGNED16(x) x __attribute((aligned(16))) |
#define | IK2PI ((IkReal)6.28318530717959) |
#define | IKPI ((IkReal)3.14159265358979) |
#define | IKPI_2 ((IkReal)1.57079632679490) |
#define | IKFAST_SINCOS_THRESH ((IkReal)1e-7) |
#define | IKFAST_ATAN2_MAGTHRESH ((IkReal)1e-7) |
#define | IKFAST_SOLUTION_THRESH ((IkReal)1e-6) |
#define | IKFAST_EVALCOND_THRESH ((IkReal)0.00001) |
Functions | |
IKFAST_COMPILE_ASSERT (IKFAST_VERSION==0x1000004a) | |
void | dgetrf_ (const int *m, const int *n, double *a, const int *lda, int *ipiv, int *info) |
void | zgetrf_ (const int *m, const int *n, std::complex< 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 | dgesv_ (const int *n, const int *nrhs, double *a, const int *lda, int *ipiv, double *b, const int *ldb, 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) |
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) |
float | IKabs (float f) |
double | IKabs (double f) |
float | IKsqr (float f) |
double | IKsqr (double f) |
float | IKlog (float f) |
double | IKlog (double f) |
float | IKasin (float f) |
double | IKasin (double f) |
float | IKfmod (float x, float y) |
double | IKfmod (double x, double y) |
float | IKacos (float f) |
double | IKacos (double f) |
float | IKsin (float f) |
double | IKsin (double f) |
float | IKcos (float f) |
double | IKcos (double f) |
float | IKtan (float f) |
double | IKtan (double f) |
float | IKsqrt (float f) |
double | IKsqrt (double f) |
float | IKatan2Simple (float fy, float fx) |
float | IKatan2 (float fy, float fx) |
double | IKatan2Simple (double fy, double fx) |
double | IKatan2 (double fy, double fx) |
template<typename T > | |
CheckValue< T > | IKatan2WithCheck (T fy, T fx, T epsilon) |
float | IKsign (float f) |
double | IKsign (double f) |
template<typename T > | |
CheckValue< T > | IKPowWithIntegerCheck (T f, int n) |
IKFAST_API void | ComputeFk (const IkReal *j, IkReal *eetrans, IkReal *eerot) |
IKFAST_API int | GetNumFreeParameters () |
IKFAST_API int * | GetFreeParameters () |
IKFAST_API int | GetNumJoints () |
IKFAST_API int | GetIkRealSize () |
IKFAST_API int | GetIkType () |
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) |
IKFAST_API const char * | GetKinematicsHash () |
IKFAST_API const char * | GetIkFastVersion () |
int | main (int argc, char **argv) |
#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 2017-12-12 14:08:54.348797 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
#define __PRETTY_FUNCTION__ __func__ |
#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()); } } |
Referenced by IKacos(), IKasin(), IKatan2(), IKSolver::polyroots3(), and IKSolver::polyroots4().
#define IK2PI ((IkReal)6.28318530717959) |
Referenced by IKSolver::ComputeIk(), and IKSolver::rotationfunction0().
#define IKPI ((IkReal)3.14159265358979) |
Referenced by IKSolver::ComputeIk(), IKacos(), and IKSolver::rotationfunction0().
#define IKFAST_SINCOS_THRESH ((IkReal)1e-7) |
Referenced by IKSolver::ComputeIk(), IKacos(), IKasin(), and IKSolver::rotationfunction0().
#define IKFAST_ATAN2_MAGTHRESH ((IkReal)1e-7) |
Referenced by IKSolver::ComputeIk(), IKatan2WithCheck(), and IKSolver::rotationfunction0().
#define IKFAST_SOLUTION_THRESH ((IkReal)1e-6) |
Referenced by IKSolver::ComputeIk(), and IKSolver::rotationfunction0().
#define IKFAST_EVALCOND_THRESH ((IkReal)0.00001) |
Referenced by IKSolver::ComputeIk(), and IKSolver::rotationfunction0().
IKFAST_COMPILE_ASSERT | ( | IKFAST_VERSION | = =0x1000004a | ) |
void dgetrf_ | ( | const int * | m, |
const int * | n, | ||
double * | a, | ||
const int * | lda, | ||
int * | ipiv, | ||
int * | info | ||
) |
void zgetrf_ | ( | const int * | m, |
const int * | n, | ||
std::complex< 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 dgesv_ | ( | const int * | n, |
const int * | nrhs, | ||
double * | a, | ||
const int * | lda, | ||
int * | ipiv, | ||
double * | b, | ||
const int * | ldb, | ||
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 | ||
) |
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 | ||
) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
References IKFAST_ASSERT, IKFAST_SINCOS_THRESH, and IKPI_2.
|
inline |
References IKFAST_ASSERT, IKFAST_SINCOS_THRESH, and IKPI_2.
|
inline |
|
inline |
|
inline |
References IKFAST_ASSERT, IKFAST_SINCOS_THRESH, and IKPI.
|
inline |
References IKFAST_ASSERT, IKFAST_SINCOS_THRESH, and IKPI.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
References IKFAST_ASSERT, and IKPI_2.
|
inline |
|
inline |
References IKFAST_ASSERT, and IKPI_2.
|
inline |
References IKabs(), IKatan2Simple(), IKFAST_ATAN2_MAGTHRESH, CheckValue< T >::valid, and CheckValue< T >::value.
|
inline |
|
inline |
|
inline |
References CheckValue< T >::valid, and CheckValue< T >::value.
IKFAST_API void ComputeFk | ( | const IkReal * | j, |
IkReal * | eetrans, | ||
IkReal * | eerot | ||
) |
IKFAST_API int GetNumFreeParameters | ( | ) |
IKFAST_API int* GetFreeParameters | ( | ) |
IKFAST_API int GetNumJoints | ( | ) |
IKFAST_API int GetIkRealSize | ( | ) |
IKFAST_API int GetIkType | ( | ) |
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. |
References IKSolver::ComputeIk().
IKFAST_API bool ComputeIk2 | ( | const IkReal * | eetrans, |
const IkReal * | eerot, | ||
const IkReal * | pfree, | ||
IkSolutionListBase< IkReal > & | solutions, | ||
void * | pOpenRAVEManip | ||
) |
References IKSolver::ComputeIk().
IKFAST_API const char* GetKinematicsHash | ( | ) |
IKFAST_API const char* GetIkFastVersion | ( | ) |
References IKFAST_NAMESPACE.
int main | ( | int | argc, |
char ** | argv | ||
) |