|
DROS DesignMaintained by: David Austin |
| 1.0 Introduction |
The design of an operating system for robotics is particularly complex. In addition to having all of the software issues associated with large and complex systems, we have real time constraints and radically different hardware systems which are hard to abstract. Therefore, the design at this stage is not complete. I apologise for that but hope that people will understand that I do not wish to lock us into decisions which may prove incorrect.
| 2.0 Architecture |
So what is the architecture? For the moment, I define the architecture as a collection of software modules communicating with each other. I am confident that robotics systems need to be written in a modular fashion (even if just for the practical reason that most software is written by PhD students).
| 3.0 Supporting Mechanisms |
| 4.0 Some Design Decisions |
| Software tools | As a general policy, I have decided to avoid the use of software
tools where I'm not totally convinced of their usefulness. I expect
many people will disagree with this but I've thought carefully about
it (because it does mean extra work). My decision is a result of the
following four reasons:
|
| CORBA | CORBA is a good example of a
recent software fad. It is an extremely complex system for
communications. Now the questions are: does it offer more than it
costs? and will it deliver reasonable real-time performance? To my
mind, the answer to both of those questions is no.
|
| ACE | ACE (Adaptive Communications Environment) is an example of a communications package that provides most of the functionality that we require. However, ACE suffers from an over-use of C++ templates, rendering it big and not portable. However, we can learn from ACE and you may notice many similarities between ACE and GeneralComms. |
| Fixed Messages | One of the decisions that I've made is that once released to a wider audience, the format of messages must be fixed. This is crucial because, when a number of people are using DROS, we can't expect them all to re-compile everything whenever they update their software. For more information, see the messages page. |
| Copyright 2001 David Austin |