DEVELOPMENT OF A DYNAMIC 3D TELEMETRY RANGE-DOPPLER MAP VISUALIZATION TOOL ABSTRACT INTRODUCTION



Similar documents
Using WPF for Computer Graphics

Silverlight for Windows Embedded Graphics and Rendering Pipeline 1

Intro to 3D Animation Using Blender

Using Microsoft Picture Manager

CREATE A 3D MOVIE IN DIRECTOR

3D-GIS in the Cloud USER MANUAL. August, 2014

ART 269 3D Animation Fundamental Animation Principles and Procedures in Cinema 4D

CATIA Basic Concepts TABLE OF CONTENTS

Turtle Beach Grip 500 Laser Gaming Mouse. User Guide

Image Processing and Computer Graphics. Rendering Pipeline. Matthias Teschner. Computer Science Department University of Freiburg

Movie Maker 2 Beginning

Cortona3D Viewer. User's Guide. Copyright ParallelGraphics

PowerPoint 2007 Basics Website:

Quick Tutorial. Overview. The NVIDIA Software Improvement Program. Creating an Effect

How To Run A Factory I/O On A Microsoft Gpu 2.5 (Sdk) On A Computer Or Microsoft Powerbook 2.3 (Powerpoint) On An Android Computer Or Macbook 2 (Powerstation) On

Introduction to scripting with Unity

Blender Notes. Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine

3D Viewer. user's manual _2

The following is an overview of lessons included in the tutorial.

Excel 2007 Basic knowledge

Tutorial: Biped Character in 3D Studio Max 7, Easy Animation

Sharing Presentations, Documents, and Whiteboards

Video in Logger Pro. There are many ways to create and use video clips and still images in Logger Pro.

Twelve. Figure 12.1: 3D Curved MPR Viewer Window

A. OPENING POINT CLOUDS. (Notepad++ Text editor) (Cloud Compare Point cloud and mesh editor) (MeshLab Point cloud and mesh editor)

Excel -- Creating Charts

Microsoft Excel 2010 Charts and Graphs

Formulas, Functions and Charts

4D Interactive Model Animations

Fixplot Instruction Manual. (data plotting program)

Lecture Notes, CEng 477

Tutorial for Tracker and Supporting Software By David Chandler

Microsoft Excel Basics

Rotation: Moment of Inertia and Torque

MovieClip, Button, Graphic, Motion Tween, Classic Motion Tween, Shape Tween, Motion Guide, Masking, Bone Tool, 3D Tool

Adobe Illustrator CS5 Part 1: Introduction to Illustrator

KINECT PROJECT EITAN BABCOCK REPORT TO RECEIVE FINAL EE CREDIT FALL 2013

2012 Ward s Natural Science

Gerrit Stols

Creating a Poster Presentation using PowerPoint

Microsoft Picture Manager. Picture Manager

GYM PLANNER. User Guide. Copyright Powerzone. All Rights Reserved. Software & User Guide produced by Sharp Horizon.

Introduction to Computer Graphics

UNIVERSITY OF LONDON GOLDSMITHS COLLEGE. B. Sc. Examination Sample CREATIVE COMPUTING. IS52020A (CC227) Creative Computing 2.

2-1 Position, Displacement, and Distance

SketchUp Instructions

Easy Photo Editing with Windows Vista s Photo Gallery

Gephi Tutorial Visualization

Multi-Touch Ring Encoder Software Development Kit User s Guide

Ortelia Space Builder User Manual

Basic controls of Rhinoceros 3D software

CONSTRUCTING SINGLE-SUBJECT REVERSAL DESIGN GRAPHS USING MICROSOFT WORD : A COMPREHENSIVE TUTORIAL

A Short Introduction to Computer Graphics

An introduction to 3D draughting & solid modelling using AutoCAD

A Short Introduction to Transcribing with ELAN. Ingrid Rosenfelder Linguistics Lab University of Pennsylvania

Working With Animation: Introduction to Flash

Visualization of 2D Domains

TABLE OF CONTENTS. INTRODUCTION... 5 Advance Concrete... 5 Where to find information?... 6 INSTALLATION... 7 STARTING ADVANCE CONCRETE...

Direct and Reflected: Understanding the Truth with Y-S 3

3D Interactive Information Visualization: Guidelines from experience and analysis of applications

Gear View Basic. User Help. Version Written by: Product Documentation and R&D Date: August 2015 LX-DOC-GVB UH-EN-REVA

Sharing Software. Chapter 14

Understand the Sketcher workbench of CATIA V5.

Windows Live Movie Maker

User Tutorial on Changing Frame Size, Window Size, and Screen Resolution for The Original Version of The Cancer-Rates.Info/NJ Application

Maya 2014 Basic Animation & The Graph Editor

Instructions for Creating a Poster for Arts and Humanities Research Day Using PowerPoint

SEMTech Solutions. Leaders in Refurbished SEMs. SEMTech Solutions Windows 7 SOFTWARE CONTROL SYSTEM

MICROSOFT POWERPOINT STEP BY STEP GUIDE

Academic Support Center. Using the TI-83/84+ Graphing Calculator PART II

MULTIMEDIA INSTALLING THE MULTIMEDIA UPGRADE

Plotting: Customizing the Graph

Abstract. Introduction

Renewable Energy Monitor User Manual And Software Reference Guide. (979)

AutoDWG DWGSee DWG Viewer. DWGSee User Guide

Animations in Creo 3.0

Getting to know your TI-83

One-Minute Spotlight. The Crystal Ball Forecast Chart

Visualizing molecular simulations

Data representation and analysis in Excel

Linkage 3.2. User s Guide

CORSAIR GAMING KEYBOARD SOFTWARE USER MANUAL

Using Microsoft Word. Working With Objects

Intro to Excel spreadsheets

Create a Poster Using Publisher

Microsoft PowerPoint Tutorial

INTRODUCTION TO RENDERING TECHNIQUES

DATASTREAM CHARTING ADVANCED FEATURES

DIA Creating Charts and Diagrams

CONFOCAL LASER SCANNING MICROSCOPY TUTORIAL

STARTING WEBSTER...3 GETTING STARTED WITH WEBSTER TOOLS...5

EZdok CAMERA ADDON For Microsoft Flight Simulator X

Scientific Graphing in Excel 2010

Spotfire v6 New Features. TIBCO Spotfire Delta Training Jumpstart

Microsoft Publisher 2010 What s New!

Sharing Files and Whiteboards

Using O4X For Your Business Data Visualization Solutions A Technical Overview

July 21, 2010 Brushes ipad Edition User s Guide

Information Technology. Introduction to Vista

Transcription:

DEVELOPMENT OF A DYNAMIC 3D TELEMETRY RANGE-DOPPLER MAP VISUALIZATION TOOL By Mark Reff Raytheon Missile Systems ABSTRACT Telemetry radar data in the range-doppler domain is commonly displayed using a 2D range- Doppler map (RDM). However, a static 2D RDM does not provide the proper data visualization that can be achieved with 3D software. Commercial 3D software can be expensive and difficult to modify, and writing custom software can be complex and time consuming. These issues were overcome by quickly developing a 3D Range-Doppler Map Visualization Tool in C# to dynamically display flight test range-doppler data. Keywords: Telemetry, Data Visualization, Range-Doppler Map, RDM, C#, WPF, 3D INTRODUCTION Many organizations perform real-time hardware-in-the-loop (HIL) and computer-in-the-loop (CIL) simulations in conjunction with actual flight testing to validate flight hardware and software. The resulting telemetry radar data from these tests are commonly visualized using range-doppler maps (RDM). For this data, a static 2D range-doppler map does not provide the proper data visualization that can be accomplished with 3D software. Unfortunately, existing commercial 3D software can cost thousands of dollars, be difficult or impossible to customize, and contain many unnecessary or unwanted features. Alternatively, writing custom 3D software using Direct3D or OpenGL can be complex and time consuming.. For these reasons, the option selected for this project was the creation of a custom 3D application that included only those features requested by the users. This paper describes how C# and Windows Presentation Foundation (WPF) were used to quickly and easily create a lightweight dynamic 3D Telemetry Range-Doppler Map Visualization tool, including the processes developed for dynamic display. RANGE-DOPPLER MAPS A range-doppler map (RDM) for military defense applications provides radar visualization of targets, their speed, and their distance. An RDM display also allows users to differentiate between multiple targets. Specifically, the range-doppler map is a matrix with one axis representing frequency (converted from time pulse periods) and one axis representing range. The frequency is represented in hertz (Hz) or kilohertz (khz), and the range is commonly represented in meters or kilometers. In addition, the frequency axis can be converted to speed, which is represented in meters per second (m/s). 1

Each cell in the map is a color (or color shade) representing the power level of the radar signal, which is measured in either amplitude or decibels (db). Because the map is a matrix, each cell has identical lengths along the X and Y axes. Target detections have the highest radar power readings on the RDM and are displayed as hot spots on the map. A separate map is displayed for each tracking radar beam. Range-Doppler maps are commonly displayed in 2D, but as evidenced by the graphics below, 2D maps do not provide the same resolution that can be achieved with 3D software. Figure 1 shows a 2D map, which when contrasted with the figure 2 display of the same map using the 3D RDM Visualization Tool, can be seen to have a much lower degree of resolution. The higher resolution on the 3D map allows users to quickly visualize and discern the magnitude of the radar s power level differences across the map. In addition, the 3D RDM Visualization Tool contains functionality not available with a 2D display, such as a rotation function allowing users to fully rotate the map 360 degrees, and a zoom function allowing magnification of any area of the map. Figure 1: a 2D range-doppler map 2

Figure 2: a 3D range-doppler map WPF 3D GRAPHICS Microsoft s Windows Presentation Foundation (WPF) contains functionality to draw and manipulate 3D objects. WPF contains a Viewport3D class which is the background on which the 3D scene is rendered. A Camera class defines the viewpoint in 3D space. As such, this class contains properties to set the field of view, the look direction, and the near and far plane distances. WPF also has four light source classes that illuminate the 3D scene: AmbientLight, DirectionalLight, PointLight, and SpotLight. AmbientLight illuminates objects evenly, regardless of location. DirectionalLight illuminates from a specified directional vector. PointLight illuminates from a specified 3D position and contains a Range property to specify the light s distance. SpotLight illuminates a specified cone-shaped area. These classes can be used separately or in combination with one another, and each light source contains a color property. The 3D Range-Doppler Map Visualization Tool uses a white DirectionalLight. WPF also contains classes that represent the models that are moved and manipulated in 3D applications. The GeometryModel3D class, which inherits from the abstract Model3D base 3

class, is used to display 3D objects. Multiple models can be combined into a single model using the Model3DGroup class. GeometryModel3D and Model3DGroup objects must be attached to a Visual3D subclass, either ModelVisual3D or ModelUIElement3D. The 3D models that can be created in WPF can be simple, basic shapes (e.g., cubes, cylinders, spheres) or complex, highly detailed 3D images. In both cases the 3D models contain vertices, with X, Y, and Z coordinates representing their position in 3D space. A collection of vertices is known as a mesh, and meshes are usually comprised of triangles (i.e., 3 connected vertices). Meshes are used to form the shape of the models. Depending on their level of detail, 3D models can contain thousands of vertices. GENERATING 3D MODELS IN WPF In WPF, XAML (Extensible Application Markup Language) is used to render visual UI components including 3D models. XAML is an XML, tag-based language. XAML files are connected to C# files known as code-behind that contain partial class definitions. Figure 2 shows a fragment of XAML code for a 3D rectangle; these rectangles are the 3D models used by this project for the range-doppler map cells: <ModelVisual3D> <ModelVisual3D.Content> <GeometryModel3D> <GeometryModel3D.Geometry> <MeshGeometry3D Positions="-0.101014533313053, -0.0709033921942744, 0.88919115101361... TriangleIndices="0 1 2 3.../> </GeometryModel3D.Geometry> <GeometryModel3D.Material> <DiffuseMaterial Brush="Blue" /> </GeometryModel3D.Material> </GeometryModel3D> </ModelVisual3D.Content> </ModelVisual3D> Figure 2: XAML for a 3D Rectangle Model Rendering 3D graphics in WPF has a built-in advantage over other 3D frameworks: hardware acceleration. WPF renders graphics through the graphics card, which allows the CPU to perform other processing and accelerates graphics performance. Using Windows 7, 8, or 10, a WPF 3D application can load and process XAML models with significant detail quickly (within a few seconds). Running the application in Windows XP, however, can take much longer to load the same models. Hardware acceleration also produces faster run times when using dynamic movement in a 3D application, which creates a smoother 3D display. 4

DESIGN OF THE DYNAMIC 3D RANGE-DOPPLER MAP VISUALIZATION TOOL The remainder of this document details the classes and processes that were used and developed to create the dynamic 3D Range-Doppler Map Visualization Tool. Dynamic Movement The 3D RDM Visualization Tool accomplishes dynamic movement in two ways: by using a slider control to manually control movement and by using play/pause buttons based on a timer to automatically control movement. The slider s increments are represented by the individual major frames of the flight run s telemetry; each click on the slider s forward arrow button advances one major frame in the telemetry data (and vice-versa for the slider s backward arrow button). The slider can be manually scrolled forward and backward, which draws and redraws the RDM cells through the flight run. For the play button, the RDM 3D cell rectangles are drawn based on a timer synchronized to the telemetry frame rate of the missile. For example, if the missile frame rate is 10 Hz, the timer starts and stops every 100 milliseconds. In order to automatically draw the WPF 3D rectangles via the play button, the IncrementFrame method in the 3D Range-Doppler Map Visualization Tool is registered as the Rendering event handler for the C# CompositionTarget class. This method contains an instance of the C# Stopwatch timer class that is used to control the frame rate based on milliseconds. At a missile frame rate of 10 Hz, the Stopwatch timer object fires an event every 100 milliseconds; this event calls the IncrementFrame method, which increases the telemetry major frame counter by one. This results in the 3D Range-Doppler Map Visualization Tool automatically displaying 10 telemetry frames per second. The pause button simply stops the Stopwatch timer until the play button is pressed again. A speed control located to the right of the play/pause buttons allows the user to increase or decrease the playback speed. This is accomplished by decreasing the number of milliseconds in the Stopwatch timer s event to speed up the playback or increasing the number of milliseconds to slow down the playback. Model Class Model is a subclass of ModelVisual3D that creates the 3D rectangles that are drawn for the RDM cells. This class contains a Transform3DGroup variable, which includes the 3D matrix transformations: translation, rotation, and scale. Transformations are used in 3D programming to position, size, and orient the 3D models. In 3D computer graphics, three matrices make working with these transformations easier: the World matrix, the View matrix, and the Projection matrix. The World matrix represents where the models are located in 3D space, the View matrix represents where the camera position is located, and the Projection matrix represents the location on the 2D display screen. The code fragment in figure 3 details the transformations for the Model class. Note that only the translation and scale transformations are used; this is because while the height of the 3D 5

rectangles changes (based on the decibel level in the radar signal), the rectangles do not rotate, so no rotation transformation is required. double xcenter = (xmin + xmax) / 2; double ycenter = (ymin + ymax) / 2; double zcenter = (zmin + zmax) / 2; double xrange = (xmax - xmin) / 2; double yrange = (ymax - ymin) / 2; double zrange = (zmax - zmin) / 2; Matrix3D viewmatrix = new Matrix3D(); Matrix3D projectionmatrix = new Matrix3D(); projectionmatrix.setidentity(); projectionmatrix.translate(new Vector3D(-xCenter, -ycenter, -zcenter)); double xscale = scalefactor / xrange; double yscale = scalefactor / yrange; double zscale = scalefactor / zrange; projectionmatrix.scale(new Vector3D(scaleX, scaley, scalez); Matrix3D totalmatrix = Matrix3D.Multiply(projectionMatrix, viewmatrix); Transform3DGroup group = Content.Transform as Transform3DGroup; group.children.clear(); group.children.add(new MatrixTransform3D(totalMatrix)); Figure 3: 3D Transformations Camera Class In WPF 3D, the Camera class encapsulates the 3D point of view (i.e., the positioning of the camera). It contains the Position, FieldOfView, LookDirection, and UpDirection properties. The Position property is the XYZ point of the camera in 3D space. The FieldOfView vector contains the camera s horizontal field of view in degrees. The LookDirection vector specifies the direction the camera is aimed. The UpDirection vector specifies which direction is up from the camera s perspective. Each model can have its own camera and every camera created must be added to the WPF Viewport3D instance. Cameras in WPF 3D can be movable or stationary. WPF 3D has two types of cameras: perspective and orthographic. With a perspective camera, the model objects are foreshortened (i.e., distant objects appear smaller). With an orthographic camera, there is no perspective; the model objects appear the same size, regardless of distance. The 3D RDM Visualization Tool uses an orthographic camera. This is because the unit size of the 3D rectangles in the range-doppler map, in this case decibels, must have the same 6

proportional length regardless of the position of the camera view on the matrix. By default, the 3D camera remains stationary during the flight run (and therefore the user s view angle of the RDM remains constant); however, the camera moves and the view angle changes when the user performs the rotation, zoom, or pan functions. Rotating, Zooming, and Panning The 3D RDM Visualization Tool s MovableCamera class allows mouse movements to perform rotation, pan, and zoom functions on the 3D camera. For rotation, the camera is rotated around its focused object (i.e., the 3D RDM map), which has the visual effect of rotating the entire 3D scene. In 3D programming, the camera can fully rotate at any angle. Full camera rotation with a single mouse movement works well when the 3D world is small and encompasses a single object - as is the case with the 3D RDM Visualization Tool - because it is easy to visually re-orient the camera back to any position. Rotation of the 3D range-doppler map is performed by dragging the mouse in any direction while pressing the left mouse button. The rotation is achieved programmatically with the use of quaternions. A quaternion is a mathematical structure for complex numbers that can be used to calculate rotations in three dimensions. The rotation is calculated by first computing the cross product of the previous and current mouse position 3D vectors to determine the delta axis of rotation. Next, the delta angle between the previous and current mouse position 3D vectors is calculated. Then, the delta quaternion is created from the delta axis of rotation and the delta angle. Finally, the current camera rotation quaternion is multiplied by the delta quaternion to give the new camera axis of rotation and angle. The Microsoft.NET Media3D library has classes and helper methods to facilitate these calculations. The C# code for the rotation calculations are shown in figure 4. After rotating the RDM map in the 3D RDM Visualization Tool, the user can easily return the camera to its initial position with a double left mouse click. Vector3D initialrotationaxis = new Vector3D(.994, -.0745, -.055); double initialrotationangle = 75; AxisAngleRotation3D currentrotation = new AxisAngleRotation3D(initialRotationAxis, initialrotationangle); OrthographicCamera camera.transform = new Transform3DGroup(); ScaleTransform3D scale = new ScaleTransform3D(); Camera.Transform.Childern.Add(scale); Camera.Transform.Childern.Add(new RotateTransform3D(currentRotation); Vector3D axis = Vector3D.CrossProduct(previousPosition3D, currentposition3d); double angle = Vector3D.AngleBetween(previousPosition3D, currentposition3d); Quaternion delta = new Quaternion(axis, -angle); Quaternion q = new Quaternion(currentRotation.Axis, currentrotation.angle); q *= delta; currentrotation.axis = q.axis; currentrotation.angle = q.angle; Figure 4: Camera rotation calculations 7

The 3D RDM Visualization Tool has a zoom mode, controlled by moving the mouse scroll wheel up and down. This zoom simply moves the camera forward and backward by increasing and decreasing the camera s X and Z positions by a small amount. Panning is accomplished using the left, right, up, and down arrow keys. Pressing the up and down arrow keys performs a calculation that increases or decreases the Y (up) value of the camera s position by adding or subtracting the product of the UpDirection vector and a fixed key press amount from the camera s position. This causes the camera to pan up and down. Correspondingly, pressing the left and right arrow keys causes the camera to pan left and right. This movement is performed by computing a right vector, which is calculated as the product of the camera s LookDirection and UpDirection vectors, multiplied by the fixed key press amount. This value is then added or subtracted from the camera s position. Color Scales and Contrast The 3D RDM Visualization Tool has two types of color scales: a user defined color scale and a relative color scale. The user defined color scale allows the user to select a color from the 16.7 million colors available in the RGB color model for each decibel range. Using more than one color on a Range-Doppler Map can be advantageous because individuals can more easily distinguish between the hues of different colors than the shades of a single color (Mersey 1990). Although a different color can be selected for individual decibels in the 3D RDM Visualization Tool, decibel ranges are typically used. The relative color scale programmatically uses either grayscale or different shades of one of the primary colors: red, green, or blue; the user selects their preferred color. Grayscale and the primary colors are used because the entire spectrum of their shades is readily available; it is simply the range from 0 to 255 in the RGB color scale, with 0 representing black and 255 representing either white (in the case of grayscale) or the full primary color. For the relative color scale, the 3D RDM Visualization Tool evenly distributes the Doppler radar decibel range for the selected flight run across the 255 primary color shades to determine the cell colors. Since black is used for the cell color of the lowest decibel value in the run, dark blue (or dark red if blue is the primary color selected) is used for the cell color of any invalid or outlier value. Another feature of the 3D RDM Visualization Tool is the ability for the users to change the color contrast of the cells in the range-doppler maps. A user can accomplish this two ways for each map: using the tool s contrast sliders or by entering a decibel gain/loss. When the relative color scale is in effect, moving a contrast slider to the right decreases the grayscale or primary color value for each cell; moving a slider to the left increase the color value. When a custom color scale is used, moving a slider right moves the cell colors to a lower range and sliding left moves the cell colors to a higher ranges. Thus, the effect of the slider moving right is an overall darkening of the map, with the cooler spots darkening to a higher degree. This intensifies the hot spots on the map (i.e., the target detections). The effect of the slider moving left is a lightening of the map, with the cooler spots lightening to a higher degree. This highlights cooler spots on the map that were not as prominent before the contrast slider was moved. 8

The second method of changing the color contrast is for the user to enter a positive decibel gain value or a negative decibel loss value. Entering a positive gain value has the same effect as moving a color contrast slider to the left (i.e., lightening the map) and entering a negative loss value has the same effect as moving the color contrast slider to the right (i.e., darkening the map). X and Y Axes Display Another important feature of the 3D Range-Doppler Map Visualization Tool is the ability to display the X, Y, and Z axes and scales. In this tool, the X axis represents frequency, the Y axis represents range, and the Z (up) axis represents decibels. The X axis is drawn across the bottom of the 3D map, the Y axis is drawn along the right side, and the Z axis is drawn in alternating color bands from top-to-bottom along the left and back sides. The users can control turning the axes on and off, and when a user rotates the 3D RDM, the axes rotate with the map. In addition, the users can change the scale representation on the X and Z axes. For the X axis, the users can switch between a scale in frequency or speed. The calculation to convert from frequency to speed is as follows: speed (meters per second) = wavelength (meters) * frequency (hertz) For the Z axis, the scale can be displayed in amplitude or decibels. The conversion from amplitude to decibels is as follows: decibels = 20 x log 10(amplitude) The users also have the ability to either hover or click on the 3D rectangles on the range-doppler map to display the range, frequency, and decibel values for that cell. CONCLUSION This paper has demonstrated that using C# and WPF 3D is an excellent option for creating a dynamic 3D Range-Doppler Map Visualization Tool. As opposed to purchasing commercial 3D software, developing a 3D application in C# and WPF can be done quickly for little cost. In addition, WPF 3D Graphics is easier to use and understand than attempting the steep learning curve involved with DirectX, OpenGL, and GPU shaders. Using C# and WPF allowed the author full control to create a lightweight dynamic 3D Range-Doppler Map application with multiple 3D graphics capabilities. REFERENCES Microsoft. (n.d.). 3-D Graphics. MSDN Library: http://msdn.microsoft.com/en-us/library/ms747437(v=vs.110).aspx Microsoft. (n.d.). Optimizing Performance. MSDN Library: 9

http://msdn.microsoft.com/en-us/library/bb613578(v=vs.110).aspx Microsoft (2007, February 27). 3D Tools for the Windows Presentation Foundation http://codeplex.com/wiki/view.aspx?projectname=3dtools Solera, D. (2008, January 31). WPF 3D Primer. Code Project: http://www.codeproject.com/articles/23332/wpf-d-primer Zhang, Jianzhong. (2009, September 7). High Performance WPF 3D Chart. Code Project: http://www.codeproject.com/articles/42174/high-performance-wpf-d-chart Bennett, Joseph. (2015). Quaternions and Rotations. Institute of Technology Carlow: http://cps.itcarlow.ie/~bennettj/notes/chapter4(quaternions).pdf Bryant, B., M. Holiner, R. Kroot, K. Sherman-Morris, W. B. Smylie, L. Stryjewski, M. Thomas, and C. I. Williams, 2014: Usage of color scales on radar maps. J. Operational Meteor., 2 (14), 169-179. 10