uav.modes.VerticalTakeoffMode#

Classes#

TakeoffMethod

Enum where members are also (and must be) strings

VerticalTakeoffParams

VerticalTakeoffMode

Vertical takeoff for any UAV airframe (multicopter or VTOL).

Module Contents#

class TakeoffMethod#

Bases: enum.StrEnum

Enum where members are also (and must be) strings

OFFBOARD = 'OFFBOARD'#
PX4_AUTO = 'PX4_AUTO'#
class VerticalTakeoffParams#

Bases: vehicle_common.mode_loader.ParamsBase

takeoff_height: float = 5.0#
takeoff_method: str = 'PX4_AUTO'#
class VerticalTakeoffMode#

Bases: vehicle_common.mode.Mode

Vertical takeoff for any UAV airframe (multicopter or VTOL).

transition_labels = ('complete',)#
initialize(node: rclpy.node.Node, vehicle: uav.vehicles.UAV.UAV, params: VerticalTakeoffParams) None#
on_update(time_delta: float) None#
px4_auto_tko() None#

Uses PX4 AUTO_TAKEOFF mode to takeoff. Sends a single takeoff commands, then listens for a PX4 transition to AUTO_LOITER before transitioning to px4 offboard mode and entering the next mode

offboard_tko() None#

Takes off by manually sending in trajectory setpoints in offboard mode. Does not use PX4’s auto takeoff mode at all. The requirements are that trajectory setpoints and offboard heartbeats should be publishing > 2Hz for at least 1 seconds before a transition to offboard mode should be sent.

We publish the trajectory setpoint at all times, and if not armed or offboard mode, we send those commands based off of self.arm_freq_s and self.offboard_cmd_freq_s

check_status() str#