trajectory_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 
39 #include <boost/thread/mutex.hpp>
41 #include <rviz/display.h>
42 #include <rviz/panel_dock_widget.h>
43 
44 #ifndef Q_MOC_RUN
47 #include <ros/ros.h>
51 #include <moveit_msgs/DisplayTrajectory.h>
52 #endif
53 
54 namespace rviz
55 {
56 class Robot;
57 class Shape;
58 class Property;
59 class IntProperty;
60 class StringProperty;
61 class BoolProperty;
62 class FloatProperty;
63 class RosTopicProperty;
64 class EditableEnumProperty;
65 class ColorProperty;
66 class MovableText;
67 } // namespace rviz
68 
69 namespace moveit_rviz_plugin
70 {
71 MOVEIT_CLASS_FORWARD(TrajectoryVisualization); // Defines TrajectoryVisualizationPtr, ConstPtr, WeakPtr... etc
72 
73 class TrajectoryVisualization : public QObject
74 {
75  Q_OBJECT
76 
77 public:
85 
86  ~TrajectoryVisualization() override;
87 
88  virtual void update(float wall_dt, float sim_dt);
89  virtual void reset();
90 
91  void onInitialize(Ogre::SceneNode* scene_node, rviz::DisplayContext* context, const ros::NodeHandle& update_nh);
92  void clearRobotModel();
93  void onRobotModelLoaded(const moveit::core::RobotModelConstPtr& robot_model);
94  void onEnable();
95  void onDisable();
96  void setName(const QString& name);
97 
98  void dropTrajectory();
99 
100 public Q_SLOTS:
102  void setDefaultAttachedObjectColor(const QColor& color);
103 
104 private Q_SLOTS:
105 
111  void changedRobotPathAlpha();
112  void changedLoopDisplay();
113  void changedShowTrail();
114  void changedTrailStepSize();
115  void changedTrajectoryTopic();
117  void changedRobotColor();
118  void enabledRobotColor();
119  void trajectorySliderPanelVisibilityChange(bool enable);
120 
121 protected:
125  void incomingDisplayTrajectory(const moveit_msgs::DisplayTrajectory::ConstPtr& msg);
131  float getStateDisplayTime();
132  void clearTrajectoryTrail();
133 
134  // Handles actually drawing the robot along motion plans
135  RobotStateVisualizationPtr display_path_robot_;
136  std_msgs::ColorRGBA default_attached_object_color_;
137 
138  // Handle colouring of robot
139  void setRobotColor(rviz::Robot* robot, const QColor& color);
140  void unsetRobotColor(rviz::Robot* robot);
141 
142  robot_trajectory::RobotTrajectoryPtr displaying_trajectory_message_;
143  robot_trajectory::RobotTrajectoryPtr trajectory_message_to_display_;
144  std::vector<RobotStateVisualizationUniquePtr> trajectory_trail_;
151 
152  moveit::core::RobotModelConstPtr robot_model_;
153  moveit::core::RobotStatePtr robot_state_;
154 
155  // Pointers from parent display that we save
156  rviz::Display* display_; // the parent display that this class populates
158  Ogre::SceneNode* scene_node_;
163 
164  // Properties
177 };
178 
179 } // namespace moveit_rviz_plugin
moveit_rviz_plugin::TrajectoryVisualization::robot_state_
moveit::core::RobotStatePtr robot_state_
Definition: trajectory_visualization.h:153
robot_model.h
moveit_rviz_plugin::TrajectoryVisualization::TrajectoryVisualization
TrajectoryVisualization(rviz::Property *widget, rviz::Display *display)
Playback a trajectory from a planned path.
Definition: trajectory_visualization.cpp:93
trajectory_panel.h
rviz::RosTopicProperty
moveit_rviz_plugin::TrajectoryVisualization::context_
rviz::DisplayContext * context_
Definition: trajectory_visualization.h:159
moveit_rviz_plugin::TrajectoryVisualization::reset
virtual void reset()
Definition: trajectory_visualization.cpp:235
moveit_rviz_plugin::TrajectoryVisualization::getStateDisplayTime
float getStateDisplayTime()
get time to show each single robot state
Definition: trajectory_visualization.cpp:387
moveit_rviz_plugin::TrajectoryVisualization::interruptCurrentDisplay
void interruptCurrentDisplay()
Definition: trajectory_visualization.cpp:378
moveit_rviz_plugin::TrajectoryVisualization::use_sim_time_property_
rviz::BoolProperty * use_sim_time_property_
Definition: trajectory_visualization.h:171
moveit_rviz_plugin::TrajectoryVisualization::animating_path_
bool animating_path_
Definition: trajectory_visualization.h:146
moveit_rviz_plugin::TrajectoryVisualization::trail_step_size_property_
rviz::IntProperty * trail_step_size_property_
Definition: trajectory_visualization.h:176
moveit_rviz_plugin::TrajectoryVisualization::state_display_time_property_
rviz::EditableEnumProperty * state_display_time_property_
Definition: trajectory_visualization.h:167
moveit_rviz_plugin::TrajectoryVisualization::trajectorySliderPanelVisibilityChange
void trajectorySliderPanelVisibilityChange(bool enable)
Definition: trajectory_visualization.cpp:648
ros.h
moveit_rviz_plugin::TrajectoryVisualization::onEnable
void onEnable()
Definition: trajectory_visualization.cpp:350
rviz::EditableEnumProperty
rviz::BoolProperty
rviz::PanelDockWidget
moveit_rviz_plugin::TrajectoryVisualization::robot_model_
moveit::core::RobotModelConstPtr robot_model_
Definition: trajectory_visualization.h:152
moveit_rviz_plugin::TrajectoryVisualization::changedShowTrail
void changedShowTrail()
Definition: trajectory_visualization.cpp:259
moveit_rviz_plugin::MOVEIT_CLASS_FORWARD
MOVEIT_CLASS_FORWARD(RobotStateVisualization)
display.h
robot_state.h
moveit_rviz_plugin::TrajectoryVisualization::displaying_trajectory_message_
robot_trajectory::RobotTrajectoryPtr displaying_trajectory_message_
Definition: trajectory_visualization.h:142
moveit_rviz_plugin::TrajectoryVisualization::trajectory_trail_
std::vector< RobotStateVisualizationUniquePtr > trajectory_trail_
Definition: trajectory_visualization.h:144
moveit_rviz_plugin::TrajectoryVisualization::current_state_
int current_state_
Definition: trajectory_visualization.h:148
moveit_rviz_plugin::TrajectoryVisualization::changedRobotColor
void changedRobotColor()
Definition: trajectory_visualization.cpp:606
moveit_rviz_plugin::TrajectoryVisualization::trajectory_slider_dock_panel_
rviz::PanelDockWidget * trajectory_slider_dock_panel_
Definition: trajectory_visualization.h:162
moveit_rviz_plugin::TrajectoryVisualization::onRobotModelLoaded
void onRobotModelLoaded(const moveit::core::RobotModelConstPtr &robot_model)
Definition: trajectory_visualization.cpp:212
rviz::ColorProperty
rviz::Display
rviz::FloatProperty
rviz::Property
moveit_rviz_plugin::TrajectoryVisualization::display_path_visual_enabled_property_
rviz::BoolProperty * display_path_visual_enabled_property_
Definition: trajectory_visualization.h:165
moveit_rviz_plugin::TrajectoryVisualization::onInitialize
void onInitialize(Ogre::SceneNode *scene_node, rviz::DisplayContext *context, const ros::NodeHandle &update_nh)
Definition: trajectory_visualization.cpp:179
robot_trajectory.h
moveit_rviz_plugin::TrajectoryVisualization::enable_robot_color_property_
rviz::BoolProperty * enable_robot_color_property_
Definition: trajectory_visualization.h:175
moveit_rviz_plugin::TrajectoryVisualization::drop_displaying_trajectory_
bool drop_displaying_trajectory_
Definition: trajectory_visualization.h:147
moveit_rviz_plugin::TrajectoryVisualization::scene_node_
Ogre::SceneNode * scene_node_
Definition: trajectory_visualization.h:158
moveit_rviz_plugin::TrajectoryVisualization::update
virtual void update(float wall_dt, float sim_dt)
Definition: trajectory_visualization.cpp:439
moveit_rviz_plugin::TrajectoryVisualization::setDefaultAttachedObjectColor
void setDefaultAttachedObjectColor(const QColor &color)
Definition: trajectory_visualization.cpp:626
moveit_rviz_plugin::TrajectoryVisualization::clearRobotModel
void clearRobotModel()
Definition: trajectory_visualization.cpp:659
moveit_rviz_plugin::TrajectoryVisualization::update_nh_
ros::NodeHandle update_nh_
Definition: trajectory_visualization.h:160
moveit_rviz_plugin::TrajectoryVisualization::loop_display_property_
rviz::BoolProperty * loop_display_property_
Definition: trajectory_visualization.h:170
rviz
moveit_rviz_plugin::TrajectoryVisualization::trajectory_topic_sub_
ros::Subscriber trajectory_topic_sub_
Definition: trajectory_visualization.h:145
moveit_rviz_plugin::TrajectoryVisualization::trajectory_slider_panel_
TrajectoryPanel * trajectory_slider_panel_
Definition: trajectory_visualization.h:161
moveit_rviz_plugin::TrajectoryVisualization::default_attached_object_color_
std_msgs::ColorRGBA default_attached_object_color_
Definition: trajectory_visualization.h:136
moveit_rviz_plugin::TrajectoryVisualization::incomingDisplayTrajectory
void incomingDisplayTrajectory(const moveit_msgs::DisplayTrajectory::ConstPtr &msg)
ROS callback for an incoming path message.
Definition: trajectory_visualization.cpp:560
moveit_rviz_plugin::TrajectoryVisualization::changedDisplayPathVisualEnabled
void changedDisplayPathVisualEnabled()
Slot Event Functions.
Definition: trajectory_visualization.cpp:324
rviz::DisplayContext
Robot
name
name
rviz::Robot
moveit_rviz_plugin::TrajectoryVisualization::display_path_robot_
RobotStateVisualizationPtr display_path_robot_
Definition: trajectory_visualization.h:135
moveit_rviz_plugin::TrajectoryVisualization::changedStateDisplayTime
void changedStateDisplayTime()
Definition: trajectory_visualization.cpp:335
moveit_rviz_plugin::TrajectoryVisualization::current_state_time_
float current_state_time_
Definition: trajectory_visualization.h:149
moveit_rviz_plugin::TrajectoryVisualization::display_path_collision_enabled_property_
rviz::BoolProperty * display_path_collision_enabled_property_
Definition: trajectory_visualization.h:166
moveit_rviz_plugin::TrajectoryVisualization::onDisable
void onDisable()
Definition: trajectory_visualization.cpp:367
moveit_rviz_plugin
Definition: motion_planning_display.h:80
moveit_rviz_plugin::TrajectoryVisualization::changedLoopDisplay
void changedLoopDisplay()
Definition: trajectory_visualization.cpp:252
moveit_rviz_plugin::TrajectoryPanel
Definition: trajectory_panel.h:83
moveit_rviz_plugin::TrajectoryVisualization::interrupt_display_property_
rviz::BoolProperty * interrupt_display_property_
Definition: trajectory_visualization.h:173
moveit_rviz_plugin::TrajectoryVisualization::trail_display_property_
rviz::BoolProperty * trail_display_property_
Definition: trajectory_visualization.h:172
moveit_rviz_plugin::TrajectoryVisualization::clearTrajectoryTrail
void clearTrajectoryTrail()
Definition: trajectory_visualization.cpp:247
moveit_rviz_plugin::TrajectoryVisualization::changedTrajectoryTopic
void changedTrajectoryTopic()
Definition: trajectory_visualization.cpp:313
moveit_rviz_plugin::TrajectoryVisualization::changedTrailStepSize
void changedTrailStepSize()
Definition: trajectory_visualization.cpp:300
moveit_rviz_plugin::TrajectoryVisualization::~TrajectoryVisualization
~TrajectoryVisualization() override
Definition: trajectory_visualization.cpp:168
class_forward.h
moveit_rviz_plugin::TrajectoryVisualization::widget_
rviz::Property * widget_
Definition: trajectory_visualization.h:157
moveit_rviz_plugin::TrajectoryVisualization::changedDisplayPathCollisionEnabled
void changedDisplayPathCollisionEnabled()
Definition: trajectory_visualization.cpp:339
moveit_rviz_plugin::TrajectoryVisualization::trajectory_message_to_display_
robot_trajectory::RobotTrajectoryPtr trajectory_message_to_display_
Definition: trajectory_visualization.h:143
moveit_rviz_plugin::TrajectoryVisualization::enabledRobotColor
void enabledRobotColor()
Definition: trajectory_visualization.cpp:612
moveit_rviz_plugin::TrajectoryVisualization::trajectory_topic_property_
rviz::RosTopicProperty * trajectory_topic_property_
Definition: trajectory_visualization.h:168
moveit_rviz_plugin::TrajectoryVisualization::changedRobotPathAlpha
void changedRobotPathAlpha()
Definition: trajectory_visualization.cpp:306
moveit_rviz_plugin::TrajectoryVisualization::unsetRobotColor
void unsetRobotColor(rviz::Robot *robot)
Definition: trajectory_visualization.cpp:620
moveit_rviz_plugin::TrajectoryVisualization::dropTrajectory
void dropTrajectory()
Definition: trajectory_visualization.cpp:434
robot_state_visualization.h
moveit_rviz_plugin::TrajectoryVisualization::robot_path_alpha_property_
rviz::FloatProperty * robot_path_alpha_property_
Definition: trajectory_visualization.h:169
moveit_rviz_plugin::TrajectoryVisualization::display_
rviz::Display * display_
Definition: trajectory_visualization.h:156
moveit_rviz_plugin::TrajectoryVisualization::setRobotColor
void setRobotColor(rviz::Robot *robot, const QColor &color)
Definition: trajectory_visualization.cpp:642
panel_dock_widget.h
moveit_rviz_plugin::TrajectoryVisualization::robot_color_property_
rviz::ColorProperty * robot_color_property_
Definition: trajectory_visualization.h:174
ros::NodeHandle
ros::Subscriber
moveit_rviz_plugin::TrajectoryVisualization
Definition: trajectory_visualization.h:73
rviz::IntProperty
moveit_rviz_plugin::TrajectoryVisualization::update_trajectory_message_
boost::mutex update_trajectory_message_
Definition: trajectory_visualization.h:150
moveit_rviz_plugin::TrajectoryVisualization::setName
void setName(const QString &name)
Definition: trajectory_visualization.cpp:206


visualization
Author(s): Ioan Sucan , Dave Coleman , Sachin Chitta
autogenerated on Sat Mar 15 2025 02:27:26