Sistemas Robóticos Móviles



Documentos relacionados
Manual de Introducción a SIMULINK

Nombre de la asignatura: Robótica Industrial. Carrera: Ingeniería Electrónica

Práctica 1 - Pista de Carreras Programación II

Introducción a la Programación en MATLAB

INTELIGENCIA ARTIFICIAL 2015 TALLER RÁPIDO DE PROGRAMACIÓN EN JAVA

Introducción a Matlab.

SOLUCION EXAMEN junio 2006

Prof. Dr. Paul Bustamante

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto

Visual Basic 1. Empleo de módulos y Procedimientos. Procedimientos definidos por el usuario

Introducción a Protégé

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA PROGRAMA DE ESTUDIO

6 de Mayo Bogotá, Colombia. ni.com/colombia o (1)

Manual básico de Robomid

Práctica de la Asignatura Programación III Versión 1.0

6. SISTEMAS CAD-CAM (CAM) 6.1. CONCEPTO DE CAM

Práctica 1ª: Introducción a Matlab. 1er curso de Ingeniería Industrial: Ingeniería de Control

Universidad Politécnica de Guanajuato Semana de la Robótica Taller de introducción a la Robótica y Matlab (2 de Octubre de 2012)

Curso de Java POO: Programación orientada a objetos

Sistemas Conexionistas

Simulador Interactivo para Sistemas de Generación Distribuida Basados en Energías Renovables

Práctica sobre compartición de instancias remotas.

Guía visual de WinUnisoft

Capítulo 3 Usando GUIDE. 3.1 Acerca de GUIDE

Preliminares. Tipos de variables y Expresiones

Tema 8: Gestión de la Configuración

Introducción a Matlab

Introducción a la Computación TFA

3.1 JUSTIFICACION E IMPORTANCIA DEL PRESENTE TRABAJO DE

Tema 6: Introducción a los gráficos en 3 dimensiones

PROCESO ADMINISTRACIÓN DE RECURSOS TECNOLÓGICOS SUBPROCESO ADMINISTRACIÓN DE CONTINGENCIAS

Operaciones con vectores

PETrA PETRA - MANUAL DE USUARIO PARA ESTUDIANTES. Edición: 2 Lugar y fecha: Universidad de Córdoba, 29 de junio de 2012 Referencia: PETrA

Formularios. Formularios Diapositiva 1

Manual de uso del software. RoboPlus. Octubre 6. Interconectividad de dispositivos Nombre del profesor: Emilio Vargas Soto

Funcionalidades Software SAT GotelGest.Net (Software de Servicio de Asistencia Técnica)

Es el listado de los productos que están ofertados en la página.

Microsoft Excel Unidad 4 Planilla de cálculos Conceptos básicos. Qué es Excel? Qué es Excel? 10/23/2015. Objetivos de esta clase

El entorno Vision - E Laboratory

Experiencia 2 y 3 : Cableado y Switchs (Documentación)

Introducción al lenguaje Java Práctica Editor de Línea

ÍNDICE SISTEMAS OPERATIVOS... 5

Existen tres Tipos de Formatos para Presupuestos que son la base de cualquier Opción de Impresión: Tradicional Moderno Formal

Entendiendo y Optimizando MySQL

Figura Vector AP en la trama {A}

Clases y Objetos. Informática II Ingeniería Electrónica

Arquitectura de Aplicaciones

AUTOGUIADO DE ROBOTS MÓVILES MEDIANTE REDES NEURONALES

GE Power Management. 6S``O[WS\bORS1]\TWUc`OQWÕ\g. GE-FILES 7\ab`cQQW]\Sa 539$ &

Java Inicial (20 horas)

COLEGIO GREGORIO JOSÉ RAMÍREZ CASTRO / INFORMÁTICA EDUCATIVA. Material para Trabajar con Estudiantes de III Ciclo de Informática Educativa

COMPUTADORES III VIRTUAL CYBERTECH: SYSTEM DESIGN DESCRIPTION EQUIPO YELLOW:

Procesadores de lenguaje Tema 5 Comprobación de tipos

5ª Práctica. Matlab página 1

Agradecimiento: A Javier Lomelín Urrea por su dedicación y esmero en este proyecto. Manuel Fernando Guzmán Muñoz Presidente OMIJal

Programación Orientada a Objetos con Java

crmitv.com Que es crmitv.com?

Microsoft SQL Server Conceptos.

PowerPoint 2010 Introducción a Microsoft Office PowerPoint 2010

Sensor de Temperatura utilizando el Starter Kit Javelin Stamp. Realizado por: Bertha Palomeque A. Rodrigo Barzola J.

Sobre la lectura y escritura de datos en FORTRAN.

Ayuda básica relativa al interfaz web

ARREGLOS DEFINICION GENERAL DE ARREGLO

Tema 4: Empezando a trabajar con ficheros.m

UNIVERSIDAD POLITÉCNICA DE MADRID

MANUAL DE USUARIO. JNyARchiTech ALFONSO NEIL JIMÉNEZ CASALLAS MAYDA ALEXANDRA CARVAJAL VARGAS PONTIFICIA UNIVERSIDAD JAVERIANA

Conceptos Fundamentales sobre UNIX Laboratorio Administrador de Archivos del CDE Avanzado (Tiempo estimado: 30 min.)

Instrumentación virtual

3_formato I. NOTA: al pegar unas celdas sobre otras no vacías, se borrará el contenido de estas últimas.

10.4 Dibujos sobre dominios mallados en triángulos LECCIÓN V

A continuación se describen cuáles son los elementos principales de las tablas, cómo crear una y cómo modificarla.

Indicaciones específicas para los análisis estadísticos.

ROBÓTICA PERCEPTUAL Y AUTÓNOMA

Es un software de simulación que ejecuta programas en lenguaje de ensamblador para procesadores con arquitectura MIPS32.

MATLAB en 30 minutos

SEGURIDAD Y PROTECCION DE FICHEROS

Introducción a las Redes de Computadoras. Obligatorio

Práctica 2 Gráficos Vectoriales con SVG (versión )

CONTROL Y PROGRAMACIÓN DE ROBOTS

Concurrencia. Primitivas IPC con bloqueo

Las conexiones conectan cuerpos entre sí formando un mecanismo En el ejemplo, cada cuerpo, en este caso las distintas secciones de la pala mecánica,

UNIVERSIDAD DE PUERTO RICO

Práctica 2 Sólidos Articulados (Asignación 2 de Marzo; Entrega 23 de Marzo a las 23:59)

Leica Application Suite

Ahora después de ver las múltiples herramientas de desarrollo de ABAP, podemos ver los detalles del lenguaje:

Tema 7: Programación con Matlab

Uso de archivos en C++

Calculadora virtual HP Prime

PROYECTOS, FORMULACIÓN Y CRITERIOS DE EVALUACIÓN

Oferta tecnológica: Vehículos autónomos para transporte de materiales en almacenes

Programa Control SMS para Teléfonos Android.

Estructuras de Datos y Algoritmos Práctica I - Curso 2012/13

Qcad. Es un programa de diseña asistido por ordenador en 2 dimensiones.

Introducción a la programación orientada a objetos

Práctica 2: Operaciones Binarias

Soporte y mantenimiento de base de datos y aplicativos

Concurso en Ingeniería de Control

1. Manejo de memoria estática 2. Manejo de memoria dinámica

Sistemas de Locomoción de robots móviles. Automatización y Robótica Industrial 5 Ing Industrial

Ingeniería Superior de Informática

Transcripción:

Sistemas Robóticos Móviles (Práctica 7: Planificación de Trayectorias) Antonio Falcón Martel Facultad de Informática Universidad de Las Palmas de Gran Canaria

Objetivos La práctica 7 se desarrollará en utilizando el simulador en MATLAB SIMROBOT (Autonomous Mobile Robotics Toolbox) desarrollado en la Universidad de Brno (república de Chequia). http://www.fee.vutbr.cz/uamt/robotics/simulations/amrt/simrobot_en.html Los objetivos principales son: Familiarizarse con el entorno de simulación Analizar las diferentes estrategias posibles sobre un problema de planificación global Desarrollar estrategias para el control reactivo local en el caso de coexistir múltiples robots móviles en el mismo entorno.

Autonomous Mobile Robotics Toolbox La toolbox Autonomous mobile robotics SIMROBOT (SIMulated ROBOTs) permite: Simular comportamientos de uno o mas robots en movimiento en un entorno virtual. Cada robot puede estar equipado con varios sensores ultrasónicos y láser que pueden utilizarse para algoritmos de control (pueden combinarse con Lógica Difusa y Redes Neuronales) La toolbox incluye dos aplicaciones independientes: El EDITOR que permite crear y modificar la simulación, crear mapa, definir robots y editar sus algoritmos de control. El SIMULADOR que permite ejecutar la simulación donde cada robot se desplaza según su propio algoritmos de control.

Autonomous Mobile Robotics Toolbox Simulator Window

SIMROBOT: Características Características relevantes de la TOOLBOX Edición y simulación Menu de contexto para los robots Editor para el subsistema sensorial de cada robot (tipo, número, posición y parámetros) Edición de algoritmos de control como m-functions que pueden utilizar otras toolbox de MATLAB Soporta simulación paso a paso y detección de colisiones Cada robot tiene una memoria disponible para el usuario.

SIMROBOT Notas de interés: El entorno virtual de simulación se representa como una matriz, que puede crearse desde ficheros bitmap de 1-bit (*.bmp) Los robot admiten sensores ultrasónicos y láser para evaluar distancias cortas y largas. Están simulados utilizando el algoritmo de Bresenham (este algoritmo está escrito en C y compilado en una DLL un fichero mex- para una ejecución más rápida) El simulador asume que los robots tienen dos ruedas motrices y una o dos ruedas tipo castor (conducción diferencial). Este tipo de plataforma tiene dos grados de libertad para la locomoción.

SIMROBOT Programación Orientada a Objetos

SIMROBOT: Detalles de la Estructura name - user-defined name of the robot number - unique ID number af - control algorithm file name scale - scale of the robot - size of the robot can be adjusted without new shape definition position - actual position of the robot in virtual environment map heading - heading of the robot (in degrees) userdata - this is the robot s "memory" and any user data can be stored here crashed - flag, set when a collision is detected power - on/off switch flag color - color of the robot ([R G B] vector)

SIMROBOT: Detalles de la Estructura patch - data for a patch (polygon) visually representing the robot xdata - data of x-coordinates for the patch definition ydata - data of y-coordinates for the patch definition history - record of position and heading data of the robot in each simulation step velocity - angular velocity of left and right actuated wheel accel - angular acceleration of left and right actuated wheel sensors - structure defining sensorial subsystem of the robot (sensor data = position on the robot, angle of axis, beamwidth (in degrees), range, sensor name)

Autonomous Mobile Robotics Toolbox Mapa Virtual del Entorno El mapa se representa internamente como una matriz de uint8 (unsigned 8-bit integer). El valor máximo de cada elemento es 255 según: 0 1 2-255 empty space solid obstacle robot Se deberá rodear al mapa de una pared limitadora pues se admite la opción de que los robots pueden salir de este..

Autonomous Mobile Robotics Toolbox Sistema de Coordenadas La posición básica para el robot es con orientación de la cabecera = 0 Los sensores se definen sobre esta posición La unidad básica de longitud es un centímetro Un punto del mapa (un elemento de la matriz) viene representado por un centímetro cuadrado en el entorno del mundo real

Autonomous Mobile Robotics Toolbox Modelo cinemático (directo e inverso) Se asume una plataforma diferencial con dos grados de libertad (DOFs): traslación y rotación. Velocidad traslacional en [m.s-1] = 2 1 1 1 2 W W a a b b a B B B l l l l l R v v z y x ω ω ω Velocidad rotacional(z) [rad.s-1] ( ) + = z y x B B B a b b a a b b a a W W v v l l l l l l l l R l ω ω ω 1 1 1 1 2 2 2 2 1 Velocidad rotación de las ruedas en [rad.s-1]

Autonomous Mobile Robotics Toolbox Variables y parámetros La solución de la ecuación anterior se implementa con una m-function denominada mmodel.m. Las constantes l a,l b y R deben establecerse de acuerdo con las proporciones del robot. Los valores implícitos son l a =3 cm, l b =0 cm y R=1 cm. Se deberá guardar consistencia con los valores que se utilicen en la función de cinemática inversa invmodel.m. Un paso de simulación representa un segundo en tiempo real.

SimRobot Editor Robots

SimRobot Editor Subsistema Sensorial

SimRobot Algoritmos de Control Los algoritmos de control son m-functions estandar de MATLAB. Cada robot tiene un algoritmo que puede ser compartido por varios robots. Cuando un nuevo robot se crea se le añade un algoritmo por defecto (algtemp.m),que se enceuntra vacio: function new = alg_name(simrobot,matrix,step) % your algorithm starts here %end of your algorithm new = simrobot;

SimRobot Algoritmos de Control La variable step es el paso de simulación actual y puede utilizarse dentro del algoritmo. Para el algoritmo de control pueden también utilizarse los comandos de SimRobot. % sensor reading [dist,num] = readusonic(simrobot,'sens1',matrix); % num, the nearest obstacle number, is not used if dist<20 simrobot = setvel(simrobot,[0 0.5]); % turn left else simrobot = setvel(simrobot,[0.5 0.5]); % go straight on end

SimRobot : Comandos prestablecidos Comando: clearcf Propósito: borrar el crash-flag del robot. Sintáxis: new = clearcf(simrobot) Comando: getaccel/setaccel Propósito : Porporciona/pone la aceleración angular de las ruedas derecha e izquierda. Sintáxis: [left_accel,right_accel] = getaccel(simrobot) new = setaccel(simrobot,[left_accel right_accel]) Devuelve un vector de dos elementos (double).

SimRobot : Comandos prestablecidos Comando: gethead/sethead Purpose: Returns/sets the heading of the robot. Sintáxis: heading = gethead(simrobot) new = sethead(simrobot,name) El valor que devuelve está en grados. El ángulo de 0 se retorna cuando el robot encara el este."name" puede ser cualquier string Comando: getname Propósito: Devuelve el nombre del robot. Sintáxis: name = getname(simrobot) name es el nombre del robot (string).

SimRobot : Comandos prestablecidos Comando: getpos Propósito: Devuelve la posición actual del robot. Sintáxis: position = getpos(simrobot) El valor que se obtiene es la posición actual del robot ([x y], double). La esquina izquierda del mundo virtual tiene como coordenadas [0,0] Comando: getpower/setpower Propósito: Retorna/pone el "power switch state" del robot (el robot está activo/no activo). Sintáxis: power = getpower(simrobot) new = setpower(simrobot,power) El valor del estado de energía del robot (boolean/double), "power" puede ser 0/1 o 'on'/'off'.

SimRobot : Comandos prestablecidos Comando: getvel/setvel Propósito: Devuelve/pone las velocidades <ngulares de las ruedas derecha e izquierda. Sintáxis: [left_vel,right_vel] = getvel(simrobot) new = setvel(simrobot,[left_vel right_vel]) El valor que se devuelve es un vector de dos elementos (double). Comando: invmodel Propósito: Representa el modelo de cinemática inversa. Sintáxis: [left_angular_vel,right_angular_vel] = invmodel(movspd, rotspd) Donde: left_angular_vel,right_angular_vel son las velocidades angulares de las ruedas, movspd es la velocidad traslacional del cerpo del robot y rotspd es la velocidad rotacional

SimRobot : Comandos prestablecidos Comando: iscrashed Propósito: Devuelve el crash-flag. Sintáxis: flag = iscrashed(simrobot) Si el robot se colapsa por colisión, se devuelve un 1, y en cualquier otro caso un 0. Comando: getnum Propósito: Devuelve el número de identificación ID del robot. Sintáxis: number = getnum(simrobot) E valor del ID del robot es double, pero entero.

SimRobot : Comandos prestablecidos Comando: readlaser Propósito: Leer los datos desde un scanner láser. Sintáxis: [data,num] = readlaser(simrobot,sensor_name,matrix) Donde: data es un vector que contiene las distancias a los obstáculos medidos por un haz dado. Los haces se len en sentido de las agujas del reloj num es el número de los obstáculos detectados (1 para los obstáculos sólidos (the "wall"), otros números para los robots. Si no hay obstáculos se devuelve un 0), sensor_name es el nombre del sensor. matrix es la matriz que representa el entorno virtual.

SimRobot : Comandos prestablecidos Comando: readusonic Propósito: Simula las lecturas desde un sensor ultrasónico. Sintáxis: [distance,num] = readusonic(simrobot,sensor_name,matrix) Donde distance es la distancia al obstáculo más próximo. num es el número de los obstáculos detectados (1 para los obstáculos sólidos (the "wall"), otros números para los robots. Si no hay obstáculos se devuelve un 0), matrix es la matriz que representa el entorno virtual.

SimRobot : Comandos prestablecidos Comando: readmem/writemem Propósito: Lee/escribe la memoria del robot. Sintáxis: data = readmem(simrobot) new = writemem(simrobot,data) Donde data es el contenido de la memoria que se lee/escribe.

Práctica 7: (Planificación de trayectorias en sistemas multirobots) a) Utilizando MATLAB y SIMROBOT diseñar un robot que permita ir del punto A al B del laberinto de la figura, incluyendo aquellos sensores que se estimen oportunos. A B

Práctica 7: (Planificación de trayectorias en sistemas multirobots) b) Definir el algoritmo de control que permita realizar la planificación local y global. c) El robot coexistirá con otros robots en el entorno que llevan otros objetivos finales (ir de B a A). Si se produce algún tipo de colisión identificar si esta es con un robot en movimiento. A B

Práctica 7: (Materiales y Documentación) Material: a) MATLAB 5.3 (toolbox: Fuzzy Systems, Neural Networks, SIMULINK) b) Toolbox SimRobot c) PC WinXX d) El entorno virtual de trabajo: Laberinto.bmp (páginas asignatura) Recursos On-line: a) SimRobot: http://www.fee.vutbr.cz/uamt/robotics/simulations/amrt/simrobot_en.html b) Manuales MATLAB&SIMULINK: http://serdis.dis.ulpgc.es/~ii-srm Referencias de interés: a) [Mur00] Murphy R., "Introduction to AI Robotics", MIT Press, 2000. b) [Pru96] Pruski, A. "Robotique Mobile. La Planification de Trajectorie", Hermes, 1.996.

! Hasta la Próxima