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

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

 * PC with USB game controller ou Nunchuck+Arduino UNO
 * Android phone or tablet

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.

UPnP
The Robot publishes 1 UPnP device profile and 6 UPnP service types. 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).
 * 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

SCA Binding
The UPnP SCA Binding implements 1 UPnP device profile and 6 UPnP service types.

Video
COMING SOON

Acknowledgement

 * Olivier Aycard