Overview
During Phase I of the JellyBot project, JellyBot 1.0 demonstrated its ability to remain neutrally buoyant under water and also displayed potential in its upwards propulsion as per the critical functions, Buoyancy and Propulsion respectively. However, from these testings, we discovered certain shortcomings which we would rectify and overcome in Phase II.
Phase II focuses on the practicality of our project which is the ability for underwater surveillance. To achieve this, 4 properties of JellyBot 2.0 must be verified:
- JellyBot 2.0 must descend to desired depths without manual assistance (Achieved through its Negative Buoyancy property)
- JellyBot 2.0 is able to achieve upward propulsion
- JellyBot 2.0 is able to achieve depth control for the purpose of capturing visual data
- JellyBot 2.0 is able to propel horizontally
As such, 4 different types of tests were conducted, to verify the above 4 properties.
Achieving Negative Buoyancy
Negative Buoyancy is achieved when the downward force also known as Weight is greater than the upward force also known as Buoyant Force. W > Fb
2.1 Mass of JellyBot 2.0
- 1) Mass of Battery pack with mounting devices, Flight Navigator and Camera = 530g
- 2) Mass of Voltage step down device with 2× Solenoid Valve = 57.5g
- 3) Mass of 2× Pneumatic Pump, 2× Motor Driver Board, I2C Driver = 217g
- 4) Mass of Base with 5m tether cable = 900.5g − 160g (Brass weights) = 740.5g
- 5) Mass of Cylinder body with acrylic dome = 677.5g
- 6) Mass of 2× Flap Clamp = 2 × 59.5g = 119g
- 7) Mass of Flap with 8× Tentacles = 503.5g
- 8) Mass of Weights = [2 × 50g] + [4 × (20g + 10g)] = 220g
Total mass = 530g + 57.5g + 217g + 740.5g + 677.5g + 119g + 503.5g + 220g
= 3065g = 3.065kg
Therefore, Weight = mg = 3.065 × 9.81 ≈ 30.07 N
2.2 Volume of Water Displaced by JellyBot 2.0
- 1) Volume of flap (annulus volume) = π(Rflap,out² − Rflap,in²)(Tflap) = π(15.2² − 5.7²)(0.3) ≈ 187.09 cm³
- 2) Volume of 8× Tentacles = L × W × H × 8 = 9.5 × 2 × 2 × 8 = 304 cm³
- 3) Volume of Housing (Base + Body + Head) = πr²h = π(5.75)²(1.22 + 20 + 1.4) ≈ 2349.51 cm³
- 4) Volume of Dome = 2/3 πr³ = 2/3 π(4.7)³ ≈ 217.45 cm³
- 5) Volume of 2× Flap Bracket = Mass / Density of PLA = 119g / 1.24 g/cm³ ≈ 95.97 cm³
- 6) Volume of exposed screws — M10: π(0.782)²(1.8) + π(0.695)²(1.2) ≈ 5.28 cm³
- M14: π(1)²(0.8) × 8 ≈ 20.11 cm³
- M14 Connector: 4 × 3.17 cm³ = 12.68 cm³
- Bar O2 Sensor: π(0.8)²(1.2) ≈ 2.41 cm³
Total Displaced Volume = 187.09 + 304 + 2349.51 + 217.45 + 95.97 + 5.28 + 20.11 + 12.68 + 2.41 ≈ 3194.5 cm³
Therefore, Buoyant Force = ρ × g × V
= [1 g/cm³ × 9.81 × 3194.5] / 1000 ≈ 31.34 N
Therefore, JellyBot 2.0 is naturally Positively Buoyant as W < Fb (30.07 N < 31.34 N)
2.3 To Determine the Slightest Mass Needed for Negative Buoyancy, We Find the Additional Mass Needed for Neutral Buoyancy
Additional Mass Required = [Fb − W] / 9.81
= [31.34 − 30.07] / 9.81 ≈ 0.13 kg = 130g
However, the additional mass needed would be secured outside of the JellyBot 2.0 housing due to space constraints, hence the additional mass would also factor into the additional displaced volume of water. Therefore, we try 250g of added mass. (Mild steel weight)
Density of Mild Steel = 7.85 g/cm³
Volume of exposed mass = Mass / Density = 250g / 7.85 g/cm³ ≈ 31.85 cm³
Therefore, New W = mg = [3065 + 250] × 9.81 ≈ 32.52 N
New Fb = ρ × g × V = [1 g/cm³ × 9.81 × (3194.5 + 31.85)] / 1000 ≈ 31.65 N
Now, W > Fb (Theoretically JellyBot 2.0 should be negatively buoyant)
Buoyancy Tests
To verify the calculations needed to achieve negative buoyancy.
- Prototype: Full Prototype
- Different masses were added outside of JellyBot 2.0 housing to verify buoyancy theory
- Location: BeeX's water tank (fresh water)
3.1 Tests
3.11 Dry Mass = 3065g | External added Mass = 0g
As per the calculations, without any external additional mass JellyBot 2.0 is naturally positively buoyant (verified) as W < Fb (30.07 N < 31.34 N).
3.12 Dry Mass = 3065g | External added Mass = 250g (theoretical mass needed to sink)
Theoretically, an additional external mass of 250g should cause JellyBot 2.0 to be negatively buoyant. However, in reality, JellyBot 2.0 is still floating on the surface of water which indicates it is still positively buoyant.
3.13 Dry Mass = 3065g | External added Mass = 350g
Even with 350g of external additional mass, JellyBot 2.0 still remained positively buoyant as it is afloat on the surface of water.
3.14 Dry Mass = 3065g | External added Mass = 500g
Finally with 500g of external additional mass, JellyBot 2.0 sank to the bottom of the tank. This indicates that JellyBot 2.0 is now negatively buoyant and sank at a rate of 7.5 cm/s. However, upon upward propulsion testing, it is unable to propel upwards as it is too heavy. Therefore, we had to reduce our external additional mass.
3.15 Dry Mass = 3065g | External added Mass = 400g
With 400g of external additional mass, JellyBot 2.0 still managed to sink to the bottom of the tank. This indicates that JellyBot 2.0 is also negatively buoyant and sank at a rate of approximately 3.33 cm/s. Furthermore, upon upward propulsion testing, it was able to propel upwards. Therefore, we deduced that 400g would be the finalised external additional mass we needed for JellyBot 2.0 to be negatively buoyant yet still be able to propel.
3.2 Summary of Results
| # | Buoyancy Testing | Observations | Results | Remarks |
|---|---|---|---|---|
| 1 | Dry Mass — 3.065kg | Floats on water | Positively Buoyant | — |
| 2 | Added Mass needed to sink (theory) — 3.065kg + 0.25kg | Floats on water | Positively Buoyant | — |
| 3 | Added Mass — 3.065kg + 0.35kg | Floats on water | Positively Buoyant | — |
| 4 | Added Mass — 3.065kg + 0.5kg | Sinks to bottom | Negatively Buoyant | 1. Sinks at rate: 30cm / 4s = 7.5 cm/s 2. Unable to propel upward (too heavy) |
| 5 | Added Mass — 3.065kg + 0.4kg | Sinks to bottom | Slightly Negatively Buoyant | 1. Sinks at rate: 20cm / 6s = 3.33 cm/s 2. Able to propel upward ✓ |
3.3 Shortcomings
BeeX uses freshwater of which its density is 1 g/cm³. However, in reality when actually testing/using our prototype in the ocean or at sea, the density now varies in the sense it is a denser medium of density 1.025 g/cm³. Therefore the additional external mass needed to be negatively buoyant would also vary as now the Buoyant Force is greater than that in freshwater condition. I would require a mass greater than 400g. It is not feasible to keep replacing weights and furthermore it ruins the aesthetic of our prototype.
3.4 Future Recommendations
For our next prototype, we can consider a housing whose material is denser than acrylic. As such, JellyBot can be naturally negatively buoyant and therefore, we would not need to keep adding additional weights to our prototype and ruin its aesthetic. This also saves us a substantial amount of testing time with regards to buoyancy. However, we must take note that the material cannot be too dense as well as the possibility of our prototype not being able to propel due to heavy load is high.
Propulsion Test (BeeX Lab Water Tank)
To verify consistent upwards propulsion through its velocity and observe any side effects as JellyBot 2.0 propels upwards.
- Prototype: Full assembly with additional external mass of 400g as verified from buoyancy tests
- Location: BeeX lab watertank (Freshwater)
4.1 Tests
4.11 1st Propulsion Iteration
JellyBot 2.0 starts from bottom of tank till it breaks the water surface (Reference taken from black surface where dome is mounted on)
For the 1st iteration, JellyBot 2.0 covered a distance of 32cm in the Y-axis in 10s. Therefore, its velocity measured was 3.2 cm/s. We also noted a horizontal drift X-axis of 11cm to the left from 37cm to 26cm.
4.12 2nd Propulsion Iteration
JellyBot 2.0 starts from bottom of tank till it breaks the water surface (Reference taken from black surface where dome is mounted on)
For the 2nd iteration, JellyBot 2.0 covered a distance of 35cm in the Y-axis in 11s. Therefore, its velocity measured was approximately 3.18 cm/s. We also noted a horizontal drift X-axis of 7cm to the left from 32cm to 25cm.
4.13 3rd Propulsion Iteration
JellyBot 2.0 starts from bottom of tank till it breaks the water surface (Reference taken from black surface where dome is mounted on)
For the 3rd iteration, JellyBot 2.0 covered a distance of 34cm in the Y-axis in 11s. Therefore, its velocity measured was approximately 3.01 cm/s. We also noted a horizontal drift in the X-axis of 6cm to the left from 26cm to 20cm.
4.14 4th Propulsion Iteration
JellyBot 2.0 starts from bottom of tank till it breaks the water surface (Reference taken from black surface where dome is mounted on)
For the 4th iteration, JellyBot 2.0 covered a distance of 35cm in the Y-axis in 12s. Therefore, its velocity measured was approximately 2.92 cm/s. We also noted a horizontal drift in the X-axis of 6cm to the left from 24cm to 18cm.
4.15 5th Propulsion Iteration
JellyBot 2.0 starts from bottom of tank till it breaks the water surface (Reference taken from black surface where dome is mounted on)
For the 5th iteration, JellyBot 2.0 covered a distance of 38cm in the Y-axis in 13s. Therefore, its velocity measured was approximately 2.92 cm/s. We also noted a horizontal drift in the X-axis of 6cm to the left from 24cm to 18cm.
4.2 Summary of Results
| Vertical Movement Testings | Total Distance / cm | Total Time / s | Velocity / cm/s | Horizontal Drift |
|---|---|---|---|---|
| 1st Iteration | 32 cm | 10 s | 3.2 cm/s | 11 cm |
| 2nd Iteration | 35 cm | 11 s | 3.18 cm/s | 7 cm |
| 3rd Iteration | 34 cm | 11 s | 3.01 cm/s | 6 cm |
| 4th Iteration | 35 cm | 12 s | 2.92 cm/s | 6 cm |
| 5th Iteration | 38 cm | 13 s | 2.92 cm/s | 6 cm |
| Average Velocity / cm/s | 3.05 cm/s | — | ||
The upward propulsion test results show that the prototype was able to move vertically with a relatively consistent average velocity of 3.05 cm/s. Since the measured velocities across all five trials remained within a narrow range of 2.92–3.20 cm/s, this suggests that the propulsion system can generate repeatable upward thrust. However, the recorded horizontal drift of 6–11 cm indicates that the prototype did not travel along a perfectly vertical path. Although the drift decreased after the first iteration, it remained present in all trials, suggesting some imbalance in the system, such as uneven thrust, asymmetric mass distribution, or instability in body orientation. Although minor horizontal drift could have been affected by small water disturbances in the tank, this is unlikely to be the main cause because the experiments were conducted under minimal-current conditions. Overall, the results suggest that the prototype is capable of reliable upward motion, but further refinement is needed to improve directional stability.
Propulsion Test (NUS Swimming Pool)
To verify JellyBot 2.0's performance in Swimming pool at depth 2m as per our design specifications of Coral Reefs being located around 2–5m.
- Prototype: Full assembly with additional external mass of 400g as verified from buoyancy tests
- Location: NUS Swimming Pool (Freshwater)
5.1 Test
Considering the total height of JellyBot 2.0 being 32.02cm, the total distance covered is 200cm − 32.02cm = 167.98cm. The total time taken to propel from bottom of pool to the surface of the pool was 55s. Therefore, the velocity measured was approximately 3.05 cm/s which tallies with the average velocity computed from the initial water tanks tests at BeeX's lab. A horizontal drift of approximately 12.7cm was observed from start till end. Hence, we have verified JellyBot 2.0's performance.
Depth Control Tests (Vertical)
To ensure JellyBot 2.0 is able to maintain depth with an error rate of ±5cm as per design specifications, when visual data is being collected.
- Prototype: Full assembly with additional external mass of 400g as verified from buoyancy tests
- Location: NUS Swimming Pool (Freshwater)
6.1 Tests
6.11 Manually place JellyBot 2.0 at depth 0.5m (top of dome as reference) and observe its behaviour when doing manual depth control over a period of 10s
Within a span of 10s, JellyBot 2.0 hovered at depths 50cm – 53cm – 52cm – 55cm – 52cm with each propulsion movement respectively. It did not exceed the error rate limit of ±5cm as stated in our design specifications.
6.12 Manually place JellyBot 2.0 at depth 0.53m (top of dome as reference) and observe its behaviour when doing manual depth control over a period of 10s
Within a span of 10s, JellyBot 2.0 hovered at depths 53cm – 55cm – 57cm – 57cm – 55cm with each propulsion movement respectively. It did not exceed the error rate limit of ±5cm as stated in our design specifications.
6.13 Manually place JellyBot 2.0 at depth 0.53m (top of dome as reference) and observe its behaviour when doing manual depth control over a period of 10s
Within a span of 10s, JellyBot 2.0 hovered at depths 53cm – 56cm – 57cm – 55cm – 50cm – 53cm with each propulsion movement respectively. It did not exceed the error rate limit of ±5cm as stated in our design specifications.
6.14 Manually place JellyBot 2.0 at depth 0.53m (top of dome as reference) and observe its behaviour when doing manual depth control over a period of 10s
Within a span of 10s, JellyBot 2.0 hovered at depths 53cm – 56cm – 50cm – 48cm – 52cm with each propulsion movement respectively. It did not exceed the error rate limit of ±5cm as stated in our design specifications.
6.2 Shortcomings
Ideally, we would want our user/customer to have a seamless experience when operating JellyBot. However the current situation with regards to depth control is that the control is passive and not active. To maintain depth, the user has to constantly press the appropriate buttons on the controller while another person is under water observing the depth giving him the commands. The reason the setup is as such is because our depth sensor is unable to calibrate well as its functionalities go haywire under water. Hence, manual assistance is required.
6.3 Future Recommendations
For upcoming JellyBot prototypes, ideally we would get the depth sensor to work well so that the user has a seamless experience when performing active depth control. How this works is when reaching a desired depth as observed from the pelican screen, the user would press a button on the controller to activate active depth control. The JellyBot would then perform its propulsion actions as shown from the figures above. Once user is done collecting the necessary visual data, they can then press the button again to deactivate Active Depth Control.
Horizontal Propulsion with Depth Control Tests
To demonstrate the horizontal movement capabilities of JellyBot 2.0 while maintaining its depth with an error rate of ±5cm.
- Prototype: Full assembly with additional external mass of 400g as verified from buoyancy tests
- Location: NUS Swimming Pool (Freshwater)
7.1 Tests
7.11 Manually place JellyBot 2.0 at depth 0.34m (top of dome as reference) and observe its behaviour when doing manual depth control over 4 iterations
Horizontal distance covered = 27cm. Therefore, the measured velocity of JellyBot 2.0's horizontal movement over a period of 26s equals approximately 1.04 cm/s.
In Test 1, JellyBot 2.0 did not meet the required vertical depth tolerance of ±5 cm during horizontal movement. Starting from 33 cm, the acceptable depth range was 28–38 cm. While JellyBot remained within this range at the start, its depth later changed to 20 cm, 16 cm, and 22 cm, showing a clear loss of vertical stability. This is likely related to the actuation sequence used in the test. Since the motion only began with one cycle of 8-tentacle actuation before switching to two cycles of 4-tentacle actuation, JellyBot may not have had enough balanced initial thrust to stabilize its posture. Once the motion relied more on partial actuation, vertical deviation became more obvious, possibly due to uneven thrust or body pitching during travel.
7.12 Manually place JellyBot 2.0 at depth 0.52m (top of dome as reference) and observe its behaviour when doing manual depth control over 5 iterations
Horizontal distance covered = 78cm. Therefore, the measured velocity of JellyBot 2.0's horizontal movement over a period of 40s equals approximately 1.95 cm/s.
Comparing both tests, Test 2 clearly performed better than Test 1. In Test 1, JellyBot could not maintain the required depth tolerance of ±5 cm from its starting depth, as the measured depth eventually deviated far outside the acceptable range. On the other hand, in Test 2, all measured depths stayed within the allowable range throughout the motion, showing much better depth stability. Test 2 also produced a higher horizontal speed, indicating that JellyBot not only moved more stably but also more effectively. The main reason for this improvement is likely the change in actuation sequence. Using two 8-tentacle actuations at the start probably gave JellyBot a stronger and more balanced initial motion before switching to 4-tentacle actuation for horizontal travel. This would have helped JellyBot maintain a more stable body orientation and reduce vertical deviation.
7.2 Shortcomings
- Horizontal drift observed consistently across all vertical propulsion tests (6–11 cm), suggesting asymmetric thrust or mass distribution.
- Depth control during horizontal movement relies on manual operator commands, requiring a second person underwater to relay real-time depth readings.
- Actuation sequence significantly affects depth stability during horizontal travel; inconsistent sequences lead to loss of depth control.
7.3 Future Recommendations
- Using a standardised actuation sequence (two full 8-tentacle cycles before switching to partial actuation) can help the robot move more consistently and maintain its depth better during horizontal travel. However, the downside is that its movement becomes less flexible and it may be slower to react when a different motion is needed.
- Integrating a working depth sensor for active depth control can make the robot more autonomous and improve how accurately it holds its depth. The trade-off is that it may require extra time for sensor selection, calibration, waterproof integration, and testing before it can be used confidently in the system.
- Improving the mass distribution and tentacle symmetry can help reduce horizontal drift and make the robot travel in a straighter path. However the challenges would be that the the design would be harder to fine-tune because the internal components need to be arranged more carefully and the overall packaging becomes more challenging.
Conclusion
Altogether, we have successfully managed to verify the 4 properties of JellyBot 2.0 as stated earlier. Compared to our first prototype, JellyBot 1.0, there have been significant improvements with our current prototype. We have managed to solve the waterproofing and leaking issues which we encountered with JellyBot 1.0 that hindered testing progress. Furthermore, JellyBot 2.0 is able to maintain an upright attitude throughout unlike JellyBot 1.0 where its attitude was slightly tilted due to unbalanced weight distribution.
With all this said, this does not conclude our testing or experiments. There are still certain shortcomings with JellyBot 2.0 and look forward to implementing our future recommendations for subsequent prototypes. One major recommendation would be to install a Variable Buoyancy System (VBS).
With a VBS, we would be able to reach desired depths by pumping in water (Fb < W), causing the JellyBot to be negatively buoyant and sink. When approaching the desired depth for surveillance, the pump would release the water so that the weight of the JellyBot equals the buoyant force (Fb = W), maintaining neutral buoyancy and we would be able to gather our visual data without having to worry about active depth control.
List of Figures
- Figure 1.Buoyancy Concept — Positively Buoyant, Neutrally Buoyant, Negatively Buoyant
- Figure 2.Mass of Battery pack with mounting devices, Flight Navigator and Camera = 530g
- Figure 3.Mass of Voltage step down device with 2× Solenoid Valve = 57.5g
- Figure 4.Mass of 2× Pneumatic Pump, 2× Motor Driver Board, I2C Driver = 217g
- Figure 5.Mass of Base with 5m tether cable = 900.5g − 160g (Brass weights) = 740.5g
- Figure 6.Mass of Cylinder body with acrylic dome = 677.5g
- Figure 7.Mass of 2× Flap Clamp = 2 × 59.5g = 119g
- Figure 8.Mass of Flap with 8× Tentacles = 503.5g
- Figure 9.Brass weights (50g each)
- Figure 10.Small calibration weights (20g and 10g)
- Figure 11.Flap with 8× Tentacles (top view for volume calculation)
- Figure 12.Cylinder body with acrylic dome (side view for volume calculation)
- Figure 13.M10 screws used for volume calculation
- Figure 14.M14 screws used for volume calculation
- Figure 15.M14 Connector used for volume calculation
- Figure 16.Bar O2 Sensor used for volume calculation
- Figure 17.JellyBot 2.0 with no external additional Mass
- Figure 18.BeeX Lab water tank used for buoyancy tests
- Figure 19.Buoyancy Test — 0g external additional mass (positively buoyant)
- Figure 20.Buoyancy Test — 250g external additional mass (still positively buoyant)
- Figure 21.Buoyancy Test — 350g external additional mass (still positively buoyant)
- Figure 22.Buoyancy Test — 500g external additional mass (sinks; unable to propel)
- Figure 23.Buoyancy Test — 400g external additional mass (sinks; able to propel — finalised)
- Figure 24.1st propulsion iteration — bottom of BeeX Lab tank
- Figure 25.1st propulsion iteration — top of BeeX Lab tank
- Figure 26.2nd propulsion iteration — bottom of BeeX Lab tank
- Figure 27.2nd propulsion iteration — top of BeeX Lab tank
- Figure 28.3rd propulsion iteration — bottom of BeeX Lab tank
- Figure 29.3rd propulsion iteration — top of BeeX Lab tank
- Figure 30.4th propulsion iteration — bottom of BeeX Lab tank
- Figure 31.4th propulsion iteration — top of BeeX Lab tank
- Figure 32.5th propulsion iteration — bottom of BeeX Lab tank
- Figure 33.5th propulsion iteration — top of BeeX Lab tank
- Figure 34.NUS Swimming Pool — test location for pool propulsion and depth control tests
- Figure 35.NUS Swimming Pool propulsion test — JellyBot at pool bottom
- Figure 36.NUS Swimming Pool propulsion test — JellyBot at pool surface
- Figure 37.Start of 1st Vertical Depth Control Test (depth 0.5m)
- Figure 38.End of 1st Vertical Depth Control Test
- Figure 39.Start of 2nd Vertical Depth Control Test (depth 0.53m)
- Figure 40.End of 2nd Vertical Depth Control Test
- Figure 41.Start of 3rd Vertical Depth Control Test (depth 0.53m)
- Figure 42.End of 3rd Vertical Depth Control Test
- Figure 43.Start of 4th Vertical Depth Control Test (depth 0.53m)
- Figure 44.End of 4th Vertical Depth Control Test
- Figure 45.Start of 1st Horizontal Depth Test (depth 0.34m)
- Figure 46.End of 1st Horizontal Depth Test
- Figure 47.Start of 2nd Horizontal Depth Test (depth 0.52m)
- Figure 48.End of 2nd Horizontal Depth Test
- Figure 49.Variable Buoyancy System (VBS) — future recommendation diagram
References
1. KenAge. (2024, April 23). Positively negatively and neutrally buoyant. Science vector [Stock vector]. Shutterstock.https://www.shutterstock.com/image-vector/positively-negatively-neutrally-buoyant-science-vector-2453261307?trackingId=e78e3bab-d889-4c17-9f35-63c6d68fb2b7&listId=searchResults
2. Um, T. I., Chen, Z., & Bart-Smith, H. (2011). A novel electroactive polymer buoyancy control device for bio-inspired underwater vehicles. In 2011 IEEE International Conference on Robotics and Automation (pp. 172–177). IEEE. https://doi.org/10.1109/ICRA.2011.5980181