TrackingWheel

Struct TrackingWheel 

Source
pub struct TrackingWheel<T: RotarySensor> {
    pub sensor: T,
    pub wheel_diameter: f64,
    pub offset: f64,
    pub gearing: Option<f64>,
}
Expand description

A wheel attached to a rotary sensor for position tracking.

Fields§

§sensor: T

Rotary sensor for measuring the wheel’s travel.

§wheel_diameter: f64

Diameter of the wheel.

§offset: f64

Signed offset from the drivetrain’s center of rotation.

Negative offset implies that the wheel is left or behind the center of rotation.

§gearing: Option<f64>

External gearing of the wheel.

Used as a multiplier when determining wheel travel.

Implementations§

Source§

impl<T: RotarySensor> TrackingWheel<T>

Source

pub const fn new( sensor: T, wheel_diameter: f64, offset: f64, gearing: Option<f64>, ) -> Self

Creates a new tracking wheel with the given parameters.

§Parameters
  • sensor - The rotary sensor to read wheel rotation from.
  • wheel_diameter - The diameter of the wheel in linear units.
  • offset - Distance from wheel to robot’s center of rotation.
  • gearing - Optional gear ratio between sensor and wheel (use None for 1:1 if ungeared).
Source

pub fn travel(&self) -> Result<f64, T::Error>

Calculates the total linear distance traveled by this wheel.

This method uses the wheel’s diameter and gear ratio to convert sensor rotations into linear distance traveled.

§Errors

Returns an error if RotarySensor::position fails.

Trait Implementations§

Source§

impl<T: Clone + RotarySensor> Clone for TrackingWheel<T>

Source§

fn clone(&self) -> TrackingWheel<T>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<T: Debug + RotarySensor> Debug for TrackingWheel<T>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<T: PartialEq + RotarySensor> PartialEq for TrackingWheel<T>

Source§

fn eq(&self, other: &TrackingWheel<T>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T: RotarySensor> StructuralPartialEq for TrackingWheel<T>

Auto Trait Implementations§

§

impl<T> Freeze for TrackingWheel<T>
where T: Freeze,

§

impl<T> RefUnwindSafe for TrackingWheel<T>
where T: RefUnwindSafe,

§

impl<T> Send for TrackingWheel<T>
where T: Send,

§

impl<T> Sync for TrackingWheel<T>
where T: Sync,

§

impl<T> Unpin for TrackingWheel<T>
where T: Unpin,

§

impl<T> UnwindSafe for TrackingWheel<T>
where T: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.