## 4 Results  
### Implementation Issues  
The proposed mathematical model and geometrical computation of the angles can be implemented in different ways, since some considerations are properly taken during the implementation process. In short, when implementing the proposed method, the following remarks apply:* Image processing: there are some available programming libraries to handle images and perform a group of basic processing functions on them. When choosing such a library, it should be considered if popular functions such as the ones based on Gaussian filters and threshold-based objects detection are available;
* Programming functions: any modern programming language can be adopted to implement the proposed method. Actually, the expected services for the implemented algorithms, such as the processing of text files and geometry computations, are available in all modern programming languages;
* Visual evaluation of the movement patterns: although it is not a fundamental service to be provided, we believe that a visual module to track the movement of the motors as an animated presentation, with very low speed between consecutive movement states, can be valuable when perceiving the kinematics of the motors in a broader perspective. Based on the expected services when implementing the proposed method, we adopted the OpenCV programming library (opencv-python 4.1 version) and the Python 3 language in a unified script, which was responsible to process each image individually, extracting information about the red dot on the disc and its center, and saving such information into a text file. Actually, the use of OpenCV/Python for image processing has been a common approach when processing images [29, 30], with reasonable efficiency for a lot of different image processing tasks. Additionally, Python is a popular programming language with extensive open source resources and community support. For the implemented Python script, all images in a directory are processed, one by one, considering a sorting pre-processing algorithm that considers the timestamp of the image files (images are processed in the same order that they were created). The script was implemented to process JPEG or PNG images taken by a camera, but other formats could be considered in future implementations. As an example of input file, Figure 2 presents one of the taken images. As previously defined, each image is transformed into a grayscale image and it is cropped to comprise only information of the (white) disc. Then, after increasing visual contrast, the resulted image is processed by a Gaussian blurring filter and a threshold is defined to identify the (originally red) black dot in the image. In doing so, it is possible to identify the (\(x\),\(y\)) coordinates of the red dots, which are saved into a text file. Figure 3  
Figure 2: An example of an input image to be processed. visually presents the result of this processing step for the input image of Figure 2, but the actual result is only the computed coordinates. After processing all input images, a text file is generated. This file will contain in each row the name of the input image and the (\(x\),\(y\)) coordinates of the center and the red dot, respectively, with a blank space separating them. An example of part of such text file is presented in Listing 1. Points identified by the proposed method. ```
gold295.jpeg167167282.5223.0 gold296.jpeg167167279.5228.5 gold297.jpeg167167276.5234.0 gold298.jpeg167167272.5240.0 gold299.jpeg167167268.5244.5 gold300.jpeg167167265.0249.5 gold301.jpeg167167260.5254.5 gold302.jpeg167167256.0258.5 gold303.jpeg167167251.5263.0 gold304.jpeg167167247.0267.0 gold305.jpeg167167241.5270.5 gold306.jpeg167167236.0273.5 gold307.jpeg167167231.5277.0 gold308.jpeg167167225.5280.0 gold309.jpeg167167220.0282.5
```  
The text file containing all coordinates is processed by a Java 8 program, which performs all mathematical computations proposed in this paper.