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 */