ISAC-Sim

Symbion Tasks User Guide

Comprehensive documentation for U2U-MCS and ISAC Trajectory tasks

This guide provides comprehensive documentation for the two research-oriented simulation tasks included in the Symbion library: U2U-MCS (UAV-to-UAV Modulation and Coding Scheme Selection) and ISAC Trajectory (Integrated Sensing and Communication Trajectory Optimization).

Table of Contents

1. U2U-MCS Task (Rate Adaptation)

1.1 Task Description

Goal: Select the optimal Modulation and Coding Scheme (MCS) index (0-28) in a dynamic UAV-to-UAV communication scenario to maximize throughput while maintaining low Block Error Rate (BLER).

  • Scenario: Two UAVs flying in 3D space with random waypoints.
  • Challenge: Fast-fading channel, Doppler shift, dynamic SNR.

1.2 Configuration

// src/tasks/u2u-mcs/config.ts
export const u2uMcsConfig = {
  carrierFreq: 2.e9,      // 2.4 GHz
  bandwidth: e6,         // 10 MHz
  txPower: 23,             // 23 dBm
  noiseFigure: 5,          // 5 dB
  fadingModel: 'rician',   // Rician Fading
};

1.3 Input/Output Spaces

Input Space (Observation)

Shape: [5] (Normalized)

  • Distance (d/1000)
  • Velocity (v/30)
  • SNR (dB/50)
  • Previous MCS (idx/28)
  • Previous ACK (0 or 1)

Output Space (Action)

Discrete: 29

  • 0: MCS0 (BPSK, R=1/2)
  • ...
  • 28: MCS28 (64QAM, R=3/4)

1.4 Reward Function

Reward = (Throughput  MaxThroughput) - (BLER > Target ? 1.0 : 0.0)

1.5 Usage Example

import { U2uMcsTask } from 'symbion/tasks/u2u-mcs';
import { IterativeAiClient } from 'symbion/ai';

// Server Side (Symbion)
const task = new U2uMcsTask();
task.start(); // Listening on port 8765

// Client Side (AI)
const client = new IterativeAiClient({ port: 8765 });
await client.connect();

2. ISAC Trajectory Task (Joint Optimization)

2.1 Task Description

Goal: Optimize UAV trajectory to minimize flight time and energy consumption while satisfying URLLC (Ultra-Reliable Low Latency Communication) constraints with Ground Users (GUs).

2.2 Input/Output Spaces

Input Space (Observation)

Shape: [9]

  • UAV Position (x, y, z)
  • UAV Velocity (vx, vy, vz)
  • Destination (dx, dy, dz)

Output Space (Action)

Box: [3] (Acceleration)

  • ax (m/s²)
  • ay (m/s²)
  • az (m/s²)

2.4 Usage Example

import { IsacTrajectoryTask } from 'symbion/tasks/isac-trajectory';

const task = new IsacTrajectoryTask({
    numUsers: 3,
    urllcRequirement: { latency: 1, reliability: 0.99999 }
});