¿Puedo usar golang para programar sistemas integrados como drones? Si es así, ¿cómo puedo comenzar? ¿Hay algún tipo de marco / biblioteca que debería usar?

Si y no. Si bien hubo un objetivo básico para ARM en las primeras implementaciones de Golang, creo que fue más un demostrador que una herramienta de producción. Lo interesante es que demostró que se podía hacer metal desnudo en GO una vez que se desarrolla la cadena de herramientas. Se están realizando múltiples esfuerzos y puede evaluar si son lo suficientemente estables para sus propósitos.

Una vez que ingrese a los procesadores más grandes (como Intel Atom o ARM cortex A series) Go se convierte en una opción más viable. Usando un sistema operativo base como Yocto Linux, puede compilar el sistema operativo host de destino y desarrollar su código para ejecutarlo en el espacio del usuario. Hay algunas advertencias que debes tener en cuenta.

  1. La recolección de basura todavía detiene el mundo. Puede minimizar esto con un buen diseño, pero hay aplicaciones que incluso el retraso mínimo es inaceptable.
  2. Si bien GO puede llamar a toda su API de C, hay un costo de llamada de preparación cada vez que usa esto. En Xeons lo medimos a 150ns. En un Atom, su kilometraje puede ser realmente malo.
  3. Manipular hardware directamente es posible con GO, pero se ha hecho intencionalmente engorroso. Puede mover el código a C (ver # 2), o simplemente vivir con esto y ocultarlo dentro de un paquete.
  4. La priorización de tareas no es realmente un concepto en GO. Eso hace que el tiempo real sea más difícil.

Muchas aplicaciones integradas no se preocuparán mucho por los problemas anteriores, pero algunos de estos problemas podrían ser mortales. Elegir sabiamente.

Thehybridgroup, desarrollador de Cylon.js, tiene un proyecto hermano llamado gobot.

Marco de Golang para robótica, informática física e Internet de las cosas

Creo que Golang es una gran opción junto con Linux integrado.