¿Qué tan factible es usar un Raspberry Pi como sistema de control en un quadcopter que vuela de forma autónoma?

En general, diría que es perfectamente factible, una excelente elección de prototipos, pero una opción bastante mediocre para un producto a largo plazo. Existen innumerables beneficios para la creación de prototipos con hardware de bajo costo como el RPi. El RPi es razonablemente liviano (ciertamente lo suficientemente liviano para un quad que probablemente tenga una cámara que es mucho más pesada) y razonablemente compacto. Probablemente no podrá encontrar una mejor plataforma barata, razonablemente bien soportada y disponible con características similares. Sin embargo, está lejos de ser ideal por algunas razones.

El problema principal que encontrará es que el RPi es una sola computadora en el fondo. Esto significa que si lo va a usar para controlar sus motores, será un tiempo compartido entre todos los otros programas de software que su tablero de control de vuelo debe ejecutar, como algoritmos de navegación, comunicaciones y cualquier cálculo de misión específico para sensores.

Para que eso funcione, sería obligatorio usar un kernel en tiempo real, que existe para RPi. La mayoría de los paneles de control de vuelo dividen el trabajo en al menos dos procesadores físicos. Uno que lee los valores del sensor, integra el resultado, el error de la computadora y luego calcula los comandos … y solo esas tareas. Ese procesador, típicamente denominado “controlador” porque implementa un bucle de control, tiene un requisito de rendimiento muy alto. Cuanto más rápido se pueda ejecutar, más estable será su plataforma debido a [las matemáticas van aquí]. La razón por la que es necesario un kernel en tiempo real es que si el kernel decidiera asignar tiempo a otros procesos en lugar de los controladores, fallaría al azar al recalcular los valores de comando para algún conjunto de motores. Eso sería como apagar aleatoriamente sus controladores durante un período de tiempo arbitrario. Piense en ello como cuando Windows / MacOS hace una pausa al azar y hace algo que no comprende, a veces con un ícono giratorio del mouse. Realmente no quieres eso cuando el procesador es responsable de mantener el avión en el aire. Si bien es posible escribir su software y configurar su kernel de una manera que no tenga este problema, sería muy difícil hacerlo correctamente. Para evitar este desafío, los controladores generalmente se dividen en otro procesador dedicado que acepta los objetivos de un procesador principal. Esto significa que el procesador del controlador dedicado solo necesita hacer cuatro cosas: aceptar comandos del procesador principal (probablemente a través de un enlace serie), leer desde sensores, multiplicar y agregar, y escribir comandos.

Dividir el trabajo dejaría un procesador principal, que se ocupa de la navegación y comandos de muy alto nivel para determinar los objetivos a los que los controladores deberían apuntar. Aquí es donde una Raspberry Pi sería una opción perfectamente adecuada. Dado que no importa si la lógica de control de nivel superior toma el orden de un segundo para volver a calcular, es mucho menos crucial que sea una pieza de hardware de alto rendimiento. Dado que aquí es donde desea poder iterar y probar rápidamente, usar un entorno amigable para el desarrollador con una salida de monitor, como un RPi, es una gran opción.

Una vez que finaliza la etapa de creación de prototipos, el valor del RPI desaparece en gran medida. En ese punto, desearía transferir su código a una placa mucho más compacta por espacio, peso y velocidad de arranque. Sugeriría mirar algo como un Teensy. Si bien los Arduinos son populares, descubrirá rápidamente que necesita más memoria para sus programas que los 32k que normalmente se proporcionan en las placas Arduino más pequeñas. Cuando importe algunas bibliotecas de sensores, llegará a 32k, y es una pérdida de tiempo jugar trucos estúpidos del compilador para que se ajuste al límite de 32k.

Si quisieras lograr un equilibrio, siempre podrías hacer tu propio tablero muy compacto con dos tableros Teensy. Uno se dedicaría a los lazos de control, y uno se ocuparía de todo lo demás. Esto preservaría el beneficio de hardware básico del RPi, al tiempo que le daría una configuración más confiable. Perdería la capacidad de hacer cosas arbitrarias en un entorno Linux y monitorear los resultados de las placas. Puede que le importe o no.

Estoy de acuerdo en que Raspberry Pi Zero es el mejor sistema de control para quadcopters UAV. No estoy de acuerdo con los detractores. El Pi Zero tiene menos de 10 gramos ahora en el año 2017, incluido el conector HDMI. Esos conectores se pueden soldar fácilmente, y su peso es básicamente un problema. El propósito general de Linux es suficiente para controlar el guiñada y el tono cuando no tienes un disco duro o SD. Simplemente inicie y quite la SD, y todo es básicamente un sistema en tiempo real. Solo es un problema cuando desea tener un software de piloto automático a bordo. Aquí asumimos que su software de planificación de vuelo está en el terreno para calcular el rumbo del UAV, y el quadcopter en sí solo debe ser responsable de calcular la potencia / par del motor. Un proyecto de grado hobby significa que si la última comunicación con el suelo le dice al quad que vuele hacia el este, entonces la conexión a tierra se pierde, el dron vuela hacia el este hasta que la batería se agota. Por supuesto, si quieres hacer un avión no tripulado de ataque militar, eso está fuera de esta discusión.

Yo solo he comenzado a estudiar la posibilidad de usar un Pi en un quadcopter. De todo lo que he estado leyendo, parece que hay formas mucho más eficientes de tener un controlador dedicado. Por eso hacen placas de controlador específicas. Sin embargo, como dice la mayoría de la gente, parece una gran oportunidad para aprender sobre la programación de un controlador y cómo funciona.

Todavía creo que incluir un Pi en un quadcoptor podría servir para un gran propósito, como lo que dice Gary Hethcoatis. Si finalmente utiliza un controlador dedicado más eficiente para el vuelo real, puede reservar el Pi para todo tipo de otras características. Aquí es donde el Pi realmente puede brillar. Se puede usar para prácticamente cualquier cosa. Puede medir las diferencias de temperatura en las diferentes áreas en las que vuela. Puede usar el procesamiento de la cámara térmica, puede monitorear un área para detectar interferencia WiFi. Monitorear la presión barométrica en vuelo. No habría necesidad de encontrar placas dedicadas para ninguna función adicional. Simplemente encuentre la parte necesaria en un Pi y conéctelo. Incluso podría navegar por la web desde el cielo si lo desea (siempre que pueda encontrar una señal wifi o 4g).

Así que digo, esta es una gran idea. Solo utilícelo para funciones periféricas y no necesariamente para el sistema de control principal.

Hay un escudo para Pie con todos los sensores necesarios y hay una compilación de firmware APM que se ejecuta en Raspbian.

Puede ordenar el escudo aquí por alrededor de $ 150 – NAVIO +

Personalmente, considero que este es un buen camino: utilizar una computadora de alto rendimiento de uso general como controlador de vuelo. Permite el uso de WiFi para el control y la transmisión de video y acerca el UAV a la corriente principal, eliminando la necesidad de control de radio dedicado y dispositivos de enlace FPV.
También he encontrado un proyecto de bricolaje bastante exitoso con la misma idea: uadcopter + Raspberry Pi = PiCopter. El tipo allí usa giroscopios independientes, ESC especiales que hablan I2C y un enlace de radio de alguna clase. También ha desarrollado su propio software de autopilotr para el Pie.

Paul W. Quimby da una buena respuesta completa que dice todo lo que hubiera dicho. Hay muchas preguntas sobre Quora que básicamente dicen “¿Puedo usar la Raspberry Pi (o algo similar) para hacer …”. Siento gran simpatía por los interrogadores, que tienen la capacidad de programar algo pero no el conocimiento y la habilidad para diseñarlo desde cero. Generalmente no hablo sobre tales preguntas porque la respuesta es casi siempre “Sí, pero …” y termina siendo un poco desalentador. La sugerencia de Mendel Cooper de usar algo más específicamente diseñado para el trabajo es invariablemente la mejor manera de hacerlo, pero tales soluciones generalmente no tienen la comodidad de un sistema operativo Linux y un paquete de programación incorporado, por lo que todavía hay una curva de aprendizaje empinada para alguien con solo experiencia en programación de idiomas de alto nivel.

Supongo que, después de tanto tiempo, seguir respondiendo la pregunta. Sí, podría usar un R-Pi, pero no lo llevará mucho más lejos que ser una plataforma de desarrollo para el software. Usarlo en un dispositivo real requerirá un hardware especial, que no es tan fácil de conectar a un Pi, y en cualquier caso requerirá algunos conocimientos de electrónica. Puede que descubras que habiendo llegado tan lejos como puedas con el Pi, terminas desechándolo y haciendo el trabajo con otra cosa.

No muy factible, probablemente. El problema principal es el peso de una placa Pi: 45 g., Y esto es sin los periféricos necesarios.
Una mejor opción sería un controlador de vuelo dedicado:
Controlador de vuelo para Quadcopter Multicopter con alta dirección fija Care Free CF


20 g. y hardware integrado optimizado para uso en quadcopter.

¡Definitivamente puede hacer el trabajo! Actualmente estoy experimentando con un controlador de vuelo Arduino que se basa en un control remoto de Wii (multiwii.com). Sin embargo, voy a probar el APM pronto debido a la documentación. Todavía estoy considerando si agregar o no otra placa con un procesador para las capacidades de procesamiento de imágenes posteriores y otras características, o si debo usar un teléfono inteligente / tableta / PC para el procesamiento.

Si bien estoy de acuerdo con otros pósters en que el RPI no es una buena opción para el control primario, es una gran opción como coprocesador para otras tareas a bordo de un UAV. Incluso hay una compañía en el espacio que usa el RPI como parte de un producto de envío, ICI (Infrared Cameras, Inc.). Usan el RPI para realizar la adquisición de datos de sus cámaras térmicas. Evaluamos su configuración en nuestra plataforma quadcopter y descubrimos que funciona bastante bien.

He estado usando dos RPI en mi helicóptero para fotografía visual + NIR, usando las cámaras RPI dedicadas. Tiene algunos inconvenientes, pero es muy ligero y funciona bien. Disparo las cámaras usando el RPI GPIO del 3DR APM.

Una última cosa, si vas a seguir esta ruta, usa el RPI B +. Tiene un circuito de alimentación más eficiente y mejores orificios de montaje que el modelo B.

Gary

More Interesting

¿Es una buena idea usar hardware abierto como Arduino o Raspberry Pi en proyectos profesionales?

¿Cuáles son las cosas en Python que debería aprender para la interacción de hardware con Raspberry Pi?

¿Cuál sería un buen tema para una tesis de maestría relacionada con la seguridad cibernética de Linux y Raspberry pi o IoT?

¿Puede una computadora portátil vieja funcionar como una Raspberry Pi para construir proyectos (tienen una conexión similar como una placa de E / S)?

¿Arduino y Raspberry Pi tienen sensores o puertas de enlace?

¿Podrían guiarme y decirme cómo puedo conectar un Raspberry Pi a una red WiFi?

Cómo enviar un video en vivo desde una Raspberry Pi a otra Raspberry Pi usando una fibra óptica y no usando WiFi u otras comunicaciones inalámbricas

¿Debo comprar Raspberry Pi para la minería de bitcoin o debo usar mi Mac para ello?

¿Qué proyecto innovador puedo presentar para mi presentación de proyecto de último año con Arduino o Raspberry-Pi?

¿Cuál es la mejor manera de controlar un relé para cambiar la alimentación de CA de un dispositivo de baja potencia con Raspberry Pi?

Soy programador y obtuve una Raspberry Pi. ¿Qué proyectos debo probar?

¿Hay algún módulo GPS que pueda proporcionar información GPS en un Raspberry Pi 3B sin usar Internet?

¿Qué LCD debo comprar para una Raspberry Pi 3 modelo B?

Quiero ver televisión en línea. ¿Es mejor comprar una Raspberry Pi con XBMC o algo así como un Chromecast, etc.?

¿Cuál es la historia detrás del nombre 'Raspberry Pi'?