Author: Nathan Becker
Background
With an underwater object, there are two main forces passively acting on it: gravity and buoyancy. The center of mass is the average location of where the mass is concentrated, and the center of buoyancy is the average location of volume which displaces the water. If these two points are not directly above each other, the two forces will try and twist the object in the water to make them align.
Figure 1: Depiction of an offset center of mass and buoyancy trying to rotate a submerged object
So, in the case of an underwater robot, knowing the position of these points is important so that the torque caused by the offset of these points can be accounted for with the robot’s software. Specifically, let’s look at determining the center of mass for our robot, Tempest.
How to measure it?
One way of determining the center of mass is by using the SolidWorks 3D model of our robot and use the program to calculate it for us. However, this does not account for anything not in our model, such as wires and connectors, or if a part was not given the correct material. So, it is best for the center of mass to be measured with the real Tempest and determine the position of the center of mass experimentally.
To achieve this, our team developed a custom scale from scratch to accurately measure the center of mass. To better understand how it works, a simpler case will be covered initially. If an object is placed on a platform supported by two force sensors, the position of the object can be determined with statics, but this concept can be intuitively seen in the figure below.
Figure 2: Depiction of forces needed to support a weight on a platform.
This concept can be expanded to determine the location of a mass on the XY plane with an additional sensor in a triangular configuration, but it unfortunately doesn’t expand any further. To get the Z coordinate of the center of mass, the weighing platform is tilted, and multiple measurements need to be made. The data could then be combined using the power of math to determine the location. Unfortunately, the math behind it is beyond the scope of this blog post, but feel free to reach out to learn more about it. One important observation that came from the math behind it was that a smaller weighing platform would be more sensitive to changes in the position of a mass, thus the design of the weighing platform minimized its size to improve accuracy.
Build and Validation
Now with all the concepts out of the way, it is time to build it. The device was designed using SolidWorks and was planned to be simple to manufacture. An aluminum extrusion frame was bolted together with a combination of 3D printed brackets and water jetted aluminum plates. The device features three adjustable leveling feet and bubble levels to ensure the platform is leveled. Because multiple measurements of Tempests need to be made, the weighing platform was designed to be self-locating with the undercarriage of Tempest to reduce positioning inaccuracies between measurements. There are three 20kg load cells to detect the force on each corner of the measuring platform. The signals from the load cells are amplified so the data can be processed with an Arduino, and the Arduino also has an LCD and a joystick for the operator to make measurements and view the results.
Figure 3: Complete assembly of the center of mass device
To get the device functioning reliably, the load cells needed to be calibrated. To do this, an object with a known mass is needed as a reference, which in this case is ideally around 10kg to reduce error from extrapolating far away from the known mass. However, the available scales were not reliable enough to obtain an accurate weight for any objects, so two calibration weights were precisely machined out of aluminum. Another important use for these precisely machined calibration blocks is that they are uniform simple shapes whose center of mass is directly in the middle of the objects. These objects were used to calibrate a sensitive parameter in the code, which is affected by any slight errors in assembling the weighing platform. Based on the data, the device can provide a weight reading within 0.09% within the true mass, the XY position of the center of mass with an accuracy around +/- 0.7mm, and the Z position of the center of mass accuracy within +/-1.3mm. Finally, this device fulfilled its purpose and measured the center of mass values of Tempest, and they have been in use for the past few pools test. Having the device has been useful to update the center of mass each time Tempest gets a modification.
Figure 4: The center of mass device collecting data on Tempest!