org intro erlang robotics

intro - erlang org download otp win64



Aplicaciones robóticas en Erlang (2)

Pero Erlang podría no ser el mejor enfoque para ninguna aplicación de robot en absoluto. Pero puede optar por la tesis menos ambiciosa de demostrar que Erlang admite un modelo informático que es importante en muchas aplicaciones de robótica . Los puntos de uso de Erlang para robótica incluyen

  • concurrencia para modelar y monitorear un mundo concurrente;
  • distribución de sensores, actuadores y recursos informáticos;
  • máquinas de estado para unir los comportamientos; y
  • supervisores para la tolerancia a fallas.

Se puede hacer cualquier cosa en cualquier idioma, pero Erlang hace que algunas cosas resulten convenientes, particularmente a nivel arquitectónico.

El Capítulo 14 de Programación concurrente en Erlang, por ejemplo, modela un sistema de control de ascensor por un proceso para cada ascensor y uno por cada piso, y luego analiza la estructura del proceso para un sistema de control por satélite. Los ascensores o los satélites tal vez no sean muy parecidos a los robots, pero los principios son los mismos.

El trabajo de Erlang & Robotics por Corrado Santoro et al. hace mucho uso de concurrencia. Su proyecto de robot móvil 2007 tiene un montón de comportamientos OTP diferentes (concurrentes) que van desde la I / O de bajo nivel a la planificación de alto nivel. Enseñar a Erlang usando robótica y jugador / escenario es otro trabajo reciente.

Sus ideas de Robot Soccer o Cleaning Robot son buenas y tienen muchas posibilidades para la concurrencia y la comunicación entre robots. Pero no solo hace una aplicación de robot arbitraria de ese tamaño. O tiene un equipo y algunos robots específicos para trabajar, o puede obtener un simulador (obtenga un simulador de cualquier manera).

Intenta simular una cantidad de robots que se dirigen unos hacia otros hasta que todos chocan, y cada robot ejecuta su propio proceso. Cuando esté funcionando, reemplace la tarea y agregue procesos que (simulan) controlan motores, sienten paredes, ven el entorno, entienden los comandos del usuario, se descomponen, etc., e intercambian mensajes con otros robots y procesos de planificación.

Lea sobre arquitecturas de sistemas robóticos para comprender que tales diseños son comunes y por qué. ¿Erlang facilitó este tipo de programación?

Quiero usar Erlang para implementar una aplicación robótica. La mayoría de las aplicaciones actuales del mundo real implementadas en Erlang se basan en la web . El robot implementado por el profesor Corrado no utilizó la concurrencia de Erlang, que es el corazón de Erlang y se concentró más en la inteligencia artificial (de acuerdo con mi comprensión de ese proyecto).

Algunas ideas vienen a mi mente son como Robots de Soccor. Múltiples robots que limpian una habitación, pero en tales sistemas, los robots pueden programarse en C (o en cualquier otro lenguaje de programación) que se pueda controlar con MATLAB. MATLAB ayuda en el procesamiento de imágenes (sistema de visión) y en la resolución de cálculos complejos de arreglos, entonces, ¿de qué sirve usar Erlang? (Corrígeme si estoy equivocado).

¿Alguien puede sugerirme alguna aplicación robótica que pueda utilizar la característica de Erlang especialmente concurrencia y se puede argumentar que Erlang es más adecuado para dicha aplicación en otros idiomas.

La respuesta un poco detallada me ayudaría mucho.


la única forma de entender dónde es mejor erlang y cuándo es mejor, es programar en erlang por un tiempo. No se trata de lo que erlang hace mejor, se trata más bien de entender cómo un patrón de diseño funcional que utiliza los pequeños engendros y otp de erlang se compara con tratar de resolver los mismos problemas en un lenguaje imperativo. Una breve lista de pros y contras con viñetas no le hará justicia. Las rutinas y los canales go de Google, haskell y D pueden actuar de manera similar sin ningún problema. Erlang es particularmente bueno en ser distribuido. En los idiomas simultáneos más nuevos, no es necesario que trabaje demasiado para hacer que las cosas sean simultáneas. En erlang en particular, si está haciendo que sus engendros hagan las tareas intensivas de la CPU de manera uniforme, está utilizando concurrencia. No encontrarás mucha información sobre erlang para robótica, pero encontrarás 3 libros con muchos ejemplos sobre cómo distribuir cosas y concurrentes que abordan muchos de los mismos problemas. Los otros idiomas concurrentes generalmente no se especializan de esa manera. Muchas primitivas útiles están incorporadas en erlang.

Se han realizado muchas publicaciones sobre cómo hacer cosas similares en otros idiomas, pero seguir con Erlang ahorra mucho trabajo.

http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=%22erlang+style%22+%22(concurrency|message+passing)%22 http://groups.google.com/group/ golang-dev / browse_thread / thread / e120a586441b9b24 / 806eab93bd5281a0? # 806eab93bd5281a0