00001
00002
00003
00004
00005
00006
00007 #ifndef __MotionControl_h_
00008 #define __MotionControl_h_
00009
00010 #include "Tools/Module/Module.h"
00011
00012 #include "Representations/Motion/HeadMotionRequest.h"
00013 #include "Representations/Motion/JointDataBuffer.h"
00014 #include "Representations/Motion/PIDData.h"
00015 #include "Representations/Motion/OdometryData.h"
00016 #include "Representations/Motion/MotionInfo.h"
00017
00018 #include "Representations/Perception/SensorDataBuffer.h"
00019 #include "Representations/Perception/BodyPosture.h"
00020
00021 #include "Modules/WalkingEngine/GT2004ParameterSet.h"
00022
00023
00024 #include "Modules/WalkingEngine/GT2005Parameters.h"
00025 #include "Modules/WalkingEngine/GT2005DebugData.h"
00026
00027 #ifdef _WIN32
00028 #pragma warning(disable:4786)
00029
00030
00031 #endif
00032
00033
00034
00035
00036
00037
00038 class MotionControlInterfaces
00039 {
00040 public:
00041
00042 MotionControlInterfaces(
00043 const unsigned long& frameNumber,
00044 const MotionRequest& motionRequest,
00045 const HeadMotionRequest& headMotionRequest,
00046 const SensorDataBuffer& sensorDataBuffer,
00047 const BodyPosture& bodyPosture,
00048 const InvKinWalkingParameters& invKinWalkingParameters,
00049 const GT2004Parameters& gt2004Parameters,
00050 const unsigned long& walkParameterTimeStamp,
00051 const bool& receivedNewSensorData,
00052 JointDataBuffer& jointDataBuffer,
00053 PIDData& pidData,
00054 OdometryData& odometryData,
00055 MotionInfo& motionInfo,
00056 bool headIsBlockedBySpecialActionOrWalk,
00057
00058 GTWalkParametersIndividual& gt2005Parameters,
00059 GT2005DebugData& gt2005DebugData)
00060 :
00061 frameNumber(frameNumber),
00062 motionRequest(motionRequest),
00063 headMotionRequest(headMotionRequest),
00064 sensorDataBuffer(sensorDataBuffer),
00065 bodyPosture(bodyPosture),
00066 invKinWalkingParameters(invKinWalkingParameters),
00067 gt2004Parameters(gt2004Parameters),
00068 walkParameterTimeStamp(walkParameterTimeStamp),
00069 receivedNewSensorData(receivedNewSensorData),
00070 jointDataBuffer(jointDataBuffer),
00071 pidData(pidData),
00072 odometryData(odometryData),
00073 motionInfo(motionInfo),
00074 headIsBlockedBySpecialActionOrWalk(headIsBlockedBySpecialActionOrWalk),
00075
00076 gt2005Parameters(gt2005Parameters),
00077 gt2005DebugData(gt2005DebugData)
00078 {}
00079
00080 protected:
00081
00082 const unsigned long& frameNumber;
00083
00084
00085 const MotionRequest& motionRequest;
00086
00087
00088 const HeadMotionRequest& headMotionRequest;
00089
00090
00091 const SensorDataBuffer& sensorDataBuffer;
00092
00093
00094 const BodyPosture& bodyPosture;
00095
00096
00097 const InvKinWalkingParameters& invKinWalkingParameters;
00098 const GT2004Parameters& gt2004Parameters;
00099 const unsigned long& walkParameterTimeStamp;
00100
00101
00102 const bool& receivedNewSensorData;
00103
00104
00105 JointDataBuffer& jointDataBuffer;
00106
00107
00108 PIDData& pidData;
00109
00110
00111 OdometryData& odometryData;
00112
00113
00114 MotionInfo& motionInfo;
00115
00116
00117 bool headIsBlockedBySpecialActionOrWalk;
00118
00119
00120 GTWalkParametersIndividual& gt2005Parameters;
00121 GT2005DebugData& gt2005DebugData;
00122 };
00123
00124
00125
00126
00127
00128
00129
00130 class MotionControl : public Module, public MotionControlInterfaces, public RobotDimensions
00131 {
00132 public:
00133
00134
00135
00136
00137 MotionControl(const MotionControlInterfaces& interfaces)
00138 : MotionControlInterfaces(interfaces),
00139 RobotDimensions(getRobotConfiguration().getRobotDimensions())
00140 {}
00141
00142
00143 virtual ~MotionControl() {}
00144 };
00145
00146 #endif //__MotionControl_h_