After my last supervisor meeting on Monday, Karim has asked for a working script so that we can move on to brainstorming scenarios for the experiments.

As I have mentioned before, the Mobiwan enabled ns-2 has certain problems. I’ve installed ns-2.26 and ns-2.27, both of which have been enabled for use with Mobiwan. These problems are:

  1. Lack of documentation: Thierry Ernst, the author of the Mobiwan code has provided documentation for ns-2.1b6. However, this was written in 2001 and appears to not exactly match up to the workings of ns-2.26.
  2. Lack of validation or example scripts: When Ernst produced the original Mobiwan, he included some scripts for the creation and management of topologies and also the validation of the installation. None of this has been provided for ns-2.26 or ns-2.27 with the added difficulty of scripts written for ns-2.1b6 not being compatible with ns-2.26 or ns-2.27.
  3. Lack of support: Thierry Ernst himself has said that all emails regarding Mobiwan will be politefully ignored. Furthermore, the ns mailing lists contains queries regarding the installation and creation of scripts for Mobiwan enabled ns, but most have no replies or follow-ups and all represent dead ends. In fact, it appears that the last known usage of Mobiwan from a Google point of view is about 2005.
  4. Age of the source code: This has been one of my biggest problems, resulting in my installing an older version of gcc and g++. The most recent version of Mobiwan was released in December 2004 so my confidence in Mobiwan wasn’t the best to being with! Just as a side, the Mobiwan patch for ns-2.27 hadn’t been tested according to Ernst so I don’t think using that version is a good idea.
  5. Limitations of the software: Mobiwan is missing some elements of the Mobile IPv6 protocols. It seems that not including elements that are not necessary for your simulations is a common occurence. Ernst himself even goes on to say that the software was designed for his purposes only and for anything else, you’re on your own. For example, my project was hoping to assess scalability with regards to numbers of nodes, including mobile nodes, but having multiple mobile nodes has not been implemented in Mobiwan.

With this in mind, I’m concerned that I’m not going to be able to deliver anything to my supervisor come Tuesday’s meeting. Using ns is very straight forward as the ns tutorial demonstrates, however Mobiwan seems to have changed the way ns works at some fundamental level. As a result, some elements exhibit different behaviour, i.e. throwing a TCL exception, with Mobiwan, and so it feels like I’m having to learn the software all over again. This is difficult given my TCL knowledge is very limited.

It is my intention now to go home and put these problems out of my mind for the evening. Hopefully, with a fresh head, I can make more progress tomorrow. But I am mindful of the fact that I have three other modules to work on this semester and are also important if I am to get a good degree.

If I still have no success, then I will have to discuss a contingency plan with my supervisor so that I can still meet my minimum requirements.

Since coming back to university after the Christmas break and completing my January exams I’ve had plenty of time to continue my experimentation on the reading roadsigns project and thought I’d post a quick update on whats been going on.

Recently I’ve been running a number of experiments in Matlab using SIFT and attempting to get various roadsigns recognised by using a cropped training set for a particular sign and then matching it against keypoint descriptors found in a test image.

I’ve been gathering statistical data and dumping this out to a file for analysis and further work but I’ve also been generating match images for each roadsign tested against the most favorable image from the training set. To give people an idea with how this is progressing I include an example of a very successful result on a STOP sign below.

Good Result

Its not all rosy though and I’ve been given food for thought after my interim report and some failures of the SIFT algorithm in recognising certian signs.

In my initial experimentation with actual roadsigns I decided to go for a simple sign as this would be less likely to be susceptable to noise. This was in fact quite an unwise decision as SIFT works by finding particularly unique points and I had effectively removed the possiblity of it finding such points by using a simple sign. I include below a matches image for a No Entry sign.

No Entry Sign Result

As you can see, its actually quite noisy. This is a problem which got me thinking about how I can make the whole process more robust and forced me to return to some of my early research on object recognition.

If I can use SIFT as a pre-processor then I can identify signs quickly and easily that have many descriptors such as STOP signs and then use a more basic system such a a template or colour match to identify the simpler signs such as the No Entry sign. I could also do it the other way around and will need to perform tests to decide what the best order is.

I’m currently working on an idea that SIFT could be used to detect the presence of any sign (not which one it is, but where it is) and then further tests could perform the recognition. In addition I’m researching examples of where SIFT has been modified to be used in colour and also how best to display experimental results. I’m also in the process of writing code to fully automate my training and testing process in Matlab so I should be able to run batch jobs and get results and test theories quicker.

Watch this space for more updates - its all go!

It has been a while so it’s about time I wrote about what’s been going on recently.  Firstly, I managed to get ns-2.26 installed on my laptop which I was subsequently able to get patched with MOBIWAN.  For those of you hoping to do the same, I noted the following:

  1. ns-2.26 needed to be compiled using an older version of gcc and g++ as the current version was too strict a compiler on the ns source code.
  2. I had to amend the headings of the install and configure scripts from #!/bin/sh to #!/bin/bash

So far, so good.  Now the problem is that I only have the one script to go on for understanding how ns works with MOBIWAN which is the simple-mipv6.tcl file which I downloaded from the MOBIWAN 2.26/2.27 website.

I also need to find a way for analysing the data.  So far two options are presenting themselves:

  1. Use a program called TraceGraph which works with Matlab.  Unfortunately the output trace file is not compatible as is, and so needs to be converted which is proving difficult.  I’ve searched the web trying to find some details on how to convert the file and there is information there, but trying to get it to work is proving difficult.
  2. Use a perl or awk script to analyse the trace files.  I’ve yet to explore this avenue which is something I plan to do next.

Which brings me on to my next point - the trace files themselves.  I ran the simple-mipv6.tcl script and it outputs a ~20,000 line text file of events.  Using the ns documentation and other information online, I’ve deciphered several entries.  However, it still is proving to be tricky understand what is going on when you’re seeing the simulation in a small event-by-event way.

Either I’m not clever enough or I need to get some concise information.  That said it’s hard to sort the wheat from the chaff when you’re not so sure what is going on!

In other news, I’ve managed to consult with a fellow student and we’re hoping to be able to assist each other with the data analysis.  Colin is doing a visualisation project and I’m hoping to provide him with useful data.

That’s all for now, but I’m hoping to make some more progress tomorrow.

It is interesting to note where the kind of research I am doing is ending up in the real world. This technology from Siemens highlights the presence of speed limit roadsigns to the driver and interfaces with the cruise control system. Pretty cool.

Siemens heads up road sign display

Recently I’ve been experimenting with the Scale Invariant Feature Transform (SIFT) algorithm. I began by downloading the open SIFT implementation for Matlab and then used it to gain an understanding of how the algorithm worked.

Since first using the implementation I have been able to demonstrate how to find objects that have previously been seen by the system in a completely new image, and have also managed to make use of the SIFT algorithm in a more generic fashion by applying it to one of my coursework tasks - to find faces and cars in a set of images.

The power and potential in this algorithm becomes immediately apparent after using it on test image for an hour or so and indeed my reading since first use of it in Matlab indicates to me that the use of this algorithm in the kind of task I am researching is highly recommended by a number of academics. I certainly intend to use my findings here as an important component in my interim project report.

I’ve just realised its been over a week since I last posted anything, so I better give an update. Thus far, ns2 has been installed on the School of Computing machines and it’s been updated to include MobiWan.  However, the problem is that I’ve accessed the machine where it’s located and I’ve got error messages stating that I’ve not got permission to access files.

So for now it’s back to support.  In other news, I’ve not been able to read anything in the last few days due to coursework commitments of other modules.  It’s certainly hard trying balance five modules and a final year project, but I’m meeting my Supervisor on Wednesday so I aim to read another couple of papers prior to then.

After the last meeting, it was decided that implementing Fast Handovers for Mobile IPv6 or Hierarchical Mobile IPv6 would be too demanding for a FYP.  So what I’m going to concentrate on is the scalability of the base specification of Mobile IPv6.

The proposed simulator is still ns2, assuming I can get it working - I’ve started to play with the simulator minus the Mobiwan extension on my own machine, so I’m starting to get a feel for it.

What is highly frustrating is that all the reading in the world will be for nothing if I can’t find a simulator to run my experiments on.  I’ve recently downloaded and installed Omnet++ to see if it’s a viable alternative but for now I’ll still persevere with it.

Will update again after my Supervisor meeting on Wednesday.

Welcome to the project blog of Reading Roadsigns. I wanted a place where I could quickly pen my thoughts about my project and share my findings with the world when I hit upon something I feel is worthy of a mention. I hope that though this site I can keep myself focused on the project by feeling I need to have something to say about what I’m doing and also by receiving input on my work in progress from the community at large.

I welcome any and all comments on my work and if you have something more substantial to say I encourage you to drop me an e-mail.

Nothing says “Reading Time” like a having six hours between sound-check and gig. So with this in mind, I’ve read another couple of papers relating to Mobile IPv6. What is nice about academic reading, is that the more you read, the more you seem to understand. Now that sounds a bit obvious, but if you’ve ever read an academic paper, you’ll know that it’s a bit like wading through treacle.

So what I’m trying to say is, perseverance is the key and you’ll soon find that as you go from one paper to the next, you see the same concepts being explained in different ways which all helps with understanding what the heck you’re doing!

So here’s the first of the two papers with a summary and critique.  WARNING! This is a LONG post!

Pérez-Costa, X., Torrent-Moreno, M., and Hartenstein, H. 2003. A performance comparison of Mobile IPv6, Hierarchical Mobile IPv6, fast handovers for Mobile IPv6 and their combination. SIGMOBILE Mob. Comput. Commun. Rev. 7, 4 (Oct. 2003), 5-19.

This is the first ‘long’ paper I’ve read thus far at 14 pages in length, but has been the most useful and relevant with regards to my project. This paper introduces some of the ideas and experiments that I may decide to use when designing and running my own experiments.

As the title suggests, the paper compares the performance of the base specification of MIPv6, Hierarchical MIPv6 (HMIPv6) and Fast Handovers for MIPv6 also known as Fast MIPv6 (FMIPv6).

As this is just a summary of the paper, the base specification of Mobile IPv6 will be described in my report so is omitted here. Hierarchical MIPv6 attempts to improve handover times by introducing a ‘micro-mobility’ protocol. What this means in essence, is that if a Mobile Node (MN) moves from one point of attachment to another within a particular IP subnet, then HMIPv6 manages the handover with a Mobile Anchor Point (MAP). It does this by acting as ‘local’ Home Agent (HA) which assigns a Regional Care of Address (RCoA) to the MN when it enters the MAP domain.

Next, the MAP informs the HA and correspondent nodes (CN) within the subnet of the RCoA of the MN. Finally, the MAP intercepts all packets and then forwards them on to the MN to its on-link care of address (LCoA). This means thatonly the MAP need know about the movement of the MN while it is in that particular MAP’s domain.

Fast Handovers for MIPv6 work by anticipating the next move of the MN. Essentially, this involves the old Access Router (AR) to act as a proxy to the MN while the MN attaches to a new AR. There follows a short period of time where the old AR forwards packets for the MN to the new AR before a Fast Binding Update is sent and the old AR link is severed.

There are a couple more papers referenced within the text that go into more depth which I hope to read soon.

The paper goes onto describe a combination of the two extensions called Hierarchical MIPv6 + Fast Handovers for MIPv6 or H+F MPIv6 which I won’t go into as a new internet-draft proposing a combination has been released.

What becomes interesting is that the paper describes the setup for the simulation using ns-2. The key phrase here was:

“…large enough to proveide realistic results but to be small enough to be handled efficiently within ns-2.”

Also the  Internet was modelled by adjusting the Link Delay and non-deterministic movement of the Mobile Node was modelled using the random waypoint model.  The wireless medium used the 2Mbps WLAN 802.11 DCF (Distributed Coordination Function) provided by ns-2.  The simulated network was small, but contained four distinct subnets, each of which was a Micro-Mobility Domain.

One interesting point that was raised in this paper was the issue that 802.11 and similar technologies do not allow the receipt of IP flows at different frequency bands simultaneously from two access routers.  That is unless you have multiple wireless interfaces.

The simulations utilised the following performance metrics:

  • Handoff Latency
  • Packet Loss
  • Signalling load
  • Bandwidth per Station (The number of stations was increased from 1 up to 50)

Another key point was that each experiment had to be run a number of times in order to get an average value.  This appears to be the best way of getting an accurate result be smoothing out extreme results.

The types of traffic sources used in the experiments were:

  • VoIP
  • Streaming Video
  • File download with TCP (Testing bandwidth)

The experiments focused on the results from one Mobile Node moving in a deterministic and non-deterministic manner with an increasing number of competing stations.  The traffic sources were used one at a time before the experiments were done using all of the traffic sources at the same time to simulate a ‘realistic’ scenario.

What I took away from this paper was that designing experiments was not an easy task and that the authors had obviously gone to great depths to investigate the peformance of theses extensions fully.  However, some questions still arose whilst reading:

  • Why did other nodes move randomly all the time?  What if  many mobile nodes were moving in the same direction at the same time?  For example this could be commuters on a train.
  • Why did the authors decide to not implement Binding Acknowledgements to Correspondent Node Binding Updates?  Surely to provide a realistic scenario it is necessary to include all features even if it incurs additional overhead.
  • Was the simulated network an over-simplification?  Is modelling the Internet so difficult?  I guess the answer to that is probably!

So to sum up, I’ve learnt a lot about what I’m going to have to do regarding the experiments I’ll need to design.  And I also learnt a lot about the workings of MIPv6 and its proposed extensions.

My thanks if you’ve gotten to the end of this post and I’ll post the details of the (much) shorter paper tomorrow!

I’ve now started to go through the process of learning LaTeX for the purposes of presenting my Final Year Project Report. What is interesting about LaTeX is that it takes care of the layout, all you have to do is specify the structure and of course the content! One of the frustrating things about MS Word is that it doesn’t allow you to lay things out as you want them without a fight! I’m hoping that through using LaTeX, my report will look professional and in keeping with academia.

Thus far, I am beginning to work my way through a tutorial by Andrew Roberts which can be found here.

There is also a Wikibook on LaTeX which can be found here.

It appears that my timing could be impeccable! The BBC has reported that Vint Cerf, who recently stepped down as chairman of the Internet Corporation for Assigned Names and Numbers (ICANN), has warned that ISPs need to roll out the ‘next generation’ of net addresses before the current IPv4 addresses run out. This date was reported as being 2010.

The full story can be read here.

Next Page »