User:Supertick/sandbox
{{multiple issues|notability=April 2012|orphan=April 2012|unreferenced=April 2012}}
![]() | |
Written in | Java |
---|---|
Operating system | Linux, Mac OS X, Windows, Android (operating system) |
Type | Robotics suite, OS, library |
License | GNU GPL v2 |
Website | myrobotlab |
Summary
[edit]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
[edit]
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
[edit]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
[edit]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
[edit]

Service Function | Implemented by |
---|---|
Computer Vision | OpenCV |
Text To Speech | FreeTTS |
Speech to Text | CMU Sphinx |
Micro-processor Serial Communication | RXTX |
Scripting IDE | RsyntaxTextArea |
Scripting | Python |
MP3 Player | Javazoom |
Wii Sensors | WiiUse & WiiMote |
Logging | Log4J |
Joystick | JavaJoystick |


See also
[edit]- Robot Operating System (ROS) (robot framework)
- Orca (robot framework)
- RoboMind - Educational software to learn the basics of robotics and programming.
- Robot software
- Open-source robotics
References
[edit]- License information
- FAQs
- Chess Robot utilizing MyRobotLab
- Chumby hardware running MyRobotLab
- MyRobotLab running on a Zotac Atom SBC
- Source repository
- List of Computer Vision Software
- OpenCV template matching
- Optical tracking and PID control
- Most Advanced Amateur Humanoid Robot (MAAHR) Project
- Object tracking using OpenCV Hue Saturation and Value filter
- Sensor monitoring using MyRobotLab