## 3 Error Correction Framework
### Stage 1: Static Error Correction  
The first step is to realise a system that starts with a static error correction, which is simpler to handle when compared to a realtime error correction. The system contains multiple modules/subsystems along with databases, a laser tracker, and a robot controller. The system is aimed to work with any kind of metrology device and robot controller as long as it can obtain measurement data from a tracker and position feedback from the robot controller. A normal ethernet network is used to link the system together. The system is designed to be distributable, which can work in isolation (LAN) as well as through the network (campus network). Figure 1 shows the architecture of the system. The network-based control system includes the PID. It receives the robot position from the robot controller and measured robot position from the Leica Tracker through the network. It gives the error feedback to the error correction and compensation module to perform the calibration procedure. It also gives the error feedback to the database for logging and analysis purposes. The error correction and compensation module then gives the compensated positional output to the robot controller so it can fix the robot position. It also gives the position output to the network-based controller to close the loop. The updated position is also saved in the databases. The laser interferometer is the best choice for the project due to the flexibility required. The manipulator's arm needs to be measured during its movement. The interferometer device is required according to ISO 9283, where it requires the use of a high-accuracy, large-volume 3D or 6 DOF measurement system [1]. The best available interferometer for the project is Leica Tracker AT901. As the first stage of the project, the static error correction was developed. This system was developed using a UR5 robot to test the static error correction through the network. The system used the Leica Tracker with a reflector on in 3D. The system was capable of performing static error correction. Figure 2 illustrates the architecture of the system that was developed. The system could perform the static error correction and achieved the first level of performance in the project experiment. The CEC manager is the system developed to communicate between the Leica Tracker and UR5 Controller. It can also initialize the tracker and performs the bird bath procedure, which moves the tracker laser and head to look at the bird bath position on the tracker. It also sends the measurement points that the central system sends to the calibration module and the database. The UR5 controller also has the modules to interface with the CEC manager to send the robot position. It also has the module which updates the UR5 robot position based on the corrected position communicated by the CEC manager. CEC is the network-based control system, which includes the PID. It receives the robot position from the robot controller and measured robot position from the tracker through the network. It gives the error feedback to the error correction and compensation module to perform the calibration procedure. It also gives the error feedback to the database for logging and analysis purposes. The error correction and compensation module then gives the compensated positional output to the UR5 robot controller so it moves the robot arm to the corrected position. It also gives the position output to the CEC manager to close the loop. The updated position is also saved in the databases. The physical cell is shown in Figure 3 (right side) and includes the Leica Tracker and the UR5 arm. The tracker tracks the UR5 robot arm's position by using a 1.5\({}^{\prime\prime}\) SMR (spherically mounted retroreflector) ball probe or the reflector bolt. The SMR is fixed to the robot end-effector (pneumatic gripper) by using glue. The SMR can only provide three-dimensional accuracy, which suffices for the requirements of stage 1 of the project. Only the positional accuracy can be dealt with at this stage.