Robotics and real-time control :

ASSIGNMENT OPPORTUNITIES


VERY VERY DRAFT VERSION !!!!!!

This is slowly evolving from a straight copy from ancient handouts, with minor changes to make it into a laughable imitation of HTML, towards something a little more presentable. It should improve with time; if it's still incomprehensible when you want it, ask me.


These are suggestions for assignments. I think each describes the skeleton of a plausible assignment, but I don't guarantee anything – it's up to you to fill in the details, make necessary changes, or amend beyond recognition, to construct a task of appropriate size. Paul Qualtrough has some further suggestions and information – look at his WWW pages. Please read the sheet ASSIGNMENTS – SOME NOTES before making a decision.

I've put separate sections for loners and groups; they're only guesses too. If a topic listed under one heading suggests to you a good project under the other, that's all right with me.

In the "group" experiment section, I've suggested sets of "components" just to give you a start in working out what tasks have to be done. These are also guesses, and you should convince yourself that they're right before relying on them.

Some of the suggestions are less than complete specifications. If you think you might be interested, come and ask.


FOR LONERS.

ROBOTS.

Topic : Conveyor belt.

Suggested experiment : Document clearly the signals which go to and from the conveyor belt, detector, and gauging unit, so that we can use them independently if we feel like it. ( They may be somewhere in the manual, but I don't remember seeing them. )

TURTLE.

Topic : Specification.

Suggested experiment : Describe the low-level structure of the device, and explore how it can be driven from the Acorn machines.

Topic : Control interface.

Suggested experiment : Follow Tim Natusch : Teleoperation of Mentor ( Assignment 1, 1992 ) : consider Tim's Mentor interface, and adapt it to the turtle. Is it easier to map the joystick actions to turtle coordinates ( backwards, forwards, left, right ) or geography ( north, south, east, west ) ?

ANALOGUE COMPUTER SIMULATION.

Topic : Simulate an analogue computer in real time.

Suggested experiment : The skeleton of a simulator has already been put together. ( John Garvey : Analogue computer simulator, Assignment 1, 1989. ) It still needs a decent interface to people using it, and a way of connecting it to a machine through some available port. NOT AN INVITATION TO WALLOW IN MACINTOSH GIMMICKRY : some real-time constraints should be important. Consider how the simulation can be combined with the real thing. You may find some interesting interfacing problems.

REAL-TIME SYSTEMS DESIGN.

Topic : Study software engineering in real-time systems.

Suggested experiment : Observe one of the other projects, or take one from the "library", and apply a systematic design procedure to it to see how it should really be ( or have been ) done. See the textbook for Mascot, or look at some old assignments on systems design.

REAL-TIME PROGRAMMING LANGUAGES.

Topic : Investigate good and bad things about real-time programming languages.

Suggested experiment : Use PFL or PDL to try writing programmes for typical control systems ( "library" again, maybe, or invent your own ), and see how well the languages work. There's a report ( Technical Report #104 ) in which we try to compare the languages, but it's very short on real examples. There's also a PFL compiler for the Acorn, which gets most of the syntax right but doesn't handle interfaces yet ( Roger Kay, 485 project report, 1994 ). We hope there will be something similar for PDL before too long, as Natalie Spooner is working on it in a 485 project this year, but time will tell.

THE "UBIX OPERATING SYSTEM" ( or MANUFACTURING SEQUENCE PLANNING. ).

Topic : To write a "compiler" for the photocopier. ( The specification is my Working Note #44. )

Suggested procedure : Identify the set of operations possible with the photocopier; find a way to express the possible states of the pile of paper; experiment with algorithms which convert a beginning state to an end state.

The excuse is that the problems involved are much the same as those which turn up in working out assembly sequences for assembly operations carried out by robots ( or other machines ) – or maybe machining operations as carried out in numerically-controlled machine tools ? ( The difference is that in one case you choose the order in which parts are stuck together, while in the other you choose the order in which you take bits off on a workpiece. )

In both cases you know where you start and where you finish, and you have a well-defined set of operations to fill in the gap. It's artificial intelligence if you want it to be. I have a couple of books which might give you some engineering background, and can find some recent references which might give you some ideas.

YOUR OWN PROJECT.

If there’s something you’d specially like to work on, and it can plausibly be described as robotics or real-time computing, come and talk about it. ( In the boxes of reports there are some other bits and pieces which I haven't listed, as I don't specially want to go on with them, or the machinery is no longer available, or whatever. They might give you some ideas. )


FOR GROUPS.

ROBOTS.

Topic : Control languages

Suggested experiment : Provide software which will cause the robot to obey an instruction of the form "Move the X from A to B". ( And maybe others ? ) ( This is the idea behind PDL. My report and working note on the subject may, or may not, help. )

Components : Design. Allocate tasks. Representation for the world view. Representation for places. Representation for objects. Representation for the robot. Executing the instruction. Is the MOVE instruction sufficient ? Documentation.

Topic : Manufacturing workcells.

Suggested experiment : As in the Mentor manual – robot puts things on the conveyor belt, measure with thickness gauge, stack in one or other pile according to thickness. If both robots work, use one at each end.

Components : Design. Allocate tasks. Pick up incoming things, stack outgoing things. Put things on and get things off conveyor belt. Control motion of conveyor belt ( start and stop ). Control and read the gauge, accept or reject. Documentation.

Topic : Feeding machine.

Suggested experiment : Several groups have developed robots which a disabled person can use as an assistant when eating; none of them is particularly cheap, and they don't seem very clever ( or, sometimes, very safe ). See what you can do. ( Felix Tan made a start in 1994; look at his reports first. )

Components : Design. Allocate tasks. Investigate eating. ( Watch each other eat. ) Picking up food. Transport to mouth. Deposit in mouth. Return to home position. Safety. Documentation.

TRAIN.

Topic : Cooperative and competitive control; scheduling.

Suggested experiment : Safe operation of a multiple-train system, using a Macintosh or A5000 to communicate with the Acorn A5000 and STEbus system running Paul Qualtrough's train management hardware and software. ( Look at Paul's 1994 hardware report and 1995 software report (in progress). )

Components : Design. Allocate tasks. Track mapping system. ( Drive the train around to determine the layout. ) Single-train controllers: competing, co-operative. Multiple-train controllers. Route planner. Documentation.

TURTLE.

Topic : Mobile robots.

Suggested experiment : Make a map of the environment.

Components : Design. Allocate tasks. Move the turtle. Interpret the sensor signals. Maintain the map. Plan the movement. Documentation.

Topic : Autonomous robots.

Suggested experiment : Study the possibility of developing the turtle into a useful platform for mobile devices.

Components : Design. Allocate tasks. Consider motor requirements. Consider power consumption. Consider communications and control requirements Consider the tail. Documentation.

ANALOGUE COMPUTER.

Topic : Data logging.

Suggested experiment : Use a BBC computer to log and display the waveforms generated by the analogue computer, with input through the BBC's analogue port.

Components : Design. Allocate tasks. Develop a BBC procedure to sample the analogue port. Display the sampled data on the BBC screen. Provide controls to improve the displays. Documentation.

ANALOGUE COMPUTER SIMULATOR.

Topic : Study the principles of analogue computation.

Suggested experiment : Analogue computers are very well suited to simulating the solution of ordinary differential equations. The idea of the analogue computer, though, is an interesting model of the way a differential equation behaves, and we can use the model to produce a variety of interesting results. ( My Working Note AC83 might be of interest. )

Components : Design. Allocate tasks. Determine data structures. Write a "compiler" for ordinary differential equations. Write an interpreter for an analogue computer. ( Wires carry "voltages". ) Write an interpreter for a digital diferential analyser. ( Wires carry "increments". ) Write an interpreter for generating Taylor series. ( Wires carry "algebraic expressions". ) Documentation.

STIQUITOS.

Suggested experiment : Build and drive a ( some ? ) Stiquito(s). See the report by Chris Manford and Duncan Sharp, 1994.

DON'T TRY IT UNLESS YOU HAVE EXPERIENCE IN MODEL-BUILDING OR OTHER LIGHT ENGINEERING, AND HAVE ACCESS TO SUITABLE TOOLS FOR THE ACTIVITY.

Components : Design. Allocate tasks. Construct the Stiquito(s). Construct a Stiquito controller. ( That's two or more computer-controlled switches for a few amps at 9 volts, so far as I remember. ) Write basic control software to switch on and off. Write a Stiquito simulator. Write the basic Stiquito walking control programme. Write higher-level controllers to make them turn, etc. Documentation.

VIDEO CAMERA.

Topic : Vision for control systems.

( The two suggestions which follow are alternatives. The second is – at least potentially – actually useful. )

Suggested experiment : Identify things moving along the conveyor belt.

Suggested task: Explore the capabilities of the VideoArc digitiser and produce commercial quality documentation for it. This board is under development locally, and we have been encouraged to have some input into certain design decisions affecting the way the board is used.

Components : Design. Allocate tasks. Thresholding. Segmentation – find one object, giving position. Recognition – moment of area, etc., giving identity and orientation. Documentation.

LABVIEW.

Topic : Control interface.

Suggested experiment : Use Labview to control a simple thermostat. ( Use an analogue computer to simulate a simple thermostatically controlled system, with a BBC as interface to the Macintosh serial port. )

Components : Design. Allocate tasks. Get the simulator going. Attach the BBC. Implement serial communications ( RSnnn ) between Macintosh and BBC. Design the interface. ( Display temperature, plot against time, controls for set point and controller parameters. ) Investigate the effect of the control parameters. Documentation.

PFL.

Topic : Real-time programming languages.

Suggested task : Write PFL programmes for a selection of other experiments. ( Those currently in progress would be nice, subject to the agreement of the experimenters concerned – then you'll have resident experts of whom to ask questions. )

Components : Design. Allocate tasks. Work out what PFL is. ( See Technical Report #104, etc. ) Inspect the other tasks, determine their structures. Work out an appropriate programming style. Write the programmes. Documentation.

USER INTERFACE.

Topic : Control by whistling.

Suggested experiment : Achieve control input through microphone using a whistle code. It should be easier than speech recognition. Sheepdogs are an existence proof. You would have to devise some suitable code. It couldn't rely on perfect pitch, nor even any significant musical ability, but most people can manage, or can be trained to manage, to produce a pair of notes with the second note higher or lower in pitch than the first, so a sequence of up and down pitch changes might work. See the reports by Natalie Spooner, Graham Hood, Mike Pheasant : Whistle while you werk ( Assignment 1, 1992 ); Chris Burns, George Sealy : The electronic sheepdog ( Assignment 1, 1993 ).

Components : Design. Allocate tasks. Devise a suitable code. Analyse the sound. ( Count zero crossings ? ) Construct a sheepdog simulator. Documentation.

BALL BALANCER.

Topic : Real-time control of non-linear systems. Make this controller the lowest layer in a layered control system as suggested in Paul Qualtrough's ball balancer report (1995, in progress).

Suggested task : Extend Matthew Weir's controller ( 1994 ) to give more precise control.

Components : Design. Allocate tasks. Controlling the hardware. Reading the sensors. Analysis of ball dynamics. Control theory controller. Neural network controller. Fuzzy logic controller. Unsupervised learning controllers. Subsumption architecture approach. Documentation.

INTERFACE SOFTWARE GENERATOR.

Topic : Write a "compiler" to use an interface adapter.

Suggested task : Write a "compiler" ( or other translating programme ) which will convert high-level specifications of a task to be accomplished by a VIA into 6502 assembly language code ( or BBC Basic, or whatever, just so long as it works ). ( It needn't be too "high-level" – just try to avoid the sordid details of writing lots of things into control registers. ) For example, consider the problem set in the first ( type A ) assignment. There's some background, or at least wishful thinking, in Technical Report #104, page 39.

Components : Design. Allocate tasks. Study the VIA. Devise a plausible "high-level" language. Write the programmes. Test the programmes. Documentation.

MICROMOUSE.

A robotic mouse that solves mazes. There's an international competition for them. Worik Stanton worked on it as a 483 project in 1992 ( W. Stanton : µMouse project ( Auckland University Computer Science Department project report, 1992 ). ) If anything from that can be made into a 773 assignment, that would be interesting.

Alan Creak,
February, 1997.


Go to the 773 main course page;;
Go to me;
Go to Computer Science.