The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Robotics::Tecan - Control Tecan robotics hardware as Robotics module

See Robotics::Manual

VERSION

Version 0.23

probe

attach

Start communication with the hardware.

Arguments are:

Robotics object: The variable returned from new().
(optional) Flags. A string which specifies attach options as single characters in the string: "o" for override

Returns: String containing hardware type and version from manufacturer "VERSION" output.

Will not attach to "BUSY" hardware unless override flag is given.

Write

Function to compile a command to hardware Robotics device driver and send the command if attached to the hardware.

park

Park robotics motor arm (perhaps running calibration), based on the motor name (see 'move')

For parking roma-named arms, use the arguments: =item (optional) grip - gripper (hand) action for parking: "n" or false means unchanged grip (default), "p" for park the grip

For parking liha-named arms, use the arguments:

For parking Return status string. May take time to complete.

grip

Grip robotics motor gripper hand, based on the motor name (see 'move').

For roma-named motors, the gripper hand motor name is the same as the arm motor name.

For roma-named motors, use the arguments: =item (optional) direction - "o" for hand open, or "c" for hand closed (default) =item (optional) distance - numeric, 60..140 mm (default: 110) =item (optional) speed - numeric, 0.1 .. 150 mm/s (default: 100) =item (optional) force - numeric when moving hand closed, 1 .. 249 (default: 40)

For pnp-named motors, use the arguments: =item (optional) direction - "o" for hand open/release tube, or "c" for hand closed/grip (default) =item (optional) distance - numeric, 7..28 mm (default: 16) =item (optional) speed - numeric (unused) =item (optional) force - numeric (unused)

Return status string. May take time to complete.

move

Move robotics motor arm, based on the case-insensitive motor name and given coordinates.

Note: The Gemini application asks the user for arm numbers 1,2,3... in the GUI application, whereas the robotics command language (and this Perl module) use arm numbers 0,1,2,.. The motors are named as follows:

"roma0" .. "romaN" - access RoMa arm number 0 .. N. Automatically switches to make the arm the current arm. Alternatively, "romaL" or "romal" can be used for the left arm (same as "roma0") and "romaR" or "romar" can be use for the right arm (same as "roma1").
"pnp0" .. "pnpN" - access PnP arm number 0 .. N. Alternatively, "pnpL" or "pnpl" can be used for the left arm (same as "pnp0") and "pnpR" or "pnpr" can be use for the right arm (same as "pnp1"). Note: The Gemini application asks the user for arm numbers 1,2,3... in the GUI application, whereas the robotics command language (and this Perl module) use arm numbers 0,1,2,..
"temo0" .. "temoN" - access TeMo arm number 0 .. N.
"liha0" .. "lihaN" - access LiHA arm number 0 .. N. (Note: no commands exist)

For moving roma-named motors with Gemini-defined vectors, use the arguments:

vector - name of the movement vector (programmed previously in Gemini)
(optional) direction - "s" = travel to vector start, "e" = travel to vector end (default: go to vector end)
(optional) site - numeric, (default: 0)
(optional) relative x,y,z - three arguments indicating relative positioning (default: 0)
(optional) linear speed (default: not set)
(optional) angular speed (default: not set)

For moving roma-named motors with Robotics::Tecan points (this module's custom software), use the arguments:

point - name of the movement point (programmed previously)

For moving pnp-named motors, use the arguments:

TBD

For moving temo-named motors, use the arguments:

TBD

For moving carousel-named motors, use the arguments:

TBD

Return status string. May take time to complete.

move_path

Move robotics motor arm along predefined path, based on the case-insensitive motor name and given coordinates. See move.

Arguments:

Name of motor.
Array of Robotics::Tecan custom points (up to 100 for Genesis)

Return status string. May take time to complete.

Read

Low level function to read commands from hardware.

detach

End communication to the hardware.

status_hardware

Read hardware type. Return hardware type string (should always be "GENESIS").

configure

Loads configuration data into memory.

pathname of configuration file in YAML format

Returns: 0 if success, 1 if file error, 2 if configuration error.

status

Read hardware status. Return status string.

initialize

Quickly initialize hardware for movement (perhaps running quick calibration). Return status string. May take time to complete.

initialize_full

Fully initialize hardware for movement (perhaps running calibration). Return status string. May take time to complete.

simulate_enable

Robotics::Tecan internal hook for simulation and test. Not normally used.

REFERENCE ON NAMED PIPES

Named pipes must be accessed as UNCs. This means that the computer name where the named pipe is running is a part of its name. Just like any UNC a share name must be specified. For named pipes the share name is pipe. Examples are:

\\machinename\pipe\My Named Pipe \\machinename\pipe\Test \\machinename\pipe\data\Logs\user_access.log

Notice how the third example makes use of an arbitrarly long path and that it has what appear to be subdirectories. Since a named pipe is not truly a part of the a disk based file system there is no need to create the data\logs subdirectories; they are simply part of the named pipes name. Also notice that the third example uses a file extension (.log). This extension does absolutely nothing and is (like the subdirectories) simply part of the named pipes name.

When a client process attempts to connect to a named pipe it must specify a full UNC. If, however, the named pipe is on the same computer as the client process then the machine name part of the UNC can be replaced with a dot "." as in:

\\.\pipe\My Named Pipe

AUTHOR

Jonathan Cline, <jcline at ieee.org>

BUGS

Please report any bugs or feature requests to bug-robotics at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Robotics. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc Robotics::Tecan

You can also look for information at:

ACKNOWLEDGEMENTS

COPYRIGHT & LICENSE

Copyright 2009 Jonathan Cline.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.

8 POD Errors

The following errors were encountered while parsing the POD:

Around line 127:

'=item' outside of any '=over'

Around line 161:

You forgot a '=back' before '=head2'

Around line 351:

'=item' outside of any '=over'

Around line 634:

You forgot a '=back' before '=head2'

Around line 640:

'=item' outside of any '=over'

Around line 1080:

You forgot a '=back' before '=head2'

Around line 1145:

'=item' outside of any '=over'

Around line 1207:

You forgot a '=back' before '=head2'