Examples
Examples are located in MDS Solaris installation directory: Help_API & Examples/Examples
MDS 1.4.0 examples
- Constellation Design and Revisit Time calculations
This example demonstrates the capabilities of MDS to aid in designing a constellation. Two constellations are created, for each of them, the global and overlapping ground coverage is computed, as well as revisit times and ground station visit geometry. The results are exported in the Export folder, they are then visualized for both constellations to allow for direct comparison.
example_compute_fleet_coverage.py
- Communication, payload and power system integration
Although not utilizing new features, this example demonstrates the capability to integrate power, communications and payload subsystem integration. A mission manager balances between real-time prioritization of data gathering, downlink and maintaining sufficient power.
- TLE data generation and ingestion
This script shows the (as of MDS 1.4.0 experimental) TLE generation. Orbit raIsing is executed for two satellites and their resulting TLE's are created.
- Orbital decay
This example shows two satellites' orbits decaying due to the impact of drag. The satellites are configured to have two reference areas exposed to drag, thus they decay at different rates. Once the higher area satellite reached an altitude of 140km, it burns up and is thus removed from the simulation. This can be seen in the altitude history
- Orbital monitor
This demo shows a two satellites with a stationkeeping manager. Constraints on their semi-major axes and eccentricity are set. Both satellites begin orbiting at kepler elements exceeding their constraints. The orbit monitor detects this, suggests and then commands orbit raising maneuvers, which are executed to resolve the constraint violation.
- Ground asset modification
This example shows the flexibility to create an entity/ground asset in intertial frame coordinates. Its properties, such as size, position, color can be changed in real-time.
MDS 1.3.0 examples
- Satellite Docking simulation
This is a broad example/demonstrator of the ability to perform close-proximity in MDS. A chaser satellite approaches a target, running a GNC loop, docks, transfers fuel and retreats. The prompt at the start of the script also allows to perform a failed docking where the chaser collides with the target.
- Thruster plume visualization
This example shows how to connect visual plumes to the thrusters on a satellite 3D model Thrust is then applied in different directions and the effects are visualized.
example_set_thruster_plumes.py
- Pose setting tutorial
A tutorial script that shows the blocks of setting/controlling the pose between two satellites. Allowing to vary attitudes, positions and illumination conditions and see how that impacts the view of the target satellite in the camera frame. Useful building blocks for synthetic visual data generation.
tutorial_set_relative_attitude.py * Constellation creation examples
Demonstrates how to create a constellation using Walker-Delta Patterns. And how to establish communication between these satellites.
example_create_walker_constellation.py
Load and save a constellation frm an OMM .xml format example_load_omm.py
- Power subsystem
Demonstrates how to configure the power subsystem for power budget calculation
- Controller examples
Starts a scenario with a tumbling satellite. After 5 seconds, detumbling is activated. Once this is achieved, a new guidance mode to point the satellite camera to nadir is used.
example_detumble_and_point_nadir.py
- dV Maneuver example
Demonstrates that dV maneuvers can now be directly applied in LVLH frame. example_thrust_event_lvlh.py
- Ground assets
Demonstrates how to add different ground assets and control them over time.
MDS 1.2.0 examples
- Capstone
Demonstrates how to add satellite to an Earth-Moon transfer orbit.
- Capture image
Demonstrates how to add satellite, attach a camera and generate the camera image.
example_capture_camera_image.py
- Event scheduler
Demonstrates how to create time, geolocation, altitude events for the satellite and execute thrust/pointing actions.
- Friendly stations
Demonstrates satellite and ground station communication.
- Get ground station state
Demonstrates how to retrieve geolocation data of a chosen ground station.
example_get_ground_station_state.py
- Get Link budget
Demonstrates how to set up satellite communication. Retrieves transmission data, Uplink, Downlink budget.
- Get planet state
Demonstrates how to retrieve position data for Mercury and the Moon.
- Get satellite state
Demonstrates how to get pose data for a chosen satellite.
- Rendezvous operation
Demonstrates how to set up and run a closed-loop 6DOF GNC algorithm. The chaser satellite approaches the target satellite and points its camera at the target.
- Match attitude
Demonstrates how to set up and run a closed-loop 3DOF GNC algorithm.
The controller implemented here tries to match the chaser attitude of the target spacecraft.
- Load configuration
Demonstrates how to load configuration (JSON) file.
- Handle MDS network callbacks
Demonstrates how to connect to MDS callback server. Prints various MDS events. Such as satellite maneuver, event scheduler events. Communication link establishment. Add satellites and Mission events through the MDS UI to observe the parsed callbacks.
example_mds_event_handler_client.py
- Physical camera
Demonstrates how to attach camera to satellite. Sets camera parameters and applies various camera effects, such as lens distortion, bloom, aperture, focus, shutter speed.
- Plot ground station passes
Demonstrates how to record satellite-ground station distance from the simulation and plot it via matplotlib.
- Save configuration
Demonstrates how to save current scene into a JSON file.
- Schedule maneuver
Demonstrates how to schedule a satellite thrust maneuver at a specific julian date.
- Set satellite pointing mode
Demonstrates how to set satellite to different pointing modes.
- Set satellite rotation
Demonstrates how to instantaneously update satellite attitude.
- Set satellite track
Demonstrates how to enable satellite track for a specific satellite.
- Set simulation timescale
Show how to set up simulation speed for a whole scene.
example_set_simulation_timescale.py
- Starlink satellite batch
Demonstrates how to load satellites from CSV format and enable communication between them.
- Satellite cone color
Demonstrates how to add sensor cone to satellite and change its color