00001
00002
00003
00004
00005
00006
00007 #ifndef __SpecialActions_h_
00008 #define __SpecialActions_h_
00009
00010 #include "Tools/Module/Module.h"
00011
00012 #include "Representations/Motion/JointData.h"
00013 #include "Representations/Motion/PIDData.h"
00014 #include "Representations/Motion/OdometryData.h"
00015 #include "Representations/Motion/MotionInfo.h"
00016
00017
00018
00019
00020
00021
00022 class SpecialActionsInterfaces
00023 {
00024 public:
00025
00026 SpecialActionsInterfaces(
00027 const MotionRequest& motionRequest,
00028 MotionRequest::MotionID& lastMotionType,
00029 PIDData& pidData,
00030 OdometryData& odometryData,
00031 MotionInfo& motionInfo)
00032 : motionRequest(motionRequest),
00033 lastMotionType(lastMotionType),
00034 lastWalkType(lastWalkType),
00035 pidData(pidData),
00036 odometryData(odometryData),
00037 motionInfo(motionInfo)
00038 {}
00039
00040 protected:
00041
00042 const MotionRequest& motionRequest;
00043
00044
00045 MotionRequest::MotionID& lastMotionType;
00046
00047
00048 WalkRequest::WalkType& lastWalkType;
00049
00050
00051 PIDData& pidData;
00052
00053
00054 OdometryData& odometryData;
00055
00056
00057 MotionInfo& motionInfo;
00058 };
00059
00060
00061
00062
00063
00064
00065
00066 class SpecialActions : public Module, public SpecialActionsInterfaces
00067 {
00068 public:
00069
00070
00071
00072
00073 SpecialActions(const SpecialActionsInterfaces& interfaces)
00074 : SpecialActionsInterfaces(interfaces)
00075 {}
00076
00077
00078
00079
00080
00081
00082
00083
00084 virtual bool executeParameterized(SpecialActionRequest specialActionRequest, JointData& jointData) = 0;
00085
00086
00087
00088
00089
00090
00091 virtual bool specialActionIsExecutableInWalkingCycle(int specialActionID, double walkCycle)=0;
00092
00093
00094 virtual ~SpecialActions() {}
00095
00096 private:
00097
00098 virtual void execute() {};
00099 };
00100
00101 #endif //__SpecialActions_h_