4 #include <parsernode/common.h>
5 #include <tf/transform_datatypes.h>
25 bool operator()(std::function<
bool(
void)>
const &input_function,
26 std::chrono::seconds timeout) {
27 auto start = std::chrono::system_clock::now();
28 std::chrono::seconds duration(0);
29 while (input_function() == !done && duration.count() < timeout.count()) {
31 std::this_thread::sleep_for(std::chrono::milliseconds(100));
32 duration = std::chrono::duration_cast<std::chrono::seconds>(
33 std::chrono::system_clock::now() - start);
35 return input_function();
51 nh_send_.advertise<geometry_msgs::PoseStamped>(
"goal_pose_command", 1);
61 std_msgs::String event_msg;
62 event_msg.data = event;
72 geometry_msgs::PoseStamped pose_msg;
73 pose_msg.pose.position.x = position_yaw.
x;
74 pose_msg.pose.position.y = position_yaw.
y;
75 pose_msg.pose.position.z = position_yaw.
z;
76 pose_msg.pose.orientation =
77 tf::createQuaternionMsgFromYaw(position_yaw.
yaw);
89 return PositionYaw(quad_data.localpos.x, quad_data.localpos.y,
90 quad_data.localpos.z, quad_data.rpydata.z);
bool operator()(std::function< bool(void)> const &input_function, std::chrono::seconds timeout)
Waits until timeout or the input function returns done.
Definition: test_utils.h:25
double y
y component in m
Definition: position.h:23
void publishPoseCommand(PositionYaw position_yaw)
Helper function to publish specified position_yaw command.
Definition: test_utils.h:71
void statusCallback(std_msgs::String status)
Callback to set the status received from UAV.
Definition: test_utils.h:114
bool isStatusConnected()
Helper function to check if status subscriber to connected UAV status publisher.
Definition: test_utils.h:99
ros::NodeHandle nh_receive_status_
Receive status.
Definition: test_utils.h:104
std::string status_
Definition: test_utils.h:102
double x
x component in m
Definition: position.h:22
Stores Position, yaw. PositionYaw is used as the goal for UAV systems.
Definition: position_yaw.h:10
ros::Publisher event_pub_
Event publisher.
Definition: test_utils.h:105
ros::NodeHandle nh_send_
Send events.
Definition: test_utils.h:103
Base Test fixture class for reducing code redundancy in system handler tests.
Definition: test_utils.h:42
ros::Publisher pose_pub_
Pose command publisher.
Definition: test_utils.h:106
Functor class that waits until the input function results in the template parameter or timeout which ...
Definition: test_utils.h:16
void publishEvent(std::string event)
Helper function to publish specified event specified.
Definition: test_utils.h:60
double yaw
Orientation about body axis rad.
Definition: position_yaw.h:51
double z
z component in m
Definition: position.h:24
ros::Subscriber status_subscriber_
System status subscriber.
Definition: test_utils.h:107
PositionYaw getPositionYaw(parsernode::common::quaddata quad_data)
Helper function to return position and yaw from UAV data.
Definition: test_utils.h:88
BaseTestPubSubs()
Constructor.
Definition: test_utils.h:48