How can i import real env parameter to AODT without GUI?

Hi NV,

We want to develop an app that imports environment parameters into AODT directly instead of tuning them via the GUI.

Is there a config file or a database we can access?

Example scenario: > The UE gets -93 dBm at (0,1), but the AODT simulation shows -85 dBm. I want to change the building material to “glass” in the config and test it again automatically.

Manually tuning this in the GUI is too time-consuming. We are looking for a more efficient way to access the AODT database or settings.

Thanks
BR
Bryan Chen

@bryan_chen

You can use the headless mode to change many (if not all) parameters in a programatic way, via a yml based configuration file. See the section:

Programatically changing materials on specific buildings is not possible in AODT 1.4.1 unfortunately not possible.

For the example scenario, make sure that you account for the number of antenna. You can set the number of interaction parameter to 0, so that only the LoS is enabled and there are no other interactions.

Hi @kpasad1

Thanks your help.

1.How can I make this setting take effect immediately?
I want to import the updated Sionna variables into AODT so the simulation updates in real-time.
e.g.

1.AODT generate DB to Sionna and ai stack.
2.Sionna config MAX MCS change
3.AODT config max mca change

2.one more question, how can I config map as below colorfull picture?

*Cueent i config only like below (Building like grey cubes)

Thanks
BR
Brynachen

@bryan_chen

What is your definition of real time? In that, there are two interpretations:

  1. AODT runs for a few slots using the gRPC interface and generates the channel and the RAN telemetry for these slots.
    1. AODT pauses for the next start signal from gRPC
    2. Sionna reads the DB, updates MCS
    3. AODT consumes MCS
    4. AODT continues to run additional slots
  2. AODT runs all slots in the simulation
    1. The simulation finishes, and the DB is updated
    2. Sionna reads the DB, updates MCS
    3. AODT consumes MCS via the config_ran.json file
    4. A new simulation is launched that run to the end with the the new MCS

#1 is not possible in 1.4.1. #2 is possible and I can provide you the directions.

@bryan_chen

Regarding your second question: The map provider will provide the texture/photogrammetry. Absent those, you wont be able to see the details

@kpasad1
Thanks for response.
#2 is ok, could help provide directions?

BR
Bryan Chen

@kpasad1
BTW, How can i modify MCS at AODT ran config?
*MCS selection mode seems only support DRL/OLLA
*Could i config max mcs?(e.g. 27->20)
*Or i can config “FIXED” mcs

{
    "Cyclic prefix": 288,
    "gNB noise figure": 0.5,
    "UE noise figure": 0.5,
    "DL HARQ enabled": 1,
    "UL HARQ enabled": 1,
    "TDD patterns":{
        "1": "DDDSUUDDDD",
        "2": "DDDDDDDDDD",
        "3": "UUUUUUUUUU"
    },
    "Simulation pattern": 1,
    "Max scheduled UEs per TTI - dl": 6,
    "Max scheduled UEs per TTI - ul": 6,
    "Scheduler Mode": "PF",
    "Beamformers CSI": "CFR",
    "MAC CSI": "CFR",
    "Beamforming Grp Level": "PRBG",
    "pusch channel estimation": "MMSE",
    "srs channel estimation": "MMSE",
    "channel estimation duration": 2,
    "MCS selection mode": "OLLA",
    "SRS SNR threshold for MU-MIMO feasibility - dl": -3.0,
    "SRS SNR threshold for MU-MIMO feasibility - ul": -3.0,
    "Channel correlation threshold for MU-MIMO grouping - dl": 0.7,
    "Channel correlation threshold for MU-MIMO grouping - ul": 0.7,
    "Fixed UE layers - dl": {
        "Enable fixed layers": 0,
        "Fixed layers": 2
    },
    "Fixed UE layers - ul": {
        "Enable fixed layers": 0,
        "Fixed layers": 2
    },
    "RX FT filename": ""
}

Thanks
BR
Bryan Chen

Unfortunately, MCS cannot be hard coded.

Regarding your automation, you can configure the simulation using a yml file in headless mode. You can make modification in the yml file and then launch a simulation from host e.g.:

sim_bash_cmd = (

        "OMNI_USER=omniverse OMNI_PASS=aerial_123456 python -m aodt.app.sim "

"–nats_subject=broadcast --db-replay --db-host=<ip_of_backend> "

"–nats_server_url=<ip_of_backend> "

f"–db-name-source={src_db} --db-name-destination={dest_db} "

f"–sim-config=/opt/nvidia/aodt_sim/{<yml_file_w_modified_parameters>}"

    )

try:

result = subprocess.run([“docker”, “exec”, container_name, “bash”, “-c”, sim_bash_cmd\],check=True,capture_output=True,text=True,)

If you want to change the parameters in the RAN file, you use a similar approch:

 result = subprocess.run(\["docker", "cp", <modifed_config_ran_on_host.json>, container_name + "://opt/nvidia/aodt_sim/src_be/components/common/config_ran.json"\], check=True, capture_output=True, text=True)

@kpasad1
Thanks for your response.
Because no config to modify mcs, Could i build L2 schedule fucntion in AODTSIM by myself?
backend\aodt_sim\src_be\controller\src\be_ctrl.cu

I want import my AI function and check with AODT .

Thanks
BR
Bryan Chen