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

432 new mixing system #438

Draft
wants to merge 42 commits into
base: main
Choose a base branch
from
Draft

432 new mixing system #438

wants to merge 42 commits into from

Conversation

JMoore5353
Copy link
Contributor

Updated the mixer for multirotors to make it based on the Chapter 14 implementation. For multirotors, since the output of the controller is forces and torques, the mixer computes the desired angular speeds based on the motor model parameters.

For fixedwing vehicles, the mixer architectre stayed the same, since ROSplane (and RC) commands come in as control surface delta commands, or as a throttle setting.

Note that this PR does not expand the mixing definition to include forces in all three axes, and it doesn't add support for a dynamically-changing mixing matrix, both of which were mentioned in #432. The architecture currently only supports a "fixedwing" or "multirotor" mixing mode. The other changes will happen when we need to support them (i.e. for quadplane or tiltrotor).

…and 14 equations to calculate the max thrust given a throttle setting (since RC commands come in as throttle settings, not forces).
@JMoore5353 JMoore5353 linked an issue Oct 14, 2024 that may be closed by this pull request
@bsutherland333 bsutherland333 requested a review from avtoku October 15, 2024 14:30
Copy link
Contributor

@bsutherland333 bsutherland333 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall really great work, I think this will be a welcome improvement to ROSflight, especially once we have an easy way to configure the mixing from a base station.

include/mixer.h Show resolved Hide resolved
src/controller.cpp Outdated Show resolved Hide resolved
src/controller.cpp Outdated Show resolved Hide resolved
src/controller.cpp Outdated Show resolved Hide resolved
src/param.cpp Outdated Show resolved Hide resolved
@iandareid
Copy link
Contributor

I think that before we merge this we should look at ways to make the unit test not freak out at the build. I wonder if we could just make the compilation a little more lax? Give an exception for Eigen? I'm not sure.

@avtoku
Copy link
Contributor

avtoku commented Oct 15, 2024

I think the approach needs some more discussion. I would rather start with just a mixer matrix that can be loaded from the companion computer, or from selected standard cases, and stored as parameters.

include/mixer.h Outdated Show resolved Hide resolved
src/command_manager.cpp Outdated Show resolved Hide resolved
src/controller.cpp Outdated Show resolved Hide resolved
src/mixer.cpp Outdated Show resolved Hide resolved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

New mixing system
4 participants