¿Es node.js un lenguaje ideal para el software de robótica?

Para un aficionado podría estar bien, pero para los sistemas de robótica reales, lo máximo que puede ser es un lenguaje de scripting de alto nivel utilizado como interfaz para el código “real”. Los algoritmos que hacen que los robots funcionen son complejos y deben ser rápidos, y en algún momento debe hablar con el hardware. C ++ es la única opción viable en este momento (aunque me encantaría si Rust pudiera crear una competencia real aquí). Envolvemos nuestro código C ++ en Python para permitir una iteración rápida al intentar armar una demostración o alguna tarea, y para permitir una experimentación más fácil por personas de diferentes orígenes. El desarrollo del juego es el mismo; el motor es C ++, pero las acciones de alto nivel se pueden programar con Lua o UnityScript.

Node.js es solo una arquitectura decente envuelta en un lenguaje afortunado. Está bien como lenguaje de scripting de alto nivel, pero no se puede hacer un procesamiento computacional muy serio, un hardware o una codificación en tiempo real.

Claro, por ejemplo, puede explorar más sobre estos interesantes proyectos y marcos relacionados con este tema:

  • Cylon – JavaScript Robotics, a sus órdenes
  • Johnny-Five: el marco de programación de JavaScript Robotics
  • Herramientas web de robot
  • Guía del experimentador de Arduino para NodeJS
  • Duino – Arduino framework para node.js

Depende de los proyectos específicos que quieras hacer en robótica. Si desea utilizar el middleware de código abierto más popular actual, como ROS [1], el lenguaje de programación ideal será C / C ++ y python. El beneficio de usar ROS es que tiene muchos algoritmos de robótica de vanguardia integrados, y uno solo necesita aprender las reglas de uso de ROS y algunos conocimientos sobre C / C ++ o Python para usar esos sorprendentes algoritmos. A pesar de que la curva de aprendizaje de ROS es profunda al principio, los beneficios que vienen después son enormes.

La lógica aquí es que si no desea construir un sistema de robótica desde cero, es mejor que busque el software o las bibliotecas de robótica en línea y vea qué tipo de lenguaje están utilizando, y ese será su idioma ideal. .

Hay un blog que habla sobre los 10 principales lenguajes de programación para la robótica y creo que encontrarlo fácilmente y tener una mejor idea de qué idioma se adapta mejor a sus necesidades. Personalmente recomiendo C ++, Matlab y Python.

¡Espero que disfrutes del mundo de la robótica!

Notas al pie

[1] Alimentando a los robots del mundo

El lenguaje ideal es el que mejor conoce, que también se aplica al problema que está resolviendo.

Si todo lo que sabes es JavaScript y solo quieres construir algunos robots, entonces sí.

Si está construyendo vehículos militares autónomos, entonces no.

Poder usar una herramienta no significa que sea adecuada para la tarea.

JavaScript es un lenguaje interpretado (en la mayoría de los casos), la interpretación agrega tiempo, por lo que puede hacer menos en un momento dado que si lo escribiera en C, ADA, Pascal o cualquier otro idioma compilado, con la excepción de los idiomas con la compilación JIT (Just-In-Time), como Java, que puede alcanzar una velocidad casi compilada.