RobotRaconteur

System integration is a common challenge faced in laboratory automation, manufacturing and robotics. Modern sensors and actuators have computer interfaces that allow them to be accessed from software either through a direct peripheral connection such as USB or PCI, or over a network such as Ethernet. An end user writes software either in a high level language such as Python, MATLAB, or LabView, or uses a compiled language like C++ to control these devices. A high level language is often used for prototyping and a compiled language is used later on in system development. The current solution for automation component control is to provide libraries that are targeted to a few languages, such as LabView, C++, and ActiveX, and hope that these are sufficient. These basic drivers are typically not ready for distributed control scenarios and each have their own peculiarities that can result in a learning curve for each component. If all the components do not provide support for the language of choice of the system engineer, a long interface development problem results. Robot Raconteur® is a royalty free project intended to provide a solution to distributed control and component interfaces. Robot Raconteur® is designed precisely for the scenario of an engineer wanting to control a component from a high level language in distributed or non-distributed conditions. Robot Raconteur® is designed around the idea of Object Oriented “Service Definitions” that describe interface to a component. These service definitions are capable of fully defining a software interface and are provided to a client at runtime, meaning that a language like MATLAB does not need to have any prior knowledge of the device to connect and interact. Compiled languages will need to generate “thunk” code that handles the specifics of the interface, but this is also automated at design time. By using Robot Raconteur® as the interface to a component, it is immediately capable of distributed control over networks, local control, and interface to supported languages.

Website: 
https://robotraconteur.com/