10 #include <bench_vis/bench_vis_config.h>
11 #include <walk_and_kick/wak_gc_ros.h>
12 #include <walk_and_kick/wak_gc_vars.h>
13 #include <walk_and_kick/wak_tc_ros.h>
14 #include <walk_and_kick/wak_tc_vars.h>
15 #include <rrlogger/LoggerHeartbeat.h>
16 #include <vis_utils/marker_manager.h>
21 #include <walk_and_kick/wak_common.h>
22 #include <walk_and_kick/wak_beh_manager.h>
23 #include <walk_and_kick/wak_game_manager.h>
24 #include <boost/lexical_cast.hpp>
25 #include <rot_conv/rot_conv.h>
26 #include <plot_msgs/plot_manager.h>
27 #include <walk_and_kick/wak_utils.h>
30 #define ROBOT_LIMIT 10
36 class GeneralMarkerManager :
public vis_utils::MarkerManager
39 explicit GeneralMarkerManager();
40 const std::string behField;
44 config_server::Parameter<bool> m_plotData;
45 plot_msgs::PlotManagerFS m_PM;
46 void configurePlotManager();
51 PM_GC_TIMESINCEPACKETBASE,
52 PM_GC_TIMESINCEPACKETEXTRA,
58 PM_GC_TIMEREMAINING_RAW,
59 PM_GC_TIMEREMAINING_SMOOTH,
60 PM_GC_SECONDARYTIME_RAW,
61 PM_GC_SECONDARYTIME_SMOOTH,
62 PM_GC_TIMETOBALLINPLAY_RAW,
63 PM_GC_TIMETOBALLINPLAY_SMOOTH,
64 PM_GC_OWNPENALTYSTATE,
65 PM_GC_OWNPENALTYTIME_RAW,
66 PM_GC_OWNPENALTYTIME_SMOOTH,
77 class RobotMarkerManager :
public vis_utils::MarkerManager
80 explicit RobotMarkerManager(std::string robot);
81 void updateMarkerXYZ(vis_utils::GenMarker& marker,
bool show,
float x = 0.0f,
float y = 0.0f,
float z = 0.0f,
float rot = 0.0f,
float a = 1.0f);
83 const std::string behField;
86 vis_utils::BoxMarker robot_trunk;
87 vis_utils::SphereMarker robot_head;
88 vis_utils::TextMarker robot_name;
89 vis_utils::SphereMarker ball;
90 vis_utils::BoxMarker goalMarker;
91 vis_utils::ArrowMarker compass;
92 vis_utils::SphereMarker eye1;
93 vis_utils::SphereMarker eye2;
94 vis_utils::TextMarker ModeStateText;
95 vis_utils::TextMarker GameStateText;
96 vis_utils::TextMarker BehStateText;
97 vis_utils::TextMarker RoleText;
98 vis_utils::TextMarker StableText;
99 vis_utils::BoxMarker wt_cross1;
100 vis_utils::BoxMarker wt_cross2;
101 vis_utils::TextMarker northLabel;
102 vis_utils::CylinderMarker obstacle;
104 config_server::Parameter<bool> m_plotData;
105 plot_msgs::PlotManagerFS m_PM;
109 void configurePlotManager();
113 PM_TIME_SINCE_LAST_RECEIVED,
139 PM_OBSTACLE_CLOSEST_X,
140 PM_OBSTACLE_CLOSEST_Y,
141 PM_OBSTACLE_CLOSEST_CONF,
142 PM_OBSTACLE_CLOSEST_VALID,
145 PM_WALKING_TARGET_VALID,
146 PM_TIME_SINCE_GC_BASE,
147 PM_TIME_SINCE_GC_EXTRA,
153 ros::Time last_recieved;
160 typedef boost::shared_ptr<RobotMarkerManager> RMM_ptr;
161 typedef std::map<unsigned int, RMM_ptr> RMM_map;
162 typedef std::map<unsigned int, uint16_t> PackID_to_UID_map;
169 explicit BenchVis(ros::NodeHandle& nh);
178 ros::NodeHandle m_nh;
189 GeneralMarkerManager gmm;
192 PackID_to_UID_map pID_to_UID;
197 void updateLoggerState();
198 void publishLoggerState(
bool log);
199 rrlogger::LoggerHeartbeat m_loggerMsg;
200 ros::Publisher m_pub_logger;
201 ros::Time m_loggerStamp;
202 uint16_t last_packetID;
204 const static float colors[ROBOT_LIMIT+1][3];
An interface class to the ROS world for getting game controller messages.
Definition: wak_gc_ros.h:21
A class that encapsulates all of the game controller input data to the walk and kick node...
Definition: wak_gc_vars.h:29
An interface class to the ROS world for team communications.
Definition: wak_tc_ros.h:30
A class that encapsulates all of the team communication input data to the walk and kick node...
Definition: wak_tc_vars.h:37
A simple class for abstracting away the source of the field dimensions.
Definition: wak_utils.h:216