10 #include <nimbro_op_interface/LEDCommand.h>
11 #include <sitting_demo/sitting_demo_fsm.h>
12 #include <limb_control/PlayCommandsSrv.h>
13 #include <nimbro_op_interface/Button.h>
14 #include <config_server/parameter.h>
15 #include <demo_msgs/DemoFSMState.h>
16 #include <robotcontrol/State.h>
17 #include <ros/service.h>
21 namespace sitting_demo
31 void loadDemoMotions();
38 void playMotion(
int motionID);
39 double sendLimbCommands(
const limb_control::PlayCommandsRequest& PCmdReq);
42 void publishFSMState(
const demo_msgs::DemoFSMState& state);
43 void publishAction(
const demo_msgs::DemoFSMState& action);
46 inline int numMotions()
const {
return (
int) m_demoMotions.size(); }
47 inline bool haveMotions()
const {
return m_haveMotions; }
48 inline bool enabled()
const {
return m_enabled && m_sittingDemoEnabled(); }
49 inline bool robotIsSitting()
const {
return m_robotIsSitting; }
50 inline const ros::Time& curStepTime()
const {
return m_curStepTime; }
51 inline const ros::Time& limbControlFinishTime()
const {
return m_limbControlFinishTime; }
58 ros::Publisher m_pub_FSMState;
59 ros::Publisher m_pub_action;
60 ros::Publisher m_pub_LEDCommand;
63 void publishLEDCommand();
64 nimbro_op_interface::LEDCommand m_LED;
67 ros::ServiceClient m_srv_playMotion;
68 ros::ServiceClient m_srv_playCommands;
71 ros::Subscriber m_sub_robotState;
73 std::string m_robotStateName;
74 bool m_robotIsSitting;
77 ros::Subscriber m_sub_button;
78 void handleButton(
const nimbro_op_interface::ButtonConstPtr& msg);
83 config_server::Parameter<bool> m_sittingDemoEnabled;
84 void handleDemoEnabled();
87 std::vector<std::string> m_demoMotions;
91 ros::Time m_curStepTime;
92 ros::Time m_limbControlFinishTime;
boost::shared_ptr< State const > StateConstPtr
Used to represent a Boost shared pointer to a constant State object.
Definition: state_controller.h:413