Commit Graph

271 Commits

Author SHA1 Message Date
Robert Haschke
9810e3bb4b wip: understand event-based, incremental parsing with libyaml 2019-02-10 06:21:51 +01:00
Robert Haschke
e71376743c yamp-cpp parsing 2019-02-10 06:21:51 +01:00
Robert Haschke
20e951bf63 PropertyFactory::createDefault()
... creating a read-only rviz::Property from serialized mtc::Property value
2019-02-10 06:21:51 +01:00
Robert Haschke
4ca794cb86 unify property handling in LocalTaskModel and RemoteTaskModel 2019-02-10 06:21:51 +01:00
Robert Haschke
f9715f0c18 pass PlanningScene + DisplayContext to rviz::Property creation
... to allow properties to display scene-specific lists or create rviz markers
2019-01-18 00:11:17 +01:00
Robert Haschke
780e09145e stage-specific factories for PropertyTreeModel
To allow stages to display their properties in a custom fashion, e.g.
to show the end-effector marker for PoseStamped, we need to be able
to register stage-specific factories.
2019-01-18 00:11:17 +01:00
Robert Haschke
3f3c2f6bf9 Update MTC property on changes of rviz property 2019-01-18 00:11:17 +01:00
Robert Haschke
5b8d841094 RemoteTaskModel: show stage properties 2018-11-28 08:16:16 +01:00
Robert Haschke
6d81743a0b comments 2018-11-28 08:16:16 +01:00
Robert Haschke
5690d68311 fix display of attached objects
similar as in https://github.com/ros-planning/moveit/pull/1202
2018-11-23 11:09:56 +01:00
v4hn
9740179f7f Merge branches 'cleanup-planner-interface', 'connect', 'fix-visualization' and 'rviz-createMarker' into master 2018-10-22 17:31:01 +02:00
Robert Haschke
aeaf497c75 propagate info about config changes to rviz 2018-10-20 23:33:54 +02:00
Robert Haschke
cb0ed11275 cleanup TaskPanel creation
automatically remove TaskPanel when last TaskDisplay is closed
2018-10-20 23:33:54 +02:00
Robert Haschke
f6d9bd14f4 remove left debugging stuff 2018-10-20 23:33:54 +02:00
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