Robotics and real-time control.

( Computer Science 773 )

City campus, first semester.


The Robotics and real-time control course is about real-time control, which includes robotics. It is not about artificial intelligence or androids or anything exciting; it's about machines and assembly lines and other things which are ( potentially, but no guarantees ) interesting and useful.

Before 1996, the course was numbered 473, and you might find references to that number in the notes or in other contexts. 473 lasted for the whole year, had two lectures per week, and had no examination; the material covered was much the same, though, so comments not connected with details of course organisation should apply equally well to 773.


You can look at the Handbook entry.

Well, so much for the handbook entry. Now what's the real story ? For information about the course, try these :

For information about the various available facilities, try these :


What the course is about.

Time alone will tell, as is only appropriate for a real-time course. I hope that it will not deviate too far from the handbook description, but circumstances change, and almost anything could happen.

Very briefly, the course gives a broad, and not very deep, introduction to special features of computing applied to the control of machines of various sorts. This is not a proper engineering treatment, but should give enough elementary engineering background to form a basis for communication between computists and engineers.

The major new principle is the importance of time in the systems, which is the consequences of running computers together with other machines which act independently with their own time scales. This is the reason for the emphasis on real-time computing.

The course is primarily about control systems ( despite its title, which is the wrong way round - the title predates the course by several years ). Robots come in as a particular case of machines - but they get special treatment, because they are machines of a rather special type. They are ( ideally ) general-purpose machines, in much the same way as computers are general-purpose calculating devices - and, like computers, they have to be programmed. While they are not the only programmable machines ( the course includes some discussion of programmable machine tools, for example ), their extreme generality demonstrates the principle best.

Parts of the course.

The lecture course :

The lecture course covers the material suggested by the previous notes, rather thinly. It's a broad and ( therefore, inevitably ) shallow survey of the field rather than an attempt to describe anything in the detail it deserves.

The practical exercises :

The practical work is the most important part of the course, so far as learning about real control programming is concerned. Bits of the material covered in the lecture course ( not all of it, sadly, but for obvious reasons ) are accessible in the practical work, some fairly explicitly, other parts by imagination. In the practical course, you ( probably - exceptions are possible ) do a number of set exercises, followed by a larger assignment. There's a more detailed description, which includes information about the exceptions and the available assignments.

We have a laboratory all to ourselves; it is called the Robotics Laboratory ( despite my best efforts to make people call it, more modestly, the Control Laboratory, which is a better description - see above - or the 773 Laboratory ), and is accessible through the graduate laboratory. It contains a variety of interesting ( and some other ) equipment, and an astonishing collection of literature ( for want of a better term ).

You need your card key to get into the laboratory, and it won't work unless you're enrolled for the course.

The presentation :

The second most important part of the course is the presentation. Details are available; in brief, near the beginning of the course you choose a recently published paper from a list which I provide, then towards the end you give a seminar on the material of the paper, and write an essay which you submit for assessment. It isn't as bad as it sounds, and, oddly enough, several people have said ( after the event ) that it was one of the most valuable parts of the course.

The examination :

Circumstances beyond my control oblige me to inflict an examination upon you. I suppose we must count the examination as a part of the course, though it contributes nothing to your understanding of real-time programming, and absolutely nothing to anyone's enjoyment and fun. But we're stuck with it. It lasts for two hours.

There have been only two examinations, and I suppose that it's not likely that there'll be any more. You can read :

I expect that all members of the course will read their electronic mail reasonably frequently. That's by far the most convenient way to send you information, requests, pleas for assignment reports, etc. Also, please send me things ( like notification of which assignments and seminars you choose, etc. ) by electronic mail - if you don't, I'm likely to lose them or forget them.

How you spend your time.

How much time do you have for 773 ? Because of the ridiculous requirement that you have to get 14 points for a master's degree ( or BSc honours, or PGDipSci ), most of you are likely to be taking either three or four courses this semester. That means that my best assumption is that you are each taking 3½ courses. If I assume that you work a 42-hour week ( because it's about 40, and has a convenient factor of 7 ), I can infer that each of you owes me about twelve hours in each week of the semester.

Calculations are complicated by the uneven distribution of events through the semester. The lectures - around twenty of them, depending on how things go, run at three per week, begin at the start of the course, and go on until they finish. The presentation seminars start a week or so after the lectures end, in the same slots. They have to come reasonably far on in the course, so that you have time to prepare them; they can't come right at the end, because I have to get them marked before I start marking assignment 2, and I have to start that promptly at the official end of lectures or I don't finish in time. The times which follow are therefore rough estimates, and have to be fitted into that framework.

I've assumed that you spend :

That leaves three for reviewing lecture material, additional reading, and whatever. Obviously, the irregularity in events means that the details vary, but that's a worst-case estimate. You might choose to apportion your time differently, but it should add up to around twelve hours. Bear it in mind. And tell me about it - please send me a brief summary of your 773 activities at the end of each week. I shall not check up in any way on the information you send me; the object of the exercise is not to spy on you, but to jog your conscience. Regularity in sending reports is likely to be taken into account in marking.

NOTE, though, that you don't owe me any more than about twelve hours per week. Adjust your activities accordingly, and tell me if you think 773 is taking too long. Of course, if you choose to put in longer hours you are welcome to do so; it is very likely that the more you do, the more you'll learn, and if you're enjoying what you're doing - which I hope you are - there's no reason why you should feel bound by a 42-hour week.


More if you want it :

Occasionally I've written down things about the course for my own or other people's potential, though not necessarily actual, benefit. Here's a list. If any of it looks interesting, and the link doesn't lead to a useful document, ask me.

WORKING NOTES :


Alan Creak,
February, 1998.


Go back to me;
Go back to Computer Science.