Drone. Adapters. Crazyflie. Units
(ex_drone v0.3.0)
View Source
Unit conversions at the Crazyflie adapter boundary.
Public Drone API distances are centimeters and angles are degrees.
Crazyflie high-level commander packets use meters and radians.
Examples
0.5 = Drone.Adapters.Crazyflie.Units.cm_to_m(50)
50 = Drone.Adapters.Crazyflie.Units.m_to_cm(0.5)
Summary
Functions
Converts centimeters to meters.
Converts degrees to radians.
Converts meters to centimeters (truncated toward zero).
Default horizontal move duration in seconds for a distance in cm.
Converts radians to degrees (truncated toward zero).
Functions
Converts centimeters to meters.
Parameters
cm(number()) — distance in centimeters
Returns
float() meters.
Examples
1.0 = Drone.Adapters.Crazyflie.Units.cm_to_m(100)
Converts degrees to radians.
Parameters
deg(number()) — angle in degrees
Returns
float() radians.
Examples
approx_pi = Drone.Adapters.Crazyflie.Units.deg_to_rad(180)
true = abs(approx_pi - :math.pi()) < 1.0e-9
Converts meters to centimeters (truncated toward zero).
Parameters
m(number()) — distance in meters
Returns
integer() centimeters.
Examples
50 = Drone.Adapters.Crazyflie.Units.m_to_cm(0.509)
@spec move_duration_s(pos_integer(), pos_integer()) :: float()
Default horizontal move duration in seconds for a distance in cm.
Uses distance_cm / speed_cm_s, floored at 0.5 seconds so short hops
still get a usable commander duration.
Parameters
distance_cm(pos_integer()) — commanded distance in centimetersspeed_cm_s(pos_integer()) — speed in centimeters per second
Returns
float() duration in seconds (at least 0.5).
Examples
2.0 = Drone.Adapters.Crazyflie.Units.move_duration_s(100, 50)
0.5 = Drone.Adapters.Crazyflie.Units.move_duration_s(20, 100)
Converts radians to degrees (truncated toward zero).
Parameters
rad(number()) — angle in radians
Returns
integer() degrees.
Examples
90 = Drone.Adapters.Crazyflie.Units.rad_to_deg(:math.pi() / 2)