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
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.
October 27, 2009:
Latest DROS release at http://www.dros.org/download/DROS-0.99.tgz.
Fixed some compiler errors.
June 25, 2007:
Latest DROS release at http://www.dros.org/download/DROS-0.98.tgz.
Added more vision routines. Added some old vision and
localisation research. Added more hardware interfaces to HAL.
Added more interfaces to robots. Changed some directory/file locations.
Fixed many compling errors/warnings and bugs.
DROS-0.98 has 358,344 lines of code, according to sloccount.
April 6, 2007:
Latest DROS release at http://www.dros.org/download/DROS-0.96.tgz.
Added Monte Carlo Localisation algorithms. Added ServoToGo driver.
Added USB Missile Launcher and USB Circus Cannon drivers. Added
USB joystick command line program to control one, two or four
motors, locally or over the network using UDP packets, via the
parallel port PWM and encoder kernel driver. Added
parallel port PIC microcontroller programmer. Added PIC
microcontroller library to control devices such as motors, servos, LCD
(HD44780) and communicate via serial (RS232) and USB2.0
(ISP1581, currently still under development). Added (some) vision
research work. Fixed some minor bugs. DROS-0.96 has 251,514
lines of code, according to sloccount.
February 18, 2005:
Latest DROS release at http://www.dros.org/download/DROS-0.94.tgz.
Added the DROSImage class and image processing library. Added
characteristic polynomial calculation for matrices. Added
polynomial functions and root finding functions (general and
for polynomials). Added many matrix functions. Added (some)
support for Darwin. Add VideoLogger for logging video
streams. Improved support for Special Robotics Mode in the
SICKLaserServer. Added parallel port PWM driver and encoder
driver. These allow ('poor mans') control of robots using the
April 23, 2004:
Latest DROS release at http://www.dros.org/download/DROS-0.90.tgz.
Changed GCEventLoop to use DROSPIHelper. Added per object
debugging control. Significant improvements to how the
SuperLocaliser deals with clients that want both world and
robot pose data. Improved SuperLocaliser delivery of pose
data. It now predicts forward in time a bit to keep clients
informed (if the real data is not available). Huge
improvements to the PathPlanner - now gives updated estimates
of the plan in robot coordinates (I think that it wasn't
before). Improved the transmission of the plan too, so that
it is possible to get the start point. Updated DROSInterface
to use this info. DROSInterface also now can draw the plan in
robot coords. DROSInterface now draws the world circles
(poles) from the map. Added video drivers for Firewire
(Firewire appears pretty dodgy under Linux) and started
Video4Linux drivers. Fixed/improved timestamping issues with
odometry. Updated docs to indicate which programs/packages
DROS requires for installation.
January 13, 2004:
Latest DROS release at http://www.dros.org/download/DROS-0.81.tgz.
Fixed running doco and made a mkrelease script to munge doco
and GlobalConfig search paths. Should make releasing a more
automated process and running less of a brain strain.
January 9, 2004:
Latest DROS release at http://www.dros.org/download/DROS-0.80.tgz. This is a
significant step forward in usability for DROS. Fixed hostname
bug in TCPSocketServer. Fixed minor search path bug.
Refactored MobileRobotMain, LaserServerMain, SuperLocaliser,
LaserPoseTrackerPoly, PathPlanner and DWAPlanner to be more
self-contained. Implemented Monolith - a single-process version
of DROS. Started Bumper, IR and Sonar support for XR4000.
Added CameraServer for serving images. Improved Packer for
dealing with large payloads (without unnecessary copying).
Fixed bugs in DROSServerClient. Changed NameServer and many
processes to work better on a computer without a
network. Updated running instructions.
November 22, 2003:
Latest DROS release at http://www.dros.org/download/DROS-0.50.tgz. Added to
SuperLocaliser ability for requests to wait for new data if the
wait should only be short (pending requests). Fixed major
timestamping bug in SuperLocaliser. Fixed another timestamping
bug in LaserPoseTrackerPoly. Added timestamping test program.
Added maxrange to LaserProxy (and support to LaserServer) so
that one can tell if a reading is a valid reflection or not (use
method ValidReading in LaserProxy). Note that this change means
that old versions of LaserProxy will not work with new versions
of the server. Added search path for files that are required by
processes (currently there are a few processes that require
files). Ideally, I'd prefer not to use files, but the use of
files should be easy. Added C version of DROS debug macro.
Prefer this over the C++ version in future. Made the simulated
laser server more efficient. Added better timestamping to
serial data from the real SICK laser scanner (not tested yet,
should consider a variable formula, based on bytes before the
last one and baud rate). Started Monolith - monolithic version
October 26, 2003:
Latest DROS release at http://www.dros.org/download/DROS-0.45.tgz.
Added Analysis directory, at the moment, includes 2D
line-fitting. The plan is for all non-specific data analysis to
end up there. Changed laser server to use more efficient
messages and to transmit max scan range (so that measurements
with no reflection can be rejected). More documentation. Fixed
bugs in SICKLaserServer when replaying recorded data. Added HAL
object for replaying recorded laser scanner data. Made
SocketChannel more tolerant to interruptions caused by signals.
May 21, 2003:
Quick bugfix release of DROS at http://www.dros.org/download/DROS-0.41.tgz.
My recently developed intensity code for the SICKLaserServer had
bugs (features, limitations, etc..) for non-intensity mode.
If a client asked for intensity data in non-intensity mode, it
just got nothing. This has been fixed.
May 20, 2003:
I'm pleased to announce a new release of DROS at http://www.dros.org/download/DROS-0.40.tgz.
Added ability to control multiple localisers to SuperLocaliser,
includes concept of getting lost and un-lost. Added support for
reflectivity/intensity information to the SICKLaserServer and
LaserProxy. Also displays intensity with DROSInterface.
Discovered bug in the event loop/blocker interaction. Can be
problems with using blockers when there are multiple events
occurring at the same time and one of them calls a blocker. A
major rewrite of the EventLoop is planned. In the meantime,
need to be careful with Blockers, preferably avoid using them.
The current implementation of SuperLocaliser chews CPU time
after 24 hours of running and data.
March 31, 2003:
After another long delay (Christmas, too many papers for IROS),
I'm finally able to announce a new release of DROS at http://www.dros.org/download/DROS-0.30.tgz.
Major changes to Blocker/GCEventLoop - tidied this all up and it
now is much easier to understand (and more correct too :-)).
Added reconnection to a number of proxies and processes. Fixed
some bugs that had crept into the DWAPlanner, making robot
motion broken. Fixed a number of memory leaks and uninitialised
variables. Added BlackBox (i.e. flight recorder) for logging of
January 30, 2003:
After a long delay (problems with hosting service), I'm finally
able to update the web pages and announce new releases of DROS.
Next release of DROS at http://www.dros.org/download/DROS-0.25.tgz.
Major changes to NameServer, ComponentBase, DBManager, Executer
and StateManager. MobileRobotServer can now reload the xrm
module as a work-around for firmware bugs. Added non-blocking
connection methods. Added reconnection to NameServerProxy,
MobileRobotProxy and LaserProxy.
November 7, 2002:
Next release of DROS at http://www.dros.org/download/DROS-0.21.tgz.
Bug fixes in: NetTools (malloc'ed insufficient space),
another problem of packing signed chars in Packer.pm, fixed
October 17, 2002:
Next release of DROS at http://www.dros.org/download/DROS-0.20.tgz.
Added DROSPIHelper to help with ProgInterface command
processing. Added examples of Packer usage to the
documentation. Documentation of namespaces (under development).
Bug fixes in: Packer (short and long ints). Added ability to
mirror servers (in a rate-limited fashion) to LaserServer and
September 23, 2002:
Next release of DROS at http://www.dros.org/download/DROS-0.19.tgz.
Fixed some bugs: packing signed chars in Packer.pm (perl 5.8.0
spews warnings, GCEventLoop mem leak, lots of work going on
behind the scenes.
September 2, 2002:
Next release of DROS at http://www.dros.org/download/DROS-0.18.tgz.
Documentation update - included screenshots and goals of DROS.
I've been working hard on a number of things that will eventually
make it into DROS but are not quite ready yet.
August 2, 2002:
Next release of DROS at http://www.dros.org/download/DROS-0.17.tgz.
I've improved the NameServer, should now run better on machines
which can't look up their hostname. Also fixed the position
of the laser scanner relative to the robot. Pose tracking
works much better now. DROS-0.16 had a bug in the DROSInterface
(hardcoded my own IP address here! DOH!).
July 12, 2002:
Next release of DROS at http://www.dros.org/download/DROS-0.15.tgz.
This release dramatically improves DROSInterface. Also,
running DROS should be easier.
Next release of DROS at http://www.dros.org/download/DROS-0.11.tgz.
This release fixes bugs in the makefile system. Hopefully
things will compile better now.
DROS-0.1: Initial release of DROS source code
The initial release of DROS source code is at http://www.dros.org/download/DROS-0.1.tgz.
This release contains a modular programming environment as well
as modules for mobile robot control.