Development of software for small- and medium-sized experimental setups and custom laboratory equipment differs from the software production for large-scale experiments or commercial applications. Everyday work of research group involves different types of jobs with equipment control and data acquisition ranging from manipulation with distinct parts of equipment to operation with complete experimental setups with complex automation architecture.
Main research topics of our laboratory involve development of laser-aided plasma diagnostics, including Thomson Scattering and Laser Induced Fluorescence for ITER divertor. Among other tasks, we design and build experimental setups and industrial-grade equipment. To simplify the development of software and firmware, a specialized framework has been created, meeting the following requirements:
- Simple transition between different stages of equipment development: playing around with dedicated parts, assembling prototypes and preparing full-fledged experimental setups
- Integrating custom-made equipment without standard control interface protocols
- Having specialized tools for implementation of high-level logic scripts, data storage and mathematical toolkit for online data processing
- Accessibility. Members of research group have different approaches and preferred tools for data processing – jupyter, IDL, matlab, etc., demanding unified data access interface
- Straightforward integration with major large-scale control systems like EPICS/CODAC
- Out-of-the-box remote participation and experiment control support
- Operation of scientific equipment in stand-alone mode during debugging, calibration and adjustment
- Utilization of the most modern industry-approved programming techniques, tools and methodologies
- Various platforms support. It is essential to provide similar API for full-fledged x86_64 machines, an ARMv7-based devices or other hardware architectures. Ready-to-use GNU/Linux-based images for popular built-in platforms such as RaspberryPi, Atlas-SoC/DE0-nano-SoC simplify implantation of control system and network interface into equipment being developed
The LabBot framework is intended for small/medium-sized research teams to assist the implementation of industrial-grade equipment software, while reducing to zero the necessity of design of standard features like message passing, database interaction, etc. Modular system, flexible uniform messaging format, set of standard modules for data storage, host control, user notification, event-driven system architecture enables to solve vast range of laboratory automation tasks with humble programmers resources.
Examples of successful LabBot application are as follows: polychromators for Thomson scattering diagnostics, test bench for research on sputtering and deposition processes in RF-discharge, assistance for a study of dielectric mirrors for laser resistance, etc.
Open repository of ready-to-use modules and drivers permits user to install various components to the system in a one-click manner. This repository allows to combine efforts of all platform users and improve code reusability. LabBot is licensed under GPLv2.0 and introduced to public on May 10, 2019.