Go to the documentation of this file. 1 #ifndef CscSequencePositionStrategy_H_
2 #define CscSequencePositionStrategy_H_
void setReferenceStartForComputeSpeed(CscPoint3d *position)
return a state with the power on all wheels
Definition: CscSequencePositionStrategy.cpp:84
void lastProcess() override
Definition: CscSequencePositionStrategy.cpp:337
int index
Definition: CscSequencePositionStrategy.h:80
CscPoint3d * positionForComputeSpeed
Definition: CscSequencePositionStrategy.h:82
The CscPoint3d class represents a point in three-dimensional space. It is primarily used to denote a ...
Definition: Csc3dTypes.h:24
double positionErrorOnLine(CscPoint3d *currentPos, CscPoint3d *linePoint1, CscPoint3d *linePoint2)
return the small distance between the current positon and the ligne
Definition: CscSequencePositionStrategy.cpp:174
const double DISTANCE_FOR_ERROR_PREDICTION_IN_CM
Definition: CscSequencePositionStrategy.h:108
CscPoint3d * lastTargetPosition
Definition: CscSequencePositionStrategy.h:84
CscEnvironmentSimulator * simulator
Definition: CscAbstractSequenceProcessingStrategy.h:19
double yaw
Definition: CscSequencePositionStrategy.h:92
~CscSequencePositionStrategy() override
Definition: CscSequencePositionStrategy.cpp:26
Definition: CscSequencePositions.h:23
Definition: CscAbstractSequenceProcessingStrategy.h:14
bool isProcessed() override
Definition: CscSequencePositionStrategy.cpp:328
void entityTurn(double delta, double val, bool backward=false)
update the power left and right wheel , and applicate a correction with the orientation delta
Definition: CscSequencePositionStrategy.cpp:121
double currentTurnSpeed
Definition: CscSequencePositionStrategy.h:97
CscSequence * globalSequence
Definition: CscAbstractSequenceProcessingStrategy.h:21
CscState * getNewStateWithWheelPower(double leftPower, double rightPower)
return a state with the good value for the wheel with the power left and right give
Definition: CscSequencePositionStrategy.cpp:160
Definition: CscEntityReflexion.h:46
CscPoint3d * currentPosition
Definition: CscSequencePositionStrategy.h:81
void updateCurrentEntityInformations()
Definition: CscSequencePositionStrategy.cpp:152
void computeSpeedPowerFromTwoPositionAndDelta(CscPoint3d *currentPosition, CscPoint3d *firstPosition, CscPoint3d *secondPosition, double delta)
compute power off wheel with the current position and two other position. use the enslavement paramet...
Definition: CscSequencePositionStrategy.cpp:68
void terminateSequence() override
Definition: CscSequencePositionStrategy.cpp:351
void computeWheelPower()
Definition: CscSequencePositionStrategy.cpp:147
double integral
Definition: CscSequencePositionStrategy.h:106
double powerLeft
Definition: CscSequencePositionStrategy.h:94
double computeDistanceBetweenTwoPoint(CscPoint3d *firstPoint, CscPoint3d *secondPoint)
compute the distance between two position
Definition: CscSequencePositionStrategy.cpp:80
Definition: CscState.h:24
double currentForwardSpeed
Definition: CscSequencePositionStrategy.h:98
double maxCorrectionStep
Definition: CscSequencePositionStrategy.h:90
CscPoint3d * referenceStartForComputeSpeed
Definition: CscSequencePositionStrategy.h:87
CscPoint3d getProjectedPositionOnLine(CscPoint3d *position, CscPoint3d *linePoint1, CscPoint3d *linePoint2)
the method returns a position projected on the line. This means the position closest to the position ...
Definition: CscSequencePositionStrategy.cpp:245
double lastCorrection
Definition: CscSequencePositionStrategy.h:88
double computeEnslavementError(CscPoint3d *position, double heading, CscPoint3d *linePoint1, CscPoint3d *linePoint2)
this method calculates the error according to the position and the orientation of the robot,...
Definition: CscSequencePositionStrategy.cpp:234
double deltaPosition
Definition: CscSequencePositionStrategy.h:101
CscPoint3d * targetPosition
Definition: CscSequencePositionStrategy.h:83
double powerRight
Definition: CscSequencePositionStrategy.h:95
const string worldEntityId
Definition: CscAbstractSequenceProcessingStrategy.h:18
void enslavementWheelPower(double speed, double error)
this method actualise the power left and right of wheels, she use a PID for compute correction for wh...
Definition: CscSequencePositionStrategy.cpp:190
bool entityArrivedToTarget(CscPoint3d *currentPosition, CscPoint3d *projectedPosition, CscPoint3d *lastTarget, CscPoint3d *target, double distance)
Definition: CscSequencePositionStrategy.cpp:92
void entityForwardOrBackward(double speed, double delta)
update the power left and right wheel , and applicate a correction with the orientation delta
CscSequencePositionStrategy(CscSequence *globalSequence, const string &worldEntityId, CscEnvironmentSimulator *simulator)
Definition: CscSequencePositionStrategy.cpp:23
Definition: CscEnvironmentSimulator.h:31
int getSequenceIndex() override
Definition: CscSequencePositionStrategy.cpp:343
Definition: CscSequencePositionStrategy.h:14
double delta
Definition: CscSequencePositionStrategy.h:100
double previousError
Definition: CscSequencePositionStrategy.h:105
Definition: Csc3dTypes.h:265
bool backwardRequest
Definition: CscSequencePositionStrategy.h:103
void breakSequence() override
Definition: CscSequencePositionStrategy.cpp:347
double accuracy
Definition: CscSequencePositionStrategy.h:93
void process() override
Definition: CscSequencePositionStrategy.cpp:32
double getYawInDegreesFromSimulatorPositionAndRotation(CscPoint3dOriented *positionAndRotation)
Definition: CscSequencePositionStrategy.cpp:270
CscPoint3d * lastLastTargetPosition
Definition: CscSequencePositionStrategy.h:85
void updateDeltaAndPositionError()
Definition: CscSequencePositionStrategy.cpp:282
Definition: CscSequence.h:51
CscPoint3d * referenceStart
Definition: CscSequencePositionStrategy.h:86