Tuesday, August 27, 2013

Introduction to myrobotlab (MRL)

First, let me say that I am a user of myrobotlab. Not a developer. With that in mind, it is also safe to say that I really know very little about the software. This post is just a collection of things I have learned and observations I have made from a user's perspective.

For a while I have been wanting to do a little vision processing, and being a FIRST robotics alumni I had seen a bit of this done. While I had never been actively a part of the programming, I also knew that FIRST teams get a "free" copy of roborealm with their kit every year, and that is what many teams use for vision processing. Well that is all well and good, but I like free. I began looking for a free version of roborealm and found myrobotlab.

Well for those that may be coming from the land of Arduino (like me) MRL is completely foreign. At first glance, it looks all GUI and friendly, then you discover a hidden underworld of features that can only be found by someone who already knows where they are. Regardless, after getting it installed, getting OpenCV (a widely used computer vision library. See HERE) up and running is pretty simple. You can have your camera finding your face in a matter of seconds. Now, doing something with that data is more tricky.

Now like I said, I am in no way a trusted source on this, but this is my take on how MRL works. You have a set of services running within a Java infrastructure. These services can do just about anything. At the time of this writing the main way you link these services together is by a Python service. From there you can set up the links from service outputs to service inputs. There's just one problem. How do you know what each service can input and output?

Well that is where not being a real programmer is a real pain. Basically, play around with stuff. Look at the examples on each service page and HERE. If you encounter a problem, post on the forum or in the chat and ask a developer. With features progressing so quickly, sometimes examples get left behind. One useful forum topic on this is found HERE. In it GroG discusses several ways to look at the various methods for communicating with each service.

That's about all I can say about it. I have been playing around with it, and as someone who learned to "program" on an Arduino less than a year ago I can say that the fog does lift. Play with some examples and ask questions, and you will figure it out. Of course, if you already know Java or are a real programmer, I'm sure you will have no problems with it.

I have been playing around with the serial, keyboard, and opencv services mostly. Hopefully I will be able to post some cool projects with them in the very near future. Until then, check out myrobotlab. Such opensource projects are always neat to check out even if you aren't going to use them. The people on there are always nice, and I'm sure there's room for one more user.



  1. installed java and myrobotlab. gone to windows gui batch file, and get message that javaw cant be found, any ideas?

  2. I seem to remember getting that error at one time. I remember there were different versions of java you could install. Maybe you got the wrong one? To be honest, I have since moved onto other things. This stuff got too software heavy for me. You're best bet is to ask on the MRL website or snoop around the forum there.