HOW CAN I GET MY WHOLE InMoov to work?

I have MRL 1861 and it's supporting MRLcomm.ino loaded onto my two Arduino MEGA's

The Merge them All! is such a WIP that it only runs the hands and wrists, but not the arm, head, mouth, torso etc. Even though there are Arm commands and my ScriptType is set to Full. I've been unable to get anything else to move (on purpose) with this mysterious setup sans any meaningful documentation.

IS THERE A WORKING COMBINATION OF MRL + SCRIPT.py THAT WILL JUST BRING MY INMMOV to LIFE? I can't find a single instance that works, and have tried multiple times, multiple scripts, multiple MRL's

Many seem obsolete, or must be paired with specific MRL instances (which is not stated...)

It feels awfully frustrating to have done all this work and have so little success at the end, (and I am a programmer!) Can anyone help? If I have a simple working model and a guide to the prescribed MRL syntax I can take it from there, but no such seems to exist - just random bits and threads disassociated from any complete working software kit!

moz4r's picture

Hi ! waiting a update of

Hi ! waiting a update of "Merge them All" the you can try gael script like this :

https://github.com/MyRobotLab/pyrobotlab/blob/master/home/hairygael/InMo...

mayaway's picture

@moz4r

Gael's full script is OBSOLETE and causes the Acapela site to issue verbal warnings and simply does not work. It does not make use of the current MaryTTS. The script should be taken down!

Mats's picture

InMoov scripts

Hi mayaway

I know that Geal is a very busy man. He works full time + he created all the .stl files and a site dedicated to make it possible for you to build an InMoov. And now he is traveling all over the world to show InMoov. 

He is probably also frustrated that AcapelaSpeech stopped to work. We had the same situation about a year ago when Google speech stopped to work. To move to MarySpeech is a good move because it is Open Source. Unfortunately the quality is not as good.

The InMoov service has been update to use MarySpeech instead of AcapelaSpeech, but many changes has been made to the core of MRL, so some testing is needed before a new "stable" release can be made. I recommed to use 1723 ( Kraken ). But it uses AcapelSpeech as default. 

The "Merge them all" initiative was started just a few weeks ago to address excactly the problem you describe. So as you write: Work In Progress.  

Before that initiative it was very hard for the MRL developers to know if the InMoov scripts were worky or not. It's not yet part of the testing, but now it's at least possible.  

It's also difficult for the developers of MRL to test, since none of the developers has access to an exact copy of Gael's InMoov.

For example:

GroG, doesn't have an InMoov. 

Kwatters has one ( or two ), but currently it's stored away because of other projects.

My InMoov build is very different since I use different hardware. I have never been able to use Gael's script s because of that. And that's OK. I choose to build differently because I want to improve MRL and InMoov is a good platform for learning and improving. I spend almost all my spare time on making MRL better, or answering questions about InMoov / MRL.

Not sure about moz4r and calamity's builds, but they ares also different in some ways. We all try to improve. 

So my suggetion is that you start with your own scripts. Make sure that you know how each service works and build bottom up. 

We all work with InMoov / MRL on a hobby basis. So when you find something that you want to be improved, please contribute. Together I think whe can build something better that anyone could have made on his own.     

/Mats

GroG's picture

Extremely well said Sir. You

Extremely well said Sir.

You are a innovative thinker and a gentleman, and it has been and continues to be a complete pleasure to work with you Mats.

 

mayaway's picture

Thank you Mats!

Thank you Mats, and second GroG,

*So my suggetion is that you start with your own scripts. Make sure that you know how each service works and build bottom up. *

I would love to do this and be happy to contribute. I am not sure where to start re: Knowing how each service works. Is there a Primer for MRL? A dictionary of the current command set (or for Kraken?) A list of the services and their implementations? Where can I gain this knowlege?

Best,

Stephen

Mats's picture

Getting started

Hi

I understand your frustration. I did not really give you a good answer to your question.

So I will try to help you get started the best way I can. 

First of all. The "latest build" contains many untested changes in the core of MRL. 

I think you will have more success with version 1.0.1723 that you can find here: https://github.com/MyRobotLab/myrobotlab/releases

Some documentation on MRL is available here:

http://myrobotlab.org/documentation

http://myrobotlab.org/tutorials

Start with http://myrobotlab.org/content/myrobotlab-howto-download-install-tutorial-0

Since software is moving quick, the turtorial recommends 1.7+. From just a few days ago, the "latest build" require java 8. However 1.0.1723 works with Java 1.7.

It also says that you can use AcapelaSpeech. Well as you know already, thats not working anymore, so use MarySpeech.

Next step is to install MRLComm. Use this guide:

http://myrobotlab.org/content/uploading-mrlcomm-arduino-0

If you have followed the guides above you should be able to explore the potential of MRL. 

However, if you are a developer you might want to also get access to the source code for MRL. Then use the Developer section of this guide: http://myrobotlab.org/quick_start

Please note that "master" branch is the latest "stable release" and "develop" is the one with the latest changes.

Next is to find documentation on the different services. This page documents that:

http://myrobotlab.org/content/what-methods-can-i-use

I hope this will help you getting started. If you have more questions, please don't hesitate to write a new post or just ask in the shoutbox. Sometimes somebody is around and can answer immediatley. If not, then post a question, like this, in the forum. Or use the search box. So many post / blogs have been written about different subjects.

And since you are a developer, you can also find a lot of information by reading source code.  

Good luck with you InMoov build and I hope to see you around soon.

/Mats

hairygael's picture

Mats explained very well the

Mats explained very well the situation.

We are all in the same boat here, spending our free time to help others.

The link I propose bellow is complementary to all the links Mats already proposed.

I don't know if you followed the tutorials and downloaded the working version Kraken(1723) available here:

http://inmoov.fr/how-to-start-myrobotlab/

The zip contains everything you need to get your InMoov working.

Make sure to use the script linked in my tutorial, I recently modified it to make it work with MarySpeech.

mayaway's picture

Working for fun and no profit...

Mats, Gael,

Thank you very much for your help. I am the original and now co-developer of hOurworld.org, an international network of timebanks - an alternative currency based on neighbors helping neighbors. As the original developer I am quite familliar with your stance as I too have been participating for free, for ten years - even poured our own dollars into the project. You might even consider starting a time bank to track developer hours of contribution to the various projects, and provide for offers and requests of services - a system of currency based on equality and reciprocity where every skill is valued. I always considered that some day, some way my efforts would turn to revenue, and they have for a start, begun to pay us back!

Your purpose and dedication are beyond reproach.

If there are helpful ways for me to share my results or contribute I'm happy to assist.

Best,

Stephen

pscartozzi's picture

It would be really nice if

It would be really nice if there was at least one working configuration right now. Sure the Kraken version works but you have to get dressed down by the Acapela lawyers. It doesn't support Mary 5.2 so that is a wash. New releases don't have a working jaw as far as I can tell.

With Acapela leaving and the servo issues we are in a bit of  a quandry as to what versons and scripts to use now that give us the functionality we had a month ago.

 

 

mayaway's picture

Gael's script update to MarySpeech

It look's like Gael has updated a full script to make use of MarySpeech in version InMoov3.Deep.AB.V7.py

https://github.com/MyRobotLab/pyrobotlab/blob/master/home/hairygael/InMo...

I will test this script next, with MRL 1723 

*The InMoov3 scripts are working well with MyRobotLab 1.0.1723 release that you can download here.*

hairygael's picture

The default MarySpeech voice

The default MarySpeech voice is "cmu-slt-hsmm", unfortunately it is not really great.

Hopefully in next official release we will have a better default voice and the possibility to use NaturalReaderSpeech.

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

 

In the meantime you can get a better voice with the Kraken version 1723 by downloading and adding into your jar directory

C:\Myrobotlab\myrobotlab.1.0.1723\libraries\jar

this extra voice-cmu-bdl-hsmm-5.2.jar:

https://github.com/MyRobotLab/pyrobotlab/blob/master/home/hairygael/voice-cmu-bdl-hsmm-5.2.jar

Once this is done, modify the script InMoov3.Deep.AB.V7.py, by replacing:

"cmu-slt-hsmm" with "cmu-bdl-hsmm".

Remember to delete all the aimlif files when ever you modify your script, otherwise the robot will keep saying, "I have no answer for that". These files will be auto generated again when it needs to.

Remove aimlif files in directory:

C:\Myrobotlab\myrobotlab.1.0.1723\ProgramAB\bots\inmoovWebKit\aimlif

Re start MRL using your batch file, And voila, you have a proper worky version with a voice that is not so bad!

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

 

For info, this was all explained on my blog page the next 3 days Acapela went down:

http://inmoov.fr/tutorial-video-and-important-info/

mayaway's picture

chatbot worky but inmoov noworky

Just sent a noworky: InMoov starts -- mouth moves with chatbot replies -- no verbal commands are executed.

Burned a second right Omoplate $50 

InMoov goes to rest on startup but no other actions other than jaw movement with chatbot responses.

In the InMoov3.Deep.AB.V7.py with myrobotlab.1.0.1723 I can't find the command definitions anywhere?

like:

def stopit():
    lookinmiddle()
    sleep(1)
    relax()
    i01.mouth.speak("yes")
    if (data == "pause"):
        i01.mouth.speak("yes")
 
Is that why the InMoov won't move?
hairygael's picture

All verbal commands are in

All verbal commands are in the gesture.aiml

To enter into gesture mode, you need to say: "topic gestures", actually anything you say that will contain the word gestures will get you into gesture mode.

Do not insulte or tell the robot to shut up the robot or it will stop to listen to you unless you excuse yourself, by saying "I'm sorry".

 

Not nice for the servo, why did you get such expensive servo? Servo can burn if they stand still, trying to reach a position while it can't physically reach it.

mayaway's picture

Gestures and Servo

Thank you Gael,

At the time the only Megas available that were equivalent were the HS-5805MG. Today I bought a couple HS-805BB which are now back in stock for $77 a pair from Tower Hobbies. I think they will be ok for the Omoplate. I need to investigate the cause of the burn. I am pretty sure I double checked my Min/Max settings on the servo with a Nano and an Arduino test script. I have 80 Min and 160 Max I see the default REST IS 10 and mine should be 80. I have 

rightArm.omoplate.setMinMax(80,160)
rightArm.omoplate.map(0,180,80,160)

in my InMoov3.Deep.AB.V7.py using MRL 1723 and I have no idea where rest is defined. In ../gestures/rest.py I have

  i01.moveArm("left",0,90,30,10)
  i01.moveArm("right",0,90,30,10)
 
but the 10 should be mapped to my 80 (+10), non?
 
merci,
Stephen
 
hairygael's picture

Beside the burning servo, it

Beside the burning servo, it is all worky now?

"Rest" gesture has a default setting within MRL, but the rest.py in gesture directory is to override that default.

0 will be your 80.

This is the default: rightArm.omoplate.setMinMax(10,85)

mayaway's picture

Testing

Hi Gael,

We visited family so I will test today. Thank you for your time. When I next hook up the burning servo replacement I'll have the pot in place but have the servo out, so if it want to spin it can. From there I can find my Min/Max and full stop at Rest. I am pretty sure the test for the whole InMoov plus ChatBot will go well!

Best,

Stephen

pscartozzi's picture

Hello GaelI can not get the

Hello Gael

I can not get the male voice given your instructions above. Is it because it is for mary 5.2 and Kracken only has mary 5.1.2? The default voice works but it has the 5.1.2 designation on the file in the jar directory.

hairygael's picture

The "cmu-bdl-hsmm" jar file I

The "cmu-bdl-hsmm" jar file I have on my github is different because it is recompiled to work in the 1723 even though it says 5.2.

Did you use the one from my github or did you copy from another source?

The other jar aren't recompiled, so don't try with other voices.

pscartozzi's picture

I used the jar file you

I used the jar file you provided in the link above. So I believe it is the correct one. I placed it into the correct directory and modified my script accordingly. MRL said it could not find the voice file. Curious.

 

mayaway's picture

Voice file test.

Hi pscartozzi,

I'm about to test this same mod today. Verify the file IS in the prescribed folder and the name is EXACTLy correct. Then verify that your script path TO the file is also exactlY correct (meaning case sensitive path) and that the command is placed at the right point in the script. As a coder, I am so familiar with all the lame brain mistakes I can make, dang! I'll let you know how my test goes!

Best,

Stephen

pscartozzi's picture

Let me know how it goes

Let me know how it goes Stephen. my bot is having gender identity issues and needs his man voice back

mayaway's picture

My path and refs

within my script
 
# LANGUAGE ( FR/EN )
lang="EN"
Voice="cmu-bdl-hsmm" 
voiceType=Voice
 
and my path to the file is
 
C:\mrl\myrobotlab.1.0.1723\libraries\jar\voice-cmu-bdl-hsmm-5.2.jar
 
NOTICE the actual filename has voice- preceeding the cmu-bdl-hsmm
 
Does this help?
 
pscartozzi's picture

I've got it working now. I

I've got it working now. I really prefer the Ryan Natural reader voice. Let's hope that stays around for a while.

 

mayaway's picture

pic

hairygael's picture

Nice I am glad you both got

Nice I am glad you both got it working!

Cynthia_Mills's picture

You are a innovative thinker

You are a innovative thinker and a gentleman, and it has been and continues to be a complete pleasure to work with you Mats.

http://jsonbasicstutorial.blogspot.com/