Struct PartialScan

Source
pub struct PartialScan {
    pub radar_speed: u16,
    pub start_angle: f32,
    pub data: [Range; 12],
    pub end_angle: f32,
    pub stamp: u16,
    pub crc: u8,
}
Expand description

A single scan packet from the Lidar.

All angles are with clockwise respect to the arrow on the top of the unit.

Fields§

§radar_speed: u16

The rotational speed of the unit, in degrees per second.

§start_angle: f32

The starting angle of this scan, in degrees.

§data: [Range; 12]

The measured ranges.

The first range angle is at [start_angle].

§end_angle: f32

The ending angle of this scan, in degrees.

§stamp: u16

The timestamp of this scan, in ms. This will roll over at 30000.

§crc: u8

The CRC check from the lidar.

Implementations§

Source§

impl PartialScan

Source

pub fn get_step(&self) -> f32

Gets the angular step per range reading.

Source

pub fn get_angle_of_reading(&self, reading_num: u16) -> f32

Calculates the angle the nth reading was at in this packet. The reading number in this case is 0 indexed.

Source

pub fn get_range_in_polar(&self, reading_num: u16) -> (f32, f32)

Translates the range from polar coordinates in terms of the LiDAR to polar coordinates in the standard format. In practice, this is rotating all points by 90 degrees clockwise, then reflecting. All angles are still in degrees.

Trait Implementations§

Source§

impl Clone for PartialScan

Source§

fn clone(&self) -> PartialScan

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

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

Performs copy-assignment from source. Read more
Source§

impl Debug for PartialScan

Source§

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

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

impl Default for PartialScan

Source§

fn default() -> PartialScan

Returns the “default value” for a type. Read more
Source§

impl Copy for PartialScan

Auto Trait Implementations§

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, 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.