SeaHawk: Biomimetic Shape Deposition Manufacturing (SDM) Fin Propulsion Assisted Sea Glider

Seahawk Logo

Seahawk is a project by undergraduate students from the University of Kansas with a mission is to design, manufacture, and assemble an autonomous underwater vehicle known as a glider, that is modified with a soft actuator as its mechanism of forward propulsion and yaw control. We aim to increase the maneuverability and adaptibility of present gliders so it would be able to perform in missions where these feats are desirable. Below is a short introduction video to Seahawk.

 

 

 

Background

Underwater gliders are among the most commonly used autonomous underwater vehicles (AUV’s) for underwater data collection, as they provide energy efficiency and robustness for extended missions. These same units do, however, have low velocity and maneuverability. A modification to a glider's mechanism is proposed which could be applied in scenarios where fast response is required, without disrupting the surrounding environment. This could include scenarios such as encountering and avoiding marine animals that are in the glider's path. The proposed solution addresses this issue by adding a soft actuator component that undulates like a fish's fin.

Glider Assembly

The soft actuator will allow the glider to make quick changes to its yaw position, path and acceleration. The chosen actuator is a modification of the Shape Deposition Manufacturing (SDM) fingers from the soft robotics toolkit website.

 

Design

The underwater glider is enclosed by a polycarbonate cylindrical body. The cylindrical body is used for its hydrodynamic efficiency and is typical of most underwater gliders. The glider is composed of four main subsystems: buoyancy, propulsion, external, and control, sensors and measurements. Each of the subsystems are also further de-constructed into smaller subsystems of mechanical and control. Throughtout the entire project, biomimicry was used for several different components to optimize the final design of the underwater glider. 

Buoyancy Engine

The buoyancy of the glider is altered by four syringes that are actuated by a piston that moves on a rotating threaded rod that acts as a power screw. Hoses and hose clamps are attached to the ends of the syringes and are used to transport the intake and outake of water from the syringes through the four holes located on the front of the nose cone. Seperate components for the buoyancy engine are being held and supported by 2 sets of 4, 1/4 inch diameter, aluminum rods. The mechanical system for the buoyancy engine is controlled by a bipolar servo motor to allow actuation in both directions of the syringe [3], assuming linearity and decoupling of each subsystems, the output state of the system that is being controlled are the pitch angle, and rate, z and x axis velocity, and positions (labelled w, u, z, and x respectively) [4].

In the figures below you will see illustrations of the buoyancy engine in a collapsed view, along with an exploded view, and an exploded view drawing with part numbers that correspond to the part numbers on the bill of materials. All together the buoyancy engine consist of 18 different components and correspond to parts 1-18 in the bill of materials. . 

Buoyancy Engine

Figure 2: Buoyancy Engine, Collapsed View

Propulsion Engine

The propulsion of the glider is controlled by a reciprocating mechanical system that converts rotational motion of a stepper motor into a linear back and forth motion. This motion is transferred to the soft tail of the AUV via wires, which results in the output of x-axis velocity(u), yaw angle and rate.

Throttle

Figure 3: Throttle Engine Mechanism Concept.

Control, Sensors, and Measurements

The control, sensors, and measurements  subsystem consists of an Arduino uno Microcontroller, a pressure sensor and the electrical circuit of the system. A pressure sensor was used to estimate the state of the robot. The main circuit is contained within a compact bracket in the middle section of the robot's cylindrical body.

External Subsystem

Just as important as the internal components of the glider, the external subsystem  was designed to keep water from damaging the robot's inner components and electronics, while also stabilizing the roll angle of the robot to keep it upright. The external subsystem consists of a nose cone, wings, a keel, and clamps used to sucure the wings and the keel. The nose cone was designed to take form of a shape similar to the nose cone of a torpedo. This shape makes the front end of the glider more hydrodynamic and increases the maximum velocity of the glider. An extruded hole was added to the top of the nose cone and was used to mount the pressure sensor. Air foil shaped wings similar to that of a Boeing 747 aircraft were designed to control the roll angle and stability of the glider while it is underwater. Lastly, a keel was designed to also aid in the control of the roll angle and stability of the glider. The concept of the keel is similar to that of a keel from a boat but was designed specifficaly to balance the hydrodynamic forces acting on both sides of the keel in order to keep the glider in an upright position. 

External Assembly

Figure 4: External Subsystem, Collapsed View

 

Buoyancy Engine

Buoyancy Engine

The buoyancy engine of the robot is designed to control the robot's buoyancy, which in turn it will control the elevation and descent of the glider. In the figures below you will see illustrations of the buoyancy engine in a collapsed view, along with an exploded view, and an exploded view drawing with part numbers that correspond to the part numbers on the bill of materials. All together the buoyancy engine consist of 18 different components and correspond to parts 1-18 in the list of parts.

buoyancy_assembly_exploded_view

 

Figure 5. Buoyancy Engine, Exploded View

 

Buoyancy Engine Exploded View DrawingFigure 6. Buoyancy Engine, Exploded View, Drawing With Part Numbers

 

Buoyancy Engine List of Parts

Figure 7. List of Parts

 

 

Propulsion Mechanism

Propulsion mechanism of the robot is controlled by a small stepper motor that rotates a wheel where a rod is connected at 0.25 in away from its center. The rod is then connected on its other end to a see saw motion lever where on its other end a second rod is mounted. The rod's other end is moving back and forth with a cubic shaped piston that moves inside a sleeve. These combination of motions creates a back and forth motion that pulls two wires to create an undulating motion in the soft actuator. The mechanism is mounted on a circular plate that is connected to a Nema 17 stepper motor. This additional motor allows for control in the yaw direction of the robot.

Throttle Assembly

The propulsion mechanism is then placed in a circular bracket to secure the subsystem and allow proper alignment.

Throttle with Bracket

Then, the subsystem is connected witht the soft actuator and the end cap by using 1.4" aluminum rods as shown in the assembly picture below:

tail assembly

The propulsion part that is numbered 32 in the exploded view below is attached directly to the soft actuator of the robot by stainless steel cables that are fastened by using two set screws in the vertical direction for each cable. In total the system uses two cables to control the movement of the tail that will be proven in the final section.

List of Parts

Below is an exploded view of the propulsion subsystem and a list of parts that are within the system.

Exploded View

Exploded View of Propulsion Subsystem

Propulsion System with Numbers

Exploded View of Propulsion Subsystem with Numbers

Exploded View of Soft Actuator System

Propulsion Subsystem

External Components

The Jaywing

Jaywing

The wings on the glider are designed to have the shape of an air foil to reduce drag forces while operating under water. The wing was designed using a cad drawing software called "SolidWorks" and was 3D printed into connecting female and male components. in order to attach and secure the wings to the cylindrical body, clamps were designed and bolted to the wings and to the keel to keep the components from sliding while under water. The wings have to be placed in the center of mass location so that the movement is balanced and adjusted. A keel had to be designed not only to connect the clamps together, but to stablize the under water glider and prevent it from rolling.

Cylindrical Body

Body

The external cylindrical body is (24 inches) long, with a 4 inch outter diameter, and a 3.75 inch inner diameter. It is composed of a high quality and high strength polycorbonate material. The internal components were placed inside the cylindrical body. The reason why polycarbonate was chosen is beacuse it has a relatively stronger impact strength in comparison to other plastics.

Parts List

In the figures below you will see illustrations of the external subsystem in a collapsed view, along with an exploded view, and an exploded view drawing with part numbers that correspond to the part numbers on the bill of materials. All together the external subsytem consist of 7 different components and correspond to parts 19-25 in the list of parts.

external_assembly_exploded

External Subsystem, Exploded View.

Parts' numbers

External Subsystem, Numbered exploded view.

External List of Parts

External Subsystem, List of Parts

Fabrication

As stated earlier, the fabrication of the seaglider can be broken down into 4 major subsystems. A bill of materials with corresponding part numbers can be found in the appendix.

Creating the Buoyancy Engine

The buoyancy engine is fabricated using a lathe, mill, and Stratasys Mojo and Uprint 3D printers. The first step for fabricating the Buoyancy Engine is to 3D print all of the components that will not be machined or purchased. The internal parts were printed using  Stratasy's Mojo and Uprint 3D printers, which utilizes ABS plastic.

3D Printed Part 

The next step is to paint all of the 3D printed parts to their desired color. We decided to utlized red, blue, and yellow, because they represent the University of Kansas' colors. 

 buoyancy_painted_parts_2

After painting all of the 3D printed parts that were used for the Buoyancy Engine, an acetone solution was used to set in a threaded insert and bearings into the ABS plastic piston driver ( or part #12 from the bill of materials.). The acetone causes the surface of the ABS plastic to melt which acts as an adhesive.  

buoyancy_piston

The coupler to mount the threaded rod to the stepper motor is then machined using both the lathe and the mill and can be shown in the figure below. 

After machining the coupler, the two sets of four, 1/4 inch diameter, aluminum rods where cut the their appropraite size using a hack saw. The front support rods where cut to a length of 3.5 inches while the middle support rods where cut to a length of 2.65 inches. 

Creating Soft Component

The mold for the soft component was molded using Solidworks, and printed using the Uprint 3D printer. Several rigid joints were created using Vero Blue plastic. These joints are intended to strengthen the soft actuator, and these joints are place inside of the mold. A liquid silicon compound was poured into the mold and formed around the joints to attach them together. Another mold was created in the Uprint 3D printer with the purpose of creating a cover sleeve for the soft actuator. A liquid silicon compound was poured into the mold and allowed to dry. Once both parts were dry the sleeve was place over the soft actuator.

The tail after the silicon was poured to it

 

Buoyancy Engine

Nose

  The NoseThe NoseTapping

The nose of the underwater sea glider was designed using an engineering drawing software called "SolidWorks" which gives the ability to design models in a very accurate and detailed way. After the nose was designed, a high quality 3D printer has been used to 3D print the whole model. The model was designed to be pointed just like the front side of the fish so that it can swim under the water smoothly. The nose has four holes on the top so that clear rubberd hose can go through easily, and these hoses play a big role in chanelling the sea water into the syringes that are placed inside. Moreover, the one big hole which is placed on the right side of the nose is where the presure sensor going to fit. The hole was threaded using a tapper do that the pressure sensor can be screwed so that it can be completely seald as shown in the right picture above. The nose hase four holes for screws so that the nose can be attacjed to the next part which is Endcap.

Syringes and Syringe Plunger

                                                                         Syringes

The syringes, which are made of plastic, are crucial parts which play a major rule when testing the underwater sea glider.  The part that goes into the syringes is called " Syringe Plunger" and these plungers push the water through the front hole of the syringes. The front side of the Syringes plunger has a part attached to it which is made of rubber to prevent the water from going through in the backward or the oppisite direction. The readings on the syringes helps in determining the amount of water that is going to be pushed out.

 

The Endcap

EndCap 
End cap top viewbottom view 

The endcap is the second component of the underwater sea glider. like the nose, the endcap was also designed using a Solidworks and it was 3D printed using a high quality 3D printer. by looking at the top view of the end cap , the four holes that are on the edges is where the screws will go to connect the end cap to the nose. The four holes in the middle is where the syrniges will go through to be connected to the hoses. The small hole in the middle is where the wires for the pressure sensor will go through. The gaps when looking at the end cap from the above and the side is where the O-ring, which is made of rubber, is going to be placed. in addition, looking at the bottom view of the Endcap, the four holes in the middle is where the syringes will be placed. For the four holes on the edges, this is where the support rods will be placed that helps in being connected to the next part which is the the syringe bracket.

Support Rods

 

support rods

The four support rods are made of a strong material which is Brass and they were machined using a machine called laith forming a very accurate diameter support rods. These support rods go through the holes of the previous parts. 

 

Syringe Bracket​ and Piston Bracket Fastner

Syringe Bracket

Using an engineering cad that is solidworks, is how the syringe bracket was made. After that, it was 3D printed and painted blue to look like what it is shown on the picture. by looking at the top view, the for cutted holes is where the back of syringes going to be placed. There are four holes in the edges of the syringe Bracket and in each of them there is a small bronze sleeve bearing. it has a significant impact which will make the support rods move smoothly. Moreover, the yellow part is the piston Bracket Fastner and it was designed and 3D printed as well. it helps a lot in securing the back of the syringes so that it won't move when testing the underwater sea glider.

Threaded Rod and Coupler

Threaded Rod

The threaded rods affects how the way the under water sea glider opperate. it is connected to a motor and rotates which helps in moving the piston and the middle support rod. The coupler helps in connecting the threaded rod to the motor. The video above is how the coupler was made.

 

Driver Container

Driver Container

The driver container helps to secure the driver so that it won't move while operating the sea glider. the driver itself is what helps the threaded rod rotating.

Control System

The Control system

Control system

Shown above is the control system without the wiring and stepper motors that are involved. The system includes 2 red A4988 stepper motor driver, 1 ULN2003 stepper motor driver, a voltage converter, and a 12 V NiMh battery.

Ardunio

Arduino

Ardunio is the microcontroller of the whole SeaHawk. It runs a test code that proples the SeaHawk forward with the propulsion system, and then perform a descent and ascent through the buoyancy Engine. The code for the test is attached in the subpage.

Circuit Diagram

The circuit diagram shown below is for the yaw control nema 17 stepper motor, and the buoyancy engine threaded rod driver.

Yaw and Buoyancy Engine

The power source however, would not be a 9V battery but instead a 12 V NiMh battery instead. The last motor to be controlled by the arduino is the propulsion control motor that is the only 28BYJ-48 type stepper motor within the system. The circuit diagram can be seen from the image below[6].

28BYJ Stepper motor

The power source of the motor however is also supposed to be a 12 V NiMh battery for our case instead of the plug for a ac-dc adapter as shown in the diagram above. Each of these motor correspods to their own individual driver that connects to specific pins in the arduino uno. The details of these pins can be seen in the code attached below.

Control Bracket

Board

The control Bracket contains the entire circuit of the control system together in a compact manner.

Code

 


//Include the Arduino Stepper Library
#include <Stepper.h>
 
// Define Constants
 
// Number of steps per internal motor revolution 
const float STEPS_PER_REV = 32; 
 
//  Amount of Gear Reduction
const float GEAR_RED = 16;
 
// Number of steps per geared output rotation
const float STEPS_PER_OUT_REV = STEPS_PER_REV * GEAR_RED;
 
// Define Variables
 
// Number of Steps Required
int StepsRequired;

// defines pins numbers

const int stepPin = 3; 

const int dirPin = 4; 
 // set direction and step pin
// Create Instance of Stepper Class
// Specify Pins used for motor coils
// The pins used are 8,9,10,11 
// Connected to ULN2003 Motor Driver In1, In2, In3, In4 
// Pins entered in sequence 1-3-2-4 for proper step sequencing
 
Stepper steppermotor(STEPS_PER_REV, 8, 10, 9, 11);
 
void setup()
{
// Sets the two pins as Outputs
  pinMode(stepPin,OUTPUT);
  pinMode(dirPin,OUTPUT);
 
  //digitalWrite(dirPin,LOW); //Enables the motor to move in a particular direction
}
 
void loop()
{
 delay(60000);
  // Rotate CCW 1/2 turn quickly
  StepsRequired  =  - STEPS_PER_OUT_REV / 2;   
  steppermotor.setSpeed(700);  
  steppermotor.step(StepsRequired);
  delay(0.1);
  // Rotate CCW 1/2 turn quickly
  StepsRequired  =  - STEPS_PER_OUT_REV / 2;   
  steppermotor.setSpeed(700);  
  steppermotor.step(StepsRequired);
  delay(0.1);
  // Rotate CCW 1/2 turn quickly
  StepsRequired  =  - STEPS_PER_OUT_REV / 2;   
  steppermotor.setSpeed(700);  
  steppermotor.step(StepsRequired);
  delay(0.1);
  // Rotate CCW 1/2 turn quickly
  StepsRequired  =  - STEPS_PER_OUT_REV / 2;   
  steppermotor.setSpeed(700);  
  steppermotor.step(StepsRequired);
  delay(0.1);
  // Rotate CCW 1/2 turn quickly
  StepsRequired  =  - STEPS_PER_OUT_REV / 2;   
  steppermotor.setSpeed(700);  
  steppermotor.step(StepsRequired);
  delay(0.1);
  // Rotate CCW 1/2 turn quickly
  StepsRequired  =  - STEPS_PER_OUT_REV / 2;   
  steppermotor.setSpeed(700);  
  steppermotor.step(StepsRequired);
  delay(0.1);
  // Rotate CCW 1/2 turn quickly
  StepsRequired  =  - STEPS_PER_OUT_REV / 2;   
  steppermotor.setSpeed(700);  
  steppermotor.step(StepsRequired);
  delay(0.1);
  // Rotate CCW 1/2 turn quickly
  StepsRequired  =  - STEPS_PER_OUT_REV / 2;   
  steppermotor.setSpeed(700);  
  steppermotor.step(StepsRequired);
  delay(0.1);
   StepsRequired  =  - STEPS_PER_OUT_REV / 2;   
  steppermotor.setSpeed(700);  
  steppermotor.step(StepsRequired);
  delay(0.1);
  // Rotate CCW 1/2 turn quickly
  StepsRequired  =  - STEPS_PER_OUT_REV / 2;   
  steppermotor.setSpeed(700);  
  steppermotor.step(StepsRequired);
  delay(0.1);
  // Rotate CCW 1/2 turn quickly
  StepsRequired  =  - STEPS_PER_OUT_REV / 2;   
  steppermotor.setSpeed(700);  
  steppermotor.step(StepsRequired);
  delay(0.1);
  {
  digitalWrite(dirPin,LOW); // Enables the motor to move in a particular direction
  // Makes 200 pulses for making one full cycle rotation
  for(int x = 0; x < 5000; x++) {
    digitalWrite(stepPin,HIGH); 
    delayMicroseconds(1000); 
    digitalWrite(stepPin,LOW); 
    delayMicroseconds(1000); 
  }
 
  delay(10000); // One second delay
  
  digitalWrite(dirPin,HIGH); //Changes the rotations direction
  for(int x = 0; x < 5000; x++) {
    digitalWrite(stepPin,HIGH);
    delayMicroseconds(1000);
    digitalWrite(stepPin,LOW);
    delayMicroseconds(1000);
  }
  delay(2000);
 return(0);
}
}

 

 

Propulsion Components

 

Propulsion Engine

Throttle Engine

The propulsion mechanism controls the forward propulsion with yaw control of the sea glider. the cable is attached to the throttle engine that will create a push and pull motion  similar to a see saw. The parts that were used in the the propulsion mechanism were mostly 3D printed due to their complex dimesnsions and geometry, but most importantly the time restraint of the project.

Endcap

End cap

the End cap at the end of the soft actuator prevents water from going through and damage the control system. The End cap has two grooves where o-rings would be placed to create a waterproof seal.

Dragon Skin Silicone 

Dragon Skin

Dragon skin Silicone is the soft part component that goes through the rigid tail component. The silicone can be made by mixing a measured amount of both Part A and part B, pur it and then wait for 24 hours for best results. Below are demonstration videos of how the dragon skin was poured.

 

Steel Cable

Tail

The steel cable connects all the rigid parts of the tail together and to the propulsion engine that moves the whole tail.

Rigid Tail 

Tail

The rigid tail is fabricated out of ABS 3-D printed parts that are conjoined by the dragon skin elastosil.

 

 

Proof of Concept and Testing

Proof of Concept

A prototype of the underwater glider was built and proofed the design concept as feasible. As it can be seen in the video below, the soft actuator undulates in a waving motion as predicted. Attached is a video of the soft actuator being tested by hand pulling the steel cable.

A  full prototype of the underwater glider is assembled and is displayed in the image below:

Full Assembly

Each subsystem when tested independently were successful as they were able to perform each of their specific tasks, shown in the next two subpages of this section. However, when both subsystems are assembled and the steel cables are screwed into the propulsion system, the system failed to perform properly. One of the possible reason of failure was that the 28BYJ-48 12V stepper motor couldn't handle the force required to pull the stainless steel cables. The failed run can be seen in the video attached below.

 

Testing

Testing procedures  are proposed to get an accurate representation of the AUV’s response to the control inputs. A preliminary method of testing was done by acquiring an underwater glider model in matlab that is adjusted to our glider’s parameters and is shown in Figure 4 below. A force analysis of all of the critical components was also done to assure that these parts will not fail and to see if  the expected maximum torque and power rating that is needed is met for each motor.

Theta, depth, and path response simulation example of glider.

Future testing procedures to consider is the use of two accelerometers that will be used to study the relationship between the side to side movement of the tail and the forward velocity of the glider. First an accelerometer is embedded inside the tail fin of the glider. This accelerometer is used to measure the position, velocity, and acceleration of the tail fin. The second accelerometer is placed inside the glider body of the AUV. This accelerometer measures the position, velocity, and acceleration in the forward direction of the glider. By using these two accelerometers a better understanding of the position and movement of the glider was developed. By gathering the actual state response of the AUV, the previous model will be adjusted accordingly for more accurate predictions of state estimates.

The simulation model of the AUV is performed using matlab simulink, where the differential equations of the states of the AUV are solved using matlab’s ode45 solver and initial condition. Theta in the graph above indicates the angle of attack that the glider takes with respect to the x axis.

Last method of testing as proof of the fin’s improvement to the glider’s maneuverability is by running the AUV through a predetermined course with checkpoints to see how long it would take for a control glider, and the improved version to go through all checkpoints.

 

Buoyancy Engine

Attached to this subpage is a video of an independent test of the buoyancy engine subsystem.

Propulsion Mechanism

Attached to this subpage is a video of an independent test of the propulsion mechanism subsystem.