An Inexpensive LISP-Based Educational Platform to Teach Humanoid Robotics and Artificial Intelligence - PowerPoint PPT Presentation

About This Presentation
Title:

An Inexpensive LISP-Based Educational Platform to Teach Humanoid Robotics and Artificial Intelligence

Description:

ICEE2005, Gliwice, Poland An Inexpensive LISP-Based Educational Platform to Teach Humanoid Robotics and Artificial Intelligence Tze-wen Wang Marek A. Perkowski – PowerPoint PPT presentation

Number of Views:170
Avg rating:3.0/5.0
Slides: 28
Provided by: Jave5
Learn more at: https://www.ineer.org
Category:

less

Transcript and Presenter's Notes

Title: An Inexpensive LISP-Based Educational Platform to Teach Humanoid Robotics and Artificial Intelligence


1
An Inexpensive LISP-Based Educational Platform to
Teach Humanoid Robotics and Artificial
Intelligence
ICEE2005, Gliwice, Poland
  • Tze-wen Wang
  • Marek A. Perkowski
  • Portland State University, Oregon, USA
  • Maciej Sajkowski
  • Tomasz Stenzel
  • Silesian University of Technology, Gliwice, Poland

2
Outline
  • Introduction
  • Motivations
  • The AI Language
  • Problems?
  • Platform Overview
  • Software
  • Hardware
  • The CLISP Environment
  • Overview
  • FFI Package
  • Examples
  • Summary

3
Introduction
  • Robotic and AI programming
  • Interesting turns ideas into motions and
    movements.
  • Interactive machines are coordinated by
    different inputs such as gestures and
    environments.
  • Attractive easily gets attentions from young
    students.
  • Abstract hard to understand and verify without
    hardware aids.
  • Complicated a complete robot program involves
    with both software and hardware implementations.
  • Learning curve because of involvement with
    hardware, it is hard for young students to pick
    up.

4
Introduction contd
  • Construction of robot programs involves several
    areas
  • Digital hardware systems
  • Communication protocol.
  • Microprocessor-level programming.
  • System-level programming.
  • Image processing.
  • Artificial Intelligence.
  • Many more

5
Motivations
  • Therefore, we need a better programming
    environment for robot programs for students to
    learn the fundamentals.
  • A high-level computer language that is easy to
    learn from the ground.
  • The implementation of the language should be
    extendable.
  • Encapsulation of hardware abstraction.
  • Abundant and rich software resources.
  • Allows students and programmers to focus on
    robots behaviors.

6
The AI Language
  • The LISP programming language is
  • LISt Processing programming language.
  • Invented by John McCarthy during 1956-62 at
    Massachusetts Institute Technology (MIT).
  • A high-level functional language with uniform
    syntax.
  • Capable for symbolic computation and perform
    theorem proving.
  • Supports macro expansion.
  • Operating system independent.
  • Interpreted, no compilation required.

7
The AI Language contd
  • Easy to learn.
  • No pointer mechanisms.
  • Automatic memory management.
  • Interactive.
  • Allows fast-prototyping.
  • Concise.
  • A binary-tree search/traversal can be done in
    just a few lines of code.
  • Still widely used in AI programming today.

8
Problems
  • However, like all other high-level languages,
    technical problems exist
  • Programs can not access hardware devices other
    than the standard I/O.
  • Standard input, keyboard.
  • Standard output, textual screen.
  • Degraded execution performance.
  • Difficult to generate hardware control signal.
  • Co-existing with other languages.
  • Interfacing with libraries.

9
Introduction contd
  • Check what is available today.
  • Todays technology offers tremendous computation
    power and cost-effective learning environment.
  • Huge volatile and permanent storages.
  • Home-use operating systems are mature to handle
    multitasks and catch with up-to-date hardware
    device technologies.
  • Many relevant software libraries are publicly
    available.
  • Intel Open Computer Vision Library (OpenCV).
  • Microsoft Speech Application Interface (SAPI).

10
Platform Overview
  • Due to advances of technology, we are now able to
    split brain and body of an autonomous and place
    them in different places.

11
Platform Overview contd
Computer Artificial Intelligence. Collects
feedback. Generates behaviors and control signals.
Robot Retrieves control signals. Performs
behaviors.
Transmitter Delivers control signals.
Video Camera Generates image and feedback.
12
Hardware
  • Computer
  • A home-use personal computer with generic
    operating system such as Windows would provide a
    cheap solution to construct this platform.
  • Possible to build a cluster with open-source
    operating system such as Linux to enhance
    capability.
  • Transmitter
  • Any transmitter that is able to be hooked up with
    a computer system through standard I/O ports such
    as RS232 and USB.
  • We choose BasicStamp RF module to be the control
    signal carrier.

13
Hardware contd
  • Video Camera
  • Any USB camera that is supported by the operating
    systems and OpenCV library.
  • A cheap USB Web-camera would work.
  • Robot
  • Could be viewed as a hardware device from
    programmers view.
  • We experimented with a popular humanoid robot,
    Robosapien, in the US robot hobby market.
  • The robot is modified to have capability
    retrieving control signals through RF
    communications.

14
Software
  • The goal is to provide an easy-to-learn robot
    programming environment.
  • An everyday life operating system.
  • Microsoft Windows.
  • An extended LISP implementation.
  • CLISP.
  • An image processing library.
  • Intel OpenCV.
  • Other software resources.
  • System Libraries (Calls).
  • Other Dynamic Link Libraries (DLLs).

15
CLISP
  • An ANSI Common Lisp Implementation.
  • Developed initially by Bruno Haible in 1992 and
    later by several other academic institutions.
  • Karlsruhe University, Germany.
  • Munich University, Germany.
  • Implements ANSI Common Lisp standards with
    extended packages.
  • An interpreter.
  • A compiler and debugger.
  • Common Lisp Object System (CLOS).
  • Socket interface.
  • Foreign function interface.

16
CLISP contd
  • Supports a wide variety of operating systems.
  • Windows 95/98/NT/2000/XP.
  • Linux.
  • FreeBSD, NetBSD, OpenBSD, Solaris, Tru64, HP-UX,
    BeOS, NeXTstep, IRIX, AIX
  • Requires only 4 Mbytes memory to run.
  • A freeware under terms of GNU General Public
    License (GNU GPL).
  • Detail on-line documentation available.
  • Language reference.
  • Implementation notes.

17
CLISP contd
  • User interface comes with several languages such
    as German, English, Spanish, and Dutch, and can
    be switched on the fly.
  • Supports i18N and Unicode encoding.

18
FFI Package
  • A set of LISP primitives and macros that are used
    to define foreign function symbols.
  • A foreign function refers to a function that is
    not a implemented and run under LISP environment.
  • System and API functions.
  • Functions stored in Dynamic Link Library.
  • Currently only supports C functions.
  • Most libraries including system calls are written
    in C.

19
FFI Package contd
  • FFI package allows program control flow to be
    passed back and forth between LISP and non-LISP
    functions.
  • A LISP program can be a major control program.
  • Simple and complex data types are handled by the
    interface.
  • FFI package provides both automatic type
    conversion and explicit type-casting.
  • Programmers can also create user-defined data
    structure to accommodate foreign function calls.

20
FFI Package contd
  • Steps to make a foreign function call.
  • Locate where the foreign function is stored.
  • Define LISP symbols linked to a function stored
    in a library file.
  • Define all necessary data structures for the
    call.
  • Create instances of the data structures.
  • Invoke the call in the same way to call a LISP
    function.
  • Things to be aware with foreign functions.
  • Storage allocation method.
  • Handling of pointer arithmetic in the foreign
    functions.

21
FFI Package contd
  • Summary of data types.

LISP-C Symbol LISP Equivalent C Equivalent
NIL NIL void
BOOLEAN BOOLEAN int
CHARACTER CHARACTER char
char INTEGER signed char
uchar INTEGER unsigned char
short INTEGER short
ushort INTEGER unsigned short
int INTEGER int
uint INTEGER unsigned int
long INTEGER long
ulong INTEGER unsigned long
uint8 (UNSIGNED-BYTE 8) uint8
sint8 (SIGNED-BYTE 8) sint8
uint16 (UNSIGNED-BYTE 16) uint16
sint16 (SIGNED-BYTE 16) sint16
uint32 (UNSIGNED-BYTE 32) uint32
sint32 (SIGNED-BYTE 32) sint32
uint64 (UNSIGNED-BYTE 64) uint64
SINGLE-FLOAT SINGLE-FLOAT float
DOUBLE-FLOAT DOUBLE-FLOAT double
22
FFI Package contd
  • Do students have to learn FFI package?
  • FFI only interfaces with the low-level function
    calls.
  • Detail implementation of sending control signal
    can be written in macros.
  • Instructors can prepare those LISP-to-C functions
    for the class.
  • Students would only need to know names of robots
    behaviors.
  • (left 90) turn left 90 degrees.
  • (forward 2) move 2 steps forward.
  • Advanced topics can be taught in conjunction with
    libraries such as OpenCV and Speech API.

23
Example 1
  • Robosapien Console.
  • A LISP program that prompts to the user for robot
    command and sends the control signal over the RF
    channel.
  • Once the robot received the signal, it performs
    the pre-programmed behaviors.
  • The program uses system call to do all
    communications.
  • The main routine has only a few lines of code.

24
Example 2
  • Frame Rate Calculator.
  • A LISP program utilizes Intel OpenCV library to
    acquire a USB camera.
  • Upon each received frame, a LISP routine is
    called back to calculate frame rate with respect
    to a second.
  • The program uses CLISP FFI package to accomplish
    both call-in and call-out.
  • The entire program has only a few lines of code.

25
Summary
  • LISP is still a better choice to teach students
    under context of robotic programming.
  • Interactive and low programming learning curve.
  • Easy to do verification of the algorithms.
  • Abundant developed LISP code available in the
    area.
  • Take advantages of todays computer technology.
  • Fast processors and huge storage.
  • A number of PC compatible hardware devices.

26
Summary contd
  • CLISP offers a great environment for robotic
    programmers.
  • Supports several operating systems.
  • Accessible to hardware devices.
  • Available for academic use at no cost under terms
    of GNU GPL.
  • A toy robot would do the great job!
  • Robosapien, an robot for less than 80 USD.-
  • Only a little hardware modification is required.

27
Thank You
Questions
Write a Comment
User Comments (0)
About PowerShow.com