Diseño de sistema para vehículo autónomo impulsado por Python (barco)

Recientemente comencé un proyecto (con algunos amigos) en el que construiré un barco autónomo. Desde un nivel alto, será alimentado por energía solar con una hélice impulsada por un motor relativamente simple, y algunos sensores a bordo y demás. Será guiado por GPS en el sentido de que las coordenadas de navegación se cargarán en el barco y luego "irá allí" (dejaré la búsqueda de rutas fuera de eso).

Mi experiencia es informática y más o menos estoy "metiendo" en el aspecto de hardware de las cosas. Mi pregunta principal es sobre el diseño/diseño del sistema de control para el barco en sí.

Al principio, mi intención es tener una computadora principal a bordo (tal vez Raspberry Pi), que se comunique con varios microcontroladores a bordo (tal vez Arduinos). Los microcontroladores reportarían los datos del sensor a la computadora principal, que tomaría decisiones y daría instrucciones a los controladores para impulsar operaciones físicas (por ejemplo, detener el motor, girar la cámara, activar la autodestrucción).

¿Es razonable este paradigma general? ¿O es fundamentalmente defectuoso de alguna manera que aún no he pensado?

Si alguien quiere más información, hágamelo saber, no quería despotricar demasiado. ¡Gracias de antemano!

No creo que pueda alimentar motores, sensores, módulos GPS, placas Raspberry Pi y Arduino solo con paneles solares, a menos que estos paneles sean muy grandes y súper eficientes (= extremadamente caros). Seguro que necesitas pilas recargables. Podrías usar los paneles solares para recargar las baterías.
Oye, sí, no entré en todos los detalles. Habrá un banco de baterías recargables. El casco es bastante grande con una parte superior plana (alrededor de 1,5 mx 0,6 m), por lo que hay suficiente espacio para acomodar suficientes células solares para generar 50ish (?) Watts de potencia durante el día (basado en una verificación súper preliminar).
Por el bien del consumo de energía, debe intentar usar solo una placa basada en un microcontrolador que interactúe con todos los sensores y actuadores. "Activar autodestrucción" ¿Es este un barco de James Bond? :-)
Definitivamente intentaré minimizar la cantidad de microcontroladores utilizados, aunque tales decisiones tendrán que esperar hasta que se seleccione el conjunto de dispositivos. En cuanto a la autodestrucción... Podría decírtelo, pero luego...
Sería útil saber un poco más sobre las funciones que tendrá el barco, es decir, qué tan complejo es todo. Esto ayudará a decidir si necesita, por ejemplo, un solo micro pequeño de 8 bits o un R-Pi y micros compatibles.
@OliGlaser Todavía estamos finalizando la especificación. Una encuesta de alto nivel de funcionalidad probable sería: recarga solar del banco de baterías (fuente de alimentación), sensores meteorológicos a bordo (estación), propulsión impulsada por hélice, GPS a bordo para navegación automática y sincronización de tiempo, cámara a bordo para "informar "imágenes, así como ejecutar algún software de CV (visión por computadora). La intención actual es que el programa operativo esté en python en la computadora de a bordo (interconectado con los controladores según sea necesario). Considerar seriamente 2 hélices para dirección diferencial en lugar de un timón (miedo a romperse fácilmente).

Respuestas (1)

Estás diseñando un robot móvil. Olvídese de Asimov, las tres leyes reales de la robótica móvil son:

  1. Todo en él sale mal todo el tiempo.
  2. Hay una batería en el camino.
  3. Se rompió.

Hagas lo que hagas, ten en cuenta estas verdades fundamentales.

  1. Todo saldrá mal todo el tiempo. Esto es especialmente cierto para un robot que está en el mar, o incluso en medio de un lago. Cada componente técnico del robot es algo que puede salir mal, y cuanto más tengas, más cosas saldrán mal. Incluso si los hace todos 99% confiables y tiene 70 cosas allí, entonces tiene un 50% de posibilidades de que una de ellas falle. "Ajá", dices, luego agregaré un sistema de seguridad que detecta cuando algo sale mal y, por ejemplo, detiene el motor. Bueno, ahora tienes otra cosa que puede salir mal, y le has dado el poder para detener el motor. La lección para llevar es reducir la cantidad de componentes en el robot tanto como sea posible. Usted mencionó "varios microcontroladores a bordo". ¿Por qué, qué tan grande es este barco ? ¿Tal vez puedas salirte con la tuya con solo uno?

  2. Hay una batería en el camino. Esto es realmente dos verdades. En primer lugar, es posible que te encuentres atrapado por espacio. Tal vez no, los barcos pueden ser bastante grandes y no tienen muchos actuadores, por lo que este puede ser uno de los pocos robots que no sufra este problema. En segundo lugar, los robots móviles nunca tienen suficiente capacidad de batería. Estoy seguro de que has pensado en esto, pero lo mencionaré para completarlo. Mida cuidadosamente cuánta energía consumen las distintas partes del robot y calcule cuánto tiempo de funcionamiento es probable que obtenga de ellas.

  3. Se rompió. Tu experiencia es en Ciencias de la Computación, algo fallará. A menos que seleccione muy buenos conectores y no los ensamble usted mismo, fallarán. Probablemente las juntas de soldadura fallarán si las hace todas usted mismo. El bote tendrá fugas y explotará la electrónica. Cuando esté armando el bote, debe imaginar que tiene 20 años de amarga experiencia con robots que se descomponen cuando son casi inaccesibles (la tengo). Cada pieza que hagas, imagina cómo va a salir mal. ¿Qué impide que los conectores se desconecten solos? ¿Qué impide que entre agua en los componentes electrónicos? ¿Los sellaste? ¿Qué va a evitar que se sobrecalienten ahora? ¿Tomaste precauciones ESD? Si no es así, es probable que hayas perdido la mitad de un pin en un chip que solo comenzará a mostrar fallas cuando el barco esté a 100 millas de tierra.

+1 - entonces, ¿debería ser pan comido entonces? ;-)
"Algo fallará" Suenas como Murphy. Me gusta.
@m.Alin - Solo digo la verdad.
¡Qué declaración de principios tan aleccionadora... ahora vamos con el diseño! :)...
@csjohn - Buena suerte con eso. Por cierto, ¿estarás blogueando el progreso del robot? Siempre he querido hacer un barco robot (tal vez incluso uno que pueda circunnavegar el mundo), así que me encantaría ver este en marcha.
@Rocketmagnet - Sí, una vez que empecemos a rodar, intentaré poner en marcha algún tipo de blog de proyecto :).