RobAIR-ICSOC12
A Dynamic SCA-based System for Smart Homes and Offices
Authors: Thomas Calmant, Joao Claudio Américo, Didier Donsez and Olivier Gattaz
DEMO PROPOSAL FOR ICSOC 2012 http://www.icsoc.org
Summary
We demonstrate the interoperability and the dynamism capabilities in SCA-based systems in the context of robotic for smart habitats. These capabilities are due to two developed tools: a Python-based OSGi runtime and service-oriented component model (Pelix and iPOPO, respectively) and a tool to publish SCA services as OSGi services (NaSCAr). By this, we have developed a robot service and a pilot' user-agent, which can dynamically add and remove sensors and widgets. This use case follows and responds to the ubiquitous computing trend and the runtime adaptivity needed in such systems.
Keywords: SCA, Service-Oriented Architectures, Component-Based Design, Dynamic Adaptation, Smart Habitats, Service Robotic
Hardware
Robot
RobAIR (Robot for Ambient Intelligent Room) is based on the Wifibot robot. The Wifibot had a chassis with 4 wheels geared by 4 DC motors with hall encoders. The Wifibot is controlled by an Atom D510 main board running under Linux (Kubuntu 10.04) or under Windows CE.
Wifibot' nuiltin sensors are
- PTZ webcamLogitech QuickCam® Orbit AF ou Logitech Quickcam Sphere AF
- Hokuyo Lidar (URG-04LX-UG01)
- Infrared sensors (left and right)
- Battery level sensors
- Odometer
For the demonstration, we have plugged several additionnal sensors on the available USB ports (remark: USB hubs are not correctly managed by the current OS distribution). Several analog and digital sensors are soldered on an Arduino shield piggybacked on an Arduino UNO board.
- Geiger counter Sensor
- Gas sensors (Arduino board)
- 133696 HC-SR04 Ultrasonic Sensor Distance Measuring Module (Arduino board)
- Inforad K0 NMEA-0186 GPS Receiver
- Wii Motion Plus I2C Gyroscope (Arduino board)
Extra sensors are
- XBox Kinect for depth images and webcam
- 139741 Arduino Infrared Obstacle Avoidance Detection Photoelectric Sensor for stair/hall detection (Arduino board)
- 135038 Arduino Flame Detection Sensor Module for flame detection (Arduino board)
Extra actuators are
- 135038 Arduino Flame Detection Sensor Module (Arduino board)
- scream out loud - 110dBA fixed tone Siren (controlled by a relay on the Arduino board)
Pilot's Console
Software
Component architecture
The robot's embedded software and the pilot's console are developed using 2 SCA composites. Inner components are developped in Python and in Java/OSGi. Components and Composites are bound using four types of SCA bindings : direct reference, local socket, UPnP, XMPP/Jingle (and SIP/Simple but not in this demonstration). The SCA containers are : NaSCAr/iPOJO for Java/OSGi and iPOPO/Pelix for Python.
Services and API
The UPnP SCA Binding implements 1 device profile with 3 service types.
The UPnP SCA Binding will include also in the future
- the standardized Digital Security Camera Profile (DCP)
Video
COMING SOON
Acknowledgement
- Olivier Aycard
References
- Calmant, T., Américo, J.C., Gattaz, O., Donsez, D., and Gama, K.: A dynamic and service-oriented component model for Python long-lived applications. In Proceedings of the 15th ACM SIGSOFT Symposium on Component-Based Software Engineering (2012) pp. 35–40.
- Américo, J.C., and Donsez, D.: Service Component Architecture Extensions for Dynamic Systems. Accepted for the 10th Int’l Conference on Service-Oriented Computing (2012)