Georacer
(George Zogopoulos)
February 4, 2026, 8:51am
1
Attendees (unique) : 6
UTC0705
master ← Ventor-Innovations:feature/navl1-lat-acc-feedback
opened 01:35AM - 02 Feb 26 UTC
> **Note:**
This PR supercedes #30438. More context in that thread!
# Descri… ption
Introduced an adaptive scale factor (_lat_acc_k) that learns the effective roll-to-lateral-acceleration gain from measured lateral acceleration and applies it in nav_roll_cd. This helps keep turns and circle tracking accurate when the coordinated-turn model is imperfect (e.g. sideslip/uncoordinated flight), and greatly improves navigation performance in aircraft with poorly tuned or no yaw control.
The estimator is gated to avoid learning from low-speed/noisy conditions and is low-pass filtered using a new LACC_K_TC parameter. It is updated in the waypoint, loiter and heading-hold modes.
Key changes:
- Added LACC_K_TC parameter to configure the estimator time constant. Can be disabled by setting it to 0.
- Applied _lat_acc_k in the nav_roll_cd coordinated-turn mapping, acting as a feedback correction on the effectiveness of the model.
- Added _update_lat_acc_gain, which estimates a gain sample as measured_lat_accel / model_lat_accel, and low-pass filters it using the configured time constant.
- Call the estimator from waypoint, loiter, and heading-hold updates.
This also adds a dependency on AP_FixedWing to reuse the configured minimum groundspeed parameter when deciding whether the learning logic is reliable.
# Before vs after
These comparisons are from SITL simulations using the default fixed-wing model and all parameters set to their default values, except for NAVL1_LIM_BANK, which has been set to 65 degrees, matching ROLL_LIMIT_DEG to provide accurate loiter radius compensation with height.
## Before
<img width="1530" height="660" alt="imagen" src="https://github.com/user-attachments/assets/26d39dd4-26f3-45a6-b0ba-14a8ca2cc83f" />
## After
<img width="1562" height="649" alt="imagen" src="https://github.com/user-attachments/assets/fad62150-da9c-4d9a-9a36-6f4e61835732" />
## Before, but with SITL model tweaked to have 0 sideslip
For this test, the `c_y_b` coefficient in SIM_Plane.h has been set to 0, so the model doesn't see any adverse-yaw forces:
<img width="1540" height="658" alt="imagen" src="https://github.com/user-attachments/assets/a792cad7-16f3-40ed-b1f7-efd22a6b210d" />
This proves that, for the most part, the issue had to do with turn coordination. However, just asking users to better tune their yaw controlers isn't enough, as some aircraft (e.g. most flying wings) don't have active turn coordination mechanismsm, but they should still be expected to navigate correctly.
## Old integral term-based solution (#30438)
<img width="1705" height="1287" alt="imagen" src="https://github.com/user-attachments/assets/709e0ee5-b587-468a-b06e-694d328caba5" />
Ruben : Now there is no integral term, but the behaviour should be the same as master.
George : Does there need to be any specific excitation for the adaptive term to grow properly?
Andrew : We don’t log the adaptive gain, right?
R : No, we don’t right now.
A : Let’s try trimming the rudder to lose yaw coordination and see if the new algorithm performs better.
It does look to learn a bit of a bettrer value.
Let’s avoid introducing the aparm object in the L1 library, and use a constant lower bound.
Some autotests are failling, they need to pass.
UTC0749
master ← peterbarker:pr/no-long-commit-lines
opened 11:14AM - 02 Feb 26 UTC
…racters
sometimes people just forget the linefeed between the subject and co… mmit message body.
Add a very loose limit to try to catch the problem.
<img width="2697" height="833" alt="image" src="https://github.com/user-attachments/assets/1a84fde9-61d8-4f6d-a72a-294b379e298e" />
160 is very generous, really only meant to catch screw-ups. The good taste limit is rather less than that.
In response to the top commit in AP at the moment where a linefeed wasn't added:
```
pbarker@crun:~/rc/ardupilot(pr/rangefinder-i2c-baseclass-maxbotix)$ git log master --oneline | head
6870d06370f AP_HAL_ESP32: fix GPIO pinMode bugs when using relays Fix overwhelming logging caused by unnecessary pinMode calls when GPIOs are used to drive relays and fix GPIO::read behavior when it is configured for output on ESP32. - Add GPIO mode cache as a member of GPIO class to avoid unnecessary gpio_config calls - Remove duplicated logic in DigitalSource by using corresponding hal.gpio methods Tested on L298N motor driver.
3b7558acb85 autotest: add Copter EKF Replay wind and airspeed subtest
4c4f426ecba autotest: reset throttle between Copter Replay tests
ac970b0213a AP_HAL_ESP32: init SITL very early
8b9bc4e5b02 AP_HAL_ESP32: make empty boards work a bit more
```
MergeOnCIPass!
UTC0752
master ← andyp1per:pr-low-latency-linux-uart
opened 05:32PM - 08 Jan 26 UTC
This decreases the latency of a roundtrip communication over a fast UART (2MB) f… rom 20ms to about 2ms. The gating factor was the 100Hz UART thread that slowed both read and writes down.
Needs a reply on Thomas’ comment.
UTC0800
master ← peterbarker:pr/rangefinder-i2c-baseclass-maxbotix
opened 01:39AM - 27 Oct 25 UTC
This also introduces a base class for I2C rangefinders, which is what this branc… h was about.
Saved 16 bytes before adding the required take-semaphore.
I've tested that at least one other backend fits into the new framework well.
The last patch matches the PR title.
Merged!
UTC0811
master ← peterbarker:pr/new-commands
opened 07:12AM - 27 Jan 26 UTC
This is a no-compiler-output change which just brings in new commands (not messa… ges) from mavlink/mavlink/master (removing some from our development.xml).
This is no compiler output change as we don't support these commands, so they're just numbers we don't understand.
I haven't spent a great deal of time evaluating whether these commands are actually any good. "orbit over here" may be useful, though.
Merged!
Discussion on how to detect old, corrupted terrain files.
A : We could do it fast and sketchy by looking at the creation date of the .dat files in the flight controller.
We need to be careful that the Windows machines don’t change the creation date during unzipping or copying to the SD card.
Peter : Same for the Linux cp variants.