Cual método podría ser adecuado
Publicado por Hellmut1956 (4 intervenciones) el 16/12/2018 14:31:36
Hola amigos.
Estoy metiéndome en la materia de inteligencia artificial debil. Para esta hay muchos métodos como ustedes saben. Yo estoy tratando de escoger cual método sería el mas adecuado para la funcionalidad que requiero si esta reemplazaría el código normal, no IA, el control de escotas de mi modelo de un velero, Aquí la foto de como será este velero con el largo del casco de 165 cm.

Aquí el diagrama en forma de bloques del systema de control de escotas:

Una placa de control, la llamo "central" me da el valor actual y verdadero de hasta que ángulo el palo de la vela puede abrirse.

Este gráfico muestra como adquiero el valor válido sobre la posición actual del palo de la vela. El palo hace girar el eje en cuyo extremo inferior está un magneto que el sensor monitorea.

Este sensor de la empresa AMS me da la posición relativa con 12 bits de precisión y de la misma posición absoluta el valor con una resolución de 14 bits.
Como winche que da escota o la recoge uso un motor de paso que hace girar el tambor de la escota. Son 21 vueltas completas que cubren el cambio posible de 8.3 metros del largo de la escota. También uso el mismo tipo de sensor angular magnético para monitorear la posición actual del motor de paso. este dato es monitoreado y cada vez que la vela pasa de un lado al otro del casco miro si el valor de la periferia "quadrature encoder" del controlador LPC1769 es igual al valor que el sensor angular del palo de la vela. Asi logro que tambien este valor sea válido.

Hasta aquí describo el entorno.
El palo de la vela puede abrirse hasta +/-90° por lo cual el número de posibles valores del sensor es 1/4 de los 14 bits, repectivamente de los 12 bits.
Ahora la funcionalidad que requiero. dependiendo del valor del ángulo máximo permitido, el largo de la escota nunca debe permitir que el palo tome un valor angular mayor, a este:

El gráfico muestra como digitalizando la PWM del receptor R/C que indica en que posición se encuentra en ese momento el stick de control de la emisora R/C y que por lo tanto indica los comandos del usuario. Esto implica un cierto valor angular del sensor magnético, tambien un valor correcto y por lo tanto válido.

El módulo de inteligencia artificial debería reemplazar la funcionalidad que implico en este gráfico:

Tengo que agregar que para que esto funcione tengo que lograr que el winche, mi motor de paso, solo de largo de escota estrictamente necesario para corresponder a la posición actual angular del palo de la vela. esto es necesario para evitar que la escota se atasque debido a algún elemento de la cubierta. Pero el sistema tiene que:
1. Mantener el largo de la escota correspondiente al ángulo actual del palo de la vela.
2. Si el ángulo del palo de la vela es menor al máximo permitido por el usuario, permitir alargar el largo de la escota para no impedir que la vela se continue abriendo.
3. Si el ángulo del palo de la vela es igual al ángulo máximo permitido por el usuario no dar mas largo de escota, La vela tiene que ser mantenida en su posición.
4. Si el palo de la vela oscila por cambios de viento hacia un valor menor al ángulo permitido iur adaptando el largo de la escota para evitar escota suelta.
5. Si por x razón el ángulo de la vela es mayor al valor máximo permitido acortar el largo de la escota hasta que el ángulo del palo de la vela sea igual al máximo permitido.
Como en este sistema los sensores magnéticos crean datos válidos en gran cantidad es relativamente sencillo crear entornos experimentales para crear gran cantidad de sets de datos requeridos para el aprendisage del módulo de inteligencia artificial.
En una primera evalución digo que me es posible crear gran cantidad de ejemplos para la categoría de ML supervisada. Lo que no logro especificar es definir en términos requeridos para escoger un método adecuado para la IA debil. Creo que la funcionalidad es corregir la posición angular del motor de paso hasta lograr cumplir los criterios definidos en este gráfico:

Digamos que en el momento t= 0 el sistema se encuentre calibrado al punto que denomino "X" en el gráfico. Es una posición monitoreada por el sensor angular del palo de la vela y es la posición correcta del motor de paso, mas de 1 millón de posibles posiciones en su repertorio de 21 vueltas completas.
En lo que muestra este gráfico es que aprovecho que el valor angular del palo de la vela esta presente como valor relativo, 12 bits y valor absoluto 14 bits. Eso me da 2 posiciones absolutas hacia "+" y 2 posiciones hacia "-"". El motor de paso esta en la posición correspondiente a la posición que denomino aquí como "X".
Con el módulo de IA debil que pienso desarrollar este debería ir adaptando la posición del motor de paso, no por la metodología de usar umbrales, sinó que interpretando el concierto de valores válidos disponibles y cumpliendo los requerimientos que especifico aquí bajo los puntos "1" a "5".
Creo que esta funcion de la IA debil como reeplazo de una solución algorítmica es una posibilidad! Mi idea es que al entrenar el módulo de IA debil esta será capaz de reconocer estructuras resultantes en la base de datos.
Si el módulo de IA debil no fuera supervisada, significa que no necesaria diferenciar entre datos válidos. Tal IA, así especulo, vería en su analisys de los sets de datos adecuadamente usados con los valores válidos suministrados al set de datos por los sensores angulares.
Pero es esto una aplicación donde los métodos del ML son los mas adecuados o lo son aquellos del "Deep Learning", usando redes neuronales. Tengo pensado usar una placa RaspBerry PI 3B+ para ejecutar el módulo de IA y para el entrenamiento. Esta placa tiene GPU´s y para ella existen implementaciones de TensorFlow.
Estoy metiéndome en la materia de inteligencia artificial debil. Para esta hay muchos métodos como ustedes saben. Yo estoy tratando de escoger cual método sería el mas adecuado para la funcionalidad que requiero si esta reemplazaría el código normal, no IA, el control de escotas de mi modelo de un velero, Aquí la foto de como será este velero con el largo del casco de 165 cm.

Aquí el diagrama en forma de bloques del systema de control de escotas:

Una placa de control, la llamo "central" me da el valor actual y verdadero de hasta que ángulo el palo de la vela puede abrirse.

Este gráfico muestra como adquiero el valor válido sobre la posición actual del palo de la vela. El palo hace girar el eje en cuyo extremo inferior está un magneto que el sensor monitorea.

Este sensor de la empresa AMS me da la posición relativa con 12 bits de precisión y de la misma posición absoluta el valor con una resolución de 14 bits.
Como winche que da escota o la recoge uso un motor de paso que hace girar el tambor de la escota. Son 21 vueltas completas que cubren el cambio posible de 8.3 metros del largo de la escota. También uso el mismo tipo de sensor angular magnético para monitorear la posición actual del motor de paso. este dato es monitoreado y cada vez que la vela pasa de un lado al otro del casco miro si el valor de la periferia "quadrature encoder" del controlador LPC1769 es igual al valor que el sensor angular del palo de la vela. Asi logro que tambien este valor sea válido.

Hasta aquí describo el entorno.
El palo de la vela puede abrirse hasta +/-90° por lo cual el número de posibles valores del sensor es 1/4 de los 14 bits, repectivamente de los 12 bits.
Ahora la funcionalidad que requiero. dependiendo del valor del ángulo máximo permitido, el largo de la escota nunca debe permitir que el palo tome un valor angular mayor, a este:

El gráfico muestra como digitalizando la PWM del receptor R/C que indica en que posición se encuentra en ese momento el stick de control de la emisora R/C y que por lo tanto indica los comandos del usuario. Esto implica un cierto valor angular del sensor magnético, tambien un valor correcto y por lo tanto válido.

El módulo de inteligencia artificial debería reemplazar la funcionalidad que implico en este gráfico:

Tengo que agregar que para que esto funcione tengo que lograr que el winche, mi motor de paso, solo de largo de escota estrictamente necesario para corresponder a la posición actual angular del palo de la vela. esto es necesario para evitar que la escota se atasque debido a algún elemento de la cubierta. Pero el sistema tiene que:
1. Mantener el largo de la escota correspondiente al ángulo actual del palo de la vela.
2. Si el ángulo del palo de la vela es menor al máximo permitido por el usuario, permitir alargar el largo de la escota para no impedir que la vela se continue abriendo.
3. Si el ángulo del palo de la vela es igual al ángulo máximo permitido por el usuario no dar mas largo de escota, La vela tiene que ser mantenida en su posición.
4. Si el palo de la vela oscila por cambios de viento hacia un valor menor al ángulo permitido iur adaptando el largo de la escota para evitar escota suelta.
5. Si por x razón el ángulo de la vela es mayor al valor máximo permitido acortar el largo de la escota hasta que el ángulo del palo de la vela sea igual al máximo permitido.
Como en este sistema los sensores magnéticos crean datos válidos en gran cantidad es relativamente sencillo crear entornos experimentales para crear gran cantidad de sets de datos requeridos para el aprendisage del módulo de inteligencia artificial.
En una primera evalución digo que me es posible crear gran cantidad de ejemplos para la categoría de ML supervisada. Lo que no logro especificar es definir en términos requeridos para escoger un método adecuado para la IA debil. Creo que la funcionalidad es corregir la posición angular del motor de paso hasta lograr cumplir los criterios definidos en este gráfico:

Digamos que en el momento t= 0 el sistema se encuentre calibrado al punto que denomino "X" en el gráfico. Es una posición monitoreada por el sensor angular del palo de la vela y es la posición correcta del motor de paso, mas de 1 millón de posibles posiciones en su repertorio de 21 vueltas completas.
En lo que muestra este gráfico es que aprovecho que el valor angular del palo de la vela esta presente como valor relativo, 12 bits y valor absoluto 14 bits. Eso me da 2 posiciones absolutas hacia "+" y 2 posiciones hacia "-"". El motor de paso esta en la posición correspondiente a la posición que denomino aquí como "X".
Con el módulo de IA debil que pienso desarrollar este debería ir adaptando la posición del motor de paso, no por la metodología de usar umbrales, sinó que interpretando el concierto de valores válidos disponibles y cumpliendo los requerimientos que especifico aquí bajo los puntos "1" a "5".
Creo que esta funcion de la IA debil como reeplazo de una solución algorítmica es una posibilidad! Mi idea es que al entrenar el módulo de IA debil esta será capaz de reconocer estructuras resultantes en la base de datos.
Si el módulo de IA debil no fuera supervisada, significa que no necesaria diferenciar entre datos válidos. Tal IA, así especulo, vería en su analisys de los sets de datos adecuadamente usados con los valores válidos suministrados al set de datos por los sensores angulares.
Pero es esto una aplicación donde los métodos del ML son los mas adecuados o lo son aquellos del "Deep Learning", usando redes neuronales. Tengo pensado usar una placa RaspBerry PI 3B+ para ejecutar el módulo de IA y para el entrenamiento. Esta placa tiene GPU´s y para ella existen implementaciones de TensorFlow.
Valora esta pregunta


0