pub struct CuSceneValidity<const N: usize, const M: usize = N> { /* private fields */ }Expand description
Collision queries against one captured planning-scene snapshot.
Every query checks the robot against itself, the scene obstacles, and the scene’s attached shapes in one pass, honouring the captured stable-ID exclusions.
Implementations§
Source§impl<const N: usize, const M: usize> CuSceneValidity<N, M>
impl<const N: usize, const M: usize> CuSceneValidity<N, M>
Sourcepub fn new(
chain: CuKinematicChain<N>,
model: CuRobotCollisionModel<N, M>,
resolution: CuJointResolution,
) -> Self
pub fn new( chain: CuKinematicChain<N>, model: CuRobotCollisionModel<N, M>, resolution: CuJointResolution, ) -> Self
Creates a checker with an empty scene; resolution sets the segment
sampling step.
Sourcepub const fn chain(&self) -> &CuKinematicChain<N>
pub const fn chain(&self) -> &CuKinematicChain<N>
The kinematic chain the checker evaluates.
Sourcepub const fn resolution(&self) -> CuJointResolution
pub const fn resolution(&self) -> CuJointResolution
Segment sampling resolution.
Sourcepub const fn scene_revision(&self) -> CuSceneRevision
pub const fn scene_revision(&self) -> CuSceneRevision
Revision of the captured scene.
Sourcepub const fn exclusions(&self) -> &CuSceneExclusions<MAX_EXCLUSIONS>
pub const fn exclusions(&self) -> &CuSceneExclusions<MAX_EXCLUSIONS>
Exclusions captured with the scene.
Sourcepub fn capture(
&mut self,
scene: &CuPlanningScene<MAX_OBSTACLES, MAX_ATTACHED_SHAPES>,
exclusions: &CuSceneExclusions<MAX_EXCLUSIONS>,
) -> bool
pub fn capture( &mut self, scene: &CuPlanningScene<MAX_OBSTACLES, MAX_ATTACHED_SHAPES>, exclusions: &CuSceneExclusions<MAX_EXCLUSIONS>, ) -> bool
Captures a scene snapshot for the next job. Returns false (and
treats every configuration as blocked) when the resolution, the
scene’s attached shapes, or the stable-ID exclusions are invalid for
this robot.
Sourcepub fn is_configuration_free(&self, q: &[CuJointPosition; N]) -> bool
pub fn is_configuration_free(&self, q: &[CuJointPosition; N]) -> bool
true when q is within joint limits and free of self, environment,
and attached-object collisions.
Sourcepub fn is_segment_free(
&self,
a: &[CuJointPosition; N],
b: &[CuJointPosition; N],
) -> bool
pub fn is_segment_free( &self, a: &[CuJointPosition; N], b: &[CuJointPosition; N], ) -> bool
true when the joint-space line from a to b is free at the
configured resolution (discrete sampling, not swept volumes).
Trait Implementations§
Auto Trait Implementations§
impl<const N: usize, const M: usize> Freeze for CuSceneValidity<N, M>
impl<const N: usize, const M: usize> RefUnwindSafe for CuSceneValidity<N, M>
impl<const N: usize, const M: usize> Send for CuSceneValidity<N, M>
impl<const N: usize, const M: usize> Sync for CuSceneValidity<N, M>
impl<const N: usize, const M: usize> Unpin for CuSceneValidity<N, M>
impl<const N: usize, const M: usize> UnsafeUnpin for CuSceneValidity<N, M>
impl<const N: usize, const M: usize> UnwindSafe for CuSceneValidity<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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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