15
Robotic Hand-Eye Systems CMPUT 610 Martin Jagersand

Robotic Hand-Eye Systems

  • Upload
    gaia

  • View
    39

  • Download
    0

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Page 1: Robotic Hand-Eye Systems

Robotic Hand-Eye Systems

CMPUT 610

Martin Jagersand

Page 2: Robotic Hand-Eye Systems

What is involved in making real vision-guided motion?

Page 3: Robotic Hand-Eye Systems

Hand-EyeSystem

Page 4: Robotic Hand-Eye Systems

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

Page 5: Robotic Hand-Eye Systems

Toolbox

Page 6: Robotic Hand-Eye Systems

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)

Page 7: Robotic Hand-Eye Systems

PVMParallel 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

Page 8: Robotic Hand-Eye Systems

Library structure

/usr/erskine2/prof/jag/matlabdirs

Page 9: Robotic Hand-Eye Systems

Ideas:

Data flow architecture natural. Higher order functions to go from general to

specific motion primitives. Toolbox of primitive motion behaviors.

Page 10: Robotic Hand-Eye Systems

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)

Page 11: Robotic Hand-Eye Systems

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

Page 12: Robotic Hand-Eye Systems

New XVision Programming Model

StreamPartitioning

ImageFiltering

FeatureTracking

ImageFiltering

FeatureTracking

ImageFiltering

FeatureTracking Combination

Video In

Data Out

Page 13: Robotic Hand-Eye Systems

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 geometrytrackClown v = composite2 concat2 (trackEyes v) (trackMouth v)

Page 14: Robotic Hand-Eye Systems

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?

Page 15: Robotic Hand-Eye Systems

Bill