00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef __GT2004PotentialFieldBasicBehaviors_h_
00010 #define __GT2004PotentialFieldBasicBehaviors_h_
00011
00012 #include "Tools/Xabsl2/Xabsl2Engine/Xabsl2Engine.h"
00013 #include "Tools/PotentialFields/GTStandardConverter.h"
00014 #include "Modules/BehaviorControl/BehaviorControl.h"
00015 #include "Tools/Xabsl2/Xabsl2Engine/Xabsl2BasicBehavior.h"
00016
00017
00018
00019
00020
00021
00022
00023 class GT2004PotentialFieldBasicBehavior : public Xabsl2BasicBehavior,
00024 public BehaviorControlInterfaces
00025 {
00026 public:
00027
00028
00029
00030
00031
00032 GT2004PotentialFieldBasicBehavior(const BehaviorControlInterfaces& interfaces,
00033 Xabsl2ErrorHandler& errorHandler, const char* behaviorName, const char* pfcFileName):
00034 Xabsl2BasicBehavior(behaviorName, errorHandler),
00035 BehaviorControlInterfaces(interfaces)
00036 {
00037 potentialfields.load(pfcFileName);
00038 };
00039
00040
00041 virtual void execute() = 0;
00042
00043 protected:
00044
00045 GTStandardConverter potentialfields;
00046
00047 PotentialfieldResult result;
00048 };
00049
00050
00051 class GT2004PotentialFieldBasicBehaviorGoToPose : public GT2004PotentialFieldBasicBehavior
00052 {
00053 public:
00054
00055
00056
00057
00058
00059 GT2004PotentialFieldBasicBehaviorGoToPose(const BehaviorControlInterfaces& interfaces,
00060 Xabsl2ErrorHandler& errorHandler);
00061
00062
00063 virtual void execute();
00064
00065 private:
00066
00067 double x;
00068
00069 double y;
00070
00071 double destinationAngle;
00072
00073 double maxSpeed;
00074 };
00075
00076
00077 class GT2004PotentialFieldBasicBehaviorSupport : public GT2004PotentialFieldBasicBehavior
00078 {
00079 public:
00080
00081
00082
00083
00084
00085 GT2004PotentialFieldBasicBehaviorSupport(const BehaviorControlInterfaces& interfaces,
00086 Xabsl2ErrorHandler& errorHandler);
00087
00088
00089 virtual void execute();
00090
00091 private:
00092
00093 double x;
00094
00095 double y;
00096
00097 double maxSpeed;
00098 };
00099
00100
00101 class GT2004PotentialFieldBasicBehaviorOffensiveSupport : public GT2004PotentialFieldBasicBehavior
00102 {
00103 public:
00104
00105
00106
00107
00108
00109 GT2004PotentialFieldBasicBehaviorOffensiveSupport(const BehaviorControlInterfaces& interfaces,
00110 Xabsl2ErrorHandler& errorHandler);
00111
00112
00113 virtual void execute();
00114
00115 private:
00116
00117 double x;
00118
00119 double y;
00120
00121 double maxSpeed;
00122 };
00123
00124
00125
00126
00127
00128
00129
00130 class GT2004PotentialFieldBasicBehaviors : public BehaviorControlInterfaces
00131 {
00132 public:
00133
00134
00135
00136 GT2004PotentialFieldBasicBehaviors(BehaviorControlInterfaces& interfaces,
00137 Xabsl2ErrorHandler& errorHandler):
00138 BehaviorControlInterfaces(interfaces),
00139 errorHandler(errorHandler),
00140 potentialFieldGoToPose(interfaces, errorHandler),
00141 potentialFieldSupport(interfaces, errorHandler),
00142 potentialFieldOffensiveSupport(interfaces, errorHandler)
00143 {}
00144
00145
00146 void registerBasicBehaviors(Xabsl2Engine& engine);
00147
00148
00149 void update();
00150
00151 private:
00152
00153 Xabsl2ErrorHandler& errorHandler;
00154
00155
00156
00157 GT2004PotentialFieldBasicBehaviorGoToPose potentialFieldGoToPose;
00158 GT2004PotentialFieldBasicBehaviorSupport potentialFieldSupport;
00159 GT2004PotentialFieldBasicBehaviorOffensiveSupport potentialFieldOffensiveSupport;
00160
00161 };
00162
00163 #endif // __GT2004PotentialFieldBasicBehaviors_h_
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174
00175
00176
00177