papl / src / PaplRRTExpand.mli

Full commit
  Copyright (c) 2012 Anders Lau Olsen.
  See LICENSE file for terms and conditions.
(** RRT expansions 

    The functions of this module construct expansion methods for RRT planners
    (see {! PaplRRT}). An RRT expansion method returns configurations on a path
    leading from a given start configuration towards a goal configuration.

type 'a expand_t = 'a PaplRRT.expand_t

val by_intermediaries :
  ?accept_first:bool ->
  'a PaplEdgeConstraint.t ->
  'a PaplInterpolate.intermediary_t list ->
  'a expand_t

val by_intermediary_steps :
  ?accept_first:bool ->
  'a PaplPlannerConstraint.t ->
  'a PaplInterpolate.t ->
  'a PaplMetric.t ->
  float list ->
  'a expand_t

val steps_n :
  ?min_stride:int ->
  ?max_stride:int ->
  'a PaplEdgeConstraint.t ->
  'a PaplInterpolate.intermediary_t ->
  int ->
  'a expand_t
(** Expansions with at most [n] steps.

    The expansion method [steps_n constr intermediary n] splits a segment into
    intermediary configurations using [intermediary] and verifies each step by
    [constr]. If the path of accepted configurations is shorter or equal to [n],
    then this path is returned. Otherwise the path is shortened by removing a
    subset of the configurations to produce a path with exactly [n] elements.

    The optional parameters [min_stride] and [max_stride] can be used to lower
    or raise the number of elements [n] in the resulting path, depending on the
    length [len] of the path. The length of the resulting path is at least [len
    / min_stride] (for [len > min_stride]) and at most [len / max_stride + 1]
    (assuming [min_stride < max_stride]).