PX4 Firmware
PX4 Autopilot Software http://px4.io
Loiter Class Reference

#include <loiter.h>

Inheritance diagram for Loiter:
Collaboration diagram for Loiter:

Public Member Functions

 Loiter (Navigator *navigator)
 
 ~Loiter ()=default
 
void on_inactive () override
 This function is called while the mode is inactive. More...
 
void on_activation () override
 This function is called one time when mode becomes active, pos_sp_triplet must be initialized here. More...
 
void on_active () override
 This function is called while the mode is active. More...
 
- Public Member Functions inherited from MissionBlock
 MissionBlock (Navigator *navigator)
 Constructor. More...
 
virtual ~MissionBlock ()=default
 
 MissionBlock (const MissionBlock &)=delete
 
MissionBlockoperator= (const MissionBlock &)=delete
 
- Public Member Functions inherited from NavigatorMode
 NavigatorMode (Navigator *navigator)
 
virtual ~NavigatorMode ()=default
 
 NavigatorMode (const NavigatorMode &)=delete
 
NavigatorMode operator= (const NavigatorMode &)=delete
 
void run (bool active)
 
virtual void on_inactivation ()
 This function is called one time when mode becomes inactive. More...
 

Private Member Functions

void reposition ()
 Use the stored reposition location of the navigator to move to a new location. More...
 
void set_loiter_position ()
 Set the position to hold based on the current local position. More...
 

Private Attributes

bool _loiter_pos_set {false}
 

Additional Inherited Members

- Static Public Member Functions inherited from MissionBlock
static bool item_contains_position (const mission_item_s &item)
 
- Protected Member Functions inherited from MissionBlock
bool is_mission_item_reached ()
 Check if mission item has been reached. More...
 
void reset_mission_item_reached ()
 Reset all reached flags. More...
 
bool mission_item_to_position_setpoint (const mission_item_s &item, position_setpoint_s *sp)
 Convert a mission item to a position setpoint. More...
 
void set_loiter_item (struct mission_item_s *item, float min_clearance=-1.0f)
 Set a loiter mission item, if possible reuse the position setpoint, otherwise take the current position. More...
 
void set_takeoff_item (struct mission_item_s *item, float abs_altitude, float min_pitch=0.0f)
 Set a takeoff mission item. More...
 
void set_land_item (struct mission_item_s *item, bool at_current_location)
 Set a land mission item. More...
 
void set_idle_item (struct mission_item_s *item)
 Set idle mission item. More...
 
void set_vtol_transition_item (struct mission_item_s *item, const uint8_t new_mode)
 Set vtol transition item. More...
 
void mission_apply_limitation (mission_item_s &item)
 General function used to adjust the mission item based on vehicle specific limitations. More...
 
void issue_command (const mission_item_s &item)
 
float get_time_inside (const mission_item_s &item) const
 
float get_absolute_altitude_for_item (const mission_item_s &mission_item) const
 
- Protected Attributes inherited from MissionBlock
mission_item_s _mission_item {}
 
bool _waypoint_position_reached {false}
 
bool _waypoint_yaw_reached {false}
 
bool _waypoint_position_reached_previously {false}
 
hrt_abstime _time_first_inside_orbit {0}
 
hrt_abstime _action_start {0}
 
hrt_abstime _time_wp_reached {0}
 
uORB::Publication< actuator_controls_s_actuator_pub {ORB_ID(actuator_controls_2)}
 
- Protected Attributes inherited from NavigatorMode
Navigator_navigator {nullptr}
 

Detailed Description

Definition at line 48 of file loiter.h.

Constructor & Destructor Documentation

◆ Loiter()

Loiter::Loiter ( Navigator navigator)

Definition at line 45 of file loiter.cpp.

◆ ~Loiter()

Loiter::~Loiter ( )
default

Member Function Documentation

◆ on_activation()

void Loiter::on_activation ( )
overridevirtual

This function is called one time when mode becomes active, pos_sp_triplet must be initialized here.

Reimplemented from NavigatorMode.

Definition at line 58 of file loiter.cpp.

References NavigatorMode::_navigator, position_setpoint_triplet_s::current, Navigator::get_reposition_triplet(), reposition(), set_loiter_position(), and position_setpoint_s::valid.

Here is the call graph for this function:

◆ on_active()

void Loiter::on_active ( )
overridevirtual

This function is called while the mode is active.

Reimplemented from NavigatorMode.

Definition at line 69 of file loiter.cpp.

References _loiter_pos_set, NavigatorMode::_navigator, vehicle_status_s::arming_state, position_setpoint_triplet_s::current, Navigator::get_reposition_triplet(), Navigator::get_vstatus(), reposition(), and position_setpoint_s::valid.

Here is the call graph for this function:

◆ on_inactive()

void Loiter::on_inactive ( )
overridevirtual

This function is called while the mode is inactive.

Reimplemented from NavigatorMode.

Definition at line 52 of file loiter.cpp.

References _loiter_pos_set.

◆ reposition()

void Loiter::reposition ( )
private

◆ set_loiter_position()

void Loiter::set_loiter_position ( )
private

Member Data Documentation

◆ _loiter_pos_set

bool Loiter::_loiter_pos_set {false}
private

Definition at line 70 of file loiter.h.

Referenced by on_active(), on_inactive(), and set_loiter_position().


The documentation for this class was generated from the following files: