RobWorkProject
24.5.15

Interface for closed form inverse kinematics algorithms. More...
#include <ClosedFormIK.hpp>
Inherits InvKinSolver.
Inherited by ClosedFormIKSolverKukaIIWA, ClosedFormIKSolverUR, and PieperSolver.
Public Types  
typedef rw::core::Ptr< ClosedFormIK >  Ptr 
smart pointer type to this class  
Public Types inherited from InvKinSolver  
typedef rw::core::Ptr< InvKinSolver >  Ptr 
smart pointer type to this class  
typedef rw::core::Ptr< const InvKinSolver >  CPtr 
smart pointer type to this const class  
Public Member Functions  
virtual  ~ClosedFormIK () 
Destructor.  
Public Member Functions inherited from InvKinSolver  
virtual  ~InvKinSolver () 
destructor  
virtual std::vector< math::Q >  solve (const rw::math::Transform3D< double > &baseTend, const rw::kinematics::State &state) const =0 
Calculates the inverse kinematics. More...  
virtual void  setCheckJointLimits (bool check)=0 
Specifies whether to check joint limits before returning a solution. More...  
virtual rw::core::Ptr< const rw::kinematics::Frame >  getTCP () const =0 
Returns the Tool Center Point (TCP) used when solving the IK problem. More...  
Static Public Member Functions  
static ClosedFormIK::Ptr  make (const rw::models::Device &device, const rw::kinematics::State &state) 
Closedform IK solver for a device. More...  
Protected Member Functions  
ClosedFormIK ()  
Constructor.  
Interface for closed form inverse kinematics algorithms.
The ClosedFormIK interface provides an interface for calculating the inverse kinematics of a device. That is to calculate the solutions \(\mathbf{q}_i, i=0,\ldots,\), such that \(\robabx{base}{end}{\mathbf{T}}(\mathbf{q}_i)= \robabx{}{desired}{\mathbf{T}}\).
By default it solves the problem beginning at the robot base and ending with the frame defined as the end of the devices, and which is accessible through the Device::getEnd() method.

static 
Closedform IK solver for a device.
The device must be a serial device with 6 revolute joints described by DH parameters.
The IK solver is currently implemented in terms of PieperSolver. See the documentation of PieperSolver for the specific requirements for the DH parameters.
An exception is thrown if closedform IK for the device is not supported, except that all such cases are currently not discovered. You should check for yourself that the closedform IK for the device is correct.