Say I have a state vector and Keplerian elements of an orbiting spacecraft:

  • Position = [x, y, z]
  • Velocity = [vx, vy, vz]
  • Elements = [a, e, i, $\omega$, $\Omega$, $\nu$]

And I have the maneuver I wish to perform, expressed as a vector of prograde, normal, and radial velocities:

  • Maneuver = [vp, vn, vr]

How would I transform my maneuver velocities into a Cartesian vector (to add to my initial velocity state)? What does the rotation matrix look like?

I can qualitatively express how each maneuver component translates into Cartesian XYZ coordinates but I cannot yet figure out how to quantitatively express that.


1 Answer 1


You need to convert the maneuver into the frame of your orbit. If you orbit is in an Earth center inertial frame (such as the Earth Mean Equator J2000 frame, EME2000), then that maneuver needs to be converted into said frame.

When you say that the maneuver is in the "prograde, normal and radial" frame, I understand it to mean that that the X is aligned toward "plus velocity", the Z in "plus radial" (pointing from the spacecraft away from the center body), and Y being the cross product of both of those vectors (let me know if I misunderstood this). If so, that frame is only right-handed orthonormal in circular orbits: in non circular orbit, the angle between the radial and velocity vectors corresponds to the flight path angle.

The most common trajectory frames for maneuvers are the VNC and RCN frames, whose rotation matrices are detailed here.

  • 1
    $\begingroup$ Very helpful! I had envisioned X as "plus velocity", Y as "plus normal" and Z as "plus radial" but as you mention that is not strictly orthonormal so I think I need to reconsider my approach. $\endgroup$ Jun 30, 2021 at 1:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.