Commit Graph

592 Commits

Author SHA1 Message Date
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
dd80c675fa cannot use cmake generator expressions in COMMENT 2019-02-21 01:03:03 +01:00
Robert Haschke
36b63f0e35 fixup wrapping of solvers
- wrap JointInterPolationPlanner
- remove properties: group, timeout
- add actual planner properties
2019-02-21 01:01:33 +01:00
Robert Haschke
95d05ea05c expose PropagatingEitherWay::restrictDirection()
fixup! expose PropagatingEitherWay::restrictDirectio()
2019-02-21 00:57:17 +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
v4hn
a86eca9ada predicate filter: fix documentation 2018-11-02 15:51:24 +01:00
v4hn
cc90d5f3f2 add PredicateFilter 2018-11-02 11:53:09 +01:00
Robert Haschke
5af54b5a21 GenerateGraspPose: spawn failure if object unknown 2018-11-02 11:36:00 +01:00
Robert Haschke
0f31cdee2e move storeFailures() into public Stage API 2018-11-02 11:36:00 +01:00
Robert Haschke
915151fdd2 modify ps: add convenience functions 2018-11-02 11:21:48 +01:00
janEbert
c59e41042f Add test for all stages' PropertyMaps
Iterate over all stages and their properties to see check for missing conversion functions.
2018-10-29 18:00:49 +01:00
Robert Haschke
bb5b29d5fd disable python default constructors for some classes
these classes do not yet handle nullptr as their argument
2018-10-29 18:00:49 +01:00
janEbert
00d5b00ec4 Provide default constructors for all stages 2018-10-29 18:00:49 +01:00
Robert Haschke
df820738c8 cleanup converter for ros::Duration 2018-10-29 18:00:49 +01:00
janEbert
e79f0f3054 add converter for std::set<std::string> 2018-10-29 18:00:49 +01:00
janEbert
fab40f64ed register enum Connect::MergeMode 2018-10-29 18:00:49 +01:00
Robert Haschke
2f8ded2a4e fixup! generalize Property conversion between C++ and Python 2018-10-29 18:00:49 +01:00
Robert Haschke
ed44c2cb33 adapt API: MoveRelative::setGoal -> setDirection 2018-10-25 03:27:10 +02:00
Robert Haschke
ff6661e8ba python wrappers for new functionality since last merge 2018-10-25 03:26:43 +02:00
Robert Haschke
377dd11950 Merge branch 'master' into boost-python 2018-10-25 03:24:24 +02:00
v4hn
e5fc8b62b4 MoveRelative: possibly update last waypoint before transform lookup
Apparently this RobotState is not necessarily updated,
this broke some pipeline testing over here.
2018-10-25 00:12:46 +02:00
v4hn
38cc4c6936 add comment to subtrajectory 2018-10-25 00:12:46 +02:00
v4hn
80adcb9e24 add comments to wrapped solutions 2018-10-24 11:53:14 +02:00
v4hn
73b35ef2bf do not send failures to parent
It is enough for us to investigate these locally
2018-10-24 11:47:42 +02:00
v4hn
932497ce6d do not pass failures on to monitors
They should not work with them and this
removes the need for the usual `if(s.isFailure) return`.
2018-10-24 11:44:26 +02:00
Robert Haschke
d6714e89ab fixup! rename "goal" to "direction" 2018-10-23 21:09:07 +02:00
Robert Haschke
b511110ae6 remove dummy file 2018-10-23 01:30:33 +02:00
v4hn
9740179f7f Merge branches 'cleanup-planner-interface', 'connect', 'fix-visualization' and 'rviz-createMarker' into master 2018-10-22 17:31:01 +02:00
v4hn
7fcef54a0e fixup! add name to Connecting DEBUG output
This is important to differentiate between different Connect stages.
2018-10-22 17:28:52 +02:00
v4hn
13ad4d58f1 fixup! rename "goal" to "direction"
"Goal" implies a motion to a target configuration.
MoveRelative explicitly does not do that.

"Direction" is usually not used for rotations,
but perfectly valid to describe them.

I merged 544f574166
together with the first version of this rename
that got force-pushed because it was incomplete.
2018-10-22 17:07:00 +02:00
v4hn
a05a76fd8c fixup! add properties for conditional debug output
in MoveIt planner.

These can be quite helpful.
I agree, we really don't need them enabled by default.
2018-10-22 16:59:24 +02:00
Robert Haschke
70e32cb0b3 Connect: skip initial PlanningScene::diff() 2018-10-21 00:27:50 +02:00
Robert Haschke
18bf5246ed cleanup PlannerInterface
- remove group + timeout properties: they are passed as arguments to plan()
- move max_velocity_scaling_factor, max_acceleration_scaling_factor to PlannerInterface base class
2018-10-21 00:02:10 +02:00
Robert Haschke
b5b58ea0ca Introspection::solutionFromId() 2018-10-20 23:33:54 +02:00
Robert Haschke
02ed4d3579 Connect: verbose debugging output in case of state incompatibilities 2018-10-20 23:32:43 +02:00
Robert Haschke
c6f985be3a Connect: allow different merge modes
for now:
SEQUENTIAL (no merging)
WAYPOINTS (naive)
2018-10-20 23:32:43 +02:00
Robert Haschke
ba88c59201
Merge pull request #54 from ros-planning/pr-capability
ExecuteTaskSolution capability
2018-10-20 23:25:48 +02:00
Robert Haschke
1e39da2388 fix stage "FixCollisionObjects"
... correction wasn't initialized to zero, resulting in random NaNs
2018-10-20 22:59:27 +02:00
Robert Haschke
a0a9738a00 update PlanningScene's RobotState before storing it 2018-10-20 22:02:05 +02:00
Robert Haschke
e894d8bce2 fix caching of PlanningPipeline ptrs
Need to reset cache if corresponding RobotModel was destroyed.
To this end, we cannot simply use the RobotModel's name.
2018-10-20 21:50:05 +02:00
Robert Haschke
f548b7edcc PipelinePlanner: disable publishing of plan request + computed path 2018-10-20 12:21:18 +02:00
Robert Haschke
36fe4c98be reduce copying of shared ptrs 2018-10-20 12:21:18 +02:00
Robert Haschke
d648a4091e guard use of introspection_ pointer 2018-10-20 02:38:11 +02:00
Robert Haschke
af6f7b12bf pick_pa10: fix initialization of RobotState
only a subset of joints was initialized
2018-10-20 02:38:11 +02:00
Robert Haschke
e9b16ba7c0 fix destruction order 2018-10-20 02:38:11 +02:00
Robert Haschke
3ad03cf719 generalize Property conversion between C++ and Python
register appropriate converters for boost::any
2018-10-18 10:00:45 +02:00
Robert Haschke
14d10a2d93 replace MessageSignature with simple ros-msg-name string 2018-10-18 10:00:45 +02:00
Robert Haschke
c145b4c5f8 better robustness against already registered boost::python type converters 2018-10-18 10:00:45 +02:00
Robert Haschke
074a3b7f03 RosMsgConverter: do not allow custom message name 2018-10-18 10:00:45 +02:00
Robert Haschke
fdec258b2c ROSMsgConverter -> RosMsgConverter 2018-10-18 10:00:45 +02:00
Robert Haschke
1b267768fa cleanup type conversion 2018-10-18 10:00:45 +02:00
Robert Haschke
3786ce5a15 protect fromPython / toPython 2018-10-17 02:00:14 +02:00
Robert Haschke
5d78b10366 fix compiler warnings 2018-10-17 02:00:14 +02:00
v4hn
1a4f6c0e57 keep RobotModelLoader around
Otherwise the robot_model_ does not remain valid
2018-10-17 01:55:28 +02:00
Robert Haschke
a745f55ab7 fix compiler warnings in release mode 2018-10-17 01:55:28 +02:00
Robert Haschke
5bae196b21 fixes for Bionic
boost::python 1.65 is more picky about exactly returning the placeholder type in __init__ functions.
2018-10-17 01:18:39 +02:00
Robert Haschke
c9e735ded3 fix API to match MoveTo / MoveRelative stages 2018-10-17 01:18:39 +02:00
Robert Haschke
fbbb39592b allow PoseStamped as property 2018-10-17 01:18:39 +02:00
Martin Meier
47232dd92b pass verbose InitStageException from C++ to python
reverts df43ba1d68bb5c628a8e8f13729e7cdda872f1f9
2018-10-17 01:18:39 +02:00
Robert Haschke
effa437a53 Solution.toMsg() 2018-10-17 01:18:39 +02:00
Robert Haschke
14bd867df8 expose MonitoringGenerator's setMonitoringStage() 2018-10-17 01:18:39 +02:00
Robert Haschke
ef1bbaa439 Task::init(): verbose exception output 2018-10-17 01:18:39 +02:00
Robert Haschke
ea4b1e0c21 Properties: exposeTo(), configureInitFrom() 2018-10-17 01:18:39 +02:00
Robert Haschke
c80755348c moved python includes to global include folder too
catkin package expects all includes to be in one global location
2018-10-17 01:18:39 +02:00
Robert Haschke
b36d91cc02 import .core by default 2018-10-17 01:18:39 +02:00
janEbert
3c77fd1325 add reference test for properties 2018-10-17 01:18:36 +02:00
Robert Haschke
4ac0b6e2c4 merge fixes 2018-10-16 23:22:10 +02:00
Robert Haschke
1787a66d37 fix compiler warnings 2018-10-16 23:14:58 +02:00
Robert Haschke
f1764d0de4 fix tests 2018-10-16 23:14:58 +02:00
Robert Haschke
940543a063 fixup! allow preemption of Task::plan() 2018-10-16 23:14:58 +02:00
Robert Haschke
b5bc97b3eb Task::execute() 2018-09-25 22:17:42 +02:00
Robert Haschke
7bd9bcf972 allow preemption of Task::plan() 2018-09-25 22:16:45 +02:00
Robert Haschke
e5e291d86f FixCollisions stage 2018-09-25 22:16:45 +02:00
Robert Haschke
a7b74673ce PlannerInterface for joint-space interpolation 2018-09-25 22:16:45 +02:00
Robert Haschke
4860462076 ComputeIK: forward child solution's comment 2018-09-25 16:25:22 +02:00
Robert Haschke
c70db65578 fixup! MoveTo: store goal as any type 2018-09-25 16:25:13 +02:00
Robert Haschke
ca9d50e7d8 fix compiler warnings 2018-09-25 13:30:53 +02:00
Robert Haschke
f2573e9bfd fix include order
Local headers should be preferred over those from underlay.
Consequently use target_include_directories() to properly define include order.
2018-09-25 13:30:53 +02:00
Robert Haschke
4cebd95468 Merge branch master into boost-python 2018-06-03 13:20:02 +02:00
Robert Haschke
d3fdee9095 expose solutions, publish + execute 2018-06-03 13:03:41 +02:00
Robert Haschke
c0a16971f4 remove redundant exposure of smart pointers 2018-06-03 13:03:41 +02:00
Robert Haschke
5e2bff59fc cleanup Property access 2018-06-03 13:03:41 +02:00
Robert Haschke
d5c7bfb07e cleanup 2018-06-03 13:03:41 +02:00
janEbert
e264bddc3e PropertyMap iterator, PropertyMap.update(dict) 2018-06-03 13:03:41 +02:00
janEbert
2345b6c9a6 unit tests for all stages 2018-06-03 13:03:41 +02:00
janEbert
f15cbd7141 overload constructors 2018-06-03 13:03:41 +02:00
janEbert
93c62e833d container wrappers 2018-06-03 13:03:41 +02:00
Robert Haschke
09b9698e7b add ROS unittest 2018-06-03 13:03:41 +02:00
Robert Haschke
56546f190f roscpp_init: provide init_options AnonymousName, NoRosout 2018-06-03 13:03:41 +02:00
janEbert
1f85b00e14 more wrappers, unittest, fixes 2018-06-03 13:03:41 +02:00
Robert Haschke
de9fa8405d register ROS msg types with boost::python's type converters 2018-06-03 13:03:41 +02:00
Robert Haschke
f4ffccdc1f handle std::unique_ptr<Stage>
Class holder needs to be a smart pointer, e.g. std::auto_ptr.
This can be released(), such that ownership can be passed.
Further, derived types need to be declared as implicitly_convertible to base type.
2018-06-03 13:03:41 +02:00
Robert Haschke
47a2a28698 cleanup, unittest for properties 2018-06-03 13:03:41 +02:00
Robert Haschke
ee13295c92 separate .core and .stages modules 2018-06-03 13:03:41 +02:00
Robert Haschke
e615b7c9da local names for python wrapper libs 2018-06-03 13:03:41 +02:00
Robert Haschke
f7ddd43d53 cleanup folder structure 2018-06-03 13:03:41 +02:00
Robert Haschke
135c9c2148 solvers + stages 2018-06-03 13:03:41 +02:00
Robert Haschke
3ef0bd426b Properties 2018-06-03 13:03:41 +02:00
janEbert
226b0b03b4 basic boost::python wrappers 2018-06-03 13:03:41 +02:00
Robert Haschke
ff2474f262 pa10 doesn't need move_group 2018-06-03 12:36:12 +02:00
Robert Haschke
932ab5eba3 cast demos as integration unit tests
- moved demos from demo to test folder
- run them as unittest, checking range of solutions
2018-06-03 12:36:01 +02:00
Robert Haschke
3215880b98 Merge branches 'move-to', 'simple-grasp' and 'properties' into master
These branches only work together:
- MoveTo / MoveRelative: common handling of "goal" property
- properties: required changes to allow for multiple inheritance
- generalize SimpleGrasp / GenerateGraspPose
2018-06-03 11:38:50 +02:00
Robert Haschke
2e46082521 remove Container::exposePropertiesOfChild() 2018-06-03 11:36:50 +02:00
Robert Haschke
157caac385 generalize SimpleGrasp / GenerateGraspPose
- move "pregrasp", "grasp" property from SimpleGrasp to GenerateGraspPose
- Container::exposePropertiesOfChild: decouple exposure from inheritance
2018-06-03 11:36:50 +02:00
Robert Haschke
544f574166 MoveRelative: store goal as any type 2018-06-03 09:22:06 +02:00
Robert Haschke
00260d62b5 MoveTo: store goal as any type 2018-06-03 09:22:06 +02:00
Robert Haschke
941dee7fc1 exposeTo: const method 2018-06-03 09:22:06 +02:00
Robert Haschke
abc4c5de50 PropertyMap: allow any type 2018-06-03 09:18:37 +02:00
Robert Haschke
a8431ce661 Container::exposePropertiesOfChild: allow skipping of undefined props 2018-06-03 06:46:12 +02:00
Robert Haschke
0dab499533 Stage: generally allow forwarding of interface properties 2018-06-03 06:46:12 +02:00
Robert Haschke
92296e020f SimpleGrasp(GraspGenerator)
allow any GraspGenerator stage that provides "pregrasp" and "grasp"
postures as well as a target_pose for grasping.
2018-06-03 06:46:12 +02:00
Robert Haschke
beffe27987 improve property debugging 2018-06-03 06:42:11 +02:00
Robert Haschke
cbb2cd69f7 property inheritance: both from PARENT and INTERFACE
- source_id -> source_flags: bits indicating configured paths
- initializers, e.g. fromName(), should throw
- ignore undeclared errors during inheritance
- on undefined error, reset the value to None
- override value only if previously set by lower-priority source
  MANUAL > CURRENT > PARENT > INTERFACE
2018-06-03 06:36:15 +02:00
Robert Haschke
abea2ee82b reuse boost::any's type_index type 2018-06-02 17:46:37 +02:00
Robert Haschke
2e9932cfbc fix: don't report config issues as successful (but empty) solutions 2018-06-02 17:46:28 +02:00
v4hn
381210f43d compatibility with boost 1.54
This is required for ROS indigo on ubuntu 14.04
2018-06-01 15:02:11 +02:00
Michael Görner
5739bf39d9 use correct frame in pick (#52) 2018-06-01 14:55:23 +02:00
v4hn
0091c76208 compute ik: ignore collisions skips early eef check 2018-06-01 11:34:07 +02:00
v4hn
4026661bfe Rewrite and relax approx comparisons
This is more readable.

Adjusting the threshold to 1e-4 is required to allow for tolerances
in potential sampling planner steps in between.
2018-06-01 11:32:29 +02:00
v4hn
bd1edcbde7 add max_solutions param to plan()
For big problems you just don't want *all* solutions
2018-06-01 11:13:44 +02:00
Robert Haschke
ac1ccba883 minor formatting changes (#51) 2018-05-31 18:01:30 +02:00
Robert Haschke
b35aba6e19 validate merged trajectories 2018-05-30 21:23:34 +02:00
Robert Haschke
941e9df737 declare properties "timeout", "marker_ns" for all stages 2018-05-30 21:21:14 +02:00
Robert Haschke
c2dd28abae rework storing of solutions
- solutions_, failures_ as SolutionBaseConstPtrs in StagePrivate
- replace processSolutions() / processFailures() by direct const-access to storage containers
- generic sendForward(), sendBackward(), spawn(), connect() methods in StagePrivate
- reuse StagePrivate's sendForward(), sendBackward(), spawn() in containers

- store created InterfaceStates in StagePrivate::states_
- Interface: ordered<InterfaceState*> (only store pointers)
  allows for common handling of states of valid and failure solutions

- remove additional state+solution storages
- containers: internal->external state mapping as InterfaceState* -> InterfaceState*
2018-05-30 21:02:50 +02:00
v4hn
ae6b86c7d7 remove void line
?
2018-05-30 21:02:19 +02:00
Robert Haschke
5878e8ab6b correctly reset FixedState 2018-05-30 21:02:03 +02:00
Robert Haschke
52fdf30433 simplify compute() API
- remove bool return value
- always create a solution trajectory, also in case of failures
- success/failure determined from solution.isFailure()

minor adjustments during cherry-pick
2018-05-30 21:01:34 +02:00
Robert Haschke
eb50aaed0e SolutionBase: rename 'name' to 'comment' 2018-05-30 20:25:42 +02:00
Robert Haschke
84dec07565 MoveTo/MoveRelative: generic IK target frame
...instead of simple link name
2018-05-30 20:25:07 +02:00
v4hn
495c80350b Merge branches 'joint_pose', 'move-relative-joints', 'basic-merger' and 'compute-ik' 2018-05-30 19:35:58 +02:00
v4hn
015b1466f4 MoveRel: handle unknown links with hard failure 2018-05-30 19:09:57 +02:00
v4hn
56c9128d99 MoveTo: cleaner strict handling of invalid properties 2018-05-30 18:53:39 +02:00
v4hn
b8e6e5e2fa MoveTo: reduce scope of try-catch 2018-05-30 18:44:26 +02:00
v4hn
bbd274da96 MoveTo: simplify getJointStateGoal 2018-05-30 18:42:31 +02:00
Robert Haschke
b7b7a916df basic merger functionality 2018-05-18 17:44:55 +02:00
Robert Haschke
5e8117720e ignore failures for further processing 2018-05-18 17:44:43 +02:00
Robert Haschke
abb68da083 forward properties 2018-05-18 17:44:43 +02:00
Robert Haschke
ce10d96c5c ComputeIK: report collision pairs 2018-05-18 17:44:43 +02:00
Robert Haschke
41e64ed7e1 remove std::map serialization 2018-05-18 17:44:30 +02:00
Robert Haschke
40ca35085a cleanup 2018-05-18 17:44:30 +02:00
llach
9a7aa4dad7 Pick: added setter for relative joint lift motion 2018-05-18 17:44:30 +02:00
llach
d0c8f7f819 MoveRelative: added relative joint space goals to 2018-05-18 17:44:30 +02:00
llach
0779c255df added stream serialization for std::map<std::string, T> 2018-05-18 17:44:30 +02:00
Robert Haschke
9e19f2187b moved implementations of property setters to header 2018-05-18 17:44:17 +02:00
Robert Haschke
17e487be06 cleanup
- indentation: space -> tabs
- only consider joints of JMG
2018-05-18 17:44:17 +02:00
llach
2be3ee611b adapted MoveTo api change. joint_pose -> named_joint_pose 2018-05-18 17:44:17 +02:00
llach
55470062c9 MoveTo: converting named joint poses to robot state msg in init; property names refactoring 2018-05-18 17:44:17 +02:00
llach
97c2312d67 MoveTo: can now take RobotState msg as goal 2018-05-18 17:44:17 +02:00
Robert Haschke
19fa7349d3 Task: only accept containers 2018-05-18 17:42:34 +02:00
Robert Haschke
e3ca832497 Property: silently return empty string when serialization is not supported 2018-05-18 17:42:34 +02:00
Robert Haschke
2106c51c9d Property: provide a fallback serialize() implementation
... in case operator<< is not defined for type T
2018-04-28 22:13:52 +02:00
Robert Haschke
ae3b9126bd get rid off empty JointState errors 2018-04-27 12:07:27 +02:00
Robert Haschke
ecf8029f75 add timing to merged trajectories 2018-04-27 12:06:59 +02:00
Robert Haschke
872e3cc004 unittest for Priority comparisons 2018-04-27 12:04:55 +02:00
Robert Haschke
8fb47e99e8 update ordering on any change of priority 2018-04-27 12:04:55 +02:00
Robert Haschke
67b6dcb49b move implementation into cpp file 2018-04-27 12:04:55 +02:00
v4hn
bbb64f2f8c inf cost states always go last
Also update sorted interface when state becomes inf or get's new cost.
2018-04-27 12:04:55 +02:00
Robert Haschke
728c1b40e2 Merge branches 'travis', 'fixes', 'visualization' and 'todos' 2018-04-15 12:01:19 +02:00
Robert Haschke
b8a4653f31 relax equality condition for joint values for inactive groups 2018-04-15 11:55:45 +02:00
Robert Haschke
5c525f8729 consider v4hn's comment 2018-04-15 11:55:45 +02:00
Robert Haschke
433db67cf9 only attempt to merge if there is something to merge 2018-04-15 11:55:45 +02:00
Robert Haschke
90b0b006eb more todo 2018-04-15 11:26:00 +02:00
Robert Haschke
6d6f185870 feedback 2018-04-15 11:26:00 +02:00
v4hn
ade42456b8 list of random todos 2018-04-15 11:26:00 +02:00
Robert Haschke
51e1dda6ec minor improvements: variable names, comments 2018-04-10 01:52:40 +02:00
Robert Haschke
564f3b0514 fix MoveRelative
Ignore success of planner_->plan() when min_distance is specified (and >= 0).
In this case, compute the achieved distance myself.
2018-04-10 01:52:40 +02:00
Robert Haschke
525ac10bbf std::string -> const std::string& 2018-04-10 01:52:40 +02:00
Robert Haschke
f2c0c7bf90 rename enableCollision -> allowCollision 2018-04-10 01:52:40 +02:00
Robert Haschke
fee7352961 renamed demo: plan_pick_trixi -> plan_pick_pr2 2018-04-10 01:52:40 +02:00
Robert Haschke
a044b719ac removed old stages: Move, Gripper, CartesianPositionMotion 2018-04-10 01:52:40 +02:00
Robert Haschke
b22217deab fix trajectory merging: initialize from well-defined RobotState 2018-04-10 01:52:40 +02:00
Robert Haschke
c553275276 SolutionSequence::fillMessage: ignore sub solutions with same creator as parent 2018-04-10 01:52:40 +02:00
Robert Haschke
556d9e1a5e Merge branches 'robot-model', 'task-move-constructor' and 'const-robot-trajectory' 2018-04-09 21:11:19 +02:00
Robert Haschke
2b79f15244 SubTrajectory: promise to not modify encapsulated RobotTrajectory 2018-04-09 21:10:18 +02:00
Robert Haschke
7463621f56 move assignment operator 2018-04-09 21:10:08 +02:00
Robert Haschke
7ebc4b2c7e Task: move constructor 2018-04-09 21:10:08 +02:00
Robert Haschke
35b35cc17e enable introspection only if ROS was initialized 2018-04-09 21:09:49 +02:00
Robert Haschke
bd60e6f65d Task::setRobotModel() / Task::loadRobotModel() 2018-04-09 21:09:49 +02:00
Robert Haschke
70065c98e7 Merge branches 'master' 'generate-pose' and 'connect' 2018-04-09 21:08:45 +02:00
Robert Haschke
21242ea976 publish failures 2018-04-09 21:08:17 +02:00
Robert Haschke
047a3f7db4 report duplicate joints, accept fixed joints as duplicates 2018-04-09 21:08:17 +02:00
Robert Haschke
55e3aae30a merge trajectories 2018-04-09 21:08:17 +02:00
Robert Haschke
03092e7e45 utility functions to merge multiple RobotTrajectories 2018-04-08 02:36:55 +02:00
Robert Haschke
2c08d9080d Pick, Place as specializations of PickPlaceBase 2018-04-08 02:36:55 +02:00
Robert Haschke
ce5d7c63f0 SimpleGrasp, SimpleUnGrasp as specializations of SimpleGraspBase 2018-04-08 02:36:55 +02:00
Robert Haschke
97d2eb5c6a Pick: remove Connect 2018-04-08 02:36:55 +02:00
Robert Haschke
85e88eabd1 Connecting::compatible() to check compatibility of states 2018-04-08 02:36:55 +02:00
Robert Haschke
eee53a0d80 MoveTo: use moving frame markers 2018-04-05 22:54:51 +02:00
v4hn
1424b51f79 expose typed setters in Cartesian solver 2018-04-05 22:53:24 +02:00
Robert Haschke
77442c0eed Connect: allow multiple groups to be processed in series 2018-04-05 13:51:50 +02:00
Robert Haschke
8811045f89 setCreator() once in StagePrivate::newSolution() 2018-04-05 13:51:50 +02:00
Robert Haschke
9ceecd235f SerialSolution -> SolutionSequence 2018-04-05 13:51:50 +02:00
Robert Haschke
4d77390d77 validate existence of object frame in init() 2018-04-05 13:50:09 +02:00
Robert Haschke
9e1c3059e1 derive GenerateGraspPose from GeneratePose 2018-04-05 13:50:09 +02:00
Robert Haschke
3640928a76 postpone pose transformation 2018-04-05 13:50:09 +02:00
Robert Haschke
603696f294 add missing reset() 2018-04-05 13:50:09 +02:00
v4hn
76c6ba14fa add a simple GeneratePose stage
ComputeIK is a wrapper, so we can't just give it a pose to compute.
2018-04-05 13:50:09 +02:00
llach
a82a48bb70 fix PropertyMap::exposeTo: use other_name as new name for property (#40) 2018-04-05 13:47:23 +02:00
llach
124979e2a8 MoveRelative: adapt msgs to fit class name (#39) 2018-04-05 13:46:13 +02:00
Robert Haschke
205beea503
Merge pull request #28 from ros-planning/pr-path-constraints
implement path constraints
2018-03-26 09:54:02 +02:00
Robert Haschke
2ca68e6645 actually implement path constraints for CartesianPath planner
... validating constraints
2018-03-26 09:50:17 +02:00
v4hn
d7d80c3499 implement path constraints for Move* 2018-03-26 09:50:17 +02:00
v4hn
80ae01dcca expose timeout property as typed setter 2018-03-26 09:50:17 +02:00
v4hn
8af44cefc3 add path constraints to planner API
and use it in the Connect class.

The cartesian planner ignores the constraints for now.
2018-03-26 09:50:17 +02:00
Robert Haschke
f0dc02e2c3 ContainerBasePrivate::position() -> childByIndex() 2018-03-26 00:24:25 +02:00
Robert Haschke
84f5c481be ContainerBasePrivate::position(): generically handle shifting 2018-03-26 00:24:25 +02:00
Robert Haschke
ff0ee407ff remove tool_to_grasp_tf from SimpleGrasp 2018-03-25 06:07:53 +02:00
Robert Haschke
54e4d8eed7 remove tool_to_grasp_tf from GenerateGraspPose 2018-03-25 06:07:53 +02:00
Robert Haschke
12e134ad09 added disclaimer 2018-03-25 06:07:53 +02:00
Robert Haschke
893cb25b5b fix isTargetPoseColliding
- must not use new sandbox_scene (we want to display the place eef)
- jmg not needed anymore
2018-03-25 06:07:53 +02:00
Robert Haschke
c98f10478e frame marker at ik frame 2018-03-25 06:07:53 +02:00
Robert Haschke
5b6a02d105 rename reference frame -> ik frame 2018-03-25 06:07:53 +02:00
Robert Haschke
f497112513 consider reference_frame 2018-03-25 06:04:09 +02:00
Robert Haschke
7531b8ad54 allow arbitrary reference frame for target_pose and ik frame 2018-03-25 06:04:09 +02:00
Robert Haschke
4fcac84d76 remove tests that do not test anything 2018-03-25 06:04:09 +02:00
Robert Haschke
9e5e098339 unittests
- provide simple hard-coded robot model
- test ComputeIK::init()
2018-03-25 06:04:09 +02:00
Robert Haschke
f4adaa949a validate available properties during init() 2018-03-25 06:04:09 +02:00
Robert Haschke
5a55a5949b Merge branches 'bug-fixes', 'gui' and 'pick-stage' 2018-03-24 07:32:20 +01:00
Robert Haschke
a4fed6a18a MoveTo Cartesian: create marker frame at current and goal pose 2018-03-24 06:16:10 +01:00
Robert Haschke
cb38a87a73 CartesianPath: return a partial trajectory in case of failure 2018-03-24 06:16:10 +01:00
Robert Haschke
81d88911a9 cosmetic fixes 2018-03-23 17:18:56 +01:00
Robert Haschke
2331c9aef2 pick: expose IK link frame as eef_frame 2018-03-23 17:18:56 +01:00