0

Given Latitude, Longitude, Altitude, Velocity, Heading, Pitch and Roll, I want to calculate a new Latitude, Longitude and Altitude after x time of traveling at the same Heading, Pitch, Roll and Velocity.

I had already found great resources for solving this problems in 2 dimensions, but the new requirement for predicting future altitude has gotten me stumped.

THIS article claims that "You can't directly calculate the altitude of an aircraft from any set of control settings. The altitude is dependent on the history of the aircraft." However, I feel like I have a point in 3d space and I just want to slide it down a vector at velocity n for x amount of time and see where that position is. But I don't know what that process is called as my math background is very weak. If that article is true however, I don't mind extrapolating altitude, it just seems I can do better than extrapolation.

Ted Hopp's seems like exactly what I need, however, I don't quite understand how to make that "movement" piece he references here: toSpherical(movement + toCartesian(lat, lng, alt)). I'm pretty sure I have all the pieces I need, I just need to move them.

Any resources or examples would be greatly appreciated.

Edit

A total list of params that I have is:

  • velocityEast
  • velocityNorth
  • heading
  • speed (velocity in the direction of heading is how I'm interpretitng this one)
  • latitude
  • longitude
  • altitude
  • heading
  • radomeAzimuth
  • pitch
  • roll

I don't think I need to use all of these, but I'm trying to figure out the movement component of Ted Hopps answer: toSpherical(movement + toCartesian(lat, lng, alt))

Edit 2

I think I found my movement vector here

Where heading is my yaw I'm going with it! Let me know if someone notices something blaringly wrong.

  • What don't you understand about Ted Hopp's answer, and what do you mean by "moving the [pieces of the] equation"? – meowgoesthedog Jul 08 '19 at 08:47
  • @meowgoesthedog In his answer, in the final line he mentions "toSpherical(movement + toCartesian(lat, lng, alt))". The 'movement' portion is what has me stumped about his answer. I'm looking for a way to create movement with my given data. – blockereee Jul 08 '19 at 11:35
  • `movement` is the *Cartesian* displacement vector that your object (aircraft?) moves by in one simulation timestep. Calculate the unit direction vector from [Heading, Pitch, Roll] (note that the roll has no effect) and multiply by the distance travelled (speed * timestep). – meowgoesthedog Jul 08 '19 at 12:12
  • @meowgoesthedog thanks! I think I got it working – blockereee Jul 08 '19 at 20:45

0 Answers0