![]() |
Tesseract
Motion Planning Environment
|
#include <kdl_state_solver.h>


Public Types | |
| using | Ptr = std::shared_ptr< KDLStateSolver > |
| using | ConstPtr = std::shared_ptr< const KDLStateSolver > |
| using | UPtr = std::unique_ptr< KDLStateSolver > |
| using | ConstUPtr = std::unique_ptr< const KDLStateSolver > |
Public Types inherited from tesseract_scene_graph::StateSolver | |
| using | Ptr = std::shared_ptr< StateSolver > |
| using | ConstPtr = std::shared_ptr< const StateSolver > |
| using | UPtr = std::unique_ptr< StateSolver > |
| using | ConstUPtr = std::unique_ptr< const StateSolver > |
Public Member Functions | |
| KDLStateSolver (const tesseract_scene_graph::SceneGraph &scene_graph) | |
| KDLStateSolver (const tesseract_scene_graph::SceneGraph &scene_graph, KDLTreeData data) | |
| ~KDLStateSolver () override=default | |
| KDLStateSolver (const KDLStateSolver &other) | |
| KDLStateSolver & | operator= (const KDLStateSolver &other) |
| KDLStateSolver (KDLStateSolver &&)=delete | |
| KDLStateSolver & | operator= (KDLStateSolver &&)=delete |
| StateSolver::UPtr | clone () const override |
| This should clone the object so it may be used in a multi threaded application where each thread would clone the solver. More... | |
| void | setState (const Eigen::Ref< const Eigen::VectorXd > &joint_values) override final |
| Set the current state of the solver. More... | |
| void | setState (const std::unordered_map< std::string, double > &joint_values) override final |
| Set the current state of the solver. More... | |
| void | setState (const std::vector< std::string > &joint_names, const Eigen::Ref< const Eigen::VectorXd > &joint_values) override final |
| SceneState | getState (const Eigen::Ref< const Eigen::VectorXd > &joint_values) const override final |
| Get the state of the solver given the joint values. More... | |
| SceneState | getState (const std::unordered_map< std::string, double > &joint_values) const override final |
| Get the state of the scene for a given set or subset of joint values. More... | |
| SceneState | getState (const std::vector< std::string > &joint_names, const Eigen::Ref< const Eigen::VectorXd > &joint_values) const override final |
| SceneState | getState () const override final |
| Get the current state of the scene. More... | |
| SceneState | getRandomState () const override final |
| Get the random state of the environment. More... | |
| Eigen::MatrixXd | getJacobian (const Eigen::Ref< const Eigen::VectorXd > &joint_values, const std::string &link_name) const override final |
| Get the jacobian of the solver given the joint values. More... | |
| Eigen::MatrixXd | getJacobian (const std::unordered_map< std::string, double > &joint_values, const std::string &link_name) const override final |
| Get the jacobian of the scene for a given set or subset of joint values. More... | |
| Eigen::MatrixXd | getJacobian (const std::vector< std::string > &joint_names, const Eigen::Ref< const Eigen::VectorXd > &joint_values, const std::string &link_name) const override final |
| std::vector< std::string > | getJointNames () const override final |
| Get the vector of joint names. More... | |
| std::vector< std::string > | getActiveJointNames () const override final |
| Get the vector of joint names which align with the limits. More... | |
| std::string | getBaseLinkName () const override final |
| Get the base link name. More... | |
| std::vector< std::string > | getLinkNames () const override final |
| Get the vector of link names. More... | |
| std::vector< std::string > | getActiveLinkNames () const override final |
| Get the vector of active link names. More... | |
| std::vector< std::string > | getStaticLinkNames () const override final |
| Get a vector of static link names in the environment. More... | |
| bool | isActiveLinkName (const std::string &link_name) const override final |
| Check if link is an active link. More... | |
| bool | hasLinkName (const std::string &link_name) const override final |
| Check if link name exists. More... | |
| tesseract_common::VectorIsometry3d | getLinkTransforms () const override final |
| Get all of the links transforms. More... | |
| Eigen::Isometry3d | getLinkTransform (const std::string &link_name) const override final |
| Get the transform corresponding to the link. More... | |
| Eigen::Isometry3d | getRelativeLinkTransform (const std::string &from_link_name, const std::string &to_link_name) const override final |
| Get transform between two links using the current state. More... | |
| tesseract_common::KinematicLimits | getLimits () const override final |
| Getter for kinematic limits. More... | |
Public Member Functions inherited from tesseract_scene_graph::StateSolver | |
| StateSolver ()=default | |
| virtual | ~StateSolver ()=default |
| StateSolver (const StateSolver &)=default | |
| StateSolver & | operator= (const StateSolver &)=default |
| StateSolver (StateSolver &&)=default | |
| StateSolver & | operator= (StateSolver &&)=default |
| virtual StateSolver::UPtr | clone () const =0 |
| This should clone the object so it may be used in a multi threaded application where each thread would clone the solver. More... | |
| virtual void | setState (const Eigen::Ref< const Eigen::VectorXd > &joint_values)=0 |
| Set the current state of the solver. More... | |
| virtual void | setState (const std::unordered_map< std::string, double > &joint_values)=0 |
| Set the current state of the solver. More... | |
| virtual void | setState (const std::vector< std::string > &joint_names, const Eigen::Ref< const Eigen::VectorXd > &joint_values)=0 |
| virtual SceneState | getState (const Eigen::Ref< const Eigen::VectorXd > &joint_values) const =0 |
| Get the state of the solver given the joint values. More... | |
| virtual SceneState | getState (const std::unordered_map< std::string, double > &joint_values) const =0 |
| Get the state of the scene for a given set or subset of joint values. More... | |
| virtual SceneState | getState (const std::vector< std::string > &joint_names, const Eigen::Ref< const Eigen::VectorXd > &joint_values) const =0 |
| virtual SceneState | getState () const =0 |
| Get the current state of the scene. More... | |
| virtual Eigen::MatrixXd | getJacobian (const Eigen::Ref< const Eigen::VectorXd > &joint_values, const std::string &link_name) const =0 |
| Get the jacobian of the solver given the joint values. More... | |
| virtual Eigen::MatrixXd | getJacobian (const std::unordered_map< std::string, double > &joint_values, const std::string &link_name) const =0 |
| Get the jacobian of the scene for a given set or subset of joint values. More... | |
| virtual Eigen::MatrixXd | getJacobian (const std::vector< std::string > &joint_names, const Eigen::Ref< const Eigen::VectorXd > &joint_values, const std::string &link_name) const =0 |
| virtual SceneState | getRandomState () const =0 |
| Get the random state of the environment. More... | |
| virtual std::vector< std::string > | getJointNames () const =0 |
| Get the vector of joint names. More... | |
| virtual std::vector< std::string > | getActiveJointNames () const =0 |
| Get the vector of joint names which align with the limits. More... | |
| virtual std::string | getBaseLinkName () const =0 |
| Get the base link name. More... | |
| virtual std::vector< std::string > | getLinkNames () const =0 |
| Get the vector of link names. More... | |
| virtual std::vector< std::string > | getActiveLinkNames () const =0 |
| Get the vector of active link names. More... | |
| virtual std::vector< std::string > | getStaticLinkNames () const =0 |
| Get a vector of static link names in the environment. More... | |
| virtual bool | isActiveLinkName (const std::string &link_name) const =0 |
| Check if link is an active link. More... | |
| virtual bool | hasLinkName (const std::string &link_name) const =0 |
| Check if link name exists. More... | |
| virtual tesseract_common::VectorIsometry3d | getLinkTransforms () const =0 |
| Get all of the links transforms. More... | |
| virtual Eigen::Isometry3d | getLinkTransform (const std::string &link_name) const =0 |
| Get the transform corresponding to the link. More... | |
| virtual Eigen::Isometry3d | getRelativeLinkTransform (const std::string &from_link_name, const std::string &to_link_name) const =0 |
| Get transform between two links using the current state. More... | |
| virtual tesseract_common::KinematicLimits | getLimits () const =0 |
| Getter for kinematic limits. More... | |
Private Member Functions | |
| void | calculateTransforms (SceneState &state, const KDL::JntArray &q_in, const KDL::SegmentMap::const_iterator &it, const Eigen::Isometry3d &parent_frame) const |
| void | calculateTransformsHelper (SceneState &state, const KDL::JntArray &q_in, const KDL::SegmentMap::const_iterator &it, const Eigen::Isometry3d &parent_frame) const |
| bool | setJointValuesHelper (KDL::JntArray &q, const std::string &joint_name, const double &joint_value) const |
| bool | calcJacobianHelper (KDL::Jacobian &jacobian, const KDL::JntArray &kdl_joints, const std::string &link_name) const |
| KDL::JntArray | getKDLJntArray (const std::vector< std::string > &joint_names, const Eigen::Ref< const Eigen::VectorXd > &joint_values) const |
| Get an updated kdl joint array. More... | |
| KDL::JntArray | getKDLJntArray (const std::unordered_map< std::string, double > &joint_values) const |
| bool | processKDLData (const tesseract_scene_graph::SceneGraph &scene_graph) |
Private Attributes | |
| SceneState | current_state_ |
| KDLTreeData | data_ |
| std::unique_ptr< KDL::TreeJntToJacSolver > | jac_solver_ |
| std::unordered_map< std::string, unsigned int > | joint_to_qnr_ |
| std::vector< int > | joint_qnr_ |
| KDL::JntArray | kdl_jnt_array_ |
| tesseract_common::KinematicLimits | limits_ |
| std::mutex | mutex_ |
| KDL is not thread safe due to mutable variables in Joint Class. More... | |
| using tesseract_scene_graph::KDLStateSolver::ConstPtr = std::shared_ptr<const KDLStateSolver> |
| using tesseract_scene_graph::KDLStateSolver::ConstUPtr = std::unique_ptr<const KDLStateSolver> |
| using tesseract_scene_graph::KDLStateSolver::Ptr = std::shared_ptr<KDLStateSolver> |
| using tesseract_scene_graph::KDLStateSolver::UPtr = std::unique_ptr<KDLStateSolver> |
| tesseract_scene_graph::KDLStateSolver::KDLStateSolver | ( | const tesseract_scene_graph::SceneGraph & | scene_graph | ) |
| tesseract_scene_graph::KDLStateSolver::KDLStateSolver | ( | const tesseract_scene_graph::SceneGraph & | scene_graph, |
| KDLTreeData | data | ||
| ) |
|
overridedefault |
| tesseract_scene_graph::KDLStateSolver::KDLStateSolver | ( | const KDLStateSolver & | other | ) |
|
delete |
|
private |
|
private |
|
private |
|
overridevirtual |
This should clone the object so it may be used in a multi threaded application where each thread would clone the solver.
Implements tesseract_scene_graph::StateSolver.
|
finaloverridevirtual |
Get the vector of joint names which align with the limits.
Implements tesseract_scene_graph::StateSolver.
|
finaloverridevirtual |
Get the vector of active link names.
Implements tesseract_scene_graph::StateSolver.
|
finaloverridevirtual |
|
finaloverridevirtual |
Get the jacobian of the solver given the joint values.
This must be the same size and order as what is returned by getJointNames
| joint_values | The joint values |
| link_name | The link name to calculate the jacobian |
Implements tesseract_scene_graph::StateSolver.
|
finaloverridevirtual |
Get the jacobian of the scene for a given set or subset of joint values.
This does not change the internal state of the solver.
| joints | A map of joint names to joint values to change. |
| link_name | The link name to calculate the jacobian |
Implements tesseract_scene_graph::StateSolver.
|
finaloverridevirtual |
Implements tesseract_scene_graph::StateSolver.
|
finaloverridevirtual |
Get the vector of joint names.
Implements tesseract_scene_graph::StateSolver.
|
private |
|
private |
Get an updated kdl joint array.
|
finaloverridevirtual |
Getter for kinematic limits.
Implements tesseract_scene_graph::StateSolver.
|
finaloverridevirtual |
Get the vector of link names.
Implements tesseract_scene_graph::StateSolver.
|
finaloverridevirtual |
Get the transform corresponding to the link.
Implements tesseract_scene_graph::StateSolver.
|
finaloverridevirtual |
Get all of the links transforms.
Order should be the same as getLinkNames()
Implements tesseract_scene_graph::StateSolver.
|
finaloverridevirtual |
Get the random state of the environment.
Implements tesseract_scene_graph::StateSolver.
|
finaloverridevirtual |
Get transform between two links using the current state.
| from_link_name | The link name the transform should be relative to |
| to_link_name | The link name to get transform |
Implements tesseract_scene_graph::StateSolver.
|
finaloverridevirtual |
Get the current state of the scene.
Implements tesseract_scene_graph::StateSolver.
|
finaloverridevirtual |
Get the state of the solver given the joint values.
This must be the same size and order as what is returned by getJointNames
| joint_values | The joint values |
Implements tesseract_scene_graph::StateSolver.
|
finaloverridevirtual |
Get the state of the scene for a given set or subset of joint values.
This does not change the internal state of the solver.
| joints | A map of joint names to joint values to change. |
Implements tesseract_scene_graph::StateSolver.
|
finaloverridevirtual |
Implements tesseract_scene_graph::StateSolver.
|
finaloverridevirtual |
Get a vector of static link names in the environment.
Implements tesseract_scene_graph::StateSolver.
|
finaloverridevirtual |
Check if link name exists.
| link_name | The link name to check for |
Implements tesseract_scene_graph::StateSolver.
|
finaloverridevirtual |
Check if link is an active link.
| link_name | The link name to check |
Implements tesseract_scene_graph::StateSolver.
| KDLStateSolver & tesseract_scene_graph::KDLStateSolver::operator= | ( | const KDLStateSolver & | other | ) |
|
delete |
|
private |
|
private |
|
finaloverridevirtual |
Set the current state of the solver.
This must be the same size and order as what is returned by getJointNames
| joint_values | The joint values |
Implements tesseract_scene_graph::StateSolver.
|
finaloverridevirtual |
Set the current state of the solver.
After updating the current state these function must call currentStateChanged() which will update the contact managers transforms
Implements tesseract_scene_graph::StateSolver.
|
finaloverridevirtual |
Implements tesseract_scene_graph::StateSolver.
|
private |
Current state of the environment
|
private |
KDL tree data
|
private |
KDL Jacobian Solver
|
private |
The kdl segment number corresponding to joint in joint names
|
private |
Map between joint name and kdl q index
|
private |
The kdl joint array
|
private |
The kinematic limits
|
mutableprivate |
KDL is not thread safe due to mutable variables in Joint Class.