Towards an Artificial Space Object Taxonomy

Abstract

class RSO extends ElementCollection { val speed: Element[Double] val amr: Element[Symbol] val attitude: Element[Symbol] val spin: Element[Symbol] val shape: Element[Symbol] } class Payload extends RSO { val amr: Element[Symbol] = Select(0.9 -> 'low, 0.1 -> 'medium, 0.0 -> 'high)("amr", this) val attitude: Element[Symbol] = Select(0.5 -> 'uncontrolled, 0.5 -> 'controlled)("attitude", this) val spin: Element[Symbol] = Select(0.25 -> 'uncontrolled, 0.25 -> 'spinstable, 0.25 -> 'nadir, 0.25 -> 'sun)("spin", this) val shape: Element[Symbol] = Uniform('regular, 'irregular)("shape", this) val speed: Element[Double] = Uniform(7.0, 5.0, 3.0)("speed", this) } class Navigation extends Payload { override val speed: Element[Double] = Constant(5.0)("speed", this) override val amr: Element[Symbol] = Constant('medium)("amr", this) } class Communication extends Payload { override val speed: Element[Double] = Constant(3.0)("speed", this) override val amr: Element[Symbol] = Constant('tiny)("amr", this) } class RocketBody extends RSO { val amr: Element[Symbol] = Constant('low)("amr", this) val attitude: Element[Symbol] = Constant('uncontrolled)("attitude", this) val spin: Element[Symbol] = Constant('uncontrolled)("spin", this) val shape: Element[Symbol] = Constant('rocketbody)("shape", this) val speed: Element[Double] = Uniform(7.0, 5.0, 3.0)("speed", this) } class DebrisFragment extends RSO { val amr: Element[Symbol] = Select(0.0 -> 'low, 0.75 -> 'medium, 0.25 -> 'high)("amr", this) val attitude = Constant('uncontrolled)("attitude", this) val spin = Constant('uncontrolled)("spin", this) val shape = Constant('debris)("shape", this) val speed: Element[Double] = Uniform(7.0, 5.0, 3.0)("speed", this) } class LAMR extends RocketBody { override val amr: Element[Symbol] = Constant('low)("amr", this) override val speed: Element[Double] = Uniform(7.0, 5.0, 3.0)("speed", this) } class MAMR extends DebrisFragment { override val amr: Element[Symbol] = Constant('medium)("amr", this) override val speed: Element[Double] = Uniform(7.0, 5.0, 3.0)("speed", this) } class HAMR extends DebrisFragment { override val amr: Element[Symbol] = Constant('high)("amr", this) override val speed: Element[Double] = Constant(3.0)("speed", this) } <continued next page...>

Topics

11 Figures and Tables

Download Full PDF Version (Non-Commercial Use)