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
- Arduino board with:
- LPG gas sensor (MQ-6)
- Methane gas sensor (MQ-4)
- Carbon monoxyde gas sensor (MQ-7)
- Flame Detection Sensor for flame detection
- Ultrasonic Distance Sensor
- Wii Motion Plus I2C Gyroscope
- Inforad K0 NMEA-0186 GPS Receiver
Extra sensors are
- XBox Kinect for depth images and webcam
- 139741 Arduino Infrared Obstacle Avoidance Detection Photoelectric Sensor for stair/hall detection (Arduino board)
Extra actuators are
- 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
XMPP/JINGLE
We have modified the GTalk user-agent JISIaccording to the robot and the pilot requirements.
UPnP
The Robot publishes 1 UPnP device profile and 6 UPnP service types.
- Robot1.xml (file)
- Chassis1.xml (file) for driving the chassis
- Sensor1.xml (file) for analog sensors
- CompositeSensor1.xml (file) for multiple value analog sensors
- DistanceSensor1.xml(file) for Lidar, IR and Ultrasonic distance sensors
- PositionSensor1.xml (file) for GPS
- IM1.xml (file) for Instant Message and Visioconferencing
Remark: The Robot1.xml device profile embeds optionally a device with the standardized Digital Security Camera Profile (DCP) for each on-board webcam (or Kinect).
SCA Binding
The UPnP SCA Binding implements 1 UPnP device profile and 6 UPnP service types.
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. website http://ipopo.coderxpress.net/
- 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)