RSO Inspection

Data system for recording RSO surface inspection.

class RSOInspectionReward(inspection_reward_scale: float = 1.0, completion_bonus: float = 0.0, completion_threshold: float = 0.9, min_illuminated_for_completion: float = 0.4, min_time_for_completion: float = 5700, terminate_on_completion: bool = True)[source]

Bases: GlobalReward

Reward for RSO inspection.

A per step reward of inspection_reward_scale * (number of points inspected / total points) is yielded at each step. If the number of inspected points inspected exceeds or is equal to completion_threshold * number of illuminated points when either min_time_for_completion seconds have passed or at least min_illuminated_for_completion fraction of points are illuminated, the completion_bonus is awarded.

Parameters:
  • inspection_reward_scale (float) – Scale factor for the reward based on the number of points inspected.

  • completion_bonus (float) – Bonus reward for completing the inspection.

  • completion_threshold (float) – Fraction of illuminated points that must be inspected to complete the task.

  • min_illuminated_for_completion (float) – Minimum fraction of illuminated points required for completion.

  • min_time_for_completion (float) – Minimum simulation time required for completion.

  • terminate_on_completion (bool) – Whether to terminate the episode when the completion bonus is awarded.

data_store_type

alias of RSOInspectionDataStore

reset_overwrite_previous() None[source]

Overwrite attributes from previous episode.

Return type:

None

reset_post_sim_init() None[source]

Set up recorders in the data stores.

Return type:

None

initial_data(satellite: Satellite) RSOInspectionData[source]

Furnish the DataStore with initial data, marking all points as uninspected.

Parameters:

satellite (Satellite)

Return type:

RSOInspectionData

calculate_reward(new_data_dict: dict[str, RSOInspectionData]) dict[str, float][source]

Calculate the reward based on the new data generated by each satellite.

Parameters:

new_data_dict (dict[str, RSOInspectionData])

Return type:

dict[str, float]

is_terminated(satellite) bool[source]

Terminate the episode if the bonus reward has been yielded.

Return type:

bool

class RSOInspectionDataStore(*args, **kwargs)[source]

Bases: DataStore

DataStore for recording RSO surface inspection.

data_type

alias of RSOInspectionData

set_storage_recorder(recorder)[source]

Set the storage recorder for the satellite.

add_point_access_recorder(recorder)[source]

Add a recorder for point access data.

clear_recorders()[source]

Clear all recorders for point access data.

get_log_state() tuple[list[list[bool]], list[list[bool]]] | None[source]

Log the storage unit state and point access state for all times in the step.

Return type:

tuple[list[list[bool]], list[list[bool]]] | None

compare_log_states(_, logs) RSOInspectionData[source]

Identify point status and update their colors in Vizard.

Return type:

RSOInspectionData

update_point_colors(rso_points, color, alpha=0.5, permanent=False, vizInstance=None, vizSupport=None)[source]

Update target colors in Vizard.

class RSOInspectionData(point_inspect_status: dict[RSOPoint, bool] | None = None, point_illuminate_status: dict[RSOPoint, bool] | None = None)[source]

Bases: Data

Data for recording RSO surface inspection.

Parameters:
  • point_inspect_status (dict[RSOPoint, bool] | None) – Dictionary mapping RSO points to inspection status.

  • point_illuminate_status (dict[RSOPoint, bool] | None) – Dictionary mapping RSO points to illumination status.

property num_points_inspected

Number of points inspected.

property num_points_illuminated

Number of points illuminated.