Programación de robots móviles



Documentos relacionados
Programación del robot humanoide Nao para la RoboCup

Programación de robots y arquitecturas software, casos prácticos

Comportamiento autónomo: animales y robots

Programación del robot Pioneer con JDE.

NOMBRE DEL EXPERIMENTO AUTOR CATEGORÍA PALABRAS CLAVE QUÉ SE PRETENDE MOSTRAR? DIRIGIDO A. Construye y Controla tu Robot en un día.

Esta presentación. Pablo González-Nalda Ismael Etxeberria-Agiriano Isidro Calvo

Getting Started. 1. Introducción. 2. Requerimientos de software

Software de sistema: Programas genéricos que permiten gestionar los recursos del ordenador.

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

Software Computacional y su clasificación

Capítulo 5. Cliente-Servidor.

Programación de robots móviles

SISTEMAS DE INFORMACIÓN II TEORÍA

FAMILIA PROFESIONAL: Informática y Comunicación CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIMEDIA DAM 350 HORAS

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web.

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

Competencias generales vinculadas a los distintos módulos Módulo de Formación Básica

Programación de Robots móviles en institutos

Introducción a la Computación

CAPITULO III MARCO METODOLÓGICO. La presente investigación plantea como objetivo el diseño de un prototipo


INGENIERÍA EN MECATRÓNICA

SIEWEB. La intranet corporativa de SIE

Novedades. Introducción. Potencia

Universidad Mayor de San Andrés Facultad de Ciencias Puras y Naturales Carrera de Informática. ired. Sistema de Inventario de Red

Programando el robot Lego Mindstorms NXT 2.0 con Java LeJOS

Tema 1. Conceptos fundamentales de los Sistemas Operativos

Grado en Ingeniería Informática

Sistema software de acceso a dispositivos en tiempo real integrado en la plataforma MissionLab

Unidad 1: Conceptos generales de Sistemas Operativos.

CAPÍTULO I EL PROBLEMA PLANTEAMIENTO DEL PROBLEMA

Conexión ODBC Visual Basic - MSQL. Cristian Vidal Silva

VISIÓN GENERAL HERRAMIENTAS COMERCIALES

Sumario Instalación MDT V


Sistemas Multimedia Distribuidos. Juan A. Sigüenza Departamento de Ingeniería Informática UAM

Nuevas tendencias: Virtualización de computadores / servidores

POTENCIANDO NEGOCIOS EN TIEMPO REAL. Especificaciones Técnicas

CONTROL Y ROBÓTICA. MECANIZACIÓN. Incorporación de máquinas para ejecutar determinadas tareas.

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA

Presente en el mercado de la seguridad desde 1989, DORLET se dedica desde sus inicios al desarrollo y fabricación de sistemas de control de accesos y

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

Este proyecto propone la investigación referente al modelado y desarrollo de agentes para

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

Capítulo 1 Introducción a la Computación

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

Introducción a los Servicios Web. Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com

KW x hora. on/off

CAPÍTULO II. Gráficos Dinámicos.

Unidad I. Introducción a la programación de Dispositivos Móviles (Continuación )

Programación de Algoritmos para Sistemas Robóticos

Trabajo TICO Unidad 2: Sistemas Operativos. Guillermo Jarne Bueno.

Fundamentos del diseño 3ª edición (2002)

ARQUITECTURAS DE PROCESOS DE NEGOCIOS INGENIERIA DE SOFTWARE ING. MA. MARGARITA LABASTIDA ROLDÁN

SUPLEMENTO EUROPASS AL TÍTULO

Monitorización de sistemas y servicios

Workflows? Sí, cuántos quiere?

Resumen de la solución SAP SAP Technology SAP Afaria. Gestión de la movilidad empresarial para mayor ventaja competitiva

Manual de Instalación

Universidad Autónoma del Estado de Hidalgo Instituto de Ciencias Básicas e Ingeniería Área Académica de Computación y Electrónica

Memoria de actividades: Participación en actividades concernientes al proyecto. Sistema de Alumbrado Público con Energía Solar y Autodiagnóstico

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

Windows Server 2012: Identidad y Acceso. Módulo 2: Descripción General de Windows Server 2012 Remote Desktop Services.

Web Services en Java. Taller de Programación. Instituto de Computación Facultad de Ingeniería Universidad de la República

A continuación resolveremos parte de estas dudas, las no resueltas las trataremos adelante

CAPÍTULO 3 VISUAL BASIC

Entre los más conocidos editores con interfaz de desarrollo tenemos:

INFORMACION PLATAFORMA BIOMÉTRICA HOMINI

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

Capítulo 1 Plan de proyecto.

Microsoft Office 2010 Illustrated. Tipos de Software

NAS Avanzado. Tu negocio no puede quedarse en blanco. Céntrate en tu negocio. Déjanos la tecnología.

La Pirámide de Solución de TriActive TRICENTER

Programación de Sistemas

Oferta tecnológica: Herramienta para el desarrollo de sistemas multimedia de navegación pedestre

HISTORIA Y EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS

Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web

TFM Comunicación, Redes y Gestión de Contenidos

Medellín, martes 27 de octubre del 2015

Plataforma desarrollo Java Formación elearning tutorizada en castellano. Fabricante: Java Grupo: Desarrollo Subgrupo: Master Java

Beneficios estratégicos para su organización. Beneficios. Características V

Monitoreando Redes con Linux. Ing. Pedro Alejandro Toribio P. Especialista en Conectividad y Seguridad en

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

UNIVERSIDAD DE SALAMANCA

Capitulo III. Diseño del Sistema.

Sophos Computer Security Scan Guía de inicio

Touchmart. Unidades Táctiles Interactivas

grado Ingeniería Grado en Ingeniería en desarrollo de contenidos digitales + Experto universitario en Desarrollo de proyectos de software

Informática 4º ESO Tema 1: Sistemas Informáticos. Sistemas Operativos (Parte 2)

Anexo 4 Documento de Arquitectura

Arquitectura de Software

Estilos de Arquitectura y. Patrones de Diseño Arquitectónico. Patrones de Arquitectura

Por más insignificante que sea lo que debes hacer, esmérate en hacerlo lo mejor que puedas, como si fuera la cosa más importante

Transcripción:

José María Cañas Plaza http://gsyc.es/jmplaza Universidad Castilla la Mancha Albacete, 13 julio 2009

Contenidos 1 Contenidos 1. Introducción 2. Software para robots 3. Plataforma jderobot 4. Dispositivos soportados 5. Componentes desarrollados 6. Conclusiones

1. Introducción 2 1. Introducción Robótica ficción vs Robótica real

1. Introducción 3 Dull, Dirty, Dangerous Aplicaciones reales Industria automoviĺıstica: brazos robotizados para pintar, soldar, mover piezas, etc. Gestión de almacenes: KIVA, Cofares Espacio: Spirit, Opportunity Entretenimiento: Aibo, NXT Usos militares, desactivación explosivos: PackBot Medicina: DaVinci Hogar: Roomba Prestige, limpieza centrales nucleares

1. Introducción 4 Investigación en robótica Generar comportamiento autónomo (inteligencia) en robots móviles A más autonomía más aplicaciones Multidisciplinar: electrónica, informática, psicología, etología... Un robot en cada casa, paralelismo con PC Los deseos (y las peĺıculas) van por delante de la realidad, pero hay progreso real Humanoides RoboCup (liga estandard), UrbanChallenge, etc. Mapas, localización y navegación Interacción con personas Prototipos, robustez

1. Introducción 5 Qué es un robot? Sistema informático con: Sensores Actuadores Computador Hay que programarlo para que consiga sus objetivos y sea sensible a la situación

1. Introducción 6 Por qué no tenemos robots que hagan las tareas domésticas? Falta flexibilidad Tareas complejas Problema tecnológico o teórico? No es sólo un problema de programación

1. Introducción 7 Arquitectura cognitiva La arquitectura de un robot es la organización de sus capacidades sensoriales, de procesamiento y de acción para conseguir un repertorio de comportamientos inteligentes interactuando con cierto entorno La arquitectura determina el comportamiento observable Un robot móvil es un sistema (muy) complejo Capacidades perceptivas, capacidades de actuación Cuándo? Para comportamientos sencillos, casi cualquier organización vale

1. Introducción 8 Uno, varios, muchos Termostato, Roomba Repertorio de comportamientos Del cómo al cuándo Selección de acción Información desbordante, incierta Atención Visión computacional es complicada y potente

1. Introducción 9 Paradigmas cognitivos CAPA DELIBERATIVA SECUENCIADOR CAPA REACTIVA SENSORES ACTUADORES... explorar deambular evitar obstáculo sensar actuar sensores actuadores SENSORES ACTUADORES Paradigmas deliberativo, reactivo, basado en comportamientos, híbrido

2. Software para robots 10 2. Software para robots La inteligencia de un robot reside en su software No hay una manera universalmente aceptada de programarlos Lenguajes: ensamblador, C, C++ Heterogeneidad Dispositivos hardware Encapsular funcionalidad Empezar de cero con cada robot Requisitos específicos Sistemas operativos y plataformas Simuladores

2. Software para robots 11 Requisitos específicos Vivacidad, agilidad Multitarea Distribuido, comunicaciones Interfaz gráfica, depuración Expandible

2. Software para robots 12 Sistemas operativos y plataformas Aplicación Aplicación drivers Plataforma desarrollo Sistema Operativo Hardware del robot Hardware del robot Procesadores empotrados (robots pequeños) o PC (medianos-grandes). Sistemas operativos: dedicados o generalistas Middleware para simplificar la creación de aplicaciones robóticas

2. Software para robots 13 Qué proporciona una plataforma sw para robots? Abstracción del hardware (HAL) Arquitectura software Funcionalidades de uso común Arquitectura cognitiva Comerciales, investigación, software libre Ingeniería software: orientación a objetos, distribución Carmen, OROCOS, ERSP, Player/Stage, Miro, Orca, etc.

2. Software para robots 14 Simuladores Madurar algoritmos Comodidad trabajar sin robot Las caídas no duelen Mundo, sensores y actuadores OpenGl (OGRE) para imágenes Motor físico: ODE (Open Dynamics Engine) Gazebo, Stage, Webots, Microsoft Robotics Studio

2. Software para robots 15

2. Software para robots 16 Programación del robot LEGO NXT Aplicación Java LeJOS drivers

2. Software para robots 17 Programación del robot Aibo MIPS 450Mhz Objetos monohilo Se comunican vía mensajes Objetos básicos OVirtualRobotComm: Effector, Sensor, OFbkImageSensor OVirtualAudioComm: Mic, Speaker ANT Aibo Network Tool

2. Software para robots 18 Programación del robot B21 Aplicación C/C++ RAI/Beesoft/Mobility Linux motores ruedas sónares infrarrojos pantilt

2. Software para robots 19 Programacio n del robot Pioneer ArResolver ArActions Connect Disconnect Callbacks Comandos Directos de Movimiento Aplicación C++ Sensores ARIA Linux / MS Windows ArRobot P2OS / AROS ArRobot Packet Sender ArRobot Packet Receiver ArRobot Device Connect Robot (Simulado o Real) Acceso a los sensores y actuadores Librerı as, objetos ActivMedia: Saphira, ARIA (C++) c 2009 GSyC Programacio n de robots mo viles

2. Software para robots 20 Programacio n del robot Nao Aplicación C++/Python Naoqi AMD Geode 500Mhz Linux Objetos distribuidos, invocacio n de me todos remotos ALMotion ALVision... Mo dulos, brokers c 2009 GSyC Programacio n de robots mo viles

3. Plataforma software Jderobot 21 3. Plataforma software Jderobot Middleware para la programación de aplicaciones robóticas, domóticas y de visión computacional Implementación de la arquitectura cognitiva JDE Nace con una tesis doctoral y la mantiene un grupo de desarrolladores Prácticas de varias asignaturas de robótica en la URJC Aplicaciones robóticas (guiderobot, PFCs) y de visión computacional (eldercare, carspeed) Licencia GPLv3, paquete debian

3. Plataforma software Jderobot 22 1. Arquitectura cognitiva 2. Modelo de programación 3. Acceso a los dispositivos 4. Servicios 5. Bibliotecas 6. Proyecto de software libre

3. Plataforma software Jderobot 23 Arquitectura cognitiva JDE Comportamiento = percepción y control Fragmentación en unidades (esquemas) asíncronas concurrentes - de percepción elaboran estímulos - de actuación toman decisiones La colección de esquemas se organiza en jerarquía dinámica (JDE) Sigue el paradigma basado en comportamientos

3. Plataforma software Jderobot 24 Esquemas Un esquema es un flujo de ejecución independiente, con un objetivo Funcionamiento continuo Se puede activar y desactivar a voluntad Modulable a través de parámetros Esquemas perceptivos y de actuación Su funcionalidad se usa despertándolo y modulándolo

3. Plataforma software Jderobot 25 Esquemas perceptivos ACTIVACIÓN y PARÁMETROS de MODULACIÓN ESQUEMA PERCEPTIVO SENSORES ESTÍMULO ESTÍMULO ESTÍMULO Un estímulo es una pieza de información que al menos un esquema de actuación necesita para tomar sus decisiones Producen estímulos y los mantienen actualizados (anclados) Lecturas sensoriales, transformaciones más elaboradas Estados: dormido o activo

3. Plataforma software Jderobot 26 Esquemas de actuación ACTIVACIÓN y PARÁMETROS de MODULACIÓN ESQUEMA de ACTUACIÓN E.PERCEPTIVO E.ACTUACIÓN E.ACTUACIÓN ESTÍMULO ESTÍMULO Toman decisiones de actuación para conseguir o mantener un objetivo Su salida pueden ser comandos a los actuadores o la activación y modulación de otros esquemas hijos Estados: dormido, alerta, preparado o activo

3. Plataforma software Jderobot 27 Qué software hay en jderobot? Esquemas Drivers Servicios Plugins que se cargan (o no) en una ejecución concreta Diseño modular Bibliotecas auxiliares

3. Plataforma software Jderobot 28 Modelo de programación: esquemas Cada esquema se materializa en un componente software Los componentes son la unidad básica de la aplicación programada Cada esquema se compila por separado, es un plugin Cada esquema se implementa como una hebra (pthreads) El funcionamiento continuo como ejecución iterativa Iteraciones periódicas a cierto ritmo (motor temporal), para percibir o para actuar

3. Plataforma software Jderobot 29 Interfaz funcional para activar y desactivar a otros esquemas Los estímulos perceptivos se implementan como variables compartidas Los parámetros de modulación son variables compartidas Comunicación con otros componentes por memoria compartida, variables tipadas en interfaces de datos expĺıcitos Una aplicación robótica es un conjunto de esquemas concurrentes Varias hebras en la misma máquina Lenguajes C, C++, (python)

3. Plataforma software Jderobot 30 Interfaz funcional de un esquema Permiten a otros esquemas activar la ejecución de otros o detenerla schema init, schema terminate schema run, schema stop schema iteration schema show, schema hide

3. Plataforma software Jderobot 31 Motor temporal de un esquema schema cycle gettimeofday schema iteration usleep conditional wait

3. Plataforma software Jderobot 32 Interfaz de datos de un esquema Comunicación entre componentes, conexión con otros esquemas Interfaces fijan la estructura de los datos que un esquema publica o necesita Importación y exportación de variables Importa las variables que necesita Exporta las variables que produce Censo: qué esquema exporta qué interfaces (nombre) Leer y escribir variables Cada esquema mantiene su espacio de nombres

3. Plataforma software Jderobot 33 Interfaz gráfico de un esquema Es opcional Activable y desactivable a voluntad, cuando interesa Visualización, interacción Depuración, útil en desarrollo Modular: cada esquema tiene su GUI Cada esquema incluye el código de su interfaz gráfica Ejecución centralizada (conexión con XWindow) GTK, XForms

3. Plataforma software Jderobot 34 Acceso a los dispositivos El acceso al hardware se ofrece con drivers Los drivers son plugins que cargan uno o varios esquemas básicos Los esquemas básicos proporcionan interfaces de datos para sensores y actuadores Los esquemas básicos no tienen GUI El mismo interfaz de datos lo puede proporcionar varios drivers Mismo programa funciona sobre robot real o simulador. Independencia de la fuente de imágenes

3. Plataforma software Jderobot 35 Servicios Shell para activar/desactivar esquemas e interfaces gráficas desde consola de texto MasterGUI para activar/desactivar esquemas e interfaces gráficas visualmente Graphics gtk, glade Graphics xforms Networkserver y networkclient Un jderobot como proxy para otro Protocolo de comunicación: suscripción, comandos, imágenes (llega una y pide la siguiente) Webservice

3. Plataforma software Jderobot 36 MasterGui Permite activar/desactivar esquemas y su interfaz gráfico Muestra el ritmo de cada esquema

3. Plataforma software Jderobot 37 Consola de texto Permite activar/desactivar esquemas y su interfaz gráfico Muestra el ritmo de cada esquema ls, ps, quit, help show, hide run, stop

3. Plataforma software Jderobot 38 Fichero de configuración Fichero de configuración (jde.conf): Cada esquema o driver puede tener su propio fichero de configuración o empotrar su configuración en el fichero general Cuál es la fuente de cada dispositivo (local o remota) Qué drivers se van a usar, y qué esquemas básicos carga cada uno Qué esquemas del usuario se van a cargar Cuáles arrancar al principio

3. Plataforma software Jderobot 39 Bibliotecas Colorspaces: espacios de color para imágenes Fuzzylib: control borroso Progeo: relacionar las imágenes con 3D, cámaras calibradas

3. Plataforma software Jderobot 40 Jderobot, proyecto de software libre 44000 ĺıneas de código Comunidad de usuarios y desarrolladores Dónde conseguirla? Cómo preguntar dudas? Página web: jde.gsyc.es Listas de correo: jde-users@gsyc.es y jde-developers@gsyc.es Svn, trac, blog, mediawiki Paquete debian: apt-get install jderobot

3. Plataforma software Jderobot 41 Por qué software libre en robótica? Independencia de fabricantes Varios modelos de robots Libertad para modificar código fuente Aumentar la calidad del software Devolver el favor : Player, Stage, Gazebo, Opencv, GTK,...

4. Dispositivos soportados 42 4. Dispositivos soportados Soporte de muchos sensores y actuadores Player Robot Pioneer Laser: Hokuyo, Sick Cuellos mecánicos: Directed Perception, Sony Evi Simuladores: Stage, Gazebo Cámaras: usb, firewire, digitalizadoras, videos Wiimote Robot Nao

4. Dispositivos soportados 43 Interfaces para el robot Pioneer Base: motores, so nares, odometrı a Drivers: player, gazebo c 2009 GSyC Programacio n de robots mo viles

4. Dispositivos soportados 44 Interfaz para motores V Esquema motors Datos: v,w Drivers player, gazebo W front back

4. Dispositivos soportados 45 Interfaz de posición Esquema encoders Datos: x, y, theta (mm,radianes) Drivers player y gazebo Y x robot X Y y robot Θ robot X X

4. Dispositivos soportados 46 Interfaz para laser Esquema laser Datos: laser Drivers player y gazebo laser[3] laser[2] laser[1] laser[0] laser[179]

4. Dispositivos soportados 47 Interfaz para ultrasonidos us[2] us[3] Esquema sonars Datos: us Drivers player y gazebo us[1] us[7] us[0] us[8] us[15] us[14]

4. Dispositivos soportados 48 Drivers pantilt y evi Esquema pantiltencoders: pan, tilt Esquema pantiltmotors: latitude, longitude Interfaces para el cuello mecánico latitude longitude

4. Dispositivos soportados 49 Interfaces para ima genes rows columns Ca maras webcam USB, firewire, en red, digitalizadoras, ficheros Esquemas varcolora, varcolorb, varcolorc, varcolord Datos: varcolor Drivers: imagefile, mplayer, firewire, gazebo, v4l, video4linux2, naoqi c 2009 GSyC Programacio n de robots mo viles

4. Dispositivos soportados 50

4. Dispositivos soportados 51 Interfaces para wiimote Esquemas: buttons, accel, ir, nunchuk Datos: buttons, accel, ir, nunchuk Driver wiimote

5. Componentes desarrollados 52 5. Componentes desarrollados Aplicaciones y herramientas Conjunto de esquemas Materializan las capacidades perceptivas y de actuación Prácticas de robótica Investigación en robótica Aplicaciones domóticas Aplicaciones visión computacional

5. Componentes desarrollados 53 Teleoperator Visualiza los sensores, cámaras, etc. Permite teleoperar los motores (base y cuello)

5. Componentes desarrollados 54 Prácticas de robótica Introrob Choca-gira, control reactivo, autómata Navegación VFF Carreras, navegación híbrida Sigue ĺıneas visual El ratón y el gato

5. Componentes desarrollados 55 Introrob Pioneer con cámara, láser, cuello mecánico, us, odometría Prácticas de robótica

5. Componentes desarrollados 56 Investigación en robótica Taxias: FollowBall Seguir a una persona Buscar y seguir a un congénere Navegación local VFF Navegación global GPP Autolocalización

5. Componentes desarrollados 57

5. Componentes desarrollados 58

5. Componentes desarrollados 59 Herramientas de visión Filtros de color Cámaras en 3D Hsvtuner Calibrator Extrinsics OpenCVdemo

5. Componentes desarrollados 60 Aplicaciones de visión CarSpeed ElderCare Visualizador esqueletos de

6. Conclusiones 61 6. Conclusiones Plataforma para programar robots y aplicaciones domóticas o de visión computacional Software libre, comunidad alrededor Relajar la arquitectura cognitiva Simplifica las prácticas de robótica Está en crecimiento Distribución intermáquina (ICE) Interoperabilidad lenguajes