Information Technology Projects for 2003

Supervised by Joaquin Sitte


Interactive environment for robot control under Windows CE

Small, lightweight minirobots are becoming increasingly important for research in intelligent machines. At the same time small robots are increasingly being appreciated for their entertainment and education potential. The portability of minrobotos demands that the required control and software development environment also becomes portable. The availability of low cost PDA (Personal Digital Assistants) with powerful processors and communication peripherals such as infrared serial links provides the opportunity for meeting this demand. Real time interactivity is the key aspect of such an environment. The user has to be able to interact with the robot anywhere he takes it. The rediscovery of interpreted computer languages, stimulated by Java, provides further support for this purpose. Unfortunately Java does not support an interactive programming mode like for example Matlab. Also Java is unnecessarily complicated. The idea of this project is to use Smalltalk as the basis for an interactive environment for robot control and software development.

Smalltalk is the main precursor of object oriented programming languages. The main ideas of Java have been taken from Smalltalk. The advantage of  Smalltalk is that it is a simple, very readable programming language. The unique feature of Smalltalk is was conceived for interactive of programming that allows fast prototyping and extensible programming. New methods can be defined and used immediately. They can be debugged interactively as they are written. All these features make Smalltalk better suited for interactive program development in robots. Unfortunately there are no Smalltalk interpreters on the market suitable to this purpose. With the advent of Windows CE and 32-bit processors for embedded systems it should be relatively easy to adapt the GNU Smalltalk interpreter to run under Windows CE. A robot system could then have many processors each with its own Smalltalk interpreter capable of receiving and issuing Smalltalk messages over a communications link to other processors.

GNU Smalltalk comprises the full C-source code for the Smalltalk interpreter. It is easy to compile the interpreter for 32-bit; the problem is that GNU Smalltalk only has a command line user interface. This project consists of recompiling GNU Smalltalk for the Windows CE environment and define basic objects and methods to interface to the Win32 API.

This project is suitable for a group of up to 3 students over one semester. A reduced version is suitable for one student over one semester.


Robotalk, a diskless, distributed operating system for autonomous minirobots.

We currently use the Communicating Sequential Processes (CSP) software paradigm in our distributed robot control system implemented with transputers. The CSP model is conceptually very similar to the object-oriented model of Smalltalk (and Java). With the transputer no longer being manufactured we are looking for alternatives to replace the transputer with conventional microprocessor while keeping the CSP software model. It is conceivable that Smalltalk-like interpreter could be adapted to run on a network of processors. Each processor would have such a Robotalk interpreter and a small object library in ROM. Objects on the same processor or on different processor would exchange messages over (Occam-like) channels. Many of the classes needed for a GUI and a software development environment would not be needed, instead the basic functionality of a multitasking distributed operating system will have to be provided. The full fledged development environment would run on a development host connected to the robot in the software development stage. Only the objects needed for autonomous operation of the robot will reside on the robots processors. The starting point for the system will be the GNU Smalltalk source code. The Smalltalk virtual machine interpreter is written in C. The purpose of this project is to design and specify a distributed Robotalk operating system.


Effect of low precision weight storage on training of an analog local cluster neural net chip.

Elsy is a 32-bit Windows application that simulates Local Cluster (LC) neural nets. The Local Cluster neural net architecture was developed at QUT by Shlomo Geva and Joaquin Sitte. The LC neural net architecture has also been fabricated as an analog integrated circuit in cooperation with the Heinz Nixdorf Institute, Paderborn, Germany. One limitation of the hardware realisation is that the network weights can only be stored as low precision digital values. The finite precsion of the weights affects the training capacity of the network. At this time we do not know at what level of precision the training algorithm starts to fail. The objective of this project is to find out this limit by means of a set of carefully planed computer simulation experiments.

To carry out the simulations the Elsy program (written in C++) has to be modified to simulate variable length precision calulations.


Personal Productivity Tools for PDA’s under Windows CE

The widespread availability of cheap but powerful desktop computers has put sophisticated data analysis within almost everybody's reach. Data analysis is a useful tool for many activties, from marketing, financial analysis to engineering and scientific research. Unfortunately the appropriate software tools are still quite expensive. Use of state of the art tools like Matlab, Mathematica, IDL and others, in an teaching environment is hindered by their cost. The recent release of almost free, state of the art, object oriented, interactive software development environments (Smalltalk, Java) makes it possible to develop components and toolboxes with much less effort and in an incremental manner. Several projects are available for developing component and toolboxes for data array manipulation, data modelling and visualisation (graphs). These components are to be used interactively to make it easy to capture, manipulate and visualise vector data.


Object Components for Data Analysis (Smalltalk/Java)

The widespread availability of cheap but powerful desktop computers has put sophisticated data analysis within almost everybody's reach. Data analysis is a useful tool for many activties, from marketing, financial analysis to engineering and scientific research. Unfortunately the appropriate software tools are still quite expensive. Use of state of the art tools like Matlab, Mathematica, IDL and others, in an teaching environment is hindered by their cost. The recent release of almost free, state of the art, object oriented, interactive software development environments (Smalltalk, Java) makes it possible to develop components and toolboxes with much less effort and in an incremental manner. Several projects are available for developing component and toolboxes for data array manipulation, data modelling and visualisation (graphs). These components are to be used interactively to make it easy to capture, manipulate and visualise vector data.


Software tool for collecting information flow data in enterprises.

This project is part of a larger research collaboration aimed at developing decision support software for strategic enterprise management based on enterprise modelling. In our scheme of things an enterprise model starts from an information flow inventory of the enterprise. The data are gathered through individual interviews of company staff. Each staff member is asked to describe the information elements it receives and sends. Because the interviewer lacks knowledge of the enterprise he/she will have a notebook computer that presents it with a standard interview structure that is to be adapted to the company as the interviewing process progresses. There are special user interface demands on this software tool to allow fast data entry, eliminate multiple entry of already existing data, on the fly cross checking, and context sensitive suggestions. A simple prototype has already been developed in Java (JDK 1.1). The purpose of this project is to develop the current prototype version into a stand alone C++ application.


Enterprise information flow graph analysis tool.

This project is part of a larger research collaboration aimed at developing decision support software for strategic enterprise management based on enterprise modelling. One of the difficulties in producing an enterprise model is capturing the true structure of an enterprise. Information flow analysis appears to be an effective way for capturing and representing the structure of an enterprise. The information flow inventory of an enterprise has the form of a directed graph consisting of sources and sinks of data. The edges of the graph are data flows characterised by a multi-component information vector. It is desirable to display this rather complex graph on the screen and manipulate the graphical representation interactively in various ways. For example one wishes to display different views of the graph, such as subgraphs with vectors that meet certain filter criteria. The goal of this project is develop a software tool for information flow graph manipulations like interactive merging, splitting and insertion of nodes, and on screen reshaping of the graph by dragging and dropping of nodes.

Although there already exist several packages for automatic graph drawing, new algorithms are still being developed. This project includes reviewing the available graph drawing libraries, selecting a suitable library and extending it for the specific information flow analysis application. The development environment is Visual C++.


Last updated: 01/10/2002

home