24 #include <boost/shared_ptr.hpp> 26 #include <MCThreadLocalData.hpp> 28 #include "core/MAValueGenerators.hpp" 29 #include "types/MABodyTypes.hpp" 30 #include "MAController.hpp" 35 class MAMicrophoneDevice;
57 void AddDelayToNeckJoints(
int duration = 300);
77 virtual void UpdateRobotState(
MARobotState& state)
override;
80 virtual MA::DeviceList GetMotors()
const override;
81 MADevice* GetMotor(
const MA::HeadJointsType joint)
const;
82 MA::HeadJointsType GetMotorType(
const MADevice& motor)
const;
83 void SetPower(
bool new_state);
84 bool IsPowerOn()
const;
85 bool IsMovingNeck()
const;
86 bool IsTurnedDown()
const;
87 bool IsTurnedAhead()
const;
89 MA_DECLARE_TRANSITION(TurnDownAndAhead, IsTurnedDownAndAhead)
90 MA_DECLARE_TRANSITION(TurnUp, IsTurnedUp)
91 MA_DECLARE_TRANSITION(ToNormalAhead, IsNormalAhead)
92 MA_DECLARE_TRANSITION_ACTION(GoRubbing)
93 MA_DECLARE_TRANSITION_ACTION(RubToLeft)
94 MA_DECLARE_TRANSITION_ACTION(RubToRight)
95 MA_DECLARE_TRANSITION_ACTION(FinishRubbing)
96 MA_DECLARE_TRANSITION_ACTION(DoCircle)
97 MA_DECLARE_TRANSITION_ACTION(HappyMoveToUp)
98 std::string DoHappyMovement();
99 MA_DECLARE_TRANSITION_ACTION(LookAroundLying)
100 MA_DECLARE_TRANSITION_ACTION(LookAroundSitting)
101 MA_DECLARE_TRANSITION_ACTION(TurnLeftLying)
102 MA_DECLARE_TRANSITION_ACTION(TurnRightLying)
103 MA_DECLARE_TRANSITION_ACTION(TurnLeftSitting)
104 MA_DECLARE_TRANSITION_ACTION(TurnRightSitting)
106 void PrintFeatures();
107 bool IsPowerOn(MA::HeadJointsType joint)
const;
108 void SetPower(MA::HeadJointsType joint,
bool new_state);
111 void RegisterDeviceUpdates();
112 void NotifyDeviceUpdate(
MADevice& device);
113 void Stop(MA::HeadJointsType joint);
116 virtual MA::DeviceGeneratorsMap GetSkitTransitionGenerators(MA::SkitBaseSPtr skit)
override;
130 boost::shared_ptr<MACameraDevice>
Camera;
boost::shared_ptr< MADevice > NeckTilt1
Neck tilt1.
Helper class to build head transition generators.
boost::shared_ptr< MAMicrophoneDevice > Microphone
Microphone.
boost::shared_ptr< MADevice > NeckTilt2
Neck tilt2.
Base class for the controllers.
float RubbingCenterForeBack
Store the center (fore-back) position of the rubbing.
A base class for the limb features.
The left-right turning feature of the head.
boost::shared_ptr< MADevice > NeckPan
Neck pan.
Generator container class.
boost::shared_ptr< MACameraDevice > Camera
Camera.
boost::shared_ptr< MADevice > CrownButton
Crown sensor.
Base class for generators.
float RubbingCenterLeftRight
Store the center (left-right) position of the rubbing.
A wrapper class to cover boost::thread_specific_ptr/folly::ThreadLocal API on certain targets...
boost::shared_ptr< MADevice > ChinButton
Chin sensor.
The fore-back, up-down position of the head.