Author image Jonathan Cline


Robotics::Manual - Manual for Perl Robotics and Robotics::(Devices)

What is the Robotics Module?

Robotics is an operational, Perl object-oriented framework for controlling, networking, and adding hardware devices which integrate into an automated physical robotics system.

The Robotics module controls real physical hardware such as motor controllers, embedded microprocessor systems, sensors, power control systems, and so on.

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

Robotics::Tecan Data Flow

2 POD Errors

The following errors were encountered while parsing the POD:

Around line 20:

'=item' outside of any '=over'

Around line 50:

You forgot a '=back' before '=head1'