<< CCC << Aim<< prototype | proposed extension |
Last updated: 11 April 2000 &beetung <Tue> 1:25am
Software Extension
The design of our existing visual navigation system software (VNS) is simple and logical. Nevertheless, there exist lots of rooms for improvement.Hardware ExtensionOne of the major design fault in our existing VNS is in its software implementation. There are a lot of gobal variables The hazard in utilizing gobal variables is that we cannot make efficient use of multi-processor architecture. In fact, we should strive for maximal locality and modularity design in a CPU intensive program. The reason behind this is related to parallelism in that both locality and modularity design can eliminate various issues related to concurrency.
Furthermore, if we are going to multi-thread our existing VNS, a mutx-lock or equvilent is needed on every global variable. This effectively limits the scalablity of our existing design since I cannot reuse any part of the code without altering them.
Eventually, further extension on our existing design would be wasteful. A new multi-threaded software model was implemented. None of the existing code was used in my implementation.
My extension to our existing VNS would be:
- use XSHM a set of direct-draw-to-screen routines for Linux
- implement a Xwindow class
- utilize p-thread - a C multi-thread package
- more efficient and smarter Track Extraction Algorithms(Folding)
- short-term position mapping along track
- Collusion avoidance algorithm (if time permits) –(divergence with B-Spline)
My supervisor would like to see a second car built!