RSO Scenarios

RSO scenarios define the geometry of a RSO.

The geometry is defined by a set of RSOPoint objects, which give a location and a normal vector for the point, as well as conditions for inspection (range, illumination, etc.). Implemented geometries include:

  • SphericalRSO: Points are generated on a sphere using the Fibonacci sphere method.

This module does not consider self-shadowing effects or inspector to RSO shadowing effects.

class RSOPoint(r_PB_B: numpy.ndarray, n_B: numpy.ndarray, theta_max: float, range_max: float, theta_solar_max: float, min_shadow_factor: float)[source]

Bases: object

Parameters:
  • r_PB_B (ndarray)

  • n_B (ndarray)

  • theta_max (float)

  • range_max (float)

  • theta_solar_max (float)

  • min_shadow_factor (float)

r_PB_B: ndarray
n_B: ndarray
theta_max: float
range_max: float
theta_solar_max: float
min_shadow_factor: float
class RSOPoints[source]

Bases: Scenario

reset_overwrite_previous() None[source]

Overwrite target list from previous episode.

Return type:

None

reset_pre_sim_init() None[source]

Identify RSO and Inspector satellites.

Return type:

None

reset_during_sim_init() None[source]

Add points to dynamics and fsw of RSO.

Return type:

None

visualize_rso_point(rso_point: RSOPoint, vizSupport=None, vizInstance=None)[source]

Visualize target in Vizard.

Parameters:

rso_point (RSOPoint)

setup_inspector_camera(inspector: Satellite, vizSupport=None, vizInstance=None) None[source]

Visualize camera view in Vizard panel.

Parameters:

inspector (Satellite)

Return type:

None

abstract generate_points() list[RSOPoint][source]

Generate a list of RSOPoint objects based on some spacecraft geometry.

Return type:

list[RSOPoint]

class SphericalRSO(n_points: int = 100, radius: float = 1.0, theta_max: float = np.float64(0.7853981633974483), range_max: float = -1, theta_solar_max: float = np.float64(1.0471975511965976), min_shadow_factor: float = 0.1)[source]

Bases: RSOPoints

Generate points on a sphere using the Fibonacci sphere method.

Parameters:
  • n_points (int) – Number of points to generate on the sphere.

  • radius (float) – [m] Radius of the sphere.

  • theta_max (float) – [rad] Maximum angle from the normal for inspection.

  • range_max (float) – [m] Maximum range for inspection.

  • theta_solar_max (float) – [rad] Minimum solar incidence angle for illumination.

  • min_shadow_factor (float) – Minimum shadow factor for imaging.

generate_points() list[RSOPoint][source]

Generate a list of RSOPoint objects on a sphere.

Return type:

list[RSOPoint]