pub struct LPAStarPlanner { /* private fields */ }Expand description
Lifelong Planning A* planner.
Keeps g and rhs tables across calls so that incremental replanning
(via plan_with_cost_change)
only processes nodes affected by edge-cost changes.
Implementations§
Source§impl LPAStarPlanner
impl LPAStarPlanner
Sourcepub fn new(ox: &[f64], oy: &[f64], config: LPAStarConfig) -> Self
pub fn new(ox: &[f64], oy: &[f64], config: LPAStarConfig) -> Self
Create a planner from raw obstacle x/y slices; panics on invalid input.
Sourcepub fn try_new(
ox: &[f64],
oy: &[f64],
config: LPAStarConfig,
) -> RoboticsResult<Self>
pub fn try_new( ox: &[f64], oy: &[f64], config: LPAStarConfig, ) -> RoboticsResult<Self>
Create a validated planner from raw obstacle x/y slices.
Sourcepub fn from_obstacle_points(
obstacles: &Obstacles,
config: LPAStarConfig,
) -> RoboticsResult<Self>
pub fn from_obstacle_points( obstacles: &Obstacles, config: LPAStarConfig, ) -> RoboticsResult<Self>
Create a validated planner from typed obstacle points.
Sourcepub fn plan(&self, start: Point2D, goal: Point2D) -> RoboticsResult<Path2D>
pub fn plan(&self, start: Point2D, goal: Point2D) -> RoboticsResult<Path2D>
Plan a path from start to goal.
Sourcepub fn plan_with_cost_change(
&mut self,
start: Point2D,
goal: Point2D,
changed_edges: &[EdgeChange],
) -> RoboticsResult<Path2D>
pub fn plan_with_cost_change( &mut self, start: Point2D, goal: Point2D, changed_edges: &[EdgeChange], ) -> RoboticsResult<Path2D>
Replan after edge-cost changes without restarting from scratch.
changed_edges lists cells whose traversal cost has changed. The
planner updates only the affected vertices and runs
ComputeShortestPath to convergence.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for LPAStarPlanner
impl RefUnwindSafe for LPAStarPlanner
impl Send for LPAStarPlanner
impl Sync for LPAStarPlanner
impl Unpin for LPAStarPlanner
impl UnsafeUnpin for LPAStarPlanner
impl UnwindSafe for LPAStarPlanner
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.