Publicado el 22 de Septiembre del 2018
1.405 visualizaciones desde el 22 de Septiembre del 2018
28,2 MB
68 paginas
Creado hace 13a (28/11/2011)
Programación de aplicaciones en robótica,
visión artificial y domótica
José María Cañas Plaza
http://gsyc.es/jmplaza
Politécnico Colombiano JIC
Medellín, 21 noviembre 2011
Contenidos
1
Contenidos
1. Introducción
2. Software para robots
3. Plataforma jderobot
4. Aplicaciones robóticas
5. Aplicaciones de visión computacional
6. Aplicaciones domóticas
7. Conclusiones
c2011 URJC-Robótica
Programación de aplicaciones en robótica, visión artificial y domótica
1. Introducción
2
1. Introducción
Robótica ficción vs Robótica real
c2011 URJC-Robótica
Programación de aplicaciones en robótica, visión artificial y domótica
1. Introducción
3
Aplicaciones reales
Dull, Dirty, Dangerous
Industria automovilística: brazos para pintar, soldar, mover piezas...
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
Envasado de alimentos
c2011 URJC-Robótica
Programación de aplicaciones en robótica, visión artificial y domótica
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 pelí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
c2011 URJC-Robótica
Programación de aplicaciones en robótica, visión artificial y domótica
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.
La inteligencia reside en su software
c2011 URJC-Robótica
Programación de aplicaciones en robótica, visión artificial y domótica
2. Software para robots
6
2. Software para robots
Determina el comportamiento del robot
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
c2011 URJC-Robótica
Programación de aplicaciones en robótica, visión artificial y domótica
2. Software para robots
7
Requisitos específicos
Vivacidad, agilidad (tiempo real)
Multitarea (concurrencia, múltiples fuentes de actividad)
Distribuido, comunicaciones
Interfaz gráfica, depuración
Expandible
Hardware heterogéneo
c2011 URJC-Robótica
Programación de aplicaciones en robótica, visión artificial y domótica
2. Software para robots
8
Sistemas operativos y plataformas
Procesadores empotrados (robots pequeños) o PC (medianos-grandes).
Sistemas operativos: dedicados o generalistas
Middleware para simplificar la creación de aplicaciones robóticas
c2011 URJC-Robótica
Programación de aplicaciones en robótica, visión artificial y domótica
Hardware del robotdriversAplicaciónHardware del robotAplicaciónPlataformadesarrolloSistema Operativo2. Software para robots
9
¿Qué proporciona una plataforma sw para robots?
Abstracción
(HAL)
del
hardware
Arquitectura software
Funcionalidades de uso común
Arquitectura cognitiva
Comerciales, investigación, software libre
Ingeniería software: orientación a objetos, distribución
ROS, Orca, Carmen, OROCOS, ERSP, Player/Stage, Miro, etc.
c2011 URJC-Robótica
Programación de aplicaciones en robótica, visión artificial y domótica
2. Software para robots
10
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
c2011 URJC-Robótica
Programación de aplicaciones en robótica, visión artificial y domótica
2. Software para robots
11
c2011 URJC-Robótica
Programación de aplicaciones en robótica, visión artificial y domótica
2. Software para robots
12
Programación del robot LEGO NXT
c2011 URJC-Robótica
Programación de aplicaciones en robótica, visión artificial y domótica
driversLeJOSAplicación Java2. Software para robots
13
Programación del robot Aibo
MIPS 450Mhz
Objetos monohilo
Se comunican vía mensajes
Objetos básicos, OPEN-R
• OVirtualRobotComm:
Effector, Sensor,
OFbkImageSensor
• OVirtualAudioComm:
Mic, Speaker
• ANT Aibo Network Tool
c2011 URJC-Robótica
Programación de aplicaciones en robótica, visión artificial y domótica
2. Software para robots
14
Programación del robot B21
c2011 URJC-Robótica
Programación de aplicaciones en robótica, visión artificial y domótica
sónarespantiltLinux Aplicación C/C++infrarrojosmotores ruedasRAI/Beesoft/Mobility2. Software para robots
15
Programación del robot Pioneer
Acceso a los sensores y actuadores
Librerías, objetos
ActivMedia: Saphira, ARIA (C++)
c2011 URJC-Robótica
Programación de aplicaciones en robótica, visión artificial y domótica
ComandosDirectosde MovimientoConnectDisconnectCallbacksArResolverSensoresArActionsArRobot PacketReceiverArRobot Device ConnectRobot(Simulado o Real)SenderArRobot PacketArRobotARIAAplicación C++P2OS / AROSLinux / MS−Windows2. Software para robots
16
Programación del robot Nao
AMD Geode 500Mhz
invocación de
Objetos distribuidos,
métodos remotos
• ALMotion
• ALVision
• ...
Naoqi: Módulos, brokers
c2011 URJC-Robótica
Programación de aplicaciones en robótica, visión artificial y domótica
NaoqiLinux Aplicación C++/Python3. Plataforma software Jderobot
17
3. Plataforma software Jderobot
Nace como implementación de arquitectura cognitiva, tesis doctoral
Evolucionó a una plataforma de programación para aplicaciones robóti-
cas, domóticas y de visión computacional (sensores, actuadores, inte-
ligencia)
Orientada a componentes distribuidos y multilenguaje
La mantiene un grupo de desarrolladores, es abierta
http://jderobot.org, manuales, descarga, ejemplos
Software libre (licencia GPLv3), paquete debian
c2011 URJC-Robótica
Programación de aplicaciones en robótica, visión artificial y domótica
3. Plataforma software Jderobot
18
Arquitectura cognitiva JDE
Comportamiento = percepción y control
Fragmentación en unidades asíncronas concurrentes (esquemas)
- 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
c2011 URJC-Robótica
Programación de aplicaciones en robótica, visión artificial y domótica
3. Plataforma software Jderobot
19
Arquitectura cognitiva: 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
Su funcionalidad se usa despertándolo y modulándolo
Perceptivos: producen estímulos (piezas de información) y los man-
tienen actualizados. Lecturas sensoriales, transformaciones más ela-
boradas
Actuación: toman decisiones para conseguir o mantener un objetivo,
comandos a los actuadores o la activación y modulación de otros
c2011 URJC-Robótica
Programación de aplicaciones en robótica, visión artificial y domótica
3. Plataforma software Jderobot
20
Modelo de programación: Componente
Cada esquema se materializa en un componente software
El funcionamiento continuo como ejecución iterativa, iteraciones pe-
riódicas a cierto ritmo para percibir o para actuar
Ofrece funcionalidad y usa la de otros a través de interfaces explícitos
Aplicación = conjunto de componentes concurrentes que interoperan
Multimáquina y multilenguaje: C, C++, python, Java...
Usa el middleware de comunicaciones ICE (zeroC)
c2011 URJC-Robótica
Programación de aplicaciones en robótica, visión artificial y domótica
3. Plataforma software Jderobot
21
Ejecución iterativa
Iteración de control o de percepción
component cycle
gettimeofday
usleep
Espera condicional
Patrón de diseño Algoritmo iterativo
c2011 URJC-Robótica
Programación de aplicaciones en robótica, visión artificial y domótica
3. Plataforma software Jderobot
22
Interfaces tipados
Comunicación entre componentes, conexión con otros
Fijan la estructura de los datos que el componente ofrece o necesita
Cada componente puede necesitar y ofrecer uno o varios interfaces
Se definen con slice
Generación de código para múltiples lenguajes (C++, Java, Python...)
Mecanismos de transmisión de datos eficientes
• transmisión síncrona o asíncrona
• publicación/subscripción
c2011 URJC-Robótica
Programación de aplicaciones en robótica, visión artificial y domótica
3. Plataforma software Jderobot
23
Visualización
Modular y opcional: cada componente tiene (o no) su propio GUI
Cada componente incluye el código de su interfaz gráfica
Mostrar e interacción con humano
Depuración, útil en desarrollo
GTK, XForms, OpenGL
Patrón de diseño Modelo Vista Controlador
Se materializa en una hebra adicional
c2011 URJC-Robótica
Programación de aplicaciones en robótica, visión artificial y domótica
3. Plataforma software Jderobot
24
Acceso a los dispositivos hardware
Se da a través de componentes drivers
Acceden localmente al sensor/actuador y ofrecen acceso (local o re-
moto) a otros a través de interfaces ICE
No suelen tener GUI
El mismo interfaz de datos lo puede proporcionar varios drivers
• Mismo programa funciona sobr
Comentarios de: Programación de aplicaciones en robótica, visión artificial y domótica (0)
No hay comentarios