Saturday, March 13, 2010
Wireless Communication for the Internet of Things
Thursday, March 4, 2010
Fun with port forwarding and SSH
client:~$ ssh-keygen
Leave all the values to default and use no password (simply press enter). Now, copy the key to gateway:
client:~$ ssh-copy-id -i .ssh/id_rsa.pub user_gateway@gateway_address
Now you can just ssh to gateway without using a password. Next, you might want to connect directly to target without having to SSH in gateway and from gateway to target. For this, you can set up a simple rule at your ssh_config file (normally in /etc/ssh/ssh_config) to forward text directly to targer through bridge:
ssh -L port_client:target:port_target user_gateway@gateway
Monday, February 15, 2010
Buzzwords
Buzzwords are, however, necessary. They attract attention and make people care. Without attention and care there are no desires to know more. Without those desires there is no investment, and without investment there is no progress. Without progress, concepts eventually die and are forgotten.
In the world of information and communication technologies, buzzwords create a delicate balance between the increase interest about a new research area and the road to damnation of unreachable funding. Interestingly, it seem impossible to control the buzzword influence, and with the increase of the buzz, news, conferences, blogs, books and interest groups spring eager to get a piece of the hype pie, spinning off new publicity waves that retrofit in the system in an apparent infinite loop. Concerning about the buzzword effect seems, therefore, useless. If it shall kill, it will, and should you find yourself in the middle of the storm, there is little to be done rather than try to secure funding while you can. With luck, that will give you some experience, publications and even prestige, and will help you to move towards the next research in your academic career.
Although concern about the buzzed concept's destiny seems futile, one can venture in identifying certain attributes that signal a disaster to come. It is so that the most powerful but deadly buzzwords are those that are too general to actually mean anything, letting the public imagine what is the concept behind them. Wide abstract ideas may seem beneficial at first because they increase the interest base with hardly related imaginative concepts. However, this fuzziness will eventually dilute the original meaning, propelling a devastating wave of public disappointment, either because what they thought it was it was not, or because what they thought it was could never be realised, weakened by the adulteration of uncontrolled brainstorming. I would therefore advice caution: don't let yourselves be carried away by the excitement of the public using buzzwords related to your research. Maintain your pure vision of what you have imagined, and argue against those who attempt to throw everything into the same sack. Don't succumb to the temptation of adulterating your ideas aiming to gain traction in the community, for that will bring in the long run counter-productivity and eventual apocalypses.
Since I purposely avoided naming specific buzzwords that match my argumentation, I invite the reader to name some. Which are the ICT buzzwords that you have come to love and hate?
Tuesday, March 3, 2009
Attending DECOI 2009
DECOI is more a “school” than what is traditionally understood as a workshop. The program was distributed in key-note presentations and work in projects. The project details were given on the first day of the workshop, and each group of 4-6 people had to choose one of such projects to work on for the rest of the week. My group chose the project titled “Learning, communication and establishment of norms in pedestrian crowds”. This project was first introduced by Anders Johansson and, for the time being, the slides can be found here. In his lecture, Dr. Johansson introduced a basic model of pedestrian behaviour in crowds. The objective of the project was to incorporate “smarter” behaviour in the pedestrians so they would negotiate better how to avoid getting stuck in groups of pedestrians that are trying to get to the same place at the same time. The project involved first to theorise how this intelligent behaviour could be accomplished, and then to develop a simulation that showed how smarter pedestrians (agents) could obtain better results.
The simulations were developed with NetLogo, which is a Java-based multi-agent simulation tool that deploys its own language. None of the team members had used this tool before, so we not only faced the challenge to first write the simplistic model that Dr. Johansson presented in order to build on top of it, but also how to do this using a programming tool that we didn't know. For this reason, we spent 3 days learning and building this basic model, and the last two days writing the new smart features and gathering results. The features that we implemented were:
A grouping factor, that encourages groups of “friends” to get closer to each other on the search for the goal.
A learning factor, that tries to remember which direction worked best in the past and use it in the decision making
A rumour factor, which is spread by those pedestrians which are stuck in a crowd and that tries to prevent other pedestrians to go towards the direction of the crowd
The simulation takes place in a room with two entries and one exit. The entries and the exit are separated by doors whose position and size can be varied. The objective of every pedestrian in the simulation is to get to the exit door as soon as possible. In order to avoid overlapping with walls and other pedestrians, a set of “forces” in the form of vectors are implemented and sum to the gradient force that attracts pedestrians towards the exit. A naïve approach would generate a crowd that tries to approach the exit through the shortest path, getting stuck in the intermediary door. All the smart features that we implemented helped one way or another to increase the performance of the system. A summary of the strategies and results can be found here . A Java applet accessible here allows you to play the simulation directly from a web browser.
Tuesday, January 20, 2009
Aircraft management with multi-agent systems
Here at DIAL we have a project sponsored by The Boeing Company to develop a multi-agent system for emergent behavior in aircraft configuration control. In this project, codenamed SAHNE (Self-serving assets for higly networked environments), agents are the virtual counterparts of aircraft spare parts, and are autonomous in terms of decision making regarding their life-cycle. In SAHNE, we put special emphasis in the process of part replacement, and develop a fully autonomous system in which the agents detect when the parts need to be replaced (e.g. expiration date on life bests, worn out of mechanical components, etc) and initiate and coordinate the parts procurement. This later process involves finding suppliers, ask for quotes on the replacements and decide which supplier will better supply the needed part for an specific aircraft.
My main role in this project is to assess the integration of sensor data into the agent decisions. Until now, the development of the platform focused on creating a certain degree of functionality based on static data and software agents. For the second year of the project, we will use actual spare parts and capture technologies to feed real-time data into the software agents. The project is scheduled to run until 2010.
Tuesday, November 20, 2007
RFID and Caterpillar
be compared with the information stored in the master tag. When a part is replaced, a discrepancy would be detected and the operator would be warned. A history of replaced parts would also be stored on the master tag. By means of this mechanism, we expect for vehicle maintainers to be able to know when parts have been replaced and how long the operation of a certain part has been. This mechanism is aimed to replace the current manual practices that are prone to human error and inaccurate information. Furthermore, even if the engine block is replaced, we still carry the information on the master tag, wherever that engine goes. That can help end-of-life part management. For example, we can know exactly which parts can be reused and which ones should be disposed.
To demonstrate these ideas, I helped to develop a software that simulates the engine start and then reads parts and mater tag. It then compares the information and warns the user about new parts installed, removed or replaced. It also updates the engine master tag. We then had a one-day field trip to a CAT research and development site nearby Cambridge (UK). There we installed tags and readers and tested the software in a real CAT tractor.


I must say that the trickiest part of all was to program the master tag update, because the tags we were using didn't have much memory to play around with.
Tuesday, September 4, 2007
Eclipse plug-in for WSN
Back then, other people have already done similar things. However, since we were (and are) building our own platform, prof. Kim felt that we had to have our own programming software to complement the kit (and, anyway, is not that the guys at ETRI were going to borrow us the Java code). The most interesting of all is that our laboratory did participate in 2004 in building this other platform. But anyway, that's another story. Nevertheless, it seems that prof. Kim also felt that I was the best option for coding the new IDE and make it look "good".
Summer past and I really didn't do much. I was into my research, and although I read some documentation to understand how the plug-in system works, I didn't really code anything. Eventually, pressure from some exhibition and others (such as prof. Kim :) made me take it seriously, and in less than one month and built a prototype that could do just that (well, more or less): program in C (CDT plug-in) and compile (winavr), download to the target board (avarice) and debug using a JTAG-ICE (also avarice and gdb). It looked (and still pretty much looks) like this:

It was quite tricky to get some of the functionality, and even now, the IDE is basically a prototype which just works with one kind of micro-controller and only downloads with a JTAG-ICE. I think I should mention that I was not free to do whatever I liked with the OS source (the WSN operating system that we are also developing), and whatever I did to the source tree, it had to be compatible with the "old" way of coding (namely, make a source file and use the command line to compile/upload the image to the sensor board) After the initial version, I tried to make some improvements. The first concern was that the current module selection system was based on a specific version of the OS. This is bad, because new boards and new chips bring the need for new drivers and the like. Also improvements on old modules need sometimes to be offered as a choice (eg. for testing). So my solution was to build a XML file for each main board and sensor board that we developed, specifying the name of the module and where the drivers in the source tree are located. Then, in the "new project" wizard, a user could choose first the main board, which will open the choice of associated sensor boards and so on. Unfortunately, although I began coding this, I had other more urgent things to do and finally I never completed it. Now it seems that a new post-Doc student will take care of my "creation". I hope he can understand my coding :)