Lets keep organized, do some research, and define some requirements & a plan for the "Ogre" release of MRL.

We currently have 2 Services which are in currently an unknown state of worky.  In some ways they are similar.  We should determine in what condition they are in, the pros/cons and after some review come to a plan for the Ogre release.

ServoOrchestrator

A generalized action orchestrator created by MaVo. I have not used it. But if others could test, and comment on which parts work or don't work or what could be improved.

Pros

  • Generalized Action Event Orchestrator - could potentailly be used for InMoov gesture creation, and general in a way that 
  • Dynamically additive components

Cons

  • ViewPort of work space is not expandable
  • Not sure if it works
  • Not sure how to use it
  • Doubt if its "sends" msgs on queues vs calls servo stuf directly.  If it uses the invoking system - it could potentally control "remote" servos

References :

InMoovGestureCreator

a gesture creator specifically for InMoov created by MaVo.

Pros

  • Tight integration with the InMoov service

Cons

  • Only works for InMoov - and cannot handle modified InMoovs e.g. 3 servo necks

References :

Other Gesture / Script Managers / Orchestrators

EZ Script Manager (wuh?)

 

 

Maestro Servo Control

Cubase - with multi-track timeline (albiet for audio)

 

moz4r

6 years 5 months ago

I like the idea to refresh inmoovgesturecreator, with some additions like Maestro Servo Control things.
( min / max should stay inside servo service )

 

It can become universal ( custom inmoov/robot ) with bodyPart service integration.

gestureCreator.attach(rootBodyPart) 

or

gestureCreator.attach(inMoov2)

, with some combo/tabs for servo group to avoid having too many cursors on the same screen .

I think we should probably leave these services as is, and just create a new one called ServoMixer.  It's a service with a swing gui (and at some point a webgui too) that uses perhaps the same control layout fro the InMoovGestureCreator but it completely generic in that will control all servos that are currently started.

 

We'll keep it very simple at first to make sure it's an easy way to have all the servos controlled from the same gui.  Then we can incrementally add functionality like being able to save a pose.... select which servos are active..  etc..

Welcome ServoMixer ! RIP InMoovGestureCreator & servorchestraor.

I had some ideas :

ServoMixer.attach(runtime) -> get every servo, like u have done
ServoMixer.attach(bodyPartRoot) -> get every servo of the skeleton & group them as tab / or filter with a combo.

At the end I would like to "file / open / gesture" for edit. Inside we have some things like "speak" and inmoov related commands. we must pay attention to it.

Lot of inmoov commands can be transformed to fit on generic commands, I think it is the goal

HEre's a screen cap of the new ServoMixer service.  The real key that drives this service is the new Pose class.  The Pose class is a list of servo control names and their position.  We use the standard codecs to serialize this object to and from json.