ISAC-Sim

ISAC Framework Module Guide

Joint Trajectory Optimization Framework for Integrated Sensing and Communication

This guide details how to use the Symbion library's ISAC framework module (symbion/isac) to achieve joint optimization of UAV trajectory planning and communication quality.

Table of Contents

1. Module Overview

1.2 Module Capabilities

FeatureDescription
Trajectory PlanningWaypoint generation based on LoS and URLLC constraints
Metric EvaluationLoS probability, throughput, URLLC reliability calculation
Constraint SystemFlight constraints and communication constraints verification
AI IntegrationConverting ISAC problems into Reinforcement Learning environments

2. Core Components

Trajectory Planner

import { createPlanner } from 'symbion/isac';

const planner = createPlanner({
  startPosition: { x: 0, y: 0, z: 50 },
  endPosition: { x: 500, y: 500, z: 80 },
  numWaypoints: 10,
});

Metric System

import { metrics } from 'symbion/isac';

// LoS Probability
const prob = metrics.calculateLosProbability(elevation, 'urban');

// URLLC Evaluation
const result = metrics.evaluateUrllc(
  e6,    // Rate (bps)
  e-5,   // BLER
  0.5,    // Latency (ms)
  requirements
);

Environment Adapter

import { createEnvironment } from 'symbion/isac';

const env = createEnvironment({ ...config });
const { state, reward } = env.step(action);

3. Quick Start

Basic Trajectory Planning

import { createPlanner } from 'symbion/isac';

const planner = createPlanner({
  startPosition: { x: 0, y: 0, z: 50 },
  endPosition: { x: 500, y: 500, z: 80 },
  numWaypoints: 10,
  kinematics: { maxSpeed: 20, maxAcceleration: 5 }
});

const result = planner.plan();

console.log(`Total Distance: ${result.totalDistance.toFixed(2)} m`);

4. Configuration Guide

const config: IsacTrajectoryConfig = {
  taskName: 'isac-optimization',
  
  // Location
  startPosition: { x: 0, y: 0, z: 50 },
  numWaypoints: 20,
  
  // Constraints
  kinematics: {
    maxSpeed: 20,
    minAltitude: 30,
    maxAltitude: 150,
  },
  
  // Comm Params
  communication: {
    carrierFrequencyHz: 3.e9,
    bandwidthHz: e6,
  }
};

5. Practical Examples

URLLC Constrained Trajectory

const urllcReq = {
  latencyMs: 1,
  reliability: 0.99999,
  minRateBps: e6,
};

// ... Plan and Evaluate ...
result.trajectory.forEach(wp => {
  const status = metrics.evaluateUrllc(rate, bler, lat, urllcReq);
});