Introduction to Microb

Description

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)

Base modules

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).