| @@ -1,13 +1,15 @@ | |||||
| %&tex | %&tex | ||||
| As the previous development cycle was aborted prematurely, the development cycle is repeated for the next feature. | 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} | \subsection{Feature Selection} | ||||
| The implementation of the end-effector proved to be impractical. | |||||
| 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. | This means that only two features are left. | ||||
| \autoref{tab:featurestab2} shows an updated feature comparison. | \autoref{tab:featurestab2} shows an updated feature comparison. | ||||
| Compared with the previous feature selection in \autoref{tab:firstfeatureselection}, the number of tests for the SCARA decreased and the Risk/Time increased. | |||||
| This is because \autoref{test_tool_change} relied on both the SCARA and the End-effector which is no longer applicable. | |||||
| Based on the feature comparison, the next component to implement is the SCARA. | |||||
| Compared with the previous feature selection in \autoref{tab:firstfeatureselection}, the number of tests for the \ac{scara} decreased and the Risk/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}[] | \begin{table}[] | ||||
| \caption{Comparison of the two remaining features in the design process. This table is an updated version of \autoref{tab:firstfeatureselection}.} | \caption{Comparison of the two remaining features in the design process. This table is an updated version of \autoref{tab:firstfeatureselection}.} | ||||
| @@ -15,22 +17,22 @@ | |||||
| \begin{tabular}{|l|l|l|l|l|l|} | \begin{tabular}{|l|l|l|l|l|l|} | ||||
| \hline | \hline | ||||
| Feature & Dependees & Tests & Risk & Time & Risk/Time \\ \hline | Feature & Dependees & Tests & Risk & Time & Risk/Time \\ \hline | ||||
| SCARA & - & 2 & 50\% & 12 days & 4.2 \\ \hline | |||||
| Carriage & - & 2 & 30\% & 10 days & 3 \\ \hline | |||||
| \ac{scara} & - & 2 & 50\% & 12 days & 4.2 \\ \hline | |||||
| \ac{cdc} & - & 2 & 30\% & 10 days & 3 \\ \hline | |||||
| \end{tabular} | \end{tabular} | ||||
| \end{table} | \end{table} | ||||
| \subsubsection{Evaluation} | \subsubsection{Evaluation} | ||||
| The feature selection for the second cycle is an updated selection process of the first cycle (\autoref{sec:case_feature_selection_1}). | 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. | |||||
| This resulted in a quick and effortless feature selection process, as most of the work was already done. | |||||
| \subsection{Rapid Development for SCARA} | \subsection{Rapid Development for SCARA} | ||||
| The goal is to present a functional model of the SCARA. | |||||
| The specifications state that it must be able to write three characters within 2 seconds. | |||||
| And to pass \autoref{test1} it must draw a \SI{50}{\milli\meter} by \SI{70}{\milli\meter} rectangle within 1 second. | |||||
| 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}. | 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. | For the lowest detail level of the design, I decided on a kinematics model. | ||||
| The model is stays very simple as it does not implement any physics. | |||||
| 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. | 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 a competent model. | In the following steps, the level of detail is gradually increased to arrive at a competent model. | ||||
| Planning all the different steps in advance is difficult as design decisions still need to be made. | Planning all the different steps in advance is difficult as design decisions still need to be made. | ||||
| @@ -55,86 +57,73 @@ | |||||
| There is, unsurprisingly, lack of a clear vision of the end-product. | There is, unsurprisingly, lack of a clear vision of the end-product. | ||||
| Which makes an explicit description of every level of detail not realistic. | Which makes an explicit description of every level of detail not realistic. | ||||
| However, it was still possible to describe the initial steps in the level of detail of the design. | However, it was still possible to describe the initial steps in the level of detail of the design. | ||||
| The remaining elements, that are essential to the design, will take shape in a later stage of the development. | |||||
| 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. | Apart from this small deviation, the deliverables of this step are a good start of this development cycle. | ||||
| \subsection{Variable Detail Approach} | \subsection{Variable Detail Approach} | ||||
| The following steps is to increase the level of detail of the model. | 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. | The initial model together with the set of steps in the detail level is inherited from the previous design step. | ||||
| To start, I will implement the basic model and implement the different levels of detail. | |||||
| 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. | 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. | The decisions make it possible to plan the subsequent levels of detail. | ||||
| Implementing these details as well, results in a competent model. | |||||
| Implementing these details results in a competent model. | |||||
| \subsubsection{Basic Kinematics Model} | \subsubsection{Basic Kinematics Model} | ||||
| \begin{marginfigure} | \begin{marginfigure} | ||||
| \centering | \centering | ||||
| \includegraphics[width=0.9\linewidth]{graphics/scara_arm_kinematics.pdf} | \includegraphics[width=0.9\linewidth]{graphics/scara_arm_kinematics.pdf} | ||||
| \caption{Basic kinematics of the 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.} | |||||
| \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} | \label{fig:scaraarm} | ||||
| \end{marginfigure} | \end{marginfigure} | ||||
| The development starts with a basic model model as shown in \autoref{fig:scaraarm}. | |||||
| It consists of the forward and inverse kinematics of the design. | |||||
| With this kinematics model it was easy to find a good configuration of the SCARA. | |||||
| I tested if the SCARA could reach the required operating area, to be able to satisfy system specification 14. | |||||
| The operating area is a couple of centimeters away from the base of the SCARA. | |||||
| This is to avoid the singularity point that lies at the base of the SCARA. | |||||
| Resulting in longer arms than strictly necessary but this reduces the operating angles of the joints allowing for simpler construction. | |||||
| 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 longer arms than strictly necessary but reducing the operating 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. | At this point, there are already multiple design decisions made about the position of the operating area and the arm lengths. | ||||
| The second detail iteration adds the basic physics of the model. | |||||
| This model was in the form of a double pendulum, with two attenuated joints. | |||||
| The ideal motors in the joints made gave the SCARA almost unlimited acceleration. | |||||
| 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 made give the \ac{scara} unlimited acceleration. | |||||
| As the one of the goals is to get an indication on what the required torque for these joints is, the ideal motors are replaced with basic DC-motors. | As the one of the goals is to get an indication on what the required torque for these joints is, the ideal motors are replaced with basic DC-motors. | ||||
| Implementing a simple PID-controller allowed the SCARA to follow the rectangular path as described in system test \ref{test1}. | |||||
| Based the simulation, it was possible to determine minimum specifications of the motors. | |||||
| 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}. | 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}. | ||||
| \begin{marginfigure} | |||||
| \centering | |||||
| \includegraphics[width=0.9\linewidth]{graphics/scara_20sim_model.png} | |||||
| \caption{3D plot of the current implementation. The rectangular shapes represent are the linkages and implemented as rigid bodies. | |||||
| The sphere on the origin and the one between both linkages represent the actuated joints. | |||||
| There is no inertia implemented for these joints.} | |||||
| \label{fig:scara_20sim} | |||||
| \end{marginfigure} | |||||
| The current implementation can be seen in \autoref{fig:scara_20sim}. | |||||
| Now that the model forms a basic with the non-ideal motors, basic physics and a control law, it can be used to make some estimates. | |||||
| The model was configured to follow the required path in the specified amount out time according to System Test \ref{test1}. | |||||
| The torque required gave a rough estimate of the required actuation force of the motors. | |||||
| \subsubsection{Detailed design decisions} | \subsubsection{Detailed design decisions} | ||||
| The basic model gave some good insight and information about the dynamic behavior of the system. | |||||
| 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. | 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. | In \autoref{fig:scaradesign}, this setup is shown as configuration 1. | ||||
| The disadvantage is that a motorized joint is heavy and has to be accelerated with the rest of the arm. | |||||
| 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. | Other configurations in \autoref{fig:scaradesign} move the motor to a static position. | ||||
| Configuration 2 is a double arm setup, but has quite limited operating range, caused by a singularity region in the system when both arms at the top are in line with each other. | Configuration 2 is a double arm setup, but has quite 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 outside of the operating range. | |||||
| 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. | 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. | Even though this is possible, it does increase the complexity of the construction. | ||||
| By adding an extra linkage, the actuation can be split as shown in configuration 4. | |||||
| 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} | \begin{figure} | ||||
| \centering | \centering | ||||
| \includegraphics[width=0.875\linewidth]{graphics/scara_design.pdf} | \includegraphics[width=0.875\linewidth]{graphics/scara_design.pdf} | ||||
| \caption{Four different SCARA configurations. The colored circles mark which of the joints are actuated. Configuration 3 has two independently actuated joints on the same position.} | |||||
| \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} | \label{fig:scaradesign} | ||||
| \end{figure} | \end{figure} | ||||
| The actuation of the arm is done with stepper motors, which have the advantage over DC-motors with their holding torque. | |||||
| The holding torque removes the need of a feedback controller to compensate for external forces. | |||||
| Instead, the stepper motors can be fully operated with a feedforward controller. | |||||
| However, they are heavier and more expensive. | |||||
| The additional mass is beneficial as increased inertia of the base, reducing the displacement due to the reaction force of the SCARA acceleration. | |||||
| The actuation of the arm is done with stepper motors, which have a strong advantage over DC-motors with their holding torque. | |||||
| The holding torque removes the need for a feedback controller that compensates for external forces. | |||||
| Allowing the stepper motors to be fully operated with a feedforward controller. | |||||
| However, they are heavier and more expensive but the additional mass is beneficial as increased inertia of the base. | |||||
| The extra inertia reduces the displacement which is caused by the reaction force of the \ac{scara} accelerating. | |||||
| 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. | 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 SCARA must also lift the marker of the board. | |||||
| The chosen configuration of the SCARA makes it possible to add an extra joint in the linkage. | |||||
| 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. | As the marker only needs to be moved a couple of millimeters from the board, a simple hobby servo suffices. | ||||
| \subsubsection{Advanced Detail Design} | \subsubsection{Advanced Detail Design} | ||||
| The new concrete design decisions, make it possible to plan the next steps of adding detail. | |||||
| 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 the previous section: | The following steps are an addition to the steps as described in the previous section: | ||||
| \begin{enumerate} | \begin{enumerate} | ||||
| \setcounter{enumi}{4} | \setcounter{enumi}{4} | ||||
| @@ -142,10 +131,10 @@ | |||||
| \item Updating physics model to 3D physics. | \item Updating physics model to 3D physics. | ||||
| \item Marker lifting behavior, servo lifts marker of the board. | \item Marker lifting behavior, servo lifts marker of the board. | ||||
| \end{enumerate} | \end{enumerate} | ||||
| Starting with replacing the DC-motor with a stepper motor model, which is based on a model by \textcite{karadeniz_modelling_2018}. | |||||
| 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 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 next step is to implement a dynamic model of configuration 4 in \autoref{fig:scaradesign}. | ||||
| The dynamics of the SCARA are based on a serial link structure \autocite{dresscher_modeling_2010}. | |||||
| The dynamics of the \ac{scara} are based on a serial link structure \autocite{dresscher_modeling_2010}. | |||||
| This serial link structure makes it easy to add and extend joints, bodies and mass points to the system. | 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. | 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. | The servo is connected via a linkage with the marker such that it rotates away from the board. | ||||
| @@ -154,12 +143,12 @@ | |||||
| At this point the development has reached a detailed design together with a dynamic model representing that 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. | 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. | 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 search for collisions. | |||||
| Furthermore, this model can than also be used to print the custom parts. | |||||
| By implementing the design using CAD software, it is possible to inspect for collisions. | |||||
| Furthermore, this model is than also used to print the custom parts. | |||||
| For the mechanical part I used OpenSCAD as CAD software, based on prior experience with the software. | 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. | With this it was possible to implement all the custom components as well as the \ac{ots}-components. | ||||
| Using the inverse kinematics model from the basic design of the SCARA, the angles were directly applied on the components in system. | |||||
| Allowing me to change the configuration of the SCARA and inspect the clearance between each component. | |||||
| Using the inverse kinematics model from the basic design of the \ac{scara}, the angles were directly applied on the components in system. | |||||
| Allowing me to change the configuration of the \ac{scara} and inspect the clearance between each component. | |||||
| Following the rectangular path as defined in \autoref{test1} revealed that collisions occurred between parts. | 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 collisions were resolved by adding an indentation in one linkage and moving another linkage. | ||||
| These changes are shown in \autoref{fig:scad_clearance} | These changes are shown in \autoref{fig:scad_clearance} | ||||
| @@ -168,10 +157,11 @@ | |||||
| \centering | \centering | ||||
| \includegraphics[width=0.8\linewidth]{graphics/scad_scara_circles.png} | \includegraphics[width=0.8\linewidth]{graphics/scad_scara_circles.png} | ||||
| \caption{ | \caption{ | ||||
| CAD of the SCARA configuration, with the end-effector orientated in the lower left corner of the operating area. | |||||
| CAD of the \ac{scara} configuration, with the end-effector orientated 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. | 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 could make the required corner. | |||||
| Furthermore, the bottom linkage has been moved from above to below the actuated joints, as this linkage would otherwise collide with the end-effector. | |||||
| 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} | \label{fig:scad_clearance} | ||||
| \end{figure} | \end{figure} | ||||
| @@ -179,7 +169,7 @@ | |||||
| \begin{figure} | \begin{figure} | ||||
| \centering | \centering | ||||
| \includegraphics[width=0.8\linewidth]{graphics/scad_carriage.png} | \includegraphics[width=0.8\linewidth]{graphics/scad_carriage.png} | ||||
| \caption{Rendered 3D model of the SCARA, including steppers, marker and servo.} | |||||
| \caption{Rendered 3D model of the \ac{scara}, including steppers, marker and servo.} | |||||
| \label{fig:scad_carriage} | \label{fig:scad_carriage} | ||||
| \end{figure} | \end{figure} | ||||
| @@ -188,7 +178,7 @@ | |||||
| However, this was not without deviating from the original design plan. | 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. | 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. | Prior to the design, it was possible to plan 4 levels of detail. | ||||
| After these steps, the design decisions taken made it possible to define the following 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. | In total there are seven predefined levels of detail in the design. | ||||
| Meaning that there must also be seven test cycles. | Meaning that there must also be seven test cycles. | ||||
| @@ -200,10 +190,9 @@ | |||||
| Implicitly, the system was very often tested and changed based on test results. | Implicitly, the system was very often tested and changed based on test results. | ||||
| \subsection{Conclusion} | \subsection{Conclusion} | ||||
| With the development of the SCARA completed. | |||||
| Following the design plan, the development has to be repeated for the design of the Cable bot. | |||||
| With the development of the \ac{scara} completed. | |||||
| Following the design plan, the development has to be repeated for the design of the \ac{cdc}. | |||||
| However, the evaluation of the development until this point resulted in enough information to draw conclusions about the design plan. | 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. | 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 improving the current design method. | Time is better spent on the realization of a prototype and improving the current design method. | ||||
| Therefore, the next section will go into the construction of the prototype instead of the development of the Cable bot. | |||||
| Therefore, the next section goes into the construction of the prototype instead of the development of the \ac{cdc}. | |||||