Hello All, 

I'm trying out Nixie and I have questions. 

1. I'm running Nixie MRL in Ubuntu 18.04,  do I have to type in "java -jar myrobotlab.jar" to launch MRL every single time?   I find that I have saved configs but everytime I launch it in the above way.....the configs are being reset and I have to set it again and again...., is there something I'm doing wrong to relaunch MRL? 

2. I followed the instructions for the web gui, clicked on the controller icon, set the controller board type to atmega2560 , port to /dev/tty/ACM1 and rate at 115200, I clicked on connect and I can see the circle has turned from red to Green...., and when I click on head activated, slided to on > settings > I set the controller to io1.left > attached pin 12 (for the neck)> slided to enable > went to limits tab, confused here.....I tried to slide the black triangle symbol back and forth and the neck ....does not move....... and I tried to click on "detach"  on the controller tab......, it does not seem to detach , because it should change to attach....but nothing happens....frustrated here...., 

 

Please advice, 

Thanks 

 

GroG

2 years 7 months ago

Hello Roger2,
1. you can make a bash script - not sure what configs you are referring to ...
If your trying out the latest nixie - the configs will be in the user's data directory ...
data/config

2. Can you give a link to the instructions you are following ?

Hello Grog, 

I followed this link: http://inmoov.fr/inmoov2-in-nixie/

step by step , 

I ran java -jar myrobotlab.jar and it seems to load in the web browser, installed All the services , restarted it and selected InMoov from the page 

 

it launches, and then when I select say head and then rothead , attached arduino (ttyACM0), enabled it , selected pin 13, ..., selected the limits tab and slided it back and forth...., my rothead does not move at all.. ttyACM0 is fine I think because I can upload the whole Mrlcomm.ino sketch to it with no issues, ...., 

please advice on what I'm doing wrong?

The environment I'm using is Ubuntu 18.04 on a Jetson nano board with Java 11 jre installed. 

 

 

Yes I did send a no worky, 

I will send it again in 15minutes so that way you know it's from me, 

and my user id is Roger2

I'm sending the No worky now and its taking very long (it is stuck on sending.....is that normal?

or is there location of where the log file is? I will just paste the errors here.., 

 

HI Grog, 

below are the errors that I have extracted out of the log that occurred when I was trying to move the neck, 

hope you can let me know in what I'm not doing right in NIxie.., 

er 105 - 667 rx errors
17:58:53.032 [EventThread /dev/ttyACM0] WARN c.m.a.Msg [Msg.java:2391] Arduino->MRL error - bad magic number 115 - 668 rx errors
17:58:53.032 [EventThread /dev/ttyACM0] WARN c.m.a.Msg [Msg.java:2391] Arduino->MRL error - bad magic number 116 - 669 rx errors
17:58:53.033 [EventThread /dev/ttyACM0] WARN c.m.a.Msg [Msg.java:2427] NOT CLEAR TO SEND! resetting parser!
17:58:53.033 [EventThread /dev/ttyACM0] WARN c.m.a.Msg [Msg.java:2391] Arduino->MRL error - bad magic number 38 - 670 rx errors
17:58:56.018 [nioEventLoopGroup-3-7] ERROR c.m.a.Msg [Msg.java:2693] Ack not received, ack timeout!
17:58:56.022 [nioEventLoopGroup-3-7] WARN c.m.s.Arduino [Arduino.java:2212] Ack Timeout seen.  TODO: consider resetting the com port /dev/ttyACM0, reconnecting and re syncing all devices.
17:58:59.024 [nioEventLoopGroup-3-7] ERROR c.m.a.Msg [Msg.java:2693] Ack not received, ack timeout!
17:58:59.027 [nioEventLoopGroup-3-7] WARN c.m.s.Arduino [Arduino.java:2212] Ack Timeout seen.  TODO: consider resetting the com port /dev/ttyACM0, reconnecting and re syncing all devices.
17:58:59.033 [nioEventLoopGroup-3-7] INFO c.m.f.Service [Service.java:801] remove task disable
17:58:59.036 [nioEventLoopGroup-3-7] INFO c.m.s.Arduino [Arduino.java:1853] not currently connected
17:58:59.037 [nioEventLoopGroup-3-7] INFO c.m.f.Service [Service.java:801] remove task disable
17:58:59.037 [nioEventLoopGroup-3-7] INFO c.m.s.Servo [Servo.java:117] pos 53.0 output 53.0
17:58:59.039 [i01.head.neck.i01.head.neck.time-encoder] INFO c.m.s.a.AbstractServo [AbstractServo.java:949] TIME-ENCODER SERVO_STARTED - i01.head.neck
17:58:59.441 [i01.head.neck.i01.head.neck.time-encoder] INFO c.m.s.a.AbstractServo [AbstractServo.java:960] TIME-ENCODER SERVO_STOPPED - i01.head.neck
17:59:02.029 [i01.head.neck.disable.timer] ERROR c.m.a.Msg [Msg.java:2693] Ack not received, ack timeout!
17:59:02.030 [i01.head.neck.disable.timer] WARN c.m.s.Arduino [Arduino.java:2212] Ack Timeout seen.  TODO: consider resetting the com port /dev/ttyACM0, reconnecting and re syncing all devices.
17:59:02.041 [EventThread /dev/ttyACM0] WARN c.m.a.Msg [Msg.java:2427] NOT CLEAR TO SEND! resetting parser!
17:59:02.041 [EventThread /dev/ttyACM0] WARN c.m.a.Msg [Msg.java:2391] Arduino->MRL error - bad magic number 21 - 671 rx errors
17:59:02.042 [EventThread /dev/ttyACM0] WARN c.m.a.Msg [Msg.java:2391] Arduino->MRL error - bad magic number 100 - 672 rx errors
17:59:02.042 [EventThread /dev/ttyACM0] WARN c.m.a.Msg [Msg.java:2391] Arduino->MRL error - bad magic number 101 - 673 rx errors
17:59:02.042 [EventThread /dev/ttyACM0] WARN c.m.a.Msg [Msg.java:2391] Arduino->MRL error - bad magic number 118 - 674 rx errors
17:59:02.043 [EventThread /dev/ttyACM0] WARN c.m.a.Msg [Msg.java:2391] Arduino->MRL error - bad magic number 105 - 675 rx errors
17:59:02.043 [EventThread /dev/ttyACM0] WARN c.m.a.Msg [Msg.java:2391] Arduino->MRL error - bad magic number 99 - 676 rx errors
17:59:02.043 [EventThread /dev/ttyACM0] WARN c.m.a.Msg [Msg.java:2391] Arduino->MRL error - bad magic number 101 - 677 rx errors
17:59:02.043 [EventThread /dev/ttyACM0] WARN c.m.a.Msg [Msg.java:2391] Arduino->MRL error - bad magic number 32 - 678 rx errors
17:59:02.044 [EventThread /dev/ttyACM0] WARN c.m.a.Msg [Msg.java:2391] Arduino->MRL error - bad magic number 100 - 679 rx errors
17:59:02.044 [EventThread /dev/ttyACM0] WARN c.m.a.Msg [Msg.java:2391] Arduino->MRL error - bad magic number 111 - 680 rx errors
17:59:02.044 [EventThread /dev/ttyACM0] WARN c.m.a.Msg [Msg.java:2391] Arduino->MRL error - bad magic number 101 - 681 rx errors
17:59:02.044 [EventThread /dev/ttyACM0] WARN c.m.a.Msg [Msg.java:2391] Arduino->MRL error - bad magic number 115 - 682 rx errors
17:59:02.044 [EventThread /dev/ttyACM0] WARN c.m.a.Msg [Msg.java:2391] Arduino->MRL error - bad magic number 32 - 683 rx errors
17:59:02.045 [EventThread /dev/ttyACM0] WARN c.m.a.Msg [Msg.java:2391] Arduino->MRL error - bad magic number 110 - 684 rx errors
17:59:02.045 [EventThread /dev/ttyACM0] WARN c.m.a.Msg [Msg.java:2391] Arduino->MRL error - bad magic number 111 - 685 rx errors
17:59:02.045 [EventThread /dev/ttyACM0] WARN c.m.a.Msg [Msg.java:2391] Arduino->MRL error - bad magic number 116 - 686 rx errors
17:59:02.045 [EventThread /dev/ttyACM0] WARN c.m.a.Msg [Msg.java:2391] Arduino->MRL error - bad magic number 32 - 687 rx errors
17:59:02.045 [EventThread /dev/ttyACM0] WARN c.m.a.Msg [Msg.java:2391] Arduino->MRL error - bad magic number 101 - 688 rx errors
17:59:02.045 [EventThread /dev/ttyACM0] WARN c.m.a.Msg [Msg.java:2391] Arduino->MRL error - bad magic number 120 - 689 rx errors
17:59:02.045 [EventThread /dev/ttyACM0] WARN c.m.a.Msg [Msg.java:2391] Arduino->MRL error - bad magic number 105 - 690 rx errors
17:59:02.046 [EventThread /dev/ttyACM0] WARN c.m.a.Msg [Msg.java:2391] Arduino->MRL error - bad magic number 115 - 691 rx errors
17:59:02.046 [EventThread /dev/ttyACM0] WARN c.m.a.Msg [Msg.java:2391] Arduino->MRL error - bad magic number 116 - 692 rx errors
17:59:02.046 [EventThread /dev/ttyACM0] WARN c.m.a.Msg [Msg.java:2427] NOT CLEAR TO SEND! resetting parser!
17:59:02.046 [EventThread /dev/ttyACM0] WARN c.m.a.Msg [Msg.java:2391] Arduino->MRL error - bad magic number 34 - 693 rx errors
17:59:02.450 [i01.head.neck.i01.head.neck.time-encoder] INFO c.m.s.a.AbstractServo [AbstractServo.java:960] TIME-ENCODER SERVO_STOPPED - i01.head.neck
17:59:05.033 [i01.head.neck.disable.timer] ERROR c.m.a.Msg [Msg.java:2693] Ack not received, ack timeout!
17:59:05.037 [i01.head.neck.disable.timer] WARN c.m.s.Arduino [Arduino.java:2212] Ack Timeout seen.  TODO: consider resetting the com port /dev/ttyACM0, reconnecting and re syncing all devices.
17:59:08.038 [i01.head.neck.disable.timer] ERROR c.m.a.Msg [Msg.java:2693] Ack not received, ack timeout!
17:59:08.040 [i01.head.neck.disable.timer] WARN c.m.s.Arduino [Arduino.java:2212] Ack Timeout seen.  TODO: consider resetting the com port /dev/ttyACM0,
 
Checked ports:
 
ubuntu@grace:~$ dmesg | grep tty
[    0.000000] Kernel command line: tegraid=21.1.2.0.0 ddr_die=4096M@2048M section=512M memtype=0 vpr_resize usb_port_owner_info=0 lane_owner_info=0 emc_max_dvfs=0 touch_id=0@63 video=tegrafb no_console_suspend=1 console=ttyS0,115200n8 debug_uartport=lsport,4 earlyprintk=uart8250-32bit,0x70006000 maxcpus=4 usbcore.old_scheme_first=1 lp0_vec=0x1000@0xff780000 core_edp_mv=1125 core_edp_ma=4000 gpt tegra_fbmem=0x140000@0x92ca9000 is_hdmi_initialised=1  earlycon=uart8250,mmio32,0x70006000  root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 quiet root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 
[    0.001666] console [tty0] enabled
[    1.101394] console [ttyS0] disabled
[    1.101489] 70006000.serial: ttyS0 at MMIO 0x70006000 (irq = 63, base_baud = 25500000) is a Tegra
[    1.101585] console [ttyS0] enabled
[    1.102693] 70006040.serial: ttyTHS1 at MMIO 0x70006040 (irq = 64, base_baud = 0) is a TEGRA_UART
[    1.103115] 70006200.serial: ttyTHS2 at MMIO 0x70006200 (irq = 65, base_baud = 0) is a TEGRA_UART
[ 1542.824176] cdc_acm 1-2.4.4.2:1.0: ttyACM0: USB ACM device
 

 

got it thanks...
yeah ... on the "good side" - there are no errors, and it sees your /dev/ttyACM0 port 
heh, the encoding is correct too (working through that problem with someone else)

mostly it looks good, except the actual communication to/from the Arduino

In these cases it's worth updating from the MrlComm packaged with the release.
And this can be messed if you put a different version jar is a pre-existing myrobotlab directory.

Please do the following:

  • make new directory e.g. /opt/myrobotlab/549
  • download the latest jar to that directory
  • do     
        cd /opt/myrobotlab/549
        java -jar myrobotlab.jar --install  # should be relatively quick

then use Arduino 1.8.x IDE to install 
/opt/myrobotlab/549/resource/Arduino/MrlComm
to your board

Make sure no errors are returned in the output from the compile & load of the Arduino IDE

this process should guarantee you have the correct matching MrlComm sketch on your board

 

thanks, phew ...I thought there was many errors..., 

Really makes sense to me because I left the old sketch from my other MRL version in my left arduino board, 

and now following your advice installing myrobolab.jar inside /opt, (looks like it is installing everything...) and 

question is , every time I start myrobotlab , do I have to run this java -jar myrobotlab.jar in the terminal? or is there a .bat file like how it is run in windows? .sh or something? 

 

So I tried your suggestions and it didnt work still (upload sketch failed in ubuntu Arduino IDE), ......., still not commuicating after I had upload the latest MRL Nixie MrlComm.ino sketch to my left arduino (using windows Arduino IDE), I had sent you an email and also attached my latest log file, 

 

 not sure what I'm doing wrong now? 

 

# a Linux shell script to start mrl - run the following commands

cd /opt/myrobotlab/549
echo "gnome-terminal -- java -jar myrobotlab.jar" > start.sh
chmod +x ./start.sh

These commands will produce a executable bash script which you can double click

The log you sent me shows you doing the "install services" .. that is it ..
Its extremely important that when "install services" finishes - you restart myrobotlab

so if at this point you have restarted, try setting up a servo - and if it fails send me the log

also I've tested the send noWorky and its worky for me ... 

I couldnt get the start.sh going following your command - echo "gnome-terminal -- java -jar myrobotlab.jar" > start.sh

message came back below in terminal:

bash: start.sh: Permission denied 

I even tried placing sudo infront of it as well, it didnt work...  same message as above... 

 

But on the other hand I have some good news, I'm able to upload the sketch now to my left arduino , good sign and also can move the neck and rothead now, so glad for that ....was able to move them with the slider bar in the web (limit tab)...., finally working thank you very much for your help!   so now my issue is just I need to start MRL Nixie through your way (.sh) and not java -jar myrobotlab.jar.....,  ...........please advice 

 

 

well that's good news ...
as for the script i suspect you didn't follow my directions 
I'm guessing you forgot the chmod +x ./start.sh command

cd /opt/myrobotlab/549
echo "gnome-terminal -- java -jar myrobotlab.jar" > start.sh
chmod +x ./start.sh

are those 2 commands together one line ? or separate 2 lines for each? 

I actually done that but one by one (chmod command I did it on the second line in terminal)..., forgot to mention, 

here is inside the terminal below: 

 

ubuntu@grace:/opt/myrobotlab/549$ sudo echo "gnome-terminal -- java -jar myrobotlab.jar" > start.sh
bash: start.sh: Permission denied
ubuntu@grace:/opt/myrobotlab/549$ chmod +x ./start.sh
chmod: cannot access './start.sh': No such file or directory
ubuntu@grace:/opt/myrobotlab/549$ 
 
 
Please advice on what I'm missing here.... 

ah ... ok 
/opt is a nice place to install stuff - but at the moment the permissions are only for root
So as you see the first command fails, and if that fails the second one won't work either..

So take control of opt !

run this
sudo chown -R $USER /opt
It means "I want to own everything in opt, so I don't need to sudo again"
Then run the other two commands.

I guess your pretty new to Linux ? 
Great ... good to learn new stuff.

This could also perhaps explain the issue you've been having with serial ports...
Linux is pretty picky on who has rights to what - the way it operates is a bit different from windows

ok cool, I took control of /opt as you adviced and it created the start.sh file and made is executable successfully,    yea permissions are so different to windows,   I thought sudo and chmod would do the trick but require further steps to make owner of a directory, thank you, yes I'm learning linux as I go (taking courses as well but I think by learning is by diving in ..... and get experience  which I really want to get NIxie MRL working on my jetson nano) , 

1. so now I'm up to in the file explorer ........, when I double click on start.sh , it just opens in vim automatically ....even though I went into the start.sh 's properties and checked the > permissions tab > checked allow executing the file as program  > but when I double click on start.sh,  it opens up vim in terminal , please advice? (I already done the chmod +x start.sh)

 

2. so for the meanwhile, waiting for your reply - I just ran command   ./start.sh    and it started MRL .... 

(things start to work like the mouth (which I had swiped activated to ON, i chose Poppy and it can speak 

and the issue I'm having is with "save config", I clicked on the save config button for the mouth to be Poppy, 

this info came below:

i01.mouth : : saved i01.mouth config to data/config/default/i01.mouth.yml 

I then shut off MRL ,    ...and then relaunch with typing in ./start.sh , 

And I had to manually click on the finger print to access and begin InMoov ,  so what I'm seeing here is that the body parts that I activated (eg: the mouth) does not load automatically..... 

So second thing I tried, is going into runtime > under configurations > I click on save config as myconfig 

I shut of MRL  and then restart by ./start.sh  > in runtime, I chose myconfig and click on start,  ........, it started the various parts I saved (the ear, mouth and brain but all not "activated"  - which I did save them to be activated and chosen poppy for the mouth, none of those are loaded....) .......

i get this error as well:

i01.chatbot:: could not invoke i01.chatBot.onTest([Ljava.lang.Object;@82c3f36  

On this website http://inmoov.fr/inmoov2-in-nixie/       it shows you how to install, configure and save configs by the save config button   ........, are there instructions on how to operate MRL afterwards?  because it seems that things that I had saved into config dont load up automatically during start

please advice 

 

3. I have problem with the ear, I activated it and clicked on "open" > under listening is True but the Microphone icon there has a red cross on it , when I click on it , the cross goes away for 2 seconds  (so it couldnt listen) and the cross appears on top of the mic icon again, (Recording goes back to false),  ..... 

and this error occurs below:

i01.chaBot :: invalid bot path - a bot must be a directory with a subdirectory named "aiml"

please advice 

I had just also sent a noWorky just now (and success noWork sent) 

1. so now I'm up to in the file explorer ........, when I double click on start.sh , it just opens in vim automatically ....even though I went into the start.sh 's properties and checked the > permissions tab > checked allow executing the file as program  > but when I double click on start.sh,  it opens up vim in terminal , please advice? (I already done the chmod +x start.sh)

The chmod+x start.sh should have made it executable.

You can open your script and put 

#!/bin/bash

as the first line.
The second line should be what I put in the echo, which should be 

gnome-terminal -- java -jar myrobotlab.jar

the gnome-terminal -- means ... start a gnome terminal with no special arguments ... the rest "java -jar myrobotlab.jar" means execute that command in the shell.
By design I wanted to make sure a terminal shell was started before executing "java -jar myrobotlab.jar"

Why ?

Because the terminal gives you alot more control and information than just "silently" running in the background - which I guess was your goal ?

The terminal lets you access the command line interpreter in myrobotlab.
(I guess I should do a demo on this sometime)

if you don't want the terminal coming up then get rid of the "gnome-terminal --" part

Does it actually start vim ? or is it just a terminal ?

xxx

2. so for the meanwhile, waiting for your reply - I just ran command   ./start.sh    and it started MRL .... 

(things start to work like the mouth (which I had swiped activated to ON, i chose Poppy and it can speak 

and the issue I'm having is with "save config", I clicked on the save config button for the mouth to be Poppy, 

this info came below:

i01.mouth : : saved i01.mouth config to data/config/default/i01.mouth.yml 

I then shut off MRL ,    ...and then relaunch with typing in ./start.sh , 

And I had to manually click on the finger print to access and begin InMoov ,  so what I'm seeing here is that the body parts that I activated (eg: the mouth) does not load automatically..... 

So second thing I tried, is going into runtime > under configurations > I click on save config as myconfig 

I shut of MRL  and then restart by ./start.sh  > in runtime, I chose myconfig and click on start,  ........, it started the various parts I saved (the ear, mouth and brain but all not "activated"  - which I did save them to be activated and chosen poppy for the mouth, none of those are loaded....) .......

i get this error as well:

i01.chatbot:: could not invoke i01.chatBot.onTest([Ljava.lang.Object;@82c3f36  

On this website http://inmoov.fr/inmoov2-in-nixie/       it shows you how to install, configure and save configs by the save config button   ........, are there instructions on how to operate MRL afterwards?  because it seems that things that I had saved into config dont load up automatically during start

please advice 

if you don't like typing you can hit up arrow for your last command
or start type ./st  (then hit tab and it will auto-complete)

I started mouth, changed to poppy, then saved config.
Restarting I loaded started the config and Poppy came back ready to run

The thing that didn't work is "InMoov's awareness the mouth was working"
Looking back at InMoov panel, and it doesn't realize the mouth is running and the Poppy voice is selected.

its on the list to be fixed

https://github.com/MyRobotLab/myrobotlab/issues/915

3.  I think the Chrome that is distributed for arm builds is borked, and will require google to fix it until we come up with a better solution - or you can use a browser on a different machine.

#!/bin/bash

I tried this in the first line of the start.sh , it didnt work...., 

1:

Because the terminal gives you alot more control and information than just "silently" running in the background - which I guess was your goal ?

Yes it gives me more control and visibility in the background. 

 Does it actually start vim ? or is it just a terminal ?

it  started in Vim in a terminal, please see below 

Please advice

 

2: 

 

Restarting I loaded started the config and Poppy came back ready to run

 

how did you do this? guessing is it after start.sh launched, go in web browser as below  > go to runtime > under configurations > choose my config > click start?   (every time though?) 

Yes , the mouth Poppy did save, 

actually what I was trying to say is that chatbot is not "activated" when I saved Chatbot to be activated.... in myconfig , 

I also checked in /opt/myrobotlab/549/InMoov/config/service_A_Chatbot.config.default

 

;----------------------------- CHATBOT CONFIG ----------------------------------------

[MAIN]
isChatbotActivated=True
;----------------------------------- END --------------------------------------------------

 

Chatbot Activated is set to True , so it seems no matter what config I start (either default or myconfig), 

Chatbot does "not activate" by itself      which activate has been saved in both default and myconfig..., 

Please advice 

 

3. For InMoov ears on the red cross over the microphone,  so does that mean the latest version of chrome that is equipped with Ubuntu does not work and is chrome's problem? if so,  does that also mean that I wont be able to communicate with InMoov via talking (in Nixie)?
 
Please advice, 
 
I was thinking of buying a nuc with windows but I'm not sure on how to power it up? (in a mobile way)since it takes 19volts input .   (besides from connecting it to the wall outlet which is not suited in my situation). 

 

Heh,

So starting vim is not useful .. but that is the amazing and wonderful thing about Linux, you can configure it to do anything you want (given enough time and patience)

You will start finding deficiences in the InMoov2 service ...
I need Gael's input and possibly kwatters to help resolve details on requirements of functionality.

FYI - any config marked as service_A_Chatbot.config.default

 or .ini will not be used in Nixie.
 
Nixie uses the .yml (yaml) files ...  
 
If you think about configuring your bot with the yml files you will go further.
at some point I'll add a command line to tell myrobotlab to load a specific configuration set ... mebbe that will make you happy...
 
for the moment, you have to load it through the UI ... by selecting it and pressing start...
 
Yaml (.yml) will control more and more of the system as time progresses ...
and .ini & .default will be less and less...
 
the yaml is always save in a "set" of yaml files in a directory under data/config
this is where I am interested in resolving issues - outside of that .. my interest wanes significantly ...

Hi Grog, 

Yea I noticed that InMoov2 uses yamls as I found (myconfig) inside a data folder and with yml files inside. 

I would say it is different in how it was before with Manticore. 

Do you have all the parameters I could set and test in yaml then? 

Ok I understood that InMoov 2 is still under development, appreciate you, Gael and Kwatter's work, it is very awesome!