Perl Robotics

From LabAutopedia

Jump to: navigation, search

Perl Robotics is an Open Source, operational, Perl object-oriented framework for controlling, networking, and adding hardware devices which integrate into a physical robotics system such as an automated liquid handling workstation.  The Robotics module controls real physical hardware such as motor controllers, embedded microprocessor systems, sensors, power control systems, and so on.  Provides local communication to robotics hardware devices, related peripherals, or network communication to these devices. Also provides a high-level, object oriented software interface to abstract the low level robotics commands or low level robotics hardware. Environmental configuration is provided with a configuration file in YAML format. Allows other hardware device drivers to be plugged into this module.

Current Laboratory Automation Hardware Support

  • Tecan Genesis/EVO
  • FIALab MicroSIA
  • Custom USB devices

Design Concepts

  • The Robotics module probes the local system for connected hardware devices. The list of connected hardware is returned to the user, with each device having a uniquely addressable name.
  •  The user application chooses device(s) from the list which are to be controlled and calls new() for each device.
  • The user application "attaches" to the hardware device. The hardware device may exist across the network on a machine running a Robotics server. For locally-connected hardware, the user application can choose to start a network service. When attached, the hardware is ready to be used. Otherwise, the hardware may be busy.
  • For networked hardware, the user application supplies a password for authentication and/or secure communication.
  • The user application sends commands through the hardware objects, which result in compiled commands sent to the hardware.

Technical details: This & related modules use YAML to allow users (and the module itself) to use configuration data in a readable and open standard way. The configuration data contains: physical locations of objects to interact with, physical points in space to navigate from/to, dictionary definitions, equipment lists, and so on, as well as the tokens for the low-level robotics commands.


The main Robotics module is an abstraction layer for many types of robotics devices and related peripheral hardware. Other hardware, motor controllers, CNC, or peripheral devices may exist below this module, or under Devices, or under other libraries, and new implementation is welcomed.

Click [+] for other articles on 
Programming automation(1 C, 10 P)
The Market Place for Lab Automation & Screening  Automation Software