23
23
#include < planner_msgs/SetService.h>
24
24
#include < planner_msgs/SetString.h>
25
25
#include < planner_msgs/SetVector3.h>
26
+ #include < geometry_msgs/PoseStamped.h>
26
27
27
28
#include " mav_planning_rviz/edit_button.h"
28
29
#include " mav_planning_rviz/goal_marker.h"
31
32
32
33
namespace mav_planning_rviz {
33
34
34
- PlanningPanel::PlanningPanel (QWidget* parent) : rviz::Panel(parent), nh_(ros::NodeHandle()), interactive_markers_(nh_) {
35
+ PlanningPanel::PlanningPanel (QWidget* parent) : rviz::Panel(parent), nh_(ros::NodeHandle()) {
35
36
createLayout ();
36
37
goal_marker_ = std::make_shared<GoalMarker>(nh_);
37
38
planner_state_sub_ = nh_.subscribe (" /planner_status" , 1 , &PlanningPanel::plannerstateCallback, this ,
38
39
ros::TransportHints ().tcpNoDelay ());
39
40
}
40
41
41
42
void PlanningPanel::onInitialize () {
42
- interactive_markers_.initialize ();
43
- interactive_markers_.setPoseUpdatedCallback (
44
- std::bind (&PlanningPanel::updateInteractiveMarkerPose, this , std::placeholders::_1));
45
-
46
- interactive_markers_.setFrameId (vis_manager_->getFixedFrame ().toStdString ());
47
- // Initialize all the markers.
48
- for (const auto & kv : pose_widget_map_) {
49
- mav_msgs::EigenTrajectoryPoint pose;
50
- kv.second ->getPose (&pose);
51
- interactive_markers_.enableMarker (kv.first , pose);
52
- }
53
43
}
54
44
55
45
void PlanningPanel::createLayout () {
@@ -260,18 +250,11 @@ void PlanningPanel::startEditing(const std::string& id) {
260
250
if (search == pose_widget_map_.end ()) {
261
251
return ;
262
252
}
263
- // Update fixed frame (may have changed since last time):
264
- interactive_markers_.setFrameId (vis_manager_->getFixedFrame ().toStdString ());
265
- mav_msgs::EigenTrajectoryPoint pose;
266
- search->second ->getPose (&pose);
267
- interactive_markers_.enableSetPoseMarker (pose);
268
- interactive_markers_.disableMarker (id);
269
253
}
270
254
271
255
void PlanningPanel::finishEditing (const std::string& id) {
272
256
if (currently_editing_ == id) {
273
257
currently_editing_.clear ();
274
- interactive_markers_.disableSetPoseMarker ();
275
258
}
276
259
auto search = pose_widget_map_.find (id);
277
260
if (search == pose_widget_map_.end ()) {
@@ -280,7 +263,6 @@ void PlanningPanel::finishEditing(const std::string& id) {
280
263
ros::spinOnce ();
281
264
mav_msgs::EigenTrajectoryPoint pose;
282
265
search->second ->getPose (&pose);
283
- interactive_markers_.enableMarker (id, pose);
284
266
}
285
267
286
268
void PlanningPanel::registerPoseWidget (PoseWidget* widget) {
@@ -331,10 +313,6 @@ void PlanningPanel::updateInteractiveMarkerPose(const mav_msgs::EigenTrajectoryP
331
313
}
332
314
333
315
void PlanningPanel::widgetPoseUpdated (const std::string& id, mav_msgs::EigenTrajectoryPoint& pose) {
334
- if (currently_editing_ == id) {
335
- interactive_markers_.setPose (pose);
336
- }
337
- interactive_markers_.updateMarkerPose (id, pose);
338
316
}
339
317
340
318
void PlanningPanel::callPlannerService () {
@@ -604,7 +582,6 @@ void PlanningPanel::odometryCallback(const nav_msgs::Odometry& msg) {
604
582
point.position_W = odometry.position_W ;
605
583
point.orientation_W_B = odometry.orientation_W_B ;
606
584
pose_widget_map_[" start" ]->setPose (point);
607
- interactive_markers_.updateMarkerPose (" start" , point);
608
585
}
609
586
}
610
587
0 commit comments