Skip to content

Commit 4a4374f

Browse files
committed
docs(tuning guide): backport fixes and updates from copte to the other vehicles
1 parent 704c800 commit 4a4374f

File tree

4 files changed

+67
-54
lines changed

4 files changed

+67
-54
lines changed

TUNING_GUIDE_ArduCopter.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ This relates to the `FRAME_CLASS` and `FRAME_TYPE` parameters.
307307
To do [frame type configuration](https://ardupilot.org/copter/docs/frame-type-configuration.html)
308308
you should read [how to connect ESCs and Motors](https://ardupilot.org/copter/docs/connect-escs-and-motors.html)
309309

310-
**WARNING:** If you do an error here your vehicle will flip and crash on every attempt to takeoff.
310+
**WARNING:** If misconfigured, your vehicle will flip and crash on every attempt to takeoff.
311311

312312
### [Initial Tune Parameters](https://ardupilot.org/copter/docs/setting-up-for-tuning.html)
313313

@@ -1189,7 +1189,7 @@ This uses [Ardupilot's system identification flight mode](https://ardupilot.org/
11891189

11901190
## 11.1 System Identification Flights
11911191

1192-
These flights need to be performormed in the total absense of wind.
1192+
These flights need to be performed in the total absence of wind.
11931193
The vehicle PIDs need to be a bit detuned in order to not fully cancel out the injected chirp signals.
11941194

11951195
### 11.1.1 Roll rate mathematical model

TUNING_GUIDE_ArduPlane.md

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,4 @@
11
# How to methodically tune any ArduPlane
2-
<!--
3-
SPDX-FileCopyrightText: 2024-2025 Amilcar do Carmo Lucas <[email protected]>
4-
5-
SPDX-License-Identifier: GPL-3.0-or-later
6-
-->
72

83
<!-- markdownlint-disable MD013 MD025 MD034 -->
94

@@ -56,7 +51,7 @@ Use tools like [ecalc for multirotor](https://www.ecalc.ch/index.htm) to find a
5651
1. **GNSS systems are likely to be affected by USB3 devices.** Keep possible negative influences in mind while using USB3 components.
5752
5. **Proper cable management:** Cables and wires must be organized sensibly to prevent entanglement or damage during flight. It must be ensured that no cables hinder movable parts such as propellers or gimbal mechanisms, or are damaged by them. Flexible, silicone-coated cables for data transfer save weight and reduce vibration transmission. Weak connectors are prone to loosening under the influence of vibration.
5853
6. **Weight distribution:** An even weight distribution of the drone with the FC at the center of gravity improves stability and flight control. Components such as batteries, sensors, cameras, and other payloads must be positioned evenly to achieve uniform weight distribution and maximum fit between the geometric and physical center of gravity.
59-
7. **Battery placement:** The battery is often located in the center of the frame to ensure stability during flight. It must be ensured that the battery is rigidly mounted and secured to prevent slipping or unintentional disconnection during operation. Additionally, when properly attached, the battery acts as an inertial mass and helps damp vibrations. Beware of landing directly on the battery since most of the batteries do have a resistant shell.
54+
7. **Battery placement:** The battery is often located in the center of the frame to ensure stability during flight. It must be ensured that the battery is rigidly mounted and secured to prevent slipping or unintentional disconnection during operation. Additionally, when properly attached, the battery acts as an inertial mass and helps damp vibrations. Beware of landing directly on the battery since most of the batteries do not have a resistant shell.
6055
8. **Voltage monitoring:** to [dynamically scale the PIDs and maintain stable flight in low battery conditions](https://ardupilot.org/copter/docs/current-limiting-and-voltage-scaling.html#voltage-scaling).
6156
9. **Current monitoring:** to compensate for the dynamic magnetic field caused by the high motor currents.
6257
10. **FC Power supply:** Must provide enough current for the flight controller, [GNSS](https://en.wikipedia.org/wiki/Satellite_navigation) receivers and other payloads operating on 5V.
@@ -186,7 +181,7 @@ After the calibration, temperature changes will cause no significant acceleromet
186181

187182
# 5. Assemble all components except the propellers
188183

189-
Now that the optional IMU temperature calibration is done we must assemble and connect all components except the propellers.
184+
Now that the optional IMU temperature calibration is done we must [assemble and connect all components](https://ardupilot.org/plane/docs/autopilot-assembly-instructions.html) except the propellers.
190185

191186
Read the [Multicopter hardware best-practices](#11-multicopter-hardware-best-practices) section again before assembling the vehicle.
192187

@@ -269,7 +264,7 @@ So we use BLHeliSuite32 Version 32.9.0.6 to configure the ESCs.
269264
Flash the Firmware version described in the table above.
270265
Configure the parameters to match the figures below.
271266

272-
https://youtu.be/7WeHTb7aBrE?si=gW9YbcQkZYK3DoNE
267+
[![Tuning your BLHeli_32 to stop desyncs and improve motor performance in your FPV quadcopter](https://img.youtube.com/vi/7WeHTb7aBrE/0.jpg)](https://www.youtube.com/watch?v=7WeHTb7aBrE)
273268

274269
![ESC Setup](images/blog/BLHeli32_Konfig.PNG)
275270

@@ -306,9 +301,13 @@ When asked *Should the FC values now be copied to the 12_mp_setup_mandatory_hard
306301

307302
Open Mission Planner, connect to the flight controller and select `SETUP >> Mandatory Hardware` and work yourself through all the submenus as described below. **DO NOT SKIP ANY STEP**.
308303

309-
### [Frame Type](https://ardupilot.org/copter/docs/frame-type-configuration.html)
304+
### Frame Type
310305

311306
This relates to the `FRAME_CLASS` and `FRAME_TYPE` parameters.
307+
To do [frame type configuration](https://ardupilot.org/plane/docs/quadplane-frame-setup.html)
308+
you should read [how to connect ESCs and Motors](https://ardupilot.org/plane/docs/quadplane-esc-calibration.html)
309+
310+
**WARNING:** If misconfigured, your vehicle will flip and crash on every attempt to takeoff.
312311

313312
### [Initial Tune Parameters](https://ardupilot.org/copter/docs/setting-up-for-tuning.html)
314313

@@ -410,8 +409,6 @@ If it doesn't, go back and perform the missing calibration(s).
410409

411410
## 6.12 Configure Logging
412411

413-
![MP LOG_BITMASK parameter](images/blog/mp_logging_bitmask.png)
414-
415412
Repeat the steps from [Section 6.1.1](#611-use-ardupilot-methodic-configurator-to-edit-the-parameter-file-and-upload-it-to-the-flight-controller) to edit and upload the `14_Logging.param` file
416413

417414
The table below explains which bit is responsible for which `.bin` dataflash log message(s):
@@ -615,7 +612,8 @@ Test the initial setup on the ground in [stabilize flight mode](https://ardupilo
615612
At this sweet spot, inspect all axes (roll, pitch and yaw) by providing small RC transmitter stick inputs.
616613
If the multicopter behaves correspondingly, the setup is good to go.
617614

618-
After some careful test maneuvers switch to `ALTHOLD` and hover for 30 to 40 seconds one to two meters above the ground. Land and disarm.
615+
After some careful test maneuvers switch to `ALTHOLD` and hover for 30 to 40 seconds one to two meters above the ground.
616+
Land and disarm.
619617

620618
Immediately check for hot motors.
621619
If the motors are too hot, check the `.bin` dataflash log, high or oscillating `RATE.*out` values indicate which PID gain you should reduce to remove the output oscillations causing the motors to heat up.
@@ -1091,12 +1089,12 @@ Now do the flight to collect the data and analyze the logs to see if the baromet
10911089

10921090
# 11. System identification for analytical PID optimization (optional)
10931091

1094-
## 11.1 [System Identification Flights](https://ardupilot.org/copter/docs/systemid-mode-operation.html)
1092+
This uses [Ardupilot's system identification flight mode](https://ardupilot.org/copter/docs/systemid-mode-operation.html) to collect data to [build a mathematical model of the vehicle](https://ardupilot.org/copter/docs/systemid-mode-operation.html#identification-of-a-multicopter) that can later be used to further [optimize the control loops of the vehicle according to a set of constraints (requirements)](https://discuss.ardupilot.org/t/analitical-multicopter-flight-controller-pid-optimization/109759).
10951093

1096-
These steps are optional.
1097-
Their goal is to build a mathematical model of the vehicle that can later be used to further [optimize the control loops of the vehicle according to a set of constraints (requirements)](https://discuss.ardupilot.org/t/analitical-multicopter-flight-controller-pid-optimization/109759).
1094+
## 11.1 System Identification Flights
10981095

1099-
Documentation is available on [Fabian Bredemeier's Identification of a multicopter section at ArduCopter's_wiki](https://ardupilot.org/copter/docs/systemid-mode-operation.html#identification-of-a-multicopter).
1096+
These flights need to be performed in the total absence of wind.
1097+
The vehicle PIDs need to be a bit detuned in order to not fully cancel out the injected chirp signals.
11001098

11011099
### 11.1.1 Roll rate mathematical model
11021100

@@ -1122,9 +1120,9 @@ Use *ArduPilot Methodic Configurator* to edit and upload the `45_system_id_thrus
11221120

11231121
Now do the flight to collect the data for the thrust system identification.
11241122

1125-
### [Analytical Multicopter Flight Controller PID Optimization](https://discuss.ardupilot.org/t/analytical-multicopter-flight-controller-pid-optimization/109759)
1123+
## 11.2 Analytical Multicopter Flight Controller PID Optimization
11261124

1127-
This describes how to use IAV's multi-objective optimization to achieve even better (according to a predefined set of constraints) PID tuning.
1125+
This describes how to use [IAV's multi-objective optimization](https://discuss.ardupilot.org/t/analytical-multicopter-flight-controller-pid-optimization/109759) to achieve even better (according to a predefined set of constraints) PID tuning.
11281126

11291127
One other approach is described by Bill Geyer in his Blog post: [Predicting Closed Loop Response For Faster Autotune](https://discuss.ardupilot.org/t/predicting-closed-loop-response-for-faster-autotune/75096).
11301128

@@ -1189,3 +1187,12 @@ Enjoy,
11891187
Jan Ole Noack
11901188

11911189
Amilcar do Carmo Lucas
1190+
1191+
<!-- Gurubase Widget -->
1192+
<script async src="https://widget.gurubase.io/widget.latest.min.js"
1193+
data-widget-id="uE4kxEE4LY3ZSyfNsF5bU6gIOnWGTBOL_e16KwDH-0g"
1194+
data-text="Ask AI"
1195+
data-margins='{"bottom": "1rem", "right": "1rem"}'
1196+
data-light-mode="true"
1197+
id="guru-widget-id">
1198+
</script>

TUNING_GUIDE_Heli.md

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,4 @@
11
# How to methodically tune any ArduCopter Heli
2-
<!--
3-
SPDX-FileCopyrightText: 2024-2025 Amilcar do Carmo Lucas <[email protected]>
4-
5-
SPDX-License-Identifier: GPL-3.0-or-later
6-
-->
72

83
<!-- markdownlint-disable MD013 MD025 MD034 -->
94

@@ -56,7 +51,7 @@ Use tools like [ecalc for heli](https://www.ecalc.ch/index.htm) to find a suitab
5651
1. **GNSS systems are likely to be affected by USB3 devices.** Keep possible negative influences in mind while using USB3 components.
5752
5. **Proper cable management:** Cables and wires must be organized sensibly to prevent entanglement or damage during flight. It must be ensured that no cables hinder movable parts such as propellers or gimbal mechanisms, or are damaged by them. Flexible, silicone-coated cables for data transfer save weight and reduce vibration transmission. Weak connectors are prone to loosening under the influence of vibration.
5853
6. **Weight distribution:** An even weight distribution of the drone with the FC at the center of gravity improves stability and flight control. Components such as batteries, sensors, cameras, and other payloads must be positioned evenly to achieve uniform weight distribution and maximum fit between the geometric and physical center of gravity.
59-
7. **Battery placement:** The battery is often located in the center of the frame to ensure stability during flight. It must be ensured that the battery is rigidly mounted and secured to prevent slipping or unintentional disconnection during operation. Additionally, when properly attached, the battery acts as an inertial mass and helps damp vibrations. Beware of landing directly on the battery since most of the batteries do have a resistant shell.
54+
7. **Battery placement:** The battery is often located in the center of the frame to ensure stability during flight. It must be ensured that the battery is rigidly mounted and secured to prevent slipping or unintentional disconnection during operation. Additionally, when properly attached, the battery acts as an inertial mass and helps damp vibrations. Beware of landing directly on the battery since most of the batteries do not have a resistant shell.
6055
8. **Voltage monitoring:** to [dynamically scale the PIDs and maintain stable flight in low battery conditions](https://ardupilot.org/copter/docs/current-limiting-and-voltage-scaling.html#voltage-scaling).
6156
9. **Current monitoring:** to compensate for the dynamic magnetic field caused by the high motor currents.
6257
10. **FC Power supply:** Must provide enough current for the flight controller, [GNSS](https://en.wikipedia.org/wiki/Satellite_navigation) receivers and other payloads operating on 5V.
@@ -185,7 +180,7 @@ After the calibration, temperature changes will cause no significant acceleromet
185180

186181
# 5. Assemble all components except the propellers
187182

188-
Now that the optional IMU temperature calibration is done we must assemble and connect all components except the propellers.
183+
Now that the optional IMU temperature calibration is done we must assemble and connect all components except the rotors.
189184

190185
Read the [Helicopter hardware best-practices](#11-helicopter-hardware-best-practices) section again before assembling the vehicle.
191186

@@ -305,7 +300,7 @@ When asked *Should the FC values now be copied to the 12_mp_setup_mandatory_hard
305300

306301
Open Mission Planner, connect to the flight controller and select `SETUP >> Mandatory Hardware` and work yourself through all the submenus as described below. **DO NOT SKIP ANY STEP**.
307302

308-
### [Frame Type](https://ardupilot.org/copter/docs/frame-type-configuration.html)
303+
### Frame Type
309304

310305
This relates to the `FRAME_CLASS` and `FRAME_TYPE` parameters.
311306

@@ -338,6 +333,8 @@ Make sure all transmitter channels move across their entire range.
338333

339334
### [Servo Output](https://ardupilot.org/copter/docs/common-dshot-escs.html#configure-the-servo-functions)
340335

336+
Change the parameters according to your requirements.
337+
341338
There should be a more detailed setup in this area for helicopters.
342339

343340
### [ESC Calibration](https://ardupilot.org/copter/docs/esc-calibration.html)
@@ -401,8 +398,6 @@ If it doesn't, go back and perform the missing calibration(s).
401398

402399
## 6.12 Configure Logging
403400

404-
![MP LOG_BITMASK parameter](images/blog/mp_logging_bitmask.png)
405-
406401
Repeat the steps from [Section 6.1.1](#611-use-ardupilot-methodic-configurator-to-edit-the-parameter-file-and-upload-it-to-the-flight-controller) to edit and upload the `14_Logging.param` file
407402

408403
The table below explains which bit is responsible for which `.bin` dataflash log message(s):
@@ -1034,12 +1029,12 @@ Now do the flight to collect the data and analyze the logs to see if the baromet
10341029

10351030
# 11. System identification for analytical PID optimization (optional)
10361031

1037-
## 11.1 [System Identification Flights](https://ardupilot.org/copter/docs/systemid-mode-operation.html)
1032+
This uses [Ardupilot's system identification flight mode](https://ardupilot.org/copter/docs/systemid-mode-operation.html) to collect data to [build a mathematical model of the vehicle](https://ardupilot.org/copter/docs/systemid-mode-operation.html#identification-of-a-multicopter) that can later be used to further [optimize the control loops of the vehicle according to a set of constraints (requirements)](https://discuss.ardupilot.org/t/analitical-multicopter-flight-controller-pid-optimization/109759).
10381033

1039-
These steps are optional.
1040-
Their goal is to build a mathematical model of the vehicle that can later be used to further [optimize the control loops of the vehicle according to a set of constraints (requirements)](https://discuss.ardupilot.org/t/analitical-multicopter-flight-controller-pid-optimization/109759).
1034+
## 11.1 System Identification Flights
10411035

1042-
Documentation is available on [Fabian Bredemeier's Identification of a multicopter section at ArduCopter's_wiki](https://ardupilot.org/copter/docs/systemid-mode-operation.html#identification-of-a-multicopter).
1036+
These flights need to be performed in the total absence of wind.
1037+
The vehicle PIDs need to be a bit detuned in order to not fully cancel out the injected chirp signals.
10431038

10441039
### 11.1.1 Roll rate mathematical model
10451040

@@ -1065,9 +1060,9 @@ Use *ArduPilot Methodic Configurator* to edit and upload the `45_system_id_thrus
10651060

10661061
Now do the flight to collect the data for the thrust system identification.
10671062

1068-
### [Analytical Multicopter Flight Controller PID Optimization](https://discuss.ardupilot.org/t/analytical-multicopter-flight-controller-pid-optimization/109759)
1063+
## 11.2 Analytical Multicopter Flight Controller PID Optimization
10691064

1070-
This describes how to use IAV's multi-objective optimization to achieve even better (according to a predefined set of constraints) PID tuning.
1065+
This describes how to use [IAV's multi-objective optimization](https://discuss.ardupilot.org/t/analytical-multicopter-flight-controller-pid-optimization/109759) to achieve even better (according to a predefined set of constraints) PID tuning.
10711066

10721067
One other approach is described by Bill Geyer in his Blog post: [Predicting Closed Loop Response For Faster Autotune](https://discuss.ardupilot.org/t/predicting-closed-loop-response-for-faster-autotune/75096).
10731068

@@ -1132,3 +1127,12 @@ Enjoy,
11321127
Jan Ole Noack
11331128

11341129
Amilcar do Carmo Lucas
1130+
1131+
<!-- Gurubase Widget -->
1132+
<script async src="https://widget.gurubase.io/widget.latest.min.js"
1133+
data-widget-id="uE4kxEE4LY3ZSyfNsF5bU6gIOnWGTBOL_e16KwDH-0g"
1134+
data-text="Ask AI"
1135+
data-margins='{"bottom": "1rem", "right": "1rem"}'
1136+
data-light-mode="true"
1137+
id="guru-widget-id">
1138+
</script>

0 commit comments

Comments
 (0)