Diseo e implementacin de movimientos en el Sony Aibo ESR7 - PowerPoint PPT Presentation

About This Presentation
Title:

Diseo e implementacin de movimientos en el Sony Aibo ESR7

Description:

Contenido del archivo stub.cfg de EKMotion: EKMoves.h. const double NombrePosicion ... SetJoint(int index, double val) { if ((index = 0) ... double mouth; ... – PowerPoint PPT presentation

Number of Views:55
Avg rating:3.0/5.0
Slides: 19
Provided by: Carl416
Category:

less

Transcript and Presenter's Notes

Title: Diseo e implementacin de movimientos en el Sony Aibo ESR7


1
Diseño e implementación de movimientos en el Sony
Aibo ESR-7
  • Carlos Ramos
  • Carlos Rivera

2
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.

3
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.
4
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
5
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
6
EKMoves.h
7
EKMotion.cc Push
8
EKMotion.cc - MoveToPos
9
EKMotion.cc - Kickb
10
EKMotion.cc MoveHeadKick
void EKMotionMoveHeadKick(int n)
double jointValueNUMBER_HEAD_JOINTS
switch (n) case 1 for (int i 0 ilt4
i) jointValuei (EK_POSiPI)/180 break
case 4 for (int i 0 ilt4
i) jointValuei (KICK_101_02iPI)/180
break case 5 for (int i 0 ilt4
i) jointValuei (KICK_101_03iPI)/180
break case 6 for (int i 0 ilt4
i) jointValuei (KICK_101_04iPI)/180
break SetHeadJoints(jointValue) return

11
EKMotion.cc MoveLegsKick
void EKMotionMoveLegsKick(int n)
static double leg_jointsNUM_LEG_JOINT
switch (n) case 1 for (int i 0 ilt12
i) leg_jointsi (EK_POSi4PI)/180 bre
ak case 4 for (int i 0 ilt12
i) leg_jointsi (KICK_101_02i4PI)/180
break case 5 for (int i 0 ilt12
i) leg_jointsi (KICK_101_03i4PI)/180
break case 6 for (int i 0 ilt12
i) leg_jointsi (KICK_101_04i4PI)/180
break
SetLegJoints(leg_joints) return
12
EKMotion.cc SetJoint
Int EKMotionSetHeadJoints(double x)
for (int i 0 i lt NUMBER_HEAD_JOINTS
i) SetJoint(HEAD_JOINT_INDEXi, xi)
return 1 Int EKMotionSetLegJoints(double
x) for (int i 0 i lt
NUMBER_LEG_JOINTS i) SetJoint(LEG_JOINT_INDEX
i, xi) return 1 Void
EKMotionSetJoint(int index, double val)
if ((index gt 0) (index lt NUMBER_JOINTS))
joint_valuesindex
int(1e6val) send_joint_valuesindex true
send_joints true
13
EKMotion.cc - SendJointCommandVector
14
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.

15
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.
16
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

17
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.

18
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com