Commit Graph

257 Commits

Author SHA1 Message Date
Robert Haschke
be314905a9 fix realtime rviz display
In realtime mode, rviz display stopped with the last waypoint and didn't
show the final scene.
2018-10-20 23:33:54 +02:00
Robert Haschke
c3078edc99 use newly provided rviz::createMarker() function 2018-10-20 23:33:03 +02:00
Robert Haschke
a745f55ab7 fix compiler warnings in release mode 2018-10-17 01:55:28 +02:00
Robert Haschke
1787a66d37 fix compiler warnings 2018-10-16 23:14:58 +02:00
Robert Haschke
f2573e9bfd fix include order
Local headers should be preferred over those from underlay.
Consequently use target_include_directories() to properly define include order.
2018-09-25 13:30:53 +02:00
Robert Haschke
c2dd28abae rework storing of solutions
- solutions_, failures_ as SolutionBaseConstPtrs in StagePrivate
- replace processSolutions() / processFailures() by direct const-access to storage containers
- generic sendForward(), sendBackward(), spawn(), connect() methods in StagePrivate
- reuse StagePrivate's sendForward(), sendBackward(), spawn() in containers

- store created InterfaceStates in StagePrivate::states_
- Interface: ordered<InterfaceState*> (only store pointers)
  allows for common handling of states of valid and failure solutions

- remove additional state+solution storages
- containers: internal->external state mapping as InterfaceState* -> InterfaceState*
2018-05-30 21:02:50 +02:00
Robert Haschke
eb50aaed0e SolutionBase: rename 'name' to 'comment' 2018-05-30 20:25:42 +02:00
Robert Haschke
19fa7349d3 Task: only accept containers 2018-05-18 17:42:34 +02:00
Robert Haschke
320fe7e444 fix mem leaks 2018-04-27 12:06:14 +02:00
Robert Haschke
cd88b22469 update trail in both directions:
- show new steps if current_state_ advanced
- hide steps if current_state_ reverted
2018-04-15 11:25:01 +02:00
Robert Haschke
534985bdbb show start / end scene for empty trajectories 2018-04-15 11:25:01 +02:00
Robert Haschke
962fe2a42d reworked TaskSolution visualization
- code simplification
- allow slider interaction at any time
- keep last frame visible if animation finished
- animating_ is true iff animation is running
  (previously it was also used to indicate the end of an animation cycle)
2018-04-15 11:25:01 +02:00
Robert Haschke
24e8b95203 TaskSolutionVisualization: solution_to_display_ -> next_solution_to_display_ 2018-04-15 11:25:01 +02:00
Robert Haschke
853fa86e37 switch markers when showing next subtrajectory 2018-03-26 00:14:32 +02:00
Robert Haschke
b316a2e9c4 allow marker pose updates during trajectory display
moved marker_visual_ from TaskDisplay to TaskSolutionVisualization
2018-03-26 00:14:32 +02:00
Robert Haschke
714117a48a reworked marker creation 2018-03-26 00:14:28 +02:00
Robert Haschke
5a55a5949b Merge branches 'bug-fixes', 'gui' and 'pick-stage' 2018-03-24 07:32:20 +01:00
Robert Haschke
936681f4c3 allow arbitrary (planning scene) frames for markers 2018-03-24 07:31:30 +01:00
Robert Haschke
56c2ef3fbb save settings for solution sorting 2018-03-24 07:03:32 +01:00
Robert Haschke
2451d0c4d5 save panel settings 2018-03-23 17:25:49 +01:00
Robert Haschke
3d07e34522 highlight currently active solution part 2018-03-23 17:25:49 +01:00
Robert Haschke
0fd5f3c1b3 auto-expand newly inserted task-pipelines 2018-03-23 17:25:49 +01:00
Robert Haschke
3ce0bc7dee MetaTaskListModel: don't remove top-level items 2018-03-23 17:25:49 +01:00
janEbert
1f6bea9438 icons to visualize logic flow 2018-03-23 17:25:49 +01:00
Robert Haschke
bffe5f9a55 position marker nodes w.r.t. planning frame 2018-03-23 17:08:06 +01:00
Robert Haschke
d816a13362 fix segfault: always createMarkers()
... to have all the scene nodes properly defined
in case namespace groups will be enabled later on
2018-03-23 17:08:06 +01:00
Robert Haschke
3fe3034410 MarkerVisualization: improve comments
- renamed showMarkers() -> addMarkers()
- MarkerVisualizationProperty: renamed visible_markers_ -> hosted_markers_

Hosted markers are not neccessarily visible,
only if the corresponding namespace group is enabled.
2018-03-23 17:08:06 +01:00
Robert Haschke
ceaf896bf8 position scene node w.r.t. fixed frame 2018-03-23 11:22:23 +01:00
Robert Haschke
0494f1c93b [Tree|Flat]MergeProxyModel: cleanup index mapping when removing rows 2018-03-23 11:22:23 +01:00
Robert Haschke
3adc516037 fixed spurious rviz crash? 2018-02-25 20:28:13 +01:00
v4hn
4f2b38f02d add missing headers 2018-02-21 14:56:51 +01:00
Robert Haschke
8184156575 rviz plugin: fix segfault
Postpone setup of subscribers until robot model is successfully loaded.
Otherwise the scene used in task models is undefined.
2018-02-16 16:01:05 +01:00
Robert Haschke
050a4c3f86 basic framework to display stage properties 2018-02-12 23:39:07 +01:00
Robert Haschke
52904f65a2 bug fixes
- correctly keep display's Tasks property in sync with panel
  (insertion position didn't match to panel)
- disable actions depending on context
2018-02-12 23:37:30 +01:00
janEbert
193d3fef67 TaskPanel: separate widget classes
TaskPanel, TaskView, TaskSettings, ...
2018-02-12 23:37:30 +01:00
Robert Haschke
3b26d2777a RemoteTaskModel: insert solution also when received on solution topic 2018-02-12 22:36:58 +01:00
Robert Haschke
ca899d6a43 cleanup findById: fixup for 'allow handling of failures'
fixup for 014f291defb124a62bb66b78570356ee9e74a7ee
use SFINAE magic to distinguish both types of findById
unfortunately crashes gcc 5, clang works
2018-02-12 22:36:58 +01:00
Robert Haschke
1403fc9830 fixed some clang warnings 2018-02-12 22:36:12 +01:00
Robert Haschke
b60047318a code simplification
Usually, if we receive stage statistics there are some changes as well.
Hence, always emit notify signal in favour of complex change detection.
2018-02-12 22:36:12 +01:00
Robert Haschke
2184450bd6 count all failures for statistics 2018-02-12 22:36:12 +01:00
Robert Haschke
97bb6ef2c6 allow handling of failures
- store "failure" solutions to facilitate debugging
- Introspection assigns solution IDs as soon as they are created in a stage
  Thus, solution IDs represent their creation order.
  In contrast, the order of publishing (in StageStatistics) should
  represent the cost order.
- Storing failures is disabled if Introspection is not available.
2018-02-12 22:35:58 +01:00
Robert Haschke
5d5a74ecd0 improved realtime display of solutions
stay in sync with realtime by keeping small time differences
solution visualization: common setVisibility()
2018-02-12 22:33:39 +01:00
Robert Haschke
5c1cad14df Merge branches 'fixes', 'wip-drag-n-drop', 'wip-ikstage' and 'wip-marker-vis'
resolved conflicts:
core/include/moveit/task_constructor/container.h
core/src/container.cpp
core/src/stages/generate_grasp_pose.cpp
visualization/motion_planning_tasks/src/task_display.cpp
visualization/motion_planning_tasks/src/task_panel_p.h
2018-02-04 21:36:01 +01:00
Robert Haschke
32660670a7 correctly pass on StageFactory 2018-02-04 21:30:25 +01:00
Robert Haschke
d9be19bbe8 re-enable drag-n-drop to edit task pipeline 2018-02-04 21:30:25 +01:00
Robert Haschke
faa7b38ff9 fix flaky "deletion" unittest 2018-02-04 20:59:16 +01:00
Robert Haschke
015dc2314a postpone panel instantiation
... to ensure that only a single instance is created
(something not really supported/intended by rviz)
2018-02-04 20:37:47 +01:00
Robert Haschke
5adac3f21f auto-load TaskPanel with TaskDisplay 2018-02-04 20:26:07 +01:00
Robert Haschke
6f95642a5a fix segfault 2018-02-04 09:01:40 +01:00
Robert Haschke
70fadbef11 fixed memory leak 2018-02-04 09:01:40 +01:00
Robert Haschke
32314d3532 consistently use double for costs 2018-02-04 09:01:40 +01:00
Robert Haschke
f8952bb712 introducing process_id
The task id was not unique enough to distinguish different tasks.
When a task publisher is killed and restarted, it usually comes up with
the same task id. However, visualization doesn't notice this change and
get confused / crashes when receiving task statistics and solutions.
2018-02-04 09:01:40 +01:00
Robert Haschke
5089de890f bug fixes
- only attempt to retrieve solution if remote was not yet destroyed
- setting get_solution_client is neccessary only once (pointer never changes)
- more reliable topic handling + status feedback
2018-02-04 09:00:54 +01:00
Robert Haschke
3e788084b2 improve solution visualization / navigation
- locking: suppress interrupting current solution display when navigating solutions
- display end scene at the end of a solution display
- allow to display multiple solutions (its markers)
2018-02-04 09:00:54 +01:00
Robert Haschke
30f6ade636 marker visualization 2018-02-04 09:00:54 +01:00
Robert Haschke
f7ae7756cc fix cmake file 2018-02-04 09:00:54 +01:00
v4hn
d7719e721f add full license information
so dull... but for the matter of completeness
2017-12-12 21:24:32 +01:00
v4hn
7319711973 reduce catkin_lint complains in visualization 2017-12-08 20:56:12 +01:00
Robert Haschke
0246d60de9 DisplaySolution: struct to unify all data corresponding to a sub trajectory 2017-11-30 18:15:47 +01:00
Robert Haschke
d4c1a9de5c cleanup RemoteTaskModel
update all solution's data in solution model
2017-11-30 15:38:58 +01:00
Robert Haschke
6ff5d453be use std::unique_ptr 2017-11-24 20:10:56 +01:00
Robert Haschke
40cfceb557 fix Trusty/Indigo build 2017-11-24 15:12:38 +01:00
Robert Haschke
1bc485658e Merge branch 'wip-visualization' into wip-refactor 2017-11-24 13:40:43 +01:00
Robert Haschke
b48ba91a75 cmake compatbility to 2.8.12 2017-11-24 13:37:50 +01:00
Robert Haschke
eb1569efc3 renamed TaskListModelCache -> MetaTaskListModel 2017-11-24 11:24:18 +01:00
Robert Haschke
9dd9bd5ac4 TaskPanel: create new Display if neccessary 2017-11-24 11:24:18 +01:00
Robert Haschke
9032dabca5 navigate solutions 2017-11-24 11:24:18 +01:00
Robert Haschke
1f7184b755 ui tuning
- TabWidget for Task Tree, Settings, ...
- adjust width of columns in task tree
- right-align numbers
- some icons
2017-11-24 00:41:20 +01:00
Robert Haschke
3faea3b63a use MergeProxyModels
- derive TaskListModel from FlatMergeProxyModel
- TaskDisplay owns its TaskListModel
- TaskListModelCache as TreeMergeProxyModel
2017-11-24 00:40:48 +01:00
Robert Haschke
92ce7e7efe MergeProxyModel 2017-11-24 00:40:48 +01:00
Robert Haschke
c6c97e1836 share scene/robot model between TaskDisplay and associated TaskListModel 2017-11-20 00:57:25 +01:00
Robert Haschke
957b10a7a8 don't export SerialContainer as pluginlib class
... it's imported as builtin
2017-11-20 00:07:27 +01:00
Robert Haschke
936cdc4945 TaskListModel: map all encountered source indexes 2017-11-19 23:50:22 +01:00
Robert Haschke
fdc0fa012a restore panel visibility when enabling 2017-11-19 22:26:09 +01:00
Robert Haschke
428bdd7d0c fixed visibility update of scene nodes
All scene nodes are hidden if
- there is no solution to display
- or if animation finished and neither the panel nor the trail are enabled

Hiding scene nodes is done by detaching them from their parent
2017-11-19 22:26:09 +01:00
Robert Haschke
d5627c0c39 cleanup 2017-11-19 22:26:05 +01:00
v4hn
81b1281c02 add myself as maintainer & travis recipient 2017-11-13 15:39:30 +01:00
v4hn
720c08354e fix qt4 build error due to known moc problem
qt4's moc is known to have problems with C preprocessor directives.

Documented e.g. here:
https://forum.qt.io/topic/37882/qt-4-8-qt_version_check-and-moc-workaround
2017-11-13 14:56:35 +01:00
Robert Haschke
df1bbc5d32 travis config + fixes 2017-11-13 01:33:33 +01:00
Robert Haschke
e9ba2248f8 Merge remote-tracking branch 'origin/master' into wip-refactor
- cmake 3.1 required for CMAKE_CXX_STANDARD
- more old-style signal/slots for Qt4 compatibility
2017-11-13 00:07:23 +01:00
Robert Haschke
d0e3783d4e removed statistics from task description
- make TaskStatistics a latched topic too
- subscribing to topics in order (1. description, 2. statistics, 3. solution)
  should ensure that we receive those latched messages in this order
2017-11-12 21:42:48 +01:00
Robert Haschke
12095405f4 DisplaySolution: make scene representing the end state
- start state is accessible via scene->getParent()
- allows to show the final state
2017-11-12 21:42:48 +01:00
Robert Haschke
67b5a99d8d receive task solutions
- remove parent_id from StageStatistics message
2017-11-12 21:42:48 +01:00
Robert Haschke
9c5ddd3f6d split repo into different ROS packages: msgs, core, visualization 2017-11-12 21:42:48 +01:00
v4hn
2ad6e1d622 visualization: qt4 support for signal connections 2017-11-12 12:27:35 +01:00
Robert Haschke
3f93d6c9c3 Merge branches 'wip-solution' and 'wip-interaction' into wip-refactor 2017-11-12 11:44:17 +01:00
Robert Haschke
c1d676589a display scene corresponding to SubTrajectory 2017-11-12 11:42:29 +01:00
Robert Haschke
8129caa614 TaskSolutionVisualization: added scene, renamed vars 2017-11-12 10:35:59 +01:00
Robert Haschke
c516a537f5 TaskListModel: expand view's item when dropping onto it 2017-11-12 07:01:17 +01:00
Robert Haschke
fc9ca1b624 LocalTaskModel: allow removing of stages 2017-11-12 06:59:34 +01:00
Robert Haschke
953224eba1 LocalTaskModel: populate via drag-n-drop 2017-11-12 06:59:34 +01:00
Robert Haschke
1ae3793a9d TaskModel / TaskDisplay: keep names in sync 2017-11-12 06:59:34 +01:00
Robert Haschke
2bc1b08a00 TaskDisplay: show tasks 2017-11-12 06:59:34 +01:00
Robert Haschke
81126f5ef6 DisplaySolution class 2017-11-11 19:47:43 +01:00
Robert Haschke
cb85e1b864 publish task info in private namespace: ~/taskid
- default task id is empty
- introspection becomes member of task, created with Task::enableIntrospection(true)
2017-11-11 19:47:31 +01:00
Robert Haschke
a43692fc25 renamed Task, Stage msgs
- Stage -> StageStatistics + StageDescription
- Task -> TaskStatistics + TaskDescription
- removed GetInterfaceState.srv
2017-11-11 19:46:33 +01:00
Robert Haschke
924051c511 handle IS_DESTROYED flag for RemoteTask
- turn task red in models
- if a task with same ID is received again, create a new RemoteTask anyway
2017-11-11 19:46:09 +01:00
Robert Haschke
0f9c8cc8ea implemented TaskListModel::removeRows 2017-11-11 19:46:09 +01:00
v4hn
481e2c4f12 visualization: add missing header includes 2017-11-10 19:34:45 +01:00
v4hn
0f49177393 cmake: fix dependencies & includes
Partly required to get it to compile with `catkin_make`.
2017-11-10 18:38:01 +01:00
Robert Haschke
18119a7985 cleanup cmake 2017-11-03 19:19:33 +01:00
Robert Haschke
6ba66b51a7 reworked TaskModels
- separate RemoteTaskModel / LocalTaskModel, reusing existing storage
- TaskListModel collects several TaskModels
- TaskListModelCache: global singleton,
  maintaining TaskListModel of all tasks in system (used by panels)
- create LocalTask from stages available via pluglinlib
2017-11-03 19:16:04 +01:00
Robert Haschke
022e29caa5 merged task_panel + task_solution_display into motion_planning_tasks folder 2017-11-02 09:53:43 +01:00
Robert Haschke
82758abc65 cleanup TaskSolutionDisplay 2017-11-02 09:53:43 +01:00
eirtech
042d33f331 adaptions for TaskSolutionDisplay 2017-11-02 09:53:43 +01:00
Robert Haschke
18cc780407 copied trajectory visualization stuff from moveit 2017-11-02 09:53:43 +01:00
Robert Haschke
8a461af97c TaskPanel: listen to task_monitoring topic 2017-11-02 09:53:28 +01:00