v4hn
0e38730fd4
compute cost in liftSolution as well
2020-09-21 22:31:52 +02:00
v4hn
a0975e3afc
avoid ambiguity of setCostTerm(nullptr)
2020-09-21 22:31:52 +02:00
v4hn
d68ab383b6
allow setCostTerm for containers
...
implement visitor pattern for cost computation on solutions
- compute cost terms for solution subtrees instead of only for SubTrajectory
- allows users to set cost terms for containers
2020-09-21 22:31:24 +02:00
v4hn
039b0a2c27
move more overhead to computeCost
2020-09-21 22:31:23 +02:00
v4hn
e53d943b75
remove CostTransform
...
If required, this can hopefully be implemented through Wrapper stages soon.
2020-09-21 22:31:23 +02:00
v4hn
53c0964618
cost computation: provide valid interface states for Solution
...
The CostTerm's should get only a single solution that is well-setup
with its InterfaceStates. That's impossible though because these
states are stored in different places depending on the cost.
To avoid this, set stub states for cost computation
and change them to the real states later on.
This is motivated by the Clearance cost which can act on an InterfaceState only.
2020-09-21 22:31:23 +02:00
v4hn
bbf7d415f6
make cost operators const
2020-09-21 22:28:36 +02:00
v4hn
1f8feaaf0a
refactor addCost->computeCost
2020-09-21 22:26:25 +02:00
v4hn
d2bd0a0037
generalize Clearance cost
...
- can now be used to estimate cost for either interface state or the trajectory
- Introduced Interface::Direction NONE as a way of pointing to the trajectory in contrast to START or END
2020-09-21 22:26:25 +02:00
v4hn
7a00ac646e
add missing license
2020-09-21 22:24:44 +02:00
v4hn
14c885621f
remove Cost suffix for elements in mtc::cost::
2020-09-21 22:24:44 +02:00
v4hn
9a96a7e4f6
implement LinkMotionCost
2020-09-21 22:24:44 +02:00
v4hn
6dbc742f20
implement correct PathLengthCost
...
The previous implementation depends on the dynamics limits of the robot,
which might be interesting in some cases, but shouldn't be a default anywhere.
2020-09-21 22:24:44 +02:00
v4hn
a92753dafc
add cumulative distance to ClearanceCost
2020-09-21 22:24:44 +02:00
v4hn
18ed51d7f3
turn Clearance cost into parameterized struct
...
There is a lot of variations for how to compute clearance.
2020-09-21 22:24:44 +02:00
v4hn
cf0e4e3b01
establish struct cost pattern
...
for costs with multiple parameters, this option-style is more useful
than verbose getter/setter. There is nothing to hide here.
2020-09-21 22:24:07 +02:00
v4hn
f9ba302728
enable costs to (optionally) return a comment
...
With more complicated costs (such as the ClearanceCost), it's useful to get comments.
2020-09-21 22:22:37 +02:00
v4hn
a15204b40b
allow wrappers to use CostTerm
2020-09-21 22:22:37 +02:00
v4hn
56268cb6cc
first attempts on ClearanceCost
2020-09-21 22:22:37 +02:00
v4hn
9060404037
improve comments
2020-09-21 22:22:37 +02:00
v4hn
f3fec26f5a
add CostTransform
...
CostTerms only apply to primitive solutions and generalizing them
to Containers would make them quite unintuitive (and adds overhead).
Instead CostTransform can be used in any container to scale, crop, square
the cost of the solutions.
I initially thought about adding scaling factors, but then again,
other transforms are of interest just as well.
2020-09-21 22:22:37 +02:00
v4hn
f79625d1bd
fully restrict CostTerms to primitive solutions
...
simplify implementations.
2020-09-21 22:22:37 +02:00
v4hn
9eae554d89
provide Constant and PathLength cost terms
2020-09-21 22:22:37 +02:00
v4hn
9337743de2
add CostTerm interface
...
basic stages can now be configured with arbitrary cost terms.
2020-09-21 18:02:49 +02:00
v4hn
c510c6b5b6
WrappedSolution: expose child solution
...
SolutionSequence allows to access children already,
but WrappedSolution blocked access to the full hierarchy.
2020-08-21 14:41:22 +02:00
v4hn
4a6c389aee
expose WrappedSolution together with other Solution types
...
Moved out of private header.
Users can access these objects, so they should know about the type.
2020-08-21 14:41:22 +02:00
v4hn
7609f0b1e2
Solution: export public creator
...
It's a public interface, returning private pointer is not neat.
2020-08-21 14:41:22 +02:00
v4hn
3aa0cfc1a2
InterfaceState: provide constructor with initial Priority
...
most useful to prepare a valid InterfaceState in tests
2020-08-21 14:41:22 +02:00
v4hn
6e0e323a58
PredicateFilter: actually use declared property
2020-08-20 15:29:45 +02:00
Michael Görner
ee6c50ad31
Apply clang-format-10 ( #199 )
2020-08-20 11:56:53 +02:00
v4hn
62813f33f7
fix c&p error in documentation
2020-08-11 20:43:34 +02:00
v4hn
62d894199f
expose Stage API to get the matching introspection ID
...
This was implicitly requested in #192 .
2020-08-11 20:43:34 +02:00
v4hn
7ba73306ca
introspection *can* be disabled
...
Otherwise a new task will always setup the publisher,
even if introspection is disabled afterwards.
It is a good idea to keep introspection on, but there should be a way to initialize the C++ classes without ROS communication.
2020-07-22 12:57:34 +02:00
v4hn
0aff5d56dd
replace remaining typedefs by using declaration
...
I have no idea why these were not picked up by clang-tidy.
2020-07-22 12:57:34 +02:00
v4hn
15707673ed
clang-tidy: performance-*
...
I NOLINTed the noexcept move constructor for Task for now because
the constructor *can* indeed throw exceptions.
2020-06-11 11:03:50 +02:00
v4hn
8faba159f9
clang-tidy: llvm-namespace-comment
2020-06-11 11:03:50 +02:00
v4hn
b762079478
clang-tidy: readability-named-parameters
2020-06-11 11:03:50 +02:00
v4hn
5da2df4c61
clang-tidy: modernize-use-nullptr
2020-06-11 11:03:50 +02:00
v4hn
3fe4436ad7
clang-tidy: modernize-use-override
2020-06-11 11:03:50 +02:00
v4hn
36166348bc
clang-tidy: use using over typedef
...
$ run-clang-tidy.py -header-filter='.*' -checks='modernize-use-using' -fix
add .clang-tidy file
2020-06-11 11:03:50 +02:00
v4hn
c662311a78
grant access to subsolutions of a sequence
...
SubTrajectory allows to access the trajectory,
but for SolutionSequence is was not needed until now.
2020-06-11 11:03:50 +02:00
v4hn
98cac4fd7c
add informative comment
2020-06-11 11:03:50 +02:00
v4hn
d224097f3f
extend comment on unintuitive setter
2020-06-11 11:03:50 +02:00
Jafar Abdi
b3b215a4f7
Add ability to add/remove objects to/from planning scene ( #165 )
2020-05-05 18:28:54 +02:00
Aris Synodinos
2d99017c17
Fix for GCC5 (Ubuntu 16.04 / Kinetic) call to non-constexpr function ( #163 )
...
Co-authored-by: Aris Synodinos <aris.synodinos@unibap.com>
2020-04-22 11:48:08 +02:00
v4hn
72af8bc94b
add convenience includes
2020-04-18 21:04:57 +02:00
v4hn
05ce4d796b
expose group property
2020-04-17 18:48:18 +02:00
Robert Haschke
1f8dae86dd
Merge #156 : Rework interface resolution
2020-04-10 22:44:59 +02:00
Robert Haschke
499fcfb04b
cleanup / renaming
...
* Rename pruneInterface() -> resolveInterface()
* Rename accepted (interface) -> expected
* Improve exception strings
2020-04-10 20:11:51 +02:00
Robert Haschke
aa732d8c66
simplify internal API
2020-04-10 19:59:27 +02:00