Robotics Library
0.6.0
|
#include <Kinematics.h>
Public Types | |
enum | Type { TYPE_PRISMATIC, TYPE_REVOLUTE } |
Public Member Functions | |
Kinematics () | |
virtual | ~Kinematics () |
bool | areColliding (const ::std::size_t &i, const ::std::size_t &j) const |
virtual void | clip (::rl::math::Vector &q) const |
virtual Kinematics * | clone () const |
virtual ::rl::math::Real | distance (const ::rl::math::Vector &q1, const ::rl::math::Vector &q2) const |
virtual const ::rl::math::Transform & | forwardPosition (const ::std::size_t &i=0) const |
virtual void | forwardForce (const ::rl::math::Vector &tau,::rl::math::Vector &f) const |
virtual void | forwardVelocity (const ::rl::math::Vector &qdot,::rl::math::Vector &xdot) const |
::std::size_t | getBodies () const |
::std::size_t | getDof () const |
const ::rl::math::Transform & | getFrame (const ::std::size_t &i) const |
const ::rl::math::Matrix & | getJacobian () const |
const ::rl::math::Matrix & | getJacobianInverse () const |
::rl::math::Real | getManipulabilityMeasure () const |
::std::string | getManufacturer () const |
::rl::math::Real | getMaximum (const ::std::size_t &i) const |
void | getMaximum (::rl::math::Vector &max) const |
::rl::math::Real | getMinimum (const ::std::size_t &i) const |
void | getMinimum (::rl::math::Vector &min) const |
::std::string | getName () const |
::std::size_t | getOperationalDof () const |
void | getPosition (::rl::math::Vector &q) const |
::rl::math::Real | getSpeed (const ::std::size_t &i) const |
void | getSpeed (::rl::math::Vector &speed) const |
Type | getType (const ::std::size_t &i) |
virtual void | interpolate (const ::rl::math::Vector &q1, const ::rl::math::Vector &q2, const ::rl::math::Real &alpha,::rl::math::Vector &q) const |
virtual void | inverseForce (const ::rl::math::Vector &f,::rl::math::Vector &tau) const |
virtual ::rl::math::Real | inverseOfTransformedDistance (const ::rl::math::Real &d) const |
virtual bool | inversePosition (const ::rl::math::Transform &x,::rl::math::Vector &q, const ::std::size_t &iterations=1000) |
virtual void | inverseVelocity (const ::rl::math::Vector &xdot,::rl::math::Vector &qdot) const |
bool | isColliding (const ::std::size_t &i) const |
virtual bool | isSingular () const |
virtual bool | isValid (const ::rl::math::Vector &q) const |
virtual ::rl::math::Real | maxDistanceToRectangle (const ::rl::math::Vector &q, const ::rl::math::Vector &min, const ::rl::math::Vector &max) const |
virtual ::rl::math::Real | minDistanceToRectangle (const ::rl::math::Vector &q, const ::rl::math::Vector &min, const ::rl::math::Vector &max) const |
virtual ::rl::math::Real | minDistanceToRectangle (const ::rl::math::Real &q, const ::rl::math::Real &min, const ::rl::math::Real &max, const ::std::size_t &cuttingDimension) const |
virtual ::rl::math::Real | newDistance (const ::rl::math::Real &dist, const ::rl::math::Real &oldOff, const ::rl::math::Real &newOff, const int &cuttingDimension) const |
void | setColliding (const ::std::size_t &i, const bool &doesCollide) |
void | setColliding (const ::std::size_t &i, const ::std::size_t &j, const bool &doCollide) |
void | setPosition (const ::rl::math::Vector &q) |
virtual void | step (const ::rl::math::Vector &q1, const ::rl::math::Vector &qdot,::rl::math::Vector &q2) const |
::rl::math::Transform & | tool (const ::std::size_t &i=0) |
const ::rl::math::Transform & | tool (const ::std::size_t &i=0) const |
virtual ::rl::math::Real | transformedDistance (const ::rl::math::Real &d) const |
virtual ::rl::math::Real | transformedDistance (const ::rl::math::Vector &q1, const ::rl::math::Vector &q2) const |
virtual void | updateFrames () |
virtual void | updateJacobian () |
virtual void | updateJacobianInverse (const ::rl::math::Real &lambda=0.0f, const bool &doSvd=true) |
::rl::math::Transform & | world () |
const ::rl::math::Transform & | world () const |
Static Public Member Functions | |
static Kinematics * | create (const ::std::string &filename) |
Protected Types | |
typedef ::boost::adjacency_list < ::boost::vecS,::boost::vecS,::boost::bidirectionalS,::boost::shared_ptr < Frame >,::boost::shared_ptr < Transform > ,::boost::no_property,::boost::vecS > | Tree |
typedef ::boost::graph_traits < Tree >::edge_descriptor | Edge |
typedef ::boost::graph_traits < Tree >::edge_iterator | EdgeIterator |
typedef ::std::pair < EdgeIterator, EdgeIterator > | EdgeIteratorPair |
typedef ::boost::graph_traits < Tree >::in_edge_iterator | InEdgeIterator |
typedef ::std::pair < InEdgeIterator, InEdgeIterator > | InEdgeIteratorPair |
typedef ::boost::graph_traits < Tree >::out_edge_iterator | OutEdgeIterator |
typedef ::std::pair < OutEdgeIterator, OutEdgeIterator > | OutEdgeIteratorPair |
typedef ::boost::graph_traits < Tree >::vertex_descriptor | Vertex |
typedef ::boost::graph_traits < Tree >::vertex_iterator | VertexIterator |
typedef ::std::pair < VertexIterator, VertexIterator > | VertexIteratorPair |
Protected Member Functions | |
void | update () |
void | update (Vertex &u) |
Protected Attributes | |
::std::vector< Element * > | elements |
::std::vector< Frame * > | frames |
::std::vector< Vertex > | leaves |
::std::vector< Link * > | links |
::rl::math::Matrix | jacobian |
::rl::math::Matrix | jacobianInverse |
::std::vector< Joint * > | joints |
::std::string | manufacturer |
::std::string | name |
Vertex | root |
::std::vector< Edge > | tools |
::std::vector< Transform * > | transforms |
Tree | tree |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
rl::kin::Kinematics::Kinematics | ( | ) |
|
virtual |
bool rl::kin::Kinematics::areColliding | ( | const ::std::size_t & | i, |
const ::std::size_t & | j | ||
) | const |
See if specified bodies should be tested for collisions with each other.
|
virtual |
Clip specified configuration to be within joint limits.
q | ![]() |
|
virtual |
Reimplemented in rl::kin::Puma, and rl::kin::Rhino.
|
static |
rl::math::Real rl::kin::Kinematics::distance | ( | const ::rl::math::Vector & | q1, |
const ::rl::math::Vector & | q2 | ||
) | const |
Calculate distance measure between specified configuration.
q1 | ![]() |
q2 | ![]() |
|
virtual |
Calculate forward force kinematics.
tau | ![]() |
f | ![]() |
|
virtual |
|
virtual |
std::size_t rl::kin::Kinematics::getBodies | ( | ) | const |
Get number of links.
std::size_t rl::kin::Kinematics::getDof | ( | ) | const |
Get number of degrees of freedom (DOF).
const ::rl::math::Transform & rl::kin::Kinematics::getFrame | ( | const ::std::size_t & | i | ) | const |
Get link frame.
const ::rl::math::Matrix & rl::kin::Kinematics::getJacobian | ( | ) | const |
Get Jacobian.
const ::rl::math::Matrix & rl::kin::Kinematics::getJacobianInverse | ( | ) | const |
Get Jacobian-Inverse.
rl::math::Real rl::kin::Kinematics::getManipulabilityMeasure | ( | ) | const |
Get manipulability measure.
std::string rl::kin::Kinematics::getManufacturer | ( | ) | const |
rl::math::Real rl::kin::Kinematics::getMaximum | ( | const ::std::size_t & | i | ) | const |
void rl::kin::Kinematics::getMaximum | ( | ::rl::math::Vector & | max | ) | const |
rl::math::Real rl::kin::Kinematics::getMinimum | ( | const ::std::size_t & | i | ) | const |
void rl::kin::Kinematics::getMinimum | ( | ::rl::math::Vector & | min | ) | const |
std::string rl::kin::Kinematics::getName | ( | ) | const |
std::size_t rl::kin::Kinematics::getOperationalDof | ( | ) | const |
Get number of end effectors.
void rl::kin::Kinematics::getPosition | ( | ::rl::math::Vector & | q | ) | const |
Get current joint position.
q | ![]() |
rl::math::Real rl::kin::Kinematics::getSpeed | ( | const ::std::size_t & | i | ) | const |
void rl::kin::Kinematics::getSpeed | ( | ::rl::math::Vector & | speed | ) | const |
Kinematics::Type rl::kin::Kinematics::getType | ( | const ::std::size_t & | i | ) |
|
virtual |
|
virtual |
rl::math::Real rl::kin::Kinematics::inverseOfTransformedDistance | ( | const ::rl::math::Real & | d | ) | const |
|
virtual |
Calculate inverse position kinematics.
x | cartesian position |
q | joint configuration (initial guess and result) |
Reimplemented in rl::kin::Puma, and rl::kin::Rhino.
|
virtual |
bool rl::kin::Kinematics::isColliding | ( | const ::std::size_t & | i | ) | const |
See if specified body should be tested for collisions with the environment.
|
virtual |
Check if current configuration is singular.
Reimplemented in rl::kin::Puma.
|
virtual |
Check if specified configuration is within joint limits.
q | ![]() |
rl::math::Real rl::kin::Kinematics::maxDistanceToRectangle | ( | const ::rl::math::Vector & | q, |
const ::rl::math::Vector & | min, | ||
const ::rl::math::Vector & | max | ||
) | const |
rl::math::Real rl::kin::Kinematics::minDistanceToRectangle | ( | const ::rl::math::Vector & | q, |
const ::rl::math::Vector & | min, | ||
const ::rl::math::Vector & | max | ||
) | const |
rl::math::Real rl::kin::Kinematics::minDistanceToRectangle | ( | const ::rl::math::Real & | q, |
const ::rl::math::Real & | min, | ||
const ::rl::math::Real & | max, | ||
const ::std::size_t & | cuttingDimension | ||
) | const |
rl::math::Real rl::kin::Kinematics::newDistance | ( | const ::rl::math::Real & | dist, |
const ::rl::math::Real & | oldOff, | ||
const ::rl::math::Real & | newOff, | ||
const int & | cuttingDimension | ||
) | const |
void rl::kin::Kinematics::setColliding | ( | const ::std::size_t & | i, |
const bool & | doesCollide | ||
) |
Set if specified body should be tested for collisions with the environment.
void rl::kin::Kinematics::setColliding | ( | const ::std::size_t & | i, |
const ::std::size_t & | j, | ||
const bool & | doCollide | ||
) |
Set if specified bodies should be tested for collisions with each other.
void rl::kin::Kinematics::setPosition | ( | const ::rl::math::Vector & | q | ) |
Update current joint position.
q | ![]() |
|
virtual |
rl::math::Transform & rl::kin::Kinematics::tool | ( | const ::std::size_t & | i = 0 | ) |
const ::rl::math::Transform & rl::kin::Kinematics::tool | ( | const ::std::size_t & | i = 0 | ) | const |
rl::math::Real rl::kin::Kinematics::transformedDistance | ( | const ::rl::math::Real & | d | ) | const |
rl::math::Real rl::kin::Kinematics::transformedDistance | ( | const ::rl::math::Vector & | q1, |
const ::rl::math::Vector & | q2 | ||
) | const |
|
protected |
|
protected |
|
virtual |
|
virtual |
|
virtual |
Update Jacobian-Inverse.
Singular value decomposition:
Damped least squares:
lambda | damping factor |
svd | singular value decomposition |
rl::math::Transform & rl::kin::Kinematics::world | ( | ) |
const ::rl::math::Transform & rl::kin::Kinematics::world | ( | ) | const |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |