This is a listing of Services which can operate in MyRobotLab framework. You could think of these Services as being little software machines managing input, output and communicating to other systems.

Scheduler

javadoc

The Scheduler can be used to schedule and execute tasks and messages at specific and repeatble intervals.  It wraps the open source Java Quartz project and provides complex and sophisticated event scheduling. 

There is a simple interface and a cron interface which allows tasks or messages to be scheduled.  For a more simple event producing service you may want the Clock service.

Servo

javadoc

The Servo service is used to control servos through a micro-controller such as an Arduino.  First an Arduino will need to be loaded with an appropriate PDE (such as ArduinoSerialBare.PDE).  An Arduino service will need to be started and configured to communicate with the Arduino micro-controller. 

Arduino

javadoc

The Arduino service is used to control and retrieve data from the very popular Arduino micro-controller.   A client .PDE will be needed for the Arduino.  In order to use this service the ArduinoSerialBare.PDE will need to be loaded on the Arduino. This will allow MyRobotLab to control and recieve data from the Arduino.

Jython

javadoc

The Jython Service allows development and execution of scripts which interact and control other Services.  The GUI provides an rudementary IDE for this Service.  You can find examples and test scripts in the menu.

For example, this Service could be used to glue the OpenCV Service to the Servo's of a Pan-Tilt kit to provide object tracking.

Runtime

javadoc

The Runtime is the first Service to start when MyRobotLab begins.  Every running instance of MyRobotLab includes a single Runtime Service.  The Runtime is a singleton, which means there should be only one per running process of MyRobotLab.  Its responsibilities include the creation, removal, and merging of Services into the Service registry.

The registry is critical for routing communication between Services.

Android

javadoc

Master service for MyRobotLab running on Android.  It controls what sensors and resources are exposed and running (GPS, Accelerometer, Camera, Bluetooth, etc)

It is a singleton.  Which means only a single instance can be running on any Android device, however, multiple Android devices can pool Services & resources.

Motor

javadoc

A general DC continous Motor which is controlled by 2 inputs.
Direction and Pulse Width Modulation control lines are necessary.  A motor controller (such as Arduino) is needed for the Motor service to attach.

Logging

javadoc

A helpful diagnostic Service which knows how to associate itself with a user interface.  It can display messages from other Services.

Clock

javadoc

The Clock can generate a regular series of messages for other Services to consume.

Proxy

javadoc

The Proxy Service allows interoperability between different services.  This would be necessary for Computers running Sun's Hotspot JVM to interact with Phones or devices running Android's the Dalvik JVM.