00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef __Parcour_h_
00010 #define __Parcour_h_
00011
00012 #include "Tools/Math/Pose2D.h"
00013 #include "Tools/Math/Vector3.h"
00014
00015
00016
00017
00018
00019
00020 class Parcour
00021 {
00022 public:
00023
00024 Parcour():updateCount(0),startTime(0),lastTime(0),lastRobotPose(0,0,0),minX(-1000),maxX(-1000),yDiffIntegral(0),arcDiffIntegral(0),blindCount(0),zAccelIntegral(0) {}
00025
00026
00027 ~Parcour() {}
00028
00029
00030 void start();
00031
00032
00033 void update(Pose2D robotPose, Vector3<double> accel, bool blind);
00034
00035
00036 Pose2D getMotionRequest();
00037
00038
00039 double getUnifiedSpeed();
00040
00041 unsigned long updateCount;
00042
00043
00044 virtual Pose2D getTargetPose(unsigned long targetTime) = 0;
00045
00046 unsigned long startTime;
00047 unsigned long lastTime;
00048 Pose2D lastRobotPose;
00049 double minX,maxX;
00050 double yDiffIntegral;
00051 double arcDiffIntegral;
00052 int blindCount;
00053 double zAccelIntegral;
00054 };
00055
00056
00057
00058
00059
00060
00061 class ForwardTurningParcour : public Parcour
00062 {
00063 public:
00064 virtual Pose2D getTargetPose(unsigned long targetTime);
00065 };
00066
00067
00068
00069
00070
00071
00072 class SimpleBackwardParcour : public Parcour
00073 {
00074 public:
00075 virtual Pose2D getTargetPose(unsigned long targetTime);
00076 };
00077
00078 #endif //__Parcour_h_
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100