mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2024-12-13 20:48:42 +01:00
21a31df392
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2894 ebee16cc-31ac-478f-84a7-5cbb03baadba
596 lines
23 KiB
XML
596 lines
23 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<ui version="4.0">
|
|
<class>AHRSWidget</class>
|
|
<widget class="QWidget" name="AHRSWidget">
|
|
<property name="geometry">
|
|
<rect>
|
|
<x>0</x>
|
|
<y>0</y>
|
|
<width>720</width>
|
|
<height>499</height>
|
|
</rect>
|
|
</property>
|
|
<property name="windowTitle">
|
|
<string>Form</string>
|
|
</property>
|
|
<layout class="QVBoxLayout" name="verticalLayout">
|
|
<item>
|
|
<widget class="QTabWidget" name="tabWidget">
|
|
<property name="currentIndex">
|
|
<number>0</number>
|
|
</property>
|
|
<widget class="QWidget" name="tab_2">
|
|
<attribute name="title">
|
|
<string>Calibration</string>
|
|
</attribute>
|
|
<layout class="QVBoxLayout" name="verticalLayout_7" stretch="0,0,0">
|
|
<item>
|
|
<layout class="QHBoxLayout" name="sixPointLayout" stretch="1,2">
|
|
<item>
|
|
<widget class="QFrame" name="frame">
|
|
<property name="frameShape">
|
|
<enum>QFrame::Box</enum>
|
|
</property>
|
|
<property name="frameShadow">
|
|
<enum>QFrame::Sunken</enum>
|
|
</property>
|
|
<layout class="QVBoxLayout" name="verticalLayout_9">
|
|
<property name="margin">
|
|
<number>3</number>
|
|
</property>
|
|
<item>
|
|
<layout class="QVBoxLayout" name="verticalLayout_3">
|
|
<item>
|
|
<widget class="QLabel" name="label_3">
|
|
<property name="font">
|
|
<font>
|
|
<weight>75</weight>
|
|
<bold>true</bold>
|
|
</font>
|
|
</property>
|
|
<property name="text">
|
|
<string>#1: Six Point Calibration</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QGraphicsView" name="sixPointsHelp">
|
|
<property name="toolTip">
|
|
<string>Nice paper plane, eh?</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
|
<item>
|
|
<widget class="QPushButton" name="sixPointsStart">
|
|
<property name="enabled">
|
|
<bool>false</bool>
|
|
</property>
|
|
<property name="toolTip">
|
|
<string>Launch a sensor range and bias calibration.</string>
|
|
</property>
|
|
<property name="text">
|
|
<string>Start</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QPushButton" name="sixPointsSave">
|
|
<property name="enabled">
|
|
<bool>false</bool>
|
|
</property>
|
|
<property name="toolTip">
|
|
<string>Save settings (only enabled when calibration is running)</string>
|
|
</property>
|
|
<property name="text">
|
|
<string>Save Position</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
</layout>
|
|
<zorder></zorder>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QFrame" name="frame_2">
|
|
<property name="frameShape">
|
|
<enum>QFrame::Box</enum>
|
|
</property>
|
|
<property name="frameShadow">
|
|
<enum>QFrame::Sunken</enum>
|
|
</property>
|
|
<layout class="QVBoxLayout" name="verticalLayout_10">
|
|
<property name="margin">
|
|
<number>3</number>
|
|
</property>
|
|
<item>
|
|
<layout class="QVBoxLayout" name="verticalLayout_4">
|
|
<item>
|
|
<widget class="QLabel" name="label">
|
|
<property name="font">
|
|
<font>
|
|
<weight>75</weight>
|
|
<bold>true</bold>
|
|
</font>
|
|
</property>
|
|
<property name="text">
|
|
<string>#2: Sensor noise calibration</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QGraphicsView" name="ahrsBargraph">
|
|
<property name="toolTip">
|
|
<string>These are the sensor variance values computed by the AHRS.
|
|
|
|
Tip: lower is better!</string>
|
|
</property>
|
|
<property name="verticalScrollBarPolicy">
|
|
<enum>Qt::ScrollBarAlwaysOff</enum>
|
|
</property>
|
|
<property name="horizontalScrollBarPolicy">
|
|
<enum>Qt::ScrollBarAlwaysOff</enum>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
|
<item>
|
|
<widget class="QPushButton" name="ahrsCalibStart">
|
|
<property name="enabled">
|
|
<bool>false</bool>
|
|
</property>
|
|
<property name="toolTip">
|
|
<string>Press to start a calibration procedure, about 15 seconds.
|
|
|
|
Hint: run this with engines at cruising speed.</string>
|
|
</property>
|
|
<property name="text">
|
|
<string>Start</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QProgressBar" name="calibProgress">
|
|
<property name="enabled">
|
|
<bool>true</bool>
|
|
</property>
|
|
<property name="maximum">
|
|
<number>15</number>
|
|
</property>
|
|
<property name="value">
|
|
<number>0</number>
|
|
</property>
|
|
<property name="textVisible">
|
|
<bool>false</bool>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
<item>
|
|
<layout class="QHBoxLayout" name="sensorNoiseLayout">
|
|
<item>
|
|
<widget class="QFrame" name="frame_3">
|
|
<property name="frameShape">
|
|
<enum>QFrame::StyledPanel</enum>
|
|
</property>
|
|
<property name="frameShadow">
|
|
<enum>QFrame::Raised</enum>
|
|
</property>
|
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
|
<property name="margin">
|
|
<number>3</number>
|
|
</property>
|
|
<item>
|
|
<layout class="QVBoxLayout" name="verticalLayout_5">
|
|
<item>
|
|
<widget class="QLabel" name="label_5">
|
|
<property name="font">
|
|
<font>
|
|
<weight>75</weight>
|
|
<bold>true</bold>
|
|
</font>
|
|
</property>
|
|
<property name="text">
|
|
<string>#3: Accelerometer Bias calibration</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
|
<item>
|
|
<widget class="QPushButton" name="accelBiasStart">
|
|
<property name="enabled">
|
|
<bool>false</bool>
|
|
</property>
|
|
<property name="text">
|
|
<string>Start</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QProgressBar" name="accelBiasProgress">
|
|
<property name="value">
|
|
<number>0</number>
|
|
</property>
|
|
<property name="textVisible">
|
|
<bool>false</bool>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QFrame" name="frame_4">
|
|
<property name="frameShape">
|
|
<enum>QFrame::StyledPanel</enum>
|
|
</property>
|
|
<property name="frameShadow">
|
|
<enum>QFrame::Raised</enum>
|
|
</property>
|
|
<layout class="QVBoxLayout" name="verticalLayout_8">
|
|
<property name="margin">
|
|
<number>3</number>
|
|
</property>
|
|
<item>
|
|
<layout class="QVBoxLayout" name="gyroDriftLayout">
|
|
<item>
|
|
<widget class="QLabel" name="label_6">
|
|
<property name="font">
|
|
<font>
|
|
<weight>75</weight>
|
|
<bold>true</bold>
|
|
</font>
|
|
</property>
|
|
<property name="text">
|
|
<string>#4 Gyro temperature drift calibration</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
|
<item>
|
|
<widget class="QLabel" name="label_7">
|
|
<property name="text">
|
|
<string>Temp:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QLabel" name="gyroMinTemp">
|
|
<property name="font">
|
|
<font>
|
|
<pointsize>9</pointsize>
|
|
</font>
|
|
</property>
|
|
<property name="text">
|
|
<string>Min</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QSlider" name="gyroTempSlider">
|
|
<property name="toolTip">
|
|
<string>Currently measured temperature on the system. This is actually the
|
|
MB temperature, be careful if somehow you know that your INS
|
|
temperature is very different from your MB temp...</string>
|
|
</property>
|
|
<property name="orientation">
|
|
<enum>Qt::Horizontal</enum>
|
|
</property>
|
|
<property name="tickPosition">
|
|
<enum>QSlider::TicksBelow</enum>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QLabel" name="gyroMaxTemp">
|
|
<property name="font">
|
|
<font>
|
|
<pointsize>9</pointsize>
|
|
</font>
|
|
</property>
|
|
<property name="text">
|
|
<string>Max</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
<item>
|
|
<layout class="QHBoxLayout" name="horizontalLayout_7">
|
|
<item>
|
|
<widget class="QLabel" name="label_14">
|
|
<property name="text">
|
|
<string>Current drift:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
<item>
|
|
<layout class="QHBoxLayout" name="horizontalLayout_10">
|
|
<item>
|
|
<widget class="QLabel" name="label_17">
|
|
<property name="text">
|
|
<string>Saved drift:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
<item>
|
|
<layout class="QHBoxLayout" name="horizontalLayout_6">
|
|
<item>
|
|
<widget class="QPushButton" name="startDriftCalib">
|
|
<property name="enabled">
|
|
<bool>false</bool>
|
|
</property>
|
|
<property name="toolTip">
|
|
<string>Start gathering data for temperature drift calibration.
|
|
Avoid sudden moves once you have started gathering!</string>
|
|
</property>
|
|
<property name="text">
|
|
<string>Start</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QPushButton" name="gyroMeasureDrift">
|
|
<property name="enabled">
|
|
<bool>false</bool>
|
|
</property>
|
|
<property name="toolTip">
|
|
<string>Launch drift measurement based on gathered data.
|
|
|
|
TODO: is this necessary? Measurement could be auto updated every second or so, or done when we stop measuring...</string>
|
|
</property>
|
|
<property name="text">
|
|
<string>Measure</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QPushButton" name="updateDrift">
|
|
<property name="enabled">
|
|
<bool>false</bool>
|
|
</property>
|
|
<property name="toolTip">
|
|
<string>Updates the XYZ drift values into the AHRS (saves to SD)</string>
|
|
</property>
|
|
<property name="text">
|
|
<string>Save</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
<item>
|
|
<widget class="QTextEdit" name="sixPointCalibInstructions">
|
|
<property name="toolTip">
|
|
<string>Six Point Calibration instructions</string>
|
|
</property>
|
|
<property name="horizontalScrollBarPolicy">
|
|
<enum>Qt::ScrollBarAlwaysOff</enum>
|
|
</property>
|
|
<property name="html">
|
|
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
|
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
|
p, li { white-space: pre-wrap; }
|
|
</style></head><body style=" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;">
|
|
<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-weight:600;">Help</span></p>
|
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Step #1 and #2 are really necessary. Steps #3 and #4 will help you achieve the best possible results.</span></p>
|
|
<p align="center" 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-weight:600;"></p>
|
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">#1: Six point calibration:</span></p>
|
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This calibration will compute the scale for all sensors on the INS. Press &quot;Start&quot; to begin calibration, and follow the instructions which will be displayed here.</p>
|
|
<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;"></p>
|
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">#2: Sensor noise calibration:</span></p>
|
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This calibration will compute sensor variance under standard conditions. You can leave your engines running at low to mid throttle to take their vibration into account before pressing &quot;Start&quot;.</p>
|
|
<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;"></p>
|
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">#3: Accelerometer bias calibration:</span></p>
|
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This step will ensure that accelerometer bias is accurate. Place your airframe as horizontally as possible (use a spirit level if necessary), then press Start below and do not move your airframe at all until the end of the calibration.</p>
|
|
<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;"></p>
|
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">#4 Gyro temp drift calibration:</span></p>
|
|
<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-weight:600;"></p></body></html></string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
<widget class="QWidget" name="tab">
|
|
<attribute name="title">
|
|
<string>Settings</string>
|
|
</attribute>
|
|
<layout class="QVBoxLayout" name="verticalLayout_6">
|
|
<item>
|
|
<layout class="QHBoxLayout" name="ahrsSettingsLayout">
|
|
<item>
|
|
<widget class="QLabel" name="label_2">
|
|
<property name="text">
|
|
<string>INS Algorithm:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QComboBox" name="algorithm">
|
|
<property name="toolTip">
|
|
<string>Select the sensor integration algorithm here.
|
|
"Simple" only uses accelerometer values
|
|
"INSGPS" the full featured algorithm integrating all sensors</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<spacer name="horizontalSpacer_2">
|
|
<property name="orientation">
|
|
<enum>Qt::Horizontal</enum>
|
|
</property>
|
|
<property name="sizeHint" stdset="0">
|
|
<size>
|
|
<width>40</width>
|
|
<height>20</height>
|
|
</size>
|
|
</property>
|
|
</spacer>
|
|
</item>
|
|
<item>
|
|
<widget class="QLabel" name="label_4">
|
|
<property name="text">
|
|
<string>Home Location:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QRadioButton" name="homeLocationSet">
|
|
<property name="enabled">
|
|
<bool>false</bool>
|
|
</property>
|
|
<property name="toolTip">
|
|
<string>Saves the Home Location. This is only enabled
|
|
if the Home Location is set, i.e. if the GPS fix is
|
|
successful.
|
|
|
|
Disabled if there is no GPS fix.</string>
|
|
</property>
|
|
<property name="text">
|
|
<string>Set</string>
|
|
</property>
|
|
<property name="checked">
|
|
<bool>true</bool>
|
|
</property>
|
|
<attribute name="buttonGroup">
|
|
<string>buttonGroup</string>
|
|
</attribute>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QRadioButton" name="homeLocationClear">
|
|
<property name="enabled">
|
|
<bool>true</bool>
|
|
</property>
|
|
<property name="toolTip">
|
|
<string>Clears the HomeLocation: only makes sense if you save
|
|
to SD. This will force the INS to use the next GPS fix as the
|
|
new home location unless it is in indoor mode.</string>
|
|
</property>
|
|
<property name="text">
|
|
<string>Clear</string>
|
|
</property>
|
|
<attribute name="buttonGroup">
|
|
<string>buttonGroup</string>
|
|
</attribute>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
<item>
|
|
<spacer name="verticalSpacer">
|
|
<property name="orientation">
|
|
<enum>Qt::Vertical</enum>
|
|
</property>
|
|
<property name="sizeHint" stdset="0">
|
|
<size>
|
|
<width>20</width>
|
|
<height>40</height>
|
|
</size>
|
|
</property>
|
|
</spacer>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<layout class="QHBoxLayout" name="submitButtons">
|
|
<item>
|
|
<widget class="QLabel" name="calibInstructions">
|
|
<property name="text">
|
|
<string>Telemetry link not established.</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<spacer name="horizontalSpacer">
|
|
<property name="orientation">
|
|
<enum>Qt::Horizontal</enum>
|
|
</property>
|
|
<property name="sizeHint" stdset="0">
|
|
<size>
|
|
<width>40</width>
|
|
<height>20</height>
|
|
</size>
|
|
</property>
|
|
</spacer>
|
|
</item>
|
|
<item>
|
|
<widget class="QPushButton" name="ahrsSettingsRequest">
|
|
<property name="toolTip">
|
|
<string>Refresh this screen with current values from the board.</string>
|
|
</property>
|
|
<property name="text">
|
|
<string>Request</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QPushButton" name="ahrsSettingsSaveRAM">
|
|
<property name="toolTip">
|
|
<string>Save settings to the OP board (RAM only).
|
|
|
|
This does not save the calibration settings, this is done using the
|
|
specific calibration button on top of the screen.</string>
|
|
</property>
|
|
<property name="text">
|
|
<string>Save to RAM</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QPushButton" name="ahrsSettingsSaveSD">
|
|
<property name="toolTip">
|
|
<string>Send settings to OP board, and save to the microSD card.</string>
|
|
</property>
|
|
<property name="text">
|
|
<string>Save to SD</string>
|
|
</property>
|
|
<property name="checked">
|
|
<bool>false</bool>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
<resources/>
|
|
<connections/>
|
|
<buttongroups>
|
|
<buttongroup name="buttonGroup"/>
|
|
</buttongroups>
|
|
</ui>
|