Jump to content

User:Supertick/sandbox

From Wikipedia, the free encyclopedia

{{multiple issues|notability=April 2012|orphan=April 2012|unreferenced=April 2012}}

My Robot Lab
Written inJava
Operating systemLinux, Mac OS X, Windows, Android (operating system)
TypeRobotics suite, OS, library
LicenseGNU GPL v2
Websitemyrobotlab.org

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]
OpenCV "In Range" filter being applied and manipulated through a GUI

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]
Listing of available and currently running services
MyRobotLab running on Android with Arduino panel showing
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
Message routing screen of the GUI service, showing current message routes
IDE with Python script to control services. This example script recognizes speech and replies with canned responses

See also

[edit]

References

[edit]

Category:RoboticsCategory:Robotics_software