NimbRo ROS Soccer Package
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
rvizwidget.h
1 // Incorporates a RViz display
2 // Author: Max Schwarz <max.schwarz@uni-bonn.de>
3 
4 #ifndef RVIZWIDGET_H
5 #define RVIZWIDGET_H
6 
7 #include <rviz/visualization_frame.h>
8 #include <rviz/render_panel.h>
9 #include <rviz/default_plugin/marker_display.h>
10 #include <trajectory_editor/mymarkerdisplay.h>
11 
12 #include <ros/publisher.h>
13 #include <sensor_msgs/JointState.h>
14 #include <urdf/model.h>
15 
16 namespace rviz
17 {
18  class VisualizationManager;
19 }
20 
21 class RobotDisplay;
22 
23 class RVizWidget : public rviz::RenderPanel
24 {
25 Q_OBJECT
26 public:
27  explicit RVizWidget(QWidget* parent = 0);
28  virtual ~RVizWidget();
29 
30  void initialize(ros::NodeHandle* nh);
31 
32  inline boost::shared_ptr<urdf::Model> getModel() {return m_model;}
33  inline RobotDisplay* getRobot() {return m_robot;}
34 
35  void test(const visualization_msgs::Marker::ConstPtr& msg);
36  void setCameraPosition();
37 
38 public Q_SLOTS:
39  void setModel(std::string path_to_model);
40  void setModel(std::string path_to_model, std::vector<std::string> &new_joint_list);
41  void updateRobotDisplay(std::vector<std::string> &joint_list, std::vector<double> &joint_positions);
42 
43 private:
44  rviz::VisualizationManager* m_manager;
45  boost::shared_ptr<urdf::Model> m_model;
46  RobotDisplay* m_robot;
47 
48  MyMarkerDisplay *myDisplay;
49  rviz::MarkerDisplay *markerDisplay;
50  ros::NodeHandle n;
51  ros::Subscriber sub;
52 };
53 
54 #endif