Download as a PDF

Transcript
to grab an image and process some of it at 60 fps with a latency of less
than two frames image processing was the most likely cause of the latency.
Of course, locating the ball with two frames latency is not running all of
vision with 2 frames latency.
Having determined that the latency problem was not hardware
I was faced with a very important decision. The code for the Vision
2002 was very large and was able to run RoboCup Main Vision, a Ball
Vision system and RoboFlag Vision. It also had a complex Graphical User
Interface with a number of threads running simultaneously. In addition,
the documentation of this code was minimal and not very comprehensive.
I could spend my time fixing and documenting the Vision 2002 system
or I could develop a new system. Vision 2002 did work and with some
investigating it might be possible to locate the latency problem if it was
in an algorithm. On the other hand, if the problem was because of its
architecture or graphical user interface (GUI) it would be very hard to
locate and correct without making major changes. It was this uncertainty
in the cause of the latency that resulted in my decision to develop a system
from the ground up using the Vision 2002 system as much as possible.
I began to add components of the Vision 2002 system to the vision
test environment that I wrote to test the latency of the system. I timed
each piece of code to see how long it took and also the latency of the
complete test environment. With every Vision 2002 component that was
added, the processing time began to creep closer to the absolute limit of
16 ms but the latency remained below 2 frames. Finally when I attempted
to segment four colors the latency of the system became unstable and the
time of the loop was just over 16 ms. The cause the latency was known
for certain. Vision 2002 did too much processing of the image; it would
have to be reduced to reduce the latency of the system.
Knowing the cause of the problem was just the beginning.
iv