Snippets

Furhat Robotics Example state using user expression parameters

Created by Ludvig Linse last modified
<state id="Start">
    <onentry>
        <agent:say>Im alive</agent:say>
    </onentry>

    <ontime interval="5000">
        <agent:attendRandom/>
        <var name="user" type="iristk.situated.Agent" value="system.getCurrentUser()"/>
        <exec>
            /*
            Available expressions:

            EXPRESSION_BROW_LOWERER_LEFT
            EXPRESSION_HEAD_TURN_LEFT 
            EXPRESSION_HEAD_TURN_RIGHT 
            EXPRESSION_PUFF_RIGHT 
            EXPRESSION_HEAD_TILT_RIGHT 
            EXPRESSION_EYES_UP=94, 
            EXPRESSION_EYES_DOWN 
            EXPRESSION_HEAD_TILT_LEFT 
            EXPRESSION_PUFF_LEFT 
            EXPRESSION_EYES_CLOSED_RIGHT
            EXPRESSION_HEAD_DOWN 
            EXPRESSION_BROW_RAISER_RIGHT 
            EXPRESSION_MOUTH_OPEN 
            EXPRESSION_EYES_TURN_LEFT
            EXPRESSION_TONGUE_OUT 
            EXPRESSION_KISS 
            EXPRESSION_SMILE 
            EXPRESSION_EYES_CLOSED_LEFT 
            EXPRESSION_EYES_TURN_RIGHT 
            EXPRESSION_BROW_LOWERER_RIGHT 
            EXPRESSION_BROW_RAISER_LEFT 
            EXPRESSION_HEAD_UP

            Each expression gives a double {0, 100}
            */

        </exec>    
        <if cond="asInteger(user:face:expressions:EXPRESSION_SMILE) > 30">
            <agent:say>You look happy today!</agent:say>  
            <elseif cond="asInteger(user:face:expressions:EXPRESSION_TONGUE_OUT) > 30"/>
            <agent:say>I'm not your doctor!</agent:say>
            <else/>
            <agent:say>Are you the robot or am I? Show some emotion</agent:say>
        </if>

    </ontime>
</state>

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.