28
ERC Center for Computer Integrated Surgical Systems & Technology 1 A Review of Two Robot Control Language Papers to Define our Scope Presented by: Andy LaMora IRE Literature Review 600.446 The Johns Hopkins University April 1, 2004

ERC Center for Computer Integrated Surgical Systems & Technology1 A Review of Two Robot Control Language Papers to Define our Scope Presented by: Andy

Embed Size (px)

Citation preview

ERC Center for Computer Integrated Surgical Systems & Technology 1

A Review of Two Robot Control Language Papers to Define our Scope

Presented by:

Andy LaMora

IRE Literature Review

600.446

The Johns Hopkins University

April 1, 2004

ERC Center for Computer Integrated Surgical Systems & Technology 2

Brief Reminder: IRE

C++ Robot Control Library C++ Numerical Library C++ Vector/Matrix Libraries

MFC Windows Application

(Including Edit boxes, Dialog

boxes, buttons, etc)

How a typical ERC/CISST robot application may appear today…

No scripting!

No Command Line Interaction!

ERC Center for Computer Integrated Surgical Systems & Technology 3

Brief Reminder: IRE

C++ Robot Control Library C++ Numerical Library C++ Vector/Matrix Libraries

MFC Windows Application

(Including Edit boxes, Dialog

boxes, buttons, etc)

…and how it would appear with IREWe can script whole programs!

We can interact with running MFC applications at the command line!

And we might be able to do other things too.

SWIG Class Wrapper

Python Workspace

SWIG Class Wrapper

SWIG Class Wrapper

Object

Registry

ERC Center for Computer Integrated Surgical Systems & Technology 4

Pursuing the Literature

Goal: to address Architecture issues

(distinct from implementation):

- Define our role in the world- Understand our scope with respect to other approaches- Identify opportunities afforded by our loosely coupled architecture (AI abstraction?)

Selected papers demonstrate successful implementations of layered languages built with different design priorities:

- 1: “AML/X: A Programming Language for Design and Manufacturing”

- 2: “Python Robotics: An Environment for Exploring Robotics Beyond LEGOs”

ERC Center for Computer Integrated Surgical Systems & Technology 5

Paper One: AML/X

“AML/X: A Programming Language for Design and Manufacturing”Nackman, LR, Lavin, M, Taylor, RH, Dietrich, Jr., WC, and Grossman, DD (1986)

• Based on AML: “A Manufacturing Language”

• AML is a custom, interpreted control language (interpreter written in C).

• Extended AML to include Object Orientated features, improved Exception handling, and is used in Vision and CAD

• Is “a general purpose programming language tailored for use in manufacturing and computer aided design.”

Why This Paper?

• Object-Orientated and Interpreted

• AML was/is used in real commercial applications (“tested by fire”)

• Excellent description of rationale and design criteria

• Insight into the experience of the mentors guiding ERC robot software development

• Sophisticated design but 18 years old: comparison to contemporary efforts might be insightful

ERC Center for Computer Integrated Surgical Systems & Technology 6

Paper Outline1. Introduction

2. Design Rational1. General Principles

2. Language Design Criterion

3. Language Description1. Data Objects & Operators

2. Aggregates

3. Control Operators

4. Expression Evaluation

5. Subroutines/Local Variables

6. Exception Handling

7. Object Orientated Programming

4. Examples

5. Implementation

6. Experience & Conclusions

ERC Center for Computer Integrated Surgical Systems & Technology 7

Paper Outline1. Introduction

2. Design Rational1. General Principles

2. Language Design Criterion

3. Language Description1. Data Objects & Operators

2. Aggregates

3. Control Operators

4. Expression Evaluation

5. Subroutines/Local Variables

6. Exception Handling

7. Object Orientated Programming

4. Examples

5. Implementation

6. Experience & Conclusions

ERC Center for Computer Integrated Surgical Systems & Technology 8

The Problem

• To develop a stabile, robust, and layered language that allows unsophisticated users to effectively program useful applications, while providing enough expressiveness for sophisticated users to develop more advanced and flexible applications

• To provide an integrated environment that transcends merely a collection of disparate tool libraries

• To provide a framework that allows the simultaneous integration and expansion of computer vision, robot control, and CAD.

ERC Center for Computer Integrated Surgical Systems & Technology 9

General Design Principles

• Hoare’s dictum: the language designer’s task is one of “consolidation, not innovation.”

– Authors chose from among constructs and ideas that had been tested in other languages. Strong influences: LISP, APL, SMALLTALK

• Prefer general purpose constructs to those meeting specific, limited, application needs.

• AML/X debugging tools are an extention of its sophisticated exception handling mechanism, and glues the features into a coherent product.

• Can be difficult “when an important user requests a specific new feature.”

• Feature Orthogonality; “meaning of the use of a construct should be independent of its use in combination with some other construct.”

ERC Center for Computer Integrated Surgical Systems & Technology 10

Language Criteria• Identifies 3 domains:

– Robot programming– Machine vision– CAD

• Three classes of users:– End users (little programming skill but must “chain together”

sequences of high level commands)– Application Developers (provide high level functionality for

small classes of users)– Application Development Environment Developers (writing

robot and CAD systems)

• Also wanted to preserve procedural C-style support from AML

ERC Center for Computer Integrated Surgical Systems & Technology 11

Aggregates• A collection of objects that can be treated as

one.• Most basic data grouping mechanism of

AML/X• Distinct from scalar objects (INT, CHAR, etc)• Akin to Python dictionary object

ERC Center for Computer Integrated Surgical Systems & Technology 12

Exception Handling• Very similar to Java: can define an Exception Handler for

particular exceptions

• Exceptions can be raised by :– The system on an error

– Explicitly by RIASE_EXCEPTION

– AML/X finds the most recent (active) block containing a handler for the type of variable that caused the exception.

ERC Center for Computer Integrated Surgical Systems & Technology 13

Exception Handling:More• EXPR: evaluate an expression. Result becomes result of

handler• SUBROUTINE: a subroutine is called, information is passed in

the arguments (which can be an aggregate). Result of subroutine becomes result of handler.

• LABEL: branch to label. No result.• BOOLEAN: result of the exception handler is TRUE• SYMBOL: define another exception to raise instead. Very

useful feature: allows hierarchy of exception groups.

• EXCP_BINDING: a subroutine to determine the current handler, and make a control decision.

ERC Center for Computer Integrated Surgical Systems & Technology 14

Implementation

ERC Center for Computer Integrated Surgical Systems & Technology 15

Implementation

ERC Center for Computer Integrated Surgical Systems & Technology 16

Implementation

ERC Center for Computer Integrated Surgical Systems & Technology 17

Relevance to IRE• Mostly important design cues:• AML provides on-line development by (in part)

exposing libraries of objects.– Main architectural difference is that IRE applications are not

necessary developed in the scripting language; the IRE developer has no knowledge of line-by-line code unless he/she has the C++ source

• AML has a sophisticated error handling architecture– Most IRE error handling is processed by C++ code, but

some thought on this is necessary if the Python library is extended to include AI constructs.

• AML was successful and useful

ERC Center for Computer Integrated Surgical Systems & Technology 18

Critique• Very helpful description of design approach• Early (pre-C++) implementation of an OO system• System was clearly effective and useful

– Initial RoboDoc versions were developed in AML, including the canine clinical study

• Entire language is interpreted:– Security concerns?– You’re shipping your source to your customers

• Can it be encoded? Is that safe?

– Speed concerns?

• No apparent built-in AI support– But could probably be extended by including C++ libraries

ERC Center for Computer Integrated Surgical Systems & Technology 19

Paper Two: Pyro

“Python Robotics: An Environment for Exploring Robotics Beyond LEGOs”

Blank, D, Meeden, L, and Kumar, Deepak (2002)

ACM Special Interest Group: Computer Science Education Conference, Reno, NV (SIGCSE 2003)

• Pyro: short for Python Robotics

• Intended for Undergraduate robotic study courses, to explore control paradigms

• Cross-platform (works on lots of robots)

• Includes a simulator

Why This Paper?

• The entire system is implemented in Python (Vision, Control, etc)

• It is Open-Source

• Designed to explore abstract AI concepts in addition to robot control

ERC Center for Computer Integrated Surgical Systems & Technology 20

Paper Outline

1. Introduction

2. Pyro: Python Robotics1. Pyro Components

2. Pyro Examples

3. Pyro in the Curriculum

4. Summary

ERC Center for Computer Integrated Surgical Systems & Technology 21

The Problem

• Robots like LEGO MindStorms are too simple for effective undergraduate education (e.g. limited vision and AI support)

• More advanced robots are available, but are research-orientated and each is implemented with complicated and often proprietary control software, presenting two problems:– Significant time is invested learning specifics of a vendor’s

implementation, instead of learning techniques of higher academic value.

– Architecture between platforms is substantially different; none of the code and possibly none of the knowledge gained is transferable between platforms.

ERC Center for Computer Integrated Surgical Systems & Technology 22

The Solution

• Write your own uniform, cross-platform library to abstract controller implementation details from application code. In Python.

• Goals:

• Easy for beginning students to learn

• Provide a modern object-oriented programming paradigm

• Run on several platforms

• Allow exploration of many different robot control paradigms and methodologies

• Remain useful as users gain expertise

• Be extendable

• Allow for the creation of “modern-looking” visualizations, and be distributed as open source software

ERC Center for Computer Integrated Surgical Systems & Technology 23

Pyro Architecture

Python code modules interact with vendor-specific APIs, exposing functionality to higher layers via the Pyro library, a uniform API.

Other custom or Open Source Python libraries can be integrated (e.g. numerical routines)

An arbitrary application imports Pyro libraries to invoke calls to the Pyro API.

ERC Center for Computer Integrated Surgical Systems & Technology 24

Components and AI Support• ANN and ANN Back-propagation Error module• Self-organizing Map module• Fuzzy Logic• Behavior-based brain module• OpenGL Interface and Renderer• Graphing Module• Generic Simulator

• Each is a library and can be run stand-alone, or via the Pyro command interpreter.

• Pyro defines a “brain”

ERC Center for Computer Integrated Surgical Systems & Technology 25

Portability: Sensor Abstraction

• Robot Units– Data is converted into a type that is meaningful to the robot

• 1 Khepera unit = 60mm• 1 Pioneer unit = 2 ft.

• Avoid naming specific sensors– “Front-left” means;

• On Khepera: read by a single infrared sensor• On Pioneer: read by three sonar sensors

ERC Center for Computer Integrated Surgical Systems & Technology 26

Pyro Results

Generally acceptable, since the targeted equipment generally handles up to only 10 updates per second.

Also, the same module (as tested) can be run on a 75 lbs Pioneer robot, or 2” tall Khepera robot.

Probably not be reliable enough for clinical use, or integration with numerous robots.

ERC Center for Computer Integrated Surgical Systems & Technology 27

Critique• Where’s the discussion on wrapping/implementation? Do the platform APIs provide Python interfaces?

– Open source, so I could look there, but I’d like to hear a discussion of the problems they likely encountered, and how they solved them (in other words, were’s the hack?)

• Language Comparisons: why is Python better than, say, TCL?

• Paper organization: clumsy• Authors use a more narrative than structured style• Discussion on sensor abstraction

ERC Center for Computer Integrated Surgical Systems & Technology 28

Questions?