Go to the documentation of this file.
9 #ifndef CscKnowledgeItem_h
10 #define CscKnowledgeItem_h
23 using std::vector, std::string, std::numeric_limits;
40 return (types & requestedType) == requestedType;
45 void cutBeginingIfTheSame(
CscSequence *sequenceIn,
float maxIn);
47 void cutLastestIfTheSameAndWorst(
CscSequence *sequenceIn,
float maxIn);
48 void cutInternalSubSequencesIfCommonState(
CscSequence *sequenceIn);
50 bool usePivots()
const;
51 bool usePropellers()
const;
52 bool useWheels()
const;
53 bool useTranslations()
const;
62 void applyWheels(
CscSequence *result, vector<string> *names);
63 void applyWheels(
CscState *result, vector<string> *names);
65 void applyJoints(
CscState *result, vector<string> *names);
66 void applyJoints(
CscSequence *result, vector<string> *names);
70 int maxSequenceSize = 100;
71 float maxJointDelta = 100.0;
72 float maxWheelsDelta = 100.0f;
73 float maxPropellersDelta = 100.0f;
74 float maxTranslationsDelta = 100.0f;
76 bool symetricMovments =
true;
94 LimitsPivot(
int pivotId,
float limitMin,
float limitMax) : pivotId(pivotId), limitMin(limitMin), limitMax(limitMax) {
112 LimitsPropeller(
int propellerId,
float limitSpeed) : propellerId(propellerId), limitSpeed(limitSpeed) {
127 LimitsWheel(
int wheelId,
float limitSpeed) : wheelId(wheelId), limitSpeed(limitSpeed) {
144 LimitsTranslation(
int translationId,
float limitSpeed,
float limitMin,
float limitMax) : translationId(translationId), limitSpeed(limitSpeed), limitMin(limitMin), limitMax(limitMax) {
147 return translationId;
160 const map<string, float> *outputsCanMoveValues =
new map<string, float>;
162 const map<string, float> getOutputsCanMoveValues()
const;
163 vector<const LimitsPivot*> getPivotsCanMoveValues()
const;
164 vector<const LimitsPropeller*> getPropellersCanMoveValues()
const;
165 vector<const LimitsWheel*> getWheelsCanMoveValues()
const;
166 vector<const LimitsTranslation*> getTranslationsCanMoveValues()
const;
168 void setPivotsCanMoveValues(
const LimitsPivot *limitsPivot);
169 void setPropellersCanMoveValues(
const LimitsPropeller *limitsPropeller);
170 void setWheelsCanMoveValues(
const LimitsWheel *limitsWheel);
173 const vector<const TargetMemberValues *> *inputsTargetValues =
new vector<const TargetMemberValues *>();
174 const vector<const TargetMemberPonderation *> *inputsTargetPercents =
new vector<const TargetMemberPonderation *>();
176 float sequencePercentMax = 1.0;
177 float sequencePercentAvg = 0.0;
178 float sequencePercentCountStates = 0.0;
179 float sequencePercentExtrapolation = 0.0;
180 float sequencePercentAccEnd = 0.0;
182 bool optionCutLastestIfTheSameAndWorst =
false;
183 bool optionCutBeginingIfTheSame =
false;
184 bool optionDeltaPerStateMaxDegressive =
false;
185 bool strictPonderations =
false;
187 float solvedAt = 1.0;
188 float processAt = 1.0;
193 float isSupportActionDiff = 5.0;
194 float isSupportHeightDiff = 10;
195 float isSupportAccDiff = 0.3;
196 float isSupportGyroDiff = 10.0;
198 bool deploymentWhenAnotherIsSolved =
false;
199 bool deploymentInitialGlobal =
false;
200 bool selfDeploymentAnticipation =
false;
201 bool antiKinematic =
false;
203 virtual int getActionDeltaAutorized(
float initStateValue);
204 virtual int getSequenceCountAutorized(
float initStateValue);
205 virtual float getExtrapolationResult(
CscSequence *sequenceIn);
207 virtual void sequencePostTraitment(
CscSequence *sequanceIn);
210 int getDistance(
int angle1,
int angle2);
218 virtual CscState *generateRandomStateFromState(
const CscEntityModel *robotModel,
CscState *currentState,
bool symmetry,
bool sameProgressionRightLeft =
false);
223 if (
lastId >= numeric_limits<unsigned long long>::max() - 2) {
224 LOG_ERROR(
"FATAL : Csc knowledge item counter reached max - there might be a problem");
233 void setInitStateObjectiveValue(
float value);
237 float getInitStateObjectiveValue()
const;
243 virtual bool shouldAlwaysPlayInRealTime()
const;
254 virtual map<int, CscPivotMovementType> createPivotMovementTypeByPivotId(
const CscEntityModel *robotModel);
266 virtual map<int, CscPivotMovementType> getPivotMovementTypeByPivotId(
const CscEntityModel *robotModel);
276 inline static unsigned long long lastId = 0;
281 float initStateObjectiveValue = 0.0;
283 vector<const LimitsPivot*> *pivotsCanMoveValues =
new vector<const LimitsPivot*>;
284 vector<const LimitsPropeller*> *propellersCanMoveValues =
new vector<const LimitsPropeller*>;
285 vector<const LimitsWheel*> *wheelsCanMoveValues =
new vector<const LimitsWheel*>;
286 vector<const LimitsTranslation*> *translationsCanMoveValues =
new vector<const LimitsTranslation*>;
Definition: CscKnowledgeItem.h:107
Definition: CscWorldEntity.h:19
Definition: CscKnowledgeItem.h:122
static unsigned long long nextId()
Definition: CscKnowledgeItem.h:222
#define CSC_DLL_IMPORTEXPORT
Definition: os.h:34
CscMemberInputStatus * memberValues
Definition: CscKnowledgeItem.h:79
static std::atomic< unsigned long long > lastId
Definition: CscPhysicsSimulator.cpp:106
map< int, CscPivotMovementType > pivotMovementTypeByPivotId
Definition: CscKnowledgeItem.h:273
LimitsTranslation(int translationId, float limitSpeed, float limitMin, float limitMax)
Definition: CscKnowledgeItem.h:144
Definition: CscKnowledgeItem.h:88
Definition: CscEntityModel.h:54
@ INVERSE_KINEMATIC
Definition: CscKnowledgeItem.h:34
int getPivotId() const
Definition: CscKnowledgeItem.h:96
string knowledgeItemName
Definition: CscKnowledgeItem.h:57
float getLimitSpeed() const
Definition: CscKnowledgeItem.h:117
int getWheelId() const
Definition: CscKnowledgeItem.h:129
CscKnowledgeItemType
Definition: CscKnowledgeItemType.h:14
float getLimitSpeed() const
Definition: CscKnowledgeItem.h:132
int getTranslationId() const
Definition: CscKnowledgeItem.h:146
Definition: CscKnowledgeItem.h:137
uint64_t CscArtificialIntelligenceTypes
Definition: CommandParser.h:21
Definition: CscEntityReflexion.h:35
LimitsWheel(int wheelId, float limitSpeed)
Definition: CscKnowledgeItem.h:127
@ INVERSE_KINEMATIC_JACOBIAN
Definition: CscKnowledgeItem.h:35
optional< string > relativeToMemberName
Definition: CscKnowledgeItem.h:80
const CscArtificialIntelligenceTypes aiTypes
Definition: CscKnowledgeItem.h:220
float getLimitMax() const
Definition: CscKnowledgeItem.h:155
Definition: CscState.h:24
float getLimitMin() const
Definition: CscKnowledgeItem.h:99
Definition: CscKnowledgeItem.h:78
optional< string > relativeToMemberName
Definition: CscKnowledgeItem.h:85
LimitsPivot(int pivotId, float limitMin, float limitMax)
Definition: CscKnowledgeItem.h:94
map< int, float > maxPivotDeltaByPivotId
Definition: CscKnowledgeItem.h:75
float getLimitSpeed() const
Definition: CscKnowledgeItem.h:149
#define LOG_ERROR(message)
Definition: conscience_log.h:194
float getLimitMax() const
Definition: CscKnowledgeItem.h:102
bool hasAIType(CscArtificialIntelligenceTypes types, CscArtificialIntelligenceType requestedType)
Definition: CscKnowledgeItem.h:39
CscKnowledgeItemType knowledgeType
Definition: CscKnowledgeItem.h:61
const ptr< CscObjectModel > const string const CscPoint3d const CscPoint3d optional< string >
Definition: environmentObjectsCommands.h:373
int getPropellerId() const
Definition: CscKnowledgeItem.h:114
float getLimitMin() const
Definition: CscKnowledgeItem.h:152
CscMemberInputPonderation * memberValues
Definition: CscKnowledgeItem.h:84
Definition: CscKnowledgeItem.h:83
int knowledgeItemId
Definition: CscKnowledgeItem.h:56
Definition: CscKnowledgeItem.h:43
LimitsPropeller(int propellerId, float limitSpeed)
Definition: CscKnowledgeItem.h:112
@ NONE
Definition: CscKnowledgeItem.h:32
@ GENETIC
Definition: CscKnowledgeItem.h:33
Definition: CscSequence.h:51
CscArtificialIntelligenceType
Definition: CscKnowledgeItem.h:27