ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Localización de robot


Enviado por   •  3 de Enero de 2024  •  Ensayos  •  2.448 Palabras (10 Páginas)  •  30 Visitas

Página 1 de 10

LOCALIZACIÓN DE ROBOT

Localización es la habilidad de una máquina de ubicarse por sí misma en el espacio, se considera un robot totalmente perdido, sin tener idea donde se encuentra en relación a su entorno, ¿cómo puede ubicarse el robot dentro del espacio?, con esta  premisa se inició con desarrollo del curso con la programación en Python Versión 3.4.0 y el apoyo de www.udacity.com/wiki/cs373/unit-1-spanish  (CS373 Unidad 1 - El Problema de la Localización) posterior a la programación se considera también la implementación y las pruebas para comprobar el funcionamiento.

CONTENIDO

  1. INTRODUCCION
  2. NUCLEO DEL INFORME
  3. RESULTADOS Y CONCLUSIONES
  4. RECOMENDACIONES
  5. AGRADECIMIENTOS
  6. LISTA DE REFERENCIAS
  7. ANEXOS

DESARROLLO

El desarrollo del programa localizador reducirá el margen de error considerablemente, según nos explica  el desarrollo del curso de Udacity, “comparado con el de un dispositivo GPS, cuyo margen de error puede llegar a ser de hasta diez metros”. Imaginando un robot que se encuentra en un mundo unidimensional, en algún lugar a lo largo de una línea recta, sin tener idea en que punto de ese mundo se encuentra.

 El tipo de localización estudiado se conoce como Método de Montecarlo.

[pic 1]

Ejemplo gráfico

El desarrollo de curso en Udacity es como sigue:

 Lesson 1: Localization

  • Localization
  • Total Probability
  • Uniform Distribution
  • Probability After Sense
  • Normalize Distribution
  • Phit and Pmiss
  • Sum of Probabilities
  • Sense Function
  • Exact Motion
  • Move Function
  • Bayes Rule
  • Theorem of Total Probability

Ahora bien se procederá explicar el desarrollo de la aplicación del curso   en un entorno de LINUX y Windows, es decir con RaspberryPI y Arduino

Desarrollo con RaspberryPI.

  • Pasos para iniciar con el RaspberryPI

Primero.- Adquirimos el RaspberryPI  Modelo B, luego se adquirimos por separado una tarjeta SD Card con 2Gb como minimo, también será necesario un monitor con puerto HDMI con su respectivo cable, para visualizar el entorno LINUX  Raspbian “wheezy”,  teclado, mouse , cable de red para acceder a internet desde RaspberryPI  y Hub USB.

Segundo.- Descargamos de  internet  la imagen de disco del sistema operativo Raspbian “wheezy” (Debían) Versión oficial de la fundación RaspberryPI. org.  Luego grabarla a la SD Card, para esto usamos el Win32DiskImager.

Tercero.- Una vez grabada la imagen en el SD Card, procedemos a insertarla en el RaspberryPI B y conectamos  todos sus puertos (Fuente de alimentación,  Hub USB,  Teclado, Mouse, Monitor cable de red).

Cuarto.- Al encenderlo, el equipo nos pedirá un login, que por defecto es “pi” y un password que por defecto será “RaspberryPI”.

Quinto.- Para acceder a la pantalla principal, ejecutamos el comando “start x”.

Hasta este punto ya nos encontramos en la pantalla principal, ahora continuaremos con las actualizaciones.

Nota: Si no se cuenta con el monitor y puerto HMI, podemos acceder desde una PC mediante el SSH.

Actualizaciones del sistema

Para continuar con las actualizaciones, es requisito indispensable el acceso a internet y procederemos del siguiente modo.

Primero.- Accedemos  al terminal del sistema (LX Terminal), luego ingresamos “sudo raspi-config”,

[pic 2]

enter.

Segundo.- En la ventana de confiration tool (raspi-config),  configuraremos básicamente 02 opciones, el  “About raspi –config  y Expand Filesystem”, presionamos enter  e ingresamos “sudo reboot” para reiniciar el sistema operativo.

Tercero.- Volvemos a acceder al terminal del sistema (LX Terminal), luego ingresamos “sudo raspi-config”, enter; Nuevamente ingresamos “sudo apt-get update” enter.

Cuarto.- Ingresamos “sudo apt-get upgrade”, enter.        

Quinto.- Ingresamos “sudo install pyhton3-rev”, enter.

Sexto.- ingresamos “nano X1.py”, enter.

[pic 3]

Estas actualizaciones son muy importantes para el sistema, cabe indicar que estos pasos son un resumen básico de toda la  información disponible en la red y demás tutoriales.

[pic 4]

Programación:

A continuación se detalla la programación efectuada en Python y Arduino con la explicación de los códigos por línea de programa, acompañada con la explicación en video adjunta al presente informe.

Programación en python:

import serial #importamos el puerto serial

import time #importamos para retardos y delay

##:DECLARACION DE VARIABLES::::::::::::::::::::##

p = [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1,0.1,0.1 ] #DISTRIBUCION DE PESOS

motions = [1, 1] #MOVIMIENTO DERECHA O LA IZQUIERA

world = ['puerta','pared', 'puerta', 'puerta','puerta','pared', 'puerta','pared','puerta','puerta']

measurements = []# son los datos leídos del Arduino

#TOMAMOS COMO PRIORIDAD EL PUERTAS          

pHit = 0.5

pMiss = 0.3

                            #AGREGAMOS PROBABILIDAD EXACTA

pExact = 0.8

                            #PROBABILIDAD DE POSICION ANTERIOR Y POSTERIOR

pOvershoot = 0.1

pUndershoot = 0.1

####:::::::::::::::::::::::::::::::: FUNCIONES ::::::::::::::::::::::::::::::::::##

def move(p, U): #FUNCION MOVIMIENTO

    #INTRODUCIMOS VARIABLES

    q= []

    for i in range(len(p)):

        s = pExact * p[(i-U) % len(p)]

        s = s + pOvershoot * p[(i-U-1) % len(p)]

        s = s + pUndershoot * p[(i-U+1) % len(p)]

        q.append(s)

    return q

def sense(p, Z): #FUNCION SENSADO z= MEASUREMENTS

...

Descargar como (para miembros actualizados)  txt (13.4 Kb)   pdf (350.6 Kb)   docx (441.6 Kb)  
Leer 9 páginas más »
Disponible sólo en Clubensayos.com