User:Supertick/sandbox

Summary
MyRobotLab is an open source Java software framework for robotics and creative machine control. It is a service oriented framework. Services can be added, started, activated, and removed without restarting the system. Inspired by the prevalence and quality of open source robotic projects available on the internet, MyRobotLab was created as a foundation to allow these projects to integrate into a single homogenous running system. The service wrappers contain open source projects such as OpenCV for computer vision, Sphinx 4 for voice recognition, FreeTTS for speech synthesis, and many others.

The framework has the capability of being distributed on a peer to peer level. Multiple instances can run on a single computer or instances can run on multiple heterogeneous computers while sharing resources and services.

Design Principles
One of the design goals was to make robotics more accessible to people who may not have much programming experience without limiting the capabilities of the software. An example of this would be the OpenCV service wrapper. The GUI view into this service enables the users to apply and experiment with OpenCV filters quickly, without having to program.

Messaging
MyRobotLab uses a simple message structure. Data payload of a structure is a java.lang.Object array. Each service has its own message queue. Message destinations are addressable by a unique name. Messages can be sent from service to service, in process, or out of process to other services. Messages are serialized through UDP or other protocols. Locally messages are just accessed via reference for speed.

Levels of Users
The graphical user interface is just another service. This service can be removed from systems which do not need any human interaction. The user's interface was constructed to allow non-experts the ability to quickly experiment and observe changes in the running services.

For intermediate level use, Python can be used to programmatically interact with the services. Some pre-loaded scripts are deployed with MyRobotLab to allow experimentation.

Experts can create their own services in Java. These new services can be added and inter-operate with services bundled with the MyRobotLab framework.

List of a few Services and their Providers