APM:Copter
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
ModeAuto Class Reference

#include <mode.h>

Inheritance diagram for ModeAuto:
[legend]
Collaboration diagram for ModeAuto:
[legend]

Public Member Functions

bool init (bool ignore_checks) override
 
void run () override
 
bool is_autopilot () const override
 
bool requires_GPS () const override
 
bool has_manual_throttle () const override
 
bool allows_arming (bool from_gcs) const override
 
bool in_guided_mode () const
 
AutoMode mode () const
 
bool loiter_start ()
 
void rtl_start ()
 
void takeoff_start (const Location &dest_loc)
 
void wp_start (const Vector3f &destination)
 
void wp_start (const Location_Class &dest_loc)
 
void land_start ()
 
void land_start (const Vector3f &destination)
 
void circle_movetoedge_start (const Location_Class &circle_center, float radius_m)
 
void circle_start ()
 
void spline_start (const Vector3f &destination, bool stopped_at_start, AC_WPNav::spline_segment_end_type seg_end_type, const Vector3f &next_spline_destination)
 
void spline_start (const Location_Class &destination, bool stopped_at_start, AC_WPNav::spline_segment_end_type seg_end_type, const Location_Class &next_destination)
 
void nav_guided_start ()
 
bool landing_gear_should_be_deployed () const override
 
void payload_place_start ()
 
bool start_command (const AP_Mission::Mission_Command &cmd)
 
bool verify_command_callback (const AP_Mission::Mission_Command &cmd)
 
void exit_mission ()
 
bool do_guided (const AP_Mission::Mission_Command &cmd)
 

Protected Member Functions

const char * name () const override
 
const char * name4 () const override
 
uint32_t wp_distance () const override
 
int32_t wp_bearing () const override
 
bool get_wp (Location_Class &loc) override
 
void run_autopilot () override
 
- Protected Member Functions inherited from Mode
void update_navigation ()
 
void get_pilot_desired_lean_angles (float &roll_out, float &pitch_out, float angle_max, float angle_limit) const
 
bool takeoff_triggered (float target_climb_rate) const
 
void zero_throttle_and_relax_ac ()
 
int32_t get_alt_above_ground (void)
 
void land_run_horizontal_control ()
 
void land_run_vertical_control (bool pause_descent=false)
 
float get_surface_tracking_climb_rate (int16_t target_rate, float current_alt_target, float dt)
 
float get_pilot_desired_yaw_rate (int16_t stick_angle)
 
float get_pilot_desired_climb_rate (float throttle_control)
 
float get_pilot_desired_throttle (int16_t throttle_control, float thr_mid=0.0f)
 
float get_non_takeoff_throttle (void)
 
void update_simple_mode (void)
 
bool set_mode (control_mode_t mode, mode_reason_t reason)
 
void set_land_complete (bool b)
 
GCS_Coptergcs ()
 
void Log_Write_Event (uint8_t id)
 
void set_throttle_takeoff (void)
 
void takeoff_timer_start (float alt_cm)
 
void takeoff_stop (void)
 
void takeoff_get_climb_rates (float &pilot_climb_rate, float &takeoff_climb_rate)
 
float get_avoidance_adjusted_climbrate (float target_rate)
 
uint16_t get_pilot_speed_dn (void)
 

Private Member Functions

bool verify_command (const AP_Mission::Mission_Command &cmd)
 
void takeoff_run ()
 
void wp_run ()
 
void spline_run ()
 
void land_run ()
 
void rtl_run ()
 
void circle_run ()
 
void nav_guided_run ()
 
void loiter_run ()
 
void payload_place_start (const Vector3f &destination)
 
void payload_place_run ()
 
bool payload_place_run_should_run ()
 
void payload_place_run_loiter ()
 
void payload_place_run_descend ()
 
void payload_place_run_release ()
 
Location_Class terrain_adjusted_location (const AP_Mission::Mission_Command &cmd) const
 
void do_takeoff (const AP_Mission::Mission_Command &cmd)
 
void do_nav_wp (const AP_Mission::Mission_Command &cmd)
 
void do_land (const AP_Mission::Mission_Command &cmd)
 
void do_loiter_unlimited (const AP_Mission::Mission_Command &cmd)
 
void do_circle (const AP_Mission::Mission_Command &cmd)
 
void do_loiter_time (const AP_Mission::Mission_Command &cmd)
 
void do_spline_wp (const AP_Mission::Mission_Command &cmd)
 
void do_nav_guided_enable (const AP_Mission::Mission_Command &cmd)
 
void do_guided_limits (const AP_Mission::Mission_Command &cmd)
 
void do_nav_delay (const AP_Mission::Mission_Command &cmd)
 
void do_wait_delay (const AP_Mission::Mission_Command &cmd)
 
void do_within_distance (const AP_Mission::Mission_Command &cmd)
 
void do_yaw (const AP_Mission::Mission_Command &cmd)
 
void do_change_speed (const AP_Mission::Mission_Command &cmd)
 
void do_set_home (const AP_Mission::Mission_Command &cmd)
 
void do_roi (const AP_Mission::Mission_Command &cmd)
 
void do_mount_control (const AP_Mission::Mission_Command &cmd)
 
void do_digicam_configure (const AP_Mission::Mission_Command &cmd)
 
void do_digicam_control (const AP_Mission::Mission_Command &cmd)
 
void do_parachute (const AP_Mission::Mission_Command &cmd)
 
void do_gripper (const AP_Mission::Mission_Command &cmd)
 
void do_winch (const AP_Mission::Mission_Command &cmd)
 
void do_payload_place (const AP_Mission::Mission_Command &cmd)
 
void do_RTL (void)
 
bool verify_takeoff ()
 
bool verify_land ()
 
bool verify_payload_place ()
 
bool verify_loiter_unlimited ()
 
bool verify_loiter_time ()
 
bool verify_RTL ()
 
bool verify_wait_delay ()
 
bool verify_within_distance ()
 
bool verify_yaw ()
 
bool verify_nav_wp (const AP_Mission::Mission_Command &cmd)
 
bool verify_circle (const AP_Mission::Mission_Command &cmd)
 
bool verify_spline_wp (const AP_Mission::Mission_Command &cmd)
 
bool verify_nav_guided_enable (const AP_Mission::Mission_Command &cmd)
 
bool verify_nav_delay (const AP_Mission::Mission_Command &cmd)
 
void auto_spline_start (const Location_Class &destination, bool stopped_at_start, AC_WPNav::spline_segment_end_type seg_end_type, const Location_Class &next_destination)
 

Private Attributes

AutoMode _mode = Auto_TakeOff
 
uint16_t loiter_time_max
 
uint32_t loiter_time
 
int32_t nav_delay_time_max
 
uint32_t nav_delay_time_start
 
int32_t condition_value
 
uint32_t condition_start
 
LandStateType land_state = LandStateType_FlyToLocation
 
struct {
   PayloadPlaceStateType   state = PayloadPlaceStateType_Calibrating_Hover_Start
 
   uint32_t   hover_start_timestamp
 
   float   hover_throttle_level
 
   uint32_t   descend_start_timestamp
 
   uint32_t   place_start_timestamp
 
   float   descend_throttle_level
 
   float   descend_start_altitude
 
   float   descend_max
 
nav_payload_place
 

Additional Inherited Members

- Static Public Attributes inherited from Mode
static AutoYaw auto_yaw
 
- Protected Attributes inherited from Mode
Parametersg
 
ParametersG2g2
 
AC_WPNav *& wp_nav
 
AC_Loiter *& loiter_nav
 
AC_PosControl *& pos_control
 
AP_InertialNavinertial_nav
 
AP_AHRSahrs
 
AC_AttitudeControl_t *& attitude_control
 
MOTOR_CLASS *& motors
 
RC_Channel *& channel_roll
 
RC_Channel *& channel_pitch
 
RC_Channel *& channel_throttle
 
RC_Channel *& channel_yaw
 
float & G_Dt
 
ap_t & ap
 
takeoff_state_t & takeoff_state
 
float & ekfGndSpdLimit
 
float & ekfNavVelGainScaler
 
heli_flags_t & heli_flags
 

Detailed Description

Definition at line 233 of file mode.h.

Member Function Documentation

◆ allows_arming()

bool ModeAuto::allows_arming ( bool  from_gcs) const
inlineoverridevirtual

Implements Mode.

Definition at line 245 of file mode.h.

◆ auto_spline_start()

void ModeAuto::auto_spline_start ( const Location_Class destination,
bool  stopped_at_start,
AC_WPNav::spline_segment_end_type  seg_end_type,
const Location_Class next_destination 
)
private

◆ circle_movetoedge_start()

void ModeAuto::circle_movetoedge_start ( const Location_Class circle_center,
float  radius_m 
)

◆ circle_run()

void ModeAuto::circle_run ( )
private

◆ circle_start()

void ModeAuto::circle_start ( )

◆ do_change_speed()

void ModeAuto::do_change_speed ( const AP_Mission::Mission_Command cmd)
private

◆ do_circle()

void ModeAuto::do_circle ( const AP_Mission::Mission_Command cmd)
private

◆ do_digicam_configure()

void ModeAuto::do_digicam_configure ( const AP_Mission::Mission_Command cmd)
private

◆ do_digicam_control()

void ModeAuto::do_digicam_control ( const AP_Mission::Mission_Command cmd)
private

◆ do_gripper()

void ModeAuto::do_gripper ( const AP_Mission::Mission_Command cmd)
private

◆ do_guided()

bool ModeAuto::do_guided ( const AP_Mission::Mission_Command cmd)

◆ do_guided_limits()

void ModeAuto::do_guided_limits ( const AP_Mission::Mission_Command cmd)
private

◆ do_land()

void ModeAuto::do_land ( const AP_Mission::Mission_Command cmd)
private

◆ do_loiter_time()

void ModeAuto::do_loiter_time ( const AP_Mission::Mission_Command cmd)
private

◆ do_loiter_unlimited()

void ModeAuto::do_loiter_unlimited ( const AP_Mission::Mission_Command cmd)
private

◆ do_mount_control()

void ModeAuto::do_mount_control ( const AP_Mission::Mission_Command cmd)
private

◆ do_nav_delay()

void ModeAuto::do_nav_delay ( const AP_Mission::Mission_Command cmd)
private

◆ do_nav_guided_enable()

void ModeAuto::do_nav_guided_enable ( const AP_Mission::Mission_Command cmd)
private

◆ do_nav_wp()

void ModeAuto::do_nav_wp ( const AP_Mission::Mission_Command cmd)
private

◆ do_parachute()

void ModeAuto::do_parachute ( const AP_Mission::Mission_Command cmd)
private

◆ do_payload_place()

void ModeAuto::do_payload_place ( const AP_Mission::Mission_Command cmd)
private

◆ do_roi()

void ModeAuto::do_roi ( const AP_Mission::Mission_Command cmd)
private

◆ do_RTL()

void ModeAuto::do_RTL ( void  )
private

◆ do_set_home()

void ModeAuto::do_set_home ( const AP_Mission::Mission_Command cmd)
private

◆ do_spline_wp()

void ModeAuto::do_spline_wp ( const AP_Mission::Mission_Command cmd)
private

◆ do_takeoff()

void ModeAuto::do_takeoff ( const AP_Mission::Mission_Command cmd)
private

◆ do_wait_delay()

void ModeAuto::do_wait_delay ( const AP_Mission::Mission_Command cmd)
private

◆ do_winch()

void ModeAuto::do_winch ( const AP_Mission::Mission_Command cmd)
private

◆ do_within_distance()

void ModeAuto::do_within_distance ( const AP_Mission::Mission_Command cmd)
private

◆ do_yaw()

void ModeAuto::do_yaw ( const AP_Mission::Mission_Command cmd)
private

◆ exit_mission()

void ModeAuto::exit_mission ( )

◆ get_wp()

bool ModeAuto::get_wp ( Location_Class loc)
overrideprotectedvirtual

Reimplemented from Mode.

◆ has_manual_throttle()

bool ModeAuto::has_manual_throttle ( ) const
inlineoverridevirtual

Implements Mode.

Definition at line 244 of file mode.h.

◆ in_guided_mode()

bool ModeAuto::in_guided_mode ( ) const
inlinevirtual

Reimplemented from Mode.

Definition at line 246 of file mode.h.

Here is the call graph for this function:

◆ init()

bool ModeAuto::init ( bool  ignore_checks)
overridevirtual

Implements Mode.

◆ is_autopilot()

bool ModeAuto::is_autopilot ( ) const
inlineoverridevirtual

Reimplemented from Mode.

Definition at line 242 of file mode.h.

◆ land_run()

void ModeAuto::land_run ( )
private

◆ land_start() [1/2]

void ModeAuto::land_start ( )

◆ land_start() [2/2]

void ModeAuto::land_start ( const Vector3f destination)

◆ landing_gear_should_be_deployed()

bool ModeAuto::landing_gear_should_be_deployed ( ) const
overridevirtual

Reimplemented from Mode.

◆ loiter_run()

void ModeAuto::loiter_run ( )
private

◆ loiter_start()

bool ModeAuto::loiter_start ( )

◆ mode()

AutoMode ModeAuto::mode ( ) const
inline

Definition at line 249 of file mode.h.

Here is the call graph for this function:

◆ name()

const char* ModeAuto::name ( ) const
inlineoverrideprotectedvirtual

Implements Mode.

Definition at line 278 of file mode.h.

◆ name4()

const char* ModeAuto::name4 ( ) const
inlineoverrideprotectedvirtual

Implements Mode.

Definition at line 279 of file mode.h.

Here is the call graph for this function:

◆ nav_guided_run()

void ModeAuto::nav_guided_run ( )
private

◆ nav_guided_start()

void ModeAuto::nav_guided_start ( )

◆ payload_place_run()

void ModeAuto::payload_place_run ( )
private

◆ payload_place_run_descend()

void ModeAuto::payload_place_run_descend ( )
private

◆ payload_place_run_loiter()

void ModeAuto::payload_place_run_loiter ( )
private

◆ payload_place_run_release()

void ModeAuto::payload_place_run_release ( )
private

◆ payload_place_run_should_run()

bool ModeAuto::payload_place_run_should_run ( )
private

◆ payload_place_start() [1/2]

void ModeAuto::payload_place_start ( )

◆ payload_place_start() [2/2]

void ModeAuto::payload_place_start ( const Vector3f destination)
private

◆ requires_GPS()

bool ModeAuto::requires_GPS ( ) const
inlineoverridevirtual

Implements Mode.

Definition at line 243 of file mode.h.

◆ rtl_run()

void ModeAuto::rtl_run ( )
private

◆ rtl_start()

void ModeAuto::rtl_start ( )

◆ run()

void ModeAuto::run ( )
overridevirtual

Implements Mode.

◆ run_autopilot()

void ModeAuto::run_autopilot ( )
overrideprotectedvirtual

Reimplemented from Mode.

◆ spline_run()

void ModeAuto::spline_run ( )
private

◆ spline_start() [1/2]

void ModeAuto::spline_start ( const Vector3f destination,
bool  stopped_at_start,
AC_WPNav::spline_segment_end_type  seg_end_type,
const Vector3f next_spline_destination 
)

◆ spline_start() [2/2]

void ModeAuto::spline_start ( const Location_Class destination,
bool  stopped_at_start,
AC_WPNav::spline_segment_end_type  seg_end_type,
const Location_Class next_destination 
)

◆ start_command()

bool ModeAuto::start_command ( const AP_Mission::Mission_Command cmd)

◆ takeoff_run()

void ModeAuto::takeoff_run ( )
private

◆ takeoff_start()

void ModeAuto::takeoff_start ( const Location dest_loc)

◆ terrain_adjusted_location()

Location_Class ModeAuto::terrain_adjusted_location ( const AP_Mission::Mission_Command cmd) const
private

◆ verify_circle()

bool ModeAuto::verify_circle ( const AP_Mission::Mission_Command cmd)
private

◆ verify_command()

bool ModeAuto::verify_command ( const AP_Mission::Mission_Command cmd)
private

◆ verify_command_callback()

bool ModeAuto::verify_command_callback ( const AP_Mission::Mission_Command cmd)

◆ verify_land()

bool ModeAuto::verify_land ( )
private

◆ verify_loiter_time()

bool ModeAuto::verify_loiter_time ( )
private

◆ verify_loiter_unlimited()

bool ModeAuto::verify_loiter_unlimited ( )
private

◆ verify_nav_delay()

bool ModeAuto::verify_nav_delay ( const AP_Mission::Mission_Command cmd)
private

◆ verify_nav_guided_enable()

bool ModeAuto::verify_nav_guided_enable ( const AP_Mission::Mission_Command cmd)
private

◆ verify_nav_wp()

bool ModeAuto::verify_nav_wp ( const AP_Mission::Mission_Command cmd)
private

◆ verify_payload_place()

bool ModeAuto::verify_payload_place ( )
private

◆ verify_RTL()

bool ModeAuto::verify_RTL ( )
private

◆ verify_spline_wp()

bool ModeAuto::verify_spline_wp ( const AP_Mission::Mission_Command cmd)
private

◆ verify_takeoff()

bool ModeAuto::verify_takeoff ( )
private

◆ verify_wait_delay()

bool ModeAuto::verify_wait_delay ( )
private

◆ verify_within_distance()

bool ModeAuto::verify_within_distance ( )
private

◆ verify_yaw()

bool ModeAuto::verify_yaw ( )
private

◆ wp_bearing()

int32_t ModeAuto::wp_bearing ( ) const
overrideprotectedvirtual

Reimplemented from Mode.

◆ wp_distance()

uint32_t ModeAuto::wp_distance ( ) const
overrideprotectedvirtual

Reimplemented from Mode.

◆ wp_run()

void ModeAuto::wp_run ( )
private

◆ wp_start() [1/2]

void ModeAuto::wp_start ( const Vector3f destination)

◆ wp_start() [2/2]

void ModeAuto::wp_start ( const Location_Class dest_loc)

Member Data Documentation

◆ _mode

AutoMode ModeAuto::_mode = Auto_TakeOff
private

Definition at line 306 of file mode.h.

◆ condition_start

uint32_t ModeAuto::condition_start
private

Definition at line 374 of file mode.h.

◆ condition_value

int32_t ModeAuto::condition_value
private

Definition at line 373 of file mode.h.

◆ descend_max

float ModeAuto::descend_max

Definition at line 386 of file mode.h.

◆ descend_start_altitude

float ModeAuto::descend_start_altitude

Definition at line 385 of file mode.h.

◆ descend_start_timestamp

uint32_t ModeAuto::descend_start_timestamp

Definition at line 382 of file mode.h.

◆ descend_throttle_level

float ModeAuto::descend_throttle_level

Definition at line 384 of file mode.h.

◆ hover_start_timestamp

uint32_t ModeAuto::hover_start_timestamp

Definition at line 380 of file mode.h.

◆ hover_throttle_level

float ModeAuto::hover_throttle_level

Definition at line 381 of file mode.h.

◆ land_state

LandStateType ModeAuto::land_state = LandStateType_FlyToLocation
private

Definition at line 376 of file mode.h.

◆ loiter_time

uint32_t ModeAuto::loiter_time
private

Definition at line 366 of file mode.h.

◆ loiter_time_max

uint16_t ModeAuto::loiter_time_max
private

Definition at line 365 of file mode.h.

◆ nav_delay_time_max

int32_t ModeAuto::nav_delay_time_max
private

Definition at line 369 of file mode.h.

◆ nav_delay_time_start

uint32_t ModeAuto::nav_delay_time_start
private

Definition at line 370 of file mode.h.

◆ nav_payload_place

struct { ... } ModeAuto::nav_payload_place

◆ place_start_timestamp

uint32_t ModeAuto::place_start_timestamp

Definition at line 383 of file mode.h.

◆ state

Definition at line 379 of file mode.h.


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