Tabla de contenido:
- Paso 1: Materiales
- Paso 2: Conexión
- Paso 3: Creación lógica de un código MATLAB para usar sensores
- Paso 4: Probar el código y el robot
- Paso 5: reconocimiento del error
- Paso 6: Conclusión
Video: Roomba Parking Pal: 6 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
Este proyecto utiliza un roomba programable iRobot Create, MATLAB r2018a y MATLAB mobile. Al usar estos tres medios y nuestro conocimiento de codificación, programamos el iRobot Create para interpretar colores y usar sensores integrados para completar tareas. Este proyecto depende de la comunicación Raspberry Pi y MATLAB para realizar estas tareas.
Paso 1: Materiales
1. iRobot Create Robot
2. MATLAB r2018a
3. Raspberry Pi
4. Módulo de cámara
5. Soporte estabilizador de cámara impreso en 3D
6. Smartphone con MATLAB mobile instalado
7. Laptop / computadora con MATLAB instalado
Paso 2: Conexión
Este paso consiste en conectar la Raspberry Pi al robot, en segundo lugar, conectar el robot a su computadora y conectar el teléfono inteligente a la computadora.
La parte más fácil de este proceso es conectar la Raspberry Pi a su robot, ya que la Raspberry Pi está montada en la parte superior del robot. Hay un cable del robot que todo lo que tiene que hacer es conectarlo al costado de la Raspberry Pi.
El siguiente paso es conectar el robot a su computadora para que pueda ejecutar comandos para que los ejecute el robot. Lo primero que debe hacer es conectar su computadora a la red inalámbrica que está creando su roomba. Ahora, se recomienda que use el icono Establecer ruta en MATLAB para configurar la ruta de modo que pueda usar las funciones en la caja de herramientas Roomba de MATLAB. Cada vez que comience y termine el uso del robot, debe realizar un "saludo con dos dedos" para restablecer el robot, lo que significa que debe mantener presionados los botones de acoplamiento y localización durante diez segundos hasta que la luz se atenúe para indicar que debe soltar. Tuviste éxito con este restablecimiento completo si escuchas al robot tocar una escala corta. A continuación, debe conectarse al roomba usando una línea de código como esta "r = roomba (x)" donde 'x' es el número designado para el robot que tiene.
Por último, debe descargar MATLAB mobile en cualquier dispositivo móvil que utilice para este proyecto, y esta aplicación está disponible tanto en dispositivos Android como Apple. Una vez instalada la aplicación, deberá iniciar sesión con sus credenciales. Luego debe conectar este dispositivo a su computadora, usando la pestaña etiquetada "Más" -> luego haga clic en "configuración '-> luego haga clic en" Agregar una computadora ". Esto debería mostrar la pantalla que se muestra en las imágenes de arriba. Después de ver esto, El siguiente paso que debe seguir es simplemente conectar y tragar la información que solicita. Una vez que se haya conectado correctamente, podrá llamar a las funciones que defina en su computadora en su teléfono para controlar su robot.
Paso 3: Creación lógica de un código MATLAB para usar sensores
El código será más fácil de crear cuando la mayoría esté dentro del bucle while, de modo que roomba pueda actualizar constantemente los valores válidos que está viendo. Si hay un error, MATLAB mostrará un error y dónde aparece en el código, lo que hace que la resolución de problemas sea relativamente simple.
Diseñado en r2018a MATLAB, este código hace uso de las cajas de herramientas estándar, la caja de herramientas iRobot Create, así como la caja de herramientas móvil MATLAB. El roomba utilizado en este ejemplo se designa como 26, y r = roomba (26) solo necesita ejecutarse una vez para comunicarse completamente con el roomba.
Código:
función parkassist (x) si x == 1
r = roomba (26)% se conecta a roomba
si bien es cierto
r.setDriveVelocity (.05,.05)% establece roomba a una velocidad de conducción más lenta
bump = r.getBumpers% obtiene los datos de los sensores de impacto
cliff = r.getCliffSensors% obtiene los datos de los sensores de acantilado
light = r.getLightBumpers% obtiene los datos de los sensores de golpes de luz
img = r.getImage;% lee la cámara del robot
red_mean = mean (mean (img (:,:, 1)))% lee la cantidad media de píxeles rojos
green_mean = mean (mean (img (:,:, 2)))% lee la cantidad media de píxeles verdes
blue_mean = mean (mean (img (:,:, 3)))% lee la cantidad media de píxeles azules
si bump.front == 1% lee sensores de golpes delanteros
r.stop% detiene roomba
msgbox ('Path Obscured!', 'Parking Assistant Message')% muestra un mensaje que dice que el camino está oculto break% finaliza el bucle
elseif green_mean> 150
r.stop% detiene roomba
cont = questdlg ('¿Continuar?', 'Ruta completada')% muestra un cuadro de preguntas pidiendo continuar
if cont == 'Sí'
parkassist (1)% reinicia el código
demás
fin
break% termina el ciclo
elseif red_mean> 140
r.turnAngle (45)% gira el roomba 45 grados
r.timeStart% inicia un contador de tiempo
si bien es cierto
r.setDriveVelocity (.05,.05)% establece la velocidad del roomba
time = r.timeGet% asigna el tiempo a una variable
bump = r.getBumpers% obtiene los datos de los sensores de impacto
cliff = r.getCliffSensors% obtiene los datos de los sensores de acantilado
light = r.getLightBumpers% obtiene los datos de los sensores de golpes de luz
img = r.getImage;% lee la cámara del robot
red_mean = mean (mean (img (:,:, 1)))% lee la cantidad media de píxeles rojos
green_mean = mean (mean (img (:,:, 2)))% lee la cantidad media de píxeles verdes
blue_mean = mean (mean (img (:,:, 3)))% lee la cantidad media de píxeles azules
si blue_mean> 120
r.moveDistance (-0.01)% mueve el roomba hacia atrás una distancia establecida songPlay (r, 'T400, C, D, E, F, G, A, B, C ^', 'true')% reproduce una escala musical ascendente
msgbox ('Water Found!', 'Parking Assistant Message')% muestra un mensaje que dice que se ha encontrado agua r.turnAngle (-80)% rota roomba 80 grados
break% finaliza el bucle de corriente
elseif light.rightFront> 25 || light.leftFront> 25% lee sensores de golpes de luz
r.moveDistance (-0.01)% mueve el roomba hacia atrás una distancia establecida
r.turnAngle (-35)% gira el roomba 35 grados
break% finaliza el bucle de corriente
elseif cliff.rightFront <2500 && cliff.leftFront <2500% lee ambos sensores de acantilado
r.moveDistance (-0.1)% mueve roomba hacia atrás una distancia establecida
r.turnAngle (-80)% gira roomba 80 grados
break% finaliza el bucle de corriente
elseif tiempo> = 3
r.stop% detiene roomba
contin = questdlg ('Station Free, Continue?', 'Parking Assistant Message')% pregunta si roomba debe continuar si contin == 'Sí'
r.turnAngle (-90)% gira el roomba 90 grados
parkassist (1)% reinicia la función
demás
r.stop% detiene el roomba
fin
demás
fin
fin
elseif cliff.rightFront <2500 && cliff.leftFront <2500% lee ambos sensores de acantilado
r.moveDistance (-0.1)% mueve roomba hacia atrás una distancia establecida
r.turnAngle (-90)% gira roomba 90 grados
elseif cliff.rightFront <2500% lee el sensor de acantilado derecho
r.turnAngle (-5)% gira ligeramente el roomba en la dirección opuesta al sensor de desnivel
elseif cliff.leftFront <2500% lee el sensor de acantilado izquierdo
r.turnAngle (5)% gira ligeramente el roomba en la dirección opuesta al sensor de desnivel
demás
fin
fin
fin
Paso 4: Probar el código y el robot
Después de que se desarrolló el código, el siguiente paso fue probar el código y el robot. Dado que hay muchos ajustes diferentes que se pueden hacer en el código, como el ángulo de giro del robot, la velocidad a la que se mueve y los umbrales para cada color, la mejor manera de calcular estos valores para su robot es probar ellos y cambiar a medida que avanza. Para cada día de trabajo que teníamos, estábamos cambiando constantemente estos valores, ya que algunos de ellos dependen del entorno en el que opera su robot. La mejor manera que encontramos fue colocar el roomba en la ruta que desea que siga y tener una barrera lo suficientemente alta para que la cámara no pueda detectar colores que usted no desea. El siguiente paso es dejar que se ejecute y mostrarle los colores que desee, cuando desee que complete esa tarea. A medida que avanza, si ve un problema, lo mejor que puede hacer es empujar el parachoques delantero hacia adentro, hacer que se detenga y luego cambiar el parámetro con el que tuvo problemas.
Paso 5: reconocimiento del error
Con cada proyecto terminado, siempre hay fuentes de error. Para nosotros, experimentamos un error con el simple hecho de que el robot no es preciso con el ángulo en el que gira, por lo que si le dice que gire 45 grados, no será exacto. Otra fuente de error para nosotros fue que, a veces, el robot no funciona correctamente y usted lo ha restablecido antes de que vuelva a funcionar. La última fuente de error principal para nosotros fue que el mismo código no tendrá el mismo efecto en diferentes robots, por lo que es posible que tenga que ser paciente con él y ajustarlo en consecuencia.
Paso 6: Conclusión
Ahora tiene todas las herramientas para jugar con su roomba, lo que significa que puede manipular el código de la forma que desee para lograr los objetivos que desee. Esta debería ser la mejor parte de su día, ¡así que diviértase y conduzca con seguridad!
Recomendado:
Convirtiendo su Roomba en un Mars Rover: 5 pasos
Convirtiendo su Roomba en un Mars Rover:
Roomba Bot the Bulider: 5 pasos (con imágenes)
Roomba Bot the Bulider: Bot the Builder es un roomba, que con " grabbers " adjunto al frente podrá mover objetos alrededor. El código con él está configurado para registrar el primer movimiento con un cuadro de GUI que puede controlar con solo hacer clic con el mouse. Después
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
Pod-Pal MIDI: 4 pasos
MIDI Pod-Pal: *** ACTUALIZACIÓN 22/4/21 ****** He agregado un esquema completo que muestra todo el cableado para ayudar en la construcción. *** No entraré en una cantidad ridícula de profundidad aquí en la parte de construcción, mi intención era mostrar otro ejemplo de construcción de un MI basado en Arduino
¡De Roomba a Rover en solo 5 pasos !: 5 pasos
¡De Roomba a Rover en solo 5 pasos!: Los robots Roomba son una forma divertida y fácil de sumergirse en el mundo de la robótica. En este Instructable, detallaremos cómo convertir un Roomba simple en un móvil controlable que analiza simultáneamente su entorno. Lista de piezas1.) MATLAB2.) Habitación