mirror of https://github.com/ArduPilot/ardupilot
parent
f48e86747f
commit
2ccb6a281e
|
@ -0,0 +1,45 @@
|
||||||
|
namespace ArdupilotMega.Controls
|
||||||
|
{
|
||||||
|
partial class MainSwitcher
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Component Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// MainSwitcher
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Name = "MainSwitcher";
|
||||||
|
this.Size = new System.Drawing.Size(778, 405);
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,93 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Data;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using ArdupilotMega.Utilities;
|
||||||
|
|
||||||
|
namespace ArdupilotMega.Controls
|
||||||
|
{
|
||||||
|
public partial class MainSwitcher : UserControl
|
||||||
|
{
|
||||||
|
List<Screen> screens = new List<Screen>();
|
||||||
|
Screen current;
|
||||||
|
|
||||||
|
public MainSwitcher()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void AddScreen(Screen Screen)
|
||||||
|
{
|
||||||
|
// add to list
|
||||||
|
screens.Add(Screen);
|
||||||
|
|
||||||
|
// hide it
|
||||||
|
Screen.Control.Visible = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ShowScreen(string name)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (current != null)
|
||||||
|
{
|
||||||
|
// hide current screen
|
||||||
|
current.Visible = false;
|
||||||
|
|
||||||
|
// remove reference
|
||||||
|
this.Controls.Remove(current.Control);
|
||||||
|
|
||||||
|
// check if we need to remove the current control
|
||||||
|
if (!current.Persistent)
|
||||||
|
{
|
||||||
|
// cleanup
|
||||||
|
current.Control.Close();
|
||||||
|
|
||||||
|
current.Control.Dispose();
|
||||||
|
|
||||||
|
current.Control = (MyUserControl)Activator.CreateInstance(current.Control.GetType());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// find next screen
|
||||||
|
Screen nextscreen = screens.Single(s => s.Name == name);
|
||||||
|
|
||||||
|
nextscreen.Control.Location = new Point(0, 0);
|
||||||
|
|
||||||
|
nextscreen.Control.Dock = DockStyle.Fill;
|
||||||
|
|
||||||
|
nextscreen.Control.Size = this.Size;
|
||||||
|
|
||||||
|
nextscreen.Visible = true;
|
||||||
|
|
||||||
|
this.Controls.Add(nextscreen.Control);
|
||||||
|
|
||||||
|
ThemeManager.ApplyThemeTo(nextscreen.Control);
|
||||||
|
|
||||||
|
current = nextscreen;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnPaintBackground(PaintEventArgs e)
|
||||||
|
{
|
||||||
|
base.OnPaintBackground(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Screen
|
||||||
|
{
|
||||||
|
public string Name;
|
||||||
|
public MyUserControl Control;
|
||||||
|
public bool Visible { get { return Control.Visible; } set { Control.Visible = value; } }
|
||||||
|
public bool Persistent;
|
||||||
|
|
||||||
|
public Screen(string Name, MyUserControl Control, bool Persistent = false)
|
||||||
|
{
|
||||||
|
this.Name = Name;
|
||||||
|
this.Control = Control;
|
||||||
|
this.Persistent = Persistent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,120 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
309
Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAP_Limits.Designer.cs
generated
Normal file
309
Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAP_Limits.Designer.cs
generated
Normal file
|
@ -0,0 +1,309 @@
|
||||||
|
namespace ArdupilotMega.GCSViews.ConfigurationView
|
||||||
|
{
|
||||||
|
partial class ConfigAP_Limits
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Component Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ConfigAP_Limits));
|
||||||
|
this.LNK_wiki = new System.Windows.Forms.LinkLabel();
|
||||||
|
this.LIM_ENABLED = new System.Windows.Forms.CheckBox();
|
||||||
|
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.textBox1 = new System.Windows.Forms.TextBox();
|
||||||
|
this.groupBox5 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.LIM_GPSLCK_REQ = new System.Windows.Forms.CheckBox();
|
||||||
|
this.LIM_FNC_REQ = new System.Windows.Forms.CheckBox();
|
||||||
|
this.LIM_ALT_REQ = new System.Windows.Forms.CheckBox();
|
||||||
|
this.groupBox4 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.LIM_REQUIRED = new System.Windows.Forms.CheckBox();
|
||||||
|
this.myLabel4 = new ArdupilotMega.Controls.MyLabel();
|
||||||
|
this.LIM_CHANNEL = new System.Windows.Forms.NumericUpDown();
|
||||||
|
this.myLabel3 = new ArdupilotMega.Controls.MyLabel();
|
||||||
|
this.LIM_FNC_RAD = new System.Windows.Forms.NumericUpDown();
|
||||||
|
this.LIM_FNC_SMPL = new System.Windows.Forms.CheckBox();
|
||||||
|
this.groupBox3 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.LIM_GPSLCK_ON = new System.Windows.Forms.CheckBox();
|
||||||
|
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.LIM_ALT_ON = new System.Windows.Forms.CheckBox();
|
||||||
|
this.myLabel1 = new ArdupilotMega.Controls.MyLabel();
|
||||||
|
this.LIM_ALT_MAX = new System.Windows.Forms.NumericUpDown();
|
||||||
|
this.myLabel2 = new ArdupilotMega.Controls.MyLabel();
|
||||||
|
this.LIM_ALT_MIN = new System.Windows.Forms.NumericUpDown();
|
||||||
|
this.groupBox1.SuspendLayout();
|
||||||
|
this.groupBox5.SuspendLayout();
|
||||||
|
this.groupBox4.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.LIM_CHANNEL)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.LIM_FNC_RAD)).BeginInit();
|
||||||
|
this.groupBox3.SuspendLayout();
|
||||||
|
this.groupBox2.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.LIM_ALT_MAX)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.LIM_ALT_MIN)).BeginInit();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// LNK_wiki
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.LNK_wiki, "LNK_wiki");
|
||||||
|
this.LNK_wiki.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
|
||||||
|
this.LNK_wiki.LinkColor = System.Drawing.Color.CornflowerBlue;
|
||||||
|
this.LNK_wiki.Name = "LNK_wiki";
|
||||||
|
this.LNK_wiki.TabStop = true;
|
||||||
|
this.LNK_wiki.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LNK_wiki_LinkClicked);
|
||||||
|
//
|
||||||
|
// LIM_ENABLED
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.LIM_ENABLED, "LIM_ENABLED");
|
||||||
|
this.LIM_ENABLED.Name = "LIM_ENABLED";
|
||||||
|
this.LIM_ENABLED.UseVisualStyleBackColor = true;
|
||||||
|
this.LIM_ENABLED.CheckedChanged += new System.EventHandler(this.LIM_ENABLED_CheckedChanged);
|
||||||
|
//
|
||||||
|
// groupBox1
|
||||||
|
//
|
||||||
|
this.groupBox1.Controls.Add(this.textBox1);
|
||||||
|
this.groupBox1.Controls.Add(this.groupBox5);
|
||||||
|
this.groupBox1.Controls.Add(this.groupBox4);
|
||||||
|
this.groupBox1.Controls.Add(this.groupBox3);
|
||||||
|
this.groupBox1.Controls.Add(this.groupBox2);
|
||||||
|
resources.ApplyResources(this.groupBox1, "groupBox1");
|
||||||
|
this.groupBox1.Name = "groupBox1";
|
||||||
|
this.groupBox1.TabStop = false;
|
||||||
|
//
|
||||||
|
// textBox1
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.textBox1, "textBox1");
|
||||||
|
this.textBox1.Name = "textBox1";
|
||||||
|
//
|
||||||
|
// groupBox5
|
||||||
|
//
|
||||||
|
this.groupBox5.Controls.Add(this.LIM_GPSLCK_REQ);
|
||||||
|
this.groupBox5.Controls.Add(this.LIM_FNC_REQ);
|
||||||
|
this.groupBox5.Controls.Add(this.LIM_ALT_REQ);
|
||||||
|
resources.ApplyResources(this.groupBox5, "groupBox5");
|
||||||
|
this.groupBox5.Name = "groupBox5";
|
||||||
|
this.groupBox5.TabStop = false;
|
||||||
|
//
|
||||||
|
// LIM_GPSLCK_REQ
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.LIM_GPSLCK_REQ, "LIM_GPSLCK_REQ");
|
||||||
|
this.LIM_GPSLCK_REQ.Name = "LIM_GPSLCK_REQ";
|
||||||
|
this.LIM_GPSLCK_REQ.UseVisualStyleBackColor = true;
|
||||||
|
this.LIM_GPSLCK_REQ.CheckedChanged += new System.EventHandler(this.ProcessChange);
|
||||||
|
//
|
||||||
|
// LIM_FNC_REQ
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.LIM_FNC_REQ, "LIM_FNC_REQ");
|
||||||
|
this.LIM_FNC_REQ.Name = "LIM_FNC_REQ";
|
||||||
|
this.LIM_FNC_REQ.UseVisualStyleBackColor = true;
|
||||||
|
this.LIM_FNC_REQ.CheckedChanged += new System.EventHandler(this.ProcessChange);
|
||||||
|
//
|
||||||
|
// LIM_ALT_REQ
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.LIM_ALT_REQ, "LIM_ALT_REQ");
|
||||||
|
this.LIM_ALT_REQ.Name = "LIM_ALT_REQ";
|
||||||
|
this.LIM_ALT_REQ.UseVisualStyleBackColor = true;
|
||||||
|
this.LIM_ALT_REQ.CheckedChanged += new System.EventHandler(this.ProcessChange);
|
||||||
|
//
|
||||||
|
// groupBox4
|
||||||
|
//
|
||||||
|
this.groupBox4.Controls.Add(this.LIM_REQUIRED);
|
||||||
|
this.groupBox4.Controls.Add(this.myLabel4);
|
||||||
|
this.groupBox4.Controls.Add(this.LIM_CHANNEL);
|
||||||
|
this.groupBox4.Controls.Add(this.myLabel3);
|
||||||
|
this.groupBox4.Controls.Add(this.LIM_FNC_RAD);
|
||||||
|
this.groupBox4.Controls.Add(this.LIM_FNC_SMPL);
|
||||||
|
resources.ApplyResources(this.groupBox4, "groupBox4");
|
||||||
|
this.groupBox4.Name = "groupBox4";
|
||||||
|
this.groupBox4.TabStop = false;
|
||||||
|
//
|
||||||
|
// LIM_REQUIRED
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.LIM_REQUIRED, "LIM_REQUIRED");
|
||||||
|
this.LIM_REQUIRED.Name = "LIM_REQUIRED";
|
||||||
|
this.LIM_REQUIRED.UseVisualStyleBackColor = true;
|
||||||
|
this.LIM_REQUIRED.CheckedChanged += new System.EventHandler(this.LIM_REQUIRED_CheckedChanged);
|
||||||
|
//
|
||||||
|
// myLabel4
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.myLabel4, "myLabel4");
|
||||||
|
this.myLabel4.Name = "myLabel4";
|
||||||
|
this.myLabel4.resize = false;
|
||||||
|
//
|
||||||
|
// LIM_CHANNEL
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.LIM_CHANNEL, "LIM_CHANNEL");
|
||||||
|
this.LIM_CHANNEL.Maximum = new decimal(new int[] {
|
||||||
|
8,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0});
|
||||||
|
this.LIM_CHANNEL.Name = "LIM_CHANNEL";
|
||||||
|
this.LIM_CHANNEL.Value = new decimal(new int[] {
|
||||||
|
7,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0});
|
||||||
|
this.LIM_CHANNEL.ValueChanged += new System.EventHandler(this.ProcessChange);
|
||||||
|
//
|
||||||
|
// myLabel3
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.myLabel3, "myLabel3");
|
||||||
|
this.myLabel3.Name = "myLabel3";
|
||||||
|
this.myLabel3.resize = false;
|
||||||
|
//
|
||||||
|
// LIM_FNC_RAD
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.LIM_FNC_RAD, "LIM_FNC_RAD");
|
||||||
|
this.LIM_FNC_RAD.Name = "LIM_FNC_RAD";
|
||||||
|
this.LIM_FNC_RAD.Value = new decimal(new int[] {
|
||||||
|
30,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0});
|
||||||
|
this.LIM_FNC_RAD.ValueChanged += new System.EventHandler(this.ProcessChange);
|
||||||
|
//
|
||||||
|
// LIM_FNC_SMPL
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.LIM_FNC_SMPL, "LIM_FNC_SMPL");
|
||||||
|
this.LIM_FNC_SMPL.Name = "LIM_FNC_SMPL";
|
||||||
|
this.LIM_FNC_SMPL.UseVisualStyleBackColor = true;
|
||||||
|
this.LIM_FNC_SMPL.CheckedChanged += new System.EventHandler(this.ProcessChange);
|
||||||
|
//
|
||||||
|
// groupBox3
|
||||||
|
//
|
||||||
|
this.groupBox3.Controls.Add(this.LIM_GPSLCK_ON);
|
||||||
|
resources.ApplyResources(this.groupBox3, "groupBox3");
|
||||||
|
this.groupBox3.Name = "groupBox3";
|
||||||
|
this.groupBox3.TabStop = false;
|
||||||
|
//
|
||||||
|
// LIM_GPSLCK_ON
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.LIM_GPSLCK_ON, "LIM_GPSLCK_ON");
|
||||||
|
this.LIM_GPSLCK_ON.Name = "LIM_GPSLCK_ON";
|
||||||
|
this.LIM_GPSLCK_ON.UseVisualStyleBackColor = true;
|
||||||
|
this.LIM_GPSLCK_ON.CheckedChanged += new System.EventHandler(this.ProcessChange);
|
||||||
|
//
|
||||||
|
// groupBox2
|
||||||
|
//
|
||||||
|
this.groupBox2.Controls.Add(this.LIM_ALT_ON);
|
||||||
|
this.groupBox2.Controls.Add(this.myLabel1);
|
||||||
|
this.groupBox2.Controls.Add(this.LIM_ALT_MAX);
|
||||||
|
this.groupBox2.Controls.Add(this.myLabel2);
|
||||||
|
this.groupBox2.Controls.Add(this.LIM_ALT_MIN);
|
||||||
|
resources.ApplyResources(this.groupBox2, "groupBox2");
|
||||||
|
this.groupBox2.Name = "groupBox2";
|
||||||
|
this.groupBox2.TabStop = false;
|
||||||
|
//
|
||||||
|
// LIM_ALT_ON
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.LIM_ALT_ON, "LIM_ALT_ON");
|
||||||
|
this.LIM_ALT_ON.Name = "LIM_ALT_ON";
|
||||||
|
this.LIM_ALT_ON.UseVisualStyleBackColor = true;
|
||||||
|
this.LIM_ALT_ON.CheckedChanged += new System.EventHandler(this.ProcessChange);
|
||||||
|
//
|
||||||
|
// myLabel1
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.myLabel1, "myLabel1");
|
||||||
|
this.myLabel1.Name = "myLabel1";
|
||||||
|
this.myLabel1.resize = false;
|
||||||
|
//
|
||||||
|
// LIM_ALT_MAX
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.LIM_ALT_MAX, "LIM_ALT_MAX");
|
||||||
|
this.LIM_ALT_MAX.Name = "LIM_ALT_MAX";
|
||||||
|
this.LIM_ALT_MAX.Value = new decimal(new int[] {
|
||||||
|
30,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0});
|
||||||
|
this.LIM_ALT_MAX.ValueChanged += new System.EventHandler(this.ProcessChange);
|
||||||
|
//
|
||||||
|
// myLabel2
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.myLabel2, "myLabel2");
|
||||||
|
this.myLabel2.Name = "myLabel2";
|
||||||
|
this.myLabel2.resize = false;
|
||||||
|
//
|
||||||
|
// LIM_ALT_MIN
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.LIM_ALT_MIN, "LIM_ALT_MIN");
|
||||||
|
this.LIM_ALT_MIN.Name = "LIM_ALT_MIN";
|
||||||
|
this.LIM_ALT_MIN.ValueChanged += new System.EventHandler(this.ProcessChange);
|
||||||
|
//
|
||||||
|
// ConfigAP_Limits
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this, "$this");
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Controls.Add(this.groupBox1);
|
||||||
|
this.Controls.Add(this.LIM_ENABLED);
|
||||||
|
this.Controls.Add(this.LNK_wiki);
|
||||||
|
this.Name = "ConfigAP_Limits";
|
||||||
|
this.Load += new System.EventHandler(this.ConfigAP_Limits_Load);
|
||||||
|
this.groupBox1.ResumeLayout(false);
|
||||||
|
this.groupBox1.PerformLayout();
|
||||||
|
this.groupBox5.ResumeLayout(false);
|
||||||
|
this.groupBox5.PerformLayout();
|
||||||
|
this.groupBox4.ResumeLayout(false);
|
||||||
|
this.groupBox4.PerformLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.LIM_CHANNEL)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.LIM_FNC_RAD)).EndInit();
|
||||||
|
this.groupBox3.ResumeLayout(false);
|
||||||
|
this.groupBox3.PerformLayout();
|
||||||
|
this.groupBox2.ResumeLayout(false);
|
||||||
|
this.groupBox2.PerformLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.LIM_ALT_MAX)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.LIM_ALT_MIN)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.LinkLabel LNK_wiki;
|
||||||
|
private System.Windows.Forms.CheckBox LIM_ENABLED;
|
||||||
|
private System.Windows.Forms.GroupBox groupBox1;
|
||||||
|
private Controls.MyLabel myLabel2;
|
||||||
|
private Controls.MyLabel myLabel1;
|
||||||
|
private System.Windows.Forms.NumericUpDown LIM_ALT_MAX;
|
||||||
|
private System.Windows.Forms.NumericUpDown LIM_ALT_MIN;
|
||||||
|
private System.Windows.Forms.GroupBox groupBox2;
|
||||||
|
private System.Windows.Forms.CheckBox LIM_ALT_ON;
|
||||||
|
private System.Windows.Forms.GroupBox groupBox3;
|
||||||
|
private System.Windows.Forms.CheckBox LIM_GPSLCK_ON;
|
||||||
|
private System.Windows.Forms.GroupBox groupBox4;
|
||||||
|
private Controls.MyLabel myLabel3;
|
||||||
|
private System.Windows.Forms.NumericUpDown LIM_FNC_RAD;
|
||||||
|
private System.Windows.Forms.CheckBox LIM_FNC_SMPL;
|
||||||
|
private Controls.MyLabel myLabel4;
|
||||||
|
private System.Windows.Forms.NumericUpDown LIM_CHANNEL;
|
||||||
|
private System.Windows.Forms.CheckBox LIM_REQUIRED;
|
||||||
|
private System.Windows.Forms.GroupBox groupBox5;
|
||||||
|
private System.Windows.Forms.CheckBox LIM_FNC_REQ;
|
||||||
|
private System.Windows.Forms.CheckBox LIM_ALT_REQ;
|
||||||
|
private System.Windows.Forms.TextBox textBox1;
|
||||||
|
private System.Windows.Forms.CheckBox LIM_GPSLCK_REQ;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,106 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Data;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using ArdupilotMega.Controls.BackstageView;
|
||||||
|
using System.Collections;
|
||||||
|
using ArdupilotMega.Controls;
|
||||||
|
using System.Diagnostics;
|
||||||
|
|
||||||
|
namespace ArdupilotMega.GCSViews.ConfigurationView
|
||||||
|
{
|
||||||
|
public partial class ConfigAP_Limits : BackStageViewContentPanel
|
||||||
|
{
|
||||||
|
public ConfigAP_Limits()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void LNK_wiki_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||||
|
{
|
||||||
|
Process.Start(new ProcessStartInfo("https://code.google.com/p/ardupilot-mega/wiki/APLimitsLibrary"));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ProcessChange(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (sender.GetType() == typeof(CheckBox))
|
||||||
|
{
|
||||||
|
CheckBox chk = ((CheckBox)sender);
|
||||||
|
MainV2.comPort.setParam(chk.Name, chk.Checked ? 1 : 0);
|
||||||
|
}
|
||||||
|
else if (sender.GetType() == typeof(NumericUpDown))
|
||||||
|
{
|
||||||
|
NumericUpDown nud = ((NumericUpDown)sender);
|
||||||
|
MainV2.comPort.setParam(nud.Name, (float)nud.Value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void LIM_ENABLED_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!MainV2.comPort.param.ContainsKey("LIM_ENABLED"))
|
||||||
|
{
|
||||||
|
CustomMessageBox.Show("This feature is not enabled in your firmware.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (LIM_ENABLED.Checked)
|
||||||
|
{
|
||||||
|
groupBox1.Enabled = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
groupBox1.Enabled = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
ProcessChange(sender, e);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void LIM_REQUIRED_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (LIM_REQUIRED.Checked)
|
||||||
|
{
|
||||||
|
groupBox5.Enabled = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
groupBox5.Enabled = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
ProcessChange(sender, e);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ConfigAP_Limits_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
PopulateData();
|
||||||
|
}
|
||||||
|
|
||||||
|
void PopulateData()
|
||||||
|
{
|
||||||
|
Hashtable copy = new Hashtable(MainV2.comPort.param);
|
||||||
|
|
||||||
|
foreach (string key in copy.Keys)
|
||||||
|
{
|
||||||
|
Control[] ctls = this.Controls.Find(key, true);
|
||||||
|
if (ctls.Length > 0)
|
||||||
|
{
|
||||||
|
if (ctls[0].GetType() == typeof(CheckBox))
|
||||||
|
{
|
||||||
|
CheckBox chk = ((CheckBox)ctls[0]);
|
||||||
|
Console.WriteLine(chk.Name + " "+ copy[key]);
|
||||||
|
|
||||||
|
chk.Checked = (float)copy[key] == 1 ? true: false;
|
||||||
|
}
|
||||||
|
else if (ctls[0].GetType() == typeof(NumericUpDown))
|
||||||
|
{
|
||||||
|
NumericUpDown nud = ((NumericUpDown)ctls[0]);
|
||||||
|
nud.Value = (decimal)(float)copy[key];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,730 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="LNK_wiki.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="LNK_wiki.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>590, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="LNK_wiki.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>28, 13</value>
|
||||||
|
</data>
|
||||||
|
<data name="LNK_wiki.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>78</value>
|
||||||
|
</data>
|
||||||
|
<data name="LNK_wiki.Text" xml:space="preserve">
|
||||||
|
<value>Wiki</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LNK_wiki.Name" xml:space="preserve">
|
||||||
|
<value>LNK_wiki</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LNK_wiki.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LNK_wiki.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LNK_wiki.ZOrder" xml:space="preserve">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_ENABLED.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_ENABLED.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>247, 9</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_ENABLED.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>112, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_ENABLED.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>79</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_ENABLED.Text" xml:space="preserve">
|
||||||
|
<value>Enable GeoFence</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_ENABLED.Name" xml:space="preserve">
|
||||||
|
<value>LIM_ENABLED</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_ENABLED.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_ENABLED.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_ENABLED.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="textBox1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>388, 59</value>
|
||||||
|
</data>
|
||||||
|
<data name="textBox1.Multiline" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="textBox1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>187, 59</value>
|
||||||
|
</data>
|
||||||
|
<data name="textBox1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>10</value>
|
||||||
|
</data>
|
||||||
|
<data name="textBox1.Text" xml:space="preserve">
|
||||||
|
<value>Enable a simple Fixed Radius from home GeoFence, with the ability to specify Heights and fence arming options
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>textBox1.Name" xml:space="preserve">
|
||||||
|
<value>textBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>textBox1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>textBox1.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>textBox1.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_GPSLCK_REQ.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="LIM_GPSLCK_REQ.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_GPSLCK_REQ.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>29, 65</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_GPSLCK_REQ.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>121, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_GPSLCK_REQ.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>9</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_GPSLCK_REQ.Text" xml:space="preserve">
|
||||||
|
<value>GPS Lock Required</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_GPSLCK_REQ.Name" xml:space="preserve">
|
||||||
|
<value>LIM_GPSLCK_REQ</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_GPSLCK_REQ.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_GPSLCK_REQ.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox5</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_GPSLCK_REQ.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_FNC_REQ.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_FNC_REQ.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_FNC_REQ.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>29, 42</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_FNC_REQ.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>127, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_FNC_REQ.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>8</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_FNC_REQ.Text" xml:space="preserve">
|
||||||
|
<value>Require Inside Fence</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_FNC_REQ.Name" xml:space="preserve">
|
||||||
|
<value>LIM_FNC_REQ</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_FNC_REQ.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_FNC_REQ.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox5</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_FNC_REQ.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_ALT_REQ.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_ALT_REQ.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_ALT_REQ.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>29, 19</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_ALT_REQ.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>111, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_ALT_REQ.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>7</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_ALT_REQ.Text" xml:space="preserve">
|
||||||
|
<value>Require Within Alt</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_ALT_REQ.Name" xml:space="preserve">
|
||||||
|
<value>LIM_ALT_REQ</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_ALT_REQ.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_ALT_REQ.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox5</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_ALT_REQ.ZOrder" xml:space="preserve">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox5.Enabled" type="System.Boolean, mscorlib">
|
||||||
|
<value>False</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox5.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>204, 260</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox5.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>187, 88</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox5.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>8</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox5.Text" xml:space="preserve">
|
||||||
|
<value>Required Limits - Before Arming</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox5.Name" xml:space="preserve">
|
||||||
|
<value>groupBox5</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox5.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox5.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox5.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_REQUIRED.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_REQUIRED.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_REQUIRED.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>22, 42</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_REQUIRED.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>134, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_REQUIRED.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>12</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_REQUIRED.Text" xml:space="preserve">
|
||||||
|
<value>Enable Required Limits</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_REQUIRED.Name" xml:space="preserve">
|
||||||
|
<value>LIM_REQUIRED</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_REQUIRED.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_REQUIRED.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_REQUIRED.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="myLabel4.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>6, 95</value>
|
||||||
|
</data>
|
||||||
|
<data name="myLabel4.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>60, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name="myLabel4.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>10</value>
|
||||||
|
</data>
|
||||||
|
<data name="myLabel4.Text" xml:space="preserve">
|
||||||
|
<value>RC Channel</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>myLabel4.Name" xml:space="preserve">
|
||||||
|
<value>myLabel4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>myLabel4.Type" xml:space="preserve">
|
||||||
|
<value>ArdupilotMega.Controls.MyLabel, ArdupilotMegaPlanner10, Version=1.1.4579.36338, Culture=neutral, PublicKeyToken=null</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>myLabel4.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>myLabel4.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_CHANNEL.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>73, 96</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_CHANNEL.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>83, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_CHANNEL.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>11</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_CHANNEL.Name" xml:space="preserve">
|
||||||
|
<value>LIM_CHANNEL</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_CHANNEL.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_CHANNEL.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_CHANNEL.ZOrder" xml:space="preserve">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name="myLabel3.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>6, 69</value>
|
||||||
|
</data>
|
||||||
|
<data name="myLabel3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>60, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name="myLabel3.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>8</value>
|
||||||
|
</data>
|
||||||
|
<data name="myLabel3.Text" xml:space="preserve">
|
||||||
|
<value>Radius</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>myLabel3.Name" xml:space="preserve">
|
||||||
|
<value>myLabel3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>myLabel3.Type" xml:space="preserve">
|
||||||
|
<value>ArdupilotMega.Controls.MyLabel, ArdupilotMegaPlanner10, Version=1.1.4579.36338, Culture=neutral, PublicKeyToken=null</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>myLabel3.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>myLabel3.ZOrder" xml:space="preserve">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_FNC_RAD.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>73, 70</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_FNC_RAD.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>83, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_FNC_RAD.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>9</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_FNC_RAD.Name" xml:space="preserve">
|
||||||
|
<value>LIM_FNC_RAD</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_FNC_RAD.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_FNC_RAD.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_FNC_RAD.ZOrder" xml:space="preserve">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_FNC_SMPL.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_FNC_SMPL.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_FNC_SMPL.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>63, 19</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_FNC_SMPL.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>40, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_FNC_SMPL.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>7</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_FNC_SMPL.Text" xml:space="preserve">
|
||||||
|
<value>On</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_FNC_SMPL.Name" xml:space="preserve">
|
||||||
|
<value>LIM_FNC_SMPL</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_FNC_SMPL.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_FNC_SMPL.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_FNC_SMPL.ZOrder" xml:space="preserve">
|
||||||
|
<value>5</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox4.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>215, 19</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox4.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>167, 129</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox4.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>9</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox4.Text" xml:space="preserve">
|
||||||
|
<value>Simple Fence</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox4.Name" xml:space="preserve">
|
||||||
|
<value>groupBox4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox4.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox4.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox4.ZOrder" xml:space="preserve">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_GPSLCK_ON.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_GPSLCK_ON.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_GPSLCK_ON.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>62, 19</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_GPSLCK_ON.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>40, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_GPSLCK_ON.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>7</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_GPSLCK_ON.Text" xml:space="preserve">
|
||||||
|
<value>On</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_GPSLCK_ON.Name" xml:space="preserve">
|
||||||
|
<value>LIM_GPSLCK_ON</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_GPSLCK_ON.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_GPSLCK_ON.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_GPSLCK_ON.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox3.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>300, 154</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>167, 104</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox3.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>8</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox3.Text" xml:space="preserve">
|
||||||
|
<value>GPS Lock Limits</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox3.Name" xml:space="preserve">
|
||||||
|
<value>groupBox3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox3.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox3.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox3.ZOrder" xml:space="preserve">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_ALT_ON.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_ALT_ON.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>69, 19</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_ALT_ON.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>40, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_ALT_ON.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>7</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_ALT_ON.Text" xml:space="preserve">
|
||||||
|
<value>On</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_ALT_ON.Name" xml:space="preserve">
|
||||||
|
<value>LIM_ALT_ON</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_ALT_ON.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_ALT_ON.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_ALT_ON.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="myLabel1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>5, 43</value>
|
||||||
|
</data>
|
||||||
|
<data name="myLabel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>60, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name="myLabel1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="myLabel1.Text" xml:space="preserve">
|
||||||
|
<value>Min Alt</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>myLabel1.Name" xml:space="preserve">
|
||||||
|
<value>myLabel1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>myLabel1.Type" xml:space="preserve">
|
||||||
|
<value>ArdupilotMega.Controls.MyLabel, ArdupilotMegaPlanner10, Version=1.1.4579.36338, Culture=neutral, PublicKeyToken=null</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>myLabel1.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>myLabel1.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_ALT_MAX.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>72, 69</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_ALT_MAX.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>83, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_ALT_MAX.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>5</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_ALT_MAX.Name" xml:space="preserve">
|
||||||
|
<value>LIM_ALT_MAX</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_ALT_MAX.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_ALT_MAX.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_ALT_MAX.ZOrder" xml:space="preserve">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name="myLabel2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>5, 69</value>
|
||||||
|
</data>
|
||||||
|
<data name="myLabel2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>60, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name="myLabel2.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name="myLabel2.Text" xml:space="preserve">
|
||||||
|
<value>Max Alt</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>myLabel2.Name" xml:space="preserve">
|
||||||
|
<value>myLabel2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>myLabel2.Type" xml:space="preserve">
|
||||||
|
<value>ArdupilotMega.Controls.MyLabel, ArdupilotMegaPlanner10, Version=1.1.4579.36338, Culture=neutral, PublicKeyToken=null</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>myLabel2.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>myLabel2.ZOrder" xml:space="preserve">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_ALT_MIN.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>72, 44</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_ALT_MIN.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>83, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="LIM_ALT_MIN.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_ALT_MIN.Name" xml:space="preserve">
|
||||||
|
<value>LIM_ALT_MIN</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_ALT_MIN.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_ALT_MIN.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>LIM_ALT_MIN.ZOrder" xml:space="preserve">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 154</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>167, 104</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox2.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>6</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox2.Text" xml:space="preserve">
|
||||||
|
<value>Alt Limits</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox2.Name" xml:space="preserve">
|
||||||
|
<value>groupBox2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox2.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox2.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox2.ZOrder" xml:space="preserve">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Enabled" type="System.Boolean, mscorlib">
|
||||||
|
<value>False</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>4, 32</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>614, 354</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>80</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Name" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||||
|
<value>6, 13</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>621, 389</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
|
<value>ConfigAP_Limits</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Type" xml:space="preserve">
|
||||||
|
<value>ArdupilotMega.Controls.BackstageView.BackStageViewContentPanel, ArdupilotMegaPlanner10, Version=1.1.4579.36338, Culture=neutral, PublicKeyToken=null</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -1,29 +0,0 @@
|
||||||
handle SIGXCPU SIG33 SIG35 SIGPWR nostop noprint
|
|
||||||
|
|
||||||
define mono_backtrace
|
|
||||||
select-frame 0
|
|
||||||
set $i = 0
|
|
||||||
while ($i < $arg0)
|
|
||||||
set $foo = (char*) mono_pmip ($pc)
|
|
||||||
if ($foo)
|
|
||||||
printf "#%d %p in %s\n", $i, $pc, $foo
|
|
||||||
else
|
|
||||||
frame
|
|
||||||
end
|
|
||||||
up-silently
|
|
||||||
set $i = $i + 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
define mono_stack
|
|
||||||
set $mono_thread = mono_thread_current ()
|
|
||||||
if ($mono_thread == 0x00)
|
|
||||||
printf "No mono thread associated with this thread\n"
|
|
||||||
else
|
|
||||||
set $ucp = malloc (sizeof (ucontext_t))
|
|
||||||
call (void) getcontext ($ucp)
|
|
||||||
call (void) mono_print_thread_dump ($ucp)
|
|
||||||
call (void) free ($ucp)
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,4 +0,0 @@
|
||||||
*.pdb
|
|
||||||
*.etag
|
|
||||||
*.new
|
|
||||||
*.log
|
|
|
@ -1,351 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8" ?>
|
|
||||||
<AC>
|
|
||||||
<Item>
|
|
||||||
<HEAD>Stabilization:</HEAD>
|
|
||||||
<SUBHEAD>Angular Rate Control:</SUBHEAD>
|
|
||||||
<DESC>How much throttle is applied to rotate the copter at the desired speed.
|
|
||||||
|
|
||||||
Adjust P by motor size
|
|
||||||
Small: P = 0.145
|
|
||||||
Med: P = 0.110
|
|
||||||
Large: P = 0.090</DESC>
|
|
||||||
<FIELDS>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>P</NAME>
|
|
||||||
<PARAMNAME>RATE_RLL_P</PARAMNAME>
|
|
||||||
<PARAMNAME>RATE_PIT_P</PARAMNAME>
|
|
||||||
<RANGEMIN>0.001</RANGEMIN>
|
|
||||||
<RANGEMAX>5</RANGEMAX>
|
|
||||||
<STEP>0.001</STEP>
|
|
||||||
</FIELD>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>I</NAME>
|
|
||||||
<PARAMNAME>RATE_RLL_I</PARAMNAME>
|
|
||||||
<PARAMNAME>RATE_PIT_I</PARAMNAME>
|
|
||||||
<RANGEMIN>0</RANGEMIN>
|
|
||||||
<RANGEMAX>5</RANGEMAX>
|
|
||||||
<STEP>0.001</STEP>
|
|
||||||
</FIELD>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>D</NAME>
|
|
||||||
<PARAMNAME>RATE_RLL_D</PARAMNAME>
|
|
||||||
<PARAMNAME>RATE_PIT_D</PARAMNAME>
|
|
||||||
<RANGEMIN>0</RANGEMIN>
|
|
||||||
<RANGEMAX>5</RANGEMAX>
|
|
||||||
<STEP>0.001</STEP>
|
|
||||||
</FIELD>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>IMAX</NAME>
|
|
||||||
<PARAMNAME>RATE_RLL_IMAX</PARAMNAME>
|
|
||||||
<PARAMNAME>RATE_PIT_IMAX</PARAMNAME>
|
|
||||||
<RANGEMIN>0</RANGEMIN>
|
|
||||||
<RANGEMAX>40</RANGEMAX>
|
|
||||||
<STEP>0.1</STEP>
|
|
||||||
</FIELD>
|
|
||||||
</FIELDS>
|
|
||||||
<SUBHEAD>Dampening:</SUBHEAD>
|
|
||||||
<DESC>Resistance to angular acceleration
|
|
||||||
|
|
||||||
A dynamic gain is applied so that the dampening only occurs at 100% when the control sticks are centered.
|
|
||||||
|
|
||||||
When the sticks are fully deflected:
|
|
||||||
1.0 = 0%
|
|
||||||
0.5 = 50%
|
|
||||||
0.0 = 100%</DESC>
|
|
||||||
<FIELDS>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>Dampen</NAME>
|
|
||||||
<PARAMNAME>STAB_D</PARAMNAME>
|
|
||||||
<RANGEMIN>0</RANGEMIN>
|
|
||||||
<RANGEMAX>5</RANGEMAX>
|
|
||||||
<STEP>0.001</STEP>
|
|
||||||
</FIELD>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>Dynamic</NAME>
|
|
||||||
<PARAMNAME>STAB_D_S</PARAMNAME>
|
|
||||||
<RANGEMIN>0</RANGEMIN>
|
|
||||||
<RANGEMAX>1</RANGEMAX>
|
|
||||||
<STEP>0.001</STEP>
|
|
||||||
</FIELD>
|
|
||||||
</FIELDS>
|
|
||||||
|
|
||||||
<SUBHEAD>Stabilize Control:</SUBHEAD>
|
|
||||||
<DESC>
|
|
||||||
How fast the copter reacts to user or autopilot input.
|
|
||||||
Higher = more aggressive control.
|
|
||||||
Too high = slow wobbles
|
|
||||||
</DESC>
|
|
||||||
<FIELDS>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>P</NAME>
|
|
||||||
<PARAMNAME>STB_RLL_P</PARAMNAME>
|
|
||||||
<PARAMNAME>STB_PIT_P</PARAMNAME>
|
|
||||||
<RANGEMIN>0.001</RANGEMIN>
|
|
||||||
<RANGEMAX>5</RANGEMAX>
|
|
||||||
<STEP>0.001</STEP>
|
|
||||||
</FIELD>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>I</NAME>
|
|
||||||
<PARAMNAME>STB_RLL_I</PARAMNAME>
|
|
||||||
<PARAMNAME>STB_PIT_I</PARAMNAME>
|
|
||||||
<RANGEMIN>0</RANGEMIN>
|
|
||||||
<RANGEMAX>5</RANGEMAX>
|
|
||||||
<STEP>0.001</STEP>
|
|
||||||
</FIELD>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>IMAX</NAME>
|
|
||||||
<PARAMNAME>STB_RLL_IMAX</PARAMNAME>
|
|
||||||
<PARAMNAME>STB_PIT_IMAX</PARAMNAME>
|
|
||||||
<RANGEMIN>0</RANGEMIN>
|
|
||||||
<RANGEMAX>50</RANGEMAX>
|
|
||||||
<STEP>0.001</STEP>
|
|
||||||
</FIELD>
|
|
||||||
</FIELDS>
|
|
||||||
|
|
||||||
<SUBHEAD>Yaw Angular Rate Control:</SUBHEAD>
|
|
||||||
<DESC>How much throttle is applied to rotate the copter at the desired speed.
|
|
||||||
</DESC>
|
|
||||||
<FIELDS>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>P</NAME>
|
|
||||||
<PARAMNAME>RATE_YAW_P</PARAMNAME>
|
|
||||||
<RANGEMIN>0.001</RANGEMIN>
|
|
||||||
<RANGEMAX>5</RANGEMAX>
|
|
||||||
<STEP>0.001</STEP>
|
|
||||||
</FIELD>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>I</NAME>
|
|
||||||
<PARAMNAME>RATE_YAW_I</PARAMNAME>
|
|
||||||
<RANGEMIN>0</RANGEMIN>
|
|
||||||
<RANGEMAX>5</RANGEMAX>
|
|
||||||
<STEP>0.001</STEP>
|
|
||||||
</FIELD>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>D</NAME>
|
|
||||||
<PARAMNAME>RATE_YAW_D</PARAMNAME>
|
|
||||||
<RANGEMIN>0</RANGEMIN>
|
|
||||||
<RANGEMAX>5</RANGEMAX>
|
|
||||||
<STEP>0.001</STEP>
|
|
||||||
</FIELD>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>IMAX</NAME>
|
|
||||||
<PARAMNAME>RATE_YAW_IMAX</PARAMNAME>
|
|
||||||
<RANGEMIN>0</RANGEMIN>
|
|
||||||
<RANGEMAX>50</RANGEMAX>
|
|
||||||
<STEP>1</STEP>
|
|
||||||
</FIELD>
|
|
||||||
</FIELDS>
|
|
||||||
|
|
||||||
<SUBHEAD>Yaw Stabilize Control:</SUBHEAD>
|
|
||||||
<DESC>
|
|
||||||
How fast the copter reacts to user or autopilot input.
|
|
||||||
Higher = more aggressive control.
|
|
||||||
Too high = slow wobbles
|
|
||||||
</DESC>
|
|
||||||
<FIELDS>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>P</NAME>
|
|
||||||
<PARAMNAME>STB_YAW_P</PARAMNAME>
|
|
||||||
<RANGEMIN>0.001</RANGEMIN>
|
|
||||||
<RANGEMAX>10</RANGEMAX>
|
|
||||||
<STEP>0.001</STEP>
|
|
||||||
</FIELD>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>I</NAME>
|
|
||||||
<PARAMNAME>STB_YAW_I</PARAMNAME>
|
|
||||||
<RANGEMIN>0</RANGEMIN>
|
|
||||||
<RANGEMAX>5</RANGEMAX>
|
|
||||||
<STEP>0.001</STEP>
|
|
||||||
</FIELD>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>IMAX</NAME>
|
|
||||||
<PARAMNAME>STB_YAW_IMAX</PARAMNAME>
|
|
||||||
<RANGEMIN>0</RANGEMIN>
|
|
||||||
<RANGEMAX>50</RANGEMAX>
|
|
||||||
<STEP>1</STEP>
|
|
||||||
</FIELD>
|
|
||||||
</FIELDS>
|
|
||||||
</Item>
|
|
||||||
<!-- Loiter -->
|
|
||||||
<Item>
|
|
||||||
<HEAD>Loiter:</HEAD>
|
|
||||||
<SUBHEAD>Angular Rate Control:</SUBHEAD>
|
|
||||||
<DESC>
|
|
||||||
How much angle is applied to make the copter accelerate to the desired speed.
|
|
||||||
</DESC>
|
|
||||||
<FIELDS>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>P</NAME>
|
|
||||||
<PARAMNAME>LOITER_LAT_P</PARAMNAME>
|
|
||||||
<PARAMNAME>LOITER_LON_P</PARAMNAME>
|
|
||||||
<RANGEMIN>0.001</RANGEMIN>
|
|
||||||
<RANGEMAX>5</RANGEMAX>
|
|
||||||
<STEP>0.001</STEP>
|
|
||||||
</FIELD>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>I</NAME>
|
|
||||||
<PARAMNAME>LOITER_LAT_I</PARAMNAME>
|
|
||||||
<PARAMNAME>LOITER_LON_I</PARAMNAME>
|
|
||||||
<RANGEMIN>0</RANGEMIN>
|
|
||||||
<RANGEMAX>5</RANGEMAX>
|
|
||||||
<STEP>0.001</STEP>
|
|
||||||
</FIELD>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>D</NAME>
|
|
||||||
<PARAMNAME>LOITER_LAT_D</PARAMNAME>
|
|
||||||
<PARAMNAME>LOITER_LON_D</PARAMNAME>
|
|
||||||
<RANGEMIN>0</RANGEMIN>
|
|
||||||
<RANGEMAX>5</RANGEMAX>
|
|
||||||
<STEP>0.001</STEP>
|
|
||||||
</FIELD>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>IMAX</NAME>
|
|
||||||
<PARAMNAME>LOITER_LAT_IMAX</PARAMNAME>
|
|
||||||
<PARAMNAME>LOITER_LON_IMAX</PARAMNAME>
|
|
||||||
<RANGEMIN>0</RANGEMIN>
|
|
||||||
<RANGEMAX>50</RANGEMAX>
|
|
||||||
<STEP>1</STEP>
|
|
||||||
</FIELD>
|
|
||||||
</FIELDS>
|
|
||||||
<SUBHEAD>Loiter Speed:</SUBHEAD>
|
|
||||||
<DESC>
|
|
||||||
How fast the copter should move towards the target. A larger value means a faster return to center, but can cause the copter to oscillate around the target.
|
|
||||||
|
|
||||||
A distance error of 100cm * P of .25 = 25 cm/s
|
|
||||||
</DESC>
|
|
||||||
<FIELDS>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>P</NAME>
|
|
||||||
<PARAMNAME>HLD_LAT_P</PARAMNAME>
|
|
||||||
<PARAMNAME>HLD_LON_P</PARAMNAME>
|
|
||||||
<RANGEMIN>0.001</RANGEMIN>
|
|
||||||
<RANGEMAX>5</RANGEMAX>
|
|
||||||
<STEP>0.001</STEP>
|
|
||||||
</FIELD>
|
|
||||||
</FIELDS>
|
|
||||||
</Item>
|
|
||||||
<!-- WP Nav -->
|
|
||||||
<Item>
|
|
||||||
<HEAD>WP Navigation:</HEAD>
|
|
||||||
<SUBHEAD>Nav Rate Control:</SUBHEAD>
|
|
||||||
<DESC>
|
|
||||||
How much angle is applied to make the copter accelerate to the desired speed.
|
|
||||||
</DESC>
|
|
||||||
<FIELDS>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>P</NAME>
|
|
||||||
<PARAMNAME>NAV_LAT_P</PARAMNAME>
|
|
||||||
<PARAMNAME>NAV_LON_P</PARAMNAME>
|
|
||||||
<RANGEMIN>0.001</RANGEMIN>
|
|
||||||
<RANGEMAX>5</RANGEMAX>
|
|
||||||
<STEP>0.001</STEP>
|
|
||||||
</FIELD>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>I</NAME>
|
|
||||||
<PARAMNAME>NAV_LAT_I</PARAMNAME>
|
|
||||||
<PARAMNAME>NAV_LON_I</PARAMNAME>
|
|
||||||
<RANGEMIN>0</RANGEMIN>
|
|
||||||
<RANGEMAX>5</RANGEMAX>
|
|
||||||
<STEP>0.001</STEP>
|
|
||||||
</FIELD>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>D</NAME>
|
|
||||||
<PARAMNAME>NAV_LAT_D</PARAMNAME>
|
|
||||||
<PARAMNAME>NAV_LON_D</PARAMNAME>
|
|
||||||
<RANGEMIN>0</RANGEMIN>
|
|
||||||
<RANGEMAX>5</RANGEMAX>
|
|
||||||
<STEP>0.001</STEP>
|
|
||||||
</FIELD>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>IMAX</NAME>
|
|
||||||
<PARAMNAME>NAV_LAT_IMAX</PARAMNAME>
|
|
||||||
<PARAMNAME>NAV_LON_IMAX</PARAMNAME>
|
|
||||||
<RANGEMIN>0</RANGEMIN>
|
|
||||||
<RANGEMAX>50</RANGEMAX>
|
|
||||||
<STEP>0.1</STEP>
|
|
||||||
</FIELD>
|
|
||||||
</FIELDS>
|
|
||||||
<SUBHEAD>WP Speed:</SUBHEAD>
|
|
||||||
<DESC>
|
|
||||||
How fast the copter should move towards the target. A larger value means a faster return to center, but can cause the copter to oscillate around the target.
|
|
||||||
|
|
||||||
in m/s
|
|
||||||
</DESC>
|
|
||||||
<FIELDS>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>Speed</NAME>
|
|
||||||
<PARAMNAME>WP_SPEED_MAX</PARAMNAME>
|
|
||||||
<RANGEMIN>1</RANGEMIN>
|
|
||||||
<RANGEMAX>30</RANGEMAX>
|
|
||||||
<STEP>1</STEP>
|
|
||||||
</FIELD>
|
|
||||||
</FIELDS>
|
|
||||||
</Item>
|
|
||||||
<!-- Alt Hold -->
|
|
||||||
<Item>
|
|
||||||
<HEAD>Altitude Hold:</HEAD>
|
|
||||||
<SUBHEAD>Altitude Error:</SUBHEAD>
|
|
||||||
<DESC>
|
|
||||||
How fast the copter should go to reach the correct altitude.
|
|
||||||
</DESC>
|
|
||||||
<FIELDS>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>P</NAME>
|
|
||||||
<PARAMNAME>THR_ALT_P</PARAMNAME>
|
|
||||||
<RANGEMIN>0.001</RANGEMIN>
|
|
||||||
<RANGEMAX>5</RANGEMAX>
|
|
||||||
<STEP>0.001</STEP>
|
|
||||||
</FIELD>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>I</NAME>
|
|
||||||
<PARAMNAME>THR_ALT_I</PARAMNAME>
|
|
||||||
<RANGEMIN>0</RANGEMIN>
|
|
||||||
<RANGEMAX>5</RANGEMAX>
|
|
||||||
<STEP>0.001</STEP>
|
|
||||||
</FIELD>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>IMAX</NAME>
|
|
||||||
<PARAMNAME>THR_ALT_IMAX</PARAMNAME>
|
|
||||||
<RANGEMIN>0</RANGEMIN>
|
|
||||||
<RANGEMAX>50</RANGEMAX>
|
|
||||||
<STEP>0.1</STEP>
|
|
||||||
</FIELD>
|
|
||||||
</FIELDS>
|
|
||||||
<SUBHEAD>Thrust Rate:</SUBHEAD>
|
|
||||||
<DESC>
|
|
||||||
How much thrust to give us the desired rate.
|
|
||||||
|
|
||||||
This will change depending on the weight and thrust of your copter.
|
|
||||||
</DESC>
|
|
||||||
<FIELDS>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>P</NAME>
|
|
||||||
<PARAMNAME>THR_RATE_P</PARAMNAME>
|
|
||||||
<RANGEMIN>0.001</RANGEMIN>
|
|
||||||
<RANGEMAX>5</RANGEMAX>
|
|
||||||
<STEP>0.001</STEP>
|
|
||||||
</FIELD>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>I</NAME>
|
|
||||||
<PARAMNAME>THR_RATE_I</PARAMNAME>
|
|
||||||
<RANGEMIN>0</RANGEMIN>
|
|
||||||
<RANGEMAX>5</RANGEMAX>
|
|
||||||
<STEP>0.001</STEP>
|
|
||||||
</FIELD>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>D</NAME>
|
|
||||||
<PARAMNAME>THR_RATE_D</PARAMNAME>
|
|
||||||
<RANGEMIN>0</RANGEMIN>
|
|
||||||
<RANGEMAX>5</RANGEMAX>
|
|
||||||
<STEP>0.001</STEP>
|
|
||||||
</FIELD>
|
|
||||||
<FIELD>
|
|
||||||
<NAME>IMAX</NAME>
|
|
||||||
<PARAMNAME>THR_RATE_IMAX</PARAMNAME>
|
|
||||||
<RANGEMIN>0</RANGEMIN>
|
|
||||||
<RANGEMAX>50</RANGEMAX>
|
|
||||||
<STEP>0.1</STEP>
|
|
||||||
</FIELD>
|
|
||||||
</FIELDS>
|
|
||||||
</Item>
|
|
||||||
</AC>
|
|
|
@ -1,3 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<configuration>
|
|
||||||
<startup><supportedRuntime version="v2.0.50727"/></startup></configuration>
|
|
|
@ -1,38 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<configuration>
|
|
||||||
<configSections>
|
|
||||||
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
|
|
||||||
</configSections>
|
|
||||||
<startup useLegacyV2RuntimeActivationPolicy="true">
|
|
||||||
<supportedRuntime version="v2.0.50727"/></startup>
|
|
||||||
<appSettings>
|
|
||||||
<add key="UpdateLocation"
|
|
||||||
value="http://meee146-planner.googlecode.com/git/Tools/ArdupilotMegaPlanner/bin/Release/"/>
|
|
||||||
<add key="ParameterLocations"
|
|
||||||
value="http://ardupilot-mega.googlecode.com/git/ArduCopter/Parameters.pde;http://ardupilot-mega.googlecode.com/git/ArduPlane/Parameters.pde"/>
|
|
||||||
<add key="ParameterMetaDataXMLFileName"
|
|
||||||
value="ParameterMetaData.xml"/>
|
|
||||||
</appSettings>
|
|
||||||
<log4net>
|
|
||||||
<appender name="Console" type="log4net.Appender.ConsoleAppender">
|
|
||||||
<layout type="log4net.Layout.PatternLayout">
|
|
||||||
<conversionPattern value="%level %logger - %message%newline" />
|
|
||||||
</layout>
|
|
||||||
<threshold value="INFO"/>
|
|
||||||
</appender>
|
|
||||||
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
|
|
||||||
<file value="ArdupilotPlanner.log" />
|
|
||||||
<appendToFile value="true" />
|
|
||||||
<maximumFileSize value="500KB" />
|
|
||||||
<maxSizeRollBackups value="2" />
|
|
||||||
<layout type="log4net.Layout.PatternLayout">
|
|
||||||
<conversionPattern value="%date %5level %logger - %message (%file:%line) [%thread]%newline" />
|
|
||||||
</layout>
|
|
||||||
</appender>
|
|
||||||
<root>
|
|
||||||
<level value="DEBUG" />
|
|
||||||
<appender-ref ref="RollingFile" />
|
|
||||||
<appender-ref ref="Console" />
|
|
||||||
</root>
|
|
||||||
</log4net>
|
|
||||||
</configuration>
|
|
Binary file not shown.
|
@ -1,106 +0,0 @@
|
||||||
;************************************************************
|
|
||||||
; Windows USB CDC ACM Setup File
|
|
||||||
; Copyright (c) 2000 Microsoft Corporation
|
|
||||||
|
|
||||||
|
|
||||||
[Version]
|
|
||||||
Signature="$Windows NT$"
|
|
||||||
Class=Ports
|
|
||||||
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
|
|
||||||
Provider=%MFGNAME%
|
|
||||||
LayoutFile=layout.inf
|
|
||||||
CatalogFile=%MFGFILENAME%.cat
|
|
||||||
DriverVer=11/15/2007,5.1.2600.0
|
|
||||||
|
|
||||||
[Manufacturer]
|
|
||||||
%MFGNAME%=DeviceList, NTamd64
|
|
||||||
|
|
||||||
[DestinationDirs]
|
|
||||||
DefaultDestDir=12
|
|
||||||
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------
|
|
||||||
; Windows 2000/XP/Vista-32bit Sections
|
|
||||||
;------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
[DriverInstall.nt]
|
|
||||||
include=mdmcpq.inf
|
|
||||||
CopyFiles=DriverCopyFiles.nt
|
|
||||||
AddReg=DriverInstall.nt.AddReg
|
|
||||||
|
|
||||||
[DriverCopyFiles.nt]
|
|
||||||
usbser.sys,,,0x20
|
|
||||||
|
|
||||||
[DriverInstall.nt.AddReg]
|
|
||||||
HKR,,DevLoader,,*ntkern
|
|
||||||
HKR,,NTMPDriver,,%DRIVERFILENAME%.sys
|
|
||||||
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
|
|
||||||
|
|
||||||
[DriverInstall.nt.Services]
|
|
||||||
AddService=usbser, 0x00000002, DriverService.nt
|
|
||||||
|
|
||||||
[DriverService.nt]
|
|
||||||
DisplayName=%SERVICE%
|
|
||||||
ServiceType=1
|
|
||||||
StartType=3
|
|
||||||
ErrorControl=1
|
|
||||||
ServiceBinary=%12%\%DRIVERFILENAME%.sys
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------
|
|
||||||
; Vista-64bit Sections
|
|
||||||
;------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
[DriverInstall.NTamd64]
|
|
||||||
include=mdmcpq.inf
|
|
||||||
CopyFiles=DriverCopyFiles.NTamd64
|
|
||||||
AddReg=DriverInstall.NTamd64.AddReg
|
|
||||||
|
|
||||||
[DriverCopyFiles.NTamd64]
|
|
||||||
%DRIVERFILENAME%.sys,,,0x20
|
|
||||||
|
|
||||||
[DriverInstall.NTamd64.AddReg]
|
|
||||||
HKR,,DevLoader,,*ntkern
|
|
||||||
HKR,,NTMPDriver,,%DRIVERFILENAME%.sys
|
|
||||||
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
|
|
||||||
|
|
||||||
[DriverInstall.NTamd64.Services]
|
|
||||||
AddService=usbser, 0x00000002, DriverService.NTamd64
|
|
||||||
|
|
||||||
[DriverService.NTamd64]
|
|
||||||
DisplayName=%SERVICE%
|
|
||||||
ServiceType=1
|
|
||||||
StartType=3
|
|
||||||
ErrorControl=1
|
|
||||||
ServiceBinary=%12%\%DRIVERFILENAME%.sys
|
|
||||||
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------
|
|
||||||
; Vendor and Product ID Definitions
|
|
||||||
;------------------------------------------------------------------------------
|
|
||||||
; When developing your USB device, the VID and PID used in the PC side
|
|
||||||
; application program and the firmware on the microcontroller must match.
|
|
||||||
; Modify the below line to use your VID and PID. Use the format as shown below.
|
|
||||||
; Note: One INF file can be used for multiple devices with different VID and PIDs.
|
|
||||||
; For each supported device, append ",USB\VID_xxxx&PID_yyyy" to the end of the line.
|
|
||||||
;------------------------------------------------------------------------------
|
|
||||||
[SourceDisksFiles]
|
|
||||||
[SourceDisksNames]
|
|
||||||
[DeviceList]
|
|
||||||
%DESCRIPTION%=DriverInstall, USB\VID_2341&PID_0010
|
|
||||||
|
|
||||||
[DeviceList.NTamd64]
|
|
||||||
%DESCRIPTION%=DriverInstall, USB\VID_2341&PID_0010
|
|
||||||
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------
|
|
||||||
; String Definitions
|
|
||||||
;------------------------------------------------------------------------------
|
|
||||||
;Modify these strings to customize your device
|
|
||||||
;------------------------------------------------------------------------------
|
|
||||||
[Strings]
|
|
||||||
MFGFILENAME="CDC_vista"
|
|
||||||
DRIVERFILENAME ="usbser"
|
|
||||||
MFGNAME="Arduino LLC (www.arduino.cc)"
|
|
||||||
INSTDISK="Arduino Mega 2560 Driver Installer"
|
|
||||||
DESCRIPTION="Arduino Mega 2560"
|
|
||||||
SERVICE="USB RS-232 Emulation Driver"
|
|
|
@ -1,119 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
|
|
||||||
<PropertyList>
|
|
||||||
|
|
||||||
<generic>
|
|
||||||
|
|
||||||
<!-- template
|
|
||||||
<chunk>
|
|
||||||
<name></name>
|
|
||||||
<type>double</type>
|
|
||||||
<node></node>
|
|
||||||
</chunk>
|
|
||||||
-->
|
|
||||||
|
|
||||||
<input>
|
|
||||||
<binary_mode>true</binary_mode>
|
|
||||||
|
|
||||||
<!-- ##### Flight Controls -->
|
|
||||||
<chunk>
|
|
||||||
<name>aileron</name>
|
|
||||||
<type>double</type>
|
|
||||||
<node>/controls/flight/aileron</node>
|
|
||||||
</chunk>
|
|
||||||
<chunk>
|
|
||||||
<name>elevator</name>
|
|
||||||
<type>double</type>
|
|
||||||
<node>/controls/flight/elevator</node>
|
|
||||||
</chunk>
|
|
||||||
<chunk>
|
|
||||||
<name>rudder</name>
|
|
||||||
<type>double</type>
|
|
||||||
<node>/controls/flight/rudder</node>
|
|
||||||
</chunk>
|
|
||||||
<chunk>
|
|
||||||
<name>throttle</name>
|
|
||||||
<type>double</type>
|
|
||||||
<node>/controls/engines/engine[0]/throttle</node>
|
|
||||||
</chunk>
|
|
||||||
|
|
||||||
</input>
|
|
||||||
|
|
||||||
<output>
|
|
||||||
<binary_mode>true</binary_mode>
|
|
||||||
<binary_footer>magic,0x4c56414d</binary_footer>
|
|
||||||
|
|
||||||
<!-- ##### GPS ##### -->
|
|
||||||
<chunk>
|
|
||||||
<name>latitude</name>
|
|
||||||
<type>double</type>
|
|
||||||
<node>/position/latitude-deg</node>
|
|
||||||
</chunk>
|
|
||||||
<chunk>
|
|
||||||
<name>longitude</name>
|
|
||||||
<type>double</type>
|
|
||||||
<node>/position/longitude-deg</node>
|
|
||||||
</chunk>
|
|
||||||
<chunk>
|
|
||||||
<name>altitude</name>
|
|
||||||
<type>double</type>
|
|
||||||
<node>/position/altitude-ft</node>
|
|
||||||
</chunk>
|
|
||||||
<chunk>
|
|
||||||
<name>heading</name>
|
|
||||||
<type>double</type>
|
|
||||||
<node>/orientation/heading-deg</node>
|
|
||||||
</chunk>
|
|
||||||
|
|
||||||
<!-- ground course = atan(ve/vn), speed = sqrt((ve*ve) + (vn*vn)) -->
|
|
||||||
<chunk>
|
|
||||||
<name>speed - north</name>
|
|
||||||
<type>double</type>
|
|
||||||
<node>/velocities/speed-north-fps</node>
|
|
||||||
</chunk>
|
|
||||||
<chunk>
|
|
||||||
<name>speed - east</name>
|
|
||||||
<type>double</type>
|
|
||||||
<node>/velocities/speed-east-fps</node>
|
|
||||||
</chunk>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### IMU ##### -->
|
|
||||||
<chunk>
|
|
||||||
<name>x-accel</name>
|
|
||||||
<type>double</type>
|
|
||||||
<node>/accelerations/pilot/x-accel-fps_sec</node>
|
|
||||||
</chunk>
|
|
||||||
<chunk>
|
|
||||||
<name>y-accel</name>
|
|
||||||
<type>double</type>
|
|
||||||
<node>/accelerations/pilot/y-accel-fps_sec</node>
|
|
||||||
</chunk>
|
|
||||||
<chunk>
|
|
||||||
<name>z-accel</name>
|
|
||||||
<type>double</type>
|
|
||||||
<node>/accelerations/pilot/z-accel-fps_sec</node>
|
|
||||||
</chunk>
|
|
||||||
|
|
||||||
<chunk>
|
|
||||||
<name>roll-rate</name>
|
|
||||||
<type>double</type>
|
|
||||||
<node>/orientation/roll-rate-degps</node>
|
|
||||||
</chunk>
|
|
||||||
<chunk>
|
|
||||||
<name>pitch-rate</name>
|
|
||||||
<type>double</type>
|
|
||||||
<node>/orientation/pitch-rate-degps</node>
|
|
||||||
</chunk>
|
|
||||||
<chunk>
|
|
||||||
<name>yaw-rate</name>
|
|
||||||
<type>double</type>
|
|
||||||
<node>/orientation/yaw-rate-degps</node>
|
|
||||||
</chunk>
|
|
||||||
|
|
||||||
|
|
||||||
</output>
|
|
||||||
|
|
||||||
</generic>
|
|
||||||
|
|
||||||
</PropertyList>
|
|
|
@ -1,12 +0,0 @@
|
||||||
<configuration>
|
|
||||||
<dllmap os="linux" dll="opengl32.dll" target="libGL.so.1"/>
|
|
||||||
<dllmap os="linux" dll="glu32.dll" target="libGLU.so.1"/>
|
|
||||||
<dllmap os="linux" dll="openal32.dll" target="libopenal.so.1"/>
|
|
||||||
<dllmap os="linux" dll="alut.dll" target="libalut.so.0"/>
|
|
||||||
<dllmap os="linux" dll="opencl.dll" target="libOpenCL.so"/>
|
|
||||||
<dllmap os="osx" dll="openal32.dll" target="/System/Library/Frameworks/OpenAL.framework/OpenAL" />
|
|
||||||
<dllmap os="osx" dll="alut.dll" target="/System/Library/Frameworks/OpenAL.framework/OpenAL" />
|
|
||||||
<dllmap os="osx" dll="libGLES.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
|
|
||||||
<dllmap os="osx" dll="libGLESv2.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
|
|
||||||
<dllmap os="osx" dll="opencl.dll" target="/System/Library/Frameworks/OpenCL.framework/OpenCL"/>
|
|
||||||
</configuration>
|
|
|
@ -1,19 +0,0 @@
|
||||||
WAYPOINT;WAYPOINT;Delay;Alt;Lat;Long
|
|
||||||
LOITER_UNLIM;LOITER_UNLIM;N/A;Alt;Lat;Long
|
|
||||||
LOITER_TURNS;LOITER_TURNS;Turns;Alt;Lat;Long
|
|
||||||
LOITER_TIME;LOITER_TIME;Time s*10;Alt;Lat;Long
|
|
||||||
RETURN_TO_LAUNCH;RETURN_TO_LAUNCH;N/A;Alt;Lat;Long
|
|
||||||
LAND;LAND;N/A;Alt;Lat;Long
|
|
||||||
TAKEOFF;TAKEOFF;Angle;Alt;N/A;N/A
|
|
||||||
CONDITION_DELAY;CONDITION_DELAY;N/A;N/A;Time (sec);N/A
|
|
||||||
CONDITION_CHANGE_ALT;CONDITION_CHANGE_ALT;N/A;Alt;Rate (cm/sec);N/A
|
|
||||||
CONDITION_DISTANCE;CONDITION_DISTANCE;N/A;N/A;Dist (m);N/A
|
|
||||||
CONDITION_YAW;CONDITION_YAW;Angle;Speed(deg/sec);Direction (1/-1);Relateiv(1)/Absolute(0)
|
|
||||||
DO_JUMP;DO_JUMP;WP #;N/A;Repeat Count;N/A
|
|
||||||
DO_CHANGE_SPEED;DO_CHANGE_SPEED;Type (0=as 1=gs);Speed (m/s);Throttle(%);N/A
|
|
||||||
DO_SET_HOME;DO_SET_HOME;Current(1)/Spec(0);Alt (m);Lat;Long
|
|
||||||
DO_SET_PARAMETER;DO_SET_PARAMETER;Param Number;Param Value;N/A;N/A
|
|
||||||
DO_REPEAT_RELAY;DO_REPEAT_RELAY;N/A;Repeat#;Delay (sec);N/A
|
|
||||||
DO_SET_RELAY;DO_SET_RELAY;Off(0)/On(1);N/A;N/A;N/A
|
|
||||||
DO_SET_SERVO;DO_SET_SERVO;Servo No;PWM;N/A;N/A
|
|
||||||
DO_REPEAT_SERVO;DO_REPEAT_SERVO;Servo No;PWM;Repeat#;Delay (sec)
|
|
Binary file not shown.
|
@ -1,3 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<configuration>
|
|
||||||
<startup><supportedRuntime version="v2.0.50727"/></startup></configuration>
|
|
|
@ -1,33 +0,0 @@
|
||||||
Search for differences
|
|
||||||
|
|
||||||
1. C:\Program Files (x86)\AeroSIM-RC\AeroSIM-RC.exe: 1,957,888 bytes
|
|
||||||
2. C:\Program Files (x86)\AeroSIM-RC\AeroSIM-RC3.91.exe: 1,957,888 bytes
|
|
||||||
Offsets: hexadec.
|
|
||||||
|
|
||||||
DD50C: 90 0F
|
|
||||||
DD50D: 90 8E
|
|
||||||
DD50E: 90 9A
|
|
||||||
DD50F: 90 00
|
|
||||||
DD510: 90 00
|
|
||||||
DD511: 90 00
|
|
||||||
DD531: 90 8B
|
|
||||||
DD532: 90 0D
|
|
||||||
DD533: 90 A8
|
|
||||||
DD534: 90 CF
|
|
||||||
DD535: 90 5D
|
|
||||||
DD536: 90 00
|
|
||||||
DD537: 90 40
|
|
||||||
DD538: 90 81
|
|
||||||
DD539: 90 C2
|
|
||||||
DD53A: 90 44
|
|
||||||
DD53B: 90 02
|
|
||||||
DD53C: 90 00
|
|
||||||
DD53D: 90 00
|
|
||||||
DD53E: 90 3B
|
|
||||||
DD53F: 90 C1
|
|
||||||
DD540: 90 7C
|
|
||||||
DD541: 90 D5
|
|
||||||
DD542: 90 EB
|
|
||||||
DD543: 90 68
|
|
||||||
|
|
||||||
25 difference(s) found.
|
|
|
@ -1,92 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
|
|
||||||
<PropertyList>
|
|
||||||
<name>rascal-config</name>
|
|
||||||
<layout>vbox</layout>
|
|
||||||
<x>40</x>
|
|
||||||
<y>40</y>
|
|
||||||
|
|
||||||
<group>
|
|
||||||
<layout>hbox</layout>
|
|
||||||
|
|
||||||
<empty><stretch>true</stretch></empty>
|
|
||||||
|
|
||||||
<text>
|
|
||||||
<label>Rascal Configuration</label>
|
|
||||||
</text>
|
|
||||||
|
|
||||||
<empty><stretch>true</stretch></empty>
|
|
||||||
|
|
||||||
<button>
|
|
||||||
<pref-width>16</pref-width>
|
|
||||||
<pref-height>16</pref-height>
|
|
||||||
<legend></legend>
|
|
||||||
<default>1</default>
|
|
||||||
<keynum>27</keynum>
|
|
||||||
<border>2</border>
|
|
||||||
|
|
||||||
<binding>
|
|
||||||
<command>nasal</command>
|
|
||||||
<script>rascal.dialog.close()</script>
|
|
||||||
</binding>
|
|
||||||
</button>
|
|
||||||
</group>
|
|
||||||
|
|
||||||
<hrule/>
|
|
||||||
|
|
||||||
<group>
|
|
||||||
<layout>table</layout>
|
|
||||||
|
|
||||||
<!-- row zero -->
|
|
||||||
<checkbox>
|
|
||||||
<row>0</row> <col>0</col>
|
|
||||||
<halign>left</halign>
|
|
||||||
<label>External Autopilot Enable</label>
|
|
||||||
<property>/ugear/settings/ap-enable</property>
|
|
||||||
<live>true</live>
|
|
||||||
<binding>
|
|
||||||
<command>dialog-apply</command>
|
|
||||||
</binding>
|
|
||||||
</checkbox>
|
|
||||||
|
|
||||||
<!-- row one -->
|
|
||||||
<checkbox>
|
|
||||||
<row>1</row> <col>0</col>
|
|
||||||
<halign>left</halign>
|
|
||||||
<label>External Turret Control Enable</label>
|
|
||||||
<property>/ugear/settings/turret-enable</property>
|
|
||||||
<live>true</live>
|
|
||||||
<binding>
|
|
||||||
<command>dialog-apply</command>
|
|
||||||
</binding>
|
|
||||||
</checkbox>
|
|
||||||
|
|
||||||
<!-- row two -->
|
|
||||||
<checkbox>
|
|
||||||
<row>2</row> <col>0</col>
|
|
||||||
<halign>left</halign>
|
|
||||||
<label>Smoke</label>
|
|
||||||
<property>/sim/multiplay/generic/int[0]</property>
|
|
||||||
<live>true</live>
|
|
||||||
<binding>
|
|
||||||
<command>dialog-apply</command>
|
|
||||||
</binding>
|
|
||||||
</checkbox>
|
|
||||||
|
|
||||||
<!-- row three -->
|
|
||||||
<checkbox>
|
|
||||||
<row>3</row> <col>0</col>
|
|
||||||
<halign>left</halign>
|
|
||||||
<label>Trajectory Markers</label>
|
|
||||||
<property>/sim/multiplay/generic/int[1]</property>
|
|
||||||
<live>true</live>
|
|
||||||
<binding>
|
|
||||||
<command>dialog-apply</command>
|
|
||||||
</binding>
|
|
||||||
</checkbox>
|
|
||||||
|
|
||||||
</group>
|
|
||||||
|
|
||||||
<hrule/>
|
|
||||||
|
|
||||||
</PropertyList>
|
|
|
@ -1,51 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
|
|
||||||
<!-- Generated by Aero-Matic v 0.7
|
|
||||||
|
|
||||||
Inputs:
|
|
||||||
horsepower: 3.8
|
|
||||||
pitch: fixed
|
|
||||||
Outputs:
|
|
||||||
linear-blade-inches: 10.331602005498
|
|
||||||
-->
|
|
||||||
|
|
||||||
<propeller name="Rascal Propeller">
|
|
||||||
<ixx> 0.00085 </ixx>
|
|
||||||
<diameter unit="IN"> 18.0 </diameter>
|
|
||||||
<numblades> 2 </numblades>
|
|
||||||
<minpitch> 30 </minpitch>
|
|
||||||
<maxpitch> 30 </maxpitch>
|
|
||||||
|
|
||||||
<table name="C_THRUST" type="internal">
|
|
||||||
<tableData>
|
|
||||||
0.0 0.0776
|
|
||||||
0.1 0.0744
|
|
||||||
0.2 0.0712
|
|
||||||
0.3 0.0655
|
|
||||||
0.4 0.0588
|
|
||||||
0.5 0.0518
|
|
||||||
0.6 0.0419
|
|
||||||
0.7 0.0318
|
|
||||||
0.8 0.0172
|
|
||||||
1.0 -0.0058
|
|
||||||
1.4 -0.0549
|
|
||||||
</tableData>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<table name="C_POWER" type = "internal">
|
|
||||||
<tableData>
|
|
||||||
0.0 0.0902
|
|
||||||
0.1 0.0893
|
|
||||||
0.2 0.0880
|
|
||||||
0.3 0.0860
|
|
||||||
0.4 0.0810
|
|
||||||
0.5 0.0742
|
|
||||||
0.6 0.0681
|
|
||||||
0.7 0.0572
|
|
||||||
0.8 0.0467
|
|
||||||
1.0 0.0167
|
|
||||||
1.4 -0.0803
|
|
||||||
</tableData>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
</propeller>
|
|
|
@ -1,8 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<!-- Zenoah G-26A -->
|
|
||||||
<!-- 2.96 hp engine -->
|
|
||||||
<!-- one horsepower equals 745.69987 Watts -->
|
|
||||||
|
|
||||||
<electric_engine name="electric_1mw">
|
|
||||||
<power unit="WATTS"> 2207.27 </power>
|
|
||||||
</electric_engine>
|
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
|
@ -1,87 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
|
|
||||||
<PropertyList>
|
|
||||||
|
|
||||||
<path>Rascal110-000-013.ac</path>
|
|
||||||
|
|
||||||
<model>
|
|
||||||
<path>Aircraft/Rascal/Models/smokeW.xml</path>
|
|
||||||
<offsets>
|
|
||||||
<x-m> 2.0</x-m>
|
|
||||||
<y-m> 0.0</y-m>
|
|
||||||
<z-m> 0.0</z-m>
|
|
||||||
<roll-deg> 0</roll-deg>
|
|
||||||
<pitch-deg> 0</pitch-deg>
|
|
||||||
<heading-deg>0</heading-deg>
|
|
||||||
</offsets>
|
|
||||||
</model>
|
|
||||||
|
|
||||||
<animation>
|
|
||||||
<type>rotate</type>
|
|
||||||
<object-name>L_Aileron</object-name>
|
|
||||||
<property>/surface-positions/left-aileron-pos-norm</property>
|
|
||||||
<factor>20.0</factor> <!-- fixme -->
|
|
||||||
<center>
|
|
||||||
<x-m>0.735</x-m>
|
|
||||||
<y-m>-0.450</y-m>
|
|
||||||
<z-m>0.139</z-m>
|
|
||||||
</center>
|
|
||||||
<axis>
|
|
||||||
<x>0.037</x>
|
|
||||||
<y>1.0</y>
|
|
||||||
<z>-0.029</z>
|
|
||||||
</axis>
|
|
||||||
</animation>
|
|
||||||
|
|
||||||
<animation>
|
|
||||||
<type>rotate</type>
|
|
||||||
<object-name>R_Aileron</object-name>
|
|
||||||
<property>/surface-positions/right-aileron-pos-norm</property>
|
|
||||||
<factor>20.0</factor> <!-- fixme -->
|
|
||||||
<center>
|
|
||||||
<x-m>0.735</x-m>
|
|
||||||
<y-m>0.450</y-m>
|
|
||||||
<z-m>0.139</z-m>
|
|
||||||
</center>
|
|
||||||
<axis>
|
|
||||||
<x>-0.037</x>
|
|
||||||
<y>1.0</y>
|
|
||||||
<z>0.029</z>
|
|
||||||
</axis>
|
|
||||||
</animation>
|
|
||||||
|
|
||||||
<animation>
|
|
||||||
<type>rotate</type>
|
|
||||||
<object-name>Elevator</object-name>
|
|
||||||
<property>/surface-positions/elevator-pos-norm</property>
|
|
||||||
<factor>35.0</factor> <!-- fixme -->
|
|
||||||
<center>
|
|
||||||
<x-m>1.752</x-m>
|
|
||||||
<y-m>0.0</y-m>
|
|
||||||
<z-m>0.051</z-m>
|
|
||||||
</center>
|
|
||||||
<axis>
|
|
||||||
<x>0.0</x>
|
|
||||||
<y>1.0</y>
|
|
||||||
<z>0.0</z>
|
|
||||||
</axis>
|
|
||||||
</animation>
|
|
||||||
|
|
||||||
<animation>
|
|
||||||
<type>rotate</type>
|
|
||||||
<object-name>Rudder</object-name>
|
|
||||||
<property>/surface-positions/rudder-pos-norm</property>
|
|
||||||
<factor>35.0</factor> <!-- fixme -->
|
|
||||||
<center>
|
|
||||||
<x-m>1.752</x-m>
|
|
||||||
<y-m>0.0</y-m>
|
|
||||||
<z-m>0.0</z-m>
|
|
||||||
</center>
|
|
||||||
<axis>
|
|
||||||
<x>0.0</x>
|
|
||||||
<y>0.0</y>
|
|
||||||
<z>1.0</z>
|
|
||||||
</axis>
|
|
||||||
</animation>
|
|
||||||
|
|
||||||
</PropertyList>
|
|
|
@ -1,30 +0,0 @@
|
||||||
AC3Db
|
|
||||||
MATERIAL "ac3dmat9" rgb 0 0 1 amb 0 0 1 emis 0 0 1 spec 0 0 1 shi 0 trans 0
|
|
||||||
MATERIAL "ac3dmat3" rgb 1 0 0 amb 1 0 0 emis 1 0 0 spec 1 0 0 shi 0 trans 0
|
|
||||||
OBJECT world
|
|
||||||
kids 2
|
|
||||||
OBJECT poly
|
|
||||||
name "line"
|
|
||||||
loc 0 0.5 0
|
|
||||||
numvert 2
|
|
||||||
0 0.5 0
|
|
||||||
0 -0.5 0
|
|
||||||
numsurf 1
|
|
||||||
SURF 0x22
|
|
||||||
mat 0
|
|
||||||
refs 2
|
|
||||||
0 0 1
|
|
||||||
1 0 0
|
|
||||||
kids 0
|
|
||||||
OBJECT poly
|
|
||||||
name "line"
|
|
||||||
numvert 2
|
|
||||||
0 0 -3
|
|
||||||
0 0 3
|
|
||||||
numsurf 1
|
|
||||||
SURF 0x22
|
|
||||||
mat 1
|
|
||||||
refs 2
|
|
||||||
0 0 1
|
|
||||||
1 0 0
|
|
||||||
kids 0
|
|
|
@ -1,9 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
|
|
||||||
<!-- Trajectory Marker config file - Lee Elliott -->
|
|
||||||
|
|
||||||
<PropertyList>
|
|
||||||
|
|
||||||
<path>Trajectory-Marker.ac</path>
|
|
||||||
|
|
||||||
</PropertyList>
|
|
|
@ -1,102 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<!-- New version May, 07, 2009 by 102nd-YU-Nitro -->
|
|
||||||
|
|
||||||
<PropertyList>
|
|
||||||
|
|
||||||
<!-- OSG Particles -->
|
|
||||||
<particlesystem>
|
|
||||||
<name>smoke</name>
|
|
||||||
|
|
||||||
<offsets>
|
|
||||||
<x-m> 0.000 </x-m>
|
|
||||||
<y-m> 0.000 </y-m>
|
|
||||||
<z-m> -0.000 </z-m>
|
|
||||||
<roll-deg> 0.000 </roll-deg>
|
|
||||||
<pitch-deg> 0.000 </pitch-deg>
|
|
||||||
<heading-deg> 0.000 </heading-deg>
|
|
||||||
</offsets>
|
|
||||||
|
|
||||||
<texture>smoke.png</texture>
|
|
||||||
|
|
||||||
<condition>
|
|
||||||
<property>sim/multiplay/generic/int[0]</property>
|
|
||||||
</condition>
|
|
||||||
|
|
||||||
<emissive>false</emissive>
|
|
||||||
<lighting>false</lighting>
|
|
||||||
<align>billboard</align> <!-- billboard / fixed -->
|
|
||||||
<attach>world</attach> <!-- world / local-->
|
|
||||||
|
|
||||||
<placer>
|
|
||||||
<type>point</type> <!-- sector / segments / point -->
|
|
||||||
</placer>
|
|
||||||
|
|
||||||
<shooter>
|
|
||||||
<theta-min-deg>10</theta-min-deg>
|
|
||||||
<theta-max-deg>86</theta-max-deg>
|
|
||||||
<phi-min-deg>-1.5</phi-min-deg>
|
|
||||||
<phi-max-deg>8</phi-max-deg>
|
|
||||||
<speed-mps>
|
|
||||||
<value>10</value>
|
|
||||||
<spread>2.5</spread>
|
|
||||||
</speed-mps>
|
|
||||||
<rotation-speed>
|
|
||||||
<x-min-deg-sec>5</x-min-deg-sec>
|
|
||||||
<y-min-deg-sec>5</y-min-deg-sec>
|
|
||||||
<z-min-deg-sec>5</z-min-deg-sec>
|
|
||||||
<x-max-deg-sec>60</x-max-deg-sec>
|
|
||||||
<y-max-deg-sec>60</y-max-deg-sec>
|
|
||||||
<z-max-deg-sec>60</z-max-deg-sec>
|
|
||||||
</rotation-speed>
|
|
||||||
</shooter>
|
|
||||||
|
|
||||||
<counter>
|
|
||||||
<particles-per-sec>
|
|
||||||
<value>100</value>
|
|
||||||
<spread>1</spread>
|
|
||||||
</particles-per-sec>
|
|
||||||
</counter>
|
|
||||||
|
|
||||||
<particle>
|
|
||||||
<start>
|
|
||||||
<color>
|
|
||||||
<red><value> 0.9 </value></red>
|
|
||||||
<green><value> 0.9 </value></green>
|
|
||||||
<blue><value> 0.9 </value></blue>
|
|
||||||
<alpha><value> 0.3 </value></alpha>
|
|
||||||
</color>
|
|
||||||
<size>
|
|
||||||
<value>0.3</value>
|
|
||||||
</size>
|
|
||||||
</start>
|
|
||||||
|
|
||||||
<end>
|
|
||||||
<color>
|
|
||||||
<red><value> 0.900 </value></red>
|
|
||||||
<green><value> 0.900 </value></green>
|
|
||||||
<blue><value> 0.900 </value></blue>
|
|
||||||
<alpha><value> 0.001 </value></alpha>
|
|
||||||
</color>
|
|
||||||
<size>
|
|
||||||
<value>10.0</value>
|
|
||||||
</size>
|
|
||||||
</end>
|
|
||||||
|
|
||||||
<life-sec>
|
|
||||||
<value>60</value>
|
|
||||||
</life-sec>
|
|
||||||
|
|
||||||
<mass-kg>0.001</mass-kg>
|
|
||||||
<radius-m>1.0</radius-m>
|
|
||||||
</particle>
|
|
||||||
|
|
||||||
<program>
|
|
||||||
<fluid>air</fluid> <!-- air / water -->
|
|
||||||
<gravity>false</gravity>
|
|
||||||
<wind>true</wind>
|
|
||||||
</program>
|
|
||||||
|
|
||||||
</particlesystem>
|
|
||||||
|
|
||||||
</PropertyList>
|
|
|
@ -1,244 +0,0 @@
|
||||||
This model is based on the Rascal110 from FlightGear, and adapted for
|
|
||||||
use in the ArduPilot test system. Many thanks to all who have
|
|
||||||
contributed!
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
This information has not been updated for the Rascal, please ignore, we
|
|
||||||
are still at pre-pre-pre-alpha with this model!
|
|
||||||
|
|
||||||
PIPER J3 CUB PERFORMANCE DATA
|
|
||||||
=============================
|
|
||||||
|
|
||||||
[This information is copied from the 1946 J3C-65 owner's handbook.]
|
|
||||||
|
|
||||||
FLYING HINTS
|
|
||||||
|
|
||||||
The Piper Cub Special represents more than 15 years of diligent
|
|
||||||
aircraft engineering and manufacturing experience. Its simplicity of
|
|
||||||
design and construction, its low operating and maintenance costs, its
|
|
||||||
inherent stability, ruggedness, and its outstanding safety and ease of
|
|
||||||
flying, have made it the most popular airplane in aviation history.
|
|
||||||
The Piper Cub Special is the time-tested product of millions of hours
|
|
||||||
of flying under all conceivable conditions both in the military and in
|
|
||||||
peace time.
|
|
||||||
|
|
||||||
There are hints on starting, flying, stopping, and other related
|
|
||||||
topics that are important to the owner who wants to conserve his
|
|
||||||
airplane -- keep it in maximum airworthy condition -- and enjoy a full
|
|
||||||
measure of flying satisfaction.
|
|
||||||
|
|
||||||
|
|
||||||
First, each pilot should become familiar enough with his Piper Cub
|
|
||||||
Special that he can accomplish a satisfactory pre-flight inspection.
|
|
||||||
This check is simple and requires only a few minutes. See Section IX
|
|
||||||
for check list. Daily check of airplane prior to flight should be the
|
|
||||||
first in a number of safe flying habits the pilot should acquire.
|
|
||||||
|
|
||||||
|
|
||||||
A. BEFORE STARTING ENGINE
|
|
||||||
|
|
||||||
(1) Make routine check of gasoline supply. Visible fuel gauge is
|
|
||||||
integral part of gas tank cap; it will not show number of gallons but
|
|
||||||
will show proportion of fuel in tank by length of rod which extends
|
|
||||||
upward from cap. A full tank of 12 U.S. gallons will be indicated by
|
|
||||||
11 inches of rod extending beyond cap. Keep gas gauge rod clean and
|
|
||||||
smooth with crocus cloth for accuracy and freedom of movement.
|
|
||||||
|
|
||||||
(2) Check oil level in engine sump by removing oil cap and gauge. Oil
|
|
||||||
stick should indicate oil level up to index mark of 4 quarts.
|
|
||||||
|
|
||||||
(3) Check freedom of movement of flight and engine controls.
|
|
||||||
|
|
||||||
|
|
||||||
B. STARTING ENGINE
|
|
||||||
|
|
||||||
(1) Chock wheels, or have occupant who is familiar with controls set
|
|
||||||
brakes in cabin.
|
|
||||||
|
|
||||||
(2) Ignition switch OFF. Verify.
|
|
||||||
|
|
||||||
(3) Set throttle approximately 1/10 open.
|
|
||||||
|
|
||||||
(4) Push fuel shut-off ON.
|
|
||||||
|
|
||||||
(5) Turn propeller through several times.
|
|
||||||
|
|
||||||
(6) Turn ignition switch ON.
|
|
||||||
|
|
||||||
(7) Start engine by pulling propeller through with a snap.
|
|
||||||
|
|
||||||
CAUTION -- Always handle propeller as if switch were "ON." Stand as
|
|
||||||
far in front of propeller as possible. Use both hands and grasp one
|
|
||||||
blad approximately midway from tip. Do not overgrasp blade. Do not
|
|
||||||
wear long, loose clothing. Make sure footing is sure to preclude
|
|
||||||
possibility of feet slipping.
|
|
||||||
|
|
||||||
(8) If engine does not start, turn switch OFF. Turn primer knob to
|
|
||||||
unlock, pull out, pump three or four times, then reseat primer and
|
|
||||||
lock by turning in opposite direction. In extremely cold weather a
|
|
||||||
few strokes of the primer as the engine starts will enable it to keep
|
|
||||||
running. NOTE -- Avoid excessive priming as it causes raw gasoline to
|
|
||||||
wash lubricating oil from engine cylinder walls. Do not prime warm
|
|
||||||
engine.
|
|
||||||
|
|
||||||
(9) Repeat starting procedures 6, 7.
|
|
||||||
|
|
||||||
(10) If engine loads up and refuses to start, turn ignition switch
|
|
||||||
"OFF,", open throttle wide and turn propeller through backwards
|
|
||||||
several times to unload excessive gas mixture in cylinders. Then
|
|
||||||
close throttle and repeat starting procedure.
|
|
||||||
|
|
||||||
|
|
||||||
C. ENGINE WARM-UP
|
|
||||||
|
|
||||||
(1) As soon as engine starts, advance throttle slightly to idle at 700
|
|
||||||
R.P.M. Check engine instruments. If oil pressure gauge does not
|
|
||||||
indicate pressure within 30 seconds, stop engine immediately, check
|
|
||||||
and correct trouble before any further operation. Oil temperature
|
|
||||||
during operating should not rise above 200° F. and oil pressure should
|
|
||||||
not fall below 30 pounds. With engine warm, idling speed should be
|
|
||||||
550-600 R.P.M.
|
|
||||||
|
|
||||||
(2) Rev engine up to 2100 R.P.M. on both magnetos. Switch to LEFT and
|
|
||||||
RIGHT magnetos. R.P.M. drop should not be over 75 R.P.M. CAUTION
|
|
||||||
--Do not operate engine on either single magneto for more than 30
|
|
||||||
seconds at a time, as this tends to foul the non-operating spark plugs
|
|
||||||
in the ignition circuit of the magneto that is switched off.
|
|
||||||
|
|
||||||
|
|
||||||
D. STOPPING ENGINE
|
|
||||||
|
|
||||||
(1) Never cut switch immediately after landing as this causes engine
|
|
||||||
to cool too rapidly.
|
|
||||||
|
|
||||||
(2) Idle engine, especially in high temperature operating conditions,
|
|
||||||
for several minutes. It is advisable to switch to each magneto for 30
|
|
||||||
second intervals to allow gradual cooling of engine. This helps to
|
|
||||||
prevent overheating of spark plug insulators and will lessen tendency
|
|
||||||
for "after-firing."
|
|
||||||
|
|
||||||
(3) Check for carburetor heat OFF during idling.
|
|
||||||
|
|
||||||
|
|
||||||
E. TAXIING
|
|
||||||
|
|
||||||
(1) Open throttle to start airplane in motion; then close throttle to
|
|
||||||
a setting sufficient to keep airplane rolling. Do not keep throttle
|
|
||||||
advanced so that it is necessary to control taxi speed of airplane
|
|
||||||
with brakes. This causes unnecessary wear and tear on brakes and
|
|
||||||
tires.
|
|
||||||
|
|
||||||
(2) Taxi slowly (speed of a fast walk) controlling direction with
|
|
||||||
rudder which is connected to a steerable tail wheel. Use brakes only
|
|
||||||
for positive, precision ground control when necessary.
|
|
||||||
|
|
||||||
(3) Taxi upwind with stick back; downwind with stick foreward. When
|
|
||||||
ground winds are in excess of 15 M.P.H., turn into wind using ailerons
|
|
||||||
in direction of turn; apply ailerons away from the turn when turning
|
|
||||||
downwind. This procedure helps to prevent the wind "picking up" a
|
|
||||||
wing during windy, gusty conditions. Always make ground turns slowly.
|
|
||||||
|
|
||||||
|
|
||||||
F. GENERAL FLYING
|
|
||||||
|
|
||||||
(1) For takeoff use full throttle, heading into wind. Airplane loaded
|
|
||||||
will become airborne at approximately 39 M.P.H. Best climb speed is
|
|
||||||
an indicated 55 M.P.H.
|
|
||||||
|
|
||||||
(2) Indicated R.P.M. for cruising speed of 73 M.P.H. is 2150.
|
|
||||||
Take-off R.P.M. is 2300. Do not fly at full throttle over 3 minutes.
|
|
||||||
|
|
||||||
(3) Use CARBURETOR AIR HEAT when engine runs "rough" and tachometer
|
|
||||||
shows drop in R.P.M. which may be due to ice forming in carburetor.
|
|
||||||
Tachometer should recover to within 50 R.P.M. below normal when using
|
|
||||||
carburetor heat. Push heater to "OFF" position, and if icing
|
|
||||||
condition has been cleared, R.P.M. should return to normal. Continued
|
|
||||||
use of carburetor heat will only cause increased fuel consumption and
|
|
||||||
loss of power.
|
|
||||||
|
|
||||||
(4) Maximum permissible diving speed is 122 M.P.H.
|
|
||||||
|
|
||||||
|
|
||||||
G. APPROACH AND LANDING
|
|
||||||
|
|
||||||
(1) Push carburetor heat ON prior to throttling back for glide, or for
|
|
||||||
any other flight maneuver.
|
|
||||||
|
|
||||||
(2) Glide between 50-60 M.P.H. depending upon loading of airplane and
|
|
||||||
gust conditions.
|
|
||||||
|
|
||||||
NOTE -- "Clear" engine by opening throttle gently, every 200-250 feet
|
|
||||||
of descent during a long glide so that engine temperature will be
|
|
||||||
maintained.
|
|
||||||
|
|
||||||
Throttle action on the part of the pilot should be smooth and gentle
|
|
||||||
at all times.
|
|
||||||
|
|
||||||
|
|
||||||
H. PARKING AND MOORING
|
|
||||||
|
|
||||||
(1) After termination of flight, enter flying time in aircraft and
|
|
||||||
engine log books.
|
|
||||||
|
|
||||||
(2) Turn ignition and fuel OFF.
|
|
||||||
|
|
||||||
(3) Chcok the wheels of airplane.
|
|
||||||
|
|
||||||
(4) If airplane is not to be flown for some time, it should be
|
|
||||||
hangared or tied down. Use good quality 1/2" - 5/8" diameter rope.
|
|
||||||
Secure to lift assist handle at aft end of fuselage; also at upper end
|
|
||||||
of both front wing lift struts where they attach to wing. Make sure
|
|
||||||
that rope passes between aileron cable and lift strut. Mooring ropes,
|
|
||||||
when airplane is tied down, should have no slack.
|
|
||||||
|
|
||||||
(5) Lock aileron and elevator controls by wrapping front seat belt
|
|
||||||
completely around rear control stick, tighten and buckle.
|
|
||||||
|
|
||||||
(6) Under excessively wind conditions, airplane should be tailed into
|
|
||||||
wind for mooring.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[Here is my older information.]
|
|
||||||
|
|
||||||
These are the only numbers I could find. They are for a J3 Cub with
|
|
||||||
an 85HP engine rather than 65 hp, so some adjustments may be
|
|
||||||
necessary. The source is
|
|
||||||
|
|
||||||
http://www.evergreenfs.com/planedata.htm
|
|
||||||
|
|
||||||
|
|
||||||
Speeds
|
|
||||||
------
|
|
||||||
Best rate of climb (Vy): 65 mph (57 kt)
|
|
||||||
Best angle of climb (Vx): 55 mph (48 kt)
|
|
||||||
Cruise: 70 mph (61 kt)
|
|
||||||
Never-exceed (Vne): 122 mph (106 kt)
|
|
||||||
Best Glide (Vglide): 60 mph (52 kt)
|
|
||||||
Stall (Vs): 38 mph (33 kt)
|
|
||||||
Maneuvering (Va): 70 mph (61 kt)
|
|
||||||
Approach: 50-60 mph (44-52 kt)
|
|
||||||
|
|
||||||
Power
|
|
||||||
-----
|
|
||||||
Take off: full
|
|
||||||
Climb: 50 rpm below full
|
|
||||||
Cruise: 2300 rpm
|
|
||||||
Approach: 1200 rpm
|
|
||||||
Practice stalls: 1200 rpm
|
|
||||||
|
|
||||||
Distances
|
|
||||||
---------
|
|
||||||
Take-off: 450-800 ft
|
|
||||||
Landing: 200-800 ft
|
|
||||||
|
|
||||||
Fuel
|
|
||||||
----
|
|
||||||
Total fuel: 12 gal US
|
|
||||||
Usable fuel: 12 gal US
|
|
||||||
Grade: 80/87
|
|
||||||
GPH: 5 gal US/hr
|
|
|
@ -1,23 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<PropertyList>
|
|
||||||
|
|
||||||
<key n="9">
|
|
||||||
<name>Ctrl-I</name>
|
|
||||||
<desc>Show configuration dialog</desc>
|
|
||||||
<binding>
|
|
||||||
<command>nasal</command>
|
|
||||||
<script>rascal.dialog.toggle()</script>
|
|
||||||
</binding>
|
|
||||||
</key>
|
|
||||||
|
|
||||||
<key n="83">
|
|
||||||
<name>S</name>
|
|
||||||
<desc>Toggle smoke</desc>
|
|
||||||
<binding>
|
|
||||||
<command>property-toggle</command>
|
|
||||||
<property>sim/multiplay/generic/int[0]</property>
|
|
||||||
</binding>
|
|
||||||
</key>
|
|
||||||
|
|
||||||
</PropertyList>
|
|
|
@ -1,25 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
|
|
||||||
<PropertyList>
|
|
||||||
|
|
||||||
<submodel>
|
|
||||||
<name>trajectory marker</name>
|
|
||||||
<model>Aircraft/Rascal/Models/Trajectory-Marker.xml</model>
|
|
||||||
<trigger>/sim/multiplay/generic/int[1]</trigger>
|
|
||||||
<speed>0</speed>
|
|
||||||
<repeat>true</repeat>
|
|
||||||
<delay>0.75</delay>
|
|
||||||
<count>-1</count>
|
|
||||||
<x-offset>-0.5</x-offset>
|
|
||||||
<y-offset>0.0</y-offset>
|
|
||||||
<z-offset>-0.08</z-offset>
|
|
||||||
<yaw-offset>0.0</yaw-offset>
|
|
||||||
<pitch-offset>0.0</pitch-offset>
|
|
||||||
<eda>1000000000.00</eda>
|
|
||||||
<life>600</life>
|
|
||||||
<buoyancy>32</buoyancy>
|
|
||||||
<wind>false</wind>
|
|
||||||
<aero-stabilised>false</aero-stabilised>
|
|
||||||
</submodel>
|
|
||||||
|
|
||||||
</PropertyList>
|
|
|
@ -1,522 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<?xml-stylesheet href="http://jsbsim.sourceforge.net/JSBSim.xsl" type="text/xsl"?>
|
|
||||||
<fdm_config name="rascal" version="2.0" release="BETA"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
|
|
||||||
|
|
||||||
<fileheader>
|
|
||||||
<author> Author Name </author>
|
|
||||||
<filecreationdate> Creation Date </filecreationdate>
|
|
||||||
<version> Version </version>
|
|
||||||
<description> Models a rascal </description>
|
|
||||||
</fileheader>
|
|
||||||
|
|
||||||
<metrics>
|
|
||||||
<wingarea unit="FT2"> 10.57 </wingarea>
|
|
||||||
<wingspan unit="FT"> 9.17 </wingspan>
|
|
||||||
<chord unit="FT"> 1.15 </chord>
|
|
||||||
<htailarea unit="FT2"> 1.69 </htailarea>
|
|
||||||
<htailarm unit="FT"> 3.28 </htailarm>
|
|
||||||
<vtailarea unit="FT2"> 1.06 </vtailarea>
|
|
||||||
<vtailarm unit="FT"> 0 </vtailarm>
|
|
||||||
<location name="AERORP" unit="IN">
|
|
||||||
<x> 37.4 </x>
|
|
||||||
<y> 0 </y>
|
|
||||||
<z> 0 </z>
|
|
||||||
</location>
|
|
||||||
<location name="EYEPOINT" unit="IN">
|
|
||||||
<x> 20 </x>
|
|
||||||
<y> 0 </y>
|
|
||||||
<z> 5 </z>
|
|
||||||
</location>
|
|
||||||
<location name="VRP" unit="IN">
|
|
||||||
<x> 0 </x>
|
|
||||||
<y> 0 </y>
|
|
||||||
<z> 0 </z>
|
|
||||||
</location>
|
|
||||||
</metrics>
|
|
||||||
|
|
||||||
<mass_balance>
|
|
||||||
<ixx unit="SLUG*FT2"> 1.95 </ixx>
|
|
||||||
<iyy unit="SLUG*FT2"> 1.55 </iyy>
|
|
||||||
<izz unit="SLUG*FT2"> 1.91 </izz>
|
|
||||||
<ixy unit="SLUG*FT2"> 0 </ixy>
|
|
||||||
<ixz unit="SLUG*FT2"> 0 </ixz>
|
|
||||||
<iyz unit="SLUG*FT2"> 0 </iyz>
|
|
||||||
<emptywt unit="LBS"> 13 </emptywt>
|
|
||||||
<location name="CG" unit="IN">
|
|
||||||
<x> 36.4 </x>
|
|
||||||
<y> 0 </y>
|
|
||||||
<z> 4 </z>
|
|
||||||
</location>
|
|
||||||
</mass_balance>
|
|
||||||
|
|
||||||
<ground_reactions>
|
|
||||||
<contact type="BOGEY" name="LEFT_MLG">
|
|
||||||
<location unit="IN">
|
|
||||||
<x> 33.1 </x>
|
|
||||||
<y> -12.9 </y>
|
|
||||||
<z> -13.1 </z>
|
|
||||||
</location>
|
|
||||||
<static_friction> 0.8 </static_friction>
|
|
||||||
<dynamic_friction> 0.5 </dynamic_friction>
|
|
||||||
<rolling_friction> 0.1 </rolling_friction>
|
|
||||||
<spring_coeff unit="LBS/FT"> 480 </spring_coeff>
|
|
||||||
<damping_coeff unit="LBS/FT/SEC"> 100 </damping_coeff>
|
|
||||||
<max_steer unit="DEG"> 0.0 </max_steer>
|
|
||||||
<brake_group> NONE </brake_group>
|
|
||||||
<retractable>0</retractable>
|
|
||||||
</contact>
|
|
||||||
<contact type="BOGEY" name="RIGHT_MLG">
|
|
||||||
<location unit="IN">
|
|
||||||
<x> 33.1 </x>
|
|
||||||
<y> 12.9 </y>
|
|
||||||
<z> -13.1 </z>
|
|
||||||
</location>
|
|
||||||
<static_friction> 0.8 </static_friction>
|
|
||||||
<dynamic_friction> 0.5 </dynamic_friction>
|
|
||||||
<rolling_friction> 0.1 </rolling_friction>
|
|
||||||
<spring_coeff unit="LBS/FT"> 480 </spring_coeff>
|
|
||||||
<damping_coeff unit="LBS/FT/SEC"> 100 </damping_coeff>
|
|
||||||
<max_steer unit="DEG"> 0.0 </max_steer>
|
|
||||||
<brake_group> NONE </brake_group>
|
|
||||||
<retractable>0</retractable>
|
|
||||||
</contact>
|
|
||||||
<contact type="BOGEY" name="TAIL_LG">
|
|
||||||
<location unit="IN">
|
|
||||||
<x> 68.9 </x>
|
|
||||||
<y> 0 </y>
|
|
||||||
<z> -13.1 </z>
|
|
||||||
</location>
|
|
||||||
<static_friction> 8.0 </static_friction>
|
|
||||||
<dynamic_friction> 5.0 </dynamic_friction>
|
|
||||||
<rolling_friction> 0.1 </rolling_friction>
|
|
||||||
<spring_coeff unit="LBS/FT"> 480 </spring_coeff>
|
|
||||||
<damping_coeff unit="LBS/FT/SEC"> 100 </damping_coeff>
|
|
||||||
<max_steer unit="DEG"> 360.0 </max_steer>
|
|
||||||
<brake_group> NONE </brake_group>
|
|
||||||
<retractable>0</retractable>
|
|
||||||
</contact>
|
|
||||||
</ground_reactions>
|
|
||||||
|
|
||||||
<propulsion>
|
|
||||||
<engine file="Zenoah_G-26A">
|
|
||||||
<location unit="IN">
|
|
||||||
<x> 36 </x>
|
|
||||||
<y> 0 </y>
|
|
||||||
<z> 0 </z>
|
|
||||||
</location>
|
|
||||||
<orient unit="DEG">
|
|
||||||
<roll> 0.0 </roll>
|
|
||||||
<pitch> 0 </pitch>
|
|
||||||
<yaw> 0 </yaw>
|
|
||||||
</orient>
|
|
||||||
<feed>0</feed>
|
|
||||||
<thruster file="18x8">
|
|
||||||
<location unit="IN">
|
|
||||||
<x> 1 </x>
|
|
||||||
<y> 0 </y>
|
|
||||||
<z> 0 </z>
|
|
||||||
</location>
|
|
||||||
<orient unit="DEG">
|
|
||||||
<roll> 0.0 </roll>
|
|
||||||
<pitch> 0.0 </pitch>
|
|
||||||
<yaw> 0.0 </yaw>
|
|
||||||
</orient>
|
|
||||||
<p_factor>1.0</p_factor>
|
|
||||||
</thruster>
|
|
||||||
</engine>
|
|
||||||
<tank type="FUEL"> <!-- Tank number 0 -->
|
|
||||||
<location unit="IN">
|
|
||||||
<x> 36.36 </x>
|
|
||||||
<y> 0 </y>
|
|
||||||
<z> -1.89375 </z>
|
|
||||||
</location>
|
|
||||||
<capacity unit="LBS"> 1.5 </capacity>
|
|
||||||
<contents unit="LBS"> 1.5 </contents>
|
|
||||||
</tank>
|
|
||||||
</propulsion>
|
|
||||||
|
|
||||||
<flight_control name="FCS: rascal">
|
|
||||||
<channel name="All">
|
|
||||||
|
|
||||||
<summer name="Pitch Trim Sum">
|
|
||||||
<input>fcs/elevator-cmd-norm</input>
|
|
||||||
<input>fcs/pitch-trim-cmd-norm</input>
|
|
||||||
<clipto>
|
|
||||||
<min>-1</min>
|
|
||||||
<max>1</max>
|
|
||||||
</clipto>
|
|
||||||
</summer>
|
|
||||||
|
|
||||||
<aerosurface_scale name="Elevator Control">
|
|
||||||
<input>fcs/pitch-trim-sum</input>
|
|
||||||
<range>
|
|
||||||
<min>-0.35</min>
|
|
||||||
<max>0.3</max>
|
|
||||||
</range>
|
|
||||||
<output>fcs/elevator-pos-rad</output>
|
|
||||||
</aerosurface_scale>
|
|
||||||
|
|
||||||
<aerosurface_scale name="Elevator Normalized">
|
|
||||||
<input>fcs/elevator-pos-rad</input>
|
|
||||||
<domain>
|
|
||||||
<min>-0.3</min>
|
|
||||||
<max> 0.3</max>
|
|
||||||
</domain>
|
|
||||||
<range>
|
|
||||||
<min>-1</min>
|
|
||||||
<max> 1</max>
|
|
||||||
</range>
|
|
||||||
<output>fcs/elevator-pos-norm</output>
|
|
||||||
</aerosurface_scale>
|
|
||||||
|
|
||||||
<summer name="Roll Trim Sum">
|
|
||||||
<input>fcs/aileron-cmd-norm</input>
|
|
||||||
<input>fcs/roll-trim-cmd-norm</input>
|
|
||||||
<clipto>
|
|
||||||
<min>-1</min>
|
|
||||||
<max>1</max>
|
|
||||||
</clipto>
|
|
||||||
</summer>
|
|
||||||
|
|
||||||
<aerosurface_scale name="Left Aileron Control">
|
|
||||||
<input>fcs/roll-trim-sum</input>
|
|
||||||
<range>
|
|
||||||
<min>-0.35</min>
|
|
||||||
<max>0.35</max>
|
|
||||||
</range>
|
|
||||||
<output>fcs/left-aileron-pos-rad</output>
|
|
||||||
</aerosurface_scale>
|
|
||||||
|
|
||||||
<aerosurface_scale name="Right Aileron Control">
|
|
||||||
<input>-fcs/roll-trim-sum</input>
|
|
||||||
<range>
|
|
||||||
<min>-0.35</min>
|
|
||||||
<max>0.35</max>
|
|
||||||
</range>
|
|
||||||
<output>fcs/right-aileron-pos-rad</output>
|
|
||||||
</aerosurface_scale>
|
|
||||||
|
|
||||||
<aerosurface_scale name="Left aileron Normalized">
|
|
||||||
<input>fcs/left-aileron-pos-rad</input>
|
|
||||||
<domain>
|
|
||||||
<min>-0.35</min>
|
|
||||||
<max> 0.35</max>
|
|
||||||
</domain>
|
|
||||||
<range>
|
|
||||||
<min>-1</min>
|
|
||||||
<max> 1</max>
|
|
||||||
</range>
|
|
||||||
<output>fcs/left-aileron-pos-norm</output>
|
|
||||||
</aerosurface_scale>
|
|
||||||
|
|
||||||
<aerosurface_scale name="Right aileron Normalized">
|
|
||||||
<input>fcs/right-aileron-pos-rad</input>
|
|
||||||
<domain>
|
|
||||||
<min>-0.35</min>
|
|
||||||
<max> 0.35</max>
|
|
||||||
</domain>
|
|
||||||
<range>
|
|
||||||
<min>-1</min>
|
|
||||||
<max> 1</max>
|
|
||||||
</range>
|
|
||||||
<output>fcs/right-aileron-pos-norm</output>
|
|
||||||
</aerosurface_scale>
|
|
||||||
|
|
||||||
<summer name="Rudder Command Sum">
|
|
||||||
<input>fcs/rudder-cmd-norm</input>
|
|
||||||
<input>fcs/yaw-trim-cmd-norm</input>
|
|
||||||
<clipto>
|
|
||||||
<min>-1</min>
|
|
||||||
<max>1</max>
|
|
||||||
</clipto>
|
|
||||||
</summer>
|
|
||||||
|
|
||||||
<aerosurface_scale name="Rudder Control">
|
|
||||||
<input>fcs/rudder-command-sum</input>
|
|
||||||
<range>
|
|
||||||
<min>-0.35</min>
|
|
||||||
<max>0.35</max>
|
|
||||||
</range>
|
|
||||||
<output>fcs/rudder-pos-rad</output>
|
|
||||||
</aerosurface_scale>
|
|
||||||
|
|
||||||
<aerosurface_scale name="Rudder Normalized">
|
|
||||||
<input>fcs/rudder-pos-rad</input>
|
|
||||||
<domain>
|
|
||||||
<min>-0.35</min>
|
|
||||||
<max> 0.35</max>
|
|
||||||
</domain>
|
|
||||||
<range>
|
|
||||||
<min>-1</min>
|
|
||||||
<max> 1</max>
|
|
||||||
</range>
|
|
||||||
<output>fcs/rudder-pos-norm</output>
|
|
||||||
</aerosurface_scale>
|
|
||||||
</channel>
|
|
||||||
</flight_control>
|
|
||||||
|
|
||||||
<aerodynamics>
|
|
||||||
<axis name="DRAG">
|
|
||||||
<function name="aero/coefficient/CD0">
|
|
||||||
<description>Drag_at_zero_lift</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<table>
|
|
||||||
<independentVar>aero/alpha-rad</independentVar>
|
|
||||||
<tableData>
|
|
||||||
-1.5700 1.5000
|
|
||||||
-0.2600 0.0560
|
|
||||||
0.0000 0.0280
|
|
||||||
0.2600 0.0560
|
|
||||||
1.5700 1.5000
|
|
||||||
</tableData>
|
|
||||||
</table>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
<function name="aero/coefficient/CDi">
|
|
||||||
<description>Induced_drag</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>aero/cl-squared</property>
|
|
||||||
<value>0.0400</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
<function name="aero/coefficient/CDbeta">
|
|
||||||
<description>Drag_due_to_sideslip</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<table>
|
|
||||||
<independentVar>aero/beta-rad</independentVar>
|
|
||||||
<tableData>
|
|
||||||
-1.5700 1.2300
|
|
||||||
-0.2600 0.0500
|
|
||||||
0.0000 0.0000
|
|
||||||
0.2600 0.0500
|
|
||||||
1.5700 1.2300
|
|
||||||
</tableData>
|
|
||||||
</table>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
<function name="aero/coefficient/CDde">
|
|
||||||
<description>Drag_due_to_Elevator_Deflection</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>fcs/elevator-pos-norm</property>
|
|
||||||
<value>0.0300</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
</axis>
|
|
||||||
|
|
||||||
<axis name="SIDE">
|
|
||||||
<function name="aero/coefficient/CYb">
|
|
||||||
<description>Side_force_due_to_beta</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>aero/beta-rad</property>
|
|
||||||
<value>-1.0000</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
</axis>
|
|
||||||
|
|
||||||
<axis name="LIFT">
|
|
||||||
<function name="aero/coefficient/CLalpha">
|
|
||||||
<description>Lift_due_to_alpha</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<table>
|
|
||||||
<independentVar>aero/alpha-rad</independentVar>
|
|
||||||
<tableData>
|
|
||||||
-0.2000 -0.7500
|
|
||||||
0.0000 0.2500
|
|
||||||
0.2300 1.4000
|
|
||||||
0.6000 0.7100
|
|
||||||
</tableData>
|
|
||||||
</table>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
<function name="aero/coefficient/CLde">
|
|
||||||
<description>Lift_due_to_Elevator_Deflection</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>fcs/elevator-pos-rad</property>
|
|
||||||
<value>0.2000</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
</axis>
|
|
||||||
|
|
||||||
<axis name="ROLL">
|
|
||||||
<function name="aero/coefficient/Clb">
|
|
||||||
<description>Roll_moment_due_to_beta</description>
|
|
||||||
<!-- aka dihedral effect -->
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>metrics/bw-ft</property>
|
|
||||||
<property>aero/beta-rad</property>
|
|
||||||
<value>-0.1000</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
<function name="aero/coefficient/Clp">
|
|
||||||
<description>Roll_moment_due_to_roll_rate</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>metrics/bw-ft</property>
|
|
||||||
<property>aero/bi2vel</property>
|
|
||||||
<property>velocities/p-aero-rad_sec</property>
|
|
||||||
<value>-0.4000</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
<function name="aero/coefficient/Clr">
|
|
||||||
<description>Roll_moment_due_to_yaw_rate</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>metrics/bw-ft</property>
|
|
||||||
<property>aero/bi2vel</property>
|
|
||||||
<property>velocities/r-aero-rad_sec</property>
|
|
||||||
<value>0.1500</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
<function name="aero/coefficient/Clda">
|
|
||||||
<description>Roll_moment_due_to_aileron</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>metrics/bw-ft</property>
|
|
||||||
<property>fcs/left-aileron-pos-rad</property>
|
|
||||||
<table>
|
|
||||||
<independentVar>velocities/mach</independentVar>
|
|
||||||
<tableData>
|
|
||||||
0.0000 0.1300
|
|
||||||
2.0000 0.0570
|
|
||||||
</tableData>
|
|
||||||
</table>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
<function name="aero/coefficient/Cldr">
|
|
||||||
<description>Roll_moment_due_to_rudder</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>metrics/bw-ft</property>
|
|
||||||
<property>fcs/rudder-pos-rad</property>
|
|
||||||
<value>0.0100</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
</axis>
|
|
||||||
|
|
||||||
<axis name="PITCH">
|
|
||||||
<function name="aero/coefficient/Cmalpha">
|
|
||||||
<description>Pitch_moment_due_to_alpha</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>metrics/cbarw-ft</property>
|
|
||||||
<property>aero/alpha-rad</property>
|
|
||||||
<value>-0.5000</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
<function name="aero/coefficient/Cmde">
|
|
||||||
<description>Pitch_moment_due_to_elevator</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>metrics/cbarw-ft</property>
|
|
||||||
<property>fcs/elevator-pos-rad</property>
|
|
||||||
<table>
|
|
||||||
<independentVar>velocities/mach</independentVar>
|
|
||||||
<tableData>
|
|
||||||
0.0000 -0.5000 <!-- was -1.1 -->
|
|
||||||
2.0000 -0.2750
|
|
||||||
</tableData>
|
|
||||||
</table>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
<function name="aero/coefficient/Cmq">
|
|
||||||
<description>Pitch_moment_due_to_pitch_rate</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>metrics/cbarw-ft</property>
|
|
||||||
<property>aero/ci2vel</property>
|
|
||||||
<property>velocities/q-aero-rad_sec</property>
|
|
||||||
<value>-12.0000</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
<function name="aero/coefficient/Cmadot">
|
|
||||||
<description>Pitch_moment_due_to_alpha_rate</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>metrics/cbarw-ft</property>
|
|
||||||
<property>aero/ci2vel</property>
|
|
||||||
<property>aero/alphadot-rad_sec</property>
|
|
||||||
<value>-7.0000</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
</axis>
|
|
||||||
|
|
||||||
<axis name="YAW">
|
|
||||||
<function name="aero/coefficient/Cnb">
|
|
||||||
<description>Yaw_moment_due_to_beta</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>metrics/bw-ft</property>
|
|
||||||
<property>aero/beta-rad</property>
|
|
||||||
<value>0.1200</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
<function name="aero/coefficient/Cnr">
|
|
||||||
<description>Yaw_moment_due_to_yaw_rate</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>metrics/bw-ft</property>
|
|
||||||
<property>aero/bi2vel</property>
|
|
||||||
<property>velocities/r-aero-rad_sec</property>
|
|
||||||
<value>-0.1500</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
<function name="aero/coefficient/Cndr">
|
|
||||||
<description>Yaw_moment_due_to_rudder</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>metrics/bw-ft</property>
|
|
||||||
<property>fcs/rudder-pos-rad</property>
|
|
||||||
<value>-0.0500</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
<function name="aero/coefficient/Cnda">
|
|
||||||
<description>Adverse_yaw</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>metrics/bw-ft</property>
|
|
||||||
<property>fcs/left-aileron-pos-rad</property>
|
|
||||||
<value>-0.0300</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
<function name="aero/coefficient/Cndi">
|
|
||||||
<description>Yaw_moment_due_to_tail_incidence</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>metrics/bw-ft</property>
|
|
||||||
<value>0.0007</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
</axis>
|
|
||||||
</aerodynamics>
|
|
||||||
</fdm_config>
|
|
|
@ -1,174 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<!--
|
|
||||||
************************************************************************
|
|
||||||
Rascal 110 R/C airplane config. This files ties together all the components
|
|
||||||
used by FGFS to represent the Rascal 110 (by Sig Mfg) including the flight
|
|
||||||
dynamics model, and external 3D model.
|
|
||||||
************************************************************************
|
|
||||||
-->
|
|
||||||
|
|
||||||
<PropertyList>
|
|
||||||
<sim>
|
|
||||||
|
|
||||||
<description>Rascal 110 (R/C)</description>
|
|
||||||
<author>Lee Elliot (3D) Dave Culp (JSBsim dynamics) and Curt Olson</author>
|
|
||||||
<aircraft-version>0.1</aircraft-version>
|
|
||||||
<model-hz>400</model-hz>
|
|
||||||
|
|
||||||
<startup>
|
|
||||||
<splash-texture>Aircraft/Rascal/Rascal110-splash.rgb</splash-texture>
|
|
||||||
</startup>
|
|
||||||
|
|
||||||
<flight-model>jsb</flight-model>
|
|
||||||
<aero>Rascal110-JSBSim</aero>
|
|
||||||
<fuel-fraction>0.8</fuel-fraction>
|
|
||||||
|
|
||||||
<systems>
|
|
||||||
<autopilot>
|
|
||||||
<path>Aircraft/Rascal/Systems/110-autopilot.xml</path>
|
|
||||||
</autopilot>
|
|
||||||
<electrical>
|
|
||||||
<path>Aircraft/Rascal/Systems/electrical.xml</path>
|
|
||||||
</electrical>
|
|
||||||
</systems>
|
|
||||||
|
|
||||||
<sound>
|
|
||||||
<path>Aircraft/Generic/generic-sound.xml</path>
|
|
||||||
</sound>
|
|
||||||
|
|
||||||
<panel>
|
|
||||||
<visibility archive="n">false</visibility>
|
|
||||||
</panel>
|
|
||||||
|
|
||||||
<model>
|
|
||||||
<path archive="y">Aircraft/Rascal/Models/Rascal110.xml</path>
|
|
||||||
</model>
|
|
||||||
|
|
||||||
<view>
|
|
||||||
<internal archive="y">true</internal>
|
|
||||||
<config>
|
|
||||||
<x-offset-m archive="y">0.0</x-offset-m>
|
|
||||||
<y-offset-m archive="y">-0.15</y-offset-m>
|
|
||||||
<z-offset-m archive="y">0.9</z-offset-m>
|
|
||||||
<pitch-offset-deg>0</pitch-offset-deg>
|
|
||||||
</config>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<submodels>
|
|
||||||
<serviceable type="bool">1</serviceable>
|
|
||||||
<path>Aircraft/Rascal/Rascal-submodels.xml</path>
|
|
||||||
</submodels>
|
|
||||||
|
|
||||||
<view n="1">
|
|
||||||
<config>
|
|
||||||
<target-z-offset-m archive="y" type="double">0.5</target-z-offset-m>
|
|
||||||
</config>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<view n="2">
|
|
||||||
<config>
|
|
||||||
<target-z-offset-m archive="y" type="double">0.5</target-z-offset-m>
|
|
||||||
</config>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<view n="3">
|
|
||||||
<config>
|
|
||||||
<target-z-offset-m archive="y" type="double">0.5</target-z-offset-m>
|
|
||||||
</config>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<view n="4">
|
|
||||||
<config>
|
|
||||||
<target-z-offset-m archive="y" type="double">0.5</target-z-offset-m>
|
|
||||||
</config>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<view n="5">
|
|
||||||
<config>
|
|
||||||
<target-z-offset-m archive="y" type="double">0.5</target-z-offset-m>
|
|
||||||
</config>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<view n="6">
|
|
||||||
<config>
|
|
||||||
<target-z-offset-m archive="y" type="double">0.5</target-z-offset-m>
|
|
||||||
</config>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<multiplay>
|
|
||||||
<chat_display>1</chat_display>
|
|
||||||
<generic>
|
|
||||||
<int type="bool">0</int> <!-- smoke -->
|
|
||||||
<int type="bool">0</int> <!-- trajectory markers -->
|
|
||||||
</generic>
|
|
||||||
</multiplay>
|
|
||||||
|
|
||||||
<help>
|
|
||||||
<title>Rascal 110 (Sig Mfg)</title>
|
|
||||||
<line>Cruise speed: 60 kts</line>
|
|
||||||
<line>Never-exceed (Vne): 85 kts</line>
|
|
||||||
<line>Best Glide (Vglide): 20 kts</line>
|
|
||||||
<line>Maneuvering (Va): 50 kts</line>
|
|
||||||
<line>Approach speed: 20-25 kts</line>
|
|
||||||
<line>Stall speed (Vs): 15 kts</line>
|
|
||||||
</help>
|
|
||||||
|
|
||||||
</sim>
|
|
||||||
|
|
||||||
<nasal>
|
|
||||||
<rascal>
|
|
||||||
<file>Aircraft/Rascal/Systems/main.nas</file>
|
|
||||||
<file>Aircraft/Rascal/Systems/airdata.nas</file>
|
|
||||||
<file>Aircraft/Rascal/Systems/ugear.nas</file>
|
|
||||||
<script>
|
|
||||||
setlistener("/sim/signals/fdm-initialized", func {
|
|
||||||
var left = screen.display.new(20, 10);
|
|
||||||
left.add("/apm/aileron");
|
|
||||||
left.add("/apm/elevator");
|
|
||||||
left.add("/apm/rudder");
|
|
||||||
left.add("/apm/throttle");
|
|
||||||
|
|
||||||
var right = screen.display.new(-250, 20);
|
|
||||||
right.add("/apm/pitch");
|
|
||||||
right.add("/apm/roll");
|
|
||||||
right.add("/apm/altitude");
|
|
||||||
right.add("/apm/heading");
|
|
||||||
right.add("/apm/airspeed");
|
|
||||||
right.add("/apm/groundspeed");
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
</rascal>
|
|
||||||
</nasal>
|
|
||||||
|
|
||||||
<yasim>
|
|
||||||
<Rascal110>
|
|
||||||
<pilot-lb>2</pilot-lb>
|
|
||||||
</Rascal110>
|
|
||||||
</yasim>
|
|
||||||
|
|
||||||
<input>
|
|
||||||
<keyboard include="Rascal-keyboard.xml"/>
|
|
||||||
</input>
|
|
||||||
|
|
||||||
<controls>
|
|
||||||
<flight>
|
|
||||||
<aileron-trim>-0.01</aileron-trim> <!-- fixed -->
|
|
||||||
<elevator-trim>0.00</elevator-trim> <!-- controllable -->
|
|
||||||
<rudder-trim>0.00</rudder-trim> <!-- fixed -->
|
|
||||||
</flight>
|
|
||||||
<engines>
|
|
||||||
<engine n="0">
|
|
||||||
<magnetos>3</magnetos>
|
|
||||||
</engine>
|
|
||||||
</engines>
|
|
||||||
<smoke alias="/sim/multiplay/generic/int[0]"/>
|
|
||||||
<trajectory-markers alias="/sim/multiplay/generic/int[1]"/>
|
|
||||||
</controls>
|
|
||||||
|
|
||||||
<engines>
|
|
||||||
<engine>
|
|
||||||
<rpm type="double">700</rpm>
|
|
||||||
</engine>
|
|
||||||
</engines>
|
|
||||||
|
|
||||||
</PropertyList>
|
|
|
@ -1,522 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<?xml-stylesheet href="http://jsbsim.sourceforge.net/JSBSim.xsl" type="text/xsl"?>
|
|
||||||
<fdm_config name="rascal" version="2.0" release="BETA"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
|
|
||||||
|
|
||||||
<fileheader>
|
|
||||||
<author> Author Name </author>
|
|
||||||
<filecreationdate> Creation Date </filecreationdate>
|
|
||||||
<version> Version </version>
|
|
||||||
<description> Models a rascal </description>
|
|
||||||
</fileheader>
|
|
||||||
|
|
||||||
<metrics>
|
|
||||||
<wingarea unit="FT2"> 10.57 </wingarea>
|
|
||||||
<wingspan unit="FT"> 9.17 </wingspan>
|
|
||||||
<chord unit="FT"> 1.15 </chord>
|
|
||||||
<htailarea unit="FT2"> 1.69 </htailarea>
|
|
||||||
<htailarm unit="FT"> 3.28 </htailarm>
|
|
||||||
<vtailarea unit="FT2"> 1.06 </vtailarea>
|
|
||||||
<vtailarm unit="FT"> 0 </vtailarm>
|
|
||||||
<location name="AERORP" unit="IN">
|
|
||||||
<x> 37.4 </x>
|
|
||||||
<y> 0 </y>
|
|
||||||
<z> 0 </z>
|
|
||||||
</location>
|
|
||||||
<location name="EYEPOINT" unit="IN">
|
|
||||||
<x> 20 </x>
|
|
||||||
<y> 0 </y>
|
|
||||||
<z> 5 </z>
|
|
||||||
</location>
|
|
||||||
<location name="VRP" unit="IN">
|
|
||||||
<x> 0 </x>
|
|
||||||
<y> 0 </y>
|
|
||||||
<z> 0 </z>
|
|
||||||
</location>
|
|
||||||
</metrics>
|
|
||||||
|
|
||||||
<mass_balance>
|
|
||||||
<ixx unit="SLUG*FT2"> 1.95 </ixx>
|
|
||||||
<iyy unit="SLUG*FT2"> 1.55 </iyy>
|
|
||||||
<izz unit="SLUG*FT2"> 1.91 </izz>
|
|
||||||
<ixy unit="SLUG*FT2"> 0 </ixy>
|
|
||||||
<ixz unit="SLUG*FT2"> 0 </ixz>
|
|
||||||
<iyz unit="SLUG*FT2"> 0 </iyz>
|
|
||||||
<emptywt unit="LBS"> 13 </emptywt>
|
|
||||||
<location name="CG" unit="IN">
|
|
||||||
<x> 36.4 </x>
|
|
||||||
<y> 0 </y>
|
|
||||||
<z> 4 </z>
|
|
||||||
</location>
|
|
||||||
</mass_balance>
|
|
||||||
|
|
||||||
<ground_reactions>
|
|
||||||
<contact type="BOGEY" name="LEFT_MLG">
|
|
||||||
<location unit="IN">
|
|
||||||
<x> 33.1 </x>
|
|
||||||
<y> -9.9 </y>
|
|
||||||
<z> -13.1 </z>
|
|
||||||
</location>
|
|
||||||
<static_friction> 0.8 </static_friction>
|
|
||||||
<dynamic_friction> 0.5 </dynamic_friction>
|
|
||||||
<rolling_friction> 0.02 </rolling_friction>
|
|
||||||
<spring_coeff unit="LBS/FT"> 120 </spring_coeff>
|
|
||||||
<damping_coeff unit="LBS/FT/SEC"> 20 </damping_coeff>
|
|
||||||
<max_steer unit="DEG"> 0.0 </max_steer>
|
|
||||||
<brake_group> LEFT </brake_group>
|
|
||||||
<retractable>0</retractable>
|
|
||||||
</contact>
|
|
||||||
<contact type="BOGEY" name="RIGHT_MLG">
|
|
||||||
<location unit="IN">
|
|
||||||
<x> 33.1 </x>
|
|
||||||
<y> 9.9 </y>
|
|
||||||
<z> -13.1 </z>
|
|
||||||
</location>
|
|
||||||
<static_friction> 0.8 </static_friction>
|
|
||||||
<dynamic_friction> 0.5 </dynamic_friction>
|
|
||||||
<rolling_friction> 0.02 </rolling_friction>
|
|
||||||
<spring_coeff unit="LBS/FT"> 120 </spring_coeff>
|
|
||||||
<damping_coeff unit="LBS/FT/SEC"> 20 </damping_coeff>
|
|
||||||
<max_steer unit="DEG"> 0.0 </max_steer>
|
|
||||||
<brake_group> RIGHT </brake_group>
|
|
||||||
<retractable>0</retractable>
|
|
||||||
</contact>
|
|
||||||
<contact type="BOGEY" name="TAIL_LG">
|
|
||||||
<location unit="IN">
|
|
||||||
<x> 68.9 </x>
|
|
||||||
<y> 0 </y>
|
|
||||||
<z> -3 </z>
|
|
||||||
</location>
|
|
||||||
<static_friction> 0.8 </static_friction>
|
|
||||||
<dynamic_friction> 0.5 </dynamic_friction>
|
|
||||||
<rolling_friction> 0.02 </rolling_friction>
|
|
||||||
<spring_coeff unit="LBS/FT"> 24 </spring_coeff>
|
|
||||||
<damping_coeff unit="LBS/FT/SEC"> 20 </damping_coeff>
|
|
||||||
<max_steer unit="DEG"> 360.0 </max_steer>
|
|
||||||
<brake_group> NONE </brake_group>
|
|
||||||
<retractable>0</retractable>
|
|
||||||
</contact>
|
|
||||||
</ground_reactions>
|
|
||||||
|
|
||||||
<propulsion>
|
|
||||||
<engine file="Zenoah_G-26A">
|
|
||||||
<location unit="IN">
|
|
||||||
<x> 36 </x>
|
|
||||||
<y> 0 </y>
|
|
||||||
<z> 0 </z>
|
|
||||||
</location>
|
|
||||||
<orient unit="DEG">
|
|
||||||
<roll> 0.0 </roll>
|
|
||||||
<pitch> 0 </pitch>
|
|
||||||
<yaw> 0 </yaw>
|
|
||||||
</orient>
|
|
||||||
<feed>0</feed>
|
|
||||||
<thruster file="18x8">
|
|
||||||
<location unit="IN">
|
|
||||||
<x> 1 </x>
|
|
||||||
<y> 0 </y>
|
|
||||||
<z> 0 </z>
|
|
||||||
</location>
|
|
||||||
<orient unit="DEG">
|
|
||||||
<roll> 0.0 </roll>
|
|
||||||
<pitch> 0.0 </pitch>
|
|
||||||
<yaw> 0.0 </yaw>
|
|
||||||
</orient>
|
|
||||||
<p_factor>1.0</p_factor>
|
|
||||||
</thruster>
|
|
||||||
</engine>
|
|
||||||
<tank type="FUEL"> <!-- Tank number 0 -->
|
|
||||||
<location unit="IN">
|
|
||||||
<x> 36.36 </x>
|
|
||||||
<y> 0 </y>
|
|
||||||
<z> -1.89375 </z>
|
|
||||||
</location>
|
|
||||||
<capacity unit="LBS"> 1.5 </capacity>
|
|
||||||
<contents unit="LBS"> 1.5 </contents>
|
|
||||||
</tank>
|
|
||||||
</propulsion>
|
|
||||||
|
|
||||||
<flight_control name="FCS: rascal">
|
|
||||||
<channel name="All">
|
|
||||||
|
|
||||||
<summer name="Pitch Trim Sum">
|
|
||||||
<input>fcs/elevator-cmd-norm</input>
|
|
||||||
<input>fcs/pitch-trim-cmd-norm</input>
|
|
||||||
<clipto>
|
|
||||||
<min>-1</min>
|
|
||||||
<max>1</max>
|
|
||||||
</clipto>
|
|
||||||
</summer>
|
|
||||||
|
|
||||||
<aerosurface_scale name="Elevator Control">
|
|
||||||
<input>fcs/pitch-trim-sum</input>
|
|
||||||
<range>
|
|
||||||
<min>-0.35</min>
|
|
||||||
<max>0.3</max>
|
|
||||||
</range>
|
|
||||||
<output>fcs/elevator-pos-rad</output>
|
|
||||||
</aerosurface_scale>
|
|
||||||
|
|
||||||
<aerosurface_scale name="Elevator Normalized">
|
|
||||||
<input>fcs/elevator-pos-rad</input>
|
|
||||||
<domain>
|
|
||||||
<min>-0.3</min>
|
|
||||||
<max> 0.3</max>
|
|
||||||
</domain>
|
|
||||||
<range>
|
|
||||||
<min>-1</min>
|
|
||||||
<max> 1</max>
|
|
||||||
</range>
|
|
||||||
<output>fcs/elevator-pos-norm</output>
|
|
||||||
</aerosurface_scale>
|
|
||||||
|
|
||||||
<summer name="Roll Trim Sum">
|
|
||||||
<input>fcs/aileron-cmd-norm</input>
|
|
||||||
<input>fcs/roll-trim-cmd-norm</input>
|
|
||||||
<clipto>
|
|
||||||
<min>-1</min>
|
|
||||||
<max>1</max>
|
|
||||||
</clipto>
|
|
||||||
</summer>
|
|
||||||
|
|
||||||
<aerosurface_scale name="Left Aileron Control">
|
|
||||||
<input>fcs/roll-trim-sum</input>
|
|
||||||
<range>
|
|
||||||
<min>-0.35</min>
|
|
||||||
<max>0.35</max>
|
|
||||||
</range>
|
|
||||||
<output>fcs/left-aileron-pos-rad</output>
|
|
||||||
</aerosurface_scale>
|
|
||||||
|
|
||||||
<aerosurface_scale name="Right Aileron Control">
|
|
||||||
<input>-fcs/roll-trim-sum</input>
|
|
||||||
<range>
|
|
||||||
<min>-0.35</min>
|
|
||||||
<max>0.35</max>
|
|
||||||
</range>
|
|
||||||
<output>fcs/right-aileron-pos-rad</output>
|
|
||||||
</aerosurface_scale>
|
|
||||||
|
|
||||||
<aerosurface_scale name="Left aileron Normalized">
|
|
||||||
<input>fcs/left-aileron-pos-rad</input>
|
|
||||||
<domain>
|
|
||||||
<min>-0.35</min>
|
|
||||||
<max> 0.35</max>
|
|
||||||
</domain>
|
|
||||||
<range>
|
|
||||||
<min>-1</min>
|
|
||||||
<max> 1</max>
|
|
||||||
</range>
|
|
||||||
<output>fcs/left-aileron-pos-norm</output>
|
|
||||||
</aerosurface_scale>
|
|
||||||
|
|
||||||
<aerosurface_scale name="Right aileron Normalized">
|
|
||||||
<input>fcs/right-aileron-pos-rad</input>
|
|
||||||
<domain>
|
|
||||||
<min>-0.35</min>
|
|
||||||
<max> 0.35</max>
|
|
||||||
</domain>
|
|
||||||
<range>
|
|
||||||
<min>-1</min>
|
|
||||||
<max> 1</max>
|
|
||||||
</range>
|
|
||||||
<output>fcs/right-aileron-pos-norm</output>
|
|
||||||
</aerosurface_scale>
|
|
||||||
|
|
||||||
<summer name="Rudder Command Sum">
|
|
||||||
<input>fcs/rudder-cmd-norm</input>
|
|
||||||
<input>fcs/yaw-trim-cmd-norm</input>
|
|
||||||
<clipto>
|
|
||||||
<min>-1</min>
|
|
||||||
<max>1</max>
|
|
||||||
</clipto>
|
|
||||||
</summer>
|
|
||||||
|
|
||||||
<aerosurface_scale name="Rudder Control">
|
|
||||||
<input>fcs/rudder-command-sum</input>
|
|
||||||
<range>
|
|
||||||
<min>-0.35</min>
|
|
||||||
<max>0.35</max>
|
|
||||||
</range>
|
|
||||||
<output>fcs/rudder-pos-rad</output>
|
|
||||||
</aerosurface_scale>
|
|
||||||
|
|
||||||
<aerosurface_scale name="Rudder Normalized">
|
|
||||||
<input>fcs/rudder-pos-rad</input>
|
|
||||||
<domain>
|
|
||||||
<min>-0.35</min>
|
|
||||||
<max> 0.35</max>
|
|
||||||
</domain>
|
|
||||||
<range>
|
|
||||||
<min>-1</min>
|
|
||||||
<max> 1</max>
|
|
||||||
</range>
|
|
||||||
<output>fcs/rudder-pos-norm</output>
|
|
||||||
</aerosurface_scale>
|
|
||||||
</channel>
|
|
||||||
</flight_control>
|
|
||||||
|
|
||||||
<aerodynamics>
|
|
||||||
<axis name="DRAG">
|
|
||||||
<function name="aero/coefficient/CD0">
|
|
||||||
<description>Drag_at_zero_lift</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<table>
|
|
||||||
<independentVar>aero/alpha-rad</independentVar>
|
|
||||||
<tableData>
|
|
||||||
-1.5700 1.5000
|
|
||||||
-0.2600 0.0560
|
|
||||||
0.0000 0.0280
|
|
||||||
0.2600 0.0560
|
|
||||||
1.5700 1.5000
|
|
||||||
</tableData>
|
|
||||||
</table>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
<function name="aero/coefficient/CDi">
|
|
||||||
<description>Induced_drag</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>aero/cl-squared</property>
|
|
||||||
<value>0.0400</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
<function name="aero/coefficient/CDbeta">
|
|
||||||
<description>Drag_due_to_sideslip</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<table>
|
|
||||||
<independentVar>aero/beta-rad</independentVar>
|
|
||||||
<tableData>
|
|
||||||
-1.5700 1.2300
|
|
||||||
-0.2600 0.0500
|
|
||||||
0.0000 0.0000
|
|
||||||
0.2600 0.0500
|
|
||||||
1.5700 1.2300
|
|
||||||
</tableData>
|
|
||||||
</table>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
<function name="aero/coefficient/CDde">
|
|
||||||
<description>Drag_due_to_Elevator_Deflection</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>fcs/elevator-pos-norm</property>
|
|
||||||
<value>0.0300</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
</axis>
|
|
||||||
|
|
||||||
<axis name="SIDE">
|
|
||||||
<function name="aero/coefficient/CYb">
|
|
||||||
<description>Side_force_due_to_beta</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>aero/beta-rad</property>
|
|
||||||
<value>-1.0000</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
</axis>
|
|
||||||
|
|
||||||
<axis name="LIFT">
|
|
||||||
<function name="aero/coefficient/CLalpha">
|
|
||||||
<description>Lift_due_to_alpha</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<table>
|
|
||||||
<independentVar>aero/alpha-rad</independentVar>
|
|
||||||
<tableData>
|
|
||||||
-0.2000 -0.7500
|
|
||||||
0.0000 0.2500
|
|
||||||
0.2300 1.4000
|
|
||||||
0.6000 0.7100
|
|
||||||
</tableData>
|
|
||||||
</table>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
<function name="aero/coefficient/CLde">
|
|
||||||
<description>Lift_due_to_Elevator_Deflection</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>fcs/elevator-pos-rad</property>
|
|
||||||
<value>0.2000</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
</axis>
|
|
||||||
|
|
||||||
<axis name="ROLL">
|
|
||||||
<function name="aero/coefficient/Clb">
|
|
||||||
<description>Roll_moment_due_to_beta</description>
|
|
||||||
<!-- aka dihedral effect -->
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>metrics/bw-ft</property>
|
|
||||||
<property>aero/beta-rad</property>
|
|
||||||
<value>-0.1000</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
<function name="aero/coefficient/Clp">
|
|
||||||
<description>Roll_moment_due_to_roll_rate</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>metrics/bw-ft</property>
|
|
||||||
<property>aero/bi2vel</property>
|
|
||||||
<property>velocities/p-aero-rad_sec</property>
|
|
||||||
<value>-0.4000</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
<function name="aero/coefficient/Clr">
|
|
||||||
<description>Roll_moment_due_to_yaw_rate</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>metrics/bw-ft</property>
|
|
||||||
<property>aero/bi2vel</property>
|
|
||||||
<property>velocities/r-aero-rad_sec</property>
|
|
||||||
<value>0.1500</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
<function name="aero/coefficient/Clda">
|
|
||||||
<description>Roll_moment_due_to_aileron</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>metrics/bw-ft</property>
|
|
||||||
<property>fcs/left-aileron-pos-rad</property>
|
|
||||||
<table>
|
|
||||||
<independentVar>velocities/mach</independentVar>
|
|
||||||
<tableData>
|
|
||||||
0.0000 0.1300
|
|
||||||
2.0000 0.0570
|
|
||||||
</tableData>
|
|
||||||
</table>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
<function name="aero/coefficient/Cldr">
|
|
||||||
<description>Roll_moment_due_to_rudder</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>metrics/bw-ft</property>
|
|
||||||
<property>fcs/rudder-pos-rad</property>
|
|
||||||
<value>0.0100</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
</axis>
|
|
||||||
|
|
||||||
<axis name="PITCH">
|
|
||||||
<function name="aero/coefficient/Cmalpha">
|
|
||||||
<description>Pitch_moment_due_to_alpha</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>metrics/cbarw-ft</property>
|
|
||||||
<property>aero/alpha-rad</property>
|
|
||||||
<value>-0.5000</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
<function name="aero/coefficient/Cmde">
|
|
||||||
<description>Pitch_moment_due_to_elevator</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>metrics/cbarw-ft</property>
|
|
||||||
<property>fcs/elevator-pos-rad</property>
|
|
||||||
<table>
|
|
||||||
<independentVar>velocities/mach</independentVar>
|
|
||||||
<tableData>
|
|
||||||
0.0000 -0.5000 <!-- was -1.1 -->
|
|
||||||
2.0000 -0.2750
|
|
||||||
</tableData>
|
|
||||||
</table>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
<function name="aero/coefficient/Cmq">
|
|
||||||
<description>Pitch_moment_due_to_pitch_rate</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>metrics/cbarw-ft</property>
|
|
||||||
<property>aero/ci2vel</property>
|
|
||||||
<property>velocities/q-aero-rad_sec</property>
|
|
||||||
<value>-12.0000</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
<function name="aero/coefficient/Cmadot">
|
|
||||||
<description>Pitch_moment_due_to_alpha_rate</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>metrics/cbarw-ft</property>
|
|
||||||
<property>aero/ci2vel</property>
|
|
||||||
<property>aero/alphadot-rad_sec</property>
|
|
||||||
<value>-7.0000</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
</axis>
|
|
||||||
|
|
||||||
<axis name="YAW">
|
|
||||||
<function name="aero/coefficient/Cnb">
|
|
||||||
<description>Yaw_moment_due_to_beta</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>metrics/bw-ft</property>
|
|
||||||
<property>aero/beta-rad</property>
|
|
||||||
<value>0.1200</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
<function name="aero/coefficient/Cnr">
|
|
||||||
<description>Yaw_moment_due_to_yaw_rate</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>metrics/bw-ft</property>
|
|
||||||
<property>aero/bi2vel</property>
|
|
||||||
<property>velocities/r-aero-rad_sec</property>
|
|
||||||
<value>-0.1500</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
<function name="aero/coefficient/Cndr">
|
|
||||||
<description>Yaw_moment_due_to_rudder</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>metrics/bw-ft</property>
|
|
||||||
<property>fcs/rudder-pos-rad</property>
|
|
||||||
<value>-0.0500</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
<function name="aero/coefficient/Cnda">
|
|
||||||
<description>Adverse_yaw</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>metrics/bw-ft</property>
|
|
||||||
<property>fcs/left-aileron-pos-rad</property>
|
|
||||||
<value>-0.0300</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
<function name="aero/coefficient/Cndi">
|
|
||||||
<description>Yaw_moment_due_to_tail_incidence</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<property>metrics/bw-ft</property>
|
|
||||||
<value>0.0007</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
</axis>
|
|
||||||
</aerodynamics>
|
|
||||||
</fdm_config>
|
|
Binary file not shown.
|
@ -1,767 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
|
|
||||||
<!-- Generic Autopilot Configuration -->
|
|
||||||
|
|
||||||
<!-- Each component is evaluated in the order specified. You can make up -->
|
|
||||||
<!-- property names to pass the result of one component on to a subsequent -->
|
|
||||||
<!-- component. -->
|
|
||||||
|
|
||||||
|
|
||||||
<PropertyList>
|
|
||||||
|
|
||||||
<!-- =============================================================== -->
|
|
||||||
<!-- Roll Axis Modes -->
|
|
||||||
<!-- =============================================================== -->
|
|
||||||
|
|
||||||
<!-- Wing leveler -->
|
|
||||||
<pid-controller>
|
|
||||||
<name>Wing Leveler (Turn Coordinator based)</name>
|
|
||||||
<debug>false</debug>
|
|
||||||
<enable>
|
|
||||||
<prop>/autopilot/locks/heading</prop>
|
|
||||||
<value>wing-leveler</value>
|
|
||||||
</enable>
|
|
||||||
<input>
|
|
||||||
<prop>/orientation/roll-deg</prop>
|
|
||||||
</input>
|
|
||||||
<reference>
|
|
||||||
<value>0.0</value>
|
|
||||||
</reference>
|
|
||||||
<output>
|
|
||||||
<prop>/controls/flight/aileron</prop>
|
|
||||||
</output>
|
|
||||||
<config>
|
|
||||||
<Kp>0.05</Kp> <!-- proportional gain -->
|
|
||||||
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
||||||
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
||||||
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
||||||
<!-- unfiltered derivative error -->
|
|
||||||
<Ti>0.5</Ti> <!-- integrator time -->
|
|
||||||
<Td>0.01</Td> <!-- derivator time -->
|
|
||||||
<u_min>-1.0</u_min> <!-- minimum output clamp -->
|
|
||||||
<u_max>1.0</u_max> <!-- maximum output clamp -->
|
|
||||||
</config>
|
|
||||||
</pid-controller>
|
|
||||||
|
|
||||||
<!-- Bank hold -->
|
|
||||||
<pid-controller>
|
|
||||||
<name>Bank Hold</name>
|
|
||||||
<debug>false</debug>
|
|
||||||
<enable>
|
|
||||||
<prop>/autopilot/locks/heading</prop>
|
|
||||||
<value>bank-hold</value>
|
|
||||||
</enable>
|
|
||||||
<input>
|
|
||||||
<prop>/orientation/roll-deg</prop>
|
|
||||||
</input>
|
|
||||||
<reference>
|
|
||||||
<prop>/autopilot/settings/target-bank-deg</prop>
|
|
||||||
</reference>
|
|
||||||
<output>
|
|
||||||
<prop>/controls/flight/aileron</prop>
|
|
||||||
</output>
|
|
||||||
<config>
|
|
||||||
<Kp>0.05</Kp> <!-- proportional gain -->
|
|
||||||
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
||||||
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
||||||
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
||||||
<!-- unfiltered derivative error -->
|
|
||||||
<Ti>0.5</Ti> <!-- integrator time -->
|
|
||||||
<Td>0.01</Td> <!-- derivator time -->
|
|
||||||
<u_min>-1.0</u_min> <!-- minimum output clamp -->
|
|
||||||
<u_max>1.0</u_max> <!-- maximum output clamp -->
|
|
||||||
</config>
|
|
||||||
</pid-controller>
|
|
||||||
|
|
||||||
<!-- Heading Bug Hold. 2 stage cascade controller. -->
|
|
||||||
|
|
||||||
<!-- Stage #1 sets target roll based on diff between current heading -->
|
|
||||||
<!-- and heading bug. -->
|
|
||||||
<pid-controller>
|
|
||||||
<name>Heading Bug Hold (DG based) Stage 1</name>
|
|
||||||
<debug>false</debug>
|
|
||||||
<enable>
|
|
||||||
<prop>/autopilot/locks/heading</prop>
|
|
||||||
<value>dg-heading-hold</value>
|
|
||||||
</enable>
|
|
||||||
<input>
|
|
||||||
<prop>/autopilot/internal/fdm-heading-bug-error-deg</prop>
|
|
||||||
</input>
|
|
||||||
<reference>
|
|
||||||
<value>0.0</value>
|
|
||||||
</reference>
|
|
||||||
<output>
|
|
||||||
<prop>/autopilot/internal/target-roll-deg</prop>
|
|
||||||
</output>
|
|
||||||
<config>
|
|
||||||
<Kp>-0.1</Kp> <!-- proportional gain -->
|
|
||||||
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
||||||
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
||||||
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
||||||
<!-- unfiltered derivative error -->
|
|
||||||
<Ti>10.0</Ti> <!-- integrator time -->
|
|
||||||
<Td>0.00001</Td> <!-- derivator time -->
|
|
||||||
<u_min>-20.0</u_min> <!-- minimum output clamp -->
|
|
||||||
<u_max>20.0</u_max> <!-- maximum output clamp -->
|
|
||||||
</config>
|
|
||||||
</pid-controller>
|
|
||||||
|
|
||||||
<!-- Stage #2 drives the ailerons to achieve the desired roll deg. -->
|
|
||||||
<pid-controller>
|
|
||||||
<name>Heading Bug Hold (DG based) Stage 2</name>
|
|
||||||
<debug>false</debug>
|
|
||||||
<enable>
|
|
||||||
<prop>/autopilot/locks/heading</prop>
|
|
||||||
<value>dg-heading-hold</value>
|
|
||||||
</enable>
|
|
||||||
<input>
|
|
||||||
<prop>/orientation/roll-deg</prop>
|
|
||||||
</input>
|
|
||||||
<reference>
|
|
||||||
<prop>/autopilot/internal/target-roll-deg</prop>
|
|
||||||
</reference>
|
|
||||||
<output>
|
|
||||||
<prop>/controls/flight/aileron</prop>
|
|
||||||
</output>
|
|
||||||
<config>
|
|
||||||
<Kp>0.05</Kp> <!-- proportional gain -->
|
|
||||||
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
||||||
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
||||||
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
||||||
<!-- unfiltered derivative error -->
|
|
||||||
<Ti>0.5</Ti> <!-- integrator time -->
|
|
||||||
<Td>0.01</Td> <!-- derivator time -->
|
|
||||||
<u_min>-1.0</u_min> <!-- minimum output clamp -->
|
|
||||||
<u_max>1.0</u_max> <!-- maximum output clamp -->
|
|
||||||
</config>
|
|
||||||
</pid-controller>
|
|
||||||
|
|
||||||
<!-- True Heading hold. 2 stage cascade controller. -->
|
|
||||||
|
|
||||||
<!-- Stage #1 sets target roll based on diff between current heading -->
|
|
||||||
<!-- and target heading. -->
|
|
||||||
<pid-controller>
|
|
||||||
<name>True Heading Hold (DG based) Stage 1</name>
|
|
||||||
<debug>false</debug>
|
|
||||||
<enable>
|
|
||||||
<prop>/autopilot/locks/heading</prop>
|
|
||||||
<value>true-heading-hold</value>
|
|
||||||
</enable>
|
|
||||||
<input>
|
|
||||||
<prop>/autopilot/internal/true-heading-error-deg</prop>
|
|
||||||
</input>
|
|
||||||
<reference>
|
|
||||||
<value>0.0</value>
|
|
||||||
</reference>
|
|
||||||
<output>
|
|
||||||
<prop>/autopilot/internal/target-roll-deg</prop>
|
|
||||||
</output>
|
|
||||||
<config>
|
|
||||||
<Kp>-1.0</Kp> <!-- proportional gain -->
|
|
||||||
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
||||||
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
||||||
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
||||||
<!-- unfiltered derivative error -->
|
|
||||||
<Ti>10.0</Ti> <!-- integrator time -->
|
|
||||||
<Td>0.00001</Td> <!-- derivator time -->
|
|
||||||
<u_min>-20.0</u_min> <!-- minimum output clamp -->
|
|
||||||
<u_max>20.0</u_max> <!-- maximum output clamp -->
|
|
||||||
</config>
|
|
||||||
</pid-controller>
|
|
||||||
|
|
||||||
<!-- Stage #2 drives the ailerons to achieve the desired roll deg. -->
|
|
||||||
<pid-controller>
|
|
||||||
<name>True Heading Hold (DG based) Stage 2</name>
|
|
||||||
<debug>false</debug>
|
|
||||||
<enable>
|
|
||||||
<prop>/autopilot/locks/heading</prop>
|
|
||||||
<value>true-heading-hold</value>
|
|
||||||
</enable>
|
|
||||||
<input>
|
|
||||||
<prop>/orientation/roll-deg</prop>
|
|
||||||
</input>
|
|
||||||
<reference>
|
|
||||||
<prop>/autopilot/internal/target-roll-deg</prop>
|
|
||||||
</reference>
|
|
||||||
<output>
|
|
||||||
<prop>/controls/flight/aileron</prop>
|
|
||||||
</output>
|
|
||||||
<config>
|
|
||||||
<Kp>0.05</Kp> <!-- proportional gain -->
|
|
||||||
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
||||||
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
||||||
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
||||||
<!-- unfiltered derivative error -->
|
|
||||||
<Ti>0.5</Ti> <!-- integrator time -->
|
|
||||||
<Td>0.01</Td> <!-- derivator time -->
|
|
||||||
<u_min>-1.0</u_min> <!-- minimum output clamp -->
|
|
||||||
<u_max>1.0</u_max> <!-- maximum output clamp -->
|
|
||||||
</config>
|
|
||||||
</pid-controller>
|
|
||||||
|
|
||||||
<!-- Nav1 hold. 2 stage cascade controller. -->
|
|
||||||
|
|
||||||
<!-- Stage #1 sets target roll based on diff between current heading -->
|
|
||||||
<!-- and target heading. -->
|
|
||||||
<pid-controller>
|
|
||||||
<name>Nav1 Hold Stage 1</name>
|
|
||||||
<debug>false</debug>
|
|
||||||
<enable>
|
|
||||||
<prop>/autopilot/locks/heading</prop>
|
|
||||||
<value>nav1-hold</value>
|
|
||||||
</enable>
|
|
||||||
<input>
|
|
||||||
<prop>/autopilot/internal/nav1-heading-error-deg</prop>
|
|
||||||
</input>
|
|
||||||
<reference>
|
|
||||||
<value>0.0</value>
|
|
||||||
</reference>
|
|
||||||
<output>
|
|
||||||
<prop>/autopilot/internal/target-roll-deg</prop>
|
|
||||||
</output>
|
|
||||||
<config>
|
|
||||||
<Kp>-1.0</Kp> <!-- proportional gain -->
|
|
||||||
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
||||||
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
||||||
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
||||||
<!-- unfiltered derivative error -->
|
|
||||||
<Ti>10.0</Ti> <!-- integrator time -->
|
|
||||||
<Td>0.00001</Td> <!-- derivator time -->
|
|
||||||
<u_min>-20.0</u_min> <!-- minimum output clamp -->
|
|
||||||
<u_max>20.0</u_max> <!-- maximum output clamp -->
|
|
||||||
</config>
|
|
||||||
</pid-controller>
|
|
||||||
|
|
||||||
<!-- Stage #2 drives the ailerons to achieve the desired roll deg. -->
|
|
||||||
<pid-controller>
|
|
||||||
<name>Nav1 Hold Stage 2</name>
|
|
||||||
<debug>false</debug>
|
|
||||||
<enable>
|
|
||||||
<prop>/autopilot/locks/heading</prop>
|
|
||||||
<value>nav1-hold</value>
|
|
||||||
</enable>
|
|
||||||
<input>
|
|
||||||
<prop>/orientation/roll-deg</prop>
|
|
||||||
</input>
|
|
||||||
<reference>
|
|
||||||
<prop>/autopilot/internal/target-roll-deg</prop>
|
|
||||||
</reference>
|
|
||||||
<output>
|
|
||||||
<prop>/controls/flight/aileron</prop>
|
|
||||||
</output>
|
|
||||||
<config>
|
|
||||||
<Kp>0.05</Kp> <!-- proportional gain -->
|
|
||||||
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
||||||
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
||||||
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
||||||
<!-- unfiltered derivative error -->
|
|
||||||
<Ti>0.5</Ti> <!-- integrator time -->
|
|
||||||
<Td>0.01</Td> <!-- derivator time -->
|
|
||||||
<u_min>-1.0</u_min> <!-- minimum output clamp -->
|
|
||||||
<u_max>1.0</u_max> <!-- maximum output clamp -->
|
|
||||||
</config>
|
|
||||||
</pid-controller>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- =============================================================== -->
|
|
||||||
<!-- Pitch Axis Modes -->
|
|
||||||
<!-- =============================================================== -->
|
|
||||||
|
|
||||||
<!-- Simple pitch hold -->
|
|
||||||
<pid-controller>
|
|
||||||
<name>Pitch hold</name>
|
|
||||||
<debug>false</debug>
|
|
||||||
<enable>
|
|
||||||
<prop>/autopilot/locks/altitude</prop>
|
|
||||||
<value>pitch-hold</value>
|
|
||||||
</enable>
|
|
||||||
<input>
|
|
||||||
<prop>/orientation/pitch-deg</prop>
|
|
||||||
</input>
|
|
||||||
<reference>
|
|
||||||
<prop>/autopilot/settings/target-pitch-deg</prop>
|
|
||||||
</reference>
|
|
||||||
<output>
|
|
||||||
<prop>/controls/flight/elevator-trim</prop>
|
|
||||||
</output>
|
|
||||||
<config>
|
|
||||||
<Kp>-0.05</Kp> <!-- proportional gain -->
|
|
||||||
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
||||||
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
||||||
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
||||||
<!-- unfiltered derivative error -->
|
|
||||||
<Ti>0.5</Ti> <!-- integrator time -->
|
|
||||||
<Td>0.001</Td> <!-- derivator time -->
|
|
||||||
<u_min>-1.0</u_min> <!-- minimum output clamp -->
|
|
||||||
<u_max>1.0</u_max> <!-- maximum output clamp -->
|
|
||||||
</config>
|
|
||||||
</pid-controller>
|
|
||||||
|
|
||||||
<!-- Simple pitch hold with yoke -->
|
|
||||||
<pid-controller>
|
|
||||||
<name>Pitch hold w/ yoke</name>
|
|
||||||
<debug>false</debug>
|
|
||||||
<enable>
|
|
||||||
<prop>/autopilot/locks/altitude</prop>
|
|
||||||
<value>pitch-hold-yoke</value>
|
|
||||||
</enable>
|
|
||||||
<input>
|
|
||||||
<prop>/orientation/pitch-deg</prop>
|
|
||||||
</input>
|
|
||||||
<reference>
|
|
||||||
<prop>/autopilot/settings/target-pitch-deg</prop>
|
|
||||||
</reference>
|
|
||||||
<output>
|
|
||||||
<prop>/controls/flight/elevator</prop>
|
|
||||||
</output>
|
|
||||||
<config>
|
|
||||||
<Kp>-0.05</Kp> <!-- proportional gain -->
|
|
||||||
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
||||||
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
||||||
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
||||||
<!-- unfiltered derivative error -->
|
|
||||||
<Ti>0.5</Ti> <!-- integrator time -->
|
|
||||||
<Td>0.001</Td> <!-- derivator time -->
|
|
||||||
<u_min>-1.0</u_min> <!-- minimum output clamp -->
|
|
||||||
<u_max>1.0</u_max> <!-- maximum output clamp -->
|
|
||||||
</config>
|
|
||||||
</pid-controller>
|
|
||||||
|
|
||||||
<!-- Simple angle of attack hold -->
|
|
||||||
<pid-controller>
|
|
||||||
<name>AOA hold</name>
|
|
||||||
<debug>false</debug>
|
|
||||||
<enable>
|
|
||||||
<prop>/autopilot/locks/altitude</prop>
|
|
||||||
<value>aoa-hold</value>
|
|
||||||
</enable>
|
|
||||||
<input>
|
|
||||||
<prop>/orientation/alpha-deg</prop>
|
|
||||||
</input>
|
|
||||||
<reference>
|
|
||||||
<prop>/autopilot/settings/target-aoa-deg</prop>
|
|
||||||
</reference>
|
|
||||||
<output>
|
|
||||||
<prop>/controls/flight/elevator-trim</prop>
|
|
||||||
</output>
|
|
||||||
<config>
|
|
||||||
<Kp>-0.05</Kp> <!-- proportional gain -->
|
|
||||||
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
||||||
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
||||||
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
||||||
<!-- unfiltered derivative error -->
|
|
||||||
<Ti>0.5</Ti> <!-- integrator time -->
|
|
||||||
<Td>0.001</Td> <!-- derivator time -->
|
|
||||||
<u_min>-1.0</u_min> <!-- minimum output clamp -->
|
|
||||||
<u_max>1.0</u_max> <!-- maximum output clamp -->
|
|
||||||
</config>
|
|
||||||
</pid-controller>
|
|
||||||
|
|
||||||
<!-- Altitude hold. 3 stage cascade controller. -->
|
|
||||||
|
|
||||||
<!-- Stage #1 sets target rate of climb based on diff between current alt -->
|
|
||||||
<!-- and target altitude. -->
|
|
||||||
<pi-simple-controller>
|
|
||||||
<name>Altitude Hold (Altimeter based) Stage 1</name>
|
|
||||||
<debug>false</debug>
|
|
||||||
<enable>
|
|
||||||
<prop>/autopilot/locks/altitude</prop>
|
|
||||||
<value>altitude-hold</value>
|
|
||||||
</enable>
|
|
||||||
<input>
|
|
||||||
<prop>/position/altitude-ft</prop>
|
|
||||||
</input>
|
|
||||||
<reference>
|
|
||||||
<prop>/autopilot/settings/target-altitude-ft</prop>
|
|
||||||
</reference>
|
|
||||||
<output>
|
|
||||||
<prop>/autopilot/internal/target-climb-rate-fps</prop>
|
|
||||||
</output>
|
|
||||||
<config>
|
|
||||||
<Kp>0.3</Kp> <!-- proportional gain -->
|
|
||||||
<Ki>0.0</Ki> <!-- integral gain -->
|
|
||||||
<u_min>-8.33</u_min> <!-- minimum output clamp -->
|
|
||||||
<u_max>8.33</u_max> <!-- maximum output clamp -->
|
|
||||||
</config>
|
|
||||||
</pi-simple-controller>
|
|
||||||
|
|
||||||
<!-- Stage #2 drives the target-pitch to achieve the desired climb -->
|
|
||||||
<!-- rate. -->
|
|
||||||
<pid-controller>
|
|
||||||
<name>Altitude Hold (Altimeter based) Stage 2</name>
|
|
||||||
<debug>false</debug>
|
|
||||||
<enable>
|
|
||||||
<prop>/autopilot/locks/altitude</prop>
|
|
||||||
<value>altitude-hold</value>
|
|
||||||
</enable>
|
|
||||||
<input>
|
|
||||||
<prop>/velocities/vertical-speed-fps</prop>
|
|
||||||
</input>
|
|
||||||
<reference>
|
|
||||||
<prop>/autopilot/internal/target-climb-rate-fps</prop>
|
|
||||||
</reference>
|
|
||||||
<output>
|
|
||||||
<prop>/autopilot/settings/target-pitch-deg</prop>
|
|
||||||
</output>
|
|
||||||
<config>
|
|
||||||
<Kp>0.5</Kp> <!-- proportional gain -->
|
|
||||||
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
||||||
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
||||||
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
||||||
<!-- unfiltered derivative error -->
|
|
||||||
<Ti>1.0</Ti> <!-- integrator time -->
|
|
||||||
<Td>0.00001</Td> <!-- derivator time -->
|
|
||||||
<u_min>-5.0</u_min> <!-- minimum output clamp -->
|
|
||||||
<u_max>5.0</u_max> <!-- maximum output clamp -->
|
|
||||||
</config>
|
|
||||||
</pid-controller>
|
|
||||||
|
|
||||||
<!-- Stage #3 drives the elevator trim to achieve the desired pitch -->
|
|
||||||
<!-- angle -->
|
|
||||||
<pid-controller>
|
|
||||||
<name>Pitch hold</name>
|
|
||||||
<debug>false</debug>
|
|
||||||
<enable>
|
|
||||||
<prop>/autopilot/locks/altitude</prop>
|
|
||||||
<value>altitude-hold</value>
|
|
||||||
<honor-passive>true</honor-passive>
|
|
||||||
</enable>
|
|
||||||
<input>
|
|
||||||
<prop>/orientation/pitch-deg</prop>
|
|
||||||
</input>
|
|
||||||
<reference>
|
|
||||||
<prop>/autopilot/settings/target-pitch-deg</prop>
|
|
||||||
</reference>
|
|
||||||
<output>
|
|
||||||
<prop>/controls/flight/elevator-trim</prop>
|
|
||||||
</output>
|
|
||||||
<config>
|
|
||||||
<Kp>-0.05</Kp> <!-- proportional gain -->
|
|
||||||
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
||||||
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
||||||
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
||||||
<!-- unfiltered derivative error -->
|
|
||||||
<Ti>0.5</Ti> <!-- integrator time -->
|
|
||||||
<Td>0.001</Td> <!-- derivator time -->
|
|
||||||
<u_min>-1.0</u_min> <!-- minimum output clamp -->
|
|
||||||
<u_max>1.0</u_max> <!-- maximum output clamp -->
|
|
||||||
</config>
|
|
||||||
</pid-controller>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- AGL hold. 2 stage cascade controller. -->
|
|
||||||
|
|
||||||
<!-- Stage #1 sets target rate of climb based on diff between current agl -->
|
|
||||||
<!-- and target agl. -->
|
|
||||||
<pid-controller>
|
|
||||||
<name>AGL Hold (Altimeter based) Stage 1</name>
|
|
||||||
<debug>false</debug>
|
|
||||||
<enable>
|
|
||||||
<prop>/autopilot/locks/altitude</prop>
|
|
||||||
<value>agl-hold</value>
|
|
||||||
</enable>
|
|
||||||
<input>
|
|
||||||
<prop>/position/altitude-agl-ft</prop>
|
|
||||||
</input>
|
|
||||||
<reference>
|
|
||||||
<prop>/autopilot/settings/target-agl-ft</prop>
|
|
||||||
</reference>
|
|
||||||
<output>
|
|
||||||
<prop>/autopilot/internal/target-climb-rate-fps</prop>
|
|
||||||
</output>
|
|
||||||
<config>
|
|
||||||
<Kp>1.0</Kp> <!-- proportional gain -->
|
|
||||||
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
||||||
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
||||||
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
||||||
<!-- unfiltered derivative error -->
|
|
||||||
<Ti>25.0</Ti> <!-- integrator time -->
|
|
||||||
<Td>0.000000001</Td> <!-- derivator time -->
|
|
||||||
<u_min>-16.67</u_min> <!-- minimum output clamp -->
|
|
||||||
<u_max>8.33</u_max> <!-- maximum output clamp -->
|
|
||||||
</config>
|
|
||||||
</pid-controller>
|
|
||||||
|
|
||||||
<!-- Stage #2 drives the elevator-trim to achieve the desired climb rate. -->
|
|
||||||
<pid-controller>
|
|
||||||
<name>Altitude Hold (Altimeter based) Stage 2</name>
|
|
||||||
<debug>false</debug>
|
|
||||||
<enable>
|
|
||||||
<prop>/autopilot/locks/altitude</prop>
|
|
||||||
<value>agl-hold</value>
|
|
||||||
</enable>
|
|
||||||
<input>
|
|
||||||
<prop>/velocities/vertical-speed-fps</prop>
|
|
||||||
</input>
|
|
||||||
<reference>
|
|
||||||
<prop>/autopilot/internal/target-climb-rate-fps</prop>
|
|
||||||
</reference>
|
|
||||||
<output>
|
|
||||||
<prop>/controls/flight/elevator-trim</prop>
|
|
||||||
</output>
|
|
||||||
<config>
|
|
||||||
<Kp>-0.05</Kp> <!-- proportional gain -->
|
|
||||||
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
||||||
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
||||||
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
||||||
<!-- unfiltered derivative error -->
|
|
||||||
<Ti>0.5</Ti> <!-- integrator time -->
|
|
||||||
<Td>0.001</Td> <!-- derivator time -->
|
|
||||||
<u_min>-1.0</u_min> <!-- minimum output clamp -->
|
|
||||||
<u_max>1.0</u_max> <!-- maximum output clamp -->
|
|
||||||
</config>
|
|
||||||
</pid-controller>
|
|
||||||
|
|
||||||
<!-- Glideslope hold. -->
|
|
||||||
|
|
||||||
<!-- Stage #2 drives the elevator-trim to achieve the desired climb rate. -->
|
|
||||||
<pid-controller>
|
|
||||||
<name>Glideslop Hold</name>
|
|
||||||
<debug>false</debug>
|
|
||||||
<enable>
|
|
||||||
<prop>/autopilot/locks/altitude</prop>
|
|
||||||
<value>gs1-hold</value>
|
|
||||||
</enable>
|
|
||||||
<input>
|
|
||||||
<prop>/velocities/vertical-speed-fps</prop>
|
|
||||||
</input>
|
|
||||||
<reference>
|
|
||||||
<prop>/instrumentation/nav[0]/gs-rate-of-climb</prop>
|
|
||||||
</reference>
|
|
||||||
<output>
|
|
||||||
<prop>/controls/flight/elevator-trim</prop>
|
|
||||||
</output>
|
|
||||||
<config>
|
|
||||||
<Kp>-0.05</Kp> <!-- proportional gain -->
|
|
||||||
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
||||||
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
||||||
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
||||||
<!-- unfiltered derivative error -->
|
|
||||||
<Ti>0.5</Ti> <!-- integrator time -->
|
|
||||||
<Td>0.001</Td> <!-- derivator time -->
|
|
||||||
<u_min>-1.0</u_min> <!-- minimum output clamp -->
|
|
||||||
<u_max>1.0</u_max> <!-- maximum output clamp -->
|
|
||||||
</config>
|
|
||||||
</pid-controller>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- =============================================================== -->
|
|
||||||
<!-- Velocity Modes -->
|
|
||||||
<!-- =============================================================== -->
|
|
||||||
|
|
||||||
<!-- Auto throttle -->
|
|
||||||
<pid-controller>
|
|
||||||
<name>Auto Throttle (5 sec lookahead)</name>
|
|
||||||
<debug>false</debug>
|
|
||||||
<enable>
|
|
||||||
<prop>/autopilot/locks/speed</prop>
|
|
||||||
<value>speed-with-throttle</value>
|
|
||||||
</enable>
|
|
||||||
<input>
|
|
||||||
<!-- <prop>/autopilot/internal/lookahead-5-sec-airspeed-kt</prop> -->
|
|
||||||
<prop>/velocities/airspeed-kt</prop>
|
|
||||||
</input>
|
|
||||||
<reference>
|
|
||||||
<prop>/autopilot/settings/target-speed-kt</prop>
|
|
||||||
</reference>
|
|
||||||
<output>
|
|
||||||
<prop>/controls/engines/engine[0]/throttle</prop>
|
|
||||||
<prop>/controls/engines/engine[1]/throttle</prop>
|
|
||||||
<prop>/controls/engines/engine[2]/throttle</prop>
|
|
||||||
<prop>/controls/engines/engine[3]/throttle</prop>
|
|
||||||
<prop>/controls/engines/engine[4]/throttle</prop>
|
|
||||||
<prop>/controls/engines/engine[5]/throttle</prop>
|
|
||||||
<prop>/controls/engines/engine[6]/throttle</prop>
|
|
||||||
<prop>/controls/engines/engine[7]/throttle</prop>
|
|
||||||
</output>
|
|
||||||
<config>
|
|
||||||
<Kp>0.1</Kp> <!-- proportional gain -->
|
|
||||||
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
||||||
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
||||||
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
||||||
<!-- unfiltered derivative error -->
|
|
||||||
<Ti>1.0</Ti> <!-- integrator time -->
|
|
||||||
<Td>0.001</Td> <!-- derivator time -->
|
|
||||||
<u_min>0.0</u_min> <!-- minimum output clamp -->
|
|
||||||
<u_max>1.0</u_max> <!-- maximum output clamp -->
|
|
||||||
</config>
|
|
||||||
</pid-controller>
|
|
||||||
|
|
||||||
<!-- Hold speed by varying pitch trim (Two stage cascading controller) -->
|
|
||||||
<pid-controller>
|
|
||||||
<name>Speed hold (vary pitch trim) Stage #1</name>
|
|
||||||
<debug>false</debug>
|
|
||||||
<enable>
|
|
||||||
<prop>/autopilot/locks/speed</prop>
|
|
||||||
<value>speed-with-pitch-trim</value>
|
|
||||||
</enable>
|
|
||||||
<input>
|
|
||||||
<!-- <prop>/autopilot/internal/lookahead-5-sec-airspeed-kt</prop> -->
|
|
||||||
<prop>/velocities/airspeed-kt</prop>
|
|
||||||
</input>
|
|
||||||
<reference>
|
|
||||||
<prop>/autopilot/settings/target-speed-kt</prop>
|
|
||||||
</reference>
|
|
||||||
<output>
|
|
||||||
<prop>/autopilot/settings/target-pitch-deg</prop>
|
|
||||||
</output>
|
|
||||||
<config>
|
|
||||||
<Kp>-1.0</Kp> <!-- proportional gain -->
|
|
||||||
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
||||||
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
||||||
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
||||||
<!-- unfiltered derivative error -->
|
|
||||||
<Ti>2.0</Ti> <!-- integrator time -->
|
|
||||||
<Td>0.00001</Td> <!-- derivator time -->
|
|
||||||
<u_min>-15.0</u_min><!-- minimum output clamp -->
|
|
||||||
<u_max>15.0</u_max> <!-- maximum output clamp -->
|
|
||||||
</config>
|
|
||||||
</pid-controller>
|
|
||||||
|
|
||||||
<pid-controller>
|
|
||||||
<name>Speed hold (vary pitch trim) Stage #2</name>
|
|
||||||
<debug>false</debug>
|
|
||||||
<enable>
|
|
||||||
<prop>/autopilot/locks/speed</prop>
|
|
||||||
<value>speed-with-pitch-trim</value>
|
|
||||||
</enable>
|
|
||||||
<input>
|
|
||||||
<prop>/orientation/pitch-deg</prop>
|
|
||||||
</input>
|
|
||||||
<reference>
|
|
||||||
<prop>/autopilot/settings/target-pitch-deg</prop>
|
|
||||||
</reference>
|
|
||||||
<output>
|
|
||||||
<prop>/controls/flight/elevator-trim</prop>
|
|
||||||
</output>
|
|
||||||
<config>
|
|
||||||
<Kp>-0.05</Kp> <!-- proportional gain -->
|
|
||||||
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
||||||
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
||||||
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
||||||
<!-- unfiltered derivative error -->
|
|
||||||
<Ti>0.5</Ti> <!-- integrator time -->
|
|
||||||
<Td>0.001</Td> <!-- derivator time -->
|
|
||||||
<u_min>-1.0</u_min> <!-- minimum output clamp -->
|
|
||||||
<u_max>1.0</u_max> <!-- maximum output clamp -->
|
|
||||||
</config>
|
|
||||||
</pid-controller>
|
|
||||||
|
|
||||||
<!-- Hold speed by varying elevator (2 stage cascading controller)-->
|
|
||||||
|
|
||||||
<!-- Stage 1, command a forward acceleration rate based on velocity error -->
|
|
||||||
<pi-simple-controller>
|
|
||||||
<name>Speed hold (vary elevator)</name>
|
|
||||||
<debug>false</debug>
|
|
||||||
<enable>
|
|
||||||
<prop>/autopilot/locks/speed</prop>
|
|
||||||
<value>speed-with-pitch-yoke</value>
|
|
||||||
</enable>
|
|
||||||
<input>
|
|
||||||
<prop>/velocities/airspeed-kt</prop>
|
|
||||||
</input>
|
|
||||||
<reference>
|
|
||||||
<prop>/autopilot/settings/target-speed-kt</prop>
|
|
||||||
</reference>
|
|
||||||
<output>
|
|
||||||
<prop>/autopilot/settings/target-accel-ktps</prop>
|
|
||||||
</output>
|
|
||||||
<config>
|
|
||||||
<Kp>0.2</Kp> <!-- proportional gain -->
|
|
||||||
<Ki>0.0</Ki> <!-- integral gain -->
|
|
||||||
<u_min>-1.0</u_min> <!-- minimum output clamp -->
|
|
||||||
<u_max>1.0</u_max> <!-- maximum output clamp -->
|
|
||||||
</config>
|
|
||||||
</pi-simple-controller>
|
|
||||||
|
|
||||||
<!-- Stage 2, command elevator to achieve target acceleration rate -->
|
|
||||||
<pid-controller>
|
|
||||||
<name>Speed hold (vary elevator)</name>
|
|
||||||
<debug>false</debug>
|
|
||||||
<enable>
|
|
||||||
<prop>/autopilot/locks/speed</prop>
|
|
||||||
<value>speed-with-pitch-yoke</value>
|
|
||||||
</enable>
|
|
||||||
<input>
|
|
||||||
<prop>/accelerations/airspeed-ktps</prop>
|
|
||||||
</input>
|
|
||||||
<reference>
|
|
||||||
<prop>//autopilot/settings/target-accel-ktps</prop>
|
|
||||||
</reference>
|
|
||||||
<output>
|
|
||||||
<prop>/controls/flight/elevator</prop>
|
|
||||||
</output>
|
|
||||||
<config>
|
|
||||||
<Kp>0.02</Kp> <!-- proportional gain -->
|
|
||||||
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
||||||
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
||||||
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
||||||
<!-- unfiltered derivative error -->
|
|
||||||
<Ti>8.0</Ti> <!-- integrator time -->
|
|
||||||
<Td>0.001</Td> <!-- derivator time -->
|
|
||||||
<u_min>-0.25</u_min> <!-- minimum output clamp -->
|
|
||||||
<u_max>0.25</u_max> <!-- maximum output clamp -->
|
|
||||||
</config>
|
|
||||||
</pid-controller>
|
|
||||||
|
|
||||||
<!-- Hold speed by varying pitch via yoke (Two stage cascading controller) -->
|
|
||||||
<pid-controller>
|
|
||||||
<name>Speed hold (vary pitch via yoke) Stage #1</name>
|
|
||||||
<debug>false</debug>
|
|
||||||
<enable>
|
|
||||||
<prop>/autopilot/locks/speed</prop>
|
|
||||||
<value>speed-with-pitch-yoke-pitch</value>
|
|
||||||
</enable>
|
|
||||||
<input>
|
|
||||||
<!-- <prop>/autopilot/internal/lookahead-5-sec-airspeed-kt</prop> -->
|
|
||||||
<prop>/velocities/airspeed-kt</prop>
|
|
||||||
</input>
|
|
||||||
<reference>
|
|
||||||
<prop>/autopilot/settings/target-speed-kt</prop>
|
|
||||||
</reference>
|
|
||||||
<output>
|
|
||||||
<prop>/autopilot/settings/target-pitch-deg</prop>
|
|
||||||
</output>
|
|
||||||
<config>
|
|
||||||
<Kp>-1.0</Kp> <!-- proportional gain -->
|
|
||||||
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
||||||
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
||||||
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
||||||
<!-- unfiltered derivative error -->
|
|
||||||
<Ti>2.0</Ti> <!-- integrator time -->
|
|
||||||
<Td>0.00001</Td> <!-- derivator time -->
|
|
||||||
<u_min>-15.0</u_min><!-- minimum output clamp -->
|
|
||||||
<u_max>15.0</u_max> <!-- maximum output clamp -->
|
|
||||||
</config>
|
|
||||||
</pid-controller>
|
|
||||||
|
|
||||||
<pid-controller>
|
|
||||||
<name>Speed hold (vary pitch via yoke) Stage #2</name>
|
|
||||||
<debug>false</debug>
|
|
||||||
<enable>
|
|
||||||
<prop>/autopilot/locks/speed</prop>
|
|
||||||
<value>speed-with-pitch-yoke-pitch</value>
|
|
||||||
</enable>
|
|
||||||
<input>
|
|
||||||
<prop>/orientation/pitch-deg</prop>
|
|
||||||
</input>
|
|
||||||
<reference>
|
|
||||||
<prop>/autopilot/settings/target-pitch-deg</prop>
|
|
||||||
</reference>
|
|
||||||
<output>
|
|
||||||
<prop>/controls/flight/elevator</prop>
|
|
||||||
</output>
|
|
||||||
<config>
|
|
||||||
<Kp>-0.05</Kp> <!-- proportional gain -->
|
|
||||||
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
||||||
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
||||||
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
||||||
<!-- unfiltered derivative error -->
|
|
||||||
<Ti>0.5</Ti> <!-- integrator time -->
|
|
||||||
<Td>0.001</Td> <!-- derivator time -->
|
|
||||||
<u_min>-1.0</u_min> <!-- minimum output clamp -->
|
|
||||||
<u_max>1.0</u_max> <!-- maximum output clamp -->
|
|
||||||
</config>
|
|
||||||
</pid-controller>
|
|
||||||
|
|
||||||
</PropertyList>
|
|
|
@ -1,72 +0,0 @@
|
||||||
var last_time = 0.0;
|
|
||||||
var last_speed = 0.0;
|
|
||||||
var speed_sensed = 0.0;
|
|
||||||
var sensor_step = 1.0;
|
|
||||||
var speed_filt = 0.0;
|
|
||||||
var accel_filt = 0.0;
|
|
||||||
|
|
||||||
var compute_airspeed_accel = func( speed_filt, dt ) {
|
|
||||||
# print ( "computing forward acceleration ", dt );
|
|
||||||
|
|
||||||
var delta_speed = speed_filt - last_speed;
|
|
||||||
last_speed = speed_filt;
|
|
||||||
|
|
||||||
var accel = delta_speed / dt;
|
|
||||||
|
|
||||||
return accel;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
var update_airdata = func( dt ) {
|
|
||||||
# crude model of a noisy electronic pitot tube
|
|
||||||
sensed_speed = getprop("/velocities/airspeed-kt");
|
|
||||||
var r = rand();
|
|
||||||
if ( r < 0.3333 ) {
|
|
||||||
sensed_speed = sensed_speed - sensor_step;
|
|
||||||
} elsif ( r > 0.6666 ) {
|
|
||||||
sensed_speed = sensed_speed + sensor_step;
|
|
||||||
}
|
|
||||||
|
|
||||||
speed_filt = 0.97 * speed_filt + 0.03 * sensed_speed;
|
|
||||||
|
|
||||||
var sensed_accel = 0.0;
|
|
||||||
if ( dt > 0 ) {
|
|
||||||
sensed_accel = compute_airspeed_accel( speed_filt, dt );
|
|
||||||
}
|
|
||||||
|
|
||||||
accel_filt = 0.97 * accel_filt + 0.03 * sensed_accel;
|
|
||||||
|
|
||||||
setprop("/accelerations/airspeed-ktps", accel_filt);
|
|
||||||
}
|
|
||||||
|
|
||||||
round10 = func(v) {
|
|
||||||
if (v == nil) return 0;
|
|
||||||
return 0.1*int(v*10);
|
|
||||||
}
|
|
||||||
|
|
||||||
round100 = func(v) {
|
|
||||||
if (v == nil) return 0;
|
|
||||||
return 0.01*int(v*100);
|
|
||||||
}
|
|
||||||
|
|
||||||
var update_vars = func( dt ) {
|
|
||||||
asl_ft = getprop("/position/altitude-ft");
|
|
||||||
ground = getprop("/position/ground-elev-ft");
|
|
||||||
agl_m = (asl_ft - ground) * 0.3048;
|
|
||||||
|
|
||||||
setprop("/apm/altitude", round10(agl_m));
|
|
||||||
|
|
||||||
setprop("/apm/pitch", round10(getprop("/orientation/pitch-deg")));
|
|
||||||
setprop("/apm/roll", round10(getprop("/orientation/roll-deg")));
|
|
||||||
setprop("/apm/heading", round10(getprop("/orientation/heading-deg")));
|
|
||||||
|
|
||||||
setprop("/apm/aileron", round100(getprop("/surface-positions/right-aileron-pos-norm")));
|
|
||||||
setprop("/apm/elevator", round100(getprop("/surface-positions/elevator-pos-norm")));
|
|
||||||
setprop("/apm/rudder", round100(getprop("/surface-positions/rudder-pos-norm")));
|
|
||||||
setprop("/apm/throttle", round10(getprop("/engines/engine/rpm")));
|
|
||||||
|
|
||||||
setprop("/apm/groundspeed", round10(0.514444444*getprop("/instrumentation/gps/indicated-ground-speed-kt")));
|
|
||||||
|
|
||||||
# airspeed-kt is actually in feet per second (FDM NET bug)
|
|
||||||
setprop("/apm/airspeed", round10(0.3048*getprop("/velocities/airspeed-kt")));
|
|
||||||
}
|
|
|
@ -1,140 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
|
|
||||||
<!-- The cub doesn't really have an electrical system but let's give -->
|
|
||||||
<!-- it a little bit of something since we don't have a virtual ground -->
|
|
||||||
<!-- crew to go out and flip the prop for us. -->
|
|
||||||
|
|
||||||
<PropertyList>
|
|
||||||
|
|
||||||
<!-- Supplier list -->
|
|
||||||
|
|
||||||
<supplier>
|
|
||||||
<name>Battery 1</name>
|
|
||||||
<prop>/systems/electrical/suppliers/battery[0]</prop>
|
|
||||||
<kind>battery</kind>
|
|
||||||
<volts>28</volts> <!-- needs to be > 24.5, but this is a guess -->
|
|
||||||
<amps>60</amps> <!-- I have no idea! -->
|
|
||||||
</supplier>
|
|
||||||
|
|
||||||
<supplier>
|
|
||||||
<name>Alternator 1</name>
|
|
||||||
<prop>/systems/electrical/suppliers/alternator[0]</prop>
|
|
||||||
<kind>alternator</kind>
|
|
||||||
<rpm-source>/engines/engine[0]/rpm</rpm-source>
|
|
||||||
<volts>28</volts> <!-- stubbed in -->
|
|
||||||
<amps>60</amps> <!-- from the 172S Skyhawk Information Manual -->
|
|
||||||
</supplier>
|
|
||||||
|
|
||||||
<!-- Bus list -->
|
|
||||||
|
|
||||||
<bus>
|
|
||||||
<name>Master Bus</name>
|
|
||||||
<prop>/systems/electrical/outputs/bus[0]</prop>
|
|
||||||
<prop>/systems/electrical/outputs/transponder</prop>
|
|
||||||
</bus>
|
|
||||||
|
|
||||||
<!-- Generic Outputs -->
|
|
||||||
|
|
||||||
<output>
|
|
||||||
<name>Starter 1 Power</name>
|
|
||||||
<prop>/systems/electrical/outputs/starter[0]</prop>
|
|
||||||
</output>
|
|
||||||
|
|
||||||
<output>
|
|
||||||
<name>Landing Light Power</name>
|
|
||||||
<prop>/systems/electrical/outputs/landing-light</prop>
|
|
||||||
</output>
|
|
||||||
|
|
||||||
<output>
|
|
||||||
<name>Beacon Power</name>
|
|
||||||
<prop>/systems/electrical/outputs/beacon</prop>
|
|
||||||
</output>
|
|
||||||
|
|
||||||
<output>
|
|
||||||
<name>Strobe Lights Power</name>
|
|
||||||
<prop>/systems/electrical/outputs/strobe-lights</prop>
|
|
||||||
</output>
|
|
||||||
|
|
||||||
<output>
|
|
||||||
<name>Taxi Lights Power</name>
|
|
||||||
<prop>/systems/electrical/outputs/taxi-lights</prop>
|
|
||||||
</output>
|
|
||||||
|
|
||||||
<output>
|
|
||||||
<name>Pitot Heat Power</name>
|
|
||||||
<prop>/systems/electrical/outputs/pitot-heat</prop>
|
|
||||||
</output>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- connect in power sources -->
|
|
||||||
|
|
||||||
<connector>
|
|
||||||
<input>Alternator 1</input>
|
|
||||||
<output>Master Bus</output>
|
|
||||||
<switch>
|
|
||||||
<prop>/controls/engines/engine[0]/master-alt</prop>
|
|
||||||
</switch>
|
|
||||||
</connector>
|
|
||||||
|
|
||||||
<connector>
|
|
||||||
<input>Battery 1</input>
|
|
||||||
<output>Master Bus</output>
|
|
||||||
<switch>
|
|
||||||
<prop>/controls/engines/engine[0]/master-bat</prop>
|
|
||||||
</switch>
|
|
||||||
</connector>
|
|
||||||
|
|
||||||
<!-- connect starter output -->
|
|
||||||
|
|
||||||
<connector>
|
|
||||||
<input>Master Bus</input>
|
|
||||||
<output>Starter 1 Power</output>
|
|
||||||
<switch>
|
|
||||||
<prop>/controls/engines/engine[0]/starter</prop>
|
|
||||||
<initial-state>off</initial-state>
|
|
||||||
</switch>
|
|
||||||
</connector>
|
|
||||||
|
|
||||||
<!-- connect master bus outputs -->
|
|
||||||
|
|
||||||
<connector>
|
|
||||||
<input>Master Bus</input>
|
|
||||||
<output>Landing Light Power</output>
|
|
||||||
<switch>
|
|
||||||
<prop>/controls/switches/landing-light</prop>
|
|
||||||
</switch>
|
|
||||||
</connector>
|
|
||||||
|
|
||||||
<connector>
|
|
||||||
<input>Master Bus</input>
|
|
||||||
<output>Beacon Power</output>
|
|
||||||
<switch>
|
|
||||||
<prop>/controls/switches/flashing-beacon</prop>
|
|
||||||
</switch>
|
|
||||||
</connector>
|
|
||||||
|
|
||||||
<connector>
|
|
||||||
<input>Master Bus</input>
|
|
||||||
<output>Strobe Lights Power</output>
|
|
||||||
<switch>
|
|
||||||
<prop>/controls/switches/strobe-lights</prop>
|
|
||||||
</switch>
|
|
||||||
</connector>
|
|
||||||
|
|
||||||
<connector>
|
|
||||||
<input>Master Bus</input>
|
|
||||||
<output>Taxi Lights Power</output>
|
|
||||||
<switch>
|
|
||||||
<prop>/controls/switches/taxi-lights</prop>
|
|
||||||
</switch>
|
|
||||||
</connector>
|
|
||||||
|
|
||||||
<connector>
|
|
||||||
<input>Master Bus</input>
|
|
||||||
<output>Pitot Heat Power</output>
|
|
||||||
<switch>
|
|
||||||
<prop>/controls/switches/pitot-heat</prop>
|
|
||||||
</switch>
|
|
||||||
</connector>
|
|
||||||
|
|
||||||
</PropertyList>
|
|
|
@ -1,23 +0,0 @@
|
||||||
var dialog = gui.Dialog.new("/sim/gui/dialogs/rascal/config/dialog",
|
|
||||||
"Aircraft/Rascal/Dialogs/config.xml");
|
|
||||||
|
|
||||||
var last_time = 0.0;
|
|
||||||
|
|
||||||
|
|
||||||
var main_loop = func {
|
|
||||||
var time = getprop("/sim/time/elapsed-sec");
|
|
||||||
var dt = time - last_time;
|
|
||||||
last_time = time;
|
|
||||||
|
|
||||||
update_airdata( dt );
|
|
||||||
update_vars( dt );
|
|
||||||
update_ugear( dt );
|
|
||||||
|
|
||||||
settimer(main_loop, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
setlistener("/sim/signals/fdm-initialized",
|
|
||||||
func {
|
|
||||||
main_loop();
|
|
||||||
});
|
|
|
@ -1,54 +0,0 @@
|
||||||
var update_ugear = func( dt ) {
|
|
||||||
var max_zoom_rate = 10*dt;
|
|
||||||
var max_pan_rate = 30*dt;
|
|
||||||
var max_tilt_rate = 45*dt;
|
|
||||||
|
|
||||||
var ap_enable = props.globals.getNode("/ugear/settings/ap-enable");
|
|
||||||
if ( ap_enable == nil ) {
|
|
||||||
props.globals.initNode("/ugear/settings/ap-enable", 0, "BOOL", 1);
|
|
||||||
ap_enable = props.globals.getNode("/ugear/settings/ap-enable");
|
|
||||||
}
|
|
||||||
if ( ap_enable.getBoolValue() ) {
|
|
||||||
setprop( "/controls/flight/aileron", getprop("/ugear/act/aileron") );
|
|
||||||
setprop( "/controls/flight/elevator", getprop("/ugear/act/elevator") );
|
|
||||||
}
|
|
||||||
|
|
||||||
var turret_enable = props.globals.getNode("/ugear/settings/turret-enable");
|
|
||||||
if ( turret_enable == nil ) {
|
|
||||||
props.globals.initNode("/ugear/settings/turret-enable", 0, "BOOL", 1);
|
|
||||||
turret_enable = props.globals.getNode("/ugear/settings/turret-enable");
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( (getprop("/sim/current-view/name") == "Camera View")
|
|
||||||
and turret_enable.getBoolValue() )
|
|
||||||
{
|
|
||||||
var target_zoom = getprop("/ugear/act/channel6");
|
|
||||||
var target_pan = -getprop("/ugear/act/channel7");
|
|
||||||
if ( target_pan < -180.0 ) { target_pan += 360.0; }
|
|
||||||
if ( target_pan > 180.0 ) { target_pan -= 360.0; }
|
|
||||||
var target_tilt = -getprop("/ugear/act/channel8");
|
|
||||||
var cur_zoom = getprop("/sim/current-view/field-of-view");
|
|
||||||
var cur_pan = getprop("/sim/current-view/heading-offset-deg");
|
|
||||||
var cur_tilt = getprop("/sim/current-view/pitch-offset-deg");
|
|
||||||
var diff = 0.0;
|
|
||||||
|
|
||||||
diff = target_zoom - cur_zoom;
|
|
||||||
if ( diff > max_zoom_rate ) { diff = max_zoom_rate; }
|
|
||||||
if ( diff < -max_zoom_rate ) { diff = -max_zoom_rate; }
|
|
||||||
setprop("/sim/current-view/field-of-view", cur_zoom + diff);
|
|
||||||
|
|
||||||
diff = target_pan - cur_pan;
|
|
||||||
if ( diff > 180 ) { diff -= 360; }
|
|
||||||
if ( diff < -180 ) { diff += 360; }
|
|
||||||
if ( diff > max_pan_rate ) { diff = max_pan_rate; }
|
|
||||||
if ( diff < -max_pan_rate ) { diff = -max_pan_rate; }
|
|
||||||
setprop("/sim/current-view/heading-offset-deg", cur_pan + diff);
|
|
||||||
|
|
||||||
diff = target_tilt - cur_tilt;
|
|
||||||
if ( diff > 90 ) { diff = 90; }
|
|
||||||
if ( diff < -90 ) { diff = -90; }
|
|
||||||
if ( diff > max_tilt_rate ) { diff = max_tilt_rate; }
|
|
||||||
if ( diff < -max_tilt_rate ) { diff = -max_tilt_rate; }
|
|
||||||
setprop("/sim/current-view/pitch-offset-deg", cur_tilt + diff);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<initialize name="Start up at Canberra Model Aircraft Club">
|
|
||||||
<latitude unit="DEG"> -35.362851 </latitude>
|
|
||||||
<longitude unit="DEG"> 149.165223 </longitude>
|
|
||||||
<altitude unit="M"> 0 </altitude>
|
|
||||||
<vt unit="FT/SEC"> 0.0 </vt>
|
|
||||||
<gamma unit="DEG"> 0.0 </gamma>
|
|
||||||
<phi unit="DEG"> 0.0 </phi>
|
|
||||||
<theta unit="DEG"> 0.0 </theta>
|
|
||||||
<psi unit="DEG"> 0.0 </psi>
|
|
||||||
</initialize>
|
|
|
@ -1,4 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<electric_engine name="a2830-12">
|
|
||||||
<power unit="WATTS"> 187 </power>
|
|
||||||
</electric_engine>
|
|
|
@ -1,76 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<!-- Generated by Aero-Matic v 1.1
|
|
||||||
|
|
||||||
Inputs:
|
|
||||||
horsepower: 0.250767
|
|
||||||
pitch: fixed
|
|
||||||
max engine rpm: 9435
|
|
||||||
prop diameter (ft): 0.83333333333333
|
|
||||||
|
|
||||||
Outputs:
|
|
||||||
max prop rpm: 22515.60
|
|
||||||
gear ratio: 0.42
|
|
||||||
Cp0: 0.002731
|
|
||||||
Ct0: 0.003823
|
|
||||||
static thrust (lbs): 0.66
|
|
||||||
-->
|
|
||||||
<propeller name="prop">
|
|
||||||
<!--<ixx> 0.00 </ixx>-->
|
|
||||||
<ixx> 0.000041666666 </ixx>
|
|
||||||
<!--assuming solid rod of mass 8 g-->
|
|
||||||
<diameter unit="IN"> 10.0 </diameter>
|
|
||||||
<numblades> 2 </numblades>
|
|
||||||
<gearratio> 1.0 </gearratio>
|
|
||||||
<p_factor> 0.79 </p_factor>
|
|
||||||
<table name="C_THRUST" type="internal">
|
|
||||||
<tableData><!--experimentally measured-->
|
|
||||||
0.0 0.0054513
|
|
||||||
1.4 0.0054513
|
|
||||||
<!--aeromatic generated-->
|
|
||||||
<!--0.0 0.0042-->
|
|
||||||
<!--0.1 0.0040-->
|
|
||||||
<!--0.2 0.0038-->
|
|
||||||
<!--0.3 0.0035-->
|
|
||||||
<!--0.4 0.0032-->
|
|
||||||
<!--0.5 0.0028-->
|
|
||||||
<!--0.6 0.0023-->
|
|
||||||
<!--0.7 0.0017-->
|
|
||||||
<!--0.8 0.0009-->
|
|
||||||
<!--1.0 -0.0003-->
|
|
||||||
<!--1.2 -0.0016-->
|
|
||||||
<!--1.4 -0.0030-->
|
|
||||||
</tableData>
|
|
||||||
</table>
|
|
||||||
<table name="C_POWER" type="internal">
|
|
||||||
<tableData>
|
|
||||||
0.0 0.0028
|
|
||||||
0.1 0.0028
|
|
||||||
0.2 0.0027
|
|
||||||
0.3 0.0027
|
|
||||||
0.4 0.0025
|
|
||||||
0.5 0.0023
|
|
||||||
0.6 0.0021
|
|
||||||
0.7 0.0018
|
|
||||||
0.8 0.0015
|
|
||||||
1.0 0.0005
|
|
||||||
1.2 -0.0008
|
|
||||||
1.4 -0.0025
|
|
||||||
1.6 -0.0042
|
|
||||||
</tableData>
|
|
||||||
</table>
|
|
||||||
<!-- thrust effects of helical tip Mach -->
|
|
||||||
<table name="CT_MACH" type="internal">
|
|
||||||
<tableData>
|
|
||||||
0.85 1.0
|
|
||||||
1.05 0.8
|
|
||||||
</tableData>
|
|
||||||
</table>
|
|
||||||
<!-- power-required effects of helical tip Mach -->
|
|
||||||
<table name="CP_MACH" type="internal">
|
|
||||||
<tableData>
|
|
||||||
0.85 1.0
|
|
||||||
1.05 1.8
|
|
||||||
2.00 1.4
|
|
||||||
</tableData>
|
|
||||||
</table>
|
|
||||||
</propeller>
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,88 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<PropertyList>
|
|
||||||
<!--Airframe-->
|
|
||||||
<path>arducopter.ac</path>
|
|
||||||
<offsets>
|
|
||||||
<z-m>0.0</z-m>
|
|
||||||
<y-m>0</y-m>
|
|
||||||
<x-m>0.0</x-m>
|
|
||||||
<pitch-deg>0</pitch-deg>
|
|
||||||
<heading-deg>180</heading-deg>
|
|
||||||
</offsets>
|
|
||||||
<!--Propeller Right-->
|
|
||||||
<animation>
|
|
||||||
<type>noshadow</type>
|
|
||||||
<object-name>propeller0</object-name>
|
|
||||||
</animation>
|
|
||||||
<animation>
|
|
||||||
<type>spin</type>
|
|
||||||
<object-name>propeller0</object-name>
|
|
||||||
<property>/engines/engine[0]/rpm</property>
|
|
||||||
<factor>100</factor>
|
|
||||||
<axis>
|
|
||||||
<x1-m>0.000</x1-m>
|
|
||||||
<y1-m>-0.288</y1-m>
|
|
||||||
<z1-m>0.046</z1-m>
|
|
||||||
<x2-m>0.000</x2-m>
|
|
||||||
<y2-m>-0.288</y2-m>
|
|
||||||
<z2-m>0.012</z2-m>
|
|
||||||
</axis>
|
|
||||||
</animation>
|
|
||||||
<!--Propeller Left-->
|
|
||||||
<animation>
|
|
||||||
<type>noshadow</type>
|
|
||||||
<object-name>propeller1</object-name>
|
|
||||||
</animation>
|
|
||||||
<animation>
|
|
||||||
<type>spin</type>
|
|
||||||
<object-name>propeller1</object-name>
|
|
||||||
<property>/engines/engine[1]/rpm</property>
|
|
||||||
<factor>100</factor>
|
|
||||||
<axis>
|
|
||||||
<x1-m>0.000</x1-m>
|
|
||||||
<y1-m>0.288</y1-m>
|
|
||||||
<z1-m>0.046</z1-m>
|
|
||||||
<x2-m>0.000</x2-m>
|
|
||||||
<y2-m>0.288</y2-m>
|
|
||||||
<z2-m>0.012</z2-m>
|
|
||||||
</axis>
|
|
||||||
</animation>
|
|
||||||
<!--Propeller Front-->
|
|
||||||
<animation>
|
|
||||||
<type>noshadow</type>
|
|
||||||
<object-name>propeller2</object-name>
|
|
||||||
</animation>
|
|
||||||
<animation>
|
|
||||||
<type>spin</type>
|
|
||||||
<object-name>propeller2</object-name>
|
|
||||||
<property>/engines/engine[2]/rpm</property>
|
|
||||||
<factor>100</factor>
|
|
||||||
<axis>
|
|
||||||
<x1-m>0.288</x1-m>
|
|
||||||
<y1-m>0.000</y1-m>
|
|
||||||
<z1-m>0.046</z1-m>
|
|
||||||
<x2-m>0.288</x2-m>
|
|
||||||
<y2-m>0.000</y2-m>
|
|
||||||
<z2-m>0.012</z2-m>
|
|
||||||
</axis>
|
|
||||||
</animation>
|
|
||||||
<!--Propeller Back-->
|
|
||||||
<animation>
|
|
||||||
<type>noshadow</type>
|
|
||||||
<object-name>propeller3</object-name>
|
|
||||||
</animation>
|
|
||||||
<animation>
|
|
||||||
<type>spin</type>
|
|
||||||
<object-name>propeller3</object-name>
|
|
||||||
<property>/engines/engine[3]/rpm</property>
|
|
||||||
<factor>100</factor>
|
|
||||||
<axis>
|
|
||||||
<x1-m>-0.288</x1-m>
|
|
||||||
<y1-m>0.000</y1-m>
|
|
||||||
<z1-m>0.046</z1-m>
|
|
||||||
<x2-m>-0.288</x2-m>
|
|
||||||
<y2-m>0.000</y2-m>
|
|
||||||
<z2-m>0.012</z2-m>
|
|
||||||
</axis>
|
|
||||||
</animation>
|
|
||||||
</PropertyList>
|
|
|
@ -1,88 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<PropertyList>
|
|
||||||
<!--Airframe-->
|
|
||||||
<path>plus_quad2.ac</path>
|
|
||||||
<offsets>
|
|
||||||
<z-m>0.0</z-m>
|
|
||||||
<y-m>0</y-m>
|
|
||||||
<x-m>0.0</x-m>
|
|
||||||
<pitch-deg>0</pitch-deg>
|
|
||||||
<heading-deg>180</heading-deg>
|
|
||||||
</offsets>
|
|
||||||
<!--Propeller Right-->
|
|
||||||
<animation>
|
|
||||||
<type>noshadow</type>
|
|
||||||
<object-name>prop0</object-name>
|
|
||||||
</animation>
|
|
||||||
<animation>
|
|
||||||
<type>spin</type>
|
|
||||||
<object-name>prop0</object-name>
|
|
||||||
<property>/controls/engines/engine[0]/throttle</property>
|
|
||||||
<factor>12000</factor>
|
|
||||||
<axis>
|
|
||||||
<x1-m>0.000</x1-m>
|
|
||||||
<y1-m>-0.288</y1-m>
|
|
||||||
<z1-m>0.046</z1-m>
|
|
||||||
<x2-m>0.000</x2-m>
|
|
||||||
<y2-m>-0.288</y2-m>
|
|
||||||
<z2-m>0.012</z2-m>
|
|
||||||
</axis>
|
|
||||||
</animation>
|
|
||||||
<!--Propeller Left-->
|
|
||||||
<animation>
|
|
||||||
<type>noshadow</type>
|
|
||||||
<object-name>prop1</object-name>
|
|
||||||
</animation>
|
|
||||||
<animation>
|
|
||||||
<type>spin</type>
|
|
||||||
<object-name>prop1</object-name>
|
|
||||||
<property>/controls/engines/engine[1]/throttle</property>
|
|
||||||
<factor>12000</factor>
|
|
||||||
<axis>
|
|
||||||
<x1-m>0.000</x1-m>
|
|
||||||
<y1-m>0.288</y1-m>
|
|
||||||
<z1-m>0.046</z1-m>
|
|
||||||
<x2-m>0.000</x2-m>
|
|
||||||
<y2-m>0.288</y2-m>
|
|
||||||
<z2-m>0.012</z2-m>
|
|
||||||
</axis>
|
|
||||||
</animation>
|
|
||||||
<!--Propeller Front-->
|
|
||||||
<animation>
|
|
||||||
<type>noshadow</type>
|
|
||||||
<object-name>prop2</object-name>
|
|
||||||
</animation>
|
|
||||||
<animation>
|
|
||||||
<type>spin</type>
|
|
||||||
<object-name>prop2</object-name>
|
|
||||||
<property>/controls/engines/engine[2]/throttle</property>
|
|
||||||
<factor>12000</factor>
|
|
||||||
<axis>
|
|
||||||
<x1-m>0.288</x1-m>
|
|
||||||
<y1-m>0.000</y1-m>
|
|
||||||
<z1-m>0.046</z1-m>
|
|
||||||
<x2-m>0.288</x2-m>
|
|
||||||
<y2-m>0.000</y2-m>
|
|
||||||
<z2-m>0.012</z2-m>
|
|
||||||
</axis>
|
|
||||||
</animation>
|
|
||||||
<!--Propeller Back-->
|
|
||||||
<animation>
|
|
||||||
<type>noshadow</type>
|
|
||||||
<object-name>prop3</object-name>
|
|
||||||
</animation>
|
|
||||||
<animation>
|
|
||||||
<type>spin</type>
|
|
||||||
<object-name>prop3</object-name>
|
|
||||||
<property>/controls/engines/engine[3]/throttle</property>
|
|
||||||
<factor>12000</factor>
|
|
||||||
<axis>
|
|
||||||
<x1-m>-0.288</x1-m>
|
|
||||||
<y1-m>0.000</y1-m>
|
|
||||||
<z1-m>0.046</z1-m>
|
|
||||||
<x2-m>-0.288</x2-m>
|
|
||||||
<y2-m>0.000</y2-m>
|
|
||||||
<z2-m>0.012</z2-m>
|
|
||||||
</axis>
|
|
||||||
</animation>
|
|
||||||
</PropertyList>
|
|
Binary file not shown.
Binary file not shown.
|
@ -1,3 +0,0 @@
|
||||||
This model is based on the arducopter mode from James Goppert, and
|
|
||||||
adapted for use in the ArduPilot test system. Many thanks to all who
|
|
||||||
have contributed!
|
|
|
@ -1,94 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<!--
|
|
||||||
************************************************************************
|
|
||||||
Arducotper UAV Model
|
|
||||||
************************************************************************
|
|
||||||
-->
|
|
||||||
<PropertyList>
|
|
||||||
<sim>
|
|
||||||
<description>Arducopter UAV (R/C)</description>
|
|
||||||
<author>James Goppert</author>
|
|
||||||
<aircraft-version>0.0</aircraft-version>
|
|
||||||
<status>experimental</status>
|
|
||||||
<flight-model>jsb</flight-model>
|
|
||||||
<aero>arducopter</aero>
|
|
||||||
<model-hz>50</model-hz>
|
|
||||||
<sound>
|
|
||||||
<path>Aircraft/Generic/generic-sound.xml</path>
|
|
||||||
</sound>
|
|
||||||
<panel>
|
|
||||||
<visibility archive="n">false</visibility>
|
|
||||||
</panel>
|
|
||||||
<model>
|
|
||||||
<path archive="y">Aircraft/arducopter/Models/arducopter.xml</path>
|
|
||||||
</model>
|
|
||||||
<view>
|
|
||||||
<internal archive="y">true</internal>
|
|
||||||
<config>
|
|
||||||
<x-offset-m archive="y">0.0</x-offset-m>
|
|
||||||
<y-offset-m archive="y">0.15</y-offset-m>
|
|
||||||
<z-offset-m archive="y">0.90</z-offset-m>
|
|
||||||
<pitch-offset-deg>0</pitch-offset-deg>
|
|
||||||
</config>
|
|
||||||
</view>
|
|
||||||
<chase-distance-m archive="y" type="double">-5.5</chase-distance-m>
|
|
||||||
<help>
|
|
||||||
<title>arducopter UAV</title>
|
|
||||||
<line>Cruise speed: ? mph</line>
|
|
||||||
<line>Never-exceed (Vne): ? mph</line>
|
|
||||||
<line>Best Glide (Vglide): ? mph</line>
|
|
||||||
<line>Maneuvering (Va): ? mph</line>
|
|
||||||
<line>Approach speed: ? mph</line>
|
|
||||||
<line>Stall speed (Vs): ? mph</line>
|
|
||||||
</help>
|
|
||||||
<startup>
|
|
||||||
<splash-title>Arducopter UAV DIY Drones/ OPENMAV</splash-title>
|
|
||||||
<splash-texture>Aircraft/arducopter/arducopter.jpg</splash-texture>
|
|
||||||
</startup>
|
|
||||||
</sim>
|
|
||||||
<controls>
|
|
||||||
<flight>
|
|
||||||
<aileron-trim>0.00</aileron-trim>
|
|
||||||
<!-- fixed -->
|
|
||||||
<elevator-trim>0.00</elevator-trim>
|
|
||||||
<!-- controllable -->
|
|
||||||
</flight>
|
|
||||||
</controls>
|
|
||||||
<consumables>
|
|
||||||
<fuel>
|
|
||||||
<tank n="0">
|
|
||||||
<level-gal_us>0</level-gal_us>
|
|
||||||
</tank>
|
|
||||||
</fuel>
|
|
||||||
</consumables>
|
|
||||||
<payload>
|
|
||||||
<weight>
|
|
||||||
<name type="string">Payload</name>
|
|
||||||
<weight-lb alias="/fdm/jsbsim/inertia/pointmass-weight-lbs[0]"/>
|
|
||||||
<min-lb type="double">0.0</min-lb>
|
|
||||||
<max-lb type="double">1.0</max-lb>
|
|
||||||
</weight>
|
|
||||||
</payload>
|
|
||||||
<nasal>
|
|
||||||
<arducopter>
|
|
||||||
<file>Aircraft/arducopter/quad.nas</file>
|
|
||||||
<script>
|
|
||||||
setlistener("/sim/signals/fdm-initialized", func {
|
|
||||||
var left = screen.display.new(20, 10);
|
|
||||||
left.add("/apm/motor_right");
|
|
||||||
left.add("/apm/motor_left");
|
|
||||||
left.add("/apm/motor_front");
|
|
||||||
left.add("/apm/motor_back");
|
|
||||||
|
|
||||||
var right = screen.display.new(-250, 20);
|
|
||||||
right.add("/apm/altitude");
|
|
||||||
right.add("/apm/roll");
|
|
||||||
right.add("/apm/pitch");
|
|
||||||
right.add("/apm/heading");
|
|
||||||
right.add("/apm/airspeed");
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
</arducopter>
|
|
||||||
</nasal>
|
|
||||||
</PropertyList>
|
|
||||||
<!-- vim:sw=4:ts=4:expandtab -->
|
|
|
@ -1,248 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<?xml-stylesheet type="text/xsl" href="http://jsbsim.sourceforge.net/JSBSim.xsl"?>
|
|
||||||
<fdm_config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="dflyer" version="2.0" release="ALPHA" xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
|
|
||||||
<fileheader>
|
|
||||||
<author> James Goppert </author>
|
|
||||||
<filecreationdate> 2010-03-11 </filecreationdate>
|
|
||||||
<version>0.0 </version>
|
|
||||||
<description> Arducopter DIY Drones UAV. </description>
|
|
||||||
</fileheader>
|
|
||||||
<metrics>
|
|
||||||
<wingarea unit="M2"> 0.017</wingarea>
|
|
||||||
<wingspan unit="M"> 0.13 </wingspan>
|
|
||||||
<chord unit="FT"> 0.0 </chord>
|
|
||||||
<htailarea unit="FT2"> 0.0 </htailarea>
|
|
||||||
<htailarm unit="FT"> 0.0 </htailarm>
|
|
||||||
<vtailarea unit="FT2"> 0.0 </vtailarea>
|
|
||||||
<vtailarm unit="FT"> 0.0 </vtailarm>
|
|
||||||
<location name="AERORP" unit="IN">
|
|
||||||
<x> 0.00 </x>
|
|
||||||
<y> 0.00 </y>
|
|
||||||
<z> 0.00 </z>
|
|
||||||
</location>
|
|
||||||
<location name="EYEPOINT" unit="IN">
|
|
||||||
<x> 0.0 </x>
|
|
||||||
<y> 0.0 </y>
|
|
||||||
<z> 0.0 </z>
|
|
||||||
</location>
|
|
||||||
<location name="VRP" unit="IN">
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<z>0</z>
|
|
||||||
</location>
|
|
||||||
</metrics>
|
|
||||||
<mass_balance>
|
|
||||||
<!--roughtly approximating this as a solid sphere with correct mass-->
|
|
||||||
<ixx unit="KG*M2"> 0.036 </ixx>
|
|
||||||
<iyy unit="KG*M2"> 0.036 </iyy>
|
|
||||||
<izz unit="KG*M2"> 0.036 </izz>
|
|
||||||
<emptywt unit="KG"> 1.0 </emptywt>
|
|
||||||
<location name="CG" unit="IN">
|
|
||||||
<x> 0.0 </x>
|
|
||||||
<y> 0.0 </y>
|
|
||||||
<z> 0.0 </z>
|
|
||||||
</location>
|
|
||||||
<pointmass name="Payload">
|
|
||||||
<weight unit="KG"> 0.0 </weight>
|
|
||||||
<location unit="IN">
|
|
||||||
<x> 0.0 </x>
|
|
||||||
<y> 0.0 </y>
|
|
||||||
<z> 0.0 </z>
|
|
||||||
</location>
|
|
||||||
</pointmass>
|
|
||||||
</mass_balance>
|
|
||||||
<ground_reactions>
|
|
||||||
<contact type="BOGEY" name="frontbase">
|
|
||||||
<location unit="M">
|
|
||||||
<x> -0.283 </x>
|
|
||||||
<y> 0.00 </y>
|
|
||||||
<z> -0.033</z>
|
|
||||||
</location>
|
|
||||||
<static_friction> 0.80 </static_friction>
|
|
||||||
<dynamic_friction> 0.50 </dynamic_friction>
|
|
||||||
<spring_coeff unit="N/M"> 800 </spring_coeff>
|
|
||||||
<damping_coeff unit="N/M2/SEC2" type="SQUARE"> 7 </damping_coeff>
|
|
||||||
<damping_coeff_rebound unit="N/M2/SEC2" type="SQUARE"> 300 </damping_coeff_rebound>
|
|
||||||
</contact>
|
|
||||||
<contact type="BOGEY" name="rearbase">
|
|
||||||
<location unit="M">
|
|
||||||
<x> 0.283 </x>
|
|
||||||
<y> 0.00 </y>
|
|
||||||
<z> -0.033</z>
|
|
||||||
</location>
|
|
||||||
<static_friction> 0.80 </static_friction>
|
|
||||||
<dynamic_friction> 0.50 </dynamic_friction>
|
|
||||||
<spring_coeff unit="N/M"> 800 </spring_coeff>
|
|
||||||
<damping_coeff unit="N/M2/SEC2" type="SQUARE"> 7 </damping_coeff>
|
|
||||||
<damping_coeff_rebound unit="N/M2/SEC2" type="SQUARE"> 300 </damping_coeff_rebound>
|
|
||||||
</contact>
|
|
||||||
<contact type="BOGEY" name="leftbase">
|
|
||||||
<location unit="M">
|
|
||||||
<x> 0.00 </x>
|
|
||||||
<y> 0.283 </y>
|
|
||||||
<z> -0.033</z>
|
|
||||||
</location>
|
|
||||||
<static_friction> 0.80 </static_friction>
|
|
||||||
<dynamic_friction> 0.50 </dynamic_friction>
|
|
||||||
<spring_coeff unit="N/M"> 800 </spring_coeff>
|
|
||||||
<damping_coeff unit="N/M2/SEC2" type="SQUARE"> 7 </damping_coeff>
|
|
||||||
<damping_coeff_rebound unit="N/M2/SEC2" type="SQUARE"> 300 </damping_coeff_rebound>
|
|
||||||
</contact>
|
|
||||||
<contact type="BOGEY" name="rightbase">
|
|
||||||
<location unit="M">
|
|
||||||
<x> 0.00 </x>
|
|
||||||
<y> -0.283 </y>
|
|
||||||
<z> -0.033</z>
|
|
||||||
</location>
|
|
||||||
<static_friction> 0.80 </static_friction>
|
|
||||||
<dynamic_friction> 0.50 </dynamic_friction>
|
|
||||||
<spring_coeff unit="N/M"> 800 </spring_coeff>
|
|
||||||
<damping_coeff unit="N/M2/SEC2" type="SQUARE"> 7 </damping_coeff>
|
|
||||||
<damping_coeff_rebound unit="N/M2/SEC2" type="SQUARE"> 300 </damping_coeff_rebound>
|
|
||||||
</contact>
|
|
||||||
</ground_reactions>
|
|
||||||
<!-- the front and rear motors spin clockwise, and the left and right motors spin counter-clockwise. -->
|
|
||||||
<propulsion>
|
|
||||||
<engine file="a2830-12" name="front">
|
|
||||||
<location unit="M">
|
|
||||||
<x> -0.283 </x>
|
|
||||||
<y> 0.00 </y>
|
|
||||||
<z> 0.00 </z>
|
|
||||||
</location>
|
|
||||||
<orient unit="DEG">
|
|
||||||
<pitch> 90.00 </pitch>
|
|
||||||
<roll> 0.00 </roll>
|
|
||||||
<yaw> 0.00 </yaw>
|
|
||||||
</orient>
|
|
||||||
<feed>0</feed>
|
|
||||||
<thruster file="prop10x4.5">
|
|
||||||
<location unit="M">
|
|
||||||
<x> -0.283 </x>
|
|
||||||
<y> 0.00 </y>
|
|
||||||
<z> 0.125 </z>
|
|
||||||
</location>
|
|
||||||
<orient unit="DEG">
|
|
||||||
<pitch> 90.00 </pitch>
|
|
||||||
<roll> 0.00 </roll>
|
|
||||||
<yaw> 0.00 </yaw>
|
|
||||||
</orient>
|
|
||||||
<sense> 1 </sense>
|
|
||||||
<p_factor> 10 </p_factor>
|
|
||||||
</thruster>
|
|
||||||
</engine>
|
|
||||||
<engine file="a2830-12" name="rear">
|
|
||||||
<location unit="M">
|
|
||||||
<x> 0.283 </x>
|
|
||||||
<y> 0.000 </y>
|
|
||||||
<z> 0.000 </z>
|
|
||||||
</location>
|
|
||||||
<orient unit="DEG">
|
|
||||||
<pitch> 90.00 </pitch>
|
|
||||||
<roll> 0.00 </roll>
|
|
||||||
<yaw> 0.00 </yaw>
|
|
||||||
</orient>
|
|
||||||
<feed>0</feed>
|
|
||||||
<thruster file="prop10x4.5">
|
|
||||||
<location unit="M">
|
|
||||||
<x> 0.283 </x>
|
|
||||||
<y> 0.000 </y>
|
|
||||||
<z> 0.125 </z>
|
|
||||||
</location>
|
|
||||||
<orient unit="DEG">
|
|
||||||
<pitch> 90.00 </pitch>
|
|
||||||
<roll> 0.00 </roll>
|
|
||||||
<yaw> 0.00 </yaw>
|
|
||||||
</orient>
|
|
||||||
<sense> 1 </sense>
|
|
||||||
<p_factor> 10 </p_factor>
|
|
||||||
</thruster>
|
|
||||||
</engine>
|
|
||||||
<engine file="a2830-12" name="left">
|
|
||||||
<location unit="M">
|
|
||||||
<x> 0.00 </x>
|
|
||||||
<y> 0.283 </y>
|
|
||||||
<z> 0.00 </z>
|
|
||||||
</location>
|
|
||||||
<orient unit="DEG">
|
|
||||||
<pitch> 90.00 </pitch>
|
|
||||||
<roll> 0.00 </roll>
|
|
||||||
<yaw> 0.00 </yaw>
|
|
||||||
</orient>
|
|
||||||
<feed>0</feed>
|
|
||||||
<thruster file="prop10x4.5">
|
|
||||||
<location unit="M">
|
|
||||||
<x> 0.00 </x>
|
|
||||||
<y> 0.283 </y>
|
|
||||||
<z> 0.125 </z>
|
|
||||||
</location>
|
|
||||||
<orient unit="DEG">
|
|
||||||
<pitch> 90.00 </pitch>
|
|
||||||
<roll> 0.00 </roll>
|
|
||||||
<yaw> 0.00 </yaw>
|
|
||||||
</orient>
|
|
||||||
<sense> -1 </sense>
|
|
||||||
<p_factor> 10 </p_factor>
|
|
||||||
</thruster>
|
|
||||||
</engine>
|
|
||||||
<engine file="a2830-12" name="right">
|
|
||||||
<location unit="M">
|
|
||||||
<x> 0.000 </x>
|
|
||||||
<y> -0.283 </y>
|
|
||||||
<z> 0.000 </z>
|
|
||||||
</location>
|
|
||||||
<orient unit="DEG">
|
|
||||||
<pitch> 90.00 </pitch>
|
|
||||||
<roll> 0.00 </roll>
|
|
||||||
<yaw> 0.00 </yaw>
|
|
||||||
</orient>
|
|
||||||
<feed>0</feed>
|
|
||||||
<thruster file="prop10x4.5">
|
|
||||||
<location unit="M">
|
|
||||||
<x> 0.000 </x>
|
|
||||||
<y> -0.283 </y>
|
|
||||||
<z> 0.125 </z>
|
|
||||||
</location>
|
|
||||||
<orient unit="DEG">
|
|
||||||
<pitch> 90.00 </pitch>
|
|
||||||
<roll> 0.00 </roll>
|
|
||||||
<yaw> 0.00 </yaw>
|
|
||||||
</orient>
|
|
||||||
<sense> -1 </sense>
|
|
||||||
<p_factor> 10 </p_factor>
|
|
||||||
</thruster>
|
|
||||||
</engine>
|
|
||||||
<tank type="FUEL" number="0">
|
|
||||||
<location unit="M">
|
|
||||||
<x> 0.00 </x>
|
|
||||||
<y> 0.00 </y>
|
|
||||||
<z> -0.07 </z>
|
|
||||||
</location>
|
|
||||||
<!--have to have a fuel capacity, so setting it small-->
|
|
||||||
<capacity unit="KG"> 0.00000000001 </capacity>
|
|
||||||
<contents unit="KG"> 0.0 </contents>
|
|
||||||
</tank>
|
|
||||||
</propulsion>
|
|
||||||
<aerodynamics>
|
|
||||||
<axis name="LIFT">
|
|
||||||
</axis>
|
|
||||||
<axis name="DRAG">
|
|
||||||
<function name="aero/coefficient/CD0">
|
|
||||||
<description>Overall Drag</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<value>1</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
</axis>
|
|
||||||
<axis name="SIDE">
|
|
||||||
</axis>
|
|
||||||
<axis name="ROLL">
|
|
||||||
</axis>
|
|
||||||
<axis name="PITCH">
|
|
||||||
</axis>
|
|
||||||
<axis name="YAW">
|
|
||||||
</axis>
|
|
||||||
</aerodynamics>
|
|
||||||
</fdm_config>
|
|
||||||
<!-- vim:ts=2:sw=2:expandtab -->
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,12 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<initialize name="reset00">
|
|
||||||
<ubody unit="M/SEC"> nan </ubody>
|
|
||||||
<vbody unit="M/SEC"> nan </vbody>
|
|
||||||
<wbody unit="M/SEC"> nan </wbody>
|
|
||||||
<phi unit="DEG"> nan </phi>
|
|
||||||
<theta unit="DEG"> -nan </theta>
|
|
||||||
<psi unit="DEG"> nan </psi>
|
|
||||||
<longitude unit="DEG"> nan </longitude>
|
|
||||||
<latitude unit="DEG"> nan </latitude>
|
|
||||||
<altitude unit="M"> nan </altitude>
|
|
||||||
</initialize>
|
|
|
@ -1,93 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<!--
|
|
||||||
************************************************************************
|
|
||||||
Arducotper UAV Model
|
|
||||||
************************************************************************
|
|
||||||
-->
|
|
||||||
<PropertyList>
|
|
||||||
<sim>
|
|
||||||
<description>Arducopter UAV (R/C) (plus quad)</description>
|
|
||||||
<author>James Goppert</author>
|
|
||||||
<aircraft-version>0.0</aircraft-version>
|
|
||||||
<status>experimental</status>
|
|
||||||
<flight-model>jsb</flight-model>
|
|
||||||
<aero>plus_quad2</aero>
|
|
||||||
<model-hz>50</model-hz>
|
|
||||||
<sound>
|
|
||||||
<path>Aircraft/Generic/generic-sound.xml</path>
|
|
||||||
</sound>
|
|
||||||
<panel>
|
|
||||||
<visibility archive="n">false</visibility>
|
|
||||||
</panel>
|
|
||||||
<model>
|
|
||||||
<path archive="y">Aircraft/arducopter/Models/plus_quad2.xml</path>
|
|
||||||
</model>
|
|
||||||
<view>
|
|
||||||
<internal archive="y">true</internal>
|
|
||||||
<config>
|
|
||||||
<x-offset-m archive="y">0.0</x-offset-m>
|
|
||||||
<y-offset-m archive="y">0.15</y-offset-m>
|
|
||||||
<z-offset-m archive="y">0.90</z-offset-m>
|
|
||||||
<pitch-offset-deg>0</pitch-offset-deg>
|
|
||||||
</config>
|
|
||||||
</view>
|
|
||||||
<chase-distance-m archive="y" type="double">-5.5</chase-distance-m>
|
|
||||||
<help>
|
|
||||||
<title>plus_quad UAV</title>
|
|
||||||
<line>Cruise speed: ? mph</line>
|
|
||||||
<line>Never-exceed (Vne): ? mph</line>
|
|
||||||
<line>Best Glide (Vglide): ? mph</line>
|
|
||||||
<line>Maneuvering (Va): ? mph</line>
|
|
||||||
<line>Approach speed: ? mph</line>
|
|
||||||
<line>Stall speed (Vs): ? mph</line>
|
|
||||||
</help>
|
|
||||||
<startup>
|
|
||||||
<splash-title>Arducopter UAV DIY Drones/ OPENMAV</splash-title>
|
|
||||||
<splash-texture>Aircraft/arducopter/arducopter.jpg</splash-texture>
|
|
||||||
</startup>
|
|
||||||
</sim>
|
|
||||||
<controls>
|
|
||||||
<flight>
|
|
||||||
<aileron-trim>0.00</aileron-trim>
|
|
||||||
<!-- fixed -->
|
|
||||||
<elevator-trim>0.00</elevator-trim>
|
|
||||||
<!-- controllable -->
|
|
||||||
</flight>
|
|
||||||
</controls>
|
|
||||||
<consumables>
|
|
||||||
<fuel>
|
|
||||||
<tank n="0">
|
|
||||||
<level-gal_us>0</level-gal_us>
|
|
||||||
</tank>
|
|
||||||
</fuel>
|
|
||||||
</consumables>
|
|
||||||
<payload>
|
|
||||||
<weight>
|
|
||||||
<name type="string">Payload</name>
|
|
||||||
<weight-lb alias="/fdm/jsbsim/inertia/pointmass-weight-lbs[0]"/>
|
|
||||||
<min-lb type="double">0.0</min-lb>
|
|
||||||
<max-lb type="double">1.0</max-lb>
|
|
||||||
</weight>
|
|
||||||
</payload>
|
|
||||||
<nasal>
|
|
||||||
<plus_quad2>
|
|
||||||
<script>
|
|
||||||
setlistener("/sim/signals/fdm-initialized", func {
|
|
||||||
var left = screen.display.new(20, 10);
|
|
||||||
left.add("/controls/engines/engine[0]/throttle");
|
|
||||||
left.add("/controls/engines/engine[1]/throttle");
|
|
||||||
left.add("/controls/engines/engine[2]/throttle");
|
|
||||||
left.add("/controls/engines/engine[3]/throttle");
|
|
||||||
|
|
||||||
var right = screen.display.new(-250, 20);
|
|
||||||
right.add("/position/altitude-agl-ft");
|
|
||||||
right.add("/orientation/roll-deg");
|
|
||||||
right.add("/orientation/pitch-deg");
|
|
||||||
right.add("/orientation/heading-deg");
|
|
||||||
right.add("/instrumentation/gps/indicated-ground-speed-kt");
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
</plus_quad2>
|
|
||||||
</nasal>
|
|
||||||
</PropertyList>
|
|
||||||
<!-- vim:sw=4:ts=4:expandtab -->
|
|
|
@ -1,248 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<?xml-stylesheet type="text/xsl" href="http://jsbsim.sourceforge.net/JSBSim.xsl"?>
|
|
||||||
<fdm_config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="dflyer" version="2.0" release="ALPHA" xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
|
|
||||||
<fileheader>
|
|
||||||
<author> James Goppert </author>
|
|
||||||
<filecreationdate> 2010-03-11 </filecreationdate>
|
|
||||||
<version>0.0 </version>
|
|
||||||
<description> Arducopter DIY Drones UAV. </description>
|
|
||||||
</fileheader>
|
|
||||||
<metrics>
|
|
||||||
<wingarea unit="M2"> 0.017</wingarea>
|
|
||||||
<wingspan unit="M"> 0.13 </wingspan>
|
|
||||||
<chord unit="FT"> 0.0 </chord>
|
|
||||||
<htailarea unit="FT2"> 0.0 </htailarea>
|
|
||||||
<htailarm unit="FT"> 0.0 </htailarm>
|
|
||||||
<vtailarea unit="FT2"> 0.0 </vtailarea>
|
|
||||||
<vtailarm unit="FT"> 0.0 </vtailarm>
|
|
||||||
<location name="AERORP" unit="IN">
|
|
||||||
<x> 0.00 </x>
|
|
||||||
<y> 0.00 </y>
|
|
||||||
<z> 0.00 </z>
|
|
||||||
</location>
|
|
||||||
<location name="EYEPOINT" unit="IN">
|
|
||||||
<x> 0.0 </x>
|
|
||||||
<y> 0.0 </y>
|
|
||||||
<z> 0.0 </z>
|
|
||||||
</location>
|
|
||||||
<location name="VRP" unit="IN">
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<z>0</z>
|
|
||||||
</location>
|
|
||||||
</metrics>
|
|
||||||
<mass_balance>
|
|
||||||
<!--roughtly approximating this as a solid sphere with correct mass-->
|
|
||||||
<ixx unit="KG*M2"> 0.036 </ixx>
|
|
||||||
<iyy unit="KG*M2"> 0.036 </iyy>
|
|
||||||
<izz unit="KG*M2"> 0.036 </izz>
|
|
||||||
<emptywt unit="KG"> 1.0 </emptywt>
|
|
||||||
<location name="CG" unit="IN">
|
|
||||||
<x> 0.0 </x>
|
|
||||||
<y> 0.0 </y>
|
|
||||||
<z> 0.0 </z>
|
|
||||||
</location>
|
|
||||||
<pointmass name="Payload">
|
|
||||||
<weight unit="KG"> 0.0 </weight>
|
|
||||||
<location unit="IN">
|
|
||||||
<x> 0.0 </x>
|
|
||||||
<y> 0.0 </y>
|
|
||||||
<z> 0.0 </z>
|
|
||||||
</location>
|
|
||||||
</pointmass>
|
|
||||||
</mass_balance>
|
|
||||||
<ground_reactions>
|
|
||||||
<contact type="BOGEY" name="frontbase">
|
|
||||||
<location unit="M">
|
|
||||||
<x> -0.283 </x>
|
|
||||||
<y> 0.00 </y>
|
|
||||||
<z> -0.033</z>
|
|
||||||
</location>
|
|
||||||
<static_friction> 0.80 </static_friction>
|
|
||||||
<dynamic_friction> 0.50 </dynamic_friction>
|
|
||||||
<spring_coeff unit="N/M"> 800 </spring_coeff>
|
|
||||||
<damping_coeff unit="N/M2/SEC2" type="SQUARE"> 7 </damping_coeff>
|
|
||||||
<damping_coeff_rebound unit="N/M2/SEC2" type="SQUARE"> 300 </damping_coeff_rebound>
|
|
||||||
</contact>
|
|
||||||
<contact type="BOGEY" name="rearbase">
|
|
||||||
<location unit="M">
|
|
||||||
<x> 0.283 </x>
|
|
||||||
<y> 0.00 </y>
|
|
||||||
<z> -0.033</z>
|
|
||||||
</location>
|
|
||||||
<static_friction> 0.80 </static_friction>
|
|
||||||
<dynamic_friction> 0.50 </dynamic_friction>
|
|
||||||
<spring_coeff unit="N/M"> 800 </spring_coeff>
|
|
||||||
<damping_coeff unit="N/M2/SEC2" type="SQUARE"> 7 </damping_coeff>
|
|
||||||
<damping_coeff_rebound unit="N/M2/SEC2" type="SQUARE"> 300 </damping_coeff_rebound>
|
|
||||||
</contact>
|
|
||||||
<contact type="BOGEY" name="leftbase">
|
|
||||||
<location unit="M">
|
|
||||||
<x> 0.00 </x>
|
|
||||||
<y> 0.283 </y>
|
|
||||||
<z> -0.033</z>
|
|
||||||
</location>
|
|
||||||
<static_friction> 0.80 </static_friction>
|
|
||||||
<dynamic_friction> 0.50 </dynamic_friction>
|
|
||||||
<spring_coeff unit="N/M"> 800 </spring_coeff>
|
|
||||||
<damping_coeff unit="N/M2/SEC2" type="SQUARE"> 7 </damping_coeff>
|
|
||||||
<damping_coeff_rebound unit="N/M2/SEC2" type="SQUARE"> 300 </damping_coeff_rebound>
|
|
||||||
</contact>
|
|
||||||
<contact type="BOGEY" name="rightbase">
|
|
||||||
<location unit="M">
|
|
||||||
<x> 0.00 </x>
|
|
||||||
<y> -0.283 </y>
|
|
||||||
<z> -0.033</z>
|
|
||||||
</location>
|
|
||||||
<static_friction> 0.80 </static_friction>
|
|
||||||
<dynamic_friction> 0.50 </dynamic_friction>
|
|
||||||
<spring_coeff unit="N/M"> 800 </spring_coeff>
|
|
||||||
<damping_coeff unit="N/M2/SEC2" type="SQUARE"> 7 </damping_coeff>
|
|
||||||
<damping_coeff_rebound unit="N/M2/SEC2" type="SQUARE"> 300 </damping_coeff_rebound>
|
|
||||||
</contact>
|
|
||||||
</ground_reactions>
|
|
||||||
<!-- the front and rear motors spin clockwise, and the left and right motors spin counter-clockwise. -->
|
|
||||||
<propulsion>
|
|
||||||
<engine file="a2830-12" name="front">
|
|
||||||
<location unit="M">
|
|
||||||
<x> -0.283 </x>
|
|
||||||
<y> 0.00 </y>
|
|
||||||
<z> 0.00 </z>
|
|
||||||
</location>
|
|
||||||
<orient unit="DEG">
|
|
||||||
<pitch> 90.00 </pitch>
|
|
||||||
<roll> 0.00 </roll>
|
|
||||||
<yaw> 0.00 </yaw>
|
|
||||||
</orient>
|
|
||||||
<feed>0</feed>
|
|
||||||
<thruster file="prop10x4.5">
|
|
||||||
<location unit="M">
|
|
||||||
<x> -0.283 </x>
|
|
||||||
<y> 0.00 </y>
|
|
||||||
<z> 0.125 </z>
|
|
||||||
</location>
|
|
||||||
<orient unit="DEG">
|
|
||||||
<pitch> 90.00 </pitch>
|
|
||||||
<roll> 0.00 </roll>
|
|
||||||
<yaw> 0.00 </yaw>
|
|
||||||
</orient>
|
|
||||||
<sense> 1 </sense>
|
|
||||||
<p_factor> 10 </p_factor>
|
|
||||||
</thruster>
|
|
||||||
</engine>
|
|
||||||
<engine file="a2830-12" name="rear">
|
|
||||||
<location unit="M">
|
|
||||||
<x> 0.283 </x>
|
|
||||||
<y> 0.000 </y>
|
|
||||||
<z> 0.000 </z>
|
|
||||||
</location>
|
|
||||||
<orient unit="DEG">
|
|
||||||
<pitch> 90.00 </pitch>
|
|
||||||
<roll> 0.00 </roll>
|
|
||||||
<yaw> 0.00 </yaw>
|
|
||||||
</orient>
|
|
||||||
<feed>0</feed>
|
|
||||||
<thruster file="prop10x4.5">
|
|
||||||
<location unit="M">
|
|
||||||
<x> 0.283 </x>
|
|
||||||
<y> 0.000 </y>
|
|
||||||
<z> 0.125 </z>
|
|
||||||
</location>
|
|
||||||
<orient unit="DEG">
|
|
||||||
<pitch> 90.00 </pitch>
|
|
||||||
<roll> 0.00 </roll>
|
|
||||||
<yaw> 0.00 </yaw>
|
|
||||||
</orient>
|
|
||||||
<sense> 1 </sense>
|
|
||||||
<p_factor> 10 </p_factor>
|
|
||||||
</thruster>
|
|
||||||
</engine>
|
|
||||||
<engine file="a2830-12" name="left">
|
|
||||||
<location unit="M">
|
|
||||||
<x> 0.00 </x>
|
|
||||||
<y> 0.283 </y>
|
|
||||||
<z> 0.00 </z>
|
|
||||||
</location>
|
|
||||||
<orient unit="DEG">
|
|
||||||
<pitch> 90.00 </pitch>
|
|
||||||
<roll> 0.00 </roll>
|
|
||||||
<yaw> 0.00 </yaw>
|
|
||||||
</orient>
|
|
||||||
<feed>0</feed>
|
|
||||||
<thruster file="prop10x4.5">
|
|
||||||
<location unit="M">
|
|
||||||
<x> 0.00 </x>
|
|
||||||
<y> 0.283 </y>
|
|
||||||
<z> 0.125 </z>
|
|
||||||
</location>
|
|
||||||
<orient unit="DEG">
|
|
||||||
<pitch> 90.00 </pitch>
|
|
||||||
<roll> 0.00 </roll>
|
|
||||||
<yaw> 0.00 </yaw>
|
|
||||||
</orient>
|
|
||||||
<sense> -1 </sense>
|
|
||||||
<p_factor> 10 </p_factor>
|
|
||||||
</thruster>
|
|
||||||
</engine>
|
|
||||||
<engine file="a2830-12" name="right">
|
|
||||||
<location unit="M">
|
|
||||||
<x> 0.000 </x>
|
|
||||||
<y> -0.283 </y>
|
|
||||||
<z> 0.000 </z>
|
|
||||||
</location>
|
|
||||||
<orient unit="DEG">
|
|
||||||
<pitch> 90.00 </pitch>
|
|
||||||
<roll> 0.00 </roll>
|
|
||||||
<yaw> 0.00 </yaw>
|
|
||||||
</orient>
|
|
||||||
<feed>0</feed>
|
|
||||||
<thruster file="prop10x4.5">
|
|
||||||
<location unit="M">
|
|
||||||
<x> 0.000 </x>
|
|
||||||
<y> -0.283 </y>
|
|
||||||
<z> 0.125 </z>
|
|
||||||
</location>
|
|
||||||
<orient unit="DEG">
|
|
||||||
<pitch> 90.00 </pitch>
|
|
||||||
<roll> 0.00 </roll>
|
|
||||||
<yaw> 0.00 </yaw>
|
|
||||||
</orient>
|
|
||||||
<sense> -1 </sense>
|
|
||||||
<p_factor> 10 </p_factor>
|
|
||||||
</thruster>
|
|
||||||
</engine>
|
|
||||||
<tank type="FUEL" number="0">
|
|
||||||
<location unit="M">
|
|
||||||
<x> 0.00 </x>
|
|
||||||
<y> 0.00 </y>
|
|
||||||
<z> -0.07 </z>
|
|
||||||
</location>
|
|
||||||
<!--have to have a fuel capacity, so setting it small-->
|
|
||||||
<capacity unit="KG"> 0.00000000001 </capacity>
|
|
||||||
<contents unit="KG"> 0.0 </contents>
|
|
||||||
</tank>
|
|
||||||
</propulsion>
|
|
||||||
<aerodynamics>
|
|
||||||
<axis name="LIFT">
|
|
||||||
</axis>
|
|
||||||
<axis name="DRAG">
|
|
||||||
<function name="aero/coefficient/CD0">
|
|
||||||
<description>Overall Drag</description>
|
|
||||||
<product>
|
|
||||||
<property>aero/qbar-psf</property>
|
|
||||||
<property>metrics/Sw-sqft</property>
|
|
||||||
<value>1</value>
|
|
||||||
</product>
|
|
||||||
</function>
|
|
||||||
</axis>
|
|
||||||
<axis name="SIDE">
|
|
||||||
</axis>
|
|
||||||
<axis name="ROLL">
|
|
||||||
</axis>
|
|
||||||
<axis name="PITCH">
|
|
||||||
</axis>
|
|
||||||
<axis name="YAW">
|
|
||||||
</axis>
|
|
||||||
</aerodynamics>
|
|
||||||
</fdm_config>
|
|
||||||
<!-- vim:ts=2:sw=2:expandtab -->
|
|
|
@ -1,40 +0,0 @@
|
||||||
round10 = func(v) {
|
|
||||||
if (v == nil) return 0;
|
|
||||||
return 0.1*int(v*10);
|
|
||||||
}
|
|
||||||
|
|
||||||
round100 = func(v) {
|
|
||||||
if (v == nil) return 0;
|
|
||||||
return 0.01*int(v*100);
|
|
||||||
}
|
|
||||||
|
|
||||||
var update_quad = func( ) {
|
|
||||||
asl_ft = getprop("/position/altitude-ft");
|
|
||||||
ground = getprop("/position/ground-elev-ft");
|
|
||||||
agl_m = (asl_ft - ground) * 0.3048;
|
|
||||||
|
|
||||||
setprop("/apm/altitude", round10(agl_m));
|
|
||||||
|
|
||||||
setprop("/apm/pitch", round10(getprop("/orientation/pitch-deg")));
|
|
||||||
setprop("/apm/roll", round10(getprop("/orientation/roll-deg")));
|
|
||||||
setprop("/apm/heading", round10(getprop("/orientation/heading-deg")));
|
|
||||||
|
|
||||||
# airspeed-kt is actually in feet per second (FDM NET bug)
|
|
||||||
setprop("/apm/airspeed", round10(0.3048*getprop("/velocities/airspeed-kt")));
|
|
||||||
|
|
||||||
setprop("/apm/motor_right", round10(getprop("/engines/engine[0]/rpm")/10.0));
|
|
||||||
setprop("/apm/motor_left", round10(getprop("/engines/engine[1]/rpm")/10.0));
|
|
||||||
setprop("/apm/motor_front", round10(getprop("/engines/engine[2]/rpm")/10.0));
|
|
||||||
setprop("/apm/motor_back", round10(getprop("/engines/engine[3]/rpm")/10.0));
|
|
||||||
}
|
|
||||||
|
|
||||||
var main_loop = func {
|
|
||||||
update_quad();
|
|
||||||
settimer(main_loop, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
setlistener("/sim/signals/fdm-initialized",
|
|
||||||
func {
|
|
||||||
main_loop();
|
|
||||||
});
|
|
|
@ -1 +0,0 @@
|
||||||
Hi
|
|
|
@ -1,761 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
|
||||||
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
|
|
||||||
<asset>
|
|
||||||
<contributor>
|
|
||||||
<authoring_tool>Google SketchUp 7.1.4871</authoring_tool>
|
|
||||||
</contributor>
|
|
||||||
<created>2009-10-17T10:23:04Z</created>
|
|
||||||
<modified>2009-10-17T10:23:04Z</modified>
|
|
||||||
<unit meter="0.0254" name="inch" />
|
|
||||||
<up_axis>Z_UP</up_axis>
|
|
||||||
</asset>
|
|
||||||
<library_visual_scenes>
|
|
||||||
<visual_scene id="ID1">
|
|
||||||
<node name="SketchUp">
|
|
||||||
<node id="ID2" name="instance_0">
|
|
||||||
<matrix>0 1 0 0.851428 -1 0 0 0.8320829 0 -0 1 11.02362 0 0 0 1</matrix>
|
|
||||||
<instance_node url="#ID3" />
|
|
||||||
</node>
|
|
||||||
</node>
|
|
||||||
</visual_scene>
|
|
||||||
</library_visual_scenes>
|
|
||||||
<library_nodes>
|
|
||||||
<node id="ID3" name="component_0">
|
|
||||||
<instance_geometry url="#ID4">
|
|
||||||
<bind_material>
|
|
||||||
<technique_common>
|
|
||||||
<instance_material symbol="Material2" target="#ID5">
|
|
||||||
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
|
|
||||||
</instance_material>
|
|
||||||
</technique_common>
|
|
||||||
</bind_material>
|
|
||||||
</instance_geometry>
|
|
||||||
<instance_geometry url="#ID12">
|
|
||||||
<bind_material>
|
|
||||||
<technique_common>
|
|
||||||
<instance_material symbol="Material2" target="#ID5">
|
|
||||||
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
|
|
||||||
</instance_material>
|
|
||||||
</technique_common>
|
|
||||||
</bind_material>
|
|
||||||
</instance_geometry>
|
|
||||||
<instance_geometry url="#ID18">
|
|
||||||
<bind_material>
|
|
||||||
<technique_common>
|
|
||||||
<instance_material symbol="Material2" target="#ID20">
|
|
||||||
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
|
|
||||||
</instance_material>
|
|
||||||
</technique_common>
|
|
||||||
</bind_material>
|
|
||||||
</instance_geometry>
|
|
||||||
<instance_geometry url="#ID26">
|
|
||||||
<bind_material>
|
|
||||||
<technique_common>
|
|
||||||
<instance_material symbol="Material2" target="#ID27">
|
|
||||||
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
|
|
||||||
</instance_material>
|
|
||||||
</technique_common>
|
|
||||||
</bind_material>
|
|
||||||
</instance_geometry>
|
|
||||||
<instance_geometry url="#ID34">
|
|
||||||
<bind_material>
|
|
||||||
<technique_common>
|
|
||||||
<instance_material symbol="Material2" target="#ID35">
|
|
||||||
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
|
|
||||||
</instance_material>
|
|
||||||
</technique_common>
|
|
||||||
</bind_material>
|
|
||||||
</instance_geometry>
|
|
||||||
<instance_geometry url="#ID42">
|
|
||||||
<bind_material>
|
|
||||||
<technique_common>
|
|
||||||
<instance_material symbol="Material2" target="#ID27">
|
|
||||||
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
|
|
||||||
</instance_material>
|
|
||||||
</technique_common>
|
|
||||||
</bind_material>
|
|
||||||
</instance_geometry>
|
|
||||||
<instance_geometry url="#ID48">
|
|
||||||
<bind_material>
|
|
||||||
<technique_common>
|
|
||||||
<instance_material symbol="Material2" target="#ID20">
|
|
||||||
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
|
|
||||||
</instance_material>
|
|
||||||
</technique_common>
|
|
||||||
</bind_material>
|
|
||||||
</instance_geometry>
|
|
||||||
<instance_geometry url="#ID54">
|
|
||||||
<bind_material>
|
|
||||||
<technique_common>
|
|
||||||
<instance_material symbol="Material2" target="#ID27">
|
|
||||||
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
|
|
||||||
</instance_material>
|
|
||||||
</technique_common>
|
|
||||||
</bind_material>
|
|
||||||
</instance_geometry>
|
|
||||||
<instance_geometry url="#ID60">
|
|
||||||
<bind_material>
|
|
||||||
<technique_common>
|
|
||||||
<instance_material symbol="Material2" target="#ID20">
|
|
||||||
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
|
|
||||||
</instance_material>
|
|
||||||
</technique_common>
|
|
||||||
</bind_material>
|
|
||||||
</instance_geometry>
|
|
||||||
<instance_geometry url="#ID66">
|
|
||||||
<bind_material>
|
|
||||||
<technique_common>
|
|
||||||
<instance_material symbol="Material2" target="#ID35">
|
|
||||||
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
|
|
||||||
</instance_material>
|
|
||||||
</technique_common>
|
|
||||||
</bind_material>
|
|
||||||
</instance_geometry>
|
|
||||||
<instance_geometry url="#ID72">
|
|
||||||
<bind_material>
|
|
||||||
<technique_common>
|
|
||||||
<instance_material symbol="Material2" target="#ID73">
|
|
||||||
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
|
|
||||||
</instance_material>
|
|
||||||
</technique_common>
|
|
||||||
</bind_material>
|
|
||||||
</instance_geometry>
|
|
||||||
<instance_geometry url="#ID80">
|
|
||||||
<bind_material>
|
|
||||||
<technique_common>
|
|
||||||
<instance_material symbol="Material2" target="#ID35">
|
|
||||||
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
|
|
||||||
</instance_material>
|
|
||||||
</technique_common>
|
|
||||||
</bind_material>
|
|
||||||
</instance_geometry>
|
|
||||||
<instance_geometry url="#ID86">
|
|
||||||
<bind_material>
|
|
||||||
<technique_common>
|
|
||||||
<instance_material symbol="Material2" target="#ID35">
|
|
||||||
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
|
|
||||||
</instance_material>
|
|
||||||
</technique_common>
|
|
||||||
</bind_material>
|
|
||||||
</instance_geometry>
|
|
||||||
<instance_geometry url="#ID92">
|
|
||||||
<bind_material>
|
|
||||||
<technique_common>
|
|
||||||
<instance_material symbol="Material2" target="#ID73">
|
|
||||||
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
|
|
||||||
</instance_material>
|
|
||||||
</technique_common>
|
|
||||||
</bind_material>
|
|
||||||
</instance_geometry>
|
|
||||||
<instance_geometry url="#ID98">
|
|
||||||
<bind_material>
|
|
||||||
<technique_common>
|
|
||||||
<instance_material symbol="Material2" target="#ID73">
|
|
||||||
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
|
|
||||||
</instance_material>
|
|
||||||
</technique_common>
|
|
||||||
</bind_material>
|
|
||||||
</instance_geometry>
|
|
||||||
<instance_geometry url="#ID104">
|
|
||||||
<bind_material>
|
|
||||||
<technique_common>
|
|
||||||
<instance_material symbol="Material2" target="#ID73">
|
|
||||||
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
|
|
||||||
</instance_material>
|
|
||||||
</technique_common>
|
|
||||||
</bind_material>
|
|
||||||
</instance_geometry>
|
|
||||||
</node>
|
|
||||||
</library_nodes>
|
|
||||||
<library_geometries>
|
|
||||||
<geometry id="ID4">
|
|
||||||
<mesh>
|
|
||||||
<source id="ID7">
|
|
||||||
<float_array id="ID10" count="429">12.05563 -8.725444 -1.574803 53.64008 2.464886 -1.574803 12.05563 7.022588 -1.574803 53.64008 -4.167742 -1.574803 83.89811 -0.851428 -1.574803 12.05563 -8.725444 -4.724409 83.89811 -0.851428 -4.724409 12.05563 -8.725444 -1.968504 12.05563 -8.725444 -1.574803 75.6858 -1.751507 -1.574803 53.64008 -4.167742 -1.574803 72.36054 -2.115958 -1.574803 72.7661 -2.071509 -1.574803 53.64008 -4.167742 -1.574803 55.28615 -2.115958 -1.574803 53.64008 2.464886 -1.574803 72.36054 -2.115958 -1.574803 55.28615 0.3686533 -1.574803 72.7661 0.3686533 -1.574803 56.34146 0.3686533 -1.574803 12.05563 7.022588 -4.724409 83.89811 -0.851428 -1.574803 83.89811 -0.851428 -4.724409 12.05563 7.022588 -1.968504 12.05563 7.022588 -1.574803 75.6858 0.04865095 -1.574803 53.64008 2.464886 -1.574803 72.7661 0.3686533 -1.574803 12.05563 7.022588 -1.574803 12.05563 -8.725444 -3.552714e-015 12.05563 -8.725444 -1.574803 12.05563 7.022588 -3.552714e-015 12.05563 -8.725444 -1.574803 -10.77901 -8.725444 -1.968504 12.05563 -8.725444 -1.968504 -26.82628 -8.725444 -1.574803 -10.77901 -8.725444 -1.574803 -10.77901 -8.725444 -5.905512 -26.82628 -8.725444 -5.905512 12.05563 -8.725444 -4.724409 -10.77901 -8.725444 -7.480315 12.05563 -8.725444 -7.480315 -10.77901 -8.725444 -5.905512 -10.77901 -8.725444 -1.968504 12.05563 -8.725444 -1.968504 83.89811 -0.851428 -4.724409 12.05563 -8.725444 -4.724409 12.05563 7.022588 -4.724409 83.89811 -0.851428 -1.574803 75.6858 0.04865095 -1.574803 75.6858 -1.751507 -1.574803 75.6858 -1.751507 -1.574803 72.7661 -1.751507 -1.574803 72.7661 -2.071509 -1.574803 55.28615 -2.115958 -1.574803 56.34146 -1.751507 -1.574803 55.28615 0.3686533 -1.574803 72.36054 -2.115958 -1.574803 72.7661 -1.751507 -1.574803 72.7661 -2.071509 -1.574803 56.34146 0.3686533 -1.574803 56.34146 0.3686533 -1.574803 72.7661 0.3686533 10.32715 72.7661 0.3686533 -1.574803 56.34146 0.3686533 10.32715 56.94848 0.3686533 10.32715 -10.77901 7.022588 -5.905512 12.05563 7.022588 -7.480315 -10.77901 7.022588 -7.480315 12.05563 7.022588 -4.724409 -10.77901 7.022588 -1.968504 12.05563 7.022588 -1.968504 -26.82628 7.022588 -1.574803 -10.77901 7.022588 -5.905512 -26.82628 7.022588 -5.905512 -10.77901 7.022588 -1.968504 12.05563 7.022588 -1.968504 12.05563 7.022588 -1.574803 -10.77901 7.022588 -1.574803 75.6858 -1.751507 -1.574803 72.7661 0.3686533 -1.574803 72.7661 -1.751507 -1.574803 75.6858 0.04865095 -1.574803 -10.77901 7.022588 -3.552714e-015 12.05563 7.022588 -1.574803 -10.77901 7.022588 -1.574803 12.05563 7.022588 -3.552714e-015 12.05563 -8.725444 -3.552714e-015 -10.77901 -8.725444 -1.574803 12.05563 -8.725444 -1.574803 -10.77901 -8.725444 -3.552714e-015 -10.77901 -8.725444 -3.552714e-015 -26.82628 -8.725444 -1.574803 -10.77901 -8.725444 -1.574803 -26.82628 -8.725444 -5.905512 -42.87354 -0.851428 -1.574803 -42.87354 -0.851428 -5.905512 -26.82628 -8.725444 -1.574803 -26.82628 7.022588 -5.905512 -26.82628 -8.725444 -5.905512 -42.87354 -0.851428 -5.905512 -10.77901 7.022588 -5.905512 -10.77901 -8.725444 -5.905512 12.05563 7.022588 -7.480315 -10.77901 -8.725444 -7.480315 -10.77901 7.022588 -7.480315 12.05563 -8.725444 -7.480315 12.05563 -8.725444 -7.480315 12.05563 7.022588 -4.724409 12.05563 -8.725444 -4.724409 12.05563 7.022588 -7.480315 -10.77901 7.022588 -5.905512 -10.77901 -8.725444 -7.480315 -10.77901 -8.725444 -5.905512 -10.77901 7.022588 -7.480315 72.7661 -1.751507 10.32715 56.34146 -1.751507 -1.574803 72.7661 -1.751507 -1.574803 56.34146 -1.751507 10.32715 56.75835 -1.751507 10.32715 56.34146 -1.751507 10.32715 56.34146 0.3686533 -1.574803 56.34146 -1.751507 -1.574803 56.34146 -0.8882772 10.32715 56.34146 0.3686533 10.32715 72.7661 0.3686533 -1.574803 72.7661 -1.751507 10.32715 72.7661 -1.751507 -1.574803 72.7661 0.3686533 10.32715 -42.87354 -0.851428 -1.574803 -26.82628 7.022588 -5.905512 -42.87354 -0.851428 -5.905512 -26.82628 7.022588 -1.574803 -10.77901 7.022588 -3.552714e-015 -10.77901 7.022588 -1.574803 -26.82628 7.022588 -1.574803 -26.82628 -8.725444 -1.574803 -10.77901 7.022588 -3.552714e-015 -26.82628 7.022588 -1.574803 -10.77901 -8.725444 -3.552714e-015 -26.82628 -8.725444 -1.574803 -26.82628 7.022588 -1.574803 -42.87354 -0.851428 -1.574803</float_array>
|
|
||||||
<technique_common>
|
|
||||||
<accessor count="143" source="#ID10" stride="3">
|
|
||||||
<param name="X" type="float" />
|
|
||||||
<param name="Y" type="float" />
|
|
||||||
<param name="Z" type="float" />
|
|
||||||
</accessor>
|
|
||||||
</technique_common>
|
|
||||||
</source>
|
|
||||||
<source id="ID8">
|
|
||||||
<float_array id="ID11" count="429">-1.708674e-016 -3.074232e-031 1 -1.708674e-016 -3.074232e-031 1 -1.708674e-016 -3.074232e-031 1 -1.708674e-016 -3.074232e-031 1 0.1089487 -0.9940474 1.433987e-015 0.1089487 -0.9940474 1.433987e-015 0.1089487 -0.9940474 1.433987e-015 0.1089487 -0.9940474 1.433987e-015 0.1089487 -0.9940474 1.433987e-015 0.1089487 -0.9940474 1.433987e-015 0.1089487 -0.9940474 1.433987e-015 0.1089487 -0.9940474 1.433987e-015 0.1089487 -0.9940474 1.433987e-015 5.881845e-017 -4.025817e-016 1 5.881845e-017 -4.025817e-016 1 5.881845e-017 -4.025817e-016 1 5.881845e-017 -4.025817e-016 1 5.881845e-017 -4.025817e-016 1 5.881845e-017 -4.025817e-016 1 5.881845e-017 -4.025817e-016 1 0.1089487 0.9940474 6.499839e-017 0.1089487 0.9940474 6.499839e-017 0.1089487 0.9940474 6.499839e-017 0.1089487 0.9940474 6.499839e-017 0.1089487 0.9940474 6.499839e-017 0.1089487 0.9940474 6.499839e-017 0.1089487 0.9940474 6.499839e-017 0.1089487 0.9940474 6.499839e-017 1 2.026823e-015 0 1 2.026823e-015 0 1 2.026823e-015 0 1 2.026823e-015 0 5.432337e-016 -1 -1.289119e-015 5.432337e-016 -1 -1.289119e-015 5.432337e-016 -1 -1.289119e-015 5.432337e-016 -1 -1.289119e-015 5.432337e-016 -1 -1.289119e-015 5.432337e-016 -1 -1.289119e-015 5.432337e-016 -1 -1.289119e-015 1.688317e-016 -1 2.351503e-016 1.688317e-016 -1 2.351503e-016 1.688317e-016 -1 2.351503e-016 1.688317e-016 -1 2.351503e-016 1.688317e-016 -1 2.351503e-016 1.688317e-016 -1 2.351503e-016 -9.148516e-017 2.255973e-017 -1 -9.148516e-017 2.255973e-017 -1 -9.148516e-017 2.255973e-017 -1 2.16304e-015 2.318198e-031 1 2.16304e-015 2.318198e-031 1 2.16304e-015 2.318198e-031 1 2.433616e-015 5.403713e-031 1 2.433616e-015 5.403713e-031 1 2.433616e-015 5.403713e-031 1 5.906037e-016 -3.708251e-016 1 5.906037e-016 -3.708251e-016 1 5.906037e-016 -3.708251e-016 1 5.906037e-016 -3.708251e-016 1 5.906037e-016 -3.708251e-016 1 5.906037e-016 -3.708251e-016 1 5.906037e-016 -3.708251e-016 1 -2.305222e-016 1 -5.690139e-016 -2.305222e-016 1 -5.690139e-016 -2.305222e-016 1 -5.690139e-016 -2.305222e-016 1 -5.690139e-016 -2.305222e-016 1 -5.690139e-016 -6.646025e-017 1 -1.627837e-032 -6.646025e-017 1 -1.627837e-032 -6.646025e-017 1 -1.627837e-032 -6.646025e-017 1 -1.627837e-032 -6.646025e-017 1 -1.627837e-032 -6.646025e-017 1 -1.627837e-032 -1.691346e-016 1 4.485093e-017 -1.691346e-016 1 4.485093e-017 -1.691346e-016 1 4.485093e-017 -1.691346e-016 1 4.485093e-017 -1.691346e-016 1 4.485093e-017 -1.691346e-016 1 4.485093e-017 -1.691346e-016 1 4.485093e-017 1.878572e-015 9.737157e-016 1 1.878572e-015 9.737157e-016 1 1.878572e-015 9.737157e-016 1 1.878572e-015 9.737157e-016 1 -6.646025e-017 1 0 -6.646025e-017 1 0 -6.646025e-017 1 0 -6.646025e-017 1 0 3.77629e-016 -1 0 3.77629e-016 -1 0 3.77629e-016 -1 0 3.77629e-016 -1 0 2.220446e-016 -1 0 2.220446e-016 -1 0 2.220446e-016 -1 0 -0.4405049 -0.8977502 -2.536866e-017 -0.4405049 -0.8977502 -2.536866e-017 -0.4405049 -0.8977502 -2.536866e-017 -0.4405049 -0.8977502 -2.536866e-017 1.891883e-016 3.691592e-017 -1 1.891883e-016 3.691592e-017 -1 1.891883e-016 3.691592e-017 -1 1.891883e-016 3.691592e-017 -1 1.891883e-016 3.691592e-017 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 1 2.026823e-015 6.618682e-030 1 2.026823e-015 6.618682e-030 1 2.026823e-015 6.618682e-030 1 2.026823e-015 6.618682e-030 -1 -3.831602e-015 0 -1 -3.831602e-015 0 -1 -3.831602e-015 0 -1 -3.831602e-015 0 2.317898e-016 -1 8.54092e-016 2.317898e-016 -1 8.54092e-016 2.317898e-016 -1 8.54092e-016 2.317898e-016 -1 8.54092e-016 2.317898e-016 -1 8.54092e-016 -1 -2.220446e-016 0 -1 -2.220446e-016 0 -1 -2.220446e-016 0 -1 -2.220446e-016 0 -1 -2.220446e-016 0 1 2.220446e-016 0 1 2.220446e-016 0 1 2.220446e-016 0 1 2.220446e-016 0 -0.4405049 0.8977502 -2.536866e-017 -0.4405049 0.8977502 -2.536866e-017 -0.4405049 0.8977502 -2.536866e-017 -0.4405049 0.8977502 -2.536866e-017 -3.327399e-016 1 1.185815e-031 -3.327399e-016 1 1.185815e-031 -3.327399e-016 1 1.185815e-031 -0.09766613 -2.826866e-016 0.9952192 -0.09766613 -2.826866e-016 0.9952192 -0.09766613 -2.826866e-016 0.9952192 -0.09766613 -2.826866e-016 0.9952192 -2.213906e-016 -4.551875e-031 1 -2.213906e-016 -4.551875e-031 1 -2.213906e-016 -4.551875e-031 1</float_array>
|
|
||||||
<technique_common>
|
|
||||||
<accessor count="143" source="#ID11" stride="3">
|
|
||||||
<param name="X" type="float" />
|
|
||||||
<param name="Y" type="float" />
|
|
||||||
<param name="Z" type="float" />
|
|
||||||
</accessor>
|
|
||||||
</technique_common>
|
|
||||||
</source>
|
|
||||||
<vertices id="ID9">
|
|
||||||
<input semantic="POSITION" source="#ID7" />
|
|
||||||
<input semantic="NORMAL" source="#ID8" />
|
|
||||||
</vertices>
|
|
||||||
<triangles count="83" material="Material2">
|
|
||||||
<input offset="0" semantic="VERTEX" source="#ID9" />
|
|
||||||
<p>0 1 2 1 0 3 4 5 6 5 4 7 7 4 8 8 4 9 8 9 10 10 9 11 11 9 12 13 14 15 14 13 16 15 17 18 17 15 14 18 17 19 20 21 22 21 20 23 21 23 24 21 24 25 25 24 26 25 26 27 28 29 30 29 28 31 32 33 34 33 32 35 35 32 36 37 35 38 35 37 33 39 40 41 40 39 42 42 39 43 43 39 44 45 46 47 48 49 50 51 52 53 54 55 56 55 54 57 55 57 58 58 57 59 60 56 55 61 62 63 62 61 64 62 64 65 66 67 68 67 66 69 69 66 70 69 70 71 72 73 74 73 72 75 75 72 76 76 72 77 77 72 78 79 80 81 80 79 82 83 84 85 84 83 86 87 88 89 88 87 90 91 92 93 94 95 96 95 94 97 98 99 100 99 98 101 99 101 102 103 104 105 104 103 106 107 108 109 108 107 110 111 112 113 112 111 114 115 116 117 116 115 118 118 115 119 120 121 122 121 120 123 121 123 124 125 126 127 126 125 128 129 130 131 130 129 132 133 134 135 136 137 138 137 136 139 140 141 142</p>
|
|
||||||
</triangles>
|
|
||||||
</mesh>
|
|
||||||
</geometry>
|
|
||||||
<geometry id="ID12">
|
|
||||||
<mesh>
|
|
||||||
<source id="ID13">
|
|
||||||
<float_array id="ID16" count="12">0.6383115 46.7127 -1.574803 12.05563 46.7127 -1.968504 0.6383115 46.7127 -1.968504 12.05563 46.7127 -1.574803</float_array>
|
|
||||||
<technique_common>
|
|
||||||
<accessor count="4" source="#ID16" stride="3">
|
|
||||||
<param name="X" type="float" />
|
|
||||||
<param name="Y" type="float" />
|
|
||||||
<param name="Z" type="float" />
|
|
||||||
</accessor>
|
|
||||||
</technique_common>
|
|
||||||
</source>
|
|
||||||
<source id="ID14">
|
|
||||||
<float_array id="ID17" count="12">-1.017944e-014 1 4.717361e-030 -1.017944e-014 1 4.717361e-030 -1.017944e-014 1 4.717361e-030 -1.017944e-014 1 4.717361e-030</float_array>
|
|
||||||
<technique_common>
|
|
||||||
<accessor count="4" source="#ID17" stride="3">
|
|
||||||
<param name="X" type="float" />
|
|
||||||
<param name="Y" type="float" />
|
|
||||||
<param name="Z" type="float" />
|
|
||||||
</accessor>
|
|
||||||
</technique_common>
|
|
||||||
</source>
|
|
||||||
<vertices id="ID15">
|
|
||||||
<input semantic="POSITION" source="#ID13" />
|
|
||||||
<input semantic="NORMAL" source="#ID14" />
|
|
||||||
</vertices>
|
|
||||||
<triangles count="2" material="Material2">
|
|
||||||
<input offset="0" semantic="VERTEX" source="#ID15" />
|
|
||||||
<p>0 1 2 1 0 3</p>
|
|
||||||
</triangles>
|
|
||||||
</mesh>
|
|
||||||
</geometry>
|
|
||||||
<geometry id="ID18">
|
|
||||||
<mesh>
|
|
||||||
<source id="ID21">
|
|
||||||
<float_array id="ID24" count="42">-10.77901 7.022588 -1.574803 -26.82628 -8.725444 -1.574803 -26.82628 7.022588 -1.574803 -10.77901 -8.725444 -1.574803 -10.77901 7.022588 -1.574803 -10.77901 -8.725444 -3.552714e-015 -10.77901 -8.725444 -1.574803 -10.77901 7.022588 -3.552714e-015 -10.77901 7.022588 -1.574803 -10.77901 -8.725444 -1.968504 -10.77901 -8.725444 -1.574803 -10.77901 -8.725444 -5.905512 -10.77901 7.022588 -5.905512 -10.77901 7.022588 -1.968504</float_array>
|
|
||||||
<technique_common>
|
|
||||||
<accessor count="14" source="#ID24" stride="3">
|
|
||||||
<param name="X" type="float" />
|
|
||||||
<param name="Y" type="float" />
|
|
||||||
<param name="Z" type="float" />
|
|
||||||
</accessor>
|
|
||||||
</technique_common>
|
|
||||||
</source>
|
|
||||||
<source id="ID22">
|
|
||||||
<float_array id="ID25" count="42">2.213906e-016 6.45441e-031 -1 2.213906e-016 6.45441e-031 -1 2.213906e-016 6.45441e-031 -1 2.213906e-016 6.45441e-031 -1 1 3.831602e-015 0 1 3.831602e-015 0 1 3.831602e-015 0 1 3.831602e-015 0 -1 -3.831602e-015 -3.00413e-030 -1 -3.831602e-015 -3.00413e-030 -1 -3.831602e-015 -3.00413e-030 -1 -3.831602e-015 -3.00413e-030 -1 -3.831602e-015 -3.00413e-030 -1 -3.831602e-015 -3.00413e-030</float_array>
|
|
||||||
<technique_common>
|
|
||||||
<accessor count="14" source="#ID25" stride="3">
|
|
||||||
<param name="X" type="float" />
|
|
||||||
<param name="Y" type="float" />
|
|
||||||
<param name="Z" type="float" />
|
|
||||||
</accessor>
|
|
||||||
</technique_common>
|
|
||||||
</source>
|
|
||||||
<vertices id="ID23">
|
|
||||||
<input semantic="POSITION" source="#ID21" />
|
|
||||||
<input semantic="NORMAL" source="#ID22" />
|
|
||||||
</vertices>
|
|
||||||
<triangles count="8" material="Material2">
|
|
||||||
<input offset="0" semantic="VERTEX" source="#ID23" />
|
|
||||||
<p>0 1 2 1 0 3 4 5 6 5 4 7 8 9 10 9 8 11 11 8 12 12 8 13</p>
|
|
||||||
</triangles>
|
|
||||||
</mesh>
|
|
||||||
</geometry>
|
|
||||||
<geometry id="ID26">
|
|
||||||
<mesh>
|
|
||||||
<source id="ID29">
|
|
||||||
<float_array id="ID32" count="54">-10.77901 -8.725444 -1.574803 0.6383115 -46.59439 -1.968504 0.6383115 -46.59439 -1.574803 -10.77901 -8.725444 -1.968504 12.05563 -46.59439 -1.574803 0.6383115 -46.59439 -1.968504 12.05563 -46.59439 -1.968504 0.6383115 -46.59439 -1.574803 12.05563 7.022588 -4.724409 12.05563 -8.725444 -1.968504 12.05563 -8.725444 -4.724409 12.05563 -46.59439 -1.574803 12.05563 -46.59439 -1.968504 12.05563 -8.725444 -1.574803 12.05563 7.022588 -1.574803 12.05563 7.022588 -1.968504 12.05563 46.7127 -1.968504 12.05563 46.7127 -1.574803</float_array>
|
|
||||||
<technique_common>
|
|
||||||
<accessor count="18" source="#ID32" stride="3">
|
|
||||||
<param name="X" type="float" />
|
|
||||||
<param name="Y" type="float" />
|
|
||||||
<param name="Z" type="float" />
|
|
||||||
</accessor>
|
|
||||||
</technique_common>
|
|
||||||
</source>
|
|
||||||
<source id="ID30">
|
|
||||||
<float_array id="ID33" count="54">-0.9574313 -0.2886614 -4.227722e-015 -0.9574313 -0.2886614 -4.227722e-015 -0.9574313 -0.2886614 -4.227722e-015 -0.9574313 -0.2886614 -4.227722e-015 -1.02263e-015 -1 6.037099e-031 -1.02263e-015 -1 6.037099e-031 -1.02263e-015 -1 6.037099e-031 -1.02263e-015 -1 6.037099e-031 1 -1.918822e-015 -1.567037e-014 1 -1.918822e-015 -1.567037e-014 1 -1.918822e-015 -1.567037e-014 1 -1.918822e-015 -1.567037e-014 1 -1.918822e-015 -1.567037e-014 1 -1.918822e-015 -1.567037e-014 1 -1.918822e-015 -1.567037e-014 1 -1.918822e-015 -1.567037e-014 1 -1.918822e-015 -1.567037e-014 1 -1.918822e-015 -1.567037e-014</float_array>
|
|
||||||
<technique_common>
|
|
||||||
<accessor count="18" source="#ID33" stride="3">
|
|
||||||
<param name="X" type="float" />
|
|
||||||
<param name="Y" type="float" />
|
|
||||||
<param name="Z" type="float" />
|
|
||||||
</accessor>
|
|
||||||
</technique_common>
|
|
||||||
</source>
|
|
||||||
<vertices id="ID31">
|
|
||||||
<input semantic="POSITION" source="#ID29" />
|
|
||||||
<input semantic="NORMAL" source="#ID30" />
|
|
||||||
</vertices>
|
|
||||||
<triangles count="12" material="Material2">
|
|
||||||
<input offset="0" semantic="VERTEX" source="#ID31" />
|
|
||||||
<p>0 1 2 1 0 3 4 5 6 5 4 7 8 9 10 9 11 12 11 9 13 13 9 14 14 9 8 14 8 15 14 15 16 14 16 17</p>
|
|
||||||
</triangles>
|
|
||||||
</mesh>
|
|
||||||
</geometry>
|
|
||||||
<geometry id="ID34">
|
|
||||||
<mesh>
|
|
||||||
<source id="ID37">
|
|
||||||
<float_array id="ID40" count="12">12.05563 7.022588 -1.574803 0.6383115 46.7127 -1.574803 -10.77901 7.022588 -1.574803 12.05563 46.7127 -1.574803</float_array>
|
|
||||||
<technique_common>
|
|
||||||
<accessor count="4" source="#ID40" stride="3">
|
|
||||||
<param name="X" type="float" />
|
|
||||||
<param name="Y" type="float" />
|
|
||||||
<param name="Z" type="float" />
|
|
||||||
</accessor>
|
|
||||||
</technique_common>
|
|
||||||
</source>
|
|
||||||
<source id="ID38">
|
|
||||||
<float_array id="ID41" count="12">3.922153e-031 -1.790226e-016 1 3.922153e-031 -1.790226e-016 1 3.922153e-031 -1.790226e-016 1 3.922153e-031 -1.790226e-016 1</float_array>
|
|
||||||
<technique_common>
|
|
||||||
<accessor count="4" source="#ID41" stride="3">
|
|
||||||
<param name="X" type="float" />
|
|
||||||
<param name="Y" type="float" />
|
|
||||||
<param name="Z" type="float" />
|
|
||||||
</accessor>
|
|
||||||
</technique_common>
|
|
||||||
</source>
|
|
||||||
<vertices id="ID39">
|
|
||||||
<input semantic="POSITION" source="#ID37" />
|
|
||||||
<input semantic="NORMAL" source="#ID38" />
|
|
||||||
</vertices>
|
|
||||||
<triangles count="2" material="Material2">
|
|
||||||
<input offset="0" semantic="VERTEX" source="#ID39" />
|
|
||||||
<p>0 1 2 1 0 3</p>
|
|
||||||
</triangles>
|
|
||||||
</mesh>
|
|
||||||
</geometry>
|
|
||||||
<geometry id="ID42">
|
|
||||||
<mesh>
|
|
||||||
<source id="ID43">
|
|
||||||
<float_array id="ID46" count="12">0.6383115 46.7127 -1.574803 -10.77901 7.022588 -1.968504 -10.77901 7.022588 -1.574803 0.6383115 46.7127 -1.968504</float_array>
|
|
||||||
<technique_common>
|
|
||||||
<accessor count="4" source="#ID46" stride="3">
|
|
||||||
<param name="X" type="float" />
|
|
||||||
<param name="Y" type="float" />
|
|
||||||
<param name="Z" type="float" />
|
|
||||||
</accessor>
|
|
||||||
</technique_common>
|
|
||||||
</source>
|
|
||||||
<source id="ID44">
|
|
||||||
<float_array id="ID47" count="12">-0.961028 0.2764509 -1.211156e-015 -0.961028 0.2764509 -1.211156e-015 -0.961028 0.2764509 -1.211156e-015 -0.961028 0.2764509 -1.211156e-015</float_array>
|
|
||||||
<technique_common>
|
|
||||||
<accessor count="4" source="#ID47" stride="3">
|
|
||||||
<param name="X" type="float" />
|
|
||||||
<param name="Y" type="float" />
|
|
||||||
<param name="Z" type="float" />
|
|
||||||
</accessor>
|
|
||||||
</technique_common>
|
|
||||||
</source>
|
|
||||||
<vertices id="ID45">
|
|
||||||
<input semantic="POSITION" source="#ID43" />
|
|
||||||
<input semantic="NORMAL" source="#ID44" />
|
|
||||||
</vertices>
|
|
||||||
<triangles count="2" material="Material2">
|
|
||||||
<input offset="0" semantic="VERTEX" source="#ID45" />
|
|
||||||
<p>0 1 2 1 0 3</p>
|
|
||||||
</triangles>
|
|
||||||
</mesh>
|
|
||||||
</geometry>
|
|
||||||
<geometry id="ID48">
|
|
||||||
<mesh>
|
|
||||||
<source id="ID49">
|
|
||||||
<float_array id="ID52" count="9">72.7661 -2.071509 -1.574803 72.36054 -2.115958 -1.574803 72.7661 -2.115958 -1.574803</float_array>
|
|
||||||
<technique_common>
|
|
||||||
<accessor count="3" source="#ID52" stride="3">
|
|
||||||
<param name="X" type="float" />
|
|
||||||
<param name="Y" type="float" />
|
|
||||||
<param name="Z" type="float" />
|
|
||||||
</accessor>
|
|
||||||
</technique_common>
|
|
||||||
</source>
|
|
||||||
<source id="ID50">
|
|
||||||
<float_array id="ID53" count="9">-1.752039e-014 1.59856e-013 1 -1.752039e-014 1.59856e-013 1 -1.752039e-014 1.59856e-013 1</float_array>
|
|
||||||
<technique_common>
|
|
||||||
<accessor count="3" source="#ID53" stride="3">
|
|
||||||
<param name="X" type="float" />
|
|
||||||
<param name="Y" type="float" />
|
|
||||||
<param name="Z" type="float" />
|
|
||||||
</accessor>
|
|
||||||
</technique_common>
|
|
||||||
</source>
|
|
||||||
<vertices id="ID51">
|
|
||||||
<input semantic="POSITION" source="#ID49" />
|
|
||||||
<input semantic="NORMAL" source="#ID50" />
|
|
||||||
</vertices>
|
|
||||||
<triangles count="1" material="Material2">
|
|
||||||
<input offset="0" semantic="VERTEX" source="#ID51" />
|
|
||||||
<p>0 1 2</p>
|
|
||||||
</triangles>
|
|
||||||
</mesh>
|
|
||||||
</geometry>
|
|
||||||
<geometry id="ID54">
|
|
||||||
<mesh>
|
|
||||||
<source id="ID55">
|
|
||||||
<float_array id="ID58" count="72">72.7661 -1.751507 10.32715 72.7661 -17.89324 10.62992 72.7661 -17.89324 10.32715 72.7661 16.11668 10.62992 72.7661 0.3686533 10.32715 72.7661 16.11668 10.32715 72.7661 -17.89324 10.62992 64.55378 -17.89324 10.32715 72.7661 -17.89324 10.32715 64.55378 -17.89324 10.62992 64.55378 16.11668 10.62992 72.7661 16.11668 10.32715 64.55378 16.11668 10.32715 72.7661 16.11668 10.62992 56.34146 -0.8882772 10.62992 64.55378 -17.89324 10.32715 64.55378 -17.89324 10.62992 56.75835 -1.751507 10.32715 56.34146 -0.8882772 10.32715 64.55378 16.11668 10.62992 56.34146 -0.8882772 10.32715 56.34146 -0.8882772 10.62992 56.94848 0.3686533 10.32715 64.55378 16.11668 10.32715</float_array>
|
|
||||||
<technique_common>
|
|
||||||
<accessor count="24" source="#ID58" stride="3">
|
|
||||||
<param name="X" type="float" />
|
|
||||||
<param name="Y" type="float" />
|
|
||||||
<param name="Z" type="float" />
|
|
||||||
</accessor>
|
|
||||||
</technique_common>
|
|
||||||
</source>
|
|
||||||
<source id="ID56">
|
|
||||||
<float_array id="ID59" count="72">1 2.220446e-016 0 1 2.220446e-016 0 1 2.220446e-016 0 1 2.220446e-016 0 1 2.220446e-016 0 1 2.220446e-016 0 2.220446e-016 -1 0 2.220446e-016 -1 0 2.220446e-016 -1 0 2.220446e-016 -1 0 -2.220446e-016 1 0 -2.220446e-016 1 0 -2.220446e-016 1 0 -2.220446e-016 1 0 -0.9004889 -0.4348789 -3.545707e-015 -0.9004889 -0.4348789 -3.545707e-015 -0.9004889 -0.4348789 -3.545707e-015 -0.9004889 -0.4348789 -3.545707e-015 -0.9004889 -0.4348789 -3.545707e-015 -0.9004889 0.4348789 0 -0.9004889 0.4348789 0 -0.9004889 0.4348789 0 -0.9004889 0.4348789 0 -0.9004889 0.4348789 0</float_array>
|
|
||||||
<technique_common>
|
|
||||||
<accessor count="24" source="#ID59" stride="3">
|
|
||||||
<param name="X" type="float" />
|
|
||||||
<param name="Y" type="float" />
|
|
||||||
<param name="Z" type="float" />
|
|
||||||
</accessor>
|
|
||||||
</technique_common>
|
|
||||||
</source>
|
|
||||||
<vertices id="ID57">
|
|
||||||
<input semantic="POSITION" source="#ID55" />
|
|
||||||
<input semantic="NORMAL" source="#ID56" />
|
|
||||||
</vertices>
|
|
||||||
<triangles count="14" material="Material2">
|
|
||||||
<input offset="0" semantic="VERTEX" source="#ID57" />
|
|
||||||
<p>0 1 2 1 0 3 3 0 4 3 4 5 6 7 8 7 6 9 10 11 12 11 10 13 14 15 16 15 14 17 17 14 18 19 20 21 20 19 22 22 19 23</p>
|
|
||||||
</triangles>
|
|
||||||
</mesh>
|
|
||||||
</geometry>
|
|
||||||
<geometry id="ID60">
|
|
||||||
<mesh>
|
|
||||||
<source id="ID61">
|
|
||||||
<float_array id="ID64" count="33">56.94848 0.3686533 10.32715 56.34146 0.3686533 10.32715 56.34146 -0.8882772 10.32715 56.75835 -1.751507 10.32715 56.94848 0.3686533 10.32715 56.34146 -0.8882772 10.32715 72.7661 -1.751507 10.32715 72.7661 0.3686533 10.32715 56.75835 -1.751507 10.32715 56.34146 -0.8882772 10.32715 56.34146 -1.751507 10.32715</float_array>
|
|
||||||
<technique_common>
|
|
||||||
<accessor count="11" source="#ID64" stride="3">
|
|
||||||
<param name="X" type="float" />
|
|
||||||
<param name="Y" type="float" />
|
|
||||||
<param name="Z" type="float" />
|
|
||||||
</accessor>
|
|
||||||
</technique_common>
|
|
||||||
</source>
|
|
||||||
<source id="ID62">
|
|
||||||
<float_array id="ID65" count="33">-1.170547e-014 8.479499e-015 1 -1.170547e-014 8.479499e-015 1 -1.170547e-014 8.479499e-015 1 5.186512e-016 7.131123e-017 1 5.186512e-016 7.131123e-017 1 5.186512e-016 7.131123e-017 1 5.186512e-016 7.131123e-017 1 5.186512e-016 7.131123e-017 1 -1.704409e-014 -1.234682e-014 1 -1.704409e-014 -1.234682e-014 1 -1.704409e-014 -1.234682e-014 1</float_array>
|
|
||||||
<technique_common>
|
|
||||||
<accessor count="11" source="#ID65" stride="3">
|
|
||||||
<param name="X" type="float" />
|
|
||||||
<param name="Y" type="float" />
|
|
||||||
<param name="Z" type="float" />
|
|
||||||
</accessor>
|
|
||||||
</technique_common>
|
|
||||||
</source>
|
|
||||||
<vertices id="ID63">
|
|
||||||
<input semantic="POSITION" source="#ID61" />
|
|
||||||
<input semantic="NORMAL" source="#ID62" />
|
|
||||||
</vertices>
|
|
||||||
<triangles count="5" material="Material2">
|
|
||||||
<input offset="0" semantic="VERTEX" source="#ID63" />
|
|
||||||
<p>0 1 2 3 4 5 4 3 6 4 6 7 8 9 10</p>
|
|
||||||
</triangles>
|
|
||||||
</mesh>
|
|
||||||
</geometry>
|
|
||||||
<geometry id="ID66">
|
|
||||||
<mesh>
|
|
||||||
<source id="ID67">
|
|
||||||
<float_array id="ID70" count="15">64.55378 -17.89324 10.62992 64.55378 16.11668 10.62992 56.34146 -0.8882772 10.62992 72.7661 16.11668 10.62992 72.7661 -17.89324 10.62992</float_array>
|
|
||||||
<technique_common>
|
|
||||||
<accessor count="5" source="#ID70" stride="3">
|
|
||||||
<param name="X" type="float" />
|
|
||||||
<param name="Y" type="float" />
|
|
||||||
<param name="Z" type="float" />
|
|
||||||
</accessor>
|
|
||||||
</technique_common>
|
|
||||||
</source>
|
|
||||||
<source id="ID68">
|
|
||||||
<float_array id="ID71" count="15">9.888184e-016 2.611527e-016 1 9.888184e-016 2.611527e-016 1 9.888184e-016 2.611527e-016 1 9.888184e-016 2.611527e-016 1 9.888184e-016 2.611527e-016 1</float_array>
|
|
||||||
<technique_common>
|
|
||||||
<accessor count="5" source="#ID71" stride="3">
|
|
||||||
<param name="X" type="float" />
|
|
||||||
<param name="Y" type="float" />
|
|
||||||
<param name="Z" type="float" />
|
|
||||||
</accessor>
|
|
||||||
</technique_common>
|
|
||||||
</source>
|
|
||||||
<vertices id="ID69">
|
|
||||||
<input semantic="POSITION" source="#ID67" />
|
|
||||||
<input semantic="NORMAL" source="#ID68" />
|
|
||||||
</vertices>
|
|
||||||
<triangles count="3" material="Material2">
|
|
||||||
<input offset="0" semantic="VERTEX" source="#ID69" />
|
|
||||||
<p>0 1 2 1 0 3 3 0 4</p>
|
|
||||||
</triangles>
|
|
||||||
</mesh>
|
|
||||||
</geometry>
|
|
||||||
<geometry id="ID72">
|
|
||||||
<mesh>
|
|
||||||
<source id="ID75">
|
|
||||||
<float_array id="ID78" count="12">0.6383115 46.7127 -1.968504 12.05563 7.022588 -1.968504 -10.77901 7.022588 -1.968504 12.05563 46.7127 -1.968504</float_array>
|
|
||||||
<technique_common>
|
|
||||||
<accessor count="4" source="#ID78" stride="3">
|
|
||||||
<param name="X" type="float" />
|
|
||||||
<param name="Y" type="float" />
|
|
||||||
<param name="Z" type="float" />
|
|
||||||
</accessor>
|
|
||||||
</technique_common>
|
|
||||||
</source>
|
|
||||||
<source id="ID76">
|
|
||||||
<float_array id="ID79" count="12">-8.275666e-031 1.641041e-016 -1 -8.275666e-031 1.641041e-016 -1 -8.275666e-031 1.641041e-016 -1 -8.275666e-031 1.641041e-016 -1</float_array>
|
|
||||||
<technique_common>
|
|
||||||
<accessor count="4" source="#ID79" stride="3">
|
|
||||||
<param name="X" type="float" />
|
|
||||||
<param name="Y" type="float" />
|
|
||||||
<param name="Z" type="float" />
|
|
||||||
</accessor>
|
|
||||||
</technique_common>
|
|
||||||
</source>
|
|
||||||
<vertices id="ID77">
|
|
||||||
<input semantic="POSITION" source="#ID75" />
|
|
||||||
<input semantic="NORMAL" source="#ID76" />
|
|
||||||
</vertices>
|
|
||||||
<triangles count="2" material="Material2">
|
|
||||||
<input offset="0" semantic="VERTEX" source="#ID77" />
|
|
||||||
<p>0 1 2 1 0 3</p>
|
|
||||||
</triangles>
|
|
||||||
</mesh>
|
|
||||||
</geometry>
|
|
||||||
<geometry id="ID80">
|
|
||||||
<mesh>
|
|
||||||
<source id="ID81">
|
|
||||||
<float_array id="ID84" count="12">-10.77901 -8.725444 -3.552714e-015 12.05563 7.022588 -3.552714e-015 -10.77901 7.022588 -3.552714e-015 12.05563 -8.725444 -3.552714e-015</float_array>
|
|
||||||
<technique_common>
|
|
||||||
<accessor count="4" source="#ID84" stride="3">
|
|
||||||
<param name="X" type="float" />
|
|
||||||
<param name="Y" type="float" />
|
|
||||||
<param name="Z" type="float" />
|
|
||||||
</accessor>
|
|
||||||
</technique_common>
|
|
||||||
</source>
|
|
||||||
<source id="ID82">
|
|
||||||
<float_array id="ID85" count="12">0 0 1 0 0 1 0 0 1 0 0 1</float_array>
|
|
||||||
<technique_common>
|
|
||||||
<accessor count="4" source="#ID85" stride="3">
|
|
||||||
<param name="X" type="float" />
|
|
||||||
<param name="Y" type="float" />
|
|
||||||
<param name="Z" type="float" />
|
|
||||||
</accessor>
|
|
||||||
</technique_common>
|
|
||||||
</source>
|
|
||||||
<vertices id="ID83">
|
|
||||||
<input semantic="POSITION" source="#ID81" />
|
|
||||||
<input semantic="NORMAL" source="#ID82" />
|
|
||||||
</vertices>
|
|
||||||
<triangles count="2" material="Material2">
|
|
||||||
<input offset="0" semantic="VERTEX" source="#ID83" />
|
|
||||||
<p>0 1 2 1 0 3</p>
|
|
||||||
</triangles>
|
|
||||||
</mesh>
|
|
||||||
</geometry>
|
|
||||||
<geometry id="ID86">
|
|
||||||
<mesh>
|
|
||||||
<source id="ID87">
|
|
||||||
<float_array id="ID90" count="12">0.6383115 -46.59439 -1.574803 12.05563 -8.725444 -1.574803 -10.77901 -8.725444 -1.574803 12.05563 -46.59439 -1.574803</float_array>
|
|
||||||
<technique_common>
|
|
||||||
<accessor count="4" source="#ID90" stride="3">
|
|
||||||
<param name="X" type="float" />
|
|
||||||
<param name="Y" type="float" />
|
|
||||||
<param name="Z" type="float" />
|
|
||||||
</accessor>
|
|
||||||
</technique_common>
|
|
||||||
</source>
|
|
||||||
<source id="ID88">
|
|
||||||
<float_array id="ID91" count="12">-4.166268e-032 1.87632e-016 1 -4.166268e-032 1.87632e-016 1 -4.166268e-032 1.87632e-016 1 -4.166268e-032 1.87632e-016 1</float_array>
|
|
||||||
<technique_common>
|
|
||||||
<accessor count="4" source="#ID91" stride="3">
|
|
||||||
<param name="X" type="float" />
|
|
||||||
<param name="Y" type="float" />
|
|
||||||
<param name="Z" type="float" />
|
|
||||||
</accessor>
|
|
||||||
</technique_common>
|
|
||||||
</source>
|
|
||||||
<vertices id="ID89">
|
|
||||||
<input semantic="POSITION" source="#ID87" />
|
|
||||||
<input semantic="NORMAL" source="#ID88" />
|
|
||||||
</vertices>
|
|
||||||
<triangles count="2" material="Material2">
|
|
||||||
<input offset="0" semantic="VERTEX" source="#ID89" />
|
|
||||||
<p>0 1 2 1 0 3</p>
|
|
||||||
</triangles>
|
|
||||||
</mesh>
|
|
||||||
</geometry>
|
|
||||||
<geometry id="ID92">
|
|
||||||
<mesh>
|
|
||||||
<source id="ID93">
|
|
||||||
<float_array id="ID96" count="12">12.05563 -8.725444 -1.968504 0.6383115 -46.59439 -1.968504 -10.77901 -8.725444 -1.968504 12.05563 -46.59439 -1.968504</float_array>
|
|
||||||
<technique_common>
|
|
||||||
<accessor count="4" source="#ID96" stride="3">
|
|
||||||
<param name="X" type="float" />
|
|
||||||
<param name="Y" type="float" />
|
|
||||||
<param name="Z" type="float" />
|
|
||||||
</accessor>
|
|
||||||
</technique_common>
|
|
||||||
</source>
|
|
||||||
<source id="ID94">
|
|
||||||
<float_array id="ID97" count="12">-8.825504e-032 -2.189041e-016 -1 -8.825504e-032 -2.189041e-016 -1 -8.825504e-032 -2.189041e-016 -1 -8.825504e-032 -2.189041e-016 -1</float_array>
|
|
||||||
<technique_common>
|
|
||||||
<accessor count="4" source="#ID97" stride="3">
|
|
||||||
<param name="X" type="float" />
|
|
||||||
<param name="Y" type="float" />
|
|
||||||
<param name="Z" type="float" />
|
|
||||||
</accessor>
|
|
||||||
</technique_common>
|
|
||||||
</source>
|
|
||||||
<vertices id="ID95">
|
|
||||||
<input semantic="POSITION" source="#ID93" />
|
|
||||||
<input semantic="NORMAL" source="#ID94" />
|
|
||||||
</vertices>
|
|
||||||
<triangles count="2" material="Material2">
|
|
||||||
<input offset="0" semantic="VERTEX" source="#ID95" />
|
|
||||||
<p>0 1 2 1 0 3</p>
|
|
||||||
</triangles>
|
|
||||||
</mesh>
|
|
||||||
</geometry>
|
|
||||||
<geometry id="ID98">
|
|
||||||
<mesh>
|
|
||||||
<source id="ID99">
|
|
||||||
<float_array id="ID102" count="12">72.7661 -1.751507 10.32715 64.55378 -17.89324 10.32715 56.75835 -1.751507 10.32715 72.7661 -17.89324 10.32715</float_array>
|
|
||||||
<technique_common>
|
|
||||||
<accessor count="4" source="#ID102" stride="3">
|
|
||||||
<param name="X" type="float" />
|
|
||||||
<param name="Y" type="float" />
|
|
||||||
<param name="Z" type="float" />
|
|
||||||
</accessor>
|
|
||||||
</technique_common>
|
|
||||||
</source>
|
|
||||||
<source id="ID100">
|
|
||||||
<float_array id="ID103" count="12">-4.415269e-016 -2.166622e-016 -1 -4.415269e-016 -2.166622e-016 -1 -4.415269e-016 -2.166622e-016 -1 -4.415269e-016 -2.166622e-016 -1</float_array>
|
|
||||||
<technique_common>
|
|
||||||
<accessor count="4" source="#ID103" stride="3">
|
|
||||||
<param name="X" type="float" />
|
|
||||||
<param name="Y" type="float" />
|
|
||||||
<param name="Z" type="float" />
|
|
||||||
</accessor>
|
|
||||||
</technique_common>
|
|
||||||
</source>
|
|
||||||
<vertices id="ID101">
|
|
||||||
<input semantic="POSITION" source="#ID99" />
|
|
||||||
<input semantic="NORMAL" source="#ID100" />
|
|
||||||
</vertices>
|
|
||||||
<triangles count="2" material="Material2">
|
|
||||||
<input offset="0" semantic="VERTEX" source="#ID101" />
|
|
||||||
<p>0 1 2 1 0 3</p>
|
|
||||||
</triangles>
|
|
||||||
</mesh>
|
|
||||||
</geometry>
|
|
||||||
<geometry id="ID104">
|
|
||||||
<mesh>
|
|
||||||
<source id="ID105">
|
|
||||||
<float_array id="ID108" count="12">64.55378 16.11668 10.32715 72.7661 0.3686533 10.32715 56.94848 0.3686533 10.32715 72.7661 16.11668 10.32715</float_array>
|
|
||||||
<technique_common>
|
|
||||||
<accessor count="4" source="#ID108" stride="3">
|
|
||||||
<param name="X" type="float" />
|
|
||||||
<param name="Y" type="float" />
|
|
||||||
<param name="Z" type="float" />
|
|
||||||
</accessor>
|
|
||||||
</technique_common>
|
|
||||||
</source>
|
|
||||||
<source id="ID106">
|
|
||||||
<float_array id="ID109" count="12">-3.538322e-016 -1.401581e-016 -1 -3.538322e-016 -1.401581e-016 -1 -3.538322e-016 -1.401581e-016 -1 -3.538322e-016 -1.401581e-016 -1</float_array>
|
|
||||||
<technique_common>
|
|
||||||
<accessor count="4" source="#ID109" stride="3">
|
|
||||||
<param name="X" type="float" />
|
|
||||||
<param name="Y" type="float" />
|
|
||||||
<param name="Z" type="float" />
|
|
||||||
</accessor>
|
|
||||||
</technique_common>
|
|
||||||
</source>
|
|
||||||
<vertices id="ID107">
|
|
||||||
<input semantic="POSITION" source="#ID105" />
|
|
||||||
<input semantic="NORMAL" source="#ID106" />
|
|
||||||
</vertices>
|
|
||||||
<triangles count="2" material="Material2">
|
|
||||||
<input offset="0" semantic="VERTEX" source="#ID107" />
|
|
||||||
<p>0 1 2 1 0 3</p>
|
|
||||||
</triangles>
|
|
||||||
</mesh>
|
|
||||||
</geometry>
|
|
||||||
</library_geometries>
|
|
||||||
<library_materials>
|
|
||||||
<material id="ID5" name="material_0">
|
|
||||||
<instance_effect url="#ID6" />
|
|
||||||
</material>
|
|
||||||
<material id="ID20" name="material_1">
|
|
||||||
<instance_effect url="#ID19" />
|
|
||||||
</material>
|
|
||||||
<material id="ID27" name="material_2">
|
|
||||||
<instance_effect url="#ID28" />
|
|
||||||
</material>
|
|
||||||
<material id="ID35" name="material_3">
|
|
||||||
<instance_effect url="#ID36" />
|
|
||||||
</material>
|
|
||||||
<material id="ID73" name="material_4">
|
|
||||||
<instance_effect url="#ID74" />
|
|
||||||
</material>
|
|
||||||
</library_materials>
|
|
||||||
<library_effects>
|
|
||||||
<effect id="ID6">
|
|
||||||
<profile_COMMON>
|
|
||||||
<technique sid="COMMON">
|
|
||||||
<lambert>
|
|
||||||
<diffuse>
|
|
||||||
<color>1 1 0 1</color>
|
|
||||||
</diffuse>
|
|
||||||
</lambert>
|
|
||||||
</technique>
|
|
||||||
</profile_COMMON>
|
|
||||||
</effect>
|
|
||||||
<effect id="ID19">
|
|
||||||
<profile_COMMON>
|
|
||||||
<technique sid="COMMON">
|
|
||||||
<lambert>
|
|
||||||
<diffuse>
|
|
||||||
<color>0.8901961 0.8823529 0.8705882 1</color>
|
|
||||||
</diffuse>
|
|
||||||
</lambert>
|
|
||||||
</technique>
|
|
||||||
</profile_COMMON>
|
|
||||||
</effect>
|
|
||||||
<effect id="ID28">
|
|
||||||
<profile_COMMON>
|
|
||||||
<technique sid="COMMON">
|
|
||||||
<lambert>
|
|
||||||
<diffuse>
|
|
||||||
<color>0.4 0 0 1</color>
|
|
||||||
</diffuse>
|
|
||||||
</lambert>
|
|
||||||
</technique>
|
|
||||||
</profile_COMMON>
|
|
||||||
</effect>
|
|
||||||
<effect id="ID36">
|
|
||||||
<profile_COMMON>
|
|
||||||
<technique sid="COMMON">
|
|
||||||
<lambert>
|
|
||||||
<diffuse>
|
|
||||||
<color>0.6 0 0 1</color>
|
|
||||||
</diffuse>
|
|
||||||
</lambert>
|
|
||||||
</technique>
|
|
||||||
</profile_COMMON>
|
|
||||||
</effect>
|
|
||||||
<effect id="ID74">
|
|
||||||
<profile_COMMON>
|
|
||||||
<technique sid="COMMON">
|
|
||||||
<lambert>
|
|
||||||
<diffuse>
|
|
||||||
<color>0 0 1 1</color>
|
|
||||||
</diffuse>
|
|
||||||
</lambert>
|
|
||||||
</technique>
|
|
||||||
</profile_COMMON>
|
|
||||||
</effect>
|
|
||||||
</library_effects>
|
|
||||||
<scene>
|
|
||||||
<instance_visual_scene url="#ID1" />
|
|
||||||
</scene>
|
|
||||||
</COLLADA>
|
|
|
@ -1,385 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<!-- TAGS ARE CASE SENSATIVE -->
|
|
||||||
<LOGFORMAT>
|
|
||||||
<AC2>
|
|
||||||
<GPS>
|
|
||||||
<F1>Time</F1>
|
|
||||||
<F2>Sats</F2>
|
|
||||||
<F3>Lat</F3>
|
|
||||||
<F4>Long</F4>
|
|
||||||
<F5>Mix Alt</F5>
|
|
||||||
<F6>GPSAlt</F6>
|
|
||||||
<F7>GR Speed</F7>
|
|
||||||
<F8>CRS</F8>
|
|
||||||
</GPS>
|
|
||||||
<ATT>
|
|
||||||
<F1>Roll IN</F1>
|
|
||||||
<F2>Roll</F2>
|
|
||||||
<F3>Pitch IN</F3>
|
|
||||||
<F4>Pitch</F4>
|
|
||||||
<F5>Yaw IN</F5>
|
|
||||||
<F6>Yaw</F6>
|
|
||||||
<F7>Mag Heading</F7>
|
|
||||||
</ATT>
|
|
||||||
<NTUN>
|
|
||||||
<F1>WP Dist</F1>
|
|
||||||
<F2>Target Bear</F2>
|
|
||||||
<F3>Long Err</F3>
|
|
||||||
<F4>Lat Err</F4>
|
|
||||||
<F5>nav lon</F5>
|
|
||||||
<F6>nav lat</F6>
|
|
||||||
<F7>X Speed</F7>
|
|
||||||
<F8>Y Speed</F8>
|
|
||||||
<F9>nav lon I</F9>
|
|
||||||
<F10>nav lat I</F10>
|
|
||||||
</NTUN>
|
|
||||||
<CTUN>
|
|
||||||
<F1>Thr IN</F1>
|
|
||||||
<F2>Sonar Alt</F2>
|
|
||||||
<F3>Baro Alt</F3>
|
|
||||||
<F4>WP Alt</F4>
|
|
||||||
<F5>Nav Throttle</F5>
|
|
||||||
<F6>Angle boost</F6>
|
|
||||||
<F7>Manual boost</F7>
|
|
||||||
<F8>Climb Rate</F8>
|
|
||||||
<F9>rc3 servo out</F9>
|
|
||||||
<F10>alt hold int</F10>
|
|
||||||
<F11>Thr int</F11>
|
|
||||||
</CTUN>
|
|
||||||
<PM>
|
|
||||||
<F1>Gyro Saturation</F1>
|
|
||||||
<F2>ADC Constraints</F2>
|
|
||||||
<F3>DCM renorms</F3>
|
|
||||||
<F4>DCM Blowups</F4>
|
|
||||||
<F5>GPS Fix Count</F5>
|
|
||||||
</PM>
|
|
||||||
<RAW>
|
|
||||||
<F1>Gyro X</F1>
|
|
||||||
<F2>Gyro Y</F2>
|
|
||||||
<F3>Gyro Z</F3>
|
|
||||||
<F4>Accel X</F4>
|
|
||||||
<F5>Accel Y</F5>
|
|
||||||
<F6>Accel Z</F6>
|
|
||||||
</RAW>
|
|
||||||
<CURR>
|
|
||||||
<F1>Thr IN</F1>
|
|
||||||
<F2>Thr int</F2>
|
|
||||||
<F3>Voltage</F3>
|
|
||||||
<F4>Current</F4>
|
|
||||||
<F5>Current total</F5>
|
|
||||||
</CURR>
|
|
||||||
<CMD>
|
|
||||||
<F1>Cmd Total</F1>
|
|
||||||
<F2>Current #</F2>
|
|
||||||
<F3>ID</F3>
|
|
||||||
<F4>options</F4>
|
|
||||||
<F5>p1</F5>
|
|
||||||
<F6>Alt</F6>
|
|
||||||
<F7>Lat</F7>
|
|
||||||
<F8>Long</F8>
|
|
||||||
</CMD>
|
|
||||||
<OF>
|
|
||||||
<F1>X raw</F1>
|
|
||||||
<F2>Y raw</F2>
|
|
||||||
<F3>SurfaceQual</F3>
|
|
||||||
<F4>X cm</F4>
|
|
||||||
<F5>Y cm</F5>
|
|
||||||
<F6>Lat</F6>
|
|
||||||
<F7>Long</F7>
|
|
||||||
<F8>Roll Cmd</F8>
|
|
||||||
<F9>Pitch Cmd</F9>
|
|
||||||
</OF>
|
|
||||||
<MOD>
|
|
||||||
<F1>FlightMode</F1>
|
|
||||||
<F2>Thr Cruise</F2>
|
|
||||||
</MOD>
|
|
||||||
<PID-1>
|
|
||||||
<F1>Err</F1>
|
|
||||||
<F2>P</F2>
|
|
||||||
<F3>I</F3>
|
|
||||||
<F4>D</F4>
|
|
||||||
<F5>Output</F5>
|
|
||||||
<F6>Gain</F6>
|
|
||||||
</PID-1>
|
|
||||||
<PID-2>
|
|
||||||
<F1>Err</F1>
|
|
||||||
<F2>P</F2>
|
|
||||||
<F3>I</F3>
|
|
||||||
<F4>D</F4>
|
|
||||||
<F5>Output</F5>
|
|
||||||
<F6>Gain</F6>
|
|
||||||
</PID-2>
|
|
||||||
<PID-3>
|
|
||||||
<F1>Err</F1>
|
|
||||||
<F2>P</F2>
|
|
||||||
<F3>I</F3>
|
|
||||||
<F4>D</F4>
|
|
||||||
<F5>Output</F5>
|
|
||||||
<F6>Gain</F6>
|
|
||||||
</PID-3>
|
|
||||||
<PID-4>
|
|
||||||
<F1>Err</F1>
|
|
||||||
<F2>P</F2>
|
|
||||||
<F3>I</F3>
|
|
||||||
<F4>D</F4>
|
|
||||||
<F5>Output</F5>
|
|
||||||
<F6>Gain</F6>
|
|
||||||
</PID-4>
|
|
||||||
<PID-5>
|
|
||||||
<F1>Err</F1>
|
|
||||||
<F2>P</F2>
|
|
||||||
<F3>I</F3>
|
|
||||||
<F4>D</F4>
|
|
||||||
<F5>Output</F5>
|
|
||||||
<F6>Gain</F6>
|
|
||||||
</PID-5>
|
|
||||||
<PID-6>
|
|
||||||
<F1>Err</F1>
|
|
||||||
<F2>P</F2>
|
|
||||||
<F3>I</F3>
|
|
||||||
<F4>D</F4>
|
|
||||||
<F5>Output</F5>
|
|
||||||
<F6>Gain</F6>
|
|
||||||
</PID-6>
|
|
||||||
<PID-7>
|
|
||||||
<F1>Err</F1>
|
|
||||||
<F2>P</F2>
|
|
||||||
<F3>I</F3>
|
|
||||||
<F4>D</F4>
|
|
||||||
<F5>Output</F5>
|
|
||||||
<F6>Gain</F6>
|
|
||||||
</PID-7>
|
|
||||||
<PID-8>
|
|
||||||
<F1>Err</F1>
|
|
||||||
<F2>P</F2>
|
|
||||||
<F3>I</F3>
|
|
||||||
<F4>D</F4>
|
|
||||||
<F5>Output</F5>
|
|
||||||
<F6>Gain</F6>
|
|
||||||
</PID-8>
|
|
||||||
<PID-9>
|
|
||||||
<F1>Err</F1>
|
|
||||||
<F2>P</F2>
|
|
||||||
<F3>I</F3>
|
|
||||||
<F4>D</F4>
|
|
||||||
<F5>Output</F5>
|
|
||||||
<F6>Gain</F6>
|
|
||||||
</PID-9>
|
|
||||||
<PID-10>
|
|
||||||
<F1>Err</F1>
|
|
||||||
<F2>P</F2>
|
|
||||||
<F3>I</F3>
|
|
||||||
<F4>D</F4>
|
|
||||||
<F5>Output</F5>
|
|
||||||
<F6>Gain</F6>
|
|
||||||
</PID-10>
|
|
||||||
<PID-11>
|
|
||||||
<F1>Err</F1>
|
|
||||||
<F2>P</F2>
|
|
||||||
<F3>I</F3>
|
|
||||||
<F4>D</F4>
|
|
||||||
<F5>Output</F5>
|
|
||||||
<F6>Gain</F6>
|
|
||||||
</PID-11>
|
|
||||||
<PID-12>
|
|
||||||
<F1>Err</F1>
|
|
||||||
<F2>P</F2>
|
|
||||||
<F3>I</F3>
|
|
||||||
<F4>D</F4>
|
|
||||||
<F5>Output</F5>
|
|
||||||
<F6>Gain</F6>
|
|
||||||
</PID-12>
|
|
||||||
<PID-13>
|
|
||||||
<F1>Err</F1>
|
|
||||||
<F2>P</F2>
|
|
||||||
<F3>I</F3>
|
|
||||||
<F4>D</F4>
|
|
||||||
<F5>Output</F5>
|
|
||||||
<F6>Gain</F6>
|
|
||||||
</PID-13>
|
|
||||||
<PID-14>
|
|
||||||
<F1>Err</F1>
|
|
||||||
<F2>P</F2>
|
|
||||||
<F3>I</F3>
|
|
||||||
<F4>D</F4>
|
|
||||||
<F5>Output</F5>
|
|
||||||
<F6>Gain</F6>
|
|
||||||
</PID-14>
|
|
||||||
<PID-15>
|
|
||||||
<F1>Err</F1>
|
|
||||||
<F2>P</F2>
|
|
||||||
<F3>I</F3>
|
|
||||||
<F4>D</F4>
|
|
||||||
<F5>Output</F5>
|
|
||||||
<F6>Gain</F6>
|
|
||||||
</PID-15>
|
|
||||||
<PID-16>
|
|
||||||
<F1>Err</F1>
|
|
||||||
<F2>P</F2>
|
|
||||||
<F3>I</F3>
|
|
||||||
<F4>D</F4>
|
|
||||||
<F5>Output</F5>
|
|
||||||
<F6>Gain</F6>
|
|
||||||
</PID-16>
|
|
||||||
<PID-17>
|
|
||||||
<F1>Err</F1>
|
|
||||||
<F2>P</F2>
|
|
||||||
<F3>I</F3>
|
|
||||||
<F4>D</F4>
|
|
||||||
<F5>Output</F5>
|
|
||||||
<F6>Gain</F6>
|
|
||||||
</PID-17>
|
|
||||||
<PID-18>
|
|
||||||
<F1>Err</F1>
|
|
||||||
<F2>P</F2>
|
|
||||||
<F3>I</F3>
|
|
||||||
<F4>D</F4>
|
|
||||||
<F5>Output</F5>
|
|
||||||
<F6>Gain</F6>
|
|
||||||
</PID-18>
|
|
||||||
<PID-19>
|
|
||||||
<F1>Err</F1>
|
|
||||||
<F2>P</F2>
|
|
||||||
<F3>I</F3>
|
|
||||||
<F4>D</F4>
|
|
||||||
<F5>Output</F5>
|
|
||||||
<F6>Gain</F6>
|
|
||||||
</PID-19>
|
|
||||||
<PID-20>
|
|
||||||
<F1>Err</F1>
|
|
||||||
<F2>P</F2>
|
|
||||||
<F3>I</F3>
|
|
||||||
<F4>D</F4>
|
|
||||||
<F5>Output</F5>
|
|
||||||
<F6>Gain</F6>
|
|
||||||
</PID-20>
|
|
||||||
<PID-21>
|
|
||||||
<F1>Err</F1>
|
|
||||||
<F2>P</F2>
|
|
||||||
<F3>I</F3>
|
|
||||||
<F4>D</F4>
|
|
||||||
<F5>Output</F5>
|
|
||||||
<F6>Gain</F6>
|
|
||||||
</PID-21>
|
|
||||||
<PID-22>
|
|
||||||
<F1>Err</F1>
|
|
||||||
<F2>P</F2>
|
|
||||||
<F3>I</F3>
|
|
||||||
<F4>D</F4>
|
|
||||||
<F5>Output</F5>
|
|
||||||
<F6>Gain</F6>
|
|
||||||
</PID-22>
|
|
||||||
<PID-23>
|
|
||||||
<F1>Err</F1>
|
|
||||||
<F2>P</F2>
|
|
||||||
<F3>I</F3>
|
|
||||||
<F4>D</F4>
|
|
||||||
<F5>Output</F5>
|
|
||||||
<F6>Gain</F6>
|
|
||||||
</PID-23>
|
|
||||||
<PID-112>
|
|
||||||
<F1>Err</F1>
|
|
||||||
<F2>P</F2>
|
|
||||||
<F3>I</F3>
|
|
||||||
<F4>D</F4>
|
|
||||||
<F5>Output</F5>
|
|
||||||
<F6>Gain</F6>
|
|
||||||
</PID-112>
|
|
||||||
<PID-122>
|
|
||||||
<F1>Err</F1>
|
|
||||||
<F2>P</F2>
|
|
||||||
<F3>I</F3>
|
|
||||||
<F4>D</F4>
|
|
||||||
<F5>Output</F5>
|
|
||||||
<F6>Gain</F6>
|
|
||||||
</PID-122>
|
|
||||||
<PID-104>
|
|
||||||
<F1>Err</F1>
|
|
||||||
<F2>P</F2>
|
|
||||||
<F3>I</F3>
|
|
||||||
<F4>D</F4>
|
|
||||||
<F5>Output</F5>
|
|
||||||
<F6>Gain</F6>
|
|
||||||
</PID-104>
|
|
||||||
</AC2>
|
|
||||||
<!-- -->
|
|
||||||
<APM>
|
|
||||||
<GPS>
|
|
||||||
<F1>Time</F1>
|
|
||||||
<F2>Fix</F2>
|
|
||||||
<F3>Sats</F3>
|
|
||||||
<F4>Lat</F4>
|
|
||||||
<F5>Long</F5>
|
|
||||||
<F6>Sonar Alt</F6>
|
|
||||||
<F7>Mix Alt</F7>
|
|
||||||
<F8>GPSAlt</F8>
|
|
||||||
<F9>GR Speed</F9>
|
|
||||||
<F10>CRS</F10>
|
|
||||||
</GPS>
|
|
||||||
<ATT>
|
|
||||||
<F1>Roll</F1>
|
|
||||||
<F2>Pitch</F2>
|
|
||||||
<F3>Yaw</F3>
|
|
||||||
</ATT>
|
|
||||||
<NTUN>
|
|
||||||
<F1>Yaw</F1>
|
|
||||||
<F2>WP dist</F2>
|
|
||||||
<F3>Target Bear</F3>
|
|
||||||
<F4>Nav Bear</F4>
|
|
||||||
<F5>Alt Err</F5>
|
|
||||||
<F6>AS</F6>
|
|
||||||
<F7>NavGScaler</F7>
|
|
||||||
</NTUN>
|
|
||||||
<CTUN>
|
|
||||||
<F1>Servo Roll</F1>
|
|
||||||
<F2>nav_roll</F2>
|
|
||||||
<F3>roll_sensor</F3>
|
|
||||||
<F4>Servo Pitch</F4>
|
|
||||||
<F5>nav_pitch</F5>
|
|
||||||
<F6>pitch_sensor</F6>
|
|
||||||
<F7>Servo Throttle</F7>
|
|
||||||
<F8>Servo Rudder</F8>
|
|
||||||
<F9>accel y</F9>
|
|
||||||
</CTUN>
|
|
||||||
<PM>
|
|
||||||
<F1>loop time</F1>
|
|
||||||
<F2>Main count</F2>
|
|
||||||
<F3>G_Dt_max</F3>
|
|
||||||
<F4>Gyro Sat</F4>
|
|
||||||
<F5>adc constr</F5>
|
|
||||||
<F6>renorm_sqrt</F6>
|
|
||||||
<F7>renorm_blowup</F7>
|
|
||||||
<F8>gps_fix count</F8>
|
|
||||||
<F9>imu_health</F9>
|
|
||||||
<F10>dcm i x</F10>
|
|
||||||
<F11>dcm i y</F11>
|
|
||||||
<F12>dcm i z</F12>
|
|
||||||
<F13>pmtest</F13>
|
|
||||||
</PM>
|
|
||||||
<CMD>
|
|
||||||
<F1>Current #</F1>
|
|
||||||
<F2>ID</F2>
|
|
||||||
<F3>p1</F3>
|
|
||||||
<F4>Alt</F4>
|
|
||||||
<F5>Lat</F5>
|
|
||||||
<F6>Long</F6>
|
|
||||||
</CMD>
|
|
||||||
<RAW>
|
|
||||||
<F1>Gyro X</F1>
|
|
||||||
<F2>Gyro Y</F2>
|
|
||||||
<F3>Gyro Z</F3>
|
|
||||||
<F4>Accel X</F4>
|
|
||||||
<F5>Accel Y</F5>
|
|
||||||
<F6>Accel Z</F6>
|
|
||||||
</RAW>
|
|
||||||
<MOD>
|
|
||||||
<F1>FlightMode</F1>
|
|
||||||
</MOD>
|
|
||||||
<CURR>
|
|
||||||
<F1>Thr IN</F1>
|
|
||||||
<F2>Voltage</F2>
|
|
||||||
<F3>Current</F3>
|
|
||||||
<F4>Current total</F4>
|
|
||||||
</CURR>
|
|
||||||
</APM>a
|
|
||||||
</LOGFORMAT>
|
|
|
@ -1,240 +0,0 @@
|
||||||
<!DOCTYPE HTML>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<script type="application/x-javascript">
|
|
||||||
<!--
|
|
||||||
var deg2rad = Math.PI / 180;
|
|
||||||
var rad2deg = 180 / Math.PI;
|
|
||||||
|
|
||||||
var pitch =70;
|
|
||||||
var roll =20;
|
|
||||||
var yaw = 200;
|
|
||||||
|
|
||||||
var socket;
|
|
||||||
function init() {
|
|
||||||
|
|
||||||
if (window["WebSocket"]) {
|
|
||||||
var host = "ws://localhost:56781/websocket/server";
|
|
||||||
//host = "ws://173.203.100.4:8002/";
|
|
||||||
try{
|
|
||||||
socket = new WebSocket(host);
|
|
||||||
//log('WebSocket - status '+socket.readyState);
|
|
||||||
socket.onopen = function(msg){ socket.send("onopen"); alert("Welcome - status "+this.readyState); };
|
|
||||||
socket.onmessage = function(msg){
|
|
||||||
var b1 = msg.data.indexOf(",",0);
|
|
||||||
var b2 = msg.data.indexOf(",",b1+1);
|
|
||||||
|
|
||||||
roll = parseFloat( msg.data.substr(0,b1));
|
|
||||||
pitch = parseFloat( msg.data.substr(b1+1,b2 - b1));
|
|
||||||
yaw = parseFloat( msg.data.substr(b2+1));
|
|
||||||
|
|
||||||
//alert("Received: "+msg.data);
|
|
||||||
};
|
|
||||||
socket.onerror = function(msg){ alert("Error: "+msg.data); };
|
|
||||||
socket.onclose = function(msg){ alert("Disconnected - status "+this.readyState); };
|
|
||||||
}
|
|
||||||
catch(ex){ alert(ex); }
|
|
||||||
} else {
|
|
||||||
alert("This browser doesnt support websockets");
|
|
||||||
}
|
|
||||||
|
|
||||||
draw();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function draw() {
|
|
||||||
|
|
||||||
setTimeout ( "draw()", 100 );
|
|
||||||
|
|
||||||
//pitch -= 1.2;
|
|
||||||
//roll += .75;
|
|
||||||
|
|
||||||
//if (pitch < -90)
|
|
||||||
//pitch = 90;
|
|
||||||
//if (roll > 180)
|
|
||||||
//roll = -180;
|
|
||||||
|
|
||||||
var canvas = document.getElementById("canvas");
|
|
||||||
if (canvas.getContext) {
|
|
||||||
var ctx = canvas.getContext("2d");
|
|
||||||
|
|
||||||
ctx.save();
|
|
||||||
|
|
||||||
ctx.translate(canvas.width/2,canvas.height/2);
|
|
||||||
|
|
||||||
ctx.rotate(-roll * deg2rad);
|
|
||||||
|
|
||||||
var font = "Arial";
|
|
||||||
var fontsize = canvas.height/30;
|
|
||||||
var fontoffset = fontsize - 10;
|
|
||||||
|
|
||||||
var halfwidth = canvas.width/2;
|
|
||||||
var halfheight = canvas.height/2;
|
|
||||||
|
|
||||||
var every5deg = -canvas.height / 60;
|
|
||||||
|
|
||||||
var pitchoffset = -pitch * every5deg;
|
|
||||||
|
|
||||||
var x = Math.sin(-roll * deg2rad);
|
|
||||||
var y = Math.cos(-roll * deg2rad);
|
|
||||||
|
|
||||||
|
|
||||||
gradObj = ctx.createLinearGradient(0,-halfheight * 2 ,0, halfheight *2);
|
|
||||||
gradObj.addColorStop(0.0, "Blue");
|
|
||||||
var offset = 0.5 + pitchoffset / canvas.height / 2 ;
|
|
||||||
if (offset < 0) {
|
|
||||||
offset = 0;
|
|
||||||
}
|
|
||||||
if (offset > 1) {
|
|
||||||
offset = 1;
|
|
||||||
}
|
|
||||||
gradObj.addColorStop(offset, "LightBlue");
|
|
||||||
gradObj.addColorStop(offset, "#9bb824");
|
|
||||||
gradObj.addColorStop(1.0, "#414f07");
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ctx.fillStyle = gradObj;
|
|
||||||
ctx.rect(-halfwidth * 2, -halfheight *2, halfwidth * 4, halfheight * 4);
|
|
||||||
ctx.fill();
|
|
||||||
|
|
||||||
|
|
||||||
var lengthshort = canvas.width / 12;
|
|
||||||
var lengthlong = canvas.width / 8;
|
|
||||||
|
|
||||||
for (var a = -90; a <= 90; a += 5)
|
|
||||||
{
|
|
||||||
// limit to 40 degrees
|
|
||||||
if (a >= pitch - 34 && a <= pitch + 25)
|
|
||||||
{
|
|
||||||
if (a % 10 == 0)
|
|
||||||
{
|
|
||||||
if (a == 0)
|
|
||||||
{
|
|
||||||
DrawLine(ctx,"White",4, canvas.width / 2 - lengthlong - halfwidth, pitchoffset + a * every5deg, canvas.width / 2 + lengthlong - halfwidth, pitchoffset + a * every5deg);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
DrawLine(ctx,"White",4, canvas.width / 2 - lengthlong - halfwidth, pitchoffset + a * every5deg, canvas.width / 2 + lengthlong - halfwidth, pitchoffset + a * every5deg);
|
|
||||||
}
|
|
||||||
drawstring(ctx, a, font, fontsize + 2, "White", canvas.width / 2 - lengthlong - 30 - halfwidth - (fontoffset * 1.7), pitchoffset + a * every5deg - 8 - fontoffset);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
DrawLine(ctx,"White",4, canvas.width / 2 - lengthshort - halfwidth, pitchoffset + a * every5deg, canvas.width / 2 + lengthshort - halfwidth, pitchoffset + a * every5deg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
ctx.translate(0,canvas.height/14);
|
|
||||||
|
|
||||||
lengthlong = canvas.height / 66;
|
|
||||||
|
|
||||||
var extra = canvas.height / 15 * 7;
|
|
||||||
|
|
||||||
|
|
||||||
var pointlist = new Array();
|
|
||||||
pointlist[0] = 0;
|
|
||||||
pointlist[1] = -lengthlong * 2 - extra;
|
|
||||||
pointlist[2] = -lengthlong;
|
|
||||||
pointlist[3] = -lengthlong - extra;
|
|
||||||
pointlist[4] = lengthlong;
|
|
||||||
pointlist[5] = -lengthlong - extra;
|
|
||||||
|
|
||||||
DrawPolygon(ctx,"RED",4,pointlist)
|
|
||||||
|
|
||||||
|
|
||||||
for (var a = -45; a <= 45; a += 15)
|
|
||||||
{
|
|
||||||
ctx.restore();
|
|
||||||
ctx.save();
|
|
||||||
ctx.translate(canvas.width / 2, canvas.height / 2 + canvas.height/14);
|
|
||||||
ctx.rotate(a * deg2rad);
|
|
||||||
drawstring(ctx, a, font, fontsize, "White", 0 - 6 - fontoffset, -lengthlong * 2 - extra);
|
|
||||||
DrawLine(ctx,"White",4, 0, -halfheight, 0, -halfheight - 10);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
ctx.restore();
|
|
||||||
ctx.save();
|
|
||||||
|
|
||||||
DrawEllipse(ctx,"red",4,halfwidth - 10, halfheight - 10, 20, 20);
|
|
||||||
DrawLine(ctx,"red",4, halfwidth - 10 - 10, halfheight, halfwidth - 10, halfheight);
|
|
||||||
DrawLine(ctx,"red",4, halfwidth - 10 + 20, halfheight, halfwidth - 10 + 20 + 10, halfheight);
|
|
||||||
DrawLine(ctx,"red",4, halfwidth - 10 + 20 / 2, halfheight - 10, halfwidth - 10 + 20 / 2, halfheight - 10 - 10);
|
|
||||||
|
|
||||||
|
|
||||||
//DrawLine(ctx,"GREEN",4,-halfwidth,0,halfwidth,0);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
|
|
||||||
//socket.send("test "+pitch+"\n");
|
|
||||||
} catch (ex){ }// alert(ex); }
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
function DrawEllipse(ctx,color,linewidth,x1,y1,width,height) {
|
|
||||||
ctx.lineWidth = linewidth;
|
|
||||||
ctx.strokeStyle = color;
|
|
||||||
ctx.beginPath();
|
|
||||||
ctx.moveTo(x1 + width / 2,y1 + height);
|
|
||||||
var x, y;
|
|
||||||
for (var i = 0; i <= 360; i += 1)
|
|
||||||
{
|
|
||||||
x = Math.sin(i * deg2rad) * width / 2;
|
|
||||||
y = Math.cos(i * deg2rad) * height / 2;
|
|
||||||
x = x + x1 + width / 2;
|
|
||||||
y = y + y1 + height / 2;
|
|
||||||
ctx.lineTo(x,y);
|
|
||||||
}
|
|
||||||
|
|
||||||
//ctx.moveTo(x1,y1);
|
|
||||||
|
|
||||||
ctx.stroke();
|
|
||||||
ctx.closePath();
|
|
||||||
}
|
|
||||||
function DrawLine(ctx,color,width,x1,y1,x2,y2) {
|
|
||||||
ctx.lineWidth = width;
|
|
||||||
ctx.strokeStyle = color;
|
|
||||||
ctx.beginPath();
|
|
||||||
ctx.moveTo(x1,y1);
|
|
||||||
ctx.lineTo(x2,y2);
|
|
||||||
ctx.stroke();
|
|
||||||
ctx.closePath();
|
|
||||||
}
|
|
||||||
function DrawPolygon(ctx,color,width,list) {
|
|
||||||
ctx.lineWidth = width;
|
|
||||||
ctx.strokeStyle = color;
|
|
||||||
ctx.beginPath();
|
|
||||||
ctx.moveTo(list[0],list[1]);
|
|
||||||
for ( var i=2, len=list.length; i<len; i+=2 ){
|
|
||||||
ctx.lineTo(list[i],list[i+1]);
|
|
||||||
}
|
|
||||||
ctx.lineTo(list[0],list[1]);
|
|
||||||
ctx.stroke();
|
|
||||||
ctx.closePath();
|
|
||||||
}
|
|
||||||
function drawstring(ctx,string,font,fontsize,color,x,y) {
|
|
||||||
ctx.font = fontsize + "pt "+font;
|
|
||||||
ctx.fillStyle = color;
|
|
||||||
ctx.fillText(string,x,y + fontsize);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
-->
|
|
||||||
</script>
|
|
||||||
</head>
|
|
||||||
<body onload="init();">
|
|
||||||
<canvas id="canvas" width="640" height="480">
|
|
||||||
<p>This example requires a browser that supports the
|
|
||||||
<a href="http://www.w3.org/html/wg/html5/">HTML5</a>
|
|
||||||
<canvas> feature.</p>
|
|
||||||
</canvas>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,2 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<output name="localhost" type="FLIGHTGEAR" port="5123" protocol="udp" rate="1000"/>
|
|
|
@ -1,33 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<?xml-stylesheet type="text/xsl" href="http://jsbsim.sf.net/JSBSimScript.xsl"?>
|
|
||||||
<runscript xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:noNamespaceSchemaLocation="http://jsbsim.sf.net/JSBSimScript.xsd"
|
|
||||||
name="Testing Rascal110">
|
|
||||||
|
|
||||||
<description>
|
|
||||||
test ArduPlane using Rascal110 and JSBSim
|
|
||||||
</description>
|
|
||||||
|
|
||||||
<use aircraft="Rascal" initialize="reset_CMAC"/>
|
|
||||||
|
|
||||||
<!-- we control the servos via the jsbsim console
|
|
||||||
interface on TCP 5124 -->
|
|
||||||
<input port="5124"/>
|
|
||||||
|
|
||||||
<run start="0" end="10000000" dt="0.001">
|
|
||||||
<property value="0"> simulation/notify-time-trigger </property>
|
|
||||||
|
|
||||||
<event name="start engine">
|
|
||||||
<condition> simulation/sim-time-sec le 0.01 </condition>
|
|
||||||
<set name="propulsion/engine[0]/set-running" value="1"/>
|
|
||||||
<notify/>
|
|
||||||
</event>
|
|
||||||
|
|
||||||
<event name="Trim">
|
|
||||||
<condition>simulation/sim-time-sec ge 0.01</condition>
|
|
||||||
<set name="simulation/do_simple_trim" value="2"/>
|
|
||||||
<notify/>
|
|
||||||
</event>
|
|
||||||
</run>
|
|
||||||
|
|
||||||
</runscript>
|
|
|
@ -1,19 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
|
|
||||||
<Folder>
|
|
||||||
<name>Network Links</name>
|
|
||||||
<open>1</open>
|
|
||||||
<NetworkLink>
|
|
||||||
<name>View Centered Placemark</name>
|
|
||||||
<open>1</open>
|
|
||||||
<refreshVisibility>0</refreshVisibility>
|
|
||||||
<flyToView>0</flyToView>
|
|
||||||
<Link>
|
|
||||||
<href>http://127.0.0.1:56781/georefnetwork.kml</href>
|
|
||||||
<refreshMode>onInterval</refreshMode>
|
|
||||||
<refreshInterval>2</refreshInterval>
|
|
||||||
<viewRefreshTime>2</viewRefreshTime>
|
|
||||||
</Link>
|
|
||||||
</NetworkLink>
|
|
||||||
</Folder>
|
|
||||||
</kml>
|
|
|
@ -1,3 +0,0 @@
|
||||||
#EXTM3U
|
|
||||||
#EXTVLCOPT:http-caching=0
|
|
||||||
http://127.0.0.1:56781/both.jpg
|
|
|
@ -1,3 +0,0 @@
|
||||||
#EXTM3U
|
|
||||||
#EXTVLCOPT:http-caching=0
|
|
||||||
http://127.0.0.1:56781/hud.jpg
|
|
|
@ -1,3 +0,0 @@
|
||||||
#EXTM3U
|
|
||||||
#EXTVLCOPT:http-caching=0
|
|
||||||
http://127.0.0.1:56781/map.jpg
|
|
|
@ -1,19 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
|
|
||||||
<Folder>
|
|
||||||
<name>Network Links</name>
|
|
||||||
<open>1</open>
|
|
||||||
<NetworkLink>
|
|
||||||
<name>View Centered Placemark</name>
|
|
||||||
<open>1</open>
|
|
||||||
<refreshVisibility>0</refreshVisibility>
|
|
||||||
<flyToView>1</flyToView>
|
|
||||||
<Link>
|
|
||||||
<href>http://127.0.0.1:56781/network.kml</href>
|
|
||||||
<refreshMode>onInterval</refreshMode>
|
|
||||||
<refreshInterval>0.3</refreshInterval>
|
|
||||||
<viewRefreshTime>0.3</viewRefreshTime>
|
|
||||||
</Link>
|
|
||||||
</NetworkLink>
|
|
||||||
</Folder>
|
|
||||||
</kml>
|
|
|
@ -1,478 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<!-- TAGS ARE CASE SENSATIVE -->
|
|
||||||
<CMD>
|
|
||||||
<AC2>
|
|
||||||
<WAYPOINT>
|
|
||||||
<P1>Delay</P1>
|
|
||||||
<P2>Hit Rad</P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4>Yaw Ang</P4>
|
|
||||||
<X>Lat</X>
|
|
||||||
<Y>Long</Y>
|
|
||||||
<Z>Alt</Z>
|
|
||||||
</WAYPOINT>
|
|
||||||
<LOITER_UNLIM>
|
|
||||||
<P1></P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X>Lat</X>
|
|
||||||
<Y>Long</Y>
|
|
||||||
<Z>Alt</Z>
|
|
||||||
</LOITER_UNLIM>
|
|
||||||
<LOITER_TURNS>
|
|
||||||
<P1>Turns</P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X>Lat</X>
|
|
||||||
<Y>Long</Y>
|
|
||||||
<Z>Alt</Z>
|
|
||||||
</LOITER_TURNS>
|
|
||||||
<LOITER_TIME>
|
|
||||||
<P1>Time s</P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3>rad</P3>
|
|
||||||
<P4>yaw per</P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</LOITER_TIME>
|
|
||||||
<RETURN_TO_LAUNCH>
|
|
||||||
<P1></P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z>Alt</Z>
|
|
||||||
</RETURN_TO_LAUNCH>
|
|
||||||
<LAND>
|
|
||||||
<P1></P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</LAND>
|
|
||||||
<TAKEOFF>
|
|
||||||
<P1></P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z>Alt</Z>
|
|
||||||
</TAKEOFF>
|
|
||||||
<ROI>
|
|
||||||
<P1>MAV_ROI</P1>
|
|
||||||
<P2>WP#</P2>
|
|
||||||
<P3>ROI#</P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</ROI>
|
|
||||||
<PATHPLANNING>
|
|
||||||
<P1></P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</PATHPLANNING>
|
|
||||||
<CONDITION_DELAY>
|
|
||||||
<P1>Time (sec)</P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</CONDITION_DELAY>
|
|
||||||
<CONDITION_CHANGE_ALT>
|
|
||||||
<P1>Rate (cm/sec)</P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z>Alt</Z>
|
|
||||||
</CONDITION_CHANGE_ALT>
|
|
||||||
<CONDITION_DISTANCE>
|
|
||||||
<P1>Dist (m)</P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</CONDITION_DISTANCE>
|
|
||||||
<CONDITION_YAW>
|
|
||||||
<P1>Deg</P1>
|
|
||||||
<P2>Sec</P2>
|
|
||||||
<P3>Dir 1=CW</P3>
|
|
||||||
<P4>rel/abs</P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</CONDITION_YAW>
|
|
||||||
<DO_SET_MODE>
|
|
||||||
<P1></P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</DO_SET_MODE>
|
|
||||||
<DO_JUMP>
|
|
||||||
<P1>WP #</P1>
|
|
||||||
<P2>Repeat#</P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</DO_JUMP>
|
|
||||||
<DO_CHANGE_SPEED>
|
|
||||||
<P1>speed m/s</P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</DO_CHANGE_SPEED>
|
|
||||||
<DO_SET_HOME>
|
|
||||||
<P1>Current(1)/Spec(0)</P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</DO_SET_HOME>
|
|
||||||
<DO_SET_PARAMETER>
|
|
||||||
<P1>#</P1>
|
|
||||||
<P2>Value</P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</DO_SET_PARAMETER>
|
|
||||||
<DO_SET_RELAY>
|
|
||||||
<P1>off(0)/on(1)</P1>
|
|
||||||
<P2>Delay (s)</P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</DO_SET_RELAY>
|
|
||||||
<DO_REPEAT_RELAY>
|
|
||||||
<P1></P1>
|
|
||||||
<P2>Repeat#</P2>
|
|
||||||
<P3>Delay (s)</P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</DO_REPEAT_RELAY>
|
|
||||||
<DO_SET_SERVO>
|
|
||||||
<P1>Ser No</P1>
|
|
||||||
<P2>PWM</P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</DO_SET_SERVO>
|
|
||||||
<DO_REPEAT_SERVO>
|
|
||||||
<P1>Ser No</P1>
|
|
||||||
<P2>PWM</P2>
|
|
||||||
<P3>Repeat#</P3>
|
|
||||||
<P4>Delay (s)</P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</DO_REPEAT_SERVO>
|
|
||||||
<DO_DIGICAM_CONFIGURE>
|
|
||||||
<P1></P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</DO_DIGICAM_CONFIGURE>
|
|
||||||
<DO_DIGICAM_CONTROL>
|
|
||||||
<P1></P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</DO_DIGICAM_CONTROL>
|
|
||||||
<DO_MOUNT_CONFIGURE>
|
|
||||||
<P1></P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</DO_MOUNT_CONFIGURE>
|
|
||||||
<DO_MOUNT_CONTROL>
|
|
||||||
<P1></P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</DO_MOUNT_CONTROL>
|
|
||||||
|
|
||||||
</AC2>
|
|
||||||
<!-- -->
|
|
||||||
<APM>
|
|
||||||
<WAYPOINT>
|
|
||||||
<P1></P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X>Lat</X>
|
|
||||||
<Y>Long</Y>
|
|
||||||
<Z>Alt</Z>
|
|
||||||
</WAYPOINT>
|
|
||||||
<LOITER_UNLIM>
|
|
||||||
<P1></P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X>Lat</X>
|
|
||||||
<Y>Long</Y>
|
|
||||||
<Z>Alt</Z>
|
|
||||||
</LOITER_UNLIM>
|
|
||||||
<LOITER_TURNS>
|
|
||||||
<P1>Turns</P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X>Lat</X>
|
|
||||||
<Y>Long</Y>
|
|
||||||
<Z>Alt</Z>
|
|
||||||
</LOITER_TURNS>
|
|
||||||
<LOITER_TIME>
|
|
||||||
<P1>Time s</P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X>Lat</X>
|
|
||||||
<Y>Long</Y>
|
|
||||||
<Z>Alt</Z>
|
|
||||||
</LOITER_TIME>
|
|
||||||
<RETURN_TO_LAUNCH>
|
|
||||||
<P1></P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X>Lat</X>
|
|
||||||
<Y>Long</Y>
|
|
||||||
<Z>Alt</Z>
|
|
||||||
</RETURN_TO_LAUNCH>
|
|
||||||
<LAND>
|
|
||||||
<P1></P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X>Lat</X>
|
|
||||||
<Y>Long</Y>
|
|
||||||
<Z>Alt</Z>
|
|
||||||
</LAND>
|
|
||||||
<TAKEOFF>
|
|
||||||
<P1>Angle</P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z>Alt</Z>
|
|
||||||
</TAKEOFF>
|
|
||||||
<ROI>
|
|
||||||
<P1></P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</ROI>
|
|
||||||
<PATHPLANNING>
|
|
||||||
<P1></P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</PATHPLANNING>
|
|
||||||
<CONDITION_DELAY>
|
|
||||||
<P1>Time (sec)</P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</CONDITION_DELAY>
|
|
||||||
<CONDITION_CHANGE_ALT>
|
|
||||||
<P1>Rate (cm/sec)</P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z>Alt</Z>
|
|
||||||
</CONDITION_CHANGE_ALT>
|
|
||||||
<CONDITION_DISTANCE>
|
|
||||||
<P1>Dist (m)</P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</CONDITION_DISTANCE>
|
|
||||||
<CONDITION_YAW>
|
|
||||||
<P1></P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</CONDITION_YAW>
|
|
||||||
<DO_SET_MODE>
|
|
||||||
<P1></P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</DO_SET_MODE>
|
|
||||||
<DO_JUMP>
|
|
||||||
<P1>WP #</P1>
|
|
||||||
<P2>Repeat#</P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</DO_JUMP>
|
|
||||||
<DO_CHANGE_SPEED>
|
|
||||||
<P1>Type (0=as 1=gs)</P1>
|
|
||||||
<P2>Speed (m/s)</P2>
|
|
||||||
<P3>Throttle(%)</P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</DO_CHANGE_SPEED>
|
|
||||||
<DO_SET_HOME>
|
|
||||||
<P1>Current(1)/Spec(0)</P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</DO_SET_HOME>
|
|
||||||
<DO_SET_PARAMETER>
|
|
||||||
<P1>#</P1>
|
|
||||||
<P2>Value</P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</DO_SET_PARAMETER>
|
|
||||||
<DO_SET_RELAY>
|
|
||||||
<P1>off(0)/on(1)</P1>
|
|
||||||
<P2>Delay (s)</P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</DO_SET_RELAY>
|
|
||||||
<DO_REPEAT_RELAY>
|
|
||||||
<P1></P1>
|
|
||||||
<P2>Repeat#</P2>
|
|
||||||
<P3>Delay (s)</P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</DO_REPEAT_RELAY>
|
|
||||||
<DO_SET_SERVO>
|
|
||||||
<P1>Ser No</P1>
|
|
||||||
<P2>PWM</P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</DO_SET_SERVO>
|
|
||||||
<DO_REPEAT_SERVO>
|
|
||||||
<P1>Ser No</P1>
|
|
||||||
<P2>PWM</P2>
|
|
||||||
<P3>Repeat#</P3>
|
|
||||||
<P4>Delay (s)</P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</DO_REPEAT_SERVO>
|
|
||||||
<DO_DIGICAM_CONFIGURE>
|
|
||||||
<P1></P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</DO_DIGICAM_CONFIGURE>
|
|
||||||
<DO_DIGICAM_CONTROL>
|
|
||||||
<P1></P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</DO_DIGICAM_CONTROL>
|
|
||||||
<DO_MOUNT_CONFIGURE>
|
|
||||||
<P1></P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</DO_MOUNT_CONFIGURE>
|
|
||||||
<DO_MOUNT_CONTROL>
|
|
||||||
<P1></P1>
|
|
||||||
<P2></P2>
|
|
||||||
<P3></P3>
|
|
||||||
<P4></P4>
|
|
||||||
<X></X>
|
|
||||||
<Y></Y>
|
|
||||||
<Z></Z>
|
|
||||||
</DO_MOUNT_CONTROL>
|
|
||||||
</APM>
|
|
||||||
</CMD>
|
|
|
@ -1,120 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<!-- quadcopter HIL protocol definition
|
|
||||||
Andrew Tridgell
|
|
||||||
July 2011
|
|
||||||
-->
|
|
||||||
|
|
||||||
<PropertyList>
|
|
||||||
<generic>
|
|
||||||
|
|
||||||
<!-- inputs, sent from quad_hil.py to FlightGear -->
|
|
||||||
<input>
|
|
||||||
<binary_mode>true</binary_mode>
|
|
||||||
<!-- <binary_footer>magic,0xc465414d</binary_footer>-->
|
|
||||||
|
|
||||||
<!-- motors, in range 0.0 to 1.0 -->
|
|
||||||
<chunk>
|
|
||||||
<name>throttle0</name>
|
|
||||||
<type>double</type>
|
|
||||||
<node>/controls/engines/engine[0]/throttle</node>
|
|
||||||
</chunk>
|
|
||||||
<chunk>
|
|
||||||
<name>throttle1</name>
|
|
||||||
<type>double</type>
|
|
||||||
<node>/controls/engines/engine[1]/throttle</node>
|
|
||||||
</chunk>
|
|
||||||
<chunk>
|
|
||||||
<name>throttle2</name>
|
|
||||||
<type>double</type>
|
|
||||||
<node>/controls/engines/engine[2]/throttle</node>
|
|
||||||
</chunk>
|
|
||||||
<chunk>
|
|
||||||
<name>throttle3</name>
|
|
||||||
<type>double</type>
|
|
||||||
<node>/controls/engines/engine[3]/throttle</node>
|
|
||||||
</chunk>
|
|
||||||
|
|
||||||
<!-- Position -->
|
|
||||||
<chunk>
|
|
||||||
<name>latitude-deg</name>
|
|
||||||
<type>double</type>
|
|
||||||
<node>/position/latitude-deg</node>
|
|
||||||
</chunk>
|
|
||||||
|
|
||||||
<chunk>
|
|
||||||
<name>longitude-deg</name>
|
|
||||||
<type>double</type>
|
|
||||||
<node>/position/longitude-deg</node>
|
|
||||||
</chunk>
|
|
||||||
|
|
||||||
<chunk>
|
|
||||||
<name>altitude-ft</name>
|
|
||||||
<type>double</type>
|
|
||||||
<node>/position/altitude-ft</node>
|
|
||||||
</chunk>
|
|
||||||
|
|
||||||
<chunk>
|
|
||||||
<name>altitude-agl-ft</name>
|
|
||||||
<type>double</type>
|
|
||||||
<node>/position/altitude-agl-ft</node>
|
|
||||||
</chunk>
|
|
||||||
|
|
||||||
<!-- Attitude -->
|
|
||||||
<chunk>
|
|
||||||
<name>roll-deg</name>
|
|
||||||
<type>double</type>
|
|
||||||
<node>/orientation/roll-deg</node>
|
|
||||||
</chunk>
|
|
||||||
|
|
||||||
<chunk>
|
|
||||||
<name>pitch-deg</name>
|
|
||||||
<type>double</type>
|
|
||||||
<node>/orientation/pitch-deg</node>
|
|
||||||
</chunk>
|
|
||||||
|
|
||||||
<chunk>
|
|
||||||
<name>heading-deg</name>
|
|
||||||
<type>double</type>
|
|
||||||
<node>/orientation/heading-deg</node>
|
|
||||||
</chunk>
|
|
||||||
|
|
||||||
</input>
|
|
||||||
|
|
||||||
<!-- outputs, sent from FlightGear to quad_hil.py -->
|
|
||||||
<output>
|
|
||||||
<binary_mode>true</binary_mode>
|
|
||||||
<binary_footer>magic,0xc465414e</binary_footer>
|
|
||||||
|
|
||||||
<!-- we need to know the ground level so we know when
|
|
||||||
to crash! -->
|
|
||||||
<chunk>
|
|
||||||
<name>ground-elev-m</name>
|
|
||||||
<type>double</type>
|
|
||||||
<node>/position/ground-elev-m</node>
|
|
||||||
</chunk>
|
|
||||||
|
|
||||||
<!-- the rest we only need once at startup, to know where
|
|
||||||
we are taking off from -->
|
|
||||||
<chunk>
|
|
||||||
<name>latitude-deg</name>
|
|
||||||
<type>double</type>
|
|
||||||
<node>/position/latitude-deg</node>
|
|
||||||
</chunk>
|
|
||||||
|
|
||||||
<chunk>
|
|
||||||
<name>longitude-deg</name>
|
|
||||||
<type>double</type>
|
|
||||||
<node>/position/longitude-deg</node>
|
|
||||||
</chunk>
|
|
||||||
|
|
||||||
<chunk>
|
|
||||||
<name>heading-deg</name>
|
|
||||||
<type>double</type>
|
|
||||||
<node>/orientation/heading-deg</node>
|
|
||||||
</chunk>
|
|
||||||
|
|
||||||
</output>
|
|
||||||
|
|
||||||
</generic>
|
|
||||||
|
|
||||||
</PropertyList>
|
|
|
@ -1,3 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
gdb --args mono ArdupilotMegaPlanner.exe
|
|
|
@ -1 +0,0 @@
|
||||||
1.1.4508.31968
|
|
Loading…
Reference in New Issue