Visualisation for MARSH system with Godot. Mirrored from https://gitlab.polimi.it/DAER/frame-sim/marsh/visualisation-marsh
Find a file
2025-12-05 17:45:35 +01:00
.helix Add a child timer node 2025-01-28 16:43:08 +01:00
modules Change component identification to HEARTBEAT.type 2025-05-27 13:48:49 +02:00
project Update visual settings 2025-12-05 17:45:35 +01:00
src Handle parameters over MAVLink and document their usage 2025-11-27 18:13:53 +01:00
.clangd Add a child timer node 2025-01-28 16:43:08 +01:00
.editorconfig Initialize Godot project 2025-01-28 11:27:21 +01:00
.gitattributes Add ADS-33 terrain scene 2025-02-21 14:03:31 +01:00
.gitignore Set Manager address and mouse control to defaults 2025-11-28 16:22:44 +01:00
.gitmodules Add heightmap submodule 2025-02-21 13:51:03 +01:00
.godot-version Document using Godot 4.4 2025-07-16 13:13:38 +02:00
LICENSE.txt Add MIT license 2025-07-16 11:48:25 +02:00
README.md Handle parameters over MAVLink and document their usage 2025-11-27 18:13:53 +01:00
SConstruct Setup basic scene to move the cube to last data received 2025-01-30 17:11:10 +01:00
update_addons.py Setup zylann.hterrain addon 2025-02-21 13:55:02 +01:00
update_mavlink.py Add MAVLink headers with generator script 2025-01-28 14:45:38 +01:00

Visualisation for MARSH

This is a visualisation module for Modular Architecture for Reconfigurable Simulation of Helicopters. The project is configured to display cockpit instruments with 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. 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:

git lfs pull

This repository uses Git Submodules, to get all the code you need to run either:

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.

For updating MAVLink generator, you additionally pip install future. It is recommended to install any packages in a virtual environment, for example:

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:

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. 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.

scons

When building for Windows with MinGW-LLVM, you need to select this compiler:

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