task_display.h
Go to the documentation of this file.
1 /*********************************************************************
2  * Software License Agreement (BSD License)
3  *
4  * Copyright (c) 2017, Bielefeld University
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 Bielefeld University 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  Desc: Monitor manipulation tasks and visualize their solutions
37 */
38 
39 #pragma once
40 
41 #include <rviz/display.h>
43 
44 #ifndef Q_MOC_RUN
45 #include "job_queue.h"
47 #include <ros/subscriber.h>
48 #include <moveit_task_constructor_msgs/TaskDescription.h>
49 #include <moveit_task_constructor_msgs/TaskStatistics.h>
50 #include <moveit_task_constructor_msgs/Solution.h>
51 #endif
52 
53 namespace rviz {
54 class StringProperty;
55 class RosTopicProperty;
56 } // namespace rviz
57 
58 namespace moveit {
59 namespace core {
60 MOVEIT_CLASS_FORWARD(RobotModel);
61 }
62 } // namespace moveit
63 namespace rdf_loader {
64 MOVEIT_CLASS_FORWARD(RDFLoader);
65 }
66 
67 namespace moveit_rviz_plugin {
68 
69 MOVEIT_CLASS_FORWARD(DisplaySolution);
70 class TaskListModel;
71 
72 class TaskDisplay : public rviz::Display
73 {
74  Q_OBJECT
75 
76 public:
77  TaskDisplay();
78  ~TaskDisplay() override;
79 
80  void loadRobotModel();
81 
82  void update(float wall_dt, float ros_dt) override;
83  void reset() override;
84  void save(rviz::Config config) const override;
85  void load(const rviz::Config& config) override;
86 
87  void setName(const QString& name) override;
88  void setSolutionStatus(bool ok, const char* msg = "");
89 
92 
93  inline void clearMarkers() { trajectory_visual_->clearMarkers(); }
94  inline void addMarkers(const DisplaySolutionPtr& s) { trajectory_visual_->addMarkers(s); }
95 
96 protected:
97  void onInitialize() override;
98  void onEnable() override;
99  void onDisable() override;
100  void fixedFrameChanged() override;
102 
103 private:
104  inline void requestPanel();
105 
106 private Q_SLOTS:
112  void onTasksInserted(const QModelIndex& parent, int first, int last);
113  void onTasksRemoved(const QModelIndex& parent, int first, int last);
114  void onTaskDataChanged(const QModelIndex& topLeft, const QModelIndex& bottomRight);
115 
116  void taskDescriptionCB(const moveit_task_constructor_msgs::TaskDescriptionConstPtr& msg);
117  void taskStatisticsCB(const moveit_task_constructor_msgs::TaskStatisticsConstPtr& msg);
118  void taskSolutionCB(const moveit_task_constructor_msgs::SolutionConstPtr& msg);
119 
120 protected:
124 
125  // The trajectory playback component
126  std::unique_ptr<TaskSolutionVisualization> trajectory_visual_;
127  // The TaskListModel storing actual task and solution data
128  std::unique_ptr<TaskListModel> task_list_model_;
130 
131  // Load robot model
132  rdf_loader::RDFLoaderPtr rdf_loader_;
133  moveit::core::RobotModelConstPtr robot_model_;
134 
135  // topic namespace for ROS interfaces of task
136  std::string base_ns_;
137  // Indicates whether description was received for current task
139 
140  // Properties
144 };
145 
146 } // namespace moveit_rviz_plugin
moveit_rviz_plugin::TaskDisplay::setSolutionStatus
void setSolutionStatus(bool ok, const char *msg="")
Definition: task_display.cpp:291
rviz::RosTopicProperty
moveit_rviz_plugin::TaskDisplay::trajectory_visual_
std::unique_ptr< TaskSolutionVisualization > trajectory_visual_
Definition: task_display.h:126
moveit_rviz_plugin::MOVEIT_CLASS_FORWARD
MOVEIT_CLASS_FORWARD(OcTreeRender)
moveit_rviz_plugin::TaskDisplay::onTaskDataChanged
void onTaskDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight)
Definition: task_display.cpp:319
moveit_rviz_plugin::TaskDisplay::task_statistics_sub
ros::Subscriber task_statistics_sub
Definition: task_display.h:123
s
XmlRpcServer s
moveit_rviz_plugin::TaskDisplay::robot_description_property_
rviz::StringProperty * robot_description_property_
Definition: task_display.h:141
moveit_rviz_plugin::TaskDisplay::onTasksRemoved
void onTasksRemoved(const QModelIndex &parent, int first, int last)
Definition: task_display.cpp:309
moveit_rviz_plugin::TaskDisplay::tasks_property_
rviz::Property * tasks_property_
Definition: task_display.h:143
moveit_rviz_plugin::TaskDisplay::addMarkers
void addMarkers(const DisplaySolutionPtr &s)
Definition: task_display.h:94
moveit_rviz_plugin::TaskDisplay::task_solution_topic_property_
rviz::RosTopicProperty * task_solution_topic_property_
Definition: task_display.h:142
moveit_rviz_plugin::TaskDisplay::save
void save(rviz::Config config) const override
Definition: task_display.cpp:174
display.h
job_queue.h
moveit_rviz_plugin::TaskDisplay::taskDescriptionCB
void taskDescriptionCB(const moveit_task_constructor_msgs::TaskDescriptionConstPtr &msg)
Definition: task_display.cpp:230
ok
ROSCPP_DECL bool ok()
moveit_rviz_plugin::TaskDisplay::TaskDisplay
TaskDisplay()
Definition: task_display.cpp:94
moveit_rviz_plugin::TaskDisplay
Definition: task_display.h:72
rviz::Display
rviz::Property
moveit_rviz_plugin::TaskDisplay::task_solution_sub
ros::Subscriber task_solution_sub
Definition: task_display.h:121
moveit_rviz_plugin::TaskDisplay::taskStatisticsCB
void taskStatisticsCB(const moveit_task_constructor_msgs::TaskStatisticsConstPtr &msg)
Definition: task_display.cpp:245
moveit_rviz_plugin::TaskDisplay::calculateOffsetPosition
void calculateOffsetPosition()
Definition: task_display.cpp:198
moveit_rviz_plugin::TaskListModel
Definition: task_list_model.h:120
moveit_rviz_plugin::TaskSolutionVisualization
Definition: task_solution_visualization.h:87
moveit_rviz_plugin::TaskDisplay::received_task_description_
bool received_task_description_
Definition: task_display.h:138
rviz
moveit_rviz_plugin::TaskDisplay::rdf_loader_
rdf_loader::RDFLoaderPtr rdf_loader_
Definition: task_display.h:132
subscriber.h
rviz::StringProperty
moveit_rviz_plugin::TaskDisplay::onEnable
void onEnable() override
Definition: task_display.cpp:182
rdf_loader::MOVEIT_CLASS_FORWARD
MOVEIT_CLASS_FORWARD(RDFLoader)
moveit_rviz_plugin::TaskDisplay::changedRobotDescription
void changedRobotDescription()
Slot Event Functions.
Definition: task_display.cpp:223
moveit_rviz_plugin::TaskDisplay::onInitialize
void onInitialize() override
Definition: task_display.cpp:127
moveit_rviz_plugin::TaskDisplay::onDisable
void onDisable() override
Definition: task_display.cpp:188
moveit_rviz_plugin::TaskDisplay::fixedFrameChanged
void fixedFrameChanged() override
Definition: task_display.cpp:193
moveit_rviz_plugin::TaskDisplay::visualization
TaskSolutionVisualization * visualization() const
Definition: task_display.h:91
name
name
moveit_rviz_plugin::TaskDisplay::~TaskDisplay
~TaskDisplay() override
Definition: task_display.cpp:122
moveit_rviz_plugin::TaskDisplay::getTaskListModel
TaskListModel & getTaskListModel()
Definition: task_display.h:90
rdf_loader
moveit_rviz_plugin
task_solution_visualization.h
moveit_rviz_plugin::TaskDisplay::taskSolutionCB
void taskSolutionCB(const moveit_task_constructor_msgs::SolutionConstPtr &msg)
Definition: task_display.cpp:250
moveit_rviz_plugin::TaskDisplay::setName
void setName(const QString &name) override
Definition: task_display.cpp:218
moveit_rviz_plugin::TaskDisplay::changedTaskSolutionTopic
void changedTaskSolutionTopic()
Definition: task_display.cpp:264
moveit
moveit_rviz_plugin::TaskDisplay::requestPanel
void requestPanel()
Definition: task_display.cpp:133
moveit_rviz_plugin::TaskDisplay::robot_model_
moveit::core::RobotModelConstPtr robot_model_
Definition: task_display.h:133
moveit_rviz_plugin::TaskDisplay::task_list_model_
std::unique_ptr< TaskListModel > task_list_model_
Definition: task_display.h:128
class_forward.h
moveit::core::MOVEIT_CLASS_FORWARD
MOVEIT_CLASS_FORWARD(JointModelGroup)
moveit_rviz_plugin::TaskDisplay::update
void update(float wall_dt, float ros_dt) override
Definition: task_display.cpp:211
moveit_rviz_plugin::TaskDisplay::load
void load(const rviz::Config &config) override
Definition: task_display.cpp:178
moveit_rviz_plugin::TaskDisplay::clearMarkers
void clearMarkers()
Definition: task_display.h:93
moveit_rviz_plugin::TaskDisplay::task_description_sub
ros::Subscriber task_description_sub
Definition: task_display.h:122
moveit_rviz_plugin::TaskDisplay::onTasksInserted
void onTasksInserted(const QModelIndex &parent, int first, int last)
Definition: task_display.cpp:298
moveit_rviz_plugin::TaskDisplay::loadRobotModel
void loadRobotModel()
Definition: task_display.cpp:143
moveit_rviz_plugin::TaskDisplay::base_ns_
std::string base_ns_
Definition: task_display.h:136
config
config
moveit_rviz_plugin::TaskDisplay::reset
void reset() override
Definition: task_display.cpp:168
rviz::Config
ros::Subscriber
moveit_rviz_plugin::TaskDisplay::panel_requested_
bool panel_requested_
Definition: task_display.h:129


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