Version 25 (modified by welberge, 7 years ago) (diff)


Using AsapRealizer with Ipaaca

AsapRealizer can be connected to Billie's rendering environment in Ogre through Ipaaca, can execute Ipaaca BML messages and can provide BML feedback using Ipaaca messages.


  1. Setup the soa build script and create a top-level project dir as described here:
  2. Install AsapRealizer as described in the QuickStart

Connecting Ipaaca to the Ogre rendering environment

  1. Clone the soagents_asap and billie_asap from /homes/hvanwelbergen/git_pool:
    git clone /homes/hvanwelbergen/git_pool/soagents_asap
    git clone /homes/hvanwelbergen/git_pool/billie_asap
  2. Clone rsb, ipaaca and ace2
    soa clone rsb
    soa clone ipaaca
    soa clone ace2
  3. Build billie_asap; in the billie_asap dir
    soa build-all
  4. Unpack billie_asap/dist/ in the same directory and make sure that all binaries are runnable billie_asap/dist/bin/ (TODO: how to setup the build system so that this is not needed??)
    chmod 750 bin/*
  5. Start spread:
    spread -n localhost
  6. Run billie from the resource dir
  7. Run the AsapRealizerDemoExternalRenderer demo in AsapDemo/AsapRealizerDemo/java:
    ant main #select asap.realizerdemo.AsapRealizerDemoExternalRenderer
    ant run

The externalrenderdemo makes use of the asapbillieipaaca.xml VirtualHumanLoader xml. This hooks the AnimationEngine and the FaceEngine up to a renderbody provided by Ipaaca:

<Loader id="ipaacaembodiment" loader="asap.ipaacaembodiments.loader.IpaacaEmbodimentLoader"/>
<Loader id="bodyfaceembodiment" requiredloaders="ipaacaembodiment" loader="asap.ipaacaembodiments.loader.IpaacaFaceAndBodyEmbodimentLoader">
  <renaming skeletonRenamingFile="billieskeletonrenaming.xml" morphRenamingFile="billiemorphsrenaming.xml"/>
<Loader id="mixedskeletonembodiment" loader="hmi.physicsenvironment.MixedSkeletonEmbodimentLoader" requiredloaders="bodyfaceembodiment"/>
<Loader id="animationengine"
    <GestureBinding basedir="" resources="Humanoids/billie/gesturebinding/" filename="gesturebinding.xml"/>
    <StartPose resources="Humanoids/billie/restposes/" filename="looselyhangingarms.xml"/>
    <Hns resources="Humanoids/shared/hns" filename="hns.xml"/>

<Loader id="faceengine" 
    <FaceBinding basedir="" resources="Humanoids/billie/facebinding/" filename="facebinding.xml"/>

Submitting and receiving BML through Ipaaca

  1. Setup a VirtualHumanLoader xml file that uses an IpaacaToBMLRealizerAdapterLoader. An example configuration is provided in AsapDemo/AsapRealizerDemo/java/resource/asaparmandiaipaacaport.xml. To set up/configure your own use:
      <Loader id="realizer" loader="asap.realizerembodiments.AsapRealizerEmbodiment">
        <PipeLoader id="pipe" loader="asap.ipaacaadapters.loader.IpaacaToBMLRealizerAdapterLoader"/>
  2. Start spread:
    spread -n localhost
  3. Run the AsapRealizerDemo with the newly defined xml
    ant run -Drun.argline="asaparmandiaipaacaport.xml"
  4. The realizer is now ready to receive and submit Ipaaca BML messages. The demo programs in java/src/asap/realizerdemo/ and python/src/asap_realizerdemo/ show how to submit BML and receive BML feedback in java and python respectively.
  5. To start the python demo; in the python subdir: [TODO: this probably doesn't work without the python spread library installed.]
    ant resolve
    ant main #select asap_realizerdemo/
    ant run
  6. To start the java demo; in the java subdir:
    ant main #select asap.realizerdemo.AsapRealizerPortToIpaacaDemo
    ant run