"One Service to Rule them All ! "
The Runtime Service is the first service to start whenever MyRobotLab starts. It has the capability of installing, starting and releasing all other services. You can see the services it can control under the runtime tab in the gui. Some services require additional dependencies and have to be installed before they can be started.
To install a service right click on the desired service and select install. You usually need to restart after new services are installed. To start, simply right click on the installed service and select start. One requirement of MyRobotLab is all service have to have a unique name.
To release a service right click on the service you no longer want running and select release.
You can organize your workspace the way you want by detaching or re-attaching MRL windows. To detach a service tab right-click and select detach. Each window can be sized and positioned. Drag the bottom right corner of a window to change its size.
If you want to put the service tab back into MRL you may do so by closing the service window.
MRL will automatically remember the service window positions and sizes for you, so next time you start, all the service windows will be in the same position.
If things get wonky, screens aren't appearing, or too small or off the screen - don't worry !
Stop MRL, go to the .myrobotlab directory and delete the file named gui.xml this will reset the gui to its default settings.
Getting Service Information
You can get infromation regarding a service by going to its "Service Page", if it exists. Right click on the service you are interested in in the "possible service" list in the runetime tab.
Additionally, you can go to the download page http://myrobotlab.org/download This list is hyperlinked to each "Service Page". It also displays the "Working Level" of each service - this can be interpreted as how stable or buggy they are.
At some point you may want to update MyRobotLab (MRL) to the very latest version. The very latest is commonly referred to as the bleeding edge. Updating with the bleeding edge means typically, you DO NOT need to re-install dependencies. So, you won't need to re-install Arduino, or OpenCV.
To update to the bleeding edge simply select
Help -> About -> I feel lucky, give me the bleeding edge
If you have used MRL, you have found parts that don't work. These are "No-Worky" parts! In order to help you or make a better MRL, it is often necessary to send a log file to our Crack-Dev Team.
This can be done by pressing Help -> About -> Help, it "no-worky"!
Its helpful if you make a post on myrobotlab.org (Create Content -> Blog) which describes the issue you are having. With this information we will do our best to assist you.
MRL is not the GUI ! With that said sometimes the gui fails or is closed and MRL services are still running, waiting to do something or going on their merry way without realizing that they should be dead. In situations like this you need to be a Zombie Hunter !
Step one - the coast looks clear but we suspect zombies are about - they will hog resources like cameras or usb/serial ports and not allow you to use them (BAD ZOMBIES!). Step one we get our zombie finder - on Windows this is looking in the task manager (right click on the menu bar and select task manager) .. Linux do the command - ps aux |grep java
AAAAHHH There's a ZOMBIE !!! Kill It !
Step two - Kill it !
Always Double Tap !
Windows - right click - kill task
Linux kill pid# or killall java
Step Three - Look for zombie survivors - if the coast is clear continue about your day
Good Luck ! :D
Sometime it might be desirable to change the logging level of MRL. You may want very little logging if evaluating performance or perhaps an issue has come up and you need more logging. The log level can be set with the following menu.
System -> logging -> level
DEBUG is the most verbose. WARN and ERROR have much less data which will be logged. DEBUG will log all debug, info, warn, error & fatal messages. INFO is the default level of MRL on startup, which is slightly less chatty than DEBUG.
Sharing your Desktop
Google Hangout sharing your desktop
If you are experimenting in Python, a common question is what methods can I use with a Service.
We have documented a variety of ways to get infromation regarding a Service HERE !
Adding Pictures to Posts
There is a little button which has a house and sun - hover over it and it says "Image". Press it and another dialog comes up.
Select the Upload tab.
Press Choose file and select the image file you want.
Then hit OK :)
Embed Video to Posts
Step 1 - get embed code from the video you wish to embed.
Step 2 - as your editing your post press the Embed Media button
Step 3 - paste the embed code into the dialog box - press Ok then save your post - VIOLA ! You have an Embedded Video !
It's sometimes fun & useful to put images in the shoutbox. This can be easily done with html.
The html needed looks like this :
<img src=http://www.someimage.com/myImage.png width=200 height=200 />
easy squeezy right ? - it's nice to make it no wider than width=200 because that is how wide the shoutbox is. Then you can do stuff like this.
Everyone potentially has their own personal script library. You can quickly and easily access it by just clicking on your name or picture. This will take you to your personal profile page, and your script library area.
Adding new scripts is easy, just press the Add New File button
Below is what my Profile page looks like.
A nice feature is you can reference and embed scripts in Blog and Forum posts by using double brackets.
Like this for test [ [home/GroG/test.py] ]
Its embedded now !
#file : home/GroG/test.py edit raw
# this is an embedded Python script it's really on GitHub
# and this is only a reference - so when it changes people
# will see the change on the webpage .. GOODTIMES !
pid = Runtime.start("pid","Pid")
How to auto start your MRL and execute scripts or do anything you want on startup ANYTHING !!!
Starting Python (and / or any other Service or Script on startup)
More to come....
When I get time I'll document how you can :
the mysteries of the .myrobotlab folder
how Python scripts can be generated whenever you operate things in the gui
connecting 2 or more MyRobotLab instances together over different computers
basic Arduino service operation
and any exciting requests (time allowing)