The QA Countdown to Release

Here is a list of the current services in MRL so we can figure out what to QA.

Links :

Supported Services should have the following check boxes

  • A service page to document the service
  • An example python script that is known worky
  • At least 1 platform that is supported
  • Javadocs should have reasonable details
  • A minimal unit test (This may be too difficult to do)

Supported Operating Systems for MRL should be

  • Windows 7/8 64 bit / 32 bit  (some windows tablets are apperantly 32 bit?!)
  • Linux 64bit ?  (which flavors?)
  • Mac OSx 
  • Others? arm6 / arm7 variants of linux?  32 bit linux?


  • -there might be more problems, but I haven't investigated more, because without the two above it is difficult to do anything with InMoov.

  • purge repo button
  • Capability to save service settings - e.g. last Arduino board type.
  • A single worky script in each Service Page.
  • Master & Develop - complete seperation for releases & runtime - including repo
    There are some hurtles to this as the url in some of the repo ivy files are self referential - additionally we or I need to know the details of how to do a develop to master release - the steps need to be well define - do I rename the current master ? delete all the contents? something else ?  Merge to release ? what is the merge process ?
  • Speech - the current Speech service needs to turn into a interface service with peers - each peer can be an implementation of Speech service methods - MarySpeech should be the default.  The current google implementation should be pushed into a GoogleSpeech service (which doesnt work - and possibly should be sent to the attic) (THIS RELEASE)
  • AI - should be done in a similar way -  one AI Service - default implementation is ProgramAB - another Implementation would be the CleverBot service (wraps ) - which appears very much alive 
  • Vision - same as above OpenCV default - BoofCV & Openimaj (seriously start looking at these other two) (NEXT RELEASE)
Service Name Service Page Needed for Release Supported Operating Systems Notes
_TemplateService No No ? Example for programming a new service only.
Adafruit16CServoDriver Yes No ? ?
AdafruitMotorShield Yes No ? ?
Agent No Yes All

Needs work. This is supposed to manage the command line - and build a new process depending on operating system.  Potentially MRL will have 2+ processes 
1 Agent process to manage all other instances.
See  Minecraft bootloader for references :)

Got to avoid zombies and make sure the cli service reads stdin properly in cygwin..

AndroidSpeechRecognition No No ? ?
Arduino Yes Yes ? Since the JSSC switch from RXTXLib I think I am seeing some problems in the read - the data looks erratic
Arm No No ? Woah.. where did this service come from?  maybe merge with IK3D ?
AudioCapture Yes Yes All Needs to be merged with AudioFile into new Audio service which treats Audio data more generically.
AudioFile Yes Yes All Needs to be merged with AudioCapture into more generic Audio service.
AWTRobot Yes No All Move to attic - swing screen controller
BeagleBoardBlack Yes Yes ? I think people use this?
Blender Yes Yes All
Which Blender Supports
should be tested for release with example to talk to vInMoov (not sure about the actual blender files?  Maybe Gareth doesn't mind if we check them in?)
ChatBot No No ? move to attic.  no real code here.
ChessGame Yes Yes ? Pure Java - used for the robotic chess boards
ChessGameManager No No ? Enhancement for multi-user use of chess board
ChumbyBot No No ? Is old service for the Chumby processor - has a simple avoidance routine - Does not use Peers as it should, probably needs to be deleted or moved to the attic
CleverBot Yes No ? Mr. Turing
CLI No Yes All Need to fix reading stdin.  Needs much better documentation...
Clock Yes Yes All A clock service that can be started and stopped.
CloudConnector No No ? probably a candidate for the attic?
Cron Yes Yes All This would be nice to have if possible,perhaps a quartz based service, so it's pure java

This does work - it is pure Java, pretty sure I use this for my sprinklers ;)

Drupal No Yes ? For Shoutbox integration (we should support services.. mrl should not break the shoutbox)
EddieControlBoard No Yes ? Harland uses this - would be nice to get him to test it - hard to coordinate, but Harland seemed open to maybe auto testing on his platform.
FaceTracking No No ? Move to Attic - this is just a configuration of Tracking
GoogleAPI No No ? Move to Attic to clean - good idea if we want to post pictures or documents - but S3 could be a viable back end to - no current need in any user story 
GoogleSTT Yes No ? I don't think this is worky anymore.  They don't like robots?   
MEH - not an open source service - move to Attic
GPS Yes No ? ? - kmgerald wrote this one - I think it sort of works - pure Java
Graphics No No ? The idea is good - a general purpose graph service, but not really implemented - should go to the attic
GUIService Yes Yes All Like it or not, a lot of people still probably want the swing gui.
GoogleSpeech No No All Speech back-end provider
Hadoop No No None This is a place holder service. move to attic.
Houston Yes No ?

Dances with robots cool little bot - either needs to preform testing or get moved to the attic.  there's code here.  

This could be replaced with a python script..

To the attic..  

HtmlFilter No Yes All Required by program ab to filter text to speech.
HTTPClient No No ?

A client as a service?  Semantically that's a bit odd. - 

Ya your right..   I really wanted something to parse HTML - so a JSoup wrapper would be better.  

Let integrate "Apache Tika" for handling basic text extraction and html parsing.  JSoup is cool, but i think Tika does 80% or more of what we want for that.  (Having a web crawler service would be cool..but i digress...)

Incubator No Yes ?

Need some clean up - but this could provide integration and more auto-testing

more auto testy is good.  lets see if end users can make use of it.

InMoov Yes Yes ... We should pick which platforms are supported here.
InMoovArm Yes Yes ? yes
InMoovGestureCreator Yes Yes ? I think people like this service ,maybe MaVo can help test and validate.
InMoovHand Yes Yes ? yes
InMoovHead Yes Yes ? yes
InMoovTorso Yes Yes ? yes
InverseKinematics Yes Yes ?

Maybe merge with 3d service?
Ya Merge

merge services before release

InverseKinematics3D No Merge All

Maybe merge with the 2d IK service?
Ya Merge

IPCamera Yes Yes ? looks like there's some code here.  Is this to stream video from an IP camera?  Maybe replace this with just OpenCV ?
JFugue Yes No ?

Clever Sound Synthesis & Music generator. 

Would love to get this in, but we'll have to reconsider how we handle audio streams in MRL to do it properly.  I.E. pipe from AudioFile to JFugue ...

Joystick Yes Yes ?

Needs work .. turns out ids are not very standard - 
However,  component types are Axis, Button, etc
Change to publishAxis(String id, int value)

yes to refactor.. but we'll need to make sure we update example scripts to show the changes.

Keyboard Yes Yes All ? Useful service - funny but Joystick has "more" keyboard capability but Joystick also JNI dependencies - Should keep it - its pure Java so could be low maintenance

Needs WebGUI component

LeapMotion2 Yes Yes Win64 ? It's too fun and I want to make sure this is worky.  Plus it gives x,y,z coordinates that we can use to test IK3D !
LIDAR No No ? Heh .. I wish I could test - Don't have the hardware.  If someone has hardware to test, we'll bring it back in.
Log No No ? record & playback of messages ?  sounds pretty good, but looks like it's still lacking a lot of functionality.
Maestro Yes No ? Looks like a servo control shield for the Arduino?  not sure looks kinda sparse
MagaBot No No ? open source hardware - but I think the project is over - can't test - move to attic
Mail No Yes ?

e.t. phone home...  lets see if we can get a simple "send an email" service support.  support some sort of a sensor event for example.. this is good stuff.

MarySpeech No Yes All Pure java, should be able to replace 
Motor Yes Yes All
Depends on a
I suspect people want this also.
MouthControl Yes Yes All Part of inmoov , is it not?
MPU6050 No No ? looks light on code and documentation.. maybe it's worky?  if someone can test it, we can include it.
MQTT No Yes ? Play nice with the coming IoT protocols. lots of code here already, lets spec what we want it to  do.
MultiWii Yes Yes ? overlaps with joystick a bit, but if it's worky lets pull  it forward.
MyoThalmic No Yes

Win64, Lin64, OSx ?

Not sure what platforms this is worky on.
OculusDIY No Yes ? Ale, is the only one using this currently ? 
OculusRift Yes Yes Win64 DK1 support definitely should work.  DK2 isn't worky yet.
OpenNI Yes Yes

Win64, Linux64,


Kinect should work on at minimum those 3 platforms.
ParallelPort No No ? Could send this to the Attic - no one has parallel ports anymore 
PICAXE No   ? There's a bunch of code here.. maybe it does something?
PickToLight No No ? I suspect thi is a legacy sort of service.  
PID Yes Yes All This is pure java I think, so shouldn't be an issue. - needs to switch & delete with PID2
PID2 Yes Yes All

I think this is pure java.  Maybe consolidate with PID ?

Ya Remove PID - consoludate the services which use multiple PIDS (like Tracking) - to use a single PID2 service

Pingdar No Yes ?

Seventeen *days?* Hey man, I don't wanna rain on your parade, but we're not gonna last seventeen *hours!* Those things are gonna come in here just like they did before. And they're gonna come in here... 

If this is worky, lets document and support.

Plantoid Yes Yes ? DHUltis project - need auto testing from him :) we should continue to support robots that need creative control.  maybe we can ask him to test & help clean up documentation.
ProgramAB Yes Yes All Pure java, we should publish an MRL AIML set.  Documentation needs some updating.
Proxy Yes Yes ? Nothing uses this?  
Python Yes Yes All Definitely required 
When is the NodeJS coming ? ;)
uir Yes   ?

P4J wrapper - very platform dependent - makes testing complicated

(Is this the same service as python ?)

RecorderPlayer No Yes ? Does this work in conjunction with the log service?  I do like auto playback of messages.
Red5 No No ? attic
RemoteAdapter Yes Yes All Swarm MRL for all! 
RobotPlatform No Yes ?

Generalized differential drive platform - could be very useful - needs work

elves love work.

Roomba Yes Yes ? If someone can test.. there's a zombie roomba in my basement.. maybe i can find a way to communicate.
ROS No No ? ?  What is ROS ?
Runtime Yes Yes All Should be rock solid!
Sabertooth Yes Yes ? GroG needs to Test This !!!.
Security No No ?

Good Security service .. capable if configured to do message/method level security I think

Can also provide Simple Auth - needs interface with the WebGUI

security is a big topic.. the web gui should have some basic auth support.. but i'm surprised that wouldn't be a netty level config or something like that.

SensorMonitor Yes Yes ? There's some code here, not sure what it does or how to test, but if it's worky lets keep it.
Serial Yes Yes   used by arduino.. so fundamental to have serial port support.  support varies from platform to platform.
Servo Yes Yes All Needs testing in WebUI !!! Additionally Serial has recently switched from RXTXLib to JSCC - more testing
ServoOrchestrator No No ? MaVo ?  This looks pretty specific for a certain implemenation.  There is a lot of code here though.
Shoutbox No Yes ? Never shall we break the shoutbox!
SLAM No No ? Either slam or slambad was semi-worky?   lets pick one.
SLAMBad Yes Yes ? at least check what state it's in.
SoccerGame No No ? Delete or move to attic
Solr Yes Yes All Pure java service, just a client that can query to Solr.
Speech Yes Yes ?

Google speech is no worky.  Consider MarySpeech instead.

create interface.  update inmoov to use maryspeech instead.

Sphinx Yes Yes ? Should be upgraded to some better technology.  Maybe we do something different with the Chrome webspeech toolkit
Sprinkler No Yes ? Grog's house shall be watered!  but maybe we make it more generic so others can water their plants too?
Stepper Yes Yes ? I expect people want/use this one.
Sweety No Yes ? creative robots need creative control.
TesseractOCR Yes Yes ? requires native code, but this would be nice to support and reasonable easy to test.
Test No No ? Seem like test services that maybe should not be part of the supported release
TestCatcher No Yes ? Seem like test services that maybe should not be part of the supported release

Is critical part of current testing

TestThrower No Yes ? Seem like test services that maybe should not be part of the supported release

Is critical part of current testing

TextTransform No Yes All pure java, should document it if we want it in the release.
ThingSpeak Yes Yes ? review documentation and test if it's worky.
topCodes Yes Yes ? Is this part of OpenCV ? if so,  merge this as an open cv filter.
Tracking Yes Yes Pure Java
Depends On OpenCV
nice service will be very interesting to test.
TweedleBot No No ? ? Attic !  .. old project
Twitter Yes Yes All We should test this, it'd be nice for the build to tweet that a new release is ready, but probably not necessary.
UltrasonicSensor Yes Yes ? If someone has one, they can test for us.
VideoStreamer Yes Yes ? I suspect OpenCV angluar gui will need this?  maybe wrong...If not. maybe this is attic?
OpenCV Yes Yes Win64, Linux64, Mac OSX Should make sure this is worky.  Consider Ras PI / PI2 ?
VirtualDevice No Yes ? virtual serial port?  needed by blender service I think? good for auto testy.
WebGUI   Yes All

New Angluar GUI!  we'll worry about each service supporting it separately from this.

Ya alot of work ! .... High Priority would be

OpenCV/VideoStreamer - with H.264/265
Rock Solid Serial
Rock Solid Arduino

WebGUI3   No   Attic
Wii   Yes   Wii controller as a sensor / maybe this could implement roll/pitch/yaw ?  similar to myo band and leapmotion?  maybe interface these up?
WiiBot No No   creative robot?  maybe it needs creative control?  If we add a service page and an exmaple script, we can pull it in.
WolframAlpha   Yes   If we can continue to use the API ID / API Key, lets support this.
XMPP   No All I suspect some people might use this to listen to the shoutbox?  If not let's not support it


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
GroG's picture

Cool kwatters ! Where's the

Cool kwatters !

Where's the OS columns ?  

GroG's picture

Perhaps User Stories Too

Perhaps User Stories Too ?

  • I'm a noobie InMooover, and I've just printed my first starter kit - what are the easy steps I need to make in order to do cool stuff with it (needs a script of cool things to do with finger starter + an automated integration test which verify its always worky)
  • I want to do easy Head Tracking - (script to provide that - automated test to test it every build)
  • I want to talk to my InMoov and have it talk back to me (same as above :) ... etc..
GroG's picture

Here's the old one which fell

Here's the old one which fell out of disuse many moons ago - but we can mebbe keep the image icons or get other ideas -

Yours is development - at the max there could be 2 - 1 for master & 1 for develop

Just throwing out ideas .. we'll figure the best way when the dust settles...

juerg's picture


got a Raspi2 but can get only 5 frames/sec with a USB cam for the face tracking - that is not enough. Old Raspi might even be worse.

Maybe the directly connected Raspi cam will do better but its short distance as I understand - so the Raspi would need to go into the head (or into a hat or helmet ..).

Will try to use Odroid XU4 with OpenCV but do not have it in my hands yet.

Many services - puhhh


Alessandruino's picture

Ehi juerg... Ya raspi cam is

Ehi juerg... Ya raspi cam is way faster than the usb one... Length of the flat ribbon cable isn't a problem cause you can replace it with a longer one...

I don t have a raspi cam module but my cousin does... And I asked him to make a small video to show the speed...

Here it is :


kmcgerald's picture

I have several

I have several cams for the Pi and several Pi boards (B, B+, and 2) so I can test this soon. I think I'm going to put one in InMoov's eye.

DancesWithRobots's picture

Houston to the attic. . .

Yeah it's time to retire Houston.

The Houston service was composed of a bunch of other "off the shelf" MRL services--some of which apparently don't even exist any more.  For that reason, it's a relatively generic assembly.

My current project is based on a Raspberry Pi 2 with Adafruit motor and servo hats.  (The servo hat should be equivalent to the Adafruit 16 channel servo controller.) This arrangement GREATLY simplifies power requirements and mounting.  I hope to write it up and post it soon.

GroG's picture

Welcome back to the

Welcome back to the collective DWR ! :)   
Excited about your new project.  Keep us updated !

Officially putting Houston into the attic.  Salute <o

kmcgerald's picture

MQTT Service

I borged this in before disappearing and based on this page ( I had it worky.  Once I find my BBB I'll spin up my MQTT broker again and see if the service still works.  

mecax's picture

missing service seems raspi

hello KW!  missing service seems raspi    or this does not work.

kwatters's picture

RasPI service

So, the current RasPI service is a bridge to the Pi4J project.  What support/features are you looking for?  My guess is generic GPIO support?  

It seems like using a ras pi 2 for the inmoov could be a great thing if we can control the servos off of the gpio ports.

There is a ras pi service in MRL,  I have no idea how worky it is.  You should be able to create one and call the methods that are listed in the Javadocs

What sort of functions should we have for the raspi/pi2 for GPIO support (or other devices?)  

Lets keep it simple to start...




GroG's picture

Backstory.... Ya general GPIO


Ya general GPIO support initially - potentially too is the I2C stuff which I've used with MRL to do the PickToLight stuff on a raspi.

But I2C drivers for specific sensors & actuators should be able to be used in any environment (not just RasPi) - this started the i2c package in mrl

MdG_NL's picture

Servo / InMoov service with Acceleration settings.

Is there a easy way to include a acceleration option in the Servo service or in a service from InMoov ?

Most servo's will start direct in full speed to move to the new position.
This gives a higher risk to burn a servo !

If this is possible, it will protect a lot of servo's :-)

kwatters's picture

approximate velocity

It's possible to simulate velocity control with the setSpeed on the servo...  

In theory, you could numerically integrate the acceleration to compute velocity and use setSpeed()  .. 

In reality, hobby servos don't have speed control.  Motors however, do have speed control.

If you want the servos to run slower, you can lower the voltage :)

mecax's picture


try something like, maybe works>

(assuming it is in position zero)

servo01.setSpeed(0.2) # set speed to 20% of full speed

servo01.setSpeed(0.50) # set speed to 50% of full speed

servo01.setSpeed(0.99) # set speed to 99% of full speed

MdG_NL's picture

Thanks Guy's for thinking

Thanks Guy's for thinking about this.

The reason why (I think) it's better to include this in the basic InMoov service, is that many starters don't now how to work with MRL.
I must say, I have to get in MRL to so I can't think about solutions right now.

So this question is more based for starters with a InMoov or "look like InMoov" project.

A option to lower the power voltage isn't the best way, because you will need the full torque.
I was more thinking in a ServoSlow idea, so the servo is at the beginning going in small steps to his new position.
With small steps, the servo is using less power.
You can see this with a endless servo, you will see in his center/sero position a small speedcontroled option.

I hope you understand my idea/suggestion.
If I now more about MRL, I will play with this and will think about better solutions :-)