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.

IPCamera Service

javadoc

The IP Camera service allows a video feed from a mjpeg source. At the moment, it also allows control of a Foscam pan / tilt camera using the Foscam API.

This can be used to get image data from an IPCamera to OpenCV, however, it is also possible to use OpenCV directly.  OpenCV has an IPCamera framegrabber which will decode the source of an mjpeg server on the internet.

References:


JFugue Service

javadoc

JFugue service is a wrapper for the JFugue project.
JFugue is a great open-source Java API for programming music without the complexities of MIDI.
JFugue makes programming music this easy:

References:


TopCodes Service

javadoc

TopCodes service allows to recognize a special code. You can print these codes using the attached topcodes.pdf.

The service gives back the following information :

  • Number of the code recognized
  • Coordinates of the center of the code (x,y)
  • Diameter of the code (which can be used to find distance)
  • Angular rotation of the code

​THERE ARE 99 DIFFERENT CODES.

CAMERA SHOULD BE AS PERPENDICULAR AS POSSIBLE TO THE CODE, IN ORDER TO WORK WELL.


InverseKinematics Service

javadoc

This service allows the calculation of inverse kinematics for a (n) degrees of freedom robot arm, mounted on a rotating base..

Insert your point coordinates (x,y,z) and your rods length, and it will calculate angles of rods and base in order to reach that point

TODO : send calculated angles to arduino service and servos service

References


FindHuman Service

javadoc

Attempts to find humans through OpenCV facedetect. Utilizes a pan / tilt kit and LKOptical track points to track human after detection.

 

 

So far you have to use Eclipse and change the FindHuman.java file in the service directory to set your Arduino pin and com port settings, etc. Then start it like you would any other MRL Service.


Twitter Service

javadoc

References

[[Twitter.simpletweet.py]]

[[Twitter.uploadpicture.py]]

[[Twitter.uploadFromOpenCV.py]]


TesseractOCR Service

javadoc

TesseractOCR will use optical character recognition on an image to read English words.

Currently limited to Linux 32/64 bit, and Windows 32 bit. It is possible to run on Windows 64 bit by download ing the Java 32 bit JRE, and then starting MRL in 32 bit Java.

There is currently one method to use,
public String OCR(SerializableImage image)
pass TesseractOCR an image, and it returns a String of text.

example: 
This example reads the upper left corner of the screen:
 
AWTRobot awt = (AWTRobot) Runtime.createAndStart("awt", "AWTRobot");
awt.setBounds(0, 0, 100, 100); 
TesseractOCR tess = (TesseractOCR) Runtime.createAndStart("tess",
"TesseractOCR");
tess.subscribe("publishDisplay", awt.getName(), "OCR");

AWTRobot Service

javadoc

This service uses java.awt.Robot to provide a video stream of your screen, and to allow access to programmatically clicking the mouse and pressing keys.


Sphinx Service

javadoc

Sphinx is a speech recognition service (Speech To Text)