Technical University of Catalonia GREC – Grup de Recerca Enginyeria Coneixement Creation of Behaviors using URBI Diego Pardo
Aibo Simple Reactive Behaviors Walk Posture Obstacle Detection Face Recognition Voice Recognition
The Basic Behaviors Walk Up Right 12DOF Gait Parameter Forward / Backwards / Turn Initialization Process Compatible with Others Behaviors
The Basic Behaviors Postures Sit / Stand / Lie Transitions Posture Detector
The Basic Behaviors Obstacle Detection Cliff Detection Objects Detection Sensor Characterization Reaction Routine
Open-R R-Code Tekkotsu Remote Framework URBI Programming Tools
Remote FrameWork URBI Urbi-Mind Scenario AiboMind Functions Behaviors Read LowLevel Data Basic behaviors building blocks Low level access (Read/Write) Math functions, float point, etc
RMF Walk J1 – Front Left and Right Walk
URBI J1 – Front Left and Right Walk
URBI J1 – Front Left and Right / Surface Change
def NormalWalk(Wsteps) { neck=-20 smooth :1s, headPan = 0 smooth :1s, headTilt = 0 smooth :1s, if (Wsteps < 0) direction = 0 else direction = 1; Wsteps=abs(Wsteps); for | (j=0;j<Wsteps;j++) for & (m=0;m<6;m++) JF(m,direction) };
Postures State Model for Postures Transition Lie Sit Stand Unknown
Postures Joint – Transition Points
Postures Joint – Transition Points def robot.StandUp() { wait(300); a=robot.myguessPosition(); if(a=="stand") {return 0;ledF=1|wait(500)|ledF=0}; if(a=="unknown") {robot.initial() | robot.lie2stand()} else { if(a=="sit") robot.sit2stand() else {if(a=="lie") robot.lie2stand()}}; };
Obstacle Detection Chest Sensor Output- UrbiMatlab Lib
Obstacle Detection cdetect : every(200ms) cliffalert(),
Obstacle Detection cdetect : every(200ms) obstalert(),
Emerged Behavior LetsFindToy(); Goal : Search of the pink ball Random Search Behavior: Walk, Turn, Sit, Lie Tail, Ear Movements Final Sequence
Interface It simpledemo1: at(headSensor) global.hcounter++; simpledemo2: at(global.hcounter){wait(1000); global.hcounter=0;}, simpledemo3: at(global.hcounter==3){ global.hcounter=0;cleanall(); speaker.play("bark.wav"); motor on; wait(1s);load("foundtoy.u");}, simpledemo4: at(backSensorR){global.bk++;}, simpledemo5: at(global.bk) {wait(1000);global.bk=0;}, simpledemo6: at(global.bk==3) {cleanall();global.bk=0}, Start Stop
Emerged Behavior LetsFindToy();
How Complex? CPU-load level through the Behavior
Conclusions and Future Work Voice and Face Recognition are under construction using Open Source Lib An Urbi-Mind has been created. Routines could be integrated in higher level algorithms. Paralleling processing features are crucial in behavior based robot control. Routines could be used in simple ‘end user’ applications.
Have Fun at &(speaker.remain=~=29025 || speaker.remain=~=28775 || speaker.remain=~=28525 ) { boca(), },