3#ifndef __CONFIGURATION_SELECTOR_HPP__
4#define __CONFIGURATION_SELECTOR_HPP__
8#include <kdl/frames.hpp>
9#include <kdl/jntarray.hpp>
10#include <kdl/utilities/utility.h>
45 virtual bool configure(
const std::vector<KDL::JntArray> & solutions,
const std::vector<bool> & reachability);
63 q = *configs[lastValid].retrievePose();
74 static constexpr int INVALID_CONFIG = -1;
84 void store(
const KDL::JntArray * q)
100 const KDL::JntArray * q {
nullptr};
111 virtual bool validate(Configuration & config);
124 return q >= (qMin - KDL::epsilon) && q <= (qMax + KDL::epsilon);
127 KDL::JntArray _qMin, _qMax;
129 std::vector<Configuration> configs;
130 int lastValid {INVALID_CONFIG};
162 std::vector<double>
getDiffs(
const KDL::JntArray & qGuess,
const Configuration & config);
220 : _qMin(qMin), _qMax(qMax)
223 KDL::JntArray _qMin, _qMax;
274 if (_qMin.rows() == 6 && _qMax.rows() == 6)
Base factory class for ConfigurationSelector.
Definition ConfigurationSelector.hpp:202
ConfigurationSelectorFactory(const KDL::JntArray &qMin, const KDL::JntArray &qMax)
Constructor.
Definition ConfigurationSelector.hpp:219
virtual ConfigurationSelector * create() const =0
Creates an instance of the concrete class.
Implementation factory class for ConfigurationSelectorHumanoidGait.
Definition ConfigurationSelector.hpp:260
ConfigurationSelectorHumanoidGaitFactory(const KDL::JntArray &qMin, const KDL::JntArray &qMax)
Constructor.
Definition ConfigurationSelector.hpp:268
ConfigurationSelector * create() const override
Creates an instance of the concrete class.
Definition ConfigurationSelector.hpp:272
IK solver configuration strategy selector based on human walking.
Definition ConfigurationSelector.hpp:174
bool applyConstraints(const Configuration &config)
Determines whether the configuration is valid according to this selector's premises.
Definition ConfigurationSelectorHumanoidGait.cpp:29
bool findOptimalConfiguration(const KDL::JntArray &qGuess) override
Analyzes available configurations and selects the optimal one.
Definition ConfigurationSelectorHumanoidGait.cpp:11
ConfigurationSelectorHumanoidGait(const KDL::JntArray &qMin, const KDL::JntArray &qMax)
Constructor.
Definition ConfigurationSelector.hpp:182
Implementation factory class for ConfigurationSelectorLeastOverallAngularDisplacement.
Definition ConfigurationSelector.hpp:234
ConfigurationSelector * create() const override
Creates an instance of the concrete class.
Definition ConfigurationSelector.hpp:246
ConfigurationSelectorLeastOverallAngularDisplacementFactory(const KDL::JntArray &qMin, const KDL::JntArray &qMax)
Constructor.
Definition ConfigurationSelector.hpp:242
IK solver configuration strategy selector based on the overall displacement of all joints.
Definition ConfigurationSelector.hpp:146
ConfigurationSelectorLeastOverallAngularDisplacement(const KDL::JntArray &qMin, const KDL::JntArray &qMax)
Constructor.
Definition ConfigurationSelector.hpp:154
std::vector< double > getDiffs(const KDL::JntArray &qGuess, const Configuration &config)
Obtains vector of differences between current and desired joint values.
Definition ConfigurationSelectorLeastOverallAngularDisplacement.cpp:46
bool findOptimalConfiguration(const KDL::JntArray &qGuess) override
Analyzes available configurations and selects the optimal one.
Definition ConfigurationSelectorLeastOverallAngularDisplacement.cpp:12
Helper class to store a specific robot configuration.
Definition ConfigurationSelector.hpp:81
void store(const KDL::JntArray *q)
Initialize joint values.
Definition ConfigurationSelector.hpp:84
bool isValid() const
Whether this configuration is attainable or not.
Definition ConfigurationSelector.hpp:92
const KDL::JntArray * retrievePose() const
Retrieve stored joint values.
Definition ConfigurationSelector.hpp:88
void invalidate()
Mark this configuration as invalid.
Definition ConfigurationSelector.hpp:96
Abstract base class for a robot configuration strategy selector.
Definition ConfigurationSelector.hpp:21
ConfigurationSelector(const KDL::JntArray &qMin, const KDL::JntArray &qMax)
Constructor.
Definition ConfigurationSelector.hpp:29
virtual bool findOptimalConfiguration(const KDL::JntArray &qGuess)=0
Analyzes available configurations and selects the optimal one.
virtual ~ConfigurationSelector()=default
Destructor.
int getValidSolutionIndex() const
Retrieves the index of the last valid solution.
Definition ConfigurationSelector.hpp:71
virtual bool configure(const std::vector< KDL::JntArray > &solutions, const std::vector< bool > &reachability)
Stores initial values for a specific pose.
Definition ConfigurationSelector.cpp:9
virtual bool validate(Configuration &config)
Validates a specific robot configuration.
Definition ConfigurationSelector.cpp:26
static bool checkJointInLimits(double q, double qMin, double qMax)
Checks if a joint value is within its limits.
Definition ConfigurationSelector.hpp:122
virtual void retrievePose(KDL::JntArray &q) const
Queries computed joint values for the optimal configuration.
Definition ConfigurationSelector.hpp:61
The main, catch-all namespace for Robotics Lab UC3M.
Definition groups.dox:6