1#ifndef RVIZ_INTERFACE_H
2#define RVIZ_INTERFACE_H
4#include <geometry_msgs/PoseArray.h>
5#include <geometry_msgs/PoseStamped.h>
6#include <nav_msgs/Path.h>
7#include <quad_msgs/FootPlanDiscrete.h>
8#include <quad_msgs/FootState.h>
9#include <quad_msgs/GRFArray.h>
10#include <quad_msgs/MultiFootPlanContinuous.h>
11#include <quad_msgs/MultiFootPlanDiscrete.h>
12#include <quad_msgs/MultiFootState.h>
13#include <quad_msgs/RobotPlan.h>
14#include <quad_msgs/RobotState.h>
15#include <quad_utils/ros_utils.h>
17#include <tf2/LinearMath/Quaternion.h>
18#include <tf2_ros/transform_broadcaster.h>
19#include <visualization_msgs/Marker.h>
20#include <visualization_msgs/MarkerArray.h>
54 void grfCallback(
const quad_msgs::GRFArray::ConstPtr &msg);
67 const quad_msgs::MultiFootPlanDiscrete::ConstPtr &msg);
74 const quad_msgs::MultiFootPlanContinuous::ConstPtr &msg);
215 std::vector<int> back_left_color_;
216 std::vector<int> front_right_color_;
217 std::vector<int> back_right_color_;
218 std::vector<int> net_grf_color_;
219 std::vector<int> individual_grf_color_;
223 const int GROUND_TRUTH = 1;
224 const int TRAJECTORY = 2;
226 const int GLOBAL = 0;
229 const int CONNECT = 0;
230 const int LEAP_STANCE = 1;
231 const int FLIGHT = 2;
232 const int LAND_STANCE = 3;
A class for interfacing between RViz and quad-sdk topics.
Definition rviz_interface.h:28
ros::Publisher foot_1_plan_continuous_viz_pub_
ROS Publisher for the foot 1 plan visualization.
Definition rviz_interface.h:147
visualization_msgs::Marker trajectory_state_trace_msg_
Message for trajectory state trace.
Definition rviz_interface.h:192
ros::Subscriber discrete_body_plan_sub_
ROS subscriber for the body plan.
Definition rviz_interface.h:102
const double trace_reset_threshold_
Distance threshold for resetting the state traces.
Definition rviz_interface.h:195
ros::Publisher ground_truth_joint_states_viz_pub_
ROS Publisher for the ground truth joint states visualization.
Definition rviz_interface.h:159
ros::Subscriber grf_sub_
ROS subscriber for the current.
Definition rviz_interface.h:99
ros::Subscriber state_estimate_sub_
ROS Subscriber for the state estimate.
Definition rviz_interface.h:165
ros::Publisher ground_truth_state_trace_pub_
ROS Publisher for the ground truth state body trace.
Definition rviz_interface.h:138
void discreteBodyPlanCallback(const quad_msgs::RobotPlan::ConstPtr &msg)
Callback function to handle new body plan discrete state data.
Definition rviz_interface.cpp:380
ros::Subscriber trajectory_state_sub_
ROS Subscriber for the ground truth state.
Definition rviz_interface.h:171
void grfCallback(const quad_msgs::GRFArray::ConstPtr &msg)
Callback function to handle new grf data.
Definition rviz_interface.cpp:326
ros::Publisher local_plan_ori_viz_pub_
ROS Publisher for local plan orientation vizualization.
Definition rviz_interface.h:120
ros::Publisher global_plan_viz_pub_
ROS Publisher for the interpolated global plan vizualization.
Definition rviz_interface.h:111
visualization_msgs::Marker state_estimate_trace_msg_
Message for state estimate trace.
Definition rviz_interface.h:186
ros::Publisher current_grf_viz_pub_
ROS Publisher for the current GRFs.
Definition rviz_interface.h:117
int orientation_subsample_interval_
Interval for showing orientation of plan.
Definition rviz_interface.h:205
ros::Publisher state_estimate_trace_pub_
ROS Publisher for the state estimate body trace.
Definition rviz_interface.h:135
tf2_ros::TransformBroadcaster trajectory_base_tf_br_
Definition rviz_interface.h:183
ros::Subscriber local_plan_sub_
ROS subscriber for the local plan.
Definition rviz_interface.h:96
ros::Publisher discrete_body_plan_viz_pub_
ROS Publisher for the discrete body plan vizualization.
Definition rviz_interface.h:129
tf2_ros::TransformBroadcaster estimate_base_tf_br_
Definition rviz_interface.h:175
visualization_msgs::Marker ground_truth_state_trace_msg_
Message for ground truth state trace.
Definition rviz_interface.h:189
ros::Publisher trajectory_joint_states_viz_pub_
ROS Publisher for the trajectory joint states visualization.
Definition rviz_interface.h:162
const int ESTIMATE
Publisher IDs.
Definition rviz_interface.h:222
ros::Publisher foot_0_plan_continuous_viz_pub_
ROS Publisher for the swing leg 0 visualization.
Definition rviz_interface.h:144
ros::Subscriber ground_truth_state_sub_
ROS Subscriber for the ground truth state.
Definition rviz_interface.h:168
ros::Subscriber foot_plan_discrete_sub_
ROS subscriber for the discrete foot plan.
Definition rviz_interface.h:105
std::string map_frame_
Handle for the map frame.
Definition rviz_interface.h:208
ros::Subscriber foot_plan_continuous_sub_
ROS subscriber for the continuous foot plan.
Definition rviz_interface.h:108
ros::Publisher estimate_joint_states_viz_pub_
ROS Publisher for the estimated joint states visualization.
Definition rviz_interface.h:156
std::vector< int > front_left_color_
Colors.
Definition rviz_interface.h:214
ros::Publisher trajectory_state_trace_pub_
ROS Publisher for the trajectory state body trace.
Definition rviz_interface.h:141
ros::NodeHandle nh_
Nodehandle to pub to and sub from.
Definition rviz_interface.h:198
ros::Publisher local_plan_viz_pub_
ROS Publisher for the interpolated local plan vizualization.
Definition rviz_interface.h:114
void spin()
Calls ros spinOnce and pubs data at set frequency.
Definition rviz_interface.cpp:584
void stateEstimateCallback(const quad_msgs::RobotState::ConstPtr &msg)
Callback function to handle new state estimate data.
double update_rate_
Definition rviz_interface.h:202
std::string tf_prefix_
Handle multiple robots.
Definition rviz_interface.h:211
ros::Subscriber global_plan_sub_
ROS subscriber for the global plan.
Definition rviz_interface.h:93
ros::Publisher local_plan_grf_viz_pub_
ROS Publisher for the interpolated local plan grf vizualization.
Definition rviz_interface.h:126
ros::Publisher global_plan_grf_viz_pub_
ROS Publisher for the interpolated global plan grf vizualization.
Definition rviz_interface.h:123
void robotPlanCallback(const quad_msgs::RobotPlan::ConstPtr &msg, const int pub_id)
Callback function to handle new body plan data.
Definition rviz_interface.cpp:202
void footPlanContinuousCallback(const quad_msgs::MultiFootPlanContinuous::ConstPtr &msg)
Callback function to handle new continous foot plan data.
Definition rviz_interface.cpp:469
ros::Publisher foot_2_plan_continuous_viz_pub_
ROS Publisher for the foot 2 plan visualization.
Definition rviz_interface.h:150
void footPlanDiscreteCallback(const quad_msgs::MultiFootPlanDiscrete::ConstPtr &msg)
Callback function to handle new discrete foot plan data.
Definition rviz_interface.cpp:411
ros::Publisher foot_3_plan_continuous_viz_pub_
ROS Publisher for the foot 3 plan visualization.
Definition rviz_interface.h:153
ros::Publisher foot_plan_discrete_viz_pub_
ROS Publisher for the footstep plan visualization.
Definition rviz_interface.h:132
void robotStateCallback(const quad_msgs::RobotState::ConstPtr &msg, const int pub_id)
Callback function to handle new robot state data.
Definition rviz_interface.cpp:493
tf2_ros::TransformBroadcaster ground_truth_base_tf_br_
Definition rviz_interface.h:179