Right now, target driven behaviors like gaze assume the target exists within the current process.  If they don't find it, they don't yet have the knowledge to attempt to query the WSP (world state protocol) for possible remote alternatives.

Part of the reason I haven't implemented this is because the network query requires a pause in the BML process.  This is similar to the RemoteSpeech query, but we have never generalized this to work with other behaviors, let alone multiple behaviors in the same BML request.

Ideally, the BML processor should note the pending query, but still start behaviors that don't depend that query.  For example:
  <bml>
    <body id="B01" posture=".." />
    <gaze id="B02" target="bob"/>
    <head id="B03" type="nod" start="b02:stroke_end"/>
  </bml>
Here, the neither resources or timing of posture shift B01 depend on the "bob" target.  But if bob is an unknown target, it will not only delay the gaze, but also the head nod with timing dependent on the gaze behavior.  A smart BML processor will analyze the dependencies and change the posture immediately.


Anm

Marcus Thiebaux wrote:
I'm just pondering the 60 second delay issue. Generally this is not a 
scalable strategy for core infrastructure. Is this something which could 
be better addressed with hand-shaking and readiness detection?
Just taking note of a detail.

-Marcus

---------- Forwarded message ----------
Date: Tue, 13 Jan 2009 02:32:57 +0000
From: [email protected]
To: [email protected]
Subject: [Smartbody-svn] SF.net SVN: smartbody:[222]
    trunk/core/smartbody/smartbody-lib/src/sbm

Revision: 222
          http://smartbody.svn.sourceforge.net/smartbody/?rev=222&view=rev
Author:   hartholt
Date:     2009-01-13 02:32:57 +0000 (Tue, 13 Jan 2009)

Log Message:
-----------
(Andrew) Added World State Protocol functionality such that two separate SBM processes can inform each other on the coordinates of remote pawns. This allows two separate characters in separate SBM processes to look at each other. For now limited to world offset, making characters look at each other's pelvis rather than face. This will be fixed by exposing internally each joint to the WSP. 

Remote pawns can be created in the seq file with 'create_remote_pawn <char_name>'. This command should start late (say at 60), in order to allow both SBM processes to fully load before the WSP subscribes to data associated with these pawns. Both processes should start around the same time.

Modified Paths:
--------------
    trunk/core/smartbody/smartbody-lib/src/sbm/mcontrol_util.cpp
    trunk/core/smartbody/smartbody-lib/src/sbm/sbm_pawn.cpp
    trunk/core/smartbody/smartbody-lib/src/sbm/sbm_pawn.hpp


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.

------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Smartbody-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/smartbody-svn
  

------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Smartbody-developer mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/smartbody-developer

Reply via email to