Miro - Middleware for Robots
Overview

Miro is a distributed object oriented framework for mobile robot control, based on CORBA (Common Object Request Broker Architecture) technology. The Miro core components have been developed in C++ for Linux. But due to the programming language independency of CORBA further components can be written in any language and on any platform that provides CORBA implementations.

The Miro core components have been developed under the aid of ACE (Adaptive Communications Environment), an object oriented multi-platform framework for OS-independent interprocess, network and real time communication. They use TAO (The ACE ORB) as their ORB (Object Request Broker), a CORBA implementation designed for high performance and real time applications.

Documentation
You can download the Miro manual separately either in postscript or pdf-format: During the build process, a complete HTML on-line reference documentation is build using the Doxygen documentation system. This includes dependency graphs, class diagrams and hyper-linked source code. If you don't need this, doxygen is not necessary to build Miro.
On-line Reference
You can browse the on-line reference manual here. For the sake of clearness, we split it up into the idl-description for the data-structures that are communicated and the cpp-description for the implementation that uses the idl-stuff. The reference is based on the latest snapshot release as you can get it here.

Because the snapshot below is very old, there is another, more recent documentation online. This documentation is generated the 5th december 2005. Use this to see the current idl and cpp online reference.
Download
Their are two possibilities to get the Miro source code.
  • A snapshot from the latest 2.0.beta3 version release. This version is known to compile (at least for us) and should be quite stable. Sure there are some bugs and not all functionallity is implemented yet (so please let us know all bugs you've encountered).

    Sorry, the snapshot below is very old and does not work with recent verisons of gcc, ACE and TAO. So please download by anonymous cvs, while we work on the next release.


  • By anonymous CVS access.

    Please set the CVSROOT environment variable to ":pserver:anoncvs@owl.informatik.uni-ulm.de:/soft/MiroRepository/". Now login to the cvs-server via cvs login. If you are asked for a password, simply hit enter. Then checkout the whole Miro tree with cvs checkout Miro.
    (Alternativelly you can do the login and checkout with
    cvs -d :pserver:anoncvs@owl.informatik.uni-ulm.de:/soft/MiroRepository/ login and
    cvs -d :pserver:anoncvs@owl.informatik.uni-ulm.de:/soft/MiroRepository/ checkout Miro)
Installation

There is a more detailed installation instruction in the Miro manual found in the documentation section. So the following is just a brief overview:

This software package depends heavily on ACE and TAO. Currently, Miro requires ACE and TAO to be built by using the config and make files and not by using the newly introduces autoconf machinery.

The Miro libraries depend on ACE, TAO and Qt (>= 3.1). These should be installed first. We currently recommend the lates bugfix only release of ACE and TAO, that is ACE 5.4.1 and TAO 1.4.1. (Recent versions had a bug in the handling of the Any data type.) The environment variables ACE_ROOT, TAO_ROOT, QTDIR and LD_LIBRARY_PATH should be set accordingly.

Now. Set the environment variable MIRO_ROOT to the base directory of your Miro directory tree (/usr/local/Miro for example) and add $MIRO_ROOT/lib to your LD_LIBRARY_PATH.

Switch to the directory $MIRO_ROOT and do a ./bootstrap; ./configure; make.

License

Copyright © 1999 - 2005 Department of Neural Information Processing, University of Ulm, Germany.

Miro is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation.

Be sure to understand that this software is in a stage of very active development and we give no warranty at all. We already did some fairly big software projects with Miro and expect it to be quite usable, but nevertheless we are not liable for any damage done with it or by using it.

Contact
The core developers are (in alphabetical order):
  • Stefan Enderle
  • Stefan Sablatnoeg
  • Hans Utz
Additional authors are (in alphabetical order):
  • Uli Kaufmann
  • Gerhard Kraetzschmar
  • Gerd Mayer
  • Guillem Pages
  • Steffen Simon
  • Florian Sterk
If you want to be involved into Miro development, please subscribe to the miro mailinglist.
Web Page Info
Send comments and suggestions to Ulm Robotics webpeople.