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.