CS452 - Real-Time Programming - Winter 2017

Lecture 22b - Acceleration

Public Service Annoucements

  1. Train Control I demo on Tuesday, 7 March.
  2. The exam will start at 12.30 on 6 April, 2017, and end at 20 April, 2017.


Our demos yesterday showed us that most students have noticed that their estimates of position have large errors when trains are accelerating. This lecture describes several approaches to calibrating acceleration and deceleration that go beyond short moves.

The methods are only sketched in and most of the focus is on problems that can occur. That's because you are left pretty much on your own. There's not much commonality in approaches that have worked well in the past.



Only one way to do it: using the sensors. The example uses a single group of sensors many times, but it's not the only way.

  1. Accelerate the train through a sequence of sensors
  2. Do it again with an offset, and again, ...
Going through sensors while accelerating happens every time the train accelerates, which means every time it changes speed. That should make you think about what you can do dynamically.


Many ways to do it, most using one or more video cameras. You may have noticed that there is a video camera hanging from the ceiling over track A. It is accessible from the PC that provides the terminal window.

  1. Make a video of the train accelerating
  2. Measure the image timing
  3. Measure the image geometry Strong possibility that there are systematic (or even random) distortions in the video. But there's not much you can do about any of this because all software, except the software you write from scratch, is full of junk you wouldn't put there if you were writing it from scratch.


The measurements are not much use on their own. We need an apparatus by which we can answer questions like, "I gave a speed 12 command so many ticks ago; where is the train now?" The problem is that the measurements, no matter how carefully made, are noisy. How can we reduce noise?


We have no idea why the train behaves the way it does, but we believe it will do now the same thing that it did a while ago. We want to summarise a table of numbers about which we assume only a minimum, such as,

There are many techniques for averaging, which is the way we treat random error. Is your data worth something complex?


We have some idea of why the train behaves the way it does, which we allow to influence our interpretation of our measurements. We have two ideas that might influence the model we choose.

There are two theoretical models that have been successful in the past

Please remember that they have also been unsuccessful, so be prepared to massage them with care

Return to: