Tabla de contenido:

Robot autónomo: 7 pasos
Robot autónomo: 7 pasos

Video: Robot autónomo: 7 pasos

Video: Robot autónomo: 7 pasos
Video: Robot Autónomo con Raspberry Pi y Arduino - #NEXTPCB 2024, Mes de julio
Anonim
Robot Auto Caminante
Robot Auto Caminante

¿Qué hice?

● Un bot que puede entrenarse para caminar (avanzar) en diferentes superficies. El robot representa a una criatura simple con 4 piernas "sin rodillas" que lucha por avanzar. Sabe que puede orientar cada una de las piernas de 3 formas posibles únicamente. Ahora tiene que descubrir los mejores pasos posibles que puede tomar para seguir avanzando. Dado que su movimiento también depende de la fricción con la superficie, creemos que por cada superficie diferente que camina, habrá un conjunto de pasos diferente (no necesariamente único pero muy probablemente similar) para maximizar su esfuerzo de avanzar.

¿Para qué se usa esto?

● Se utiliza mejor para visualizar los patrones de marcha de un ROBOT AI.

Paso 1: el diagrama de flujo

El diagrama de flujo
El diagrama de flujo

Aquí un desglose de todo el proyecto. En general, el proyecto consta de 2 partes de electrónica con estructura mecánica del robot y la otra es el algoritmo que se ejecuta en la PC y el código que se ejecuta en Arduino.

Paso 2: PRINCIPALES COMPONENTES INVOLUCRADOS:

Electrónica

Arduino UNO (!)

Sensor ultrasónico

Servomotores

Módulo bluetooth

Codificación

IDE de Arduino

Teraterm

Cuaderno Jupyter

Q- algoritmo de aprendizaje

Paso 3: MÓDULO V1:

MÓDULO V1
MÓDULO V1

Aprendizaje por refuerzo: usando ANN (Red neuronal artificial) planeamos entrenar a nuestro robot y se nos ocurrieron dos métodos posibles.

Restricciones: Cada pata (servomotor) está restringida a tomar solo 3 posiciones posibles 60, 90 y 120 grados. Supuestos: Consideramos que el movimiento del bot constituirá 4 estados (un estado es una cierta orientación de los cuatro servos), es decir, habrá 4 estados diferentes del robot que consideraremos como 4 pasos respectivamente dándonos un ciclo de movimiento, en que el bot se moverá un poco más adelante. Este ciclo se repetirá hasta el infinito para mantener el bot en movimiento.

Pero el único problema fue el número de iteraciones a evaluar: tenemos 3 posibles orientaciones para cada motor y hay 4 motores diferentes, lo que lo hace 3 ^ 4 = 81 estados en los que el robot puede existir en un solo paso o estado. Tenemos que dar 4 pasos diferentes para completar un movimiento complejo, lo que significa 81 ^ 4 = 43, 046, 721 combinaciones posibles que se deben verificar para obtener la máxima eficiencia para un ciclo de movimiento. Suponga que se necesitan 5 segundos para entrenar un solo estado, ¡se necesitarían 6.8250 años para completar el entrenamiento!

Paso 4: MÓDULO V2:

Algoritmo de Q-learning

Un algoritmo de aprendizaje por refuerzo temprano desarrollado para entrenar cosas que tienen un estado finito y encontrar los caminos más cortos. fuente:

Matemáticas del algoritmo: hay 81 estados posibles para cada paso en el que puede estar el bot, nombramos estos estados como números del 1 al 81 y ahora lo que queremos saber es el valor de transición, es decir, el cambio en la posición del robot (distancia movida) mientras se mueve de un estado aleatorio s1 a algún otro estado s2 (s1, s2 de esos 81 estados). Podemos verlo como una matriz que tiene 81 filas y 81 columnas donde un elemento de la matriz será igual al valor de la distancia desde la que se movió correspondiente a su número de fila y columna. Estos valores pueden ser positivos o negativos dependiendo de la acción del robot en palabra real. Ahora encontraremos un ciclo cerrado de estados donde la distancia que recorre es siempre positiva. Evaluaremos valores de matriz de 81x81 que son 81 ^ 2 = 6561, ahora si nos tomamos 5 segundos para almacenar estos valores en la matriz, entonces será tomar 9.1125 horas solo para hacer una matriz completa y luego un bucle de pasos para maximizar la eficiencia de movimiento podría resolverse fácilmente.

Paso 5: PROBLEMAS INVOLUCRADOS -

  1. Para algún estado, el movimiento del robot era muy desigual y estaba afectando el valor del sensor de ultrasonidos, el robot se inclinaba y recogía la distancia de una pared distante.
  2. El problema de la desconexión de la computadora portátil y el reinicio de arduino estaba haciendo que entrenar desde el valor 0 fue muy irritante.
  3. Ver el tren del robot durante 5 horas continuas fue muy exhaustivo.

Paso 6: MÓDULO A1 y A2:

  • La parte mecánica incluye la placa del chasis con cuatro servos fijados a ella. Usamos palitos de helado para hacer patas.
  • Nuestra tarea principal: realizar un seguimiento de la distancia del bot desde su posición inicial.
  • Nuestro primer enfoque fue usar el sensor giroscópico y usar la aceleración del bot a medida que se mueve para extraer su velocidad y, posteriormente, su posición.
  • Problema: resultó ser demasiado complicado de implementar. Alternativa: restringimos el movimiento del robot a una sola dimensión y usamos un sensor ultrasónico para medir la distancia desde una pared en línea recta al frente.
  • El módulo HC05-Bluetooth se utilizó durante el período de entrenamiento para transmitir la velocidad de transición de la distancia entre dos pasos a la PC y allí los datos se almacenaron en una matriz.

Paso 7: enlace a videos:

Enlace a videos
Enlace a videos

Pasos de bebé:

Toma de entrenamiento:

Casi recto:

Vídeo del robot bailando:

Vide0 final:

Recomendado: