Jump to content

[1.3] Pilot Assistant: Atmospheric piloting aids - 1.13.2 (May 28)


Crzyrndm

Recommended Posts

It's an oversight in the label.

For the other control modes, it is actually angle of attack.

When the mode is pitch control is it meant to read pitch...

Ok, thank you.

I see in other vertical assistant mode than "pitch" there is a kind of angle of attack limiter (something like 8°?) i think it is what you mean.

Yes, it's evident now.

Link to comment
Share on other sites

Getting this random NRE right after my ship is packed for orbit.

Any ideas?


[EXC 21:28:22.991] NullReferenceException
UnityEngine.Component.get_transform ()
PilotAssistant.FlightModules.SurfSAS+<FadeInAxis>d__0.MoveNext ()
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
PilotAssistant.FlightModules.SurfSAS:StartCoroutine(IEnumerator)
PilotAssistant.FlightModules.SurfSAS:updateTarget()
PilotAssistant.FlightModules.SurfSAS:warpHandler()
PilotAssistant.FlightModules.AsstVesselModule:warpHandler()
EventVoid:Fire()
TimeWarp:assumeWarpRate(Single, Boolean)
TimeWarp:setRate(Int32, Boolean)
TimeWarp:btnSetHighRate(Int32)
ScreenSafeUISliderButton:OnMouseDown()
SSUICamera:DoMouseEvents()
SSUICamera:Update()
[EXC 21:28:22.994] NullReferenceException
UnityEngine.Component.get_transform ()
PilotAssistant.FlightModules.SurfSAS+<FadeInAxis>d__0.MoveNext ()
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
PilotAssistant.FlightModules.SurfSAS:StartCoroutine(IEnumerator)
PilotAssistant.FlightModules.SurfSAS:updateTarget()
PilotAssistant.FlightModules.SurfSAS:warpHandler()
PilotAssistant.FlightModules.AsstVesselModule:warpHandler()
EventVoid:Fire()
TimeWarp:assumeWarpRate(Single, Boolean)
TimeWarp:setRate(Int32, Boolean)
TimeWarp:btnSetHighRate(Int32)
ScreenSafeUISliderButton:OnMouseDown()
SSUICamera:DoMouseEvents()
SSUICamera:Update()
[EXC 21:28:22.995] NullReferenceException
UnityEngine.Component.get_transform ()
PilotAssistant.FlightModules.SurfSAS+<FadeInAxis>d__0.MoveNext ()
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
PilotAssistant.FlightModules.SurfSAS:StartCoroutine(IEnumerator)
PilotAssistant.FlightModules.SurfSAS:updateTarget()
PilotAssistant.FlightModules.SurfSAS:warpHandler()
PilotAssistant.FlightModules.AsstVesselModule:warpHandler()
EventVoid:Fire()
TimeWarp:assumeWarpRate(Single, Boolean)
TimeWarp:setRate(Int32, Boolean)
TimeWarp:btnSetHighRate(Int32)
ScreenSafeUISliderButton:OnMouseDown()
SSUICamera:DoMouseEvents()
SSUICamera:Update()
[EXC 21:28:22.997] NullReferenceException
UnityEngine.Component.get_transform ()
PilotAssistant.FlightModules.SurfSAS.updateTarget ()
PilotAssistant.FlightModules.SurfSAS.warpHandler ()
PilotAssistant.FlightModules.AsstVesselModule.warpHandler ()
EventVoid.Fire ()
TimeWarp.assumeWarpRate (Single rate, Boolean instant)
TimeWarp.setRate (Int32 rateIdx, Boolean instantChange)
TimeWarp.btnSetHighRate (Int32 rate)
ScreenSafeUISliderButton.OnMouseDown ()
SSUICamera.DoMouseEvents ()
SSUICamera.Update ()


NullReferenceException
at (wrapper managed-to-native) UnityEngine.Component:InternalGetTransform ()

at UnityEngine.Component.get_transform () [0x00000] in <filename unknown>:0

at PilotAssistant.FlightModules.SurfSAS+<FadeInAxis>d__0.MoveNext () [0x00000] in <filename unknown>:0
UnityEngine.MonoBehaviour:StartCoroutine_Auto(IEnumerator)
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
PilotAssistant.FlightModules.SurfSAS:StartCoroutine(IEnumerator)
PilotAssistant.FlightModules.SurfSAS:updateTarget()
PilotAssistant.FlightModules.SurfSAS:warpHandler()
PilotAssistant.FlightModules.AsstVesselModule:warpHandler()
EventVoid:Fire()
TimeWarp:assumeWarpRate(Single, Boolean)
TimeWarp:setRate(Int32, Boolean)
TimeWarp:btnSetHighRate(Int32)
ScreenSafeUISliderButton:OnMouseDown()
SSUICamera:DoMouseEvents()
SSUICamera:Update()

(Filename: Line: -1)

NullReferenceException
at (wrapper managed-to-native) UnityEngine.Component:InternalGetTransform ()

at UnityEngine.Component.get_transform () [0x00000] in <filename unknown>:0

at PilotAssistant.FlightModules.SurfSAS+<FadeInAxis>d__0.MoveNext () [0x00000] in <filename unknown>:0
UnityEngine.MonoBehaviour:StartCoroutine_Auto(IEnumerator)
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
PilotAssistant.FlightModules.SurfSAS:StartCoroutine(IEnumerator)
PilotAssistant.FlightModules.SurfSAS:updateTarget()
PilotAssistant.FlightModules.SurfSAS:warpHandler()
PilotAssistant.FlightModules.AsstVesselModule:warpHandler()
EventVoid:Fire()
TimeWarp:assumeWarpRate(Single, Boolean)
TimeWarp:setRate(Int32, Boolean)
TimeWarp:btnSetHighRate(Int32)
ScreenSafeUISliderButton:OnMouseDown()
SSUICamera:DoMouseEvents()
SSUICamera:Update()

(Filename: Line: -1)

NullReferenceException
at (wrapper managed-to-native) UnityEngine.Component:InternalGetTransform ()

at UnityEngine.Component.get_transform () [0x00000] in <filename unknown>:0

at PilotAssistant.FlightModules.SurfSAS+<FadeInAxis>d__0.MoveNext () [0x00000] in <filename unknown>:0
UnityEngine.MonoBehaviour:StartCoroutine_Auto(IEnumerator)
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
PilotAssistant.FlightModules.SurfSAS:StartCoroutine(IEnumerator)
PilotAssistant.FlightModules.SurfSAS:updateTarget()
PilotAssistant.FlightModules.SurfSAS:warpHandler()
PilotAssistant.FlightModules.AsstVesselModule:warpHandler()
EventVoid:Fire()
TimeWarp:assumeWarpRate(Single, Boolean)
TimeWarp:setRate(Int32, Boolean)
TimeWarp:btnSetHighRate(Int32)
ScreenSafeUISliderButton:OnMouseDown()
SSUICamera:DoMouseEvents()
SSUICamera:Update()

(Filename: Line: -1)

NullReferenceException
at (wrapper managed-to-native) UnityEngine.Component:InternalGetTransform ()

at UnityEngine.Component.get_transform () [0x00000] in <filename unknown>:0

at PilotAssistant.FlightModules.SurfSAS.updateTarget () [0x00000] in <filename unknown>:0

at PilotAssistant.FlightModules.SurfSAS.warpHandler () [0x00000] in <filename unknown>:0

at PilotAssistant.FlightModules.AsstVesselModule.warpHandler () [0x00000] in <filename unknown>:0

at EventVoid.Fire () [0x00000] in <filename unknown>:0

at TimeWarp.assumeWarpRate (Single rate, Boolean instant) [0x00000] in <filename unknown>:0

at TimeWarp.setRate (Int32 rateIdx, Boolean instantChange) [0x00000] in <filename unknown>:0

at TimeWarp.btnSetHighRate (Int32 rate) [0x00000] in <filename unknown>:0

at ScreenSafeUISliderButton.OnMouseDown () [0x00000] in <filename unknown>:0

at SSUICamera.DoMouseEvents () [0x00000] in <filename unknown>:0

at SSUICamera.Update () [0x00000] in <filename unknown>:0

(Filename: Line: -1)

Link to comment
Share on other sites

This looks awesome! I've got a few things I'm working on so I've got a (probably stupid) question. If I am in one aircraft and tell it to hold a heading, then move to another aircraft, will the original aircraft keep that command or does it require me to be actively in control of it?

Hopefully that made sense.

Link to comment
Share on other sites

It will keep that heading. You can also switch between active vessels using the numbers on the main panel, so you don't even need to be in control of the other vessel to activate PA functionality

This makes me so freaking happy! Can't wait to get home from work and jump on some fun projects again. Thanks!

Link to comment
Share on other sites

Alright, Crzyrndm, quiz time.

Default settings. I set the altitude hold assistant. Aircraft immediately goes into a gentle suicide (minus 60 degree pitch angle from horizon) dive before it finally realizes what direction it's going and tries to pull up at an equally sedate pace. All things considered, on default I can expect a sluggish response on a vehicle as the various limitation settings aren't set up for it yet, but the tendency for any reset of the altitude to a new value to result in a 'scanning' kind of event as the plane almost seems to look for zero is quite terrifying.

What's going on, and if the answer is one of the various Integral or Scalar values, why aren't they defaulted to something safe... ish?

I've had to play with three sections of the values to stabilize the thing.

Link to comment
Share on other sites

What's going on, and if the answer is one of the various Integral or Scalar values, why aren't they defaulted to something safe... ish?

Because "safe... ish" depends a whole lot on the flight behaviours of the plane. From what you're describing, I would guess that the plane has a very strong nose down tendency (a lot of pitch up trim in level flight) at that speed/altitude and the required level of trim isn't getting passed through the setpoint change in full.

Would you mind putting the craft file somewhere? There might be a bug involved or it could just be one of those planes that doesn't like the defaults and it can be difficult to tell the difference.

Link to comment
Share on other sites

Because "safe... ish" depends a whole lot on the flight behaviours of the plane. From what you're describing, I would guess that the plane has a very strong nose down tendency (a lot of pitch up trim in level flight) at that speed/altitude and the required level of trim isn't getting passed through the setpoint change in full.

Would you mind putting the craft file somewhere? There might be a bug involved or it could just be one of those planes that doesn't like the defaults and it can be difficult to tell the difference.

Dropping it in now:

https://www./?m934emdklf93krx

There are two aircraft in this file. Both have shown this tendency and have different flight characteristics.

- One is more or less the Global Hawk (renamed) and trims and flies nicely without any issues until I tell the assistant to hold an altitude.

- The other is 'Skyranger', a convoluted beast I'm trying to get a functional supersonic (stable) VTOL out of. (So far I have it down to stable, but I'm playing the engine tango for speed and fuel consumption.)

Both use specialty mod parts, both trim okay in forward flight. The problem is setting altitude specifically. Hold Pitch angle and other commands work decently well, but the behavior to look for is that the moment you set or change the altitude you want: The aircraft will sweep gently into a controlled nose down in a manner that reminds me of a searching or scanning behavior. Even if the desired altitude is above and the aircraft's in a gentle descent. I should note that at a neutral trim and any decent speed, natural speed induced nose-rise is the behavior these craft have.

I've been able to slap integral and scalar values up and around until I forced stability in the behavior enough that I don't lose 4,000 meters to random dive, but it ends up being so much frantic tweaking that I can't remember what I did to what to narrow it down for you.

Link to comment
Share on other sites

Hi! I have a question:

I am using the Pitch pilot assistant (about 10°) to hold my pitch. Then I wanted to switch to Altitude hold, but what always happens is that my plane goes in a nosedive and stays there until I disable the pilot assistant.

What could be the reason for this? Is it not "recommended" to switch between Vertical control modes?

Link to comment
Share on other sites

Hi! I have a question:

I am using the Pitch pilot assistant (about 10°) to hold my pitch. Then I wanted to switch to Altitude hold, but what always happens is that my plane goes in a nosedive and stays there until I disable the pilot assistant.

What could be the reason for this? Is it not "recommended" to switch between Vertical control modes?

He's working on that problem now actually. (See above post.)

Link to comment
Share on other sites

Try with this version. There was a small error in the setpoint smoothing logic which I think was causing your issue

Just gave some Altitude adjustments some playing with here Crzyrndm. Went up and down a few times and it looks like it obediently went directly into the required attitudes without hesitation or a nose dip at all. I'd suggest getting some input from a few other people just to be sure. But that might have done it.

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...