OE-ROE¶
Keplerian orbital elements to Quasi-Nonsingular Relative Orbital Elements (ROE) conversions.
Provides transformations between chief/deputy Keplerian orbital elements
[a, e, i, RAAN, omega, M] and Quasi-Nonsingular Relative Orbital
Elements [da, dλ, dex, dey, dix, diy].
The ROE vector components are:
| Index | Element | Units |
|---|---|---|
| 0 | da — relative semi-major axis | dimensionless |
| 1 | dλ — relative mean longitude | rad (or deg) |
| 2 | dex — relative eccentricity x-component | dimensionless |
| 3 | dey — relative eccentricity y-component | dimensionless |
| 4 | dix — relative inclination x-component | rad (or deg) |
| 5 | diy — relative inclination y-component | rad (or deg) |
References
- Sullivan, J. "Nonlinear Angles-Only Orbit Estimation for Autonomous Distributed Space Systems", 2020.
state_oe_to_roe(oe_chief, oe_deputy, use_degrees=False)
¶
Compute Relative Orbital Elements (ROE) from chief and deputy orbital elements.
Converts the Keplerian orbital elements of a chief and deputy satellite pair into quasi-nonsingular Relative Orbital Elements.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
oe_chief
|
ArrayLike
|
Chief satellite orbital elements
|
required |
oe_deputy
|
ArrayLike
|
Deputy satellite orbital elements
|
required |
use_degrees
|
bool
|
If |
False
|
Returns:
| Type | Description |
|---|---|
Array
|
Relative Orbital Elements |
Examples:
import jax.numpy as jnp
from astrojax.constants import R_EARTH
from astrojax.relative_motion import state_oe_to_roe
oe_c = jnp.array([R_EARTH + 700e3, 0.001, 97.8, 15.0, 30.0, 45.0])
oe_d = jnp.array([R_EARTH + 701e3, 0.0015, 97.85, 15.05, 30.05, 45.05])
roe = state_oe_to_roe(oe_c, oe_d, use_degrees=True)
roe.shape
References
Sullivan, J. "Nonlinear Angles-Only Orbit Estimation for Autonomous Distributed Space Systems", 2020.
state_roe_to_oe(oe_chief, roe, use_degrees=False)
¶
Compute deputy orbital elements from chief OE and Relative Orbital Elements.
Inverts the ROE transformation to recover the deputy satellite's Keplerian orbital elements given the chief's elements and the ROE.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
oe_chief
|
ArrayLike
|
Chief satellite orbital elements
|
required |
roe
|
ArrayLike
|
Relative Orbital Elements |
required |
use_degrees
|
bool
|
If |
False
|
Returns:
| Type | Description |
|---|---|
Array
|
Deputy orbital elements |
Examples:
import jax.numpy as jnp
from astrojax.constants import R_EARTH
from astrojax.relative_motion import state_oe_to_roe, state_roe_to_oe
oe_c = jnp.array([R_EARTH + 700e3, 0.001, 97.8, 15.0, 30.0, 45.0])
oe_d = jnp.array([R_EARTH + 701e3, 0.0015, 97.85, 15.05, 30.05, 45.05])
roe = state_oe_to_roe(oe_c, oe_d, use_degrees=True)
oe_d_recovered = state_roe_to_oe(oe_c, roe, use_degrees=True)
oe_d_recovered.shape
References
Sullivan, J. "Nonlinear Angles-Only Orbit Estimation for Autonomous Distributed Space Systems", 2020.