Using some Virtual ports I have been able to connect VinMoov to MRL ....YAY ...(just to get thing up and running...whilst MRLs revap takes shape).

Its using this Python script  :-

InMoov2.full3.byGael.Langevin.1.py

Its just proof of concept and "Round Robin" for Blender MRL links.. so as you can see the arms are not in correct positions and speed of movement....etcetcetc... however that will be tuned as we go.....

GroG

9 years 2 months ago

Nice Gareth !...

Did you use Blender.py ?   It does not require the virtual serial connection nor serial libraries.. 

I've been working on the test harness for such a long time, I'm glad you jumped forward..

The serial over TCP/IP is checked in now .. but a build will be needed..

Did you look at Blender.py ?

Didja say cross arms and brace for impact ! :)

Gareth

9 years 2 months ago

In reply to by GroG

After checking the blender.py ..... I had the confidence to try another approach.

There is not an awful lot of code_ing involved... a veryveryvery cut down version of the MRLComm.

Its very messy at the moment and errors kicking up here and there.... however the errors are easy to sort out just by assigning them to the right places.

I breifly talked to MaVo in the ShoutBox.... as I was trying to interface the Gesture  script he had already posted..... took a bit of workingout what was needed... and I was able to control InMoov via his panel "live".

The video you see was using my back2back physical uarts (though virtual com uarts will work as we saw the other day)

I think the TCP/IP way you are constructing will have speed advantages and maybe possibilities for more web "avatar" like integration....so I will look forward to see your latest builds.

One problem I hit was that actual Inmoov uses multiple comm's ports.... so I am a little unsure how to bring this into order with VinMoov.

After pondering it on a toadstool for a long time...  I came to the idea that splitting right on the serial line is the way to go !   The "concept" of being able to "unplug" from vInMoov and plug into "real" InMoov  and back again, has huge potential !

So .. its got to be 3 serial ports.  Another reason why virtual serial ports .. or better just a TCP/IP channel emulates this easily.  The TCP Server in Blender.py is multi-threaded so adding another serial is just accepting another connection.  But it also means you need to contruct 3 "virtual" Arduinos on the inside of Blender.  I believe this is working "auto-magically" in Blender.py (or nearly so)

Elvish Ascii Art

MRL Arduino 1 --> Serial Service 1 --> serial line -------> (real Arduino 1)
MRL Arduino 2 --> Serial Service 2 --> serial line -------> (real Arduino 2)
MRL Arduino 3 --> Serial Service 3 --> serial line -------> (real Arduino 3)

Blender.py

MRL Arduino 1 --> Serial Service 1 --> Serial TCP Relay ------>| (n) Thread Blender.py ----> ( vArduino 1)
MRL Arduino 2 --> Serial Service 2 --> Serial TCP Relay ------>|                                      ----> ( vArduino 1)
MRL Arduino 3 --> Serial Service 3 --> Serial TCP Relay ------>|                                      ----> ( vArduino 1)