task_solution_visualization.h
Go to the documentation of this file.
1 /*********************************************************************
2  * Software License Agreement (BSD License)
3  *
4  * Copyright (c) 2008, Willow Garage, Inc.
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  *
11  * * Redistributions of source code must retain the above copyright
12  * notice, this list of conditions and the following disclaimer.
13  * * Redistributions in binary form must reproduce the above
14  * copyright notice, this list of conditions and the following
15  * disclaimer in the documentation and/or other materials provided
16  * with the distribution.
17  * * Neither the name of Willow Garage nor the names of its
18  * contributors may be used to endorse or promote products derived
19  * from this software without specific prior written permission.
20  *
21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32  * POSSIBILITY OF SUCH DAMAGE.
33  *********************************************************************/
34 
35 /* Author: Dave Coleman */
36 
37 #pragma once
38 
40 #include <moveit_task_constructor_msgs/Solution.h>
41 #include <QObject>
42 #include <boost/thread/mutex.hpp>
43 
44 class QColor;
45 
46 namespace Ogre {
47 class SceneNode;
48 }
49 
50 namespace rviz {
51 class Display;
52 class DisplayContext;
53 class Robot;
54 class Property;
55 class IntProperty;
56 class StringProperty;
57 class BoolProperty;
58 class FloatProperty;
59 class RosTopicProperty;
60 class EnumProperty;
61 class EditableEnumProperty;
62 class ColorProperty;
63 class PanelDockWidget;
64 } // namespace rviz
65 
66 namespace moveit {
67 namespace core {
68 MOVEIT_CLASS_FORWARD(RobotModel);
69 }
70 } // namespace moveit
71 namespace planning_scene {
72 MOVEIT_CLASS_FORWARD(PlanningScene);
73 }
74 namespace robot_trajectory {
75 MOVEIT_CLASS_FORWARD(RobotTrajectory);
76 }
77 
78 namespace moveit_rviz_plugin {
79 
80 MOVEIT_CLASS_FORWARD(RobotStateVisualization);
81 MOVEIT_CLASS_FORWARD(TaskSolutionVisualization);
82 MOVEIT_CLASS_FORWARD(PlanningSceneRender);
83 MOVEIT_CLASS_FORWARD(DisplaySolution);
84 
85 class TaskSolutionPanel;
86 class MarkerVisualizationProperty;
87 class TaskSolutionVisualization : public QObject
88 {
89  Q_OBJECT
90 
91 public:
99  ~TaskSolutionVisualization() override;
100 
101  virtual void update(float wall_dt, float ros_dt);
102  virtual void reset();
103 
104  void onInitialize(Ogre::SceneNode* scene_node, rviz::DisplayContext* context);
105  void onRobotModelLoaded(const moveit::core::RobotModelConstPtr& robot_model);
106  void onEnable();
107  void onDisable();
108  void setName(const QString& name);
109 
110  planning_scene::PlanningSceneConstPtr getScene() const { return scene_; }
111  void showTrajectory(const moveit_task_constructor_msgs::Solution& msg);
112  void showTrajectory(const moveit_rviz_plugin::DisplaySolutionPtr& s, bool lock);
113  void unlock();
114 
115  void clearMarkers();
116  void addMarkers(const moveit_rviz_plugin::DisplaySolutionPtr& s);
117 
118 public Q_SLOTS:
120 
121 private Q_SLOTS:
122  void onAllAtOnceChanged(bool all_at_once);
123 
124  // trajectory property slots
127  void changedRobotAlpha();
128  void changedLoopDisplay();
129  void changedTrail();
130  void changedRobotColor();
131  void enabledRobotColor();
133  void sliderPanelVisibilityChange(bool enable);
134 
135  // planning scene property slots
136  void changedSceneEnabled();
137  void renderCurrentScene();
138 
139 Q_SIGNALS:
140  void activeStageChanged(size_t);
141 
142 protected:
143  void setVisibility();
144  void setVisibility(Ogre::SceneNode* node, Ogre::SceneNode* parent, bool visible);
145  float getStateDisplayTime();
146  void clearTrail();
147  void renderCurrentWayPoint();
148  void renderWayPoint(size_t index, int previous_index);
149  void renderPlanningScene(const planning_scene::PlanningSceneConstPtr& scene);
150 
151  // render the planning scene
152  PlanningSceneRenderPtr scene_render_;
153  // render the robot
154  RobotStateVisualizationPtr robot_render_;
155  // render markers
157 
158  // Handle colouring of robot
159  void setRobotColor(rviz::Robot* robot, const QColor& color);
160  void unsetRobotColor(rviz::Robot* robot);
161 
162  DisplaySolutionPtr displaying_solution_;
163  DisplaySolutionPtr next_solution_to_display_;
164  std::vector<rviz::Robot*> trail_;
165  bool animating_ = false; // auto-progressing the current waypoint?
167  bool locked_ = false;
168  int current_state_ = -1;
171 
172  planning_scene::PlanningScenePtr scene_;
173 
174  // Pointers from parent display that we save
175  rviz::Display* display_; // the parent display that this class populates
176  Ogre::SceneNode* parent_scene_node_; // parent scene node provided by display
177  Ogre::SceneNode* main_scene_node_; // to be added/removed to/from scene_node_
178  Ogre::SceneNode* trail_scene_node_; // to be added/removed to/from scene_node_
183 
184  // Trajectory Properties
191 
197 
198  // PlanningScene Properties
205 };
206 
207 } // namespace moveit_rviz_plugin
moveit_rviz_plugin::TaskSolutionVisualization::next_solution_to_display_
DisplaySolutionPtr next_solution_to_display_
Definition: task_solution_visualization.h:163
moveit_rviz_plugin::TaskSolutionVisualization::onAllAtOnceChanged
void onAllAtOnceChanged(bool all_at_once)
Definition: task_solution_visualization.cpp:361
moveit_rviz_plugin::TaskSolutionPanel
Definition: task_solution_panel.h:82
Ogre
moveit_rviz_plugin::TaskSolutionVisualization::changedLoopDisplay
void changedLoopDisplay()
Definition: task_solution_visualization.cpp:278
moveit_rviz_plugin::MOVEIT_CLASS_FORWARD
MOVEIT_CLASS_FORWARD(OcTreeRender)
moveit_rviz_plugin::TaskSolutionVisualization::drop_displaying_solution_
bool drop_displaying_solution_
Definition: task_solution_visualization.h:166
moveit_rviz_plugin::TaskSolutionVisualization::interrupt_display_property_
rviz::BoolProperty * interrupt_display_property_
Definition: task_solution_visualization.h:195
robot_trajectory::MOVEIT_CLASS_FORWARD
MOVEIT_CLASS_FORWARD(RobotTrajectory)
moveit_rviz_plugin::TaskSolutionVisualization::onDisable
void onDisable()
Definition: task_solution_visualization.cpp:342
moveit_rviz_plugin::TaskSolutionVisualization::marker_visual_
MarkerVisualizationProperty * marker_visual_
Definition: task_solution_visualization.h:156
moveit_rviz_plugin::TaskSolutionVisualization::robot_collision_enabled_property_
rviz::BoolProperty * robot_collision_enabled_property_
Definition: task_solution_visualization.h:187
moveit_rviz_plugin::TaskSolutionVisualization::locked_
bool locked_
Definition: task_solution_visualization.h:167
moveit_rviz_plugin::TaskSolutionVisualization::trail_step_size_property_
rviz::IntProperty * trail_step_size_property_
Definition: task_solution_visualization.h:196
moveit_rviz_plugin::TaskSolutionVisualization::setVisibility
void setVisibility()
set visibility of main scene node
Definition: task_solution_visualization.cpp:651
moveit_rviz_plugin::TaskSolutionVisualization::unsetRobotColor
void unsetRobotColor(rviz::Robot *robot)
Definition: task_solution_visualization.cpp:600
rviz::EditableEnumProperty
rviz::BoolProperty
rviz::PanelDockWidget
moveit_rviz_plugin::TaskSolutionVisualization::renderWayPoint
void renderWayPoint(size_t index, int previous_index)
Definition: task_solution_visualization.cpp:490
moveit_rviz_plugin::TaskSolutionVisualization::showTrajectory
void showTrajectory(const moveit_task_constructor_msgs::Solution &msg)
Definition: task_solution_visualization.cpp:550
moveit_rviz_plugin::TaskSolutionVisualization::renderPlanningScene
void renderPlanningScene(const planning_scene::PlanningSceneConstPtr &scene)
Definition: task_solution_visualization.cpp:536
moveit_rviz_plugin::TaskSolutionVisualization::scene_
planning_scene::PlanningScenePtr scene_
Definition: task_solution_visualization.h:172
moveit_rviz_plugin::TaskSolutionVisualization::changedAttachedBodyColor
void changedAttachedBodyColor()
Definition: task_solution_visualization.cpp:596
moveit_rviz_plugin::TaskSolutionVisualization::robot_visual_enabled_property_
rviz::BoolProperty * robot_visual_enabled_property_
Definition: task_solution_visualization.h:186
moveit_rviz_plugin::TaskSolutionVisualization::slider_panel_
TaskSolutionPanel * slider_panel_
Definition: task_solution_visualization.h:180
moveit_rviz_plugin::TaskSolutionVisualization::setName
void setName(const QString &name)
Definition: task_solution_visualization.cpp:239
moveit_rviz_plugin::TaskSolutionVisualization::getStateDisplayTime
float getStateDisplayTime()
Definition: task_solution_visualization.cpp:372
moveit_rviz_plugin::TaskSolutionVisualization::scene_alpha_property_
rviz::FloatProperty * scene_alpha_property_
Definition: task_solution_visualization.h:200
rviz::ColorProperty
rviz::Display
rviz::EnumProperty
rviz::FloatProperty
rviz::Property
moveit_rviz_plugin::TaskSolutionVisualization::addMarkers
void addMarkers(const moveit_rviz_plugin::DisplaySolutionPtr &s)
Definition: task_solution_visualization.cpp:575
moveit_rviz_plugin::TaskSolutionVisualization::changedRobotAlpha
void changedRobotAlpha()
Definition: task_solution_visualization.cpp:317
moveit_rviz_plugin::TaskSolutionVisualization::attached_body_color_property_
rviz::ColorProperty * attached_body_color_property_
Definition: task_solution_visualization.h:202
moveit_rviz_plugin::TaskSolutionVisualization::current_state_
int current_state_
Definition: task_solution_visualization.h:168
moveit_rviz_plugin::TaskSolutionVisualization::slider_panel_was_visible_
bool slider_panel_was_visible_
Definition: task_solution_visualization.h:182
robot_trajectory
moveit_rviz_plugin::TaskSolutionVisualization::trail_
std::vector< rviz::Robot * > trail_
Definition: task_solution_visualization.h:164
moveit_rviz_plugin::TaskSolutionVisualization::changedRobotCollisionEnabled
void changedRobotCollisionEnabled()
Definition: task_solution_visualization.cpp:330
moveit_rviz_plugin::TaskSolutionVisualization::robot_render_
RobotStateVisualizationPtr robot_render_
Definition: task_solution_visualization.h:154
moveit_rviz_plugin::TaskSolutionVisualization::robot_alpha_property_
rviz::FloatProperty * robot_alpha_property_
Definition: task_solution_visualization.h:188
planning_scene::MOVEIT_CLASS_FORWARD
MOVEIT_CLASS_FORWARD(PlanningScene)
moveit_rviz_plugin::TaskSolutionVisualization
Definition: task_solution_visualization.h:87
moveit_rviz_plugin::TaskSolutionVisualization::parent_scene_node_
Ogre::SceneNode * parent_scene_node_
Definition: task_solution_visualization.h:176
moveit_rviz_plugin::TaskSolutionVisualization::changedTrail
void changedTrail()
Definition: task_solution_visualization.cpp:287
rviz
moveit_rviz_plugin::TaskSolutionVisualization::slider_dock_panel_
rviz::PanelDockWidget * slider_dock_panel_
Definition: task_solution_visualization.h:181
moveit_rviz_plugin::TaskSolutionVisualization::scene_color_property_
rviz::ColorProperty * scene_color_property_
Definition: task_solution_visualization.h:201
moveit_rviz_plugin::TaskSolutionVisualization::display_solution_mutex_
boost::mutex display_solution_mutex_
Definition: task_solution_visualization.h:170
moveit_rviz_plugin::TaskSolutionVisualization::~TaskSolutionVisualization
~TaskSolutionVisualization() override
Definition: task_solution_visualization.cpp:195
moveit_rviz_plugin::TaskSolutionVisualization::displaying_solution_
DisplaySolutionPtr displaying_solution_
Definition: task_solution_visualization.h:162
moveit_rviz_plugin::TaskSolutionVisualization::update
virtual void update(float wall_dt, float ros_dt)
Definition: task_solution_visualization.cpp:389
moveit_rviz_plugin::TaskSolutionVisualization::display_
rviz::Display * display_
Definition: task_solution_visualization.h:175
moveit_rviz_plugin::TaskSolutionVisualization::changedRobotColor
void changedRobotColor()
Definition: task_solution_visualization.cpp:584
moveit_rviz_plugin::TaskSolutionVisualization::onRobotModelLoaded
void onRobotModelLoaded(const moveit::core::RobotModelConstPtr &robot_model)
Definition: task_solution_visualization.cpp:244
rviz::DisplayContext
Robot
name
name
rviz::Robot
moveit_rviz_plugin::TaskSolutionVisualization::enabledRobotColor
void enabledRobotColor()
Definition: task_solution_visualization.cpp:589
moveit_rviz_plugin::TaskSolutionVisualization::robot_color_property_
rviz::ColorProperty * robot_color_property_
Definition: task_solution_visualization.h:189
moveit_rviz_plugin::TaskSolutionVisualization::unlock
void unlock()
Definition: task_solution_visualization.cpp:567
moveit_rviz_plugin::TaskSolutionVisualization::clearMarkers
void clearMarkers()
Definition: task_solution_visualization.cpp:571
moveit_rviz_plugin::TaskSolutionVisualization::activeStageChanged
void activeStageChanged(size_t)
moveit_rviz_plugin
moveit_rviz_plugin::TaskSolutionVisualization::TaskSolutionVisualization
TaskSolutionVisualization(rviz::Property *parent, rviz::Display *display)
Playback a trajectory from a planned path.
Definition: task_solution_visualization.cpp:104
moveit_rviz_plugin::TaskSolutionVisualization::changedSceneEnabled
void changedSceneEnabled()
Definition: task_solution_visualization.cpp:624
moveit_rviz_plugin::TaskSolutionVisualization::animating_
bool animating_
Definition: task_solution_visualization.h:165
moveit_rviz_plugin::TaskSolutionVisualization::main_scene_node_
Ogre::SceneNode * main_scene_node_
Definition: task_solution_visualization.h:177
moveit
moveit_rviz_plugin::TaskSolutionVisualization::renderCurrentWayPoint
void renderCurrentWayPoint()
Definition: task_solution_visualization.cpp:485
moveit_rviz_plugin::TaskSolutionVisualization::setRobotColor
void setRobotColor(rviz::Robot *robot, const QColor &color)
Definition: task_solution_visualization.cpp:605
class_forward.h
moveit_rviz_plugin::TaskSolutionVisualization::state_display_time_property_
rviz::EditableEnumProperty * state_display_time_property_
Definition: task_solution_visualization.h:192
moveit::core::MOVEIT_CLASS_FORWARD
MOVEIT_CLASS_FORWARD(JointModelGroup)
moveit_rviz_plugin::TaskSolutionVisualization::onEnable
void onEnable()
Definition: task_solution_visualization.cpp:337
moveit_rviz_plugin::TaskSolutionVisualization::scene_render_
PlanningSceneRenderPtr scene_render_
Definition: task_solution_visualization.h:152
moveit_rviz_plugin::TaskSolutionVisualization::renderCurrentScene
void renderCurrentScene()
Definition: task_solution_visualization.cpp:630
moveit_rviz_plugin::TaskSolutionVisualization::robot_property_
rviz::Property * robot_property_
Definition: task_solution_visualization.h:185
moveit_rviz_plugin::TaskSolutionVisualization::context_
rviz::DisplayContext * context_
Definition: task_solution_visualization.h:179
moveit_rviz_plugin::TaskSolutionVisualization::changedRobotVisualEnabled
void changedRobotVisualEnabled()
Definition: task_solution_visualization.cpp:323
moveit_rviz_plugin::TaskSolutionVisualization::getScene
planning_scene::PlanningSceneConstPtr getScene() const
Definition: task_solution_visualization.h:110
moveit_rviz_plugin::TaskSolutionVisualization::loop_display_property_
rviz::BoolProperty * loop_display_property_
Definition: task_solution_visualization.h:193
moveit_rviz_plugin::TaskSolutionVisualization::octree_render_property_
rviz::EnumProperty * octree_render_property_
Definition: task_solution_visualization.h:203
planning_scene
moveit_rviz_plugin::TaskSolutionVisualization::clearTrail
void clearTrail()
Definition: task_solution_visualization.cpp:273
moveit_rviz_plugin::TaskSolutionVisualization::octree_coloring_property_
rviz::EnumProperty * octree_coloring_property_
Definition: task_solution_visualization.h:204
moveit_rviz_plugin::TaskSolutionVisualization::interruptCurrentDisplay
void interruptCurrentDisplay()
Definition: task_solution_visualization.cpp:356
moveit_rviz_plugin::TaskSolutionVisualization::scene_enabled_property_
rviz::BoolProperty * scene_enabled_property_
Definition: task_solution_visualization.h:199
moveit_rviz_plugin::MarkerVisualizationProperty
Definition: marker_visualization.h:91
moveit_rviz_plugin::TaskSolutionVisualization::sliderPanelVisibilityChange
void sliderPanelVisibilityChange(bool enable)
Definition: task_solution_visualization.cpp:610
moveit_rviz_plugin::TaskSolutionVisualization::enable_robot_color_property_
rviz::BoolProperty * enable_robot_color_property_
Definition: task_solution_visualization.h:190
moveit_rviz_plugin::TaskSolutionVisualization::trail_display_property_
rviz::BoolProperty * trail_display_property_
Definition: task_solution_visualization.h:194
moveit_rviz_plugin::TaskSolutionVisualization::onInitialize
void onInitialize(Ogre::SceneNode *scene_node, rviz::DisplayContext *context)
Definition: task_solution_visualization.cpp:209
moveit_rviz_plugin::TaskSolutionVisualization::trail_scene_node_
Ogre::SceneNode * trail_scene_node_
Definition: task_solution_visualization.h:178
rviz::IntProperty
moveit_rviz_plugin::TaskSolutionVisualization::current_state_time_
float current_state_time_
Definition: task_solution_visualization.h:169
moveit_rviz_plugin::TaskSolutionVisualization::reset
virtual void reset()
Definition: task_solution_visualization.cpp:257


visualization
Author(s): Robert Haschke
autogenerated on Thu Feb 27 2025 03:39:51