Robert Haschke
c3eead0115
allow only a single inititialization source
2018-02-12 22:45:15 +01:00
Robert Haschke
5c43d700a8
update state priorities in a container-specific fashion
...
Reorder interface list on priority updates.
This requires the InterfaceState to store a pointer to the owning Interface.
2018-02-12 22:44:18 +01:00
Robert Haschke
facd6438c9
Interface: order states by priority
...
Priority is (depth of solutions, accumulated cost along trace).
2018-02-12 22:44:18 +01:00
Robert Haschke
d0351698a6
single map internal_to_external
...
There is no need to distinguish between starts and ends when mapping
states, because start/end states need to be disjoint sets.
2018-02-12 22:44:18 +01:00
Robert Haschke
e6af069139
SerialContainer: traverse solutions w/o stopping stage
...
Always traverse from current solution to the start/end of a complete
path and only call the callback once for the whole trace.
2018-02-12 22:44:18 +01:00
Robert Haschke
6a62f6be76
default argument for NotifyFunction in Interface constructor
2018-02-12 22:44:18 +01:00
Robert Haschke
3b26d2777a
RemoteTaskModel: insert solution also when received on solution topic
2018-02-12 22:36:58 +01:00
Robert Haschke
244a7d147b
sort serial solutions before insertion
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
29577515a0
cost ordering for solutions
2018-02-12 22:36:56 +01:00
Robert Haschke
c84fa4cdd6
cost ordered API
2018-02-12 22:36:12 +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
7a13d79bc4
example setting solution markers
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
57cd11e3a9
Wrapper::compute: return true if new solutions are found
2018-02-12 22:33:39 +01:00
Robert Haschke
38f7696acf
ComputeBase::addTrajectory -> ComputeBasePrivate::addTrajectory
...
Forbid indirect access to trajectories_.
Only official compute classes have access.
2018-02-12 22:33:39 +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
17683b12c9
more exported stage plugins: CurrentState
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
736136dd9f
collision test for ee group
2018-02-04 09:01:45 +01:00
Robert Haschke
3fd096c8e6
fix IK stage: insert different solutions as different scenes
2018-02-04 09:01:45 +01:00
Robert Haschke
57d907908d
better names for frame and transform variables
2018-02-04 09:01:45 +01:00
Robert Haschke
fe05894709
renamed GenerateGraspPose::setGraspFrame() to setToolToGraspTF()
2018-02-04 09:01:45 +01:00
Robert Haschke
0918ad6897
implement IK as separate stage
...
... wrapping another stage
2018-02-04 09:01:45 +01:00
Robert Haschke
b6959170db
derive WrapperBase from ContainerBase
...
While ParallelContainers can directly promote their child solutions as
their own, a Wrapper needs to modify those solutions. Hence, Wrappers
should be derived directly from Container.
2018-02-04 09:01:45 +01:00
Robert Haschke
e4ad7a0753
removed Stage::validate()
...
... only was checking for implies(a, a) which is always true
2018-02-04 09:01:45 +01:00
Robert Haschke
104e52eb48
promise to not modify solutions
2018-02-04 09:01:45 +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
01d43e3f3b
marker_tools
2018-02-04 09:00:54 +01:00
Robert Haschke
365fee9b60
rviz marker tools
2018-02-04 09:00:54 +01:00
Robert Haschke
0e8dd85ae6
allow stages to access the created SubTrajectory
...
to add markers, set name, etc.
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
Robert Haschke
e9363919e8
Merge branch 'wip-properties'
2018-02-04 08:59:35 +01:00
Robert Haschke
41ec46964a
more unit tests
2018-02-04 08:56:11 +01:00
Robert Haschke
3ab899a9a8
cleanup error handling
...
throw std::logic_error on type errors
throw std::runtime_error on undeclared property
don't expose generic PropertyMap::declare()
2018-02-04 08:56:11 +01:00
Robert Haschke
c9e3be08d0
fix initialization order of properties
...
First from INTERFACE, second from PARENT.
INTERFACE initialization only makes sense for Propagating stages.
Connecting stages should ensure that interfaces define identical
properties which is not possible with boost::any.
2018-02-04 08:56:11 +01:00
Robert Haschke
4db7e8eb88
definition of PropertyInitializerSource moved to Stage
2018-02-04 08:56:11 +01:00