Skip to content

FilterReview: features to be implemented #10

Open

Description

@IamPete1

Somewhere to note down all the features that we would like:

Activity

  1. jkordani commented on Feb 18, 2025

    @jkordani

    ESC Telem with "MultiSource" deselected doesn't respect the scale value of the _REF field. I am working on a PR to fix that.

    Additionally, I'd like to have the _REF field used as a scale for multisource as well, but that is not supported in AP firmware yet (and I'll probably make a PR for that too)

  2. IamPete1 commented on Feb 18, 2025

    @IamPete1
    MemberAuthor

    ESC Telem with "MultiSource" deselected doesn't respect the scale value of the _REF field. I am working on a PR to fix that.

    I think that is what I would have expected. The way to test is to turn on notch logging and compared the estimated to the logged on the spectrograph.

    Image

  3. jkordani commented on Feb 18, 2025

    @jkordani

    Not sure I understand your response, to be clear
    https://github.com/ArduPilot/ardupilot/blob/15376a4908cc1a0019f692b495085688736f84e0/libraries/AP_Vehicle/AP_Vehicle.cpp#L866
    If the filter has the option set for HarmonicNotchFilterParams::Options::DynamicHarmonic which in the filter review tool corresponds to "MultiSource", then individual filters are added per esc telem freqency. If not, then the average is targeted. In the AP code, the average is scaled by the _REF parameter, in the WebTools it is not.

    Edit: I do intend to get some experimental data, but this particular craft's flight windows are hard to come by, so I was hoping to get some insight from the tool ahead of time.

    Edit 2: In my fork, I added the ref scaling parameter to the identically shaped code in the trackers/EKF.js, That resulted in the notch filter centers shifting visually in the logging overlay, but not being used in the transfer functions. When I added the scaling to the smaller get_target function, then I get scaling also with MultiSource, which I don't think is the way AP currently works and would be an incorrect feature at the moment

  4. IamPete1 commented on Feb 18, 2025

    @IamPete1
    MemberAuthor

    Not sure I understand your response, to be clear
    https://github.com/ArduPilot/ardupilot/blob/15376a4908cc1a0019f692b495085688736f84e0/libraries/AP_Vehicle/AP_Vehicle.cpp#L866

    Hum, that is quite odd. As you say, it looks like were doing it wrong. I guess most everyone uses per-ESC if they have the feedback (that is what I would suggest you do too).

  5. jkordani commented on Feb 18, 2025

    @jkordani

    I have counter-rotating motors, so I have my first noise peak is at 1/2 the motor RPM and hence need to scale the targeted frequencies down by 1/2 of the reported RPM. The AP doesn't support scaling on per-ESC tracking (which frankly looks like a simple oversight, I'm sure my prop style is uncommon), but it does support scaling on avg-ESC and RPM tracking. In the short term, I we'll see how far we get with avg-ESC with scaling, but I plan on submitting a PR to add scaling on per-ESC as well.

  6. IamPete1 commented on Feb 18, 2025

    @IamPete1
    MemberAuthor

    I have counter-rotating motors, so I have my first noise peak is at 1/2 the motor RPM and hence need to scale the targeted frequencies down by 1/2 of the reported RPM.

    I don't understand how it would be half?

  7. jkordani commented on Feb 18, 2025

    @jkordani

    I have a motor that has a pair of props on the top, and a pair on the bottom. They rotate in opposite directions, and there seems to be a noise source at 1/2 the motor RPM. The upper and lower blades pass each other at 1/2 motor revolution

  8. IamPete1 commented on Feb 18, 2025

    @IamPete1
    MemberAuthor

    The upper and lower blades pass each other at 1/2 motor revolution

    Right, but half a revolution would be twice the frequency.

    Double check your motor poles is set correctly. It could be the ESC RPM is reporting double and your really seeing the fundamental.

  9. jkordani commented on Feb 18, 2025

    @jkordani

    Nope I'm dumb, it would be twice the frequency, good catch.

    Edit: Yes, we have a known issue with our ESC config, I missed a memo

  10. amilcarlucas commented on Feb 26, 2026

    @amilcarlucas
    Contributor

    I'm using multisouce throttle notch. I'm not logging the throttle, but there are FCN and FTN messages in the .bin file. Can the tool fall back to those messages when throttle information is missing?

    Does it make sense? Should I PR it?

  11. IamPete1 commented on Feb 27, 2026

    @IamPete1
    MemberAuthor

    I'm using multisouce throttle notch. I'm not logging the throttle, but there are FCN and FTN messages in the .bin file. Can the tool fall back to those messages when throttle information is missing?

    Hum, it sounds quite complicated. So I understand, you would use the logged notch frequencies to reverse the scaling and get back a throttle value. Then once you have the throttle you could run the maths forwards again to test param changes. In theory it would work, but there is some information lost, we constrain up to min frequency for example. You also need to make sure the filter config in the log is also throttle based.

    Currently we get throttle from RATE.AOut, I think you would be better to add support for getting it from CTUN on copter if RATE is not available.

  12. amilcarlucas commented on Feb 27, 2026

    @amilcarlucas
    Contributor

    @IamPete1 thanks for the suggestion, I implemented that in #293 and it works fine here!
    It's a lot simpler than the solution I was previously using.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions