|
|
DROS stands for Dave's Robotic Operating System and it is basic
software modules needed for robotics. At the moment, the
framework consists mainly of support functions for modular
programming and modules for mobile robots. However, in the future the
scope should expand and, of course, contributions are most
welcome.
DROS is open source and is distributed under the GNU Public License.
This license was chosen because we want to advance the progress of
robotics research and would like people all to contribute to the
science of robotics by releasing their code.
DROS has evolved from my efforts to program robots for over six years.
Originally, I worked on an abstraction for manipulator arms (called
RobotADT) at the Australian National
University, then I worked with the Intelligent Service Robot (ISR)
system at the Royal Institute of
Technology, Stockholm and started work on my own system (called
RSS for Robot Software System) while in Sweden. I am now continuing
and extending RSS to produce DROS, again at the Australian National University.
DROS will be used as the main platform for mobile robotics research at
the ANU. It now supports basic motion capabilities for mobile robots
with SICK laser scanners.
- In the short term, there will be some consolidation - bug fixes
in the supporting mechanisms, addition of security, support for some
more hardware.
- In the longer term, I'd like to support simpler robots that do
not have SICK laser scanners. Vision seems the obvious choice and I'm
investigating visual localisation techniques.
- In the really long term, I'd like to investigate adding better
real-time support to the GeneralComms library so that DROS can be used
for arm control.
The basic idea of the DROS is to re-use the good parts of all of the
software systems that I have been involved with over the years (it is
heavily based on the ISR via RSS) to fix (most of) the
bugs/limitations in previous systems. The major features are as
follows:
Supporting Mechanisms
- Promote re-use of components. The present system requires
that everyone maintain their own compiled copy of the system. This is
wasteful of disk space and time. DROS will allow a much simpler use of
the system, possibly without even re-compiling, through the following:
- Installed programs will be provided in some
public directory so that few people have to compile the entire
system.
- Unique message IDs will be used within a
pre-defined message header. Each message ID will have a
defined (and documented) structure associated with it. Once
any program that uses that message is "released" the message
should be frozen and never changed. This is necessary so that
the installed components will not crash because of changed
message formats.
- Run-time configuration will allow re-use of
installed components without re-compilation.
- Simplify configuration of the system. One of the problems
with the ISR system is that the configuration information is scattered
in a lot of small files and is not easy to use. The new system must
address this and also should provide a global configuration space so
that people do not have multiple copies of a configuration file
floating around. The DBManager will
provide a global database in which the configuration (as well as other
data) can be stored. See also more information on
configuration.
- Global name space. The DROS system will use a global name
space to facilitate multi-robot experiments and also to avoid the
clashes that have been occurring when multiple people run the ISR
system on the same CPU (e.g. for simulation). See also the NameServer.
System Architecture
At this stage, the architecture of the new system has not been
decided. However, some thoughts are:
- Avoid centralisation.
- Must support both behaviour-based and hybrid dynamic/switching
control.
- Need to decide how we design the controllers. It should be
possible to build hierarchies of controllers using some standard
interface.
- The user interface (or programmer's interface) should be
available to all parts of the system. It should be possible to send
commands to any part of the system.
For instructions for getting started with DROS, see here. See also the
DROS FAQ (Frequently Asked Questions)
|