%&tex
    As the previous development cycle was aborted prematurely, the development cycle is repeated for the next feature.
    Starting with a feature selection process. Followed by the rapid development.
    

    \subsection{Feature Selection}
        The implementation of the end-effector proved to be unfeasible and was therefore removed from the design.
        This means that only two features are left.
        \autoref{tab:featurestab2} shows an updated feature comparison.
        Compared with the previous feature selection in \autoref{tab:firstfeatureselection}, the number of tests for the \ac{scara} decreased and the \ac{cof}/Time increased.
        This is because \autoref{test_tool_change} relied on both the \ac{scara} and the End-effector which is no longer applicable.
        Based on the feature comparison, the next component to implement is the \ac{scara}.

        \begin{table}[h]
            \caption{Comparison of the two remaining features in the design process. This table is an updated version of \autoref{tab:firstfeatureselection}.}
            \label{tab:featurestab2}
            \rowcolors{2}{white!100}{lightgray}
            \begin{tabular}{llrrrr}
                \toprule
                Feature      & Dependees   & Tests  & \ac{cof}   & \multicolumn{1}{l}{Time}    & \ac{cof}/Time  \\ 
                \midrule
                \ac{scara}        & $-$           & $2$      & $50\%$   & $12$ days & $4.2$        \\
                \ac{cdc}          & $-$           & $2$      & $30\%$   & $10$ days & $3$          \\ 
                \bottomrule
            \end{tabular}
        \end{table}

        \subsubsection{Evaluation}
            The feature selection for the second cycle is an updated selection process of the first cycle (\autoref{sec:case_feature_selection_1}).
            This resulted in a quick and effortless feature selection process, as most of the work was already done.

    \subsection{Rapid Development for \acs{scara}}
        \label{sec:rdfs}
        The goal is to present a functional model of the \ac{scara}.
        The requirements state that it must be able to write three characters within two seconds.
        And to pass \autoref{test1} it must draw a \SI{50}{\milli\meter} by \SI{70}{\milli\meter} rectangle within one second.
        The basic design principle is based on the initial design as shown in \autoref{fig:combined}.
        For the lowest detail level of the design, I decided on a kinematics model.
        The model is very simple as it does not implement any physics.
        However, the model enables me to tinker with the design parameters, such as the lengths of the linkages and joint angles.
        In the following steps, the level of detail is gradually increased to arrive at an elaborate model.
        Planning all the different steps in advance is difficult as design decisions still need to be made.
        Nonetheless, I can describe at least the following levels of detail for the model:
        \begin{enumerate}
            \item \textbf{Basic kinematics model:} forward and inverse kinematics, no physical behavior.
            \item \textbf{Basic physics model:} ideal 2D physics, ideal joints and rigid bodies with mass and inertia.
            \item \textbf{Basic motor behavior:} joint actuation with non-ideal DC motor.
            \item \textbf{Basic control law:} path planning.
        \end{enumerate}
        After these steps the optimal order of implementation for the levels of detail becomes vague.
        However, the following elements are required to make an elaborate model:
        \begin{itemize}
            \item Improved motor model
            \item 3D physics model
        \end{itemize}
        When the first design decisions are made, the succeeding levels of detail for these and other elements are laid out.


        \subsubsection{Evaluation}
            The current steps in the rapid development are difficult to perform.
            There is, unsurprisingly, lack of a clear vision of the end-product, which makes an explicit description of every level of detail not realistic.
            However, it was still possible to describe steps for the initial levels of detail in the design.

            The remaining elements, that are essential to the design, take shape in a later stage of the development.
            Apart from this small deviation, the deliverables of this step are a good start of this development cycle.

    \subsection{Variable-Detail Approach}
        The following steps is to increase the level of detail of the model.
        The initial model together with the set of steps in the detail level is inherited from the previous design step.
        To start, I implement the basic model and implement the different levels of detail.
        Based on the model after those steps, it is possible to make more detailed design decisions.
        The decisions make it possible to plan the subsequent levels of detail.
        Implementing these details results in a competent model.

        \subsubsection{Basic Design Implementation}
            \begin{marginfigure}
                    \centering
                    \includegraphics[width=0.9\linewidth]{graphics/scara_arm_kinematics.pdf}
                    \caption{Basic kinematics of the \ac{scara}. The arm consists of two linkages $a$ and $b$; two joints $\alpha$ and $\beta$; and a point mass $m$ which represents the end-effector/tool.}
                    \label{fig:scaraarm}
            \end{marginfigure}
            The development starts with the basic model shown in \autoref{fig:scaraarm}.
            The model consists of the forward and inverse kinematics of the design.
            With this kinematics model it was easy to find a suitable configuration of the \ac{scara}.
            I tested if the \ac{scara} reaches the required operating area, to satisfy system requirement 14.
            The operating area is a couple of centimeters away from the base of the \ac{scara}.
            This is to avoid the singularity point that lies at the base of the \ac{scara}.
            Resulting in the arms being longer than strictly necessary but it reduces the operating range for the angles of the joints, allowing for simpler construction.
            
            At this point, there are already multiple design decisions made about the position of the operating area and the arm lengths.
            As second detail iteration the basic physics of the model are implemented.
            The model is in the form of a double pendulum, with two actuated joints.
            The ideal motors in the joints give the \ac{scara} unlimited acceleration.
            Replacing the ideal motors with a DC-motor gives an indication about the torque required for operation.
            Implementing a simple PID-controller allows the \ac{scara} to follow the rectangular path as described in \autoref{test1}.
            The simulation allowed me to determine the minimum requirements of the motors.
            The motors must be able to deliver at least \SI{0.2}{\newton\meter} of torque and reach an angular velocity of at least \SI{12}{\radian\per\second}.
        
        \subsubsection{Detailed design decisions}
            The basic model gave some valuable insight about the dynamic behavior of the system.
            However, the current configuration is very simple but requires a motor in the joint.
            In \autoref{fig:scaradesign}, this setup is shown as configuration 1.
            The disadvantage is that a motorized joint is heavy, which has to be accelerated with the rest of the arm.

            Other configurations in \autoref{fig:scaradesign} move the motor to a static position.
            Configuration 2 is a double arm setup, but has a limited operating range, caused by a singularity region in the system when both arms at the top are in line with each other.
            Configuration 3 also has such a singularity, but due to the extended top arm this point of singularity is located outside of the operating range.
            However, this configuration requires one axis with two motorized joints on it.
            Even though this is possible, it does increase the complexity of the construction.
            By adding an extra linkage, the actuation is split as shown in configuration 4.
            Configuration 4 is the preferred option for the \ac{scara}.
            \begin{figure}
                \centering
                \includegraphics[width=0.875\linewidth]{graphics/scara_design.pdf}
                \caption{Four different \ac{scara} configurations. The colored circles mark which of the joints are actuated. Configuration 3 has two independently actuated joints on the same position.}
                \label{fig:scaradesign}
            \end{figure}

            The current implementation with DC-motors require a feedback controller that compensates for external forces.
            Such feedback control requires a position sensor for each motor.
            A simpler solution is to use stepper motors instead.
            The advantage of a stepper motor is that it is designed to maintain a specific angle.
            The stepper motors make it possible to use a feedforward controller.
            This removes the need for a position sensor.
            
            The stepper motors are havier than the DC-motors
            However, as the new configuration places the motors on the \ac{cdc}, the additional mass is benificial.
            The rapid movement of the \ac{scara} creates a reaction force on the \ac{cdc}.
            With a heavier \ac{cdc}, the reaction force results in less movement of the \ac{cdc}

            Unfortunately, the stepper motors are more expensive than simple DC-motors.
            Nonetheless, the extra costs are easily compensated as it saves development time due to the simplified control law, and the removed need for extra angle sensors used in feedback control.

            Due to the aborted implementation of the end-effector, the \ac{scara} must also lift the marker of the board.
            With the fourth configuration (\autoref{fig:scaradesign}), it is possible to add an extra joint in the linkage.
            As the marker only needs to be moved a couple of millimeters from the board, a simple hobby servo suffices.

        \subsubsection{Advanced Detail Implementation}
            The design decisions made in the previous sections, make it possible to plan the next steps of adding detail.
            The following steps are an addition to the steps as described in \autoref{sec:rdfs}:
            \begin{enumerate}
                \setcounter{enumi}{4}
                \item \textbf{Advanced motor behavior:} Stepper motor behavior.
                \item \textbf{Advanced physics model:} Updating physics model to 3D physics.
                \item \textbf{Advanced marker lifting:} Marker lifting behavior, servo lifts marker of the board.
            \end{enumerate}
            Starting by replacing the DC-motor with a stepper motor model, which is based on a model by \textcite{karadeniz_modelling_2018}.
            The controller is updated as well, to accommodate for the behavior of the steppers.
            The next step is to implement a dynamic model of configuration 4 in \autoref{fig:scaradesign}.
            The dynamics of the \ac{scara} are based on a serial link structure \autocite{stramigioli_geometry_2001}.
            This serial link structure makes it easy to add and extend joints, bodies and mass points to the system.
            Therefore, the last detail, the marker lifting, was added without any difficulty.
            The servo is connected via a linkage with the marker such that it rotates away from the board.

        \subsubsection{Component Design}
            At this point the development has reached a detailed design together with a dynamic model representing that design.
            The dynamic model is a useful tool to test and evaluate the system behavior.
            However, it does not include the shapes of the components and can therefore not be used to evaluate clearance or collision between components.

            By implementing the design using CAD software, it is possible to inspect for collisions.
            Furthermore, this model is then also used to print the custom parts.
            For the mechanical part I used OpenSCAD as CAD software, based on prior experience with the software.
            With this it was possible to implement all the custom components as well as the \ac{ots}-components.
            To inspect how the components moved, the inverse kinematics model is implemented in the CAD drawing as well.
            The inverse kinematics made it possible to insert cartesian coordinates, resulting in a dynamic CAD design.
            Using different orientations of the end-effector allowed me to inspect the clearance between the different components.

            Following the rectangular path as defined in \autoref{test1} revealed that collisions occurred between parts.
            These collisions were resolved by adding an indentation in one linkage and moving another linkage.
            These changes are shown in \autoref{fig:scad_clearance}
            The complete setup with the custom parts and the \ac{ots}-components, such as stepper motors, servo and marker, is shown in \autoref{fig:scad_carriage}.
            \begin{figure}
                \centering
                \includegraphics[width=0.8\linewidth]{graphics/scad_scara_circles.png}
                \caption{
                    CAD of the \ac{scara} configuration, with the end-effector oriented in the lower left corner of the operating area. 
                    The configuration has been adapted at the two circled points, to resolve collisions in this orientation. 
                    An indentation was made to ensure that the arm can make the required angle.
                    The bottom linkage was located above the joints as depicted in the fourth configuration in \autoref{fig:scaradesign}.
                    This was moved to below the actuated joints as it did collide with the end-effector.
                }
                \label{fig:scad_clearance}
            \end{figure}

            \begin{figure}
                \centering
                \includegraphics[width=0.8\linewidth]{graphics/scad_carriage.png}
                \caption{Rendered 3D model of the \ac{scara}, including steppers, marker and servo.}
                \label{fig:scad_carriage}
            \end{figure}

        \subsubsection{Evaluation}
            The complete development was rather smooth.
            However, this was not without deviating from the original design plan.
            It was not feasible to define all different levels of detail before the start of the development.
            Prior to the design, it was possible to plan 4 levels of detail.
            After implementing these levels of detail, the design decisions taken made it possible to define additional levels of detail.

            In total there are seven predefined levels of detail in the design, meaning that there must also be seven test cycles.
            However, I noticed that testing occurred more often than seven times.
            During the design, running the simulation of the dynamics is easy.
            Resulting in extremely short feedback loops, sometimes even minutes.
            For example, changing the arm lengths and evaluate the new behavior.
            Did it improve? Is this as expected?

            These small intermediate tests were often implicitly created and are not the tests as specified in the test protocol (\label{app:test_specification}).
            Nonetheless, they provide insight that is valuable for the design process.
            The interesting question here is whether these small tests should be part of the design process and what it would add to the design process.

    \subsection{Conclusion of Development}
        At this point, the development of the \ac{scara} is completed.
        According to the design plan, the next step for the development is the implementation of the \ac{cdc} feature.
        However, the evaluation of the development until this point resulted in enough information to draw conclusions about the design plan.
        I expect that executing this development a third time is not beneficial to the case study, given the additional effort.
        Time is better spent on the realization of a prototype and evaluating the current design method.
        Therefore, the next section goes into the construction of the prototype instead of the development of the \ac{cdc}.
