MyPetBot (un bot que te sigue): 10 pasos (con imágenes)
MyPetBot (un bot que te sigue): 10 pasos (con imágenes)
Anonim
Image
Image
MyPetBot (un bot que te sigue)
MyPetBot (un bot que te sigue)
MyPetBot (un bot que te sigue)
MyPetBot (un bot que te sigue)

Ai es una de las aplicaciones más hermosas de las matemáticas. Es básicamente un montón de operaciones de matrices optimizadas para coincidir con el resultado que está buscando. Afortunadamente, existen toneladas de herramientas de código abierto que nos permiten hacer uso de ellas.

Originalmente tuve la idea hace mucho tiempo cuando estaba trabajando en una cascada desactivada por la gente que pasaba. Estaba usando sensores de ultrasonido y descubrí demasiado tarde que no funcionan mucho cuando están mojados… Esa no fue una experiencia divertida. Terminamos usando un botón grande que la gente presionaría si querían pasar. Resultó bien porque hacía calor y a la gente le encantaba mojarse, pero el problema se quedó en mi cabeza… Cómo detectar a la gente y activar una reacción.

¡Estoy contando esta historia porque quiero señalar que este principio se puede usar para muchas otras aplicaciones! Seguir tu cara con un juguete es solo uno de ellos. Para las instalaciones interactivas, puede hacer cualquier tipo de cosa. Podría utilizar un modelo para detectar si una cara está sonriendo. Podrías contar el número de perros en un parque. Puede cerrar las persianas cuando pase la gente. O… crea un controlador para tu base nintendo en la posición de tu cuerpo…. Puede descargar muchos otros modelos de Ai que hacen cualquier tipo de cosas.

Hay algunos tutoriales sobre cómo hacer que la inferencia de Ai funcione con raspberry pi. Estoy aquí para enseñarle cómo hacer la integración del agujero en una unidad de trabajo autónomo. Tan pronto como su robot arranque, iniciará los programas necesarios.

Suministros

  • Robot Parallax: Elegí este robot porque lo tenía por ahí, pero cualquier robot que se pueda controlar con un arduino hará el trabajo.
  • Raspberry pi: recomiendo al menos la frambuesa pi 3B +.
  • Intel Neural Stick: la tasa de inferencia va de uno por segundo a 8. Realmente necesitas uno si quieres hacer Ai en una frambuesa pi.
  • Power Bank: la forma más fácil de administrar la energía. Funciona con la raspberry pi 3B +, es posible que desee comprobar que funciona con una pi 4.
  • Picamera: me gusta usar la picamera en lugar de un usb.

Paso 1: Montaje del Rover

Montaje Rover
Montaje Rover
Ensamblaje Rover
Ensamblaje Rover
Ensamblaje Rover
Ensamblaje Rover

El objetivo del tutorial es principalmente sobre el software, por lo que no quiero entrar demasiado en los detalles del rover. Funciona con este robot, pero podría funcionar realmente con cualquier otro hardware. Ni siquiera tiene que ser para un rover, podrías usar esto para una cámara con sensor de movimiento.

  1. Búscate un vehículo controlado por Arduino.
  2. Envuelve bien un banco de energía.
  3. Envuelve bien un pi de frambuesa.
  4. Pegue la picamera con un ligero ángulo hacia la parte superior.
  5. Conecta todo junto.
  6. ¡Voila!

Paso 2: Raspbian

Raspbian
Raspbian
Raspbian
Raspbian

Estoy usando una frambuesa pi, pero no hay razón para no usar otro linux… depende de usted. Podría lanzar una imagen plug and play para grabar una tarjeta sd, la usaré si hay suficientes personas interesadas.

Instale Raspbian: Puede instalar Raspbian Buster Lite. No vamos a utilizar el escritorio… Solo la conexión ssh Secure Shell.

Conéctese a su Pi: primero puede conectarse a su raspberry pi con una conexión Ethernet

Configura tu wifi: ahora puedes configurar tu conexión inalámbrica

Paso 3: OpenVino

OpenVino
OpenVino

OpenVino es una gran biblioteca compatible con Intel. Han hecho un gran trabajo compilando modelos de ejemplo y han hecho que la mayoría de los frameworks de IA sean compatibles. Necesita esta biblioteca para Intel Neural Stick.

Instalación de Python3: debe instalar Python 3.

Instalación de OpenVino: Una vez hecho esto, verá una línea "[setupvars.sh] Entorno OpenVINO inicializado" cada vez que se conecte a la raspberry pi.

OpenVino es una extensión de opencv. Para probarlo, puede iniciar python3 e importar cv2.

escriba en el caparazón:

python3

escriba en python:

  • importar cv2
  • cv2._ versión_

La última línea debería devolver '4.1.2-openvino' o cualquier versión de openvino. si dice opencv su instalación no funcionó …

Paso 4: descarga el código

Descarga el código
Descarga el código

Primero, instalamos git. Escriba en el caparazón:

sudo apt-get install git

Luego podemos movernos a la carpeta Documentos y descargar el código:

  • cd ~ / Documentos /
  • clon de git

Paso 5: Sígueme (Python)

Sígueme (Python)
Sígueme (Python)

Esta es la parte con la que quieres jugar. ¡Haz si te sigo! ¡Haz que te asuste! ¡Sigue a tu perro! ¡Haz que reconozca las expresiones faciales! ¡¡¡Harase a su gato !!! Todo lo que quieras.

Encontrará cuatro carpetas principales: Arduino, Deployment, Player y FollowMe:

Arduino: más sobre eso en la siguiente sección

Implementación: aquí es donde coloco la interfaz de usuario. En este momento, codifiqué un simple botón de inicio / parada y un pequeño visor de cámara con control simplemente divertido.

Reproductor: destinado a ser utilizado en su PC de escritorio. ¡Para revisar la salida del bot!

Sígueme: el módulo que se encarga de la diversión

Pondré más detalles en github, para tener solo un lugar para actualizar. Este es el lugar para el código

Paso 6: descargue los modelos

Los modelos de inferencia no están incluidos en el código porque son bastante grandes. Pero puede encontrar muchos ejemplos usando OpenVino model Zoo

Puede usar el descargador de modelos o lanzar directamente este enlace. En mi caso, no pude usar el descargador de modelos de mi instalación de raspberry pi …

Luego copie el modelo en una carpeta llamada Modelos con:

  • cd ~ / Documentos / Sígueme
  • Modelos mkdir
  • modelos de cd
  • wget
  • wget

Siempre necesitas el.xml y el.bin.

Puedes descargar cualquier modelo que quieras… Pero tendrás que cambiar el código. ¡Divertirse!

Paso 7: Arduino

Arduino
Arduino

Tenemos que descargar el código del paso anterior. ¡El código para arduino está en él!

El código está destinado a impulsar dos servos continuos, si elige una configuración diferente, debe modificar el código.

Básicamente hace dos cosas. Se comunica con la computadora y activa los servos a la velocidad seleccionada.

Podría usar la salida del raspberry pi directamente para controlar los motores… pero los arduinos funcionan mejor (tienen un generador de frecuencia real). Además, quería descargar el raspberry pi tanto como fuera posible para hacer la inferencia más rápida.

Paso 8: GUI

GUI
GUI
GUI
GUI

Nada lujoso… todavía. Podría agregar algunas otras cosas como vista en vivo o controles de movimiento. Pero mientras tanto, un simple inicio y parada será suficiente.

Si desea probarlo, debe iniciarlo desde el directorio FollowMe Level y luego llamarlo desde python3:

  • cd ~ / Documentos / Sígueme
  • Implementación de python3 / FollowMe.py

Luego, puede acceder a la interfaz en su navegador escribiendo:

192.168.0.113:8000

con la dirección IP correcta, por supuesto.

También hay un visor de video con controles … pero no con inferencia de trabajo

Implementación de python3 / StreamVideo.py

Paso 9: ¡Servicio

Esto es lo que hace que el Rover funcione por sí solo. Un servicio es un programa que se ejecuta en segundo plano en la computadora sin un usuario. Asegúrese de que TODOS SUS CAMINOS sean absolutos y que tenga los derechos correctos si usa cualquier archivo y el servicio funcionará bien.

Para ejecutar una secuencia de comandos de Python como servicio, debe hacer referencia a la secuencia de comandos en un archivo de servicio. El archivo de servicio está en el código descargado de git en la carpeta Implementación. El nombre es FollowMe.service.

Para copiarlo, escriba lo siguiente en el shell:

sudo cp ~ / Documentos / Sígueme / Implementación / Sígueme.servicio / etc / systemd / system /

La primera vez que copia el archivo necesita actualizar systemctl … o reiniciar:

sudo systemctl daemon-reload

Y para empezar:

sudo systemctl start FollowMe

También puede utilizar los comandos detener, habilitar y deshabilitar. Los dos últimos son para un cambio de estado persistente.

Pequeña explicación….

Openvino necesita algunas rutas adicionales en las variables del sistema para que funcione. Desafortunadamente, la instalación normal no funcionará como servicio. Entonces necesitas este archivo para configurar las variables.

Tenga en cuenta que mi instalación es para python 3.7, por lo tanto, hay una variable que puede necesitar ajustar … ¡Buena suerte!

Este archivo hace referencia a la secuencia de comandos de Python en la ruta absoluta:

/home/pi/Documents/FollowMe/Deployment/FollowMe.py

Paso 10: ¡Eso es todo! Divertirse

Comentarios siempre bienvenido

Recomendado: