Coding this combination of features has taken me several days, covering complex interaction depending on whether each is installed and how they are configured. This has required a rework of the GPS processing and Flight Plan objects to ensure they interact cleanly, along with enhanced configuration parameters and use of compass. Here’s the overview.
|yaw control||compass||gps control|
|yaw control||Defines always forward flight with yaw to turn.||Defines flight plan X, Y as N, S, E & W; fused to prevent integrated IMU yaw rate drift.||No interactions without compass|
|compass||Defines flight plan X, Y as N, S, E & W; fused to prevent integrated IMU yaw rate drift.||Defines NSEW during flight||Defines direction of flight between waypoints.|
|gps control||No interaction without compass||Defines direction of flight between waypoints.||Defines flight plan waypoints; tracks locations during flights.|
I _think_ I’ve got all bases covered now in the code, but there’s a lot of new pieces to be tested individually, and in all possible combinations, passively first, and then in real flights. For the first time in this project, I’m going to need to plan my testing so I don’t miss a combination until it’s too late.
On the plus side, somehow after her last video, Hermione’s shoulder joint broke while I was testing higher video frame sizes and rates, and the camera stopped working. Until the replacement parts arrive, there’s a lot of spare time for thinking and coding, and also occasionally tickling my fancy – more on the latter anon.