00001
00002
00003
00004
00005
00006
00007 #ifndef __WalkingEngine_h_
00008 #define __WalkingEngine_h_
00009
00010 #include "Tools/Module/Module.h"
00011 #include "Tools/RobotConfiguration.h"
00012
00013 #include "Representations/Motion/JointData.h"
00014 #include "Representations/Motion/PIDData.h"
00015 #include "Representations/Perception/SensorDataBuffer.h"
00016 #include "Representations/Motion/OdometryData.h"
00017 #include "Representations/Motion/MotionInfo.h"
00018
00019 #include "InvKinWalkingParameters.h"
00020 #include "GT2004ParameterSet.h"
00021
00022 #include "GT2005Parameters.h"
00023 #include "GT2005DebugData.h"
00024
00025
00026
00027
00028
00029
00030 class WalkingEngineInterfaces
00031 {
00032 public:
00033
00034 WalkingEngineInterfaces(
00035 const SensorDataBuffer& sensorDataBuffer,
00036 const InvKinWalkingParameters& invKinWalkingParameters,
00037 const GT2004Parameters& gt2004Parameters,
00038 const unsigned long& walkParameterTimeStamp,
00039 const bool& receivedNewSensorData,
00040 const MotionRequest::MotionID& lastMotionType,
00041 PIDData& pidData,
00042 OdometryData& odometryData,
00043 MotionInfo& motionInfo,
00044
00045 GTWalkParametersIndividual& gt2005Parameters,
00046 GT2005DebugData& gt2005DebugData)
00047 : sensorDataBuffer(sensorDataBuffer),
00048 invKinWalkingParameters(invKinWalkingParameters),
00049 gt2004Parameters(gt2004Parameters),
00050 walkParameterTimeStamp(walkParameterTimeStamp),
00051 receivedNewSensorData(receivedNewSensorData),
00052 lastMotionType(lastMotionType),
00053 pidData(pidData),
00054 odometryData(odometryData),
00055 motionInfo(motionInfo),
00056
00057 gt2005Parameters(gt2005Parameters),
00058 gt2005DebugData(gt2005DebugData)
00059 {}
00060
00061 protected:
00062
00063 const SensorDataBuffer& sensorDataBuffer;
00064
00065
00066 const InvKinWalkingParameters& invKinWalkingParameters;
00067 const GT2004Parameters& gt2004Parameters;
00068 const unsigned long& walkParameterTimeStamp;
00069
00070
00071 const bool& receivedNewSensorData;
00072
00073
00074 const MotionRequest::MotionID& lastMotionType;
00075
00076
00077 PIDData& pidData;
00078
00079
00080 OdometryData& odometryData;
00081
00082
00083 MotionInfo& motionInfo;
00084
00085
00086 GTWalkParametersIndividual& gt2005Parameters;
00087 GT2005DebugData& gt2005DebugData;
00088 };
00089
00090
00091
00092
00093
00094
00095
00096 class WalkingEngine : public Module, protected WalkingEngineInterfaces, protected RobotDimensions
00097 {
00098 public:
00099
00100
00101
00102
00103 WalkingEngine(const WalkingEngineInterfaces& interfaces)
00104 : WalkingEngineInterfaces(interfaces),
00105 RobotDimensions(getRobotConfiguration().getRobotDimensions())
00106 {}
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116 virtual bool executeParameterized(JointData& jointData,
00117 const WalkRequest& walkRequest, double positionInWalkingCycle) = 0;
00118
00119
00120 virtual ~WalkingEngine() {}
00121
00122 private:
00123
00124 virtual void execute() {};
00125 };
00126
00127 #endif //__WalkingEngine_h_