mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-01-17 02:52:12 +01:00
OP-38 A bit of visual feedback on 6-point calibration. Hope you like the UAV I used, very simple model ;)
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1459 ebee16cc-31ac-478f-84a7-5cbb03baadba
This commit is contained in:
parent
098cff530f
commit
46ac5c8054
@ -17,7 +17,7 @@
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>9</y>
|
||||
<y>7</y>
|
||||
<width>641</width>
|
||||
<height>461</height>
|
||||
</rect>
|
||||
@ -75,9 +75,9 @@ Tip: lower is better!</string>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Press to start a calibration procedure.
|
||||
<string>Press to start a calibration procedure, takes 30 seconds max.
|
||||
|
||||
Takes about 30 seconds max.</string>
|
||||
Hint: run this with engines at cruising speed.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Start</string>
|
||||
@ -100,7 +100,7 @@ Takes about 30 seconds max.</string>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>180</y>
|
||||
<y>390</y>
|
||||
<width>111</width>
|
||||
<height>17</height>
|
||||
</rect>
|
||||
@ -113,7 +113,7 @@ Takes about 30 seconds max.</string>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>140</x>
|
||||
<y>170</y>
|
||||
<y>380</y>
|
||||
<width>131</width>
|
||||
<height>31</height>
|
||||
</rect>
|
||||
@ -122,24 +122,11 @@ Takes about 30 seconds max.</string>
|
||||
<string>Select the sensor integration algorithm here.</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="Line" name="line_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>130</x>
|
||||
<y>220</y>
|
||||
<width>411</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QGraphicsView" name="graphicsView_2">
|
||||
<widget class="QGraphicsView" name="sixPointsHelp">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>260</y>
|
||||
<y>190</y>
|
||||
<width>191</width>
|
||||
<height>151</height>
|
||||
</rect>
|
||||
@ -149,38 +136,38 @@ Takes about 30 seconds max.</string>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>40</x>
|
||||
<y>240</y>
|
||||
<width>121</width>
|
||||
<y>170</y>
|
||||
<width>151</width>
|
||||
<height>17</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Calibration #2</string>
|
||||
<string>Six Point Calibration</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="ahrsSavePosition">
|
||||
<widget class="QPushButton" name="sixPointsStart">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>220</x>
|
||||
<y>250</y>
|
||||
<y>180</y>
|
||||
<width>111</width>
|
||||
<height>27</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Six Point Cal</string>
|
||||
<string>Start</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QTextBrowser" name="textBrowser">
|
||||
<widget class="QTextEdit" name="sixPointCalibInstructions">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>360</x>
|
||||
<y>250</y>
|
||||
<width>271</width>
|
||||
<height>161</height>
|
||||
<x>220</x>
|
||||
<y>220</y>
|
||||
<width>411</width>
|
||||
<height>121</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
@ -190,8 +177,8 @@ Takes about 30 seconds max.</string>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>290</x>
|
||||
<y>180</y>
|
||||
<x>310</x>
|
||||
<y>380</y>
|
||||
<width>201</width>
|
||||
<height>22</height>
|
||||
</rect>
|
||||
@ -255,7 +242,7 @@ specific calibration button on top of the screen.</string>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>120</x>
|
||||
<y>410</y>
|
||||
<y>350</y>
|
||||
<width>411</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
@ -267,14 +254,14 @@ specific calibration button on top of the screen.</string>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>380</x>
|
||||
<x>360</x>
|
||||
<y>10</y>
|
||||
<width>151</width>
|
||||
<width>271</width>
|
||||
<height>17</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Sensors calibration</string>
|
||||
<string>Sensor noise calibration</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QProgressBar" name="calibProgress">
|
||||
@ -299,6 +286,22 @@ specific calibration button on top of the screen.</string>
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="sixPointsSave">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>350</x>
|
||||
<y>180</y>
|
||||
<width>111</width>
|
||||
<height>27</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Save Position</string>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
|
@ -43,6 +43,17 @@ ConfigAHRSWidget::ConfigAHRSWidget(QWidget *parent) : ConfigTaskWidget(parent)
|
||||
m_ahrs = new Ui_AHRSWidget();
|
||||
m_ahrs->setupUi(this);
|
||||
|
||||
// Initialization of the Paper plane widget
|
||||
m_ahrs->sixPointsHelp->setScene(new QGraphicsScene(this));
|
||||
|
||||
paperplane = new QGraphicsSvgItem();
|
||||
paperplane->setSharedRenderer(new QSvgRenderer());
|
||||
paperplane->renderer()->load(QString(":/configgadget/images/paper-plane.svg"));
|
||||
paperplane->setElementId("plane-horizontal");
|
||||
m_ahrs->sixPointsHelp->scene()->addItem(paperplane);
|
||||
m_ahrs->sixPointsHelp->setSceneRect(paperplane->boundingRect());
|
||||
|
||||
// Initialization of the AHRS bargraph graph
|
||||
|
||||
m_ahrs->ahrsBargraph->setScene(new QGraphicsScene(this));
|
||||
|
||||
@ -176,7 +187,8 @@ ConfigAHRSWidget::ConfigAHRSWidget(QWidget *parent) : ConfigTaskWidget(parent)
|
||||
connect(m_ahrs->ahrsSettingsRequest, SIGNAL(clicked()), this, SLOT(ahrsSettingsRequest()));
|
||||
connect(m_ahrs->ahrsSettingsSaveRAM, SIGNAL(clicked()), this, SLOT(ahrsSettingsSaveRAM()));
|
||||
connect(m_ahrs->ahrsSettingsSaveSD, SIGNAL(clicked()), this, SLOT(ahrsSettingsSaveSD()));
|
||||
connect(m_ahrs->ahrsSavePosition, SIGNAL(clicked()), this, SLOT(savePositionData()));
|
||||
connect(m_ahrs->sixPointsStart, SIGNAL(clicked()), this, SLOT(calibrationMode()));
|
||||
connect(m_ahrs->sixPointsSave, SIGNAL(clicked()), this, SLOT(savePositionData()));
|
||||
connect(parent, SIGNAL(autopilotConnected()),this, SLOT(ahrsSettingsRequest()));
|
||||
|
||||
|
||||
@ -195,6 +207,7 @@ void ConfigAHRSWidget::showEvent(QShowEvent *event)
|
||||
// widget is shown, otherwise it cannot compute its values and
|
||||
// the result is usually a ahrsbargraph that is way too small.
|
||||
m_ahrs->ahrsBargraph->fitInView(ahrsbargraph, Qt::KeepAspectRatio);
|
||||
m_ahrs->sixPointsHelp->fitInView(paperplane,Qt::KeepAspectRatio);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -276,13 +289,6 @@ void ConfigAHRSWidget::saveAHRSCalibration()
|
||||
*/
|
||||
void ConfigAHRSWidget::savePositionData()
|
||||
{
|
||||
if(position < 0)
|
||||
{
|
||||
calibrationMode();
|
||||
m_ahrs->calibInstructions->setText("Place horizontally and click save position...");
|
||||
position = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
UAVObject *obj = dynamic_cast<UAVDataObject*>(getObjectManager()->getObject(QString("AttitudeRaw")));
|
||||
UAVObjectField *accel_field = obj->getField(QString("accels_filtered"));
|
||||
@ -296,18 +302,31 @@ void ConfigAHRSWidget::savePositionData()
|
||||
mag_data_z[position] = mag_field->getValue(2).toDouble();
|
||||
|
||||
position = (position + 1) % 6;
|
||||
if(position == 1)
|
||||
m_ahrs->calibInstructions->setText("Place with left side down and click save position...");
|
||||
if(position == 2)
|
||||
m_ahrs->calibInstructions->setText("Place upside down and click save position...");
|
||||
if(position == 3)
|
||||
m_ahrs->calibInstructions->setText("Place with right side down and click save position...");
|
||||
if(position == 4)
|
||||
m_ahrs->calibInstructions->setText("Place with nose up and click save position...");
|
||||
if(position == 5)
|
||||
m_ahrs->calibInstructions->setText("Place with nose down and click save position...");
|
||||
if(position == 0)
|
||||
if(position == 1) {
|
||||
m_ahrs->sixPointCalibInstructions->append("Place with left side down and click save position...");
|
||||
displayPlane("plane-left");
|
||||
}
|
||||
if(position == 2) {
|
||||
m_ahrs->sixPointCalibInstructions->append("Place upside down and click save position...");
|
||||
displayPlane("plane-flip");
|
||||
}
|
||||
if(position == 3) {
|
||||
m_ahrs->sixPointCalibInstructions->append("Place with right side down and click save position...");
|
||||
displayPlane("plane-right");
|
||||
}
|
||||
if(position == 4) {
|
||||
m_ahrs->sixPointCalibInstructions->append("Place with nose up and click save position...");
|
||||
displayPlane("plane-up");
|
||||
}
|
||||
if(position == 5) {
|
||||
m_ahrs->sixPointCalibInstructions->append("Place with nose down and click save position...");
|
||||
displayPlane("plane-down");
|
||||
}
|
||||
if(position == 0) {
|
||||
computeScaleBias();
|
||||
m_ahrs->sixPointsStart->setEnabled(true);
|
||||
m_ahrs->sixPointsSave->setEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
//*****************************************************************
|
||||
@ -438,7 +457,7 @@ void ConfigAHRSWidget::computeScaleBias()
|
||||
obj->updated();
|
||||
|
||||
position = -1; //set to run again
|
||||
m_ahrs->calibInstructions->setText("Computed accel and mag scale and bias...");
|
||||
m_ahrs->sixPointCalibInstructions->append("Computed accel and mag scale and bias...");
|
||||
|
||||
}
|
||||
|
||||
@ -446,8 +465,6 @@ void ConfigAHRSWidget::calibrationMode()
|
||||
{
|
||||
UAVObject *obj = dynamic_cast<UAVDataObject*>(getObjectManager()->getObject(QString("AHRSCalibration")));
|
||||
|
||||
m_ahrs->calibInstructions->setText("Now place in the horizontal position...");
|
||||
|
||||
// set accels to unity gain
|
||||
UAVObjectField *field = obj->getField(QString("accel_scale"));
|
||||
field->setDouble(1,0);
|
||||
@ -463,8 +480,28 @@ void ConfigAHRSWidget::calibrationMode()
|
||||
field = obj->getField(QString("UpdateRaw"));
|
||||
field->setValue("TRUE");
|
||||
obj->updated();
|
||||
|
||||
m_ahrs->sixPointCalibInstructions->clear();
|
||||
m_ahrs->sixPointCalibInstructions->append("Place horizontally and click save position...<br>");
|
||||
displayPlane("plane-horizontal");
|
||||
m_ahrs->sixPointsStart->setEnabled(false);
|
||||
m_ahrs->sixPointsSave->setEnabled(true);
|
||||
position = 0;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
Rotate the paper plane
|
||||
*/
|
||||
void ConfigAHRSWidget::displayPlane(QString elementID)
|
||||
{
|
||||
paperplane->setElementId(elementID);
|
||||
m_ahrs->sixPointsHelp->setSceneRect(paperplane->boundingRect());
|
||||
m_ahrs->sixPointsHelp->fitInView(paperplane,Qt::KeepAspectRatio);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Draws the sensor variances bargraph
|
||||
*/
|
||||
@ -512,7 +549,7 @@ void ConfigAHRSWidget::ahrsSettingsRequest()
|
||||
m_ahrs->algorithm->setCurrentIndex(m_ahrs->algorithm->findText(field->getValue().toString()));
|
||||
drawVariancesGraph();
|
||||
m_ahrs->ahrsCalibStart->setEnabled(true);
|
||||
m_ahrs->ahrsSavePosition->setEnabled(true);
|
||||
m_ahrs->sixPointsStart->setEnabled(true);
|
||||
m_ahrs->calibInstructions->setText(QString("Press \"Start\" above to calibrate."));
|
||||
}
|
||||
|
||||
|
@ -48,7 +48,9 @@ public:
|
||||
|
||||
private:
|
||||
void drawVariancesGraph();
|
||||
void displayPlane(QString elementID);
|
||||
Ui_AHRSWidget *m_ahrs;
|
||||
QGraphicsSvgItem *paperplane;
|
||||
QGraphicsSvgItem *ahrsbargraph;
|
||||
QGraphicsSvgItem *accel_x;
|
||||
QGraphicsSvgItem *accel_y;
|
||||
|
@ -5,5 +5,6 @@
|
||||
<file>images/Servo.png</file>
|
||||
<file>images/ahrs-calib.svg</file>
|
||||
<file>images/AHRS-v1.3.png</file>
|
||||
<file>images/paper-plane.svg</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
427
ground/src/plugins/config/images/paper-plane.svg
Normal file
427
ground/src/plugins/config/images/paper-plane.svg
Normal file
@ -0,0 +1,427 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="744.09448819"
|
||||
height="1052.3622047"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.47 r22583"
|
||||
sodipodi:docname="paper-plane.svg">
|
||||
<defs
|
||||
id="defs4">
|
||||
<inkscape:path-effect
|
||||
effect="envelope"
|
||||
id="path-effect3160"
|
||||
is_visible="true"
|
||||
yy="true"
|
||||
xx="true"
|
||||
bendpath1="m 447.14285,362.36218 55.71429,0"
|
||||
bendpath2="m 502.85714,362.36218 0,54.28572"
|
||||
bendpath3="m 447.14285,416.6479 55.71429,0"
|
||||
bendpath4="m 447.14285,362.36218 0,54.28572" />
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective10" />
|
||||
<inkscape:perspective
|
||||
id="perspective3143"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<linearGradient
|
||||
id="linearGradient3589">
|
||||
<stop
|
||||
id="stop3591"
|
||||
offset="0"
|
||||
style="stop-color:#dadad1;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3593"
|
||||
offset="1"
|
||||
style="stop-color:#ffffff;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4451">
|
||||
<stop
|
||||
id="stop4453"
|
||||
offset="0"
|
||||
style="stop-color:#000000;stop-opacity:0;" />
|
||||
<stop
|
||||
id="stop4455"
|
||||
offset="1"
|
||||
style="stop-color:#000000;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5713">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="0"
|
||||
id="stop5715" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop5717" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5754">
|
||||
<stop
|
||||
style="stop-color:#e2e2db;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop5756" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop5758" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5877">
|
||||
<stop
|
||||
id="stop5879"
|
||||
offset="0"
|
||||
style="stop-color:#e2e2db;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop5881"
|
||||
offset="1"
|
||||
style="stop-color:#ffffff;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 618.71844 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="1486.9843 : 618.71844 : 1"
|
||||
inkscape:persp3d-origin="743.49213 : 412.47896 : 1"
|
||||
id="perspective2567" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.60408995"
|
||||
inkscape:cx="455.56381"
|
||||
inkscape:cy="659.88675"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="693"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<g
|
||||
id="plane-flip"
|
||||
inkscape:label="#g4365">
|
||||
<g
|
||||
transform="translate(305.77675,-285.13719)"
|
||||
id="g3972">
|
||||
<path
|
||||
sodipodi:nodetypes="ccccccc"
|
||||
id="path3974"
|
||||
d="m 185.71429,456.6479 110,0 10,-30 8.57143,30 111.42857,0 L 382.85714,338.07647 185.71429,456.6479 z"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
id="path3978"
|
||||
d="m 314.66252,456.62472 68.1853,-118.18785"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
transform="translate(70,-226)"
|
||||
id="path3982"
|
||||
d="m 235.87062,652.34177 76.77159,-88.13581"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="plane-horizontal"
|
||||
inkscape:label="#g4349">
|
||||
<g
|
||||
inkscape:label="#g3946"
|
||||
transform="translate(-158.56854,-296.98485)"
|
||||
id="bla">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 185.71429,456.6479 110,0 10,27.85714 8.57143,-27.85714 111.42857,0 L 382.85714,338.07647 185.71429,456.6479 z"
|
||||
id="path2822"
|
||||
sodipodi:nodetypes="ccccccc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 296.42857,456.6479 383.21429,338.43361"
|
||||
id="path2826" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 314.66252,456.62472 68.1853,-118.18785"
|
||||
id="path2828" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 305.57115,485.16153 15.65736,-28.28427"
|
||||
id="path2830" />
|
||||
</g>
|
||||
<path
|
||||
id="path4065"
|
||||
d="m 146.38783,182.85785 c -0.32605,-0.90165 -2.2117,-6.11664 -4.19034,-11.58888 -1.97865,-5.47224 -3.49043,-10.36632 -3.35952,-10.87573 0.28104,-1.0936 72.47583,-99.552799 72.77633,-99.252297 0.19834,0.198344 -52.99468,92.816837 -55.68619,96.959537 -0.73197,1.12664 -2.97014,7.44751 -4.97371,14.04639 -2.00356,6.59887 -3.7173,12.07724 -3.8083,12.17415 -0.091,0.0969 -0.43223,-0.56152 -0.75827,-1.46317 l 0,0 z"
|
||||
style="opacity:1;fill:#666666;fill-opacity:1" />
|
||||
</g>
|
||||
<g
|
||||
id="plane-left"
|
||||
inkscape:label="#g4357">
|
||||
<g
|
||||
transform="matrix(0.00256181,-0.99999672,-0.99999672,-0.00256181,780.50589,449.7941)"
|
||||
id="g3994">
|
||||
<path
|
||||
sodipodi:nodetypes="ccccccc"
|
||||
id="path3996"
|
||||
d="m 185.71429,456.6479 110,0 10.14561,-28.97991 8.42582,28.97991 111.42857,0 L 382.85714,338.07647 185.71429,456.6479 z"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
id="path4000"
|
||||
d="m 314.66252,456.62472 68.1853,-118.18785"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 295.91153,456.54311 308.5568,440.11449"
|
||||
id="path4006" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
transform="matrix(0.00256181,-0.99999672,-0.99999672,-0.00256181,675.67433,927.38588)"
|
||||
id="path4008"
|
||||
d="m 498.79912,370.56922 89.10071,-76.12668"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
</g>
|
||||
<path
|
||||
id="path4075"
|
||||
d="m 331.59817,148.54231 c 0.90991,-0.75045 3.69622,-2.88986 6.1918,-4.75425 l 4.53742,-3.3898 3.80262,1.08903 c 2.09145,0.59896 3.80263,1.2469 3.80263,1.43986 0,0.30789 -18.78631,6.9796 -19.65325,6.9796 -0.18458,0 0.40887,-0.614 1.31878,-1.36444 z"
|
||||
style="opacity:1;fill:#666666;fill-opacity:1" />
|
||||
</g>
|
||||
<g
|
||||
id="plane-right"
|
||||
inkscape:label="#g4371">
|
||||
<g
|
||||
id="g3984"
|
||||
transform="matrix(0.00256181,-0.99999672,-0.99999672,-0.00256181,1070.5332,666.10797)">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 185.71429,456.6479 110,0 10,27.85714 8.57143,-27.85714 111.42857,0 L 382.85714,338.07647 185.71429,456.6479 z"
|
||||
id="path3986"
|
||||
sodipodi:nodetypes="ccccccc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 296.42857,456.6479 383.21429,338.43361"
|
||||
id="path3988" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 314.66252,456.62472 68.1853,-118.18785"
|
||||
id="path3990" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 305.57115,485.16153 15.65736,-28.28427"
|
||||
id="path3992" />
|
||||
</g>
|
||||
<path
|
||||
id="path4077"
|
||||
d="m 602.06162,363.33367 c -6.43591,-2.39032 -11.37138,-4.37774 -10.96771,-4.41647 0.40366,-0.0387 5.79069,-1.627 11.97117,-3.52947 9.393,-2.89135 18.46611,-7.60947 55.28388,-28.74823 24.22566,-13.90905 44.2519,-25.08393 44.50276,-24.83307 0.25087,0.25086 -19.69141,15.17498 -44.31616,33.1647 l -44.77228,32.70858 -11.70166,-4.34604 z"
|
||||
style="opacity:1;fill:#666666;fill-opacity:1" />
|
||||
</g>
|
||||
<g
|
||||
id="plane-up"
|
||||
inkscape:label="#g4391">
|
||||
<g
|
||||
transform="translate(-158.56854,5.01515)"
|
||||
id="g4026">
|
||||
<path
|
||||
sodipodi:nodetypes="ccccccc"
|
||||
id="path4012"
|
||||
d="m 185.71429,456.6479 110,0 10,27.85714 8.57143,-27.85714 111.42857,0 -119.8167,-238.58667 -120.1833,238.58667 z"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
id="path4014"
|
||||
d="m 296.42857,456.6479 9.46902,-235.74646"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
id="path4016"
|
||||
d="M 314.66252,456.62472 305.89759,218.42163"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
transform="translate(158.56854,-5.01515)"
|
||||
id="path4022"
|
||||
d="m 147.32905,489.5321 0,-4.13846 0,-263.20584"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 185.71429,456.6479 110,0 10,27.85714 8.57143,-27.85714 111.42857,0 -119.8167,-238.58667 -120.1833,238.58667 z"
|
||||
id="path4024"
|
||||
sodipodi:nodetypes="ccccccc" />
|
||||
</g>
|
||||
<path
|
||||
id="path4081"
|
||||
d="m 142.14371,473.11345 -3.82369,-10.68763 0.40417,-5.40719 c 0.22229,-2.97395 1.94295,-44.12254 3.82369,-91.4413 l 3.41951,-86.03413 0.14953,51.06447 c 0.0823,28.08546 0.0823,74.04349 0,102.12894 l -0.14953,51.06447 -3.82368,-10.68763 z"
|
||||
style="opacity:1;fill:#666666;fill-opacity:1" />
|
||||
<path
|
||||
id="path4083"
|
||||
d="m 148.16566,377.28265 c 0.0301,-58.26325 0.13214,-104.87969 0.22683,-103.59211 0.0947,1.28759 1.67362,43.76715 3.50873,94.39902 l 3.33657,92.05795 -2.16196,7.14466 c -1.18907,3.92956 -2.7926,9.11993 -3.56339,11.53415 l -1.40144,4.3895 0.0547,-105.93317 0,0 z"
|
||||
style="opacity:1;fill:#666666;fill-opacity:1" />
|
||||
</g>
|
||||
<g
|
||||
id="plane-down"
|
||||
inkscape:label="#g4401">
|
||||
<g
|
||||
id="g4033"
|
||||
transform="matrix(1,0,0,-1,-158.56854,1000.7047)">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 185.71429,456.6479 110,0 10,27.85714 8.57143,-27.85714 111.42857,0 -119.8167,-238.58667 -120.1833,238.58667 z"
|
||||
id="path4035"
|
||||
sodipodi:nodetypes="ccccccc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 296.42857,456.6479 9.46902,-235.74646"
|
||||
id="path4037"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 314.66252,456.62472 305.89759,218.42163"
|
||||
id="path4039"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 147.32905,489.5321 0,-4.13846 0,-263.20584"
|
||||
id="path4041"
|
||||
transform="translate(158.56854,-5.01515)" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccccccc"
|
||||
id="path4043"
|
||||
d="m 185.71429,456.6479 110,0 10,27.85714 8.57143,-27.85714 111.42857,0 -119.8167,-238.58667 -120.1833,238.58667 z"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
</g>
|
||||
<path
|
||||
id="path4085"
|
||||
d="m 148.16566,628.36182 -0.0547,-105.93317 1.40144,4.3895 c 0.77079,2.41422 2.37432,7.60459 3.56339,11.53415 l 2.16196,7.14466 -3.33657,92.05795 c -1.83511,50.63187 -3.41404,93.11143 -3.50873,94.39902 -0.0947,1.28758 -0.19676,-45.32887 -0.22683,-103.59211 z"
|
||||
style="opacity:1;fill:#666666;fill-opacity:1" />
|
||||
<path
|
||||
id="path4087"
|
||||
d="m 142.54602,640.35978 c -1.88175,-47.47972 -3.6008,-88.73996 -3.8201,-91.68942 l -0.39873,-5.36266 3.8201,-10.73216 3.8201,-10.73216 0.14953,51.01814 c 0.0822,28.05998 0.0822,74.14969 0,102.42158 l -0.14953,51.40343 -3.42137,-86.32675 z"
|
||||
style="opacity:1;fill:#666666;fill-opacity:1" />
|
||||
</g>
|
||||
<g
|
||||
id="g4249"
|
||||
transform="translate(-1399.8845,-1041.4937)">
|
||||
<g
|
||||
style="display:inline"
|
||||
inkscape:label="backdrop"
|
||||
id="layer5"
|
||||
transform="translate(6671.9971,-1494.883)" />
|
||||
<g
|
||||
style="opacity:0.40845068;display:none"
|
||||
inkscape:label="blender_render"
|
||||
id="layer2"
|
||||
transform="translate(6671.9971,-1494.883)">
|
||||
<image
|
||||
xlink:href="file:///home/richard/Dropbox/graphicswork/openpilot.org/persp_path.png"
|
||||
width="720"
|
||||
height="576"
|
||||
id="image2904"
|
||||
x="8.5714464"
|
||||
y="178.64789" />
|
||||
</g>
|
||||
<g
|
||||
style="opacity:0.26126763;display:none"
|
||||
inkscape:label="constr_lines"
|
||||
id="layer3"
|
||||
transform="translate(6671.9971,-1494.883)">
|
||||
<path
|
||||
id="path2937"
|
||||
d="M 435.88082,573.54988 303.55084,697.29356"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
id="path2939"
|
||||
d="m 365.17015,554.35698 94.44926,80.8122"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
id="path2941"
|
||||
d="m 274.25642,623.55243 96.46956,112.12693"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
id="path2943"
|
||||
d="m 358.09908,562.4382 93.94418,86.87312"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
id="path2945"
|
||||
d="m 339.78942,576.47266 91.18422,94.53592"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
id="path2933"
|
||||
d="m 472.85714,488.07647 -205,155"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
id="path2935"
|
||||
d="M 546.07143,520.57647 348.21429,744.1479"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
|
||||
d="M 433.86048,597.28846 316.17778,736.68951"
|
||||
id="path3040" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
|
||||
d="M 503.05598,615.97628 369.71588,801.33927"
|
||||
id="path3042" />
|
||||
</g>
|
||||
<g
|
||||
style="display:inline"
|
||||
inkscape:label="shadow"
|
||||
id="layer4"
|
||||
transform="translate(6671.9971,-1494.883)" />
|
||||
<g
|
||||
style="display:inline"
|
||||
id="layer1-7"
|
||||
inkscape:label="Layer 1"
|
||||
transform="translate(6671.9971,-1494.883)">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:29.84373283px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:LondonBetween;-inkscape-font-specification:LondonBetween Bold"
|
||||
x="-6201.9575"
|
||||
y="4050.0679"
|
||||
id="text3640"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3642"
|
||||
x="-6201.9575"
|
||||
y="4050.0679" /></text>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 18 KiB |
Loading…
x
Reference in New Issue
Block a user