CTtraveler is a CloudTurbine-enabled Unity 3D application which demonstrates enhanced visualization for a NASA autonomous vehicle project called Traveler.  The screenshot above shows data from CTtraveler in mouse-driven demonstration mode visualized in the CTrollaball mixed-reality framework.

Command line options:

Command line option Description
-bps <blocks per seg> Number of blocks per segment.  Without this option (or if you specify “-bps 0”) the segment layer is not used in the CloudTurbine folder hierarchy.
-d <delta-Time> Assign the specified fixed time interval (msec) between received frames.  This option is useful when it is known that the channel data has a set sampling period.  Data will be time-stamped using increments of this period instead of wall clock arrival time.  Wall clock arrival time is used if no “-d” option is specified or if “-d 0” is used.
-f <autoFlush> Period (sec) of data flushing to the output CloudTurbine source.  Data is saved in ZIP files, and thus this flag specifies how much data is stored in each ZIP file and how frequently the ZIP files are flushed to disk.  Default value is 0.1 sec.
-h,–help Print the command line help message.
-host <host[:port]> Specify the host and port when writing CT data via FTP, HTTP or HTTPS server.
-mc <model color> Color of the model (avatar) to be used in Unity. Must be one of: Red, Blue, Green, Yellow; default = Blue.
-mt <model type> Type of model (avatar) to represent the aircraft in Unity. Must be one of: Primplane, Ball, Biplane; default = Biplane.
-o <base output dir> Location of the “CTdata” directory.  Used when writing CT data to a local folder (i.e., “-w LOCAL”).  Output source data will be saved under this base CloudTurbine data directory; default = “./CTdata”.
-s <session name> Session name to be prefixed to the source path; default = Traveler.
-t <trim-Time> Only maintain the specified amount of data (seconds) in the CloudTurbine source; older data is deleted automatically.  Used when writing CT data to a local folder (i.e., “-w LOCAL”).  Specify 0 for indefinite; default = 0.0.
-u <username,password> Comma-delimited username and password, used when writing CT data via FTP, HTTP or HTTPS (not used when write mode is LOCAL).
-w <write mode> Type of CT write connection; one of LOCAL, FTP, HTTP, HTTPS; default = HTTP. Specifies how to write out CT data.  Data can be directly written to a local folder or to a local or remote server (ftp, http, https).  For saving data via http or https, use CTweb server.
-x,–debug Enable CloudTurbine debug output.

CTtraveler outputs JSON packets for participating in a CTrollaball session.  These packets specify a series of “scan cylinders” and aircraft trajectory lines that represent the current state of the UAV’s ground collision avoidance system.  The sample packet shown below includes an array of objects comprising the Traveler demonstration: a top-level parent “Base” object, a Plane object, a chase Jeep object, 30 scan cylinder objects and 3 trajectory line objects.  Positions of all child objects are relative to the top-level Base parent object.  JSON structure data includes the model type, position, rotation, scale and color for each object.  Each object is visually represented in the CTrollaball user interface.

Mouse data driver and further development

For demonstration purposes, CTtraveler is configured with a mouse-driven data interface by default.  Moving the mouse on your desktop will move the airplane model and related objects in CTrollaball.  SInce CTtraveler is structured as an extensible framework, new data drivers can be added to the code.  The mouse-driven sample code is contained in its own class (MouseDataGenerator) which implements the JsonGenerator interface.  New data driver classes can likewise be added, each of which must implement JsonGenerator.  For details, see how MouseDataGenerator is integrated into the program.  CTtraveler code is open source and available on GitHub.