Dise o e implementaci n de movimientos en el sony aibo esr 7
This presentation is the property of its rightful owner.
Sponsored Links
1 / 18

Diseño e implementación de movimientos en el Sony Aibo ESR-7 PowerPoint PPT Presentation


  • 96 Views
  • Uploaded on
  • Presentation posted in: General

Diseño e implementación de movimientos en el Sony Aibo ESR-7. Carlos Ramos Carlos Rivera. Diseño de movimientos. Cada movimiento debe cumplir las siguientes características:

Download Presentation

Diseño e implementación de movimientos en el Sony Aibo ESR-7

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Dise o e implementaci n de movimientos en el sony aibo esr 7

Diseño e implementación de movimientos en el Sony Aibo ESR-7

Carlos Ramos

Carlos Rivera


Dise o de movimientos

Diseño de movimientos

  • Cada movimiento debe cumplir las siguientes características:

  • La primera y la última posición en el movimiento debe ser idéntica a la posición de inicio y final del ciclo de caminata o muy parecida a dicha posición.

  • Debe ser breve a fin de evitar pérdida de información visual.

  • No debe comprometer la integridad del robot.


Dise o de movimientos1

Diseño de movimientos

MEdit for ERS-7.1.0.7

Permite observar el efecto de cambio en los actuadores

Permite animar una secuencia de posiciones

No simula condiciones físicas.


Implementaci n de movimientos en el robot

Implementación de movimientos en el robot

EK2006 - Exportación de los movimientos al archivo MOTION7.ODA

El archivo mtn debe ser integrado al objeto MOTION7.ODA

El identificador del movimiento debe declararse en MONETCMD.CFG


Implementaci n de movimientos en el robot1

Implementación de movimientos en el robot

EK2007 – Definición de movimientos en EKMotion

Objeto heredado de EK2006

Contenido del archivo stub.cfg de EKMotion:


Ekmoves h

EKMoves.h


Ekmotion cc push

EKMotion.cc – Push


Ekmotion cc movetopos

EKMotion.cc - MoveToPos


Ekmotion cc kickb

EKMotion.cc - Kickb


Ekmotion cc moveheadkick

EKMotion.cc – MoveHeadKick

void

EKMotion::MoveHeadKick(int n) {

double jointValue[NUMBER_HEAD_JOINTS];

switch (n) {

case 1: for (int i = 0; i<4; i++)

jointValue[i] = (EK_POS[i]*PI)/180;

break;

[…]

case 4: for (int i = 0; i<4; i++)

jointValue[i] = (KICK_101_02[i]*PI)/180;

break;

case 5: for (int i = 0; i<4; i++)

jointValue[i] = (KICK_101_03[i]*PI)/180;

break;

case 6: for (int i = 0; i<4; i++)

jointValue[i] = (KICK_101_04[i]*PI)/180;

break;

[…]

}

SetHeadJoints(jointValue);

return;

}


Ekmotion cc movelegskick

EKMotion.cc – MoveLegsKick

void

EKMotion::MoveLegsKick(int n) {

static double leg_joints[NUM_LEG_JOINT];

switch (n) {

case 1: for (int i = 0; i<12; i++)

leg_joints[i] = (EK_POS[i+4]*PI)/180;

break;

[…]

case 4: for (int i = 0; i<12; i++)

leg_joints[i] = (KICK_101_02[i+4]*PI)/180;

break;

case 5: for (int i = 0; i<12; i++)

leg_joints[i] = (KICK_101_03[i+4]*PI)/180;

break;

case 6: for (int i = 0; i<12; i++)

leg_joints[i] = (KICK_101_04[i+4]*PI)/180;

break;

[…]

}

SetLegJoints(leg_joints);

return;

}


Ekmotion cc setjoint

EKMotion.cc – SetJoint

Int EKMotion::SetHeadJoints(double *x) {

for (int i = 0; i < NUMBER_HEAD_JOINTS; i++)

SetJoint(HEAD_JOINT_INDEX[i], x[i]);

return 1;

}

Int EKMotion::SetLegJoints(double *x) {

for (int i = 0; i < NUMBER_LEG_JOINTS; i++)

SetJoint(LEG_JOINT_INDEX[i], x[i]);

return 1;

}

Void EKMotion::SetJoint(int index, double val) {

if ((index >= 0) && (index < NUMBER_JOINTS))

{

joint_values[index] = int(1e6*val);

send_joint_values[index] = true;

}

send_joints = true;

}


Ekmotion cc sendjointcommandvector

EKMotion.cc - SendJointCommandVector


Caminata

Caminata

  • Control de los ángulos de las articulaciones.

  • 3 articulaciones:

    • Rotator. Pata entera en eje horizontal de izquierda a derecha.

    • Abductor. Rota la pata fuera del cuerpo.

    • Knee. Flexiona la parte inferior de la pata.

  • Caminata tipo trote

    • Patas diagonalmente opuestas dan un paso al mismo tiempo.

    • Un par da un paso al frente mientras que el otro par se mantiene en el suelo.

    • Luego se van alternando.


Caminata1

Caminata

  • Para que el Aibo se mueva en línea recta el pie debe moverse en una curva en el aire.

    • Media elipse.

Los 12 parámetros definen la manera de caminar del Aibo:

El “locus” frontal (tres parámetros: alto, “x”, “y”).

El “locus” trasero (tres parámetros: alto, “x”, “y”).

El largo del “locus”.

El multiplicador de “skew” en el plano “x-y” del “locus” (para girar).

La altura de la parte frontal del cuerpo.

La altura de la parte trasera del cuerpo.

El tiempo que toma cada pie para moverse en el “locus”.

La fracción de tiempo que pasa cada pie en el suelo.

Figure. “Locus” elíptico del pie del Aibo.


Caminata2

Caminata

  • Desde EKMain se envía la estructura EKMotionData.

  • Para que el robot camine command tiene que ser igual a 0 y “x”, “y” y “ang_walk” definen la caminata.

  • En EKMotion el servicio ReceiveAction atiende el envío de la estructura desde EKMain y procesa la información arrancando el módulo Push en EKMotion.cc


Caminata3

Caminata

  • Como ya se dijo, en EKMotion, el servicio ReceiveAction atiende el envió de la estructura desde EKMain y procesa la información arrancando el modulo Push en EKMotion.cc.

    • Esta función a su vez invoca a la función WalkLegs.

  • Si xWalk es menor que 0 entonces se mueve a la izquierda; en caso contrario a la derecha.

  • Si yWalk es negativo entonces se mueve hacia atrás; en caso contrario hacia el frente.

  • El parámetro aWalk rige la rotación. Si el valor es mayo que cero entonces rota a la izquierda; en caso contrario rota a la derecha.


  • Login