Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adapt to new KiteModels, using new conventions #39

Merged
merged 131 commits into from
Oct 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
131 commits
Select commit Hold shift + click to select a range
130dc01
use fix_yaw branch of KiteModels
ufechner7 Sep 25, 2024
51f88d2
optimize p and d only
Sep 25, 2024
334b0d5
changes for new heading
Sep 25, 2024
4dca999
works ok
Sep 25, 2024
cee00c5
better settings
Sep 25, 2024
53e50bd
OK now
Sep 25, 2024
8890c7c
fix plot
Sep 25, 2024
42794bc
Fix display
Sep 25, 2024
826b75c
some fixes
Sep 25, 2024
3ab66ae
fix steering sign
Sep 26, 2024
70e13a4
reduce tolerances
Sep 30, 2024
d864757
plot SET_STEERING
Sep 30, 2024
9b8eb83
add parking.drawio
Sep 30, 2024
c553dcc
add file to .gitignore
Sep 30, 2024
3d95217
plot upwind_dir
Sep 30, 2024
0a3ebee
change gains
Sep 30, 2024
cfb6be0
cleanup
Sep 30, 2024
369c312
better plotting
Sep 30, 2024
2d31f12
use SWD orientation
ufechner7 Oct 4, 2024
9bdf0ae
working fine with main branch of KiteModels
ufechner7 Oct 5, 2024
18a3491
fix parking_wind_dir.jl
ufechner7 Oct 5, 2024
cbd7239
plot heading
ufechner7 Oct 5, 2024
d54c5bf
fix sign, retune
ufechner7 Oct 5, 2024
ef48f58
working fine now
ufechner7 Oct 5, 2024
3c1473e
fix parking_4p
ufechner7 Oct 5, 2024
5f4a747
improve controller gains
ufechner7 Oct 5, 2024
d09e01b
higher gain
ufechner7 Oct 5, 2024
9d9850b
Fix autopilot.jl
ufechner7 Oct 5, 2024
63e4597
minor changes
Oct 1, 2024
3a8c2c5
add drawing
Oct 17, 2024
c1c6bba
add Project.toml
Oct 17, 2024
5f85994
use eager registry
ufechner7 Oct 18, 2024
5e447c3
Bump KiteUtils to 0.8.2
ufechner7 Oct 18, 2024
48e1263
use branch KiteModels#azimuth
ufechner7 Oct 18, 2024
21d619d
parking_wind_dir.jl works, some oscillations
ufechner7 Oct 18, 2024
50f8d47
increase gain
ufechner7 Oct 18, 2024
ddf78a0
10 degree work fine
ufechner7 Oct 18, 2024
62ca765
update tune_4p
Oct 18, 2024
dbecefb
20 degree work fine
Oct 18, 2024
32c7c31
45 deg works fine now
Oct 18, 2024
8559694
add parking_wind_dir_90.jl
Oct 18, 2024
9dbe0fd
cleanup
Oct 18, 2024
1bf38d5
fix syntax errors
Oct 18, 2024
106cdbe
use neg_heading
ufechner7 Oct 19, 2024
9190a85
fix example
ufechner7 Oct 19, 2024
b8c25c6
use param one_point
Oct 19, 2024
e2caa68
minor changes
Oct 19, 2024
3f1a86d
fixed autopilot.jl
Oct 19, 2024
8866c8d
add moving_average
Oct 20, 2024
d2e2461
add moving average
Oct 20, 2024
e0dbb6f
pretty good
ufechner7 Oct 20, 2024
3873c04
90 deg turn
ufechner7 Oct 20, 2024
7d34318
add file to .gitignore
ufechner7 Oct 21, 2024
d3608b1
small fix
ufechner7 Oct 21, 2024
1b18f85
fix legend
ufechner7 Oct 21, 2024
85a64a1
cleanup
ufechner7 Oct 21, 2024
24387ca
use released version KiteModels 0.6.7
ufechner7 Oct 21, 2024
2afd30e
Bump KiteModels
ufechner7 Oct 21, 2024
b560ce2
autopilot with large kite works
ufechner7 Oct 21, 2024
0278f69
add param v_wind
ufechner7 Oct 21, 2024
daed000
add asserts
ufechner7 Oct 21, 2024
d1864e9
call update
Oct 21, 2024
13ca802
cleanup
Oct 21, 2024
8abf183
add asserts
ufechner7 Oct 22, 2024
b963361
fix for new KiteModels
ufechner7 Oct 23, 2024
8080bc6
add links
ufechner7 Oct 23, 2024
ff76206
working
ufechner7 Oct 23, 2024
7b9690d
Bump KiteUtils to 0.8.3
Oct 23, 2024
414f88f
Bump KiteModels to 0.6.8
ufechner7 Oct 23, 2024
074ebb7
update kcu settings
Oct 23, 2024
47001e0
fixes
Oct 23, 2024
2e3ee73
cleanup
Oct 23, 2024
c5236a4
fix sign
Oct 23, 2024
f3b07d8
working fine
Oct 23, 2024
0e3bd2b
works now
Oct 23, 2024
71b78a5
very good
Oct 23, 2024
5d30579
add todo
Oct 24, 2024
3c3d9c6
better tuning
Oct 24, 2024
efcaf09
Fixed for system.yaml
ufechner7 Oct 24, 2024
92456d4
works fine at 7.7 m/s
ufechner7 Oct 24, 2024
48047d0
v9 good with 13 m/s
ufechner7 Oct 24, 2024
86edc4d
down to 11 m/s
ufechner7 Oct 24, 2024
d6f90df
down to 10.5 m/s
ufechner7 Oct 24, 2024
3041e3f
down to 9 m/s
ufechner7 Oct 25, 2024
a772a7b
down to 8.5 m/s
ufechner7 Oct 25, 2024
b13ba47
some progress
Oct 26, 2024
82f1e1e
some fixes
Oct 26, 2024
120259d
cs_4p now 1.0
Oct 26, 2024
52c4c43
cleanup
Oct 26, 2024
a604e8c
cleanup
Oct 26, 2024
308ad63
some fixes
Oct 26, 2024
f32919e
add cs_4p=1
Oct 26, 2024
e6a728e
fix sign of steering
Oct 26, 2024
6e2749a
some fixes
Oct 26, 2024
e28b049
fixed minipilot.jl
Oct 26, 2024
091ffa2
fix tests
ufechner7 Oct 26, 2024
c1a2448
refactoring
ufechner7 Oct 26, 2024
b62c27f
fix minipilot_12.jl
ufechner7 Oct 26, 2024
1067ff7
minor fix
ufechner7 Oct 26, 2024
1f8be27
remove autopilot_1p.jl
ufechner7 Oct 26, 2024
ec3786d
some fixes
Oct 26, 2024
cabd9ad
cleanup
Oct 27, 2024
dc1b14b
cleanup
Oct 27, 2024
1f6b396
cleanup
Oct 27, 2024
363fcc2
cleanup
Oct 27, 2024
0784404
better tuning
Oct 27, 2024
c7a2f07
works fine now
Oct 27, 2024
c55c1d0
cleanup
Oct 27, 2024
3e7c496
cleanup
Oct 27, 2024
4380c9e
better tuning
Oct 27, 2024
166fe04
down to 6.5 m/s
Oct 27, 2024
453e193
refactoring, load settings from file
ufechner7 Oct 27, 2024
b649285
refactoring
ufechner7 Oct 27, 2024
7fb9365
bugfix
ufechner7 Oct 27, 2024
c278f98
improve settings
ufechner7 Oct 27, 2024
098fb1e
add comment
ufechner7 Oct 27, 2024
5526052
minipilot and fpc_settings work fine
ufechner7 Oct 27, 2024
b5eee61
fix autopilot
ufechner7 Oct 27, 2024
2bba7a0
minor changes
ufechner7 Oct 27, 2024
82c8e52
some fixes
ufechner7 Oct 27, 2024
0d17df9
update minipilot
ufechner7 Oct 27, 2024
7e78dcb
fix tune_4p
ufechner7 Oct 27, 2024
5744eb0
fix tests
ufechner7 Oct 27, 2024
e23f00a
one more fix
ufechner7 Oct 27, 2024
9afaa79
more fixes
ufechner7 Oct 27, 2024
b4f996c
more fixes
ufechner7 Oct 27, 2024
862db6a
update CI.yml
ufechner7 Oct 27, 2024
d145d6e
Undo last commit, remove pre
ufechner7 Oct 27, 2024
40ae6bc
install matplotlib on Linux
ufechner7 Oct 27, 2024
dd84a3f
set PYTHON_PATH
ufechner7 Oct 27, 2024
80cc05a
add file to .gitignore
ufechner7 Oct 27, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ jobs:
version:
- '1.10'
- '1'
- 'pre'
os:
- ubuntu-latest
arch:
Expand All @@ -34,6 +33,9 @@ jobs:
arch: x64
version: 1
steps:
- name: Install matplotlib
run: if [ "$RUNNER_OS" = "Linux" ]; then sudo apt-get install -y python3-matplotlib; export PYTHON=$PYTHON_PATH; fi
shell: bash
- uses: actions/checkout@v4
- uses: julia-actions/setup-julia@v2
with:
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,7 @@ data/corr_vec.jld2.bak
output/*.arrow
data/gui.yaml
bin/kps-image-1.10-plot_II.so
docs/.$parking.drawio.bkp
examples_3d/Manifest.toml
bin/kps-image-1.10-fix_yaw.so
Manifest-v1.11.toml
9 changes: 6 additions & 3 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,17 @@ version = "0.2.10"

[deps]
JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819"
KiteModels = "b94af626-7959-4878-9336-2adc27959007"
KiteUtils = "90980105-b163-44e5-ba9f-8b1c83bb0533"
NLsolve = "2774e3e8-f4cf-5e23-947b-6d7e65073b56"
NonlinearSolve = "8913a72c-1f9b-4ce2-8d82-65094dcecaec"
Observables = "510215fc-4207-5dde-b226-833fc4488ee2"
Parameters = "d96e819e-fc66-5662-9728-84c9c7592b0a"
Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7"
Rotations = "6038ab10-8711-5258-84ad-4b1120ba62dc"
StaticArrayInterface = "0d7ed370-da01-4f52-bd93-41d350b8b718"
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
StatsBase = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91"
StructTypes = "856f2bd8-1eba-4b0a-8007-ebc267875bd4"
Timers = "21f18d07-b854-4dab-86f0-c15a3821819a"
WinchModels = "7dcfa46b-7979-4771-bbf4-0aee0da42e1f"
Expand All @@ -21,9 +24,9 @@ YAML = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6"
[compat]
ControlPlots = "0.2.1"
JLD2 = "0.5.2"
KiteModels = "0.6.6"
KiteUtils = "0.7"
KiteViewers = "0.4.16"
KiteModels = "0.6.8"
KiteUtils = "0.8.3"
KiteViewers = "0.4.19"
NLsolve = "4.5"
NonlinearSolve = "3.10.0"
Observables = "0.3, 0.4, 0.5"
Expand Down
1 change: 1 addition & 0 deletions bin/create_sys_image
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ fi
mkdir -p output

export MPLBACKEND=qt5agg
export JULIA_PKG_SERVER_REGISTRY_PREFERANCE=eager

if ! command -v juliaup &> /dev/null; then
echo "Please install the Julia installer 'juliaup'!"
Expand Down
1 change: 1 addition & 0 deletions bin/run_julia
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ else
fi

GCT="--gcthreads=$FAST_CORES,1"
export JULIA_PKG_SERVER_REGISTRY_PREFERANCE=eager

julia_version=$(julia --version | awk '{print($3)}')
julia_major=${julia_version:0:3}
Expand Down
5 changes: 3 additions & 2 deletions data/fpc_settings.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# settings for the 20 qm kite
fpc_settings:
dt: 0.025 # time step of the flight path controller
log_level: 2 # log level, 0=quiet
Expand All @@ -13,9 +14,9 @@ fpc_settings:
reset_int1_to_zero: true
init_opt_to_zero: false # if the root finder should start with zero

p: 20.0 # P gain of the PID controller
p: 20 # P gain of the PID controller
i: 1.2 # I gain of the PID controller
d: 10.0 # D gain of the PID controller
d: 10 # D gain of the PID controller
gain: 0.04 # additional factor for P, I and D
c1: 0.0612998898221 # was: 0.0786
c2: 1.22597628388 # was: 2.508
Expand Down
11 changes: 7 additions & 4 deletions data/settings.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ steering:
k_ds: 1.5 # influence of the depower angle on the steering sensitivity
delta_st: 0.02 # steering increment (when pressing RIGHT)
max_steering: 16.83 # max. steering angle of the side planes for four point model [degrees]
cs_4p: 1.0 # correction factor for the steering of the four point model

depower:
alpha_d_max: 31.0 # max depower angle [deg]
Expand Down Expand Up @@ -77,10 +78,12 @@ bridle:
rel_damping: 6.0 # relative damping of the kite spring (relative to main tether) [-]

kcu:
kcu_mass: 8.4 # mass of the kite control unit [kg]
power2steer_dist: 1.3 # [m]
depower_drum_diameter: 0.069 # [m]
tape_thickness: 0.0006 # [m]
kcu_model: "KCU1" # name of the kite control unit model, KCU1 or KCU2
kcu_mass: 8.4 # mass of the kite control unit [kg]
kcu_diameter: 0.4 # diameter of the KCU for drag calculation [m]
power2steer_dist: 1.3 # [m]
depower_drum_diameter: 0.069 # [m]
tape_thickness: 0.0006 # [m]
v_depower: 0.075 # max velocity of depowering in units per second (full range: 1 unit)
v_steering: 0.2 # max velocity of steering in units per second (full range: 2 units)
depower_gain: 3.0 # 3.0 means: more than 33% error -> full speed
Expand Down
1 change: 1 addition & 0 deletions data/settings_hydra20_600.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ steering:
k_ds: 1.5 # influence of the depower angle on the steering sensitivity
delta_st: 0.02 # steering increment (when pressing RIGHT)
max_steering: 16.83 # max. steering angle of the side planes for four point model [degrees]
cs_4p: 1.0 # correction factor for the steering of the four point model

depower:
alpha_d_max: 31.0 # max depower angle [deg]
Expand Down
1 change: 1 addition & 0 deletions data/settings_v9b.yaml
1 change: 1 addition & 0 deletions data/system_v9.yaml
165 changes: 165 additions & 0 deletions docs/parking.drawio
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.7.8 Chrome/128.0.6613.36 Electron/32.0.1 Safari/537.36" version="24.7.8">
<diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1">
<mxGraphModel dx="1386" dy="838" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="583" math="1" shadow="0">
<root>
<mxCell id="WIyWlLk6GJQsqaUBKTNV-0" />
<mxCell id="WIyWlLk6GJQsqaUBKTNV-1" parent="WIyWlLk6GJQsqaUBKTNV-0" />
<mxCell id="19" value="" style="edgeStyle=none;rounded=0;html=1;endArrow=classic;endFill=1;entryX=0;entryY=0.25;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="AgOMpVHS2S-enR5WjLPw-52" target="SL2LETD5taLKHnRiA0Aw-3" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="AgOMpVHS2S-enR5WjLPw-52" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="204" y="182" width="30" height="30" as="geometry" />
</mxCell>
<mxCell id="AgOMpVHS2S-enR5WjLPw-58" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="AgOMpVHS2S-enR5WjLPw-55" target="AgOMpVHS2S-enR5WjLPw-57" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="AgOMpVHS2S-enR5WjLPw-55" value="&lt;font style=&quot;font-size: 18px;&quot;&gt;Plant&lt;/font&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="528" y="182" width="101" height="60" as="geometry" />
</mxCell>
<mxCell id="AgOMpVHS2S-enR5WjLPw-57" value="&lt;font style=&quot;font-size: 18px;&quot;&gt;azimuth&lt;/font&gt;" style="shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="674" y="192" width="100" height="40" as="geometry" />
</mxCell>
<mxCell id="AgOMpVHS2S-enR5WjLPw-59" value="" style="shape=waypoint;sketch=0;fillStyle=solid;size=6;pointerEvents=1;points=[];fillColor=none;resizable=0;rotatable=0;perimeter=centerPerimeter;snapToPoint=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="642" y="202" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="AgOMpVHS2S-enR5WjLPw-101" value="&lt;font style=&quot;font-size: 18px;&quot;&gt;+&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="174" y="166" width="30" height="40" as="geometry" />
</mxCell>
<mxCell id="AgOMpVHS2S-enR5WjLPw-102" value="Integrator" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="418" y="242" width="70" height="30" as="geometry" />
</mxCell>
<mxCell id="17" value="" style="edgeStyle=none;rounded=0;html=1;endArrow=classic;endFill=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="kv1_MmNUvCLRT5CAMSnz-35" target="AgOMpVHS2S-enR5WjLPw-55" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="468" y="212" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="SL2LETD5taLKHnRiA0Aw-3" value="&lt;font style=&quot;font-size: 18px;&quot;&gt;+&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;br&gt;-&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/font&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="324" y="182" width="50" height="60" as="geometry" />
</mxCell>
<mxCell id="0" value="" style="shape=waypoint;sketch=0;fillStyle=solid;size=6;pointerEvents=1;points=[];fillColor=none;resizable=0;rotatable=0;perimeter=centerPerimeter;snapToPoint=1;strokeColor=none;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="264.5" y="272" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="13" value="" style="edgeStyle=none;rounded=0;html=1;endArrow=none;endFill=0;exitX=0;exitY=0.75;exitDx=0;exitDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="SL2LETD5taLKHnRiA0Aw-3" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="288.5" y="237.25" as="sourcePoint" />
<mxPoint x="288.5" y="282.75" as="targetPoint" />
<Array as="points">
<mxPoint x="289" y="227" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="kv1_MmNUvCLRT5CAMSnz-39" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="21" target="AgOMpVHS2S-enR5WjLPw-52" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="21" value="" style="whiteSpace=wrap;html=1;aspect=fixed;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="179" y="53" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="26" value="" style="endArrow=none;html=1;targetPerimeterSpacing=0;endSize=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="218" y="123" as="sourcePoint" />
<mxPoint x="218" y="73" as="targetPoint" />
<Array as="points">
<mxPoint x="218" y="93" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="30" value="" style="endArrow=none;html=1;endSize=0;targetPerimeterSpacing=0;entryX=0;entryY=0.856;entryDx=0;entryDy=0;entryPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="218" y="123" as="sourcePoint" />
<mxPoint x="179" y="122.48000000000002" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="31" value="" style="triangle;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="409" y="172" width="60" height="80" as="geometry" />
</mxCell>
<mxCell id="32" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="SL2LETD5taLKHnRiA0Aw-3" target="31" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="518" y="277" as="sourcePoint" />
<mxPoint x="568" y="227" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="33" value="" style="endArrow=none;html=1;endFill=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="288" y="283" as="sourcePoint" />
<mxPoint x="498" y="283" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="34" value="" style="endArrow=none;html=1;endFill=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="498" y="283" as="sourcePoint" />
<mxPoint x="498" y="213" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="kv1_MmNUvCLRT5CAMSnz-34" value="" style="endArrow=none;html=1;endFill=0;targetPerimeterSpacing=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="498" y="283" as="sourcePoint" />
<mxPoint x="498" y="213" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="kv1_MmNUvCLRT5CAMSnz-36" value="" style="edgeStyle=none;rounded=0;html=1;endArrow=none;endFill=0;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" target="kv1_MmNUvCLRT5CAMSnz-35" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="468" y="212" as="sourcePoint" />
<mxPoint x="528" y="212" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="kv1_MmNUvCLRT5CAMSnz-35" value="" style="shape=waypoint;sketch=0;fillStyle=solid;size=6;pointerEvents=1;points=[];fillColor=none;resizable=0;rotatable=0;perimeter=centerPerimeter;snapToPoint=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="488" y="202" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="kv1_MmNUvCLRT5CAMSnz-37" value="steering" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="458" y="183" width="70" height="30" as="geometry" />
</mxCell>
<mxCell id="kv1_MmNUvCLRT5CAMSnz-38" value="set_steering" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="234.5" y="171" width="90" height="30" as="geometry" />
</mxCell>
<mxCell id="kv1_MmNUvCLRT5CAMSnz-40" value="" style="endArrow=none;html=1;targetPerimeterSpacing=0;endSize=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="223" y="123.5" as="sourcePoint" />
<mxPoint x="223" y="73.5" as="targetPoint" />
<Array as="points">
<mxPoint x="223" y="95.5" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="kv1_MmNUvCLRT5CAMSnz-41" value="" style="endArrow=none;html=1;endSize=0;targetPerimeterSpacing=0;entryX=0;entryY=0.856;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.969;exitY=0.881;exitDx=0;exitDy=0;exitPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="21" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="258" y="123.5" as="sourcePoint" />
<mxPoint x="223" y="123" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="kv1_MmNUvCLRT5CAMSnz-42" value="" style="endArrow=none;html=1;rounded=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="217" y="73" as="sourcePoint" />
<mxPoint x="223" y="73" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="kv1_MmNUvCLRT5CAMSnz-43" value="disturbance" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="259" y="93" width="90" height="30" as="geometry" />
</mxCell>
<mxCell id="kv1_MmNUvCLRT5CAMSnz-44" value="PID&amp;nbsp; &amp;nbsp;" style="triangle;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="110" y="156" width="60" height="80" as="geometry" />
</mxCell>
<mxCell id="kv1_MmNUvCLRT5CAMSnz-45" value="" style="endArrow=none;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;endFill=0;startArrow=classic;startFill=1;entryX=0.767;entryY=0.583;entryDx=0;entryDy=0;entryPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" target="AgOMpVHS2S-enR5WjLPw-59" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="110" y="194" as="sourcePoint" />
<mxPoint x="652" y="210" as="targetPoint" />
<Array as="points">
<mxPoint x="80" y="194" />
<mxPoint x="80" y="310" />
<mxPoint x="380" y="310" />
<mxPoint x="652" y="310" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="kv1_MmNUvCLRT5CAMSnz-46" value="" style="endArrow=none;html=1;rounded=0;entryX=1.008;entryY=0.763;entryDx=0;entryDy=0;entryPerimeter=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="kv1_MmNUvCLRT5CAMSnz-44" target="AgOMpVHS2S-enR5WjLPw-101" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="140" y="282" as="sourcePoint" />
<mxPoint x="190" y="232" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="kv1_MmNUvCLRT5CAMSnz-47" value="&lt;font style=&quot;font-size: 18px;&quot;&gt;+&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="190" y="143" width="30" height="40" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
Loading
Loading