Tetrapod Project
automatic_setpoint_publisher.cpp
Go to the documentation of this file.
1 #include "ros/ros.h"
2 #include <ros/console.h>
3 
4 #include "std_msgs/Bool.h"
5 #include "std_msgs/Float32.h"
6 
8 
9 int main(int argc, char **argv)
10 {
11  ros::init(argc, argv, "automatic_setpoint_publisher_node");
12 
13  ros::NodeHandle node_handle;
14 
15  ros::Publisher ready_to_proceed_publisher = node_handle.advertise<std_msgs::Bool>("/readyToProceed", 10);
16 
17  ros::Publisher setpoint_publisher = node_handle.advertise<std_msgs::Float32>("/set_goal", 10);
18 
19  ros::Publisher keep_logging_publisher = node_handle.advertise<std_msgs::Bool>("/logging/continue", 10);
20 
21  ros::Rate publish_rate(0.25);
22 
23  uint8_t NUMBER_OF_SETPOINTS = 5;
24 
25  double setpoints[NUMBER_OF_SETPOINTS] = {60.0, -60.0, 40.0, -20.0, 0.0};
26 
27  std_msgs::Float32 setpoint_msg;
28 
29  std_msgs::Bool ready_to_proceed_msg;
30 
31  std_msgs::Bool keep_logging_msg;
32 
33  ready_to_proceed_msg.data = true;
34 
35  keep_logging_msg.data = true;
36 
37  ros::Duration(0.5).sleep();
38 
39  ready_to_proceed_publisher.publish(ready_to_proceed_msg);
40 
41  publish_rate.sleep();
42 
43  for(int i = 0; i < NUMBER_OF_SETPOINTS; i++)
44  {
45  setpoint_msg.data = setpoints[i];
46 
47  setpoint_publisher.publish(setpoint_msg);
48 
49  ROS_INFO("Setpoint %d published", i);
50 
51  publish_rate.sleep();
52  }
53 
54  keep_logging_msg.data = false;
55 
56  keep_logging_publisher.publish(keep_logging_msg);
57 
58  ROS_INFO("Stop logging message published");
59 
60  return 0;
61 }
62 
int main(int argc, char **argv)