25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

403 lines
27KB

  1. %&tex
  2. \chapter{Case Study: Whiteboard writer}
  3. \label{chap:casestudy}
  4. \section{Monitoring}
  5. A survey is design to assess how the method is applied during the case study.
  6. The survey specifies a list of questions.
  7. All the questions will be adressed for each step in \autoref{fig:flowgraph}.
  8. Part of the questions will be answered prior to the step.
  9. The rest of the questions will be answered after the step.
  10. The questions are not soley to measure the effectiveness of the design method, but as well to investigate the usability.
  11. For a good usability the step feels intuitive and does not interfere with the workflow.
  12. Important is that these answers will be used to improve the design method for the next cycle.
  13. Resulting in a better suited method at the end of the development.
  14. This survey will be evaluated as well in each step.
  15. Because it is expected that there are points of interest that are looked over.
  16. It could be that a step is split in multiple ones or that questions are added during the case study.
  17. \autoref{tab:prepost} contains the set of paired questions.
  18. One question prior to the step and one question that reflects on that answer after the step.
  19. \autoref{tab:questionsmethod} is a list of questions that reflect on the design method itself.
  20. \rrot{Add the additional questions}
  21. \begin{table*}
  22. \caption{Table with questions to evaluate the steps. With corresponding questions ordered in pre and post step columns.}
  23. \label{tab:prepost}
  24. \begin{tabular}{|p{0.35\paperwidth}|p{0.35\paperwidth}|}
  25. \hline
  26. \vspace{1mm} \large{Prestep} & \vspace{1mm} \large{Poststep} \\
  27. Questions prior to the execution of the step to set a baseline. & Questions after the execution of the step to check if the implementation met the expectations. In hind-sight, what should have been executed differently?\\
  28. \hline
  29. \textbf{What was the previous step?} & \textbf{What will be the next step?} \\
  30. Does this influence this step? Is this a review? & Moving forward or is a review required of previous step(s)? \\
  31. \hline
  32. \textbf{Describe the plan of action.} & \textbf{Explain any deviations from the plan of action.} \\
  33. What is the next step going to be? How is it going to be executed? & What changed during the execution, what deviations where taken and why? \\
  34. \hline
  35. \textbf{What is the expected workload?} & \textbf{Was the workload different than expected?} \\
  36. How many hours are required for the execution of the step? Also give a range in your incertainty. & How much time was invested in the step? Why was it more or less than expected? \\
  37. \hline
  38. \textbf{What is the expected result of the step?} & \textbf{Is the result as expected?} \\
  39. At the end of the step, what is the expected result? & Does the result match the description made prestep? Why does it not match? \\
  40. \hline
  41. \textbf{What is the expected feasibility?} & \textbf{Was the expected feasibility of the implementation accurated?} \\
  42. What are the problems you expect during implementation? Why? & Even if the implementation succeeded, the feasibility does not have to be 100\%. Give an estimate for the feasibility now that the implementation is finished. Explain the difference with the prestep feasibility.\\
  43. \hline
  44. \end{tabular}
  45. \end{table*}
  46. \begin{table*}
  47. \caption{Table with questions to evaluate the design method itself}
  48. \label{tab:questionsmethod}
  49. \begin{tabular}{|p{0.35\paperwidth}|}
  50. \hline
  51. \textbf{Is this method a suitable approach for the hardware design?}\\
  52. Are there aspects in the hardware design that is not covered by the method? Or is the method not suited at all for hardware? Why not? How to do it different? \\
  53. \hline
  54. \textbf{Does the method contain counter-intuitive steps?} \\
  55. Are there steps that feel not optimal? Is it appealing to execute the step different? Is it just getting used to? Or really inefficient?\\
  56. \hline
  57. \textbf{What is the feasibility of this step in the method itself?} \\
  58. Not the execution of the step, but the step itself. Are those steps realistic? How can the method be improved? Why? \\
  59. \hline
  60. \textbf{Are there questions that can be added to this evaluation?} \\
  61. Can we add step specific questions or general questions to improve the evaluation? \\
  62. \hline
  63. \end{tabular}
  64. \end{table*}
  65. \subsection{Reporting}
  66. To answer all these questions and record all the steps a template was made.
  67. This template is a markdown-document that contains all the questions.
  68. The filled in documents will be stored in a git-repository.
  69. With continuous integration the documents will be merged to a single pdf.
  70. The development of the hardware will be done in a separate git repository.
  71. Each step will have its own issue.
  72. This issue has a description and a checklist for the evaluation.
  73. Commits will be referenced to the issue, in that way all commits are grouped and can be tracked in the issue.
  74. %\rro{Use forms to evaluate the method}
  75. %\rroi{Questions answered before and after each step}
  76. %\rroi{Forms are also updated during the design}
  77. \section{Preliminary Design}
  78. \subsection{Problem Definition}
  79. The whole design process is initiated with the problem definition.
  80. For this case study, the problem definition is a bit different.
  81. In preparation of the case study it was decided to design a Whiteboard Writer from \autoref{sec:whiteboardwriter}.
  82. The Whiteboard writer was chosen because it would test the most aspects of the design method during the case study.
  83. In other words, a problem was needed that could be solved.
  84. And the problem needed to be complex enough so that the design method could be tested.
  85. However, during the case study, decisions have to be made about the solution space.
  86. Some of these decisions are not related with the testing of the design method itself.
  87. In these situations it is good to have a more concrete goal.
  88. Therefore, it is decided that the whiteboard writer has to be able to put a twitter message on the board.
  89. Normally the goal of the problem definition would be to describe the problem that needs to be solved.
  90. Testing the design method is in this case the problem, which makes it tightly coupled.
  91. Furthermore, a good problem definition focusses on getting the stake holders on the same line \autocite{shafaat_exploring_2015}.
  92. However, as the case study is performed by the author, there is only one stake holder.
  93. Discussion, communication and interaction between team member improves the problem solving in general \autocite{lamb_221_2008}.
  94. Even though the problem definition stayed in a very minimalistic state.
  95. The core goals are as follows:
  96. \begin{itemize}
  97. \item The system under design shall be used to evaluate the design method.
  98. \item Engineering decisions are made, in the first place, to aid the evaluation of the design method.
  99. \end{itemize}
  100. Secondary goals can be described as:
  101. \begin{itemize}
  102. \item The system shall write a twitter message on the board.
  103. \end{itemize}
  104. \subsubsection{Evaluation}
  105. The problem definition within this case study does not represent a conventional design process.
  106. Therefore, the problem definition was not evaluated in this case study.
  107. \subsection{Specifications}
  108. \label{sec:specifications}
  109. %\rro{Present Specifications for Case}
  110. During this step the goal is to setup a document with concrete specifications of the system.
  111. This resulted in a document that had a short description and a list of specifications.
  112. The description described in short the general operating procedure.
  113. As the writer has to write and update a tweet on the whiteboard, it must be able to write and wipe the board.
  114. Furthermore, it should be able to draw 140 characters of readable text on the board.
  115. For readability, the result has to be readable from 4 meters distance.
  116. The specifications itself are written with \ac{ears} and are as follows:
  117. \begin{itemize}
  118. \item The Writer shall be able to write at least 50 characters per line.
  119. \item The Writer shall be able to write at least 5 lines of text.
  120. \item The Writer shall display the author, time, content, and number of retweets, favorites and replies in plain-text.
  121. \item The Writer shall plot characters with a size that is readable from 4 meters for a person with good eyesight.
  122. \item The Writer shall plot in a regular used font with corresponding character spacing.
  123. \item When a new tweet is send to the Writer, the Writer, shall wipe the existing tweet and write down a new tweet.
  124. \item If the Writer is not wiping or writing then the Writer shall not obstruct the view of the whiteboard.
  125. \item While writing, the Writer shall have a writing speed of at least 1 character per second.
  126. \item If the Writer is tasked to wipe the tweet, the Writer shall wipe the tweet within 60 seconds
  127. \item When a reset-signal is send to the Writer, the Writer shall recalibrate its position on the board.
  128. \item When a wipe-signal is send to the Writer, the Writer shall wipe the board clean.
  129. \item The Writer shall not damage itself.
  130. \end{itemize}
  131. Additionally there are some restrictions on construction.
  132. The tooling in limited to some hobby/DIY tools.
  133. As the rapid prototyping facilities at the university are closed due to the Covid-19 pandemic.
  134. \begin{itemize}
  135. \item The Writer shall not exceed a total cost in materials and/or tools of €200.
  136. \item The Writer shall be constructed with simple tools in the following list:
  137. \begin{itemize}
  138. \item Screwdrivers (Hex/Inbus, Torx, Philips, etc) in a, although limited, wide variation of size.
  139. \item Drill
  140. \item Screwtap set
  141. \item Jigsaw
  142. \item Wrenches
  143. \item Soldering iron
  144. \item Various Pliers
  145. \item PLA 3D printer
  146. \end{itemize}
  147. \end{itemize}
  148. \subsubsection{Evaluation}
  149. While performing this step it became clear that big improvements can be made.
  150. The focus of this case is at the actual hardware implementation.
  151. This caused the steps in the preliminary design to be overlooked.
  152. The lack of a good problem description and not having an experienced design team makes the specifications even more difficult.
  153. An extensive specification document would benefit the design process.
  154. However, it would also be very time consuming and would not fit in the time frame of this thesis.
  155. A conclusion similar to the evaluation of the problem description is that this unique case study is not a good basis for defining specifications.
  156. Some concrete points from this step are:
  157. \begin{itemize}
  158. \item \ac{ears} is very useful during for the specifications.
  159. \item Being thorough and complete is difficult without a team.
  160. \item Difficult to avoid ambiguity.
  161. \item Difficult to validate the specifications.
  162. \end{itemize}
  163. The latter point was reason to add additional questions to the evaluation form:
  164. \begin{itemize}
  165. \item What is the method of testing?
  166. \item How did you test/validate the step?
  167. \end{itemize}
  168. \subsection{Initial Design}
  169. \rro{Research on Existing Systems}
  170. The initial design started with a design space exploration.
  171. The goal was to collect possible solutions and ideas for the implementation.
  172. The exploration resulted in a lot of whiteboard writing robots.
  173. These robots can be sorted in four different configurations
  174. Each configuration is worked out and will be discussed here.
  175. \subsubsection{Cable Driven}
  176. The cable driven robot is suspended with multiple cables.
  177. The end-effector that contains the markers is moved along a board by changing the length of the cables.
  178. The cable based positioning systems result in a end-effector with large range and high velocities.
  179. A possible setup can be seen in \autoref{fig:cablebotdrawing}
  180. \begin{figure}
  181. \centering
  182. \includegraphics[width=0.9\linewidth]{graphics/8564503-fig-1-source-large.png}
  183. \caption{Planar view of cable driven robot. \autocite{aguas_sliding_2018}}
  184. \label{fig:cablebotdrawing}
  185. \end{figure}
  186. Each of the cables can be motorized.
  187. Unfortunately, this does make the system over-constrained.
  188. However, it is possible to only motorize two of the four cables and pretension the other two.
  189. This makes the system exactly constrained.
  190. Furthermore, the lower cables could be completely left out of the design.
  191. This makes the design even simpler but the pretensions could help dampening the system.
  192. \subsubsection{Cartesian-coordinate robot}
  193. This configuration is a very common design for plotters.
  194. This setup is also known as a gantry robot or linear robot.
  195. It normally consists of two sliders, which behave as a prismatic joint.
  196. Because each slider covers a single X or Y axis, the control and dynamics of this system are very simple.
  197. For the dimensions the length of the sliders define the limits.
  198. \subsubsection{Polar-coordinate robot}
  199. This robot is a combination of a prismatic and a revolute joint.
  200. Where the rotational joint can rotate the prismatic joint.
  201. With this it can reach any point within a radius from rotational joint.
  202. This is a little more complex design than the Cartesian robot.
  203. This robot has some disadvantages.
  204. The range of the robot is defined by the length of the prismatic joint.
  205. However, if the prismatic joint is fully retracted, the joint does not get shorter.
  206. In that case the arm still protrudes on the other side.
  207. Therefore the complete radius around the revolute joint cannot have any obstacles.
  208. This makes required space of the setup very inefficient.
  209. Another disadvantage is that a long arm increases the moment of inertia and the gravitational torque quadratic.
  210. Moreover, the longer arm also introduces stiffness problems.
  211. \subsubsection{SCARA}
  212. The SCARA robot is a configuration with two linkages that are via with rotational joints.
  213. It can be compared to a human arm drawing on a table.
  214. Similar to the Polar robot it can reach all points within a radius from the base of the robot.
  215. However, the arm only protrudes half the radius.
  216. Furthermore, depending on the configuration the of the arm the area where it protrudes can be significantly smaller.
  217. However, the additional joint and extra arm length does add to the moment of inertia and gravitational torque similar to the polar robot.
  218. The SCARA robot is therefore not a robot that is convenient with large working areas.
  219. However, it can be really quick and precise in relative small areas.
  220. \subsubsection{Choice of system}
  221. Similar to the previous steps.
  222. The type of design has to aid the evaluation of this design method.
  223. Where normally it would be beneficial to keep a design simple.
  224. This implementation has to be complex enough.
  225. Based on the complexity the cartesian and polar coordinate robots are excluded.
  226. Especially at higher speeds the SCARA becomes dynamically interesting due to the torque of both joints.
  227. However, it is unlikely that the SCARA provides enough features to implement multiple features.
  228. It was therefore decided to combine a small SCARA with a cable driven robot.
  229. Where the SCARA can write a couple of characters at high speed from a fixed position.
  230. The cables can than move the complete SCARA to the next position.
  231. The combined system introduces sufficient complexity for the design method.
  232. The cable robot and SCARA are both sub-systems of the complete writing robot that can be implemented separately.
  233. \subsubsection{Evaluation}
  234. The initial design step felt like an actual start of the design process.
  235. Looking at multiple solutions resulted in new insight of the systems.
  236. However, this knowledge would have more useful when defining the specifications in \autoref{sec:specifications}.
  237. Furthermore, the specifications were written with the whiteboard writer in mind.
  238. This step was used to select the robot that would evaluate the design method.
  239. Similar to the previous step it became more evident that the complete preliminary design phase was not adequate.
  240. Validation of the decision was also lacking.
  241. The combining both systems was discussed as the best option.
  242. However, a simple model of the different proposed systems is needed to verify that decision.
  243. And again, there was a lack of an experience to make a good trade-off.
  244. \subsection{Feature Definition}
  245. At this point there are specifications and an initial design for the system.
  246. In the following steps of the design method features will be implemented one by one.
  247. The goal of this step is then to define these features.
  248. During this step it became clear that this approach was not feasible.
  249. Prior to this step the expectation was that this step would produce three features that could be implemented.
  250. These three features were the SCARA, the cable suspended carriage, and the end-effector.
  251. However, independent of the interpretation of this step, the result was not the three expected features.
  252. Why were those three features expected in the first place?
  253. During the previous steps a useful evaluation was to anticipate for the subsequent steps.
  254. Where one of the following steps is to implement an individual feature.
  255. Therefore, it must be possible to implement the feature.
  256. Separating the initial design into the smallest components that could still be implemented, resulted in the SCARA, carriage and end-effector.
  257. The problem is that these three components do not describe the complete system.
  258. Some functions of the system (feature) is performed by a combination of the components.
  259. Therefore can the components in the system not be seen as features of the system.
  260. Defining the components as features of the system is not a solution.
  261. The relations between the components and features is still required.
  262. %As the features describe the behavior of the components, it is not a solution to replace the features with components.
  263. A solution to organize the relations between features and components was found in RobMoSys\footnote{\url{https://robmosys.eu/approach/}}.
  264. RobMoSys defines a separation of levels in a design.
  265. Where the levels start functional and moves via software to hardware implementation.
  266. Although not all levels of RobMoSys are used, it was very useful to define the features of the system.
  267. The definition can be seen in \autoref{fig:robmosys}
  268. The current definition of features allows to start the implementation with a component.
  269. When the component is finished features can be implemented by following the tree upwards.
  270. \begin{figure*}
  271. \centering
  272. \includegraphics[width=0.8\linewidth]{graphics/robmosys}
  273. \caption{Feature Definition based on the separation of levels introduced by RobMoSys}
  274. \label{fig:robmosys}
  275. \end{figure*}
  276. %In the design method by \textcite{broenink_rapid_2019} the features describe software components.
  277. %Theoretically, each function in software can be implemented and tested individually.
  278. %However, in a dynamic system, a single component
  279. %The SCARA, carriage and end-effector were selected as the smallest
  280. %Although.
  281. \rro{Goal: define features that can be implemented one by one}
  282. \rroi{Additionally, division of system requirements}
  283. \rro{Expected: A list of features, with corresponding dependencies}
  284. \rro{Could define features, but non of them described mechanical components that could be implemented.}
  285. \rro{Result: Improvised a structure that was loosely based on Robmosys}
  286. \rroi{The lose features:}
  287. \rroii{End-effector}
  288. \rroii{SCARA}
  289. \rroii{Carriage}
  290. \subsubsection{Evaluation}
  291. \rro{Multiple problems:}
  292. \rroi{Specifications were to broad or to specific}
  293. \rroi{Taking the following steps in to account, none of the features made sense}
  294. \rroii{None of the features were something that could be modeled}
  295. \rroii{Type of motor was depending on the forces required}
  296. \rro{Inspired from RobMoSys we made a tree structure}
  297. \rroi{The mission, task, skill etc separation helped a lot in structuring}
  298. \rroi{For now, this solution suffices to continue the case study}
  299. \rro{Mid-way Conclusion: Preliminary requires large changes}
  300. Even though, there is a feature definition that can be used in the next step, there remain a couple of difficulties.
  301. There is still a really strong border between features and components.
  302. And the single level of components makes it impossible to depict the dependencies between components.
  303. Developing larger and complexer systems will have sub-components in the system, introducing even more dependencies.
  304. Therefore, this is not a valid solution for feature definition.
  305. Fortunately the current solution suffices to continue the case study.
  306. \subsection{System Test Specification}
  307. \rro{Specify tests for the different specifications}
  308. \rro{Made a document with tests}
  309. \rroit{Should this document be included in the report?}
  310. \rroi{Each test covers one or more specs}
  311. \subsubsection{Evaluation}
  312. \rro{Was quite easy to perform}
  313. \rroi{Difficult due to specs and features not working out as expected}
  314. \rroi{Most features could not be tested as the subsystem needs to be completed first}
  315. \rro{Tested by peer-review}
  316. \rroi{Found that a review without all the project information is difficult}
  317. \section{Detail Design}
  318. \subsection{Feature Selection: First Iteration}
  319. \subsubsection{Selection}
  320. \rro{Compared: Dependency, tests coverage and risk/time ratio}
  321. \rroi{First Feature/system to implement is End-effector.}
  322. \rroii{Due to dependency and high risk/time}
  323. \subsubsection{Implementation}
  324. \rro{Plan: Model a gripper}
  325. \rroi{Result: Underestimated Complexity}
  326. \rroii{No debugging options for collisions in 3D-ME}
  327. \rroii{Crash with software resulted in corrupted model}
  328. \rro{Conclusion: not feasible in scope of case study}
  329. \subsubsection{Evaluation}
  330. \rro{Result is not as expected}
  331. \rro{Risk/time factor proofed itself useful}
  332. \subsection{Feature Selection: Second Iteration}
  333. \subsubsection{Selection}
  334. \rro{Scara is next in selection}
  335. \rroi{Covers more tests and has higher risk/time factor than carriage}
  336. \subsubsection{Implementation}
  337. \rrot{Should this be here? Maybe in an appendix?}
  338. \rro{Starting with very abstract model}
  339. \rroi{Forward and inverse kinematics}
  340. \rro{Increasing model detail}
  341. \rroi{2D physics model}
  342. \rroi{Simple Motor model}
  343. \rroi{Path planning}
  344. \rroi{Stepper motor}
  345. \rroi{3D physics arm}
  346. \rroi{Marker lift (torque on joint)}
  347. \rroi{Marker lift (Servo)}
  348. \rro{Used 20-sim for dynamic behavior}
  349. \rroi{Could determine physical limits}
  350. \rro{Used openSCAD for geometric design}
  351. \rroi{Could easily avoid collision between parts}
  352. \rro{Implementation went smooth}
  353. \rroi{Order of increase in detail more in line with Koen den Hollander.}
  354. \rroi{Stepwise detail increase gives loads of feedback}
  355. \rroi{Dynamics model gave feedback on required stepper torque}
  356. \section{Testing}
  357. \rro{Testing was difficult with only one finished component, however}
  358. \rroi{Able to run draw three characters in 2 seconds}
  359. \rroi{Able to draw a square in 1 second}
  360. \section{Result}
  361. \rro{Created a model in 20-sim and openscad}
  362. \rro{Build a physical prototype}