se calcula el minimo porcentaje de error para cada sensor

Anuncio
Robótica Inteligente
Dr. Enrique Sucar
Instituto Tecnológico y de Estudios Superiores de Monterrey, Campus Cuernavaca
Robótica Inteligente
Dr. Enrique Sucar
Discontinuidades y Bifurcaciones
B&D
Equipo de desarrollo:
Jorge A. Mateos
Cesar Verdugo
Edgar Nophal
372498
372856
373006
Cuernavaca Mor., a 28 de Marzo de 2003.
1
Robótica Inteligente
Dr. Enrique Sucar
Introducción
El proyecto robot que realizaremos corresponderá a la categoría de
Bifurcaciones y Discontinuidades, donde es necesario que se encuentren
contingencias, se mantenga la dirección a pesar de la discontinuidad,
seleccionar el camino cuando haya bifurcaciones y se tiene que evitar
soluciones no convencionales o comerciales.
Además se debe de realizar el recorrido. Dado tres Bifurcaciones:
1.
2.
3.
4.
Ir a la derecha en la primera y segunda.
Ir a la izquierda en la tercera.
Frenar después de trayectoria cumplida.
Leer línea blanca de 1.5 cm de ancho excepto en las
bifurcaciones.
También, para la creación del Robot se explicó la manera que
operará de tipo Ackerman-steered y el modelo que se está siguiendo para
su creación.
Diseño mecánico
La primera parte que se identificó fueron la tarjeta a utilizar que se
usó la SV203 que ya se explicado su funcionamiento y manera para
controlar en archivos anteriores, los servo motores tipo RC para
movimiento, y los sensores que ahora ya se colocaron en el robot que
tienen como especificación CNY70 y por supuesto seguimos utilizando el
modelo triciclo como se indican en las imágenes que representan la
construcción física real y fue creado en Autocad 2000.
Figura 1. Vista frontal del robot
2
Robótica Inteligente
Dr. Enrique Sucar
En esta imagen se alcanza a apreciar la dirección seguirá el robot,
así como la línea de sensores que irán colocados aproximadamente en el
parte trasera de la llanta de manejo esto es la parte azul frontal, se aprecia
de color rojo los servos a los que se unen las llantas, también se observa la
cavidad donde está colocada la tarjeta controladora SV203 y la parte
superior donde se coloca la palm.
Figura 2. Vista lateral del robot
En esta imagen se observa lo antes mencionado y además la parte
donde irá el interruptor para la batería.
Figura 3. Vista trasera del robot
Aquí se muestra la cavidad donde se colocarán las baterías así como
también la parte donde está colocada la palm.
Sensores
Respecto a nuestras investigaciones anteriores, identificamos
diversos tipos de sensores, ahora se detallará los que se están empleando
que son el modelo CNY70.
3
Robótica Inteligente
Dr. Enrique Sucar
El CNY70 tiene una construcción compacta donde la fuente de luz
emisora y el detector están alineados en la misma dirección para censar la
presencia de un objeto por medio de la reflexión IR desde el objeto.
La longitud de onda de operación es de 950 nm. El detector consiste
en un fototransistor.
Aplicación
- Es un mecanismo opto-electrónico de escaneo y switcheo i.e.,
sensado indexado, escaneo de disco codificado. (Encoder optoelectrónico ensamblado para el censo de transmisión ).
Características
- Construcción compacta de centro a centro espaceada de 0.1’.
- No requiere instalación
- Alta señal de salida
- Coeficiente bajo de temperatura
- Detector provisto con filtro óptico
- Current Transfer Ratio (CTR) típico de 5%
4
Robótica Inteligente
Dr. Enrique Sucar
5
Robótica Inteligente
Dr. Enrique Sucar
Figura 3. Circuito de prueba
Algoritmos de Control
El control utilizado fue el proporcional, este control dio buenos
resultados ya que los sensores daban varios valores por lo que nos dimos
cuenta que entre mas grandes eran los valores significaba que el sensor
estaba mas adentro de la línea blanca, es decir, el error era mas grande, de
esta forma decidimos utilizar este tipo control ya que la potencia que se les
daba a los servos era proporcional al error o al desvío.
El ajuste que da el control proporcional para seguir la línea sólo lo
aplicamos al haber un mínimo porcentaje de error (Ejemplo: 40%), ya que
si utilizábamos el control proporcional sin establecer un mínimo
porcentaje de error, a veces el robot corregía o se ajustaba a la línea
cuando no tenía que hacerlo, de esta forma hicimos el algoritmo más
robusto o propenso a posibles errores de los sensores.
Algoritmo de control utilizado:
Aquí se calcula el minimo porcentaje de error para cada sensor
error_minimo1 = (Minimo_blanco1*100)/Maximo_blanco1;
error_minimo2 = (Minimo_blanco2*100)/Maximo_blanco2;
//ALGORITMO DE CONTROL PARA VUELTAS A LA DERECHA
//minimo_negro corresponde al mínimo valor del conjunto de valores en que
el sensor detecta negro, de esta forma hay más tolerancia de error.
if (sensor1<minimo_negro1) //si el sensor1 lee blanco
{
Drive(0,0,0);
error = (sensor1*100)/Maximo_blanco1; //se calcula error o el desvío
ocurrido
6
Robótica Inteligente
Dr. Enrique Sucar
if(error>=error_minimo1) //Si el error ocurrido es mayor al error mínimo
entonces s procede a ajustar.
{
error = error/10; //Se divide entre 10 el error para sumarlo a la
potencia del servo
error = pgain*error; //Se multiplica por alguna ganancia proporcional.
power = 130-error; //Se utiliza el error en la potencia del motor, el
valor 130 da una potencia al motor de 0, valores menores de 130 es una
vuelta a la derecha y mayores de 130 es una vuelta a la izquierda.
while(sensor1<minimo_negro1)
{
Drive(power,power,power); //el robot da vuelta para
ajustarse a la línea con el poder dado por el control proporcional mientras
siga detectando blanco.
sensor1 = Sensor(1);
sensor2 = Sensor(2);
Display3(sensor1);
Display4(sensor2);
if(sensor2<minimo_blanco2)
{
bifurca=1;
}
}//fin while
} //fin IF
//last_direction=2;
sensor1 = Sensor(1);
sensor2 = Sensor(2);
Display3(sensor1);
Display4(sensor2);
//Lo siguiente se implemento con el fin de que el robot desacelere en las
curvas y acelere en las líneas rectas, esto se hizo para que el robot no se
saliera de las curvas.
cont_izquierda=0;
if(cont_derecha>=2)
{
vel_s2 = 128;
vel_s3 = 132;
}
7
Robótica Inteligente
Dr. Enrique Sucar
if(cont_derecha==0)
{
vel_s2 = 122;
vel_s3 = 138;
}
cont_derecha++;
}
El algoritmo de control para vueltas a la izquierda es lo mismo solo
que se le suma la potencia 130 en lugar de restarle y entra a la condición
de dar vuelta por medio del sensor2.
ALGORITMO DE CONTROL PARA VUELTAS A LA IZQUIERDA
if(sensor2<minimo_negro2)//si el sensor 2 lee blanco
{
Drive(0,0,0);
error = (sensor2*100)/Maximo_blanco2;
if(error>=error_minimo2)
{
error = error/10;
error = pgain2*error;
power = 130+error;
while(sensor2<minimo_negro2)
{
Drive(power,power,power);
sensor1 = Sensor(1);
sensor2 = Sensor(2);
Display3(sensor1);
Display4(sensor2);
if(sensor1<minimo_blanco1)
{
bifurca=1;
}
}
}
last_direction=1;
sensor1 = Sensor(1);
sensor2 = Sensor(2);
Display3(sensor1);
Display4(sensor2);
cont_derecha=0;
if(cont_izquierda>=2)
{
8
Robótica Inteligente
Dr. Enrique Sucar
vel_s2 = 128;
vel_s3 = 132;
}
if(cont_izquierda==0)
{
vel_s2 = 126;
vel_s3 = 134;
}
cont_izquierda++;
}
Posteriormente realizaremos pruebas con un mayor número de
sensores, pero por el momento se empleo lo anterior.
Arquitectura de software/ programación
Seguiremos con la arquitectura híbrida jerárquica, consideramos en
desarrollarla porque es la más completa y puede realizar diferentes
funciones aprovechando las ventajas de las arquitecturas que los integran.
Tendremos como en ella se muestra diferentes capas:
Capa de habilidades: Mecanismo de control reactivo (controlador)
Capa de secuenciación: Mecanismo de ejecución de plan (secuenciador)
Capa de planeación: Mecanismo deliberativo (deliberador)
También se creara dado las instrucciones de Carnegie Mellon la
siguiente secuencia de programación:
-
Definición de variables
Definición de Funciones
Main
Funciones de Robot
Algoritmo de función
Algoritmo Drive & Spin
Continuación de trayectoria
Seguimiento de línea
Respuesta de acuerdo a lectura de sensores
Funciones de Hardware
9
Robótica Inteligente
Dr. Enrique Sucar
Resultados y análisis
Resultados del algoritmo de control
Al implementar este algoritmo de control hubo buenos resultados ya
que el robot se ajustó bien a cualquier tipo de línea y ya no se salió de las
curvas aunque estuvieran muy cerradas, algo que ayudó fue el hecho de
desacelerar en las curvas, con esto se le daba mas tiempo de ajustarse
mejor a la línea, además de que hizo las vueltas mucho más rápido.
En general, necesitamos realizar más pruebas y revisar el
funcionamiento para que en la siguiente entrega nos respaldemos con
diferentes pruebas realizadas.
Referencias
Libros de Robótica indicados por el profesor
Sensors for Mobile Robots, Theory and application/
H.R. Everett. Cap. 3 pp.75 – 104
Mobile Robots, Inspiration to Implementation/
Joseph L. Jones. Cap 5 pp. 113 – 134
http://www.plazaearth.com/usr/gasperi/light.htm
http://www.cs.bham.ac.uk/resources/courses/robotics/halloffame/2001
/team3/
equip.html
http://www.cs.bham.ac.uk/resources/courses/robotics/halloffame
/2001/team3/equip.html#Infrared%20sensors
CNY70.pdf
10
Descargar