The purpose of this goal is to investigate what benefits Erlang may potentially bring to robot development. Its functional style and native concurrency semantics have a lot of potential in the highly-concurrent real-world in which robots operate. We believe that it may allow for more rapid development of intelligent robots.
This goal requires the development of a system that can be used to monitor a running network of RT Components using the OpenRTM-aist middleware. The system should allow for orchestration of the component network at run-time in response to changes in the robot's state. For example, should a part of the robot suffer from a hardware failure, the developer should be able to specify an appropriate response to this event at the component network level. Such a response may include re-wiring the component network to work around the failed hardware, or even going as far as to replace components with new versions that use alternative approaches not requiring the failed hardware.
A preliminary version of this tool has been released and is available for download. It can be used with any component network running on the OpenRTM-aist-1.0.0 middleware.
The tool is available for download here. The source code is open source under the Eclipse Public License v1.0. It is hosted in a github repository.
This goal aims to investigate lower-level use of Erlang in robotics by implementing a complete architecture in the language. The architecture will be compatible with the existing OpenRTM-aist implementations, in that components running on it will be able to exchange data with components running on other implementations.
The main aim is to investigate what benefits Erlang brings to robotics software architecture. Erlang has a well-earned reputation for high fault tolerance and being very fast even in cases of massive distributivity dealing with large quantities of data. Any realistic robot system is likely to involve similar challenges, making Erlang potentially well-suited to developing robot software.
OpenRTM-erl is available for download here. The source code is open source under the Eclipse Public License v1.0. It is hosted in a github repository.