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

AP_MotorsHeli Rework Roadmap #23691

Open
6 of 10 tasks
MattKear opened this issue May 5, 2023 · 3 comments
Open
6 of 10 tasks

AP_MotorsHeli Rework Roadmap #23691

MattKear opened this issue May 5, 2023 · 3 comments

Comments

@MattKear
Copy link
Contributor

MattKear commented May 5, 2023

Through recent use and digging through AP_MotorsHeli it is evident that there are a number of issues that need addressing and number of features that could make user setup a lot easier. This Issue defines a list of all issues and impovements and provides a means to keep track of what is going on and when. Please add to this as realted issues are found.

Rework Required
These are reworks that will bring heli motors more into line with conventions of the rest of the code base. These do not change functionaility.

Feature Improvements
These are improvements that we really ought to be doing but not currently

  • Fix control saturation/output limiting flags. There are a number of cases where we are not flagging control saturation at all or we are not doing it correctly.
  • Impove logging of limit flags
  • Fix use of get_motor_mask() to not include swashplate servos. (AP_Motors: Heli: get_output_mask return only motors #23696)

New Features
These add new functionaility

  • Add swashplate logging to make it easier for users to find appropriate log data e.g. collective and particularly collective 2,3,4 for multi head frames. (Heli: Add blade pitch angle logging #26606)
  • Allow use of SERVO*_MIN _TRIM _MAX functions and blade angle linerisation curves to make swashplate setup easier and more accurate.
@bnsgeyer
Copy link
Contributor

bnsgeyer commented May 5, 2023

@IamPete1 @Gone4Dirt a lot of this is great stuff and completely necessary. I really appreciate the help. I have one comment and one concern.
I want to comment on rework required item regarding the limit cyclic angle in both axes on dual heli’s. Longitudinal cyclic is not limited because it is not used for control of a dual Heli. I agree that it should be included because I intend to implement longitudinal cyclic control in the future.

My concern is with the future enhancements item regarding the use of the servo min and max for swashplate set up. Be sure you understand how the swashplate Servo output is determined and why we fix the min and max servo positions to 1000 and 2000. Also, make sure you understand my server linearization feature. This not only eliminates binding in four servo swashplates, but also provides a linear relationship with a collective angle. You’ll have to convince me that what you’re doing is better than what’s there already.

thanks again for your efforts in the Motors heli’s library. I appreciate the help.

@MattKear
Copy link
Contributor Author

MattKear commented May 5, 2023

@bnsgeyer no problem, happy to be able to help out :-)

Regarding limit cyclic angle: Understood on your point. To add clarification on where this is comming from:
We were setting up a coax heli (dual_mode == Intermeshing) which does use cyclic for both roll and pitch control. This useage of only limiting pitch output:

if (_dual_mode == AP_MOTORS_HELI_DUAL_MODE_TRANSVERSE || _dual_mode == AP_MOTORS_HELI_DUAL_MODE_INTERMESHING) {
if (pitch_out < -_cyclic_max/4500.0f) {
pitch_out = -_cyclic_max/4500.0f;
limit.pitch = true;
}
if (pitch_out > _cyclic_max/4500.0f) {
pitch_out = _cyclic_max/4500.0f;
limit.pitch = true;
}

Gives the issue i describe above. We now do not have the ability to set a cyclic range in roll and therefore must set the pitch limited cyclic range to match (if we want symetrical control).

Regarding servo min max concern. Yes I totally agree, we need to understand why things were previously done in the past before changing them. I propose we have a call to chat this through.

@bnsgeyer
Copy link
Contributor

bnsgeyer commented May 5, 2023

@Gone4Dirt good catch. I was thinking strictly of tandem. The library will need to treat pitch and roll the same regardless of dual heli type.

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

No branches or pull requests

3 participants