acemod / ACE3

Open-source realism mod for Arma 3
https://ace3.acemod.org
Other
995 stars 735 forks source link

Incorrect flight profile of the FGM-148 Javelin after missile guidance changes #10265

Closed initramfs closed 2 weeks ago

initramfs commented 4 weeks ago

Mods:

Description: Attempting to fire the FGM-148 Javelin using the master branch after the missile guidance changes have been merged results in a highly erratic/incorrect flight profile that causes the missile to be unusable on static ground targets < 700 meters from the launcher.

Comparing the 3.17.1 flight profile and the 008606f6 flight profile (solid line represents target was hit, dotted line represents a miss):

Direct Mode

3.17.1 Direct

008606f6 Direct

Top-Down Mode

3.17.1 Top-Down

008606f6 Top-Down.webm

The new flight path takes the rocket much higher than the 3.17.1 flight path causing it to be unable to hit targets closer than the specified approximate minimum range. The flight also now deviates greatly from the flight path of the real deal:

Direct Top-Down
FGM-148 Direct FGM-148 Top-Down

(Images courtesy of Wikipedia)

According to GlobalSecurity:

The minimum engagement distance is 65 meters.

Suggesting the new changes are not in compliance with the real deal. There is also very little difference between the top-down and the direct fire modes now as both modes cause fairly high angle impacts with the target.

The missile also oscillates excessively in the horizontal (XY) plane causing misses (to the left/right of the target, from the perspective of the launcher) even if the missile can pitch down fast enough to hit a target at the given distance.

Behaviour against air targets is also erratic but hard to quantify (e.g. a lock against incoming aircraft causes the rocket to fly backwards in order to intercept the aircraft much later in the flight trajectory, but this isn't always replicable).

Steps to reproduce:

  1. Create a new scenario and place a launcher down
  2. Place a candidate target < 700 m from the launcher
  3. Lock and file a missile towards the target and observe the trajectory

Expected behavior:

Where did the issue occur?

Additional context:

Sample video of the missile against a 200 meter target:

dir-shot-200m.webm

Sample video of the missile against a 500 meter target (note azimuth oscillation causes a lateral miss):

dir-shot-500m.webm

Raw flight data of each test shot (tested on Altis): flight_data.zip

Screenshots:

Map view of the trajectory of the 200m direct mode shot: fgm-148-dir-map-200m

Map view of the trajectory of the 500m direct mode shot (note the slight azimuth rotation during the terminal phase): fgm-148-dir-map-500m

TheCandianVendingMachine commented 4 weeks ago

Hey, thanks for the issue! I knew it was bad, but didn't know how egregious it was. I am wondering how you recorded the flight data, and if it is an ARMA script if you would be willing to donate it to ACE so missiles can be developed better in the future?

I am currently working on fixing this as well, main release won't have it

initramfs commented 3 weeks ago

@TheCandianVendingMachine the flight data was captured via a debug function from a mod I have written for an artillery computer/solver for ACE.

Somewhat off-topic mod description here The main solver is currently an external binary with a simple UI: ![solver-interface](https://github.com/user-attachments/assets/77d8d2d3-0408-4115-baad-399d322b6b1f) and the companion mod allows for executing firing solutions generated by the solver, which includes a [MRSI](https://en.wikipedia.org/wiki/Artillery#Multiple_round_simultaneous_impact) solver, example below: https://github.com/user-attachments/assets/4cf37f60-2f38-4681-b008-c59922970040 I mention all this because since it's a full-blown mod, the debug functionality is split across quite a number of files (since I have an entire namespace to myself) and includes data capture, visual tracers, and round cameras. I don't really mind donating all or parts of the code to ACE but I doubt I can just copy the stuff verbatim out of my mod as a PR. If the ACE team is interested in specific sections I can maybe try carving those out. I'll also mirror my internal repo to a public space (probably GitLab) later if anyone wants to use it just for personal use.
TheCandianVendingMachine commented 3 weeks ago

if you do make it a public repo, I can look around and say what parts would be nice to have. I know that I would appreciate this for further missile development and tweaking

initramfs commented 2 weeks ago

@TheCandianVendingMachine Sorry for the delay, I've placed the repo at https://gitlab.com/initramfs/a3-ballistic-solver where the mod is in the folder bscm, building is handled by hemtt.

Basic usage involves calling:

[objNull, true, true, false] call BSCM_fnc_roundTracerAttach;

to attach a tracing event handler to the target vehicle (see the docs in addons/debug/tracing/fn_roundTracerAttach.sqf for what the parameters mean).

If data capture is enabled it writes to a few global variables, in which the data can be dumped via:

copyToClipboard (BSCM_DATA_TRACE_FLIGHT call ["export", []]);

(in this example, we take the flight data hashmap-object and call the export function to dump the contents as a CSV (all this stuff and their docs should be in the debug addon).