You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Direct Drive Fixed Pitch (DDFP) tail type uses a fixed pitch tail rotor and separate motor. The stabilization and yaw is controlled by the speed of this motor. It has two options: one where the main rotor rotates clockwise when viewed from above and the other where the main rotor rotates counter-clockwise when viewed from above. Be sure to select the DDFP tail type for the main rotor rotation. In this case, the control of tailrotor thrust is accomplished through tailrotor speed since it is a fixed pitch propeller. The ``SERVOx_FUNCTION`` of "36" (Motor4) should be assigned to the servo channel to which the tailrotor ESC is physically connected.
45
+
The Direct Drive Fixed Pitch (DDFP) tail type uses a fixed pitch tail rotor and separate motor. The stabilization and yaw is controlled by the speed of this motor. It has two options: one where the main rotor rotates clockwise when viewed from above and the other where the main rotor rotates counter-clockwise when viewed from above. Be sure to select the DDFP tail type for the main rotor rotation. In this case, the control of tailrotor thrust is accomplished through tailrotor speed since it is a fixed pitch propeller. The ``SERVOx_FUNCTION`` of "36" (Motor4) should be assigned to the servo channel to which the tailrotor ESC is physically connected. On new DDFP setups it is suggested to set ``H_DDFP_THST_EXPO`` to .65 as a starting point. This will be a good enough thrust expo for most aircraft.
46
46
47
47
There are several parameters that provide the ability to linearize the thrust produced by the tail rotor motor and therefore provide better control:
48
48
49
-
- :ref:`H_DDFP_THST_EXPO<H_DDFP_THST_EXPO>` - Tail rotor DDFP motor thrust curve exponent (0.0 for linear to 1.0 for second order curve). Default = 0
49
+
- :ref:`H_DDFP_THST_EXPO<H_DDFP_THST_EXPO>` - Tail rotor DDFP motor thrust curve exponent (0.0 for linear to 1.0 for second order curve). A suggested starting point for tuning this parameter is .65 and will often give better better results than the default. Default = 0 (for legacy compatability reason)
50
50
- :ref:`H_DDFP_SPIN_MIN<H_DDFP_SPIN_MIN>` - Point at which the DDFP motor thrust starts expressed as a number from 0 to 1 in the entire output range. Default = 0
51
51
- :ref:`H_DDFP_SPIN_MAX<H_DDFP_SPIN_MAX>` - Point at which the DDFP motor thrust saturates expressed as a number from 0 to 1 in the entire output range. Default = 1
52
52
- :ref:`H_DDFP_BAT_IDX<H_DDFP_BAT_IDX>` - Index of battery to be used for voltage compensation. Default = 0.
Copy file name to clipboardExpand all lines: dev/source/docs/gsoc-ideas-list.rst
+61-1Lines changed: 61 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,11 @@ List of Suggested Projects for GSoC 2026
7
7
This is a list of projects suggested by ArduPilot developers for `GSoC 2026 <https://summerofcode.withgoogle.com/>`__. These are only suggestions so if you have your own ideas then please discuss them on the `ArduPilot Discord Chat <https://ardupilot.org/discord>`__ or on the `discuss server here <https://discuss.ardupilot.org/c/google-summer-of-code>`__
8
8
9
9
- Fleet Management Webtool
10
+
- SITL Model Generation from Flight Data
11
+
- Multi-Drone Mesh Networking (MAVLink-aware)
12
+
- ArduHumanoid (ArduPilot controlling a simple humanoid)
- Real-Time Companion-Computer Health Monitoring & Failsafe
10
15
11
16
See lower down on this page for more details on each project
12
17
@@ -43,14 +48,69 @@ The goal of this project is create a fleet management web tool that helps compan
43
48
44
49
Funding will be provided for hardware and cloud server as required.
45
50
51
+
SITL Model Generation from Flight Data
52
+
--------------------------------------
53
+
54
+
- Skills required: Python, C++ (ArduPilot/SITL), system identification
55
+
- Mentors: Nathaniel Mailhot
56
+
- Expected Size: 350h
57
+
- Level of Difficulty: Hard
58
+
- Expected Outcome: A toolchain that auto-builds or tunes SITL airframe models from real flight logs
59
+
60
+
The goal of this project is to take ArduPilot logs and estimate the key dynamics/sensor parameters needed for SITL, then output an updated model + params that better match the real vehicle.
- Expected Outcome: A practical mesh networking layer for multi-vehicle comms (telemetry + coordination)
70
+
71
+
The goal of this project is to enable resilient multi-hop links between multiple ArduPilot vehicles, so telemetry and commands can route through the swarm when direct links drop.
72
+
73
+
ArduHumanoid (ArduPilot controlling a simple humanoid)
- Expected Outcome: A minimal humanoid "vehicle type" running on ArduPilot with SITL support
81
+
82
+
The goal of this project is to prove ArduPilot can command a small humanoid-style jointed frame (think "servo robot"), with a basic control interface and a simple simulated model.
83
+
84
+
AI-Assisted Log Diagnosis & Root-Cause Detection
85
+
------------------------------------------------
86
+
87
+
- Skills required: Python, ML (classification + retrieval), ArduPilot logs/parameters
88
+
- Mentors: Nathaniel Mailhot
89
+
- Expected Size: 350h
90
+
- Level of Difficulty: Hard
91
+
- Expected Outcome: A model/service that flags likely root causes from logs and suggests fixes with confidence
92
+
93
+
The goal of this project is to automatically diagnose common failures and misconfigurations by learning from labeled log segments, known issue patterns, and parameter states. It should output a probable root cause, suggested fixes, and a confidence score (with links to the relevant evidence in the log).
94
+
95
+
Real-Time Companion-Computer Health Monitoring & Failsafe
- Skills required: C/C++ or Python, MAVLink, Linux companion computers
99
+
- Mentors: Jaime Machuca
100
+
- Expected Size: 175h
101
+
- Level of Difficulty: Medium
102
+
- Expected Outcome: A standard MAVLink-based health reporting + failsafe mechanism for companion computers
103
+
104
+
The goal of this project is to define and implement a consistent "companion health" report (CPU/GPU load, heartbeat, critical services, watchdog) and connect it to configurable failsafes so ArduPilot can respond predictably when the companion degrades or dies.
105
+
46
106
Projects Completed in past years
47
107
--------------------------------
48
108
49
109
In 2025, students completed the following projects:
50
110
51
111
- `Non-GPS Position Estimation Using 3D Camera and Pre-Generated Map <https://discuss.ardupilot.org/t/gsoc-25-non-gps-position-estimation-using-3d-camera-and-pre-generated-map-final/138513>`__
52
112
- `AI Chat WebTool for use with MP and/or QGC <https://discuss.ardupilot.org/t/gsoc-2025-ai-chat-webtool-final-project-summary/138287>`__
53
-
- `AI Chat Integration with all Web Tools <https://discuss.ardupilot.org/t/gsoc-2025-ai-chat-webtool-final-project-summary/138287>`__
113
+
- `AI Chat Integration with all Web Tools <https://medium.com/@anaschebili/gsoc-2025-with-ardupilot-67ef24a17e94>`__
54
114
- `Gazebo Plug-in Model of a Motor <https://discuss.ardupilot.org/t/gsoc-2025-wrapping-up-gazebo-plug-in-model-of-a-motor/138509>`__
55
115
- `SITL AI Reinforcement Learning Concept Script <https://discuss.ardupilot.org/t/gsoc-2025-wrapping-up-sitl-ai-reinforcement-learning-concept-script/138504>`__
Copy file name to clipboardExpand all lines: dev/source/docs/submitting-patches-back-to-master.rst
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,8 @@ Submitting Patches Back to Master
7
7
.. image:: ../images/PullRequest_TopImage.png
8
8
:width:70%
9
9
10
+
.. warning:: *Before* working on a new patch search for existing related pull requests, and check for linked pull requests in the issue you're planning to fix. If someone is already working on the problem you can review/test their submission and join the discussion thread instead of creating your own submission.
11
+
10
12
Once you have a bug fix or new feature you would like to have included in the ArduPilot project
11
13
you should submit a `Pull Request <https://help.github.com/articles/about-pull-requests/>`__.
12
14
The main developers will see your changes in the `Pulls list, <https://github.com/ArduPilot/ardupilot/pulls>`__
@@ -115,7 +117,7 @@ You can track the state of your PR from the `Pull Requests list <https://github.
115
117
PRs are more likely to be merged quickly if:
116
118
117
119
- The PR clearly states what changes in behaviour are expected
118
-
- Good testing evidence is provided. This could be graphs of logs recorded before and after the change
120
+
- Good testing evidence is provided. This could be graphs of logs recorded before and after the change, possibly from a :ref:`simulation <simulation-2>`. Check for existing :ref:`autotests <the-ardupilot-autotest-framework>`, and update them if they get broken by the change. Add new ones to cover new functionality you're introducing, or bug fixes presently not tested, if you are capable.
119
121
- Code follows the :ref:`style guide <style-guide>`
120
122
- Each commit in the PR affects only one subsystem and the commit title is prefixed with the subsystem name (e.g. "AP_GPS: correct uBlox logging parameter descriptions"). The `Tools/gittools/git-subsystems-split <https://github.com/ArduPilot/ardupilot/blob/master/Tools/gittools/git-subsystems-split>`__ script may be useful for this
121
123
- PR passes all automated CI tests. CI tests sometimes fail for reason unrelated to your PR (e.g. dependency failures, "flapping tests"). Please force push the PR to re-run the tests
Copy file name to clipboardExpand all lines: dev/source/index.rst
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,7 +23,7 @@ New developers are always welcome! The best way to start is to:
23
23
- read this wiki to learn the basics of the software and :ref:`how the team works <how-the-team-works>`
24
24
- get involved with the other developers by posting on the `Developer Team Forum <https://discuss.ardupilot.org/c/development-team>`__, chat to us on `ArduPilot Discord Chat <https://ardupilot.org/discord>`__ or join the :ref:`weekly development call <ardupilot-discord-server>`. You can also find a large number of users and some developers in the `ArduPilot facebook group <https://www.facebook.com/groups/ArduPilot.org>`__. :ref:`All channels <common-contact-us>` are open to all. Lurk for a while to get a feel for it, then participate!
25
25
- find a specific bug you'd like to fix or a feature you'd like to add (check out the `good first issues <https://github.com/ArduPilot/ardupilot/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22>`__, recent `issues from Randy <https://github.com/ArduPilot/ardupilot/issues/created_by/rmackay9>`__ or our :ref:`roadmap <roadmap>` for ideas). Please do not ask to be assigned an issue; just work on it.
26
-
- fix the bug in your own clone and :ref:`test <simulation-2>` that it's working
26
+
- if there is already a related pull request you can review it and join the discussion there, otherwise fix the bug in your own clone and :ref:`test <simulation-2>` that it's working
27
27
- submit the change to the main code base :ref:`via a pull request <submitting-patches-back-to-master>`.
0 commit comments