Coder Social home page Coder Social logo

inmoov's Introduction

myrobotlab

WebXR and InMoov2 Simulator

MyRobotLab Nixie Release

Open Source Framework for Robotics and Creative Machine Control You know, for robots!

Base Requirements

You will need Java 11 or newer. If you are only running MyRobotLab you need the JRE (Java Runtime Environment.) If you are going to be building from source, you'll need the JDK (Java Development Kit) Oracle or OpenJDK will work

Download the myrobotlab.zip

Download

latest Nixie 1.1.X

Starting MyRobotLab

After downloading and unzipping myrobtlab.zip into a new folder, start the appropriate script

Linux or MacOS

myrobotlab.sh

Windows

myrobotlab.bat

The first time the script runs it will automatically install all services and their dependencies, then it will launch myrobotlab. This can take a long time depending on the speed of your internet connection. The subsequent starting of myrobotlab will skip the installation stage. If a browser does not automatically start you can go to http://localhost:8888 to see the web user interface.

Building Project

MyRobotLab core is written in Java, it is a maven project - Any IDE which can load maven should work. Its web ui is written in AngularJs and html.
A few services (e.g. InMoov2 & ProgramAB) are in a different repo. The can be developed seperately so 3 build instruction sets are described.

All development environments require git and cloning the source.

Cloning Repo

create a directory to clone the repositories in (assuming you're on windows and cloning to the c:\dev directory)

mkdir c:\dev
cd dev
git clone https://github.com/MyRobotLab/myrobotlab.git
cd c:\dev\myrobotlab

Java Core

If you want to be making core changes, you will need to install a Java developement environment

Install Java 11

https://www.oracle.com/java/technologies/downloads/#java11

Building with Eclipse

Download Eclipse for Java Developers At: https://www.eclipse.org/downloads/packages/

Building with Maven

MyRobotLab builds using the Apache Maven java build system.

Download Maven At: https://maven.apache.org/download.cgi

To compile and build a myrobotlab.jar first : ensure that "mvn" (maven version 3.3+ is installed and in the path)

mvn clean install

This should produce a local build for you "myrobotlab.jar" file will be located at

myrobotlab/target/myrobotlab.jar

If you want to compile and skip the tests, you can use the standard maven approach

mvn clean install -DskipTests

Web UI Style Guide

Contributing

All development is done on the develop branch. To contribute code, the typical approach is to create an issue about the feature/bug you're working on.

From Github create a branch based off the "develop" branch with a descriptive name (and associated Issue number if available) Locally switch to the new branch Make code changes Commit & Push (frequently!) When code is ready, submit a pull request to the develop branch! Enjoy the code review, address issues and concern in the code review Reviewer merges pull request to develop. Reviewer deletes branch.

The following config should be useful to work directly on WebGui UI and InMoov2 UI if the repos are submoduled under src/main/resources/resource/InMoov2, src/main/resources/resource/ProgramAB

!!org.myrobotlab.service.config.WebGuiConfig
autoStartBrowser: false
enableMdns: false
listeners: null
peers: null
port: 8888
resources:
  # these are the only two in usual runtime
  # - ./resource/WebGui/app
  # - ./resource
  # the rest are useful when doing dev
- ./src/main/resources/resource/WebGui/app
- ./src/main/resources/resource/InMoov2/peers/WebGui/app
- ./src/main/resources/resource
type: WebGui
!!org.myrobotlab.service.config.RuntimeConfig
enableCli: true
id: null
listeners:
locale: null
logLevel: info
peers: null
registry:
- runtime
- security
- webgui
- python
resource: ./src/main/resources/resource
type: Runtime
virtual: false

Starting Flowchart

flowchart LR
    CommandLine[CommandLine]
    Runtime.main([Runtime.main])
    install{install}
    shutdown([shutdown])
    checkForStartYml{start.yml
    exists?}
    startYmlEnabled{start.yml
    enabled?}

    CommandLine --> Runtime.main
    Runtime.main --> checkForStartYml
    checkForStartYml --> |yes| loadStartYml[load start.yml]
    checkForStartYml --> |no| createDefaultStartYml[create default start.yml]
    createDefaultStartYml --> loadStartYml
    loadStartYml --> startYmlEnabled
    startYmlEnabled --> |yes| Runtime.startConfig[config = start.yml config]
    startYmlEnabled --> |no| default[config = default]
    Runtime.startConfig --> loadRuntimeConfig[load runtime config]
    default --> loadRuntimeConfig
    loadRuntimeConfig --> startRuntime[start runtime]
    startRuntime --> applyRuntimeConfig[apply runtime config
    does not process registry]
    applyRuntimeConfig --> install{install?}

    install -->|yes| loadServiceData[loadServiceData]
    install -->|no| Runtime.startConf[get runtime.startConfig config]

    loadServiceData --> findUninstalledDependencies[find uninstallled dependencies]
    findUninstalledDependencies -->installDependencies[install dependencies]
    installDependencies --> shutdown
Loading

Network Distributed Architecture

Websockets - Default Response for New Connection

sequenceDiagram
    autonumber
    box Process Id p1
    participant runtime@p1   
    end

    box Process Id p2
    participant webgui@p2
    participant runtime@p2
    end

    Note right of runtime@p1: Client runtime@p1 opens a <br/>websocket to remote webgui

    runtime@p1->>webgui@p2: Connect<br/>ws://localhost:8888/api/messages?user=root&pwd=pwd&session_id=2309adf3dlkdk&id=p1

    Note left of webgui@p2: Remote webgui@p2 and runtime@p2 attempt to subscribe <br/> to the describe method of the runtime@p1
    webgui@p2->>runtime@p1: addListener describe
    Note left of webgui@p2: runtime@p2 sends a describe request to runtime@p1
    webgui@p2->>runtime@p1: describe 
    Note right of runtime@p1: runtime@p1 responds with a describe response
    runtime@p1->>webgui@p2: onDescribe 
    Note left of webgui@p2: Based on the results of the describe,<br/> more querying and subscriptions can be processed


    %% opt Server Add Listener, Describe and Reserve
    %% end


Loading

Minimal Message API Definition

{
  "name": "runtime",
  "method": "connect",
  "data": [
    "\"http://main.myrobotlab.org:8888\""
  ],
}

Path API Definition

/{service-name}/{method-name}/{json-param1}/{json-param2}/{json-param3}...

The Path API definition is a simple way to define a RESTful API. The path is parsed and the service name, method name, and parameters are extracted. The parameters are json encoded and converted to the correct type when the method is invoked. The response is returned as a JSON object. The REST and CLI both use this API definition.

Examples

http://localhost:8888/runtime/getUptime
http://localhost:8888/runtime/connect/"http://main.myrobotlab.org:8888"
http://localhost:8888/arduino/connect/"COM3"

The exact same paths can be used in the CLI

/runtime/getUptime
/runtime/connect/"http://main.myrobotlab.org:8888"
/arduino/connect/"COM3"

1 Connection

A connection with a websocket starts with an HTTP GET

ws://localhost:8888/api/messages?user=root&pwd=pwd&session_id=2309adf3dlkdk&id=p1

2 Subscribe to Runtime Describe

When a connection is established between two different myrobotlab instances p1 and p2, the following messages are sent. The first message is adding a subscription to the runtime of the other process. The subscription is for the function "describe". The second message will be a describe request.

{
  "msgId": 1690145377501,
  "name": "runtime",
  "sender": "webgui@p2",
  "sendingMethod": "",
  "historyList": [],
  "properties": null,
  "status": null,
  "encoding": "json",
  "method": "addListener",
  "data": [
    "{\"topicMethod\":\"describe\",\"callbackName\":\"runtime@caring-hector\",\"callbackMethod\":\"onDescribe\",\"class\":\"org.myrobotlab.framework.MRLListener\"}"
  ],
  "class": "org.myrobotlab.framework.Message"
}

3 Send Describe

{
  "msgId": 1690145377501,
  "name": "runtime",
  "sender": "webgui@p2",
  "sendingMethod": "",
  "historyList": [],
  "properties": null,
  "status": null,
  "encoding": "json",
  "method": "describe",
  "data": [
    "\"fill-uuid\"",
    "{\"id\":\"caring-hector\",\"uuid\":\"383b4070-2848-4c3d-85f4-e7f6e081d18e\",\"platform\":{\"os\":\"linux\",\"arch\":\"x86\",\"osBitness\":64,\"jvmBitness\":64,\"lang\":\"java\",\"vmName\":\"OpenJDK 64-Bit Server VM\",\"vmVersion\":\"11\",\"mrlVersion\":\"unknownVersion\",\"isVirtual\":false,\"id\":\"caring-hector\",\"branch\":\"develop\",\"pid\":\"1500044\",\"hostname\":\"t14-gperry\",\"commit\":\"55d0163663825dd0aaa10568bc01e035c7f21532\",\"build\":null,\"motd\":\"resistance is futile, we have cookies and robots ...\",\"startTime\":1690135873670,\"manifest\":{\"git.branch\":\"develop\",\"git.build.host\":\"t14-gperry\",\"git.build.time\":\"2023-07-23T10:38:46-0700\",\"git.build.user.email\":\"[email protected]\",\"git.build.user.name\":\"grog\",\"git.build.version\":\"0.0.1-SNAPSHOT\",\"git.closest.tag.commit.count\":\"13447\",\"git.closest.tag.name\":\"1.0.119\",\"git.commit.author.time\":\"2023-07-22T20:15:51-0700\",\"git.commit.committer.time\":\"2023-07-22T20:15:51-0700\",\"git.commit.id\":\"55d0163663825dd0aaa10568bc01e035c7f21532\",\"git.commit.id.abbrev\":\"55d0163\",\"git.commit.id.describe\":\"1.0.119-13447-g55d0163\",\"git.commit.id.describe-short\":\"1.0.119-13447\",\"git.commit.message.full\":\"Cron enhanced 2 (#1318)\\n\\n* Improved Cron and Cron history\\r\\n\\r\\n* forgot one\\r\\n\\r\\n* Teamwork fix of Hd44780\\r\\n\\r\\n* updated from review\",\"git.commit.message.short\":\"Cron enhanced 2 (#1318)\",\"git.commit.time\":\"2023-07-22T20:15:51-0700\",\"git.commit.user.email\":\"[email protected]\",\"git.commit.user.name\":\"GroG\",\"git.dirty\":\"false\",\"git.local.branch.ahead\":\"0\",\"git.local.branch.behind\":\"0\",\"git.remote.origin.url\":\"[email protected]:MyRobotLab/myrobotlab.git\",\"git.tags\":\"1.1.1194\",\"git.total.commit.count\":\"14104\"},\"shortCommit\":\"55d0163\",\"class\":\"org.myrobotlab.framework.Platform\"},\"class\":\"org.myrobotlab.framework.DescribeQuery\"}"
  ],
  "class": "org.myrobotlab.framework.Message"
}

The describe message sends instance and platform information in return, the return data from describe, will return with an onDescribe message that contains all the service information from the remote (p2) process

4 Process onDescribe Response

{
   "msgId":1692478237121,
   "name":"runtime@webgui-client",
   "sender":"runtime@unhealthy-giddy",
   "sendingMethod":"describe",
   "historyList":[
      "unhealthy-giddy"
   ],
   "properties":null,
   "status":null,
   "encoding":"json",
   "method":"onDescribe",
   "data":[
      "{\"id\":\"unhealthy-giddy\",\"uuid\":null,\"request\":null,\"platform\":{\"os\":\"linux\",\"arch\":\"x86\",\"osBitness\":64,\"jvmBitness\":64,\"lang\":\"java\",\"vmName\":\"OpenJDK 64-Bit Server VM\",\"vmVersion\":\"11\",\"mrlVersion\":\"unknownVersion\",\"isVirtual\":false,\"id\":\"unhealthy-giddy\",\"branch\":\"grog\",\"pid\":\"2462761\",\"hostname\":\"t14-gperry\",\"commit\":\"5610a6602bef704a84160d7d067af3b417be1998\",\"build\":null,\"motd\":\"resistance is futile, we have cookies and robots ...\",\"startTime\":1692478154179,\"manifest\":{\"git.branch\":\"grog\",\"git.build.host\":\"t14-gperry\",\"git.build.time\":\"2023-08-19T09:36:36-0700\",\"git.build.user.email\":\"[email protected]\",\"git.build.user.name\":\"grog\",\"git.build.version\":\"0.0.1-SNAPSHOT\",\"git.closest.tag.commit.count\":\"13778\",\"git.closest.tag.name\":\"1.0.119\",\"git.commit.author.time\":\"2023-08-19T09:21:48-0700\",\"git.commit.committer.time\":\"2023-08-19T09:21:48-0700\",\"git.commit.\"class\":\"org.myrobotlab.framework.DescribeResults\"} ....   WAY WAY TOO MUCH DATA !!!!  ..."
   ],
   "class":"org.myrobotlab.framework.Message"
}

The response back will include serialized services which should be refactor to be more minimal, and more describe parameters which can return interfaces or methods Services returned from the Describe request have been registered. By default they are only the currently "local" registered services.

The response should be refactored so that the material returned is related to criterial requested. For example, if only a list of services and their names are needed, that is all that is returned. If a specific service's interfaces are requested, then that is only returned. Fill-UUID should be refactored out.

inmoov's People

Contributors

alexinmoov avatar bretzel59 avatar bruno-f avatar hairygael avatar kwatters avatar linuxrodo avatar moz4r avatar pierkar avatar sebchko avatar supertick avatar wilcovantoorn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

inmoov's Issues

Is this deprecated?

global RobotCanMoveHeadWhileSpeaking
RobotCanMoveHeadWhileSpeaking=0

And replaced by:
i01.disableRobotCanMoveHeadRandom(15)

If yes, there is gestures that need to be checked out.

todo : inmoov brain documentation

need a tool to create some of shared diagram.
It will be used to document some random reactions of the robot, inmoov service, chatbot functionalities...
Usefull for new developers and us before we get lost inside the code...
Any ideas guys ? necessary ?

buffering overun onRX

Sometimes MRL is over buffering, making impossible to go on using MRL or almost. Any idea how this can be controlled?
I must say that this issue is happening when using the master-inmoov branch.

Inmoov control center

Sรฉbastien our favorite webmaster had done some great job about Inmoov configuration control center.
It is an optional external thing that will not replace swing or angular dedicated Inmoov interface, if one day someone want to work on it.
Because what we make about a homemade protocol was fun but not strong enough, we need to find a good protocol to communicate between mrl and the server.
We talked about existing mqtt service. I think it is a good option.
I donโ€™t know mrl web services, maybe there is some interesting things too !
Letโ€™s talk about guys

Neck auto detached after talking

first this is a great script... much easyer to understand then others..
And you can activate one part after another...

i got a problem with speaking and moving the head...
After i use the io1.mouth Service to let him speak it disables the neck (probably more) and my head is falling down...
more weight at the front of the head and no power in the motor lets him drop the head...
I saw some comments about autoAttach and autoDetach...both are False...but it seems to still autoDetach.

This also happens when i start MoveHeadTimer. This is also stoped after the robot did speak and moved the mouth.

2 Language pack directories

Hello Anthony,
I wonder why there is two language pack directories, it's a bit confusing...
Is it normal or a mistake?
Seems the one that is currently used is the one in the system/languagePack

ั€ัƒััะบะธะน ัะทั‹ะบ ( russian language pack )

ะขะฐะบ ะบะฐะบ ะฝะฐะผ ะฝะต ัƒะดะฐะปะพััŒ ะฟะพั€ะฐะฑะพั‚ะฐั‚ัŒ ะฒะผะตัั‚ะต ะฒะพะป ะปะพะณ ั„ะฐะนะป: https://yadi.sk/d/z09zVxzJ3JkPgQ
ะŸะพ ะผะพะตะผัƒ ั‚ะฐะผ ะพัˆะธะฑะบะธ ั ั€ะฐัะฟะพะทะฝะฐะฒะฐะฝะธะตะผ ะบะพะดะธั€ะพะฒะพะบ ะดะปั ั€ัƒััะบะพะณะพ ัะทั‹ะบะฐ. ะ’ googlehrom ะฟั€ะธ ะณะพะปะพัะพะฒั‹ั… ะบะพะผะฐะฝะดะฐั… โ€ะบะฐะผะตะฝัŒ ะฝะพะถะฝะธั†ั‹ ะฑัƒะผะฐะณะฐโ€ ะตัั‚ัŒ ะบะฐะบะฐั ั‚ะพ ั€ะตะฐะบั†ะธั ะฝะฐ ะฒัะต ะพัั‚ะฐะปัŒะฝั‹ะต ะบะพะผะฐะฝะดั‹ ะฒ ะพั‚ะฒะตั‚ ะฟะตั€ะตั‡ะธัะปะตะฝะธะต ั†ะธั„ั€ ะธ ัะธะผะฒะพะปะพะฒ ะฝะฐ ั€ัƒััะบะพะผ ัะทั‹ะบะต ะฝะพ ะฝะตั‚ ะฝะธะบะฐะบะพะน ะปะพะณะธะบะธ. ะ•ัะปะธ ะฝัƒะถะฝะพ ั ะณะพั‚ะพะฒ ะฟั€ะตะดะพัั‚ะฐะฒะธั‚ัŒ ัะฒะพะน WINDOWS 7 ะดะปั ะดะพัั‚ัƒะฟะฐ ั‚ะพะปัŒะบะพ ะฝะฐะทะพะฒะธั‚ะต ั‡ะธัะปะพ ะธ ะฒั€ะตะผั.ะกะฟะฐัะธะฑะพ.

MAP SETTINGS

hairygael: the slider in the swing shows min42 max150
hairygael: 0 / 180 is my MINIMUM/MAXIMUM and 42/150 is my MINIMUM_MAP/MAXIMUM_MAP

pir sensor activation causing mrl freeze

On the develop branch if activating the PIR as True, when the SleepTimer tab is launched at startup, MRL window is frozen. Chatbot still respond through Chrome.
Tested with Master branch (before recent merge were done) and I do not reproduce the issue.

mappings and min max

Hello Anthony,
Mappings and min max are still swapped. The way they currently work will certainly confuse builders.

Normally the min and max should stay as the default values, unless you built a different kind of robot.
And the mappings is where you can adapt/ extend/map your servo range to fit the min and max values, but currently it is set the other way around which doesn't really make sense.

By swapping my values I can make it work but it is not really proper I think.

Issue regarding setkey from Rss into NaturalReaderSpeech.

Hello Anthony, the develop branch throws an error:
Traceback (most recent call last): File string, line 44, in module File InmoovScript/system/InitCheckup.py, line 68, in module execfile(RuningFolder+services/+filename.encode(utf8)) File C:/mrl/inmoov-develop/InmoovScript/services/5_Mouth.py, line 196, in module setRobotLanguage() File C:/mrl/inmoov-develop/InmoovScript/services/5_Mouth.py, line 148, in setRobotLanguage i01.mouth.setKey(VoiceRssApi)AttributeError: org.myrobotlab.service.NaturalReaderSpeech object has no attribute setKey.

I strongly suggest we keep NaturalReaderSpeech as a third option, because I really don't like having my InMoov speaking with a female voice, and MaryTTS is not yet an option, much too robotic voices still.
:)

OpenWeather conflict

Hello weather man!
English aiml set used to work very nice for weather.
We could ask any city weather in celsius or in farenheit and it would give various answers related with the actual weather of the desired location. It was handy for demonstrations when I was in other countries..
Now with English version, it just says some of the </li/> options without giving the weather.
:(

vinmoov error

sometime I have this error at startup
maybe an init delay problem

image

mapping issue leftArm.omoplate

I have a mapping issue regarding leftArm.omoplate. Although it is correctly mapped, same as the right arm, the mapping is not active.

Mixed finger servo pin

Just discovered a bug which cause a conflict. I'm not sure if it's MRL related or the InMoov repo.
mixservopin

Disabling different parts in one single config file

This is not a technical issue but a proposal of a small redesign of the config files.
Actually i like it that everything is split up in different config files so you can ignore the files that you didn't activate yet. It reduces complexity from a long everything in one file configs...it helps to get used to the setup.

Still i think would be beneficial to have a central config file that contains all switches that turn something on and off... often i just want to test one part or one function and play around with the setting. You would need to go to each other config file and disable it there to turn other parts off.
If you have a central turn on /turn off file you would only need to go there...

This central file could also be a useful guide for starters that provide information on where to fine the detailed config for a particular switch. As config files are distributed in the hole tree i sometimes need to search multiple folders to fine the config i was looking for.

rest() and fullspeed() broken

Hello Anthony,
Two of my main important gestures are broken and create an issue when called.
Rest() is not anymore within the folder COMPLETE_GESTURES. (if we need a gesture similar to rest() as a earAddCommand, I think it would be better to give it another name like "basic()" or "initial()". That way the rest() will stay within the COMPLETE_GESTURES folder. Also the speeds that were involved into that gesture are not there anymore. Because that gesture doesn't work, the robot doesn't start correctly set.

Fullspeed() is not worky anymore and doesn't take the eyes speed anymore, which was needed for to get a correct face tracking.

jm3 directory not loaded

Using MRL 1.0.1156, the jm3 directory isn't present inside the InMoov directory, is it normal?

Need heard.py ?

I extracted all the gestures that used to work within heard.py, and created gestures or added them to _inmoovGestures.aiml.
Do we need to keep it or we can just remove it.
The only function that I didn't extract is voice command wheel activations related to a walking gesture.

Speed problems

this post to enumerate speed problems.
To know : setspeed is deprecated but still worky.
To convert setspeed to setvelocity here is a tip

	// 0.1 3
	// 0.2 5
	// 0.3 7
	// 0.4 9
	// 0.5 13
	// 0.6 19
	// 0.7 26
	// 0.8 36
	// 0.9 50
            // 1 -1

Head says no while speaking

For some odd reason the head moves in a NO movement when he is speaking. And sometimes in a YES movement while speaking. It seems to be set as random.
I think to have a random head movement when he speaks it's nice if desired in the gesture, but this not fitting the correct purpose.
:)
NO head movement when he says "yes sure", isn't proper.

Merge the all.

I have followed the instructions here: http://myrobotlab.org/content/inmoov-script-merge-them-all#comment-8033
I have created BasicConfig.ini
I have set my Arduino COM3, COM4 Port speeds to 115200
I run START_INMOOV.bat (I removed the recreation/unpacking/install all)
I get the Swing GUI then Chome and hear, "Starting Right Hand, Starting Mouth, Ok, You have my attention"
ALL VOICE COMMANDS FAIL
Activate Voice
Attach Right Hand
Close your hand.
Close Your Right Hand

The commands are recognized and mirrored as text. There is NO ACTION by the InMoov
Here is my log - any ideas? It would be wonderful to have a simple setup that just worked out of the box. Then we could build on that. More documentation is needed for sure.

08:46:21.171 [main] INFO c.m.s.Runtime [Runtime.java:1207] -fromAgent -invoke python execFile C:\mrl/InmoovScript/Inmoov.py -service GUIService GUIService python Python
08:46:21.202 [main] INFO c.m.f.Service [Service.java:1006] getMessageSet loading 254 non-sub-routable methods
08:46:21.202 [main] INFO c.m.f.Service [Service.java:1483] cfg file C:\mrl.myrobotlab\runtime.json does not exist
08:46:21.389 [main] INFO c.m.f.r.ServiceData [ServiceData.java:78] try #1 loading local file C:\mrl.myrobotlab\serviceData.json
08:46:21.436 [main] INFO c.m.s.Runtime [Runtime.java:1677] ============== args begin ==============
08:46:21.436 [main] INFO c.m.s.Runtime [Runtime.java:1689] jvmArgs [-Djava.library.path=libraries/native, -Djna.library.path=libraries/native]
08:46:21.436 [main] INFO c.m.s.Runtime [Runtime.java:1691] args [-fromAgent, -invoke, python, execFile, C:\mrl/InmoovScript/Inmoov.py, -service, GUIService, GUIService, python, Python]
08:46:21.436 [main] INFO c.m.s.Runtime [Runtime.java:1693] ============== args end ==============
08:46:21.436 [main] INFO c.m.s.Runtime [Runtime.java:1695] ============== env begin ==============
08:46:21.452 [main] INFO c.m.s.Runtime [Runtime.java:1700] configsetroot=C:\windows\ConfigSetRoot
08:46:21.452 [main] INFO c.m.s.Runtime [Runtime.java:1700] USERDOMAIN_ROAMINGPROFILE=Maya
08:46:21.452 [main] INFO c.m.s.Runtime [Runtime.java:1700] LOCALAPPDATA=C:\Users\Mayaway\AppData\Local
08:46:21.452 [main] INFO c.m.s.Runtime [Runtime.java:1700] PROCESSOR_LEVEL=6
08:46:21.452 [main] INFO c.m.s.Runtime [Runtime.java:1700] FP_NO_HOST_CHECK=NO
08:46:21.452 [main] INFO c.m.s.Runtime [Runtime.java:1700] USERDOMAIN=Maya
08:46:21.452 [main] INFO c.m.s.Runtime [Runtime.java:1700] LOGONSERVER=\MAYA
08:46:21.452 [main] INFO c.m.s.Runtime [Runtime.java:1700] PROMPT=$P$G
08:46:21.452 [main] INFO c.m.s.Runtime [Runtime.java:1700] SESSIONNAME=Console
08:46:21.452 [main] INFO c.m.s.Runtime [Runtime.java:1700] ALLUSERSPROFILE=C:\ProgramData
08:46:21.452 [main] INFO c.m.s.Runtime [Runtime.java:1700] PROCESSOR_ARCHITECTURE=x86
08:46:21.452 [main] INFO c.m.s.Runtime [Runtime.java:1700] PSModulePath=C:\windows\system32\WindowsPowerShell\v1.0\Modules
08:46:21.452 [main] INFO c.m.s.Runtime [Runtime.java:1700] SystemDrive=C:
08:46:21.452 [main] INFO c.m.s.Runtime [Runtime.java:1700] =ExitCode=00000080
08:46:21.452 [main] INFO c.m.s.Runtime [Runtime.java:1700] =C:=C:\mrl
08:46:21.452 [main] INFO c.m.s.Runtime [Runtime.java:1700] APPDATA=%%CD%%
08:46:21.452 [main] INFO c.m.s.Runtime [Runtime.java:1700] USERNAME=Mayaway
08:46:21.452 [main] INFO c.m.s.Runtime [Runtime.java:1700] CommonProgramFiles=C:\Program Files\Common Files
08:46:21.452 [main] INFO c.m.s.Runtime [Runtime.java:1700] Path=C:\ProgramData\Oracle\Java\javapath;C:\Program Files\Broadcom\Broadcom 802.11 Network Adapter\Driver;;C:\Program Files\Intel\TXE Components\TCS;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0;C:\Program Files\Intel\TXE Components\DAL;C:\Program Files\Intel\TXE Components\IPT;C:\Program Files\Lenovo\Bluetooth Software
08:46:21.452 [main] INFO c.m.s.Runtime [Runtime.java:1700] PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
08:46:21.452 [main] INFO c.m.s.Runtime [Runtime.java:1700] OS=Windows_NT
08:46:21.452 [main] INFO c.m.s.Runtime [Runtime.java:1700] COMPUTERNAME=MAYA
08:46:21.452 [main] INFO c.m.s.Runtime [Runtime.java:1700] PROCESSOR_REVISION=3703
08:46:21.452 [main] INFO c.m.s.Runtime [Runtime.java:1700] ComSpec=C:\windows\system32\cmd.exe
08:46:21.452 [main] INFO c.m.s.Runtime [Runtime.java:1700] ProgramData=C:\ProgramData
08:46:21.452 [main] INFO c.m.s.Runtime [Runtime.java:1700] HOMEPATH=\Users\Mayaway
08:46:21.452 [main] INFO c.m.s.Runtime [Runtime.java:1700] SystemRoot=C:\windows
08:46:21.452 [main] INFO c.m.s.Runtime [Runtime.java:1700] TEMP=C:\Users\Mayaway\AppData\Local\Temp
08:46:21.452 [main] INFO c.m.s.Runtime [Runtime.java:1700] HOMEDRIVE=C:
08:46:21.452 [main] INFO c.m.s.Runtime [Runtime.java:1700] PROCESSOR_IDENTIFIER=x86 Family 6 Model 55 Stepping 3, GenuineIntel
08:46:21.452 [main] INFO c.m.s.Runtime [Runtime.java:1700] USERPROFILE=C:\Users\Mayaway
08:46:21.468 [main] INFO c.m.s.Runtime [Runtime.java:1700] TMP=C:\Users\Mayaway\AppData\Local\Temp
08:46:21.468 [main] INFO c.m.s.Runtime [Runtime.java:1700] ProgramFiles=C:\Program Files
08:46:21.468 [main] INFO c.m.s.Runtime [Runtime.java:1700] PUBLIC=C:\Users\Public
08:46:21.468 [main] INFO c.m.s.Runtime [Runtime.java:1700] NUMBER_OF_PROCESSORS=4
08:46:21.468 [main] INFO c.m.s.Runtime [Runtime.java:1700] windir=C:\windows
08:46:21.468 [main] INFO c.m.s.Runtime [Runtime.java:1700] =::=::
08:46:21.468 [main] INFO c.m.s.Runtime [Runtime.java:1702] ============== env end ==============
08:46:21.468 [main] INFO c.m.s.Runtime [Runtime.java:1706] ============== normalized ==============
08:46:21.468 [main] INFO c.m.s.Runtime [Runtime.java:1707] 2017/01/03 08:46:21 - GMT - 2017/01/03 13:46:21
08:46:21.499 [main] INFO c.m.s.Runtime [Runtime.java:1708] Pid 5716
08:46:21.499 [main] INFO c.m.s.Runtime [Runtime.java:1709] ivy [runtime,x86.32.windows]
08:46:21.499 [main] INFO c.m.s.Runtime [Runtime.java:1710] os.name [Windows 8.1] getOS [windows]
08:46:21.499 [main] INFO c.m.s.Runtime [Runtime.java:1711] os.arch [x86] getArch [x86]
08:46:21.499 [main] INFO c.m.s.Runtime [Runtime.java:1712] getBitness [32]
08:46:21.499 [main] INFO c.m.s.Runtime [Runtime.java:1713] java.vm.name [Java HotSpot(TM) Client VM] getVMName [java hotspot(tm) client vm]
08:46:21.499 [main] INFO c.m.s.Runtime [Runtime.java:1714] version [1.0.1867]
08:46:21.499 [main] INFO c.m.s.Runtime [Runtime.java:1715] root [/C:/mrl/myrobotlab.jar]
08:46:21.499 [main] INFO c.m.s.Runtime [Runtime.java:1716] cfg dir [C:\mrl.myrobotlab]
08:46:21.499 [main] INFO c.m.s.Runtime [Runtime.java:1717] sun.arch.data.model [32]
08:46:21.499 [main] INFO c.m.s.Runtime [Runtime.java:1719] ============== non-normalized ==============
08:46:21.499 [main] INFO c.m.s.Runtime [Runtime.java:1720] java.vm.name [Java HotSpot(TM) Client VM]
08:46:21.499 [main] INFO c.m.s.Runtime [Runtime.java:1721] java.vm.version [25.111-b14]
08:46:21.499 [main] INFO c.m.s.Runtime [Runtime.java:1722] java.vm.vendor [Oracle Corporation]
08:46:21.499 [main] INFO c.m.s.Runtime [Runtime.java:1723] java.vm.version [25.111-b14]
08:46:21.499 [main] INFO c.m.s.Runtime [Runtime.java:1724] java.vm.vendor [1.8.0_111-b14]
08:46:21.499 [main] INFO c.m.s.Runtime [Runtime.java:1727] os.version [6.3]
08:46:21.499 [main] INFO c.m.s.Runtime [Runtime.java:1728] os.version [6.3]
08:46:21.499 [main] INFO c.m.s.Runtime [Runtime.java:1730] java.home [C:\Program Files\Java\jre1.8.0_111]
08:46:21.499 [main] INFO c.m.s.Runtime [Runtime.java:1731] java.class.path [C:\mrl\myrobotlab.jar;./libraries/jar/jython.jar;./libraries/jar/batch.jar;./libraries/jar/BoofCV-android-0.23.jar;./libraries/jar/BoofCV-calibration-0.23.jar;./libraries/jar/BoofCV-feature-0.23.jar;./libraries/jar/BoofCV-geo-0.23.jar;./libraries/jar/BoofCV-io-0.23.jar;./libraries/jar/BoofCV-ip-0.23.jar;./libraries/jar/BoofCV-jcodec-0.23.jar;./libraries/jar/BoofCV-learning-0.23.jar;./libraries/jar/BoofCV-openkinect-0.23.jar;./libraries/jar/BoofCV-recognition-0.23.jar;./libraries/jar/BoofCV-sfm-0.23.jar;./libraries/jar/BoofCV-visualize-0.23.jar;./libraries/jar/BoofCV-WebcamCapture-0.23.jar;./libraries/jar/BoofCV-xuggler-0.23.jar;./libraries/jar/bridj-0.6.2.jar;./libraries/jar/chatter-bot-api.jar;./libraries/jar/ChessBoard.jar;./libraries/jar/commons-codec-1.9.jar;./libraries/jar/commons-collections-3.2.2.jar;./libraries/jar/commons-io-2.3.jar;./libraries/jar/commons-io-2.5.jar;./libraries/jar/commons-lang-2.6.jar;./libraries/jar/commons-lang3-3.3.2.jar;./libraries/jar/commons-logging-1.2.jar;./libraries/jar/core-0.29.jar;./libraries/jar/cron4j-2.2.5.jar;./libraries/jar/ddogleg-0.9.jar;./libraries/jar/dense64-0.29.jar;./libraries/jar/diff4j-1.2.jar;./libraries/jar/dsn.jar;./libraries/jar/emotionml-checker-java-1.1.jar;./libraries/jar/equation-0.29.jar;./libraries/jar/fast-md5-2.7.1.jar;./libraries/jar/fest-assert-1.4.jar;./libraries/jar/freetts.jar;./libraries/jar/georegression-0.10.jar;./libraries/jar/geronimo-servlet_3.0_spec-1.0.jar;./libraries/jar/ghost4j-0.3.1.jar;./libraries/jar/glamour-lwjgl-1.0.8.jar;./libraries/jar/google-api-client-1.22.0.jar;./libraries/jar/google-api-services-vision-v1-rev16-1.22.0.jar;./libraries/jar/google-http-client-1.22.0.jar;./libraries/jar/google-http-client-gson-1.22.0.jar;./libraries/jar/google-http-client-jackson2-1.22.0.jar;./libraries/jar/google-http-client-jdo-1.22.0.jar;./libraries/jar/google-oauth-client-1.22.0.jar;./libraries/jar/groovy-all-2.4.5.jar;./libraries/jar/guava-14.0.1.jar;./libraries/jar/guava-17.0.jar;./libraries/jar/hamcrest-all-1.3.jar;./libraries/jar/hsqldb-2.0.0.jar;./libraries/jar/httpclient-4.5.2.jar;./libraries/jar/httpcore-4.4.4.jar;./libraries/jar/httpcore-nio-4.1.jar;./libraries/jar/icu4j-54.1.1.jar;./libraries/jar/imap.jar;./libraries/jar/j3dcore.jar;./libraries/jar/j3dutils.jar;./libraries/jar/jackson-annotations-2.5.0.jar;./libraries/jar/jackson-core-2.5.0.jar;./libraries/jar/jackson-databind-2.5.0.jar;./libraries/jar/jai_imageio.jar;./libraries/jar/jama-1.0.3.jar;./libraries/jar/Jampack-1.0.jar;./libraries/jar/java-diff-1.1.jar;./libraries/jar/javacpp.jar;./libraries/jar/javacv.jar;./libraries/jar/javax.inject-1.jar;./libraries/jar/jdo2-api-2.3-eb.jar;./libraries/jar/jfugue-5.0.7.jar;./libraries/jar/jinput-test.jar;./libraries/jar/jinput.jar;./libraries/jar/jl1.0.1.jar;./libraries/jar/jna-4.2.0.jar;./libraries/jar/jna.jar;./libraries/jar/jnativehook-2.0.3.jar;./libraries/jar/jovr-0.7.0.0.jar;./libraries/jar/jsapi-1.0-base.jar;./libraries/jar/jsapi.jar;./libraries/jar/jscience-4.3.1.jar;./libraries/jar/json-20090211.jar;./libraries/jar/jsoup-1.8.3.jar;./libraries/jar/jsr305-1.3.9.jar;./libraries/jar/jssc-2.8.0.jar;./libraries/jar/jtok-core-1.9.3.jar;./libraries/jar/junit-4.12.jar;./libraries/jar/jxmpp-core-0.4.2.jar;./libraries/jar/jxmpp-util-cache-0.4.2.jar;./libraries/jar/LeapJava.jar;./libraries/jar/log4j-1.2.16.jar;./libraries/jar/lwjgl-2.9.3.jar;./libraries/jar/lwjgl_util-2.9.3.jar;./libraries/jar/mail.jar;./libraries/jar/mailapi.jar;./libraries/jar/marytts-builder-5.2.jar;./libraries/jar/marytts-client-5.2.jar;./libraries/jar/marytts-common-5.2.jar;./libraries/jar/marytts-lang-de-5.2.jar;./libraries/jar/marytts-lang-en-5.2.jar;./libraries/jar/marytts-lang-fr-5.2.jar;./libraries/jar/marytts-lang-it-5.2.jar;./libraries/jar/marytts-lang-lb-5.2.jar;./libraries/jar/marytts-lang-ru-5.2.jar;./libraries/jar/marytts-lang-sv-5.2.jar;./libraries/jar/marytts-lang-te-5.2.jar;./libraries/jar/marytts-lang-tr-5.2.jar;./libraries/jar/marytts-redstart-5.2.jar;./libraries/jar/marytts-runtime-5.2.jar;./libraries/jar/marytts-signalproc-5.2.jar;./libraries/jar/marytts-transcription-5.2.jar;./libraries/jar/math-1.0.4.jar;./libraries/jar/microsoft-translator-java-api-0.6.2-jar-with-dependencies.jar;./libraries/jar/mp3spi1.9.5.jar;./libraries/jar/mwdumper-1.16.jar;./libraries/jar/myo-java-0.9.1-SNAPSHOT.jar;./libraries/jar/mysql-connector-java-5.1.16.jar;./libraries/jar/nettosphere-assembly-2.3.0.jar;./libraries/jar/nodyn-0.1.1-20141121.193443-283.jar;./libraries/jar/noggit-0.5.jar;./libraries/jar/opencv-windows-x86.jar;./libraries/jar/opencv.jar;./libraries/jar/opennlp-maxent-3.0.3.jar;./libraries/jar/opennlp-tools-1.5.3.jar;./libraries/jar/opennlp-tools-1.6.0.jar;./libraries/jar/opennlp-uima-1.6.0.jar;./libraries/jar/org.eclipse.paho.client.mqttv3_1.0.0.jar;./libraries/jar/oria-resources-1.0.4.jar;./libraries/jar/oro-2.0.8.jar;./libraries/jar/pi4j-core.jar;./libraries/jar/pi4j-gpio-extension.jar;./libraries/jar/pop3.jar;./libraries/jar/program-ab-kw-0.0.1.jar;./libraries/jar/sgt-3.0.jar;./libraries/jar/simple-0.29.jar;./libraries/jar/SimpleOpenNI.jar;./libraries/jar/slick-util.jar;./libraries/jar/smack-core-4.1.6.jar;./libraries/jar/smack-im-4.1.6.jar;./libraries/jar/smack-java7-4.1.6.jar;./libraries/jar/smack-tcp-4.1.6.jar;./libraries/jar/smtp.jar;./libraries/jar/solr-solrj-4.10.2.jar;./libraries/jar/sosia.jar;./libraries/jar/sphinx4.jar;./libraries/jar/swing-layout-1.0.3.jar;./libraries/jar/tags.jar;./libraries/jar/tess4j.jar;./libraries/jar/testng-6.9.11.jar;./libraries/jar/TIDIGITS_8gau_13dCep_16k_40mel_130Hz_6800Hz.jar;./libraries/jar/topcodes.jar;./libraries/jar/tritonus_share-0.3.6.jar;./libraries/jar/trove4j-2.0.2.jar;./libraries/jar/twitter4j-async-3.0.5.jar;./libraries/jar/twitter4j-core-3.0.5.jar;./libraries/jar/twitter4j-media-support-3.0.5.jar;./libraries/jar/twitter4j-stream-3.0.5.jar;./libraries/jar/vecmath.jar;./libraries/jar/videoinput-windows-x86.jar;./libraries/jar/videoinput.jar;./libraries/jar/voice-cmu-slt-hsmm-5.2.jar;./libraries/jar/wasync-2.1.3-20150917-all.jar;./libraries/jar/wdtk-datamodel-0.7.0.jar;./libraries/jar/wdtk-dumpfiles-0.7.0.jar;./libraries/jar/wdtk-storage-0.7.0.jar;./libraries/jar/wdtk-util-0.7.0.jar;./libraries/jar/wdtk-wikibaseapi-0.7.0.jar;./libraries/jar/webcam-capture-0.3.10.jar;./libraries/jar/weka-dev-3.7.6.jar;./libraries/jar/wiiusej.jar;./libraries/jar/WolframAlpha-1.1.jar;./libraries/jar/WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz.jar;./libraries/jar/WSJ_8gau_13dCep_8kHz_31mel_200Hz_3500Hz.jar;./libraries/jar/xmlpull-1.1.3.1.jar;./libraries/jar/xmlunit-1.6.jar;./libraries/jar/xpp3-1.1.4c.jar;./libraries/jar/xpp3_min-1.1.4c.jar;./libraries/jar/xres-1.0.3.jar;./libraries/jar/xstream-1.4.7.jar;./bin;./build/classes]
08:46:21.514 [main] INFO c.m.s.Runtime [Runtime.java:1732] java.library.path [libraries/native]
08:46:21.514 [main] INFO c.m.s.Runtime [Runtime.java:1733] user.dir [C:\mrl]
08:46:21.514 [main] INFO c.m.s.Runtime [Runtime.java:1735] user.home [C:\Users\Mayaway]
08:46:21.514 [main] INFO c.m.s.Runtime [Runtime.java:1736] total mem [15] Mb
08:46:21.514 [main] INFO c.m.s.Runtime [Runtime.java:1737] total free [10] Mb
08:46:21.514 [main] INFO c.m.s.Runtime [Runtime.java:1738] total physical mem [1931] Mb
08:46:21.514 [main] INFO c.m.s.Runtime [Runtime.java:1740] getting local repo
08:46:21.514 [main] INFO c.m.s.Runtime [Runtime.java:331] Runtime.createService cli
08:46:21.514 [main] INFO c.m.f.Service [Service.java:1006] getMessageSet loading 157 non-sub-routable methods
08:46:21.546 [main] WARN c.m.f.Service [Service.java:1377] no such method Runtime.registered(Cli) : - attempting upcasting
08:46:21.546 [main] WARN c.m.f.Service [Service.java:1382] searching through 254 methods
08:46:21.546 [main] INFO c.m.s.Runtime [Runtime.java:288] createAndStartServices service count 2
08:46:21.546 [main] INFO c.m.s.Runtime [Runtime.java:294] attempting to invoke : org.myrobotlab.service.GUIService named GUIService
08:46:21.546 [main] INFO c.m.s.Runtime [Runtime.java:331] Runtime.createService GUIService
08:46:21.561 [main] INFO c.m.f.Service [Service.java:1006] getMessageSet loading 192 non-sub-routable methods
08:46:21.577 [main] INFO c.m.f.Service [Service.java:374] setting graphXML
08:46:21.577 [main] INFO c.m.f.Service [Service.java:397] setting reference to remote object graphXML
08:46:21.577 [main] INFO c.m.f.Service [Service.java:374] setting lastTabVisited
08:46:21.577 [main] INFO c.m.f.Service [Service.java:397] setting reference to remote object lastTabVisited
08:46:21.577 [main] WARN c.m.f.Service [Service.java:1377] no such method Runtime.registered(GUIService) : - attempting upcasting
08:46:21.577 [main] WARN c.m.f.Service [Service.java:1382] searching through 254 methods
08:46:22.108 [main] INFO c.m.s.GUIService [GUIService.java:345] buildTabPanels service count 3
08:46:22.202 [main] INFO c.m.s.Runtime [Runtime.java:294] attempting to invoke : org.myrobotlab.service.Python named python
08:46:22.218 [main] INFO c.m.s.Runtime [Runtime.java:331] Runtime.createService python
08:46:22.233 [main] INFO c.m.f.Service [Service.java:1006] getMessageSet loading 172 non-sub-routable methods
08:46:22.264 [main] WARN c.m.f.Service [Service.java:1377] no such method Runtime.registered(Python) : - attempting upcasting
08:46:22.264 [main] WARN c.m.f.Service [Service.java:1382] searching through 254 methods
08:46:22.264 [main] INFO c.m.s.Python [Python.java:347] creating python python
08:46:22.264 [GUIService] WARN c.m.f.Service [Service.java:1377] no such method GUIService.registered(Python) : - attempting upcasting
08:46:22.264 [GUIService] WARN c.m.f.Service [Service.java:1382] searching through 192 methods
08:46:22.264 [main] INFO c.m.s.Python [Python.java:533] exec(String)
from time import sleep
from org.myrobotlab.service import Runtime
from org.myrobotlab.service import GUIService
GUIService = Runtime.getService("GUIService")
from org.myrobotlab.service import Cli
cli = Runtime.getService("cli")
from org.myrobotlab.service import Python
python = Runtime.getService("python")
from org.myrobotlab.service import Runtime
runtime = Runtime.getService("runtime")

08:46:22.593 [AWT-EventQueue-0] INFO c.m.f.Service [Service.java:2027] subscribe [GUIService/publishStatus ---> GUIService/getStatus]
08:46:22.639 [AWT-EventQueue-0] INFO c.m.f.Service [Service.java:2027] subscribe [cli/publishStatus ---> GUIService/getStatus]
08:46:23.077 [AWT-EventQueue-0] INFO c.m.f.Service [Service.java:2027] subscribe [runtime/publishStatus ---> GUIService/getStatus]
08:46:23.749 [AWT-EventQueue-0] INFO c.m.c.ServiceGUI [PythonGUI.java:265] C:\mrl.myrobotlab\untitled.swing.1.py
08:46:23.812 [AWT-EventQueue-0] INFO c.m.f.Service [Service.java:2027] subscribe [python/publishStatus ---> GUIService/getStatus]
08:46:23.921 [main] INFO c.m.s.Python [Python.java:468] Python System Path: ['C:\mrl\libraries\jar\Lib', '/C:/mrl/myrobotlab.jar/Lib', 'classpath', 'pyclasspath/', 'pythonModules']
08:46:25.737 [main] INFO c.m.f.Service [Service.java:2027] subscribe [runtime/registered ---> python/onRegistered]
08:46:25.737 [main] INFO c.m.s.Python [Python.java:370] created python python
08:46:25.737 [main] INFO c.m.s.Python [Python.java:372] creating module directory pythonModules
08:46:25.768 [main] INFO c.m.s.Python [Python.java:775] starting python python
08:46:25.768 [main] INFO c.m.s.Python [Python.java:780] started python python
08:46:25.768 [main] INFO c.m.s.Runtime [Runtime.java:1086] attempting to invoke : python.execFile(C:\mrl/InmoovScript/Inmoov.py )

08:46:25.768 [python] INFO c.m.i.FileIO [FileIO.java:982] looking for /resource/Python/pythonConsole.py
08:46:25.768 [python] INFO c.m.s.Python [Python.java:533] exec(String)
import sys
from javax.swing import JFrame
from javax.swing import JPanel
from javax.swing import JLabel
from javax.swing import JTextArea
from javax.swing import JScrollPane
from javax.swing import JTabbedPane
from javax.swing import WindowConstants
from java.awt import BorderLayout
from java.lang import Boolean

myService is a local variable

created to point to this Python

service

class Console:

def init(self):
self.stdout = None
self.stderr = None

def write(self,string):
myService.invoke("publishStdOut", string)

def attach(self):
if (self.stdout == None):
self.stdout = sys.stdout
self.stderr = sys.stderr
sys.stdout = self
sys.stderr = self

def flush(self):
pass

def detach(self):
if (self.stdout != None):
sys.stdout = self.stdout
sys.stderr = self.stderr
self.stdout = None
self.stderr = None

console = Console()
console.attach()

08:46:25.768 [python] INFO c.m.s.Python [Python.java:533] exec(String)

___ย ย ________ย ย ย _____ย ______ย ย ย ________ย ย ________ย ย ___ย ย ย ย ย ย ___ย 

|\ย ย |\ย ย ย ___ย ย |\ย ย ย _ย \ย ย _ย ย ย |\ย ย ย __ย ย |\ย ย ย __ย ย |\ย ย \ย ย ย ย /ย ย /|

\ย \ย ย \ย \ย ย \ย \ย ย \ย \ย ย \__\ย \ย ย \ย \ย ย |\ย ย \ย \ย ย |\ย ย \ย \ย ย \ย ย /ย ย /ย /

\ย \ย ย \ย \ย ย \ย \ย ย \ย \ย ย \|__|ย \ย ย \ย \ย ย \\ย ย \ย \ย ย \\ย ย \ย \ย ย /ย ย /ย /ย 

\ย \ย ย \ย \ย ย \ย \ย ย \ย \ย ย \ย ย ย ย \ย \ย ย \ย \ย ย \\ย ย \ย \ย ย \\ย ย \ย \ย ย ย ย /ย /ย ย 

\ย _\ย _\ย _\ย _\ย ย ย ย \ย _\ย _\ย _\ย _/ย /ย ย ย 

||||ย ||||ย ย ย ย ย ||||||||/ย ย ย ย script - [wip]

version='0.0.6'
mrlCompatible='1861'
RuningFolder="InmoovScript"

This is the basic Inmoov script file ( also called fingerstarter )

If you setup configs in skeleton folder, it can run full Inmoov or separated parts ( right hand / head ... )

this will run with versions of MRL above 1861

a very minimal script for InMoov

although this script is very short you can still do voice control of a finger starter

It uses WebkitSpeechRecognition, so you need to use Chrome as your default browser for this script to work

The Finger Starter is considered here to be right index, so make sure your servo is connected to pin3 of you Arduino

check your configuration inside BasicConfig.ini

Start the webgui service without starting the browser

webgui = Runtime.create("WebGui","WebGui")
webgui.autoStartBrowser(False)
webgui.startService()

Then start the browsers and show the WebkitSpeechRecognition service named i01.ear

webgui.startBrowser("http://localhost:8888/#/service/i01.ear")

As an alternative you can use the line below to show all services in the browser. In that case you should comment out all lines above that starts with webgui.

webgui = Runtime.createAndStart("webgui","WebGui")

##############

inmoov service declaration

i01 = Runtime.createAndStart("i01", "InMoov")

##############

health checkup & startup functions

execfile(RuningFolder+'/system/InitCheckup.py')

##############

sample commands used by fingerstarter

ear.addCommand("attach your finger", "i01.rightHand.index", "attach")
ear.addCommand("disconnect your finger", "i01.rightHand.index", "detach")
ear.addCommand("rest", i01.getName(), "rest")
ear.addCommand("open your finger", "python", "fingeropen")
ear.addCommand("close your finger", "python", "fingerclose")
ear.addCommand("finger to the middle", "python", "fingermiddle")
ear.addCommand("capture gesture", ear.getName(), "captureGesture")
ear.addCommand("manual", ear.getName(), "lockOutAllGrammarExcept", "voice control")
ear.addCommand("voice control", ear.getName(), "clearLock")

def fingeropen():
i01.moveHand("right",0,0,0,0,0)
talkBlocking("ok I open my finger")

def fingerclose():
i01.moveHand("right",180,180,180,180,180)
talkBlocking("my finger is closed")

def fingermiddle():
i01.moveHand("right",90,90,90,90,90)
talkBlocking("ok you have my attention")

#inmoov minimal if you use left+right
execfile(RuningFolder+'inmoovMinimal/Inmoov_minimal.py')
#Go further and load some custom commands in a separated file
execfile(RuningFolder+'inmoovCustom/Inmoov_custom.py')

08:46:25.955 [python.interpreter.3] INFO c.m.s.Runtime [Runtime.java:331] Runtime.createService WebGui
08:46:25.971 [python.interpreter.3] INFO c.m.f.Service [Service.java:1006] getMessageSet loading 189 non-sub-routable methods
08:46:25.987 [python.interpreter.3] INFO c.m.f.Service [Service.java:374] setting port
08:46:25.987 [python.interpreter.3] INFO c.m.f.Service [Service.java:397] setting reference to remote object port
08:46:25.987 [python.interpreter.3] INFO c.m.f.Service [Service.java:374] setting sslPort
08:46:25.987 [python.interpreter.3] INFO c.m.f.Service [Service.java:397] setting reference to remote object sslPort
08:46:25.987 [python.interpreter.3] INFO c.m.f.Service [Service.java:374] setting root
08:46:25.987 [python.interpreter.3] INFO c.m.f.Service [Service.java:397] setting reference to remote object root
08:46:25.987 [python.interpreter.3] INFO c.m.f.Service [Service.java:374] setting startURL
08:46:25.987 [python.interpreter.3] INFO c.m.f.Service [Service.java:397] setting reference to remote object startURL
08:46:25.987 [python.interpreter.3] INFO c.m.f.Service [Service.java:374] setting servicePanels
08:46:25.987 [python.interpreter.3] INFO c.m.f.Service [Service.java:397] setting reference to remote object servicePanels
08:46:25.987 [python.interpreter.3] WARN c.m.f.Service [Service.java:1377] no such method Runtime.registered(WebGui) : - attempting upcasting
08:46:26.002 [python.interpreter.3] WARN c.m.f.Service [Service.java:1382] searching through 254 methods
08:46:26.002 [GUIService] WARN c.m.f.Service [Service.java:1377] no such method GUIService.registered(WebGui) : - attempting upcasting
08:46:26.002 [python] WARN c.m.f.Service [Service.java:1377] no such method Python.onRegistered(WebGui) : - attempting upcasting
08:46:26.002 [GUIService] WARN c.m.f.Service [Service.java:1382] searching through 192 methods
08:46:26.002 [python] WARN c.m.f.Service [Service.java:1382] searching through 172 methods
08:46:26.002 [python] INFO c.m.s.Python [Python.java:533] exec(String)
from org.myrobotlab.service import WebGui
WebGui = Runtime.getService("WebGui")

08:46:26.018 [AWT-EventQueue-0] INFO c.m.f.Service [Service.java:2027] subscribe [WebGui/publishStatus ---> GUIService/getStatus]
08:46:26.033 [python.interpreter.3] WARN c.m.i.FileIO [FileIO.java:354] resource aleady exists - not extracting
08:46:26.409 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:577] Installed AtmosphereHandler org.atmosphere.nettosphere.Config$Builder$1 mapped to context-path: /stream
08:46:26.409 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:578] Installed the following AtmosphereInterceptor mapped to AtmosphereHandler org.atmosphere.nettosphere.Config$Builder$1
08:46:26.409 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:577] Installed AtmosphereHandler org.atmosphere.nettosphere.Config$Builder$1 mapped to context-path: /api
08:46:26.409 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:578] Installed the following AtmosphereInterceptor mapped to AtmosphereHandler org.atmosphere.nettosphere.Config$Builder$1
08:46:26.487 [python.interpreter.3] WARN o.a.c.AtmosphereFramework [AtmosphereFramework.java:1455] SessionSupport error. Make sure you also define org.atmosphere.cpr.SessionSupport as a listener in web.xml, see https://github.com/Atmosphere/atmosphere/wiki/Enabling-HttpSession-Support
08:46:26.565 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:2785] Atmosphere is using org.atmosphere.cpr.DefaultAnnotationProcessor for processing annotation
08:46:26.565 [python.interpreter.3] INFO o.a.c.DefaultAnnotationProcessor [DefaultAnnotationProcessor.java:147] AnnotationProcessor class org.atmosphere.cpr.DefaultAnnotationProcessor$BytecodeBasedAnnotationProcessor being used
08:46:26.831 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:1728] Installed WebSocketProtocol org.atmosphere.websocket.protocol.SimpleHttpProtocol
08:46:26.831 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:1201] Installing Default AtmosphereInterceptors
08:46:26.831 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:1220] org.atmosphere.interceptor.CorsInterceptor : CORS Interceptor Support
08:46:26.831 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:1220] org.atmosphere.interceptor.CacheHeadersInterceptor : Default Response's Headers Interceptor
08:46:26.831 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:1220] org.atmosphere.interceptor.PaddingAtmosphereInterceptor : Browser Padding Interceptor Support
08:46:26.831 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:1220] org.atmosphere.interceptor.AndroidAtmosphereInterceptor : Android Interceptor Support
08:46:26.846 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:1220] org.atmosphere.interceptor.HeartbeatInterceptor : Heartbeat Interceptor Support
08:46:26.846 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:1220] org.atmosphere.interceptor.SSEAtmosphereInterceptor : SSE Interceptor Support
08:46:26.846 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:1220] org.atmosphere.interceptor.JSONPAtmosphereInterceptor : JSONP Interceptor Support
08:46:26.846 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:1220] org.atmosphere.interceptor.JavaScriptProtocol : Atmosphere JavaScript Protocol
08:46:26.846 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:1220] org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor : org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor
08:46:26.846 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:1220] org.atmosphere.interceptor.OnDisconnectInterceptor : Browser disconnection detection
08:46:26.846 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:1220] org.atmosphere.interceptor.IdleResourceInterceptor : org.atmosphere.interceptor.IdleResourceInterceptor
08:46:26.846 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:1210] Set org.atmosphere.cpr.AtmosphereInterceptor.disableDefaults to disable them.
08:46:26.846 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:2576] Installed AtmosphereInterceptor CORS Interceptor Support with priority FIRST_BEFORE_DEFAULT
08:46:26.846 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:2576] Installed AtmosphereInterceptor Default Response's Headers Interceptor with priority AFTER_DEFAULT
08:46:26.862 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:2576] Installed AtmosphereInterceptor Browser Padding Interceptor Support with priority AFTER_DEFAULT
08:46:26.862 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:2576] Installed AtmosphereInterceptor Android Interceptor Support with priority AFTER_DEFAULT
08:46:26.862 [python.interpreter.3] INFO o.a.i.HeartbeatInterceptor [HeartbeatInterceptor.java:169] HeartbeatInterceptor configured with padding value 'X', client frequency 60 seconds and server frequency 0 seconds
08:46:26.862 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:2576] Installed AtmosphereInterceptor Heartbeat Interceptor Support with priority AFTER_DEFAULT
08:46:26.862 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:2576] Installed AtmosphereInterceptor SSE Interceptor Support with priority AFTER_DEFAULT
08:46:26.862 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:2576] Installed AtmosphereInterceptor JSONP Interceptor Support with priority AFTER_DEFAULT
08:46:26.862 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:2576] Installed AtmosphereInterceptor Atmosphere JavaScript Protocol with priority AFTER_DEFAULT
08:46:26.862 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:2576] Installed AtmosphereInterceptor org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor with priority AFTER_DEFAULT
08:46:26.862 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:2576] Installed AtmosphereInterceptor Browser disconnection detection with priority AFTER_DEFAULT
08:46:26.862 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:2576] Installed AtmosphereInterceptor org.atmosphere.interceptor.IdleResourceInterceptor with priority BEFORE_DEFAULT
08:46:26.862 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:1027] Using EndpointMapper class org.atmosphere.util.DefaultEndpointMapper
08:46:26.862 [python.interpreter.3] WARN o.a.c.AtmosphereFramework [AtmosphereFramework.java:1033] No BroadcasterCache configured. Broadcasted message between client reconnection will be LOST. It is recommended to configure the org.atmosphere.cache.UUIDBroadcasterCache
08:46:26.862 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:1041] Default Broadcaster Class: org.atmosphere.cpr.DefaultBroadcaster
08:46:26.862 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:1042] Broadcaster Shared List Resources: false
08:46:26.862 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:1043] Broadcaster Polling Wait Time 100
08:46:26.862 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:1044] Shared ExecutorService supported: true
08:46:26.862 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:1050] Messaging Thread Pool Size: Unlimited
08:46:26.862 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:1060] Async I/O Thread Pool Size: 200
08:46:26.862 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:1066] Using BroadcasterFactory: org.atmosphere.cpr.DefaultBroadcasterFactory
08:46:26.862 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:1067] Using AtmosphereResurceFactory: org.atmosphere.cpr.DefaultAtmosphereResourceFactory
08:46:26.862 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:1068] Using WebSocketProcessor: org.atmosphere.websocket.DefaultWebSocketProcessor
08:46:26.877 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:1078] Invoke AtmosphereInterceptor on WebSocket message true
08:46:26.877 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:1079] HttpSession supported: true
08:46:26.877 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:1081] Atmosphere is using org.atmosphere.inject.InjectableObjectFactory for dependency injection and object creation
08:46:26.877 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:1082] Atmosphere is using async support: org.atmosphere.container.NettyCometSupport running under container: Nettosphere/2.0
08:46:26.877 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:1084] Atmosphere Framework 2.3.0 started.
08:46:26.877 [python.interpreter.3] INFO o.a.c.AtmosphereFramework [AtmosphereFramework.java:1086]

For Atmosphere Framework Commercial Support, visit 
http://www.async-io.org/ or send an email to [email protected]

08:46:28.053 [python.interpreter.3] INFO o.a.n.Nettosphere [Nettosphere.java:118] NettoSphere 2.3.0 Started.
08:46:28.053 [python.interpreter.3] INFO c.m.s.WebGui [WebGui.java:389] WebGui WebGui started on port 8888
08:46:28.053 [python.interpreter.3] INFO c.m.f.Service [Service.java:2027] subscribe [cli/publishStatus ---> WebGui/onStatus]
08:46:28.053 [python.interpreter.3] INFO c.m.f.Service [Service.java:2027] subscribe [cli/publishState ---> WebGui/onState]
08:46:28.053 [python.interpreter.3] INFO c.m.f.Service [Service.java:2027] subscribe [python/publishStatus ---> WebGui/onStatus]
08:46:28.053 [python.interpreter.3] INFO c.m.f.Service [Service.java:2027] subscribe [python/publishState ---> WebGui/onState]
08:46:28.053 [python.interpreter.3] INFO c.m.f.Service [Service.java:2027] subscribe [GUIService/publishStatus ---> WebGui/onStatus]
08:46:28.053 [python.interpreter.3] INFO c.m.f.Service [Service.java:2027] subscribe [GUIService/publishState ---> WebGui/onState]
08:46:28.053 [python.interpreter.3] INFO c.m.f.Service [Service.java:2027] subscribe [WebGui/publishStatus ---> WebGui/onStatus]
08:46:28.053 [python.interpreter.3] INFO c.m.f.Service [Service.java:2027] subscribe [WebGui/publishState ---> WebGui/onState]
08:46:28.053 [python.interpreter.3] INFO c.m.f.Service [Service.java:2027] subscribe [runtime/publishStatus ---> WebGui/onStatus]
08:46:28.053 [python.interpreter.3] INFO c.m.f.Service [Service.java:2027] subscribe [runtime/publishState ---> WebGui/onState]
08:46:28.068 [python.interpreter.3] INFO c.m.f.Service [Service.java:2027] subscribe [runtime/registered ---> WebGui/onRegistered]
08:46:28.068 [python.interpreter.3] INFO c.m.f.Service [Service.java:2027] subscribe [runtime/registered ---> WebGui/onRegistered]
08:46:28.068 [python.interpreter.3] INFO c.m.f.Service [Service.java:2027] subscribe [runtime/released ---> WebGui/onReleased]
08:46:28.131 [python.interpreter.3] INFO c.m.s.Runtime [Runtime.java:331] Runtime.createService i01
08:46:28.162 [python.interpreter.3] INFO c.m.f.Service [Service.java:1006] getMessageSet loading 240 non-sub-routable methods
08:46:28.287 [python.interpreter.3] INFO c.m.f.Service [Service.java:374] setting pirPin
08:46:28.287 [python.interpreter.3] INFO c.m.f.Service [Service.java:397] setting reference to remote object pirPin
08:46:28.287 [python.interpreter.3] WARN c.m.f.Service [Service.java:1377] no such method Runtime.registered(InMoov) : - attempting upcasting
08:46:28.287 [python.interpreter.3] WARN c.m.f.Service [Service.java:1382] searching through 254 methods
08:46:28.287 [GUIService] WARN c.m.f.Service [Service.java:1377] no such method GUIService.registered(InMoov) : - attempting upcasting
08:46:28.287 [python] WARN c.m.f.Service [Service.java:1377] no such method Python.onRegistered(InMoov) : - attempting upcasting
08:46:28.287 [GUIService] WARN c.m.f.Service [Service.java:1382] searching through 192 methods
08:46:28.287 [python] WARN c.m.f.Service [Service.java:1382] searching through 172 methods
08:46:28.287 [python.interpreter.3] INFO c.m.s.Runtime [Runtime.java:331] Runtime.createService python
08:46:28.287 [python] INFO c.m.s.Python [Python.java:533] exec(String)
from org.myrobotlab.service import InMoov
i01 = Runtime.getService("i01")

08:46:28.287 [python.interpreter.3] INFO c.m.s.Python [Python.java:775] starting python python
08:46:28.287 [python.interpreter.3] INFO c.m.s.Python [Python.java:780] started python python
08:46:28.318 [WebGui] WARN c.m.f.Service [Service.java:1377] no such method WebGui.onRegistered(InMoov) : - attempting upcasting
08:46:28.318 [WebGui] WARN c.m.f.Service [Service.java:1382] searching through 189 methods
08:46:28.334 [WebGui] INFO c.m.f.Service [Service.java:2027] subscribe [i01/publishStatus ---> WebGui/onStatus]
08:46:28.334 [WebGui] INFO c.m.f.Service [Service.java:2027] subscribe [i01/publishState ---> WebGui/onState]
08:46:28.365 [AWT-EventQueue-0] INFO c.m.f.Service [Service.java:2027] subscribe [i01/publishStatus ---> GUIService/getStatus]
08:46:28.365 [GUIService_outbox_0] ERROR c.m.n.CommunicationManager [CommunicationManager.java:70] could not find service i01.opencv to process addListener from sender GUIService - tearing down route
08:46:28.365 [GUIService_outbox_0] ERROR c.m.f.Service [Service.java:1639] removeListener requested i01.opencv.send to be removed - but does not exist
08:46:28.506 [AWT-EventQueue-0] INFO c.m.f.Status [Status.java:83] saving GUIService.json
08:46:32.223 [New I/O worker #2] INFO c.m.s.WebGui [WebGui.java:496] GET /api/messages
08:46:43.738 [python.interpreter.3] INFO c.m.s.Runtime [Runtime.java:331] Runtime.createService i01.ear
08:46:43.754 [python.interpreter.3] INFO c.m.f.Service [Service.java:1006] getMessageSet loading 164 non-sub-routable methods
08:46:43.754 [python.interpreter.3] INFO c.m.f.Service [Service.java:744] found reservation exchanging reservedKey i01.ear for actual name i01.ear
08:46:43.754 [python.interpreter.3] INFO c.m.f.Service [Service.java:374] setting listening
08:46:43.754 [python.interpreter.3] INFO c.m.f.Service [Service.java:374] setting stripAccents
08:46:43.754 [python.interpreter.3] WARN c.m.f.Service [Service.java:1377] no such method Runtime.registered(WebkitSpeechRecognition) : - attempting upcasting
08:46:43.754 [python.interpreter.3] WARN c.m.f.Service [Service.java:1382] searching through 254 methods
08:46:43.754 [python] WARN c.m.f.Service [Service.java:1377] no such method Python.onRegistered(WebkitSpeechRecognition) : - attempting upcasting
08:46:43.754 [GUIService] WARN c.m.f.Service [Service.java:1377] no such method GUIService.registered(WebkitSpeechRecognition) : - attempting upcasting
08:46:43.754 [python] WARN c.m.f.Service [Service.java:1382] searching through 172 methods
08:46:43.770 [GUIService] WARN c.m.f.Service [Service.java:1382] searching through 192 methods
08:46:43.770 [python] INFO c.m.s.Python [Python.java:533] exec(String)
from org.myrobotlab.service import WebkitSpeechRecognition
i01_ear = Runtime.getService("i01.ear")

08:46:43.770 [WebGui] WARN c.m.f.Service [Service.java:1377] no such method WebGui.onRegistered(WebkitSpeechRecognition) : - attempting upcasting
08:46:43.770 [WebGui] WARN c.m.f.Service [Service.java:1382] searching through 189 methods
08:46:43.770 [AWT-EventQueue-0] INFO c.m.f.Instantiator [Instantiator.java:23] class org.myrobotlab.control.WebkitSpeechRecognitionGUI not found
08:46:43.770 [WebGui] INFO c.m.f.Service [Service.java:2027] subscribe [i01.ear/publishStatus ---> WebGui/onStatus]
08:46:43.770 [AWT-EventQueue-0] INFO c.m.s.GUIService [GUIService.java:377] could not construct a org.myrobotlab.control.WebkitSpeechRecognitionGUI object - creating generic template
08:46:43.770 [WebGui] INFO c.m.f.Service [Service.java:2027] subscribe [i01.ear/publishState ---> WebGui/onState]
08:46:43.770 [python.interpreter.3] INFO c.m.f.Service [Service.java:2027] subscribe [i01.ear/recognized ---> python/onRecognized]
08:46:43.785 [AWT-EventQueue-0] INFO c.m.f.Service [Service.java:2027] subscribe [i01.ear/publishStatus ---> GUIService/getStatus]
08:46:43.816 [python.interpreter.3] INFO c.m.s.Runtime [Runtime.java:331] Runtime.createService subconsciousMouth
08:46:43.824 [python.interpreter.3] INFO c.m.f.Service [Service.java:1006] getMessageSet loading 164 non-sub-routable methods
08:46:43.828 [python.interpreter.3] WARN c.m.f.Service [Service.java:1377] no such method Runtime.registered(MarySpeech) : - attempting upcasting
08:46:43.832 [python.interpreter.3] WARN c.m.f.Service [Service.java:1382] searching through 254 methods
08:46:43.832 [python] WARN c.m.f.Service [Service.java:1377] no such method Python.onRegistered(MarySpeech) : - attempting upcasting
08:46:43.832 [GUIService] WARN c.m.f.Service [Service.java:1377] no such method GUIService.registered(MarySpeech) : - attempting upcasting
08:46:43.832 [python] WARN c.m.f.Service [Service.java:1382] searching through 172 methods
08:46:43.832 [GUIService] WARN c.m.f.Service [Service.java:1382] searching through 192 methods
08:46:43.836 [WebGui] WARN c.m.f.Service [Service.java:1377] no such method WebGui.onRegistered(MarySpeech) : - attempting upcasting
08:46:43.836 [python] INFO c.m.s.Python [Python.java:533] exec(String)
from org.myrobotlab.service import MarySpeech
subconsciousMouth = Runtime.getService("subconsciousMouth")

08:46:43.836 [WebGui] WARN c.m.f.Service [Service.java:1382] searching through 189 methods
08:46:43.836 [WebGui] INFO c.m.f.Service [Service.java:2027] subscribe [subconsciousMouth/publishStatus ---> WebGui/onStatus]
08:46:43.836 [WebGui] INFO c.m.f.Service [Service.java:2027] subscribe [subconsciousMouth/publishState ---> WebGui/onState]
08:46:43.872 [New I/O worker #2] INFO c.m.s.WebGui [WebGui.java:496] POST /api/messages
08:46:43.876 [New I/O worker #2] INFO c.m.f.Service [Service.java:2027] subscribe [i01.ear/getMethodMap ---> WebGui/onMethodMap]
08:46:43.880 [New I/O worker #2] INFO c.m.s.WebGui [WebGui.java:496] POST /api/messages
08:46:43.920 [New I/O worker #2] INFO c.m.s.WebGui [WebGui.java:496] POST /api/messages
08:46:43.920 [New I/O worker #2] INFO c.m.f.Service [Service.java:2027] subscribe [i01.ear/onStartSpeaking ---> WebGui/onOnStartSpeaking]
08:46:43.924 [New I/O worker #2] INFO c.m.s.WebGui [WebGui.java:496] POST /api/messages
08:46:43.928 [New I/O worker #2] INFO c.m.f.Service [Service.java:2027] subscribe [i01.ear/onEndSpeaking ---> WebGui/onOnEndSpeaking]
08:46:43.932 [New I/O worker #2] INFO c.m.s.WebGui [WebGui.java:496] POST /api/messages
08:46:43.932 [New I/O worker #2] INFO c.m.f.Service [Service.java:2027] subscribe [i01.ear/onStartListening ---> WebGui/onOnStartListening]
08:46:43.936 [New I/O worker #2] INFO c.m.s.WebGui [WebGui.java:496] POST /api/messages
08:46:43.936 [New I/O worker #2] INFO c.m.f.Service [Service.java:2027] subscribe [i01.ear/onStopListening ---> WebGui/onOnStopListening]
08:46:43.940 [New I/O worker #2] INFO c.m.s.WebGui [WebGui.java:496] POST /api/messages
08:46:43.940 [New I/O worker #2] INFO c.m.f.Service [Service.java:2027] subscribe [i01.ear/publishStatus ---> WebGui/onStatus]
08:46:43.944 [New I/O worker #2] INFO c.m.s.WebGui [WebGui.java:496] POST /api/messages
08:46:43.944 [New I/O worker #2] INFO c.m.f.Service [Service.java:2027] subscribe [i01.ear/publishState ---> WebGui/onState]
08:46:43.948 [New I/O worker #2] INFO c.m.s.WebGui [WebGui.java:496] POST /api/messages
08:46:43.948 [New I/O worker #2] INFO c.m.f.Service [Service.java:2027] subscribe [i01.ear/getMethodMap ---> WebGui/onMethodMap]
08:46:43.952 [New I/O worker #2] INFO c.m.s.WebGui [WebGui.java:496] POST /api/messages
08:46:43.956 [New I/O worker #2] INFO c.m.s.WebGui [WebGui.java:496] POST /api/messages
08:46:44.040 [AWT-EventQueue-0] INFO c.m.f.Instantiator [Instantiator.java:23] class org.myrobotlab.control.MarySpeechGUI not found
08:46:44.044 [AWT-EventQueue-0] INFO c.m.s.GUIService [GUIService.java:377] could not construct a org.myrobotlab.control.MarySpeechGUI object - creating generic template
08:46:44.052 [AWT-EventQueue-0] INFO c.m.f.Service [Service.java:2027] subscribe [subconsciousMouth/publishStatus ---> GUIService/getStatus]
08:46:46.974 [python.interpreter.3] INFO d.d.l.t.t.JTok [JTok.java:146] loading language resources for de from jtok/de
08:46:48.911 [python.interpreter.3] INFO d.d.l.t.t.JTok [JTok.java:146] loading language resources for en from jtok/en
08:46:51.505 [python.interpreter.3] INFO d.d.l.t.t.JTok [JTok.java:146] loading language resources for it from jtok/it
08:46:53.599 [python.interpreter.3] INFO d.d.l.t.t.JTok [JTok.java:146] loading language resources for en from jtok/en
08:46:53.677 [python.interpreter.3] INFO d.d.l.t.t.JTok [JTok.java:146] loading language resources for en from jtok/en
08:46:54.927 [python.interpreter.3] INFO d.d.l.t.t.JTok [JTok.java:146] loading language resources for en from jtok/en
08:46:54.974 [python.interpreter.3] INFO c.m.s.Runtime [Runtime.java:331] Runtime.createService i01.mouth
08:46:54.974 [python.interpreter.3] INFO c.m.f.Service [Service.java:1006] getMessageSet loading 164 non-sub-routable methods
08:46:54.974 [python.interpreter.3] INFO c.m.f.Service [Service.java:744] found reservation exchanging reservedKey i01.mouth for actual name i01.mouth
08:46:54.989 [python] INFO c.m.s.Python [Python.java:533] exec(String)
from org.myrobotlab.service import MarySpeech
i01_mouth = Runtime.getService("i01.mouth")

08:46:54.989 [WebGui] INFO c.m.f.Service [Service.java:2027] subscribe [i01.mouth/publishStatus ---> WebGui/onStatus]
08:46:54.989 [WebGui] INFO c.m.f.Service [Service.java:2027] subscribe [i01.mouth/publishState ---> WebGui/onState]
08:46:54.989 [AWT-EventQueue-0] INFO c.m.f.Instantiator [Instantiator.java:23] class org.myrobotlab.control.MarySpeechGUI not found
08:46:54.989 [AWT-EventQueue-0] INFO c.m.s.GUIService [GUIService.java:377] could not construct a org.myrobotlab.control.MarySpeechGUI object - creating generic template
08:46:54.989 [python.interpreter.3] INFO c.m.f.Service [Service.java:2027] subscribe [i01.mouth/publishStartSpeaking ---> python/onStartSpeaking]
08:46:54.999 [python.interpreter.3] INFO c.m.f.Service [Service.java:2027] subscribe [i01.mouth/publishEndSpeaking ---> python/onEndSpeaking]
08:46:55.012 [AWT-EventQueue-0] INFO c.m.f.Service [Service.java:2027] subscribe [i01.mouth/publishStatus ---> GUIService/getStatus]
08:46:55.012 [python.interpreter.3] INFO c.m.s.Runtime [Runtime.java:331] Runtime.createService i01.right
08:46:55.012 [python.interpreter.3] INFO c.m.f.Service [Service.java:1006] getMessageSet loading 262 non-sub-routable methods
08:46:55.012 [python.interpreter.3] INFO c.m.f.Service [Service.java:567] found reservation i01.right.serial [serial] Serial - serial device for this Arduino
08:46:55.027 [python.interpreter.3] INFO c.m.f.Service [Service.java:374] setting arduinoPath
08:46:55.027 [python.interpreter.3] INFO c.m.f.Service [Service.java:397] setting reference to remote object arduinoPath
08:46:55.043 [python.interpreter.3] INFO c.m.f.Service [Service.java:374] setting sketch
08:46:55.043 [python.interpreter.3] INFO c.m.f.Service [Service.java:397] setting reference to remote object sketch
08:46:55.043 [python.interpreter.3] INFO c.m.f.Service [Service.java:374] setting uploadSketchResult
08:46:55.043 [python.interpreter.3] INFO c.m.f.Service [Service.java:397] setting reference to remote object uploadSketchResult
08:46:55.043 [python.interpreter.3] WARN c.m.f.Service [Service.java:1377] no such method Runtime.registered(Arduino) : - attempting upcasting
08:46:55.043 [python.interpreter.3] WARN c.m.f.Service [Service.java:1382] searching through 254 methods
08:46:55.043 [python] WARN c.m.f.Service [Service.java:1377] no such method Python.onRegistered(Arduino) : - attempting upcasting
08:46:55.043 [GUIService] WARN c.m.f.Service [Service.java:1377] no such method GUIService.registered(Arduino) : - attempting upcasting
08:46:55.043 [python] WARN c.m.f.Service [Service.java:1382] searching through 172 methods
08:46:55.043 [WebGui] WARN c.m.f.Service [Service.java:1377] no such method WebGui.onRegistered(Arduino) : - attempting upcasting
08:46:55.043 [GUIService] WARN c.m.f.Service [Service.java:1382] searching through 192 methods
08:46:55.043 [python] INFO c.m.s.Python [Python.java:533] exec(String)
from org.myrobotlab.service import Arduino
i01_right = Runtime.getService("i01.right")

08:46:55.043 [WebGui] WARN c.m.f.Service [Service.java:1382] searching through 189 methods
08:46:55.043 [WebGui] INFO c.m.f.Service [Service.java:2027] subscribe [i01.right/publishStatus ---> WebGui/onStatus]
08:46:55.057 [WebGui] INFO c.m.f.Service [Service.java:2027] subscribe [i01.right/publishState ---> WebGui/onState]
08:46:55.065 [python.interpreter.3] INFO c.m.s.Runtime [Runtime.java:331] Runtime.createService i01.right.serial
08:46:55.077 [python.interpreter.3] INFO c.m.f.Service [Service.java:1006] getMessageSet loading 210 non-sub-routable methods
08:46:55.081 [python.interpreter.3] INFO c.m.f.Service [Service.java:744] found reservation exchanging reservedKey i01.right.serial for actual name i01.right.serial
08:46:55.092 [python.interpreter.3] INFO c.m.f.Service [Service.java:374] setting lastPortName
08:46:55.092 [python.interpreter.3] INFO c.m.f.Service [Service.java:397] setting reference to remote object lastPortName
08:46:55.092 [python.interpreter.3] WARN c.m.f.Service [Service.java:1377] no such method Runtime.registered(Serial) : - attempting upcasting
08:46:55.092 [python.interpreter.3] WARN c.m.f.Service [Service.java:1382] searching through 254 methods
08:46:55.092 [GUIService] WARN c.m.f.Service [Service.java:1377] no such method GUIService.registered(Serial) : - attempting upcasting
08:46:55.092 [python] WARN c.m.f.Service [Service.java:1377] no such method Python.onRegistered(Serial) : - attempting upcasting
08:46:55.092 [GUIService] WARN c.m.f.Service [Service.java:1382] searching through 192 methods
08:46:55.092 [WebGui] WARN c.m.f.Service [Service.java:1377] no such method WebGui.onRegistered(Serial) : - attempting upcasting
08:46:55.092 [python] WARN c.m.f.Service [Service.java:1382] searching through 172 methods
08:46:55.092 [WebGui] WARN c.m.f.Service [Service.java:1382] searching through 189 methods
08:46:55.092 [python] INFO c.m.s.Python [Python.java:533] exec(String)
from org.myrobotlab.service import Serial
i01_right_serial = Runtime.getService("i01.right.serial")

08:46:55.092 [WebGui] INFO c.m.f.Service [Service.java:2027] subscribe [i01.right.serial/publishStatus ---> WebGui/onStatus]
08:46:55.092 [WebGui] INFO c.m.f.Service [Service.java:2027] subscribe [i01.right.serial/publishState ---> WebGui/onState]
08:46:55.092 [python.interpreter.3] INFO c.m.s.Serial [Serial.java:626] loading class: org.myrobotlab.serial.PortJSSC
08:46:55.132 [python.interpreter.3] INFO c.m.i.FileIO [FileIO.java:982] looking for /resource/Arduino/MrlComm/MRLComm.ino
08:46:55.136 [python.interpreter.3] ERROR c.m.i.FileIO [FileIO.java:997] can not find resource [/resource/Arduino/MrlComm/MRLComm.ino]
08:46:55.140 [python.interpreter.3] INFO c.m.s.Runtime [Runtime.java:331] Runtime.createService i01.right.serial
08:46:55.140 [python.interpreter.3] INFO c.m.f.Status [Status.java:83] connect to port COM4 115200|8|1|0
08:46:55.144 [python.interpreter.3] INFO c.m.s.Serial [Serial.java:499] creating org.myrobotlab.serial.PortJSSC port COM4 115200|8|1|0
08:46:55.144 [python.interpreter.3] INFO c.m.f.Status [Status.java:83] created port COM4 115200|8|1|0 - goodtimes
08:46:55.164 [python.interpreter.3] INFO c.m.f.Status [Status.java:83] i01.right.serial publishConnect COM4
08:46:55.164 [python.interpreter.3] INFO c.m.s.Serial [Serial.java:333] setParams 115200 8 1 0
08:46:55.168 [i01.right.serial] INFO c.m.f.Status [Status.java:83] i01.right.serial connected to COM4
08:46:55.168 [i01.right] INFO c.m.f.Status [Status.java:83] i01.right connected to COM4
08:46:55.172 [COM4.portListener 1] INFO c.m.s.Port [Port.java:152] listening on port COM4
08:46:55.174 [COM4.portListener 1] ERROR c.m.f.Service [Service.java:2155] i01.right error Arduino->MRL error - bad magic number 10 - 1 rx errors
08:46:55.174 [COM4.portListener 1] ERROR c.m.f.Service [Service.java:2155] i01.right error Arduino->MRL error - bad magic number 19 - 2 rx errors
08:46:55.174 [python.interpreter.3] INFO c.m.f.Service [Arduino.java:490] waiting for boardInfo lock..........
08:46:55.174 [COM4.portListener 1] ERROR c.m.f.Service [Service.java:2155] i01.right error Arduino->MRL error - bad magic number 8 - 3 rx errors
08:46:55.174 [COM4.portListener 1] ERROR c.m.f.Service [Service.java:2155] i01.right error Arduino->MRL error - bad magic number 0 - 4 rx errors
08:46:55.174 [COM4.portListener 1] ERROR c.m.f.Service [Service.java:2155] i01.right error Arduino->MRL error - bad magic number 12 - 5 rx errors
08:46:55.174 [COM4.portListener 1] ERROR c.m.f.Service [Service.java:2155] i01.right error Arduino->MRL error - bad magic number 5 - 6 rx errors
08:46:55.174 [COM4.portListener 1] ERROR c.m.f.Service [Service.java:2155] i01.right error Arduino->MRL error - bad magic number 31 - 7 rx errors
08:46:55.314 [AWT-EventQueue-0] INFO c.m.f.Service [Service.java:2027] subscribe [i01.right/publishStatus ---> GUIService/getStatus]
08:46:55.533 [AWT-EventQueue-0] INFO c.m.f.Service [Service.java:2027] subscribe [i01.right.serial/publishStatus ---> GUIService/getStatus]
08:46:55.533 [i01.right.serial] INFO c.m.s.Serial [Serial.java:626] loading class: org.myrobotlab.serial.PortJSSC
08:46:55.533 [GUIService] WARN c.m.f.Service [Service.java:1377] no such method SerialGUI.onPortNames(ArrayList) : - attempting upcasting
08:46:55.533 [GUIService] WARN c.m.f.Service [Service.java:1382] searching through 53 methods
08:46:55.580 [AWT-EventQueue-0] INFO c.m.c.ServiceGUI [ArduinoGUI.java:714] getState Arduino
08:46:55.596 [AWT-EventQueue-0] INFO c.m.c.SerialGUI [SerialGUI.java:389] displaying COM4
08:46:56.065 [COM4.portListener 1] INFO c.m.f.Service [Arduino.java:1335] Version return by Arduino: 53
08:46:56.065 [COM4.portListener 1] INFO c.m.f.Service [Arduino.java:1336] Board type returned by Arduino: mega
08:46:56.080 [COM4.portListener 1] INFO c.m.f.Service [Arduino.java:1337] Board type currently set: 1
08:46:56.080 [COM4.portListener 1] INFO c.m.f.Service [Arduino.java:1688] setting board to type mega
08:46:56.096 [COM4.portListener 1] INFO c.m.f.Service [Arduino.java:1340] Board type set to: 1
08:46:56.096 [AWT-EventQueue-0] INFO c.m.c.ServiceGUI [ArduinoGUI.java:714] getState Arduino
08:46:56.096 [COM4.portListener 1] INFO c.m.f.Service [Arduino.java:1335] Version return by Arduino: 53
08:46:56.096 [COM4.portListener 1] INFO c.m.f.Service [Arduino.java:1336] Board type returned by Arduino: mega
08:46:56.096 [COM4.portListener 1] INFO c.m.f.Service [Arduino.java:1337] Board type currently set: 1
08:46:56.096 [COM4.portListener 1] INFO c.m.f.Service [Arduino.java:1688] setting board to type mega
08:46:56.096 [python.interpreter.3] INFO c.m.f.Service [Arduino.java:495] waited 922 ms for Arduino i01.right to say hello
08:46:56.111 [python.interpreter.3] INFO c.m.f.Status [Status.java:83] i01.right.serial connected on COM4 responded version 53 ... goodtimes...
08:46:56.127 [COM4.portListener 1] INFO c.m.f.Service [Arduino.java:1340] Board type set to: 1
08:46:56.127 [COM4.portListener 1] INFO c.m.f.Service [Arduino.java:1335] Version return by Arduino: 53
08:46:56.127 [COM4.portListener 1] INFO c.m.f.Service [Arduino.java:1336] Board type returned by Arduino: mega
08:46:56.127 [COM4.portListener 1] INFO c.m.f.Service [Arduino.java:1337] Board type currently set: 1
08:46:56.127 [COM4.portListener 1] INFO c.m.f.Service [Arduino.java:1688] setting board to type mega
08:46:56.127 [COM4.portListener 1] INFO c.m.f.Service [Arduino.java:1340] Board type set to: 1
08:46:56.143 [COM4.portListener 1] INFO c.m.f.Service [Arduino.java:1335] Version return by Arduino: 53
08:46:56.143 [COM4.portListener 1] INFO c.m.f.Service [Arduino.java:1336] Board type returned by Arduino: mega
08:46:56.143 [COM4.portListener 1] INFO c.m.f.Service [Arduino.java:1337] Board type currently set: 1
08:46:56.143 [COM4.portListener 1] INFO c.m.f.Service [Arduino.java:1688] setting board to type mega
08:46:56.143 [COM4.portListener 1] INFO c.m.f.Service [Arduino.java:1340] Board type set to: 1
08:46:56.143 [COM4.portListener 1] INFO c.m.f.Service [Arduino.java:1335] Version return by Arduino: 53
08:46:56.143 [COM4.portListener 1] INFO c.m.f.Service [Arduino.java:1336] Board type returned by Arduino: mega
08:46:56.143 [COM4.portListener 1] INFO c.m.f.Service [Arduino.java:1337] Board type currently set: 1
08:46:56.143 [COM4.portListener 1] INFO c.m.f.Service [Arduino.java:1688] setting board to type mega
08:46:56.143 [COM4.portListener 1] INFO c.m.f.Service [Arduino.java:1340] Board type set to: 1
08:46:56.530 [python.interpreter.3] INFO c.m.s.Runtime [Runtime.java:331] Runtime.createService i01.rightHand
08:46:56.546 [python.interpreter.3] INFO c.m.f.Service [Service.java:1006] getMessageSet loading 181 non-sub-routable methods
08:46:56.546 [python.interpreter.3] INFO c.m.f.Service [Service.java:567] found reservation i01.rightHand.arduino [arduino] Arduino - Arduino controller for this arm
08:46:56.546 [python.interpreter.3] INFO c.m.f.Service [Service.java:744] found reservation exchanging reservedKey i01.rightHand for actual name i01.rightHand
08:46:56.546 [python.interpreter.3] WARN c.m.f.Service [Service.java:1377] no such method Runtime.registered(InMoovHand) : - attempting upcasting
08:46:56.546 [python.interpreter.3] WARN c.m.f.Service [Service.java:1382] searching through 254 methods
08:46:56.546 [python.interpreter.3] INFO c.m.s.Runtime [Runtime.java:331] Runtime.createService i01.rightHand.thumb
08:46:56.546 [GUIService] WARN c.m.f.Service [Service.java:1377] no such method GUIService.registered(InMoovHand) : - attempting upcasting
08:46:56.546 [python] WARN c.m.f.Service [Service.java:1377] no such method Python.onRegistered(InMoovHand) : - attempting upcasting
08:46:56.562 [GUIService] WARN c.m.f.Service [Service.java:1382] searching through 192 methods
08:46:56.562 [python] WARN c.m.f.Service [Service.java:1382] searching through 172 methods
08:46:56.562 [WebGui] WARN c.m.f.Service [Service.java:1377] no such method WebGui.onRegistered(InMoovHand) : - attempting upcasting
08:46:56.562 [python] INFO c.m.s.Python [Python.java:533] exec(String)
from org.myrobotlab.service import InMoovHand
i01_rightHand = Runtime.getService("i01.rightHand")

08:46:56.562 [WebGui] WARN c.m.f.Service [Service.java:1382] searching through 189 methods
08:46:56.562 [python.interpreter.3] INFO c.m.f.Service [Service.java:1006] getMessageSet loading 206 non-sub-routable methods
08:46:56.562 [WebGui] INFO c.m.f.Service [Service.java:2027] subscribe [i01.rightHand/publishStatus ---> WebGui/onStatus]
08:46:56.562 [python.interpreter.3] INFO c.m.f.Service [Service.java:744] found reservation exchanging reservedKey i01.rightHand.thumb for actual name i01.rightHand.thumb
08:46:56.562 [WebGui] INFO c.m.f.Service [Service.java:2027] subscribe [i01.rightHand/publishState ---> WebGui/onState]
08:46:56.574 [python.interpreter.3] INFO c.m.f.Service [Service.java:374] setting controllers
08:46:56.578 [python.interpreter.3] INFO c.m.f.Service [Service.java:397] setting reference to remote object controllers
08:46:56.578 [python.interpreter.3] INFO c.m.f.Service [Service.java:374] setting defaultDetachDelay
08:46:56.578 [python.interpreter.3] WARN c.m.f.Service [Service.java:1377] no such method Runtime.registered(Servo) : - attempting upcasting
08:46:56.578 [AWT-EventQueue-0] INFO c.m.f.Service [Service.java:2027] subscribe [i01.rightHand/publishStatus ---> GUIService/getStatus]
08:46:56.582 [python.interpreter.3] WARN c.m.f.Service [Service.java:1382] searching through 254 methods
08:46:56.586 [GUIService] WARN c.m.f.Service [Service.java:1377] no such method GUIService.registered(Servo) : - attempting upcasting
08:46:56.586 [GUIService] WARN c.m.f.Service [Service.java:1382] searching through 192 methods
08:46:56.586 [python] WARN c.m.f.Service [Service.java:1377] no such method Python.onRegistered(Servo) : - attempting upcasting
08:46:56.590 [python] WARN c.m.f.Service [Service.java:1382] searching through 172 methods
08:46:56.590 [python] INFO c.m.s.Python [Python.java:533] exec(String)
from org.myrobotlab.service import Servo
i01_rightHand_thumb = Runtime.getService("i01.rightHand.thumb")

08:46:56.590 [python.interpreter.3] INFO c.m.f.Service [Service.java:2027] subscribe [runtime/registered ---> i01.rightHand.thumb/onRegistered]
08:46:56.590 [python.interpreter.3] INFO c.m.s.Runtime [Runtime.java:331] Runtime.createService i01.rightHand.index
08:46:56.598 [python.interpreter.3] INFO c.m.f.Service [Service.java:1006] getMessageSet loading 206 non-sub-routable methods
08:46:56.598 [python.interpreter.3] INFO c.m.f.Service [Service.java:744] found reservation exchanging reservedKey i01.rightHand.index for actual name i01.rightHand.index
08:46:56.610 [python.interpreter.3] INFO c.m.f.Service [Service.java:374] setting controllers
08:46:56.614 [python.interpreter.3] INFO c.m.f.Service [Service.java:397] setting reference to remote object controllers
08:46:56.614 [python.interpreter.3] INFO c.m.f.Service [Service.java:374] setting defaultDetachDelay
08:46:56.622 [WebGui] WARN c.m.f.Service [Service.java:1377] no such method WebGui.onRegistered(Servo) : - attempting upcasting
08:46:56.622 [python.interpreter.3] INFO c.m.f.Service [Service.java:2027] subscribe [runtime/registered ---> i01.rightHand.index/onRegistered]
08:46:56.622 [python] INFO c.m.s.Python [Python.java:533] exec(String)
from org.myrobotlab.service import Servo
i01_rightHand_index = Runtime.getService("i01.rightHand.index")

08:46:56.622 [WebGui] WARN c.m.f.Service [Service.java:1382] searching through 189 methods
08:46:56.625 [python.interpreter.3] INFO c.m.s.Runtime [Runtime.java:331] Runtime.createService i01.rightHand.majeure
08:46:56.625 [WebGui] INFO c.m.f.Service [Service.java:2027] subscribe [i01.rightHand.thumb/publishStatus ---> WebGui/onStatus]
08:46:56.625 [WebGui] INFO c.m.f.Service [Service.java:2027] subscribe [i01.rightHand.thumb/publishState ---> WebGui/onState]
08:46:56.625 [WebGui] INFO c.m.f.Service [Service.java:2027] subscribe [i01.rightHand.index/publishStatus ---> WebGui/onStatus]
08:46:56.625 [WebGui] INFO c.m.f.Service [Service.java:2027] subscribe [i01.rightHand.index/publishState ---> WebGui/onState]
08:46:56.625 [python.interpreter.3] INFO c.m.f.Service [Service.java:1006] getMessageSet loading 206 non-sub-routable methods
08:46:56.625 [python.interpreter.3] INFO c.m.f.Service [Service.java:744] found reservation exchanging reservedKey i01.rightHand.majeure for actual name i01.rightHand.majeure
08:46:56.640 [python.interpreter.3] INFO c.m.f.Service [Service.java:374] setting controllers
08:46:56.640 [python.interpreter.3] INFO c.m.f.Service [Service.java:397] setting reference to remote object controllers
08:46:56.640 [python.interpreter.3] INFO c.m.f.Service [Service.java:374] setting defaultDetachDelay
08:46:56.644 [python] INFO c.m.s.Python [Python.java:533] exec(String)
from org.myrobotlab.service import Servo
i01_rightHand_majeure = Runtime.getService("i01.rightHand.majeure")

08:46:56.644 [python.interpreter.3] INFO c.m.f.Service [Service.java:2027] subscribe [runtime/registered ---> i01.rightHand.majeure/onRegistered]
08:46:56.644 [WebGui] INFO c.m.f.Service [Service.java:2027] subscribe [i01.rightHand.majeure/publishStatus ---> WebGui/onStatus]
08:46:56.644 [python.interpreter.3] INFO c.m.s.Runtime [Runtime.java:331] Runtime.createService i01.rightHand.ringFinger
08:46:56.644 [WebGui] INFO c.m.f.Service [Service.java:2027] subscribe [i01.rightHand.majeure/publishState ---> WebGui/onState]
08:46:56.648 [python.interpreter.3] INFO c.m.f.Service [Service.java:1006] getMessageSet loading 206 non-sub-routable methods
08:46:56.656 [python.interpreter.3] INFO c.m.f.Service [Service.java:744] found reservation exchanging reservedKey i01.rightHand.ringFinger for actual name i01.rightHand.ringFinger
08:46:56.656 [python.interpreter.3] INFO c.m.f.Service [Service.java:374] setting controllers
08:46:56.660 [python.interpreter.3] INFO c.m.f.Service [Service.java:397] setting reference to remote object controllers
08:46:56.660 [python.interpreter.3] INFO c.m.f.Service [Service.java:374] setting defaultDetachDelay
08:46:56.664 [python] INFO c.m.s.Python [Python.java:533] exec(String)
from org.myrobotlab.service import Servo
i01_rightHand_ringFinger = Runtime.getService("i01.rightHand.ringFinger")

08:46:56.664 [python.interpreter.3] INFO c.m.f.Service [Service.java:2027] subscribe [runtime/registered ---> i01.rightHand.ringFinger/onRegistered]
08:46:56.668 [WebGui] INFO c.m.f.Service [Service.java:2027] subscribe [i01.rightHand.ringFinger/publishStatus ---> WebGui/onStatus]
08:46:56.668 [python.interpreter.3] INFO c.m.s.Runtime [Runtime.java:331] Runtime.createService i01.rightHand.pinky
08:46:56.672 [WebGui] INFO c.m.f.Service [Service.java:2027] subscribe [i01.rightHand.ringFinger/publishState ---> WebGui/onState]
08:46:56.680 [python.interpreter.3] INFO c.m.f.Service [Service.java:1006] getMessageSet loading 206 non-sub-routable methods
08:46:56.692 [python.interpreter.3] INFO c.m.f.Service [Service.java:744] found reservation exchanging reservedKey i01.rightHand.pinky for actual name i01.rightHand.pinky
08:46:56.696 [python.interpreter.3] INFO c.m.f.Service [Service.java:374] setting controllers
08:46:56.696 [python.interpreter.3] INFO c.m.f.Service [Service.java:397] setting reference to remote object controllers
08:46:56.702 [python.interpreter.3] INFO c.m.f.Service [Service.java:374] setting defaultDetachDelay
08:46:56.702 [python] INFO c.m.s.Python [Python.java:533] exec(String)
from org.myrobotlab.service import Servo
i01_rightHand_pinky = Runtime.getService("i01.rightHand.pinky")

08:46:56.702 [python.interpreter.3] INFO c.m.f.Service [Service.java:2027] subscribe [runtime/registered ---> i01.rightHand.pinky/onRegistered]
08:46:56.702 [WebGui] INFO c.m.f.Service [Service.java:2027] subscribe [i01.rightHand.pinky/publishStatus ---> WebGui/onStatus]
08:46:56.702 [python.interpreter.3] INFO c.m.s.Runtime [Runtime.java:331] Runtime.createService i01.rightHand.wrist
08:46:56.722 [python.interpreter.3] INFO c.m.f.Service [Service.java:1006] getMessageSet loading 206 non-sub-routable methods
08:46:56.722 [python.interpreter.3] INFO c.m.f.Service [Service.java:744] found reservation exchanging reservedKey i01.rightHand.wrist for actual name i01.rightHand.wrist
08:46:56.722 [WebGui] INFO c.m.f.Service [Service.java:2027] subscribe [i01.rightHand.pinky/publishState ---> WebGui/onState]
08:46:56.726 [python.interpreter.3] INFO c.m.f.Service [Service.java:374] setting controllers
08:46:56.726 [python.interpreter.3] INFO c.m.f.Service [Service.java:397] setting reference to remote object controllers
08:46:56.726 [python.interpreter.3] INFO c.m.f.Service [Service.java:374] setting defaultDetachDelay
08:46:56.730 [python] INFO c.m.s.Python [Python.java:533] exec(String)
from org.myrobotlab.service import Servo
i01_rightHand_wrist = Runtime.getService("i01.rightHand.wrist")

08:46:56.730 [python.interpreter.3] INFO c.m.f.Service [Service.java:2027] subscribe [runtime/registered ---> i01.rightHand.wrist/onRegistered]
08:46:56.734 [WebGui] INFO c.m.f.Service [Service.java:2027] subscribe [i01.rightHand.wrist/publishStatus ---> WebGui/onStatus]
08:46:56.734 [python.interpreter.3] INFO c.m.s.Runtime [Runtime.java:331] Runtime.createService i01.right
08:46:56.734 [WebGui] INFO c.m.f.Service [Service.java:2027] subscribe [i01.rightHand.wrist/publishState ---> WebGui/onState]
08:46:56.745 [python.interpreter.3] INFO c.m.s.MarySpeech [MarySpeech.java:86] speakInternal Blocking true Text: starting right hand
08:46:57.010 [AWT-EventQueue-0] INFO c.m.f.Service [Service.java:2027] subscribe [i01.rightHand.thumb/publishStatus ---> GUIService/getStatus]
08:46:57.073 [Thread-20] INFO c.m.s.MarySpeech [MarySpeech.java:225] Starting to speak: starting right hand
08:46:57.182 [Thread-20] INFO c.m.s.MarySpeech [MarySpeech.java:61] Ok.. here we go.
08:46:57.401 [AWT-EventQueue-0] INFO c.m.f.Service [Service.java:2027] subscribe [i01.rightHand.index/publishStatus ---> GUIService/getStatus]
08:46:57.448 [AWT-EventQueue-0] INFO c.m.f.Service [Service.java:2027] subscribe [i01.rightHand.majeure/publishStatus ---> GUIService/getStatus]
08:46:57.479 [AWT-EventQueue-0] INFO c.m.f.Service [Service.java:2027] subscribe [i01.rightHand.ringFinger/publishStatus ---> GUIService/getStatus]
08:46:57.526 [AWT-EventQueue-0] INFO c.m.f.Service [Service.java:2027] subscribe [i01.rightHand.pinky/publishStatus ---> GUIService/getStatus]
08:46:57.573 [AWT-EventQueue-0] INFO c.m.f.Service [Service.java:2027] subscribe [i01.rightHand.wrist/publishStatus ---> GUIService/getStatus]
08:47:00.289 [Thread-20] INFO c.m.s.MarySpeech [MarySpeech.java:232] End speaking: starting right hand
08:47:00.289 [python.interpreter.3] INFO c.m.s.Runtime [Runtime.java:331] Runtime.createService i01.rightHand
08:47:00.289 [python.input] INFO c.m.f.Service [WebkitSpeechRecognition.java:116] Resume listening event seen.
08:47:00.304 [python.interpreter.3] INFO c.m.f.Service [Arduino.java:1688] setting board to type uno
08:47:00.304 [i01.rightHand.thumb] WARN c.m.f.Service [Service.java:1377] no such method Servo.onRegistered(Servo) : - attempting upcasting
08:47:00.304 [python.interpreter.3] INFO c.m.f.Service [Arduino.java:475] already connected to port COM4
08:47:00.304 [i01.rightHand.thumb] WARN c.m.f.Service [Service.java:1382] searching through 206 methods
08:47:00.820 [python.interpreter.3] ERROR c.m.f.Service [Service.java:2155] i01.rightHand.thumb error i01.rightHand.thumb's controller is not set
08:47:00.824 [python.interpreter.3] ERROR c.m.f.Service [Service.java:2155] i01.rightHand.index error i01.rightHand.index's controller is not set
08:47:00.824 [python.interpreter.3] ERROR c.m.f.Service [Service.java:2155] i01.rightHand.majeure error i01.rightHand.majeure's controller is not set
08:47:00.828 [python.interpreter.3] ERROR c.m.f.Service [Service.java:2155] i01.rightHand.ringFinger error i01.rightHand.ringFinger's controller is not set
08:47:00.832 [python.interpreter.3] ERROR c.m.f.Service [Service.java:2155] i01.rightHand.pinky error i01.rightHand.pinky's controller is not set
08:47:00.832 [python.interpreter.3] ERROR c.m.f.Service [Service.java:2155] i01.rightHand.wrist error i01.rightHand.wrist's controller is not set
08:47:02.338 [python.interpreter.3] INFO c.m.s.Runtime [Runtime.java:331] Runtime.createService i01.mouth
08:47:02.338 [python.interpreter.3] INFO c.m.s.MarySpeech [MarySpeech.java:86] speakInternal Blocking true Text: starting mouth
08:47:02.554 [Thread-23] INFO c.m.s.MarySpeech [MarySpeech.java:225] Starting to speak: starting mouth
08:47:02.660 [Thread-23] INFO c.m.s.MarySpeech [MarySpeech.java:61] Ok.. here we go.
08:47:05.175 [Thread-23] INFO c.m.s.MarySpeech [MarySpeech.java:232] End speaking: starting mouth
08:47:05.175 [python.input] INFO c.m.f.Service [WebkitSpeechRecognition.java:116] Resume listening event seen.
08:47:05.271 [python.interpreter.3] INFO c.m.s.Runtime [Runtime.java:331] Runtime.createService WebkitSpeechRecognitionFix
08:47:05.279 [python.interpreter.3] INFO c.m.f.Service [Service.java:1006] getMessageSet loading 150 non-sub-routable methods
08:47:05.283 [python.interpreter.3] INFO c.m.f.Service [Service.java:374] setting isClockRunning
08:47:05.287 [python.interpreter.3] INFO c.m.f.Service [Service.java:374] setting interval
08:47:05.291 [python.interpreter.3] WARN c.m.f.Service [Service.java:1377] no such method Runtime.registered(Clock) : - attempting upcasting
08:47:05.291 [python.interpreter.3] WARN c.m.f.Service [Service.java:1382] searching through 254 methods
08:47:05.291 [python] WARN c.m.f.Service [Service.java:1377] no such method Python.onRegistered(Clock) : - attempting upcasting
08:47:05.291 [GUIService] WARN c.m.f.Service [Service.java:1377] no such method GUIService.registered(Clock) : - attempting upcasting
08:47:05.295 [i01.rightHand.thumb] WARN c.m.f.Service [Service.java:1377] no such method Servo.onRegistered(Clock) : - attempting upcasting
08:47:05.295 [python] WARN c.m.f.Service [Service.java:1382] searching through 172 methods
08:47:05.295 [GUIService] WARN c.m.f.Service [Service.java:1382] searching through 192 methods
08:47:05.295 [i01.rightHand.majeure] WARN c.m.f.Service [Service.java:1377] no such method Servo.onRegistered(Clock) : - attempting upcasting
08:47:05.295 [i01.rightHand.ringFinger] WARN c.m.f.Service [Service.java:1377] no such method Servo.onRegistered(Clock) : - attempting upcasting
08:47:05.295 [i01.rightHand.pinky] WARN c.m.f.Service [Service.java:1377] no such method Servo.onRegistered(Clock) : - attempting upcasting
08:47:05.295 [i01.rightHand.thumb] WARN c.m.f.Service [Service.java:1382] searching through 206 methods
08:47:05.295 [i01.rightHand.wrist] WARN c.m.f.Service [Service.java:1377] no such method Servo.onRegistered(Clock) : - attempting upcasting
08:47:05.299 [python] INFO c.m.s.Python [Python.java:533] exec(String)
from org.myrobotlab.service import Clock
WebkitSpeechRecognitionFix = Runtime.getService("WebkitSpeechRecognitionFix")

08:47:05.299 [i01.rightHand.index] WARN c.m.f.Service [Service.java:1377] no such method Servo.onRegistered(Clock) : - attempting upcasting
08:47:05.299 [i01.rightHand.majeure] WARN c.m.f.Service [Service.java:1382] searching through 206 methods
08:47:05.303 [i01.rightHand.ringFinger] WARN c.m.f.Service [Service.java:1382] searching through 206 methods
08:47:05.303 [i01.rightHand.pinky] WARN c.m.f.Service [Service.java:1382] searching through 206 methods
08:47:05.303 [WebGui] WARN c.m.f.Service [Service.java:1377] no such method WebGui.onRegistered(Clock) : - attempting upcasting
08:47:05.307 [i01.rightHand.wrist] WARN c.m.f.Service [Service.java:1382] searching through 206 methods
08:47:05.307 [python.interpreter.3] INFO c.m.f.Service [Service.java:2158] WebkitSpeechRecognitionFix info starting clock
08:47:05.307 [i01.rightHand.index] WARN c.m.f.Service [Service.java:1382] searching through 206 methods
08:47:05.311 [WebGui] WARN c.m.f.Service [Service.java:1382] searching through 189 methods
08:47:05.319 [WebGui] INFO c.m.f.Service [Service.java:2027] subscribe [WebkitSpeechRecognitionFix/publishStatus ---> WebGui/onStatus]
08:47:05.319 [WebGui] INFO c.m.f.Service [Service.java:2027] subscribe [WebkitSpeechRecognitionFix/publishState ---> WebGui/onState]
08:47:05.327 [python.interpreter.3] INFO c.m.s.Runtime [Runtime.java:331] Runtime.createService HealthCheck
08:47:05.327 [python.input] INFO c.m.f.Service [WebkitSpeechRecognition.java:116] Resume listening event seen.
08:47:05.327 [python.interpreter.3] INFO c.m.f.Service [Service.java:1006] getMessageSet loading 150 non-sub-routable methods
08:47:05.331 [python.interpreter.3] INFO c.m.f.Service [Service.java:374] setting isClockRunning
08:47:05.335 [python.interpreter.3] INFO c.m.f.Service [Service.java:374] setting interval
08:47:05.339 [python] INFO c.m.s.Python [Python.java:533] exec(String)
from org.myrobotlab.service import Clock
HealthCheck = Runtime.getService("HealthCheck")

08:47:05.339 [WebGui] INFO c.m.f.Service [Service.java:2027] subscribe [HealthCheck/publishStatus ---> WebGui/onStatus]
08:47:05.343 [WebGui] INFO c.m.f.Service [Service.java:2027] subscribe [HealthCheck/publishState ---> WebGui/onState]
08:47:05.355 [python.interpreter.3] INFO c.m.f.Service [Service.java:2158] HealthCheck info starting clock
08:47:05.359 [python.interpreter.3] INFO c.m.f.Service [WebkitSpeechRecognition.java:123] Start listening event seen.
08:47:05.439 [python.interpreter.3] INFO c.m.s.MarySpeech [MarySpeech.java:86] speakInternal Blocking true Text: ok you have my attention
08:47:05.631 [Thread-25] INFO c.m.s.MarySpeech [MarySpeech.java:225] Starting to speak: ok you have my attention
08:47:05.731 [Thread-25] INFO c.m.s.MarySpeech [MarySpeech.java:61] Ok.. here we go.
08:47:06.393 [New I/O worker #2] INFO c.m.s.WebGui [WebGui.java:496] POST /api/messages
08:47:06.397 [New I/O worker #2] INFO c.m.f.Service [WebkitSpeechRecognition.java:101] Recognized : >call John Locke<
08:47:06.401 [New I/O worker #2] INFO c.m.s.WebGui [WebGui.java:496] POST /api/messages
08:47:06.405 [New I/O worker #2] INFO c.m.f.Service [WebkitSpeechRecognition.java:63] Publish Text : call John Locke
08:47:08.855 [Thread-25] INFO c.m.s.MarySpeech [MarySpeech.java:232] End speaking: ok you have my attention
08:47:08.855 [python.input] INFO c.m.f.Service [WebkitSpeechRecognition.java:116] Resume listening event seen.
08:47:20.331 [python.input] INFO c.m.f.Service [WebkitSpeechRecognition.java:116] Resume listening event seen.
08:47:35.331 [python.input] INFO c.m.f.Service [WebkitSpeechRecognition.java:116] Resume listening event seen.
08:47:50.333 [python.input] INFO c.m.f.Service [WebkitSpeechRecognition.java:116] Resume listening event seen.
08:48:05.337 [python.input] INFO c.m.f.Service [WebkitSpeechRecognition.java:116] Resume listening event seen.
08:48:20.339 [python.input] INFO c.m.f.Service [WebkitSpeechRecognition.java:116] Resume listening event seen.
08:48:35.341 [python.input] INFO c.m.f.Service [WebkitSpeechRecognition.java:116] Resume listening event seen.
08:48:50.341 [python.input] INFO c.m.f.Service [WebkitSpeechRecognition.java:116] Resume listening event seen.
08:49:05.342 [python.input] INFO c.m.f.Service [WebkitSpeechRecognition.java:116] Resume listening event seen.
08:49:20.344 [python.input] INFO c.m.f.Service [WebkitSpeechRecognition.java:116] Resume listening event seen.
08:49:35.346 [python.input] INFO c.m.f.Service [WebkitSpeechRecognition.java:116] Resume listening event seen.
08:49:50.347 [python.input] INFO c.m.f.Service [WebkitSpeechRecognition.java:116] Resume listening event seen.
08:50:05.351 [python.input] INFO c.m.f.Service [WebkitSpeechRecognition.java:116] Resume listening event seen.

kinect

TODO > add kinect service to script

error did not find method - publishServoAttach

I saw this in the black box ( and have strange things ) is it serious doctors ?
I use enableAutoAttach and enableAutoDetach

ERROR c.myrobotlab.framework.Service - did not find method - publishServoAttach(i01.head.jaw)

right arm not showing the tabs in gui

Hello Anthony,
I tried to launch in a few differnet way to see if I could get it work, but there seems to be an issue with the right arm not starting even though it is activated in my general config and skeleton.
Although the head is not activated it does show the tabs for rothead, neck, jaw, eyes...

Another odd issue is that it always tells me there is a problem with my arduino although it is functional and connected with the correct MRLcomm. Tabs are with servo are worky so I wonder what it detects to be wrong.
I modified the startup sound, I hadn't uploaded the correct one... my bad.
I modified the order of servo for the arm in skeleton according to pin order. I should do the same for the head.

Error related i01.RobotIsStarted

-Traceback (most recent call last): File string, line 34, in module File InMoov/system/InitCheckup.py, line 126, in module sleepModeWakeUp() File C:/Myrobotlab/myrobotlab.1.0.2205/InMoov/life\sleepMode.py, line 17, in sleepModeWakeUp if i01.RobotIsStarted:AttributeError: org.myrobotlab.service.InMoov object has no attribute

Shutdown actions

Some shutdown actions can be implemented. I'm thinking of one useful thing , is to set whole robot rest() just before shutdown. Why : because next time started, servo will not move at fullspeed to rest().

shutdown actions :

  • rest()
  • disable servos
  • disable neopixel ...

Arm Commands

I have my ScriptType=Full
"arms front" seemed to work once
"da vinci" hasn't worked at all, even after renaming the voice name "arms gesture" since voice recognition kept failing at producing "da" space "vinci"
I can't find where either command is even defined!
Can I add my own ear.commands and defs?

Thank you!

predicates AIML not created with the name

Hello Anthony,
It seems that default.predicates stays even after giving my name.
Normally a gael.predicates should be created but for some reason it doesn't do it anymore.
Do you have the same behavior?

.bat launcher discussion

Why we use a launcher and what this thing do at this time

  • autostart mrl+script when robot power on
  • autoinstall mrl at first launch ( java -jar mayrobotlab -install X Y Z )
  • delete myrobotlab.log at startup ( to send clean noworky )
  • replace myrobotlab.jar by a previously automatic downloaded version myrobotlab-new.jar
  • reinstall whole MRL if a "signal" is sent. Actually signal if missing repo.json.
    Signal is sent if myrobotlab.jar changed to be sure to update dependencies and resources like mrlcomm.

I think the 2 last points need must be optimized, surely by using the agent?
Off course now the script is inside ressources folders, this subdirectory will be added to an exclusion list.
All files can be replaced, the config files are safe

inmoov tracking service

Seem not worky and need refactor about servo mapping

i01.headTracking.faceDetect()
i01.eyesTracking.faceDetect()

French _inmoovGestures

@anthony,
hello,
Why are all the voice commands to enable parts are removed from _inmoovGestures?
Do you plan to put them someplace else?
I personaly use these commands all the time when working on the robot, specialy if I do student sessions. I will be doing one very soon in Brussel and was counting on using French version.
For exemple if you are working only with a arm or a hand (not having a complete inmoov) it's great to be able to voice enable or disable each components.

I'm guessing, it's because you consider the enableAutoEnable as a pertinent use.
Although it is totally effective when running a complete robot, it might not be handy when working on the robot, therefore voice controlling the connections remain usefull.

Downloading a new voice

Downloading a new voice for MarySpeech hangs after it's finished in the terminal.
The process is actually done and finished, but it looks in the terminal like the user needs to wait because it says PROCESS1/1 and just waits.
It's only a bit confusing and I have no idea if that can be arranged. Idealy would be autoterminate and restart. That would be in Wonderland!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.