x#40
Open
peterbarker wants to merge 20 commits into
Open
Conversation
15be402 to
8a98fea
Compare
3c8dba0 to
9c7e4c4
Compare
4564b9c to
4c5cec6
Compare
For models matching "heliquad" (the model string is now retained on SITL_State), fill the FGNetFDM packet for the copter variable-pitch quad frame. The packet has no field for blade collective, so it rides in an unused per-engine field read only by the heliquad aircraft model: rpm[i] - rotor speed, from the shared RSC output fuel_flow[i] - blade collective, -1..1 about trim Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
A schematic FlightGear aircraft for the copter heli-quad (variable-pitch quad, FRAME_CLASS 13), driven by the FGNetFDM fields filled by SITL: rotor speed on rpm[], blade collective on fuel_flow[]. Launch with fg_heliquad_view.sh alongside sim_vehicle.py -f heli-quad --enable-fgview. The schematic mesh is generated by generate_heliquad_models.py. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The motor's own servo channel commands blade pitch about mid-PWM, with rotor speed taken from a shared rotor-speed-control servo. Negative blade pitch produces negative thrust. The rotor spins in the same direction regardless of blade pitch sign, so the drag torque reaction on the frame does not reverse with negative thrust. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
A collective pitch quadcopter matching AP_MotorsHeli_Quad's layout, with rotor speed control on channel 8 to match AP_MotorsHeli_RSC's default channel. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The default parameters use a symmetric collective range so the zero-thrust point lands on mid-PWM, matching the SITL heli-quad model's flat-pitch point. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Checks the collective-pitch quad holds altitude and heading while inverted, with all rotors at negative blade pitch. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
ModeFlip gains a do_pitch_flip option; the heli-quad runs roll flips only, as its full control authority at zero collective overshoots pitch flips into the pitch-90 euler singularity on recovery. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The refactored get_throttle_mid() used radio_trim as the PWM reference point, but the original get_control_mid() used (radio_min + radio_max)/2 (the geometric midpoint of the stick travel). When radio_trim differs from that midpoint the throttle expo-curve splits at the wrong position, biasing the lower or upper half of the response. Restore the geometric midpoint to match the original behaviour. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Tests verify: - norm_input_dz() on a RANGE channel is a drop-in replacement for the old get_control_in() across a variety of min/max/deadzone configs - the fixed get_throttle_mid() matches the original get_control_mid() - the buggy version (which used radio_trim instead of the geometric midpoint) diverges whenever trim != (radio_min + radio_max) / 2 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4c5cec6 to
4488015
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Classification & Testing (check all that apply and add your own)
Description