feet_pose_generator_node.cpp
Go to the documentation of this file.
2 
4 {
6  : feet_pose_generator(nh)
7 {
8  // subscribe topics
12 
13  // start own services
15 
16  // init action servers
17  generate_feet_pose_as = SimpleActionServer<msgs::GenerateFeetPoseAction>::create(nh, "generate_feet_pose", true, boost::bind(&FeetPoseGeneratorNode::generateFeetPoseAction, this, boost::ref(generate_feet_pose_as)));
18 }
19 
21 {
22 }
23 
24 // --- service calls ---
25 
26 bool FeetPoseGeneratorNode::generateFeetPoseService(msgs::GenerateFeetPoseService::Request& req, msgs::GenerateFeetPoseService::Response& resp)
27 {
28  resp.status = feet_pose_generator.generateFeetPose(req.request, resp.feet);
29  return true; // return always true so the message is returned
30 }
31 
32 //--- action server calls ---
33 
34 void FeetPoseGeneratorNode::generateFeetPoseAction(SimpleActionServer<msgs::GenerateFeetPoseAction>::Ptr& as)
35 {
36  const msgs::GenerateFeetPoseGoalConstPtr& goal(as->acceptNewGoal());
37 
38  // check if new goal was preempted in the meantime
39  if (as->isPreemptRequested())
40  {
41  as->setPreempted();
42  return;
43  }
44 
45  msgs::GenerateFeetPoseResult result;
46  result.header = goal->request.header;
47  result.status = feet_pose_generator.generateFeetPose(goal->request, result.feet);
48 
49  as->finish(result);
50 }
51 }
52 
53 int main(int argc, char **argv)
54 {
55  ros::init(argc, argv, "feet_pose_generator");
56  ros::NodeHandle nh;
58  ros::spin();
59 
60  return 0;
61 }
Subscriber subscribe(const std::string &topic, uint32_t queue_size, void(T::*fp)(M), T *obj, const TransportHints &transport_hints=TransportHints())
SimpleActionServer< msgs::GenerateFeetPoseAction >::Ptr generate_feet_pose_as
ROSCPP_DECL void init(int &argc, char **argv, const std::string &name, uint32_t options=0)
ServiceServer advertiseService(const std::string &service, bool(T::*srv_func)(MReq &, MRes &), T *obj)
void setTerrainModel(const vigir_terrain_classifier::TerrainModelMsg::ConstPtr &terrain_model)
ROSCPP_DECL void spin(Spinner &spinner)
void setRobotPose(const geometry_msgs::PoseStampedConstPtr &robot_pose)
bool generateFeetPoseService(msgs::GenerateFeetPoseService::Request &req, msgs::GenerateFeetPoseService::Response &resp)
void generateFeetPoseAction(SimpleActionServer< msgs::GenerateFeetPoseAction >::Ptr &as)
msgs::ErrorStatus generateFeetPose(const msgs::FeetPoseRequest &request, msgs::Feet &feet)
int main(int argc, char **argv)
void setRobotPoseWithCovariance(const geometry_msgs::PoseWithCovarianceStampedConstPtr &robot_pose)


vigir_feet_pose_generator
Author(s): Alexander Stumpf
autogenerated on Sun Nov 17 2019 03:29:56