1. Updates Summary
- Measured and updated the volume of the UAUV to eliminate modeling error.
- Attempt to eliminate the tracking error:
- Attempt 1: Adding additional payload.
- Attempt 2: Setting minimum thrust force.
2. Detailed Updates
a. Volume Measurement
I measured the volume of the system by submerging the quad in a bowl filled with water and measured the volume of the water flown out of the bowl.
The volume of the underwater quad system is 170 cm^3, which is 40 cm^3 larger than the original estimated value.
I updated the simulator with the new measured volume. For a command of 0.2m, the drone would hover at about 0.26m in the estimator, which is about the tracking error we observed in previous experiments.
However, after updating the volume information, the motors of quadcopter would experience difficulty in starting spinning underwater. The phenomenon can be explained as following:
i. As the volume in quadcopter constant increases, the controller would take more buoyancy into account. As a result, it lowers its desired thrust command during the take off phase.
ii. As the thrust command decreases, the PWM value sent to the motor would also decrease.
iii. Motors we currently use have difficulties in responding to low PWM (<1030) commands.
As a result, to solve the problem, we need to either increase the desired thrust (by decreasing buoyancy or adding weight) or overwrite the thrust command with a higher value.
b. Attempt 1: Adding additional payload.
I made a payload out of the scrap metal in machine shop. Its mass is 63g and its volume is 7.68cm^3.
Followings are the experiment results after adding this piece to the system:
Figure 1. Command = 0.15m
Figure 2. Command = 0.15m (zoomed in) Figure 3. Command = 0.1m
Figure 4. Command = 0.10m (zoomed in) Figure 5. Command = 0.05m
Figure 6. Command = 0.05m (zoomed in)
We see that the approach solves the tracking error problem. However, the method is not ideal, and as Mark pointed out, may be “a step backwards”. We are adding additional weight to the system, making it less efficient. Moreover, the additional payload may cause center-of-mass drift, adding additional inconvenience to the experiments.
c. Attempt 2: Setting Minimum Thrust Force
After analyzing the previous experiment plots, I gain an intuition that the motor will start to spin reliably with a thrust command of around 0.2N.
To pinpoint this value, I experimented with different minimum thrust commands settings.
Following plot is one of the examples: I set target hover height at 1.5m whereas I set the minimum thrust force as 0.18N.
The vehicle would attempt to take off, but one or two propellor would fail to spin. As a result, the vehicle engages in a “jump” motion. As is shown by the following video:
When I set the minimum thrust to 0.2N, the propellers will rotate reliably and the UAUV would be able to successfully take off. Following plot depicts the situation when command height=0.15m and minimum thrust = 0.2N.
Figure 7. Command = 0.15m, Minimum Thrust = 0.2N
Figure 8. Command = 0.15m, Minimum Thrust = 0.2N (zoomed in )
From the plot, we see a 0.07m tracking error. This might be caused by the unreliable mapping between PWM and thrust. In the model, we assumed a quadratic relationship between PWM command and thrust output. This mapping however, is not very accurate in the low-PWM (and hence low thrust force) region. In low PWM region, the real force generated by the propellor deviates from the thrust that the controller thinks it is generating and hence caused the tracking error.
In fact, this mapping error between PWM and generated thrust force is also shown in the hovering force mismatch: according to measurement, the total mass is 0.24 kg and total volume is 0.00017m^3. Considering gravity and buoyancy, each propellor should generate only 0.1715N when the system is hovering. However, we see that we need at least a force command of 0.2N to achieve underwater hover.
3. Planned work for near future
(I will be out of town for the next week. I will try carrying out the following plan during/after Christmas break)
- Work with Eric to create a detailed mapping at low PWM region.
- Hardware maintenance: print another case as current case started cracking under pressure of fasteners.
- Bring tracking error to less than 0.03m for UAUV without additional payload.
- ( I also want to explore the possibility of adding an integral term to the controller and see its performance).
- Communicate with potential undergraduate research assistants and design undergraduate project for the next semester.