3 #include <vigir_generic_params/parameter_manager.h> 11 vigir_pluginlib::PluginManager::addPluginClassLoader<StepControllerPlugin>(
"vigir_step_control",
"vigir_step_control::StepControllerPlugin");
12 vigir_pluginlib::PluginManager::addPluginClassLoader<vigir_footstep_planning::StepPlanMsgPlugin>(
"vigir_footstep_planning_plugins",
"vigir_footstep_planning::StepPlanMsgPlugin");
69 ROS_ERROR(
"[StepController] executeStepPlan: No step_controller_plugin available!");
74 if (step_plan.steps.empty())
86 ROS_ERROR_THROTTLE(5.0,
"[StepController] update: No step_controller_plugin available!");
115 msgs::ExecuteStepPlanResult result;
116 result.controller_state = state;
124 msgs::ExecuteStepPlanResult result;
125 result.controller_state = state;
176 const msgs::ExecuteStepPlanGoalConstPtr& goal(as->acceptNewGoal());
179 if (as->isPreemptRequested())
void executeStepPlanAction(ExecuteStepPlanActionServerPtr as)
ros::Subscriber execute_step_plan_sub_
void publishFeedback() const
Publishes feedback messages of current state of execution.
ros::Subscriber load_step_controller_plugin_sub_
void publish(const boost::shared_ptr< M > &message) const
boost::shared_ptr< ExecuteStepPlanActionServer > execute_step_plan_as_
Subscriber subscribe(const std::string &topic, uint32_t queue_size, void(T::*fp)(M), T *obj, const TransportHints &transport_hints=TransportHints())
void executeStepPlan(const msgs::StepPlan &step_plan)
Instruct the controller to execute the given step plan. If execution is already in progress...
ros::Subscriber load_step_plan_msg_plugin_sub_
bool loadPlugin(const std::string &plugin_name, boost::shared_ptr< T > &plugin)
Loads plugin with specific name to be used by the controller. The name should be configured in the pl...
vigir_footstep_planning::StepPlanMsgPlugin::Ptr step_plan_msg_plugin_
bool initialize(ros::NodeHandle &nh, bool auto_spin=true)
Initializes step controller.
ros::Publisher feedback_pub_
StepControllerPlugin::Ptr step_controller_plugin_
#define ROS_ERROR_THROTTLE(rate,...)
bool param(const std::string ¶m_name, T ¶m_val, const T &default_val) const
StepController(ros::NodeHandle &nh)
StepController.
Timer createTimer(Rate r, Handler h, Obj o, bool oneshot=false, bool autostart=true) const
boost::unique_lock< Mutex > UniqueLock
Publisher advertise(const std::string &topic, uint32_t queue_size, bool latch=false)
void executePreemptionAction(ExecuteStepPlanActionServerPtr as)
virtual ~StepController()
actionlib::SimpleActionServer< msgs::ExecuteStepPlanAction > ExecuteStepPlanActionServer
void update(const ros::TimerEvent &event=ros::TimerEvent())
Main update loop to be called in regular intervals.
boost::shared_mutex controller_mutex_
void loadStepPlanMsgPlugin(const std_msgs::StringConstPtr &plugin_name)
ROS API.
void loadStepControllerPlugin(const std_msgs::StringConstPtr &plugin_name)