Autor Tema: Robot equilibrista  (Leído 228572 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado marito

  • PIC16
  • ***
  • Mensajes: 217
Re: Robot equilibrista
« Respuesta #480 en: 21 de Junio de 2012, 12:12:01 »
Filme con el celular.Te mando un privado a ver si me podes explicar como subirlo!

Tendrías el algoritmo de Kalman que podría usar?

Vi algunos que postearon pero no me funcionaron.

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: Robot equilibrista
« Respuesta #481 en: 21 de Junio de 2012, 12:44:03 »
El filtro que yo uso es este:

Código: [Seleccionar]
//---------------------------------constantes y variables para el filtro kalman---------------------------------------------

#define dt        0.05//[s]/constante del tiempo de muestreo
#define Qaccel    0.001
#define Qgyro     0.003
#define R         0.6
#define SoA       0.002//sensibilidad del giroscopio  2 mV/°/s
static float Vbias=0,angle=0,gyro=0,accel=0;//gyro-> lectura del giroscopio; accel->lectura del acelerometro

float PK[2][2]={{1,0},{0,1}};
//-----------------------------FILTRO KALMAN--------------------------
void kalman_update()//funcion de actualizacion del filtro kalman
{   
   float K[2];
   float ang_err=0;//angulo de error

   ang_err=accel-angle;
   K[0]=PK[0][0]/(PK[0][0]+R);
   K[1]=PK[1][0]/(PK[0][0]+R);
   PK[0][0]-=PK[0][0]*K[0];
   PK[0][1]-=PK[0][1]*K[0];
   PK[1][0]-=PK[0][0]*K[1];
   PK[1][1]-=PK[0][1]*K[1];
   angle+=K[0]*ang_err;
   Vbias+=K[1]*ang_err;

}
void kalman_prediction()//funcion de prediccion del filtro kalman
{
  float Pdot[2];

  Pdot[0]=-PK[0][1]-PK[1][0];
  Pdot[1]=-PK[1][1];

  gyro-=Vbias;
  angle+=gyro*dt; 
  PK[0][0]+=Qaccel+Pdot[0]*dt+PK[1][1]*dt*dt;
  PK[0][1]+=Pdot[1]*dt;
  PK[1][0]+=Pdot[1]*dt;
  PK[1][1]+=Qgyro;
  //angle=accel;
}
//-------------------------------------------------------------------

« Última modificación: 21 de Junio de 2012, 13:20:21 por rivale »
"Nada es imposible, no si puedes imaginarlo"

Desconectado marito

  • PIC16
  • ***
  • Mensajes: 217
Re: Robot equilibrista
« Respuesta #482 en: 21 de Junio de 2012, 13:57:34 »
Buenísimo! gracias Rivale.

Voy a probarlo a ver si mejora la respuesta!

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: Robot equilibrista
« Respuesta #483 en: 21 de Junio de 2012, 15:53:31 »
Puedes variar los parametros -qaccel, Qgyro y R para mejorar la respuesta, dependiendo de como te funcion, esta para un tiempo de muestreo de 5 ms, esto esta definido en dt
"Nada es imposible, no si puedes imaginarlo"

Desconectado marito

  • PIC16
  • ***
  • Mensajes: 217
Re: Robot equilibrista
« Respuesta #484 en: 21 de Junio de 2012, 16:07:54 »
SoA, es un valor que está en función de mi giro, no? Tengo un giro MLX90609 de 300°/seg, y una variación de 2,5v para ese máximo.

angle es el valor de salida de la función que me entrega el ángulo de inclinación, no?

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: Robot equilibrista
« Respuesta #485 en: 21 de Junio de 2012, 16:11:33 »
perdon, SoA no va ahi esa es la sensibilidad de mi gyro.

angle es la medida del angulo, en esa variable se guardara el valor ya filtrado del angulo

accel es la medida del angulo en base al acelerometro y gyro es la medida de la velocidad angular desde el gyro, tienes que asegurarte de que ambas medidas esten en las radianes o en grados
"Nada es imposible, no si puedes imaginarlo"

Desconectado marito

  • PIC16
  • ***
  • Mensajes: 217
Re: Robot equilibrista
« Respuesta #486 en: 21 de Junio de 2012, 16:17:03 »
Perfecto, queda clarísimo!

En un rato te comento resultados..
Gracias Rivale!

Desconectado marito

  • PIC16
  • ***
  • Mensajes: 217
Re: Robot equilibrista
« Respuesta #487 en: 22 de Junio de 2012, 08:51:55 »
Buenos días para todos!

Rivale, estuve probando el filtro que me pasaste. Me funcionó, pero las oscilaciones son mayores que el filtro complementario que estoy usando, en el que actualizo con el 97% de las medicines del giro y 3% del acelerómetro cada 5 mseg.

No hice variación de Qaccel, Qgyro ni R. Hay algún método para hacer el ajuste fino?

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: Robot equilibrista
« Respuesta #488 en: 23 de Junio de 2012, 01:17:50 »
Rivale, estuve probando el filtro que me pasaste. Me funcionó, pero las oscilaciones son mayores que el filtro complementario que estoy usando, en el que actualizo con el 97% de las medicines del giro y 3% del acelerómetro cada 5 mseg.

No hice variación de Qaccel, Qgyro ni R. Hay algún método para hacer el ajuste fino?
:o a mi me dio muy buenos resultados el filtro, pero creo que probare con tu alternativa

mira, quizas esto te ayude:
http://bibdigital.epn.edu.ec/bitstream/15000/1794/1/CD-2772.pdf

Puedes aumentar o reducir el valor de R para darle mayor o menor ponderacion a la medida de tu acelerometro

"Nada es imposible, no si puedes imaginarlo"

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 17755
    • MicroPIC
Re: Robot equilibrista
« Respuesta #489 en: 29 de Junio de 2012, 14:52:07 »
Monociclo equilibrista. Y es capaz de caminar por el canto de un cristal  ((:-)) ((:-)) ((:-))

Un saludo desde Sevilla, España.
Visita MicroPIC                                                                                        ɔ!doɹɔ!ɯ ɐʇ!s!ʌ

Desconectado josechura

  • PIC10
  • *
  • Mensajes: 2
Re: Robot equilibrista
« Respuesta #490 en: 14 de Julio de 2012, 11:59:35 »
Gracias a los amigos foreros.. por todo lo posteado.. me ha servido de base para realizar un robot equilibrio en base al algoritmo PID.. He aqui un avanze de lo que toy haciendo es similar a lo del amigo Safareig.. pero tendra muxas mas aplicaciones yeahhh...
Cabe resaltar que en el video solo uso el giroscopio  y se presenta el problema de la deriva de tiempo para poder ubicarlo en el centro..


Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: Robot equilibrista
« Respuesta #491 en: 14 de Julio de 2012, 12:45:59 »
Felicidades, vas bien, pero si necesitas el acelerometro para suavisar la respuesta y que se logre equilibrar solo despues de que lo golpees.  :mrgreen:
"Nada es imposible, no si puedes imaginarlo"

Desconectado marito

  • PIC16
  • ***
  • Mensajes: 217
Re: Robot equilibrista
« Respuesta #492 en: 16 de Julio de 2012, 10:59:53 »
Muy bueno Josechura! De que potencia son los motores que usaste?

Desconectado josechura

  • PIC10
  • *
  • Mensajes: 2
Re: Robot equilibrista
« Respuesta #493 en: 16 de Julio de 2012, 11:07:27 »
Gracias amigos..  Aun tengo q definir bien el centro de gravedad del bot.. y luego tengo que usar los 2 sensores(acelerometro y giroscopio) pa tener el angulo exacto ya sea usando un arreglo o el famoso filtro kalman....
Los motores q estoy usando son estos  http://www.pololu.com/catalog/product/2273  pero aun no uso los encoders q posee....

Desconectado NANO1985

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
    • Desarrollos Tecnologicos - Tucuman - Argentina
Re: Robot equilibrista
« Respuesta #494 en: 17 de Julio de 2012, 11:06:38 »
cuando sea grande quiero ser como el del monociclo....   ((:-))  ((:-))  ((:-)) impresionante  ;-)
"La inquebrantable voluntad de vencer"
"hay dos cosas infinitas... El universo y la Estupidez humana" Albert Einstein
 "El sabio actua sin anhelos, permanece sosegado,... así no es afectado por el resultado de sus acciones sean éstas el triunfo o el fracaso"
- UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL TUCUMAN -