have UpdateGlobalThrust attempt to counteract the actual pitch/roll instead of the pitch/roll rates
This commit is contained in:
18
main.lua
18
main.lua
@@ -847,10 +847,16 @@ function UpdateGlobalThrust()
|
|||||||
end
|
end
|
||||||
|
|
||||||
local throttleOutput = PIDs.AltitudePID:update(Config.Autopilot.AutopilotDesiredAltitude or 0, SensorData.Altitude.Altitude or 0, dt)
|
local throttleOutput = PIDs.AltitudePID:update(Config.Autopilot.AutopilotDesiredAltitude or 0, SensorData.Altitude.Altitude or 0, dt)
|
||||||
|
local pitchOutput = PIDs.PitchAttitudePID:update(0, SensorData.Gimbal.Angles.xAngle, dt)
|
||||||
|
local rollOutput = PIDs.RollAttitudePID:update(0, SensorData.Gimbal.Angles.zAngle, dt)
|
||||||
|
|
||||||
|
local yawOutput = PIDs.YawAttitudePID:update(Config.Autopilot.AutopilotDesiredHeading or 0, SensorData.NavTable.Heading, dt)
|
||||||
|
|
||||||
|
local pitchRateOutput = PIDs.PitchRatePID:update(Config.Autopilot.AutopilotDesiredPitchRate or 0, SensorData.Gimbal.AngularRates.wx or 0, dt)
|
||||||
|
local rollRateOutput = PIDs.RollRatePID:update(Config.Autopilot.AutopilotDesiredRollRate or 0, SensorData.Gimbal.AngularRates.wz or 0, dt)
|
||||||
|
local yawRateOutput = PIDs.YawRatePID:update(Config.Autopilot.AutopilotDesiredYawRate or 0, SensorData.Gimbal.AngularRates.wy or 0, dt)
|
||||||
|
|
||||||
|
|
||||||
local pitchOutput = PIDs.PitchRatePID:update(Config.Autopilot.AutopilotDesiredPitchRate or 0, SensorData.Gimbal.AngularRates.wx or 0, dt)
|
|
||||||
local rollOutput = PIDs.RollRatePID:update(Config.Autopilot.AutopilotDesiredRollRate or 0, SensorData.Gimbal.AngularRates.wz or 0, dt)
|
|
||||||
local yawOutput = PIDs.YawRatePID:update(Config.Autopilot.AutopilotDesiredYawRate or 0, SensorData.Gimbal.AngularRates.wy or 0, dt)
|
|
||||||
|
|
||||||
|
|
||||||
for _, thruster in pairs(Thrusters) do
|
for _, thruster in pairs(Thrusters) do
|
||||||
@@ -858,13 +864,13 @@ function UpdateGlobalThrust()
|
|||||||
|
|
||||||
-- Calculate desired thrust based on affectVectors and PID outputs
|
-- Calculate desired thrust based on affectVectors and PID outputs
|
||||||
if thruster.affectVectors.angular.pitch ~= nil and thruster.primary_pitch_thruster then
|
if thruster.affectVectors.angular.pitch ~= nil and thruster.primary_pitch_thruster then
|
||||||
desiredThrust = desiredThrust + pitchOutput
|
desiredThrust = desiredThrust + pitchOutput + pitchRateOutput
|
||||||
end
|
end
|
||||||
if thruster.affectVectors.angular.roll ~= nil and thruster.primary_roll_thruster then
|
if thruster.affectVectors.angular.roll ~= nil and thruster.primary_roll_thruster then
|
||||||
desiredThrust = desiredThrust + rollOutput
|
desiredThrust = desiredThrust + rollOutput + rollRateOutput
|
||||||
end
|
end
|
||||||
if thruster.affectVectors.angular.yaw ~= nil and thruster.primary_yaw_thruster then
|
if thruster.affectVectors.angular.yaw ~= nil and thruster.primary_yaw_thruster then
|
||||||
desiredThrust = desiredThrust + yawOutput
|
desiredThrust = desiredThrust + yawRateOutput
|
||||||
end
|
end
|
||||||
|
|
||||||
if thruster.affectVectors.lateral.y == "up" then
|
if thruster.affectVectors.lateral.y == "up" then
|
||||||
|
|||||||
Reference in New Issue
Block a user