Package org.orekit.control.relative
Interface RPO
- All Known Implementing Classes:
RPOModel
public interface RPO
Interface used for the computation of the waypoints of the following relative maneuver sequences:
- Linear transfer,
- Forced Circular Motion,
- Natural Circumnavigation.
RPOModel .- Since:
- 14.0
- Author:
- Romain Cuvillon
-
Method Summary
Modifier and TypeMethodDescriptiondefault Vector3DcircularPosition(double radius, double angle) Computes the coordinates of a point on inPlane circle in the associated LocalOrbitalFrame.default <T extends CalculusFieldElement<T>>
FieldVector3D<T> circularPosition(T radius, T angle) Computes the coordinates of a point on inPlane circle in the associated LocalOrbitalFrame.default List<TimeStampedPVCoordinates> computeForcedCircularMotionWaypoints(AbsoluteDate startDate, Vector3D centerOffset, double radius, double inclination, double raan, double orbitDuration, int pointsOnOrbit, int numberOfRevolutions, double startAngle, boolean retrograde) Computes the waypoints to perform a forced circular orbit.default <T extends CalculusFieldElement<T>>
List<TimeStampedFieldPVCoordinates<T>> computeForcedCircularMotionWaypoints(FieldAbsoluteDate<T> startDate, FieldVector3D<T> centerOffset, T radius, T inclination, T raan, T orbitDuration, int pointsOnOrbit, int numberOfRevolutions, T startAngle, boolean retrograde) Computes the waypoints to perform a forced circular orbit.default <T extends CalculusFieldElement<T>>
List<TimeStampedFieldPVCoordinates<T>> computeForcedLinearWaypoints(TimeStampedFieldPVCoordinates<T> initialPVT, TimeStampedFieldPVCoordinates<T> finalPVT, int numberOfPoints) Computes the waypoints along the linear path.default List<TimeStampedPVCoordinates> computeForcedLinearWaypoints(TimeStampedPVCoordinates initialPVT, TimeStampedPVCoordinates finalPVT, int numberOfPoints) Computes the waypoints along the linear path.<T extends CalculusFieldElement<T>>
List<FieldRelativeManeuver<T>> computeForcedManeuvers(List<TimeStampedFieldPVCoordinates<T>> waypoints, FieldVector3D<T> initialVelocity, FieldOrbit<T> targetOrbit, FieldRelativeProvider<T> provider) Compute relative maneuvers to realize a forced trajectory defined by the waypoints (ForcedLinear/ForcedCircular).computeForcedManeuvers(List<TimeStampedPVCoordinates> waypoints, Vector3D initialVelocity, Orbit targetOrbit, RelativeProvider provider) Compute relative maneuvers to realize a forced trajectory defined by the waypoints (ForcedLinear/ForcedCircular).default TimeStampedPVCoordinatescomputeNaturalCircumnavigationInjectionCircular(AbsoluteDate startDate, double distanceAlongVBar, double inclination, double targetMeanMotion) Computes the injection PVT for a natural circumnavigation around a target in a circular orbit.default <T extends CalculusFieldElement<T>>
TimeStampedFieldPVCoordinates<T> computeNaturalCircumnavigationInjectionCircular(FieldAbsoluteDate<T> startDate, T distanceAlongVBar, T inclination, T targetMeanMotion) Computes the injection PVT for a natural circumnavigation around a target in a circular orbit.<T extends CalculusFieldElement<T>>
List<FieldRelativeManeuver<T>> computeTeardropManeuvers(List<TimeStampedFieldPVCoordinates<T>> waypoints, FieldRelativeProvider<T> relativeProvider) Computes the relative maneuvers of the teardrop relative orbit in the RPOModel Local Orbital Frame.computeTeardropManeuvers(List<TimeStampedPVCoordinates> waypoints, RelativeProvider relativeProvider) Computes the relative maneuvers of the teardrop relative orbit in the RPOModel Local Orbital Frame.computeTeardropWaypoints(AbsoluteDate injectionDate, Orbit targetOrbit, double turnAroundDistance, double maneuverDistance, int numberOfTeardrops) Computes teardrop waypoints.<T extends CalculusFieldElement<T>>
List<TimeStampedFieldPVCoordinates<T>> computeTeardropWaypoints(FieldAbsoluteDate<T> injectionDate, FieldOrbit<T> targetOrbit, T turnAroundDistance, T maneuverDistance, int numberOfTeardrops) Computes teardrop waypoints.default <T extends CalculusFieldElement<T>>
List<FieldImpulseManeuver<T>> convertToImpulseManeuver(List<FieldRelativeManeuver<T>> maneuvers, FieldOrbit<T> targetOrbit, T isp) Convert the relative maneuvers into Impulse maneuvers in the targetOrbit frame.default List<ImpulseManeuver> convertToImpulseManeuver(List<RelativeManeuver> maneuvers, Orbit targetOrbit, double isp) Convert the relative maneuvers into Impulse maneuvers in the targetOrbit frame.Get the LOFType used by the RPOModel.Get the OutOfPlane unit vector direction of the target local orbital frame.Get the radial unit vector direction of the target local orbital frame.Get the velocity unit vector direction of the target local orbital frame.default RotationrotationInLof(double inclination, double raan) Get the rotation for the waypoint in the local orbital frame to be used in the computeForcedCircularMotionWaypoints method.default <T extends CalculusFieldElement<T>>
FieldRotation<T> rotationInLof(T inclination, T raan) Get the rotation for the waypoint in the local orbital frame to be used in the computeForcedCircularMotionWaypoints method.
-
Method Details
-
getRBarDirection
Vector3D getRBarDirection()Get the radial unit vector direction of the target local orbital frame.- Returns:
- RBar direction
-
getVBarDirection
Vector3D getVBarDirection()Get the velocity unit vector direction of the target local orbital frame.- Returns:
- VBar direction
-
getOutOfPlaneDirection
Vector3D getOutOfPlaneDirection()Get the OutOfPlane unit vector direction of the target local orbital frame.- Returns:
- OutOfPlane direction
-
getLOFType
LOFType getLOFType()Get the LOFType used by the RPOModel.- Returns:
- LOFType used by the RPOModel.
-
rotationInLof
Get the rotation for the waypoint in the local orbital frame to be used in the computeForcedCircularMotionWaypoints method.- Parameters:
inclination- inclination of the relative orbit.raan- raan of the relative orbit.- Returns:
- rotation to be applied to the waypoints.
-
rotationInLof
Get the rotation for the waypoint in the local orbital frame to be used in the computeForcedCircularMotionWaypoints method.- Type Parameters:
T- type of the field elements.- Parameters:
inclination- inclination of the relative orbit.raan- raan of the relative orbit.- Returns:
- rotation to be applied to the waypoints.
-
circularPosition
Computes the coordinates of a point on inPlane circle in the associated LocalOrbitalFrame.- Parameters:
radius- radius of the circle.angle- angle of the point relative to the inPlane axis of the LocalOrbitalFrame.- Returns:
- position of the circle point in the related LocalOrbitalFrame.
-
circularPosition
Computes the coordinates of a point on inPlane circle in the associated LocalOrbitalFrame.- Type Parameters:
T- type of the field elements.- Parameters:
radius- radius of the circle.angle- angle of the point relative to the inPlane axis of the LocalOrbitalFrame.- Returns:
- position of the circle point in the related LocalOrbitalFrame.
-
computeForcedLinearWaypoints
default List<TimeStampedPVCoordinates> computeForcedLinearWaypoints(TimeStampedPVCoordinates initialPVT, TimeStampedPVCoordinates finalPVT, int numberOfPoints) Computes the waypoints along the linear path.- Parameters:
initialPVT- initial TimeStampedPVCoordinates of the chaser.finalPVT- last waypoint on the line path.numberOfPoints- number of waypoints along the linear path (including start and end points).- Returns:
- list of waypoints along the linear path.
-
computeForcedCircularMotionWaypoints
default List<TimeStampedPVCoordinates> computeForcedCircularMotionWaypoints(AbsoluteDate startDate, Vector3D centerOffset, double radius, double inclination, double raan, double orbitDuration, int pointsOnOrbit, int numberOfRevolutions, double startAngle, boolean retrograde) Computes the waypoints to perform a forced circular orbit.- Parameters:
startDate- Start date of the first waypoint of the forced circular motion.centerOffset- Offset of the forced circular orbit center relative to the target. If no Offset, the center is the target position.radius- Radius of the forced circular orbit.inclination- Inclination of the relative orbit.raan- Relative Longitude of ascending node of the relative circular orbit in radians. If raan = 0, the line of apsides is along the positive RBar direction (X+ axis in QSW frame, Z- in LVLH CCSDS frame).orbitDuration- Relative orbital Period, the time it takes to the chaser to perform a complete force circular orbit.pointsOnOrbit- Number of waypoints along the circular orbit.numberOfRevolutions- Number of revolutions.startAngle- Angle of the first waypoints.retrograde- Make the relative circular motion retrograde (clockwise viewed from the target's angular momentum direction).- Returns:
- list of waypoints.
-
computeTeardropWaypoints
List<TimeStampedPVCoordinates> computeTeardropWaypoints(AbsoluteDate injectionDate, Orbit targetOrbit, double turnAroundDistance, double maneuverDistance, int numberOfTeardrops) Computes teardrop waypoints.The injection point is the turn-around point of the teardrop (the round end).
All maneuvers are performed at the pointy end of the teardrop.
- Parameters:
injectionDate- date of injection in the teardrop.targetOrbit- orbit of the target.turnAroundDistance- Turn-around distance. This is the "round" end of the orbit. Note that this distance is signed : negative means below the target spacecraft (in between the planet and the target), while positive means above the target (target is in between the chaser and the planet).maneuverDistance- Maneuver distance of the teardrop orbit. This is the "pointy" end of the orbit. Note that this distance is signed : negative means below the target spacecraft (in between the planet and the target), while positive means above the target (target is in between the chaser and the planet).numberOfTeardrops- Number of teardrop orbits to perform. Must be ≥ 1.- Returns:
- List of waypoints in time. Date, position, and velocity are non-zero.
-
computeForcedLinearWaypoints
default <T extends CalculusFieldElement<T>> List<TimeStampedFieldPVCoordinates<T>> computeForcedLinearWaypoints(TimeStampedFieldPVCoordinates<T> initialPVT, TimeStampedFieldPVCoordinates<T> finalPVT, int numberOfPoints) Computes the waypoints along the linear path.- Type Parameters:
T- type of the field elements.- Parameters:
initialPVT- initial TimeStampedPVCoordinates of the chaser.finalPVT- last waypoint on the line path.numberOfPoints- number of waypoints along the linear path (including start and end points).- Returns:
- list of waypoints along the linear path.
-
computeForcedCircularMotionWaypoints
default <T extends CalculusFieldElement<T>> List<TimeStampedFieldPVCoordinates<T>> computeForcedCircularMotionWaypoints(FieldAbsoluteDate<T> startDate, FieldVector3D<T> centerOffset, T radius, T inclination, T raan, T orbitDuration, int pointsOnOrbit, int numberOfRevolutions, T startAngle, boolean retrograde) Computes the waypoints to perform a forced circular orbit.- Type Parameters:
T- type of the field elements.- Parameters:
startDate- Start date of the first waypoint of the forced circular motion.centerOffset- Offset of the forced circular orbit center relative to the target. If no Offset, the center is the target position.radius- Radius of the forced circular orbit.inclination- Inclination of the relative orbit.raan- Relative Longitude of ascending node of the relative circular orbit in radians. If raan = 0, the line of apsides is along the positive RBar direction (X+ axis in QSW frame, Z- in LVLH CCSDS frame).orbitDuration- Relative orbital Period, the time it takes to the chaser to perform a complete force circular orbit.pointsOnOrbit- Number of waypoints along the circular orbit.numberOfRevolutions- Number of revolutions.startAngle- Angle of the first waypoints.retrograde- Make the relative circular motion retrograde (clockwise viewed from the target's angular momentum direction).- Returns:
- list of waypoints.
-
computeTeardropWaypoints
<T extends CalculusFieldElement<T>> List<TimeStampedFieldPVCoordinates<T>> computeTeardropWaypoints(FieldAbsoluteDate<T> injectionDate, FieldOrbit<T> targetOrbit, T turnAroundDistance, T maneuverDistance, int numberOfTeardrops) Computes teardrop waypoints.The injection point is the turn-around point of the teardrop (the round end).
All maneuvers are performed at the pointy end of the teardrop.
- Type Parameters:
T- field.- Parameters:
injectionDate- date of injection in the teardrop.targetOrbit- orbit of the target.turnAroundDistance- Turn-around distance.
This is the "round" end of the orbit.
Note that this distance is signed : negative means below the target spacecraft (in between the planet and the target), while positive means above the target (target is in between the chaser and the planet).maneuverDistance- Maneuver distance of the teardrop orbit.
This is the "pointy" end of the orbit.
Note that this distance is signed : negative means below the target spacecraft (in between the planet and the target), while positive means above the target (target is in between the chaser and the planet).numberOfTeardrops- Number of teardrop orbits to perform. Must be ≥ 1.- Returns:
- List of waypoints in time. Date, position, and velocity are non-zero.
-
computeForcedManeuvers
List<RelativeManeuver> computeForcedManeuvers(List<TimeStampedPVCoordinates> waypoints, Vector3D initialVelocity, Orbit targetOrbit, RelativeProvider provider) Compute relative maneuvers to realize a forced trajectory defined by the waypoints (ForcedLinear/ForcedCircular).- Parameters:
waypoints- Waypoints of the trajectory in the correct LocalOrbitalFrame.initialVelocity- Initial velocity in the local orbital frame.targetOrbit- Orbit of the target.provider- Relative motion provider.- Returns:
- list of relative maneuvers in the chosen RPOModel local orbital frame.
-
computeForcedManeuvers
<T extends CalculusFieldElement<T>> List<FieldRelativeManeuver<T>> computeForcedManeuvers(List<TimeStampedFieldPVCoordinates<T>> waypoints, FieldVector3D<T> initialVelocity, FieldOrbit<T> targetOrbit, FieldRelativeProvider<T> provider) Compute relative maneuvers to realize a forced trajectory defined by the waypoints (ForcedLinear/ForcedCircular).- Type Parameters:
T- field.- Parameters:
waypoints- Waypoints of the trajectory in the correct LocalOrbitalFrame.initialVelocity- Initial velocity in the local orbital frame.targetOrbit- Orbit of the target.provider- Relative motion provider.- Returns:
- list of relative maneuvers in the chosen RPOModel local orbital frame.
-
convertToImpulseManeuver
default List<ImpulseManeuver> convertToImpulseManeuver(List<RelativeManeuver> maneuvers, Orbit targetOrbit, double isp) Convert the relative maneuvers into Impulse maneuvers in the targetOrbit frame.Warning: EventDetector of the maneuvers must be DateDetector.
- Parameters:
maneuvers- Relative maneuvers.targetOrbit- orbit of the target.isp- specific impulse of the chaser.- Returns:
- list of impulse maneuvers in target's orbit frame.
-
convertToImpulseManeuver
default <T extends CalculusFieldElement<T>> List<FieldImpulseManeuver<T>> convertToImpulseManeuver(List<FieldRelativeManeuver<T>> maneuvers, FieldOrbit<T> targetOrbit, T isp) Convert the relative maneuvers into Impulse maneuvers in the targetOrbit frame.Warning: EventDetector of the maneuvers must be DateDetector.
- Type Parameters:
T- field.- Parameters:
maneuvers- Relative maneuvers.targetOrbit- orbit of the target.isp- specific impulse of the chaser.- Returns:
- list of impulse maneuvers in target's orbit frame.
-
computeTeardropManeuvers
List<RelativeManeuver> computeTeardropManeuvers(List<TimeStampedPVCoordinates> waypoints, RelativeProvider relativeProvider) Computes the relative maneuvers of the teardrop relative orbit in the RPOModel Local Orbital Frame.The injection point is the turn-around point of the teardrop (the round end).
All maneuvers happen at the pointy end of the teardrop.
- Parameters:
waypoints- List of the successive waypoints of the target.relativeProvider- relative motion provider of the RPOModel.- Returns:
- list of relative maneuvers.
-
computeTeardropManeuvers
<T extends CalculusFieldElement<T>> List<FieldRelativeManeuver<T>> computeTeardropManeuvers(List<TimeStampedFieldPVCoordinates<T>> waypoints, FieldRelativeProvider<T> relativeProvider) Computes the relative maneuvers of the teardrop relative orbit in the RPOModel Local Orbital Frame.The injection point is the turn-around point of the teardrop (the round end).
All maneuvers happen at the pointy end of the teardrop.
- Type Parameters:
T- field.- Parameters:
waypoints- List of the successive waypoints of the target.relativeProvider- relative motion provider of the RPOModel.- Returns:
- list of relative maneuvers.
-