Commit Graph

357 Commits

Author SHA1 Message Date
Robert Haschke
fee73bcd78 Merge branch 'fix-interface-deduction' into master 2019-05-03 01:53:57 +02:00
Robert Haschke
11fb15fd0c fix clang-tidy warnings
- virtual functions used in constructor / destructor
- captured variable in lambda expression not used
- unhandled enums in switch
2019-05-03 01:53:17 +02:00
Robert Haschke
102c80dda1 ParallelContainer: fix interface error reporting
need to separately check for start/end interface
2019-05-03 01:06:56 +02:00
Robert Haschke
d9a38f46ab SerialContainer: fix nested interface resolution
We need to distinguish two cases for how the interface of a nested serial container is determined:
1. from its children
2. from its (outer) context

As long as the interface is not fully resolved, requiredInterface() returns UNKNOWN.
After pruning, the first/last child's interface is remembered and reported instead.
2019-05-03 01:06:56 +02:00
Robert Haschke
fd1aa38a39 fix unit test definitions 2019-05-03 01:06:56 +02:00
Robert Haschke
135951f690 replace assertion by exception 2019-05-03 01:06:56 +02:00
Robert Haschke
f402cdec5e rename [INPUT|OUTPUT]_IF_MASK -> [START|END]_IF_MASK 2019-05-03 01:06:56 +02:00
Robert Haschke
28703af384 improve comments 2019-05-03 01:06:56 +02:00
Robert Haschke
ea75070155 cherry-pick changes from boost-python branch
stages: default arguments for constructors
properties: make iterator public
2019-05-02 14:55:34 +02:00
Robert Haschke
d4dfcf962b FixedCartesianPoses 2019-05-02 14:55:34 +02:00
Robert Haschke
cef6eb64bb ContainerBase::remove(Stage* child) 2019-05-02 14:55:34 +02:00
Robert Haschke
c62938a1c4 SimpleGrasp: only use generator if it's defined
UnGrasp doesn't need a grasp generator
2019-05-02 14:55:34 +02:00
Robert Haschke
29ecec7403 vary place pose depending on object shape
- boxes, cylinders: flip up/down, rotate about world's z
- spheres: rotate about world's z
2019-05-02 14:55:34 +02:00
Robert Haschke
168ff6f3f4 use simple InterpolationPlanner to open/close gripper 2019-05-02 14:55:34 +02:00
Robert Haschke
4063a3ca29 fix SimpleUnGrasp
- ComputeIK needs to be first sub stage for both, grasping and ungrasping
- correctly re-enable object collision checking
2019-05-02 14:55:34 +02:00
Robert Haschke
0fe18799d9 GeneratePlacePose 2019-05-02 14:55:34 +02:00
Robert Haschke
6de1c8dbe5 ContainerBase::findChild() 2019-05-02 14:55:34 +02:00
Robert Haschke
39427f89bf Merge branches 'fix-interface-deduction' (#84), 'compute-ik-default-timeout' (#80),
'fix-visualization' (#76), and master-improvements (#81)
2019-03-11 14:09:03 +01:00
Robert Haschke
c56c7294e4 fix pruning
Never augment already derived interfaces, only prune!
2019-03-11 13:54:54 +01:00
Robert Haschke
48d93e803d improve SerialContainerPrivate::pruneInterface 2019-03-11 13:54:54 +01:00
Robert Haschke
905b6a3b0c move validateConnectivity() from ContainerBase to StagePrivate
... to allow specific stage types (PropagatingEitherWay) implementing their own validation
No need for a public interface.
2019-03-11 13:54:54 +01:00
Robert Haschke
10c7a9cfd7 prune UNKNOWN *and* PROPAGATE_BOTHWAYS
If PropagatingEitherWay's interface is not met in *both* directions (but only one),
in BOTHWAY mode, issue a warning. Otherwise handle both, AUTO and BOTHWAY mode,
in the same fashion when resolving interfaces.

TODO: move validateConnectivity() in StagePrivate.
default action = default action from ContainerBase.
PropagatingEitherWay: issue warning for case above
2019-03-11 13:54:54 +01:00
Robert Haschke
f831fe5483 fix comments + typos 2019-03-11 13:54:54 +01:00
Robert Haschke
7d25c55978 Container: more unit tests for interface detection / validation 2019-03-11 13:54:54 +01:00
Robert Haschke
d741f36ee3 fixup! improve error msg for mismatching container/child interfaces
We need to consider input and output interfaces separately.
Also, use console output symbols (<- / -> / <->)
2019-03-11 13:54:54 +01:00
Robert Haschke
1e953db649 non-const Property::value() 2019-03-10 17:55:46 +01:00
Robert Haschke
36df4f9975 MoveTo/MoveRelative: reduce default timeout to 1s 2019-03-10 17:55:15 +01:00
Robert Haschke
0304c22f7d ComputeIK: allow attached body as ik_frame 2019-03-10 17:50:45 +01:00
Robert Haschke
c72a6cddac ComputeIK: auto-configure default timeout from JMG's default
TODO: actually set the default value but not the current value!
2019-02-21 00:53:26 +01:00
Robert Haschke
579c336558 Connecting: also check that attached objects match 2019-02-21 00:51:57 +01:00
Robert Haschke
e885c272fa Merger: skip empty sub trajectories for merging 2019-02-21 00:50:25 +01:00
Robert Haschke
1047ef08a4 ComputeIK: fix typo 2019-02-21 00:47:52 +01:00
Robert Haschke
2da9e0d722 rework solution msgs
- to allow solution wrappers (WrappedSolution, SolutionSequence)
  to transmit their comment and markers as well
- introduced new SolutionInfo.msg,
  which is the info common to solution wrappers and actual SubTrajectories
2019-02-12 13:57:12 +01:00
Robert Haschke
527ec8edaa correctly sort upstream_solutions_ in ComputeIK and GeneratePose
Reworked cost_queue to correctly sort pointer-like types.
Added unittests for new ValueOrPointeeLess<T> less operator, ordered<T>, and rviz cost ordering.
2019-02-12 03:05:36 +01:00
v4hn
8392ed5ad3 generate IK solutions incrementally
This is not a good approach.
The same can be achieved by generating targets incrementally.
The better approach, to generate IK solutions incrementally,
has to maintain previous solutions for each target.
2019-02-10 08:17:34 +01:00
Robert Haschke
1e0a9401e7 Merge PR #72: rviz property visualization 2019-02-10 06:25:25 +01:00
Robert Haschke
e71376743c yamp-cpp parsing 2019-02-10 06:21:51 +01:00
Robert Haschke
a1c81f1236 YAML property serialization
- switch from ROS serialization/deserialization to YAML
- no native C++ deserialization for ROS msg types available
- drop Propert::print()
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
71099c68d4 Task: fix RobotModelPtr leak
On Task::clear() also need to reset introspection's cache.
2019-02-09 01:00:29 +01:00
Robert Haschke
a1f7c5d1c6 improve error msg for mismatching container/child interfaces 2019-02-06 10:29:10 +01:00
Robert Haschke
81cc0aecc6 Property::type_index -> boost::typeindex::type_info
avoid decl expressions, explicit public typedef
2019-01-17 23:54:35 +01:00
Robert Haschke
062cfe0b60 PropertyTypeRegistry to store serialization/deserialization functions 2019-01-17 23:54:35 +01:00
Robert Haschke
ae75c3aa7f Eigen::Affine3 -> Eigen::Isometry3 2018-11-28 08:14:44 +01:00
v4hn
cd9115483b let marker_ns default to stage name
The stages can still decide on their namespaces on their own,
but markerNS() at least provides a stage-specific name they can use.
2018-11-09 10:50:48 +01:00
v4hn
3176aff30f add accessors for marker_ns property 2018-11-09 10:50:40 +01:00
v4hn
ac3b56a160 document timeout() helpers 2018-11-09 10:50:33 +01:00
v4hn
6b4b4ca624 ComputeIK: threshold for new solutions as property 2018-11-09 10:50:14 +01:00
v4hn
b379ba2268 fix broken rvalue-forward & SerialContainer assert
Release mode builds previously produced broken solutions with too many entries,
debug build triggered the assert

container.cpp:334: assert(solution.empty())

The standard guarantees std::vector(&&a) leaves a.empty() == true,
so the logic there is fine as long as subsolutions is actually
used for move-construction.
2018-11-09 10:47:51 +01:00
Robert Haschke
b9a86eb5be use task id as default name of top-level stage 2018-11-08 12:55:45 +01:00