Commit Graph

1075 Commits

Author SHA1 Message Date
v4hn
2b2689e8d7 Use catkin_INCLUDE_DIRS as system includes
... to suppress warnings outside the code base
2022-10-24 10:07:38 +02:00
Robert Haschke
c0cd6dcd01 Update GHA versions 2022-10-24 10:07:38 +02:00
Robert Haschke
b5f5c1fef8 Limit strict compiler warnings to target workspace 2022-10-24 10:07:38 +02:00
Robert Haschke
987c1485a6 Implicitly use clang in clang-tidy builds 2022-10-23 22:16:58 +02:00
Robert Haschke
28fb974adb Remove MoveIt compatibility code 2022-10-23 22:16:58 +02:00
Robert Haschke
f6b925c2fe Drop support for MoveIt's melodic-devel branch 2022-10-23 22:16:58 +02:00
v4hn
6df359ed3b Do not dictate C++ standard
C++14 is default in clang/gcc anyway and latest log4cxx requires C++17.
Qt on Ubuntu 18.04 sets C++11. Hence we use MoveIt's cmake macro to ensure C++14 at least.
2022-10-23 22:15:23 +02:00
Niklas Fiedler
30512bcbb4
Report 1st collision pair for invalid IK solutions (#376) 2022-07-22 13:38:05 +02:00
Jafar
e923fbc0c6
Fix Task's move constructor (#371)
* Add unit test
* Fix TaskPrivate's move assignment operator
* Slightly simplify code

Co-authored-by: Robert Haschke <rhaschke@techfak.uni-bielefeld.de>
2022-06-14 22:13:19 +02:00
Wyatt Rees
60229db010
Add KinematicsQueryOptions property in CartesianPath solver (#370) 2022-06-03 19:39:51 +03: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
Stephanie Eng
8beb0f4243
Update black version (#348) 2022-03-29 18:59:20 +03:00
Robert Haschke
096c671887 Pruning: Relax too strong assertion: PRUNED => !ARMED
If two Connect stages are sequenced, both sides can become ARMED.
However, that means that the wave of PRUNED status updates, shouldn't
overwrite a present ARMED state.
Added unit test.
2022-03-04 15:01:19 +01:00
Robert Haschke
8d7225d3b6 Connect: better document suppressing recursive loop 2022-03-04 15:01:19 +01:00
v4hn
6d104e837e polish: FixedState supports collision checking 2022-03-04 14:41:00 +01:00
v4hn
0a3dd3a314 properly set comment markAsFailure without prior comment 2022-03-04 14:39:53 +01:00
Robert Haschke
5310f9063a operator<< for Interface::Direction 2022-03-04 13:13:01 +01:00
Robert Haschke
ee7cec2aab FixedState: ignore_collisions=false
Check collisions for FixedState's scene and report failure if needed.
Optionally, disable the check via the property ignore_collisions=true.
2022-03-03 17:01:34 +01:00
Robert Haschke
ca38d11303 Enable InterfaceState's copy operator 2022-02-02 20:51:58 +01:00
Robert Haschke
b2c990b675 core: export rviz_marker_tools dependency 2022-01-07 14:35:15 +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
7af3d8ebd7 Improve readability 2022-01-05 16:37:46 +01:00
Robert Haschke
b2c116edab reset(new Interface()) -> std::make_shared<Interface>() 2022-01-05 16:37:46 +01:00
Robert Haschke
442d39ad3e Improve comments 2022-01-05 16:37:46 +01:00
Robert Haschke
b2056745a8 Generalize connectStageInsideFallbacks
Let's consider the following simple situation, where generators produce solutions in the given order.

GEN           1 3
Fallbacks     |X
GEN           2 4

When passing state 4 to the Fallbacks' connector, it forms pending pairs with both 1 and 3.
Thus, the container needs to check whether 1-4 or 3-4 was processed when receiving a success or failure,
to correctly forward the failed one to the next child.
2022-01-05 16:37:46 +01:00
Robert Haschke
184fab8e0a GeneratePlacePose: add property 'allow_z_flip' 2022-01-04 15:58:19 +01:00
Robert Haschke
9630f4d789 ComputeIK: Improve markers
- always provide eef markers (also in case of success)
- tint failures in red
- use different names for "ik frame" and "target frame" markers
- reduce code duplication
2022-01-04 15:57:34 +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
Michael Görner
f9c0a894f9
Merge pull request #320 from v4hn/pr-master-fix-move-rel-ikframe
Fix using IKFrame with MoveRelative
2021-12-20 10:40:12 +01:00
v4hn
84f96ec74c MoveRelative: Interpret direction relative to IKFrame
bugfix
2021-12-20 10:19:52 +01:00
v4hn
191ff253fd add tests for MoveRelative 2021-12-20 10:19:52 +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
0587129916 CI: asan with debug symbols 2021-11-25 22:02:21 +01:00
Robert Haschke
b4a9e2033d
Stage::reset() should reset total_compute_time_ (#310) 2021-11-25 19:47:00 +03: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
070c6e9ab6 Disable failing test FallbacksFixtureConnect.connectStageInsideFallbacks
... as we are now missing the implementation for CONNECT interfaces
2021-11-25 07:35:28 +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
b84bb87102 pre-commit autoupdate 2021-11-24 21:17:49 +01:00
Robert Haschke
c822fd3822 Remove logger configuration
Logger config can be more easily handled via ROSCONSOLE_CONFIG_FILE.
2021-11-24 15:08:20 +01:00
Robert Haschke
a0bc0602e8 Enable tests
Adapt test results FallbacksFixturePropagate.computeFirstSuccessfulStagePerSolutionOnly
due to 2e63c154aa:

The order of computations has changed, because we lock the processed state
as soon as it is forwarded to the first fallback child.

In this case, after processing GEN1 und FWD1 once, we have the two states with costs 2, 4 in the queue.
The first one, i.e. with cost 2 is forwarded to the child FWD2, which fails.
In the next cycle, although we have new states in the queue (1, 2, 3, 4), we stick with state "2"
and forward it two FWD3, which adds costs 210, resulting in 212.

With previous code, the Fallback container switched to state "1", forwarded to FWD2.
2021-11-24 15:07:21 +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