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.
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.
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.
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.
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. .
Figure 2: Buoyancy Engine, Collapsed View
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.
Figure 3: Throttle Engine Mechanism Concept.
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.
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.
Figure 4: External Subsystem, Collapsed View
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.
Figure 5. Buoyancy Engine, Exploded View
Figure 6. Buoyancy Engine, Exploded View, Drawing With Part Numbers
Figure 7. List of Parts
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.
The propulsion mechanism is then placed in a circular bracket to secure the subsystem and allow proper alignment.
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:
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.
Below is an exploded view of the propulsion subsystem and a list of parts that are within the system.
Exploded View of Propulsion Subsystem
Exploded View of Propulsion Subsystem with Numbers
Exploded View of Soft Actuator System
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.
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.
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 Subsystem, Exploded View.
External Subsystem, Numbered exploded view.
External Subsystem, List of Parts
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.
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.
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.
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.
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.
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 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.
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
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.
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.
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.
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.
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.
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 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.
The circuit diagram shown below is for the yaw control nema 17 stepper motor, and the buoyancy engine threaded rod driver.
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].
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.
The control Bracket contains the entire circuit of the control system together in a compact manner.
//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);
}
}
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.
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 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.
The steel cable connects all the rigid parts of the tail together and to the propulsion engine that moves the whole tail.
The rigid tail is fabricated out of ABS 3-D printed parts that are conjoined by the dragon skin elastosil.
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:
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 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.
|
Attached to this subpage is a video of an independent test of the buoyancy engine subsystem.
|
Attached to this subpage is a video of an independent test of the propulsion mechanism subsystem.
|