What is MaCI?

MaCI (Machine Control Interface) is a library for building robot control softwares based on modular decomposition of the software into functional pieces. The leading idea of MaCI is to provide:

  • Reusable software components for robotic research
  • Define unified interface for the module communication, which in effect is hardware abstraction layer (HAL)
  • Provide implementation guidelines for the developers

MaCI development is "developer driven" in the sense, that it tries to simplifies the writing of a control software for a robot to a level that anyone can do it. GIMnet communication is integrated into MaCI interface automatically, making the modules able to function distributedly. Naturally, all the GIMnet features are inherited by the MaCI modules.

Main MaCI features

  • Inbuilt distributed structure (inherited from GIMnet)
    • Point-to-point service requests (Globally, locally...)
  • Abstract interface for intermodule communication
  • Reusable code library
  • Upper class for unified features
    • Open, Close
    • Unified command line parser
    • Registering and unregistering services
    • Searching own modules based on own "machine describtor"