Customer Handoff & Final Project Documentation
Table of Contents
Team Vision for Final Demo and HandoffOur 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.
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
Our Joint Testing document can be downloaded here.
The final handoff document is available here.
Our Risk Management document can be downloaded here.
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.
BuoyancyFoam 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 AlgorithmDuring 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 DrainingWe 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
Technical PaperThe technical paper can be downloaded here.
Imagine RIT Poster
The poster can be downloaded here.
The final CAD design can be downloaded here. (May need to be downloaded directly through Tortoise SVN)
Bill of MaterialsThe BOM can be downloaded here.
Pre-charging the Ballast TankFor 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.
Adjusting the ClawThe 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 MusclesThe 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.
CodeImage 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