kinematics-dynamics
Classes | Public Types | Public Member Functions | Protected Attributes | List of all members
roboticslab::AsibotConfiguration Class Referenceabstract

Abstract base class for a robot configuration strategy selector. More...

#include <AsibotConfiguration.hpp>

Inheritance diagram for roboticslab::AsibotConfiguration:
roboticslab::AsibotConfigurationLeastOverallAngularDisplacement

Classes

struct  Pose
 Helper class to store a specific robot configuration. More...
 

Public Types

using JointsIn = const std::vector< double > &
 Const vector of joint angles (input parameter).
 
using JointsOut = std::vector< double > &
 Vector of joint angles (output parameter).
 

Public Member Functions

 AsibotConfiguration (JointsIn qMin, JointsIn qMax)
 Constructor. More...
 
virtual ~AsibotConfiguration ()=default
 Destructor.
 
virtual bool configure (double q1, double q2u, double q2d, double q3, double q4u, double q4d, double q5)
 Stores initial values for a specific pose. More...
 
virtual bool findOptimalConfiguration (JointsIn qGuess)=0
 Analyzes available configurations and selects the optimal one. More...
 
virtual void retrieveAngles (JointsOut q) const
 Queries computed angles for the optimal configuration. More...
 

Protected Attributes

JointsIn _qMin
 
JointsIn _qMax
 
Pose optimalPose
 
Pose forwardElbowUp
 
Pose forwardElbowDown
 
Pose reversedElbowUp
 
Pose reversedElbowDown
 

Detailed Description

Designed with ASIBOT's specific case in mind, which entails up to four different configurations depending on initial angles provided.

Constructor & Destructor Documentation

◆ AsibotConfiguration()

roboticslab::AsibotConfiguration::AsibotConfiguration ( JointsIn  qMin,
JointsIn  qMax 
)
inline
Parameters
qMinvector of minimum joint limits [deg]
qMaxvector of maximum joint limits [deg]

Member Function Documentation

◆ configure()

bool AsibotConfiguration::configure ( double  q1,
double  q2u,
double  q2d,
double  q3,
double  q4u,
double  q4d,
double  q5 
)
virtual

Distinguishes between elbow up and down poses. Make sure that:

oyP = q2u + q3 + q4u = q2d - q3 + q4d
Parameters
q1IK solution for joint 1 [deg]
q2uIK solution for joint 2 (elbow up) [deg]
q2dIK solution for joint 2 (elbow down) [deg]
q3IK solution for joint 3 [deg]
q4uIK solution for joint 4 (elbow up) [deg]
q4dIK solution for joint 4 (elbow down) [deg]
q5IK solution for joint 5 [deg]
Returns
true/false on success/failure

◆ findOptimalConfiguration()

virtual bool roboticslab::AsibotConfiguration::findOptimalConfiguration ( JointsIn  qGuess)
pure virtual
Parameters
qGuessvector of joint angles for current robot position [deg]
Returns
true/false on success/failure

Implemented in roboticslab::AsibotConfigurationLeastOverallAngularDisplacement.

◆ retrieveAngles()

virtual void roboticslab::AsibotConfiguration::retrieveAngles ( JointsOut  q) const
inlinevirtual
Parameters
qvector of joint angles [deg]

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