This is the latest config for a servo - the locale is a little disappointing in that I thought the implementation would follow what Runtime was unless explicitly set .... but not a show stopper ..

all these values can make an difference in behavior on the servo ..
it also tells the framework that its to be attached to he "mega" service (which happens to be an Arduino)

So Gael pointed out some bugs which I cleaned up..
The bugs I squashed:

  • InMoov2 doesn't autoDisable all servos - fixed by having InMoov2 subscribe to lifecycle events from runtime ... now all newly created servos will automatically be autoDisabled

bugs left :

  • Servo - on attach go to rest vs last position
  • Servo - on attach energized only after first move - not when attaching
  • Servo - make servo autoDisable, save after disabling, -> reload, autoDisable is true, but doesn't autoDisable after initial attach - because it hasn't moved

enhancements

 

 

hairygael

2 years 8 months ago

Hunting bugs related to config yml (or not)

-Simulator doesn't start via InMoov2 UI if config has been launched

-If Simulator is activated prior launching the config, servos do not respond when moving the cursor.

-If config is launched, servo speed cursor can be moved but it is not actualized

-LocalSpeech UI dropdown voices is broken

-Selection of SpeechEngine in mouth InMoov2 UI is broken

-Config saving for InMoov2 chatbot doesn't save it. When relaunching via config it falls back on Super chatbot.

-Changing locale in Runtime.yml to fr-FR doesn't affect the language en-US which was set in runtime UI prior launching the config.

-LocalSpeech UI dropdown voices is broken
-Selection of SpeechEngine in mouth InMoov2 UI is broken

2 Things related to LocalSpeech.
There was a big refactor and fix fest - that got merged to develop but wasn't on this branch. Now its merged in.  Additionally I did a lot of clean up to the LocalSpeech webgui.
Above is a test I did on a Windows 10 machine. LocalSpeech, Polly, MarySpeech all were worky for me.

-Changing locale in Runtime.yml to fr-FR doesn't affect the language en-US which was set in runtime UI prior launching the config.

fixed build #29

-Config saving for InMoov2 chatbot doesn't save it. When relaunching via config it falls back on Super chatbot.

All of the "Save Config" now are worky in the main InMoov2 UI - the use mrl.sendTo('runtime','export', serviceName)

They behave the same now as the drop down at the top "save service config"

There is no choice of filename, it simply saves the file to the current config name set by saving all the config.

So a user can start by saving all config to a directory name under data/config/myConfigName

From that point on - you can save either from the drop down or from the buttons in InMoov2

Make note, no config will be saved from non-activated services (this possibly could change in the future)

When config is successfully saved you get a little info saying where it was saved.
 

kwatters

2 years 8 months ago

So, i've been testing here and i'm really quite happy with how tell it's all working. 

Few comments about what I would expect the behaviors to be...  though, i think what ever the current behavior is.. it seems to do what i expect.

When Saving the config:

current state of servo is captured, enabled, attached, pin, rest position... etc..

When Loading the config:

the servo will be in as close to the same exact state as it was when the config was saved,..

 

So,  I guess going to last position would be nice..  If users want the config to load the robot in rest position.. maybe they should move the robot to rest position first, then save the config...  

Servo on attach, if the servo was enabled when the config was saved, it should be enabled when attaching.  It's reasonable to reset the idleTimer in this case.   If autoDisable is true, I expect the servo to power off after idleTimer is reached.  

It'd be awesome to be able to edit the config files directly through the runtime gui.. not sure how hard that would be.

 

I think I did a nice clean refactor and removal of idleDisabled ... an extraneous config 
also removed the method idleDisable

cleaned up the logic & verified autoDisable works before and after config load

hairygael

2 years 8 months ago

-Selection via dropdown of SpeechEngine in mouth InMoov2 UI is broken (tested in #34 and it was broken)

-Save main config via InMoov2UI, start right arm, save config of arm servos. When launching the main config, rightArm servos are not attached and not in registry of runtime.yml. Expected behavior: i01.rightArm would be loaded.

-Expected behavior: in InMoov2UI, if I select "myConfig" and click button 'save config' it shouldn't ask if I want to save in "default" directory, but instead if I want to save in "myConfig"

-Launching from config doesn't set service as "isActivated", which would be shown with the buttons ON/OFF of the InMoov2UI. To test in InMoov2UI start rightHand by clicking ON, adjust some finger servo settings, and save the configs. After launching the config, notice that the button ON is not activated.

-How to write new config settings in myConfig? Let say I have saved a full config with chatbot, hands, arms etc. on "myConfig". Now I launch "myConfig" and want to modify the rightHand.thumb, if I click on save to config, it will save into "default" instead of "myConfig"

Speech Engine Drop Down in InMoov2 UI - clean download in new directory - full install .. build #34
Linux x86 64

LocalSpeech worky

MarySpeech worky - slow to load - but it has and will always be that way ...

Polly worky - after keys are set

WebkitSpeechSynthesis - worky(ish) ... wants to start muted - but if you go and un-mute it from its page it will work.

tested on Windows 10 - x86 64 - it does not look broken

Arfff,

This speechEngine dropdown is frustrating.

I have a fresh install of #34  on Windows 10 x64 and I get this:

If I trun ON mouth I get MarySpeech by default.

If I start a mouth directly from runtime UI with LocalSpeech I get this:

Many of InMoov2 potential configuration has not been done ... 

As for the bork'd LocalSpeech - what may be happening is the tts.exe get voices parsing is borked.

The tts.exe application is horribly designed.  And I haven't committed to creating a better one ... yet.

I think we'd be a step closer if you sent a noWorky after starting LocalSpeech...   I'll also put in more diagnostic logging.

you could also send me the results of running 

resource/LocalSpeech/tts.exe -V

and posting the output

-Save main config via InMoov2UI, start right arm, save config of arm servos. When launching the main config, rightArm servos are not attached and not in registry of runtime.yml. Expected behavior: i01.rightArm would be loaded.

Runtime config is handled differently than any other services config.
When you save Runtimes config it saves all other running services config, and makes a list of all services to be started in runtime.yml - it sounds like you did this when no other right arm servos were running.

If you saved the main config at this time - and later loaded it - it would have all the arm servos.
You can modify the runtime.yml to specify which services start or comment them out.

-Expected behavior: in InMoov2UI, if I select "myConfig" and click button 'save config' it shouldn't ask if I want to save in "default" directory, but instead if I want to save in "myConfig"

I think I can fix that ....

-Launching from config doesn't set service as "isActivated", which would be shown with the buttons ON/OFF of the InMoov2UI. To test in InMoov2UI start rightHand by clicking ON, adjust some finger servo settings, and save the configs. After launching the config, notice that the button ON is not activated.

There are some issues with isActivated, and the deprecated booleans to say what peers are started ..
The addition of all these variables denormalizes information that already exists.  This makes it difficult to maintain and error prone.  The peer's state I believe can be retrieved from the service data.  I'll look into fixing it so the buttons are in sync.

-How to write new config settings in myConfig? Let say I have saved a full config with chatbot, hands, arms etc. on "myConfig". Now I launch "myConfig" and want to modify the rightHand.thumb, if I click on save to config, it will save into "default" instead of "myConfig"

I suspect this could be fixed if myConfig is selected changed the configName ... I'll try that

-Expected behavior: in InMoov2UI, if I select "myConfig" and click button 'save config' it shouldn't ask if I want to save in "default" directory, but instead if I want to save in "myConfig"

Fixed - "selecting" the config now immediately changes the config name

Since Runtime & InMoov2 have config panels ... fixed in InMoov #374 & mrl build #36

I'm gonna guess you have stale InMoov2 checked out at the same level ...
If you remember by design when I was trying to help astro and you develop - you git clone'd  the InMoov2 repo at the same level as a mrl directory ... it by design - looks for folders named this way 

if it turns out to be the case - you can start your test in another folder with no InMoov2 nearby .. 
or just git pull in the InMoov2 directory - either way you should get the latest 

hairygael

2 years 8 months ago

Hello Grog,

Thanks, after I emptied the Windows trash it did the job properly.

So it works now as expected for to get the proper config name.