https://github.com/ufechner7/kiteviewer
3D viewer and simulator for airborne wind energy systems
https://github.com/ufechner7/kiteviewer
Last synced: 5 months ago
JSON representation
3D viewer and simulator for airborne wind energy systems
- Host: GitHub
- URL: https://github.com/ufechner7/kiteviewer
- Owner: ufechner7
- License: mit
- Created: 2020-12-21T04:28:03.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2022-05-26T07:53:35.000Z (about 4 years ago)
- Last Synced: 2025-03-17T13:12:27.227Z (over 1 year ago)
- Language: Julia
- Homepage:
- Size: 4.65 MB
- Stars: 10
- Watchers: 4
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# KiteViewer
3D viewer and simulator for to visualize the flight path and power production of tethered wind drones and kites for airborne wind energy applications

## Requirements
Julia 1.6.x or 1.7.x must be installed. You can download it at https://www.julialang.org/
On Linux or MAC you can install the latest Julia version with the following command:
```
bash -ci "$(curl -fsSL https://raw.githubusercontent.com/abelsiqueira/jill/master/jill.sh)"
```
At least a dual core PC or MAC with 4 GB RAM (min. 2 GB) is required.
OpenGL, version 3.3 or higher must be working.
It should work on Windows, Linux and Mac, but until now only tested on Linux
(Ubuntu 18.04 and Ubuntu 20.04) and Windows 10.
If you are using Windows, read [Windows.md](./doc/Windows.md) first.
## Installation
After installing julia, create a work folder:
```Bash
cd
mkdir repos
cd repos
```
Check out the source code:
```Bash
git clone https://github.com/ufechner7/KiteViewer.git
cd KiteViewer
```
Create a pre-compiled system image (needed for good performance):
```
./create_sys_image.sh
```
This takes about 10 to 15 minutes and needs to be done at least once, but also after important package updates because it freezes the package versions.
Run the program and show the GUI:
```Julia
./run_julia.sh
include("src/KiteViewer.jl")
main()
```
Click on PLAY to play the log file (and wait until the flight data import is finished when you do it the first time.) Use the right mouse button to zoom and the left mouse button to pan the 3D view.
## Import flight data
When you run KiteViewer for the first time the flight data is imported
and converted to the .arrow format.
With the following commands you can import csv flight data manually:
```Julia
./run_julia.sh
include("src/Importer.jl")
```
If you have your own .csv log files you need to extend the importer
for your data format.
## Run the one point kite model
To start the simulation, click the button "START". To steer the kite, use the right and left cursor keys.
For a first test, after pressing the START button press the right cursor twice and wait. If you started the main function
from a Julia console you can see the setting of the steering as numbers in the console.
To test the 4-point simulator and steer the kite with a joystick, look at [KiteSimulators](https://github.com/aenarete/KiteSimulators.jl) .
## Hacking the code
Use the package [Revise](https://timholy.github.io/Revise.jl/stable/) to speed up testing of code changes:
```Julia
./run_julia.sh
includet("src/KiteViewer.jl")
```
Please don't forget the t at end of the includet command.
Now make changes to KiteViewer.jl and then execute
```
main()
```
Revise is watching the file KiteViewer.jl, and each time a changed version is saved any changed function is recompiled, but only the function that was changed and nothing else, therefore this is much faster than restarting Julia after a change.
## Reducing the startup time
On Linux it can help to activate the "performance" governor. This can be done with the command: ``` sudo ./performance.sh```
If you use the script ./run_julia.sh the system image with the precompiled packages will be used.
If you do not want to make changes to the code you can also run the app by typing ```./kiteviewer.sh```.
More detailed explaination here: [SystemImage.md](./doc/SystemImage.md)
(Tested on Windows10 and Linux.)
## Tests of the Simulator
The simulator is tested against the results of the paper [Dynamic Model of a Pumping Kite Power System](http://arxiv.org/abs/1406.6218). For details of the tests see: [Tests.md](./doc/Tests.md)
## NEWS
I am currently moving the code of this repository into a set of Julia packages, called "Julia Kite Power Tools". Advantages:
- more modular code, use only the packages you need
- automated unit tests
- better, auto-generated documentation
- easier installation, only Julia required, not git any more
The code for viewing log files will be found in the package KiteViewers, the code for running simulations in the package KiteSimulators.
### Overview Julia Kite Power Tools

## See also
- [Research Fechner](https://research.tudelft.nl/en/publications/?search=Uwe+Fechner&pageSize=50&ordering=rating&descending=true) for the scientic background of this code
- The metapackage [KiteSimulators](https://github.com/aenarete/KiteSimulators.jl)
- the package [KiteUtils](https://github.com/ufechner7/KiteUtils.jl)
- the packages [KiteModels](https://github.com/ufechner7/KiteModels.jl) and [WinchModels](https://github.com/aenarete/WinchModels.jl) and [KitePodModels](https://github.com/aenarete/KitePodModels.jl) and [AtmosphericModels](https://github.com/aenarete/AtmosphericModels.jl)
- the packages [KiteControllers](https://github.com/aenarete/KiteControllers.jl) and [KiteViewers](https://github.com/aenarete/KiteViewers.jl)
Author: Uwe Fechner (uwe.fechner.msc@gmail.com)