From 659e41c80f671a167d268243fd60a31c1e1cd1ef Mon Sep 17 00:00:00 2001 From: Anna Wiggins Date: Fri, 23 Jul 2021 21:57:32 +0000 Subject: [PATCH] Clean up hover code and add some vector rendering stuff. --- helicopter/hover.ks | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/helicopter/hover.ks b/helicopter/hover.ks index 31cbbd3..22e3a42 100644 --- a/helicopter/hover.ks +++ b/helicopter/hover.ks @@ -1,4 +1,5 @@ // This script assumes you have bound collective (aka deploy angle) to main throttle. +runoncepath("/debug/vecrender"). // debug // SAS off. // debug: re-enable when adjusting heading local pitchPID is PIDLoop(0.01, 0.001, 0.001, -45, 45). @@ -9,35 +10,28 @@ local collectivePID is PIDLoop(0.1, 0.1, 0.001, 0, 1). set collectivePID:SETPOINT to 0. -local vel is 0. lock vel to SHIP:BODY:UP * SHIP:VELOCITY:SURFACE. -set vecDraw(V(0,0,0), vel):show to true. // debug - -local x is 0. lock x to SHIP:FACING:FOREVECTOR * SHIP:VELOCITY:SURFACE. -local y is 0. lock y to (SHIP:UP:FOREVECTOR * SHIP:VELOCITY:SURFACE) / (SHIP:VELOCITY:SURFACE:MAG * cos(VectorAngle(SHIP:UP:FOREVECTOR, SHIP:VELOCITY:SURFACE))). -local z is 0. lock z to SHIP:FACING:RIGHTVECTOR * SHIP:VELOCITY:SURFACE. -local spd is 0. lock spd to SHIP:VELOCITY:SURFACE:MAG. +// local x is 0. lock x to SHIP:FACING:FOREVECTOR * SHIP:VELOCITY:SURFACE. +// local y is 0. lock y to (SHIP:UP:FOREVECTOR * SHIP:VELOCITY:SURFACE) / (SHIP:VELOCITY:SURFACE:MAG * cos(VectorAngle(SHIP:UP:FOREVECTOR, SHIP:VELOCITY:SURFACE))). +// local z is 0. lock z to SHIP:FACING:RIGHTVECTOR * SHIP:VELOCITY:SURFACE. +// local spd is 0. lock spd to SHIP:VELOCITY:SURFACE:MAG. local done is false. - on AG9 { set done to true. } until done { - // debug - // print x + " " + y + " " + z. - print "Vertical Speed = " + y. - - local newPitch is pitchPID:Update(TIME:SECONDS, spd). // was x - local newRoll is rollPid:Update(TIME:SECONDS, spd). // was z - local newThrot is collectivePID:Update(TIME:SECONDS, y). // was y + // local newPitch is pitchPID:Update(TIME:SECONDS, spd). // was x + // local newRoll is rollPid:Update(TIME:SECONDS, spd). // was z + local newThrot is collectivePID:Update(TIME:SECONDS, SHIP:VELOCITY:SURFACE:Y). // was y // debug print "Yaw = " + mod(360 - SHIP:BEARING, 360). print "Pitch = " + newPitch. print "Roll = " + newRoll. print "Throt = " + newThrot. - print "Spd = " + spd. + print "Vertical Speed = " + SHIP:VELOCITY:SURFACE:Y. + DrawVectorWithComponents(SHIP:VELOCITY:SURFACE). set SHIP:CONTROL:PILOTMAINTHROTTLE to newThrot. // lock STEERING to Heading(