GSOC2025Ntn

From Nsnam
Revision as of 14:00, 30 August 2025 by Miyathiago (talk | contribs) (→‎Project Overview)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Main Page - Roadmap - Summer Projects - Project Ideas - Developer FAQ - Tools - Related Projects

HOWTOs - Installation - Troubleshooting - User FAQ - Samples - Models - Education - Contributed Code - Papers

Back to GSoC 2025 projects

Please refer to this wiki as a central repository of information regarding the project and as a Final Report for GSoC '25.

Project Overview

About the project

As part of the project, we have achieved our primary objective of creating an ns-3 example for the 5G NR Module where LEO (Low Earth Orbit) satellites can communicate with UEs or stations on the ground under user-defined parameters such as frequency, bandwidth, antenna gain, TxPower, 3GPP Scenario, and other parameters related to the instantiation of a LEO constellation. Beamforming, propagation, channel, and applications were configured using native modules from ns-3 and from the NR Module, especially the NrHelper. Default values for these parameters were taken from 3GPP TR 38.821. The example uses the position of the first satellite node and places a ground node beneath it. BulkSendApplication is used to generate traffic between the nodes.

To support the simulation of satellite constellations, we have ported the circular mobility implementation from an existing LEO module called ns-3-leo. It models simple circular orbits with constant escape/orbital velocity. While the base model was mostly preserved, some modifications were introduced to precompute node offsets within their orbits, in an effort to reduce computations and improve runtime efficiency when simulating large constellations. This module also includes a helper, used in the example, that provides a friendly interface to instantiate LEO constellations.

Beyond the mobility model, we have also ported an example from ns-3-leo that outputs position traces as ECEF coordinates. Using a Python script developed during the project, we generated animated plots that helped validate the nodes' initial positions and their movement over time, using different configurations of numbers of nodes, inclination, and altitude. This script was also added to the project as a utility.

Additionally, we have also created an example that builds upon the orbit tracing example ported from ns-3-leo. In this example, an antenna is aggregated to every satellite node, and a function forces the antenna to be always oriented towards a given position. This was made to ensure that every antenna on each satellite node is always nadir-pointing-down - pointing to the Earth's center of mass. However, it can also be used to make the antenna points towards an arbitrary position while the satellite node moves. This function was also used in the main example to ensure correct antenna orientation, but future iterations may also contemplate satellite nodes with steerable antennas following a similar implementation.

Milestones

  • Plotting Utility: week 7
    • Creation of a plotting utility (plot_traces.py) used to validate the initial position of the nodes placed by the PositionAllocator and the movement of the satellites themselves as time progresses. The script creates an animated plot that shows the movement of the nodes in their orbits and how the movement progresses as Earth rotates.
  • Initial Mobility Porting Commit: week 8
    • First commit of the porting of the mobility module from ns-3-leo. It also included modifications to improve performance by precomputing node offsets within their orbits and a position tracing example.
  • Increment on plotting utility: week 11
    • Added a feature so that the animated plot may display a vector indicating the antenna orientation for each satellite node.
  • Antenna Orientation Example: week 12
    • An example building upon the tracing example, adding a function that forces the antenna on the satellite nodes to point towards a given coordinate.
  • Example with orbital mobility and 3GPP NTN settings: week 13
    • Initial commit of the main example, reproducing the deployment of LEO satellites communicating with a ground station, including beamforming, channel, and propagation configuration via NR Helper.

Weekly Reports

Community Bonding

Week 1 (May 4-10)

  • Review on topics about 4G & 5G:
    • 4G Architecture, components and Protocol Stack.
    • 5G modes (NSA & SA), functions and Protocol Stack.

Week 2 (May 11-17)

  • Requirement gathering with mentors and project discussion

Week 3 (May 18-24)

  • Studied cttc-nr-demo example
  • Studied NR Module documentation:
    • Getting Started
    • Manual: Introduction, Architecture, PHY Layer & Beamforming

Week 4 (May 25-31)

  • Requirement gathering with mentors and project discussion

GSoC officially starts

Week 5 (June 1-7)

Week 6 (June 8-14)

  • Initial draft and commit for a LEO Position Allocator and Mobility Model
    • Sets up resolution and define a discrete position for satellites within an orbit, setting their initial positions as evenly as possible, given a certain resolution.

Week 7 (June 15-21)

Week 8 (June 22-28)

Week 9 (June 29-July 5)

Week 10 (July 6-12)

Week 11 (July 13-19)

Week 12 (July 20-26)

Week 13 (July 27-August 2)

Week 14 (August 3-9)

Week 15 (August 10-16)

Week 16 (August 17-23)

  • Writing reports, documentation, and design document.

Week 17 (August 24-30)

  • Preparing final submission.
  • Project Delivery and Final Results discussion.

Week 18 (August 31- September 6)

  • (Deadline) September 1st: Final submission on the GSoC Platform.

Future Work

  • Handle propagation delay.
  • Upstream orbital helper to ns-3.
  • Study ways to improve efficiency in channel model calculations.