Source

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 :
  '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
    steps using [intermediary] and verifies the steps by [constr]. If the number
    of accepted steps was less than or equal to [n], the steps are returned.
    Otherwise the method shortens the list of steps to produce a list with
    exactly [n] elements. 
*)