kinematics-dynamics
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | List of all members
roboticslab::ConfigurationSelectorLeastOverallAngularDisplacement Class Reference

IK solver configuration strategy selector based on the overall displacement of all joints. More...

#include <ConfigurationSelector.hpp>

Inheritance diagram for roboticslab::ConfigurationSelectorLeastOverallAngularDisplacement:
roboticslab::ConfigurationSelector roboticslab::ConfigurationSelectorHumanoidGait

Public Member Functions

 ConfigurationSelectorLeastOverallAngularDisplacement (const KDL::JntArray &qMin, const KDL::JntArray &qMax)
 Constructor.
 
bool findOptimalConfiguration (const KDL::JntArray &qGuess) override
 Analyzes available configurations and selects the optimal one.
 
- Public Member Functions inherited from roboticslab::ConfigurationSelector
 ConfigurationSelector (const KDL::JntArray &qMin, const KDL::JntArray &qMax)
 Constructor.
 
virtual ~ConfigurationSelector ()=default
 Destructor.
 
virtual bool configure (const std::vector< KDL::JntArray > &solutions, const std::vector< bool > &reachability)
 Stores initial values for a specific pose.
 
virtual void retrievePose (KDL::JntArray &q) const
 Queries computed joint values for the optimal configuration.
 
int getValidSolutionIndex () const
 Retrieves the index of the last valid solution.
 

Protected Member Functions

std::vector< double > getDiffs (const KDL::JntArray &qGuess, const Configuration &config)
 Obtains vector of differences between current and desired joint values.
 
- Protected Member Functions inherited from roboticslab::ConfigurationSelector
virtual bool validate (Configuration &config)
 Validates a specific robot configuration.
 

Additional Inherited Members

- Static Public Attributes inherited from roboticslab::ConfigurationSelector
static constexpr int INVALID_CONFIG = -1
 
- Static Protected Member Functions inherited from roboticslab::ConfigurationSelector
static bool checkJointInLimits (double q, double qMin, double qMax)
 Checks if a joint value is within its limits.
 
- Protected Attributes inherited from roboticslab::ConfigurationSelector
KDL::JntArray _qMin
 
KDL::JntArray _qMax
 
std::vector< Configurationconfigs
 
int lastValid {INVALID_CONFIG}
 

Detailed Description

Selects the configuration that entails the lowest sum of displacements across all joints. Works best for all revolute/all prismatic chain types. If attainable, it retains the previous configuration after the first successful choice and discards all other configs for the rest of the instance's lifetime.

Constructor & Destructor Documentation

◆ ConfigurationSelectorLeastOverallAngularDisplacement()

roboticslab::ConfigurationSelectorLeastOverallAngularDisplacement::ConfigurationSelectorLeastOverallAngularDisplacement ( const KDL::JntArray &  qMin,
const KDL::JntArray &  qMax 
)
inline
Parameters
qMinJoint array of minimum joint limits.
qMaxJoint array of maximum joint limits.

Member Function Documentation

◆ findOptimalConfiguration()

bool ConfigurationSelectorLeastOverallAngularDisplacement::findOptimalConfiguration ( const KDL::JntArray &  qGuess)
overridevirtual
Parameters
qGuessJoint array of values for current robot position.
Returns
True/false on success/failure.

Implements roboticslab::ConfigurationSelector.


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