|
Robotics Library
0.6.2
|
Go to the documentation of this file.
27 #ifndef _RL_KIN_KINEMATICS_H_
28 #define _RL_KIN_KINEMATICS_H_
32 #include <boost/shared_ptr.hpp>
33 #include <boost/graph/adjacency_list.hpp>
51 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
60 bool areColliding(const ::std::size_t& i, const ::std::size_t& j)
const;
123 ::std::size_t
getDof()
const;
179 void getPositionUnits(::Eigen::Matrix< ::rl::math::Unit, ::Eigen::Dynamic, 1 >& units)
const;
183 void getSpeedUnits(::Eigen::Matrix< ::rl::math::Unit, ::Eigen::Dynamic, 1 >& units)
const;
213 const ::std::size_t& leaf = 0,
216 const ::std::size_t& iterations = 1000
259 void setColliding(const ::std::size_t& i,
const bool& doesCollide);
264 void setColliding(const ::std::size_t& i, const ::std::size_t& j,
const bool& doCollide);
322 typedef ::boost::adjacency_list<
325 ::boost::bidirectionalS,
326 ::boost::shared_ptr< Frame >,
327 ::boost::shared_ptr< Transform >,
328 ::boost::no_property,
332 typedef ::boost::graph_traits< Tree >::edge_descriptor
Edge;
346 typedef ::boost::graph_traits< Tree >::vertex_descriptor
Vertex;
388 #endif // _RL_KIN_KINEMATICS_H_
::rl::math::Matrix jacobianInverse
Definition: Kinematics.h:366
bool areColliding(const ::std::size_t &i, const ::std::size_t &j) const
See if specified bodies should be tested for collisions with each other.
Definition: Kinematics.cpp:75
::std::pair< OutEdgeIterator, OutEdgeIterator > OutEdgeIteratorPair
Definition: Kinematics.h:344
Vertex root
Definition: Kinematics.h:374
::rl::math::Real getManipulabilityMeasure() const
Get manipulability measure.
Definition: Kinematics.cpp:447
::boost::adjacency_list< ::boost::vecS, ::boost::vecS, ::boost::bidirectionalS, ::boost::shared_ptr< Frame >, ::boost::shared_ptr< Transform >, ::boost::no_property, ::boost::vecS > Tree
Definition: Kinematics.h:330
::std::size_t getDof() const
Get number of degrees of freedom (DOF).
Definition: Kinematics.cpp:413
virtual ::rl::math::Real distance(const ::rl::math::Vector &q1, const ::rl::math::Vector &q2) const
Calculate distance measure between specified configuration.
Definition: Kinematics.cpp:377
void getPositionUnits(::Eigen::Matrix< ::rl::math::Unit, ::Eigen::Dynamic, 1 > &units) const
Definition: Kinematics.cpp:516
void getPosition(::rl::math::Vector &q) const
Get current joint position.
Definition: Kinematics.cpp:505
void getSpeedUnits(::Eigen::Matrix< ::rl::math::Unit, ::Eigen::Dynamic, 1 > &units) const
Definition: Kinematics.cpp:534
::rl::math::Real getMaximum(const ::std::size_t &i) const
Definition: Kinematics.cpp:459
::std::vector< Edge > tools
Definition: Kinematics.h:376
virtual void updateJacobianInverse(const ::rl::math::Real &lambda=0.0f, const bool &doSvd=true)
Update Jacobian-Inverse.
Definition: Kinematics.cpp:991
::boost::graph_traits< Tree >::edge_iterator EdgeIterator
Definition: Kinematics.h:334
virtual void interpolate(const ::rl::math::Vector &q1, const ::rl::math::Vector &q2, const ::rl::math::Real &alpha, ::rl::math::Vector &q) const
Definition: Kinematics.cpp:543
virtual void clip(::rl::math::Vector &q) const
Clip specified configuration to be within joint limits.
Definition: Kinematics.cpp:91
virtual ::rl::math::Real inverseOfTransformedDistance(const ::rl::math::Real &d) const
Definition: Kinematics.cpp:601
virtual ::rl::math::Real transformedDistance(const ::rl::math::Real &d) const
Definition: Kinematics.cpp:853
::rl::math::Matrix jacobian
Definition: Kinematics.h:364
::boost::graph_traits< Tree >::vertex_iterator VertexIterator
Definition: Kinematics.h:348
Tree tree
Definition: Kinematics.h:380
::std::string name
Definition: Kinematics.h:372
bool isColliding(const ::std::size_t &i) const
See if specified body should be tested for collisions with the environment.
Definition: Kinematics.cpp:684
void getSpeed(::rl::math::Vector &speed) const
Definition: Kinematics.cpp:525
static Kinematics * create(const ::std::string &filename)
Definition: Kinematics.cpp:127
virtual Kinematics * clone() const
Definition: Kinematics.cpp:121
const ::rl::math::Matrix & getJacobianInverse() const
Get Jacobian-Inverse.
Definition: Kinematics.cpp:433
::boost::graph_traits< Tree >::edge_descriptor Edge
Definition: Kinematics.h:332
virtual ::rl::math::Real newDistance(const ::rl::math::Real &dist, const ::rl::math::Real &oldOff, const ::rl::math::Real &newOff, const int &cuttingDimension) const
Definition: Kinematics.cpp:779
::boost::graph_traits< Tree >::vertex_descriptor Vertex
Definition: Kinematics.h:346
const ::rl::math::Transform & getFrame(const ::std::size_t &i) const
Get link frame.
Definition: Kinematics.cpp:419
virtual void updateFrames()
Update frames.
Definition: Kinematics.cpp:964
virtual void updateJacobian()
Update Jacobian.
Definition: Kinematics.cpp:973
::std::size_t getOperationalDof() const
Get number of end effectors.
Definition: Kinematics.cpp:499
::std::pair< VertexIterator, VertexIterator > VertexIteratorPair
Definition: Kinematics.h:350
::std::pair< EdgeIterator, EdgeIterator > EdgeIteratorPair
Definition: Kinematics.h:336
::Eigen::Matrix< Real, ::Eigen::Dynamic, ::Eigen::Dynamic > Matrix
Definition: Matrix.h:41
virtual bool isSingular() const
Check if current configuration is singular.
Definition: Kinematics.cpp:692
void setPosition(const ::rl::math::Vector &q)
Update current joint position.
Definition: Kinematics.cpp:811
::std::vector< Joint * > joints
Definition: Kinematics.h:368
::rl::math::Real getMinimum(const ::std::size_t &i) const
Definition: Kinematics.cpp:476
virtual ::rl::math::Real maxDistanceToRectangle(const ::rl::math::Vector &q, const ::rl::math::Vector &min, const ::rl::math::Vector &max) const
Definition: Kinematics.cpp:719
::std::vector< Element * > elements
Definition: Kinematics.h:356
::std::vector< Transform * > transforms
Definition: Kinematics.h:378
virtual void inverseForce(const ::rl::math::Vector &f, ::rl::math::Vector &tau) const
Calculate inverse force kinematics.
Definition: Kinematics.cpp:592
virtual void step(const ::rl::math::Vector &q1, const ::rl::math::Vector &qdot, ::rl::math::Vector &q2) const
Definition: Kinematics.cpp:822
virtual void forwardVelocity(const ::rl::math::Vector &qdot, ::rl::math::Vector &xdot) const
Calculate forward velocity kinematics.
Definition: Kinematics.cpp:398
::rl::math::Transform & tool(const ::std::size_t &i=0)
Definition: Kinematics.cpp:837
Joint * getJoint(const ::std::size_t &i) const
Definition: Kinematics.cpp:439
::Eigen::Transform< Real, 3, ::Eigen::Affine > Transform
Definition: Transform.h:42
virtual const ::rl::math::Transform & forwardPosition(const ::std::size_t &i=0) const
Get forward position kinematics.
Definition: Kinematics.cpp:383
virtual bool inversePosition(const ::rl::math::Transform &x, ::rl::math::Vector &q, const ::std::size_t &leaf=0, const ::rl::math::Real &delta=::std::numeric_limits< ::rl::math::Real >::infinity(), const ::rl::math::Real &epsilon=1.0e-3f, const ::std::size_t &iterations=1000)
Calculate inverse position kinematics.
Definition: Kinematics.cpp:607
virtual ::rl::math::Real minDistanceToRectangle(const ::rl::math::Vector &q, const ::rl::math::Vector &min, const ::rl::math::Vector &max) const
Definition: Kinematics.cpp:742
virtual bool isValid(const ::rl::math::Vector &q) const
Check if specified configuration is within joint limits.
Definition: Kinematics.cpp:703
::std::string getName() const
Definition: Kinematics.cpp:493
::boost::graph_traits< Tree >::out_edge_iterator OutEdgeIterator
Definition: Kinematics.h:342
::Eigen::Matrix< Real, ::Eigen::Dynamic, 1 > Vector
Definition: Vector.h:41
::boost::graph_traits< Tree >::in_edge_iterator InEdgeIterator
Definition: Kinematics.h:338
virtual void forwardForce(const ::rl::math::Vector &tau, ::rl::math::Vector &f) const
Calculate forward force kinematics.
Definition: Kinematics.cpp:389
::std::string manufacturer
Definition: Kinematics.h:370
Definition: Kinematics.h:49
::std::pair< InEdgeIterator, InEdgeIterator > InEdgeIteratorPair
Definition: Kinematics.h:340
::std::size_t getBodies() const
Get number of links.
Definition: Kinematics.cpp:407
virtual ~Kinematics()
Definition: Kinematics.cpp:70
double Real
Definition: Real.h:34
::rl::math::Transform & world()
Definition: Kinematics.cpp:1020
void setColliding(const ::std::size_t &i, const bool &doesCollide)
Set if specified body should be tested for collisions with the environment.
Definition: Kinematics.cpp:785
::std::string getManufacturer() const
Definition: Kinematics.cpp:453
::std::vector< Link * > links
Definition: Kinematics.h:362
const ::rl::math::Matrix & getJacobian() const
Get Jacobian.
Definition: Kinematics.cpp:427
Kinematics()
Definition: Kinematics.cpp:53
virtual void inverseVelocity(const ::rl::math::Vector &xdot, ::rl::math::Vector &qdot) const
Calculate inverse velocity kinematics.
Definition: Kinematics.cpp:675
::std::vector< Frame * > frames
Definition: Kinematics.h:358
void update()
Definition: Kinematics.cpp:885
::std::vector< Vertex > leaves
Definition: Kinematics.h:360