Skip to content
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

Limit Iterm on FW depending on stick position #4023

Merged
merged 2 commits into from Dec 2, 2018

Conversation

DzikuVx
Copy link
Member

@DzikuVx DzikuVx commented Nov 18, 2018

It's not that simple to tune a FW for sharp turns especially when requested rates are close to the hardware limit. Too much or not enough FF leads to bounce-back or even follow-up when stick is released.

adnotacja 2018-11-18 190857

adnotacja 2018-11-18 191138

Limit in this PR depends on a stick position, not the fact if output is saturated like in case of MR controller since it's harder to determine if any servo is actually at a limit or not.

Experimental, not tested yet

@digitalentity
Copy link
Member

Idea is to keep ITERM active when stick is not moving or moving slow and limit ITERM when stick deflection is high? Nice.

I would, however, act on rateSetpoint, not on stick position.

@DzikuVx
Copy link
Member Author

DzikuVx commented Nov 18, 2018

@digitalentity this was my original goal, but I quickly realized that in case of too high rates that airplane can not reach, this would lead nowhere. The limit would trigger too soon or too late. On majority of planes this is not a case, but small agile race or freestyle wing can be affected.

@digitalentity
Copy link
Member

@DzikuVx if rates are set properly, stick deflection or rateSetpoint won't make a difference.

@DzikuVx
Copy link
Member Author

DzikuVx commented Nov 18, 2018

As long as set correctly yes. It's hard to guess the max rates and getting them from blackbox and manu mode is quite complex. Lets see it this will be a working and simplified solution

@digitalentity
Copy link
Member

Then we should probably limit it to ACRO mode only. In ANGLE or automatic modes the rateSetpoint is disconnected from the stick and this logic won't make sense anyway.

@DzikuVx
Copy link
Member Author

DzikuVx commented Nov 18, 2018

Good idea with limit to acro actually. I will make that happen

@DzikuVx
Copy link
Member Author

DzikuVx commented Nov 20, 2018

@digitalentity now it should work only in Acro. Did not tested yet tho ;)

@digitalentity
Copy link
Member

Looks good. Would be interesting to know how it behaves in testing

@DzikuVx
Copy link
Member Author

DzikuVx commented Dec 2, 2018

@digitalentity flight tested. Works quite nice. Wing was stoping very nicely at the ends of sharp turns and rolls. No more bounceback or follow due to misbehaving Iterm. Even when roll rate was somehow 30% above max rate of the wing
Unfortunately there is no BB log since either SD card is broken on development on Omnibus F7 (again) or I misconfigured something.

Either way, I think it's working so either merge for 2.1 or we keep it for next release

@digitalentity
Copy link
Member

Let's merge it

@DzikuVx DzikuVx added this to the 2.1 milestone Dec 2, 2018
@DzikuVx DzikuVx merged commit f26bd24 into development Dec 2, 2018
@DzikuVx DzikuVx deleted the dzikuvx-fw-iterm-anit-windup branch December 2, 2018 13:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants