NimbRo ROS Soccer Package
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
wak_vis.h
1 // Walk and kick: Visualisation
2 // Author: Philipp Allgeuer <pallgeuer@ais.uni-bonn.de>
3 
4  // Ensure header is only included once
5 #ifndef WAK_VIS_H
6 #define WAK_VIS_H
7 
8 // Includes
9 #include <walk_and_kick/wak_config.h>
10 #include <walk_and_kick/wak_utils.h>
11 #include <vis_utils/marker_manager.h>
12 
13 // Walk and kick namespace
14 namespace walk_and_kick
15 {
21  class WAKMarkerMan : public vis_utils::MarkerManager
22  {
23  public:
24  // Constants
25  static const int NumCirclePoints = 51;
26 
27  // Constructor
28  explicit WAKMarkerMan(WAKConfig& config);
29 
30  // Config parameters
31  WAKConfig& config;
32 
33  // Field dimensions
34  const FieldDimensions field;
35 
36  // Reference frames
37  const std::string egoTrunk;
38  const std::string egoFloor;
39  const std::string alloFrame;
40 
41  // Function intercepts
42  void clear(ros::Time stamp);
43  void publish();
44 
45  // Helper functions
46  void updateMarkerXY(vis_utils::GenMarker& marker, bool show, float x = 0.0f, float y = 0.0f, float a = 1.0f);
47 
48  // Publish a foreign marker array
49  void publishMarkerArray(const visualization_msgs::MarkerArray& markers) { m_pub_markers.publish(markers); }
50 
51  // Markers
52  vis_utils::SphereMarker BallTarget;
53  vis_utils::SphereMarker Ball;
54  vis_utils::TextMarker BallTargetType;
55  vis_utils::BoxMarker BallTargetWidthBox;
56  vis_utils::GenMarker BallToTargetLine;
57  vis_utils::GenMarker BallToTargetWedge;
58  vis_utils::GenMarker WalkingTarget;
59  vis_utils::GenMarker WalkingTargetTol;
60  vis_utils::CylinderMarker ObstacleA;
61  vis_utils::CylinderMarker ObstacleB;
62  vis_utils::ArrowMarker TargetPoseArrow;
63  vis_utils::TextMarker ModeStateText;
64  vis_utils::TextMarker GameStateText;
65  vis_utils::TextMarker BehStateText;
66  vis_utils::TextMarker SubStateText;
67  vis_utils::BoxMarker GoalSign;
68  vis_utils::ArrowMarker GcvXY;
69  vis_utils::ArrowMarker GcvZ;
70  vis_utils::ArrowMarker CompassHeading;
71  vis_utils::TextMarker CompassHeadingText;
72  vis_utils::BoxMarker SuggestedFoot;
73  vis_utils::GenMarker ReqBallOffset;
74  vis_utils::GenMarker GBBPath;
75  vis_utils::GenMarker GBBPsiDes;
76  vis_utils::GenMarker GBBBallView;
77  vis_utils::GenMarker GBBFarCircle;
78  vis_utils::GenMarker GBBNearCircle;
79  vis_utils::GenMarker GBBHaloCircle;
80  vis_utils::GenMarker GBBBehindBall;
81  vis_utils::GenMarker GBBBetaAngle;
82  vis_utils::GenMarker GBBRobotHalo;
83  vis_utils::GenMarker DBBallRegion;
84  vis_utils::GenMarker KBBallRegionL;
85  vis_utils::GenMarker KBBallRegionR;
86  vis_utils::ArrowMarker KBKickVector;
87 
88  private:
89  // Hidden variables
90  bool m_hiddenGBB;
91  };
92 
98  class WAKBagMarkerMan : public vis_utils::MarkerManager
99  {
100  public:
101  // Constructor
102  explicit WAKBagMarkerMan(WAKConfig& config);
103 
104  // Config parameters
105  WAKConfig& config;
106 
107  // Reference frames
108  const std::string egoTrunk;
109  const std::string egoFloor;
110 
111  // Update functions
112  void updateVis();
113  void updateMarkers();
114 
115  // Markers
116  vis_utils::SphereMarker RobotTrunk;
117  vis_utils::BoxMarker RobotLeftFoot;
118  vis_utils::BoxMarker RobotRightFoot;
119  vis_utils::CylinderMarker RobotLeftToe;
120  vis_utils::CylinderMarker RobotRightToe;
121  };
122 }
123 
124 #endif
125 // EOF
Configuration struct for the walk and kick node.
Definition: wak_config.h:20
Visualisation marker manager for the walk and kick node.
Definition: wak_vis.h:21
A simple class for abstracting away the source of the field dimensions.
Definition: wak_utils.h:216
Visualisation marker manager for visualisations that are intended for when playing behaviour bags...
Definition: wak_vis.h:98