spaceteams.SC_Compute_Server.frames
¶
BodyCenteredFrame_LVLH
¶
BodyCenteredFrame_LVLH(parent: Frame, frameCenterBody: Entity, bodyThisIsAbove: Entity)
Bases: DynamicFrame
Local Vertical Local Horizontal Frame: Dynamic Translation and Rotation. Translating with body of Entity_Base frameCenterBody. Using axis convention: Z-Axis: Oriented in the direction of -r (points to center of planet or body) - Local Vertical Y-Axis: Negative to the orbit normal, or in the direction of -h X-Axis: Perpendicular to Y and Z, forming a right-handed coordinate system - Local Horizontal Origin: Center of the Spacecraft/vehicle
Same directions as used in LVLH on FreeFlyer documentation: https://ai-solutions.com/_freeflyeruniversityguide/attitude_reference_frames.htm
BodyFixedFrame
¶
BodyFixedFrame(parent: Frame, Body: Entity)
Bases: DynamicFrame
Body fixed frame definition¶
What can be used as +X/forward axis: - Vehicle datum axis. - Negated main thrust vector, rounded off to line up with the vehicle's structure. - Nominal velocity vector, rounded off to line up with the vehicle's structure. - Pointing axis for a device like a camera, laser, antenna, etc. - Pointing from the center of an object to its "front side". For example, a soft drink bottle would have its logo on its forward axis.
"Up" can be: - Up from the pilot's perspective, if they face towards +X. - Nominal lift vector, rounded off to line up with the vehicle's structure. - Perpendicular to the ground for nominal horizontal flight. - Perpendicular to the ground for nominal ground travel. - If none of the other "Up" criteria apply, "Up" can be one of the things from the forward axis criteria (as long as it's perpendicular to the chosen forward axis).
+z (up)
|
|_____ +y (left)
/
/
+x (forward)
BodyFixedToENU_Frame
¶
BodyFixedToENU_Frame(parent: Frame, surfaceRadialVec: Annotated[ArrayLike, float64, '[3, 1]'], radius_surface_level: SupportsFloat)
Bases: DynamicFrame
East North Up Frame: Must be added as a child frame to a body-fixed frame! x: East, tangent to surface y: North, tangent to surface z: Up from surface
z=0 at given "surface level" radius from center.
BodyFixedToNED_Frame
¶
BodyFixedToNED_Frame(parent: Frame, surfaceRadialVec: Annotated[ArrayLike, float64, '[3, 1]'], radius_surface_level: SupportsFloat)
Bases: DynamicFrame
North East Down Frame: Must be added as a child frame to a body-fixed frame! x: North, tangent to surface y: East, tangent to surface z: Down from surface
The convention for north pole of a planetary body frame is along z+. The convention for 0,0 lat-long of a planetary body frame is along x+. z=0 at given "surface level" radius from center.
BodyFixedToNWU_Frame
¶
BodyFixedToNWU_Frame(parent: Frame, surfaceRadialVec: Annotated[ArrayLike, float64, '[3, 1]'], radius_surface_level: SupportsFloat)
Bases: DynamicFrame
North West Up Frame: Must be added as a child frame to a body-fixed frame! x: North, tangent to surface y: West, tangent to surface z: Up from surface
The convention for north pole of a planetary body frame is along z+. The convention for 0,0 lat-long of a planetary body frame is along x+. z=0 at given "surface level" radius from center.
DynamicFrame
¶
Bases: Frame
Specialization of Frame that implements transform operations based on a source of relative state like a moving rigid body.
Frame
¶
Reference Frame base class. All frames can be used to define a transformation between themselves and their parent frame, and exist as a node in a tree of frames.
FramedAngAcc
¶
FramedAngAcc(angacc: Annotated[ArrayLike, float64, '[3, 1]'], frame: Frame)
FramedAngAcc defines an angular acceleration in space by storing a vector and a with-respect-to frame. The angular acceleration vector direction is the axis of velocity change, and the magnitude of the vector is the speed in radians/second of the right-handed rotation around that axis.
WRT
¶
WRT(wrt_frame: Frame) -> FramedVector
Redefine the angular acceleration state with respect to a specified frame. Redefining the angular acceleration as such applies more than just rotation of the vector quantity to the new coordinate basis.
WRT_ExprIn
¶
WRT_ExprIn(wrt_frame: Frame) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], '[3, 1]']
Redefine the angular acceleration state with respect to a specified frame. Redefining the angular acceleration as such applies more than just rotation of the vector quantity to the new coordinate basis. Also expresses the vector in the same frame (coordinate basis).
FramedAngVel
¶
FramedAngVel(angvel: Annotated[ArrayLike, float64, '[3, 1]'], frame: Frame)
FramedAngVel defines an angular velocity in space by storing a vector and a with-respect-to frame. The angular velocity vector direction is the axis of rotation, and the magnitude of the vector is the speed in radians/second of the right-handed rotation around that axis.
WRT
¶
WRT(wrt_frame: Frame) -> FramedVector
Redefine the angular velocity state with respect to a specified frame. Redefining the angular velocity as such applies more than just rotation of the vector quantity to the new coordinate basis.
WRT_ExprIn
¶
WRT_ExprIn(wrt_frame: Frame) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], '[3, 1]']
Redefine the angular velocity state with respect to a specified frame. Redefining the angular velocity as such applies more than just rotation of the vector quantity to the new coordinate basis. Also expresses the vector in the same frame (coordinate basis).
FramedLoc
¶
FramedLoc(loc: Annotated[ArrayLike, float64, '[3, 1]'], frame: Frame)
FramedLoc defines a state with location by storing this vector and a with-respect-to frame.
WRT
¶
WRT(wrt_frame: Frame) -> FramedVector
Resolve the location with respect to a specified frame, performing transport theorem. Returns a FramedVector so you can do ExprIn to specify coordinate basis the location vector should be expressed in.
WRT_ExprIn
¶
WRT_ExprIn(wrt_frame: Frame) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], '[3, 1]']
Resolve the location with respect to a specified frame, performing transport theorem. Also uses the same frame (coordinate basis) to express the vector.
FramedLocVel
¶
FramedLocVel(locVel: rv_struct, frame: Frame)
FramedLocVel defines a state with location and velocity by storing these vectors and a with-respect-to frame.
WRT
¶
WRT(wrt_frame: Frame) -> FramedVector
Resolve the velocity with respect to a specified frame, performing transport theorem. Returns a FramedVector so you can do ExprIn to specify coordinate basis the acceleration should be expressed in.
WRT_ExprIn
¶
WRT_ExprIn(wrt_frame: Frame) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], '[3, 1]']
Resolve the velocity with respect to a specified frame, performing transport theorem. Also uses the same frame (coordinate basis) to express the vector.
loc_WRT
¶
loc_WRT(wrt_frame: Frame) -> FramedVector
Resolve the location with respect to a specified frame, performing transport theorem. Returns a FramedVector so you can do ExprIn to specify coordinate basis the location should be expressed in.
loc_WRT_ExprIn
¶
loc_WRT_ExprIn(wrt_frame: Frame) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], '[3, 1]']
Resolve the location with respect to a specified frame, performing transport theorem. Also uses the same frame (coordinate basis) to express the vector.
vel_WRT
¶
vel_WRT(wrt_frame: Frame) -> FramedVector
Resolve the velocity with respect to a specified frame, performing transport theorem. Returns a FramedVector so you can do ExprIn to specify coordinate basis the velocity should be expressed in.
vel_WRT_ExprIn
¶
vel_WRT_ExprIn(wrt_frame: Frame) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], '[3, 1]']
Resolve the velocity with respect to a specified frame, performing transport theorem. Also uses the same frame (coordinate basis) to express the vector.
FramedLocVelAcc
¶
FramedLocVelAcc(locVelAcc: rva_struct, frame: Frame)
FramedLocVelAcc defines a state with location, velocity, and acceleration by storing these vectors and a with-respect-to frame.
WRT
¶
WRT(wrt_frame: Frame) -> FramedVector
Resolve the acceleration with respect to a specified frame, performing transport theorem. Returns a FramedVector so you can do ExprIn to specify coordinate basis the acceleration should be expressed in.
WRT_ExprIn
¶
WRT_ExprIn(wrt_frame: Frame) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], '[3, 1]']
Resolve the acceleration with respect to a specified frame, performing transport theorem. Also uses the same frame (coordinate basis) to express the vector.
acc_WRT
¶
acc_WRT(wrt_frame: Frame) -> FramedVector
Resolve the acceleration with respect to a specified frame, performing transport theorem. Returns a FramedVector so you can do ExprIn to specify coordinate basis the acceleration should be expressed in.
acc_WRT_ExprIn
¶
acc_WRT_ExprIn(wrt_frame: Frame) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], '[3, 1]']
Resolve the acceleration with respect to a specified frame, performing transport theorem. Also uses the same frame (coordinate basis) to express the vector.
loc_WRT
¶
loc_WRT(wrt_frame: Frame) -> FramedVector
Resolve the location with respect to a specified frame, performing transport theorem. Returns a FramedVector so you can do ExprIn to specify coordinate basis the location should be expressed in.
loc_WRT_ExprIn
¶
loc_WRT_ExprIn(wrt_frame: Frame) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], '[3, 1]']
Resolve the location with respect to a specified frame, performing transport theorem. Also uses the same frame (coordinate basis) to express the vector.
vel_WRT
¶
vel_WRT(wrt_frame: Frame) -> FramedVector
Resolve the velocity with respect to a specified frame, performing transport theorem. Returns a FramedVector so you can do ExprIn to specify coordinate basis the velocity should be expressed in.
vel_WRT_ExprIn
¶
vel_WRT_ExprIn(wrt_frame: Frame) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], '[3, 1]']
Resolve the velocity with respect to a specified frame, performing transport theorem. Also uses the same frame (coordinate basis) to express the vector.
FramedMatrix3x3
¶
FramedMatrix3x3(matrix: Annotated[ArrayLike, float64, '[3, 3]'], frame: Frame)
FramedMatrix3x3 defines a 3x3 matrix with no physical significance other than the orientation of its coordinate basis frame. It stores this matrix and an expressed-in frame.
ExprIn
¶
ExprIn(expr_frame: Frame) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], '[3, 3]']
Express the matrix in a specified frame (coordinate basis).
FramedRot
¶
FramedRot(rot: Annotated[ArrayLike, float64, '[3, 3]'], frame: Frame)
FramedRot defines an orientation in space by storing a rotation transformation DCM and a with-respect-to frame.
DCM_WRT
¶
DCM_WRT(wrt_frame: Frame) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], '[3, 3]']
Express the time-extrapolated passive rotation transformation matrix from specified frame to the orientation defined by this FramedRot (DCM, right handed coordinates).
Quat_WRT
¶
Quat_WRT(wrt_frame: Frame) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], '[4, 1]']
Express the quaternion corresponding to the time-extrapolated passive rotation transformation matrix from specified frame to the orientation defined by this FramedRot. Returns a quaternion, right handed coordinates, in xyzw order.
FramedVector
¶
FramedVector(vec: Annotated[ArrayLike, float64, '[3, 1]'], frame: Frame)
FramedVector defines a vector with no physical significance other than the orientation of its coordinate basis frame. It stores this vector and an expressed-in frame.
ExprIn
¶
ExprIn(expr_frame: Frame) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], '[3, 1]']
Express the vector in a specified frame (coordinate basis).
StaticFrame
¶
Bases: Frame
Simple Frame class that implements transform operations based on a static location and rotation offset from parent.
rv_struct
¶
rv_struct(loc: Annotated[ArrayLike, float64, '[3, 1]'], vel: Annotated[ArrayLike, float64, '[3, 1]'])
rva_struct
¶
rva_struct(loc: Annotated[ArrayLike, float64, '[3, 1]'], vel: Annotated[ArrayLike, float64, '[3, 1]'], acc: Annotated[ArrayLike, float64, '[3, 1]'])