Towards a Domain Specific Language for a Scene Graph based Robotic World Model

Size: px
Start display at page:

Download "Towards a Domain Specific Language for a Scene Graph based Robotic World Model"

Transcription

1 Towards a Domain Specific Language for a Scene Graph based Robotic World Model, Herman Bruyninckx Mechanical Engineering, KU Leuven, Belgium mech.kuleuven.be 1

2 Outline Introduction The Robot Scene Graph: RSG The RSG-DSL Conclusion 2

3 DSLs for robotic applications "knowledge" (models + configuration + functions) Task specification Platform capabilities Knowledge base World model offline online Application "processes" (runtime state) perception planning control learning r e a s o n i n g adaptation (Prior) Knowledge Robot, Task,... World Model Algorithms For various domains: planning, perception, control,... Framework for execution and communication 3

4 Existing World Models Control Kinematic chains Geometry Navigation Grids Perception 2D/3D images Features Poses Planning (Triangle) Meshes 4

5 Existing World Models Control Kinematic chains Geometry Navigation Grids Perception 2D/3D images Features Poses Planning (Triangle) Meshes Not well connected yet! 4

6 Shared world model for robot applications perception planning world model control coordination World Model: as shared (distributed) resource with dynamic scene, multi-resolution and uncertainty support 5

7 Shared world model for robot applications perception planning world model control coordination World Model: as shared (distributed) resource with dynamic scene, multi-resolution and uncertainty support Problem: Does not exist yet! Concept DSL 5

8 Contributions M3: Ecore framework M2: Xtext based DSL for a world model M1: Editor via Eclipse toolchain M0: Prior work: C++ implementation (BRICS 3D library), code generation from M2 level 6

9 The Robot Scene Graph: RSG 7

10 RSG: Robot Scene Graph perception scene graph planning control coordination 8

11 RSG: Robot Scene Graph RSG contains: Objects Low level like a point cloud High level scene objects Relations Both organized in a Directed Acyclic Graph (DAG) Example graph Scene with table Cup on table Robot observes cup GeometricNode: table mesh GeometricNode: handle mesh Transform Group: table Transform Group: cup Group: root Transform Group: robot Transform GeometricNode: cylinder 9

12 RSG: Nodes Nodes Unique IDs Attributes GeometricNodes Point Cloud Mesh Box Cylinder Groups Transforms Cache with time stamps 10

13 RSG: Function blocks scene graph function block IN OUT A function block is a generic computation hosted by the world model Consumes a part of the world model and might perform updates or add new data Inputs and outputs are based on (unique) IDs 11

14 RSG: Example ID [1] ID [2] Updates: 1 (name = roi_box_tf) ID [4] Updates: 1 (name = world_to_sensor_tf) ID [7] (name = sceneobjects) ID [946] (name = roi_box ) ID [6] (name = sensor) ID [911] Updates: 4 (name = cluster_tf) (tasktype = sceneobject) ID [952] ID [898] ID [947] (name = point_cloud) ID [948] (name = filtered_point_cloud)... Updates: 1 (name = cluster_tf) (name = cluster_bbox) (shapetype = Box) (tasktype = sceneobject) (tasktype = sceneobject) ID [953] (name = cluster_bbox)) (shapetype = Box) 12

15 The RSG-DSL 13

16 RSG-DSL Overview Primitives: Node types, function blocks Relationships: DAG structure Transformations: Model-to-text (C++) 14

17 DSL Primitives for RSG node types WorldModel Primitive AbstractNodeProperties Attribute primitives name : EString cardinality : EString attributes key : EString value : EString Geometry geometry Node AbstractNode properties child Child Box PointCloud type PointCloudType type : EString sharedptr : EString library : EString root Cylinder GeometricNode Group Transform TimeStamp value : EString HomogeneousTransformationMatrix children children transforms stamp value TransformCache history RigidTransform name : EString 15

18 DSL Primitives for RSG node types WorldModel Primitive AbstractNodeProperties Attribute primitives name : EString cardinality : EString attributes key : EString value : EString Geometry geometry Node AbstractNode properties child Child Box PointCloud type PointCloudType type : EString sharedptr : EString library : EString root Cylinder GeometricNode Group Transform TimeStamp value : EString HomogeneousTransformationMatrix children children transforms stamp value TransformCache history RigidTransform name : EString 15

19 DSL Primitives for RSG node types WorldModel Primitive AbstractNodeProperties Attribute primitives name : EString cardinality : EString attributes key : EString value : EString Geometry geometry Node AbstractNode properties child Child Box PointCloud type PointCloudType type : EString sharedptr : EString library : EString root Cylinder GeometricNode Group Transform TimeStamp value : EString HomogeneousTransformationMatrix children children transforms stamp value TransformCache history RigidTransform name : EString 15

20 DSL Primitives for RSG node types WorldModel Primitive AbstractNodeProperties Attribute primitives name : EString cardinality : EString attributes key : EString value : EString Geometry geometry Node AbstractNode properties child Child Box PointCloud type PointCloudType type : EString sharedptr : EString library : EString root Cylinder GeometricNode Group Transform TimeStamp value : EString HomogeneousTransformationMatrix children children transforms stamp value TransformCache history RigidTransform name : EString 15

21 DSL Primitives for RSG node types WorldModel Primitive AbstractNodeProperties Attribute primitives name : EString cardinality : EString attributes key : EString value : EString Geometry geometry Node AbstractNode properties child Child Box PointCloud type PointCloudType type : EString sharedptr : EString library : EString root Cylinder GeometricNode Group Transform TimeStamp value : EString HomogeneousTransformationMatrix children children transforms stamp value TransformCache history RigidTransform name : EString 15

22 Example scene setup 1 root rootnode // application scene 2 3 Group rootnode { 4 child group1 5 child worldtocamera 6 } 7 8 Group group1 { 9 Attribute ("name ", " scene_objects ") 10 child kitchentable 11 } Transform worldtocamera { 14 Attribute ("name ", " wm_to_sensor_tf ") 15 child sensor 16 transforms { 17 RigidTransform t1 { 18 stamp TimeStamp ( 0.0 s) 19 value HomogeneousTransformationMatrix ( 20 [1.0, 0.0, 0.0, 0.0 m ], 21 [0.0, 1.0, 0.0, 0.0 m ], 22 [0.0, 0.0, 1.0, 1.0 m ], 23 [0.0, 0.0, 0.0, 0.0 ]) 24 } 25 } 26 } 27 Group sensor { 28 Attribute (" name ", " sensor ") 29 } 16

23 Generated code (excerpt) 1 std :: vector <rsg :: Attribute > attributes ; // Instantiation of list of attributes. 2 unsigned int rootnodeid ; // IDs correspond to names in model on M1 level. 3 unsigned int group1id ; 4 unsigned int worldtocameraid ; 5 // [...] 6 7 /* Add group1 as a new node to the scene graph */ 8 attributes. clear (); 9 attributes. push_back ( Attribute ("name ", " scene_objects ")); 10 wm ->scene. addgroup ( rootnodeid, group1id, attributes ); // group1id = output 11 // [...] // -> returns a unique ID /* Add worldtocamera as a new node to the scene graph */ 14 attributes. clear (); 15 attributes. push_back ( Attribute ("name ", " wm_to_sensor_tf ")); 16 brics_3d :: IHomogeneousMatrix44 :: IHomogeneousMatrix44Ptr worldtocamerainitialtf ( 17 new brics_3d :: HomogeneousMatrix44 ( , 0.0, 0.0, , 1.0, 0.0, , 0.0, 1.0, * 1.0, 0.0 * 1.0, 1.0 * 1.0 // Values are scaled to SI unit [m ]. 22 )); wm ->scene. addtransformnode ( rootnodeid, worldtocameraid, attributes, 25 worldtocamerainitialtf, brics_3d :: rsg :: TimeStamp (0.0, Units :: Second ) 26 ); // Value is scaled to SI unit [s ]. 17

24 Resulting scene graph ID [1] ID [2] ID [3] (name = scene_objects) ID [14] T = (0, 0, 1) Updates: 1 (name = wm_to_sensor_tf) ID [15] (name = sensor) ID [71] (name = sensor_point_cloud) 18

25 DSL Primitives for RSG function blocks 19

26 Example function block 1 PointCloudType PointCloudPCL { 2 type "pcl :: PointCloud <PointType >" 3 sharedptr "pcl :: PointCloud <PointType >:: Ptr " 4 library " pcl " 5 } 6 7 PointCloud inputcloud type PointCloudPCL 8 PointCloud planecloud type PointCloudPCL 9 10 GeometricNode pointcloud { 11 Attribute ("name ", " point_cloud ") 12 geometry inputcloud 13 } Group planes { 16 Attribute (" name ", " planes ") 17 child tftoplanecentroid 18 } 1 GeometricNode horizontalplane { 2 Attribute (" name ", " plane ") 3 geometry planecloud 4 } 5 6 FunctionBlock horizontalplanesegmentation { 7 inputstructure pointcloud 8 inputhook sensorpointcloud 9 outputstructure planes 10 outputhook sensor 11 } 20

27 Generated code (excerpt) 1 /* Interface stub for HorizontalPlaneSegmentation function block */ 2 class HorizontalPlaneSegmentation : public rsg :: IFunctionBlock { 3 public : 4 5 /* used input IDs */ 6 unsigned int pointcloudid ; 7 8 /* used output IDs */ 9 unsigned int planesid ; 10 unsigned int cloudcentertoplanecenterid ; 11 unsigned int horizontalplaneid ; HorizontalPlaneSegmentation ( brics_3d :: WorldModel * wmhandle ) : IFunctionBlock ( wmhandle ) {}; 14 virtual ~HorizontalPlaneSegmentation () {}; virtual void configure ( brics_3d :: ParameterSet parameters ){} 17 virtual void execute () {} protected : /* data conventions */ 22 const static unsigned int horizontalplanesegmentationinputhookid = 0; 23 const static unsigned int horizontalplanesegmentationoutputhookid = 1; 21

28 Generated code (excerpt) 1 pcl :: PointCloud <PointType >:: Ptr getinputcloudpointcloud () { 2 pcl :: PointCloud <PointType >:: Ptr inputclouddata (new pcl :: PointCloud < PointType >() ); 3 4 /* Query the world model based on the input id pointcloudid */ 5 brics_3d :: rsg :: TimeStamp resulttimestamp ; 6 brics_3d :: rsg :: Shape :: ShapePtr shape ; 7 wm ->scene. getgeometry ( pointcloudid, shape, resulttimestamp ); 8 9 /* Resolve ( raw ) data type known by model */ 10 brics_3d :: rsg :: PointCloud <pcl :: PointCloud <PointType > >:: PointCloudPtr inputcloudcontainer (new brics_3d :: rsg :: PointCloud <pcl :: PointCloud < PointType > >()); 11 inputcloudcontainer = boost :: dynamic_pointer_cast <brics_3d :: rsg :: PointCloud < pcl :: PointCloud <PointType > > >( shape ); 12 inputclouddata = inputcloudcontainer -> data ; return inputclouddata ; 15 } }; 22

29 Conclusion Robot applications require models for different aspects the world model is one of them Different existing world models for various domains RSG is shared world model RSG-DSL Primitives: Nodes, function blocks Relations: DAG structure Transforms: Model-to-text (C++) Expresses Prior knowledge: scene setups, known objects Interfaces for function blocks Future works Uncertainty, multi resolution support, triggers Composition with other DSLs 23

Scene Graphs. COMP 575/770 Fall 2010

Scene Graphs. COMP 575/770 Fall 2010 Scene Graphs COMP 575/770 Fall 2010 1 Data structures with transforms Representing a drawing ( scene ) List of objects Transform for each object can use minimal primitives: ellipse is transformed circle

More information

Ontologies & Meta meta models at KU Leuven

Ontologies & Meta meta models at KU Leuven Ontologies & Meta meta models at KU Leuven Herman Bruyninckx University of Leuven Eindhoven University of Technology European Robotics Forum, Ljubljana March 23, 2016 1 Meta models for geometry in robotics

More information

Transformation Hierarchies. CS 4620 Lecture 5

Transformation Hierarchies. CS 4620 Lecture 5 Transformation Hierarchies CS 4620 Lecture 5 2013 Steve Marschner 1 Data structures with transforms Representing a drawing ( scene ) List of objects Transform for each object can use minimal primitives:

More information

Game Programming. Bing-Yu Chen National Taiwan University

Game Programming. Bing-Yu Chen National Taiwan University Game Programming Bing-Yu Chen National Taiwan University Character Motion Hierarchical Modeling Character Animation Motion Editing 1 Hierarchical Modeling Connected primitives 2 3D Example: A robot arm

More information

Plane Detection and Segmentation For DARPA Robotics Challange. Jacob H. Palnick

Plane Detection and Segmentation For DARPA Robotics Challange. Jacob H. Palnick Plane Detection and Segmentation For DARPA Robotics Challange A Major Qualifying Project Report submitted to the Faculty of WORCESTER POLYTECHNIC INSTITUTE in partial fulfillment of the requirements for

More information

Dominique Blouin Etienne Borde

Dominique Blouin Etienne Borde Dominique Blouin Etienne Borde dominique.blouin@telecom-paristech.fr etienne.borde@telecom-paristech.fr Institut Mines-Télécom Content Domain specific Languages in a Nutshell Overview of Eclipse Modeling

More information

MODELING AND HIERARCHY

MODELING AND HIERARCHY MODELING AND HIERARCHY Introduction Models are abstractions of the world both of the real world in which we live and of virtual worlds that we create with computers. We are all familiar with mathematical

More information

Exploiting Depth Camera for 3D Spatial Relationship Interpretation

Exploiting Depth Camera for 3D Spatial Relationship Interpretation Exploiting Depth Camera for 3D Spatial Relationship Interpretation Jun Ye Kien A. Hua Data Systems Group, University of Central Florida Mar 1, 2013 Jun Ye and Kien A. Hua (UCF) 3D directional spatial relationships

More information

Collision Detection. Jane Li Assistant Professor Mechanical Engineering & Robotics Engineering

Collision Detection. Jane Li Assistant Professor Mechanical Engineering & Robotics Engineering RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON S RBE 550 Collision Detection Jane Li Assistant Professor Mechanical Engineering & Robotics Engineering http://users.wpi.edu/~zli11 Euler Angle RBE

More information

Dominique Blouin Etienne Borde

Dominique Blouin Etienne Borde Dominique Blouin Etienne Borde SE206: Code Generation Techniques dominique.blouin@telecom-paristech.fr etienne.borde@telecom-paristech.fr Institut Mines-Télécom Content Introduction Domain specific Languages

More information

ArchGenTool: A System-Independent Collaborative Tool for Robotic Architecture Design

ArchGenTool: A System-Independent Collaborative Tool for Robotic Architecture Design ArchGenTool: A System-Independent Collaborative Tool for Robotic Architecture Design Emanuele Ruffaldi (SSSA) I. Kostavelis, D. Giakoumis, D. Tzovaras (CERTH) Overview Problem Statement Existing Solutions

More information

CS283: Robotics Fall 2016: Software

CS283: Robotics Fall 2016: Software CS283: Robotics Fall 2016: Software Sören Schwertfeger / 师泽仁 ShanghaiTech University Mobile Robotics ShanghaiTech University - SIST - 18.09.2016 2 Review Definition Robot: A machine capable of performing

More information

2D/3D Geometric Transformations and Scene Graphs

2D/3D Geometric Transformations and Scene Graphs 2D/3D Geometric Transformations and Scene Graphs Week 4 Acknowledgement: The course slides are adapted from the slides prepared by Steve Marschner of Cornell University 1 A little quick math background

More information

Octrees: Point Cloud Compression and Change Detection using Octrees

Octrees: Point Cloud Compression and Change Detection using Octrees Octrees: Point Cloud Compression and Change Detection using Octrees November 6, 2011 Outline 1. Overview 2. Octree Interface 3. Octree Framework 4. Neighbor Search 5. Application Scenarios 6. Summary -

More information

Introduction to Mobile Robotics Techniques for 3D Mapping

Introduction to Mobile Robotics Techniques for 3D Mapping Introduction to Mobile Robotics Techniques for 3D Mapping Wolfram Burgard, Michael Ruhnke, Bastian Steder 1 Why 3D Representations Robots live in the 3D world. 2D maps have been applied successfully for

More information

INTRODUCTION TO EMF. Creating Model using EMF. Our Domain model used to showcase this use case is as shown below in fig.1

INTRODUCTION TO EMF. Creating Model using EMF. Our Domain model used to showcase this use case is as shown below in fig.1 INTRODUCTION TO EMF Creating Model using EMF This is the basic method of creating the Model instance using EMF (Eclipse Modelling Framework). In this tutorial we are going to explain the following, 1.

More information

Virtual Environments: System Architectures

Virtual Environments: System Architectures Virtual Environments: System Architectures Anthony Steed Simon Julier Department of Computer Science University College London http://www.cs.ucl.ac.uk/teaching/ve Outline Problem Statement Representing

More information

CMU Amazon Picking Challenge

CMU Amazon Picking Challenge CMU Amazon Picking Challenge Team Harp (Human Assistive Robot Picker) Graduate Developers Abhishek Bhatia Alex Brinkman Lekha Walajapet Feroza Naina Rick Shanor Search Based Planning Lab Maxim Likhachev

More information

CS 352: Computer Graphics. Hierarchical Graphics, Modeling, And Animation

CS 352: Computer Graphics. Hierarchical Graphics, Modeling, And Animation CS 352: Computer Graphics Hierarchical Graphics, Modeling, And Animation Chapter 9-2 Overview Modeling Animation Data structures for interactive graphics CSG-tree BSP-tree Quadtrees and Octrees Visibility

More information

An abstract tree stores data that is hierarchically ordered. Operations that may be performed on an abstract tree include:

An abstract tree stores data that is hierarchically ordered. Operations that may be performed on an abstract tree include: 4.2 Abstract Trees Having introduced the tree data structure, we will step back and consider an Abstract Tree that stores a hierarchical ordering. 4.2.1 Description An abstract tree stores data that is

More information

C-style casts Static and Dynamic Casts reinterpret cast const cast PVM. Casts

C-style casts Static and Dynamic Casts reinterpret cast const cast PVM. Casts PVM Casts Casting Casting: explicit type conversion Upcasting: casting to a supertype E.g. cast from Dog to Animal Downcasting: casting to a subtype E.g. cast from Animal to Dog Upcasts are always safe

More information

Active Recognition and Manipulation of Simple Parts Exploiting 3D Information

Active Recognition and Manipulation of Simple Parts Exploiting 3D Information experiment ActReMa Active Recognition and Manipulation of Simple Parts Exploiting 3D Information Experiment Partners: Rheinische Friedrich-Wilhelms-Universität Bonn Metronom Automation GmbH Experiment

More information

Introduction Feature Estimation Keypoint Detection Combining Keypoints and Features. PCL :: Features. Michael Dixon and Radu B.

Introduction Feature Estimation Keypoint Detection Combining Keypoints and Features. PCL :: Features. Michael Dixon and Radu B. PCL :: Features Michael Dixon and Radu B. Rusu July 1, 2011 Outline 1. Introduction 2. Feature Estimation 3. Keypoint Detection 4. Combining Keypoints and Features Introduction In this session, we ll talk

More information

Java2D/Java3D Graphics

Java2D/Java3D Graphics Java2D/Java3D Graphics Sandro Spina Computer Graphics and Simulation Group Computer Science Department University of Malta 1 Abstraction in Software Engineering We shall be looking at how abstraction is

More information

Introduction to PCL: The Point Cloud Library

Introduction to PCL: The Point Cloud Library Introduction to PCL: The Point Cloud Library Basic topics Alberto Pretto Thanks to Radu Bogdan Rusu, Bastian Steder and Jeff Delmerico for some of the slides! Point clouds: a definition A point cloud is

More information

EECE 478. Learning Objectives. Learning Objectives. Rasterization & Scenes. Rasterization. Compositing

EECE 478. Learning Objectives. Learning Objectives. Rasterization & Scenes. Rasterization. Compositing EECE 478 Rasterization & Scenes Rasterization Learning Objectives Be able to describe the complete graphics pipeline. Describe the process of rasterization for triangles and lines. Compositing Manipulate

More information

Introduction to PCL: The Point Cloud Library

Introduction to PCL: The Point Cloud Library Introduction to PCL: The Point Cloud Library 1 - basic topics Alberto Pretto Thanks to Radu Bogdan Rusu, Bastian Steder and Jeff Delmerico for some of the slides! Contact Alberto Pretto, PhD Assistant

More information

CGS 3220 Lecture 17 Subdivision Surfaces

CGS 3220 Lecture 17 Subdivision Surfaces CGS 3220 Lecture 17 Subdivision Surfaces Introduction to Computer Aided Modeling Instructor: Brent Rossen Overview Converting from polygons to subdivision surfaces (sub-d) Modeling with sub-d using polygon

More information

People Pose Detection Koen Buys (KU Leuven)

People Pose Detection Koen Buys (KU Leuven) People Pose Detection Koen Buys (KU Leuven) May 10, 2013 What is this all about What Human pose detection and tracking Human recognition Applications in: Human robot interaction Medical field Entertainment

More information

Spring 2016 :: :: Robot Autonomy :: Team 7 Motion Planning for Autonomous All-Terrain Vehicle

Spring 2016 :: :: Robot Autonomy :: Team 7 Motion Planning for Autonomous All-Terrain Vehicle Spring 2016 :: 16662 :: Robot Autonomy :: Team 7 Motion Planning for Autonomous All-Terrain Vehicle Guan-Horng Liu, Samuel Wang, Shu-Kai Lin, Chris Wang, Tiffany May Advisor : Mr. George Kantor OUTLINE

More information

Computer Graphics Ray Casting. Matthias Teschner

Computer Graphics Ray Casting. Matthias Teschner Computer Graphics Ray Casting Matthias Teschner Outline Context Implicit surfaces Parametric surfaces Combined objects Triangles Axis-aligned boxes Iso-surfaces in grids Summary University of Freiburg

More information

Modern C++ for Computer Vision and Image Processing. Igor Bogoslavskyi

Modern C++ for Computer Vision and Image Processing. Igor Bogoslavskyi Modern C++ for Computer Vision and Image Processing Igor Bogoslavskyi Outline Using pointers Pointers are polymorphic Pointer this Using const with pointers Stack and Heap Memory leaks and dangling pointers

More information

Topics. Ray Tracing II. Intersecting transformed objects. Transforming objects

Topics. Ray Tracing II. Intersecting transformed objects. Transforming objects Topics Ray Tracing II CS 4620 Lecture 16 Transformations in ray tracing Transforming objects Transformation hierarchies Ray tracing acceleration structures Bounding volumes Bounding volume hierarchies

More information

COS Lecture 13 Autonomous Robot Navigation

COS Lecture 13 Autonomous Robot Navigation COS 495 - Lecture 13 Autonomous Robot Navigation Instructor: Chris Clark Semester: Fall 2011 1 Figures courtesy of Siegwart & Nourbakhsh Control Structure Prior Knowledge Operator Commands Localization

More information

Tutorial: Using the UUCS Crowd Simulation Plug-in for Unity

Tutorial: Using the UUCS Crowd Simulation Plug-in for Unity Tutorial: Using the UUCS Crowd Simulation Plug-in for Unity Introduction Version 1.1 - November 15, 2017 Authors: Dionysi Alexandridis, Simon Dirks, Wouter van Toll In this assignment, you will use the

More information

Spatial Data Structures

Spatial Data Structures Spatial Data Structures Hierarchical Bounding Volumes Regular Grids Octrees BSP Trees Constructive Solid Geometry (CSG) [Angel 9.10] Outline Ray tracing review what rays matter? Ray tracing speedup faster

More information

Dynamics in Maya. Gary Monheit Alias Wavefront PHYSICALLY BASED MODELING SH1 SIGGRAPH 97 COURSE NOTES

Dynamics in Maya. Gary Monheit Alias Wavefront PHYSICALLY BASED MODELING SH1 SIGGRAPH 97 COURSE NOTES Dynamics in Maya Gary Monheit Alias Wavefront SH1 Dynamics in Maya Overall Requirements Architecture and Features Animations SH2 Overall Requirements Why Dynamics? Problems with traditional animation techniques

More information

Implementation of 3D Object Recognition Based on Correspondence Grouping Final Report

Implementation of 3D Object Recognition Based on Correspondence Grouping Final Report Implementation of 3D Object Recognition Based on Correspondence Grouping Final Report Jamison Miles, Kevin Sheng, Jeffrey Huang May 15, 2017 Instructor: Jivko Sinapov I. Abstract Currently, the Segbots

More information

Adaptive Point Cloud Rendering

Adaptive Point Cloud Rendering 1 Adaptive Point Cloud Rendering Project Plan Final Group: May13-11 Christopher Jeffers Eric Jensen Joel Rausch Client: Siemens PLM Software Client Contact: Michael Carter Adviser: Simanta Mitra 4/29/13

More information

EDAN30 Photorealistic Computer Graphics. Seminar 2, Bounding Volume Hierarchy. Magnus Andersson, PhD student

EDAN30 Photorealistic Computer Graphics. Seminar 2, Bounding Volume Hierarchy. Magnus Andersson, PhD student EDAN30 Photorealistic Computer Graphics Seminar 2, 2012 Bounding Volume Hierarchy Magnus Andersson, PhD student (magnusa@cs.lth.se) This seminar We want to go from hundreds of triangles to thousands (or

More information

Topics. Ray Tracing II. Transforming objects. Intersecting transformed objects

Topics. Ray Tracing II. Transforming objects. Intersecting transformed objects Topics Ray Tracing II CS 4620 ations in ray tracing ing objects ation hierarchies Ray tracing acceleration structures Bounding volumes Bounding volume hierarchies Uniform spatial subdivision Adaptive spatial

More information

Modeling. Anuj Agrawal Dan Bibyk Joe Pompeani Hans Winterhalter

Modeling. Anuj Agrawal Dan Bibyk Joe Pompeani Hans Winterhalter Modeling Anuj Agrawal Dan Bibyk Joe Pompeani Hans Winterhalter Modeling Joe o Polygon Models o NURBS o Subdivision Surfaces o Locators Hans o Splitting polygons, joining objects, extruding faces o Extrude,

More information

LAUROPE Six Legged Walking Robot for Planetary Exploration participating in the SpaceBot Cup

LAUROPE Six Legged Walking Robot for Planetary Exploration participating in the SpaceBot Cup FZI RESEARCH CENTER FOR INFORMATION TECHNOLOGY LAUROPE Six Legged Walking Robot for Planetary Exploration participating in the SpaceBot Cup ASTRA 2015, ESA/ESTEC, Noordwijk 12. Mai 2015 Outline SpaceBot

More information

Data Representation in Visualisation

Data Representation in Visualisation Data Representation in Visualisation Visualisation Lecture 4 Taku Komura Institute for Perception, Action & Behaviour School of Informatics Taku Komura Data Representation 1 Data Representation We have

More information

Ray Tracing Acceleration. CS 4620 Lecture 20

Ray Tracing Acceleration. CS 4620 Lecture 20 Ray Tracing Acceleration CS 4620 Lecture 20 2013 Steve Marschner 1 Will this be on the exam? or, Prelim 2 syllabus You can expect emphasis on topics related to the assignment (Shaders 1&2) and homework

More information

B-KD Trees for Hardware Accelerated Ray Tracing of Dynamic Scenes

B-KD Trees for Hardware Accelerated Ray Tracing of Dynamic Scenes B-KD rees for Hardware Accelerated Ray racing of Dynamic Scenes Sven Woop Gerd Marmitt Philipp Slusallek Saarland University, Germany Outline Previous Work B-KD ree as new Spatial Index Structure DynR

More information

6.837 Computer Graphics Hierarchical Modeling Wojciech Matusik, MIT EECS Some slides from BarbCutler & Jaakko Lehtinen

6.837 Computer Graphics Hierarchical Modeling Wojciech Matusik, MIT EECS Some slides from BarbCutler & Jaakko Lehtinen 6.837 Computer Graphics Hierarchical Modeling Wojciech Matusik, MIT EECS Some slides from BarbCutler & Jaakko Lehtinen Image courtesy of BrokenSphere on Wikimedia Commons. License: CC-BY-SA. This content

More information

CS4495/6495 Introduction to Computer Vision

CS4495/6495 Introduction to Computer Vision CS4495/6495 Introduction to Computer Vision 9C-L1 3D perception Some slides by Kelsey Hawkins Motivation Why do animals, people & robots need vision? To detect and recognize objects/landmarks Is that a

More information

3D Modeling Course Outline

3D Modeling Course Outline 3D Modeling Course Outline Points Possible Course Hours Course Overview 4 Lab 1: Start the Course Identify computer requirements. Learn how to move through the course. Switch between windows. Lab 2: Set

More information

project in an industrial context

project in an industrial context Anatomy of a domain-specific language project in an industrial context Development and examination of a DSL demonstrator for elevator controllers Software Engineering, Architecture and Platform Technologies

More information

Abstract Classes Interfaces CSCI 201 Principles of Software Development

Abstract Classes Interfaces CSCI 201 Principles of Software Development Abstract Classes Interfaces CSCI 201 Principles of Software Development Jeffrey Miller, Ph.D. jeffrey.miller@usc.edu Abstract Classes Outline USC CSCI 201L Abstract Classes An abstract class is a way for

More information

Abstract Classes Interfaces CSCI 201 Principles of Software Development

Abstract Classes Interfaces CSCI 201 Principles of Software Development Abstract Classes Interfaces CSCI 201 Principles of Software Development Jeffrey Miller, Ph.D. jeffrey.miller@usc.edu Abstract Classes Outline USC CSCI 201L Abstract Classes An abstract class is a way for

More information

John Hsu Nate Koenig ROSCon 2012

John Hsu Nate Koenig ROSCon 2012 John Hsu Nate Koenig ROSCon 2012 Outline What is Gazebo, and why should you use it Overview and architecture Environment modeling Robot modeling Interfaces Getting Help Simulation for Robots Towards accurate

More information

Students will understand 1. That patterns of numbers help when counting. 2. That there are different ways to count (by ones, tens).

Students will understand 1. That patterns of numbers help when counting. 2. That there are different ways to count (by ones, tens). Kindergarten Counting and Cardinality Essential Questions: 1. Why do we use numbers, what are their properties, and how does our number system function? 2. Why do we use estimation and when is it appropriate?

More information

Google SketchUp/Unity Tutorial Basics

Google SketchUp/Unity Tutorial Basics Software used: Google SketchUp Unity Visual Studio Google SketchUp/Unity Tutorial Basics 1) In Google SketchUp, select and delete the man to create a blank scene. 2) Select the Lines tool and draw a square

More information

S7316: Real-Time Robotics Control and Simulation for Deformable Terrain Applications Using the GPU

S7316: Real-Time Robotics Control and Simulation for Deformable Terrain Applications Using the GPU S7316: Real-Time Robotics Control and Simulation for Deformable Terrain Applications Using the GPU Daniel Melanz Copyright 2017 Energid Technology Overview 1. Who are we? 2. What do we do? 3. How do we

More information

With FARO PointSense for Revit. Jörg Braunes Platform Owner Software Chris Palmer Sales Engineer 1

With FARO PointSense for Revit. Jörg Braunes Platform Owner Software Chris Palmer Sales Engineer 1 From Point Clouds to BIM Models With FARO PointSense for Revit Jörg Braunes Platform Owner Software Chris Palmer Sales Engineer 1 Agenda Scan to BIM with Revit PointClouds in Revit Advanced Workflow with

More information

Roswell Independent School District Grade Level Targets Summer 2010

Roswell Independent School District Grade Level Targets Summer 2010 1 NM Standards Children s Progress Core Standards Target: Possesses a working knowledge of the base ten number system, including ones and tens. Q1 Counts, sketches and represents some numbers. Q2 Counts,

More information

Bounding Volume Hierarchies. CS 6965 Fall 2011

Bounding Volume Hierarchies. CS 6965 Fall 2011 Bounding Volume Hierarchies 2 Heightfield 3 C++ Operator? #include int main() { int x = 10; while( x --> 0 ) // x goes to 0 { printf("%d ", x); } } stackoverflow.com/questions/1642028/what-is-the-name-of-this-operator

More information

3D Reconstruction with Tango. Ivan Dryanovski, Google Inc.

3D Reconstruction with Tango. Ivan Dryanovski, Google Inc. 3D Reconstruction with Tango Ivan Dryanovski, Google Inc. Contents Problem statement and motivation The Tango SDK 3D reconstruction - data structures & algorithms Applications Developer tools Problem formulation

More information

Recursive Grammars for Scene Parsing a.k.a. RANSACing Offices

Recursive Grammars for Scene Parsing a.k.a. RANSACing Offices Recursive Grammars for Scene Parsing a.k.a. RANSACing Offices Caspar Anderegg (cja58), CS 12 Bill Best (wpb47), MEng 12 with Abhishek Anand May 15, 2012 Abstract Our goal was to use recursive grammars

More information

CS354 Computer Graphics Character Animation and Skinning

CS354 Computer Graphics Character Animation and Skinning Slide Credit: Don Fussell CS354 Computer Graphics Character Animation and Skinning Qixing Huang April 9th 2018 Instance Transformation Start with a prototype object (a symbol) Each appearance of the object

More information

Tree traversals and binary trees

Tree traversals and binary trees Tree traversals and binary trees Comp Sci 1575 Data Structures Valgrind Execute valgrind followed by any flags you might want, and then your typical way to launch at the command line in Linux. Assuming

More information

Fault Avoidance in Development of Robot Motion-Control Software by Modeling the Computation

Fault Avoidance in Development of Robot Motion-Control Software by Modeling the Computation Fault Avoidance in Development of Robot Motion-Control Software by Modeling the Computation Yury Brodskiy, Robert Wilterdink, Stefano Stramigioli, Jan Broenink SIMPAR2014 Content Introduction Why Modeling

More information

Kindergarten Progress Report Rubric - Mathematics. Counting and Cardinality

Kindergarten Progress Report Rubric - Mathematics. Counting and Cardinality Kindergarten Progress Report Rubric - Mathematics Counting and Cardinality Know number names and the count sequence (K.CC.- K.CC.3) Not yet able to: *Count to 0 by ones; *Count and write numerals 0 0.

More information

You can also export a video of what one of the cameras in the scene was seeing while you were recording your animations.[2]

You can also export a video of what one of the cameras in the scene was seeing while you were recording your animations.[2] Scene Track for Unity User Manual Scene Track Plugin (Beta) The scene track plugin allows you to record live, textured, skinned mesh animation data, transform, rotation and scale animation, event data

More information

Spatial Data Structures

Spatial Data Structures 15-462 Computer Graphics I Lecture 17 Spatial Data Structures Hierarchical Bounding Volumes Regular Grids Octrees BSP Trees Constructive Solid Geometry (CSG) April 1, 2003 [Angel 9.10] Frank Pfenning Carnegie

More information

The Kinematic Chain or Tree can be represented by a graph of links connected though joints between each Link and other links.

The Kinematic Chain or Tree can be represented by a graph of links connected though joints between each Link and other links. Lab 3 URDF and Hydra Robot Models In this Lab we will learn how Unified Robot Description Format (URDF) describes robots and use it to design our own Robot. We will use the Ubuntu Linux editor gedit to

More information

Data Visualization. What is the goal? A generalized environment for manipulation and visualization of multidimensional data

Data Visualization. What is the goal? A generalized environment for manipulation and visualization of multidimensional data Data Visualization NIH-NSF NSF BBSI: Simulation and Computer Visualization of Biological Systems at Multiple Scales Joel R. Stiles, MD, PhD What is real? Examples of some mind-bending optical illusions

More information

ABOUT ME. Gianluca Bardaro, PhD student in Robotics Contacts: Research field: goo.gl/dbwhhc.

ABOUT ME. Gianluca Bardaro, PhD student in Robotics Contacts: Research field: goo.gl/dbwhhc. ABOUT ME Gianluca Bardaro, PhD student in Robotics Contacts: gianluca.bardaro@polimi.it 02 2399 3565 Research field: Formal approach to robot development Robot and robot architecture models Robot simulation

More information

ABOUT ME. Gianluca Bardaro, PhD student in Robotics Contacts: Research field:

ABOUT ME. Gianluca Bardaro, PhD student in Robotics Contacts: Research field: ABOUT ME Gianluca Bardaro, PhD student in Robotics Contacts: gianluca.bardaro@polimi.it 02 2399 3565 Research field: Formal approach to robot development Robot and robot architecture models Robot simulation

More information

CS 465 Program 4: Modeller

CS 465 Program 4: Modeller CS 465 Program 4: Modeller out: 30 October 2004 due: 16 November 2004 1 Introduction In this assignment you will work on a simple 3D modelling system that uses simple primitives and curved surfaces organized

More information

Hierarchical Modeling

Hierarchical Modeling Hierarchical Modeling Geometric Primitives Remember that most graphics APIs have only a few geometric primitives Spheres, cubes, triangles, etc These primitives are instanced in order to apply transforms

More information

Data Visualization. What is the goal? A generalized environment for manipulation and visualization of multidimensional data

Data Visualization. What is the goal? A generalized environment for manipulation and visualization of multidimensional data Data Visualization NIH-NSF NSF BBSI: Simulation and Computer Visualization of Biological Systems at Multiple Scales June 2-4, 2 2004 Joel R. Stiles, MD, PhD What is the goal? A generalized environment

More information

Kindergarten Math: I Can Statements

Kindergarten Math: I Can Statements Kindergarten Math: I Can Statements Processes, Content Statements & Expectations (Disciplinary Knowledge) I Can Student Statements I Can Teacher Statements Counting and Cardinality Known number names and

More information

Spatial Data Structures

Spatial Data Structures 15-462 Computer Graphics I Lecture 17 Spatial Data Structures Hierarchical Bounding Volumes Regular Grids Octrees BSP Trees Constructive Solid Geometry (CSG) March 28, 2002 [Angel 8.9] Frank Pfenning Carnegie

More information

ROS-Industrial Basic Developer s Training Class. Southwest Research Institute

ROS-Industrial Basic Developer s Training Class. Southwest Research Institute ROS-Industrial Basic Developer s Training Class Southwest Research Institute 1 Session 3: Motion Control of Manipulators Southwest Research Institute 2 URDF: Unified Robot Description Format 3 URDF: Overview

More information

Modif Documentation. Refactoring User Guide

Modif Documentation. Refactoring User Guide Modif Documentation - Refactoring User Guide This document explains the steps for using ModifRoundtrip for a Metamodel Refactoring June, 2015 by Paola Vallejo, Jean Philippe Babau Modif Documentation-

More information

Semantizing Complex 3D Scenes using Constrained Attribute Grammars

Semantizing Complex 3D Scenes using Constrained Attribute Grammars Semantizing Complex 3D Scenes using Constrained Attribute Grammars A. Boulch, S. Houllier, R. Marlet and O. Tournaire slight variant of the material presented at SGP 2013 Motivation Semantizing complex

More information

OPENRAVE TUTORIAL. Robot Autonomy Spring 2014

OPENRAVE TUTORIAL. Robot Autonomy Spring 2014 OPENRAVE TUTORIAL Robot Autonomy Spring 2014 OPENRAVE Stands for: Open Robotics Automation Virtual Environment All-in-one Robotics Package Contains: Kinematics (forward, inverse, velocity, etc.) Collision

More information

OSG: MEMORY MANAGEMENT. Class 2

OSG: MEMORY MANAGEMENT. Class 2 OSG: MEMORY MANAGEMENT AND GEOMETRY CLASSES Class 2 MEMORY MANAGEMENT Memory Management Memory Management Memory Management osg::referenced osg::ref_ptr The Referenced Class Main components Protected

More information

Large-Scale. Point Cloud Processing Tutorial. Basic Data Structures

Large-Scale. Point Cloud Processing Tutorial. Basic Data Structures Large-Scale 3D Point Cloud Processing Tutorial 2013 Basic Data Structures The image depicts how our robot Irma3D sees itself in a mirror. The laser looking into itself creates distortions as well as Prof.

More information

W4. Perception & Situation Awareness & Decision making

W4. Perception & Situation Awareness & Decision making W4. Perception & Situation Awareness & Decision making Robot Perception for Dynamic environments: Outline & DP-Grids concept Dynamic Probabilistic Grids Bayesian Occupancy Filter concept Dynamic Probabilistic

More information

Figure 1. A breadth-first traversal.

Figure 1. A breadth-first traversal. 4.3 Tree Traversals Stepping, or iterating, through the entries of a linearly ordered list has only two obvious orders: from front to back or from back to front. There is no obvious traversal of a general

More information

Are you looking for ultrafast and extremely precise stereovision technology for industrial applications? Learn about

Are you looking for ultrafast and extremely precise stereovision technology for industrial applications? Learn about Edition November 2017 Image sensors and vision systems, Smart Industries, imec.engineering Are you looking for ultrafast and extremely precise stereovision technology for industrial applications? Learn

More information

Kinematics of the Stewart Platform (Reality Check 1: page 67)

Kinematics of the Stewart Platform (Reality Check 1: page 67) MATH 5: Computer Project # - Due on September 7, Kinematics of the Stewart Platform (Reality Check : page 7) A Stewart platform consists of six variable length struts, or prismatic joints, supporting a

More information

Object-oriented programming. and data-structures CS/ENGRD 2110 SUMMER 2018

Object-oriented programming. and data-structures CS/ENGRD 2110 SUMMER 2018 Object-oriented programming 1 and data-structures CS/ENGRD 2110 SUMMER 2018 Lecture 4: OO Principles - Polymorphism http://courses.cs.cornell.edu/cs2110/2018su Lecture 3 Recap 2 Good design principles.

More information

Automatic Contact Surface Detection

Automatic Contact Surface Detection Automatic Contact Surface Detection Will Pryor Worcester Polytechnic Institute Email: jwpryor@wpi.edu Abstract Motion planners for humanoid robots search the space of all possible contacts the robot can

More information

Grade 8 Mathematics Item Specifications Florida Standards Assessments

Grade 8 Mathematics Item Specifications Florida Standards Assessments MAFS.8.G.1 Understand congruence and similarity using physical models, transparencies, or geometry software. MAFS.8.G.1.2 Understand that a two-dimensional figure is congruent to another if the second

More information

Intern Presentation:

Intern Presentation: : Gripper Stereo and Assisted Teleoperation Stanford University December 13, 2010 Outline 1. Introduction 2. Hardware 3. Research 4. Packages 5. Conclusion Introduction Hardware Research Packages Conclusion

More information

Modeling Objects. Modeling. Symbol-Instance Table. Instance Transformation. Each appearance of the object in the model is an instance

Modeling Objects. Modeling. Symbol-Instance Table. Instance Transformation. Each appearance of the object in the model is an instance Modeling Objects Modeling Hierarchical Transformations Hierarchical Models Scene Graphs A prototype has a default size, position, and orientation You need to perform modeling transformations to position

More information

Robotics Programming Laboratory

Robotics Programming Laboratory Chair of Software Engineering Robotics Programming Laboratory Bertrand Meyer Jiwon Shin Lecture 8: Robot Perception Perception http://pascallin.ecs.soton.ac.uk/challenges/voc/databases.html#caltech car

More information

Investigations in Number, Data, and Space for the Common Core 2012

Investigations in Number, Data, and Space for the Common Core 2012 A Correlation of Investigations in Number, Data, and Space for the Common Core 2012 to the Common Core State s with California Additions s Map Kindergarten Mathematics Common Core State s with California

More information

Introducing Autodesk Maya Chapter 2: Jumping in Headfirst, with Both Feet!

Introducing Autodesk Maya Chapter 2: Jumping in Headfirst, with Both Feet! Introducing Autodesk Maya 2015 Chapter 2: Jumping in Headfirst, with Both Feet! Maya topics covered in this chapter include the following: Introducing the UI Maya project structure Creating and animating

More information

L1 - Introduction. Contents. Introduction of CAD/CAM system Components of CAD/CAM systems Basic concepts of graphics programming

L1 - Introduction. Contents. Introduction of CAD/CAM system Components of CAD/CAM systems Basic concepts of graphics programming L1 - Introduction Contents Introduction of CAD/CAM system Components of CAD/CAM systems Basic concepts of graphics programming 1 Definitions Computer-Aided Design (CAD) The technology concerned with the

More information

LUCON. Data Flow Control for Message-Based IoT Systems. Julian Schütte, Gerd Brost. Fraunhofer AISEC, Germany

LUCON. Data Flow Control for Message-Based IoT Systems. Julian Schütte, Gerd Brost. Fraunhofer AISEC, Germany LUCON Data Flow Control for Message-Based IoT Systems Julian Schütte, Gerd Brost Fraunhofer AISEC, Germany TrustCom 2018, New York, 1st of August, 2018 Outline 1 Message-based IoT Architectures 2 Approach

More information

EE-565-Lab2. Dr. Ahmad Kamal Nasir

EE-565-Lab2. Dr. Ahmad Kamal Nasir EE-565-Lab2 Introduction to Simulation Environment Dr. Ahmad Kamal Nasir 29.01.2016 Dr. -Ing. Ahmad Kamal Nasir 1 Today s Objectives Introduction to Gazebo Building a robot model in Gazebo Populating robot

More information

DETECTION AND ROBUST ESTIMATION OF CYLINDER FEATURES IN POINT CLOUDS INTRODUCTION

DETECTION AND ROBUST ESTIMATION OF CYLINDER FEATURES IN POINT CLOUDS INTRODUCTION DETECTION AND ROBUST ESTIMATION OF CYLINDER FEATURES IN POINT CLOUDS Yun-Ting Su James Bethel Geomatics Engineering School of Civil Engineering Purdue University 550 Stadium Mall Drive, West Lafayette,

More information

CS 395T Numerical Optimization for Graphics and AI (3D Vision) Qixing Huang August 29 th 2018

CS 395T Numerical Optimization for Graphics and AI (3D Vision) Qixing Huang August 29 th 2018 CS 395T Numerical Optimization for Graphics and AI (3D Vision) Qixing Huang August 29 th 2018 3D Vision Understanding geometric relations between images and the 3D world between images Obtaining 3D information

More information

CPSC / Sonny Chan - University of Calgary. Collision Detection II

CPSC / Sonny Chan - University of Calgary. Collision Detection II CPSC 599.86 / 601.86 Sonny Chan - University of Calgary Collision Detection II Outline Broad phase collision detection: - Problem definition and motivation - Bounding volume hierarchies - Spatial partitioning

More information