moveit2
The MoveIt Motion Planning Framework for ROS 2.
Loading...
Searching...
No Matches
prbt_manipulator_ikfast_solver.cpp File Reference
#include "ikfast.h"
#include <cmath>
#include <vector>
#include <limits>
#include <complex>
#include <stdexcept>
#include <sstream>
#include <stdio.h>
#include <stdlib.h>
Include dependency graph for prbt_manipulator_ikfast_solver.cpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  CheckValue< T >
class  IKSolver

Macros

#define IKFAST_HAS_LIBRARY
#define __PRETTY_FUNCTION__   __func__
#define IKFAST_ASSERT(b)
#define IKFAST_ALIGNED16(x)
#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

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)
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 *)
IKFAST_API const char * GetKinematicsHash ()
IKFAST_API const char * GetIkFastVersion ()
int main (int argc, char **argv)

Macro Definition Documentation

◆ __PRETTY_FUNCTION__

#define __PRETTY_FUNCTION__   __func__

Definition at line 48 of file prbt_manipulator_ikfast_moveit_plugin.cpp.

◆ IK2PI

#define IK2PI   ((IkReal)6.28318530717959)

Definition at line 61 of file prbt_manipulator_ikfast_moveit_plugin.cpp.

◆ IKFAST_ALIGNED16

#define IKFAST_ALIGNED16 ( x)
Value:
x __attribute((aligned(16)))

Definition at line 58 of file prbt_manipulator_ikfast_moveit_plugin.cpp.

◆ IKFAST_ASSERT

#define IKFAST_ASSERT ( b)
Value:
{ if( !(b) ) { std::stringstream ss; ss << "ikfast exception: " << __FILE__ << ':' << __LINE__ << ": " <<__PRETTY_FUNCTION__ << ": Assertion '" << #b << "' failed"; throw std::runtime_error(ss.str()); } }
#define __PRETTY_FUNCTION__

Definition at line 51 of file prbt_manipulator_ikfast_moveit_plugin.cpp.

◆ IKFAST_ATAN2_MAGTHRESH

#define IKFAST_ATAN2_MAGTHRESH   ((IkReal)1e-7)

Definition at line 99 of file prbt_manipulator_ikfast_moveit_plugin.cpp.

◆ IKFAST_EVALCOND_THRESH

#define IKFAST_EVALCOND_THRESH   ((IkReal)0.00001)

Definition at line 109 of file prbt_manipulator_ikfast_moveit_plugin.cpp.

◆ IKFAST_HAS_LIBRARY

#define IKFAST_HAS_LIBRARY

Modifications by Pilz GmbH & Co. KG Copyright (c) 2018 Pilz GmbH & Co. KG

autogenerated analytical inverse kinematics code from ikfast program part of OpenRAVE

Author
Rosen Diankov

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-02-13 15:06:40.059924 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 25 of file prbt_manipulator_ikfast_moveit_plugin.cpp.

◆ IKFAST_SINCOS_THRESH

#define IKFAST_SINCOS_THRESH   ((IkReal)1e-7)

Definition at line 94 of file prbt_manipulator_ikfast_moveit_plugin.cpp.

◆ IKFAST_SOLUTION_THRESH

#define IKFAST_SOLUTION_THRESH   ((IkReal)1e-6)

Definition at line 104 of file prbt_manipulator_ikfast_moveit_plugin.cpp.

◆ IKPI

#define IKPI   ((IkReal)3.14159265358979)

Definition at line 62 of file prbt_manipulator_ikfast_moveit_plugin.cpp.

◆ IKPI_2

#define IKPI_2   ((IkReal)1.57079632679490)

Definition at line 63 of file prbt_manipulator_ikfast_moveit_plugin.cpp.

Function Documentation

◆ ComputeFk()

IKFAST_API void ComputeFk ( const IkReal * j,
IkReal * eetrans,
IkReal * eerot )

solves the forward kinematics equations.

Parameters
pfreeis an array specifying the free joints of the chain.

Definition at line 290 of file prbt_manipulator_ikfast_solver.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ComputeIk()

IKFAST_API bool ComputeIk ( const IkReal * eetrans,
const IkReal * eerot,
const IkReal * pfree,
IkSolutionListBase< IkReal > & solutions )

solves the inverse kinematics equations.

Parameters
pfreeis an array specifying the free joints of the chain.

Definition at line 20051 of file prbt_manipulator_ikfast_solver.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ComputeIk2()

IKFAST_API bool ComputeIk2 ( const IkReal * eetrans,
const IkReal * eerot,
const IkReal * pfree,
IkSolutionListBase< IkReal > & solutions,
void *  )

Definition at line 20056 of file prbt_manipulator_ikfast_solver.cpp.

Here is the call graph for this function:

◆ GetFreeParameters()

IKFAST_API int * GetFreeParameters ( )

Definition at line 356 of file prbt_manipulator_ikfast_solver.cpp.

◆ GetIkFastVersion()

IKFAST_API const char * GetIkFastVersion ( )

Definition at line 20063 of file prbt_manipulator_ikfast_solver.cpp.

◆ GetIkRealSize()

IKFAST_API int GetIkRealSize ( )

Definition at line 359 of file prbt_manipulator_ikfast_solver.cpp.

◆ GetIkType()

IKFAST_API int GetIkType ( )

Definition at line 361 of file prbt_manipulator_ikfast_solver.cpp.

Here is the caller graph for this function:

◆ GetKinematicsHash()

IKFAST_API const char * GetKinematicsHash ( )

Definition at line 20061 of file prbt_manipulator_ikfast_solver.cpp.

◆ GetNumFreeParameters()

IKFAST_API int GetNumFreeParameters ( )

Definition at line 355 of file prbt_manipulator_ikfast_solver.cpp.

Here is the caller graph for this function:

◆ GetNumJoints()

IKFAST_API int GetNumJoints ( )

Definition at line 357 of file prbt_manipulator_ikfast_solver.cpp.

Here is the caller graph for this function:

◆ IKabs() [1/2]

double IKabs ( double f)
inline

Definition at line 83 of file prbt_manipulator_ikfast_solver.cpp.

◆ IKabs() [2/2]

float IKabs ( float f)
inline

Definition at line 82 of file prbt_manipulator_ikfast_solver.cpp.

Here is the caller graph for this function:

◆ IKacos() [1/2]

double IKacos ( double f)
inline

Definition at line 152 of file prbt_manipulator_ikfast_solver.cpp.

◆ IKacos() [2/2]

float IKacos ( float f)
inline

Definition at line 145 of file prbt_manipulator_ikfast_solver.cpp.

Here is the caller graph for this function:

◆ IKasin() [1/2]

double IKasin ( double f)
inline

Definition at line 119 of file prbt_manipulator_ikfast_solver.cpp.

◆ IKasin() [2/2]

float IKasin ( float f)
inline

Definition at line 112 of file prbt_manipulator_ikfast_solver.cpp.

Here is the caller graph for this function:

◆ IKatan2() [1/2]

double IKatan2 ( double fy,
double fx )
inline

Definition at line 183 of file prbt_manipulator_ikfast_solver.cpp.

◆ IKatan2() [2/2]

float IKatan2 ( float fy,
float fx )
inline

Definition at line 170 of file prbt_manipulator_ikfast_solver.cpp.

Here is the caller graph for this function:

◆ IKatan2Simple() [1/2]

double IKatan2Simple ( double fy,
double fx )
inline

Definition at line 180 of file prbt_manipulator_ikfast_solver.cpp.

◆ IKatan2Simple() [2/2]

float IKatan2Simple ( float fy,
float fx )
inline

Definition at line 167 of file prbt_manipulator_ikfast_solver.cpp.

Here is the caller graph for this function:

◆ IKatan2WithCheck()

template<typename T>
CheckValue< T > IKatan2WithCheck ( T fy,
T fx,
T  )
inline

Definition at line 202 of file prbt_manipulator_ikfast_solver.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IKcos() [1/2]

double IKcos ( double f)
inline

Definition at line 162 of file prbt_manipulator_ikfast_solver.cpp.

◆ IKcos() [2/2]

float IKcos ( float f)
inline

Definition at line 161 of file prbt_manipulator_ikfast_solver.cpp.

Here is the caller graph for this function:

◆ IKfmod() [1/2]

double IKfmod ( double x,
double y )
inline

Definition at line 137 of file prbt_manipulator_ikfast_solver.cpp.

◆ IKfmod() [2/2]

float IKfmod ( float x,
float y )
inline

Definition at line 128 of file prbt_manipulator_ikfast_solver.cpp.

Here is the caller graph for this function:

◆ IKlog() [1/2]

double IKlog ( double f)
inline

Definition at line 89 of file prbt_manipulator_ikfast_solver.cpp.

◆ IKlog() [2/2]

float IKlog ( float f)
inline

Definition at line 88 of file prbt_manipulator_ikfast_solver.cpp.

◆ IKPowWithIntegerCheck()

template<typename T>
CheckValue< T > IKPowWithIntegerCheck ( T f,
int n )
inline

Definition at line 237 of file prbt_manipulator_ikfast_solver.cpp.

Here is the caller graph for this function:

◆ IKsign() [1/2]

double IKsign ( double f)
inline

Definition at line 226 of file prbt_manipulator_ikfast_solver.cpp.

◆ IKsign() [2/2]

float IKsign ( float f)
inline

Definition at line 216 of file prbt_manipulator_ikfast_solver.cpp.

Here is the caller graph for this function:

◆ IKsin() [1/2]

double IKsin ( double f)
inline

Definition at line 160 of file prbt_manipulator_ikfast_solver.cpp.

◆ IKsin() [2/2]

float IKsin ( float f)
inline

Definition at line 159 of file prbt_manipulator_ikfast_solver.cpp.

Here is the caller graph for this function:

◆ IKsqr() [1/2]

double IKsqr ( double f)
inline

Definition at line 86 of file prbt_manipulator_ikfast_solver.cpp.

◆ IKsqr() [2/2]

float IKsqr ( float f)
inline

Definition at line 85 of file prbt_manipulator_ikfast_solver.cpp.

Here is the caller graph for this function:

◆ IKsqrt() [1/2]

double IKsqrt ( double f)
inline

Definition at line 166 of file prbt_manipulator_ikfast_solver.cpp.

◆ IKsqrt() [2/2]

float IKsqrt ( float f)
inline

Definition at line 165 of file prbt_manipulator_ikfast_solver.cpp.

Here is the caller graph for this function:

◆ IKtan() [1/2]

double IKtan ( double f)
inline

Definition at line 164 of file prbt_manipulator_ikfast_solver.cpp.

◆ IKtan() [2/2]

float IKtan ( float f)
inline

Definition at line 163 of file prbt_manipulator_ikfast_solver.cpp.

Here is the caller graph for this function:

◆ main()

int main ( int argc,
char ** argv )

Definition at line 20075 of file prbt_manipulator_ikfast_solver.cpp.

Here is the call graph for this function: