mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
allow for bang bang guidance
This commit is contained in:
parent
0af82a56f4
commit
450d1a2a09
@ -31,7 +31,7 @@ if (!alive _projectile || isNull _projectile || isNull _shooter) exitWith {
|
|||||||
END_COUNTER(guidancePFH);
|
END_COUNTER(guidancePFH);
|
||||||
};
|
};
|
||||||
|
|
||||||
_flightParams params ["_pitchRate", "_yawRate"];
|
_flightParams params ["_pitchRate", "_yawRate", "_isBangBangGuidance"];
|
||||||
|
|
||||||
// Run seeker function:
|
// Run seeker function:
|
||||||
private _seekerTargetPos = [[0,0,0], _args, _seekerStateParams, _lastKnownPosState] call FUNC(doSeekerSearch);
|
private _seekerTargetPos = [[0,0,0], _args, _seekerStateParams, _lastKnownPosState] call FUNC(doSeekerSearch);
|
||||||
@ -64,6 +64,14 @@ if ((_pitchRate != 0 || {_yawRate != 0}) && {_profileAdjustedTargetPos isNotEqua
|
|||||||
private _clampedPitch = (_pitchChange min _pitchRate) max -_pitchRate;
|
private _clampedPitch = (_pitchChange min _pitchRate) max -_pitchRate;
|
||||||
private _clampedYaw = (_yawChange min _yawRate) max -_yawRate;
|
private _clampedYaw = (_yawChange min _yawRate) max -_yawRate;
|
||||||
|
|
||||||
|
// controls are either on or off, no proportional
|
||||||
|
if (_isBangBangGuidance) then {
|
||||||
|
private _pitchSign = _clampedPitch / abs _clampedPitch;
|
||||||
|
private _yawSign = _clampedYaw / abs _clampedYaw;
|
||||||
|
_clampedPitch = _pitchSign * _pitchRate;
|
||||||
|
_clampedYaw = _yawSign * _clampedYaw;
|
||||||
|
};
|
||||||
|
|
||||||
TRACE_9("pitch/yaw/roll",_pitch,_yaw,_roll,_yawChange,_pitchChange,_pitchRate,_yawRate,_clampedPitch,_clampedYaw);
|
TRACE_9("pitch/yaw/roll",_pitch,_yaw,_roll,_yawChange,_pitchChange,_pitchRate,_yawRate,_clampedPitch,_clampedYaw);
|
||||||
|
|
||||||
_pitch = _pitch + _clampedPitch * TIMESTEP_FACTOR;
|
_pitch = _pitch + _clampedPitch * TIMESTEP_FACTOR;
|
||||||
|
@ -111,9 +111,11 @@ private _navigationParameters = [
|
|||||||
// default config values to make sure there is backwards compat
|
// default config values to make sure there is backwards compat
|
||||||
private _pitchRate = 30;
|
private _pitchRate = 30;
|
||||||
private _yawRate = 30;
|
private _yawRate = 30;
|
||||||
|
private _bangBang = false;
|
||||||
if (isNumber (_config >> "pitchRate")) then {
|
if (isNumber (_config >> "pitchRate")) then {
|
||||||
_pitchRate = getNumber ( _config >> "pitchRate" );
|
_pitchRate = getNumber ( _config >> "pitchRate" );
|
||||||
_yawRate = getNumber ( _config >> "yawRate" );
|
_yawRate = getNumber ( _config >> "yawRate" );
|
||||||
|
_bangBang = 1 == getNumber (_config >> "bangBangGuidance");
|
||||||
};
|
};
|
||||||
|
|
||||||
TRACE_5("Beginning ACE guidance system",_target,_ammo,_seekerType,_attackProfile,_navigationType);
|
TRACE_5("Beginning ACE guidance system",_target,_ammo,_seekerType,_attackProfile,_navigationType);
|
||||||
@ -128,7 +130,8 @@ private _args = [_this,
|
|||||||
],
|
],
|
||||||
[
|
[
|
||||||
_pitchRate,
|
_pitchRate,
|
||||||
_yawRate
|
_yawRate,
|
||||||
|
_bangBang
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
getNumber ( _config >> "seekerAngle" ),
|
getNumber ( _config >> "seekerAngle" ),
|
||||||
|
Loading…
Reference in New Issue
Block a user