Conscience Core
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
conscience_core::knowledge::CscKnowledgeItem Class Reference

#include <CscKnowledgeItem.h>

Inheritance diagram for conscience_core::knowledge::CscKnowledgeItem:
conscience_core::knowledge::CscKnowledgeItemSequence conscience_core::knowledge::CscKnowledgeItemState conscience_core::knowledge::CscKnowledgeItemTarget conscience_core::knowledge::CscKnowledgeItemMultiPodWalk conscience_core::knowledge::CscKnowledgeItemTargetArmToPosition conscience_core::knowledge::CscKnowledgeItemTargetMemberFocusState conscience_core::knowledge::CscKnowledgeItemTargetMemberToState conscience_core::knowledge::CscKnowledgeItemTargetMemberToStateFromMember

Classes

struct  LimitsPivot
 
struct  LimitsPropeller
 
struct  LimitsTranslation
 
struct  LimitsWheel
 
struct  TargetMemberPonderation
 
struct  TargetMemberValues
 

Public Member Functions

 CscKnowledgeItem (int knoItemId, string knoItemName, CscArtificialIntelligenceTypes aiTypes=CscArtificialIntelligenceType::NONE, bool outputTypes[]=NULL)
 
void applyWheels (CscSequence *result, vector< string > *names)
 
void applyWheels (CscState *result, vector< string > *names)
 
void applyJoints (CscState *result, vector< string > *names)
 
void applyJoints (CscSequence *result, vector< string > *names)
 
virtual float evaluateSequence (CscSequence *sequence, const CscWorldEntity *entity, CscState *initialStateInit)
 
virtual float evaluateState (CscState *state, const CscWorldEntity *entity, CscState *initialState)
 
const map< string, float > getOutputsCanMoveValues () const
 
vector< const LimitsPivot * > getPivotsCanMoveValues () const
 
vector< const LimitsPropeller * > getPropellersCanMoveValues () const
 
vector< const LimitsWheel * > getWheelsCanMoveValues () const
 
vector< const LimitsTranslation * > getTranslationsCanMoveValues () const
 
void setPivotsCanMoveValues (const LimitsPivot *limitsPivot)
 
void setPropellersCanMoveValues (const LimitsPropeller *limitsPropeller)
 
void setWheelsCanMoveValues (const LimitsWheel *limitsWheel)
 
void setTranslationsCanMoveValues (const LimitsTranslation *limitsTranslation)
 
virtual bool isStatesSupportOf (CscState *state1, CscState *state2)
 
virtual bool isObjectiveSupportOf (CscKnowledgeItem *knowledgeItem)
 
virtual int getActionDeltaAutorized (float initStateValue)
 
virtual int getSequenceCountAutorized (float initStateValue)
 
virtual float getExtrapolationResult (CscSequence *sequenceIn)
 
virtual void sequencePostTraitment (CscSequence *sequanceIn)
 
virtual ~CscKnowledgeItem ()
 
int getDistance (int angle1, int angle2)
 
string toString ()
 
virtual CscStategenerateRandomStateFromState (const CscEntityModel *robotModel, CscState *currentState, bool symmetry, bool sameProgressionRightLeft=false)
 
void setInitStateObjectiveValue (float value)
 
float getInitStateObjectiveValue () const
 
virtual bool shouldAlwaysPlayInRealTime () const
 
virtual map< int, CscPivotMovementTypecreatePivotMovementTypeByPivotId (const CscEntityModel *robotModel)
 Creates a map that associates each pivot ID with a constant movement type. More...
 
virtual map< int, CscPivotMovementTypegetPivotMovementTypeByPivotId (const CscEntityModel *robotModel)
 Returns a map that associates each pivot ID with a movement type. More...
 

Static Public Member Functions

static unsigned long long nextId ()
 

Public Attributes

int knowledgeItemId
 
string knowledgeItemName
 
CscKnowledgeItemType knowledgeType
 
int maxSequenceSize = 100
 
float maxJointDelta = 100.0
 
float maxWheelsDelta = 100.0f
 
float maxPropellersDelta = 100.0f
 
float maxTranslationsDelta = 100.0f
 
map< int, float > maxPivotDeltaByPivotId
 
bool symetricMovments = true
 
const map< string, float > * outputsCanMoveValues = new map<string, float>
 
const vector< const TargetMemberValues * > * inputsTargetValues = new vector<const TargetMemberValues *>()
 
const vector< const TargetMemberPonderation * > * inputsTargetPercents = new vector<const TargetMemberPonderation *>()
 
float sequencePercentMax = 1.0
 
float sequencePercentAvg = 0.0
 
float sequencePercentCountStates = 0.0
 
float sequencePercentExtrapolation = 0.0
 
float sequencePercentAccEnd = 0.0
 
bool optionCutLastestIfTheSameAndWorst = false
 
bool optionCutBeginingIfTheSame = false
 
bool optionDeltaPerStateMaxDegressive = false
 
bool strictPonderations = false
 
float solvedAt = 1.0
 
float processAt = 1.0
 
float isSupportActionDiff = 5.0
 
float isSupportHeightDiff = 10
 
float isSupportAccDiff = 0.3
 
float isSupportGyroDiff = 10.0
 
bool deploymentWhenAnotherIsSolved = false
 
bool deploymentInitialGlobal = false
 
bool selfDeploymentAnticipation = false
 
bool antiKinematic = false
 
bool outputTypes [4]
 
const CscArtificialIntelligenceTypes aiTypes
 

Protected Member Functions

void cutBeginingIfTheSame (CscSequence *sequenceIn, float maxIn)
 
void cutBeginingIfSupport (CscSequence *sequenceIn)
 
void cutLastestIfTheSameAndWorst (CscSequence *sequenceIn, float maxIn)
 
void cutInternalSubSequencesIfCommonState (CscSequence *sequenceIn)
 
bool usePivots () const
 
bool usePropellers () const
 
bool useWheels () const
 
bool useTranslations () const
 
virtual void addExtrapolationStates (CscSequence *sequenceIn, const CscWorldEntity *entity)
 

Protected Attributes

map< int, CscPivotMovementTypepivotMovementTypeByPivotId
 

Constructor & Destructor Documentation

◆ CscKnowledgeItem()

conscience_core::knowledge::CscKnowledgeItem::CscKnowledgeItem ( int  knoItemId,
string  knoItemName,
CscArtificialIntelligenceTypes  aiTypes = CscArtificialIntelligenceType::NONE,
bool  outputTypes[] = NULL 
)

◆ ~CscKnowledgeItem()

conscience_core::knowledge::CscKnowledgeItem::~CscKnowledgeItem ( )
virtual

Member Function Documentation

◆ addExtrapolationStates()

void conscience_core::knowledge::CscKnowledgeItem::addExtrapolationStates ( CscSequence sequenceIn,
const CscWorldEntity entity 
)
protectedvirtual

◆ applyJoints() [1/2]

void conscience_core::knowledge::CscKnowledgeItem::applyJoints ( CscSequence result,
vector< string > *  names 
)

◆ applyJoints() [2/2]

void conscience_core::knowledge::CscKnowledgeItem::applyJoints ( CscState result,
vector< string > *  names 
)

◆ applyWheels() [1/2]

void conscience_core::knowledge::CscKnowledgeItem::applyWheels ( CscSequence result,
vector< string > *  names 
)

◆ applyWheels() [2/2]

void conscience_core::knowledge::CscKnowledgeItem::applyWheels ( CscState result,
vector< string > *  names 
)

◆ createPivotMovementTypeByPivotId()

map< int, CscPivotMovementType > conscience_core::knowledge::CscKnowledgeItem::createPivotMovementTypeByPivotId ( const CscEntityModel robotModel)
virtual

Creates a map that associates each pivot ID with a constant movement type.

This function iterates through all the pivots in the provided robot model, and creates a map where each pivot ID is associated with a constant movement type.

Parameters
robotModelPointer to the robot model from which pivot IDs are obtained.
Returns
A map where the keys are pivot IDs and the values are constant movement types.

◆ cutBeginingIfSupport()

void conscience_core::knowledge::CscKnowledgeItem::cutBeginingIfSupport ( CscSequence sequenceIn)
protected

◆ cutBeginingIfTheSame()

void conscience_core::knowledge::CscKnowledgeItem::cutBeginingIfTheSame ( CscSequence sequenceIn,
float  maxIn 
)
protected

◆ cutInternalSubSequencesIfCommonState()

void conscience_core::knowledge::CscKnowledgeItem::cutInternalSubSequencesIfCommonState ( CscSequence sequenceIn)
protected

◆ cutLastestIfTheSameAndWorst()

void conscience_core::knowledge::CscKnowledgeItem::cutLastestIfTheSameAndWorst ( CscSequence sequenceIn,
float  maxIn 
)
protected

◆ evaluateSequence()

float conscience_core::knowledge::CscKnowledgeItem::evaluateSequence ( CscSequence sequence,
const CscWorldEntity entity,
CscState initialStateInit 
)
virtual

◆ evaluateState()

float conscience_core::knowledge::CscKnowledgeItem::evaluateState ( CscState state,
const CscWorldEntity entity,
CscState initialState 
)
virtual

◆ generateRandomStateFromState()

CscState * conscience_core::knowledge::CscKnowledgeItem::generateRandomStateFromState ( const CscEntityModel robotModel,
CscState currentState,
bool  symmetry,
bool  sameProgressionRightLeft = false 
)
virtual

◆ getActionDeltaAutorized()

int conscience_core::knowledge::CscKnowledgeItem::getActionDeltaAutorized ( float  initStateValue)
virtual

◆ getDistance()

int conscience_core::knowledge::CscKnowledgeItem::getDistance ( int  angle1,
int  angle2 
)

◆ getExtrapolationResult()

float conscience_core::knowledge::CscKnowledgeItem::getExtrapolationResult ( CscSequence sequenceIn)
virtual

◆ getInitStateObjectiveValue()

float conscience_core::knowledge::CscKnowledgeItem::getInitStateObjectiveValue ( ) const

◆ getOutputsCanMoveValues()

const map< string, float > conscience_core::knowledge::CscKnowledgeItem::getOutputsCanMoveValues ( ) const

◆ getPivotMovementTypeByPivotId()

map< int, CscPivotMovementType > conscience_core::knowledge::CscKnowledgeItem::getPivotMovementTypeByPivotId ( const CscEntityModel robotModel)
virtual

Returns a map that associates each pivot ID with a movement type.

This function checks if the map pivotMovementTypeByPivotId is empty. If it is, the function calls createPivotMovementTypeByPivotId() to create the map and then returns it. If the map is not empty, it returns the map directly.

Parameters
robotModelPointer to the robot model from which pivot IDs are obtained.
Returns
A map where the keys are pivot IDs and the values are movement types.

◆ getPivotsCanMoveValues()

vector< const CscKnowledgeItem::LimitsPivot * > conscience_core::knowledge::CscKnowledgeItem::getPivotsCanMoveValues ( ) const

◆ getPropellersCanMoveValues()

vector< const CscKnowledgeItem::LimitsPropeller * > conscience_core::knowledge::CscKnowledgeItem::getPropellersCanMoveValues ( ) const

◆ getSequenceCountAutorized()

int conscience_core::knowledge::CscKnowledgeItem::getSequenceCountAutorized ( float  initStateValue)
virtual

◆ getTranslationsCanMoveValues()

vector< const CscKnowledgeItem::LimitsTranslation * > conscience_core::knowledge::CscKnowledgeItem::getTranslationsCanMoveValues ( ) const

◆ getWheelsCanMoveValues()

vector< const CscKnowledgeItem::LimitsWheel * > conscience_core::knowledge::CscKnowledgeItem::getWheelsCanMoveValues ( ) const

◆ isObjectiveSupportOf()

bool conscience_core::knowledge::CscKnowledgeItem::isObjectiveSupportOf ( CscKnowledgeItem knowledgeItem)
virtual

◆ isStatesSupportOf()

bool conscience_core::knowledge::CscKnowledgeItem::isStatesSupportOf ( CscState state1,
CscState state2 
)
virtual

◆ nextId()

static unsigned long long conscience_core::knowledge::CscKnowledgeItem::nextId ( )
inlinestatic

◆ sequencePostTraitment()

void conscience_core::knowledge::CscKnowledgeItem::sequencePostTraitment ( CscSequence sequanceIn)
virtual

◆ setInitStateObjectiveValue()

void conscience_core::knowledge::CscKnowledgeItem::setInitStateObjectiveValue ( float  value)

◆ setPivotsCanMoveValues()

void conscience_core::knowledge::CscKnowledgeItem::setPivotsCanMoveValues ( const LimitsPivot limitsPivot)

◆ setPropellersCanMoveValues()

void conscience_core::knowledge::CscKnowledgeItem::setPropellersCanMoveValues ( const LimitsPropeller limitsPropeller)

◆ setTranslationsCanMoveValues()

void conscience_core::knowledge::CscKnowledgeItem::setTranslationsCanMoveValues ( const LimitsTranslation limitsTranslation)

◆ setWheelsCanMoveValues()

void conscience_core::knowledge::CscKnowledgeItem::setWheelsCanMoveValues ( const LimitsWheel limitsWheel)

◆ shouldAlwaysPlayInRealTime()

bool conscience_core::knowledge::CscKnowledgeItem::shouldAlwaysPlayInRealTime ( ) const
virtual

◆ toString()

string conscience_core::knowledge::CscKnowledgeItem::toString ( )

◆ usePivots()

bool conscience_core::knowledge::CscKnowledgeItem::usePivots ( ) const
protected

◆ usePropellers()

bool conscience_core::knowledge::CscKnowledgeItem::usePropellers ( ) const
protected

◆ useTranslations()

bool conscience_core::knowledge::CscKnowledgeItem::useTranslations ( ) const
protected

◆ useWheels()

bool conscience_core::knowledge::CscKnowledgeItem::useWheels ( ) const
protected

Member Data Documentation

◆ aiTypes

const CscArtificialIntelligenceTypes conscience_core::knowledge::CscKnowledgeItem::aiTypes

◆ antiKinematic

bool conscience_core::knowledge::CscKnowledgeItem::antiKinematic = false

◆ deploymentInitialGlobal

bool conscience_core::knowledge::CscKnowledgeItem::deploymentInitialGlobal = false

◆ deploymentWhenAnotherIsSolved

bool conscience_core::knowledge::CscKnowledgeItem::deploymentWhenAnotherIsSolved = false

◆ inputsTargetPercents

const vector<const TargetMemberPonderation *>* conscience_core::knowledge::CscKnowledgeItem::inputsTargetPercents = new vector<const TargetMemberPonderation *>()

◆ inputsTargetValues

const vector<const TargetMemberValues *>* conscience_core::knowledge::CscKnowledgeItem::inputsTargetValues = new vector<const TargetMemberValues *>()

◆ isSupportAccDiff

float conscience_core::knowledge::CscKnowledgeItem::isSupportAccDiff = 0.3

◆ isSupportActionDiff

float conscience_core::knowledge::CscKnowledgeItem::isSupportActionDiff = 5.0

◆ isSupportGyroDiff

float conscience_core::knowledge::CscKnowledgeItem::isSupportGyroDiff = 10.0

◆ isSupportHeightDiff

float conscience_core::knowledge::CscKnowledgeItem::isSupportHeightDiff = 10

◆ knowledgeItemId

int conscience_core::knowledge::CscKnowledgeItem::knowledgeItemId

◆ knowledgeItemName

string conscience_core::knowledge::CscKnowledgeItem::knowledgeItemName

◆ knowledgeType

CscKnowledgeItemType conscience_core::knowledge::CscKnowledgeItem::knowledgeType

◆ maxJointDelta

float conscience_core::knowledge::CscKnowledgeItem::maxJointDelta = 100.0

◆ maxPivotDeltaByPivotId

map<int, float> conscience_core::knowledge::CscKnowledgeItem::maxPivotDeltaByPivotId

◆ maxPropellersDelta

float conscience_core::knowledge::CscKnowledgeItem::maxPropellersDelta = 100.0f

◆ maxSequenceSize

int conscience_core::knowledge::CscKnowledgeItem::maxSequenceSize = 100

◆ maxTranslationsDelta

float conscience_core::knowledge::CscKnowledgeItem::maxTranslationsDelta = 100.0f

◆ maxWheelsDelta

float conscience_core::knowledge::CscKnowledgeItem::maxWheelsDelta = 100.0f

◆ optionCutBeginingIfTheSame

bool conscience_core::knowledge::CscKnowledgeItem::optionCutBeginingIfTheSame = false

◆ optionCutLastestIfTheSameAndWorst

bool conscience_core::knowledge::CscKnowledgeItem::optionCutLastestIfTheSameAndWorst = false

◆ optionDeltaPerStateMaxDegressive

bool conscience_core::knowledge::CscKnowledgeItem::optionDeltaPerStateMaxDegressive = false

◆ outputsCanMoveValues

const map<string, float>* conscience_core::knowledge::CscKnowledgeItem::outputsCanMoveValues = new map<string, float>

◆ outputTypes

bool conscience_core::knowledge::CscKnowledgeItem::outputTypes[4]

◆ pivotMovementTypeByPivotId

map<int, CscPivotMovementType> conscience_core::knowledge::CscKnowledgeItem::pivotMovementTypeByPivotId
protected

◆ processAt

float conscience_core::knowledge::CscKnowledgeItem::processAt = 1.0

◆ selfDeploymentAnticipation

bool conscience_core::knowledge::CscKnowledgeItem::selfDeploymentAnticipation = false

◆ sequencePercentAccEnd

float conscience_core::knowledge::CscKnowledgeItem::sequencePercentAccEnd = 0.0

◆ sequencePercentAvg

float conscience_core::knowledge::CscKnowledgeItem::sequencePercentAvg = 0.0

◆ sequencePercentCountStates

float conscience_core::knowledge::CscKnowledgeItem::sequencePercentCountStates = 0.0

◆ sequencePercentExtrapolation

float conscience_core::knowledge::CscKnowledgeItem::sequencePercentExtrapolation = 0.0

◆ sequencePercentMax

float conscience_core::knowledge::CscKnowledgeItem::sequencePercentMax = 1.0

◆ solvedAt

float conscience_core::knowledge::CscKnowledgeItem::solvedAt = 1.0

◆ strictPonderations

bool conscience_core::knowledge::CscKnowledgeItem::strictPonderations = false

◆ symetricMovments

bool conscience_core::knowledge::CscKnowledgeItem::symetricMovments = true

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