******************************************************************************* * * * SONY A I B O E R S - 7 FOR WEBOTS * * Model Reference Guide v1.1 * * * ******************************************************************************* Author : Sergei Poskriakov Purpose : Webots Aibo ERS-7 model develloper's reference Date : 09/09/2004 rev. 27/12/2004 Copyright (C) Cyberbotics.com * * * RELEASE NOTES: v1.1 * * * * Forelegs' lower parts currently enjoy a much fitter bounding object than * * other moving parts. This decision is supported by the fact that if the * * robot is to be used for the RoboCup competition, it will certainly use * * its forelegs a lot, e.g. for ball control, therefore a precise collision * * detection will be enjoyable if not required. * * * * Limitations: * * * * - Mass values are currently inherited from ERS-210 (where possible) or * * guesstimated (proportionately to other parts), and were not specifically * * measured for ERS-7. This should be corrected in a future update. Same * * holds for joint max force and velocity measures, undocumented in Sony's * * own reference guides for ERS-7 (or ERS-210, for that matter). * * - Distance sensors [Distance] have linear lookup tables, within documen- * * ted range, with max 10% white noise in mid-range; this will be refined * * when proper experimental results from a real ERS-7 become available. * * - Regarding the moveable jaw, the ERS-7 was designed so as to be able to * * hold simple objects with its mouth. At this time, the model does not * * support it. (To implement this feature, we would need to reconfigure the * * bounding object for the head, making it even more elaborate and thereby * * adding to the computational complexity of the model, for a task which in * * typical research projects won't be used anyway. A separate elaborate * * version may be released at a later date.) * * - Face and back LEDs are only partially supported (virtual LED). * * * =============================================================================== MODEL ------------------------------------------------------------------------------- LEGEND: node: DEF "description" mass: [kg] "body part" phys: bounce/bounceVelocity coulombFriction forceDependentSlip joint: maxVelocity maxForce/acceleration minPosition:maxPosition->default ! Temporary empirical/inherited values are indicated in [] brackets. ! These should be approved/corrected for final model release. Servos [*], unless otherwise specified, have: -phys: [0.5/0.01 0.99 0.011] -joint: ... [5.4542/0.852212] ... ->0(0°) Some parts come in symmetrical pairs: xxx={LEFT,RIGHT} (in that order) ------------------------------------------------------------------------------- (formatted for tab width=4) BODY node: ERS7 | bbox: sphere+cylinder+sphere | mass: 0.613 "body" | | +- S:CHEST[Distance] node: CHEST_DISTANCE_SENSOR PRM:/p1-Sensor:p1 | (30° towards the ground, facing forward) | lookup: (0.0 100 0) | (0.1 100 0) | (0.5 500 0.1) | (0.9 900 0) | | +- NECK[*] node: NECK_TILT "neck tilt" PRM:/r1/c1-Joint2:11 | | bbox: cylinder | | mass: [0.015] "neck" | | joint: [3.0107] ... -1.3963:0.0524(-80°:3°) | | -> -0.5236(-30°) | | | +- UPPER NECK[*] node: HEAD_PAN "head pan" PRM:/r1/c1/c2-Joint2:12 | | bbox: sphere | | mass: [0.01] "head base" | | joint: [3.0107] ... -1.6232:1.6232(-93°:93°) | | | +- HEAD[*] node: HEAD_TILT "head tilt" PRM:/r1/c1/c2/c3-Joint2:13 | | bbox: sphere+cylinder+sphere | | mass: [0.19] "head" | | joint: [3.0107] ... -0.349:0.8727(-20°:50°) | | -> 0.5236(30°) | | | +- JAW[*] node: JAW "jaw" PRM:/r1/c1/c2/c3/c4-Joint2:14 | | bbox: - | | joint: 1 1/0.852212 -1.0472:0(-60°:0°) | | | +- S:NEAR[Distance] node: HEAD_DISTANCE_SENSOR_NEAR PRM:/r1/c1/c2/c3/p1-Sensor:p1 | | lookup: (0.0 50 0) | | (0.05 50 0) | | (0.275 275 0.1) | | (0.5 500 0) | | | +- S:FAR[Distance] node: HEAD_DISTANCE_SENSOR_FAR PRM:/r1/c1/c2/c3/p2-Sensor:p2 | | (same position as near sensor) | | lookup: (0.0 200 0) | | (0.2 200 0) | | (0.85 850 0.1) | | (1.5 1500 0) | | | +- CAMERA node: HEAD_CAM "head camera" PRM:/r1/c1/c2/c3/i1-FbkImageSensor:F1 | | image: 416 x 320 30fps | | FoV: 0.993092(56.9°) x 45.2° | | pixFactor: 0.968346 | | | +- EARS[*] node: xxx_EAR "ear flip" PRM:/r1/c1/c2/c3/e{5,6}-Joint4:1{5,6} | | bbox: box | | mass: [0.005] "ear" | | joint: 1000 1000/1000 0:0.2618(0°:15°) "flip emulation" | | | + (FACE LIGHTS) node: __FACE_LIGHTS | | | +- FACE LIGHTS[LED] node: __FaceLight{n} PRM:/r1/c1/c2/c3/la-LED3:l{x} | n x face(A/B) colors: W: RGB[255,255,255] "white" | 1+2 ; a+b W/G l+r R: RGB[255,0,0] "red" | 3+4 ; c+d * W/G l+r G: RGB[0,150,0] "dark green" | 5+6 ; e+f W/W l+r B: RGB[0,0,255] "blue" | 7+8 ; g+h W/W l+r | 9+10 ; i+j W/W l+r * = A/B changes shape | 11 ; k W/W center | 12 ; l W/W center | 13 ; m * R/B dual center | 14 ; n * R/B dual center | | +- (BACK) node: __BACK | | (node) (color) | +- BACK FRONT LIGHTS[LED] | | "blue" __BackFrontLightCOLOR RGB[0,0,255] PRM:/lu-LED3:lu | | __BackFrontLightWHITE RGB[255,255,255] PRM:/lv-LED3:lv | | | +- BACK MIDDLE LIGHTS[LED] | | "yellow" __BackMiddleLightCOLOR RGB[255,255,0] PRM:/lw-LED3:lw | | __BackMiddleLightWHITE RGB[255,255,255] PRM:/lx-LED3:lx | | | +- BACK REAR LIGHTS[LED] | "red" __BackRearLightCOLOR RGB[255,0,0] PRM:/ly-LED3:ly | __BackRearLightWHITE RGB[255,255,255] PRM:/lz-LED3:lz | | +- FRONT SHOULDERS[*] node: xxx_FORELEG_J1 "front leg swing" PRM:/r{2,4}/c1-Joint2:{2,4}1 | | bbox: cylinder | | mass: [0.05] "front shoulder" | | joint: [2.8143] ... -2.0944:2.3562(-120°:135°) | | | +- FRONT UPPER LEGS[*] node: xxx_FORELEG_J2 "front leg flap" PRM:/r{2,4}/c1/c2-Joint2:{2,4}2 | | bbox: box | | mass: [0.073] "front upper leg" | | joint: [2.498] ... -0.2618:1.6232(-15°:93°) | | | +- FRONT LOWER LEGS[*] node: xxx_FORLEG_J3 "front knee" PRM:/r{2,4}/c1/c2/c3-Joint2:{2,4}3 | | bbox: box+box+cylinder+sphere | | mass: [0.073] "front lower leg" | | joint: [2.8361] ... -0.5236:2.2166(-30°:127°) | | -> 0.5236(30°) | | | +- S:FRONT PAWS[Touch] node: xxx_FOREPAW_SENSOR PRM:/r{2,4}/c1/c2/c3/c4-Sensor:{2,4}4 | bbox: sphere | lookup: bumper "switch sensor" | | +- REAR SHOULDER[*] node: xxx_HINDLEG_J1 "rear leg swing" PRM:/r{3,5}/c1-Joint2:{3,5}1 | | bbox: cylinder | | mass: [0.05] "rear shoulder" | | joint: [2.8143] ... -2.3562:2.0944(-135°:120°) | | | +- REAR UPPER LEGS[*] node: xxx_HINDLEG_J2 "rear leg flap" PRM:/r{3,5}/c1/c2-Joint2:{3,5}2 | | bbox: box | | mass: [0.073] "rear upper leg" | | joint: [2.498] ... -0.2618:1.6232(-15°:93°) | | | +- REAR LOWER LEGS[*] node: xxx_HINDLEG_J3 "hind knee" PRM:/r{3,5}/c1/c2/c3-Joint2:{3,5}3 | | bbox: box+box+cylinder+sphere | | mass: 0.073 "rear lower leg" | | joint: [2.8361] ... -0.5236:2.2166(-30°:127°) | | -> 0.5236(30°) | | | +- S:REAR PAWS[Touch] node: xxx_HINDPAW_SENSOR PRM:/r{3,5}/c1/c2/c3/c4-Sensor:{3,5}4 | bbox: sphere | lookup: bumper "switch sensor" | | +- TAIL BASE[*] node: TAIL_TILT "tail tilt" PRM:/r6/c1-Joint2:61 | bbox: cylinder | mass: 0.001 "tail base" | joint: [4.4724] ... 0:1.1345(0°:65°) | +- TAIL[*] node: TAIL_PAN "tail pan" PRM:/r6/c2-Joint2:62 bbox: box+box mass: 0.005 "tail" joint: [4.4724] ... -1.0472:1.0472(-60°:60°) ============================================================================================= PRIMITIVES --------------------------------------------------------------------------------------------- ( PRM:/ ) ( Node ) ( Description ) . = available ? = partially supported - = not available, but may be x = not available, and won't be in near future # = not available for feasibility reasons [Head] . PRM:/r1/c1-Joint2:11 NECK_TILT Neck tilt1 . PRM:/r1/c1/c2-Joint2:12 HEAD_PAN Neck pan . PRM:/r1/c1/c2/c3-Joint2:13 HEAD_TILT Neck tilt2 ? PRM:/r1/c1/c2/c3/c4-Joint2:14 JAW Mouth /partial support/ . PRM:/r1/c1/c2/c3/e5-Joint4:15 LEFT_EAR Left ear . PRM:/r1/c1/c2/c3/e6-Joint4:16 RIGHT_EAR Right ear x PRM:/r1/c1/c2/c3/t1-Sensor:t1 ... Head sensor . PRM:/r1/c1/c2/c3/p1-Sensor:p1 HEAD_DISTANCE_NEAR Head distance sensor(near) . PRM:/r1/c1/c2/c3/p2-Sensor:p2 HEAD_DISTANCE_FAR Head distance sensor(far) x PRM:/r1/c1/c2/c3/c4/s5-Sensor:s5 ... Chin sensor ? PRM:/r1/c1/c2/c3/l1-LED2:l1 __HeadLightCOLOR Head light(color) } 1 LED (large, top of head) ? PRM:/r1/c1/c2/c3/l2-LED2:l2 __HeadLightWHITE Head light(white) } (orange=jam,white=sensor) ? PRM:/r1/c1/c2/c3/l3-LED2:l3 __ModeIndicatorRED Mode Indicator(red) } ? PRM:/r1/c1/c2/c3/l4-LED2:l4 __ModeIndicatorGREEN Mode Indicator(green) } 2 LEDs (1 behind each ear) ? PRM:/r1/c1/c2/c3/l5-LED2:l5 __ModeIndicatorBLUE Mode Indicator(blue) } ? PRM:/r1/c1/c2/c3/l6-LED2:l6 __WirelessLight Wireless light } 1 LED (small, back of head) ? PRM:/r1/c1/c2/c3/la-LED3:la __FaceLight1 Face light1 ? PRM:/r1/c1/c2/c3/lb-LED3:lb __FaceLight2 Face light2 ? PRM:/r1/c1/c2/c3/lc-LED3:lc __FaceLight3 Face light3 ? PRM:/r1/c1/c2/c3/ld-LED3:ld __FaceLight4 Face light4 ? PRM:/r1/c1/c2/c3/le-LED3:le __FaceLight5 Face light5 ? PRM:/r1/c1/c2/c3/lf-LED3:lf __FaceLight6 Face light6 ? PRM:/r1/c1/c2/c3/lg-LED3:lg __FaceLight7 Face light7 ? PRM:/r1/c1/c2/c3/lh-LED3:lh __FaceLight8 Face light8 ? PRM:/r1/c1/c2/c3/li-LED3:li __FaceLight9 Face light9 ? PRM:/r1/c1/c2/c3/lj-LED3:lj __FaceLight10 Face light10 ? PRM:/r1/c1/c2/c3/lk-LED3:lk __FaceLight11 Face light11 ? PRM:/r1/c1/c2/c3/ll-LED3:ll __FaceLight12 Face light12 ? PRM:/r1/c1/c2/c3/lm-LED3:lm __FaceLight13 Face light13 ? PRM:/r1/c1/c2/c3/ln-LED3:ln __FaceLight14 Face light14 . PRM:/r1/c1/c2/c3/i1-FbkImageSensor:F1 HEAD_CAM Color Camera # PRM:/r1/c1/c2/c3/m1-Mic:M1 ... Stereo microphones [Left front leg] . PRM:/r2/c1-Joint2:21 LEFT_FORELEG_J1 Left front legJ1 . PRM:/r2/c1/c2-Joint2:22 LEFT_FORELEG_J2 Left front legJ2 . PRM:/r2/c1/c2/c3-Joint2:23 LEFT_FORELEG_J3 Left front legJ3 . PRM:/r2/c1/c2/c3/c4-Sensor:24 LEFT_FOREPAW_SENSOR Left front leg, paw sensor [Left rear leg] . PRM:/r3/c1-Joint2:31 LEFT_HINDLEG_J1 Left rear legJ1 . PRM:/r3/c1/c2-Joint2:32 LEFT_HINDLEG_J2 Left rear legJ2 . PRM:/r3/c1/c2/c3-Joint2:33 LEFT_HINDLEG_J3 Left rear legJ3 . PRM:/r3/c1/c2/c3/c4-Sensor:34 LEFT_HINDPAW_SENSOR Left rear leg, paw sensor [Right front leg] . PRM:/r4/c1-Joint2:41 RIGHT_FORELEG_J1 Right front legJ1 . PRM:/r4/c1/c2-Joint2:42 RIGHT_FORELEG_J2 Right front legJ2 . PRM:/r4/c1/c2/c3-Joint2:43 RIGHT_FORELEG_J3 Right front legJ3 . PRM:/r4/c1/c2/c3/c4-Sensor:44 RIGHT_FOREPAW_SENSOR Right front leg, paw sensor [Right rear leg] . PRM:/r5/c1-Joint2:51 RIGHT_HINDLEG_J1 Right rear legJ1 . PRM:/r5/c1/c2-Joint2:52 RIGHT_HINDLEG_J2 Right rear legJ2 . PRM:/r5/c1/c2/c3-Joint2:53 RIGHT_HINDLEG_J3 Right rear legJ3 . PRM:/r5/c1/c2/c3/c4-Sensor:54 RIGHT_HINDPAW_SENSOR Right rear leg, paw sensor [Tail/Others] . PRM:/r6/c1-Joint2:61 TAIL_TILT Tail tilt . PRM:/r6/c2-Joint2:62 TAIL_PAN Tail pan # PRM:/s1-Speaker:S1 ... Speaker . PRM:/p1-Sensor:p1 CHEST_DISTANCE_SENSOR Chest distance sensor # PRM:/b1-Sensor:b1 ... Wireless LAN switch x PRM:/t2-Sensor:t2 ... Back sensor(rear) x PRM:/t3-Sensor:t3 ... Back sensor(middle) x PRM:/t4-Sensor:t4 ... Back sensor(front) ? PRM:/lu-LED3:lu "blue" [0,0,255] __BackFrontLightCOLOR Back light(front, color) ? PRM:/lv-LED3:lv [255,255,255] __BackFrontLightWHITE Back light(front, white) ? PRM:/lw-LED3:lw "yellow" [255,255,0] __BackMiddleLightCOLOR Back light(middle, color) ? PRM:/lx-LED3:lx [255,255,255] __BackMiddleLightWHITE Back light(middle, white) ? PRM:/ly-LED3:ly "red" [255,0,0] __BackRearLightCOLOR Back light(rear, color) ? PRM:/lz-LED3:lz [255,255,255] __BackRearLightWHITE Back light(rear, white) [Acceleration sensor] # PRM:/a1-Sensor:a1 ... Acceleration sensor(+front-back) # PRM:/a2-Sensor:a2 ... Acceleration sensor(+right-left) # PRM:/a3-Sensor:a3 ... Acceleration sensor(+up-down) =============================================================================== REV. HISTORY ------------------------------------------------------------------------------- v1.1 + Fixed distance sensor output (response was a power of 10 too big) + Paw touch sensors tweaked to avoid 'no touch' situations in simulation + Paw bounding boxes tweaked for more realistic walk ? Face lights now properly modelled as 2-faced LEDs (virtual only, no graphics) ? Back lights now partially supported (virtual LEDs only, no graphics) v1.0 + Controllable parts are named after their real-life primitives (PRM:/...). + Most moveable joints are properly modelled, including ears and tail. + Paw touch sensors are properly modelled. + Head camera is properly modelled. + Head distance sensors (near/far) are properly modelled. + Chest distance sensor is properly modelled. ? Mass values for physical parts are inherited from ERS-210 model. ? Force and velocity limits are inherited from ERS-210 model. ? Head camera vertical angle is not taken into account. [modelling limitation] ? Jaw (mouth) moveable part is only partially supported (see Release notes). - Acceleration sensor is *not* modelled as yet. [no suitable node available] - Vibration sensor is *not* modelled as yet. [no suitable node available] - Face lights (LEDs) are *not* modelled as yet. [incomplete graphics only] - Head & wireless lights (LEDs) are *not* modelled as yet. [graphics only] - Back lights (LEDs) are *not* modelled as yet. [no graphics] - Mode indicators (behind ears) are *not* modelled as yet. [no graphics] - Back touch sensors are *not* modelled. [not important] - Head touch sensor is *not* modelled. [not important] - Chin touch sensor is *not* modelled. [not important] - Audio I/O devices (mic and speaker) are *not* modelled. [currently irrelevant] ------------------------------------------------------------------------------- Cyberbotics: http://www.cyberbotics.com Copyright (C) 2004 by Cyberbotics. Sony Aibo: http://openr.aibo.com All rights reserved.