Robotic Hand-Eye Systems CMPUT 610 Martin Jagersand.

Slides:



Advertisements
Similar presentations
© 2003 Xilinx, Inc. All Rights Reserved Course Wrap Up DSP Design Flow.
Advertisements

Master/Slave Architecture Pattern Source: Pattern-Oriented Software Architecture, Vol. 1, Buschmann, et al.
Extensibility, Safety and Performance in the SPIN Operating System Presented by Allen Kerr.
Reference: Message Passing Fundamentals.
Vision Based Motion Control Martin Jagersand University of Alberta CIRA 2001.
High Availability (HA) May 03, Motivation  New Technology  The opportunity to create a cluster  Exploring with Linux Operating system.
Lecture 1: Intro to Computers Yoni Fridman 6/28/01 6/28/01.
Programming Languages Structure
WEL COME PRAVEEN M JIGAJINNI PGT (Computer Science) MCA, MSc[IT], MTech[IT],MPhil (Comp.Sci), PGDCA, ADCA, Dc. Sc. & Engg.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
Software Architecture – Pipe and Filter Model
An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization.
Client/Server Architectures
Introduction to Parallel Processing 3.1 Basic concepts 3.2 Types and levels of parallelism 3.3 Classification of parallel architecture 3.4 Basic parallel.
Virtualization Concept. Virtualization  Real: it exists, you can see it.  Transparent: it exists, you cannot see it  Virtual: it does not exist, you.
Reference: / Parallel Programming Paradigm Yeni Herdiyeni Dept of Computer Science, IPB.
Lecture 4: Parallel Programming Models. Parallel Programming Models Parallel Programming Models: Data parallelism / Task parallelism Explicit parallelism.
 2008 Pearson Education, Inc. All rights reserved Introduction to Computers, the Internet and World Wide Web.
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
CIS 338: Computer Languages & Visual Basic.NET
CMPUT 301: Lecture 02 Basic concepts of Design and Implementations Lecturer: Martin Jagersand Department of Computing Science University of Alberta Notes.
BIT 1003 – Presentation 7. Contents GENERATIONS OF LANGUAGES COMPILERS AND INTERPRETERS VIRTUAL MACHINES OBJECT-ORIENTED PROGRAMMING SCRIPTING LANGUAGES.
Functional Languages Meet Vision and Robotics: FRP in Action Gregory D. Hager Department of Computer Science Johns Hopkins University John Peterson Yale.
Component-Based Programming with Streams Philip Garcia University of Wisconsin - Madison Johannes Helander Microsoft Research.
Programming Models & Runtime Systems Breakout Report MICS PI Meeting, June 27, 2002.
1.1 Operating System Concepts Introduction What is an Operating System? Mainframe Systems Desktop Systems Multiprocessor Systems Distributed Systems Clustered.
Common Set of Tools for Assimilation of Data COSTA Data Assimilation Summer School, Sibiu, 6 th August 2009 COSTA An Introduction Nils van Velzen
Software Basics. Some Pioneers Charles Babbage Analytical Engine Countess Ada Lovelace First Programmer ? John Von Neumann storing instructions in memory.
OSes: 3. OS Structs 1 Operating Systems v Objectives –summarise OSes from several perspectives Certificate Program in Software Development CSE-TC and CSIM,
Hand-Eye Coordination and Vision-based Interaction / cmput610 Martin Jagersand.
Spatiotemporal Saliency Map of a Video Sequence in FPGA hardware David Boland Acknowledgements: Professor Peter Cheung Mr Yang Liu.
CSCI1600: Embedded and Real Time Software Lecture 6: Modeling I: Continuous Systems Steven Reiss, Fall 2015.
Introduction Why are virtual machines interesting?
By Chi-Chang Chen.  Cluster computing is a technique of linking two or more computers into a network (usually through a local area network) in order.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 4: Threads.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
1 Programming and problem solving in C, Maxima, and Excel.
CIS 234: Object-Oriented Programming with Java
Chapter Goals Describe the application development process and the role of methodologies, models, and tools Compare and contrast programming language generations.
Computer System Structures
Software and Communication Driver, for Multimedia analyzing tools on the CEVA-X Platform. June 2007 Arik Caspi Eyal Gabay.
Topic 2: Hardware and Software
The language focusses on ease of use
Chapter 1: Introduction
Assembler, Compiler, MIPS simulator
Introduction to Computer Science
Why to use the assembly and why we need this course at all?
Chapter 1: Introduction
Chapter 1: Introduction
Parallel Virtual Machine
COSC 350 System Programming
Introduction to Operating System (OS)
Chapter 1: Introduction
Chapter 1: Introduction
University of Technology
Chapter 1: Introduction
CSCI/CMPE 3334 Systems Programming
Developing Applications
Programming Languages
Chapter 1: Introduction
Virtual Machines (Introduction to Virtual Machines)
Language Processors Application Domain – ideas concerning the behavior of a software. Execution Domain – Ideas implemented in Computer System. Semantic.
An Overview of Virtual Machine Architectures
Chapter 1: Introduction
Chapter 1: Introduction
Chapter 1: Introduction
Chapter 1: Introduction
Criteria for rapid prototyping
Lecture Topics: 11/1 Hand back midterms
Chapter 1: Introduction
Presentation transcript:

Robotic Hand-Eye Systems CMPUT 610 Martin Jagersand

What is involved in making real vision-guided motion?

Hand-Eye System

System requirements Solve many very different motion tasks – Flexible, teachable/re-programmable Real time – On special embedded computers or general workstations Different special HW Multiprocessors

Toolbox

System design Interpreted “scripting” language gives flexibility Compiled language needed for speed and HW interface. Examples Matlab Greencard Haskell C, C++, fortran PVM C, C++ Dyn linking (mex)

PVM Parallel Virtual Machine Message passing based distributed systems Implemented for many machine architectures Runs separate (heavyweight) unix processes. Advantage: when can’t link together binaries: – Linux libc5, libc6; IRIX lib32, libn32, lib64 High level process monitoring

Library structure /usr/erskine2/prof/jag/matlabdirs

Ideas: Data flow architecture natural. Higher order functions to go from general to specific motion primitives. Toolbox of primitive motion behaviors.

Usage example: Specialize robot – projandwait(zero3,’robotmovehill’,A3D,’WaitForHill’); Initialize goals and trackers – [TrackCmd3D,N] = InitTrackers([1 1],[0,1]); – PU = GetGoals([1 1],[0,1]); Servo control – J3s = LineMove(‘projandwait’,TrackCmd3D,J3i,PU,Ndi,err)

Fran/Frob motivation: Imperative Software Limits Integration leads to recurring implementation chores – Writing loops to step forward discretely in time – Time slicing time-varying components that operate in parallel Code reuse – Two pieces of code need to do almost the same thing, but not quite What’s correct? – The design doesn’t look at all like the code – Hard to tell if its a bug in the code, or a bug in the design Programs should describe what to do not how to do it

New XVision Programming Model Stream Partitioning Image Filtering Feature Tracking Image Filtering Feature Tracking Image Filtering Feature Tracking Combination Video In Data Out

Programming Dynamical Systems trackMouth v = bestSSD mouthIms (newsrcI v (sizeof mouthIms)) trackLEye v = bestSSD leyeIms (newsrcI v (sizeof leyeIms)) trackREye v = bestSSD reyeIms (newsrcI v (sizeof reyeIms)) trackEyes v = composite2 (split, join) (trackLEye v) (trackREye v) where split = segToOrientedPts --- some geometry join = orientedPtsToSeg --- some more geometry trackClown v = composite2 concat2 (trackEyes v) (trackMouth v)

Summary Most current demos solve one specific movement For solving many everyday tasks we need flexibility and reprogrammability – Interpreted scripting language – Higher order functions What is SwEng anyway?

Bill