¿Existe una variante incorporada de Lisp / Scheme que pueda usarse en robótica en tiempo real?

Mi voto por ECL también. Pero como muestran las otras respuestas, hay muchas otras alternativas para elegir. Para la “mejor” alternativa, necesita especificar muchos más detalles, por ejemplo, limitaciones del sistema (RAM, CPU, almacenamiento, etc.), interacción con el hardware (qué tipo de conexiones para que el “robot” realmente haga algo y cómo obtener datos sensoriales , en su caso, y en qué formato), etc. etc. etc.

La pregunta es: ¿Qué quieres decir con “incrustado”? ¿Desea ingresar el código fuente directamente en el “robot” y hacer que lo ejecute? Entonces, ¿quieres un intérprete y / o un compilador sobre la marcha? Eso aumentaría drásticamente su hardware requerido (CPU / RAM / almacenamiento / etc.), especialmente cuando menciona “en tiempo real”.

Por lo general, cuando se necesita una solución de tiempo crítico (especialmente si el costo también es un factor), no tomaría esa ruta. Más bien querrá algo ya traducido al idioma interno del hardware (es decir, “compilado”). En ese caso, se puede usar cualquiera de los casi todos los lenguajes (no solo Lisp o C o Python o Fortran o lo que se pueda imaginar), siempre que tenga un compilador decente para la plataforma en cuestión. Aún podría “incrustar” nuevas funcionalidades, solo que necesitaría “preparar” el “programa” antes de “incrustarlo” en el robot “compilándolo” para el hardware interno de ese “robot”.

Bueno, hay ECL que es la abreviatura de Embeddable Common Lisp. Es una implementación de Common Lisp que puede integrarse en los programas de C. También puede incluir el código C en línea dentro de su código ECL. También hay XS: Lisp en Lego MindStorms. También hay roslisp – ROS Wiki. Finalmente, una vez vi un trabajo publicado por Nikodemus Siivola, quien es uno de los mantenedores del compilador SBCL sobre trabajar en una compañía llamada ZenRobotics que fabrica y programa robots industriales. La publicación de trabajo mencionó que la programación se realiza en Lisp. Sin embargo, realmente no sé qué implementación están utilizando, pero sospecho que podría ser SBCL ya que SBCL es conocido por producir ejecutables rápidos, y Nikodemus está trabajando allí. De todos modos, para responder a su pregunta, creo que SBCL es una buena apuesta para Common Lisp, ya que se compila en ejecutables rápidos, y también hay soporte FFI para que pueda llamar al código C desde su código Lisp.

He usado Gambit Scheme como lenguaje de script para un sistema de simulación robótica escrito en C / C ++. Se integra razonablemente bien con C / C ++.

More Interesting

¿Cómo se puede identificar el microcontrolador original vendido por un distribuidor?

Sistemas Embebidos: Quiero construir un simple emisor de señal Wifi cuando la energía está conectada. ¿Qué equipo barato puedo comprar y cómo puedo configurarlo?

¿Cuál es la razón detrás del microcontrolador 8051 no está ejecutando el código hasta que lo reinicie manualmente?

¿Los ingenieros electrónicos suelen ser muy buenos programadores porque hacen desarrollo integrado?

Estoy persiguiendo BTech en ingeniería electrónica y de comunicación. Estoy buscando el mejor instituto para hacer entrenamiento de verano en sistemas integrados. ¿Cuál es el mejor instituto en Delhi para la capacitación en sistemas integrados?

¿Cuál es la diferencia entre arduino y pic?

Cómo interconectar LCD con ARM

Lua y C, ¿cuál es el mejor lenguaje de programación para sistemas embebidos?

Cómo usar un temporizador de microcontrolador 8051 para calcular el tiempo entre dos eventos configurando SFR con ejemplo

¿Qué son los temporizadores suaves y las ruedas de sincronización?

¿Cuál es el mejor instituto para sistemas integrados: Nirma Institute of Technology o CDAC Pune?

¿Cómo se compara Mbed con Particle Photon?

¿Cuál es la ventaja de los microprocesadores sobre los sistemas integrados?

¿Cuál es la diferencia entre un sistema operativo para una PC y una computadora de mano y un sistema integrado?

¿Cómo controla un microcontrolador un sistema embebido? ¿Por qué se llama el corazón de un sistema embebido?