Introduction
Screenshots
Download
Running DROS
Bugzilla (bug reports)
Man Pages
Mailing List
DROS FAQ


Namespaces
GeneralComms
Packer
MSDE
Localisers
Controllers
DROS Design
Configuration
Coding Standards
State of the Nation
What is DROS?
A Robot running DROS (XR4000) Particle Filter Localisation 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.

October 27, 2009: DROS-0.99 released

Latest DROS release at http://www.dros.org/download/DROS-0.99.tgz. Fixed some compiler errors.
June 25, 2007: DROS-0.98 released
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: DROS-0.96 released
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: DROS-0.94 released
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 parallel port.
April 23, 2004: DROS-0.90 released
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: DROS-0.81 released
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: DROS-0.80 released
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: DROS-0.50 released
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 of DROS.
October 26, 2003: DROS-0.45: released
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: DROS-0.41: released
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: DROS-0.40: released
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: DROS-0.30: released
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 events.
January 30, 2003: DROS-0.25: released
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: DROS-0.21: released
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 SICKLaserServer bug.
October 17, 2002: DROS-0.20: released
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 SuperLocaliser.
September 23, 2002: DROS-0.19: released
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: DROS-0.18: released
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: DROS-0.17: released
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: DROS-0.15: released
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.
June 13,2002: DROS-0.11: released
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.
June 11,2002: 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.

Copyright 2002-2007 David Austin, Luke Cole