pub struct CuJointPlannerTask<P, const N: usize, const M: usize = N> { /* private fields */ }Expand description
Anytime planning task (CuAnytimeTask) over any CuJointPlanner.
base() starts a job from the request and runs base_budget work units;
each refine() runs refine_budget more. The output only changes when
the path cost strictly improves, so the published quality is monotone.
Failures (invalid start or goal, invalid request, exhausted search,
capacity) are published as a CuJointPlanPath without waypoints whose
status names the reason, and the job aborts.
Node config: CuJointPlannerParams. The job seed comes from the task’s
rng resource; deterministic planners ignore it. Each planner has a task
alias (CuJointRrtConnectTask<N, M = N>, …), so RON names it directly.
Implementations§
Source§impl<P: CuJointPlanner<N, M>, const N: usize, const M: usize> CuJointPlannerTask<P, N, M>
impl<P: CuJointPlanner<N, M>, const N: usize, const M: usize> CuJointPlannerTask<P, N, M>
Sourcepub fn from_planner(
planner: P,
base_budget: u32,
refine_budget: u32,
base_seed: u64,
) -> CuResult<Self>
pub fn from_planner( planner: P, base_budget: u32, refine_budget: u32, base_seed: u64, ) -> CuResult<Self>
Wraps planner with explicit positive work budgets and a base seed.
Sourcepub fn from_params(
params: CuJointPlannerParams<P::Params, N, M>,
base_seed: u64,
) -> CuResult<Self>
pub fn from_params( params: CuJointPlannerParams<P::Params, N, M>, base_seed: u64, ) -> CuResult<Self>
Builds the planner from params (robot models, planner parameters,
budgets with per-planner defaults) and wraps it with base_seed.
Sourcepub const fn status(&self) -> CuPlanStatus
pub const fn status(&self) -> CuPlanStatus
Status of the current job.
Sourcepub fn debug_state(&self) -> CuJointPlannerDebugState
pub fn debug_state(&self) -> CuJointPlannerDebugState
Compact snapshot of the current job’s progress.
Trait Implementations§
Source§impl<P, const N: usize, const M: usize> CuAnytimeTask for CuJointPlannerTask<P, N, M>
impl<P, const N: usize, const M: usize> CuAnytimeTask for CuJointPlannerTask<P, N, M>
type Input<'m> = CuStampedData<CuJointPlanRequest<N>, CuMsgMetadata>
type Output<'m> = CuStampedData<CuJointPlanPath<N>, CuMsgMetadata>
Source§type Quality = Ratio
type Quality = Ratio
AnytimeStatus]: [Quality] for tasks that can
score their result, () for tasks that cannot. A quality target can only be
configured for tasks whose Quality is comparable to it, so a target on a
() task is rejected at compile time.Source§fn register_debug_state_types(registry: &mut TypeRegistry)
fn register_debug_state_types(registry: &mut TypeRegistry)
Source§fn debug_state_type_path() -> &'static str
fn debug_state_type_path() -> &'static str
Source§fn with_debug_state<R>(&self, f: impl FnOnce(&dyn Reflect) -> R) -> R
fn with_debug_state<R>(&self, f: impl FnOnce(&dyn Reflect) -> R) -> R
Source§fn new(
config: Option<&ComponentConfig>,
resources: Self::Resources<'_>,
) -> CuResult<Self>
fn new( config: Option<&ComponentConfig>, resources: Self::Resources<'_>, ) -> CuResult<Self>
Source§fn base<'i, 'o>(
&mut self,
_ctx: &CuContext,
input: &Self::Input<'i>,
output: &mut Self::Output<'o>,
) -> CuResult<AnytimeStatus<Quality>>
fn base<'i, 'o>( &mut self, _ctx: &CuContext, input: &Self::Input<'i>, output: &mut Self::Output<'o>, ) -> CuResult<AnytimeStatus<Quality>>
output. Read moreSource§fn refine<'o>(
&mut self,
_ctx: &CuContext,
output: &mut Self::Output<'o>,
) -> CuResult<AnytimeStatus<Quality>>
fn refine<'o>( &mut self, _ctx: &CuContext, output: &mut Self::Output<'o>, ) -> CuResult<AnytimeStatus<Quality>>
§fn start(&mut self, _ctx: &CuContext) -> Result<(), CuError>
fn start(&mut self, _ctx: &CuContext) -> Result<(), CuError>
§fn preprocess(&mut self, _ctx: &CuContext) -> Result<(), CuError>
fn preprocess(&mut self, _ctx: &CuContext) -> Result<(), CuError>
§fn postprocess(&mut self, _ctx: &CuContext) -> Result<(), CuError>
fn postprocess(&mut self, _ctx: &CuContext) -> Result<(), CuError>
Source§impl<P, const N: usize, const M: usize> Freezable for CuJointPlannerTask<P, N, M>
impl<P, const N: usize, const M: usize> Freezable for CuJointPlannerTask<P, N, M>
Source§impl<P, const N: usize, const M: usize> TypePath for CuJointPlannerTask<P, N, M>
impl<P, const N: usize, const M: usize> TypePath for CuJointPlannerTask<P, N, M>
fn type_path() -> &'static str
fn short_type_path() -> &'static str
fn type_ident() -> Option<&'static str>
fn crate_name() -> Option<&'static str>
fn module_path() -> Option<&'static str>
Auto Trait Implementations§
impl<P, const N: usize, const M: usize> Freeze for CuJointPlannerTask<P, N, M>where
P: Freeze,
impl<P, const N: usize, const M: usize> RefUnwindSafe for CuJointPlannerTask<P, N, M>where
P: RefUnwindSafe,
impl<P, const N: usize, const M: usize> Send for CuJointPlannerTask<P, N, M>where
P: Send,
impl<P, const N: usize, const M: usize> Sync for CuJointPlannerTask<P, N, M>where
P: Sync,
impl<P, const N: usize, const M: usize> Unpin for CuJointPlannerTask<P, N, M>where
P: Unpin,
impl<P, const N: usize, const M: usize> UnsafeUnpin for CuJointPlannerTask<P, N, M>where
P: UnsafeUnpin,
impl<P, const N: usize, const M: usize> UnwindSafe for CuJointPlannerTask<P, N, M>where
P: UnwindSafe,
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
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> ⓘ
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> ⓘ
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