MIT
Department of Ocean Engineering

13.016: Introduction to Geometric Modeling and Computation

Spring 1997

Instructed by
Professor Nicholas M. Patrikalakis


This year, the students of 13.016 were asked to use what they had learned throughout the semester about geometric modeling and numerical methods to develop a CAD system for designing, analyzing, simulating, and visualizing Autonomous Underwater Vehicles (AUVs). This page showcases the fruits of their efforts. The images shown here were generated by their programs and sections of their report are included to provide an explanation about what they were attemping to do and how they achieved their goals.


13.016 Term Project

An AUV Design and Simulation System

Developed by:

Sheri Ann Cheng, Joe Curran, Ian Ingram,
Bill Kreamer, and Drew Mutch.


Introduction

``This project is the culmination of a semester of study of mathematical representation of curves and surfaces, numerical methods of integration, and computer graphics. This knowledge is now used to create a design tool for representing and analyzing an AUV. Five modules make up the software package: a graphical user interface (GUI) with design tools to interactively adjust the shape of the main body of the AUV, a GUI to interactively adjust the appendages of the AUV, an analysis tool to predict the AUV's drag characteristics, a simulation module to illustrate the AUV in a bathymetric environment, and tools to realistically render the AUV using ray-tracing techniques.''


Main Body Designer

``The main goal of this module is to provide a graphical user interface (GUI) to allow a user to interactively adjust the parameters of the main body of an AUV. First, a computer language and a graphics interface was chosen. Next, some assumptions about the AUV shape were made and a mathematical representation of that shape was chosen. Finally, the “design window and tools to adjust the parameters of the AUV were created.''

``Largely due to its widespread use and popularity, the software was written using standard ANSI C. The portion of the Software which pertains to graphics awas written using OpenGL and the OpenGL Utility Toolkit (GLUT).''

``Two major assumptions have been made about the shape of the AUV main body. First, the main body is assumed to be rotationally symmetric (hereafter, all references to the `profile curve' refer to the upper portion of the cross-section of the AUV). This serves to simplify both its mathematical and graphical representation and the calculation of its performance characteristics. Second, the main body is descretized in three major sections: the nose, the mid-body, and the tail. The mid-body is assumed to be cylindrical, and the nose and tail sections are curved surfaces. The curves representing the nose and tail sections are presented in the cubic Bezier form.''


``The graphical user interface consists of the main design window and tools to aid the user in interrogating and adjusting the profile curve.''
Shown above is the profile an AUV and the control points of the Bezier curves defining the nose and tail sections.

f
``Sometimes it is not enough merely to see the result of one's efforts on the screen [in terms of profile curves], so another suite of options is provided to allow the user to interrogate the the curve.'' Above is shown one such tool, displaying the curvature of the curve in terms of a porcupine plot.


The designer is allowed to alter the shape of the profile. Another porcupine plot for a modified profile is shown above.

Appendage Designer

``Once the main body fairing has been designed, one needs to develop appendages such as thrusters and sonar pods to enable the AUV to fulfill a meaningful mission. For the first version of this designer, appendages are limited to two horizontally opposed thrusters, but provisions have been built into the data structures to enable later versions to expand this to an arbitrary number of thrusters at any position as well as other types of appendages while still retaining backwards compatibility.''

Here we see the ``front view showing the outline of the main hull in red, to give a sense of scale, each thruster duct in blue outline, and the main strut connecting them as a green solid polygon. From this view, the user can adjust the inner and outer diameters of the duct and the radial location of the thruster outward from the main hull.''


Performance Calculator

``The main goal of this module is to provide the user with information about the predicted performance characteristics of an AUV as it is being designed. A geometry of an entire AUV can be entered into the performance module. The properties of the individual components of the AUV can then be solved for by using numerical integration and curve fitting.''

Using numerical integration techniques, integral properties such as displacement, center of bouyancy, and wetted surface area can be calculated. ``Knowing the total wetted surface area of the AUV components, we can ... determine the drag on the AUV for a given speed... These computations can be made for a range of speeds. A force vs. speed plot is then created using OpenGL. Additionally, other parameters are displayed numerically.''


Simulation Module

``The goal of the simulation module of our AUV design tool is to provide graphical feedback about the actual shape of the AUV fairing and appendages that the user has designed. By giving the user the ability to inspect the model closer, view the model from many angles, and interact with the model through an easy to use graphical format, this module provides the user with early, pertinent information about the design.''

``We chose the bathymetry from a section of the Charles River as our environment... Using OpenGL shading and texturing functions [created] a smooth picture and mapped a sandy pattern to the floor.''

``The camera was designed to give as much viewing freedom as possible to the user.''

``In order to give the user an exciting depiction of what their AUV might one day accomplish, the module includes a simulated mission. Four targets are read from a data file and rendered in the environment at their locations using the surface of revolution primitive. Through the use of a simple kinematics-based homing algorithm the AUV follows a path through each of the targets, in turn.''


Visualization

``The goal of this module is to realistically render an AUV using ray-tracing techniques and OpenGL''

``Ray tracing is a method used in computer graphics to render highly realistic images. Ray tracing is based on the fact that every point on a surface is affected by rays emanating from other points in the scene. Ray tracing is conducive to illustrating effects of single and multiple reflections, refraction, and shadowing...''

``This ray tracer, written for the 13.016 final project, traces spheres, cylinders, and planar quadrilaterals, using functions for intersection and normals which correspond to their geometry type. The AUV is rendered using these primitives, as illustrated [above].''