Loading...
Searching...
No Matches
PlanarManipulator Class Reference

Public Member Functions

 PlanarManipulator (unsigned int numLinks, double linkLength, const std::pair< double, double > &origin={0.0, 0.0})
 PlanarManipulator (unsigned int numLinks, const std::vector< double > &linkLengths, const std::pair< double, double > &origin={0.0, 0.0})
unsigned int getNumLinks () const
const Eigen::Affine2d & getBaseFrame () const
void setBaseFrame (const Eigen::Affine2d &frame)
const std::vector< double > & getLinkLengths () const
void setBounds (unsigned int link, double low, double high)
void setBounds (const std::vector< double > &low, const std::vector< double > &high)
bool hasBounds (unsigned int link) const
void getBounds (unsigned int link, double &low, double &high) const
const std::vector< double > & lowerBounds () const
const std::vector< double > & upperBounds () const
void FK (const double *joints, std::vector< Eigen::Affine2d > &frames) const
void FK (const std::vector< double > &joints, std::vector< Eigen::Affine2d > &frames) const
void FK (const Eigen::VectorXd &joints, std::vector< Eigen::Affine2d > &frames) const
void FK (const double *joints, Eigen::Affine2d &eeFrame) const
void FK (const std::vector< double > &joints, Eigen::Affine2d &eeFrame) const
void FK (const Eigen::VectorXd &joints, Eigen::Affine2d &eeFrame) const
bool IK (std::vector< double > &solution, const Eigen::Affine2d &eeFrame) const
bool IK (std::vector< double > &solution, const std::vector< double > &seed, const Eigen::Affine2d &desiredFrame) const
bool FABRIK (std::vector< double > &solution, const Eigen::Affine2d &eeFrame, double xyTol=1e-5, double thetaTol=1e-3) const
bool FABRIK (std::vector< double > &solution, const std::vector< double > &seed, const Eigen::Affine2d &desiredFrame, double xyTol=1e-5, double thetaTol=1e-3) const
void Jacobian (const std::vector< double > &joints, Eigen::MatrixXd &jac) const
void Jacobian (const Eigen::VectorXd &joints, Eigen::MatrixXd &jac) const
void Jacobian (const double *joints, Eigen::MatrixXd &jac) const

Static Public Member Functions

static void frameToPose (const Eigen::Affine2d &frame, Eigen::VectorXd &pose)

Protected Member Functions

bool infeasible (const Eigen::Affine2d &frame) const

Protected Attributes

unsigned int numLinks_
std::vector< double > linkLengths_
std::vector< bool > hasBounds_
std::vector< double > lowerBounds_
std::vector< double > upperBounds_
Eigen::Affine2d baseFrame_

Detailed Description

Definition at line 43 of file PlanarManipulator.h.

Constructor & Destructor Documentation

◆ PlanarManipulator() [1/2]

PlanarManipulator::PlanarManipulator ( unsigned int numLinks,
double linkLength,
const std::pair< double, double > & origin = {0.0, 0.0} )

Definition at line 45 of file PlanarManipulator.cpp.

◆ PlanarManipulator() [2/2]

PlanarManipulator::PlanarManipulator ( unsigned int numLinks,
const std::vector< double > & linkLengths,
const std::pair< double, double > & origin = {0.0, 0.0} )

Definition at line 57 of file PlanarManipulator.cpp.

◆ ~PlanarManipulator()

PlanarManipulator::~PlanarManipulator ( )
virtual

Definition at line 77 of file PlanarManipulator.cpp.

Member Function Documentation

◆ FABRIK() [1/2]

bool PlanarManipulator::FABRIK ( std::vector< double > & solution,
const Eigen::Affine2d & eeFrame,
double xyTol = 1e-5,
double thetaTol = 1e-3 ) const

Definition at line 308 of file PlanarManipulator.cpp.

◆ FABRIK() [2/2]

bool PlanarManipulator::FABRIK ( std::vector< double > & solution,
const std::vector< double > & seed,
const Eigen::Affine2d & desiredFrame,
double xyTol = 1e-5,
double thetaTol = 1e-3 ) const

Definition at line 315 of file PlanarManipulator.cpp.

◆ FK() [1/6]

void PlanarManipulator::FK ( const double * joints,
Eigen::Affine2d & eeFrame ) const

Definition at line 180 of file PlanarManipulator.cpp.

◆ FK() [2/6]

void PlanarManipulator::FK ( const double * joints,
std::vector< Eigen::Affine2d > & frames ) const

Definition at line 156 of file PlanarManipulator.cpp.

◆ FK() [3/6]

void PlanarManipulator::FK ( const Eigen::VectorXd & joints,
Eigen::Affine2d & eeFrame ) const

Definition at line 175 of file PlanarManipulator.cpp.

◆ FK() [4/6]

void PlanarManipulator::FK ( const Eigen::VectorXd & joints,
std::vector< Eigen::Affine2d > & frames ) const

Definition at line 151 of file PlanarManipulator.cpp.

◆ FK() [5/6]

void PlanarManipulator::FK ( const std::vector< double > & joints,
Eigen::Affine2d & eeFrame ) const

Definition at line 170 of file PlanarManipulator.cpp.

◆ FK() [6/6]

void PlanarManipulator::FK ( const std::vector< double > & joints,
std::vector< Eigen::Affine2d > & frames ) const

Definition at line 146 of file PlanarManipulator.cpp.

◆ frameToPose()

void PlanarManipulator::frameToPose ( const Eigen::Affine2d & frame,
Eigen::VectorXd & pose )
static

Definition at line 508 of file PlanarManipulator.cpp.

◆ getBaseFrame()

const Eigen::Affine2d & PlanarManipulator::getBaseFrame ( ) const

Definition at line 87 of file PlanarManipulator.cpp.

◆ getBounds()

void PlanarManipulator::getBounds ( unsigned int link,
double & low,
double & high ) const

Definition at line 129 of file PlanarManipulator.cpp.

◆ getLinkLengths()

const std::vector< double > & PlanarManipulator::getLinkLengths ( ) const

Definition at line 98 of file PlanarManipulator.cpp.

◆ getNumLinks()

unsigned int PlanarManipulator::getNumLinks ( ) const

Definition at line 82 of file PlanarManipulator.cpp.

◆ hasBounds()

bool PlanarManipulator::hasBounds ( unsigned int link) const

Definition at line 124 of file PlanarManipulator.cpp.

◆ IK() [1/2]

bool PlanarManipulator::IK ( std::vector< double > & solution,
const Eigen::Affine2d & eeFrame ) const

Definition at line 194 of file PlanarManipulator.cpp.

◆ IK() [2/2]

bool PlanarManipulator::IK ( std::vector< double > & solution,
const std::vector< double > & seed,
const Eigen::Affine2d & desiredFrame ) const

Definition at line 200 of file PlanarManipulator.cpp.

◆ infeasible()

bool PlanarManipulator::infeasible ( const Eigen::Affine2d & frame) const
protected

Definition at line 516 of file PlanarManipulator.cpp.

◆ Jacobian() [1/3]

void PlanarManipulator::Jacobian ( const double * joints,
Eigen::MatrixXd & jac ) const

Definition at line 467 of file PlanarManipulator.cpp.

◆ Jacobian() [2/3]

void PlanarManipulator::Jacobian ( const Eigen::VectorXd & joints,
Eigen::MatrixXd & jac ) const

Definition at line 503 of file PlanarManipulator.cpp.

◆ Jacobian() [3/3]

void PlanarManipulator::Jacobian ( const std::vector< double > & joints,
Eigen::MatrixXd & jac ) const

Definition at line 498 of file PlanarManipulator.cpp.

◆ lowerBounds()

const std::vector< double > & PlanarManipulator::lowerBounds ( ) const

Definition at line 134 of file PlanarManipulator.cpp.

◆ setBaseFrame()

void PlanarManipulator::setBaseFrame ( const Eigen::Affine2d & frame)

Definition at line 92 of file PlanarManipulator.cpp.

◆ setBounds() [1/2]

void PlanarManipulator::setBounds ( const std::vector< double > & low,
const std::vector< double > & high )

Definition at line 114 of file PlanarManipulator.cpp.

◆ setBounds() [2/2]

void PlanarManipulator::setBounds ( unsigned int link,
double low,
double high )

Definition at line 104 of file PlanarManipulator.cpp.

◆ upperBounds()

const std::vector< double > & PlanarManipulator::upperBounds ( ) const

Definition at line 139 of file PlanarManipulator.cpp.

Member Data Documentation

◆ baseFrame_

Eigen::Affine2d PlanarManipulator::baseFrame_
protected

Definition at line 125 of file PlanarManipulator.h.

◆ hasBounds_

std::vector<bool> PlanarManipulator::hasBounds_
protected

Definition at line 120 of file PlanarManipulator.h.

◆ linkLengths_

std::vector<double> PlanarManipulator::linkLengths_
protected

Definition at line 118 of file PlanarManipulator.h.

◆ lowerBounds_

std::vector<double> PlanarManipulator::lowerBounds_
protected

Definition at line 121 of file PlanarManipulator.h.

◆ numLinks_

unsigned int PlanarManipulator::numLinks_
protected

Definition at line 116 of file PlanarManipulator.h.

◆ upperBounds_

std::vector<double> PlanarManipulator::upperBounds_
protected

Definition at line 122 of file PlanarManipulator.h.


The documentation for this class was generated from the following files: