Herramientas Buscar en Tema
Antiguo 08/09/2015, 01:40   #1111
rortega
* * * * * *
 
Avatar de rortega
 
Ingreso 20/abr/2012
3.813 Mensajes
Cita:
Iniciado por caliwhite Ver mensaje
Con los últimos cambios que has echo ya lo tengo dando vueltas, gracias por ese pedazo de curro que te estas pegando.
Un saludo.
A cambio, si funciona bien, graba algún pequeño vídeo y compártelo para que veamos en funcionamiento. No importa si no tienes montado el tracker completo, basta ver que la electrónica está respondiendo bien y se ven los datos en el LCD.

Si indicas modelo y link donde compraste el LCD que usas, lo añadimos al código fuente para que otros usuarios puedan localizarlo antes.

Y si nos explicas brevemente que configuración de protocolo y dispositivos estás usando, podemos confirmar en la wiki que está probado y funcionando.
__________________
WiiFPV Team: VIMEO - YouTube
rortega esta en línea ahora   Responder Citando
Antiguo 08/09/2015, 01:49   #1112
caliwhite
*
 
Ingreso 11/dic/2013
61 Mensajes
Ok, lo tengo todo superpuesto estoy esperando el servo continuo el que tiene es uno de 360º, el LDC es el mismo que recomienda Gillesan por ebay en tienda de valencia.
Mañana con mas tiempo hago video me voy a descansar dentro de un rato tengo que currar.
Gracias
caliwhite esta en línea ahora   Responder Citando
Antiguo 08/09/2015, 09:45   #1113
Simba
* * * * * *
 
Avatar de Simba
 
Ingreso 04/jul/2008
4.652 Mensajes
Cita:
Iniciado por rortega Ver mensaje
#define BAUD afecta al puerto serie por el que recibimos la telemetría remota.

#define GPS_BAUDRATE es para el GPS Local, sólo tiene sentido modificarlo si lo estás usando.
Vale aclarado, entonces lo hice todo bien.
Gracias.
Simba esta en línea ahora   Responder Citando
Antiguo 08/09/2015, 10:56   #1114
Simba
* * * * * *
 
Avatar de Simba
 
Ingreso 04/jul/2008
4.652 Mensajes
Mirar, esta es la forma a groso modo, en que se desplaza el angulo de Tilt de la antena, según le llegan los pulsos de posición cada 1/2 segundos, (2Hz GPS).
La cuestión es ¿seria posible ponerle una función de integración, para que la salida al servo Tilt fuera en forma de rampa, y que la inclinación de la rampa fuera función de la magnitud de la salida?.

Es como amortiguar los escalones de salida tilt, de esa forma el conjunto de la mecánica del Traker, sufriría mucho menos ya que no iría a saltos. esto ultimo cuando se monta una antena con un cierto peso y volumen se nota mucho, no tanto cuando montamos una pequeña antena de 5,8g.

Es solo una idea, para ver si es realizable.
mascota_articulosImágenes
Hacer clic en la imagen para la versión completa

Nombre:  20150908_103535xx.jpg
Vistas: 37
Tamaño:  121,6 KB (Kilobytes)
ID: 61622  
Simba esta en línea ahora   Responder Citando
Antiguo 08/09/2015, 11:28   #1115
rortega
* * * * * *
 
Avatar de rortega
 
Ingreso 20/abr/2012
3.813 Mensajes
Cita:
Iniciado por Simba Ver mensaje
Mirar, esta es la forma a groso modo, en que se desplaza el angulo de Tilt de la antena, según le llegan los pulsos de posición cada 1/2 segundos, (2Hz GPS).
La cuestión es ¿seria posible ponerle una función de integración, para que la salida al servo Tilt fuera en forma de rampa, y que la inclinación de la rampa fuera función de la magnitud de la salida?.

Es como amortiguar los escalones de salida tilt, de esa forma el conjunto de la mecánica del Traker, sufriría mucho menos ya que no iría a saltos. esto ultimo cuando se monta una antena con un cierto peso y volumen se nota mucho, no tanto cuando montamos una pequeña antena de 5,8g.

Es solo una idea, para ver si es realizable.
Smoothing creo que se llama esa técnica, no? En el código fuente hay algún comentario sobre una librería para aplica smoothig a los servía. Le echaré un vistazo esta tarde para ver de que va.
__________________
WiiFPV Team: VIMEO - YouTube
rortega esta en línea ahora   Responder Citando
Antiguo 08/09/2015, 12:32   #1116
Simba
* * * * * *
 
Avatar de Simba
 
Ingreso 04/jul/2008
4.652 Mensajes
Mira lo que he encontrado, se trata de esto exactamente, a ver que te parece.

http://lab.guilhermemartins.net/2009...rvo-movements/
Simba esta en línea ahora   Responder Citando
Antiguo 08/09/2015, 16:49   #1117
rortega
* * * * * *
 
Avatar de rortega
 
Ingreso 20/abr/2012
3.813 Mensajes
Cita:
Iniciado por Simba Ver mensaje
Mira lo que he encontrado, se trata de esto exactamente, a ver que te parece.

http://lab.guilhermemartins.net/2009...rvo-movements/
Le echaré un vistazo esta tarde.
__________________
WiiFPV Team: VIMEO - YouTube
rortega esta en línea ahora   Responder Citando
Antiguo 08/09/2015, 20:47   #1118
rortega
* * * * * *
 
Avatar de rortega
 
Ingreso 20/abr/2012
3.813 Mensajes
Cita:
Iniciado por Simba Ver mensaje
Mira lo que he encontrado, se trata de esto exactamente, a ver que te parece.

http://lab.guilhermemartins.net/2009...rvo-movements/
Le voy a meter mano al tema éste a ver si sale algo, pero asi a primera vista el resultado dará lugar a una respuesta más lenta, que se va a notar sobre todo estando cerca el avión. Pero vueno, vamos a intentarlo...
__________________
WiiFPV Team: VIMEO - YouTube
rortega esta en línea ahora   Responder Citando
Antiguo 08/09/2015, 20:48   #1119
Guillesan
* * * * * *
 
Avatar de Guillesan
 
Ingreso 31/oct/2008
De Barcelona
1.966 Mensajes
Ok , valiente, yo estoy liado con la mecánica.
Guillesan esta en línea ahora   Responder Citando
Antiguo 08/09/2015, 20:58   #1120
Simba
* * * * * *
 
Avatar de Simba
 
Ingreso 04/jul/2008
4.652 Mensajes
Bueno vamos a ver pero creo que la velocidad real si los valores se ajustan a un mínimo para solo amortiguar tengo muchas esperanzas.
En el video del sitio que puse se ve un ejemplo de un muñeco robótica do que se nota muy bien la respuesta.
Simba esta en línea ahora   Responder Citando
Antiguo 08/09/2015, 21:01   #1121
rortega
* * * * * *
 
Avatar de rortega
 
Ingreso 20/abr/2012
3.813 Mensajes
Cita:
Iniciado por Simba Ver mensaje
Bueno vamos a ver pero creo que la velocidad real si los valores se ajustan a un mínimo para solo amortiguar tengo muchas esperanzas.
En el video del sitio que puse se ve un ejemplo de un muñeco robótica do que se nota muy bien la respuesta.
Eso no es lo más importante del sitio web, je je. Lo verdaderamente bueno son los links relacionados, donde se pueden ver las curvas que representan las respuestas de las distintas funciones de easing. Con cretamente creo que la que mejor se ajusta es la OutQuart.
__________________
WiiFPV Team: VIMEO - YouTube
rortega esta en línea ahora   Responder Citando
Antiguo 08/09/2015, 21:03   #1122
Simba
* * * * * *
 
Avatar de Simba
 
Ingreso 04/jul/2008
4.652 Mensajes
Vale vale yo no llego a tanto, seguro que tu eliges la mejor la función ideal.
Simba esta en línea ahora   Responder Citando
Antiguo 08/09/2015, 21:04   #1123
rortega
* * * * * *
 
Avatar de rortega
 
Ingreso 20/abr/2012
3.813 Mensajes
http://www.gizma.com/easing/#quart2

http://robertpenner.com/easing/easing_demo.html

Un arranque rápido para aflojar en la parte final. Voy a probar con un sketch metiendo del tracker el código de calcula el tilt, y le voy a pasar la función que hace filtro a ver que respuestas tengo...pero dame tiempo...
__________________
WiiFPV Team: VIMEO - YouTube
rortega esta en línea ahora   Responder Citando
Antiguo 08/09/2015, 21:06   #1124
Simba
* * * * * *
 
Avatar de Simba
 
Ingreso 04/jul/2008
4.652 Mensajes
Todo el que necesites tu marcas los tiempos y sin prisas ok.
Simba esta en línea ahora   Responder Citando
Antiguo 08/09/2015, 21:06   #1125
rortega
* * * * * *
 
Avatar de rortega
 
Ingreso 20/abr/2012
3.813 Mensajes
Cita:
Iniciado por rortega Ver mensaje
http://www.gizma.com/easing/#quart2

http://robertpenner.com/easing/easing_demo.html

Un arranque rápido para aflojar en la parte final. Voy a probar con un sketch metiendo del tracker el código de calcula el tilt, y le voy a pasar la función que hace filtro a ver que respuestas tengo...pero dame tiempo...
Conozco el inicio del movimiento, y el punto final, y cuantos pasos puedo dar sin filtro. Lo que hago es que en lugar de recorrer 60 grados del tiron, por poner un ejemplo, muevo 45,10,4,1, grados en 4 pasos.
__________________
WiiFPV Team: VIMEO - YouTube
rortega esta en línea ahora   Responder Citando
Antiguo 08/09/2015, 21:06   #1126
Guillesan
* * * * * *
 
Avatar de Guillesan
 
Ingreso 31/oct/2008
De Barcelona
1.966 Mensajes
Cita:
Iniciado por rortega Ver mensaje
http://www.gizma.com/easing/#quart2

http://robertpenner.com/easing/easing_demo.html

Un arranque rápido para aflojar en la parte final. Voy a probar con un sketch metiendo del tracker el código de calcula el tilt, y le voy a pasar la función que hace filtro a ver que respuestas tengo...pero dame tiempo...
Tiempo todo el que quieras, solo faltaba
Guillesan esta en línea ahora   Responder Citando
Antiguo 09/09/2015, 12:11   #1127
marcoasj
* * * *
 
Avatar de marcoasj
 
Ingreso 02/mar/2015
De Cáceres
532 Mensajes
GPS LOCAL

Buenas, rortega, simba, guillesan y cia.

He estado leyendo los post de estos ultimos días y no me acaba de quedar clara una cosa.

¿ El tracker funciona mejor sin GPS LOCAL ?,

Ya se que con el GPS local la autolocalización del tracker es automática, pero lo que interesa desde el punto de vista del usuario es que el LCD del tracker refleje la posición del avión, y no la del tracker. Y no me que claro, despues de leer y releer, que el funcionamiento del mismo con GPS LOCAL.

Voy a exponer lo que yo he entendido, corregidme si cometo algún error( que será lo mas seguro)

El Tracker arranca y espera señal del gps local hasta que coge satelites suficientes para la autolocalización y espera señal de telemetria. En este caso el LCD refleja la posición del tracker.

El tracker empieza a recibir telemetria y el LCD sustituye la posicion del tracker por la del avión.

¿Esto es así ?

Si el GPS Local solo sirve para esto ( salvando que pueda generar algún tipo de carga al procesador) ¿ No es mejor prescindir de él ?

Perdonad mi ignorancia, pero no entiendo de que le sirve a el tracker saber su propia posición.

Siento interrumpir la linea argumental de ahora ( lo del suavizado de los movs del tacker QUE VA A SER LA CAÑA ¡¡¡ y lo de la ( no se como llamarlo ) multiprotocolaridad, pero es que me voy a poner a simular via pc y no tengo las cosas claras.

Como dijo Guillesan por ahí detras..... tu pregunta que es lo que hay que hacer ¡¡¡¡

Graciaaaaass.
__________________
Permiso para aporrizar en...cualquier sitio...
marcoasj esta en línea ahora   Responder Citando
Antiguo 09/09/2015, 12:37   #1128
Simba
* * * * * *
 
Avatar de Simba
 
Ingreso 04/jul/2008
4.652 Mensajes
Hola, en lo referente al GPS local, estamos trabajando con la ultima versión, que ya no tiene GPS local.
Motivo, pues por lo mismo que piensas tu, que no lo vemos necesario.
Como comentas, con GPS local al arrancar espera coger satelites y cuando los tiene, se queda quieto esperando le llegue la telemetria, en ese momento solo se ven los satelites pillados, no la posición del Traker, es cuando le llega la telemetria, que saca por el LCD la posición del Avión, siempre saca la posición del Avión.
En esas condiciones y solo cuando se aleje el Avión del Traker los metros especificados, se pone a seguir.
No hay que apretar ningún botón, arranca solo.

La mayor ventaja de este sistema es la posibilidad si a alguien le interesa no no es nuestro caso, de cambiar de posición el traker durante el vuelo, el seguimiento sigue siendo perfecto, ya que el Traker siempre sabe donde esta.

En el caso de la versión SGPSL, se elimina el GPS local, y cuando se arranca se queda esperando recibir telemetria, y a partir del momento en que la telemetria es buena y se reciben mínimo 7 satelites (creo), sale por el LCD la información del Nº de satelites y posición, siempre del Avión claro.
Hay que tener el avión lo mas próximo posible del traker, y entonces se aprieta el botón de Home, esta posición es la que el traker identifica como suya.
A partir de ese momento, al alejarnos la distancia especificada, el Traker empieza a seguirnos.

No se si hay algo que se me olvida.
Simba esta en línea ahora   Responder Citando
Antiguo 09/09/2015, 12:40   #1129
marcoasj
* * * *
 
Avatar de marcoasj
 
Ingreso 02/mar/2015
De Cáceres
532 Mensajes
Cita:
Iniciado por Simba Ver mensaje
Hola, en lo referente al GPS local, estamos trabajando con la ultima versión, que ya no tiene GPS local.
Motivo, pues por lo mismo que piensas tu, que no lo vemos necesario.
Como comentas, con GPS local al arrancar espera coger satelites y cuando los tiene, se queda quieto esperando le llegue la telemetria, en ese momento solo se ven los satelites pillados, no la posición del Traker, es cuando le llega la telemetria, que saca por el LCD la posición del Avión, siempre saca la posición del Avión.
En esas condiciones y solo cuando se aleje el Avión del Traker los metros especificados, se pone a seguir.
No hay que apretar ningún botón, arranca solo.

La mayor ventaja de este sistema es la posibilidad si a alguien le interesa no no es nuestro caso, de cambiar de posición el traker durante el vuelo, el seguimiento sigue siendo perfecto, ya que el Traker siempre sabe donde esta.

En el caso de la versión SGPSL, se elimina el GPS local, y cuando se arranca se queda esperando recibir telemetria, y a partir del momento en que la telemetria es buena y se reciben mínimo 7 satelites (creo), sale por el LCD la información del Nº de satelites y posición, siempre del Avión claro.
Hay que tener el avión lo mas próximo posible del traker, y entonces se aprieta el botón de Home, esta posición es la que el traker identifica como suya.
A partir de ese momento, al alejarnos la distancia especificada, el Traker empieza a seguirnos.

No se si hay algo que se me olvida.
Perfecto simba, todo aclarado.
Esperando la actualización del FRQMAX2 entonces, mientras tanto probaré SGPSL
__________________
Permiso para aporrizar en...cualquier sitio...
marcoasj esta en línea ahora   Responder Citando
Antiguo 09/09/2015, 13:58   #1130
rortega
* * * * * *
 
Avatar de rortega
 
Ingreso 20/abr/2012
3.813 Mensajes
Cita:
Iniciado por marcoasj Ver mensaje
Perfecto simba, todo aclarado.
Esperando la actualización del FRQMAX2 entonces, mientras tanto probaré SGPSL
De todos modos, la última versión sigue manteniendo la funcionalidad de GPS Local si deseas usarla.

Lo que hemos hecho es permitir que si compile y funcione correctamente si no tienes GPS Local cuando usas LCD. En esta combinación no mostraba datos de satélite, por ejemplo, pues no estaba implementada la función.
__________________
WiiFPV Team: VIMEO - YouTube
rortega esta en línea ahora   Responder Citando
Antiguo 10/09/2015, 08:43   #1131
rortega
* * * * * *
 
Avatar de rortega
 
Ingreso 20/abr/2012
3.813 Mensajes
Le estoy dando vueltas (y nunca mejor dicho) al tema del servo. Tengo implementadas las funciones, pero hay una cosilla que se me está escapando y no termina de funcionar.

Lo que estoy utilizando es una librería de funciones llamada Easing, ya implementadas para arduino, que son sólo las ecuaciones matématicas a las que se les pasan unos parámetros de entrada.

Si nos queremos mover, por ejmplo, desde la posición 0 (pulso de 1500milisegundos) a la posición 45º (pulso de 1800milisegundos), en lugar de hacerlo de golpe pasando el pulso de 1800milisegundos directamente al servo, lo que hago es pasarle a la función de easing la posición inicial, la posición final, y el número de pasos en los que quiero que lo haga.

Supongamos que le digo que quiero hacerlo en 10 pasos. En cada paso me devuelve un valor entre 1500 y 1800, que según la función de easing que implemente, cada vez se incrementa con respecto al paso anterior cierta cantidad, que no es fija. Para "outQuartic" (nombre de la función) el incremento es más grande en los primeros pasos, intentando llegar al pulso final (1800ms) muy rápido, pero conforme se va llegando a los pasos finales, el incremento va decreciendo considerablemente, pero experimentando un efecto de amortiguación (sin rebote).

Cada paso, hay que esperar 15ms para que el servo haya realizado el pequeño movimiento de alcanzar ese tramo. Así que si lo hacemos en 10 pasos, tardaríamos 150ms en llegar a los 1800ms. Y si lo hacemos en 20 pasos, tartaríamos 300ms.

En el código del config.h pondré un parámetro para ajustar el número de pasos en los que queremos realizar el movimiento completo.

De momento estoy en la fase de depuración, porque en algún punto del código he metido alguna operación que hace que los valores que devuelve la función en cada paso sean distintos de entre 1500 y 1800, salíendose del rango. Pero imagino que esta tarde/noche, tras una buena siesta, podría dejarlo terminado para poder hacer pruebas.

El ecto sería como si
__________________
WiiFPV Team: VIMEO - YouTube
rortega esta en línea ahora   Responder Citando
Antiguo 10/09/2015, 08:58   #1132
Guillesan
* * * * * *
 
Avatar de Guillesan
 
Ingreso 31/oct/2008
De Barcelona
1.966 Mensajes
Cita:
Iniciado por rortega Ver mensaje
Le estoy dando vueltas (y nunca mejor dicho) al tema del servo. Tengo implementadas las funciones, pero hay una cosilla que se me está escapando y no termina de funcionar.

Lo que estoy utilizando es una librería de funciones llamada Easing, ya implementadas para arduino, que son sólo las ecuaciones matématicas a las que se les pasan unos parámetros de entrada.

Si nos queremos mover, por ejmplo, desde la posición 0 (pulso de 1500milisegundos) a la posición 45º (pulso de 1800milisegundos), en lugar de hacerlo de golpe pasando el pulso de 1800milisegundos directamente al servo, lo que hago es pasarle a la función de easing la posición inicial, la posición final, y el número de pasos en los que quiero que lo haga.

Supongamos que le digo que quiero hacerlo en 10 pasos. En cada paso me devuelve un valor entre 1500 y 1800, que según la función de easing que implemente, cada vez se incrementa con respecto al paso anterior cierta cantidad, que no es fija. Para "outQuartic" (nombre de la función) el incremento es más grande en los primeros pasos, intentando llegar al pulso final (1800ms) muy rápido, pero conforme se va llegando a los pasos finales, el incremento va decreciendo considerablemente, pero experimentando un efecto de amortiguación (sin rebote).

Cada paso, hay que esperar 15ms para que el servo haya realizado el pequeño movimiento de alcanzar ese tramo. Así que si lo hacemos en 10 pasos, tardaríamos 150ms en llegar a los 1800ms. Y si lo hacemos en 20 pasos, tartaríamos 300ms.

En el código del config.h pondré un parámetro para ajustar el número de pasos en los que queremos realizar el movimiento completo.

De momento estoy en la fase de depuración, porque en algún punto del código he metido alguna operación que hace que los valores que devuelve la función en cada paso sean distintos de entre 1500 y 1800, salíendose del rango. Pero imagino que esta tarde/noche, tras una buena siesta, podría dejarlo terminado para poder hacer pruebas.

El ecto sería como si
Bien , suena estupendo, a mi me vendra de perlas por que personalmente mi antena (la segunda) es de tamaño y peso considerable, asi que la cuestion rebote se debe considerar.
Rortega, gracias una vez mas, y tu siestea, que cuando te levantas siempre tienes genialidades jajajaja.
Si hay que probar algo ya sabes aqui estoy para lo que te haga falta
Un saludo
Guillesan esta en línea ahora   Responder Citando
Antiguo 10/09/2015, 09:10   #1133
Simba
* * * * * *
 
Avatar de Simba
 
Ingreso 04/jul/2008
4.652 Mensajes
Hola buenos días, ya veo que estas en el lio, estupendo.
Una cosa, me extraña que para posición de 45º de Tilt le metas 1800ms, cuando en mi caso estoy en un rango de +- de 1000ms a 2000ms, con una posición de 90º de 1500ms, al menos es lo que le pongo en el config.h para el ajuste de servotester.
Igual soy yo que no interpreto bien el escalado que hace el programa.

Bueno pues eso, aquí estamos para lo que necesites.

Un saludo.
Simba esta en línea ahora   Responder Citando
Antiguo 10/09/2015, 09:34   #1134
rortega
* * * * * *
 
Avatar de rortega
 
Ingreso 20/abr/2012
3.813 Mensajes
Cita:
Iniciado por Simba Ver mensaje
Hola buenos días, ya veo que estas en el lio, estupendo.
Una cosa, me extraña que para posición de 45º de Tilt le metas 1800ms, cuando en mi caso estoy en un rango de +- de 1000ms a 2000ms, con una posición de 90º de 1500ms, al menos es lo que le pongo en el config.h para el ajuste de servotester.
Igual soy yo que no interpreto bien el escalado que hace el programa.

Bueno pues eso, aquí estamos para lo que necesites.

Un saludo.
Dije "por ejemplo"

En mi caso el rango lo tengo de 1200 para 0 grados y 1500 para 90 grados, debido a la modificación que le hice para tener 360 grados ( le hice el mismo brico a ambos siervos con resistencias de 2k, pues ni tenía otras, y este servo tenía un pot con el centro a 2.5k).

Pues eso, que el 1800 es sólo un ejemplo, un valor que he puesto al voleo para explicarlo.
__________________
WiiFPV Team: VIMEO - YouTube
rortega esta en línea ahora   Responder Citando
Antiguo 10/09/2015, 13:48   #1135
Simba
* * * * * *
 
Avatar de Simba
 
Ingreso 04/jul/2008
4.652 Mensajes
Vale ya entiendo, a la marcha ya comentamos.
Simba esta en línea ahora   Responder Citando
Antiguo 10/09/2015, 14:17   #1136
marcoasj
* * * *
 
Avatar de marcoasj
 
Ingreso 02/mar/2015
De Cáceres
532 Mensajes
Cita:
Iniciado por rortega Ver mensaje
Le estoy dando vueltas (y nunca mejor dicho) al tema del servo. Tengo implementadas las funciones, pero hay una cosilla que se me está escapando y no termina de funcionar.

Lo que estoy utilizando es una librería de funciones llamada Easing, ya implementadas para arduino, que son sólo las ecuaciones matématicas a las que se les pasan unos parámetros de entrada.

Si nos queremos mover, por ejmplo, desde la posición 0 (pulso de 1500milisegundos) a la posición 45º (pulso de 1800milisegundos), en lugar de hacerlo de golpe pasando el pulso de 1800milisegundos directamente al servo, lo que hago es pasarle a la función de easing la posición inicial, la posición final, y el número de pasos en los que quiero que lo haga.

Supongamos que le digo que quiero hacerlo en 10 pasos. En cada paso me devuelve un valor entre 1500 y 1800, que según la función de easing que implemente, cada vez se incrementa con respecto al paso anterior cierta cantidad, que no es fija. Para "outQuartic" (nombre de la función) el incremento es más grande en los primeros pasos, intentando llegar al pulso final (1800ms) muy rápido, pero conforme se va llegando a los pasos finales, el incremento va decreciendo considerablemente, pero experimentando un efecto de amortiguación (sin rebote).

Cada paso, hay que esperar 15ms para que el servo haya realizado el pequeño movimiento de alcanzar ese tramo. Así que si lo hacemos en 10 pasos, tardaríamos 150ms en llegar a los 1800ms. Y si lo hacemos en 20 pasos, tartaríamos 300ms.

En el código del config.h pondré un parámetro para ajustar el número de pasos en los que queremos realizar el movimiento completo.

De momento estoy en la fase de depuración, porque en algún punto del código he metido alguna operación que hace que los valores que devuelve la función en cada paso sean distintos de entre 1500 y 1800, salíendose del rango. Pero imagino que esta tarde/noche, tras una buena siesta, podría dejarlo terminado para poder hacer pruebas.
No se si digo una tontería, pero igual se podría implementar algo con una variable del tipo..?cuantos kilos se pretende mover?

2kg....X pasos
3 Kg....X+Y pasos
Z Kg....lo que sea..

asi tipo explicacion en codigo arduino podría cada uno ajustar el rebote y el tiempo de respuesta en función de lo que vaya a mover....

Salu2
__________________
Permiso para aporrizar en...cualquier sitio...
marcoasj esta en línea ahora   Responder Citando
Antiguo 10/09/2015, 16:05   #1137
Simba
* * * * * *
 
Avatar de Simba
 
Ingreso 04/jul/2008
4.652 Mensajes
Cita:
Iniciado por marcoasj Ver mensaje
No se si digo una tontería, pero igual se podría implementar algo con una variable del tipo..?cuantos kilos se pretende mover?

2kg....X pasos
3 Kg....X+Y pasos
Z Kg....lo que sea..

asi tipo explicacion en codigo arduino podría cada uno ajustar el rebote y el tiempo de respuesta en función de lo que vaya a mover....

Salu2
Hola, no creo que sea tan sencillo, en teoría de control hay infinitas causas y efectos, pero cada lazo de control tiene sus particularidades, aun siendo iguales o gemelos ,trabajando en el mismo sistema y con los mismos paramatros, se comportan parecido, pero lo de uno puede no servir para el otro, y viceversa.
Esto que esta implementando rortega, es al margen de los parámetros de control típicos de PID, en realidad el sistema de servo tilt, no tiene ningún sistema PID, y de lo que se trata es que la respuesta pura y dura (nunca mejor dicho), se dulcifique en lo posible, para evitar las sacudidas inducidas por arranques y paros bruscos.
Simba esta en línea ahora   Responder Citando
Antiguo 10/09/2015, 16:16   #1138
rortega
* * * * * *
 
Avatar de rortega
 
Ingreso 20/abr/2012
3.813 Mensajes
Ya se pueden empezar a hacer pruebas. He creado una nueva "rama" en el repositorio, llamada "servo-easing", que contiene una copia de la versión "master", a la que le he añadido las funciones para suavizar el movimiento.

Tenemos pues dos versiones:
Quien se decida a probar la servo-easing y quiera volver a la anterior, pues se la vuelve a descargar y listo.

Os cuento como hay que configurar la nueva versión servo-easing. Pero antes os advierto de que yo no la he probado en el tracker aún, ni tan siquiera con un servo de forma independiente. Las últimas pruebas me daban fallo porque no calculaba bien los ángulos, y aunque está solucionado, no he llegado aún a casa para probarlo de verdad. Está depurada sobre la propia placa multiwii y viendo los resultados por consola serie. Yo creo que funcionará, pero si lo hacéis no os pongáis con el tracker con la antena montada para que no os la rompa en caso de que se vuelva "loco" el servo.

Bueno, al lío:

En el config.h he añadido 3 parámetros nuevos:
  • #define TILT_EASING
  • #define TILT_EASING_STEPS 20
  • #define TILT_EASING_MIN_ANGLE 4
#define TILT_EASING

Simplemente lo descomentamos para que se aplique la función de suavizado. Concretamente se está usando la funcion "outQuartic".

#define TILT_EASING_STEPS 20

Es el número de pasos que se dan para llegar desde un angulo A hasta un ángulo B.

Si el servo de tilt tiene una inclinación de 10º, y tiene que apuntar a continuación a los 50º, lo hará en 20 pasos. Pero no lo realizará de 2 en 2 grados, sino que en los primeros pasos tomará velocidad para ir reduciéndola conforme llegue al ángulo final.

La siguiente gráfica describe de forma lineal la acelaración que se produce al inicio y la desaceleración al final para amortiguar la parada.



En un principio, para cada uno de esos pasos se emplean 15 milisegundos, que es lo que se supone que debería tardar un servo "normal" en realizar el movimiento de cada tramo. Por tanto, con 20 pasos empleará 300 milisegundos (casi medio segundo) en completar el movimiento. Si reducimos los pasos, reducimos el tiempo total, pero amotriguamos menos. Y si aumentamos los pasos, amortigua más, pero tardará más en alcanzar el ángulo final.

#define TILT_EASING_MIN_ANGLE

Este valor se usa para restringir la aplicación de efecto easing si la diferencia en grados, desde A hasta B es menor que ese valor, en tal caso no se aplicaría el efecto easing y se movería de golpe. Como defecto he puesto 4 grados, pero podéis cambiar el valor al gusto.

Lo he incluído porque no tiene mucho sentido realizar movimientos cortos en 20 pasos. No obstante, aunque lo pongamos a 0, en los dos o tres primeros pasos llegaría casi al punto de destino, porque el redondeo de los valores a números enteros producen un valor de pulso idéntico cuando se está cerca del final.

#define SERVOTEST

Si descomentáis la línea podéis enviar órdenes para el servo tilt. Pero solo enviad órdenes en ángulos, esto es, SÓLO CON LA LETRA "t". Para milisegundos no está implementado.

En modo SERVOTEST veréis en la consola los pasos con los correspondientes valores en ángulos y su traducción a milisegundos. De esta forma si hay algo que no funcione bien, lo váis a notar en seguida, antes de ponerlo en producción.

Repito, yo no he probado la versión definitiva aún, y no estoy seguro de si esta tarde voy a poder dedicarle tiempo. De cualquier forma, es un comienzo que espero que os animéis a probarlo, y si lo hacéis tengáis claro como es le funcionamiento. Si va más o menos bien, el tema de los pasos y del ángulo mínimo lo podemos seguir modelando más adelante si para afinarlo un poquito más.

Ojalá funcione...



Imágenes adjuntas
Descripción:  
__________________
WiiFPV Team: VIMEO - YouTube
rortega esta en línea ahora   Responder Citando
Antiguo 10/09/2015, 16:28   #1139
rortega
* * * * * *
 
Avatar de rortega
 
Ingreso 20/abr/2012
3.813 Mensajes
Cita:
Iniciado por Simba Ver mensaje
Hola, no creo que sea tan sencillo, en teoría de control hay infinitas causas y efectos, pero cada lazo de control tiene sus particularidades, aun siendo iguales o gemelos ,trabajando en el mismo sistema y con los mismos paramatros, se comportan parecido, pero lo de uno puede no servir para el otro, y viceversa.
Esto que esta implementando rortega, es al margen de los parámetros de control típicos de PID, en realidad el sistema de servo tilt, no tiene ningún sistema PID, y de lo que se trata es que la respuesta pura y dura (nunca mejor dicho), se dulcifique en lo posible, para evitar las sacudidas inducidas por arranques y paros bruscos.
Mejor explicado imposible. Por cierto, no he "dulcificado" en el arranque, pero es tan fácil como cambiar una ecuació por otra.

Simb, como sé que a tí te gusta "afinar", echa un ojo al siguiente link y prueba para ver cual crees que se podría ajustar mejor: http://www.gizma.com/easing/#quart2
__________________
WiiFPV Team: VIMEO - YouTube
rortega esta en línea ahora   Responder Citando
Antiguo 10/09/2015, 16:29   #1140
Guillesan
* * * * * *
 
Avatar de Guillesan
 
Ingreso 31/oct/2008
De Barcelona
1.966 Mensajes
Joder Ortega, no habras dormido mucha siesto no.
Venga bajando, probando y comentando.
Un saludo monstruo.
Guillesan esta en línea ahora   Responder Citando


Herramientas Buscar en Tema
Buscar en Tema:

Búsq. Avanzada

Ir al foro

Temas similares
Tema Autor Foro Resp. Último mensaje
Ayuda! antena tracker darylkorn R/C Antenas, Emisores, Receptores y Comunicaciones 0 14/04/2015 10:25
Opiniones antena tracker mdf o rv antoniobernal R/C Antenas, Emisores, Receptores y Comunicaciones 7 14/07/2014 10:34
Busco antena tracker duckcrazy MERCADO de COMPRA / VENTA 0 15/06/2012 08:45
Opiniones Recomendarme un Antena Tracker jonpeter R/C Antenas, Emisores, Receptores y Comunicaciones 3 06/05/2012 20:30


Tu hora GMT +1. Ahora son las 20:50.


2015