ML2VR Providing MATLAB Users an Easy Transition to Virtual Reality and Immersive Interactivity



Similar documents
Equalizer. Parallel OpenGL Application Framework. Stefan Eilemann, Eyescale Software GmbH

Off-line programming of industrial robots using co-located environments

Data Visualization and Exploration via Virtual Reality - An Overview

CS 378: Computer Game Technology

INSTRUCTOR WORKBOOK Quanser Robotics Package for Education for MATLAB /Simulink Users

Echtzeittesten mit MathWorks leicht gemacht Simulink Real-Time Tobias Kuschmider Applikationsingenieur

Getting Started with CodeXL

Software Tools for Virtual Reality Application Development

Practical Data Visualization and Virtual Reality. Virtual Reality VR Software and Programming. Karljohan Lundin Palmerius

Parallel Visualization for GIS Applications

VisIt Visualization Tool

VRSPATIAL: DESIGNING SPATIAL MECHANISMS USING VIRTUAL REALITY

THE FLATWORLD SIMULATION CONTROL ARCHITECTURE (FSCA): A FRAMEWORK FOR SCALABLE IMMERSIVE VISUALIZATION SYSTEMS

Simulink 3D Animation User's Guide

OpenGL & Delphi. Max Kleiner. 1/22

How To Teach Computer Graphics

Silverlight for Windows Embedded Graphics and Rendering Pipeline 1

Low power GPUs a view from the industry. Edvard Sørgård

Approaching VR 2.0: Creating and Sharing Open Source Virtual Environments for Health Care and Research

Faculty of Computer Science Computer Graphics Group. Final Diploma Examination

CMA ROBOTICS ROBOT PROGRAMMING SYSTEMS COMPARISON

An Instructional Aid System for Driving Schools Based on Visual Simulation

Robot Task-Level Programming Language and Simulation

ABSTRACT. Keywords Virtual Reality, Java, JavaBeans, C++, CORBA 1. INTRODUCTION

Visualizing and Analyzing Massive Astronomical Datasets with Partiview

information planning communication art place making Visual Communication Methods

SPANviewer - A Visualization Tool for Advanced Robotics Applications

OPC COMMUNICATION IN REAL TIME

CLOUD GAMING WITH NVIDIA GRID TECHNOLOGIES Franck DIARD, Ph.D., SW Chief Software Architect GDC 2014

DEVELOPMENT OF A COLLABORATIVE DESIGN TOOL FOR STRUCTURAL ANALYSIS IN AN IMMERSIVE VIRTUAL ENVIRONMENT

Web Based 3D Visualization for COMSOL Multiphysics

An Animation Definition Interface Rapid Design of MPEG-4 Compliant Animated Faces and Bodies

ArcGIS Pro. James Tedrick, Esri

Virtual Reality in Chemical Engineering Education

Fundamentals of Computer Graphics

Visual Mining for Big Data

OctaVis: A Simple and Efficient Multi-View Rendering System

Introduction to NaviGenie SDK Client API for Android

3D Engineering Solutions from Iowa State University CTRE. Center for Transportation Research and Education

3D U ser I t er aces and Augmented Reality

Web-Based Enterprise Data Visualization a 3D Approach. Oleg Kachirski, Black and Veatch

Lab 3: Introduction to Data Acquisition Cards

The Most Popular UI/Apps Framework For IVI on Linux

Computer Graphics. Anders Hast

SAM XFile. Trial Installation Guide Linux. Snell OD is in the process of being rebranded SAM XFile

Figure 1. Basic Petri net Elements

EE289 Lab Fall LAB 4. Ambient Noise Reduction. 1 Introduction. 2 Simulation in Matlab Simulink

Parallel Computing with Mathematica UVACSE Short Course

Component visualization methods for large legacy software in C/C++

Computer Graphics in Real World Applications

Introduction. Chapter 1

Virtual Environments - Basics -

Comp 410/510. Computer Graphics Spring Introduction to Graphics Systems

Connecting IGT Device with OpenIGTLink

Separation of Concerns in Component-based Robotics

Getting Started With LP360

Finger Paint: Cross-platform Augmented Reality

Using MATLAB to Measure the Diameter of an Object within an Image

NVIDIA IndeX Enabling Interactive and Scalable Visualization for Large Data Marc Nienhaus, NVIDIA IndeX Engineering Manager and Chief Architect

Data Visualization in Parallel Environment Based on the OpenGL Standard

A Remote Maintenance System with the use of Virtual Reality.

technical notes trimble realworks software

Study on Developing a Flight Data Visualization

Using open source and commercial visualization packages for analysis and visualization of large simulation dataset

Lecture Notes, CEng 477

Visualization Cluster Getting Started

Integration of a Robotic Arm with the Surgical Assistant Workstation Software Framework

Stream Processing on GPUs Using Distributed Multimedia Middleware

Trimble Realworks Software

Ryan P. McMahan Assistant Professor

Graphics Input Primitives. 5. Input Devices Introduction to OpenGL. String Choice/Selection Valuator

WebGL based E-Learning Platform on Computer Graphics

Working with SQL Server Integration Services

Setting up a Local Interconnect Network (LIN) using dspace MicroAutoBox 1401/1501 Simulink Blocks

Beginner s Matlab Tutorial

MATLAB as a Collaboration Platform Marta Wilczkowiak Senior Applications Engineer MathWorks

A Cognitive Approach to Vision for a Mobile Robot

Connecting IGT Device with OpenIGTLink

Data Visualization Study at Earth Simulator Center

Entwicklung und Testen von Robotischen Anwendungen mit MATLAB und Simulink Maximilian Apfelbeck, MathWorks

A Guided User Experience Using Subtle Gaze Direction

Advanced visualization with VisNow platform Case study #3 Vector data visualization

Transcription:

ML2VR Providing MATLAB Users an Easy Transition to Virtual Reality and Immersive Interactivity David J. Zielinski Ryan P. McMahan Wenjie Lu Silvia Ferrari

Motivation: DiVE: Duke Immersive Virtual Environment. 6-Sided CAVE-type Virtual Reality System Benefits of using Virtual Reality Represent models to scale Increased spatial understanding Advanced interaction techniques Collaborative exploration (CAVEtype systems) (Open House Every Thursday 4:30pm)

Motivation:? Engineering Students DiVE

Question: What software do engineers use for simulation and modeling?

Answer: MATLAB "MATLAB is a numerical computing environment and programming language. Developed by MathWorks, MATLAB allows matrix manipulations, plotting of functions and data, and implementation of algorithms." -Wikipedia

Our Goal: MATLAB DiVE

Potential Existing Solutions: Name Features MATLAB Simulink 3D Toolbox Create and modify VRML (Commercial Software Module) scenegraphs. Avizo CalculusMatlab (Commercial Software Module) Chromium (open-source project) Syzygy (open-source framework) Issues Targeted at Desktop display systems. Run MATLAB scripts inside Can't utilize user's existing Avizo to process data. rendering code. Capture and Distributes OpenGL to Render Nodes. No input device abstraction layer. Provides input device and display abstraction layer. No way to obtain MATLAB's graphics.

Potential Existing Solutions: Name Features MATLAB Simulink 3D Toolbox Create and modify VRML (Commercial Software Module) scenegraphs. Avizo CalculusMatlab (Commercial Software Module) Chromium (open-source project) Syzygy (open-source framework) Issues Targeted at Desktop display systems. Run MATLAB scripts inside Can't utilize user's existing Avizo to process data. rendering code. Capture and Distributes OpenGL to Render Nodes. No input device abstraction layer. Provides input device and display abstraction layer. No way to obtain MATLAB's graphics. Our Solution: MATLAB ML2VR Syzygy

Let's see ML2VR in action!

Common VR System Topologies 1 CPU 1 HMD University of Texas at Dallas 1 CPU 4 Projectors University of Indiana 1 CPU 1 Projector Duke University

What is OpenGL? "OpenGL is an API (Application Progamming Interface) for rendering 2D and 3D computer graphics. The API is typically used to interact with a GPU, to achieve hardware-accelerated rendering. OpenGL was developed by Silicon Graphics Inc. in 1992." -Wikipedia MATLAB OpenGL fill3([0 0 0],[1 0 0],[1 0 1], glbegin(gl_triangles) glvertex3f(0,0,0); glvertex3f(1,0,0); glvertex3f(1,0,1); glend(); Screen vertex = corner

What does OpenGL intercept mean? 1. 2. 3. 4. We add our replacement opengl32.dll to the MATLAB directory. At runtime, MATLAB now loads our replacement opengl32.dll When MATLAB calls an opengl function, our function gets called After sending out the data, we pass the data onto the real opengl32.dll function

What does OpenGL intercept mean? 1. 2. 3. 4. We add our replacement opengl32.dll to the MATLAB directory. At runtime, MATLAB now loads our replacement opengl32.dll When MATLAB calls an opengl function, our function gets called After sending out the data, we pass the data onto the real opengl32.dll function MATLAB command cplxmap(...) glvertex3f(...) normal case glvertex3f (...) { // send to GPU }

What does OpenGL intercept mean? 1. 2. 3. 4. We add our replacement opengl32.dll to the MATLAB directory. At runtime, MATLAB now loads our replacement opengl32.dll When MATLAB calls an opengl function, our function gets called After sending out the data, we pass the data onto the real opengl32.dll function MATLAB command cplxmap(...) glvertex3f(...) intercept case normal case glvertex3f (...) { send_szg_glvertex3(...); real_opengl.glvertex3f (...); } glvertex3f (...) { // send to GPU }

System Architecture Challenges Complicated MATLAB simulations may run at low frame rate. Simulator Sickness Our Syzygy content viewer runs at a higher frame rate. Can we utilize this "frame rate mismatch?" Interaction Latency

Detailed System Architecture Graphics content is generated by MATLAB simulation That content is displayed by our Syzygy viewer

Detailed System Timeline MATLAB simulation generates content Syzygy viewer receives a content frame While waiting for new content, Syzygy viewer allows user to view content from different viewpoints (head based rendering). Fast head based rendering = reduced simulation sickness

MATLAB Script vr = vr_interface(serverip,serverport); while 1 [event,btn,pos]=vr.get_button_event(); if event==1 && btn==0 % modify data here end clf; % clear screen surf(datax,datay,dataz); % render surface drawnow; % flush end Minimal additions to access data from VR devices

Programming API vr = vr_interface(serverip,serverport); Parameters: vr.set_return_type(value) vr.set_transform_matrix(value) Events: helps with low frame rate simulations [event, button, pos3]=vr.get_button_event() [event, axis, pos3, val]=vr.get_joystick_event() Polling: [matrix4]=vr.get_sensor_state(sensorid) [val]=vr.get_button_state(buttonid) [val]=vr.get_joystick_state(axisid) Navigation: vr.do_navigation_translate(vec3) vr.do_navigation_rotate(obj, vec3, amount)

Case Study: Robot Path Planning Key: Robot Obstacle Goal Original Desktop Simulation Now in VR! Artificial potential function used to plan the motion of the robot Potential function recalculates the best path to the target while adapting to the dynamic addition and removal of obstacles. We added in ML2VR functions to make the simulation interactive. Wenjie Lu Duke University Silvia Ferrari Duke University G. Zhang, and S. Ferrari, An adaptive artificial potential function approach for geometric sensing, in IEEE Decision and Control, 2009, pp. 7903-7910.

New Features Robot Demo Move the goal Raycasting

New Sci Vis Examples coneplot and streamline (complicated 3D visualization) surf demo with parameter modification with joystick x-axis

Interaction Examples 01_click 02_joystick 03_touch 04_drag_pos3 05_drag_matrix4 06_virtual_hand_pos3 07_virtual_hand_matrix4 08_raycasting 09_sphere_spawner 10_polling 11_navigation

Contributions: Open source cross-platform software system. MATLAB scripts can easily obtain input device data. Decoupled (fast) head based rendering. Successful case study of a desktop to VR conversion. Suite of Interaction programming examples.

March is ML2VR Month! What Where When Friday Forum Talk Duke University March 8th Poster Session @ FIP Symposium Duke University March 10th-11th Poster @ IEEE VR 2013 Orlando, Florida March 16th-23rd Invited Speaker @ Indianapolis, "Immersive Visualization Indiana Bootcamp" March 25th-27th

Future Work Software Robustness More OpenGL primitives Dynamic buffers Line rendering issues Desktop simulator refinement Evaluation What is the benefit of immersive visualization and interaction for MATLAB?

Future Work Robotics Applications Quadcopter Simulation Human-Robot Collaboration Simulation

Future Work MATLAB R Mathematica Front + Back Ends ML2VR Syzygy FreeVR Bill Sherman Indiana University VR Juggler Judy Vance Iowa State University Camille Goudeseune University of Illinois

Future Work More Collaborators Michael "Gus" R. Gustafson Teaches EGR 53L, a Computational Methods in Engineering w/ MATLAB course, that is required for all Pratt (Duke Engineering) first-year students. Ross Tredinnick Living Environments Laboratory (UW Madison CAVE) Regis Kopper New director of the DiVE.

Authors David J. Zielinski Duke University Ryan P. McMahan University of Texas at Dallas Wenjie Lu Duke University Silvia Ferrari Duke University Acknowledgements: Support: National Science Foundation. IGERT Grant No. DGE-1068871. Rachael B. Brady Eric E. Monson Sarah V. Goetz

Thank You! Questions? djzielin@duke.edu http://sourceforge.net/projects/ml2vr/