P16229: Robofish 3.1 - Navigation

Subsystem Build & Test

Table of Contents

Team Vision for Subsystem Level Build & Test Phase

In this phase, our team focused on preparing for a full tail test involving McKibben muscles attached to a constructed tail. The electrical drive circuitry was debugged and tested to ensure proper functionality. The mechanical team had the plastic material ordered for the tail construction and has begun using a force meter to test McKibben muscles for force production capability.

Test Results Summary

Muscle Testing

After extensive analysis it was determined that the force detected was dependent on the weight placed rig for the muscle to lift. Normally the resistance should not impact the overall force, however the test methodology causes this effect. The muscle and weights are in series with the force transducer but this is free hanging. The muscle lifts the object up and the system records the distance travel against time and the force against time.

As a result of this realization, which occurred when analyzing the raw data from the force transducer, a second method of analysis was attempted. An average acceleration was determined using the distance data. This acceleration was used to determine the force associated with the muscles action in the system by summing the forces. This analysis led to the same conclusion.

In summary the initial round of test was only able to tell us that the muscle is able to lift the weights tests. In order to assess the strength of the muscles further the BME team will have to use more weights in the current setup. In addition to simply adding weights the pressure should be reduced and the system should be tethered. Tethering the force transducer will provide true force production data.

Pump Box Waterproof Validation

The pump box was submerged in water for 24 hours to determine if the box is indeed waterproof. The test confirmed that the box was in fact waterproof. NOTE: This is on the non-compromised box. Another test will be run when the box is compromised, without the pump in the box, to determine if the box is still reliably waterproof. This test will need to be much more extensive and may even involve stress testing.

Robofish Power Boards Construction

Two power boards were constructed and the on-board 5V buck converter was tested for proper operation. Both board have fully functioning converters and have been proven to have the capability to power the Arduino and Gate Drive board. The converters take 24V produced by the battery buck converter and produce 5V with high efficiency. Also included on the power board is a water detection circuit, amplifier for pressure sensor, and interface resistor for the jaw Hall sensor, all of which have yet to be tested.

One issue which was observed with the power board was the 5V supplied to the Arduino. When the Arduino was powered with the on-board buck converter, the micro-controller tended to have intermittent errors. While running the normal swimming code, every few periods, the sequence would glitch and an extra valve would turn on before resetting the pattern of the Arduino command signals. It was also noted that when the Arduino was powered via the USB/computer (known good 5V power), this issue did not occur. The oscilloscope was triggered on the 5V from the power board when connected to the Arduino. The capture is shown.

A similar transient would occur on the 5V power line each time this solenoid glitch would occur. A diode was placed in series with the 5V facing the Arduino, allowing power to still flow to the Arduino. It is presumed that the Arduino was reacting negatively to the less-than-perfect power supplied by the buck converter. The diode effectively blocks all transient effects from the micro-controller. As time passed, it was discovered that instead the glitch was occuring due to the fact that the pins for turning left/right were floating and stray chagre was causing the program to move in and out of a turning sequence. After this was discovered, the diode mentioned previously was removed.

Solenoid Valve Debugging & Performance Testing

The four old solenoid valves from the old version of Robofish have been tested successfully with the rest of the electronics system. The gate drive board is successfully able to drive the solenoids from commands from the Arduino. Note that the Arduino signals were also inverted to accommodate the gate drive LED notation. Currently, the LEDs are now only lit when the appropriate value has power applied to it. Previously, it was the opposite. This will help in identifying which valve(s) are actuated.

An issue was observed with the solenoids drives which have intermittent transients only when the solenoid valves were attached. Often the switching order and tempo of the valves would be skewed and sometimes all solenoid drives would cut-out for a brief moment. When the inductive solenoids were swapped out for load resistors, the drives functioned properly. Originally, the design included a flyback diode to ensure that the lower node of the solenoid did not get too high in voltage when the solenoid was switched off. This diode was not fast enough and excess charge remained on the gate drive output for long enough to disrupt the entire board and all 6 drives. Bridging each solenoid with a fast switching diode directly across the terminals has appeared to fix this issue.

The valve set-up was then incorporated with the pump to ensure that water flow was as expected through the proper valves at the proper time. The videos below shows water exiting the valves in the proper sequence and the operation of the valves with air only flowing through them.

Valve Air Test
Valve Water Test

Each individual valve was also tested to ensure performance. The concern was that the electrical switching of the valve may be inhibiting the orfice of the valve (not opening fully). The approximate flow of each valve is shown below.

Valve Flow Data

While this testing was very successful, the booting functionality of the Arduino Mega was possibly damaged in the process. At one point in the test, the 24V power clip accidentally fell onto the USB shield of the Arduino, shorting 24V to, presumably, the ground reference of the sensitive Arduino circuitry. The Arduino continued to function properly for the remainder of the testing but upon attempting to reprogram the micro-controller with an updated swimming algorithm, the Arduino failed to connect to the computer. It is assumed the sudden voltage surge and high current flowing through the USB shield damaged the booting ability of the device. A new Arduino mega was ordered and was tested to see if it can be programmed. The new Arduino was able to be programmed successfully

Independent Operation with Batteries

A major milestone in the electronics development was the fact that we were able to run the entire valve control system independently. A video depicting this is shown.

Independent Operation of Valve System

In order to execute this test, a small test battery pack was constructed which was essentially 1 "cell" from the total battery pack which will eventually be used in the robofish. The test setup utilized 1 gate drive board although the 2 that plan to be used in the complete system should function together seamlessly. A third gate drive board was also constructed, however, it was deemed non-function due to an unknown reason at this point. Since only 2 gate drive boards are needed for the complete system, debugging the third gate drive board will not be performed unless there is a need or excess time at the end of the build period.

Gate Drive Board Test Sheets

Also included in this test setup and a major component of the system is the DC-DC converter which regulates the battery voltage down to 24V for the solenoid valves and pump. Upon first using this DC-DC converter, it is presumed one of the input capacitors was faultly and possibly shorted internally upon appling the battery voltage. Damage was observed on the capacitor and the converter had a very high input current when a power supply was used to power it. Upon removing the capacitor, the DC-DC works properly. The capture show the waveform of the AC and DC components of the DC-DC output voltage.

New Battery Energy Testing

Similarly to how the previous batteries were tested, the new, genuine Panasonic 18650 batteries were put under the same test where the cell of 9 series batteries dissipated their energy through a resistor bank. The resistors were sized to draw current approximately equal to the average current expected in the system. The voltage was monitored throughout the process. The 9 pack of series battery was found to contain an energy of around 107.82Wh which equates to approximately 430Wh for the entire Robofish system. At an estimated average power draw of 80W, these batteries will be able to power the fish for a little over 5 hours.

Sonar Sensor Testing

The electrical team also spent some time look into the feasibility and function of the sonar sensor. The sonar sensor will be used to identify walls and objects the camera will not be able to identify. It will not be acting as the primary floating obsticle avoidance technique. The swimming algorithm in the Arduino code was augmented to include a case where if the sonar sensor sensed an object approximately a meter in front of the sensor, the program executes a left turn until the object is removed. It was also concidered to adjust the severity of the turn based on the distance away form the object (wall). For now, a standard left turn will be executed when an object is detected. Note that left, rather than right, was chosen arbitrarily.

In order for the Arduino to interpret the sonar sensor properly, the pulse width varying signal proportional to the distance to the nearest object is conditioned. The signal is first sent through an amplifier to strengthen the signal by provided enough current to effectively charge an output capacitor incorporated in a filter which converts the amplified pulse train into a DC value. Reading this DC value in, the Arduino is capable of extracting a approximate distance of the object.

Sonar System Testing

Proposed New PCB

After testing the full independent system running on the batteries, it was determined that enough external parts are required to warrant a new board which will house these components. The proposed board will include the following items:

  1. Resistor divider for battery voltage so the Arduino can determine when the batteries need to be changed
  2. Buffer and filter for sonar sensor
  3. Terminal for 24V connections
  4. 24V DC-DC converter mount and external circuitry
  5. Battery terminal blocks
  6. Fuse
  7. ON/OFF Switch terminals
  8. 555 timer with external circuitry to generate trigger pulses for sonar sensor

Inputs & Source

  1. Test Plan
  2. Subsystem fabrication

Outputs & Destination

  1. Test Results
  2. System integration

Risk and Problem Tracking

Risks and problems are summarized in the Risk Table document the can be found in the project management folder of this team as well as linked on the bottom of the Build and Test Prep phase page.

Mechanical Systems

  1. Waterproofing of the pump and electrical boxes.
  2. Spacing the body of the fish.
  3. Thrust production by the tail

Electrical Systems

Addition Risks:
  1. Variability of the sonar sensor. Will the waves interfere with the reading? Will this be mounted underwater?
  2. Increased current flow through 24V converter due to constant running of pump (2A to 3A)
  3. Fitting everything is the waterproof enclosure(batteries & boards)

Functional Demo Materials

Mechanical Systems

None. Please see Test Results Summary for details on test results. Building is underway at this time for the tail and many of the internal components of the fish.

Electrical Systems

None. Please see Test Results Summary for details.

Plans for next phase

Mechanical Systems

  1. Construct the tail system
  2. Test the tail system with the hydraulics
  3. Pump Box
  4. Begin the system integration in the body

Electrical Systems

  1. Construct battery pack
  2. Attempt to fit all components in enclosure
  3. Design and build new interface board
  4. Communcate with P16029 about image processing interface
  5. Attach system to tail when ME team has constructed tail ready

Home | Planning & Execution | Imagine RIT

Problem Definition | Systems Design | Subsystem Design | Preliminary Detailed Design | Detailed Design

Build & Test Prep | Subsystem Build & Test | Integrated System Build & Test | Integrated System Build & Test with Customer Demo | Customer Handoff & Final Project Documentation