Formas de moverse. Descripción del movimiento del robot móvil. Movimiento en línea recta, giros, vueltas y paradas.

Anotación: El problema de la gestión es muy relevante en ciencia moderna y tecnología. Sea un sistema (objeto de control) que debemos mantener en un estado determinado. Para hacer esto, tenemos un controlador que (1) recopila información sobre el estado actual del sistema en el momento t y (2) calcula la señal de control U(t). Esta señal se envía al objeto de control, devolviéndolo a estado dado. Este esquema se llama sistema con negativo. comentario, ya que al desviarse del equilibrio, el regulador tiende a devolver el sistema a condición normal. En este tema veremos dos tipos de reguladores: un relé más simple y uno proporcional más estable. Objetivo: aprender a construir un sistema de control para un robot autónomo basado en los controladores proporcionales y de relé más simples, considerar una de las tareas de la robótica competitiva y explorar las posibilidades de utilizar un sensor de velocidad.

Regulador de relé

Ejemplo 9.1. Movimiento del robot a lo largo de la pared.

Que haya un robot equipado con un sensor de ultrasonido y una pared no muy lisa (con pequeñas protuberancias y depresiones). Se requiere escribir un programa para controlar el movimiento de un robot a lo largo de una pared a una distancia determinada.

Se debe considerar de antemano la posición del sensor de ultrasonido. Como se mencionó anteriormente (consulte la página 38), este sensor es lento. Por lo tanto, debe colocarse ligeramente por delante del cuerpo del robot. Además, debe alejarse lo más posible de la pared (ver Fig. 9.1), porque a distancias cortas (5 - 7 cm) las lecturas del sensor ultrasónico se vuelven demasiado inexactas. A continuación veremos que también se debe ajustar la dirección del sensor.

El algoritmo de movimiento del robot, escrito en forma verbal, puede ser algo como esto (Fig. 9.2):

  1. moverse recto;
  2. si la distancia a la pared es mayor que la especificada, gire hacia la pared;
  3. si la distancia a la pared es menor que la especificada, aléjese de la pared;
  4. repita los pasos 2 - 3 sin cesar (o hasta que ocurra algún evento).

Una de las soluciones más obvias a este problema es un regulador de relé.

Un relé en ingeniería eléctrica es un contactor con retorno automático a estado inicial(aunque existen muchas otras variedades). En otras palabras, cuando una señal (por ejemplo, corriente) excede un cierto valor límite, el relé se cierra. Tan pronto como la corriente disminuye, el relé se abre. En nuestro caso, la definición de relé en relación con el controlador solo significa que describimos el comportamiento del sistema solo para dos casos: el valor de la señal (1) es menor que el valor especificado y (2) es mayor que el valor especificado. .

Para ser más precisos, tomaremos 20 cm como distancia dada. Obtenemos el siguiente programa (Fig. 9.3):

Como se puede ver en el texto del programa, después de encender ambos motores, arranca bucle sin fin, que implementa el algoritmo verbal descrito anteriormente. Una característica notable de este enfoque es el movimiento de "guiñada": el robot siempre gira con la misma intensidad, sin importar qué tan lejos o cerca esté de la pared. Por tanto, la trayectoria siempre será en zigzag, ya que durante los giros el robot siempre "saltará" alrededor del valor medio de 20 cm. Como el sensor ultrasónico es "lento", se utiliza un pequeño retraso (0,1 s) en el ciclo para que Las lecturas del sensor pueden seguir siendo procesadas por el bloque NXT. La cantidad de retraso en realidad determina el tiempo durante el cual el robot se moverá en la misma dirección. En otras palabras, al aumentar el tiempo de retardo conseguiremos “dientes” más grandes de la trayectoria. Como se señaló anteriormente, no tiene sentido hacer un retraso de menos de 0,06 s, porque en este caso el sensor de ultrasonido simplemente no tendrá tiempo de tomar medidas.

Cuando se utiliza un controlador de relé, es posible que el robot se aleje con frecuencia de la distancia. Una de las razones es que con la ubicación del sensor de ultrasonido que hayamos elegido, el robot no podrá distinguir entre posiciones que sean simétricas respecto a posición normal. Es decir, las dos posiciones mostradas en la Fig. 9.4 será idéntica y la distancia a la pared en ambos casos será superior a 20 cm. De acuerdo con el segundo paso del algoritmo, el robot debe girar hacia la pared (hacia la izquierda). Y si esto es cierto para la segunda posición, entonces para la primera es incorrecto: el robot se saldrá aún más de la pista.

Este problema se puede resolver colocando el sensor no perpendicular a la dirección del movimiento (es decir, estrictamente a la izquierda), sino en un ángulo de 45° con respecto a la dirección del movimiento (Fig. 9.5).

De esta manera podemos evitar el caso mostrado en la Fig. 9.4. De hecho, al girar hacia la izquierda, la distancia a la pared será (en pequeños ángulos de rotación< 45°) уменьшаться, а при поворотах вправо, наоборот, увеличиваться. Однако не стоит рассчитывать, что наш робот сможет проехать вдоль стены любой формы. Даже простой поворот на 90° может вызвать у него неожиданные трудности. Таким образом, наиболее значимым достоинством релейного регулятора в нашем случае является простота его алгоритма. В следующем разделе мы рассмотрим более интересный алгоритм управления.

Tarea 9.1. Programe el robot para que se mueva a lo largo de la pared con diferentes posiciones del sensor de ultrasonido. ¿En qué caso el movimiento es más estable?

Tarea 9.2. Compare esta solución con el ejemplo 4.1 de la p. 48. Implemente un algoritmo de retransmisión para moverse a lo largo de una pared sin utilizar ramificaciones.

Tarea 9.3. Implemente un algoritmo de retransmisión para moverse a lo largo de una línea mediante bifurcaciones.

regulador P

Las dificultades de utilizar un controlador de relé, que se analizaron en el párrafo 9.1, requieren la búsqueda de una solución más aceptable al problema de control. Una opción es un controlador proporcional (o controlador P). En este caso, la acción de control sobre los motores del robot no es constante, como en un controlador de relé, sino que varía en proporción a la desviación de la distancia especificada a la pared. En otras palabras, cuanto mayor es la desviación, más activamente deben trabajar los motores para alinear la trayectoria del robot. Lo ideal es que el robot avance en línea recta si el sensor registra una distancia determinada. Con una ligera desviación, sigue una ligera dirección. Si la desviación es mayor, entonces la dirección es mayor. El algoritmo del regulador P es clásico en la teoría de los sistemas de control automático.

Ejemplo 9.2. Control del movimiento a lo largo de la pared basado en un controlador P.

Para un regulador P, la acción de control U(t) sobre los motores del robot en el tiempo t se calcula mediante la fórmula:

(9.1)

Evidentemente, la gráfica para calcular la acción de control U en función del error E será una línea recta (ver Fig. 9.6):

Es muy fácil determinar el coeficiente a partir del gráfico. Elijamos un punto arbitrario en la gráfica. En nuestro caso, este es el punto A(1; 2) . Entonces

El error puede ser positivo (si estamos más cerca de la pared de lo necesario) o negativo (si nos hemos alejado de la pared de lo necesario). Por tanto, la acción de control U(t) también puede ser positiva o negativa.

Tengamos un controlador P para un robot que se mueve a lo largo de una pared. Luego, la potencia de los motores PowerB(t) y PowerC(t) en el tiempo t se calcula mediante las fórmulas:

(9.2)
(9.3)
  • Nm es la potencia normal de los motores: la potencia con la que ambos motores deberían girar si la desviación del rumbo es cero. En nuestro programa podemos poner Nm = 50;
  • U(t) es la acción de control sobre los motores, calculada mediante la fórmula (9.1).

Los signos delante de U(t) para su robot pueden cambiar al opuesto dependiendo de qué motor está a la izquierda y cuál a la derecha.

Consideremos el significado del coeficiente de proporcionalidad. Como puede ver, la rotación se realiza debido a que la acción de control se resta de la potencia de un motor, mientras que la acción de control se suma al otro. Por tanto, el coeficiente puede potenciar o debilitar el efecto del regulador en los motores: si es mayor que uno, se refuerza, y si es menor, se debilita. Uno grande hará que el robot sea muy sensible a los errores, lo que provocará tirones bruscos para corregir la trayectoria. Uno pequeño hará que los movimientos del robot sean más suaves, pero en giros bruscos el robot puede perder la pared y salirse de la trayectoria. Los valores concretos del coeficiente que sean más adecuados en cada caso concreto dependerán de características de diseño robot, velocidad de movimiento (potencia normal), complejidad de la ruta, sensores utilizados. Los valores de PowerB(t) y PowerC(t) deben estar dentro del rango. Por lo tanto, con grandes errores (y, en consecuencia, grandes señales de control), la potencia de los motores se limitará para que no salga del rango especificado. En este caso, el controlador proporcional no funcionará correctamente porque no podrá compensar errores grandes. Por tanto, una de las características del regulador P es que sólo funciona adecuadamente con pequeños errores. Para tener esto en cuenta en nuestro problema, necesitamos tener una pared sin curvas cerradas y movernos a baja velocidad.

Implementamos el algoritmo del regulador P de acuerdo con las fórmulas dadas utilizando procedimientos anidados (Mis bloques) en el lenguaje NXT-G.

El bloque para calcular la desviación (error) de una distancia determinada, al que llamaremos Error, tiene los siguientes parámetros:

  • entrada - lectura actual del sensor de distancia X(t);
  • fin de semana - error E(t)) .

El bloque de Error en lenguaje NXT-G se ve así:


Arroz. 9.7.

Lo usamos en una subrutina para calcular la acción de control U(t). Tiene los siguientes parámetros.

1. Diseño de robot para moverse a lo largo de una pared.
Debe conectar un sensor de distancia al carro base y conectarlo a 1 puerto.
El sensor de distancia se mueve ligeramente hacia adelante:

La orientación del sensor se puede variar:


2. Movimiento a lo largo de la pared en el regulador P
Resolvamos este problema. El robot debe moverse a lo largo de la pared a una distancia determinada L. Supongamos que la rueda izquierda del robot está controlada por el motor B, la rueda derecha por el motor C, y el sensor de distancia conectado al puerto 1 está fijo ligeramente delante del cuerpo del carro (¡esto es importante!) y está dirigido a la pared de la derecha a lo largo del progreso del movimiento.


Distancia a la pared en momento presente El tiempo mostrado por el sensor se indicará con S1. Se mide en centímetros.
Los motores se mueven con velocidad promedio 50% del máximo, pero al desviarse del curso dado sobre ellos se lleva a cabo la acción de control u (en el motor B 50+u, al motor C 50 unidades):
u=k*(S1-L), donde k es un cierto factor de amplificación que determina el efecto del regulador en el sistema.
Por tanto, cuando S1=L el robot no cambia de rumbo y avanza en línea recta. En caso de desviación, se ajusta su rumbo. Para un robot NXT de tamaño mediano, el factor k puede oscilar entre 1 y 10 dependiendo de muchos factores. Elígelo tú mismo.

EN en este caso El regulador P funcionará eficazmente sólo en ángulos de desviación pequeños. Además, el movimiento casi siempre se producirá a lo largo de una trayectoria ondulatoria. La introducción de nuevos principios que tengan en cuenta la desviación del robot del rumbo hará que la regulación sea más precisa.

3. Controlador diferencial proporcional

En algunos casos, el regulador P puede sacar el sistema de un estado estable.

Por ejemplo, si el robot se aleja de una pared, pero está más cerca de ella que una distancia determinada, los motores recibirán una orden para alejarse aún más de la pared, como resultado de lo cual se puede perder el contacto con ella ( el sensor de distancia recibe la señal reflejada casi sólo desde una superficie perpendicular).

Para protegernos contra tales situaciones, agregaremos un componente diferencial al controlador, que monitoreará la dirección del movimiento del robot.

u=k1*(S -L)+k2*(s1-Vendido), donde Vendido es la distancia en el paso anterior.

Es necesario seleccionar valores adecuados de los coeficientes k1 y k2. Normalmente, la selección comienza con un coeficiente proporcional (k1) con un coeficiente diferencial cero (k2=0). Cuando se logra cierta estabilidad con pequeñas desviaciones, se agrega un componente diferencial.

4. Diseño de robot con sensor de distancia ubicado en ángulo

El robot descrito anteriormente puede rodear las paredes sólo con pequeñas desviaciones de la línea recta. Consideremos una opción en la que se producirán giros importantes a lo largo del camino del movimiento, incluso en ángulos rectos. Será necesario realizar modificaciones tanto en el diseño como en el programa.

En primer lugar, el robot deberá mirar no sólo hacia la derecha, sino también hacia adelante. Instalar un segundo telémetro es bastante caro. Sin embargo, puede aprovechar el hecho de que el sensor ultrasónico tiene un campo de visión en expansión.

Esto es similar a la visión angular de una persona: puede ver algo por el rabillo del ojo. Vale la pena aprovechar esta propiedad y colocar el sensor de distancia no perpendicular al curso del movimiento, sino debajo ángulo agudo. De esta forma podrás matar dos pájaros de un tiro. En primer lugar, el robot verá obstáculos en el frente y, en segundo lugar, seguirá de manera más estable un recorrido a lo largo de la pared, estando constantemente al borde de la visibilidad. Así, sin añadir nuevos dispositivos, más uso eficiente Capacidades del telémetro.

Nota importante. Al iniciar el robot, será necesario dirigirlo con el sensor estrictamente hacia la pared para que el proceso de lectura del valor inicial se realice sin interferencias.
El soporte del sensor se encuentra en el lado izquierdo:

Suponemos que el propietario del constructor ya está familiarizado con controlador arduino y entorno de diseño IDE de Arduino. Por lo tanto, en esta descripción No le diremos cómo y dónde descargar e instalar los programas necesarios.
si estas con programación arduino encuentro por primera vez, familiarícese con la preparación para el trabajo en nuestra página:

Se instala un controlador en los enchufes de la unidad de control R-5. Por lo tanto, en los entornos ambientales desarrollo arduino IDE debe seleccionar este controlador con procesador ATmega328

Ahora vayamos a la programación.
Un programa para un controlador Arduino normalmente consta de 3 partes.

En la primera parte, como es habitual. problema de matematicas Se describen los datos de origen. Asignamos nombres, propósitos y funcionalidades a los contactos del controlador. Anotamos qué bibliotecas usaremos durante la ejecución del programa.

En la segunda parte con el título. Configuración Ahora estamos escribiendo el código del programa directamente. Pero este código se ejecuta sólo una vez durante la operación del programa. Esto es necesario para programar las salidas y entradas del controlador durante toda la duración del programa.

Y la tercera parte del programa. bucle representa instrucciones que son ejecutadas por el procesador durante todo el período de funcionamiento del procesador.

Veamos un ejemplo de código simple para el movimiento de un robot.

En la primera parte del código determinamos qué contactos de la placa Arduino controlaremos el controlador y, en consecuencia, los motores eléctricos, daremos el nombre de los comandos para que podamos entender su propósito.
En el bloque R-5, los contactos de Arduino están conectados a las entradas del controlador.
Veamos la imagen a continuación:

SEÑOR_ EN - entrada del conductor que controla la dirección de rotación del motor eléctrico derecho. Nivel alto (ALTO) - rotación hacia adelante.
METRO_R_ ES - entrada del conductor que permite la rotación del motor eléctrico derecho. Un nivel alto (HIGHT) permite la rotación. Cuando se aplica una señal con modulación de ancho de pulso (PWM, PWM) a la entrada, la entrada controla la velocidad de rotación.
METRO_l_ EN - entrada del conductor que controla la dirección de rotación del motor eléctrico izquierdo. Nivel alto (ALTO) - rotación hacia adelante.
METRO_l_ EN - entrada del conductor que permite la rotación del motor eléctrico izquierdo. Un nivel alto (HIGHT) permite la rotación. Cuando se aplica una señal con modulación de ancho de pulso (PWM, PWM) a la entrada, la entrada controla la velocidad de rotación.
Y obtenemos lo siguiente:

Pin 2 de Arduino: dirección de rotación del motor derecho
Contacto Arudino 3: permiso para girar el motor derecho. Durante el funcionamiento PWM, se ajusta la velocidad de rotación.
Pin 4 de Arduino: dirección de rotación del motor izquierdo.
Pin 5 de Arduino: permiso para girar el motor izquierdo. Durante el funcionamiento PWM, se ajusta la velocidad de rotación.

Escribimos código.

#definir DIR_R 2 // controlaremos el sentido de giro del motor derecho desde el pin 2
#definir VELOCIDAD_R 3 //controlaremos la resolución de rotación y la velocidad de rotación del //motor derecho desde el pin 3
#definir DIR_L 4 //controlaremos el sentido de rotación del motor izquierdo desde el pin 4
#definir VELOCIDAD_L 5 //controlaremos la resolución de rotación y la velocidad de rotación del //motor izquierdo desde el pin 5

//En esta parte del código no estableceremos más parámetros

// procedemos a la segunda parte del programa. Sabemos que en esta parte del código los comandos // se ejecutan solo una vez

configuración nula()
{
pinMode(DIR_R, SALIDA); /
/ El controlador está controlado por señales de salida de Arduino.
//Entonces definimos todos los contactos como SALIDA

pinMode(VELOCIDAD_R, SALIDA);
pinMode(DIR_L, SALIDA);
pinMode(VELOCIDAD_L, SALIDA);
}

// Y en la tercera parte del código ya estamos escribiendo el algoritmo operativo. Aquellos. lo que nuestro robot debería
//realizar

bucle vacío()
{
escritura digital (DIR_R, ALTA);
// El comando digitalWrite establece el pin 2 en alto
//nivel. Para el controlador del motor, esto significa que el motor girará hacia adelante.
// alto nivel en el pin 3 permite al conductor
//girar el motor eléctrico

escritura digital (DIR_L, ALTA);

retraso(1000);
// Girar 1 segundo

escritura digital (DIR_R, ALTA);
// El nivel bajo prohíbe la rotación del motor
escritura digital (DIR_L, ALTA);

retraso(1000);

Escritura digital (DIR_R, BAJO); // Permitir nivel bajo y el motor debe girar a
//reverso

escritura digital (VELOCIDAD_R, ALTA);//Permitir la rotación del motor
escritura digital (DIR_L, BAJO);
escritura digital (VELOCIDAD_L, ALTA);
retraso(1000);

Escritura digital (DIR_R, BAJO);
escritura digital (VELOCIDAD_R, BAJA); // La rotación está prohibida
escritura digital (DIR_L, BAJO);
escritura digital (VELOCIDAD_L, BAJA);
retraso(1000);
}

Copie el texto del programa y péguelo en el IDE de Arduino.
Después de copiar, asegúrese de verificar que los comentarios en cada línea comiencen con dos caracteres //.
Después de la verificación, cargue el código en el controlador. Instale el controlador en la unidad R-5 y encienda la alimentación del robot.

Nuestro robot, realizando el boceto escrito arriba, debe avanzar durante un segundo, luego detenerse por un segundo y comenzar a retroceder. Y desde el equipo bucle se ejecuta continuamente, el robot ejecutará estos comandos mientras esté encendido.

lección de laboratorio No. 1 "Programación"

Microcontrolador NXT Brick"

Introducción

La robótica es una industria que se desarrolla dinámicamente tanto en términos de uso aplicado como investigación científica. Apareció en últimos años nueva apariencia productos: los kits robóticos le permiten implementar proyectos de robots con diversas funciones, probar sus planes y utilizarlos en la capacitación.

Uno de los kits de robótica más populares del mundo es Tormentas mentales LEGO NXT. Desarrollado conjuntamente con empleados del Instituto Tecnológico de Massachusetts, consta de un gran conjunto de piezas estructurales (más de 600 piezas), 3 servos, un conjunto de sensores y un microordenador NXT Brick. El kit es básico para muchos eventos de robótica en el mundo, incluidas las competiciones WRO (World Robotic Olympiad). El kit viene con el entorno de programación visual NXT-G, creado por National Instruments en base a su producto LabView.

Por tanto, el kit NXT es un excelente campo de pruebas para realizar una serie de trabajos de laboratorio basados ​​en él en el estudio de la robótica.

Propósito de la lección

Familiarícese con las principales capacidades de la microcomputadora robótica NXT Brick, sus unidades de control, sistema de menús, familiarícese con el entorno de programación visual NXT-G, realice la programación. funciones básicas: Visualización en pantalla, reproducción de sonidos.

Ejercicio

Explora los controles del NXT Brick Explora el sistema de menús del NXT Brick

Explora el propósito de los ports de NXT Brick

Inicie el entorno de programación NXT-G

Familiarícese con la paleta básica de herramientas NXT-G

Familiarícese con la paleta ampliada de herramientas NXT-G. los siguientes programas:

    • emite un solo fragmento de sonido de un archivo

      emite un solo sonido de cierto tono

    • emite una serie de sonidos de archivos una vez

      emite una serie de sonidos de diferentes tonos una vez (programamos la melodía)

      produce una serie continua de sonidos de diferentes tonos (bloque "Ciclo")

      muestra una imagen de un archivo

      muestra texto en una línea

      muestra texto en tres líneas Prepare un informe con capturas de pantalla de programas escritos.

Progreso del trabajo

Apariencia El microordenador NXT Brick se muestra en la Fig. 1. Alimentado por 6 pilas AA. La unidad está equipada con una pantalla LCD con capacidad para mostrar texto y gráficos. Para navegar por las secciones del menú, utilice las teclas del panel frontal: naranja Aceptar, gris oscuro - Cancelar. El bloque puede reproducir sonidos tanto de archivos pregrabados como de diferentes tonos. La conexión a una computadora se realiza a través de interfaz USB. Hay un módulo conexión bluetooth, que le permite controlar el bloque desde una computadora y conectar los bloques entre sí. El NXT Brick tiene tres puertos para actuadores, etiquetados A, B y C (B y C se usan generalmente para movimiento, A para un manipulador) y cuatro puertos para sensores, etiquetados con números.

Arroz. 1. Ladrillo NXT

El NXT Brick se puede programar utilizando el entorno de programación visual NXT-G. La apariencia del entorno con una paleta estándar de herramientas se muestra en la Fig. 2. Aquí el programa se construye a partir de bloques colocados sobre vigas LEGO. Está permitido utilizar bucles. saltos condicionales, interactuar con sensores, actuadores, control transceptor bluetooth, mostrar en la pantalla y reproducir sonidos.



Arroz. 2. Interfaz entorno visual Programación NXT-G

Para incluir un nuevo bloque en el programa, debe "arrastrarlo" con el mouse desde la barra de herramientas hasta la viga LEGO. El orden en que aparecen los elementos determinará el orden en que se ejecutará el programa.

    Cada bloque tiene un conjunto de parámetros que determinan su “comportamiento”. Así, por ejemplo, en el bloque "Movimiento" puedes seleccionar la dirección del movimiento, su duración y la potencia suministrada a los motores.

Los estudiantes deben completar las tareas en trabajo de laboratorio y preparar un informe.

Lección de laboratorio nº2 “Técnicas básicas de control de movimiento robot movil"

Propósito de la lección

Dominar habilidades prácticas en la construcción de un robot móvil, dominar habilidades prácticas de programación. varios tipos Movimientos de robots móviles.

Ejercicio

Con base en el esquema propuesto, monte el diseño de un robot móvil. Escriba los siguientes programas:

    • Movimiento directo a una distancia de 1 metro.

      Movimiento en un "cuadrado"

      movimiento circular

      Movimiento de la figura 8

Progreso del trabajo

Armar el diseño de un robot móvil. El diseño final se muestra en la Figura 3. Este diseño es un diseño típico para robots móviles. Dos ruedas motrices proporcionan movimiento, una rueda giratoria permite girar. El robot gira alimentándose diferentes capacidades en los motores derecho e izquierdo.


Arroz. 3. Carro robot móvil con rueda giratoria

Al realizar el montaje, se debe prestar especial atención a un concepto como "distribución del peso". El hecho es que la carga principal en un carro de este tipo debe ser soportada por el eje de las ruedas motrices. El elemento estructural más pesado es el NXT Brick. Si se coloca demasiado peso sobre la rueda giratoria, la estructura no girará bien.



Arroz. 4. Vista inferior. Método de montaje del motor

Los motores de este carro están sujetos a la parte inferior de la microcomputadora mediante vigas rectas (Fig. 4).

Atención especial Se debe prestar atención al diseño de la rueda giratoria (Fig. 5). Debe girar libremente tanto alrededor de su eje como alrededor del eje de fijación. Además, la estructura debe ser lo suficientemente resistente. Arroz. 5. Diseño de rueda giratoria

Después de ensamblar el robot móvil, debe completar todas las tareas y preparar un informe.



Lección de laboratorio nº 3 "Estudio sensores táctiles Mindstroms NXT"

Propósito de la lección

Familiarícese con los sensores del kit NXT, aprenda cómo conectarlos, diagnosticarlos y dominar habilidades prácticas para programar un robot mediante sensores.

Ejercicio

Equipe el robot con un parachoques basado en sensores táctiles. Escriba los siguientes programas:

    • Movimiento directo hasta el momento de colisionar con una pared, luego retroceder, girar aleatoriamente hacia la derecha o hacia la izquierda y continuar moviéndose.

Adapte el robot con un sensor de distancia. Escriba los siguientes programas:

    • Movimiento prelineal hacia adelante hasta el momento de la colisión con un obstáculo, o cuando quedan menos de 20 cm del obstáculo, después de lo cual retrocede, gira aleatoriamente hacia la derecha o hacia la izquierda y continúa moviéndose.

Elaborar un informe con capturas de pantalla de programas escritos.

El kit LEGO Mindstorms NXT viene con el siguiente conjunto de sensores: dos sensores táctiles, un sensor de distancia ultrasónico y un sensor de color. todos ellos tienen vista estándar fijaciones


Arroz. 6. Sensor táctil NXT

El sensor táctil del NXT es en realidad un botón. Podemos rastrear tres estados: "presionado", "liberado", "presionado y liberado". Dependiendo de la lógica del programa, es necesario analizar una de estas tres distancias. Con un sensor táctil se pueden resolver, por ejemplo, tareas como un detector de colisiones, dos sensores pueden ayudar a determinar el tamaño de un objeto, etc.


Arroz. 7. "En blanco" para el parachoques



Arroz. 8. Parachoques

A partir de vigas LEGO curvas, ensamble el parachoques real. Móntelo en el robot móvil.


Arroz. 9. Robot móvil con parachoques

Escriba un programa para un robot parachoques de acuerdo con la tarea de laboratorio.


Arroz. 10. Sensor de distancia ultrasónico

El sensor de distancia NXT utiliza método ultrasónico determinar la distancia a un objeto. Tiene emisor y micrófono. Funciona eficazmente a una distancia de 10 a 100 cm del objeto.


Arroz. 11. Robot móvil con parachoques y sensor de distancia ultrasónico.

Complemente el diseño del robot con un sensor de distancia ultrasónico y escriba un programa de acuerdo con la tarea del laboratorio.

Con base en los resultados del trabajo, es necesario emitir un informe.

Lección de laboratorio nº 4 "Movimiento de un robot móvil a lo largo de una línea negra"

Propósito de la lección

Familiarícese con el sensor de luz y color del kit NXT, domine los algoritmos básicos para moverse a lo largo de la línea negra.

Ejercicio

Según el esquema propuesto, monte la estructura de un robot móvil (2 opciones: un robot sobre una plataforma con orugas, un robot sobre una plataforma con ruedas y una rueda giratoria)

Equipe el robot con un sensor de color Escriba los siguientes programas:

    • Movimiento a lo largo de la línea negra utilizando el "algoritmo clásico"

      Movimiento a lo largo de la línea negra usando el controlador P

      Moviéndose a lo largo de la línea negra usando un controlador PI

      Movimiento a lo largo de la línea negra usando un controlador PID Prepare un informe con capturas de pantalla de programas escritos

Progreso del trabajo

Para realizar este trabajo necesitarás un sensor de color NXT. El sensor de color puede funcionar en dos modos: sensor de color y sensor de luz. Para resolver el problema de moverse a lo largo de una línea, el modo de sensor de luz es más adecuado. En este caso, el valor oscila entre 0 y 255 y corresponde al brillo de la luz reflejada por el objeto iluminado. Para desplazarse por una línea negra, es recomendable iluminarla con un LED rojo.


Arroz. 12. Sensor de color NXT.

Retire el sensor de distancia y el parachoques del robot móvil y equípelo con un sensor de luz. El sensor está ubicado a lo largo de la línea central del robot, ligeramente por delante del eje de la rueda.

El programa "clásico" para que el robot se mueva a lo largo de la línea negra se muestra en la Fig. 13.

Haz que suceda.



Arroz. 13. El algoritmo "clásico" más simple para moverse a lo largo de la línea negra.

Modifique el programa para movimiento de línea con controlador P, controlador PI y controlador PID.

Cuando termine, prepare un informe.

Bibliografía

    Fundamentos de mecatrónica: monografía / Yu M. Osipov [etc.] Agencia federal por educación, Tomsk universidad estatal sistemas de control y radioelectrónica. - Tomsk: TUSUR, 2007. - 162 págs. (90 ejemplares en la biblioteca de TUSUR)

    Yurevich E.I., Ignatova E.I. Principios básicos de la mecatrónica. Mecatrónica, Automatización, Control, No. 3, 2006. (5 ejemplares en la biblioteca TUSUR)

    Yurevich E.I. Conceptos básicos de la robótica. Libro de texto. – San Petersburgo: BHV-Petersburgo, 2005.

    Sr. Shahinpur. Curso de robótica. Por. del ingles – M.: Mir, 1990.




Arriba