I have no clue about that difference, could you possibly give me a quick explanation? Been wondering about that ever since you mentioned it at the first of this thread. TIA
Grandpa pointed out correctly when open loop and closed loop operations are used in the drone flight modes. And this was the central point of my disagreement with the motto "ATTI is P-GPS with no GPS" because it focuses on the presence/absence of GPS as the difference between the two, while the fundamental difference between the two modes is that in ATTI we fly the drone open loop while in P-GPS we fly it closed-loop. P-GPS is not the only mode in which we fly the drone closed-loop, as we do it in P-OPTI as well, with the only secondary difference that the drone position is computed by using the VPS system instead of the GPS system.
The best way to think about open loop vs open loop is to think about the concept of manual control vs. automatic control. Control means acting on an object (say the drone) to make it achieve a desired goal (say fly from A to B along a certain path). This can be done manually or automatically.
To identify the core difference, it helps to reduce complexity by using for a moment a simpler system, like a thermostat to control temperature in a room,
Old manual thermostats have a lever with different numbered positions (say 0 to 10). Each position represents a certain amount of heat generated by the burner and delivered to the room. If you want the room to be at 70 degrees, you do not have an immediate way to achieve that goal, but you have to play with the lever in a trial and error type of way. Say you start setting the lever at 8, wait and realize the room became too hot, then move the lever down to 5. and wait. If it gets too cold, you bring it up to 6 and let's say it's the correct position that brings the room to 70 degrees. The point is that it took several iterations to get to where you want. With this simple system, the second time that you use the thermostat, you would directly set the lever at 6. However, this is not the end of the issue, because many conditions can change both internal to the system or external. Suppose that all of a sudden the outside temperature plummets and your windows are drafty: you need to start again the process of manual lever adjustments. Or, as an example of internal system change, say your burner loses efficiency and starts having higher heat losses: you need to redetermine the new lever position. Same story if you move that thermostat to a larger room. Basically every time the situation changes you have to re-learn how to adjust the lever to get the temperature you want. This iterative process of adjustments is the essence of manual control: you know the desired goal (room at 70 degrees), you act on the system (move the lever) and measure the result of that action (current temperature in the room). Based on the error between current and desired room temperature, called the tracking error, (too hot? too cold? by how much?) you readjust the lever and repeat until you are satisfied that the residual error is small enough.
In a closed loop system this whole process is completely automated by the use of a feedback controller. When you use a modern thermostat, you don't have to play with lever positions, but you just set the desired temperature to 70 degrees. Upon receiving that command the controller reads the sensors that provides the room temperature, computes the tracking error and, based on its value, starts moving the lever to compensate for the difference.
The advantages of closed loop are many, some immediately obvious, some less so:
1) first of all you do not have to nurse the thermostat. Just set the desired temp and you are done
2) speed and precision: an automatic controller is an electronic device that can read the sensor, compute the tracking error and apply corrective action many times in a second and based on many more factors than those that are easy to read for a human; for example not just the value of the temperature error, but also how fast it is changing, or how to reach the goal by minimizing the amount of energy used.
3) automatic adjustment to changing conditions: since it operates based on the error, an automatic controller will strive to achieve the goal you set indipendently of the cause of the error, be it the result of a suddenly plummeted external temperature and windows draft, decreased burner efficiency or a larger room. As conditions change making the room temp different from the desired value, the controller will act on the system to bring it there.
Let's go back to our drone. In closed-loop operations, by acting on the joystick you "set the desired temperature", to use our analogy. In other words, you tell the control system where you want to fly (by moving the joystick in a certain direction) and how fast (by the entity of the move). The controller reads that command, computes where the drone currently is (either by reading its GPS sensors in P-GPS mode or its VPS sensors in P-OPTI mode and doing the appropriate computations) and determines the amount of current to send to the electric motors to achieve the propellers’ action necessary to do what you commanded. If there is a sudden burst of wind trying to move the drone in another direction, the controller sees an increased tracking error in that direction and generates the appropriate corrective action, i.e., adjusts the current sent to the appropriate motors to keep the drone on the desired trajectory independently of the wind.
If neither GPS or VPS is available, the controller has no way to know the current position and hence cannot compute how much current to send to the motors to get where you commanded. For this reason, no closed loop operations are possible and the drone enters ATTI mode, in which the operations are open loop. Going back to our analogy, by acting on the joystick you are not setting anymore “the desired temperature" but you are setting “the lever position of that old thermostat”.
In other words by moving the joystick in one direction you select which motors you want to act on and by the entity of the joystick move you determine how much current you are sending them. Since knowing how much current the motors need to bring the drone where you want is not very intuitive and depends on many external factors (like, e.g., the wind direction and strength) you have to resort to the trial and error mode we discussed: move the lever in the desired direction, look with your eyes whether that brings the drone too far or not close enough, at which moving speed, and make the appropriate correction. Note that unlike the thermostat case, where one wants to reach a simple static goal (a set room temp) in flying the drone one has to track a dynamic goal, i.e., bring the drone to a continuously updated desired position along a path that reaches the landing point. Clearly one can do this only with the speed and precision that are allowed by his visual ability to estimate the drone position and his reaction time to perform a corrective action. Both can be improved by practise, gaining familiarity with the system and an instinctive feel for how to move the joystick, but it’s highly unlikely that one will ever manage to get close to the level of performance guaranteed by an automatic controller. If there are obstacles closeby, one does not have many margins for error and adjustments so he needs to be very cautious with the joystick, making the drone move super slow. However, if there is a sudden burst of wind, there might not be enough time to correct before the drone hits an obstacle. To further complicate things, the drone in open loop is not a stable system, which means that if you do nothing with the joystick, the drone does not stay put. Every small perturbation such for example a little wind, or a small asymmetry in the propellers, will cause it to start drifting, making active joystick operations necessary even to keep the drone in position by counteracting those external disturbances.
This is the reason why one must be extremely prepared to react to a sudden switch to ATTI mode. My case shows how dangerous being unprepared can be. The drone was hovering a couple of meters from me standing on the balcony as it had on the way out and there was plenty of light, so even without GPS it was operating in stable closed-loop conditions in P-OPTI mode. I was trying to bring the drone over the balcony to land it but I was prevented from doing so by the Obstacle Avoidance (OA) system. Since I had a clear view of all obstacles that were present, I disabled OA and prepared to move the drone over the landing point under stable P-OPTI closed loop. However, a few seconds after disabling OA, something happened that made the VPS unexpectedly (to me) fail and the drone switched to ATTI mode. The fact that I did not expect this coupled with the wind that was present and the closeness to obstacles resulted in a crash that I was unable to avoid. All I could muster was a last disperate attempt to move away, but it was too late.
I apologize for the long reply, but I believe this is a fundamental concept to understand. Since both in closed-loop (P-GPS and P-OPTI) and open loop (ATTI) we are using the same joystick, it’s not immediately obvious that by operating it in the two situations we are actually doing a very different thing. In closed-loop we are just telling what we desire and do not have to worry about how to achieve it. In open-loop we need to tell exactly how to achieve it based on all the external factors that are present and that can vary very rapidly.