Log In Sign Up

STRIPStream: Integrating Symbolic Planners and Blackbox Samplers

by   Caelan Reed Garrett, et al.

Many planning applications involve complex relationships defined on high-dimensional, continuous variables. For example, robotic manipulation requires planning with kinematic, collision, and motion constraints involving robot configurations, object transforms, and robot trajectories. These constraints typically require specialized procedures to sample satisfying values. We extend the STRIPS planning language to support a generic, declarative specification for these procedures while treating their implementation as blackboxes. We provide several domain-independent algorithms that reduce STRIPStream problems to a sequence of finite-domain STRIPS planning problems. Additionally, we describe cost-sensitive planning within this framework. Finally, we evaluate our algorithms on three robotic task and motion planning domains.


page 1

page 6


STRIPS Planning in Infinite Domains

Many robotic planning applications involve continuous actions with highl...

Sampling-Based Methods for Factored Task and Motion Planning

This paper presents a general-purpose formulation of a large class of di...

Scalable and Probabilistically Complete Planning for Robotic Spatial Extrusion

There is increasing demand for automated systems that can fabricate 3D s...

A Conflict-driven Interface between Symbolic Planning and Nonlinear Constraint Solving

Robotic planning in real-world scenarios typically requires joint optimi...

Visualization of Nonlinear Programming for Robot Motion Planning

Nonlinear programming targets nonlinear optimization with constraints, w...

Arranging Test Tubes in Racks Using Combined Task and Motion Planning

The paper develops a robotic manipulation system to treat the pressing n...

Learning Feasibility of Factored Nonlinear Programs in Robotic Manipulation Planning

A factored Nonlinear Program (Factored-NLP) explicitly models the depend...

1 Introduction

Many important planning domains naturally occur in continuous spaces involving complex constraints among variables. Consider planning for an 11 degree-of-freedom (DOF) robot tasked with organizing several blocks in a room. The robot must find a sequence of

pick, place, and move actions involving continuous robot configurations, robot trajectories, block poses, and block grasps. These variables must satisfy complicated kinematic, collision, and motion constraints which affect the feasibility of the actions. Often, special purpose procedures that efficiently evaluate and produce satisfying values for these constraints such as inverse kinematic solvers, collision checkers, and motion planners are known.

We propose STRIPStream, a description language that introduces streams as an interface for incorporating these procedures in planning domain description language (PDDL). To the best of our knowledge, STRIPStream is the first domain-independent planning language that incorporates sampling procedures. Each stream has both a procedural and declarative component. The procedural component is a conditional generator, a function from a tuple of input values to a finite or infinite sequence of tuples of output values. Conditional generators can construct new values that depend on existing values, such as new robot configurations that satisfy a kinematic constraint with existing poses and grasps. The declarative component is a specification of the atoms that these input and output values satisfy. Streams allow a planner to reason about conditions on the inputs and outputs of a conditional generator while treating its implementation as a blackbox.

Figure 1: A 3D rovers domain requiring a team of rovers (blue/green robots) to analyze rocks/soil (black/brown objects), image objectives (blue blocks), and communicate to a lander (grey robot).

Inspired by the work of Garrett et al. GarrettRSS17, which gave sampling-based approaches for planning in hybrid transition systems, we present several algorithms for solving STRIPStream problems. Each algorithm constructs and solves a sequence of finite-domain STRIPS [Fikes and Nilsson1971] problems. This enables state-of-the-art PDDL planners [Helmert2006] to be used as search subroutines. Some of these approaches avoid evaluating many unnecessary streams by only evaluating streams that optimistically could produce values supporting a plan. This is advantageous when only a few stream evaluations are required, and stream evaluation is computationally expensive. We also describe extensions incorporating external functions, action costs, and derived predicates. Finally, we model several domains (figures 123) and evaluate the performance of our algorithms.

2 Related Work

Many approaches to robotic task and motion planning have developed strategies for handling continuous spaces that go beyond a priori discretization. Several of these approaches [Kaelbling and Lozano-Pérez2011, Erdem et al.2011, Srivastava et al.2014, Garrett et al.2015, Dantam et al.2016, Garrett et al.2017a] have been suggested for integrating sampling-based motion planning with symbolic planning. However, those able to plan in realistic robot domains have typically been specialized to that class of problems.

Several PDDL extensions such as PDDL2.1 [Fox and Long2003] and PDDL+ [Fox and Long2006] support planning with numeric variables that evolve as a function of time. Most planners are restricted to problems with linear or polynomial dynamics governing these variables [Hoffmann and others2003, Bryce et al.2015, Cashmore et al.2016]; however, some planners can handle non-polynomial dynamics by discretizing time [Della Penna et al.2009, Piotrowski et al.2016]. While it may be technically possible to analytically model, for example, collision constraints among three-dimensional meshes using PDDL+, the resulting encoding would be enormous, far exceeding the demonstrated capabilities of current numeric planners.

Semantic attachments [Dornhege et al.2009b, Dornhege et al.2009a], functions computed by an external module, are an existing way of integrating blackbox procedures and PDDL planners. Condition-checker modules are used to test operator preconditions, and effect-applicator modules modify numeric state variables. Operators must be parameterized by variables with finite types, restricting the technique to domains with finite branching factors. Semantic attachments can only produce a single tuple of numeric outputs. Planning with semantic attachments requires modifying existing PDDL planners to evaluate the attachments during the search. This also results in many unneeded procedure calls, resulting in poor planner performance when the attachments are expensive. Planning Modulo Theories (PMT) [Gregory et al.2012] generalizes semantic attachments by supporting the composition of several modules through custom first-order theories.

3 STRIPStream

We build STRIPStream on the STRIPS planning language [Fikes and Nilsson1971]. A predicate is a boolean function. An atom is an evaluation of predicate on an object tuple . A literal is an atom or a negated atom. A state is a set of atoms. We make the closed world assumption that atoms not present within a state are false.

An action is given by a parameter tuple , a set of literal preconditions on , and a set of literal effects on . An action instance is an action with its parameters replaced with objects . An action instance is applicable in a state if where the and superscripts designate the positive and negative literals respectively. The result of applying an action instance to state is a new state .

A STRIPS problem is given by a set of actions , an initial state , and a goal set of literals . A legal plan is a finite sequence of action instances such that each is applicable in the th state resulting from their application. The preimage of a plan is the set of literals that must hold in to execute :

3.1 Streams

A generator is a finite or infinite, enumerable sequence of object tuples . A conditional generator is a function from an object tuple to a generator . Let evaluate the generator and return the subsequent in the sequence if it is defined. Otherwise, let return . Conditional generators are implemented as blackbox procedures in a host programming language. A conditional generator is a programmatic specification of a binary relation on input object tuples and output object tuples . A stream is a conditional generator endowed with a declarative specification of the domain, range, and graph of its corresponding relation. Let be a set of atoms on input parameters that specify a possibly infinite set of object tuples for which is defined. Let be a set of certified atoms on potentially both and output parameters representing the range and graph of . A stream instance is a stream with its input parameters replaced by an object tuple .

A STRIPStream problem is given by a set of actions , a set of streams , an initial state , and a goal state . We restrict ourselves to problems in which all stream domain and certified predicates are static predicates, predicates not included within action effects. Additionally, we require that stream-certified atoms are never negated within action preconditions. As a result, stream-certified atoms are interpreted as constant facts that restrict the parameter values for each action. The set of streams augments the initial state , recursively defining a potentially infinite set of atoms that hold initially and cannot be changed:

A solution for STRIPStream problem is a legal plan such that . In supplementary material111, we prove that STRIPStream planning is undecidable, but our algorithms are complete over feasible instances.

4 Example Domain

As an illustrative example, we apply STRIPStream to model a robotic manipulation domain with a single manipulator and a finite set of movable blocks. Our model of the domain uses the following parameters: is the name of a block; is 6 DOF block pose placed stably on a fixed surface; is a 6 DOF block grasp transform relative to the robot gripper; is an 11 DOF robot configuration; and is a trajectory composed of a finite sequence of waypoint robot configurations.

The fluent predicates , , , model the changing robot configuration, object poses, and gripper status over time. The static predicates , , , are constant facts involving parameter values. Pose and Grasp indicate a pose or grasp can be used for block . Kin is a kinematic constraint between configuration and gripper transform . Motion is a constraint that are the start and end configuration for trajectory , and respects joint limits, self-collisions, and collisions with the fixed environment. Collisions between blocks and trajectories are handled using a derived predicate Unsafe described in section 6.0.1. Actions are:

Move: pre: eff: Pick: pre: eff: Place: pre: eff: .

Let indicate a stream with input parameters and output parameters . The streams are . surface deterministically or randomly samples an infinite sequence of stable placements for block . grasps enumerates a sequence of force-closure grasps for block . ik calls an inverse kinematics solver to sample configurations from a 4D manifold of values (due to manipulator redundancy) that enable the robot to manipulate a block at pose with grasp . motion repeatedly calls a motion planner to generate safe trajectories between pairs of configurations .

surface: dom: cert: grasps: dom: cert: ik: dom: cert: motion: dom: cert:

5 Algorithms

We present several algorithms for solving STRIPStream problems. These algorithms alternate between evaluating stream instances and solving induced STRIPS problems. Let be any sound and complete search algorithm for STRIPS problems. search can be implemented using an off-the-shelf STRIPS planner without modification, to take advantage of existing, efficient search algorithms.

5.1 Incremental

The first algorithm directly adapts the incremental approach of Garrett et al. GarrettRSS17 to STRIPStream. The incremental algorithm iteratively constructs . On each iteration, the current set of atoms becomes the initial state in a STRIPS problem that is solved using search. If search finds a plan , it returned as a solution. Otherwise, the procedure constructs all stream instances with domain atoms satisfied by . For each stream instance , the next output object tuple is queried. When , the procedure returns the certified atoms corresponding to and . These new atoms are added to and the next iteration begins.

True: : :

The incremental algorithm blindly evaluates all stream instances, which can result in significant overhead when stream evaluations are computationally expensive. Additionally, it can produce large STRIPS problems when grows quickly.

5.2 Focused

Our other algorithms are inspired by and improve on the focused approach of Garrett et al. GarrettRSS17. We present these algorithms in a unified manner using the shared meta-procedure focused. Each subroutine of focused admits several possible implementations that result in different algorithms.

The focused algorithms each selectively choose which stream instances to evaluate based on whether they could support a solution. The key idea is to plan using optimistic objects that represent hypothetical stream outputs before evaluating actual stream outputs. These values are optimistic in the sense that their corresponding stream instance may not actually be able to produce a satisfying value. For instance, a stream instance with a particular pose and grasp pair as inputs may not admit any collision-free inverse kinematic solutions. Upon failing to produce a desired value, the focused algorithms will replan without that stream instance.

True: if : Infeasible reset else if : Empty is a solution else : : :

focused maintains a set of certified atoms and a set of disabled stream instances , which is used to limit the stream instances that can be optimistically evaluated. On each iteration, focused calls optimistic-streams to generate a sequence of optimistic stream instances , stream instances producing optimistic objects. It calls plan-streams to identify both plan and a stream plan of stream instances that, presuming successful evaluations, support . If , the current set of optimistic stream instances is insufficient. In this case, disabled is reset by setting to allow each to be used again within on the next iteration. If , the plan is executable without any additional stream evaluations and is returned as a solution. Otherwise, focused evaluates the stream instances on with domain atoms satisfied by . New atoms are added to , and evaluated instances are added to the disabled set .

5.3 Optimistic Evaluation

The procedure optimistic-streams optimistically evaluates each stream instance absent from in order to characterize the set of possibly achievable atoms. It returns a sequence of optimistic stream instances to be used within plan-streams. Rather than evaluate each stream instance using , a single optimistic object tuple is constructed using the procedure . All certified atoms resulting from are added to , an optimistic version of , and is used to instantiate all new stream instances resulting from the new optimistic atoms.


5.3.1 Unique Optimistic Objects

Optimistic output objects can be implemented by opt-eval in at least two ways. The first creates a unique optimistic object for each stream instance and output object parameter . Each optimistic object encodes a history of stream evaluations that produces it. As an example, consider a STRIPStream problem in the robotics domain (section 4) requiring that block be moved from initial pose to goal pose . The objects

are real-valued vectors (

i.e. ). The initial state is

The goal is . On the first iteration, the optimistic stream instances produced are

Each indicates a unique optimistic output. In total, 16 motion stream instances are created. A possible plan and stream plan produced by plan-streams is

Notice that is substantially shorter than as many stream instances are not needed. On this iteration, focused will evaluate just , producing a new grasp , because the other streams have optimistic objects as inputs. This process repeats for three iterations before finding a solution, resulting in the following stream instances and objects:

5.3.2 Shared Optimistic Objects

A downside of using unique optimistic objects is that they can result in large STRIPS problems. In the previous example, 21 optimistic objects are created when only 5 are needed. An alternative implementation of opt-eval creates a shared optimistic object for each stream (rather than stream instance) and output object parameter . This strategy is overly optimistic because it assumes the same object will result from two different stream instances, which is typically unlikely for streams involving continuous variables. But as a result, the number of optimistic objects is much smaller.

Revisiting our example, the optimistic stream instances are

Here, each indicates a shared optimistic output. The resulting plan and stream plans differ from before.

No replacement in will result in a solution because the plan lacks a Move between Pick and Place. However, still leads to a stream plan that identifies useful stream instances. In this example, both shared objects and unique objects lead to the same sequence of evaluated stream instances. But the sequence of plans using shared objects is:

On the second iteration, both and are evaluated, resulting in distinct configurations . This forces and to use two Move actions instead of just one.

5.4 Planning Streams and Actions

The subroutine is tasked with identifying both action plans as well as stream plans .

5.4.1 Simultaneous

The first implementation treats stream instances as actions and simultaneously plans and . The combined plan interleaves executing actions and evaluating streams. The procedure transforms each stream instance into an action instance. For each stream instance , it creates an action instance by assigning and . For example, the stream action corresponding to stream instance has and . Its preconditions require that the stream action for be applied in the search before can be applied. As a result, the subsequence will automatically be ordered correctly.

: ,

For cost-insensitive planning, stream actions can be given costs by a user to reflect the estimated computational

effort required to produce satisfying values. Effort can incorporate the evaluation overhead, likelihood of producing any output objects, and likelihood of producing output objects that satisfy plan-wide conditions. Then, a cost-sensitive implementation of search can bias the search to find combined plans leading to low-effort stream plans . In our experiments, we use unit costs to generically bias towards short stream plans. A disadvantage to simultaneously planning and is that both the planning horizon and branching factor increase, making each call to search more expensive (section 7).

5.4.2 Sequential

Alternatively, plan-streams can be implemented by first planning for using all optimistic atoms and then planning by identifying which streams instances requires. First, the set of optimistic atoms is recreated and used to augment within search. When is found, the difference between the plan preimage and determines which optimistic atoms are required. Then, the procedure retrace-streams is used to identify a subsequence of that produces these atoms. By separately planning and , both search problems are smaller than the combined problem. Stream instance effort cannot be as faithfully incorporated when just planning for . However, the effort required to achieve the certified atoms in action instance preconditions can be approximated by applying the or heuristics [Bonet and Geffner2001] to stream instances.


The implementation of retrace-streams affects how many stream instances are returned and later evaluated. A satisfactory implementation would be to just return . However, likely contains many stream instances that are not necessary for the execution of . retrace-streams could instead be implemented by optimizing for the lowest effort that satisfies the preimage. This optimization is identical to solving for the optimal delete-relaxation plan [Hoffmann and Nebel2001]. Suboptimal can be identified in polynomial time by greedily linearizing stream instances as done when computing the FF heuristic [Hoffmann and Nebel2001]. Alternatively, as we do in the experiments, an effort-optimal for can be recovered by a second call to search:

We found that this explicit optimization results in surprisingly low overhead and helps prune redundant stream instances resulting from planning using shared objects.

6 External Functions

STRIPStream can be extended to support planning with procedurally-specified functions for cost-sensitive planning. An external function is a nonnegative function on parameter tuple . Like streams, is specified in a host programming language, and the domain of is declared by a set of atoms on . In cost-sensitive planning, each action may have an effect that increases the total plan cost by . Because functions may be defined on infinitely large domains, the set of solution costs may have an infimum but not a minimum. For example, the sampled set of trajectories between two configurations might converge in cost to a lower bound without actually reaching it. Because of this, we will only consider the feasibility problem of producing a solution with cost below a specified cost threshold .

The incremental algorithm can be extended to support functions by evaluating all external functions before running search and using an implementation of search supporting the specification of a maximum cost . The focused algorithms require additional care because external functions might be grounded using optimistic objects. We cannot generally evaluate external functions on optimistic objects; however, we can use lower bounds on their evaluations, such as zero, to ensure the resulting STRIPS problem is optimistic.

The focused algorithms can avoid evaluating stream instances supporting plans exceeding the cost threshold . Because of this, their performance improves when given tighter lower bounds on external functions, as these prune plans from consideration. Thus, we allow the user to specify a lower-bound procedure for each external function. The lower-bound procedure can just a constant or a function defined on optimistic objects. For example, the distance along an optimistic robot trajectory from can be lower-bounded by the straight-line distance between and .

6.0.1 Axioms

An axiom is a rule that automatically updates the value of a derived predicate at each state. Axioms are useful for factoring complex preconditions in order to obtain more compact grounded representations [Thiébaux et al.2005]. Derived predicates can easily be incorporated within STRIPStream when either a bounded number of axioms per state update each atom or atoms are never negated in preconditions. The incremental algorithm requires no modification, and the focused algorithms only require modification of preimage to extract a sequence of axioms.

In our robotics domain, we use UnsafeAxiom (below) to update the derived predicate preventing the use of a currently colliding trajectory. We use a similar UnsafeHoldingAxiom (omitted) to update when holding a block with grasp . UnsafeAxiom uses a boolean external predicate , which calls a collision checker to test whether trajectory is in collision when block is placed at pose . In the focused algorithms, Collision is lower-bounded by False, which optimistically assumes trajectories are collision-free.

UnsafeAxiom: pre: eff:

7 Results

We experimented using the incremental algorithm (Incr) and four focused algorithms (Foc-{U,S}{1,2}) on 25 randomly generated problems of 3 sizes within 3 domains. We enforced a 5 minute timeout that includes stream evaluation time. We use {U,S} to specify unique (U) vs shared (S) optimistic objects (section 5.3) and {1,2} to specify simultaneous (1) vs sequential (2) optimistic planning (section 5.4). STRIPStream was implemented in Python. A link to the implementation will be provided in the camera-ready copy of this paper. We use the FastDownward [Helmert2006] planning system to implement search. The stream conditional generators were implemented using the OpenRAVE robotics framework [Diankov and Kuffner2008].

Domain 1 (figure 1) extends the classic PDDL domain rovers [Long and Fox2003] by incorporating 3D visibility, distance, and collision constraints. Although two rovers (blue/green robots) are available, the left rover cannot reach any of the rocks (black objects), soil (brown objects), or configurations near objectives (blue objects). The right rover alone must analyze the rocks and soil as well as photograph the objectives. However, the left rover blocks line-of-sight to the lander (grey robot), requiring it to be moved so the right robot can communicate its data. The top of table 1 shows the results when the number of objectives is varied among {1,3,5}. This domain is the most symbolically difficult of the three domains. As a result, the focused algorithms, although initially outperforming Incr, are more affected by the increase in problem size due to their repeated calls to search.

Figure 2: The robot must clean the blue blocks using the sink (blue surface) and cook the green blocks using the stove (green surface).
D-# Incr Foc-U1 Foc-S1 Foc-U2 Foc-S2
c t c t c t c t c t
1-1 25 59 25 27 25 33 25 33 25 23
1-3 25 63 25 40 25 44 25 47 25 38
1-5 25 65 23 67 20 70 25 95 24 41
2-0 23 75 23 5 23 8 23 5 23 6
2-20 0 - 22 51 22 75 23 45 23 21
2-40 0 - 19 89 20 83 21 108 21 53
Table 1: The number of successes (c) and mean success runtime in seconds (t) over 25 generated problems per size for domains 1 & 2.

Domain 2 (figure 2) is a “cooking” task and motion planning domain where blocks can be cleaned and, once cleaned, cooked. Blocks can be cleaned when placed in the sink (blue surface) and cooked when placed on the stove (red surface). The goal is to clean 2 blue blocks, cook 2 green blocks, and return both color blocks back to their initial poses. Red blocks obstruct the cleaning and cooking process and may need to be moved. The bottom of table 1 shows the results when the number of red blocks is varied among {0,20,40}. As shown, shared objects (S) outperform unique objects (U) and sequential search (2) outperforms simultaneous search (1).

Figure 3: Subject to a maximum plan cost constraint, the robot must pick up some green block and return to its initial configuration.

Domain 3 (figure 3) is a cost-sensitive task where the goal conditions are that the robot is holding any green block in its initial configuration and the plan cost is below a fixed threshold. The robot must navigate around a transparent wall to move between rooms. As a result, plans that instead manipulate the left red block to reach the left green block are the only ones that meet the cost threshold. Table 2 shows the results when the number of green blocks on the far right table is varied among {0,2,4}. Instead of Foc-U1 and Foc-S1, we experiment with a version of Foc-U2 endowed with a straight-line lower bound (section 6) on base motion costs Foc-U2-Bd. The lower bound is able to prune optimistic plans manipulating the far right green blocks from consideration as they are proven to exceed the cost threshold. However, it does not prune plans manipulating the center object which would be below the cost threshold in the absence of the transparent wall. Using the custom lower bound results in improved performance over using the default lower bound of zero in Foc-U2 and Foc-S2.

D-# Incr Foc-U2 Foc-S2 Foc-U2-Bd
c t c t c t c t
3-0 19 126 25 26 25 38 25 12
3-2 10 222 19 98 25 102 25 19
3-4 0 - 17 100 19 100 25 17
Table 2: The number of successes (c) and mean success runtime in seconds (t) over 25 generated problems for domain 3.

The focused algorithms outperform the incremental algorithm due to their ability to selectively evaluate streams. The focused algorithms that use shared objects and sequential search (Foc-S2) scale the best as problem difficulty increases because they produce smaller STRIPS problems.

8 Conclusion

STRIPStream is a general-purpose framework for incorporating sampling procedures in a planning language. We gave several algorithms for STRIPStream that reduce planning to a series of STRIPS problems. Future work involves further extending STRIPStream to incorporate numeric preconditions.


  • [Bonet and Geffner2001] Blai Bonet and Héctor Geffner. Planning as heuristic search. Artificial Intelligence, 129(1):5–33, 2001.
  • [Bryce et al.2015] Daniel Bryce, Sicun Gao, David J Musliner, and Robert P Goldman. SMT-based nonlinear PDDL+ planning. In AAAI, 2015.
  • [Cashmore et al.2016] Michael Cashmore, Maria Fox, Derek Long, and Daniele Magazzeni. A compilation of the full pddl+ language into smt. In International Conference on Automated Planning and Scheduling (ICAPS), pages 79–87. AAAI Press, 2016.
  • [Dantam et al.2016] Neil T. Dantam, Z. Kingston, Swarat Chaudhuri, and Lydia E. Kavraki. Incremental task and motion planning: A constraint-based approach. In Robotics: Science and Systems (RSS), 2016.
  • [Della Penna et al.2009] Giuseppe Della Penna, Daniele Magazzeni, Fabio Mercorio, and Benedetto Intrigila. Upmurphi: A tool for universal planning on pddl+ problems. In International Conference on Automated Planning and Scheduling (ICAPS), 2009.
  • [Diankov and Kuffner2008] Rosen Diankov and James Kuffner. Openrave: A planning architecture for autonomous robotics. Technical Report CMU-RI-TR-08-34, Robotics Institute, Carnegie Mellon University, 2008.
  • [Dornhege et al.2009a] C. Dornhege, M. Gissler, M. Teschner, and B. Nebel. Integrating symbolic and geometric planning for mobile manipulation. In IEEE International Workshop on Safety, Security and Rescue Robotics, November 2009.
  • [Dornhege et al.2009b] Christian Dornhege, Patrick Eyerich, Thomas Keller, Sebastian Trüg, Michael Brenner, and Bernhard Nebel. Semantic attachments for domain-independent planning systems. In International Conference on Automated Planning and Scheduling (ICAPS), pages 114–121. AAAI Press, 2009.
  • [Erdem et al.2011] Esra Erdem, Kadir Haspalamutgil, Can Palaz, Volkan Patoglu, and Tansel Uras. Combining high-level causal reasoning with low-level geometric reasoning and motion planning for robotic manipulation. In IEEE International Conference on Robotics and Automation (ICRA), 2011.
  • [Fikes and Nilsson1971] Richard E. Fikes and Nils J. Nilsson. STRIPS: A new approach to the application of theorem proving to problem solving. Artificial Intelligence, 2:189–208, 1971.
  • [Fox and Long2003] Maria Fox and Derek Long. Pddl2.1: An extension to PDDL for expressing temporal planning domains. Journal of Artificial Intelligence Research (JAIR), 20:2003, 2003.
  • [Fox and Long2006] Maria Fox and Derek Long. Modelling mixed discrete-continuous domains for planning. J. Artif. Intell. Res.(JAIR), 27:235–297, 2006.
  • [Garrett et al.2015] Caelan Reed Garrett, Tomás Lozano-Pérez, and Leslie Pack Kaelbling. Backward-forward search for manipulation planning. In IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2015.
  • [Garrett et al.2017a] Caelan Reed Garrett, Tomas Lozano-Perez, and Leslie Pack Kaelbling. Ffrob: Leveraging symbolic planning for efficient task and motion planning. The International Journal of Robotics Research, 2017.
  • [Garrett et al.2017b] Caelan Reed Garrett, Tomas Lozano-Perez, and Leslie Pack Kaelbling. Sample-based methods for factored task and motion planning. In Robotics: Science and Systems (RSS), 2017.
  • [Gregory et al.2012] Peter Gregory, Derek Long, Maria Fox, and J Christopher Beck. Planning modulo theories: Extending the planning paradigm. In International Conference on Automated Planning and Scheduling (ICAPS), 2012.
  • [Helmert2006] Malte Helmert. The fast downward planning system. Journal of Artificial Intelligence Research (JAIR), 26:191–246, 2006.
  • [Hoffmann and Nebel2001] Jörg Hoffmann and Bernhard Nebel. The FF planning system: Fast plan generation through heuristic search. Journal Artificial Intelligence Research (JAIR), 14:253–302, 2001.
  • [Hoffmann and others2003] Jörg Hoffmann et al. The Metric-FF planning system: Translating ”ignoring delete lists” to numeric state variables. J. Artif. Intell. Res.(JAIR), 20:291–341, 2003.
  • [Kaelbling and Lozano-Pérez2011] Leslie Pack Kaelbling and Tomás Lozano-Pérez. Hierarchical planning in the now. In IEEE International Conference on Robotics and Automation (ICRA), 2011.
  • [Long and Fox2003] Derek Long and Maria Fox. The 3rd international planning competition: Results and analysis. Journal of Artificial Intelligence Research, 20:1–59, 2003.
  • [Piotrowski et al.2016] Wiktor Piotrowski, Maria Fox, Derek Long, Daniele Magazzeni, and Fabio Mercorio. Heuristic planning for pddl+ domains. In Proceedings of the Twenty-Fifth International Joint Conference on Artificial Intelligence (IJCAI), 2016.
  • [Srivastava et al.2014] Siddharth Srivastava, Eugene Fang, Lorenzo Riano, Rohan Chitnis, Stuart Russell, and Pieter Abbeel. Combined task and motion planning through an extensible planner-independent interface layer. In IEEE International Conference on Robotics and Automation (ICRA), 2014.
  • [Thiébaux et al.2005] Sylvie Thiébaux, Jörg Hoffmann, and Bernhard Nebel. In defense of pddl axioms. Artificial Intelligence, 168(1-2):38–69, 2005.