|
| 1 | +# Customization |
| 2 | +To customize the simulated example to your own needs, you will need to take a couple of steps. |
| 3 | + |
| 4 | +- [Find lab resource classes](#resource_classes) |
| 5 | +- [Find or implement lab SiLA servers](#sila_servers) |
| 6 | +- [Write your device wrappers](#device_wrappers) |
| 7 | +- [Configure your lab definition](#lab_definition) |
| 8 | +- [Write your process descriptions](#process_descriptions) |
| 9 | +- [Customize the robot arm](#robot_arm) |
| 10 | + |
| 11 | +## Find lab resource classes {#resource_classes} |
| 12 | +The first step is to find the lab resource classes that you want to use in your lab. The |
| 13 | +[PythonLab](https://gitlab.com/OpenLabAutomation/lab-automation-packages/pythonLab) package provides a set |
| 14 | +of predefined resource classes (see [PythonLab api reference](pythonlab/api_reference.md)) that you can use as a starting |
| 15 | +point. |
| 16 | + |
| 17 | +## Find or implement lab SiLA servers {#sila_servers} |
| 18 | +The default method for communicating with lab devices in the LARA lab automation suite is through SiLA servers. |
| 19 | +[SiLA](https://sila-standard.com/) is an open source standard for communication between lab devices and has an active |
| 20 | +community of developers and users. SiLA server implementations for common lab devices can be found in various repositories, |
| 21 | +some of which we link to below: |
| 22 | + |
| 23 | +- [LARA Lab Automation device integration](https://gitlab.com/OpenLabAutomation/device-integration) |
| 24 | +- [SiLA Awesome List of Servers](https://gitlab.com/SiLA2/sila_awesome#servers) |
| 25 | + |
| 26 | + |
| 27 | +## Write your device wrappers {#device_wrappers} |
| 28 | +The communication between the lab orchestrator and the sila servers is handled by device wrappers. These wrappers |
| 29 | +translate the high-level commands defined in the process descriptions to specific SiLA commands. The |
| 30 | +[quickstart](quickstart.md) example comes with a couple of example wrappers that you can use as a starting point. |
| 31 | +You can find more information about writing device wrappers in the [wrappers documentation](wrappers.md). |
| 32 | + |
| 33 | +## Configure your lab definition {#lab_definition} |
| 34 | +Your lab config file describes the available resources in your lab and their capacities. In the quickstart template this |
| 35 | +file is named `platform_config.yaml`. You will need to modify this file to match the resources available in your lab. |
| 36 | +More information about the lab definition can be found at [lab configuration](lab configuration.md). |
| 37 | + |
| 38 | +## Write your process descriptions {#process_descriptions} |
| 39 | +A Pythonlab process description describes the steps that should be executed in the lab. They are written in python and |
| 40 | +parsed into a workflow graph by the orchestrator. The process descriptions are the main part of your lab automation and |
| 41 | +you will need to write them to match your specific use case. You can find more information about writing process |
| 42 | +descriptions in the [pythonLab introduction](pythonlab/processes.md). |
| 43 | + |
| 44 | +## Customize the robot arm {#robot_arm} |
| 45 | +Customizing the robot arm involves two parts. First of all, you will need to configure the |
| 46 | +[GenericRobotArm](https://gitlab.com/OpenLabAutomation/device-integration/genericroboticarm) SiLA server to match the |
| 47 | +brand and model of your robot arm. |
| 48 | +The [adaptation guide for the GenericRoboticArm](https://gitlab.com/OpenLabAutomation/device-integration/genericroboticarm/-/blob/main/docs/adaption.md) |
| 49 | +provides some guidance on how to do this. |
| 50 | + |
| 51 | +The second part is to configure locations of your labware and the devices with respect to the robot arm. |
| 52 | +This is done with the RobotTeachingService endpoint on the GenericRobotArm SiLA server. |
| 53 | + |
| 54 | +More info on configuring the arm and the locations can be found in the [robot arm documentation](robot arm.md). |
0 commit comments