Tabla de contenido:
Video: Roomba con MATLAB: 4 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:44
Este proyecto utiliza MATLAB y un robot programable iRobot Create2. Al poner a prueba nuestro conocimiento de MATLAB, podemos programar Create2 para interpretar imágenes y detectar señales. La funcionalidad del robot depende principalmente de la aplicación móvil MATLAB y de un módulo de cámara Raspberry Pi.
Paso 1: Piezas y materiales
1. iRobot Create, versión 2
- Este es un robot programable que parece un Roomba. Tenga en cuenta que este producto de iRobot no es una aspiradora. Está destinado a la programación personalizada por parte del usuario.
2. MATLAB 2017a
- La mayoría de las versiones anteriores serán compatibles con el código que usamos a continuación. MATLAB identificará un comando que no es compatible con la versión que tiene y le sugerirá el comando que mejor se adapte.
3. Raspberry Pi 3 Modelo B, versión 1.2
- Verifique qué Raspberry Pi es compatible con su iRobot. Consulte este enlace para obtener más ayuda: https://www.irobotweb.com/~/media/MainSite/PDFs/A… Este instructivo asume que está trabajando con una Raspberry Pi preprogramada. Tenga en cuenta que deberá trabajar con un Pi preprogramado para que funcionen los siguientes pasos. El uso de una Pi preprogramada le permitirá realizar toda su codificación solo en MATLAB.
4. Módulo de cámara V2 (para Raspberry Pi)
- Te sorprenderías; a pesar de su tamaño, el módulo de cámara Raspberry Pi es de muy buena calidad. Es la opción más económica y compatible para este proyecto.
Opcional: soporte impreso en 3D. Esto se usa para estabilizar la cámara. No afecta la funcionalidad del robot, pero le ayudará a codificar si desea utilizar datos de imágenes para el reconocimiento de colores y / o objetos.
Paso 2: configuración
1. Conexión de la Raspberry Pi y el módulo de la cámara (hardware)
- Para alimentar la Raspberry Pi, deberá ejecutar un micro USB de extremo macho al puerto de alimentación hembra del microcontrolador. Opcional: se puede usar un regulador de voltaje para asegurar que el voltaje no exceda los 5V. Después de encender la Raspberry Pi, puede conectarla a su robot ejecutando el extremo macho USB a desde la placa base al puerto USB A del microcontrolador.
- Después de conectar el Pi al Roomba, la cámara está lista para ser instalada. El módulo de la cámara será mucho más pequeño de lo esperado. Tenga en cuenta que la lente está montada en un sensor y una cinta blanca se extiende desde la cámara. ¡NO retire ni rasgue la cinta! Este es el cable que necesitas para conectarlo a la Raspberry Pi. Primero, sostenga el extremo de la cinta y busque los conectores plateados y el cable azul. Estos están en lados opuestos. A continuación, busque la ranura entre los puertos Ethernet y HDMI en su Raspberry Pi. Observe que hay un pequeño candado blanco que lo cubre. Levante lentamente la cerradura, pero no la saque de la ranura, ya que se romperá y se dañará permanentemente. Una vez que haya levantado el candado, tome la cinta y mire los conectores plateados hacia el puerto HDMI. El lado azul se enfrentará al puerto Ethernet. Deslice lentamente la cinta en la ranura mientras aún está desbloqueada. No tiene que forzarlo en la ranura. Después de la inserción, vuelva a empujar el bloqueo hacia abajo. Si su cámara está asegurada correctamente, debería poder tirar (suavemente) de la cinta y sentir la tensión. La cinta no debe estar suelta. Después de conectar su cámara a la Pi, puede notar lo suelta que está. Es por eso que usamos un soporte impreso en 3D para estabilizarlo. Es su elección determinar qué materiales le gustaría utilizar para mantener la cámara quieta y obtener imágenes de alta calidad.
2. Instalación de archivos adecuados y conexión de Roomba a su computadora Una vez que todo su hardware esté configurado, ahora puede continuar con la instalación de MATLAB junto con los archivos m asociados que le permiten comunicarse con el robot. Para hacer esto, abra MATLAB y cree una nueva carpeta para mantener juntos todos los archivos relacionados. Utilice este script para instalar / actualizar los archivos necesarios:
- Todos los archivos deberían aparecer ahora en su carpeta creada. Haga clic con el botón derecho en la ventana Carpeta actual y seleccione "Agregar a la ruta" para agregar esa ruta a la lista de directorios donde MATLAB busca archivos. Asegúrese de que todos sus archivos estén en la ruta correcta.
3. Una vez instalados los archivos, puede comenzar a conectarse a su robot. Comience por encender su robot y luego reiniciarlo directamente después del inicio (no olvide reiniciar su robot cada vez antes y después de su uso). En segundo lugar, conecte su robot y su computadora portátil a la misma red wifi. Después de esto, hablaremos con la Raspberry Pi preprogramada a través de MATLAB llamando al Roomba usando su nombre de pila y la función roomba. Por ejemplo, me conectaría al robot 28 usando la siguiente línea: R = roomba (28).
- Observe cómo asigné el objeto a una variable R. Ahora puedo acceder a las funciones asociadas de Roomba desde el archivo de instalación tratando la variable R como una estructura.
- R.turnAngle (90) Si todo ha ido bien, debería sonar un tono musical, confirmando la conexión.
Paso 3: MATLAB Logic
El documento PDF al final de este paso es un diagrama de flujo lógico detallado para nuestro proceso de codificación en MATLAB. Activamos los sensores de acantilado, luz y golpes de luz para permitir que el robot se comunique con nosotros cuando detecta un objeto en sus inmediaciones. Por ejemplo, cuando el robot avanza, sus sensores de luz buscan objetos en su camino de acuerdo con el vector en el que viaja. Elegimos un umbral de distancia para el robot de modo que cuando se acerque a un objeto, retroceda en lugar de chocar con él. Nuestro robot también está configurado con Twitter, que especificamos en nuestro proceso de codificación (esto se mostrará a continuación).
Para mejorar la experiencia, hicimos uso de la aplicación MATLAB en nuestros dispositivos móviles para que podamos controlar los movimientos del robot con solo inclinar nuestros teléfonos. Esta es una actividad opcional, ya que ciertamente puede hacer que el robot se mueva usando el comando moveDistance en el segmento de código de MATLAB. Tenga en cuenta que se prefiere el uso de comandos de MATLAB para controlar su robot si su objetivo es ser preciso. Si desea apuntar su robot para que la cámara tome una foto en una ubicación específica, puede ser mejor codificar los movimientos del robot en MATLAB. Si bien es entretenido, el uso de la aplicación MATLAB para controlar su robot no es deseable por motivos de precisión.
El Código ordena al Roomba que realice una configuración básica y luego continúe a través de un bucle continuo. Inicialmente, la computadora portátil establecerá un enlace con Roomba usando el comando Roomba (). También configura la conexión de Twitter usando el comando webwrite () en MATLAB. El bucle contiene cinco flujos lógicos principales según el entorno que rodea al Roomba. Primero, el Roomba verifica si hay obstáculos y se ajusta hacia atrás si encuentra que está impedido. Incrustado en ese bucle está la segunda ruta que alerta a los usuarios si el Roomba está siendo transportado. Una utilidad importante en la dura zona de guerra marciana. Una vez que el Roomba ha determinado que su posición es segura, busca en el dispositivo móvil para determinar su próximo movimiento. Si el dispositivo móvil está inclinado hacia adelante, calculará una velocidad base dependiendo de la severidad de la medición de balanceo que ajustará las velocidades de las ruedas individuales para girar según el grado de inclinación. El teléfono también puede mover el Roomba en reversa. Un estado de dispositivo móvil neutral abre las dos últimas rutas. Un Roomba en reposo buscará una bandera de Alien y alertará al usuario en consecuencia.
A continuación se muestra nuestro código (completado en MATLAB 2017a)
% de entradas: datos de orientación de un dispositivo conectado wifi, cámara
% información, datos del sensor
% de salidas: el movimiento es controlado por el dispositivo conectado wifi y el movimiento
% se comprueba la seguridad mediante la lectura de los datos del sensor. Si la cámara detecta
% una bandera alienígena, luego roomba responde tuiteando la bandera enemiga
% ha sido detectado.
% propósito: nuestro dispositivo vive sin ningún propósito excepto para proteger a aquellos que
% lo creó, sirve a su creador y lo hace
% exactamente lo que se dice.
% De uso: esencialmente, el programa se ejecutará por sí solo.
borrar todo, cerrar todo, clc
% De inicialización de objetos y variables
r = roomba (28);
m = mobiledev;
% use response = webwrite (nombre de host, datos)
nombre de host = 'https://api.thingspeak.com/apps/thingtweet/1/statuses/update';
API = 'SGZCTNQXCWAHRCT5';
tweet = 'RoboCop está operativo … Esperando comando';
data = strcat ('api_key =', API, '& status =', tweet);
reponse = webwrite (nombre de host, datos);
% bucle en ejecución constante
mientras que 1 == 1
% De estructuras que contienen datos relacionados
o = m. orientación; % de orientación del dispositivo móvil
luz = r.getLightBumpers (); % Valores de parachoques ligeros
a = r.getCliffSensors (); % Valores del sensor de desnivel
golpe = r.getBumpers (); % Sensores de parachoques
% comprobar parachoques
if bump.right == 1 || bump.left == 1 || bump.front == 1
r.moveDistance (-. 2,.2);
% comprobar sensores de luz
elseif luz.izquierda> 60 || light.leftFront> 60 || light.leftCenter> 60 || luz.derecha> 60 || light.rightFront> 60 || light.rightCenter> 60
r.moveDistance (-. 2,.2);
% comprobar Sensores de desnivel
% Señal y notificación antirrobo
elseif a.izquierda <300 && a.derecha <300 && a.izquierdaFrente <300 && a.derechaFrente <300
r.stop ();
r.beep ();
tweet = '¡Se ha levantado RoboCop!'
data = strcat ('api_key =', API, '& status =', tweet);
reponse = webwrite (nombre de host, datos);
% Operación normal para evitar acantilados
elseif a.izquierda <300 || a.derecha <300 || a.izquierdaFrente <300 || a.rightFront <300
r.moveDistance (-. 2,.2);
% Roomba pasó las comprobaciones y ahora funcionará con normalidad.
% Inicialmente se mide el rollo del dispositivo y se convierte en una base
% de velocidad que luego se usa para calcular la velocidad de la rueda
%Movimiento hacia adelante
elseif o (3)> = 0 && o (3) <= 60
baseVel = (-. 5/60) * (o (3) -60);
si o (2)> = - 70 && o (2) <0
r.setDriveVelocity (baseVel + (. 3/50) * abs (o (2)), baseVel - (. 3/50) * abs (o (2)));
elseif o (2) = 0
r.setDriveVelocity (baseVel - (. 3/50) * abs (o (2)), baseVel + (. 3/50) * abs (o (2)));
si no r. parar
fin
% De movimiento hacia atrás
elseif o (3)> 100 && o (3) <150
r.setDriveVelocity (-. 2, -.2)
r.beep ();
r.beep ();
% de descanso roomba buscará la bandera alienígena marcada como fluorescente
% trozo de papel verde
demás
r.stop
img = r.getImage (); % tomar imagen
umbral = umbral de gris (img (200: 383,:, 2)) +. 1; % Calc nivel verde
si umbral>.42
tweet = '¡¡Enemigo descubierto !!'
data = strcat ('api_key =', API, '& status =', tweet);
reponse = webwrite (nombre de host, datos);
demás
r.stop
fin
fin
fin
Paso 4: Conclusión
Recuerde, puede usar el script que escribimos anteriormente, pero siempre puede modificarlo para que se ajuste a sus necesidades. ¡No tiene que ser controlado por su teléfono! (Sin embargo, lo hace más divertido). Elija qué método prefiere usar para controlar su robot. ¡Conduce con tu robot y disfruta!
Recomendado:
Roomba controlado por MATLAB: 5 pasos
Roomba controlado por MATLAB: el objetivo de este proyecto es utilizar MATLAB y un robot programable iRobot modificado. Nuestro grupo combinó nuestras habilidades de codificación para crear un script MATLAB que utiliza muchas funciones del iRobot, incluidos los sensores de desnivel, la sensibilidad del parachoques
Cómo desmontar una computadora con sencillos pasos e imágenes: 13 pasos (con imágenes)
Cómo desmontar una computadora con sencillos pasos e imágenes: esta es una instrucción sobre cómo desmontar una PC. La mayoría de los componentes básicos son modulares y se quitan fácilmente. Sin embargo, es importante que se organice al respecto. Esto ayudará a evitar que pierda piezas y también a que el reensamblaje sea más fácil
Robot Roomba controlado por navegador con Raspberry Pi Model 3 A +: 6 pasos (con imágenes)
Robot Roomba controlado por navegador con Raspberry Pi Model 3 A +: descripción general Este Instructable se centrará en cómo darle a un Roomba muerto un nuevo cerebro (Raspberry Pi), ojos (cámara web) y una forma de controlar todo desde un navegador web. Hay muchos trucos de Roomba que permiten el control a través de la interfaz en serie. Yo no tengo
Proyecto Roomba MATLAB: 5 pasos
Proyecto Roomba MATLAB: El plan actual que tiene la NASA para el rover de Marte es que sea un recolector de datos y deambule por Marte, recolectando muestras del suelo para traer de regreso a la Tierra para que los científicos puedan ver si hubo formas de vida anteriores en el planeta. Adicional
Roomblock: una plataforma para aprender la navegación ROS con Roomba, Raspberry Pi y RPLIDAR: 9 pasos (con imágenes)
Roomblock: una plataforma para aprender la navegación ROS con Roomba, Raspberry Pi y RPLIDAR: ¿Qué es esto? &Quot; Roomblock " es una plataforma de robot compuesta por un Roomba, una Raspberry Pi 2, un sensor láser (RPLIDAR) y una batería móvil. El marco de montaje puede fabricarse con impresoras 3D. El sistema de navegación ROS permite hacer un mapa de habitaciones y utilizar i