Robert Haschke
d95a2fc787
Use MoveIt's libmoveit_python_tools.so
...
Drop our own version of that lib and thus resolve a deploy conflict.
2023-02-15 14:30:14 +01:00
Robert Haschke
f2d97e524d
Fix odr compiler warning on build farm
...
https://build.ros.org/job/Ndev_db__moveit_task_constructor__debian_buster_amd64/3
2023-02-11 13:31:50 +01:00
Jochen Sprickerhof
770a8a0b17
Fix call of PropagatingEitherWay::computeGeneric()
...
computeGeneric is templated and private so it will be undefined in the
shared object and when using the computeForward/Backward functions.
2023-01-04 21:39:33 +01:00
Robert Haschke
f872d58520
Expose ContainerBase::childByIndex via operator[](int) ( #413 )
2022-12-12 20:44:37 +01:00
Robert Haschke
26c690c3b6
Merge PRs #412 (fix-ci) and #409 (more cost-terms)
2022-12-11 22:38:32 +01:00
Robert Haschke
33e9c5d212
Fix clang-tidy issues
2022-12-11 22:37:10 +01:00
Robert Haschke
4886fc3f7b
Expose CostTerms to python
2022-12-11 17:39:55 +01:00
Robert Haschke
6de570c7a6
new TrajectoryCostTerm: DistanceToReference
2022-12-09 11:19:41 +01:00
Robert Haschke
a9b4947845
PathLength: allow weighting of different joints
2022-12-09 10:16:19 +01:00
Robert Haschke
954089eae4
Merge PR #99 : Python API
...
... based on pybind11
2022-11-22 21:24:17 +01:00
Robert Haschke
164ce4eab8
clang-tidy: fix variable/method naming
2022-11-03 18:30:21 +01:00
Robert Haschke
7d5f9fe6e3
Fix clang-tidy warnings
2022-11-02 18:44:38 +01:00
Robert Haschke
fd123cc4a7
Fix handling of ik_frame in Cartesian path planning
...
The ik_frame should move in a straight-line Cartesian path.
However, so far the link frame was following a Cartesian path.
2022-10-31 19:53:07 +01:00
Robert Haschke
28fb974adb
Remove MoveIt compatibility code
2022-10-23 22:16:58 +02:00
Robert Haschke
d2918f130d
Pruning: Relax too strong assertion: PRUNED => !ARMED ( #340 )
2022-05-08 11:56:17 +02:00
Robert Haschke
9026ac8746
Make TimeParamerization configurable ( #339 )
2022-05-08 11:54:05 +02:00
Robert Haschke
5310f9063a
operator<< for Interface::Direction
2022-03-04 13:13:01 +01:00
Robert Haschke
ca38d11303
Enable InterfaceState's copy operator
2022-02-02 20:51:58 +01:00
Robert Haschke
86093be94a
Merge branch 'master' into wip-python-api
2022-01-07 16:20:00 +01:00
Robert Haschke
c7b2067b86
Merge PR #309 : Fix Pruning
2022-01-05 20:19:51 +01:00
Robert Haschke
5956e70956
Merge PR #311 : fix Fallbacks
2022-01-05 19:49:38 +01:00
Robert Haschke
4cc1f567d6
FallbacksPrivateConnect
...
Implement Fallbacks behavior for children of type Connecting.
All other connect-like children are currently infeasible to handle,
because we cannot forward a single job, i.e. a pair (from, to)
to the next child, but only individual states.
However, passing states, will cause creation of undesired state pairs
as jobs in subsequent children.
2022-01-05 18:16:34 +01:00
Robert Haschke
7a04a9f603
ParallelContainerBasePrivate::propagateStateTo*All*Children
...
rename method to emphasize that state updates are propagated to all children
2022-01-05 16:45:57 +01:00
Robert Haschke
986d3c8766
FallbacksPrivateCommon: shared between Generator + Propagator
2022-01-05 16:45:57 +01:00
Robert Haschke
b82b70ed64
FallbacksPrivate::nextChild()
...
... factoring out functionality shared between FallbacksPrivateGenerator
and FallbacksPrivatePropagator to switch to next child in nextJob().
2022-01-05 16:37:46 +01:00
Robert Haschke
442d39ad3e
Improve comments
2022-01-05 16:37:46 +01:00
Jafar Abdi
7dbe0b87e1
Return MoveItErrorCode from task::plan ( #319 )
...
... to know whether the plan failed due to timeout, preemption, or actual planning failure
2022-01-02 15:32:37 +01:00
Robert Haschke
4be448641f
Improve debug output
...
- printChildrenInterfaces(): fix/add usage
- printPendingPairs(): full colorization according to status
2021-11-28 18:28:20 +01:00
Robert Haschke
e296bd7aed
Simplify: job_has_solutions_
...
Just set a flag when we received a full solution
2021-11-25 07:37:28 +01:00
Robert Haschke
7237e81547
Rework FallbacksPrivate*
...
Further factorize and simplify FallbacksPrivate classes employing ideas from @v4hn.
The key difference between the variants his how they advance to the next job.
Thus, the only virtual method required is nextJob().
2021-11-25 07:36:32 +01:00
Robert Haschke
8dd8022ef9
Factorize implementation of FallbacksPrivate into 3 classes
2021-11-24 21:17:49 +01:00
Robert Haschke
e67b3252fc
static TaskPrivate::swap() -> ContainerBasePrivate::operator=()
...
- Enable moving/swapping of other container impls (e.g. Fallbacks)
- Clarify (via move semantics) that content of source impl will be lost
- Get rid of friend declarations
2021-11-24 21:17:49 +01:00
Robert Haschke
2e63c154aa
Reintroduce pending state
2021-11-22 01:39:45 +01:00
Robert Haschke
5c235ab580
debugging helper function
2021-11-22 01:39:45 +01:00
Robert Haschke
dcb6857f36
Simplify computePropagate()
...
- Drop variable current_external_state_
- Instead encode the info that the external state wasn't yet forwarded to any child via stage = children().cend()
- If all children have exhausted their solutions for this state, it is removed from the pending list
2021-11-22 01:39:45 +01:00
Robert Haschke
6653c4853a
Rename: computeFromExternal -> computePropagate
2021-11-22 01:36:34 +01:00
Robert Haschke
b783173b27
GENERATE: return correct canCompute() result as early as possible
...
Moving to next child generator only in compute() requires an extra call
to canCompute() to notice the failure of the next generator(s).
2021-11-22 01:35:34 +01:00
Robert Haschke
a48b932dce
Distinguish STATUS and PRIORITY updates in notify() callbacks
...
to allow propagating status updates only if the STATUS actually changed.
2021-11-21 15:05:29 +01:00
Robert Haschke
fdd5ff880b
templatize: pullInterface(dir) -> pullInterface<dir>()
...
Also remove unused pushInterface(dir)
2021-11-21 14:15:59 +01:00
Robert Haschke
a31e52dd53
Propagate status across Connecting gap
...
Not only propagate updates along solution paths, but also bridge
the gap of a `Connecting` stage.
- If a state becomes enabled, re-enable opposite `ARMED` states as well.
- If a state becomes pruned, also prune opposite states if they don't have alternatives.
- Make sure that we don't run into a recursive update loop by disabling notify() callbacks.
2021-11-21 14:15:59 +01:00
Robert Haschke
9d37495c0b
Recombine both variants of Interface::updatePriority()
...
As only the InterfaceState* variant is actually called,
we can drop the splitting introduced for performance reasons in
29d1e44c5d
2021-11-21 14:00:50 +01:00
Robert Haschke
ab9af6a0fa
Recursively re-enable states when matching an ARMED state
2021-11-21 14:00:50 +01:00
Robert Haschke
3c4ef68dbe
Rename Interface::Status FAILED -> ARMED
...
... to better indicate that such a state can be immediately re-enabled.
2021-11-21 14:00:50 +01:00
Robert Haschke
52dc494525
Fix test Pruning.NoPruningIfAlternativesExist
2021-11-20 06:24:19 +01:00
Robert Haschke
06ae5ddf9c
Fix hasPendingOpposites()
...
- Switch directions: FORWARD <-> BACKWARD to make the function reusable for status propagation.
- We need to ignore the source state when looking for opposite states of the target state.
Thus add both, source and target state arguments.
2021-11-20 01:24:29 +01:00
Robert Haschke
29d1e44c5d
Rework updatePriority() functions
...
- Centrally distinguish between have owner() or not in InterfaceState::updatePriority()
- Have a separate updateStatus() method to just update the pruning status
- Split Interface::updatePriority() into a method taking the InterfaceState*
and one taking an Interface::iterator (for efficiency)
- Early return in container.cpp's updateStatePrios()
2021-11-19 23:03:15 +01:00
Robert Haschke
4170a1c93a
Drop unused and misleading Direction enums
2021-11-19 23:03:15 +01:00
Robert Haschke
1ddf7dd3f0
Never remove pending CONNECT pairs
...
Both, failed and pruned states might get re-enabled later!
This also required rework (simplification) of the sorting function for pending pairs.
2021-11-19 23:03:15 +01:00
Robert Haschke
66e141db7b
Fix printChildrenInterfaces()
2021-11-19 09:42:30 +01:00
v4hn
22809c04a5
order external states
2021-11-15 09:29:09 +01:00