Skip to main content

Smart camera seguimiento color avanzado

Kp, velocidad diferencial del motor.... ¿Eso qué es?

En la extensión CAMARA INTELIGENTE ESPECÍFICA PARA EVENTOS 

smartcam30.jpg

Encontramos estas dos instrucciones

smartcam31.jpg

¿Qué significan?

Vamos a definir dos sistemas de coordenadas

  • Las coordenadas del fondo de PixiCam
  • Las coordenadas de la SmartCam asociadas al evento (en este caso el seguimiento del color) que en la instrucción se llama velocidad diferencial (no puedo llamarlo velocidad pues son coordenadas espaciales, como físico lo siento, no puedo 😫)

Las coordenadas de fondo de Pixicam son fijas, y van desde 0,0 a 320,240 y se pueden ver en la pantalla de PixiMon moviendo el ratón:

smartcam32.jpg

Las otras coordenadas "Las coordenadas de la SmartCam asociadas al evento" están asociadas al evento y están escalados según el valor de 100*Kp donde Kp tiene que ser un número de 0 a 1 por lo tanto el máximo es 100 y el centro de coordenadas lo fija el usuario en el número de la siguiente instrucción, ese número está referido a las coordenadas del fondo de Pixicam 

smartcam33.jpg

Para entendernos mejor, si ponemos 

smartcam34.jpg

El origen será 160,120, o sea lo normal, el centro del fondo de Pixicam, pero puede interesarte "acercar" la bola al robot por lo tanto ¿subirías y a más de 120 o bajarías de 120?

Para entenderlo mejor un dibujo,:

  • Las coordenadas del fondo de PixiCam en rojo
  • Las coordenadas de la SmartCam asociadas al evento en azul

smartcam36.jpg

Y para entenderlo mejor, vamos a ejecutar el siguiente programa test en mBot2 para que se vea en la pantalla del Cyberpi https://planet.mblock.cc/project/3657404

smartcam37.jpg

Al ejecutarlo vemos que muestra las coordenadas de la pelota roja (asociada al evento) y como Kp es 0.3 va desde -30 a +30 tanto para X como para Y

Kp, velocidad diferencial del motor.... ¿Eso para qué sirve?

Pues como son las coordenadas de lo que se "separa" la bola de tu origen, puedes darle velocidad a los motores según esas coordenadas

Desde el punto de vista de las Y (avanzar o retroceder) si hay más Y más tienen que ir los dos motores (hacia delante) si la Y es negativa los dos motores tienen que retroceder, luego desde el punto de vista de las Y :

  • Velocidad motor izquierdo = Y
  • Velocidad motor derecho = Y

Desde el punto de vista de las X (girar) si la X es positiva, tiene que girar a la derecha por lo tanto motor izquierdo avanzar (positiva) y el derecho retroceder (negativo) y si es negativo al revés por lo tanto

  • Velocidad motor izquierdo = X
  • Velocidad motor derecho = -X

Juntando los dos, tenemos:

  • Velocidad motor izquierdo = Y + X
  • Velocidad motor derecho = Y - X
Seguimiento del color utilizando Kp, velocidad diferencial

Podemos aumentar en un factor de 3 para darle más caña pues el máximo sería 30% al multiplicarlo por 3 conseguimos llegar al 90%. Ese factor de multiplicación de la potencia del motor tendría que ser más o menos 10*Kp

Es decir, Velocidad motor izquierdo = 10 Kp  ( Y + X )      Velocidad motor derecho = 10 Kp  (Y - X)

Cuánto más Kp, se sigue mejor a la pelota pero se consigue peor estabilización.

El programa https://planet.mblock.cc/project/3613286

smartcam77.png

¿Por qué el seguimiento del color utilizando Kp, velocidad diferencial es mejor que el simple?

Piénsalo bien, cuanto más se aleja, más potencia, mientras que el simple, si la pelota estaba en una zona determinada, va a una potencia fija.

+ Información

En estos PDFs tienes una explicación más formal de Kp y las velocidades diferenciales: