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
Robert Haschke
1c61fb3b85
expose solvers
2018-03-23 17:18:56 +01:00
llach
ea6cc4b6bf
moved "attach object" from "pick" to "grasp" stage
2018-03-23 17:18:56 +01:00
Robert Haschke
ceaf896bf8
position scene node w.r.t. fixed frame
2018-03-23 11:22:23 +01:00
Robert Haschke
c2590636b1
fixup! SerialContainer: don't consider failures for solutions
2018-03-23 11:22:23 +01:00
Robert Haschke
862ac37cd6
fix ContainerBasePrivate::copyState(): don't copy (again) on update
2018-03-23 11:22:23 +01:00
Robert Haschke
b3af170663
reset num_failures_
2018-03-23 11:22:23 +01:00
Robert Haschke
6b912c3531
MoveTo Cartesian Point: bug fix
2018-03-23 11:22:23 +01:00
Robert Haschke
6d859840c3
fix interface detection for nested SerialContainers
2018-03-23 09:18:21 +01:00
Robert Haschke
159beeb044
fix SerialContainer::canCompute()
2018-03-23 09:18:21 +01:00
Robert Haschke
bff6cc569c
pick: reusable stage for picking up an object
2018-02-25 23:14:52 +01:00
Robert Haschke
d731e943f1
Merge branch 'parallel-container'
2018-02-25 23:12:35 +01:00
Robert Haschke
9545f92678
GenerateGraspPose::reset()
2018-02-25 23:11:55 +01:00
Robert Haschke
12582f6bbc
SerialContainer: don't consider failures for solutions
2018-02-25 20:01:43 +01:00
Robert Haschke
99adfaf454
fix ParallelContainers' init()
2018-02-25 13:22:26 +01:00
Robert Haschke
dcf23f6147
relax ParallelContainer's validateConnectivity()
2018-02-25 13:22:26 +01:00
Robert Haschke
bcacda8507
implement ParallelContainer's pruneInterface()
2018-02-25 13:22:26 +01:00
eirtech
0dc4f5c53e
ParallelContainer's requiredInterface()
2018-02-25 13:22:26 +01:00
eirtech
3e4aa19246
ParallelContainer: unittests
2018-02-25 13:22:14 +01:00
Robert Haschke
a2fd5fb7b8
more constexpr InterfaceFlags
2018-02-25 11:59:51 +01:00
Robert Haschke
a24039846a
Merge branches 'analyze-property-errors' and 'fixes'
2018-02-24 13:45:51 +01:00
Robert Haschke
94bb50ddc1
fixup! PropertyMap: different exception types
2018-02-24 13:42:18 +01:00
v4hn
30de5e1a8c
add catch-rethrow for property initialization
...
The property doesn't know its own name, so we add it here
2018-02-24 13:42:18 +01:00
v4hn
78b86bb65f
add convenience overloads for setting properties
2018-02-24 13:42:18 +01:00
Robert Haschke
e9d1742337
ContainerBase::exposePropertiesOfChild
2018-02-24 13:42:18 +01:00
Robert Haschke
8152614d33
properties: init from source if current value is not defined
...
- reset(): reset current value to empty, not default
- value(): return current value, or - if not defined - the default
- initialize from source if current value is undefined,
don't care about default value
2018-02-24 13:42:18 +01:00
Robert Haschke
0c8c298450
declare by std::type_index (instead of std::type_info)
2018-02-24 13:42:18 +01:00
Robert Haschke
6444229877
Stage::reportPropertyError
2018-02-24 13:42:18 +01:00
Robert Haschke
da9cdb5cf6
PropertyMap: different exception types
...
undeclared
undefined
type_error
2018-02-24 13:42:18 +01:00
v4hn
7caed29cb1
elaborate runtime_error in InterfaceState
2018-02-24 13:42:12 +01:00
v4hn
9709fd687d
ComputeIK: update state to avoid dirty transforms
2018-02-24 13:42:12 +01:00
v4hn
69d3d8bd37
InitStageException::what(): distinguish stage/stages
2018-02-24 13:42:12 +01:00
Robert Haschke
cc8bcd3fdc
become agnostic to urdfdom's shared_ptr types
2018-02-24 13:42:12 +01:00
Robert Haschke
07e99461fc
conditionally normalize angular
2018-02-24 13:42:12 +01:00
Robert Haschke
cf54024379
fix derivation of propagation direction from connect stage
2018-02-24 13:42:12 +01:00
Robert Haschke
aee2525382
fix ModifyPlanningScene: pass stage properties to callback
2018-02-24 13:42:12 +01:00
Robert Haschke
b767e359e9
GenerateGraspPose: require pregrasp pose
2018-02-24 13:42:12 +01:00
Robert Haschke
6a3456f961
unittest ContainerBasePrivate::position()
2018-02-24 13:42:12 +01:00
Robert Haschke
9cd6efe46f
Stage::init(PlanningScene) -> Stage::init(RobotModel)
2018-02-24 13:37:50 +01:00
v4hn
2a2d406368
remove restriction to watch only generators
2018-02-24 13:37:50 +01:00
Robert Haschke
d035089c10
MonitoringGenerator
2018-02-24 13:37:50 +01:00
Robert Haschke
8624224d6b
FixedState generator
2018-02-24 13:37:41 +01:00
llach
e1281130ac
CurrentState: fetch scene via get_planning_scene service
2018-02-24 13:37:41 +01:00
v4hn
4f2b38f02d
add missing headers
2018-02-21 14:56:51 +01:00
Robert Haschke
cf76352d2d
Merge branches 'fix-containers' and 'fix-priority-updates'
2018-02-20 08:07:48 +01:00
Robert Haschke
ba75f7c835
fixed remaining unittest
2018-02-20 08:06:23 +01:00
Robert Haschke
e368fd9948
avoid accidental overwrite of InterfaceState
2018-02-19 09:05:56 +01:00
Robert Haschke
373d7f204f
update priorities of all interface states along a (partial) solution path
...
if a parallel container is involved somewhere in the middle, it will
again access these states, e.g. planning alternative solutions
2018-02-19 09:05:56 +01:00
Robert Haschke
1eacea6b35
reset InterfaceState::owner_ if state is removed from Interface
2018-02-19 09:05:56 +01:00
Robert Haschke
35f1540369
recursive interface auto-detection
...
trigger auto-detection from top (task) level:
only there we now for sure the accepted interface
2018-02-19 01:05:56 +01:00
Robert Haschke
f45a4e3e2c
improve validation
...
- postpone pruning / interface auto-detection to top task-level
only the task state knows for sure, that it requires its wrapped child to push to both ends
- perform connectivity validation only after pruning
only then, we the interfaces are completely determined
2018-02-19 01:05:56 +01:00
Robert Haschke
a523333ef6
basic auto-detection of interfaces for propagating stages
...
works if propagation direction can be derived from a generator or
connecting stage within the sequence
start-to-end propagation through whole serial container still fails
2018-02-18 21:23:12 +01:00
Robert Haschke
1a0b9b36ee
fix connection creation
...
Establishing the interface connections, we face a chicken-egg-problem:
To establish a connection, a predecessors/successors pull interface is
assigned to the current's stage push interface.
However, propagating stages (in auto-detection mode) can only create
their pull interfaces if the corresponding, opposite-side push interface
is present already (because that's the mechanism to determine the supported
propagation directions).
Hence, we need to resolve this by performing two sweeps:
- initialization, assuming both propagation directions should be supported,
thus generating both pull interfaces, i.e. providing the egg
- stripping down the interfaces to the actual context
This context is provided by two stages pushing from both ends
into a (potentially long) sequence of propagating stages (tbd).
Contributions of this PR:
- PropagatingEitherWay: explicitly distinguish AUTO from BOTHWAYS interface
AUTO: auto-derive interface from provided push interfaces
BOTHWAYS: explicitly require both directions
- SerialContainer: (better, but not yet perfect) validation of connectivity
- ParallelContainer: determine interface from what children offer
2018-02-18 21:23:12 +01:00
Robert Haschke
ec2b06292e
extended unittest for serial connection validation
2018-02-18 14:03:57 +01:00
Robert Haschke
a4feb705d0
cleanup operator<<(ostream, *)
...
- basic implementation for StagePrivate
- implementation for Stage calls this
- implementation for ContainerBase recursively calls this
- implementation for Task added
2018-02-18 13:58:09 +01:00
Robert Haschke
1f4264c8c8
PropagatingEitherWayPrivate: count failures in both directions
2018-02-16 16:01:05 +01:00
Robert Haschke
2ea463fff4
replace std::cout with ros console
2018-02-16 16:01:05 +01:00
Robert Haschke
acffd39091
SerialContainer: fix priority propagation
...
- traverse all (also partial) solution paths
- and update priority at both ends
- remove pending state pairs if cost increased to infinity
2018-02-16 16:01:05 +01:00
Robert Haschke
469c6ccede
MoveRelative: fix marker arrow
2018-02-16 11:37:57 +01:00
Robert Haschke
dd0d004052
cleanup ComputeIK
...
- correctly check collision for target pose before doing IK
- visualize failed collision check / failed IK
2018-02-16 09:55:34 +01:00
Robert Haschke
deb09b7dfd
GenerateGraspPose: marker cleanup
...
- remove arrow marker (approach direction isn't hard-coded anymore)
- consider all rigidly attached parent links for display
- add grasp frame
2018-02-14 17:50:02 +01:00
Robert Haschke
a8cf2dc844
GenerateGraspPose: correctly check for existence of link frames
2018-02-13 19:29:12 +01:00
Robert Haschke
7e66c24822
marker tools: allow vector of LinkModel*
2018-02-13 19:29:12 +01:00
Robert Haschke
b1fac6eed0
MoveRelative: allow zero min_distance
2018-02-13 19:29:12 +01:00
Robert Haschke
0b8bf2b8b7
example: twist motion
2018-02-13 00:01:01 +01:00
Robert Haschke
ca3bce4669
local planning scene
2018-02-12 23:58:49 +01:00
Robert Haschke
da9711a85c
example using new features
2018-02-12 23:56:10 +01:00
Robert Haschke
d053e037eb
cmake cleanup: group source files
2018-02-12 23:55:34 +01:00
Robert Haschke
4be373592a
Merge branches 'cleanup', 'wip-modular-planning', 'wip-containers', 'wip-gui' and 'wip-modify-ps'
2018-02-12 23:54:51 +01:00
Robert Haschke
724f0c3014
modular planning
...
Separate planning approaches (using MoveIt pipeline or computeCartesianPath) from stages.
This allows to reuse planning in various stages without code duplication.
Reworked stages:
Move -> Connect
Gripper + CartesianPositionMotion -> MoveTo
CartesianPositionMotion -> MoveRelative
2018-02-12 23:43:47 +01:00
Robert Haschke
0d338a7f5f
visualize collisions
2018-02-12 23:40:33 +01:00
Robert Haschke
f35a6bc05d
FixCollisionObjects stage
2018-02-12 23:40:33 +01:00
Robert Haschke
f006f0f3d6
reduce code bloat using SFINAE template selection
2018-02-12 23:40:33 +01:00
Robert Haschke
381edf2d22
ModifyPlanningScene stage
...
- attach / detach objects to robot
- enable / disable collision pairs
- works in either direction (FORWARD + BACKWARD)
2018-02-12 23:40:33 +01:00
Robert Haschke
449ccf55c6
merge WrapperBase + Wrapper into WrapperBase
...
Wrapper is not restricted to generator-type stage anymore.
2018-02-12 23:39:46 +01:00
Robert Haschke
032a4e23c1
derive WrapperBase from ParallelContainerBase
2018-02-12 23:39:46 +01:00
Robert Haschke
1ab2d596fb
ContainerBasePrivate::liftSolution()
2018-02-12 23:39:46 +01:00
Robert Haschke
919be24d16
implement ParallelContainerBase
2018-02-12 23:39:46 +01:00
Robert Haschke
a3a8f1a9d2
improved directional (forward/backward) access to interfaces
...
- TraverseDirection -> Interface::Direction
- StagePrivate: pullInterface(), pushInterface()
- trajectories<dir>(SolutionBase) -> SolutionBase::trajectories<dir>()
2018-02-12 23:39:46 +01:00
Robert Haschke
73f509c3ba
simplify usage of ContainerBasePrivate::copyState()
2018-02-12 23:39:46 +01:00
Robert Haschke
eaaaf07214
exploit default argument for Interface constructor
2018-02-12 23:39:46 +01:00
Robert Haschke
cf71d2f0d2
unify use of buffer interfaces in containers
...
All containers need to buffer their children's sendBackward/sendForward states.
2018-02-12 23:39:46 +01:00
Robert Haschke
9bdfcc8c23
expose Task::initScene()
...
... to allow use of local scene
2018-02-12 23:37:19 +01:00
Robert Haschke
e9d0a05f75
default arg in header
2018-02-12 23:37:19 +01:00
Robert Haschke
3a4dc6755b
Merge branches 'fix-remote-task-model', 'wip-cost-ordering' and 'wip-properties'
2018-02-12 23:35:01 +01:00
Robert Haschke
fe2c4f312e
serialize stage properties
2018-02-12 22:45:15 +01:00
Robert Haschke
5ff78f653e
signal callback function
...
... to allow for syncing with rviz::Property
2018-02-12 22:45:15 +01:00
Robert Haschke
c3eead0115
allow only a single inititialization source
2018-02-12 22:45:15 +01:00
Robert Haschke
5c43d700a8
update state priorities in a container-specific fashion
...
Reorder interface list on priority updates.
This requires the InterfaceState to store a pointer to the owning Interface.
2018-02-12 22:44:18 +01:00
Robert Haschke
facd6438c9
Interface: order states by priority
...
Priority is (depth of solutions, accumulated cost along trace).
2018-02-12 22:44:18 +01:00
Robert Haschke
d0351698a6
single map internal_to_external
...
There is no need to distinguish between starts and ends when mapping
states, because start/end states need to be disjoint sets.
2018-02-12 22:44:18 +01:00
Robert Haschke
e6af069139
SerialContainer: traverse solutions w/o stopping stage
...
Always traverse from current solution to the start/end of a complete
path and only call the callback once for the whole trace.
2018-02-12 22:44:18 +01:00
Robert Haschke
6a62f6be76
default argument for NotifyFunction in Interface constructor
2018-02-12 22:44:18 +01:00
Robert Haschke
244a7d147b
sort serial solutions before insertion
2018-02-12 22:36:58 +01:00
Robert Haschke
29577515a0
cost ordering for solutions
2018-02-12 22:36:56 +01:00
Robert Haschke
c84fa4cdd6
cost ordered API
2018-02-12 22:36:12 +01:00
Robert Haschke
1403fc9830
fixed some clang warnings
2018-02-12 22:36:12 +01:00
Robert Haschke
2184450bd6
count all failures for statistics
2018-02-12 22:36:12 +01:00
Robert Haschke
7a13d79bc4
example setting solution markers
2018-02-12 22:36:12 +01:00
Robert Haschke
97bb6ef2c6
allow handling of failures
...
- store "failure" solutions to facilitate debugging
- Introspection assigns solution IDs as soon as they are created in a stage
Thus, solution IDs represent their creation order.
In contrast, the order of publishing (in StageStatistics) should
represent the cost order.
- Storing failures is disabled if Introspection is not available.
2018-02-12 22:35:58 +01:00
Robert Haschke
57cd11e3a9
Wrapper::compute: return true if new solutions are found
2018-02-12 22:33:39 +01:00
Robert Haschke
38f7696acf
ComputeBase::addTrajectory -> ComputeBasePrivate::addTrajectory
...
Forbid indirect access to trajectories_.
Only official compute classes have access.
2018-02-12 22:33:39 +01:00
Robert Haschke
5c1cad14df
Merge branches 'fixes', 'wip-drag-n-drop', 'wip-ikstage' and 'wip-marker-vis'
...
resolved conflicts:
core/include/moveit/task_constructor/container.h
core/src/container.cpp
core/src/stages/generate_grasp_pose.cpp
visualization/motion_planning_tasks/src/task_display.cpp
visualization/motion_planning_tasks/src/task_panel_p.h
2018-02-04 21:36:01 +01:00
Robert Haschke
17683b12c9
more exported stage plugins: CurrentState
2018-02-04 21:30:25 +01:00
Robert Haschke
736136dd9f
collision test for ee group
2018-02-04 09:01:45 +01:00
Robert Haschke
3fd096c8e6
fix IK stage: insert different solutions as different scenes
2018-02-04 09:01:45 +01:00
Robert Haschke
57d907908d
better names for frame and transform variables
2018-02-04 09:01:45 +01:00
Robert Haschke
fe05894709
renamed GenerateGraspPose::setGraspFrame() to setToolToGraspTF()
2018-02-04 09:01:45 +01:00
Robert Haschke
0918ad6897
implement IK as separate stage
...
... wrapping another stage
2018-02-04 09:01:45 +01:00
Robert Haschke
b6959170db
derive WrapperBase from ContainerBase
...
While ParallelContainers can directly promote their child solutions as
their own, a Wrapper needs to modify those solutions. Hence, Wrappers
should be derived directly from Container.
2018-02-04 09:01:45 +01:00
Robert Haschke
e4ad7a0753
removed Stage::validate()
...
... only was checking for implies(a, a) which is always true
2018-02-04 09:01:45 +01:00