|
Robotics Library
0.7.0
|
Go to the documentation of this file.
27 #ifndef RL_KIN_KINEMATICS_H
28 #define RL_KIN_KINEMATICS_H
33 #include <boost/graph/adjacency_list.hpp>
54 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
63 bool areColliding(const ::std::size_t& i, const ::std::size_t& j)
const;
130 ::std::size_t
getDof()
const;
186 void getPositionUnits(::Eigen::Matrix< ::rl::math::Unit, ::Eigen::Dynamic, 1>& units)
const;
190 void getSpeedUnits(::Eigen::Matrix< ::rl::math::Unit, ::Eigen::Dynamic, 1>& units)
const;
214 const ::std::size_t& leaf = 0,
217 const ::std::size_t& iterations = 1000
260 void setColliding(const ::std::size_t& i,
const bool& doesCollide);
265 void setColliding(const ::std::size_t& i, const ::std::size_t& j,
const bool& doCollide);
322 typedef ::boost::adjacency_list<
325 ::boost::bidirectionalS,
326 ::std::shared_ptr<Frame>,
327 ::std::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
::rl::math::Vector generatePositionUniform(const ::rl::math::Vector &rand) const
Definition: Kinematics.cpp:442
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:76
Vertex root
Definition: Kinematics.h:374
::rl::math::Real getManipulabilityMeasure() const
Get manipulability measure.
Definition: Kinematics.cpp:495
::Eigen::Matrix< Real, ::Eigen::Dynamic, ::Eigen::Dynamic > Matrix
Definition: Matrix.h:42
::std::vector< Joint * > joints
Definition: Kinematics.h:368
::std::size_t getDof() const
Get number of degrees of freedom (DOF).
Definition: Kinematics.cpp:461
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:397
::Eigen::Transform< Real, 3, ::Eigen::Affine > Transform
Rigid transformation in 3D.
Definition: Transform.h:46
void getPositionUnits(::Eigen::Matrix< ::rl::math::Unit, ::Eigen::Dynamic, 1 > &units) const
Definition: Kinematics.cpp:564
void getPosition(::rl::math::Vector &q) const
Get current joint position.
Definition: Kinematics.cpp:553
::std::pair< OutEdgeIterator, OutEdgeIterator > OutEdgeIteratorPair
Definition: Kinematics.h:344
::boost::graph_traits< Tree >::in_edge_iterator InEdgeIterator
Definition: Kinematics.h:338
void getSpeedUnits(::Eigen::Matrix< ::rl::math::Unit, ::Eigen::Dynamic, 1 > &units) const
Definition: Kinematics.cpp:582
::rl::math::Real getMaximum(const ::std::size_t &i) const
Definition: Kinematics.cpp:507
virtual void updateJacobianInverse(const ::rl::math::Real &lambda=0.0f, const bool &doSvd=true)
Update Jacobian-Inverse.
Definition: Kinematics.cpp:1055
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:591
virtual void clip(::rl::math::Vector &q) const
Clip specified configuration to be within joint limits.
Definition: Kinematics.cpp:92
virtual ::rl::math::Real inverseOfTransformedDistance(const ::rl::math::Real &d) const
Definition: Kinematics.cpp:649
::boost::graph_traits< Tree >::out_edge_iterator OutEdgeIterator
Definition: Kinematics.h:342
::std::pair< EdgeIterator, EdgeIterator > EdgeIteratorPair
Definition: Kinematics.h:336
::boost::graph_traits< Tree >::vertex_descriptor Vertex
Definition: Kinematics.h:346
virtual ::rl::math::Real transformedDistance(const ::rl::math::Real &d) const
Definition: Kinematics.cpp:901
::std::vector< Vertex > leaves
Definition: Kinematics.h:360
::rl::math::Matrix jacobian
Definition: Kinematics.h:364
::Eigen::Matrix< Real, ::Eigen::Dynamic, 1 > Vector
Definition: Vector.h:42
::std::vector< Edge > tools
Definition: Kinematics.h:376
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:732
void getSpeed(::rl::math::Vector &speed) const
Definition: Kinematics.cpp:573
static Kinematics * create(const ::std::string &filename)
Definition: Kinematics.cpp:128
virtual Kinematics * clone() const
Definition: Kinematics.cpp:122
const ::rl::math::Matrix & getJacobianInverse() const
Get Jacobian-Inverse.
Definition: Kinematics.cpp:481
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:827
const ::rl::math::Transform & getFrame(const ::std::size_t &i) const
Get link frame.
Definition: Kinematics.cpp:467
virtual void updateFrames()
Update frames.
Definition: Kinematics.cpp:1028
virtual void updateJacobian()
Update Jacobian.
Definition: Kinematics.cpp:1037
::std::vector< Element * > elements
Definition: Kinematics.h:356
::boost::adjacency_list< ::boost::vecS, ::boost::vecS, ::boost::bidirectionalS, ::std::shared_ptr< Frame >, ::std::shared_ptr< Transform >, ::boost::no_property, ::boost::vecS > Tree
Definition: Kinematics.h:330
::std::size_t getOperationalDof() const
Get number of end effectors.
Definition: Kinematics.cpp:547
virtual bool isSingular() const
Check if current configuration is singular.
Definition: Kinematics.cpp:740
::boost::graph_traits< Tree >::vertex_iterator VertexIterator
Definition: Kinematics.h:348
void setPosition(const ::rl::math::Vector &q)
Update current joint position.
Definition: Kinematics.cpp:859
::std::pair< InEdgeIterator, InEdgeIterator > InEdgeIteratorPair
Definition: Kinematics.h:340
::rl::math::Real getMinimum(const ::std::size_t &i) const
Definition: Kinematics.cpp:524
::std::vector< Transform * > transforms
Definition: Kinematics.h:378
virtual ::rl::math::Real maxDistanceToRectangle(const ::rl::math::Vector &q, const ::rl::math::Vector &min, const ::rl::math::Vector &max) const
Definition: Kinematics.cpp:767
virtual void inverseForce(const ::rl::math::Vector &f, ::rl::math::Vector &tau) const
Calculate inverse force kinematics.
Definition: Kinematics.cpp:640
virtual void step(const ::rl::math::Vector &q1, const ::rl::math::Vector &qdot, ::rl::math::Vector &q2) const
Definition: Kinematics.cpp:870
virtual void forwardVelocity(const ::rl::math::Vector &qdot, ::rl::math::Vector &xdot) const
Calculate forward velocity kinematics.
Definition: Kinematics.cpp:418
::rl::math::Transform & tool(const ::std::size_t &i=0)
Definition: Kinematics.cpp:885
Joint * getJoint(const ::std::size_t &i) const
Definition: Kinematics.cpp:487
virtual const ::rl::math::Transform & forwardPosition(const ::std::size_t &i=0) const
Get forward position kinematics.
Definition: Kinematics.cpp:403
::std::pair< VertexIterator, VertexIterator > VertexIteratorPair
Definition: Kinematics.h:350
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:655
virtual ::rl::math::Real minDistanceToRectangle(const ::rl::math::Vector &q, const ::rl::math::Vector &min, const ::rl::math::Vector &max) const
Definition: Kinematics.cpp:790
::std::vector< Frame * > frames
Definition: Kinematics.h:358
virtual bool isValid(const ::rl::math::Vector &q) const
Check if specified configuration is within joint limits.
Definition: Kinematics.cpp:751
::std::string getName() const
Definition: Kinematics.cpp:541
::rl::math::Vector generatePositionGaussian(const ::rl::math::Vector &rand, const ::rl::math::Vector &mean, const ::rl::math::Vector &sigma) const
Definition: Kinematics.cpp:427
virtual void forwardForce(const ::rl::math::Vector &tau, ::rl::math::Vector &f) const
Calculate forward force kinematics.
Definition: Kinematics.cpp:409
::std::string manufacturer
Definition: Kinematics.h:370
::boost::graph_traits< Tree >::edge_descriptor Edge
Definition: Kinematics.h:332
::std::vector< Link * > links
Definition: Kinematics.h:362
Definition: Kinematics.h:52
::std::size_t getBodies() const
Get number of links.
Definition: Kinematics.cpp:455
::boost::graph_traits< Tree >::edge_iterator EdgeIterator
Definition: Kinematics.h:334
virtual ~Kinematics()
Definition: Kinematics.cpp:71
double Real
Definition: Real.h:42
::rl::math::Transform & world()
Definition: Kinematics.cpp:1084
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:833
::std::string getManufacturer() const
Definition: Kinematics.cpp:501
const ::rl::math::Matrix & getJacobian() const
Get Jacobian.
Definition: Kinematics.cpp:475
Kinematics()
Definition: Kinematics.cpp:54
virtual void inverseVelocity(const ::rl::math::Vector &xdot, ::rl::math::Vector &qdot) const
Calculate inverse velocity kinematics.
Definition: Kinematics.cpp:723
void update()
Definition: Kinematics.cpp:949
Robotics Library.
Definition: AnalogInput.cpp:30