|
|
|
@@ -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. |
|
|
|
|