pub struct MotorQuadParams {
pub gravity: f64,
pub drag: f64,
pub max_rotor_thrust: f64,
pub torque_gain: f64,
pub yaw_gain: f64,
pub rate_damping: f64,
pub max_speed: f64,
}Expand description
Motor-level quadrotor parameters and actuation limits.
Fields§
§gravity: f64Downward gravitational acceleration [m/s^2].
drag: f64Linear aerodynamic drag coefficient [1/s].
max_rotor_thrust: f64Maximum thrust per rotor [m/s^2] (mass-normalized).
torque_gain: f64Roll/pitch angular-acceleration gain per unit rotor-thrust difference.
yaw_gain: f64Yaw angular-acceleration gain per unit rotor-thrust difference.
rate_damping: f64Aerodynamic body-rate damping [1/s].
max_speed: f64Maximum speed [m/s].
Implementations§
Source§impl MotorQuadParams
impl MotorQuadParams
pub fn new( gravity: f64, drag: f64, max_rotor_thrust: f64, torque_gain: f64, yaw_gain: f64, rate_damping: f64, max_speed: f64, ) -> RoboticsResult<Self>
Sourcepub fn saturate(self, command: MotorCommand) -> MotorCommand
pub fn saturate(self, command: MotorCommand) -> MotorCommand
Clamp each rotor thrust to [0, max_rotor_thrust].
Sourcepub fn is_saturated(self, command: MotorCommand) -> bool
pub fn is_saturated(self, command: MotorCommand) -> bool
Whether any rotor of the command is at (or above) its thrust limit.
Sourcepub fn step(
self,
state: MotorQuadState,
command: MotorCommand,
dt: f64,
) -> MotorQuadState
pub fn step( self, state: MotorQuadState, command: MotorCommand, dt: f64, ) -> MotorQuadState
Advance the quadrotor one step under the rotor command.
Trait Implementations§
Source§impl Clone for MotorQuadParams
impl Clone for MotorQuadParams
Source§fn clone(&self) -> MotorQuadParams
fn clone(&self) -> MotorQuadParams
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for MotorQuadParams
impl Debug for MotorQuadParams
Source§impl Default for MotorQuadParams
impl Default for MotorQuadParams
Source§impl PartialEq for MotorQuadParams
impl PartialEq for MotorQuadParams
Source§fn eq(&self, other: &MotorQuadParams) -> bool
fn eq(&self, other: &MotorQuadParams) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Copy for MotorQuadParams
impl StructuralPartialEq for MotorQuadParams
Auto Trait Implementations§
impl Freeze for MotorQuadParams
impl RefUnwindSafe for MotorQuadParams
impl Send for MotorQuadParams
impl Sync for MotorQuadParams
impl Unpin for MotorQuadParams
impl UnsafeUnpin for MotorQuadParams
impl UnwindSafe for MotorQuadParams
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.