Difference between revisions of "GSOC2010UANFramework"

From Nsnam
Jump to: navigation, search
Line 165: Line 165:
# 27/06 - 03/07        Test cases for Sea Gliders AUV simulator
# 27/06 - 03/07        Test cases for Sea Gliders AUV simulator
# 04/07 - 11/07        Example scripts for AUVs simulator and Helper class
# 04/07 - 11/07        Example scripts for AUVs simulator and Helper class
# 12/07                Mid Term Evaluation submission
# 12/07                Mid Term Evaluation submission, [[GSOC2010UANFramework/MidTermReport|Mid Term Report]]
# 13/07 - 19/07        Implement the AUV energy source classes
# 13/07 - 19/07        Implement the AUV energy source classes
# 20/07 - 22/07        Implement the WHOI modem energy model class
# 20/07 - 22/07        Implement the WHOI modem energy model class
Line 174: Line 174:
# 06/08 - 16/08        Documentation and Integration of the project
# 06/08 - 16/08        Documentation and Integration of the project
# 16/08                Final Evaluation submission
# 16/08                Final Evaluation submission
== References ==
== References ==

Revision as of 09:57, 6 July 2010

Underwater Acoustics Networks is a research field that, in the last year, is gathering attention from researchers all over the world. Infact, the need for underwater wireless communications exists in applications such as remote control in offshore oil industry [3], pollution monitoring in environmental systems, speech transmission between divers, mapping of the ocean floor, mine counter measures [4], seismic monitoring of ocean faults as well as climate changes monitoring. Unfortunately, making on-field measurements is very expensive and there are no commonly accepted standard to base on. Thus, the priority to make research work going on, is to realize a complete simulation framework that researchers can use to experiment, make tests and make performance evaluation and comparison. The NS-3 UAN module is a first step in this direction, trying to offer a reliable and realistic tool. Infact, the UAN module, offers accurate modelling of the underwater acoustic channel, a model of the WHOI acoustic modem (one of the widely used acoustic modems)[8] and its communications performance, and some MAC protocols. This project, will integrate the efforts of UAN module, extending it to make a simulation framework that researchers will be able to use for their aims. The extension will consists of an Autonomous Underwater Vehicle (AUV) simulator (navigation and movement) alogn with an implementation of AUV batteries. Moreover, it will be implemented, a power model for the WHOI <math>\mu</math>modem and, the available MAC protocols, will be modified to use the energy class. For the moment, the UAN module can be used to make some sort of performance comparisons of the available MAC protocols, or tests the communication channel. With the proposed extension, researchers will be able to use the framework to develop and evaluate their "applications". An application, is intended as a more complete concept, including each parts of the UAN module integrated with the proposed extensions. Then, the final result, will be a complete simulation stack for underwater network applications.


The work will be divided into two main parts:

  • the AUV simulator
  • the energy classes implementation

Thus, the project components will be:

  1. AUV simulator
  2. classes for AUV batteries and WHOI modem power profile
  3. Helper and utility classes for 1.
  4. Test cases

Use Cases

AUV simulator: the user will be able to program the AUV to navigate over a path of waypoints, to control the velocity, profundity, direction and pitch of the AUV, as well as to tell the AUV to emerge or submerge. Energy classes: the user will be able to use a specific power profile for the WHOI acoustic modem as well as a specific energy model for the AUV. The user will also be able to trace the power consumption of the available MAC protocols.

Components Description

  1. AUV simulator
    Implement a model of the real world movement/navigation of AUV. This involves implementing two classes modelling the two major categories of AUVs: electric motor propelled (like REMUS class [5][6]) and "sea gliders" [7].
    The classic AUVs are submarine-like devices, propelled by an electric motor linked with a propeller. Instead, the "sea glider" class exploits small changes in its buoyancy that, in conjunction with wings, can convert vertical motion to horizontal. So, a glider will reach a point into the water by describing a "saw-tooth" movement.
    Modelling the AUV navigation, involves in considering a real-world AUV class and, model its features into the simulator.
    Thus taking into account weight, maximum velocity, directional capabilities, emerging and submerging times.
    Regarding the sea gliders, will be modelled the saw-tooth movement and its times.
    The AUV class is supposed to aggregate a navigation application (not required) and a transducer.
  2. Implementation of AUV batteries and WHOI modem power profile
    This will be done exploiting the newly reviewed energy model. Implement a specific energy model for the AUV batteries (both REMUS and Seaglider). This will be really useful for researchers to keep trace of the AUV operational life.
    Implements a WHOI modem specific power profile, to keep trace of its power consumption. This can be used to compare the protocol specific power performance. In order to managing to use such power profile, the available MAC protocols will be modified i order to use the modem power profile.
  3. Helper and utility classes for 1.
    An Helper class will be implemented for the AUV simulator to allow users don't mind about the back office operations. Some utility classes will be implemented to let users set the navigation route more easily, improving usability.
  4. Test cases
    Following the ns-3 development model, test cases will be written as required, to test the working of the AUV simulator, of the energy-related classes and of the utility classes.

Components Details

AUV simulator

The class diagram for the AUV Simulator implementation

The API for the AUV simulator will looks like:

class UanAuvMobilityModel : public MobilityModel
   * Makes the AUV to move forward
  void Move (void);
   * Makes the AUV to stop
  void Stop (void);
   * Makes the AUV to emerge at the maximum velocity
   * to the given depth
   * \param depth the depth to which emerge to, in m (negative)
  void Emerge (double depth);
   * Makes the AUV to submerge at the maximum velocity
   * to the given depth
   * \param depth the depth to which submerge to, in m (negative)
  void Submerge (double depth);
   * \returns the current pitch in degrees
  double GetPitch () const;

   * \param pitch the pitch to set in degrees
  void SetPitch (double pitch);
   * \returns the current depth
  double GetDepth (void);
   * \returns the current direction in degrees
  double GetDirection (void) const;
   * \param the heading direction in degrees
  void SetDirection (double dir);
   * \returns the current speed in m/s
  double GetSpeed () const;
   * \param speed the speed to set in m/s
  void SetSpeed (double speed);
   * \param velocity the velocity vector to set
  void SetVelocity (const Vector &velocity);
   * \param cb the callback being called at the end of the emerging process
  virtual void SetEmergeCallback (Callback<void, Ptr<MobilityModel> > cb) = 0;

   ** \param cb the callback being called at the end of the submerging process
  virtual void SetSubmergeCallback (Callback<void, Ptr<MobilityModel> > cb) = 0;

This interface will be implemented by the UanRemusMobilityModel and the UanGliderMobilityModel classes. Both model will use a constant velocity movement. The two classes will hold the navigation parameteres for the two different AUVs, like maximum gliding angles, maximum operating depth, maximum and minimum velocity. The relative helper class, will allow the user to instantiate the intended AUV type, to install an application container, as well as the uan communication stack (mac, transducer, channel).

Along with these two mobility models, it will be developed two Mobility Traces Generators, one for the Remus and one for the SeaGlider. The Seaglider's one, will implements the characteristic whale-like movement of the AUV, according to the documentation [7].

Energy-related classes

AUV energy source

Basing on the Energy Source interface, it will be implemented a specific energy source for the two AUV classes (REMUS and Seaglider). This classes will reproduce the behaviour of the AUV batteries to give users an accurate model. This model can be naturally used to evaluates the AUV operating life, as well as mission-related power consumption, etc.

WHOI <math>\mu</math>modem energy model

Basing on the Device Energy Model interface, it will be implemented a specific energy model for the WHOI <math>\mu</math>modem. The class will model real-world modem energy consuptions.

MAC energy modifications

The connection point between the energy source and the energy model, will be the MAC layer. This layer, is the one responsible of using the two classes. Thus, the available underwater MAC protocols, will be modified to use the energy model class.


  1. Two AUV simulator classes.
  2. Two AUV energy source classes.
  3. An WHOI modem energy model class.
  4. An Helper class for AUV simulator.
  5. Test cases for 1. and 2.
  6. Example scripts for 1.and 2.
  7. Documentation.

Usage and Examples

Work in progress. The examples will be added as soon as possible. Stay tuned!


  1. 24/05 - 30/05: Design the overall architecture, make UML diagrams, identify the key aspects and problems of the implementation
  2. 31/05 - 09/06 Implement the electric motor propelled AUV simulator
  3. 10/06 - 16/06 Test Cases for electric motor propelled AUV Simulator
  4. 17/06 - 26/06 Implement the Sea Gliders AUV simulator
  5. 27/06 - 03/07 Test cases for Sea Gliders AUV simulator
  6. 04/07 - 11/07 Example scripts for AUVs simulator and Helper class
  7. 12/07 Mid Term Evaluation submission, Mid Term Report
  8. 13/07 - 19/07 Implement the AUV energy source classes
  9. 20/07 - 22/07 Implement the WHOI modem energy model class
  10. 23/07 - 26/07 Energy modification of the underwater MAC protocols.
  11. 27/07 - 30/07 Test cases for energy related classes
  12. 31/07 - 05/08 Example scripts for power management layer
  13. 09/08 Suggested 'Pencil Down'
  14. 06/08 - 16/08 Documentation and Integration of the project
  15. 16/08 Final Evaluation submission


[1] NS-3 Bug 800, http://www.nsnam.org/bugzilla/show_bug.cgi?id=800

[2] Mazzetti, P.; Nativi, S.; Sacco, A.; Bigagli, L.; , "Integration of REST style and AJAX technologies to build Web applications; an example of framework for Location-Based-Services," Information and Communication Technologies: From Theory to Applications, 2008. ICTTA 2008. 3rd International Conference on , vol., no., pp.1-6, 7-11 April 2008 URL: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4530218&isnumber=4529902

[3] BINGHAM, D.; DRAKE, T.; HILL, A.; LOTT, R.; The Application of Autonomous Underwater Vehicle (AUV) Technology in the Oil Industry – Vision and Experiences, URL: http://www.fig.net/pub/fig_2002/Ts4-4/TS4_4_bingham_etal.pdf

[4] AUVfest2008: Underwater mines; http://oceanexplorer.noaa.gov/explorations/08auvfest/background/mines/mines.html

[5] Hydroinc Products; http://www.hydroidinc.com/products.html

[6] WHOI, Autonomous Underwater Vehicle, REMUS; http://www.whoi.edu/page.do?pid=29856

[7] Eriksen, C.C., T.J. Osse, R.D. Light, T. Wen, T.W. Lehman, P.L. Sabin, J.W. Ballard, and A.M. Chiodi. Seaglider: A Long-Range Autonomous Underwater Vehicle for Oceanographic Research, IEEE Journal of Oceanic Engineering, 26, 4, October 2001. URL: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=972073&userType=inst

[8] L. Freitag, M. Grund, I. Singh, J. Partan, P. Koski, K. Ball, and W. Hole, The whoi micro-modem: an acoustic communications and navigation system for multiple platforms, in In Proc. IEEE OCEANS05 Conf, 2005. URL: http://ieeexplore.ieee.org/iel5/10918/34367/01639901.pdf

About me

My name is Andrea Sacco I was born 1985 and I live in Prato, Italy. I am currently finishing the Master of Science in Telecommunications Engineering at University of Florence (Italy), which I started in 2007. My Master thesis work is supervised by Prof. Romano Fantacci and Prof. Tommaso Pecorella, both from the University of Florence, and I've collaborated with Prof. Alvaro Suarez from the University of Las Palmas de Gran Canaria (Spain) during my Erasmus period (from 10/2009 to 3/2010). I am going to defend my Master Thesis on mid-July. I already have a Bachelor of Science in Information Engineering (curriculum Telematics) achieved in Dec. 2007 with a rank of 107 over 110.


I've started using ns-3 in November '09 for a research project with Underwater Wireless Networks related to my master thesis work. I've found and solved a bug into the ns-3 UAN module [1]. I try to be as much active as possible into the ns-3 mailing lists. My research in the field of underwater wireless networks began in September '09 and, during this period I think to have accumulated a good knowledge of the field.

Work and Research

My work and research activities spaces from sensors networks to web applications to passive sensors data. My bachelor thesis project was presented during the ICTTA'08 international conference held in Damascus, Syria from 7 to 11 April 2008, and published on IEEE [2].

Personal Interests

Besides the interests in web evolution, optoelectronics, networking and underwater sensors, I'm interested in surf (my real passion), snowboarding, rugby, and music (singing and playing guitar).