task_solution_visualization.cpp
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: Robert Haschke */
36 
41 
45 
49 
50 #include <rviz/robot/robot.h>
51 #include <rviz/robot/robot_link.h>
61 #include <rviz/display.h>
62 #include <rviz/display_context.h>
64 #include <rviz/panel_dock_widget.h>
65 
66 #include <OgreSceneNode.h>
67 
68 #include <boost/algorithm/string/replace.hpp>
69 #include <boost/algorithm/string/trim.hpp>
70 
71 namespace moveit_rviz_plugin {
73  : display_(display) {
74  // trajectory properties
75  interrupt_display_property_ = new rviz::BoolProperty("Interrupt Display", false,
76  "Immediately show newly planned trajectory, "
77  "interrupting the currently displayed one.",
78  parent);
79 
80  loop_display_property_ = new rviz::BoolProperty(
81  "Loop Animation", false, "Indicates whether the last received path is to be animated in a loop", parent,
82  SLOT(changedLoopDisplay()), this);
83 
84  trail_display_property_ =
85  new rviz::BoolProperty("Show Trail", false, "Show a path trail", parent, SLOT(changedTrail()), this);
86 
87  state_display_time_property_ =
88  new rviz::EditableEnumProperty("State Display Time", "0.05 s",
89  "The amount of wall-time to wait in between displaying "
90  "states along a received trajectory path",
91  parent);
92  state_display_time_property_->addOptionStd("REALTIME");
93  state_display_time_property_->addOptionStd("0.05 s");
94  state_display_time_property_->addOptionStd("0.1 s");
95  state_display_time_property_->addOptionStd("0.5 s");
96 
97  trail_step_size_property_ = new rviz::IntProperty(
98  "Trail Step Size", 1, "Specifies the step size of the samples shown in the trajectory trail.", parent,
99  SLOT(changedTrail()), this);
100  trail_step_size_property_->setMin(1);
101 
102  // robot properties
103  robot_property_ = new rviz::Property("Robot", QString(), QString(), parent);
104  robot_visual_enabled_property_ = new rviz::BoolProperty("Show Robot Visual", true,
105  "Indicates whether the geometry of the robot as defined for "
106  "visualisation purposes should be displayed",
107  robot_property_, SLOT(changedRobotVisualEnabled()), this);
108 
109  robot_collision_enabled_property_ =
110  new rviz::BoolProperty("Show Robot Collision", false,
111  "Indicates whether the geometry of the robot as defined "
112  "for collision detection purposes should be displayed",
113  robot_property_, SLOT(changedRobotCollisionEnabled()), this);
114 
115  robot_alpha_property_ = new rviz::FloatProperty("Robot Alpha", 0.5f, "Specifies the alpha for the robot links",
116  robot_property_, SLOT(changedRobotAlpha()), this);
117  robot_alpha_property_->setMin(0.0);
118  robot_alpha_property_->setMax(1.0);
119 
120  robot_color_property_ =
121  new rviz::ColorProperty("Fixed Robot Color", QColor(150, 50, 150), "The color of the animated robot",
122  robot_property_, SLOT(changedRobotColor()), this);
123 
124  enable_robot_color_property_ = new rviz::BoolProperty("Use Fixed Robot Color", false,
125  "Specifies whether the fixed robot color should be used."
126  " If not, the original color is used.",
127  robot_property_, SLOT(enabledRobotColor()), this);
128 
129  // planning scene properties
130  scene_enabled_property_ =
131  new rviz::BoolProperty("Scene", true, "Show Planning Scene", parent, SLOT(changedSceneEnabled()), this);
132 
133  scene_alpha_property_ = new rviz::FloatProperty("Scene Alpha", 0.9f, "Specifies the alpha for the scene geometry",
134  scene_enabled_property_, SLOT(renderCurrentScene()), this);
135  scene_alpha_property_->setMin(0.0);
136  scene_alpha_property_->setMax(1.0);
137 
138  scene_color_property_ = new rviz::ColorProperty(
139  "Scene Color", QColor(50, 230, 50), "The color for the planning scene obstacles (if a color is not defined)",
140  scene_enabled_property_, SLOT(renderCurrentScene()), this);
141 
142  attached_body_color_property_ =
143  new rviz::ColorProperty("Attached Body Color", QColor(150, 50, 150), "The color for the attached bodies",
144  scene_enabled_property_, SLOT(changedAttachedBodyColor()), this);
145 
146  octree_render_property_ = new rviz::EnumProperty("Voxel Rendering", "Occupied Voxels", "Select voxel type.",
147  scene_enabled_property_, SLOT(renderCurrentScene()), this);
148 
149  octree_render_property_->addOption("Occupied Voxels", OCTOMAP_OCCUPIED_VOXELS);
150  octree_render_property_->addOption("Free Voxels", OCTOMAP_FREE_VOXELS);
151  octree_render_property_->addOption("All Voxels", OCTOMAP_FREE_VOXELS | OCTOMAP_OCCUPIED_VOXELS);
152 
153  octree_coloring_property_ = new rviz::EnumProperty("Voxel Coloring", "Z-Axis", "Select voxel coloring mode",
154  scene_enabled_property_, SLOT(renderCurrentScene()), this);
155 
156  octree_coloring_property_->addOption("Z-Axis", OCTOMAP_Z_AXIS_COLOR);
157  octree_coloring_property_->addOption("Cell Probability", OCTOMAP_PROBABLILTY_COLOR);
158 
159  marker_visual_ = new MarkerVisualizationProperty("Markers", parent);
160  connect(marker_visual_, SIGNAL(allAtOnceChanged(bool)), this, SLOT(onAllAtOnceChanged(bool)));
161 }
162 
164  clearTrail();
166  displaying_solution_.reset();
167 
168  scene_render_.reset();
169  robot_render_.reset();
170  delete slider_dock_panel_;
171  delete marker_visual_;
172 
173  if (main_scene_node_)
174  main_scene_node_->getCreator()->destroySceneNode(main_scene_node_);
175 }
176 
177 void TaskSolutionVisualization::onInitialize(Ogre::SceneNode* scene_node, rviz::DisplayContext* context) {
178  // Save pointers for later use
179  parent_scene_node_ = scene_node;
180  context_ = context;
181  main_scene_node_ = parent_scene_node_->getCreator()->createSceneNode();
182  trail_scene_node_ = parent_scene_node_->getCreator()->createSceneNode();
183 
184  // Load trajectory robot
185  robot_render_.reset(new RobotStateVisualization(main_scene_node_, context_, "Solution Trajectory", robot_property_));
190  robot_render_->setVisible(true);
191 
192  scene_render_.reset(new PlanningSceneRender(main_scene_node_, context_, RobotStateVisualizationPtr()));
193  scene_render_->getGeometryNode()->setVisible(scene_enabled_property_->getBool());
194 
196 
198  if (window_context) {
199  slider_panel_ = new TaskSolutionPanel(window_context->getParentWindow());
200  slider_dock_panel_ = window_context->addPane(display_->getName() + " - Slider", slider_panel_);
202  connect(slider_dock_panel_, SIGNAL(visibilityChanged(bool)), this, SLOT(sliderPanelVisibilityChange(bool)));
204  }
205 }
206 
207 void TaskSolutionVisualization::setName(const QString& name) {
208  if (slider_dock_panel_)
209  slider_dock_panel_->setWindowTitle(name + " - Slider");
210 }
211 
212 void TaskSolutionVisualization::onRobotModelLoaded(const moveit::core::RobotModelConstPtr& robot_model) {
213  // Error check
214  if (!robot_model) {
215  ROS_ERROR_STREAM_NAMED("task_solution_visualization", "No robot model found");
216  return;
217  }
218 
219  scene_.reset(new planning_scene::PlanningScene(robot_model));
220 
221  robot_render_->load(*robot_model->getURDF()); // load rviz robot
222  enabledRobotColor(); // force-refresh to account for saved display configuration
223 }
224 
226  clearTrail();
228  displaying_solution_.reset();
229  current_state_ = -1;
230  if (slider_panel_)
231  slider_panel_->update(-1);
232 
235  scene_render_->getGeometryNode()->setVisible(scene_enabled_property_->getBool());
236 
237  if (main_scene_node_->getParent())
238  parent_scene_node_->removeChild(main_scene_node_);
239 }
240 
242  qDeleteAll(trail_);
243  trail_.clear();
244 }
245 
247  // restart animation if current_state_ is at end and looping got activated
249  current_state_ + 1 >= static_cast<int>(displaying_solution_->getWayPointCount())) {
250  current_state_ = -1;
251  slider_panel_->pauseButton(false);
252  }
253 }
254 
256  clearTrail();
257  DisplaySolutionPtr t = displaying_solution_;
258 
259  if (!t || !trail_display_property_->getBool()) {
261  return;
262  }
263 
266 
267  int stepsize = trail_step_size_property_->getInt();
268  trail_.resize(t->getWayPointCount() / stepsize);
269  for (std::size_t i = 0; i < trail_.size(); i++) {
270  int waypoint_i = std::min(i * stepsize, t->getWayPointCount() - 1); // limit to last trajectory point
271  rviz::Robot* r =
272  new rviz::Robot(trail_scene_node_, context_, "Trail Robot " + boost::lexical_cast<std::string>(i), nullptr);
273  r->load(*scene_->getRobotModel()->getURDF());
274  r->setVisualVisible(robot_visual_enabled_property_->getBool());
275  r->setCollisionVisible(robot_collision_enabled_property_->getBool());
276  r->setAlpha(robot_alpha_property_->getFloat());
277  r->update(PlanningLinkUpdater(t->getWayPointPtr(waypoint_i)));
280  r->setVisible(waypoint_i <= current_state_);
281  trail_[i] = r;
282  }
283 }
284 
287  for (auto& waypoint : trail_)
288  waypoint->setAlpha(robot_alpha_property_->getFloat());
289 }
290 
294  for (auto& waypoint : trail_)
295  waypoint->setVisualVisible(robot_visual_enabled_property_->getBool());
296 }
297 
301  for (auto& waypoint : trail_)
302  waypoint->setCollisionVisible(robot_collision_enabled_property_->getBool());
303 }
304 
308 }
309 
311  // make all scene nodes invisible
312  if (main_scene_node_->getParent())
313  parent_scene_node_->removeChild(main_scene_node_);
314 
315  displaying_solution_.reset();
318  if (slider_panel_) {
321  }
322 }
323 
325  if (!locked_)
327 }
328 
329 void TaskSolutionVisualization::onAllAtOnceChanged(bool all_at_once) {
331  return;
332  clearMarkers();
333 
334  if (all_at_once)
336  else if (current_state_ >= 0)
338 }
339 
341  std::string tm = state_display_time_property_->getStdString();
342  if (tm == "REALTIME")
343  return -1.0;
344  else {
345  boost::replace_all(tm, "s", "");
346  boost::trim(tm);
347  float t = 0.05f;
348  try {
349  t = boost::lexical_cast<float>(tm);
350  } catch (const boost::bad_lexical_cast& ex) {
352  }
353  return t;
354  }
355 }
356 
357 void TaskSolutionVisualization::update(float wall_dt, float /*ros_dt*/) {
359  current_state_ = -1;
360  displaying_solution_.reset();
362  slider_panel_->update(-1);
364  }
365  if (current_state_ < 0 || // last animation finished
367  boost::mutex::scoped_lock lock(display_solution_mutex_);
368 
369  // new trajectory available to display?
371  current_state_ = -1;
372  animating_ = true;
374  changedTrail();
375  if (slider_panel_)
376  slider_panel_->update(next_solution_to_display_->getWayPointCount());
377  }
378  // also reset if locked_
380  }
381  if (!displaying_solution_) {
382  animating_ = false;
383  setVisibility();
384  return;
385  }
386 
387  int previous_state = current_state_;
388  // for an empty trajectory, show the start and end state at least
389  int waypoint_count = displaying_solution_->getWayPointCount();
390  int max_state_index = std::max<int>(1, waypoint_count);
391  if (slider_panel_ && slider_panel_->isVisible()) {
393  if (current_state_ >= 0)
394  // user can override current_state_ at any time with slider
396  } else if (current_state_ < max_state_index)
397  animating_ = true; // auto-activate animation if slider_panel_ is hidden
398 
399  if (animating_ && current_state_ == previous_state) {
400  // auto-advance current_state_ based on time progress
401  current_state_time_ += wall_dt;
402 
403  float tm = getStateDisplayTime();
404  if (current_state_ < 0) { // special case indicating restart of animation
405  current_state_ = 0;
406  current_state_time_ = 0.0;
407  trail_scene_node_->setVisible(false);
408  } else if (tm < 0.0) { // using realtime: skip to next waypoint based on elapsed display time
409  while (current_state_ < max_state_index && (tm = displaying_solution_->getWayPointDurationFromPrevious(
411  ++current_state_;
412  current_state_time_ -= tm;
413  }
414  } else if (current_state_time_ > tm) { // fixed display time per state
415  ++current_state_;
416  current_state_time_ = 0.0;
417  }
418  } else if (current_state_ != previous_state) { // current_state_ changed from slider
419  current_state_time_ = 0.0;
420  }
421 
422  if ((waypoint_count > 0 && current_state_ >= max_state_index) ||
423  (waypoint_count == 0 && current_state_ > max_state_index)) { // animation finished?
425  current_state_ = -1; // restart in next cycle
426  else {
427  current_state_ = max_state_index;
428  if (slider_panel_)
429  slider_panel_->pauseButton(true);
430  }
431  setVisibility();
432  return;
433  }
434  if (current_state_ == previous_state)
435  return;
436 
437  renderWayPoint(current_state_, previous_state);
438 
439  // show / hide trail between start .. end
440  int stepsize = trail_step_size_property_->getInt();
441  int start = std::max(0, previous_state / stepsize);
442  int end = current_state_ / stepsize;
443  bool show = start <= end;
444  if (!show)
445  std::swap(start, end);
446  end = std::min<int>(end, trail_.size());
447  for (; start < end; ++start)
448  trail_[start]->setVisible(show);
449 
450  setVisibility();
451 }
452 
456 }
457 
458 void TaskSolutionVisualization::renderWayPoint(size_t index, int previous_index) {
459  size_t waypoint_count = displaying_solution_->getWayPointCount();
460  moveit::core::RobotStateConstPtr robot_state;
461  planning_scene::PlanningSceneConstPtr scene;
462  if (index + 1 >= waypoint_count) {
463  if (index == 0 && waypoint_count == 0)
464  // special case: render start scene
465  scene = displaying_solution_->startScene();
466  else // render end state
467  scene = displaying_solution_->scene(waypoint_count);
468  renderPlanningScene(scene);
469  robot_state.reset(new moveit::core::RobotState(scene->getCurrentState()));
470  } else {
471  auto idx_pair = displaying_solution_->indexPair(index);
472  scene = displaying_solution_->scene(idx_pair);
473 
474  if (previous_index < 0 || previous_index >= static_cast<int>(waypoint_count) ||
475  displaying_solution_->indexPair(previous_index).first != idx_pair.first) {
476  // switch to new stage: show new planning scene
477  renderPlanningScene(scene);
478  // switch to markers of next sub trajectory?
479  if (!marker_visual_->allAtOnce()) {
481  marker_visual_->addMarkers(displaying_solution_->markersOfSubTrajectory(idx_pair.first));
482  }
483  Q_EMIT activeStageChanged(displaying_solution_->creatorId(idx_pair));
484  }
485  robot_state = displaying_solution_->getWayPointPtr(idx_pair);
486  }
487 
488  QColor attached_color = attached_body_color_property_->getColor();
489  std_msgs::ColorRGBA color;
490  color.r = attached_color.redF();
491  color.g = attached_color.greenF();
492  color.b = attached_color.blueF();
493  color.a = 1.0f;
494 
496  scene->getKnownObjectColors(color_map);
497  robot_render_->update(robot_state, color, color_map);
498  marker_visual_->update(*scene, *robot_state);
499 
500  if (slider_panel_)
502 }
503 
504 void TaskSolutionVisualization::renderPlanningScene(const planning_scene::PlanningSceneConstPtr& scene) {
506  return;
507 
508  QColor color = scene_color_property_->getColor();
509  rviz::Color env_color(color.redF(), color.greenF(), color.blueF());
511  rviz::Color attached_color(color.redF(), color.greenF(), color.blueF());
512 
513  scene_render_->renderPlanningScene(
514  scene, env_color, attached_color, static_cast<OctreeVoxelRenderMode>(octree_render_property_->getOptionInt()),
516 }
517 
518 void TaskSolutionVisualization::showTrajectory(const moveit_task_constructor_msgs::Solution& msg) {
519  DisplaySolutionPtr s(new DisplaySolution);
520  s->setFromMessage(scene_, msg);
521  showTrajectory(s, false);
522 }
523 
524 void TaskSolutionVisualization::showTrajectory(const DisplaySolutionPtr& s, bool lock_display) {
525  if (lock_display || !s->empty()) {
526  boost::mutex::scoped_lock lock(display_solution_mutex_);
528  if (lock_display)
532  }
533 }
534 
536  locked_ = false;
537 }
538 
541 }
542 
543 void TaskSolutionVisualization::addMarkers(const moveit_rviz_plugin::DisplaySolutionPtr& s) {
544  if (!s || (!marker_visual_->allAtOnce() && s->numSubSolutions() > 1))
545  return;
546 
547  for (size_t i = 0, end = s->numSubSolutions(); i != end; ++i) {
548  marker_visual_->addMarkers(s->markersOfSubTrajectory(i));
549  }
550 }
551 
555 }
556 
560  else
561  unsetRobotColor(&(robot_render_->getRobot()));
562 }
563 
566 }
567 
569  for (auto& link : robot->getLinks())
570  link.second->unsetColor();
571 }
572 
573 void TaskSolutionVisualization::setRobotColor(rviz::Robot* robot, const QColor& color) {
574  for (auto& link : robot->getLinks())
575  link.second->setColor(color.redF(), color.greenF(), color.blueF());
576 }
577 
579  if (!slider_panel_)
580  return;
581 
582  if (enable) {
583  // also enable display
586  } else
588 
590 }
591 
593  if (!scene_render_)
594  return;
596 }
597 
601 }
602 
603 void TaskSolutionVisualization::setVisibility(Ogre::SceneNode* node, Ogre::SceneNode* parent, bool visible) {
604  if (node != main_scene_node_ && !main_scene_node_->getParent())
605  return; // main scene node is detached
606 
607  if (visible && node->getParent() != parent) {
608  parent->addChild(node);
609  // if main scene node became attached, also update visibility of other nodes
610  if (node == main_scene_node_) {
611  if (scene_render_)
614  }
615  } else if (!visible && node->getParent())
616  node->getParent()->removeChild(node);
617 }
618 
620  // main scene node is visible if animation, trail, or panel is shown, or if display is locked
624  (animating_ || locked_ || trail_scene_node_->getParent() || (slider_panel_ && slider_panel_->isVisible())));
625 }
626 
627 } // namespace moveit_rviz_plugin
robot_model.h
rviz::BoolProperty::getBool
virtual bool getBool() const
rviz::EnumProperty::getOptionInt
virtual int getOptionInt()
moveit_rviz_plugin::OCTOMAP_OCCUPIED_VOXELS
OCTOMAP_OCCUPIED_VOXELS
rviz::Display::isEnabled
bool isEnabled() const
moveit_rviz_plugin::MarkerVisualizationProperty::onInitialize
void onInitialize(Ogre::SceneNode *scene_node, rviz::DisplayContext *context)
Definition: marker_visualization.cpp:172
rviz::ColorProperty::getColor
virtual QColor getColor() const
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
moveit_rviz_plugin::TaskSolutionVisualization::changedLoopDisplay
void changedLoopDisplay()
Definition: task_solution_visualization.cpp:278
marker_visualization.h
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
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::TaskSolutionPanel::isPaused
bool isPaused() const
Definition: task_solution_panel.h:135
s
XmlRpcServer s
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
task_solution_panel.h
planning_scene::PlanningScene
moveit_rviz_plugin::OCTOMAP_FREE_VOXELS
OCTOMAP_FREE_VOXELS
rviz::EditableEnumProperty
rviz::BoolProperty
r
r
int_property.h
moveit_rviz_plugin::TaskSolutionVisualization::renderWayPoint
void renderWayPoint(size_t index, int previous_index)
Definition: task_solution_visualization.cpp:490
moveit_rviz_plugin::MarkerVisualizationProperty::clearMarkers
void clearMarkers()
remove all hosted markers from display
Definition: marker_visualization.cpp:178
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::MarkerVisualizationProperty::update
void update(const planning_scene::PlanningScene &scene, const moveit::core::RobotState &robot_state)
update pose of all markers
Definition: marker_visualization.cpp:211
moveit_rviz_plugin::TaskSolutionPanel::onInitialize
void onInitialize() override
Definition: task_solution_panel.cpp:79
moveit_rviz_plugin::TaskSolutionVisualization::scene_
planning_scene::PlanningScenePtr scene_
Definition: task_solution_visualization.h:172
enum_property.h
moveit_rviz_plugin::OCTOMAP_Z_AXIS_COLOR
OCTOMAP_Z_AXIS_COLOR
moveit_rviz_plugin::TaskSolutionVisualization::changedAttachedBodyColor
void changedAttachedBodyColor()
Definition: task_solution_visualization.cpp:596
moveit::core::RobotState
display.h
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
rviz::Property::getIcon
virtual QIcon getIcon() const
moveit_rviz_plugin::TaskSolutionVisualization::setName
void setName(const QString &name)
Definition: task_solution_visualization.cpp:239
moveit_rviz_plugin::TaskSolutionPanel::onDisable
void onDisable()
Definition: task_solution_panel.cpp:114
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
float_property.h
rviz::ColorProperty
rviz::Display
rviz::EnumProperty
rviz::FloatProperty
rviz::Property
moveit_rviz_plugin::TaskSolutionPanel::onEnable
void onEnable()
Definition: task_solution_panel.cpp:110
moveit_rviz_plugin::TaskSolutionVisualization::addMarkers
void addMarkers(const moveit_rviz_plugin::DisplaySolutionPtr &s)
Definition: task_solution_visualization.cpp:575
moveit_rviz_plugin::OctreeVoxelRenderMode
OctreeVoxelRenderMode
robot_trajectory.h
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::TaskSolutionPanel::getSliderPosition
int getSliderPosition() const
Definition: task_solution_panel.h:133
moveit_rviz_plugin::TaskSolutionVisualization::slider_panel_was_visible_
bool slider_panel_was_visible_
Definition: task_solution_visualization.h:182
bool_property.h
moveit_rviz_plugin::TaskSolutionVisualization::trail_
std::vector< rviz::Robot * > trail_
Definition: task_solution_visualization.h:164
editable_enum_property.h
robot_state_visualization.h
moveit_rviz_plugin::TaskSolutionVisualization::changedRobotCollisionEnabled
void changedRobotCollisionEnabled()
Definition: task_solution_visualization.cpp:330
moveit_rviz_plugin::MarkerVisualizationProperty::addMarkers
void addMarkers(const MarkerVisualizationPtr &markers)
add markers in MarkerVisualization for display
Definition: marker_visualization.cpp:185
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
rviz::FloatProperty::getFloat
virtual float getFloat() const
moveit_rviz_plugin::TaskSolutionVisualization::parent_scene_node_
Ogre::SceneNode * parent_scene_node_
Definition: task_solution_visualization.h:176
window_manager_interface.h
moveit_rviz_plugin::TaskSolutionVisualization::changedTrail
void changedTrail()
Definition: task_solution_visualization.cpp:287
rviz::Display::setEnabled
void setEnabled(bool enabled)
moveit_rviz_plugin::TaskSolutionVisualization::slider_dock_panel_
rviz::PanelDockWidget * slider_dock_panel_
Definition: task_solution_visualization.h:181
ROS_ERROR_STREAM_NAMED
#define ROS_ERROR_STREAM_NAMED(name, args)
moveit_rviz_plugin::TaskSolutionVisualization::scene_color_property_
rviz::ColorProperty * scene_color_property_
Definition: task_solution_visualization.h:201
rviz::StringProperty::getStdString
std::string getStdString()
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
planning_scene_render.h
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
planning_scene::ObjectColorMap
std::map< std::string, std_msgs::ColorRGBA > ObjectColorMap
rviz::WindowManagerInterface::getParentWindow
virtual QWidget * getParentWindow()=0
rviz::DisplayContext
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
task_solution_visualization.h
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
start
ROSCPP_DECL void start()
moveit_rviz_plugin::TaskSolutionPanel::pauseButton
void pauseButton(bool check)
Definition: task_solution_panel.cpp:132
moveit_rviz_plugin::TaskSolutionVisualization::changedSceneEnabled
void changedSceneEnabled()
Definition: task_solution_visualization.cpp:624
rviz::DisplayContext::getWindowManager
virtual WindowManagerInterface * getWindowManager() const=0
moveit_rviz_plugin::TaskSolutionVisualization::animating_
bool animating_
Definition: task_solution_visualization.h:165
rviz::Property::getName
virtual QString getName() const
moveit_rviz_plugin::TaskSolutionVisualization::main_scene_node_
Ogre::SceneNode * main_scene_node_
Definition: task_solution_visualization.h:177
moveit_rviz_plugin::TaskSolutionPanel::update
void update(int way_point_count)
Definition: task_solution_panel.cpp:119
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
rviz::WindowManagerInterface::addPane
virtual PanelDockWidget * addPane(const QString &name, QWidget *pane, Qt::DockWidgetArea area=Qt::LeftDockWidgetArea, bool floating=false)=0
moveit_rviz_plugin::TaskSolutionVisualization::state_display_time_property_
rviz::EditableEnumProperty * state_display_time_property_
Definition: task_solution_visualization.h:192
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
property.h
rviz::StringProperty::setStdString
bool setStdString(const std::string &std_str)
moveit_rviz_plugin::OCTOMAP_PROBABLILTY_COLOR
OCTOMAP_PROBABLILTY_COLOR
rviz::Robot::getLinks
const M_NameToLink & getLinks() const
moveit_rviz_plugin::PlanningLinkUpdater
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
rviz::IntProperty::getInt
virtual int getInt() const
moveit_rviz_plugin::OctreeVoxelColorMode
OctreeVoxelColorMode
moveit_rviz_plugin::TaskSolutionVisualization::changedRobotVisualEnabled
void changedRobotVisualEnabled()
Definition: task_solution_visualization.cpp:323
moveit_rviz_plugin::TaskSolutionVisualization::loop_display_property_
rviz::BoolProperty * loop_display_property_
Definition: task_solution_visualization.h:193
rviz::WindowManagerInterface
trajectory_tools.h
string_property.h
moveit_rviz_plugin::TaskSolutionVisualization::octree_render_property_
rviz::EnumProperty * octree_render_property_
Definition: task_solution_visualization.h:203
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
rviz::PanelDockWidget::setIcon
void setIcon(const QIcon &icon)
moveit_rviz_plugin::TaskSolutionVisualization::interruptCurrentDisplay
void interruptCurrentDisplay()
Definition: task_solution_visualization.cpp:356
t
dictionary t
rviz::PanelDockWidget::setWindowTitle
void setWindowTitle(const QString &title)
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
panel_dock_widget.h
moveit_rviz_plugin::TaskSolutionVisualization::sliderPanelVisibilityChange
void sliderPanelVisibilityChange(bool enable)
Definition: task_solution_visualization.cpp:610
rviz::Color
moveit_rviz_plugin::TaskSolutionVisualization::enable_robot_color_property_
rviz::BoolProperty * enable_robot_color_property_
Definition: task_solution_visualization.h:190
color_property.h
ros_topic_property.h
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
robot.h
moveit_rviz_plugin::TaskSolutionPanel::setSliderPosition
void setSliderPosition(int position)
Definition: task_solution_panel.cpp:144
display_solution.h
rviz::IntProperty
display_context.h
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
moveit_rviz_plugin::MarkerVisualizationProperty::allAtOnce
bool allAtOnce() const
Definition: marker_visualization.cpp:221


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