P16029: Robofish 3.2 - Object Retrieval
/public/

# Customer Handoff & Final Project Documentation

 Table of Contents 1 Team Vision for Final Demo and Handoff 2 Presentation Materials 3 Test Results Summary 4 Risk Management 5 Problem Tracking 5.1 Unresolved 5.2 Resolved 6 Final Project Documentation 6.1 Technical Paper 6.2 Imagine RIT Poster 6.3 CAD Design 6.4 Bill of Materials 6.5 Instructions 6.6 Code 6.7 Conclusions and Recommendations for Future Work 7 Video Demonstrations 8 Plans for Wrap-up

## Team Vision for Final Demo and Handoff

Our goal for this phase was to get the Robofish to a point where it could be demonstrated at Imagine RIT and to continue working on system integration and optimization.

A lot of work was done on the swimming algorithm, and for Imagine RIT we were able to demonstrate forward motion, buoyancy changes, and turning. The systems integration is not complete enough for the Robofish to be completely autonomous, but each subsystem is functional.

## Presentation Materials

### Home Location Calculations

This code processes "received signal strength indication" (RSSI) from each nearby beacon and distinguishes each RSSI by known serial numbers. This is then run through the "calculateDistance" function in order to convert the RSSI value to an actual distance.

In this code:

txPower = the transmitter power of beacon.

Using the above equations, the real distance can be found. This data can be stored in matrix in order to calculate the angle to each of the beacons.

In this figure:

alpha = (Compass value + 90) at the shortest distance to home(beacon) location

90 – alpha = (Compass value + 90) at the starting location to home(beacon) angle

d1 = distance to home(beacon) location when fish is at the shortest distance to the home location.

d2 = distance to home(beacon) location when fish is at the starting location

Using the above equations, the angle (beta) from the Robofish to the home beacon location can be found.

## Test Results Summary

The final handoff document is available here.

## Problem Tracking

### Unresolved

#### Overheating Pump

During our demonstration at Imagine RIT, we noticed that the pump became extremely hot after several hours of constant operation. We worked around this issue by opening up the pump case occasionally and resting a bag of ice on the pump. Operating the Robofish in colder water (the pool at Imagine RIT was quite warm) may help the pump dissipate heat faster. Alternatively, a method of conducting heat from the pump to the surrounding aluminum case may be needed

#### Leaking in Pump Case

We also noticed water accumulating in the pump case during Imagine RIT. We believe a leak may have opened up where the elbow adapters are attached to the pump. Because the pump is water-resistant, this should not be an immediate issue if the pump case is drained on occasion.

#### Muscle Ends Popping Out

On two occasions the end of a McKibben muscle popped out from where they are secured by ring-clamps. In both cases the fitting that came out was a 3/16" barb to 1/4" NPT thread fitting. Most of the muscles are made with 3/16" barb to 1/8" barb fittings. Switching them all to these fittings should solve the issue.

### Resolved

#### Buoyancy

Foam pieces were added to the top of the Robofish to offset the excess weight. A large piece was also added to the side of the electronics case to offset the weight of the batteries on the same side. A small piece was also added to the tail to improve its balance.

#### Tail Algorithm

During testing it was discovered that leaving a valve open and continuously filling the muscle would eventually cause it to break. This was a problem for the turning algorithm, which pulled the front section of the tail to one side while the back section flapped. Therefore the turning algorithm was changed to not leave the front muscle on constantly. However, this is not an ideal solution, and more durable muscles may be needed.

#### Ballast Tank not Draining

We noticed that occasionally water was not being expelled from the ballast tank. We determined the problem was caused by the inflated bike tube in the ballast tank being in a position where it covered the water inlet/outlet. The pressure of the water entering would push it out of the way, but it would cover the hole while draining. To solve this we glued our extra filter over the hole on the inside of the PVC cap.

## Final Project Documentation

### Instructions

#### Pre-charging the Ballast Tank

For the buoyancy control of the Robofish to work properly, the ballast tank's air bladder should be "pre-charged" to around 10 psi. This increases the rate at which water will be expelled, and therefore increases the speed at which the Robofish surfaces. This can be done with either a bike pump or the compressed air available in the lab. The pressure can be checked using a tire pressure gauge and a Presta-to-Schrader adapter.

The rotation of the claw prongs is locked by 3 modified shaft collars that slide partially into each prong. Loosening the set screws on these will allow the prongs to be rotated freely and re-centered if they become displaced or are disassembled.

#### Priming the Muscles

The muscles will not work properly if there is air trapped in them. Most of the air can forced out by squeezing the muscles when they are submerged, or they can be disconnected on the valve end and allowed to fill with water.

### Code

Image Processing code

Home Location code (right click, save link as...)

### Conclusions and Recommendations for Future Work

• The locomotion, operating time, buoyancy response time, and robustness of the Robofish were greatly improved
• Image recognition has been added, but requires more fine tuning to prevent false-positives
• Future work should focus on system integration and autonomous decision-making
• If a full redesign is ever required, all components should be down-sized as much as possible. The circuit boards are the hardest thing to shrink, so they should ultimately drive the size of the fish

## Plans for Wrap-up

The final week will be used to finish up documentation of our project.