Drone. Adapters. Crazyflie. Commander
(ex_drone v0.3.0)
View Source
High-level commander CRTP payload builders (port setpoint_hl).
Packet layouts follow the documented Crazyflie high-level commander
commands (TAKEOFF_2, LAND_2, STOP, GO_TO_2). Floats are little-endian.
These helpers return Drone.Adapters.Crazyflie.CRTP.packet() maps ready for
Session.send_packet/2. Public Drone distances remain centimeters; convert
with Drone.Adapters.Crazyflie.Units before calling.
Examples
packet =
Drone.Adapters.Crazyflie.Commander.takeoff_2(0.5, 2.0,
yaw: 0.0,
use_current_yaw: true
)
8 = packet.port
<<7, _rest::binary>> = packet.payload
Summary
Functions
Builds a GO_TO_2 packet.
Builds a LAND_2 packet.
Builds a STOP packet (motors off / cancel trajectory).
Builds a TAKEOFF_2 packet.
Functions
@spec go_to_2(number(), number(), number(), number(), number(), keyword()) :: Drone.Adapters.Crazyflie.CRTP.packet()
Builds a GO_TO_2 packet.
Parameters
x,y,z(number()) — position in meters (absolute or relative)yaw(number()) — yaw in radiansduration_s(number()) — maneuver duration in secondsopts(keyword()) — optional::group_mask(byte()) — default0:relative(boolean()) — treat XYZ as deltas whentrue(defaultfalse):linear(boolean()) — linear interpolation hint (defaultfalse)
Returns
Drone.Adapters.Crazyflie.CRTP.packet().
Examples
# Relative forward 0.3 m over 1 s
packet =
Drone.Adapters.Crazyflie.Commander.go_to_2(
0.0,
0.3,
0.0,
0.0,
1.0,
relative: true
)
<<12, 0, 1, 0, _rest::binary>> = packet.payload
@spec land_2(number(), number(), keyword()) :: Drone.Adapters.Crazyflie.CRTP.packet()
Builds a LAND_2 packet.
Parameters
height_m(number()) — landing height in meters (often0.0)duration_s(number()) — maneuver duration in secondsopts(keyword()) — same astakeoff_2/3(:group_mask,:yaw,:use_current_yaw)
Returns
Drone.Adapters.Crazyflie.CRTP.packet().
Examples
packet = Drone.Adapters.Crazyflie.Commander.land_2(0.0, 2.0)
<<8, 0, _rest::binary>> = packet.payload
@spec stop(keyword()) :: Drone.Adapters.Crazyflie.CRTP.packet()
Builds a STOP packet (motors off / cancel trajectory).
Parameters
opts(keyword()) — optional::group_mask(byte()) — default0
Returns
Drone.Adapters.Crazyflie.CRTP.packet() with payload <<3, group>>.
Examples
%{payload: <<3, 0>>} = Drone.Adapters.Crazyflie.Commander.stop()
@spec takeoff_2(number(), number(), keyword()) :: Drone.Adapters.Crazyflie.CRTP.packet()
Builds a TAKEOFF_2 packet.
Parameters
height_m(number()) — absolute takeoff height in metersduration_s(number()) — maneuver duration in secondsopts(keyword()) — optional::group_mask(byte()) — commander group mask (default0= all):yaw(number()) — yaw setpoint in radians (default0.0):use_current_yaw(boolean()) — keep current yaw whentrue(default)
Returns
Drone.Adapters.Crazyflie.CRTP.packet() on port :setpoint_hl, channel 0.
Examples
packet = Drone.Adapters.Crazyflie.Commander.takeoff_2(0.4, 1.5)
<<7, 0, _height::little-float-32, _rest::binary>> = packet.payload