Cómo utilizar el control de vuelo de código abierto Pixhawk para el desarrollo secundario
Las siguientes descripciones son todas para el firmware nativo de px4. Además, debido a que el firmware se actualiza con demasiada frecuencia, este artículo describe el firmware en julio de 2015. Es principalmente un ejemplo. Si hay algún cambio, por favor. estúdielo usted mismo (el método de compilación de cmake se cambió más tarde y los cambios fueron bastante grandes).
Ya que desea desarrollar, el primer paso es configurar un entorno de desarrollo. Según mi experiencia, es mejor compilar en un entorno Linux, que será muy eficiente en el pasado. En Windows, a menudo toma 40 minutos. Arriba, esto afectará en gran medida el desarrollo;
El segundo paso es comprender aproximadamente la arquitectura del firmware.
Si solo implica el desarrollo del En el pasado, en términos generales, es mejor comprender primero el mecanismo del módulo uorb. Comience con uorb, comprenda la fuente y la función de cada tema, organice el flujo de datos y comprenda. la relación entre cada módulo, por ejemplo, para implementar el modo manual, qué módulos interactúan entre sí, el modo automático y qué módulos funcionan.
Si implica el desarrollo de los algoritmos correspondientes, debe aprender a hacerlo. ubique los módulos de algoritmo correspondientes e incluso especifique qué códigos, por ejemplo, si desea probar su algoritmo de estimación de actitud, puede reemplazar el módulo de estimación de actitud. Sin embargo, la interfaz correspondiente aún debe ser la misma que la del entorno px4. Tomando la estimación de actitud como ejemplo, finalmente debes publicar el tema de actitud_vehículo; de lo contrario, no podrá comunicarse con otras interacciones del módulo;
Además, no intentes encontrar la función principal en el código. , Es decir, pensamiento de microcontrolador, solo necesita mirar el script de inicio, \ROMFS\px4fmu_common\init.d\rcs;
El tercer paso es ubicar el módulo correspondiente de acuerdo con su situación y conducta específicas. Investigación intensiva. Aunque el módulo está escrito básicamente en C ++, no importa si no sabes C ++. Después de todo, no te pido que lo escribas hasta ahora. simplemente use los comentarios para comprenderlo. Por ejemplo, ordene el proceso de control de mavlink;
Lista de módulos de firmware nativos Px4:
Programa de comando del sistema
mavlink. – Enviar y recibir información de mavlink a través del puerto serie
sdlog2 – Guardar registros del sistema/datos de vuelo en la tarjeta SD
pruebas – Probar programas en el sistema de prueba
arriba: enumera los procesos actuales y la carga de la CPU
uORB: agente de solicitud de microobjetos: distribuye información entre otras aplicaciones
Controlador
mkblctrl: controlador del módulo electrónico blctrl
esc_calib – Herramienta de calibración ESC
fmu – Definición de entrada y salida de pines FMU
gpio_led – Controlador GPIOLED
gps – Controlador del receptor GPS
pwm – comando de velocidad de actualización PWM
sensores – aplicación de sensor
px4io –controlador px4io
uavcan – controlador uavcan
Programa de control de vuelo
Seguridad de vuelo y navegación
comandante: máquina principal de estado de seguridad de vuelo
navegador: navegadores de misión, de seguridad y RTL
Posición y actitud estimada
attitude_estimator_ekf – Estimación de actitud basada en EKF
ekf_att_pos_estimator – Estimación de posición y actitud basada en EKF
position_estimator_inav – Estimación de posición de inercial navegación
controlador de actitud y posición multirotor
mc_att_control – controlador de actitud multirotor
mc_pos_control – controlador de posición multirotor
Controlador de posición y actitud de ala fija
fw_att_control – Control de actitud de aviones de ala fija
fw_pos_control_l1 – Controlador de posición de ala fija
Controlador de actitud de despegue y aterrizaje vertical
vtol_att_control – Controlador de actitud de despegue y aterrizaje vertical
Finalmente, lea más sobre las instrucciones en el sitio web oficial. Además, según mi experiencia, debido a la gran cantidad de personas, todos han escrito el marco y el código. .
A menudo, cuando desea agregar una función, todo lo que tiene que modificar son unas pocas líneas de código. Por ejemplo, el firmware px4 solo se puede desbloquear en modo manual si quiero modificarlo para desbloquearlo en modo de altura fija.