1 <?xml version=
"1.0" encoding=
"UTF-8"?>
3 <class>AutotuneWidget
</class>
4 <widget class=
"QWidget" name=
"AutotuneWidget">
5 <property name=
"geometry">
13 <property name=
"sizePolicy">
14 <sizepolicy hsizetype=
"Expanding" vsizetype=
"Expanding">
15 <horstretch>0</horstretch>
16 <verstretch>0</verstretch>
19 <property name=
"windowTitle">
22 <layout class=
"QVBoxLayout" name=
"verticalLayout_2">
23 <property name=
"spacing">
26 <property name=
"margin">
30 <widget class=
"QTabWidget" name=
"Autotune_tabs">
31 <property name=
"currentIndex">
34 <widget class=
"QWidget" name=
"Preautotune_tab">
35 <attribute name=
"title">
36 <string>Pre-Autotune
</string>
38 <layout class=
"QGridLayout" name=
"gridLayout_5">
39 <property name=
"margin">
42 <item row=
"3" column=
"0" colspan=
"3">
43 <widget class=
"QTextEdit" name=
"textEdit">
44 <property name=
"frameShape">
45 <enum>QFrame::StyledPanel
</enum>
47 <property name=
"frameShadow">
48 <enum>QFrame::Sunken
</enum>
50 <property name=
"html">
51 <string><!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML
4.0//EN
" "http://www.w3.org/TR/REC-html40/strict.dtd
">
52 <html
><head
><meta name=
"qrichtext
" content=
"1" /
><style type=
"text/css
">
53 p, li { white-space: pre-wrap; }
54 </style
></head
><body style=
" font-family:'MS Shell Dlg
2'; font-size:
8.25pt; font-weight:
400; font-style:normal;
">
55 <p align=
"center
" style=
" margin-top:
0px; margin-bottom:
0px; margin-left:
0px; margin-right:
0px; -qt-block-indent:
0; text-indent:
0px;
"><span style=
" font-family:'Lucida Grande'; font-size:
20pt; font-weight:
600; color:#ff0000;
">WARNING:
</span
></p
>
56 <p style=
"-qt-paragraph-type:empty; margin-top:
0px; margin-bottom:
0px; margin-left:
0px; margin-right:
0px; -qt-block-indent:
0; text-indent:
0px; font-family:'Lucida Grande'; font-size:
13pt;
"></p
>
57 <p style=
" margin-top:
0px; margin-bottom:
0px; margin-left:
0px; margin-right:
0px; -qt-block-indent:
0; text-indent:
0px;
"><span style=
" font-family:'Lucida Grande'; font-size:
13pt;
"><br /
></span
></p
>
58 <p style=
" margin-top:
0px; margin-bottom:
0px; margin-left:
0px; margin-right:
0px; -qt-block-indent:
0; text-indent:
0px;
"><span style=
" font-family:'Lucida Grande'; font-size:
13pt;
"><br /
></span
></p
>
59 <p style=
" margin-top:
0px; margin-bottom:
0px; margin-left:
0px; margin-right:
0px; -qt-block-indent:
0; text-indent:
0px;
"><span style=
" font-family:'Lucida Grande'; font-size:
13pt;
">This is an experimental plugin for the GCS that is going to make your aircraft shake, etc, so test with lots of space and be
</span
><span style=
" font-family:'Lucida Grande'; font-size:
13pt; font-weight:
600;
">very very wary
</span
><span style=
" font-family:'Lucida Grande'; font-size:
13pt;
"> for it creating bad tuning values. Basically there is no reason to think this will work at all.
<br /
><br /
>To use autotuning, here are the steps:
<br /
></span
></p
>
60 <ul style=
"margin-top:
0px; margin-bottom:
0px; margin-left:
0px; margin-right:
0px; -qt-list-indent:
1;
"><li style=
" font-family:'Lucida Grande'; font-size:
13pt;
" style=
" margin-top:
0px; margin-bottom:
0px; margin-left:
0px; margin-right:
0px; -qt-block-indent:
0; text-indent:
0px;
">On the
<span style=
" font-style:italic;
">Input configuration
</span
> tab,
<span style=
" font-style:italic;
">Flight Mode Switch Settings
</span
>, set one of your flight modes to
&quot;Autotune
&quot;.
<br /
></li
>
61 <li style=
" font-family:'Lucida Grande'; font-size:
13pt;
" style=
" margin-top:
0px; margin-bottom:
0px; margin-left:
0px; margin-right:
0px; -qt-block-indent:
0; text-indent:
0px;
">Take off, change flight mode to autotune, keep it in the air while it's shaking.
<br /
></li
>
62 <li style=
" font-family:'Lucida Grande'; font-size:
13pt;
" style=
" margin-top:
0px; margin-bottom:
0px; margin-left:
0px; margin-right:
0px; -qt-block-indent:
0; text-indent:
0px;
">Land and disarm. (note - you
<span style=
" font-weight:
600;
">MUST
</span
> stay in autotune mode through this point, leaving autotune before disarming aborts the process)
<br /
></li
>
63 <li style=
" font-family:'Lucida Grande'; font-size:
13pt;
" style=
" margin-top:
0px; margin-bottom:
0px; margin-left:
0px; margin-right:
0px; -qt-block-indent:
0; text-indent:
0px;
">We'd recommend checking your stabilization settings before trying them out (ie: compare to what you currently use, if they are VASTLY different, probably a good indication bad things will happen).
<br /
></li
>
64 <li style=
" font-family:'Lucida Grande'; font-size:
13pt;
" style=
" margin-top:
0px; margin-bottom:
12px; margin-left:
0px; margin-right:
0px; -qt-block-indent:
0; text-indent:
0px;
">Test fly the new settings.
</li
>
65 <li style=
" font-family:'Lucida Grande'; font-size:
13pt;
" style=
" margin-top:
0px; margin-bottom:
12px; margin-left:
0px; margin-right:
0px; -qt-block-indent:
0; text-indent:
0px;
">If you're ready to proceed, click the
<span style=
" font-style:italic;
">Enable Autotune Module
</span
> checkbox above this text, click
<span style=
" font-style:italic;
">save
</span
> and go to the next tab.
</li
></ul
></body
></html
></string>
69 <item row=
"2" column=
"0" colspan=
"3">
70 <widget class=
"QGroupBox" name=
"groupBox_5">
71 <property name=
"title">
72 <string>Module Control
</string>
74 <layout class=
"QVBoxLayout" name=
"verticalLayout_4">
76 <widget class=
"QCheckBox" name=
"enableAutoTune">
77 <property name=
"text">
78 <string>Enable Autotune Module
</string>
80 <property name=
"checkable">
86 <widget class=
"QLabel" name=
"label_13">
87 <property name=
"text">
88 <string>After enabling the module, you must power cycle before using and configuring.
</string>
97 <widget class=
"QWidget" name=
"autotune_tab">
98 <attribute name=
"title">
99 <string>Autotune Setup
</string>
101 <layout class=
"QVBoxLayout" name=
"verticalLayout_3">
102 <property name=
"margin">
106 <widget class=
"QScrollArea" name=
"scrollArea">
107 <property name=
"palette">
110 <colorrole role=
"Base">
111 <brush brushstyle=
"SolidPattern">
119 <colorrole role=
"Window">
120 <brush brushstyle=
"SolidPattern">
130 <colorrole role=
"Base">
131 <brush brushstyle=
"SolidPattern">
139 <colorrole role=
"Window">
140 <brush brushstyle=
"SolidPattern">
150 <colorrole role=
"Base">
151 <brush brushstyle=
"SolidPattern">
159 <colorrole role=
"Window">
160 <brush brushstyle=
"SolidPattern">
171 <property name=
"frameShape">
172 <enum>QFrame::NoFrame
</enum>
174 <property name=
"frameShadow">
175 <enum>QFrame::Plain
</enum>
177 <property name=
"widgetResizable">
180 <widget class=
"QWidget" name=
"scrollAreaWidgetContents">
181 <property name=
"geometry">
189 <property name=
"sizePolicy">
190 <sizepolicy hsizetype=
"Expanding" vsizetype=
"Expanding">
191 <horstretch>0</horstretch>
192 <verstretch>0</verstretch>
195 <property name=
"autoFillBackground">
198 <layout class=
"QVBoxLayout" name=
"verticalLayout">
199 <property name=
"spacing">
202 <property name=
"margin">
206 <widget class=
"QGroupBox" name=
"groupBox">
207 <property name=
"title">
208 <string>Tuning Aggressiveness
</string>
210 <layout class=
"QGridLayout" name=
"gridLayout_2">
211 <item row=
"0" column=
"0">
212 <widget class=
"QLabel" name=
"label">
213 <property name=
"text">
214 <string>Rate Tuning:
</string>
218 <item row=
"1" column=
"0">
219 <widget class=
"QLabel" name=
"label_2">
220 <property name=
"text">
221 <string>Attitude Tuning:
</string>
225 <item row=
"0" column=
"1">
226 <widget class=
"QSlider" name=
"rateTuning">
227 <property name=
"maximum">
230 <property name=
"orientation">
231 <enum>Qt::Horizontal
</enum>
233 <property name=
"objrelation" stdset=
"0">
235 <string>objname:RelayTuningSettings
</string>
236 <string>fieldname:RateGain
</string>
237 <string>scale:
0.01</string>
238 <string>haslimits:no
</string>
243 <item row=
"1" column=
"1">
244 <widget class=
"QSlider" name=
"attitudeTuning">
245 <property name=
"maximum">
248 <property name=
"orientation">
249 <enum>Qt::Horizontal
</enum>
251 <property name=
"objrelation" stdset=
"0">
253 <string>objname:RelayTuningSettings
</string>
254 <string>fieldname:AttitudeGain
</string>
255 <string>scale:
0.01</string>
256 <string>haslimits:no
</string>
265 <widget class=
"QGroupBox" name=
"groupBox_3">
266 <property name=
"title">
267 <string>Measured Properties
</string>
269 <layout class=
"QGridLayout" name=
"gridLayout">
270 <item row=
"1" column=
"0">
271 <widget class=
"QLabel" name=
"label_3">
272 <property name=
"text">
273 <string>Roll:
</string>
277 <item row=
"1" column=
"1">
278 <widget class=
"QLabel" name=
"measuredRollPeriod">
279 <property name=
"text">
282 <property name=
"alignment">
283 <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
</set>
285 <property name=
"objrelation" stdset=
"0">
287 <string>objname:RelayTuning
</string>
288 <string>fieldname:Period
</string>
289 <string>element:Roll
</string>
294 <item row=
"1" column=
"2">
295 <widget class=
"QLabel" name=
"measuredRollGain">
296 <property name=
"text">
299 <property name=
"alignment">
300 <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
</set>
302 <property name=
"objrelation" stdset=
"0">
304 <string>objname:RelayTuning
</string>
305 <string>fieldname:Gain
</string>
306 <string>element:Roll
</string>
311 <item row=
"0" column=
"1">
312 <widget class=
"QLabel" name=
"label_6">
313 <property name=
"text">
314 <string>Period (ms)
</string>
318 <item row=
"0" column=
"2">
319 <widget class=
"QLabel" name=
"label_7">
320 <property name=
"text">
321 <string>Gain (deg/s) / output
</string>
325 <item row=
"2" column=
"0">
326 <widget class=
"QLabel" name=
"label_8">
327 <property name=
"text">
328 <string>Pitch
</string>
332 <item row=
"2" column=
"1">
333 <widget class=
"QLabel" name=
"measuredPitchPeriod">
334 <property name=
"text">
337 <property name=
"alignment">
338 <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
</set>
340 <property name=
"objrelation" stdset=
"0">
342 <string>objname:RelayTuning
</string>
343 <string>fieldname:Period
</string>
344 <string>element:Pitch
</string>
349 <item row=
"2" column=
"2">
350 <widget class=
"QLabel" name=
"measuredPitchGain">
351 <property name=
"text">
354 <property name=
"alignment">
355 <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
</set>
357 <property name=
"objrelation" stdset=
"0">
359 <string>objname:RelayTuning
</string>
360 <string>fieldname:Gain
</string>
361 <string>element:Pitch
</string>
370 <widget class=
"QGroupBox" name=
"groupBox_2">
371 <property name=
"title">
372 <string>Computed Values
</string>
374 <layout class=
"QGridLayout" name=
"gridLayout_3">
375 <item row=
"0" column=
"2">
376 <widget class=
"QLabel" name=
"label_9">
377 <property name=
"text">
378 <string>RateKi
</string>
382 <item row=
"0" column=
"3">
383 <widget class=
"QLabel" name=
"label_10">
384 <property name=
"text">
385 <string>AttitudeKp
</string>
389 <item row=
"2" column=
"2">
390 <widget class=
"QLabel" name=
"pitchRateKi">
391 <property name=
"text">
396 <item row=
"2" column=
"0">
397 <widget class=
"QLabel" name=
"label_12">
398 <property name=
"text">
399 <string>Pitch
</string>
403 <item row=
"0" column=
"1">
404 <widget class=
"QLabel" name=
"label_5">
405 <property name=
"text">
406 <string>RateKp
</string>
410 <item row=
"1" column=
"1">
411 <widget class=
"QLabel" name=
"rollRateKp">
412 <property name=
"text">
417 <item row=
"0" column=
"4">
418 <widget class=
"QLabel" name=
"label_11">
419 <property name=
"text">
420 <string>AttitudeKi
</string>
424 <item row=
"1" column=
"0">
425 <widget class=
"QLabel" name=
"label_4">
426 <property name=
"text">
427 <string>Roll
</string>
431 <item row=
"1" column=
"3">
432 <widget class=
"QLabel" name=
"rollAttitudeKp">
433 <property name=
"text">
438 <item row=
"2" column=
"4">
439 <widget class=
"QLabel" name=
"pitchAttitudeKi">
440 <property name=
"text">
445 <item row=
"2" column=
"3">
446 <widget class=
"QLabel" name=
"pitchAttitudeKp">
447 <property name=
"text">
452 <item row=
"2" column=
"1">
453 <widget class=
"QLabel" name=
"pitchRateKp">
454 <property name=
"text">
459 <item row=
"1" column=
"2">
460 <widget class=
"QLabel" name=
"rollRateKi">
461 <property name=
"text">
466 <item row=
"1" column=
"4">
467 <widget class=
"QLabel" name=
"rollAttitudeKi">
468 <property name=
"text">
477 <widget class=
"QGroupBox" name=
"groupBox_4">
478 <property name=
"title">
481 <layout class=
"QHBoxLayout" name=
"horizontalLayout_2">
483 <layout class=
"QGridLayout" name=
"gridLayout_4">
484 <item row=
"0" column=
"1" colspan=
"2">
485 <widget class=
"QPushButton" name=
"useComputedValues">
486 <property name=
"styleSheet">
487 <string notr=
"true"/>
489 <property name=
"text">
490 <string>Apply Computed Values
</string>
494 <item row=
"1" column=
"1">
495 <widget class=
"QLabel" name=
"label_21">
496 <property name=
"text">
497 <string>Step Size
</string>
499 <property name=
"alignment">
500 <set>Qt::AlignCenter
</set>
504 <item row=
"1" column=
"2">
505 <widget class=
"QSlider" name=
"stepSizeSlider">
506 <property name=
"orientation">
507 <enum>Qt::Horizontal
</enum>
509 <property name=
"objrelation" stdset=
"0">
511 <string>objname:RelayTuningSettings
</string>
512 <string>fieldname:Amplitude
</string>
513 <string>scale:
0.01</string>
514 <string>haslimits:no
</string>
519 <item row=
"0" column=
"3">
520 <spacer name=
"horizontalSpacer">
521 <property name=
"orientation">
522 <enum>Qt::Horizontal
</enum>
524 <property name=
"sizeHint" stdset=
"0">
532 <item row=
"1" column=
"0">
533 <spacer name=
"horizontalSpacer_2">
534 <property name=
"orientation">
535 <enum>Qt::Horizontal
</enum>
537 <property name=
"sizeHint" stdset=
"0">
545 <item row=
"2" column=
"0" colspan=
"4">
546 <widget class=
"QLabel" name=
"label_22">
547 <property name=
"text">
548 <string>The Apply and Save buttons below save the autotuning settings which
549 will alter settings for the next autotuning flight
</string>
551 <property name=
"alignment">
552 <set>Qt::AlignCenter
</set>
562 <spacer name=
"verticalSpacer">
563 <property name=
"orientation">
564 <enum>Qt::Vertical
</enum>
566 <property name=
"sizeHint" stdset=
"0">
583 <layout class=
"QHBoxLayout" name=
"horizontalLayout">
584 <property name=
"spacing">
588 <spacer name=
"horizontalSpacer_3">
589 <property name=
"orientation">
590 <enum>Qt::Horizontal
</enum>
592 <property name=
"sizeType">
593 <enum>QSizePolicy::Expanding
</enum>
595 <property name=
"sizeHint" stdset=
"0">
604 <widget class=
"QPushButton" name=
"stabilizationReloadBoardData_6">
605 <property name=
"minimumSize">
611 <property name=
"toolTip">
612 <string>Reloads the saved settings into GCS.
613 Useful if you have accidentally changed some settings.
</string>
615 <property name=
"styleSheet">
616 <string notr=
"true"/>
618 <property name=
"text">
619 <string>Reload Board Data
</string>
621 <property name=
"objrelation" stdset=
"0">
623 <string>button:reload
</string>
624 <string>buttongroup:
10</string>
630 <widget class=
"QPushButton" name=
"saveStabilizationToRAM_6">
631 <property name=
"minimumSize">
637 <property name=
"toolTip">
638 <string>Send settings to the board but do not save to the non-volatile memory
</string>
640 <property name=
"styleSheet">
641 <string notr=
"true"/>
643 <property name=
"text">
644 <string>Apply
</string>
646 <property name=
"objrelation" stdset=
"0">
648 <string>button:apply
</string>
654 <widget class=
"QPushButton" name=
"saveStabilizationToSD_6">
655 <property name=
"minimumSize">
661 <property name=
"toolTip">
662 <string>Send settings to the board and save to the non-volatile memory
</string>
664 <property name=
"styleSheet">
665 <string notr=
"true"/>
667 <property name=
"text">
668 <string>Save
</string>
670 <property name=
"objrelation" stdset=
"0">
672 <string>button:save
</string>