Wednesday, December 21, 2011

Ending 2011

This post is just a Review of 2011 for our research group.

Summing up, it was a great year for us. Myself and Ana Ozaki were able to publish papers regarding our results in the uP and Ontologies. We hope this show more about our ways into the Ubiquitous Computing and were we want to go.

This year also two projects (par of the uOS) came to and end. One was the TRUE system, which added capabilities of User Tracking, Positioning and Recognition in the smart space. This was a great work that Tales and Danilo achieved. Other was the full implementation of the Hydra, a resource redirection application, conducted by Lucas Almeida.

For 2011 we have two new members to the group. Lucas Almeida and Carlos Botelho we'll be master students into our program. We also will have projects regarding improvements in the middleware itself and new applications.

So 2011 was great and 2012 will start full of great promisses.

Monday, November 14, 2011

WPOS 2011

Every year the Universidade de Brasilia (UnB) hold a workshop for all of its researchers. The name of the event is WPOS (Workshop de POS-graduação). Even though the focus is on Masters and PhD researchers, every year we also receive some very interesting results from undergrads.

This year was the first year that it was held in Brasilia itself, usually it's sited on a nearby city like Pirinópolis. Being so close is very fruitful for the ease of transport but don't come with the same atmosphere of engagement that the prior issues held.

During this edition the UnBiquitous was represented by myself (Fabricio Buzeto) and Ana Ozaki. Ana presented her results regarding Ontologies for smartspaces (in special de uOS). My job was to present my idea of a Code Mobility extension to the DSOA. The ideas were well accepted and received some valuable feedback.

Highlighting the some interesting parts of the day i can present: The talk from Professor Rohit Gheyi about its SafeRefactor tool. The always amazing speedup results from Alba Melo students regarding GPU and Clustering techniques and Deborah Mendes study regarding the W-Entropy Index for Social Networks.

And lets hope for the next year.

Wednesday, November 9, 2011

uOS/EPOS Termometer

Since we've put our hands in some nice EPOS-Motes came the idea of building a simple application to test-drive the gizmo.

The idea is not much original, but illustrate how the uOS and the EPOS mote can talk with each other using the SerialPort (of course the best option would be to use the 802.15.4, but it'll come in the future). Taking advantage of the fact that the StarterKit comes with a temperature sensor, we've created a simple Temperature Driver and Application in the uOS as follows.

The UART Communication


The EPOS code is very simple, consisting of a simple request-response serial communication that waits for the 'T' character as request token.


class UosUartTemperatureDriver {
private:
OStream cout;
UART uart;
Temperature_Sensor sensor;
public:
void run(){
while(true){
char c = uart.get();
if (c == 'T'){
int sample = sensor.sample();
uart.put(sample);
}
}
}
};


The Synchronous Temperature Service

For the synchronous (query) temperature service the driver side stays as follows:


public void sense(ServiceCall req, ServiceResponse res,
UOSMessageContext uosMessageContext) {
Integer temperature;
synchronized (communicator) {
communicator.send('T');
temperature = communicator.receive();
}
res.addParameter("temperature", temperature.toString());
}


The application side is just a driver check and a call.



String driverName = "org.unbiquitous.driver.temperature";
List<RemoteDriverData> drivers = gateway.listDrivers(driverName);
if (drivers != null && !drivers.isEmpty()) {
RemoteDriverData data = drivers.get(0);
ServiceCall call = new ServiceCall(driverName, "sense");
ServiceResponse response = gateway.callService(data.getDevice(), call);
System.out.println("Now is "+response.getResponseData("temperature")+"°C")



The Asynchronous Temperature Service


Asynchronous (publish-subscribe) happens in three steps. First the application need to register (subscribe) for the desired event (temperature change).


String driverName = "org.unbiquitous.driver.temperature";
List<RemoteDriverData> drivers = gateway.listDrivers(driverName);
if (drivers != null && !drivers.isEmpty()) {
RemoteDriverData data = drivers.get(0);
gateway.registerForEvent(this, data.getDevice(), driverName, data.getInstanceID(), "temperature_change");
}else{
System.out.println("No driver available.");
}


Then the driver must be able to respond for such changes. This is done in a temperature listener thread.


Thread sensor = new Thread(){
public void run() {
while (running) {
Integer temp;
synchronized (communicator) {
communicator.send('T');
temp = communicator.receive();
}
if (temp != lastTemp) {
lastTemp = temp;
Notify temperatureChange = new Notify("temperature_change", driver.getName(),TemperatureDriver.this.instanceId);
temperatureChange.addParameter("temperature", lastTemp.toString());
notifyListeners(temperatureChange);
}
}
}
private void notifyListeners(Notify temperatureChange) {
if (listeners != null){
for (NetworkDevice nd : listeners) {
UpDevice device = new UpDevice("DummyDevice");
device.addNetworkInterface(nd.getNetworkDeviceName(),nd.getNetworkDeviceType());
try {
TemperatureDriver.this.gateway.sendEventNotify(temperatureChange, device);
} catch (NotifyException e) {logger.error("Not posible to send event", e);}
}
}
};
};


Then the application is notified every time a temperature change happens.


public void handleEvent(Notify event) {
if (event.getEventKey().equals("temperature_change")){
System.out.println("Temperature changed to "+event.getParameter("temperature")+"°C");
}


The full code of both the application and the driver can be found at our github account.

Monday, November 7, 2011

EPOS Mote

During the last months we've received some nice gifts by our friends from the south. Professor Fröhlich from the Lisha (Software and Hardware Integrated Lab, Laboratório Integrado de Software e HArdware in portuguese) laboratory at UFSC sent us three Epos-Motes version 2.

The EPOS (Embedded Parallel Operating System) is an Object-Oriented OS focused on the development of sensors and other specialist software/hardware applications. It follows a ADESD (Application-Driven Embedded System Design) approach, which focus on a better way to build such applications. The OS can be used in a wide variety of platforms and processors.

The documentation present on the EPOS Wiki has many information about how to develop using EPOS, what you don't find there you can ask in the discussion list, which is very active in helping new users.

The EPOS-Mote version 2 we've received are equiped with a ARM-7 processor with 96 MB RAM and 128 MB Flash. It has a 802.15.4 RF TX/RX and a YYYY. The Start Kit comes with a USB/UART for embedding applications (and serial communication) along with a Thermometer, Accelerometer, LEDs and a Button. 

Installing the EPOS environment is just as described in the documentation.
Before everything you'll have to register to the EPOS website and agree with their license
For installing the development environment at a Linux SO follwo these steps:

1: Install the arm cross compiler:
Download it from the the site onto the /usr/local/arm/gcc folder.

sudo mkdir /usr/local/arm 
cd /usr/local/arm/ 
sudo wget http://www.lisha.ufsc.br/~arliones/arm-gcc-4.4.4.tgz 
sudo tar xzfv arm-gcc-4.4.4.tgz 
sudo ln -s /usr/local/arm/gcc gcc-4.4.4 gcc 
sudo rm arm-gcc-4.4.4.tgz 

2: Install g++:
sudo apt-get install g++
3: Install EPOS Environment: 
Download the latest version of the OpenEPOS source code and Unzip it on a folder of your choice.

sudo mkdir /opt/EPOS 
sudo chown <user> /opt/EPOS/ 
mv ~/Donwload/OpenEPOS-1.1RC.tgz /opt/EPOS/ 
cd /opt/EPOS 
tar xzfv OpenEPOS-1.1RC.tgz 
rm OpenEPOS-1.1RC.tgz

Set the EPOS variable to the OpenEPOS folder.
export EPOS=/opt/EPOS/OpenEPOS-1.1RC/
Add EPOS tools and arm-gcc to the PATH

export PATH=$PATH:$EPOS/bin 
export PATH=$PATH:/usr/local/arm/gcc/bin
For testing your environment run a make veryclean all.

Configuration:

The EPOS environment comes already set to the EPOS-Mote-2 but any changes on the architecture used can be modified at the makedefs file and choosing the option that best suits you.

HelloWorld:

For testing the environment compile the following code.

#include <utility/ostream.h> 
__USING_SYS 
int main() { 
OStream cout; 
while (true) 
cout << "Hi EPOS\n"; 
return 0; 
}

Save it to a helloworld.cc file in the app folder.
The run make APPLICATION=helloworld.
To embed the application in the mote you must convert the image file to an arm binary and then transpit it to the mote using the USB/UART cable using the followinf commands.
arm-objcopy -I elf32-little -O binary img/helloworld.img img/helloworld.bin 
python bin/red-bsl.py -t /dev/ttyUSB0 -f img/helloworld.bin 
To check your application running you can use a serial application like cutecom (or minicom). Set it to 9600 baud-rate and see your output on the screen.

That's it for now. More news about our use of the EPOS-Mote in a near future.

Tuesday, September 13, 2011

Hydra Application for the middleware uOS

The group's middleware, uOS, focuses on adaptability of services. But that very adaptability can only be seen when there are applications dealing with the various devices inserted in the environment. Therefore, the Hydra application aims to fill a part of that role. The undergraduate student currently working on it is Lucas Augusto de Almeida (me). I joined the team at the beginning of this year of 2011, while searching for a project to work on as the graduation essay.



Hydra will divide a computer's peripherals as individual resources that will be controlled by different devices in the smart space, if they present the proper drivers. Currently, the aim is to offer Mouse, Keyboard, Camera and Screen resources for the smart space. So far, the mouse and keyboard drivers were already finished, and I'm studying how to write the Camera and Screen drive codes.

As an example regarding the usefulness of Hydra, I'll present two scenarios.

Lets suppose there's a meeting going on. While Madison presents some slides, Ethan doesn't understand some part of the presentation and requests control over the mouse to better explain his/her doubts. Madison uses Hydra to offer control over his computer's mouse pointer and Ethan then controls it using his own cellphone or computer.

A teacher wants to present how to configure some software to his/her students. S/he offers her screen as a resource and the students use Hydra to capture it and display on their own monitors. Then everyone can watch closely every step involved.

That's it. The idea is to finish the development and test by the end of November. Let's see how things will roll!

Monday, September 5, 2011

Tracking, localization and recognition of users in a SmartSpace

One of the group recent activities is in Computer Vision area. It is being developed by two Computer Science students of ''Universidade de Brasilia'': Danilo Avila (me) and Tales Porto.
Nowadays, I'm working at "SEA Tecnologia" developing web systems. Tales works at "Mirante Tecnologia", also developing web systems. We joined this research group at the beginning of this year (2011).

Danilo ÁvilaTales Porto

At the Unbquitous group we're trying to build a system to track, localize and identify people in our SmartSpace called LAICO. We're using some open source libraries like OpenCV, OpenGL and OpenNI and Kinect Sensor from Microsoft as a camera device.
Basically we use the kinect depth data and OpenNI library and drivers to identify new users in the scene and track them. When a new user enters the scene an event is generated and a callback function handles it. This callback function gets the new user's pixels, creates a new rgb image with kinect rgb data and transfers this new image to a recognition module.


User tracked and identified.Kinect.

The recognition module receives the user's image and perform face recognition. Our algorithm uses viola-jones method for face detection and eigenfaces algorithm for face recognition, both implemented by OpenCV library. When the recognition is performed, we return the name of the user identified and the confidence of the recognition back to the tracker module.
In spite of performing recognition in just new users, we keep trying to recognize users already recognized to improve the confidence in the recognition. Then we add a label to the user with it's name and confidence.
At this moment the system can identify and track users in the smartspace with no problem. But there is some issues that can't be resolved using just one kinect, like obstruction and when the user's face can't be get by the kinect because of it's position.
Now we are trying to improve the recognition confidence and to integrate our system with the middleware UbiquitOS.

Monday, August 22, 2011

The founders

Now we want to start a series of introductions of our members and their current work in progress.
In the first post of the blog we talked a little bit about our how the group emerged. But we didn't spent much time talking about our team back then. As the team emerged from previous work from Alexandre Gomes at that time we had the presence of his professors Ricardo Jacobi and Carla Castanho. The group also had the presence of Fabricio Buzeto, Estevão Passarinho, Pedro Berger and Humphrey Fonseca.
At present time only Buzeto, Jacobi and Castanho are members of the UnBiquitous but Gomes and Berger still act as consultants when needed.

For starts I'll present the founder members of the research group only and in later posts we'll dig deeper in their contribution to ubicomp.


Ricardo Pezzuol Jacobi


Ricardo Pezzuol Jacobi is an associate professor in the Computer Science Department, Universidade de Brasilia, Brazil. Jacobi has an MsC in electrical engineering from Universidade Federal do Rio Grande do Sul, in 1986, Brazil, and a PhD in Applied Sciences from Université Catholique de Louvain, Belgium, in 1993. He is currently vice-director at the UnB Gama Faculty, a new technology campus created in 2008 at Gama, Brazil.  He published over 60 papers in refereed journals, conference proceedings and book chapters and has coordinated several projects in Microelectronics and Embedded Systems, including international cooperations.  His research interests include Embedded System Design, Bioinformatics, Digital TV, Reconfigurable Architectures and Ubiquitous Computing.


Carla Denise Castanho


Carla Denise Castanho is an associate professor in the Department of Computer Science at Universidade de Brasília, Brazil, since 2005. She received her M.E. and Ph.D. degrees from the Department of Electrical and Computer Engineering at Nagoya Institute of Technology, Japan, in 1998 and 2001, respectively. Her current research interests include Game Development, Ubiquitous and Pervasive Computing.


Pedro de Azevedo Berger


Graduated in Eletrical Engineering at the Universidade Federal do Ceará at 1999, and M.E and Ph.D. at the Universidade de Brasília in 2002 and 2006. In the present moment is an associate professor at the Universidade de Brasilia conducting research in Digital Signal Processing, Data Compression, Digital Transmission, Embedded Systems and  both Hardware and Software Design.

Alexandre Rodrigues Gomes


Alexandre is one of the founders of Sea Tecnologia as main coach on several projects ranging from mobile software to intelligent hardware. With a Master Degree at the University of Brasilia as a result of the proposition of the UbiquitOS middleware.

Fabricio Nogueira Buzeto


Fabricio is the CIO of Intacto Software Engineering, responsible for coordinating efforts in software and people development. With a Master Degree at the University of Brasilia currently devoted to research in improvements in software engineering with its main focus on ubicomp and smart space systems. Currently is responsible for the uOS project and founder member of the UnBiquitous (Group of Study in Ubicomp of the UnB).


Estevão Lamartine Passarinho


Estevão is a Software Developer with expertise in web and mobile solutions. Graduated in the Universidade de Brasilia in Computer Science. His research contributed with a the plugin architecture for the communication layer of the uOS middleware. 


Humphrey Correa da Fonseca


Humphrey is an EAD analist and teacher at Centro Educacional Ceilância. Graduated  in the Universidade de Brasilia in 2007 focused his research on the use of ubiquitous services for classrooms and enhanced learning.

Sunday, July 31, 2011

Context Information Management in the uOS middleware


From 19th to 22th of July the XXXI Brazilian Computer Society Congress (CSBC) has held in Natal (RN). Our project participated to the Brazilian Symposium of Ubiquitous Computing (SBCUP), one of the events of this Congress. 13 papers were accepted to SBCUP, which represents 35% of the total of papers submitted. Our accepted paper presents a model for context information management based on ontologies. Professor Dr. Hyggo Oliveira de Almeida from the Federal University of Campina Grande started the event by presenting an overview of context awareness state of art.

Monday, July 25, 2011

The Laboratory - LAICO

Since the foundation of the UnBiquitous Research Group in 2007 the LAICO laboratory was the place where our activities were done. LAICO stands for LAboratório de sistemas Integrados e COncorrente, which in english means Concurrent and Integrated Systems Laboratory. The laboratory is the house of many projects in the Department of Computer Science for the University of Brasilia including us.

Here were going to talk a little bit about the research Unbiquitous has been doing there.


Monthly we get together to talk about what each researcher is doing. We call it the uOS-Gathering. It's a very important moment to share information and knowledge. Here PHD candidates, graduates and undergrads sit together to discuss about what happened and what we intend to do.

The uOS middleware is now available in JSE and JME versions but we've been working to port it to other platforms. The Android is one of them. Smart Phones plays an important role nowadays making them a key player in order to achieve our users.

We don't limit ourselves to Android, but have also the intention to begin the porting to the iOS platform.

The Arduino is the platform chosen for testing the limits of our proposal. Since we aim in limited device, this Open Hardware solution suits well our needs.

At last, we have been working on applications for our platform. Among them we've been using the Kinect sensors to aid in locating and identifying users in the smart space.


Thats it. I hope you liked our laboratory and pay us a visit.

Thursday, July 7, 2011

uMedia 2011 and the uP Protocol set

On this last weekend (3rd and 4th of july) was held the 4th International Conference on Ubi-media Computing (or just umedia) on the city of São Paulo, Brazil. Umedia accepted our paper about the uP protocol set and was represented by myself.


This was the first time that this conference took place outside Asia. There was more than 100 papers submitted and 34 were accepted, most of which were from China there was submissions from Switzerland, Germany, Taiwan, Australia, Portugal and Brazil (among others). The three keynotes presented different subjects related to each research field. Professor Timothy K. Sith, from National Central University at Taiwan, showed very interesting achievements in video forgery that associated with augmented reality places great advances in ubicomp. Professor Jo Ueyama, from University of São Paulo at Brazil, presented his achievements in using Wireless Sensors Networks in order to prevent floods. The last keynote. Claudio Pinhanez from IBM Research at Brazil, discussed about many topics related to ubicomp and defended his view of Ubiquitous Services as a different approach for ubicomp solutions.

The uP protocol set


Our paper was entitled "uP: A Lightweight Protocol for Services in Smart Spaces" and showed part of our research at the unbiquitous research group. This protocol set is part of a composite solution that involves the DSOA (Device Service Oriented Architecture) and the uOS middleware. The presentation can be seen as follows or here.

Wednesday, June 1, 2011

Unbiquitous goes to SBCUP and UMEDIA

This last month we've received some very good news for our research group. We had two papers aproved for two conferences on this year. The SBCUP and UMEDIA that will be held in Natal and São Paulo, both in Brazil.

SBCUP

The SBCUP (Brazilian Symposium of Ubiquitous Computing) is one of the tracks that composes the SBC (Brazilian Computing Society) annual congress (CSBC). It's one of the major events for Computer Science in the country, ranging many related topics. The event will be held in the beautiful city of Natal at Rio Grande do Norte.

The paper accepted for this conference was named "Um modelo para o gerenciamento de ontologias em ambientes ubíquos" (An ontology management model for ubiquitous environments). This paper presents Ana Helena Ozaki proposal of a ontology model for DSOA and uOS in order to add context awarenes features to our system.

UMEDIA

Umedia (Internetional Conference of Ubi-media Computing) is an IEEE international conference that will be hosted in the big city of São Paulo. The conference aims on many subjects related to the ubi-media topics.

I'll be presenting the paper entitled "uP: A lightweight protocol for services in smart spaces". This paper is a continuity of our presentation of the DSOA architecture. It shows in more detail our uP protocol set, the communication layer behind the uOS middleware.

Summing up

We are very happy for this achievement of our group and hope to be presenting here - soon - what was the result of such events. As soon as each paper are published we'll be informing its links here and on our research group website.

Saturday, May 21, 2011

The UnBiquitous Research Group

The UnBiquitous Research Group was born in 2007 as a development of Alexandre Gomes Master Thesis. As the name announces we're interested in Weiser's vision of the Ubiquitous Computing (or just ubicomp). Following his first articles and the following development of researches and companies we aligned our efforts for the creation of the so called Smart Space.

Our vision of a Smart Space relies in the intelligent use of the computational resources in the environment. We believe that computing capabilities will be more and more pulverized in common objects over time. In this reality the a transparent and coordinated way of this devices to cooperate in order to aid the users will bring to life what ubicomp truly intended.

We know that the path to reach this scenario is still ahead, but many developments show that we're already living the integration of many new devices in our lives every year. The first endeavour of our research was the purpose of an architecture that brought organization and easy communication among devices. Using concepts of SOA, this architecture was named DSOA (Device Service Oriented Architecture). This architecture is an evolution what was proposed for the UbiquitOS middleware which later was adapted to be full compliant to its new form.

Since then we've been conducting many research regarding smart space architectures, middlewares, communications protocols, ontologies, interaction technologies and other subjects aligned with our purpose to bring intelligence to our environment. If you want to know more about our work visit our website and our google code page, and for further information keep tuned to our blog.