-
Notifications
You must be signed in to change notification settings - Fork 13.7k
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
Mixer corner cases #4221
Comments
yes ,i found this issue too, but sometimes, it is bad , when the Multicopter turn right and yaw value out of range, this issue will happen on CCW motors , but i dont know how to solve this except changing "out>1.5f" or more bigger. //-----here--------
|
We reworked this recently. |
As far as I can tell, the issue should still be present in the current master: line https://github.com/PX4/Firmware/blob/2cfcf3402e814f8a5cde7616232482853775bb5a/src/modules/systemlib/mixer/mixer_multirotor.cpp#L347 gets processed for each motor separately. So maximum possible thrust reduction because of yaw saturation still depends on motor count. |
@MaEtUgR @priseborough Can you have a look? |
I once developed a much simpler mixer and flew with it for the entire tests of my master thesis so it works. But I never found the time to extensively test it for safety which was my main remaining concern. The time to have a closer look if it can be taken over was always postponed.
|
It looks like it was fixed in the mentioned PR, yes. |
@AndreasAntener Thanks, don't worry I will follow up on my proposal in a nicer way (pr) 😃 |
Hey, I have another concern about the mixer algorithm. Namely,
https://github.com/PX4/Firmware/blob/master/src/modules/systemlib/mixer/mixer_multirotor.cpp#L317
a) https://github.com/PX4/Firmware/blob/master/src/modules/systemlib/mixer/mixer_multirotor.cpp#L341 - this line restricts thrust reduction at 0.15f, but this reduction can happen for each motor, so total reduction, in theory, is dependant on motor count, which is kinda strange.
b) Yaw correction that happened for the first motor might later get overwritten by correction in the opposite direction in one of the later motors. This issue, probably, is less important.
I’m not sure what are the possible real-life problematic cases and what is the right way to fix it. Possibly, something similar to roll_pitch_scale is needed - I can’t say that I fully understand all the transformations that calculate the boost and this scale, so it’s hard for me to tell if it can be applied to yaw too.
The text was updated successfully, but these errors were encountered: