Dspace: Real-time 3D Visualization System For Spacecraft .

3y ago
20 Views
2 Downloads
1.90 MB
9 Pages
Last View : 29d ago
Last Download : 3m ago
Upload by : Anton Mixon
Transcription

SMC-IT #19Dspace: Real-time 3D Visualization System forSpacecraft Dynamics SimulationMarc I. Pomerantz, Abhinandan Jain, Steven MyintJet Propulsion Laboratory, California Institute of Technology4800 Oak Grove Drive, Pasadena, CA 91109Marc.I.Pomerantz@jpl.nasa.govAbstract—The multi-mission Dshell simulation frameworkhas formed the basis for high-performance, physics-basedsimulations for a large variety of space mission simulationsincluding cruise and orbiter spacecraft, Entry, Descent, Landing(EDL) missions as well as for planetary surface rovers. TheDspace interactive, reusable 3D visualization system has beendeveloped to support the diverse visualization needs of suchcomplex real-time simulationsI.INTRODUCTIONThe Dshell [1] physics-based simulation frameworkhas been used to develop simulations in support of a varietyof NASA space mission domains and is the basis for highperformance, reconfigurable, simulation software.The Dspace 3D visualization system has been developedto support the Dshell simulation software suite as a runtime configurable solution designed to: provide accuratesimulation visualization; minimize simulation developmenttime and costs; meet the real-time simulation performancespeeds; support graphics related computations for relevantsimulation models. Close interaction between a simulationand visualization is important to maintain visual accuracy.Dspace supports this close interaction by providing an APIthat allows users to continuously update object position andorientation and to display: planetary bodies at their correctpositions; object trails and shadows; simulation generatedengineering data such as vehicle telemetry or false colorterrain height or normal maps; goal or vehicle tilt markers.While using many of the software concepts andtechniques commonly used in third-party visualizationsoftware applications or libraries such as Blender [2], Ogre[3] and Coin3D [4], Dspace provides value-addedcapabilities for organizing viewports and scene graphelements such as geometry, lighting and cameras, which isessential when performing Selective Rendering as describedbelow. Additionally, Dspace supports real-time, highperformance, graphics processing unit (GPU) basedrendering of very large terrain data sets, vehicle shadows andwheel tracks, visualization based engineering analysis andrendering synthetic imagery for camera modeling, and aneasy to use API that allows simulation developers toconstruct custom, reusable, visualizations while ensuringkinematic accuracy between simulation and visualization.Supported Dspace visualization domains include:spacecraft trajectory visualization containing planetarybodies, star maps and spacecraft; user defined rover vehiclevisualizations on high-resolution, real terrain with wheeltracks, shadows and multiple vehicle cameras such asROAMS [5]; Entry, Decent and Landing visualizationsdepicting from-orbit to landing simulations with variousmission events including heat shield separation, parachutedeployment, thruster firing and landing such as DSENDS[6];rover vehicles in an urban setting including buildings, streetsand other vehicles; visualization of Command and Controlsimulations that include orbital communication assets andtheatre-level maps and information gathering assets.Dspace contains a rich feature set that includes: syntheticcamera modeling, high-performance terrain visualization,real-time shadows and vehicle wheel tracks, the accuraterepresentation of spacecraft vehicle kinematics, multiplescene viewpoints, image-based horizon detection and line ofsight modeling, and an object-oriented open architecturedeveloped in C and Python [7].This paper will discuss Dspace’s requirements anddesign, application interface, and integration with theDshell simulation architecture along details of its variousfeatures and extensions.II.REQUIREMENTS AND SOFTWARE DESIGNA. RequirementsDshell has been designed as a multi-mission physicsbased simulation framework to support space systemsimulation needs across multiple domains including cruisevehicles, Entry, Descent and Landing, planetary rovers,aerobots and orbiting spacecraft. Based on these broadsimulation needs, we identified a core set of visualization

SMC-IT #19and 3D graphics needs to support such high-fidelitysimulations. To reduce simulation cost and developmenttime, we adopted a multi-mission, data-driven, run-timeconfigurable system design that requires no changes tovisualization source code from one simulation to another.Additional capabilities such as 30 frame per secondrendering performance, realistic terrain rendering, syntheticimage synthesis for vehicle camera modeling, real timevehicle shadows and wheel tracks (as shown in Fig. 1),managing physical objects such as terrain and vehicles andartificial objects such as goal markers, waypoints markers orcoordinate axes were included in the requirements set.Because 3D visualization is computationally expensive, isualization computation load across multiplecores by running in a client/server mode either on oneworkstation or across multiple workstations. If the user sodesires, Dspace can also be used as a linked, run-time libraryin which the simulation and Dspace run as a single process.Figure 1. Dspace rendering with articulated vehicle, real-time shadowsand wheel tracks.B. Software DesignDspace has been designed as an object-oriented, openarchitecture, scene graph-based system. Originally built ontop of the SGI OpenInventor [8] library, Dspace now usesthe Coin3D library and OpenGL [9], Dspace’s core classesmanage viewports, cameras, scene graph fragments, graphicsobjects (geometry, textures, transformations, etc.), referenceframes and scene vantage information and are typicallyderived from Coin3D base classes. An ancillary library,DspaceTerrain has been developed to manage and renderterrain and planetary body data. Fig. 2 depicts the Dspacesoftware organization.Dspace contains a core set of classes for creating,organizing, managing and displaying scene graphs.Viewports provide scene graph traversal and renderingmechanism, along with event handling such as mouse orkeyboard interaction; GraphicsObjects import scene graphsas contained in the Virtual Reality Modeling Language(VRML) disk files [10] and provide routines for changingscene graph states, such as visibility and material properties;Figure 2. Dspace software modules.SceneFragments contain a collection of scene graphs asprovided by multiple GraphicsObjects and can be used tosegregate physical from ornamental scene graphs;SceneFragmentManagers combine multiple SceneFragmentsand provides routines for managing lighting to ensure thatlight objects are placed at the top of the scene graphhierarchy for complete scene graph illumination;SceneVantages each combine a SceneFragmentManagerwith one or more Camera instances, providing a view orvantage of the scene at render time.Multiple Viewport instances are supported, each with aunique Camera instance as provided by the Viewport’scontained SceneVantage, and can either share scene graphsor can contain unique scene graph information. The sharingof scene graphs allow multiple Viewports to display differentviews of the same scene.In addition, Dspace supports a notion of selectiverendering, where users can group GraphicsObjects based ontype or other specified taxonomy. SceneFragments serve asthe container class for specific groups and when requiredduring rendering, individual SceneFragments can be“hidden” which cause their contained GraphicsObjects not tobe rendered.For example, when performing cameramodeling, Viewports representing the left and right stereocamera views display identical scene graph information, butonly render GraphicsObjects that represent real-worldphysical objects, while a third Viewport might display aglobal view of the scene, including physical GraphicsObjectsdepicting terrain and vehicles and ornamentalGraphicsObjects representing goal markers or coordinateaxes.1) GraphicsObjectEach set of geometric primitives, such as triangles,points, lines or text, to be displayed by Dspace, must residein a scene graph contained in a GraphicsObject (see below).These scene graph elements are typically imported VRMLfiles, but can be made up of primitives, created at runtime,such as cones, spheres, cubes, transformations, materials,textures or other supported Coin3D nodes.

SMC-IT #19The GraphicsObject class imports scene geometry inVRML format, supports multiple levels-of-detail on a perGraphics Object basis and is used to represent both physicalobjects (vehicles/terrain/planetary bodies) and ornamentalobjects (goal markers, coordinate axes, 3D text).An individual GraphicsObject’s scene graph fragment iscombined with other GraphicsObject’s scene graphfragments in the SceneFragment to form a single morecomplex scene graph. A GraphicsObject instance must beadded to a SceneFragment instance in order to be processedduring scene graph render traversals.The GraphicsObject class is also the base class for anyuser written, specialized class that requires scene graphtraversal at render time.The DspaceTerrain libraryspecializes this class for rendering terrain geometry.2) SceneFragmentIndividual scene graph fragments, contained inGraphicsObject instances, are collected by theSceneFragment class and can be organized based on type orgroup information. Physical and ornamental GraphicsObectscan be segregated for controlled display during syntheticcamera imaging or traversal planning. For example, whengenerating synthetic camera imagery, SceneFragmentscontaining ornamental GraphicsObjects can be directed to“hide” themselves during rendering, thereby causing finalrender images to contain only physical objects such as terrainor rovers.Through the use of this mechanism,SceneFragments can be shown or hidden as directed by thesimulation as a way to selectively render collections ofGraphicsObjects at render time.3) SceneFragmentManagerPrior to the rendering cycle traversal, scene graphs arecollected into a more complex scene graph and contained inthe SceneFragment. Multiple SceneFragments are thenpassed to the SceneFragmentManager, which makes thecontained scene graph available to the SceneVantage alongwith functions for SceneFragment management such as theaddition of new SceneFragments and the deletion ofcontained SceneFragments.4) SceneVantageSceneFragmentManagers contain scene graph fragmentsand Viewports manage scene graph traversal at render time,but something must connect the scene graph to the Viewport.This connecting code resides in the SceneVantage class. TheSceneVantage class contains a scene graph as provided by aSceneFragmentManager (the “Scene”) and a camera or set ofcameras (the “Vantage”). When directed by the Viewport atrender time, the SceneVantage instances traverse their entirecontained scene graphs and viewing the scene geometryusing the selected Camera. Fig. 3 shows how multipleSceneFragments and SceneFragmentManagers are utilizedby one or more viewports.Figure 3. GraphicsObjects, SceneFragmentManagers and Viewportorganization allow segregated rendering.SceneVantage instances can contain multiple Camerasbut only one selected Camera may be active at any giventime. Scene graph traversal is typical for a retained moderenderer, but if shadows are activated, a two pass renderingprocess based on the Z-buffer shadowing [11] algorithm isperformed, with final shadow determination performed in afragment shader.5) FramesFrame classes provide the backbone or skeletal systemfor the entire scene graph and provide a mechanism forarticulating the components of multi-body objects, such asroving vehicles.Frame instances provide four important functions atruntime. First, Frames provide an attachment point forgeometry as shown in Fig. 4. For example, a rover chassisframe may have the geometry for the chassis, solar andcamera mast all attached. Second, Frames can be attached toother Frames, thereby forming the parent-child hierarchicalscene graph. Third, transformation information as receivedfrom the Dshell simulation is stored in Frame instances.When transformations are applied to a Frame, all attachedgeometry are translated, rotated or scaled accordingly.Fourth, when specified as Physical or Ornamental, attachedGraphicsObjects with their contained geometry are providedto the appropriate SceneFragment by the Frame, therebysegregating physical from ornamental objects at render time.This is important when performing selective rendering, asdiscussed later and shown in Fig. 7, for synthetic camera

SMC-IT #19III.DSHELL SIMULATION-DSPACE INTEGRATIONDuring a Dshell simulation run, the initializationprocess is responsible for registering simulation objects withDspace in the correct scene graph hierarchy. Dshell doesthis by directing Dspace to create Dspace Frame instances,which in essence are proxy classes for Dshell ’s ownFrame instances. Every Dshell simulation object, fromplanetary bodies to individual parts of a multi-body system,such as a spacecraft or roving vehicle, contain a Dshell Frame.A. Synchronizing the simulation and the visualizationFigure 4. Dspace frames provide scene graph backbone.imagery where only physical objects (terrain, vehicles,planets) are to be rendered.6) penGL cameras: Perspective, Orthographic andFrustum. These cameras can be arbitrarily placed andoriented under user control, either through mouse interaction,or through simulation control via the Dspace API. TypicalOpenGL camera operations are supported such as position,orientation, frustum settings and clipping plane values. TheDspace camera classes are derived from the Coin3D baseclasses and provide convenience routines for positioning andpointing cameras when following designated simulationobjects. This mechanism is used to provide “chase” views ofspacecraft or rover vehicles.7) ViewportsThe Dspace Viewport class is a container for a singleScene Vantage instance and also provides routines used forperforming scene graph traversal and rendering, userinteraction and event handling (mouse or keyboard),interaction with the native windowing system (typicallyX11) and displaying the final rendered 3D scene imagesalong with any simulation provided tabular engineeringinformation. Users can create, resize, hide and placeViewports, control camera position and pointing and select3D scene items via mouse interaction. Dspace allows usersto create an arbitrary number of Viewports, only limited byworkstation resources.As simulation object status is updated during simulationexecution, Dspace’s scene must be updated accordingly. TheDshell simulation manages this efficiently at run-timeusing watch handlers that trigger only when the state of asimulation object changes. For articulated rover vehiclesimulations, joint motions for vehicle components, such assuspension systems or camera mast parts, trigger simulationcallbacks that send frame information (position andorientation) to the corresponding Dspace Frame. UpdatingDspace Frame information happens continuously in real timeand keeps the Dspace visualization state in sync with thesimulation state at all times while minimizing the amount ofupdate traffic flowing from the simulation to Dspace.B. Kinematic AccuracyBecause users rely significantly on the Dspacevisualization to interpret the simulation state, it is essentialthat the visualization model correspond accurately to thesimulation model geometry and kinematics.Keeping graphics models consistent with simulationmodels can be a challenging and expensive proposition asthe vehicle structure and design evolves, especially duringthe early phases of projects. The described one-to-onecorrespondence between Dshell Frames and Dspace proxyFrames mitigates this potential problem. This approachessentially consists of Dshell auto-generating a skeletonscene graph that is derived from, and faithful to theunderlying physical model within the simulation. The 3Dparts geometry of the vehicle, such as wheels, masts, arms,etc., are attached to this skeleton to ensure that the simulationand visualization models maintain close correspondence toeach other. In this way, Dshell essentially directs Dspaceto construct the 3D geometry of the scene based on accuratesimulation data each time that the simulation and Dspace runas in Fig. 5. If a vehicle component, specification orcharacteristic changes from run to run, only simulationchanges are needed, no changes to Dspace are required.

SMC-IT #19terrain, inertial and body fixed coordinates are returnedthat can be used by the Dshell simulation to set vehiclegoal information or vehicle placement.1) Rich User APIFigure 5. Dshell to Dspace Frame connections ensure kinematicaccuracy.IV.When running in single process (local) mode, withDspace linked as a library, all of Dspace’s provided coreclasses, as described above, can be invoked via C orPython. We use SWIG [14] to generate the Python to C interface classes.When running in distributed (server) mode, with Dspaceexecuting as a separate process from the simulation, weprovide Python proxy classes for the core Dspace classes.The Python proxy classes send Python commands to Dspacevia Python sockets. Because Dspace is a library of Pythonwrapped C classes, the user is free to create a Dspaceapplication using either a C main routine or a Pythonscript. When running as a Python application, users canaccess Dspace class instances and invoke class memberfunctions.When running in either local or server modes, users cancustom-craft the look and feel of their Dspace visualization.DSPACE FEATURE SETA. High Performance RenderingTo support the increasing complexity of space missionsimulations, Dspace combines fixed functionality OpenGLwith OpenGL Shading Language [12] (GLSL) shader codeto perform rendering operations that would be prohibitivelyslow with fixed functionality OpenGL alone. GLSL shadercode essentially re-programs the graphics processing unit(GPU), on the workstation’s graphics card, to performcustom operations that may not be supported using fixedfunctionality OpenGL, and executes that shader codeconcurrently on the GPU’s multiple processing cores. Asdescribed above, vehicle shadows, performed in a two passrendering process and computed in a fragment shader can berendered, while maintaining 30 fps frame rates. Fig. 6shows a Dspace rendering with rover shadows. Vehiclewheel tracks, terrain characteristic information such as heightand normal maps, multi-texturing and the use of the Perlin[13] noise algorithm to enhance terrain realism are alsoperformed in OpenGL Shading Language vertex andfragment shaders.B. User InteractionUsers can interact with the Dspace rendered scene andcan modify camera viewpoint information via mouseinteraction. In addition, Dspace can be used to acquire dataabout the 3D scene. For example, by picking a point on theFigure 6. Rover camera view with real-time shadows2) Selective RenderingRendered scenes typically contain "real" simulationobjects together with additional "annotation" objects that canhelp the user interpret the state of the simulation. TheDspace framework provides ways to arbitrarily organize andgroup simulation objects by such properties to allow runtime selection of the visualization content by selectiverendering of the groups. An important use case for selectiverendering is that of rover camera modeling as describedabove, where only physical-based objects such as terrain,planetary bodies or rover components, should be seen in the

SMC-IT #19final rendered image, and ornamental objects such as goalmarkers, viewing frustum pyramids or coordinate axes are tobe excluded. Fig 7 depicts a typical scene graph backbonecreated through the use of Frame instances, with each Frameinstance referencing attached geometry, with the attachedgeometry assigned to either physical or ornamentalS

visualization source code from one simulation to another. Additional capabilities such as 30 frame per second rendering performance, realistic terrain rendering, synthetic image synthesis for vehicle camera modeling, real time vehicle shadows and wheel tracks (as shown in Fig. 1), managing physical objects such as terrain and vehicles and

Related Documents:

Interface in Simulink Azad Ghaffari San Diego State University Department of ECE San Diego CA 92182-1309 12/20/2012 This document provides a tutorial introduction to the dSPACE software (ControlDesk Next Generation version 4.2.1), the dSPACE DS1104 R&D controller board, and their use

to summarize documents and then uses several visualization techniques to explain the summarization results. Time-based data visualization for visual analytics often takes the name "river" for the stream visualization technique. EvoRiver[17], a time-based visualization, allows users to ex-plore coopetition-related interactions and to detect dynami-

1.1 Hard Real Time vs. Soft Real Time Hard real time systems and soft real time systems are both used in industry for different tasks [15]. The primary difference between hard real time systems and soft real time systems is that their consequences of missing a deadline dif-fer from each other. For instance, performance (e.g. stability) of a hard real time system such as an avionic control .

Types of Data Visualization Scientific Visualization – –Structural Data – Seismic, Medical, . Information Visualization –No inherent structure – News, stock market, top grossing movies, facebook connections Visual Analytics –Use visualization to understand and synthesize large amounts of multimodal data – File Size: 2MBPage Count: 28

1980s with the studies on scientific visualization applied to fluid dynamics, volume visualization, molecular modeling, imaging remote-sensing data, and medical imaging12. Some more recent areas, such as information visualization, mobile visualization, locatio

of thin-shell structures for visualization of the analysis data on their stress-strain state (SSS). Based on this mathematical model, a visualization module for shell SSS visualization using VR and AR technologies was developed. The interactive visualization environment Uni

discussing the challenges of big data visualization, and analyzing technology progress in big data visualization. In this study, authors first searched for papers that are related to data visualization and were published in recent years through the university library system. At this stage, authors mainly summarized traditional data visualization

Asset Management is the generic process that seeks to ensure that land and buildings, as the asset base of an organisation, are structured in the best corporate interests of the organisation concerned. The strategic plan refers to land and buildings only. It aligns the asset base with the organisation’s corporate goals and objectives and responds to all functional and service delivery .