Robert Haschke
43bcf99222
init() throws InitStageException
2017-10-20 16:40:11 +02:00
Robert Haschke
68ff79f464
setup SerialContainer interface
2017-10-20 16:40:11 +02:00
Robert Haschke
bc5c76578e
connect and validate chain
2017-10-20 16:40:11 +02:00
Robert Haschke
b967e8231b
publish solutions again
2017-10-20 16:40:11 +02:00
Robert Haschke
6167f728ed
wip
2017-10-20 16:40:11 +02:00
Robert Haschke
51e4bba212
sendForward(), sendBackward() use InterfaceState for both from and to arguments
2017-10-16 17:19:03 +02:00
Robert Haschke
a32007613e
renamed subtask -> stage
2017-10-16 09:24:21 +02:00
Robert Haschke
3cc112fe2c
cleanup container
...
- removed friends + mutable
- simplified SerialContainer::canInsert()
2017-10-16 09:22:16 +02:00
Robert Haschke
dc9f553ab0
replaced IMPL macro
2017-10-16 09:22:16 +02:00
Robert Haschke
1b1a82f7c8
simplified SubTask API
...
- moved interface flags to private implementation
- moved newInputState() / newOutputState to private implementation
- directly implement sendBackward()/sendForward()
- removed scene_, planner_ from SubTaskPrivate
... replaced by init(scene) call
- renamings
- array_type -> container_type
- ...AnyWay -> ...EitherWay
- input -> start
- output -> end
2017-10-11 23:34:49 +02:00
Robert Haschke
c085534ea9
simplified API of SubTask specializations
...
- allow bidirectional Gripper
- implemented canInsert()
2017-10-11 22:43:55 +02:00
Robert Haschke
2bf66dc125
fancy print output based on interfaceFlags()
2017-10-04 00:11:22 +02:00
Robert Haschke
ce7d570459
pimpl_func() only in SubTask class
2017-10-04 00:11:22 +02:00
Robert Haschke
11b6dd2efd
implement children_ as std::list
...
This provides a double-linked list already.
Now need to manually track predeccessors and successors.
2017-10-04 00:11:22 +02:00
Robert Haschke
bb06eda33c
containers
...
- allow hierarchical organization of stages (serially for now)
- validate correctness of tree (at composition time, i.e. runtime)
- derive Task from SerialContainer
- fix pimpl_func(), PRIVATE_CLASS declaration in "public" section to allow access in tests
2017-10-04 00:11:22 +02:00
Robert Haschke
fcccbae408
specialised SubTask classes
...
SubTask cannot be instantiated directly, but only its derived classes
that specify the type of operation:
PropagatingAnyWay
PropagatingForward
PropagatingBackward
Connecting
Generator
2017-09-30 22:10:51 +02:00
Robert Haschke
f7fe7fc896
use namespace definitions
2017-09-30 21:44:57 +02:00
Robert Haschke
7641e004d1
Merge branch 'master' into fix
2017-09-29 03:58:41 -07:00
Robert Haschke
4538d53bb2
fix for-loop argument types
2017-09-29 03:54:13 -07:00
v4hn
f7b6429a31
keep trailing underscore convention for class members
2017-09-29 00:18:53 -07:00
Robert Haschke
2d5797d741
restore online publishing of new solutions
2017-09-28 20:35:44 -07:00
Robert Haschke
6d10f7e835
moved plan publishing into debug.cpp
2017-09-28 20:35:44 -07:00
Robert Haschke
a0928e21f9
remove flag from SubTrajectory
...
was used to indicate usage in publishPlans()
2017-09-28 00:03:47 -07:00
Robert Haschke
a5b7f0c2f3
fix publishing plans
2017-09-28 00:03:47 -07:00
v4hn
2dfc2f395e
avoid shortened nested namespace definitions
...
`namespace X::Y { }` is only part of the C++17 standard.
I did not notice before because GCC 6+ do not warn about
this even with `-pedantic -std=c++14`.
2017-09-13 13:16:48 +02:00
v4hn
f1039b8c14
ggp: add max_ik_solutions parameter
...
With 6DOF planning groups the user often knows an upper limit
on how many ik solutions there are.
Specifying the limit avoids looking for additional IK solutions until timeout.
2017-09-13 12:08:26 +02:00
v4hn
d2d93967ce
consistency: Begin -> Beginning
2017-09-12 09:21:31 +02:00
v4hn
d801c4441c
simplify interface
...
the currently-advertised version is a linear pipeline
and the graph-based version would still need some reworking,
so stick with simple "add".
2017-09-04 00:52:49 +02:00
v4hn
491098e0c3
use weak_ptr instead of raw pointer
...
Using shared_ptr, this is cleaner
2017-09-04 00:52:00 +02:00
v4hn
25fcc39a33
task: flag previously returned trajectories to return them only once
...
This required to move from RobotTrajectorys to SubTrajectorys in more
interfaces, as well as fewer const-changes to handle the flags.
2017-03-24 12:46:59 +01:00
v4hn
4955a64181
add methods to traverse through all solutions
2017-03-07 14:58:57 +01:00
v4hn
751c85cd3c
add two auxiliary attributes to grasp generator
2017-03-07 13:11:47 +01:00
v4hn
850fb575d0
don't add NULL to InterfaceState
2017-03-06 23:44:59 +01:00
v4hn
f8b1b3c204
rename connect* to hasBeginning/Ending & add missing calls
2017-03-06 23:24:55 +01:00
v4hn
5d9a9c22e4
invert 1:n relationship between InterfaceState and SubTrajectory
...
Starting with the Move Subtask, a single InterfaceState might have
multiple trajectories associated.
On the other hand, a graph structure of nodes is arbitrary difficult to handle,
debug and even specify. Because all examples considered up to now are
linear, I decided to stay with a linear ordering for now.
This should also allow much cleaner visualizations.
2017-03-06 20:47:56 +01:00
v4hn
ca6151cacb
first implementation of the Move subtask
2017-03-06 19:49:06 +01:00
v4hn
a9c9a61710
add stub for pair iteration
...
This is not too hard, but takes a bit of time to get right,
so I'll add a stub for the moment.
2017-03-06 19:34:11 +01:00
v4hn
57f974bfff
implement missing connectToEnding method
2017-03-06 19:06:22 +01:00
v4hn
5d41af19d1
change gripper subtask to use EndEffector
2017-03-06 15:08:32 +01:00
v4hn
fb532045fe
generate_grasp_pose: utilize MoveIt's EndEffector model
...
This assumes the end-effector is properly setup in the srdf,
but simplifies setup of the subtask.
2017-03-06 14:53:14 +01:00
v4hn
4637e1fffd
add step size parameter to CartesianPositionMotion
2017-03-06 14:37:30 +01:00
v4hn
be828860f4
cartesian_position_motion: add beginning->end inference & mode_along
2017-03-05 21:43:31 +01:00
v4hn
07b1a72030
add planning pipeline to task and subtasks
...
This allows to plan in the subtasks without ROS communication
2017-03-05 13:06:16 +01:00
v4hn
86c908861d
cartesian_position_motion: refactored
2017-03-04 16:59:24 +01:00
v4hn
70145aae29
draft implementation of cartesian_position_motion - one way only for the moment
2017-03-04 00:08:52 +01:00
v4hn
31c88bb9d6
generate grasps: add GripperGraspPose
...
Otherwise this always uses the current gripper state.
2017-03-03 12:17:57 +01:00
v4hn
30961436f1
subtask: add has* functions to facilitate canCompute
2017-03-02 19:35:31 +01:00
v4hn
9c5c87fc58
generate_grasp_pose: add grasp offset
...
This (as probably known from many other implementations...) allows
to grasp the object with the end effector link being further away from it.
2017-03-02 19:23:56 +01:00
v4hn
798f9c0839
add angle delta for generate grasp poses
2017-03-02 17:21:36 +01:00
v4hn
19c351b27d
generate grasp poses: retrieve multiple IK solutions & check collisions
2017-03-02 17:20:48 +01:00