1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<?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>