EMBODIED AGENTSIN AUGMENTED & VIRTUAL REALITIESCourse E6998-004, Dept. of Computer Science, Columbia University, Fall 2002Prof. Kris R. Thórisson, Ph.D. |
|||||||||
|
|||||||||
15 |
Action Scheduling in Ymir |
|
| |
Two parts:
|
|
Motor Composer: Takes Behavior Requests and prioritizes, composes a ‘muscle plan’ using information from the ... |
||
| |
Behavior Lexicon, which stores motor plans in a hierarchical fashion |
|
16 |
Motor Composer |
|
| |
Receives Behavior
Requests |
|
Uses the Behavior
Lexicon |
||
| |
Prioritization:
depending on which layer the Request originiated from |
|
|
||
|
||
|
||
Resource allocation: Behavior morphologies are selected based on the amount of overlap that the required motors have with any currently executing behaviors |
||
17 |
Motor Composer: Real-Time |
|
Anytime algorithm |
||
‘Do the
best it can’ |
||
| |
Checks for “time-out”
(Expected Lifetime) based on... |
|
...Date of Behavior
Request |
||
EL: Effective Lifetime |
||
If EL is about
to be reached, execute current morphology |
||
18 |
Behavior Lexicon |
|
Behaviors are
indexed functionally and morphologically, e.g. nod vs. show-I-agree |
||
Nodding is done
by moving the head back and forth. This is a morphological description
(or label) of a behavior because it describes a movement |
||
| |
There are many ways, besides nodding, that you can use to ‘show you agree’. The same goes for ‘showing happiness’: These are indexed functionally, because the description ‘show happiness’ describes the function of a set of behaviors |
|
19 |
Behavior Lexicon |
|
Stored postures
of acts/behaviors |
||
Hierarchy: Behaviors are composed of smaller behavior segments; leafs are individual motors |
||
![]() |
||
‘Knowledge
Model” |
||
20 |
Behavior Lexicon |
|
![]() |
||
21 |
Behavior Lexicon |
|
Show-Taking-Turn: |
||
Glance-to-the-side
|
||
Lift-eyebrows
|
||
22 |
Face Control |
|
![]() |
||
brm = brow, right, medialbrc = brow, right, centralbrl = brow, right, lateral |
||
23 |
Action Selection |
|
Two-phase:
|
||
Behavior Lexicon
can be separated from decision mechanism |
||
Exact look
(morphology) of the action is delayed until the latest possible moment |
||
Benefits: |
||
24 |
Conflict
Resolution |
|
“Minimum
Overlap”: select a morphology that has the least overlap in
time or df with currently executing behaviors (implemented) |
||
“Maximum
Conspicuity”: select the most ‘obvious’ way for
doing it, based on social norms, amount of arm movement, etc. |
||
“Minimum Effort”: select a morphology that minimizes the amount of ‘energy’ needed to move the muscles |
||
25 |
Spatial Behavior |
|
Q: How does
the agent coordinate its movemets with the outside world? |
||
A: Recognize landmark objects, compute geometric deltas, and apply deltas to motors |
||
26 |
Spatial Behavior |
|
![]() |
||
27 |
Spatial Behavior |
|
![]() |
||
Link Action
Scheduler to a spatial knowledge base |
||
Another advantage of delaying the composition of behavior morphology until the last minute: It will always be based on the most recently updated perceptual data |
||
28 |
Behavior Lexicon Example |
|
(setf
*behavior-lexicon* ;GENERAL LAYOUT: (<list-of-acts> (<first-act>(<first-act-element>)(<second-act-element>)) ; (<second-act (<...>)) ; ) ;ACT TEMPLATE: (name class (((act-name-of-option-1 delay exec-time)(act-name delay exec-time) etc*) ; (etc*))) ;MOTORS: (motor-name class delay exec-time pos/data) '( ; MORPHOLOGICAL DEFINITIONS ;Features ;neutral (face-neutral act (((mouth-neutral 100 400) (eyes-neutral 0 300) (brows-neutral 0 500)))) (brows-neutral act (((left-brow-neutral 0 400)(right-brow-neutral 0 400)))) (left-brow-neutral mot-lev (((Bll 0 400 30) (Blc 0 400 30) ;Brow, left, central (Blm 0 400 30)))) ;Brow, left, medial (right-brow-neutral mot-lev (((Brm 0 400 30) (Brc 0 400 30) (Brl 0 400 30)))) (eyes-neutral act (((upper-lids-neutral 0 100)(lower-lids-neutral 0 100)))) (upper-lids-neutral mot-lev (((Eru 0 100 75)(Elu 0 100 80)))) (upper-lids-open-wide mot-lev (((Eru 0 100 89)(Elu 0 100 94)))) (lids-neutral act (((upper-lids-neutral 0 300)(lower-lids-neutral 0 200)))) (mouth-neutral mot-lev (((Mb 0 200 15) ;Mouth, bottom (Mlv 0 200 60) ;Mouth, left, vertical (Mlh 0 200 40) (Mrv 0 200 60) (Mrh 0 200 40)))) (mouth-in-n-shape mot-lev (((Mb 0 200 15)(Mlv 0 40)(Mrv 0 40)(Mlh 0 50)(Mrh 0 50)))) (head-at-zero-zero mot-lev (((Hh 0 800 0)(Hv 0 150 0)))) (head-diag-up-left mot-lev (((Hh 0 1000 20)(Hv 0 1000 20)))) ;for debugging (gaze-at-zero-zero mot-lev (((Plv 0 50 0)(Plh 0 50 0)(Prv 0 50 0)(Prh 0 50 0)))) ;actions (raise-brows mot-lev (((Bll 0 400 90)(Blc 0 300 100)(Blm 0 400 90) (Brl 0 400 90)(Brc 0 300 100)(Brm 0 400 90)))) (lower-brows mot-lev (((Bll 0 400 5)(Blc 0 400 5)(Blm 0 400 5) (Brl 0 400 5)(Brc 0 400 5)(Brm 0 400 5)))) (brows-in-v-shape mot-lev (((Bll 0 400 90)(Blc 0 300 40)(Blm 0 400 10) (Brl 0 400 90)(Brc 0 300 40)(Brm 0 400 10)))) (brows-in-roof-shape mot-lev (((Bll 0 400 10)(Blc 0 300 50)(Blm 0 400 90) (Brl 0 400 10)(Brc 0 300 50)(Brm 0 400 70)))) (brows-in-n-shape mot-lev (((Bll 0 400 50)(Blc 0 300 90)(Blm 0 400 50) (Brl 0 400 50)(Brc 0 300 90)(Brm 0 400 50)))) (brows-in-pensive-shape mot-lev (((Bll 0 400 95)(Blc 0 300 40)(Blm 0 400 40) (Brl 0 400 50)(Brc 0 300 10)(Brm 0 400 5)))) (squint mot-lev (((Elu 0 300 60)(Eru 0 300 60)(Ell 0 300 20)(Erl 0 300 20)))) (half-closed-eyes mot-lev (((Elu 0 500 50)(Eru 0 500 60)))) (lower-lids-neutral mot-lev (((Erl 0 300 30)(Ell 0 300 50)))) (lower-lids-up mot-lev (((Ell 0 300 0)(Erl 0 400 0)))) (pull-l-mouth-corner mot-lev (((Mlh 0 500 90)))) (quickly-glance-sideways-and-back act (((gaze-right 0 100)(gaze-at-zero-zero 100 100)))) |
||
Part of Gandalf's
Behavior Lexicon |
||
2002©K.R.Thórisson