diff --git a/content/appendix_specifications.tex b/content/appendix_specifications.tex index f9ead32..1535ed4 100644 --- a/content/appendix_specifications.tex +++ b/content/appendix_specifications.tex @@ -16,7 +16,7 @@ \item When a wipe-signal is send to the Writer, the Writer shall wipe the board clean. \item The Writer shall not damage itself. \item While writing, the SCARA shall have a writing speed of at least 1.5 characters per second. - \item When the Carriage/base of the SCARA is at a static position, the SCARA shall be able to write at least three characters at that position. + \item When the Carriage/base of the SCARA is at a static position, the SCARA shall be able to write at least three characters at that position. \label{threecharspec} \item When the SCARA finished writing at their current position, the Carriage shall move the SCARA to it's next position where it can write the subsequent characters. \item When the SCARA has to be moved to a new position, the Carriage shall perform this movement within one second. \item When the system changes from writing to wiping or vice-versa, the SCARA and End-effector should change the tool within ten seconds. diff --git a/content/case_experiment_end-effector.tex b/content/case_experiment_end-effector.tex index a48da70..276cf2f 100644 --- a/content/case_experiment_end-effector.tex +++ b/content/case_experiment_end-effector.tex @@ -6,6 +6,7 @@ The implementation of the end-effector was not successful, as the design was too Fortunately, this failure did give valuable insight on the design method. \subsection{Feature Selection} + \label{sec:case_feature_selection_1} \begin{table}[] \caption{Overview of the different features and their dependencies, number of tests that can be completed and the risk/time factor. The risk/time factor is calculate as risk divided by time.} diff --git a/content/case_experiment_scara.tex b/content/case_experiment_scara.tex index ccaaafc..1e2fce8 100644 --- a/content/case_experiment_scara.tex +++ b/content/case_experiment_scara.tex @@ -21,45 +21,68 @@ \end{tabular} \end{table} - \subsection{Rapid Development of SCARA} - At the end of this implementation the SCARA is able to write the first characters - This will be achieved by working through different levels of detail. - Where each level adds more detail to the model. - The levels that are implemented are as follow: + \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. + + \subsection{Rapid Development for SCARA} + The goal is to present a functional model of the SCARA. + Based on the tests and requirements, it must be able to write three characters within 2 seconds. + The basic design principle is based on the initial design and shown in \autoref{fig:combined}. + The lowest level of detail is a kinematics model of the design. + This does not involve any physics simulation yet, but gives insight in the operation range, arm length and joint behavior. + In the following steps, the level of detail is gradually increased until it is a competent model. + However, 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 Basic kinematics model, no physics. \item Basic physics model, ideal 2D physics. \item Basic Motor behavior, 2D physics with non-ideal DC-motor. \item Basic control law, path planning. - \item Advanced motor behavior, 2D physics with stepper motor behavior. - \item Advanced physics model, 3D physics with complex dynamics with Lie-algebra. - \item Marker lifting behavior, servo lifts marker of the board. \end{enumerate} - This mainly describes the different level of physics detail. - Together with the physics model there will be a solid 3D CAD model. - The CAD model helps to check with dimensions and possible collisions of objects. + After these steps the optimal order of implementation for the levels of detail becomes vague. + However, the following elements are required to make a competent model: + \begin{itemize} + \item Improved motor model + \item 3D physics model + \end{itemize} + When the first design decisions 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. + Making describing all the different levels of detail explicitly farfetched. + However, it was still possible to describe some levels of detail and a couple of expected elements that are added later. - \subsection{Variable Approach} + \subsection{Variable Detail Approach} The following steps is to increase the detail of the model. This is done according to the steps in the previous section. - \subsubsection{Basics implementation} + \subsubsection{Basic Kinematics Model} \begin{marginfigure} \centering \includegraphics[width=0.9\linewidth]{graphics/scara_arm_kinematics.pdf} - \caption{Basic kinematics of the SCARA} + \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.} \label{fig:scaraarm} \end{marginfigure} - The first four detail steps are just creating the basics dynamics of the SCARA as shown in \autoref{fig:scaraarm} - It start with the kinematics model that is used to test the forward and inverse kinematics of the design. - It gave a general idea of angles and arm lengths that are required in the design. - The second detail iteration adds the basic physics of the model. - This model was in the form of a double pendulum, with to powered joints. - The ideal motors in the joints made it that it could move with almost infinite speed. - To get a better idea of the forces in the model, the ideal motors are replaced with a better motor model. - As the system did not operate with infinite gain anymore it the path planning was updated as well. - A simple PID-controller was implemented to make the SCARA follow a rectangular path. + 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 specification \ref{threecharspec}. + The operating area is not 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. + 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 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. + 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} @@ -96,29 +119,56 @@ The actuation of the arm is done with stepper motors. The advantage of stepper motors over simple DC-motors is that they hold a specific position. There is no extra feedback loop required to compensate for external forces. - However, they are heavier and more expensive. - But the extra mass is probably beneficial as adds momentum to the base. - Reducing the counter movement of the base when the arm is actuated. + They are heavier and more expensive as well. + The additional mass is probably beneficial as adds momentum to the base, reducing the counter movement of the base when the arm is actuated. + The extra costs are easily compensated as it save development time due to the simplified control law. + + 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. + As the marker only needs to be moved a couple of millimeters from the board, a simple servo suffices. \subsubsection{Implementing details} + The new concrete design decisions, make it possible to plan the next steps of adding detail. + The following steps are an addition of steps in as described in the previous section: + \begin{enumerate} + \setcounter{enumi}{4} + \item Stepper motor behavior. + \item Updating physics model to 3D physics. + \item Marker lifting behavior, servo lifts marker of the board. + \end{enumerate} The first step was to replace the DC-motor with a stepper motor model. - This based on a model by \textcite{karadeniz_modelling_2018}. - The controller is updated as well, to accommodate for the behavior of the steppers, - + This 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 the configuration (4) as shown in \autoref{fig:scaradesign}. The dynamics of the SCARA are based on a serial link structure \autocite{dresscher_modeling_2010}. + This serial link structure was makes it easy to add or extend joints and bodies 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{Evaluation} + The complete development was rather smooth. + However, this was not without deviating from the original design plan. + The different levels of detail could not be defined before the start of the development but had to be updated midway. - \subsubsection{3D Modeling} - With a full dynamics model in 20-sim, the next step was to design the system in OpenSCAD. - Although 20-sim has a 3D editor, it is significantly easier to build components with OpenSCAD. - Furthermore, for prototyping the OpenSCAD objects can be exported for 3D printing. - The model made it possible to check component clearance and get an idea of size. - The model is shown in \autoref{fig:scad_carriage}. - \begin{figure} - \centering - \includegraphics[width=0.8\linewidth]{graphics/scad_carriage.png} - \caption{Rendered 3D model of the SCARA} - \label{fig:scad_carriage} - \end{figure} + 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 this number was significantly higher. + 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? + Implicitly, the system was very often tested and changed based on test results. + + Furthermore, the step from 2D to 3D physics was in no means a small increment in detail. + The first four levels of detail, as describe in the previous section, all were implemented in with two dimensions. + As the later details required a third dimension, all the detail was directly converted from 2D into 3D. + This is a large amount of work, introducing a high cost when the conversion fails. + Moreover, it creates a new 3D physics model, parallel to the 2D physics model instead of adding detail to the latter. + Alternative approaches for 3D model physics could be: + \begin{itemize} + \item Ignore 2D and start implementation in 3D modelling. + \item Retrace all incremental detail steps of the 2D model in a 3D model. + \end{itemize} + Both options are not ideal, the first one does not allow a simple basic model and the second approach redoes work. + The advantage of starting with 3D is that allows for a continuous development of one model, instead of switching the complete model.