Manticore on OSX?

Hello!

I'd like to run Manticore release on OSX, but Gael's InMoov configured version dumps core on startup (latest Java 1.8 on High Sierra). I'll look into it, but I would like to know if someone here runs it successfully on OSX? If so, which Java version are you using?

Any other tips regarding MRL and OSX are also very welcome. We have been running it successfully on Windows with our InMoov, but I need the better TTS language support in OSX now. 

BR
Teemu

moz4r's picture

Hi ! I know someone that

Hi ! I know someone that daily use InMoov on macos, localspeech worky with local macos voice ( others tts also ).

Please describe problems you encounter we will solve them !

Ash's picture

Hi and welcome,So...I'm

Hi and welcome,

So...I'm french and my US language is bad... :-(

My Manticore run on Macmini I5 2.6 GHz 8Mo Ram with MacOs High Sierra 10.13.3

- Download Manticore

- Download last version Java (oracle)

- Downoload last version Java JDK (http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2...)

- Download the latest version of "Google Chrome" and select it in default for navigation internet.

- In Folder "Manticore" ->"Inmoov" -> "Config" , open "_inmoov.config" with textedit (or another soft)

Langage :select your language, in my case : fr

and

IuseLinux : True (that's important)

Save and close

 

Select a voice in your finder preference system "accessibility" -> "Voice" example -> Thomas in French

 

For the ref of the USB connection of the Arduino Mega, use "Arduino soft" to see the name of the connection of the 2 arduino mega. For example : /dev/cu/usbmodemFD1321 for the right port in my case

Write this (/dev/cu/usbmo....) in "Manticore" -> "InMoov" -> "Config" -> Service_6_Arduino

myrightport : /dev/cu/usbmodemFD1321

Idem for the left port with the good reference

Save and close

In the finder, in folder "Manticore" -> one clic on "start_inmoov.sh", and tape "CMD + i", in "open with" select "terminal" (that's VERY important"

Save and close

Double clic on "start_inmoov.sh" and return here to say what happens...  ;-)

In this picture, you can see MRL Manticore on the iPad Mini (Display of the mac mini with "Duet" software...

 

Have Fun !! ;-)

In the last picture, it's me (scaried in the left) and Moz4r (in the right but before breakfast and coffee...)

 

 

ttur's picture

Speech now ok, how about listening?

Thanks! I got the MRL Manticore running on OSX now with the tips from Ash and also by disabling the virtual InMoov. I don't need it right now, I am just interested in working with the ear and mouth. Also I am sure the Arduino tips will be very useful when we integrate with the physical robot next week. 

Now OS X localspeech works quite well in Finnish and the embedded commands you can give are great to make it sound like what you want (like adjusting the pitch for a single word, adding emphasis, etc). 

Next challenge is to get the speech recognition to understand Finnish better. To my shock Finnish, despite the great nation Finland is, is not yet supported. I'd need to be able to communicate to webkitSpeechRecognition that the language used is Finnish.

Is there some easy trick to achieve this, or should I start looking into how to add a Finnish language pack for InMoov?

ttur's picture

Actually nevermind, I copied

Actually nevermind, I copied the "en" language pack under "fi" and webkitSpeechRecognition now works in Finnish. I could translate the strings to Finnish as well and send a PR, but do you actually want smaller languages to be a part of the official repository? Adds up to the maintenance burden, I'd imagine, if you need to add/modify/delete entries from the templates...

GroG's picture

Yes, we want language packs

Yes, we want language packs of "smaller" languages !
The "repo" is to be filled with this yummy candy 

If it get's two large then there should be a mechanism to load parts on demand.

In regards to maintenance we just need to try to come up with standards, strategies or processes which ease the maintenance.

ttur's picture

Trouble with Arduinos

Now I am wrestling with the Arduinos on OS X with the physical robot.  

I followed the instructions, but I get errors on startup. I am figuring this out, but any suggestions would be very helpful...

My current Arduino config in MRL is as follows:

;----------------------------- ARDUINOS CONFIG ----------------------------------------
[MAIN]
 
;my rightport if used ( /dev/ttyUSB0 for linux/macos )
MyRightPort=/dev/cu.usbmodem14122121
BoardTypeMyRightPort="atmega2560"
ArefRightArduino="DEFAULT"
 
;my leftport if used
MyLeftPort=/dev/cu.usbmodem14122111
BoardTypeMyLeftPort="atmega2560"
ArefLeftArduino="DEFAULT"
 
ForceArduinoIsConnected=False
; BoardType Info

; atmega2560 | atmega168 | atmega328 | atmega328p | atmega1280 | atmega32u4

I can see the devices:

fl102:config ttur$ ls /dev/cu.usb*

/dev/cu.usbmodem14524111 /dev/cu.usbmodem14524121

However, when I start MRL I get an error:

15:29:22.914 [python.interpreter.2] ERROR c.myrobotlab.framework.Service - i01.right error could not open port /dev/cu.usbmodem14122121  rate 115200 dataBits 8 stopBits 1 parity 0
15:29:23.420 [python.interpreter.2] INFO  c.myrobotlab.framework.Service - i01.right.serial info disconnect unknown port null
15:29:23.420 [python.interpreter.2] INFO  c.myrobotlab.framework.Service - i01.right.serial info already disconnected
15:29:23.523 [python.interpreter.2] INFO  c.myrobotlab.framework.Service - i01.right.serial info connect to port /dev/cu.usbmodem14122121 115200|8|1|0
15:29:23.526 [python.interpreter.2] ERROR c.myrobotlab.framework.Service - serial open threw
java.io.IOException: could not open port /dev/cu.usbmodem14122121  rate 115200 dataBits 8 stopBits 1 parity 0
at org.myrobotlab.serial.PortJSSC.open(PortJSSC.java:112) ~[myrobotlab.jar:1.0.2693]
at org.myrobotlab.service.Serial.connectPort(Serial.java:439) ~[myrobotlab.jar:1.0.2693]
at org.myrobotlab.service.Serial.open(Serial.java:382) ~[myrobotlab.jar:1.0.2693]
at org.myrobotlab.service.Serial.open(Serial.java:315) ~[myrobotlab.jar:1.0.2693]
at org.myrobotlab.service.Serial.connect(Serial.java:304) ~[myrobotlab.jar:1.0.2693]
at org.myrobotlab.service.Arduino.connect(Arduino.java:465) [myrobotlab.jar:1.0.2693]
at org.myrobotlab.service.Arduino.connect(Arduino.java:445) [myrobotlab.jar:1.0.2693]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_162]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_162]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_162]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_162]
at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:186) [myrobotlab.jar:1.0.2693]
at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:204) [myrobotlab.jar:1.0.2693]
at org.python.core.PyObject.__call__(PyObject.java:478) [myrobotlab.jar:1.0.2693]
at org.python.core.PyObject.__call__(PyObject.java:482) [myrobotlab.jar:1.0.2693]
at org.python.core.PyMethod.__call__(PyMethod.java:141) [myrobotlab.jar:1.0.2693]
at org.python.pycode._pyx50.CheckArduinos$1(/Users/ttur/Documents/myrobotlab.1.0.2693/InMoov/services/6_Arduino.py:74) [myrobotlab.jar:na]
at org.python.pycode._pyx50.call_function(/Users/ttur/Documents/myrobotlab.1.0.2693/InMoov/services/6_Arduino.py) [myrobotlab.jar:na]
at org.python.core.PyTableCode.call(PyTableCode.java:167) [myrobotlab.jar:1.0.2693]
at org.python.core.PyBaseCode.call(PyBaseCode.java:307) [myrobotlab.jar:1.0.2693]
at org.python.core.PyBaseCode.call(PyBaseCode.java:145) [myrobotlab.jar:1.0.2693]
at org.python.core.PyFunction.__call__(PyFunction.java:423) [myrobotlab.jar:1.0.2693]
at org.python.pycode._pyx51.f$0(/Users/ttur/Documents/myrobotlab.1.0.2693/InMoov/services/7_Inmoov.py:38) [myrobotlab.jar:na]
at org.python.pycode._pyx51.call_function(/Users/ttur/Documents/myrobotlab.1.0.2693/InMoov/services/7_Inmoov.py) [myrobotlab.jar:na]
at org.python.core.PyTableCode.call(PyTableCode.java:167) [myrobotlab.jar:1.0.2693]
at org.python.core.PyCode.call(PyCode.java:18) [myrobotlab.jar:1.0.2693]
at org.python.core.Py.runCode(Py.java:1386) [myrobotlab.jar:1.0.2693]
at org.python.core.__builtin__.execfile_flags(__builtin__.java:535) [myrobotlab.jar:1.0.2693]
at org.python.core.__builtin__.execfile(__builtin__.java:512) [myrobotlab.jar:1.0.2693]
at org.python.core.__builtin__.execfile(__builtin__.java:543) [myrobotlab.jar:1.0.2693]
at org.python.core.BuiltinFunctions.__call__(__builtin__.java:88) [myrobotlab.jar:1.0.2693]
at org.python.core.PyObject.__call__(PyObject.java:465) [myrobotlab.jar:1.0.2693]
at org.python.pycode._pyx4.f$0(InMoov/system/InitCheckup.py:124) [myrobotlab.jar:na]
at org.python.pycode._pyx4.call_function(InMoov/system/InitCheckup.py) [myrobotlab.jar:na]
at org.python.core.PyTableCode.call(PyTableCode.java:167) [myrobotlab.jar:1.0.2693]
at org.python.core.PyCode.call(PyCode.java:18) [myrobotlab.jar:1.0.2693]
at org.python.core.Py.runCode(Py.java:1386) [myrobotlab.jar:1.0.2693]
at org.python.core.__builtin__.execfile_flags(__builtin__.java:535) [myrobotlab.jar:1.0.2693]
at org.python.core.__builtin__.execfile(__builtin__.java:512) [myrobotlab.jar:1.0.2693]
at org.python.core.__builtin__.execfile(__builtin__.java:543) [myrobotlab.jar:1.0.2693]
at org.python.core.BuiltinFunctions.__call__(__builtin__.java:88) [myrobotlab.jar:1.0.2693]
at org.python.core.PyObject.__call__(PyObject.java:465) [myrobotlab.jar:1.0.2693]
at org.python.pycode._pyx2.f$0(<string>:76) [myrobotlab.jar:na]
at org.python.pycode._pyx2.call_function(<string>) [myrobotlab.jar:na]
at org.python.core.PyTableCode.call(PyTableCode.java:167) [myrobotlab.jar:1.0.2693]
at org.python.core.PyCode.call(PyCode.java:18) [myrobotlab.jar:1.0.2693]
at org.python.core.Py.runCode(Py.java:1386) [myrobotlab.jar:1.0.2693]
at org.python.core.Py.exec(Py.java:1430) [myrobotlab.jar:1.0.2693]
at org.python.util.PythonInterpreter.exec(PythonInterpreter.java:267) [myrobotlab.jar:1.0.2693]
at org.myrobotlab.service.Python$PIThread.run(Python.java:160) [myrobotlab.jar:1.0.2693]
Caused by: jssc.SerialPortException: Port name - /dev/cu.usbmodem14122121; Method name - openPort(); Exception type - Port not found.
at jssc.SerialPort.openPort(SerialPort.java:167) ~[jssc-2.8.0.jar:na]
at org.myrobotlab.serial.PortJSSC.open(PortJSSC.java:109) ~[myrobotlab.jar:1.0.2693]
... 49 common frames omitted
15:29:23.526 [python.interpreter.2] ERROR c.myrobotlab.framework.Service - i01.right error could not open port /dev/cu.usbmodem14122121  rate 115200 dataBits 8 stopBits 1 parity 0

 

Ash's picture

Hi,  Can you open the soft

Hi, 

Can you open the soft "arduino" with the Arduino Mega connected on the mac.

Check the good name of the connection (here : /dev/cu.usbmodem1411), put this name in MRL (in Service_6_arduino.config) and don't move the connection on another port USB or HUB.

Re-launch MRL 

ttur's picture

Hi Ash,  Yep this is how I

Hi Ash, 

Yep this is how I got the device names:

 

Also I was able to load a "blink" program on both Arduino Megas using this Ardunio app.

But MRL is unhappy and unable to open the ports, for some reason... 

AutonomicPerfectionist's picture

Hello! I've seen some similar

Hello!

I've seen some similar problems happen on Linux before, and it's always when another program is using the port. Have you tried shutting down the Arduino IDE before attempting to run MRL? Also, check to make sure there aren't any "zombie" processes running in the background that might still hold a lock on the port. Another thing to check is whether you're running MRL under the correct user. Pretty sure that isn't the problem (I think it would say permission denied), but might as well check. To check, prepend your launch command with "sudo", which will launch it under the root user. If it works then, you have a permissions issue.

Hope this helps, and keep us updated!

ttur's picture

Thanks, it was helpful! I got

Thanks, it was helpful! I got through the "Port not found" problem now - on to the next problem :)

Arduinos are not talking back to my MRL. I used Arduino App earlier to upload the MRLcomm from Manticore on both Ardunio Megas. That did not result in errors. 

Could this be a driver issue? 

12:48:54.842 [python.interpreter.2] INFO  c.myrobotlab.framework.Service - i01.right.serial info connect to port /dev/cu.usbmodem14521111 115200|8|1|0
12:48:54.845 [python.interpreter.2] INFO  class org.myrobotlab.serial.Port - here
12:48:54.845 [python.interpreter.2] INFO  c.myrobotlab.framework.Service - i01.right.serial info i01.right.serial publishConnect /dev/cu.usbmodem14521111
12:48:54.845 [/dev/cu.usbmodem14521111.portListener 4] INFO  class org.myrobotlab.serial.Port - listening on port /dev/cu.usbmodem14521111
12:48:54.845 [python.interpreter.2] INFO  class org.myrobotlab.service.Serial - setParams 115200 8 1 0
12:48:54.846 [i01.right.serial] INFO  c.myrobotlab.framework.Service - i01.right.serial info i01.right.serial connected to /dev/cu.usbmodem14521111
12:48:54.847 [AWT-EventQueue-0] INFO  c.myrobotlab.swing.ServiceGui - onConnect - /dev/cu.usbmodem14521111
12:48:54.847 [python.interpreter.2] WARN  c.myrobotlab.framework.Service - already have active task "getBoardInfo"
12:48:56.742 [i01.right] ERROR class org.myrobotlab.arduino.Msg - Ack not received
12:48:56.743 [i01.right] INFO  c.myrobotlab.framework.Service - i01.right info i01.right disconnected from /dev/cu.usbmodem14521111
12:48:56.743 [python.interpreter.2] INFO  c.myrobotlab.framework.Service - waiting for boardInfo lock..........
12:48:56.744 [i01.right] INFO  c.myrobotlab.framework.Service - remove task getBoardInfo
12:48:56.744 [i01.right] INFO  c.myrobotlab.framework.Service - i01.right info i01.right connected to /dev/cu.usbmodem14521111
12:48:56.746 [AWT-EventQueue-0] INFO  c.myrobotlab.swing.ServiceGui - onDisconnect - /dev/cu.usbmodem14521111
12:48:56.747 [AWT-EventQueue-0] INFO  c.myrobotlab.swing.ServiceGui - onConnect - /dev/cu.usbmodem14521111
12:49:01.248 [python.interpreter.2] INFO  c.myrobotlab.framework.Service - waited 4504 ms for Arduino i01.right to say hello
12:49:01.248 [python.interpreter.2] ERROR c.myrobotlab.framework.Service - i01.right error /dev/cu.usbmodem14521111 did not get response from arduino....
ttur's picture

RESOLVED

Thanks all, I now have control of the Arduinos on OS X High Sierra as well.

For anyone with similar issues I'd recommend the following:

First install Arduino IDE and see if you can update sketch on the card.

If not, make sure you don't have any USB hubs or low quality cables in use.

If that doesn't help, check with lsof that nobody is hogging the devices on your OS X.

If that doesn't help, remove USB serial drivers from /Library/Extensions and install the latest CH340 driver package for OS X.

If that doesn't help, figure out what does, and add it here!

Next up, integration of Open Bionics Ada hands with the InMoov... fun times ahead :)

--ttur