pub enum CuAnyPlanner<const N: usize, const M: usize = N> {
RrtConnect(Box<CuJointRrtConnect<N, M>>),
RrtStar(Box<CuJointRrtStar<N, M>>),
Prm(Box<CuJointPrm<N, M>>),
AStar(Box<CuJointAStar<N, M>>),
Stomp(Box<CuJointStomp<N, M>>),
PathOptimizer(Box<CuJointPathOptimizer<N, M>>),
Direct(Box<CuJointDirect<N, M>>),
}Expand description
Any Repose joint planner with default parameters, chosen at runtime.
Variants§
RrtConnect(Box<CuJointRrtConnect<N, M>>)
Bidirectional RRT, feasibility-first (rrt_connect).
RrtStar(Box<CuJointRrtStar<N, M>>)
Asymptotically optimal RRT* with rewiring and shortcutting (rrt_star).
Prm(Box<CuJointPrm<N, M>>)
Probabilistic roadmap (prm).
AStar(Box<CuJointAStar<N, M>>)
A* on a joint-space lattice (a_star).
Stomp(Box<CuJointStomp<N, M>>)
Stochastic trajectory optimization (stomp).
PathOptimizer(Box<CuJointPathOptimizer<N, M>>)
Gradient path optimizer, CHOMP-style (path_optimizer).
Direct(Box<CuJointDirect<N, M>>)
Straight joint line, collision-checked (direct).
Implementations§
Source§impl<const N: usize, const M: usize> CuAnyPlanner<N, M>
impl<const N: usize, const M: usize> CuAnyPlanner<N, M>
Sourcepub fn choice(&self) -> CuPlannerChoice
pub fn choice(&self) -> CuPlannerChoice
Which planner this is.
Trait Implementations§
Source§impl<const N: usize, const M: usize> CuJointPlanner<N, M> for CuAnyPlanner<N, M>
impl<const N: usize, const M: usize> CuJointPlanner<N, M> for CuAnyPlanner<N, M>
Source§const KIND: CuPlannerKind = CuPlannerKind::Sampling
const KIND: CuPlannerKind = CuPlannerKind::Sampling
Varies with the choice; reported as sampling.
Source§type Params = CuPlannerChoice
type Params = CuPlannerChoice
The planner to run, by name.
Source§fn new(
chain: CuKinematicChain<N>,
collision_model: CuRobotCollisionModel<N, M>,
params: CuPlannerChoice,
) -> CuResult<Self>
fn new( chain: CuKinematicChain<N>, collision_model: CuRobotCollisionModel<N, M>, params: CuPlannerChoice, ) -> CuResult<Self>
Builds the planner for explicit robot models, validating
params.Source§fn begin(
&mut self,
request: &CuJointPlanRequest<N>,
seed: u64,
) -> CuResult<CuPlanStatus>
fn begin( &mut self, request: &CuJointPlanRequest<N>, seed: u64, ) -> CuResult<CuPlanStatus>
Starts a new job for
request, discarding the previous one.Source§fn step(&mut self, budget: u32) -> CuResult<CuPlanStatus>
fn step(&mut self, budget: u32) -> CuResult<CuPlanStatus>
Runs one bounded quantum of at most
budget work units.Source§fn write_best(&self, out: &mut CuJointPlanPath<N>) -> CuPlanStatus
fn write_best(&self, out: &mut CuJointPlanPath<N>) -> CuPlanStatus
Writes the best path so far into
out (waypoints, length, cost,
effort, scene revision, exclusions) and returns the job status. out
holds no waypoints unless the status has a path.Source§const DEFAULT_BUDGETS: (u32, u32) = _
const DEFAULT_BUDGETS: (u32, u32) = _
Default
(base_budget, refine_budget) work units of
CuJointPlannerTask when the node config leaves them out.Auto Trait Implementations§
impl<const N: usize, const M: usize> Freeze for CuAnyPlanner<N, M>
impl<const N: usize, const M: usize> RefUnwindSafe for CuAnyPlanner<N, M>
impl<const N: usize, const M: usize> Send for CuAnyPlanner<N, M>
impl<const N: usize, const M: usize> Sync for CuAnyPlanner<N, M>
impl<const N: usize, const M: usize> Unpin for CuAnyPlanner<N, M>
impl<const N: usize, const M: usize> UnsafeUnpin for CuAnyPlanner<N, M>
impl<const N: usize, const M: usize> UnwindSafe for CuAnyPlanner<N, M>
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<T> GetTypeRegistration for T
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