-
Notifications
You must be signed in to change notification settings - Fork 16.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Copter: run rate loop at full filter rate in its own thread #27029
base: master
Are you sure you want to change the base?
Conversation
e67b845
to
679611b
Compare
Flow today on top of 4.5 - working well. |
bd0fbb4
to
5ef46d2
Compare
c3753e5
to
9ebf348
Compare
9ebf348
to
2370654
Compare
…hread decimate the gyro window locally
…terfere with the target at the same time
configure rate loop buffer based on AP_INERTIALSENSOR_RATE_LOOP_WINDOW_ENABLED
add condition/wait mutex primitive
configure rate loop based on AP_INERTIALSENSOR_RATE_LOOP_WINDOW_ENABLED
configure rate loop via HAL_INS_RATE_LOOP add set_periodic_minimum() to WSPIDevice
…ons.py and extract_features.py
rename get_primary_* to get_first_healthy_* use primary gyro allocation to enable and disable zero waits in IMU driver
ensure fix rate attitude is enabled on arming quickly recover from slowdown
output debug error if rate loop buffer overruns
… to occur at rate rate add rate loop timing debug
…dently of propagating samples
control notch update with using_rate_thread
provide more options around attitude rates only log attitude and IMU from main loop
2370654
to
6398bd3
Compare
@rmackay9 this is close to being ready and I could use your input on what the configuration should look like. The basic premise is that we run the rate controller at the same rate as the gyros which is controlled by Currently we have the following: I'm not currently convinced about the naming or the configuration. I think this is an important enough feature that it needs its own enable flag. I also think it would be worth having a rate parameter that allows you to fix the rate. I also think that ATT is a little bit misleading. Maybe FAST_RATE_ or RATET_ or something. So an alternative might be:
or something. It would also be possible to not use Hz at all but simply pick the divisor. So 2 would be gyro rate / 2 etc. |
This is a redo of #26189
I have squashed the commits, rebased and started fixing the underlying problems. There were some fundamental problems with how the original PR was handling attitude control changes so I thought it was better to just open a new PR.
Support is enabled by setting:
which gives a variable attitude rate depending on load, and:
which gives an attitude rate locked to the gyro rate