Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
exotica::KinematicTree Class Reference

#include <kinematic_tree.h>

Inheritance diagram for exotica::KinematicTree:
Inheritance graph
[legend]

Public Member Functions

std::shared_ptr< KinematicElementAddElement (const std::string &name, const Eigen::Isometry3d &transform, const std::string &parent, const std::string &shape_resource_path, Eigen::Vector3d scale=Eigen::Vector3d::Ones(), const KDL::RigidBodyInertia &inertia=KDL::RigidBodyInertia::Zero(), const Eigen::Vector4d &color=Eigen::Vector4d(0.5, 0.5, 0.5, 1.0), const std::vector< VisualElement > &visual={}, bool is_controlled=false)
 
std::shared_ptr< KinematicElementAddElement (const std::string &name, const Eigen::Isometry3d &transform, const std::string &parent="", shapes::ShapeConstPtr shape=shapes::ShapeConstPtr(nullptr), const KDL::RigidBodyInertia &inertia=KDL::RigidBodyInertia::Zero(), const Eigen::Vector4d &color=Eigen::Vector4d(0.5, 0.5, 0.5, 1.0), const std::vector< VisualElement > &visual={}, bool is_controlled=false)
 
std::shared_ptr< KinematicElementAddEnvironmentElement (const std::string &name, const Eigen::Isometry3d &transform, const std::string &parent="", shapes::ShapeConstPtr shape=shapes::ShapeConstPtr(nullptr), const KDL::RigidBodyInertia &inertia=KDL::RigidBodyInertia::Zero(), const Eigen::Vector4d &color=Eigen::Vector4d(0.5, 0.5, 0.5, 1.0), const std::vector< VisualElement > &visual={}, bool is_controlled=false)
 
void ChangeParent (const std::string &name, const std::string &parent, const KDL::Frame &pose, bool relative)
 
bool DoesLinkWithNameExist (std::string name) const
 Checks whether a link with this name exists in any of the trees. More...
 
std::shared_ptr< KinematicElementFindKinematicElementByName (const std::string &frame_name)
 
KDL::Frame FK (const std::string &element_A, const KDL::Frame &offset_a, const std::string &element_B, const KDL::Frame &offset_b) const
 
KDL::Frame FK (KinematicFrame &frame) const
 
KDL::Frame FK (std::shared_ptr< KinematicElement > element_A, const KDL::Frame &offset_a, std::shared_ptr< KinematicElement > element_B, const KDL::Frame &offset_b) const
 
const Eigen::VectorXdGetAccelerationLimits () const
 
std::map< std::string, shapes::ShapeTypeGetCollisionObjectTypes () const
 
const std::map< std::string, std::weak_ptr< KinematicElement > > & GetCollisionTreeMap () const
 
BaseType GetControlledBaseType () const
 
const std::vector< std::string > & GetControlledJointNames () const
 
const std::vector< std::weak_ptr< KinematicElement > > & GetControlledJoints () const
 
const std::map< std::string, std::weak_ptr< KinematicElement > > & GetControlledJointsMap () const
 
Eigen::VectorXd GetControlledLinkMass () const
 
const std::vector< std::string > & GetControlledLinkNames () const
 
Eigen::VectorXd GetControlledState () const
 
const Eigen::MatrixXd & GetJointLimits () const
 
std::vector< std::string > GetKinematicChain (const std::string &begin, const std::string &end) const
 GetKinematicChain get list of joints in a kinematic chain. More...
 
std::vector< std::string > GetKinematicChainLinks (const std::string &begin, const std::string &end) const
 GetKinematicChainLinks get the links between begin and end of kinematic chain. More...
 
std::shared_ptr< KinematicResponseGetKinematicResponse ()
 
BaseType GetModelBaseType () const
 
const std::vector< std::string > & GetModelJointNames () const
 
const std::map< std::string, std::weak_ptr< KinematicElement > > & GetModelJointsMap () const
 
const std::vector< std::string > & GetModelLinkNames () const
 
Eigen::VectorXd GetModelState () const
 
std::map< std::string, double > GetModelStateMap () const
 
const std::vector< std::shared_ptr< KinematicElement > > & GetModelTree () const
 
int GetNumControlledJoints () const
 
int GetNumModelJoints () const
 
Eigen::VectorXd GetRandomControlledState ()
 Random state generation. More...
 
robot_model::RobotModelPtr GetRobotModel () const
 
const std::string & GetRootFrameName () const
 
const std::string & GetRootJointName () const
 
const std::vector< std::weak_ptr< KinematicElement > > & GetTree () const
 
const std::map< std::string, std::weak_ptr< KinematicElement > > & GetTreeMap () const
 
std::map< std::string, std::vector< double > > GetUsedJointLimits () const
 
const Eigen::VectorXdGetVelocityLimits () const
 
const bool & HasAccelerationLimits () const
 
bool HasModelLink (const std::string &link) const
 
exotica::Hessian Hessian (const std::string &element_A, const KDL::Frame &offset_a, const std::string &element_B, const KDL::Frame &offset_b) const
 
exotica::Hessian Hessian (std::shared_ptr< KinematicElement > element_A, const KDL::Frame &offset_a, std::shared_ptr< KinematicElement > element_B, const KDL::Frame &offset_b) const
 
void Instantiate (const std::string &joint_group, robot_model::RobotModelPtr model, const std::string &name)
 
int IsControlled (std::shared_ptr< KinematicElement > joint)
 
int IsControlledLink (const std::string &link_name)
 
Eigen::MatrixXd Jacobian (const std::string &element_A, const KDL::Frame &offset_a, const std::string &element_B, const KDL::Frame &offset_b) const
 
Eigen::MatrixXd Jacobian (std::shared_ptr< KinematicElement > element_A, const KDL::Frame &offset_a, std::shared_ptr< KinematicElement > element_B, const KDL::Frame &offset_b) const
 
void PublishFrames (const std::string &tf_prefix="exotica")
 
std::shared_ptr< KinematicResponseRequestFrames (const KinematicsRequest &request)
 
void ResetJointLimits ()
 
void ResetModel ()
 
void SetFloatingBaseLimitsPosXYZEulerZYX (const std::vector< double > &lower, const std::vector< double > &upper)
 
void SetFloatingBaseLimitsPosXYZEulerZYX (const std::vector< double > &lower, const std::vector< double > &upper, const std::vector< double > &velocity, const std::vector< double > &acceleration)
 
void SetJointAccelerationLimits (Eigen::VectorXdRefConst acceleration_in)
 
void SetJointLimitsLower (Eigen::VectorXdRefConst lower_in)
 
void SetJointLimitsUpper (Eigen::VectorXdRefConst upper_in)
 
void SetJointVelocityLimits (Eigen::VectorXdRefConst velocity_in)
 
void SetKinematicResponse (std::shared_ptr< KinematicResponse > response_in)
 
void SetModelState (const std::map< std::string, double > &x)
 
void SetModelState (Eigen::VectorXdRefConst x)
 
void SetPlanarBaseLimitsPosXYEulerZ (const std::vector< double > &lower, const std::vector< double > &upper)
 
void SetPlanarBaseLimitsPosXYEulerZ (const std::vector< double > &lower, const std::vector< double > &upper, const std::vector< double > &velocity, const std::vector< double > &acceleration)
 
void SetSeed (const uint_fast32_t seed)
 SetSeed sets the seed of the random generator for deterministic joint state sampling. More...
 
void Update (Eigen::VectorXdRefConst x)
 
void UpdateModel ()
 
- Public Member Functions inherited from exotica::Uncopyable
 Uncopyable ()=default
 
 ~Uncopyable ()=default
 

Public Attributes

bool debug = false
 

Private Member Functions

void AddElementFromSegmentMapIterator (KDL::SegmentMap::const_iterator segment, std::shared_ptr< KinematicElement > parent)
 
void BuildTree (const KDL::Tree &RobotKinematics)
 
void ComputeH (KinematicFrame &frame, const KDL::Jacobian &jacobian, exotica::Hessian &hessian) const
 
void ComputeJ (KinematicFrame &frame, KDL::Jacobian &jacobian) const
 
void UpdateFK ()
 
void UpdateH ()
 
void UpdateJ ()
 
void UpdateJointLimits ()
 
void UpdateTree ()
 

Private Attributes

Eigen::VectorXd acceleration_limits_
 
std::map< std::string, std::weak_ptr< KinematicElement > > collision_tree_map_
 
BaseType controlled_base_type_ = BaseType::FIXED
 
std::vector< std::weak_ptr< KinematicElement > > controlled_joints_
 
std::map< std::string, std::weak_ptr< KinematicElement > > controlled_joints_map_
 
std::vector< std::string > controlled_joints_names_
 
std::vector< std::string > controlled_link_names_
 
std::vector< tf::StampedTransformdebug_frames_
 
bool debug_scene_changed_
 
std::vector< tf::StampedTransformdebug_tree_
 
std::vector< std::shared_ptr< KinematicElement > > environment_tree_
 
KinematicRequestFlags flags_
 
std::mt19937 generator_
 
bool has_acceleration_limit_ = false
 
Eigen::MatrixXd joint_limits_
 
visualization_msgs::MarkerArray marker_array_msg_
 
robot_model::RobotModelPtr model_
 
BaseType model_base_type_
 
std::map< std::string, std::weak_ptr< KinematicElement > > model_joints_map_
 
std::vector< std::string > model_joints_names_
 
std::vector< std::string > model_link_names_
 
std::vector< std::shared_ptr< KinematicElement > > model_tree_
 
std::string name_
 
int num_controlled_joints_
 Number of controlled joints in the joint group. More...
 
int num_joints_
 Number of joints of the model (including floating/planar base, passive joints, and uncontrolled joints). More...
 
ros::Publisher octomap_pub_
 
std::vector< std::uniform_real_distribution< double > > random_state_distributions_
 
std::random_device rd_
 
std::shared_ptr< KinematicElementroot_
 
std::string root_joint_name_ = ""
 
ros::Publisher shapes_pub_
 
std::shared_ptr< KinematicResponsesolution_ = std::make_shared<KinematicResponse>()
 
int state_size_ = -1
 
std::vector< std::weak_ptr< KinematicElement > > tree_
 
std::map< std::string, std::weak_ptr< KinematicElement > > tree_map_
 
Eigen::VectorXd tree_state_
 
Eigen::VectorXd velocity_limits_
 

Detailed Description

Definition at line 142 of file kinematic_tree.h.

Member Function Documentation

◆ AddElement() [1/2]

std::shared_ptr< KinematicElement > exotica::KinematicTree::AddElement ( const std::string &  name,
const Eigen::Isometry3d &  transform,
const std::string &  parent,
const std::string &  shape_resource_path,
Eigen::Vector3d  scale = Eigen::Vector3d::Ones(),
const KDL::RigidBodyInertia &  inertia = KDL::RigidBodyInertia::Zero(),
const Eigen::Vector4d &  color = Eigen::Vector4d(0.5, 0.5, 0.5, 1.0),
const std::vector< VisualElement > &  visual = {},
bool  is_controlled = false 
)

Definition at line 509 of file kinematic_tree.cpp.

◆ AddElement() [2/2]

std::shared_ptr< KinematicElement > exotica::KinematicTree::AddElement ( const std::string &  name,
const Eigen::Isometry3d &  transform,
const std::string &  parent = "",
shapes::ShapeConstPtr  shape = shapes::ShapeConstPtr(nullptr),
const KDL::RigidBodyInertia &  inertia = KDL::RigidBodyInertia::Zero(),
const Eigen::Vector4d &  color = Eigen::Vector4d(0.5, 0.5, 0.5, 1.0),
const std::vector< VisualElement > &  visual = {},
bool  is_controlled = false 
)

Definition at line 537 of file kinematic_tree.cpp.

◆ AddElementFromSegmentMapIterator()

void exotica::KinematicTree::AddElementFromSegmentMapIterator ( KDL::SegmentMap::const_iterator  segment,
std::shared_ptr< KinematicElement parent 
)
private

Definition at line 580 of file kinematic_tree.cpp.

◆ AddEnvironmentElement()

std::shared_ptr< KinematicElement > exotica::KinematicTree::AddEnvironmentElement ( const std::string &  name,
const Eigen::Isometry3d &  transform,
const std::string &  parent = "",
shapes::ShapeConstPtr  shape = shapes::ShapeConstPtr(nullptr),
const KDL::RigidBodyInertia &  inertia = KDL::RigidBodyInertia::Zero(),
const Eigen::Vector4d &  color = Eigen::Vector4d(0.5, 0.5, 0.5, 1.0),
const std::vector< VisualElement > &  visual = {},
bool  is_controlled = false 
)

Definition at line 502 of file kinematic_tree.cpp.

◆ BuildTree()

void exotica::KinematicTree::BuildTree ( const KDL::Tree &  RobotKinematics)
private

Definition at line 164 of file kinematic_tree.cpp.

◆ ChangeParent()

void exotica::KinematicTree::ChangeParent ( const std::string &  name,
const std::string &  parent,
const KDL::Frame &  pose,
bool  relative 
)

Definition at line 454 of file kinematic_tree.cpp.

◆ ComputeH()

void exotica::KinematicTree::ComputeH ( KinematicFrame frame,
const KDL::Jacobian &  jacobian,
exotica::Hessian hessian 
) const
private

Definition at line 947 of file kinematic_tree.cpp.

◆ ComputeJ()

void exotica::KinematicTree::ComputeJ ( KinematicFrame frame,
KDL::Jacobian &  jacobian 
) const
private

Definition at line 919 of file kinematic_tree.cpp.

◆ DoesLinkWithNameExist()

bool exotica::KinematicTree::DoesLinkWithNameExist ( std::string  name) const

Checks whether a link with this name exists in any of the trees.

Definition at line 1461 of file kinematic_tree.cpp.

◆ FindKinematicElementByName()

std::shared_ptr< KinematicElement > exotica::KinematicTree::FindKinematicElementByName ( const std::string &  frame_name)

Definition at line 1467 of file kinematic_tree.cpp.

◆ FK() [1/3]

KDL::Frame exotica::KinematicTree::FK ( const std::string &  element_A,
const KDL::Frame &  offset_a,
const std::string &  element_B,
const KDL::Frame &  offset_b 
) const

Definition at line 848 of file kinematic_tree.cpp.

◆ FK() [2/3]

KDL::Frame exotica::KinematicTree::FK ( KinematicFrame frame) const

Definition at line 829 of file kinematic_tree.cpp.

◆ FK() [3/3]

KDL::Frame exotica::KinematicTree::FK ( std::shared_ptr< KinematicElement element_A,
const KDL::Frame &  offset_a,
std::shared_ptr< KinematicElement element_B,
const KDL::Frame &  offset_b 
) const

Definition at line 837 of file kinematic_tree.cpp.

◆ GetAccelerationLimits()

const Eigen::VectorXd& exotica::KinematicTree::GetAccelerationLimits ( ) const
inline

Definition at line 165 of file kinematic_tree.h.

◆ GetCollisionObjectTypes()

std::map< std::string, shapes::ShapeType > exotica::KinematicTree::GetCollisionObjectTypes ( ) const

Definition at line 1451 of file kinematic_tree.cpp.

◆ GetCollisionTreeMap()

const std::map<std::string, std::weak_ptr<KinematicElement> >& exotica::KinematicTree::GetCollisionTreeMap ( ) const
inline

Definition at line 234 of file kinematic_tree.h.

◆ GetControlledBaseType()

exotica::BaseType exotica::KinematicTree::GetControlledBaseType ( ) const

Definition at line 1005 of file kinematic_tree.cpp.

◆ GetControlledJointNames()

const std::vector<std::string>& exotica::KinematicTree::GetControlledJointNames ( ) const
inline

Definition at line 171 of file kinematic_tree.h.

◆ GetControlledJoints()

const std::vector<std::weak_ptr<KinematicElement> >& exotica::KinematicTree::GetControlledJoints ( ) const
inline

Definition at line 238 of file kinematic_tree.h.

◆ GetControlledJointsMap()

const std::map<std::string, std::weak_ptr<KinematicElement> >& exotica::KinematicTree::GetControlledJointsMap ( ) const
inline

Definition at line 239 of file kinematic_tree.h.

◆ GetControlledLinkMass()

Eigen::VectorXd exotica::KinematicTree::GetControlledLinkMass ( ) const

Definition at line 1441 of file kinematic_tree.cpp.

◆ GetControlledLinkNames()

const std::vector<std::string>& exotica::KinematicTree::GetControlledLinkNames ( ) const
inline

Definition at line 176 of file kinematic_tree.h.

◆ GetControlledState()

Eigen::VectorXd exotica::KinematicTree::GetControlledState ( ) const

Definition at line 1426 of file kinematic_tree.cpp.

◆ GetJointLimits()

const Eigen::MatrixXd& exotica::KinematicTree::GetJointLimits ( ) const
inline

Definition at line 154 of file kinematic_tree.h.

◆ GetKinematicChain()

std::vector< std::string > exotica::KinematicTree::GetKinematicChain ( const std::string &  begin,
const std::string &  end 
) const

GetKinematicChain get list of joints in a kinematic chain.

Parameters
beginlink name from which the chain starts
endlink name at which the chain ends
Returns
list joints between begin and end

Definition at line 1330 of file kinematic_tree.cpp.

◆ GetKinematicChainLinks()

std::vector< std::string > exotica::KinematicTree::GetKinematicChainLinks ( const std::string &  begin,
const std::string &  end 
) const

GetKinematicChainLinks get the links between begin and end of kinematic chain.

Parameters
beginlink name from which the chain starts
endlink name at which the chain ends
Returns
list link between begin and end

Definition at line 1358 of file kinematic_tree.cpp.

◆ GetKinematicResponse()

std::shared_ptr<KinematicResponse> exotica::KinematicTree::GetKinematicResponse ( )
inline

Definition at line 250 of file kinematic_tree.h.

◆ GetModelBaseType()

exotica::BaseType exotica::KinematicTree::GetModelBaseType ( ) const

Definition at line 1000 of file kinematic_tree.cpp.

◆ GetModelJointNames()

const std::vector<std::string>& exotica::KinematicTree::GetModelJointNames ( ) const
inline

Definition at line 181 of file kinematic_tree.h.

◆ GetModelJointsMap()

const std::map<std::string, std::weak_ptr<KinematicElement> >& exotica::KinematicTree::GetModelJointsMap ( ) const
inline

Definition at line 240 of file kinematic_tree.h.

◆ GetModelLinkNames()

const std::vector<std::string>& exotica::KinematicTree::GetModelLinkNames ( ) const
inline

Definition at line 186 of file kinematic_tree.h.

◆ GetModelState()

Eigen::VectorXd exotica::KinematicTree::GetModelState ( ) const

Definition at line 1309 of file kinematic_tree.cpp.

◆ GetModelStateMap()

std::map< std::string, double > exotica::KinematicTree::GetModelStateMap ( ) const

Definition at line 1320 of file kinematic_tree.cpp.

◆ GetModelTree()

const std::vector<std::shared_ptr<KinematicElement> >& exotica::KinematicTree::GetModelTree ( ) const
inline

Definition at line 232 of file kinematic_tree.h.

◆ GetNumControlledJoints()

int exotica::KinematicTree::GetNumControlledJoints ( ) const

Definition at line 91 of file kinematic_tree.cpp.

◆ GetNumModelJoints()

int exotica::KinematicTree::GetNumModelJoints ( ) const

Definition at line 96 of file kinematic_tree.cpp.

◆ GetRandomControlledState()

Eigen::VectorXd exotica::KinematicTree::GetRandomControlledState ( )

Random state generation.

Definition at line 1025 of file kinematic_tree.cpp.

◆ GetRobotModel()

robot_model::RobotModelPtr exotica::KinematicTree::GetRobotModel ( ) const

Definition at line 1020 of file kinematic_tree.cpp.

◆ GetRootFrameName()

const std::string & exotica::KinematicTree::GetRootFrameName ( ) const

Definition at line 1299 of file kinematic_tree.cpp.

◆ GetRootJointName()

const std::string & exotica::KinematicTree::GetRootJointName ( ) const

Definition at line 1304 of file kinematic_tree.cpp.

◆ GetTree()

const std::vector<std::weak_ptr<KinematicElement> >& exotica::KinematicTree::GetTree ( ) const
inline

Definition at line 231 of file kinematic_tree.h.

◆ GetTreeMap()

const std::map<std::string, std::weak_ptr<KinematicElement> >& exotica::KinematicTree::GetTreeMap ( ) const
inline

Definition at line 233 of file kinematic_tree.h.

◆ GetUsedJointLimits()

std::map< std::string, std::vector< double > > exotica::KinematicTree::GetUsedJointLimits ( ) const

Definition at line 1010 of file kinematic_tree.cpp.

◆ GetVelocityLimits()

const Eigen::VectorXd& exotica::KinematicTree::GetVelocityLimits ( ) const
inline

Definition at line 166 of file kinematic_tree.h.

◆ HasAccelerationLimits()

const bool& exotica::KinematicTree::HasAccelerationLimits ( ) const
inline

Definition at line 164 of file kinematic_tree.h.

◆ HasModelLink()

bool exotica::KinematicTree::HasModelLink ( const std::string &  link) const

Definition at line 1436 of file kinematic_tree.cpp.

◆ Hessian() [1/2]

exotica::Hessian exotica::KinematicTree::Hessian ( const std::string &  element_A,
const KDL::Frame &  offset_a,
const std::string &  element_B,
const KDL::Frame &  offset_b 
) const

Definition at line 908 of file kinematic_tree.cpp.

◆ Hessian() [2/2]

exotica::Hessian exotica::KinematicTree::Hessian ( std::shared_ptr< KinematicElement element_A,
const KDL::Frame &  offset_a,
std::shared_ptr< KinematicElement element_B,
const KDL::Frame &  offset_b 
) const

Definition at line 893 of file kinematic_tree.cpp.

◆ Instantiate()

void exotica::KinematicTree::Instantiate ( const std::string &  joint_group,
robot_model::RobotModelPtr  model,
const std::string &  name 
)

Definition at line 101 of file kinematic_tree.cpp.

◆ IsControlled()

int exotica::KinematicTree::IsControlled ( std::shared_ptr< KinematicElement joint)

Definition at line 591 of file kinematic_tree.cpp.

◆ IsControlledLink()

int exotica::KinematicTree::IsControlledLink ( const std::string &  link_name)

Definition at line 600 of file kinematic_tree.cpp.

◆ Jacobian() [1/2]

Eigen::MatrixXd exotica::KinematicTree::Jacobian ( const std::string &  element_A,
const KDL::Frame &  offset_a,
const std::string &  element_B,
const KDL::Frame &  offset_b 
) const

Definition at line 882 of file kinematic_tree.cpp.

◆ Jacobian() [2/2]

Eigen::MatrixXd exotica::KinematicTree::Jacobian ( std::shared_ptr< KinematicElement element_A,
const KDL::Frame &  offset_a,
std::shared_ptr< KinematicElement element_B,
const KDL::Frame &  offset_b 
) const

Definition at line 869 of file kinematic_tree.cpp.

◆ PublishFrames()

void exotica::KinematicTree::PublishFrames ( const std::string &  tf_prefix = "exotica")

Definition at line 739 of file kinematic_tree.cpp.

◆ RequestFrames()

std::shared_ptr< KinematicResponse > exotica::KinematicTree::RequestFrames ( const KinematicsRequest request)

Definition at line 628 of file kinematic_tree.cpp.

◆ ResetJointLimits()

void exotica::KinematicTree::ResetJointLimits ( )

Manually defined floating base limits Should be done more systematically with robot model class

Definition at line 1217 of file kinematic_tree.cpp.

◆ ResetModel()

void exotica::KinematicTree::ResetModel ( )

Definition at line 436 of file kinematic_tree.cpp.

◆ SetFloatingBaseLimitsPosXYZEulerZYX() [1/2]

void exotica::KinematicTree::SetFloatingBaseLimitsPosXYZEulerZYX ( const std::vector< double > &  lower,
const std::vector< double > &  upper 
)

Definition at line 1121 of file kinematic_tree.cpp.

◆ SetFloatingBaseLimitsPosXYZEulerZYX() [2/2]

void exotica::KinematicTree::SetFloatingBaseLimitsPosXYZEulerZYX ( const std::vector< double > &  lower,
const std::vector< double > &  upper,
const std::vector< double > &  velocity,
const std::vector< double > &  acceleration 
)

Definition at line 1140 of file kinematic_tree.cpp.

◆ SetJointAccelerationLimits()

void exotica::KinematicTree::SetJointAccelerationLimits ( Eigen::VectorXdRefConst  acceleration_in)

Definition at line 1093 of file kinematic_tree.cpp.

◆ SetJointLimitsLower()

void exotica::KinematicTree::SetJointLimitsLower ( Eigen::VectorXdRefConst  lower_in)

Definition at line 1035 of file kinematic_tree.cpp.

◆ SetJointLimitsUpper()

void exotica::KinematicTree::SetJointLimitsUpper ( Eigen::VectorXdRefConst  upper_in)

Definition at line 1052 of file kinematic_tree.cpp.

◆ SetJointVelocityLimits()

void exotica::KinematicTree::SetJointVelocityLimits ( Eigen::VectorXdRefConst  velocity_in)

Definition at line 1069 of file kinematic_tree.cpp.

◆ SetKinematicResponse()

void exotica::KinematicTree::SetKinematicResponse ( std::shared_ptr< KinematicResponse response_in)
inline

Definition at line 249 of file kinematic_tree.h.

◆ SetModelState() [1/2]

void exotica::KinematicTree::SetModelState ( const std::map< std::string, double > &  x)

Definition at line 1407 of file kinematic_tree.cpp.

◆ SetModelState() [2/2]

void exotica::KinematicTree::SetModelState ( Eigen::VectorXdRefConst  x)

Definition at line 1385 of file kinematic_tree.cpp.

◆ SetPlanarBaseLimitsPosXYEulerZ() [1/2]

void exotica::KinematicTree::SetPlanarBaseLimitsPosXYEulerZ ( const std::vector< double > &  lower,
const std::vector< double > &  upper 
)

Definition at line 1169 of file kinematic_tree.cpp.

◆ SetPlanarBaseLimitsPosXYEulerZ() [2/2]

void exotica::KinematicTree::SetPlanarBaseLimitsPosXYEulerZ ( const std::vector< double > &  lower,
const std::vector< double > &  upper,
const std::vector< double > &  velocity,
const std::vector< double > &  acceleration 
)

Definition at line 1188 of file kinematic_tree.cpp.

◆ SetSeed()

void exotica::KinematicTree::SetSeed ( const uint_fast32_t  seed)
inline

SetSeed sets the seed of the random generator for deterministic joint state sampling.

Parameters
seedunsigned integer

Definition at line 245 of file kinematic_tree.h.

◆ Update()

void exotica::KinematicTree::Update ( Eigen::VectorXdRefConst  x)

Definition at line 678 of file kinematic_tree.cpp.

◆ UpdateFK()

void exotica::KinematicTree::UpdateFK ( )
private

Definition at line 859 of file kinematic_tree.cpp.

◆ UpdateH()

void exotica::KinematicTree::UpdateH ( )
private

Definition at line 990 of file kinematic_tree.cpp.

◆ UpdateJ()

void exotica::KinematicTree::UpdateJ ( )
private

Definition at line 980 of file kinematic_tree.cpp.

◆ UpdateJointLimits()

void exotica::KinematicTree::UpdateJointLimits ( )
private

Definition at line 1279 of file kinematic_tree.cpp.

◆ UpdateModel()

void exotica::KinematicTree::UpdateModel ( )

Definition at line 423 of file kinematic_tree.cpp.

◆ UpdateTree()

void exotica::KinematicTree::UpdateTree ( )
private

Definition at line 695 of file kinematic_tree.cpp.

Member Data Documentation

◆ acceleration_limits_

Eigen::VectorXd exotica::KinematicTree::acceleration_limits_
private

Definition at line 267 of file kinematic_tree.h.

◆ collision_tree_map_

std::map<std::string, std::weak_ptr<KinematicElement> > exotica::KinematicTree::collision_tree_map_
private

Definition at line 288 of file kinematic_tree.h.

◆ controlled_base_type_

BaseType exotica::KinematicTree::controlled_base_type_ = BaseType::FIXED
private

Definition at line 277 of file kinematic_tree.h.

◆ controlled_joints_

std::vector<std::weak_ptr<KinematicElement> > exotica::KinematicTree::controlled_joints_
private

Definition at line 290 of file kinematic_tree.h.

◆ controlled_joints_map_

std::map<std::string, std::weak_ptr<KinematicElement> > exotica::KinematicTree::controlled_joints_map_
private

Definition at line 291 of file kinematic_tree.h.

◆ controlled_joints_names_

std::vector<std::string> exotica::KinematicTree::controlled_joints_names_
private

Definition at line 294 of file kinematic_tree.h.

◆ controlled_link_names_

std::vector<std::string> exotica::KinematicTree::controlled_link_names_
private

Definition at line 296 of file kinematic_tree.h.

◆ debug

bool exotica::KinematicTree::debug = false

Definition at line 251 of file kinematic_tree.h.

◆ debug_frames_

std::vector<tf::StampedTransform> exotica::KinematicTree::debug_frames_
private

Definition at line 301 of file kinematic_tree.h.

◆ debug_scene_changed_

bool exotica::KinematicTree::debug_scene_changed_
private

Definition at line 304 of file kinematic_tree.h.

◆ debug_tree_

std::vector<tf::StampedTransform> exotica::KinematicTree::debug_tree_
private

Definition at line 300 of file kinematic_tree.h.

◆ environment_tree_

std::vector<std::shared_ptr<KinematicElement> > exotica::KinematicTree::environment_tree_
private

Definition at line 286 of file kinematic_tree.h.

◆ flags_

KinematicRequestFlags exotica::KinematicTree::flags_
private

Definition at line 298 of file kinematic_tree.h.

◆ generator_

std::mt19937 exotica::KinematicTree::generator_
private

Definition at line 273 of file kinematic_tree.h.

◆ has_acceleration_limit_

bool exotica::KinematicTree::has_acceleration_limit_ = false
private

Definition at line 268 of file kinematic_tree.h.

◆ joint_limits_

Eigen::MatrixXd exotica::KinematicTree::joint_limits_
private

Definition at line 265 of file kinematic_tree.h.

◆ marker_array_msg_

visualization_msgs::MarkerArray exotica::KinematicTree::marker_array_msg_
private

Definition at line 305 of file kinematic_tree.h.

◆ model_

robot_model::RobotModelPtr exotica::KinematicTree::model_
private

Definition at line 282 of file kinematic_tree.h.

◆ model_base_type_

BaseType exotica::KinematicTree::model_base_type_
private

Definition at line 276 of file kinematic_tree.h.

◆ model_joints_map_

std::map<std::string, std::weak_ptr<KinematicElement> > exotica::KinematicTree::model_joints_map_
private

Definition at line 292 of file kinematic_tree.h.

◆ model_joints_names_

std::vector<std::string> exotica::KinematicTree::model_joints_names_
private

Definition at line 293 of file kinematic_tree.h.

◆ model_link_names_

std::vector<std::string> exotica::KinematicTree::model_link_names_
private

Definition at line 295 of file kinematic_tree.h.

◆ model_tree_

std::vector<std::shared_ptr<KinematicElement> > exotica::KinematicTree::model_tree_
private

Definition at line 285 of file kinematic_tree.h.

◆ name_

std::string exotica::KinematicTree::name_
private

Definition at line 306 of file kinematic_tree.h.

◆ num_controlled_joints_

int exotica::KinematicTree::num_controlled_joints_
private

Number of controlled joints in the joint group.

Definition at line 278 of file kinematic_tree.h.

◆ num_joints_

int exotica::KinematicTree::num_joints_
private

Number of joints of the model (including floating/planar base, passive joints, and uncontrolled joints).

Definition at line 279 of file kinematic_tree.h.

◆ octomap_pub_

ros::Publisher exotica::KinematicTree::octomap_pub_
private

Definition at line 303 of file kinematic_tree.h.

◆ random_state_distributions_

std::vector<std::uniform_real_distribution<double> > exotica::KinematicTree::random_state_distributions_
private

Definition at line 274 of file kinematic_tree.h.

◆ rd_

std::random_device exotica::KinematicTree::rd_
private

Definition at line 272 of file kinematic_tree.h.

◆ root_

std::shared_ptr<KinematicElement> exotica::KinematicTree::root_
private

Definition at line 289 of file kinematic_tree.h.

◆ root_joint_name_

std::string exotica::KinematicTree::root_joint_name_ = ""
private

Definition at line 283 of file kinematic_tree.h.

◆ shapes_pub_

ros::Publisher exotica::KinematicTree::shapes_pub_
private

Definition at line 302 of file kinematic_tree.h.

◆ solution_

std::shared_ptr<KinematicResponse> exotica::KinematicTree::solution_ = std::make_shared<KinematicResponse>()
private

Definition at line 297 of file kinematic_tree.h.

◆ state_size_

int exotica::KinematicTree::state_size_ = -1
private

Definition at line 280 of file kinematic_tree.h.

◆ tree_

std::vector<std::weak_ptr<KinematicElement> > exotica::KinematicTree::tree_
private

Definition at line 284 of file kinematic_tree.h.

◆ tree_map_

std::map<std::string, std::weak_ptr<KinematicElement> > exotica::KinematicTree::tree_map_
private

Definition at line 287 of file kinematic_tree.h.

◆ tree_state_

Eigen::VectorXd exotica::KinematicTree::tree_state_
private

Definition at line 281 of file kinematic_tree.h.

◆ velocity_limits_

Eigen::VectorXd exotica::KinematicTree::velocity_limits_
private

Definition at line 266 of file kinematic_tree.h.


The documentation for this class was generated from the following files:


exotica_core
Author(s): Yiming Yang, Michael Camilleri
autogenerated on Fri Aug 2 2024 08:43:03