Red de conocimiento informático - Material del sitio web - Cómo utilizar el control de vuelo de código abierto Pixhawk para el desarrollo secundario

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.