KaBOOM API Documentation

Key Information

Register
Submit
The challenge is finished.

Challenge Overview

Task Overview

In 2013, over a dozen large asteroids similar in size to the space stone that crashed into Russia in February 2013 passed near Earth.  Near-Earth Object (“NEO”) detection and characterization is a critical need for NASA and the United States.  NASA has been directed to develop capabilities to observe, track and characterized NEOs and other deep space objects that could pose a threat to the Earth.  As a result, NASA is developing concepts for a highly capable deep space radar array consisting of sets of commercially available monolithic antennas.

NEOs are observable with commercial radar technology.  Specifically, asteroids can be tracked with Ka-band radar.  NASA’s Ka-Band Object Observation and Monitoring (“KaBOOM”) project plans to use commercial 12 meter Ka-band radar dishes to build large dish arrays capable of simultaneously tracking many objects at safe distances.  This raises the possibility that the detection range for Earth-bound asteroids can be inexpensively extended and maintained. 

One of the challenges faced by NASA is determining the optimum selection of individual antennas within the array for a given track observation.  This is a complex analysis and goes directly to development of the concept of operations and cost of operations (in terms of maintenance and total capacity required).

KaBOOM project will feature a series of challenges that task competitors to develop a flexible model that can be used to determine both the optimum selection of existing dishes to track a set of objects, and the optimum placement of any number of new dishes added to an existing array.

Refer to the KaBOOM official minisite for more information http://www.topcoder.com/asteroids/tracker/

The first challenge is a Marathon Match (MM) to solve is the optimization/multi-track dish selection problem. To focus MM competitors attention on this difficult task, we built a base-line reference beam model. Marathon Match contestants will use or expand this model to suit their solution.  MM challenge also require a visualizer to allow contestants to monitor the performance of their work, we've built the first version of the visualizer as well.

Task Requirements

The goal of this challenge is to read the code we built so far and produce a well written API document reference for marathon match contestants to understand how to get started and use it, you need to deliver two type of documents :

  • Sequence Diagrams
  • API Reference Document include documentation about clases, variables, and methods. It should include high level information about what they represents, what they do, and how they are to be used.

MM Challenge Problem Statement

Here is the MM challenge problem statement for your reference as it might help you to understand the whole picture of the MM scope :

Challenge statement
The goal of the marathon challenge is to build a system that optimize the use of an array of radar dishes. The marathon contestants will need to implement two functions:
void initialize(List<Radar> radars, List<Asteroid> asteroids);
List<RadarAssignment> assignAntennas();
The function initialize provides all the information about the radars and asteroids in the testcase.
The function assignAntennas will be called each second during a 24h period, and should return for each radar, a radar antenna power, and an asteroid index that specifies which asteroid the radar should target the next second, or -1 if the antenna should be turned off.
 
Radars can only target visible asteroids. Also, radars can not switch which asteroid they are targeting instantaneous, there is some redirecting time where the radar cannot be used for tracking. Also, the chosen radar antenna power must be between 0 and MAX_POWER inclusive.
 
Scoring
The scoring function for the Marathon Match is not complete yet, but it will be a function of the following parameters:
Time series for each radar that contains the following information:
  •     Signal power, reflected from the chosen asteroid target at that time
  •     Noise power, induced from the other radars
  •     Consumed wall power: power used for emitting electromagnetic radiation + power used for mechanically moving the radar
The signal and noise power will be calculated from a simplified physics model of the electromagnetic fields that are emitted from the radar antennas.
 
Single antenna Beam Model
All antennas are equal in the first marathon and will use the same beam model.
The beam model is on the lowest level based on functions with the following signature:
static double fieldAmplitude(double angle);
These functions are not implemented yet and will be given as an API only.
Each of these functions represents the normalized amplitude of the electromagnetic field at some given distance, for a single antenna. The field from the antennas are circularly symmetric and can therefore be represented as a function of the angle of the main beam direction only.
The API will provide three such normalized amplitude functions, one for each of the following distances:
  1.     Mean average distance between all pairs of closest neighboring antennas    
  2.     Mean average distance between all antennas
  3.     In the limit of infinite distance    
Using the three normalized amplitude functions above, it is possible to approximate the normalized amplitude at any distance, by choosing the most appropriate one of them based on the distance. 
The amplitude of the electromagnetic field is inversely proportional to the distance. This means that to get the amplitude from the normalized amplitude functions above, you need to divide with the distance.
 
The axis of propagation of the electromagnetic field will always be directed away from the source. The axis of propagation of the electromagnetic field is defined as the cross product between the electric field and the magnetic field. Also, the electromagnetic field and magnetic field are orthogonal to each other. More information can be found from the links on the minisite.
 
Using this information, together with the amplitude function, it is possible to calculate the full electromagnetic field at any distance and angle, by taking into account the antenna phase, antenna power, antenna rotational angle and distance. The phase shift can be calculated using the ratio of the distance and wavelength. The wavelength will be constant throughout this marathon and fixed at 1 centimeter, which corresponds to a frequency of 30GHz.
 
Subarray beam formation
Using the beam model for a single antenna, it is possible to calculate the antenna array beam in any location, by summing the individual electromagnetic field from each antenna. This property is called the superposition principle:
Note that we are summing electromagnetics vector fields and not real numbers. This summation of vector fields give rise to interference effects. If the electromagnetics fields are in phase, then the amplitude will increase (constructive interference), otherwise they will cancel each other out (destructive interference) and lower the amplitude.
 
Radar shadowing
In this marathon we disallow radar shadowing, this means that the main beam from each radar antenna is not allowed to intersect with any other radar. We model this with a simple geometric constraint. The main beam from the radar dish is modeled as a cylinder with the same radius as the dish, and the radar itself is modeled as a sphere. The cylinder beams are not allowed to intersect with radar spheres.
 
Power density at asteroid targets
The asteroids are so far away that they can be approximated by a point, so we only need to calculate the electromagnetic field in one location. The power density in the radiation hitting an asteroid target is calculated using the amplitude of the electromagnetic field. The electromagnetic field at the asteroid target is calculated using the subarray beam formation described above. The power density of the electromagnetic field is proportional to the square of the amplitude. The total power hitting the asteroid is calculated as 
reflectedPower = powerDensity * asteroidCrossSectionArea * asteroidReflectivityCoefficient. 
The signal power that an antenna receives from the reflected radiation from an asteroid is calculated as 
signalPower = reflectedPower / distance^2
 
Induced noise power
Each antenna receives some of the other antennas emitted radiation which generates noise. The electromagnetic field at the location of each radar can be calculated using the subarray beam formation described above. The noise power is calculated as the square of the amplitude of the electromagnetic field.
 
Transmitting and receiving radars
In the first marathon, we ignore the speed of light and assume that the transmission of electromagnetic radiation is instantaneous. We also assume that the transmitting and receiving antennas for a chosen asteroid are the same.
 
Calculaing radar rotational angle and phase
Given the asteroid a radar is tracking, the rotational angle of the radar will be chosen to point the main beam directly towards the asteroid. The phase of the radars in a subarray will be chosen so that they are all phase aligned when hitting the asteroid.
 
More details about the model can be found in the reference implementation.

Provided Documents

The built code is provided in challenge forums.



Final Submission Guidelines

Submission Deliverables

Below is an overview of the deliverables:

  • TCUML Sequence Diagram for the whole API flow.
  • Detailed API Reference Document.

Final Submission

For each member, the final submission should be uploaded to the Online Review Tool.

ELIGIBLE EVENTS:

2014 TopCoder(R) Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30042348