Can not execute minimal service for InMoov Starter finger

Hello, Ihave a problem to execute the minimal Inmoov service: I have configured the "COM8" port (for me) as it is explain in the tutorial, I have uploaded the Arduino bootloader into the UNO card and after, impossible to execute the script, I don't know why, could anybody helping me?

Alessandruino's picture

Hi :) i can see a problem

Hi :) i can see a problem with Runtime.createAndStart so the possible problems are :

  1. You have to install the InMoov service ( from the service list in the runtime tab), if service is installed you should have it in green
  2. you are using a different version of MRL than 1695
  3. You didn't copy past properly the first row of the script

Let us know..

Alessandro

Alessandruino's picture

Oh..could you please post

Oh..could you please post here the script you are using please??

Alessandruino's picture

is it the one in the inmoov

is it the one in the inmoov service page??

Emmett_Brown's picture

cpoy/paste seems good?

Thanks helping me, these is the copy/paste I've just copied from the InMoov service page:

#file : InMoov.min.py
#file : InMoov.minimal.py
 
# a very minimal script for InMoov
# although this script is very short you can still
# do voice control of a right hand or finger box
# for any command which you say - you will be required to say a confirmation
# e.g. you say -> open hand, InMoov will ask -> "Did you say open hand?", you will need to 
# respond with a confirmation ("yes","correct","yeah","ya")
 
inMoov = Runtime.createAndStart("inMoov", "InMoov")
 
rightSerialPort = "COM8"
cameraIndex = 1
 
# attach an arduino to InMoov
# possible board types include uno atmega168 atmega328p atmega2560 atmega1280 atmega32u4
# the MRLComm.ino sketch must be loaded into the Arduino for MyRobotLab control !
# set COM number according to the com of your Arduino board
inMoov.attachArduino("right","uno", rightSerialPort)
 
# attach the right hand
inMoov.attachHand("right")
 
# system check
inMoov.systemCheck()
 
# listen for these key words
# to get voice to work - you must be attached to the internet for
# at least the first time
ear = inMoov.getEar()
ear.addCommand("rest", inMoov.getName(), "rest")
ear.addCommand("open hand", inMoov.getName(), "handOpen", "right")
ear.addCommand("close hand", inMoov.getName(), "handClose", "right")
ear.addCommand("capture gesture", inMoov.getName(), "captureGesture")
ear.addCommand("manual", ear.getName(), "lockOutAllGrammarExcept", "voice control")
ear.addCommand("voice control", ear.getName(), "clearLock")
 
ear.addComfirmations("yes","correct","yeah","ya") 
ear.addNegations("no","wrong","nope","nah")
 
And the MRL version is 1840, not good?
 
 
Alessandruino's picture

Ya...you need 1695 !! There

Ya...you need 1695 !! There are massive changes to inmoov service in progress..so you have to use the "old stable version"...

Emmett_Brown's picture

It's better

Thanks a lot, will be more attentive next time.

All seems good now when the script is executed but it does not reconize my voice when I say "manual" for example, I know I have not a very good english accent...

What's wrong again, I have not receive the servo yet but I would like to test it good before.

I can just use the "xxxright" tab to drive the servos, the voice reconizer does not work, maybe I have missed something...?

 

Alessandruino's picture

Did you try saying " voice

Did you try saying " voice control" ??? because i think you should be in voice control mode to make "manual" be recognized !!

Let me know !!

Alessandruino's picture

Manual -> you can use your

Manual -> you can use your servos using servo tab

Voice control -> You can use voice to call gestures

So what i'm wondering is  you need to say voice control, because you are in manual mode, and the word "manual" is not recognized..

Emmett_Brown's picture

Manual but no voice control

II can use inmoov in manual but nothing in voice controlling, I say "Voice control", nothing, manual, nothing.

Therease the sphinx service says that's it's not speeking so it's listennig as you can see on the picure below:

There is no error I think?

How can I just test only the sphinx service in order to see if it is the default cause?

Alessandruino's picture

Ya..it seems like there is no

Ya..it seems like there is no error....

Test with the script in this page :

http://myrobotlab.org/service/Sphinx

;)

Emmett_Brown's picture

Yeah, the sphinx reconize

Yeah, the sphinx reconize "hello world" just one time but the mouth does not say every thing like "you said ..."

Where the bug is?

Alessandruino's picture

Try replacing

Try replacing this:

ear.addListener("recognized", python.name, "heard", String().getClass()); 

 

with this in your script:

 

ear.addListener("recognized", python.name, "heard");

Alessandruino's picture

Oh..and you need to be

Oh..and you need to be connected to internet in order to listen "you said hello word", because of download of speech sintesis words

GroG's picture

Hi Emmett

Your last no-worky log looked pretty good.. no obvious errors to me - I see Sphinx looks to have started correctly.  I'm wondering

  • Is your mic working - is it attached ?

Sometimes I spend 20 minutes trying to figure out why opencv is not working, just to find the usb camera is not plugged in :P

Java also can be a grumpy about lines & mixer controls.

To do a quick test try a capture through the AudioCapture service...   Lets make sure your robot has ears :)

Emmett_Brown's picture

"Right Arduino is not valid"

The sphinx service is no more the main problem, I have tried my µphone with the capture service and I ear the 50 Hz sinus wave like parasite, maybe it can false the reconization, will be try another µ later;

Now I have received my MG995 servo, the arduino right is not valid anymore: "sendMsg Input/output error in writeByte" in the python log error file I have sent to Grog. I don't know why everey thing I do about InMoov does not work;

GroG's picture

Lost in Translation.....

You have Speech in French ?

Le chemin d'acc�s sp�cifi� est introuvable.mp3 is trying to be written to the file system but it contains characters which the file system can not handle ?
sendMsg Input/output error in writeByte

usually occurs when the Arduino is physically disconnected.. but initially it seems like you connected correctly, so I'm at a bit of a loss as to why your experiencing this problem.

Have you had success in starting MRL fresh (make sure no zombies exist) - then manually controlling a single servo ?

 

 

Emmett_Brown's picture

Run good when servo not connected!

Without connected the servo to the Arduino Uno board, I can use the cursor to "move" it by playing the cursor of the indexright tab (I see orange led blinking); But when I plug in the servo once MRL launch, I can no more command the servo (orange no more blink) and also when I launch MRL with the servo connected, the servo is the problem. And it seems to not have zombie I think.

p.s: I beleived ot was due to the power supply, so I've put in an extern transfo to supplying the arduino board but I got the same errores, all it's ok when the servo is plug off and just plugging it make all runiing false...

Alessandruino's picture

I m pretty sure the problem

I m pretty sure the problem is a power issue... I have the same problem using my servos... I have to' use am external battery pack (6 volt) or my arduino disconnect and i can t Connect until i unplug/plug in USB cable.. Using a power supply to' power the arduino is not a good solution..because arduino has his own mA limits with or without the power jack plugged in... I can make a connections diagram for you if you want..

Emmett_Brown's picture

News

The problem is tha Arduino board wich blinking well the rx led when I use the servo&arduino service but I have always 2 V on the corresponding pin (3 or 9, that is the same). Is the problem would not be MRL.ino?