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.

Arm Service

javadoc

Arm needs development.  The proposal is to have a service where lengths, joints and limits can be specified and forward or inverse kinematics can be used to predict or plan spatial location.


ChessGame Service

javadoc

The ChessGame service is a chess engine which can recieve and send MyRobotLab messages to other services.  It was used in Patrick Mccabe chess robot, featured here on Hackaday.

 


ACEduinoMotorShield Service

javadoc

Service to control the Aceduino motor shield.  The shield comes with its own library and is intended to control motors and servos.  Loading the service automatically downloads the aceduino library and modifies the MRLComm.ino so that calls can be made to that library from the MyRobotLab service.

This is the Aceduino's library for the shield

Example in Python


ThingSpeak Service

javadoc

Chart data into the cloud with the ThingSpeak service.  ThingSpeak is a site which allow posting, displaying of data.  This service allows an easy gateway to MRL data to be sent and displayed there.  Any data producing service (Arduino, OpenCV, Runtime, etc) can send messages to the ThingSpeak service and it will relay the data to a user defined channel.


Tracking Service

javadoc

Tracking Service is used to find and track objects.  This service typically runs as a closed loop with feedback.  

 


Houston Service

javadoc

Houston is a robot service based on DancesWithRobot's (DWR)  Houston project.  Houston is on the bleeding edge of development.

Houston consists of the following sub services :


InMoov Service

javadoc

The InMoov service allows control of the InMoov robot.  This robot was created by hairygael.  It's an open source 3D printable robot.  All of the parts and instructions to build are on his blog (http://inmoov.blogspot.com/).


AdafruitMotorShield Service

javadoc

The  Adafruit Motor Shield is a service which will create a number of sub services.  It will create 4 Motor, 2 Servo, and 1 Arduino service.  This shield uses its own library, so MRLComm.ino will need to be modified.
Fortunately, the Arduino service will have the modified MRLComm.ino pre loaded in its editor.  This will need to be compiled & uploaded into the Arduino.


Joystick Service

javadoc

This service allows input from usb joysticks or gamepads. You can attach to a joystick and examine axis or button data.  These button and joystick events can be sent to other services, such as servos or motor services.  It could be used for a "manual" override to take control of a robot.

Since Servos require a range of values from 0 to 180, and Joystick's raw data is between -1.0 and 1.0 a tranform is possible.   To transform -1.0 to 1.0 to 0 to 180 we need a multiplier and an offset.  In this case the multiplier is 90 and the offset is 90.


Roomba Service

javadoc

This service allows MRL to connect to a Roomba.  The GUI Service provides the RoombaComm http://hackingroomba.com/code/roombacomm/ for manual control and testing.

Programmatic control can be done with Python through the Python service.