Modo Auto Arducopter

Description

Mind Map on Modo Auto Arducopter, created by Andres Ardila Sedano on 10/07/2018.
Andres Ardila Sedano
Mind Map by Andres Ardila Sedano, updated more than 1 year ago
Andres Ardila Sedano
Created by Andres Ardila Sedano over 6 years ago
5
0

Resource summary

Modo Auto Arducopter

Annotations:

  • mode_auto.cpp 
  1. Pertenece a
    1. mode.h a la clase mode
      1. que pertenece a
        1. copter.h
    2. si el modo de vuelo es llamado inicia ingresando al condicional #if MODE_AUTO_ENABLED == ENABLED que es una definicion de las librerias config.h y defines.h, para envia mensajes mavlink a la groundstation
      1. ejecuta las siguientes acciones
        1. Inicia y ejecuta llamadas para el modo de vuelo automático, implementación de Land, Waypoint navigation y Takeoff from Auto mode. El código de ejecución del comando (es decir, command_logic.pde) debería: a) cambiar al modo de vuelo automático con la función set_mode (). Esto provocará que se llame a auto_init b) llame a una de las tres funciones de inicialización automática: auto_wp_start (), auto_takeoff_start (), auto_land_start () c) llamar a una de las funciones de verificación auto_wp_verify (), auto_takeoff_verify, auto_land_verify y repetir para verificar si el comando se ha completado, El ciclo principal (es decir, bucle rápido) llamará a update_flight_modes (), que a su vez llamará a auto_run () que, en función de la variable auto_mode, llamará, corrija auto_wp_run, auto_takeoff_run o auto_land_run para implementar realmente la característica
        2. Metodo int() o auto_init
          1. inicializa el auto controller
            1. verifica posicion y el numero de comandos o ingnora check que es un bolean parametro del metodo
              1. si se cumple alguna condición
                1. verifica si motores están armados y si el dron esta aterrizado y que la misión no haya comenzado con un despegue
                  1. si se cumplen las condiciones
                    1. envia mensaje Mavlink MAV_SEVERITY_CRITICAL, "Auto: Missing Takeoff Cmd" y retorna falso al bolean
                    2. Si no se cumplen
                      1. verifica si modo de auto yaw sea igual a AUTO_YAW_ROI
                        1. si se cumple la condicion
                          1. fija el auto yaw en AUTO_YAW_HOLD
                            1. iniciar waypoint y controlador spline
                              1. wp_nav->wp_and_spline_init(); inicializa controladores de punto de línea recta y spline /// actualiza la tirada de destino, los objetivos de pitch y los términos basados ​​en ángulos de inclinación del vehículo /// debe invocarse una vez antes de utilizar el controlador de waypoint, pero no es necesario llamarlo antes de las actualizaciones posteriores al destino
                                1. limpiar límites guiados
                                  1. copter.mode_guided.limit_clear()
                                    1. iniciar / reanudar la misión (basado en el parámetro MIS_RESTART) copter.mission.start_or_resume();
                                      1. start_or_resume - si MIS_AUTORESTART = 0 esto llamará a resume (), de lo contrario llamará a start ()
                                        1. Retorna True al Bolean
                                          1. auto_run - ejecuta el controlador automático // debería llamarse a 100hz o más // depende de que se llame a run_autopilot a 10hz, que maneja los comandos relacionados con la toma de decisiones y los comandos no relacionados con la navegación
                                            1. Metodo void Copter::ModeAuto::run()
                                              1. llama al controlador automático correcto desde un switch case llamado _modo su sintaxis es switch (_mode)
                                                1. Case de _mode
                                                  1. case Auto_TakeOff
                                                    1. ejecuta el método
                                                      1. takeoff_run();
                                                    2. case Auto_WP: case Auto_CircleMoveToEdge:
                                                      1. ejecuta el método
                                                        1. wp_run();
                                                      2. case Auto_Land:
                                                        1. ejecuta el método
                                                          1. land_run();
                                                        2. case Auto_RTL:
                                                          1. ejecuta el método
                                                            1. rtl_run();
                                                          2. case Auto_Circle: circle_run();
                                                            1. ejecuta el método
                                                              1. circle_run();
                                                            2. case Auto_Spline:
                                                              1. ejecuta el método
                                                                1. spline_run();
                                                              2. case Auto_NavGuided:
                                                                1. if NAV_GUIDED == ENABLED
                                                                  1. ejecuta el método
                                                                    1. nav_guided_run();
                                                                2. case Auto_Loiter:
                                                                  1. ejecuta el método
                                                                    1. loiter_run();
                                                                  2. case Auto_NavPayloadPlace:
                                                                    1. ejecuta el método
                                                                      1. payload_place_run();
                                          2. Si no se cumple
                                      2. _mode = Auto_Loiter
                                      3. Si no se cumple alguna condición
                                        1. Retorna Falso al Bolean
                                2. Conveniencia de las referencias para evitar el cambio de código en la conversión: Parameters &g; ParametersG2 &g2; AC_WPNav *&wp_nav; AC_Loiter *&loiter_nav; AC_PosControl *&pos_control; AP_InertialNav &inertial_nav; AP_AHRS &ahrs; 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 ≈ takeoff_state_t &takeoff_state;
                                  Show full summary Hide full summary

                                  Similar

                                  Test sobre programación en ARDUINO
                                  Santi tecnoprofe
                                  TIPOS DE AERONAVES
                                  Julio Parra
                                  ARDUINO PROGRAMMING
                                  Jorge Hernández
                                  Los drones y sus aplicaciones
                                  Emily Olivera
                                  Los sensores arduino
                                  lugi1borra
                                  Arquitectura de un robot.
                                  lugi1borra
                                  PROYECTO ARDUINO CON APLICACIÓN MÓVIL
                                  MARLON ARANA CARRASCO
                                  Introducción a las máquinas
                                  lugi1borra
                                  Open Source - Open Hardware
                                  Yurleison Benitez
                                  Processing & ARDUINO
                                  Angela Bracho Núñez