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 } });