114 lines
4 KiB
Markdown
114 lines
4 KiB
Markdown
# Visualisation for MARSH
|
|
|
|
This is a visualisation module for [Modular Architecture for Reconfigurable Simulation of Helicopters](https://marsh-sim.github.io/).
|
|
The project is configured to display cockpit instruments with [lidia](https://pypi.org/project/lidia) Python package.
|
|
|
|
Named in this order so not everything starts with the same word.
|
|
|
|
## Usage
|
|
|
|
The application will attempt to start in VR, but if it fails it will display the default pilot viewpoint looking forward.
|
|
|
|
### Parameters
|
|
|
|
These can be modified over MAVLink, for example using MARSH Manager.
|
|
|
|
Example changes to `NAV_OFS_` parameters to start in given positions:
|
|
|
|
- Sidestep, vertical repositioning: all default
|
|
- Accelerate/decelerate: `HDG` = -90
|
|
- Hover maneuver: `X` = 50, `Y` = 50
|
|
- Start of slalom: `HDG` = -90, `X` = -100, `Y` = 300
|
|
|
|
#### NAV_OFS_HDG
|
|
|
|
Displayed heading relative to default position, in degrees.
|
|
|
|
#### NAV_OFS_X
|
|
|
|
Starting position offset, forward in default orientation, in meters.
|
|
|
|
#### NAV_OFS_X
|
|
|
|
Starting position offset, right in default orientation, in meters.
|
|
|
|
#### LOCAL_FRAME_LAT
|
|
|
|
Latitude of local coordinate frame origin when using messages with global position, in degrees.
|
|
|
|
#### LOCAL_FRAME_LON
|
|
|
|
Longitude of local coordinate frame origin when using messages with global position, in degrees.
|
|
|
|
## Development
|
|
|
|
The asset files like textures and models are very big, so the project also uses [Git Large File Storage](https://git-lfs.com/).
|
|
Once installed, it should work correctly with usual `git` commands but you may need to run this if you install it after cloning the repository:
|
|
|
|
```sh
|
|
git lfs pull
|
|
```
|
|
|
|
This repository uses [Git Submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules), to get all the code you need to run either:
|
|
|
|
```sh
|
|
git clone --recurse-submodules <address of this repository>
|
|
# Or at any later point
|
|
git submodule update --init --recursive
|
|
```
|
|
|
|
Using Godot v4.4.
|
|
Install SCons with `pipx install scons`.
|
|
You will need a C++ compiler, you might have one already on Linux, see below for Windows, otherwise in [Godot documentation](https://docs.godotengine.org/en/stable/contributing/development/compiling/index.html).
|
|
|
|
For updating MAVLink generator, you additionally `pip install future`.
|
|
It is recommended to install any packages in a [virtual environment](https://docs.python.org/3/library/venv.html), for example:
|
|
|
|
```sh
|
|
python3 -m venv venv
|
|
source venv/bin/activate
|
|
pip install future
|
|
```
|
|
|
|
Some files are generated, run the following commands on first setup and when dependencies change:
|
|
|
|
```sh
|
|
godot --dump-extension-api # after updating Godot
|
|
python update_mavlink.py # after updating MAVLink dialect
|
|
python update_addons.py # after changing any addon submodules
|
|
scons compile_commands # after modifying SConstruct
|
|
cd project/addons/gdcef; python build.py
|
|
```
|
|
|
|
### Windows setup
|
|
|
|
The most convenient way of getting a C++ compiler is via the LLVM-MinGW project (by the way, it optimizes the binary more).
|
|
Download the `llvm-mingw-...-msvcrt-x86_64.zip` from the [Releases page](https://github.com/mstorsjo/llvm-mingw/releases).
|
|
Unzip the archive to some location you like, and add its `bin` folder to `Path` using the "Edit environment variables for your account" program.
|
|
|
|
### Build
|
|
|
|
To build the GDExtension binary run SCons in the repository root, the default arguments have been added to the file.
|
|
|
|
```sh
|
|
scons
|
|
```
|
|
|
|
When building for Windows with MinGW-LLVM, you need to [select this compiler](https://docs.godotengine.org/en/stable/contributing/development/compiling/compiling_for_windows.html#selecting-a-compiler):
|
|
|
|
```powershell
|
|
scons platform=windows use_mingw=yes use_llvm=yes
|
|
```
|
|
|
|
## Roadmap
|
|
|
|
- Try to have some acceptable setup for Varjo even without the tracker
|
|
- Rework the fly area
|
|
- Make it bigger
|
|
- Keep it square to avoid assymetric geometry
|
|
- Don't use the flat plane, just flatten the terrain
|
|
- Make the terrain mostly green, but add some small patches of different color
|
|
- Fix z-figthing when looking at the runway from afar
|
|
- Reduce pixel artifacts
|
|
- Adjust antialiasing
|
|
- Ensure there are mipmaps and they're used
|