22 #include "MATailController.hpp" 24 #include "core/MADevice.hpp" 25 #include "core/MAValueGenerators.hpp" 26 #include "types/skits/MAMotionSkit.hpp" 27 #include "types/MARobotState.hpp" 28 #include "types/MATypeRanges.hpp" 29 #include "types/MATorso.hpp" 42 MC_WARNING(
"The global tail controller is overridden.");
52 if (MA::Tail.
get() ==
this)
68 MA::DeviceList Motors;
71 Motors.push_back(
TailPan.get());
76 void MATailController::SetPower(
bool new_state)
87 bool MATailController::IsPowerOn()
93 bool MATailController::IsMoving()
99 void MATailController::Stop()
107 MA::DeviceGeneratorsMap MATailController::Wag()
109 MA::DeviceGeneratorsMap DeviceGenerators;
114 float OneThird = (float)MA::TailTiltMin+(
float)(MA::TailTiltMax-MA::TailTiltMin) / 3;
118 MA_INSERT_DEVICEGENERATOR(DeviceGenerators,
TailTilt.get(),
TailTilt->AddGenerator(*Generator));
122 MA_INSERT_DEVICEGENERATOR(DeviceGenerators,
TailPan.get(),
TailPan->AddGenerator(*Generator));
128 MA_INSERT_DEVICEGENERATOR(DeviceGenerators,
TailTilt.get(),
TailTilt->AddGenerator(*Generator2));
130 MA_INSERT_DEVICEGENERATOR(DeviceGenerators,
TailTilt.get(),
TailTilt->AddGenerator(*Generator2));
132 MA_INSERT_DEVICEGENERATOR(DeviceGenerators,
TailTilt.get(),
TailTilt->AddGenerator(*Generator2));
134 MA_INSERT_DEVICEGENERATOR(DeviceGenerators,
TailTilt.get(),
TailTilt->AddGenerator(*Generator2));
135 return DeviceGenerators;
139 MA::DeviceGeneratorsMap MATailController::ToBack()
142 MA::DeviceGeneratorsMap DeviceGenerators;
147 MA_INSERT_DEVICEGENERATOR(DeviceGenerators,
TailTilt.get(),
TailTilt->AddGenerator(*Generator));
151 MA_INSERT_DEVICEGENERATOR(DeviceGenerators,
TailPan.get(),
TailPan->AddGenerator(*Generator));
152 return DeviceGenerators;
156 bool MATailController::IsAtBack()
const 172 return MA::DeviceGeneratorsMap();
174 MA::DeviceGeneratorsMap DeviceGenerators;
181 TailTilt->AddGeneratorContainer(*Container);
182 MA_INSERT_DEVICEGENERATOR(DeviceGenerators,
TailTilt.get(), Container);
186 TailPan->AddGeneratorContainer(*Container);
187 MA_INSERT_DEVICEGENERATOR(DeviceGenerators,
TailPan.get(), Container);
188 return DeviceGenerators;
virtual MA::DeviceList GetMotors() const override
Get the list of the motors.
boost::shared_ptr< MADevice > TailPan
Tail pan.
bool MCRangeCheck(const T &value, const T &min, const T &max)
Range check of a value.
MATailController()
Class constructor.
virtual ~MATailController()
Class destructor.
#define MC_WARNING(...)
Warning macro.
Base class for the controllers.
virtual void UpdateRobotState(MARobotState &state) override
Update the robot state.
virtual MA::DeviceGeneratorsMap GetSkitTransitionGenerators(MA::SkitBaseSPtr skit) override
Get skit transition generators.
boost::shared_ptr< MADevice > TailTilt
Tail tilt.
Generator container class.
MAGeneratorContainer * GetGeneratorContainer(MA::Leg::LegTypes leg, MA::LegJointsType joint) const
Get generator container for a leg joint.
Motion sequence (motion skit) class.
A wrapper class to cover boost::thread_specific_ptr/folly::ThreadLocal API on certain targets...
boost::scoped_ptr< MATorso > Torso
Torso.
Periodic generator class (waveform _/‾\_)