Microb is a robot control library originally developped by IREQ,
Hydro-Québec's research institute. Microb stands for
Module Intégrés de
Contrôle de ROBots (Integrated Modules for
Robot Control). Microb is a set a C++ classes that allow
rapid development of controllers for electro-mechanic systems. The
library can help in the development of any real-time multi-threaded
application. Microb is divided in several modules that can be used
independantly, depending on the application.
One of the key advantages in using Microb is the amount of
operating systems that it can work on. Through the use of the
OSDL module, which insulates all the platform-specific code from
the application, one can use a desktop workstation to develop and
simulate an application and then recompile and test it on a
real-time OS.
Microb currently supports the following operating systems : QNX,
VxWorks, Windows NT/2000, Solaris, Linux, Irix and SunOs. Porting
Microb to a new OS would only require the porting of the OSDL
module.
Microb is distributed under the terms of the GNU Lesser General
Public License. (LGPL)
| Configuration | Configuration files management. |
| Control | Trajectory generation and PID control loop. |
| Devices | This module provides base classes to manage devices. |
| OSDL | The Operating System Dependant Library module includes classes for multi-threading, synchronization, timing, socket i/o and other platform-specific services, offering a common API to all operating systems. |
| Robot | The Robot module contains classes that are used to describe kinematic chains (HD parameters) and to compute inverse and direct kinematics for serial manipulators. The base module includes generalized inverse kinematics for serial decoupled robots, but classes can be derived to address other kinds of robot architecture. |
| Signal_processing | This library offer basic filtering capability. |
| Tools | This module offer misc. tools (i.e. user interface). |
| Utilities | This module includes client/server classes, data recording capabilites, chained list, etc. |
| Vectmath | This module can be used in any application that needs to do vector and matrix calculations with an emphasis on geometric computation, as several classes can be used to represent a transform. (euler angle, angle axis, quaternion or homogeneous matix). |