Last Update:2004/11/04

Modify history
------Changes from the Beta1
* Added SEMID_STT_SEM for notify general purpose  #define SEMID_STT_SEM ( 0x0e1c ).
* Added usage for SEMID_VOICE and SEMID_LOUD.
* SEMID_TONE and SEMID_AIBO_SOUND are functional.
* Voice recognition word list has changed to AIBO MIND 2.


InputSemantics list
AIBO's information is sent by "InputSemantics".
InputSemantics can be retrieved via GetInputSemantics()
void CVAIBO::GetInputSemantics(int *semID, int *pSubInfoArray,int *pEtcInfoArray)

InputSemantics (semID) list is defined in SemID.h

+ from Target Recognizer (SC)  
  SEMID_BALL                  ( 0x0101 ) // Ball
                                         // SubInfo[0] = horizontal position (degrees; left is positive)
                                         // SubInfo[1] = vertical position  (degrees; up is positive)
                                         // SubInfo[2] = estimated distance(cm) to the pink ball
                                         //              (calculated by size of ball)
  SEMID_BONE                  ( 0x010a ) // AIBONE
                                         // SubInfo[0] = horizontal position (degrees; left is positive)
                                         // SubInfo[1] = vertical position  (degrees; up is positive)
                                         // SubInfo[2] = estimated distance(cm) to the AIBONE
                                         //              (calculated by size and shape)
                                         // SubInfo[3] = angle/state of AIBONE
                                         //    = (int) (((int)state)&0xffff)<<16) + (((int)angle)&0xffff);
                                         //    angle : AIBONE angle, relative to AIBO's view.
                                         //    A horizontal angle (perpendicular to AIBO's field of view) is 0;
                                         //           other values range between -90 and 90, where positive
                                         //           values are clockwise.
                                         //         
                                         //    state : Mask 0x0001   1 : AIBONE is standing up  0 : AIBONE is on its side
                                         //            Mask 0x0002   1 : AIBO is looking at AIBONE's shaft  0 : side
  SEMID_PINK                  ( 0x010b ) // Pink

+ from Object Recognizer  
  SEMID_OBJECT                ( 0x0201 ) // Object detected by head PSD
                                         // SubInfo[1] = Distance from camera
                                         // SubInfo[2] = Distance (PSD raw data)
  SEMID_OBSTACLE              ( 0x0202 ) // Obstacle detected by head PSD
                                         // SubInfo[1] = Distance from camera
                                         // SubInfo[2] = Distance (PSD raw data)
  SEMID_HAND                  ( 0x0203 ) // Hand detected by head PSD and skin color
  SEMID_CLIFF                 ( 0x0205 ) // Cliff detected by head PSD
  SEMID_MOVE_OBJ              ( 0x0207 ) // Moving object
                                         // SubInfo[1] indicates the moving object position
                                         // SubInfo[1] = (int) (((int)h)&0xffff)<<16) + (((int)v)&0xffff);
                                         // h = horizontal position (degrees; left is positive)
                                         // v = vertical position  (degrees; up is positive)
  SEMID_MOVEOBJ_ON            ( 0x020a )
            // 800msec after finding moving object
            // Subinfo[1] indicates the moving object's position difference between the current time 
            // and the previous time (800msec)
            // SubInfo[1] = (int) (((int)h)&0xffff)<<16) + (((int)v)&0xffff);
            // h = Horizontal deviation (degrees; left is positive)
            // v = Vertical deviation (degrees; up is positive)
  SEMID_PSDSPOT               ( 0x020b) // Head (nose) PSD sensor data
            // Subinfo[0] = Distance (in micrometers)
            // Subinfo[1] = X Coordinate (0 is center of body) of PSD Focus point
            // Subinfo[2] = Y Coordinate (0 is center of body) of PSD Focus point
            // Subinfo[3] = Z Coordinate (0 is center of body) of PSD Focus point
            // SubInfo[1,2,3] are calculated using head angle.

+ from hFaceDetector  
  SEMID_FACE                  ( 0x2001 )  // Detected face
            // Subinfo[0] = Number of faces in the camera data ( 0 = skin only; may be hand)
            // SubInfo[1] indicates the face position
            // SubInfo[1] = (int) (((int)h)&0xffff)<<16) + (((int)v)&0xffff);
            // h = horizontal position (degrees; left is positive)
            // v = vertical position  (degrees; up is positive)

  SEMID_FACE_ID               ( 0x2101 ) // Face recognize
            // SubInfo[0] = Indicates recognized face --> See InputSemantics SubInfo list below
            // SubInfo[1] = How many pictures have been used to indicate a face (max 10). 
            //    Less than or equal to 5 is not trustworthy.
            
+ from Audio Recognizer  
  SEMID_VOICE                 ( 0x0301 ) // Voice Recognition
            // SubInfo[0] Indicates recognized voice --> See InputSemantics SubInfo list below
            // SubInfo[1] The angle where the voice comes from (degrees; left is positive)
            // SubInfo[1] = (int) (((int)head_angle + 90)&0xffff)<<16) + (((int)body_angle + 180)&0xffff);
            //    head_angle : Based on head, 0 is the front of the face.
            //    body_angle : Based on center of body, 0 is the front of the body.
            //    Right and Left directions can be recognized, but not front and back.
            // SubInfo[2] Speaker recognition --> See InputSemantics SubInfo list below
  SEMID_TONE                  ( 0x0401 ) // Detected Tone (Used for AIBO to AIBO communication)
            // SubInfo[0] AiboTone ID --> Refer to the command reference in the R-CODE SDK
            //   (rcode-ers7-cmdref-20040501_E.txt) and MIDI files in the AiboTone folder.
  SEMID_VOICE_BEGIN           ( 0x0501 ) // Detected the start of a voice
  SEMID_AIBO_SOUND            ( 0x0601 ) // Detected AIBO Sound (Used for AIBO to AIBO communication)
            // SubInfo[0] AiboTone ID --> Refer to the command reference in the R-CODE SDK
            //   (rcode-ers7-cmdref-20040501_E.txt) and MIDI files in the AiboSound folder.
  SEMID_LOUD                  ( 0x0701 ) // Detected a loud noise
            // SubInfo[0] indicates sound type --> See InputSemantics SubInfo list below
            // SubInfo[1] The angle where the voice comes from (degrees; left is positive)
            // SubInfo[1] = (int) (((int)head_angle + 90)&0xffff)<<16) + (((int)body_angle + 180)&0xffff);
            //    head_angle : Based on head, 0 is the front of the face.
            //    body_angle : Based on center of body, 0 is the front of the body.
            //    Right and Left directions can be recognized, but not front and back.
            //    Precision is lower than SEMID_VOICE.
  SEMID_NOISY                 ( 0x0702 ) // Internal use
  SEMID_SPPLAY                ( 0x0703 ) // Internal use
  SEMID_E_RHYTHM              ( 0x0704 ) // Detected beat with hands (Clap, Clap, Clap ...)

+ from Information Converter  
  SEMID_INTEMP                ( 0x0803 ) // Battery temperature
  SEMID_BATTERY               ( 0x0804 ) // Remaining battery level
  SEMID_FATIGUE               ( 0x0805 ) // Fatigue (autonomy parameter)
  SEMID_HIT                   ( 0x0806 ) // Back sensor hit
  SEMID_PAT                   ( 0x0807 ) // Back sensor pat
  SEMID_TOUCH_ON              ( 0x080a ) // Touch sensor (high sensitivity)
  SEMID_GO_AUTO               ( 0x080d ) // Release from remote control
  SEMID_RESTRAINT             ( 0x0811 ) // Excessive temperature; go to restraint state

  SEMID_COLLISION             ( 0x0819 ) // Detected collision
  SEMID_HOLD_IN_MOUTH         ( 0x081f ) // Detected something in mouth
  SEMID_BACK_F                ( 0x0820 ) // Back sensor front
  SEMID_BACK_M                ( 0x0821 ) // Back sensor middle
  SEMID_BACK_R                ( 0x0822 ) // Back sensor rear
  SEMID_SLIDE_FMR             ( 0x0827 ) // Back sensors are stroked to the rear from the front
  SEMID_SLIDE_RMF             ( 0x0828 ) // Back sensors are stroked from the rear to the front
  SEMID_FCLIFF                ( 0x0829 ) // Cliff find using chest PSD
  SEMID_SMARKER               ( 0x082a ) // Find station marker
  SEMID_TOUCH_BEGIN           ( 0x082b ) // Touch sensor (low sensitivity)
  SEMID_FOBSTACLE             ( 0x082c ) // Detected obstacle using chest PSD

  SEMID_SYS_POSTURE           ( 0x0902 ) // Turnover/Jam/Mecha load high/lift/station condition
                                         // --> See InputSemantics SubInfo list below
  SEMID_TZ_CHANGE             ( 0x0903 ) // Time/time zone are changed
  SEMID_EMERGENCY             ( 0x0904 ) // Emergency condition
  SEMID_PRE_MECH_LOAD_H       ( 0x0905 ) // Prior notification for Mecha load high
  SEMID_FCLIFF_STOP           ( 0x0906 ) // Stop walking because a cliff is detected via chest PSD

  SEMID_UNSTABLE              ( 0x081a ) //  Detected unstable walking

+ from Instinct and Emotion Generator  
  SEMID_APPETITE              ( 0x0a07 ) // Charging desire (Instinct level for autonomy)  Value = SubInfo[1] 0-100
  SEMID_EXERCISE              ( 0x0a08 ) // Movement desire (Instinct level for autonomy) Value = SubInfo[1] 0-100
  SEMID_AFFECTION             ( 0x0a09 ) // Affection desire (Instinct level for autonomy) Value = SubInfo[1] 0-100
  SEMID_CURIOSITY             ( 0x0a0a ) // Curiosity (Instinct level for autonomy) Value = SubInfo[1] 0-100
  SEMID_PLEASANT              ( 0x0a0b ) // Pleasant (Mentality level for autonomy) Value = SubInfo[1] 0-100
  SEMID_SELFISH               ( 0x0a0c ) // Selfish (Mentality level for autonomy) Value = SubInfo[1] 0-100
  SEMID_REFLECTIVE            ( 0x0a0d ) // Reflective (Mentality level for autonomy) Value = SubInfo[1] 0-100
  SEMID_AWAKENING             ( 0x0b01 ) // Inverse sleep desire (Instinct level for autonomy) Value = SubInfo[1] 0-100

+ from BM  
  SEMID_VOLUME                ( 0x0e15 ) // Volume SubInfo[0] 0(mute) - 3(max)
  SEMID_MONITOR_PARMIT        ( 0x0e18 ) // Remote Framework can monitor AIBO or not

+ from Visual Pattern Recognizer  
  SEMID_EPOLE                 ( 0x1601 ) // Station pole
                                         // SubInfo[0] = pole design
                                         // SubInfo[1] = posture 3D angle (degrees)
                                         // SubInfo[2] = Raw data angle (degrees)
                                         // SubInfo[3] = Quantity of matched characteristic points
  SEMID_ECARD1                ( 0x1611 ) // AIBO Card
                                         // SubInfo[0] = AIBO card type  --> See InputSemantics SubInfo list below
                                         // SubInfo[1] = Angle of AIBO card (up/right/down/left) --> See InputSemantics SubInfo list below
                                         // SubInfo[3] = Quantity of matched characteristic points
  SEMID_ESCENE1               ( 0x1621 ) // Favorite place1
                                         // SubInfo[1] = Distance (100 when it registers)
                                         // SubInfo[2] = Raw data angle (degrees)
                                         // SubInfo[3] = Quantity of matched characteristic points
  SEMID_ESCENE2               ( 0x1622 ) // Favorite place2 SubInfo[] is same as SEMID_ESCENE1
  SEMID_ESCENE3               ( 0x1623 ) // Favorite place3 SubInfo[] is same as SEMID_ESCENE1
  SEMID_EPTN                  ( 0x1641 ) // General purpose visual pattern
                                         // SubInfo[0] = visual pattern
                                         // SubInfo[1] = Angle (up/right/down/left)
                                         // SubInfo[3] = Quantity of matched characteristic points
  SEMID_VPR_RESULT            ( 0x1651 ) // Query visual pattern ID
                                         // SubInfo[0] = Semantics type (only EPTN=5)
                                         // SubInfo[1] = Model ID
                                         // SubInfo[2] = Model sub ID
                                         // SubInfo[3] = APPCMD ID (only VPR_QUERY_MODEL=11)


------------------------------------------------------------------------------------------------------
InputSemantics SubInfo list

AIBO's information is sent by "InputSemantics".
InputSemantics can be retrieved via GetInputSemantics()
void CVAIBO::GetInputSemantics(int *semID, int *pSubInfoArray,int *pEtcInfoArray)

InputSemantics (semID) list is defined in SemID.h

Some semID values have additional information in SubInfo[].

+ Audio Recognizer : SEMID_VOICE (Voice Recognition) SubInfo[0]
M   MASK_FAV_AUDIO          0x00030000  VOICE               /* Favorite sound */
M   MASK_AUDIO_ELEMENT      0x0000ffff  VOICE TONE BITONE   /* Recognized sound */
S   FAV_AUDIO               0x00010000  MASK_FAV_AUDIO      /* Favorite sound */
S   UNFAV_AUDIO             0x00020000  MASK_FAV_AUDIO      /* Unfavorite sound */
S   V_NAME                  0x0001  MASK_AUDIO_ELEMENT      /* AIBO */
S   V_ACTION_1              0x0002  MASK_AUDIO_ELEMENT      /* I am your owner */
S   V_ACTION_2              0x0003  MASK_AUDIO_ELEMENT      /* I love you AIBO */
S   V_ACTION_3              0x0004  MASK_AUDIO_ELEMENT      /* Turn around */
S   V_ACTION_4              0x0005  MASK_AUDIO_ELEMENT      /* Chase your tail */
S   V_ACTION_5              0x0006  MASK_AUDIO_ELEMENT      /* Beg for it */
S   V_AGAIN                 0x0007  MASK_AUDIO_ELEMENT      /* (No use) */
S   V_AIBONE                0x0008  MASK_AUDIO_ELEMENT      /* Find your AIBONE(eye bone) */
S   V_ARE_YOU_BORING        0x0009  MASK_AUDIO_ELEMENT      /* (No use) */
S   V_ARE_YOU_OK            0x000a  MASK_AUDIO_ELEMENT      /* What's up? */
S   V_ARE_YOU_SLEEPY        0x000b  MASK_AUDIO_ELEMENT      /* Are you sleepy? */
S   V_ARE_YOU_TIRED         0x000c  MASK_AUDIO_ELEMENT      /* Are you tired? */
S   V_BAD                   0x000d  MASK_AUDIO_ELEMENT      /* That's boring */
S   V_BALL                  0x000e  MASK_AUDIO_ELEMENT      /* Find your ball */
S   V_BARK                  0x000f  MASK_AUDIO_ELEMENT      /* Bark */
S   V_BARK2                 0x0010  MASK_AUDIO_ELEMENT      /* Bark bark */
S   V_BE_QUIET              0x0011  MASK_AUDIO_ELEMENT      /* Be quiet */
S   V_BYE                   0x0012  MASK_AUDIO_ELEMENT      /* Good bye */
S   V_CALL                  0x0013  MASK_AUDIO_ELEMENT      /* Over here */
S   V_CHANGE_HAND           0x0014  MASK_AUDIO_ELEMENT      /* The other paw */
S   V_COME_HERE             0x0015  MASK_AUDIO_ELEMENT      /* Come here */
S   V_CORRECT               0x0016  MASK_AUDIO_ELEMENT      /* (No use) */
S   V_DANCE                 0x0017  MASK_AUDIO_ELEMENT      /* Let's dance */
S   V_DANGER                0x0018  MASK_AUDIO_ELEMENT      /* Be careful */
S   V_DIFFERENT             0x0019  MASK_AUDIO_ELEMENT      /* (No use) */
S   V_DO_YOU_LIKE           0x001a  MASK_AUDIO_ELEMENT      /* Do you love me? */
S   V_DO_YOU_LIKE_AIBONE    0x001b  MASK_AUDIO_ELEMENT      /* What's your AIBONE skill level? */
S   V_DO_YOU_LIKE_BALL      0x001c  MASK_AUDIO_ELEMENT      /* What's your Pink ball skill level? */
S   V_DO_YOU_LIKE_WANDER    0x001d  MASK_AUDIO_ELEMENT      /* What's your walking skill level? */
S   V_ERS7                  0x001e  MASK_AUDIO_ELEMENT      /* Seven strike */
S   V_FETCH_AIBONE          0x001f  MASK_AUDIO_ELEMENT      /* Bring me your AIBONE */
S   V_GET_UP                0x0020  MASK_AUDIO_ELEMENT      /* (No use) */
S   V_GIVE_ME_AIBONE        0x0021  MASK_AUDIO_ELEMENT      /* Give it to me */
S   V_GO                    0x0022  MASK_AUDIO_ELEMENT      /* Go */
S   V_GO_AWAY               0x0023  MASK_AUDIO_ELEMENT      /* Move it */
S   V_GO_BACK               0x0024  MASK_AUDIO_ELEMENT      /* Go back */
S   V_GO_FORWARD            0x0025  MASK_AUDIO_ELEMENT      /* Go forward */
S   V_GO_STATION            0x0026  MASK_AUDIO_ELEMENT      /* Go to the station */
S   V_GOOD_MORNING          0x0027  MASK_AUDIO_ELEMENT      /* Good morning */
S   V_GOOD_NIGHT            0x0028  MASK_AUDIO_ELEMENT      /* Good night */
S   V_GREETING              0x0029  MASK_AUDIO_ELEMENT      /* Say hello */
S   V_HELLO                 0x002a  MASK_AUDIO_ELEMENT      /* Hello */
S   V_HIT                   0x002b  MASK_AUDIO_ELEMENT      /* Don't do that */
S   V_HOW_ARE_YOU           0x002c  MASK_AUDIO_ELEMENT      /* How are you? */
S   V_HOW_HUNGRY            0x002d  MASK_AUDIO_ELEMENT      /* Are you hungry? */
S   V_HOW_OLD               0x002e  MASK_AUDIO_ELEMENT      /* (No use) */
S   V_I_M_BACK              0x002f  MASK_AUDIO_ELEMENT      /* I'm here */
S   V_I_M_OFF               0x0030  MASK_AUDIO_ELEMENT      /* See you later */
S   V_KICK                  0x0031  MASK_AUDIO_ELEMENT      /* Kick the ball */
S   V_LALALA                0x0032  MASK_AUDIO_ELEMENT      /* (No use) */
S   V_LIE_DOWN              0x0033  MASK_AUDIO_ELEMENT      /* Lay down */
S   V_MAIL_CHECK            0x0034  MASK_AUDIO_ELEMENT      /* Check e-mail */
S   V_MECHA_ACTION          0x0035  MASK_AUDIO_ELEMENT      /* (No use) */
S   V_MESSAGE_CHECK         0x0036  MASK_AUDIO_ELEMENT      /* Check messages */
S   V_NAME_REGISTRATION     0x0037  MASK_AUDIO_ELEMENT      /* Name registration */
S   V_NICE                  0x0038  MASK_AUDIO_ELEMENT      /* How cute */
S   V_OPEN_MOUTH            0x0039  MASK_AUDIO_ELEMENT      /* Open your mouth */
S   V_OWNER_REGISTRATION    0x003a  MASK_AUDIO_ELEMENT      /* Owner registration */
S   V_PAT                   0x003b  MASK_AUDIO_ELEMENT      /* Good AIBO */
S   V_SEND_MAIL             0x003c  MASK_AUDIO_ELEMENT      /* Send e-mail */
S   V_SET_ALARM             0x003d  MASK_AUDIO_ELEMENT      /* set alarm */
S   V_SHAKE_HANDS           0x003e  MASK_AUDIO_ELEMENT      /* Shake hands */
S   V_SIT_DOWN              0x003f  MASK_AUDIO_ELEMENT      /* sit down */
S   V_SOUND_RECORD          0x0040  MASK_AUDIO_ELEMENT      /* Recording mode */
S   V_STAND_UP              0x0041  MASK_AUDIO_ELEMENT      /* Stand up */
S   V_STOP                  0x0042  MASK_AUDIO_ELEMENT      /* Stop */
S   V_TAKE_AIBONE           0x0043  MASK_AUDIO_ELEMENT      /* Pick up your AIBONE */
S   V_TAKE_PHOTO            0x0044  MASK_AUDIO_ELEMENT      /* Take a picture */
S   V_TURN_LEFT             0x0045  MASK_AUDIO_ELEMENT      /* Turn left */
S   V_TURN_RIGHT            0x0046  MASK_AUDIO_ELEMENT      /* Turn right */
S   V_UP_EXERCISE           0x0047  MASK_AUDIO_ELEMENT      /* Go for it */
S   V_WAIT                  0x0048  MASK_AUDIO_ELEMENT      /* Wait */
S   V_WANDER                0x0049  MASK_AUDIO_ELEMENT      /* Walk around */
S   V_WHAT_DO_YOU_DO        0x004a  MASK_AUDIO_ELEMENT      /* What are you doing? */
S   V_WHAT_DO_YOU_THINK     0x004b  MASK_AUDIO_ELEMENT      /* What's going on? */
S   V_WHAT_OWNER_NAME       0x004c  MASK_AUDIO_ELEMENT      /* What's your owner name? */
S   V_WHAT_TIME             0x004d  MASK_AUDIO_ELEMENT      /* What time is it? */
S   V_WHAT_YOUR_NAME        0x004e  MASK_AUDIO_ELEMENT      /* What's your name? */
S   V_DUMMY                 0x004f  MASK_AUDIO_ELEMENT      /* (Internal use) */
S   V_REGIST_EPTN           0x0057  MASK_AUDIO_ELEMENT      /* Favorite thing registration */
S   V_PLAY_MUSIC            0x0058  MASK_AUDIO_ELEMENT      /* Play music */
S   V_PLAY_CD               0x0059  MASK_AUDIO_ELEMENT      /* Play CD */
S   V_PLAY_RADIO            0x005a  MASK_AUDIO_ELEMENT      /* Play the radio */
S   V_PLAY_CONTENTS         0x005b  MASK_AUDIO_ELEMENT      /* Play contents */
S   V_TELL_ME_SCHEDULE      0x005c  MASK_AUDIO_ELEMENT      /* My schedule */
S   V_CARETAKER             0x005e  MASK_AUDIO_ELEMENT      /* House sitting mode */
S   V_CHEESE                0x005d  MASK_AUDIO_ELEMENT      /* Snap shot */
S   V_FRIEND                0x006d  MASK_AUDIO_ELEMENT      /* Talk to your friend */

+ Audio Recognizer : SEMID_VOICE (Voice Recognition) SubInfo[1]
M   MASK_HEADANGLE_ELEMENT  0xffff0000  VOICE LOUD          /* Direction of the sound - Head base */
M   MASK_BODYANGLE_ELEMENT  0x0000ffff  VOICE LOUD          /* Direction of the sound - Body base */
    // See SEMID_VOICE

+ Audio Recognizer : SEMID_VOICE (Voice Recognition) SubInfo[2]
M   MASK_SID_ELEMENT        0x0000ffff  VOICE                   /* Recognition value (for speaker distinction) */
S   SRD_OWNER1_SID          0x00000014  MASK_SID_ELEMENT        /* Owner 1 */
S   SRD_OWNER2_SID          0x00000015  MASK_SID_ELEMENT        /* Owner 2 */
S   SRD_OWNER3_SID          0x00000016  MASK_SID_ELEMENT        /* Owner 3 */
M   MASK_SID_INFO_ELEMENT   0xffff0000  VOICE                   /* Speaker distinction */
S   SID_UNKNOWN             0x00000000  MASK_SID_INFO_ELEMENT   /* Speaker unknown */
S   SID_REGIST              0x00030000  MASK_SID_INFO_ELEMENT   /* Registered Speaker (owner) */

+ Audio Recognizer : SEMID_LOUD (Sound detection) SubInfo[0]
M   MASK_LOUD_ELEMENT   0xffffffff  LOUD                 /* Sound attribute */
S   LOUD_LONG           0x00000001 MASK_LOUD_ELEMENT     /* long sound */
S   LOUD_SHORT          0x00000002 MASK_LOUD_ELEMENT     /* short sound */
S   LOUD_PULSE          0x00000003 MASK_LOUD_ELEMENT     /* very short sound */
S   LOUD_SH             0x00000004 MASK_LOUD_ELEMENT     /* internal use */
S   LOUD_GARBAGE        0x00000005 MASK_LOUD_ELEMENT     /* noise */
S   LOUD_CANCEL_SIT     0x00000006 MASK_LOUD_ELEMENT     /* transition to sit posture noise */
S   LOUD_CANCEL_STAND   0x00000007 MASK_LOUD_ELEMENT     /* transition to stand posture noise */
S   LOUD_CANCEL_WALK    0x00000008 MASK_LOUD_ELEMENT     /* walk noise */

+ Audio Recognizer : SEMID_LOUD (Sound detection) SubInfo[1]
M   MASK_HEADANGLE_ELEMENT  0xffff0000  VOICE LOUD       /* Direction of the sound - Head base */
M   MASK_BODYANGLE_ELEMENT  0x0000ffff  VOICE LOUD       /* Direction of the sound - Body base */
    // See SEMID_LOUD

+ hFaceDetector : SEMID_FACE_ID 
M   MASK_FID_ELEMENT        0x0000ffff  FACE_ID                 /* Face ID (Recognized Face 0 -- 15) */
S   SRD_OWNER1_FID          0x00000001  MASK_FID_ELEMENT        /* Owner 1 */
S   SRD_OWNER2_FID          0x00000002  MASK_FID_ELEMENT        /* Owner 2 */
S   SRD_OWNER3_FID          0x00000003  MASK_FID_ELEMENT        /* Owner 3 */
M   MASK_FID_INFO_ELEMENT   0xffff0000  FACE_ID                 /* Type of Recognized Face */
S   FID_DUMMY               0x00000000  MASK_FID_INFO_ELEMENT   /* Unknown face */
S   FID_AUTO                0x00010000  MASK_FID_INFO_ELEMENT   /* Face that is registered automatically */
S   FID_MANUAL              0x00020000  MASK_FID_INFO_ELEMENT   /* Face that is registered by user manually */

+ Information Converter : SEMID_SYS_POSTURE (build-in system posture) SubInfo[0]
M   SPOS_ONOFF_MASK     0x00000300  SYS_POSTURE 
M   SPOS_MASK           0x00000fff  SYS_POSTURE
S   SPOS_STATION_ON     0x00000101  SPOS_MASK   /* Station posture ON */
S   SPOS_STATION_OFF    0x00000201  SPOS_MASK   /* Station posture OFF */
S   SPOS_HOLD_UP        0x00000102  SPOS_MASK   /* Lift posture */
S   SPOS_HOLD_DOWN      0x00000202  SPOS_MASK   /* Lift posture end *
S   SPOS_JAM            0x00000103  SPOS_MASK   /* Jam detect */
S   SPOS_JAM_QUIT       0x00000203  SPOS_MASK
S   SPOS_FALL_DOWN      0x00000104  SPOS_MASK   /* Fall down */
S   SPOS_GET_UP         0x00000204  SPOS_MASK   /* Recover from falling down */
S   SPOS_MECH_LOAD_H    0x00000105  SPOS_MASK   /* detect mecha load high */
S   SPOS_MECH_LOAD_L    0x00000205  SPOS_MASK
S   SPOS_STAY_ON        0x00000106  SPOS_MASK
S   SPOS_STAY_OFF       0x00000206  SPOS_MASK
S   SPOS_ON             0x00000100  SPOS_MASK
S   SPOS_OFF            0x00000200  SPOS_MASK

+ VisualPatternRecognizer : SEMID_ECARD1(Recognize AIBO card) SubInfo[0]
M   MASK_CARD_MODEL_ID  0xffff0000  ECARD1
M   MASK_CARD_SUBMODEL_ID   0x0000ffff  ECARD1
S   ECARD_A             0x00010000  MASK_CARD_MODEL_ID  /* AIBO card A */
S   ECARD_B             0x00020000  MASK_CARD_MODEL_ID
S   ECARD_C             0x00030000  MASK_CARD_MODEL_ID
S   ECARD_D             0x00040000  MASK_CARD_MODEL_ID
S   ECARD_E             0x00050000  MASK_CARD_MODEL_ID
S   ECARD_F             0x00060000  MASK_CARD_MODEL_ID
S   ECARD_G             0x00070000  MASK_CARD_MODEL_ID
S   ECARD_H             0x00080000  MASK_CARD_MODEL_ID
S   ECARD_I             0x00090000  MASK_CARD_MODEL_ID
S   ECARD_J             0x000A0000  MASK_CARD_MODEL_ID
S   ECARD_K             0x000B0000  MASK_CARD_MODEL_ID
S   ECARD_L             0x000C0000  MASK_CARD_MODEL_ID
S   ECARD_M             0x000D0000  MASK_CARD_MODEL_ID
S   ECARD_N             0x000E0000  MASK_CARD_MODEL_ID
S   ECARD_O             0x000F0000  MASK_CARD_MODEL_ID
S   ECARD_CAL_2004_01   0x01000000  MASK_CARD_MODEL_ID  /* AIBO Calendar Jan 2004 */
S   ECARD_CAL_2004_02   0x01010000  MASK_CARD_MODEL_ID
S   ECARD_CAL_2004_03   0x01020000  MASK_CARD_MODEL_ID
S   ECARD_CAL_2004_04   0x01030000  MASK_CARD_MODEL_ID
S   ECARD_CAL_2004_05   0x01040000  MASK_CARD_MODEL_ID
S   ECARD_CAL_2004_06   0x01050000  MASK_CARD_MODEL_ID
S   ECARD_CAL_2004_07   0x01060000  MASK_CARD_MODEL_ID
S   ECARD_CAL_2004_08   0x01070000  MASK_CARD_MODEL_ID
S   ECARD_CAL_2004_09   0x01080000  MASK_CARD_MODEL_ID
S   ECARD_CAL_2004_10   0x01090000  MASK_CARD_MODEL_ID
S   ECARD_CAL_2004_11   0x010a0000  MASK_CARD_MODEL_ID
S   ECARD_CAL_2004_12   0x010b0000  MASK_CARD_MODEL_ID
S   ECARD_STEPHEN_1     0x02000000  MASK_CARD_MODEL_ID /* Internal use */
S   ECARD_STEPHEN_2     0x02010000  MASK_CARD_MODEL_ID
S   ECARD_STEPHEN_3     0x02020000  MASK_CARD_MODEL_ID
S   ECARD_STEPHEN_4     0x02030000  MASK_CARD_MODEL_ID

+ VisualPatternRecognizer : SEMID_ECARD1(Recognize AIBO) SubInfo[1]
M   MASK_CARD_DIRECTION 0xffffffff  ECARD1
S   ECARD_UP    0x00000000  MASK_CARD_DIRECTION         /* Angle AIBO card up */
S   ECARD_RIGHT 0x0000005A  MASK_CARD_DIRECTION         /* Angle AIBO card right */
S   ECARD_DOWN  0x000000B4  MASK_CARD_DIRECTION         /* Angle AIBO card down */
S   ECARD_LEFT  0x0000010E  MASK_CARD_DIRECTION         /* Angle AIBO card left */

