From 2d45c447a737f29f8efee5a6a3121cee695d9fb2 Mon Sep 17 00:00:00 2001 From: Wouter Horlings Date: Mon, 25 May 2020 14:54:52 +0200 Subject: [PATCH 1/3] Initial commit for feature definitions --- .gitmodules | 3 + features/content/Feature_separation.ods | Bin 0 -> 17673 bytes features/content/definition.tex | 23 ++++++ features/content/separation.tex | 92 ++++++++++++++++++++++++ features/content/specification.tex | 2 + features/feature_definition.tex | 29 ++++++++ features/graphics/char.tex | 24 +++++++ features/graphics/reach.tex | 16 +++++ features/graphics/robmosys.tex | 38 ++++++++++ features/robmosys.dia | Bin 0 -> 3722 bytes 10 files changed, 227 insertions(+) create mode 100644 .gitmodules create mode 100644 features/content/Feature_separation.ods create mode 100644 features/content/definition.tex create mode 100644 features/content/separation.tex create mode 100644 features/content/specification.tex create mode 100644 features/feature_definition.tex create mode 100644 features/graphics/char.tex create mode 100644 features/graphics/reach.tex create mode 100644 features/graphics/robmosys.tex create mode 100644 features/robmosys.dia diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..f46f952 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "features/common"] + path = features/common + url = ../mac.git diff --git a/features/content/Feature_separation.ods b/features/content/Feature_separation.ods new file mode 100644 index 0000000000000000000000000000000000000000..799334dbc9d5a6b9c227b828f1c4e05fb8c403b2 GIT binary patch literal 17673 zcmchXW`INn@YPC` zK+F+H$j{C1>f}F0T28cBuE8f3&IP!feVT^bhw$76Q~d#2h+Ja>&A%$M~md# zk8}3qczjs=bU(jU)W*GDjgOC;`8+O8ge|_RSL5$RV~i7K(p%%*6+I^=i~Ah|NkBpm zMTa3_Bc6nnc2!DgRl=d`>5lEe!<7TFK%y`*&S0574HhGdV|UtkXB-DlRG%9u{jI?K z3T3poCcw?Zi%^tVGUCqCR01i%7Nw@hmF0GO3yZJ>Ir zu6nttm8N+R73;G`i!9IvkVbG%9(tO$%2Yogxi5yoz=Q$)=_IqNC#|hyVmm>1F{0}g zb~hy&la%!I+{)+fA=RBq4(a*n$Ce(GJt$Oyy*5FWa-*&UI~5dp0VkX`sBsIf=Pi9U zz0KuIA%SO&0Di|7#4EPiJ+Z+lBf76I2+Jtpnp0aUBlP1@|V+q z#22mx`Khxygp2CL(qdCKrug2}>&EdYpj~(iD0f5Yi-lk)M2Ud(=)`$NC6Rdb5T)&6 ztwxila&e2)qX$R?4hJK^AVJ08QX57EBU`8&G1hBQ2)Q$sevV=G&J5_EHbZ!e6D@SB z^X!Wv7qT;MLQ{*o?2%?a*>7!*lpVo$z|X9>lb6c&q75I>vz%A)(Q4xoFijP@$~IT& zGA2X#picsYq0*kk7&`39)PW4hmUhrErS50kDWl%EWyOpVEx%gaGVf*PLT#M3w&h$w zT>I(2H8Hr@=EK2((_A-Q(1z7~GwajVx-xD3xu|#Fch50%VQf~#(!CRgsgpL+I+14E zm&!rIr4cfd;AQn=lZA0}M<-*rZGJF}NiKD&U`T+tLpVE=9 zlN4~~x%kEdDc*2n0hDGSiUb#tsX1cKm38%)C%MSveOXl;9*-CSRHu zicXT5@Hm8I{Hkpu$o6IHJffWHhA4uP5#w`IgttQ8yi4-z0dYMB*@IB|pF?|R9iIwugW(K|Y8*#pL?~iA`lD4)H9DajMiXRbF)$;Gs&*Nbe z-u<1D)3979WCa5)-;ASka4;4(f6Db8lSM&PD^jFI{kqIB(qq9#&X5YBCxd`Qz zd2j?auS}JxY9;}EI}OIIOID}}Q+3t2$flG<;BmRDMIHmK?iJcyf#wQ-|S)^=^ z235}Ub5?24Fshaw0Lt9?HSoa@g07CR`46A`Wp8vm1$T7F;)S~}Qw|SZrS*XD=zPYwlqD=DI=EA5z$5YdgOP1wc7-#qgjxegTTiWZr!xClWmuVw77uOk?+J ziY~yFR2ET%Le}5Bd)!*;Rz)*6jfT>G?hPi&OF zN*rjy38fivsR`Yyg>x_mk4afCw$I7iDbcvM$u_A{ ze-)(pBs<@1Ch&FCug%7_4s248#n{;Z4NhsIVxA!~ijZlsjIglB=R0(i?Si&)z53iI z+pv-iF7LrW3&&37riIUMk9@@+4cp!Oc;Ck{&mg|8eWDj3Q-(mqi_yRB3VjL_1+aJ2ECDH=PYJFvJ=L?y;;J~U~tU~6ou2r?C@ z|GLS32B{?{*f9B+8pRXI>i4ps>7ZlHp=55+ZL9jz;<)`@jh57-V*woh*Grne=WmdzOptB*Tgf^7hue%>ze4_mNVLbG~5jzX87gLTopxpM7oF@J=RH!lv&2E^<=qo?x=b|?CVDv z?lxf}dq!7EYfeZoe0s2X|CAHyGKr-ybXPe;pv2|?ro{b1`ops?Qoc)e&6S`1o0cct zKDyhCQ&MLKn>YN=s0!#4$y`;Nca=`r)8fg51mO&}6YUsqQv&hg?~N`B8;xS)cNgOl z$L<1Oyb84_*)39D+HP1uaM2tRP+IIDh)D_iJsWn6AqM@`G)L!)K$FO2WJ|OK^EU}9 z>w(yU$GIb^%hB20mmv)Z_9?r7qHTKc=cV!)eLm7kBQ=%hxZUVK>3*DUCrH4=NWXeJ z2*e0k!Q2?-U_pUDX>>b-Hfa~g!p)N%jqOT4h?Hot7_OKHukVRN#&c?5Hgwci1c+sZZ-4&$Q0>vU#-%4A+Bk9xo zdlz#9yWc0Y>#7!3tIP=Romx7@-PJ&G6l0=TW+8qS8cjfw^tWIy%2OyL$OQsE`C2nt z+_8iPBeB>6C2^Kg(E>m1hT0C!9}Cqrtr*!=^=Ki-s@g|bFNIizsYzX2_dH%N2fHpS z4>mPwi3uQu8TiX!4`x1JN9r=j_O=8=M+TVs&m1aWebbdjK-{D6Ba9{21)In)o=XfF zuQqTS-A&eX5vK@)^!{PUxFInVUW5yL373{D;-nVI3L-AQ#z7@c$PZ&-3tUvWH>VdsAz>^dE>fMt$VQQ*5kuXvaYK&4p5;5Af5tG@# zF-&315>9zXs^Y9_+#6)ylCd^Q@C^Ac`$oNFE&b`JGLo&8mg1uCEncKk9SXg9&`Ra3 zUyIR!Bx-PFyhogYvC(J<@Y1)z)mcJMDDqjRCxC{)c55j~o6$89z}4|!pcoP~K;4}o z?6ay)s;;TD3}D6~k~&hI)liFfYT1;9u%zUNO|9(_BJl;`DB+WiV9}-bI%BzVr5cpy zrl!&{xA(JA;{e9tEVV~!Y7+cb=ZX{lB?^o_kS`2E^5b;kv}OA;Pvt+_t~ZcS(e*A4 zImhRH^9=zIKOj5Wt~-Okkhw3mM}@5Bq${pGL+$peb~Md{5#R)PiDkuqVA|?7g9b^y zMCcBGQfu&oWjK@)N#`8QRU=Kou(-vn(t(#FSu|7o{8**}^{i{LIwl!+LplhhF4LA^ zn_5vrTH)bOafjXRja`V1Cf+42hrb_N{HC;AFeL^<^_mO`Wye_qv1=E5kv!|LnaJpP zudm)q2z_G@CO02uH|s5rAzC^9^0=|8v|R=Ty6^U+gD(}q@2=8{TULeCVPQ6Z0zR<1 zLCzvvJSASsEi`|(SOKLV47;DS7j8^8D5Py(3bui3te^EIHf^3l!InWZ1f}%-2M-Rr zhWrXhJMG!k^DNLU%tuJhMk5{qu0o0Y+4kFhw+ED7?)MZ`8cooBJ*3`#(P%m`UT4K& zRkfC?vH4208I2q8IQx?Q1F$?B8t8{;-M42H@GQ~^u!JM904GlnhE(jmw%s%1O|s9Q zF4r6Jc0HVzUM^GGKYc%ZgE07!hxE+TQA`1bSFnn%aHSx6TGQx#Xg7K{(dPt8dh9nv z8%l4$mjCYi9BXE2yLKE`+IBpviV<~JNQ2%bi^_r&9_xI&LpY`NcH==4EO%o9#=xqB zut`sPQ^oJtrIqMQ;EC99LUc$Kzn@W?_e~*vib2B;ots?yYX;?8c*K&9#NaItGx5SA zyful+r`*Y6JqmZa9Q6=6g-5*b0pX)YLmatX$P`RG*-+lgYl9(o*HPK_0jd!vifj4& zr4TDfin`^vxN9o+YwBrxSYpte35ADv|5p$f&r>Petaz)@noTyN*CQj)-GgXlvi%!! zG2F(ccQAszqZ@1tsq+ONWPT{t>uzmP4${xm$lv2(KG8(sSa1r%iLcs_MF>ybd%vC4 z%`kI{tlpNGg#9QwgIsEhu8nftOyU)dzF<$6p}0?AF(<+D+(cRKKLIpYrQUw6R+WAY z9}tVQ)uMImQ7=V4e4h`t5T6_2eKTb*y--bLmhWLr&-gCt!kxgIS;`fPygqCG6K&I6 zgP!7!qemNioOWUqi*d>-;p+h#bwc?eQ=JKt@qjK5Y~P0p?8(qiYj@^VoH(-+X`tO} zoF*g~P04iSp<|rGs?c0aU;WTZ#oqe0H!JFKW~bw9_{yCnw_7o5pIPoJjY*RYc3`5|!XmxwYLlim&j@7MKO%5ZCVZBZ1ZvS>|MdW+U{Iw>i)Aw)N}j-`)#(ZRB&nUoLZKx!9K0tE>VnG zKaPP7Rzqwt>?d)vU$}GjKY)L$7kYI8L?Ac-AWHI|)C=~vdKuW;n^+qCL%+^c)tqwK zQ9QZ3a>o|yun{>p=jYjBE>x?$7n=Yj`u_e2{<&{=WZ8}lk@nc}Y#9#6VMwu7R?M57 zBpV)TZ4>jz`LKxYStDLCUz8Aj{RiUgl7(>+acZ%z_Eg1j{TM8vTpN7UhHyjemmWrO zDn>n2u8;H@+z*_!g9HRyg9J{iPhy!E3~}YDa&&hpOKi?j>xiJaZe%{uAxrxiv?nS1 zGGNMpR*M?VZhHM~u7b2Ebmizx429sQpmeh~2N4pf_>6<4TSm)Dg}VVJo7~2#&d1|k z+j^aOS8XsqOZ|^|OIGBrz%`mXJ382~I>DxAxJq3+FBRA^xKDuT!m7a*r`Y4c{C2G< zREZu1S&EEd{TdyzNq6O?@#Wy5Vm?SD`KLfQ9q_5I83i|Kr_CW<-a)|?Jw_pMkOG^n zy_dm4uF+gPd4Hni9HwZ)WB;&2xIl!#P2D8Dg$?B&jY&a!_PKWh(U=j`I>`d=)U~|@ zC9+4|G6;A1slVmsL5JOVUu~)`!G`=$yX_XGN|28H;M)zur>>E$9zRWR2+I0SaLlYY zCTamlqz|vS$lW9cT{K5xqF{$z1t)+9WtH2X3xdi3N$X9Xn%PeMB%pD17@ZB1)V3*5=iR-54gA1>JJ<>H)?v3@BS$8GH0+Wqn zA|;+R63EybB&Dl^t;Ot_*d9BF9|(0?q$&_4Fv1wPH-pd+h$7_HDCr>+q3gS|>eNxQ zd$1}Ae9q93tz7h86_j`eOVwAfym|m~>IbuAyjQ-_9U;*dXvD|%*Et0Ia@W48G|pL-YCMiIL}KzxmasAZJ@#wz%slk za?K9oP-^L&wb~yss;Ds?W1sM z7d@&m8_8M-qh`fXT1#+ej9Mu{8Arba714ofU+%a1(j%l)pHfwH*~uE|p~%-JH?$~z za=vim*eojp*#q$udKxi)JynowBKO(XpT$}2sNC4Ny%W>W>P%r*h|eU9(yUw+(_=u} zq~Z@Zu|zES5y-R{?|`brto^KjG^vHXJrOrwkAu9o>Z-7E+ZhGY;Q6MF!oI;bo-!#v z8C?~&YiOg_z|Nc;fxB}9__L0X>KeHEFp-M zUqh$E6v5tX)KN00PIa6TsaQ0va|f)j-I3aKx_L>i zeY&}F0hY}jyp7hrzKrUt74sr|xeExxIeA2AM>H9Gvde@vNwr$39xW9Ph|;xU9^Iu7 z%dW2}R;6iLCB1Y(MR>lhm%3HBQ7k*g;$nnJ-qIpTgA5F%gPEcZpW$2-=DD(FKiq;-FDs{zL6JrAMpUGnjX!jG zK|MIkd6r*VR3h;fr)mX3kNUKAqFtSu$RZ`Ck(;%F$420>8RUVax)_~2YkkX?)==}W z`v&xuTS^q~Jkt6%m2dTqt|s3bB->%&ED~M?>8{6_wYBNhlsHQ}{ECi#62qymhVPuq zq@35gjm&C{`od^C+24PL{Epu7GDAUQ)6Vo%%(BScHMQ^wQLRdV{-|@qth?87Fo|5K zj-2O20ZX$lcjax#be@7xfw$5!cksxNQsV4-WNV`6ScXaC0{t+l05h_sY295m+d%UU>55dm2M;1?YL&;a?15fHRC zO$q=2ze!8T3rc@u)|O(I5Ed4bQk0ZcQxug{l#iS257kvC{i)tgGo@pyp+*X<}q-WNvS6>tbhaY-eTTVr%B?t`Dm;Fb{V7#rf27VMN7=8+xlQW)zQ5*!j75f>3185Wxy9q1Dm>K_*oo)Y1o z92piJ6`c|rmXwqfl2{O$S(lie7n4~NkzJpfTbz(zmr&50SlpIcP@7WJoK{+&R@zpO z7@D7!P?H&1lNpnfnO&Tl)|eaFSeTNRmzP^uT3B3|Us6_Dm{(F%R$h`{R#ui*P@Pv+ zn^WFeT2WhGQ(9WvTwh+$T3cFIS6|!E+R)rk-_p_2P}kDb+}>Q@*4CC*(UVcrpIbMO z+b~kl(qGUrUeeH4(b8MiHdfLx-PqAr-8J3W-C5By+uA!++c#S?u-rJZ&@i&vIylol zI^QYWk=|dO*;|>@SDWA4P&(M0KhRP>(vbh7rEsjZtiPjiy0dJ!w{5udlCnU}SK(zkg(Wbg*}LXk>h3U~Fux zduXa}Y^G;ob#!88baH8IYNBs?p>KM1YfHF?)a2Cs^w9kD_}WbW%Ix_1 z(%9nSV(;8;@8ap;(%#_m$=Jg7_{#3+>hb8t_4LBl-0IHE#^K8P_R8kr+SbOz_Sx9h z)xyr+?9SQR_RqDSCu>Ki%ZE4XS1(%=-3LoUTZ_{>t8+UWD@Pl1SL?&4TN6LG*G{)* zPj=T%kJfH>CT?s1Kyo#qu4WPuQbqkT^`$ zMFm%srEutE^*g-Qh(LUZncUL+e^g;`FQl_E-b@@a9<*OPWikpkbtk#E2!i8-L<0>2 z^Z{Q07~Zfv|L<3`i~!q%3z@SpBQPm2N7jUFv8}Ba^Z4({7q^xfT+J?H* zKTO#ZRy}BNEODBroc8j~#E(Iow(dP!0kYgKKMy%idS&Ub*J|8h^cq7S;Khh^5ss-d z3=*Rc_bFHf)c9rq<09|{TN-<@J2#=CBS3vMfjV}1CC-zYC{Y3?3w;- zm;_>W>Pyo2I~6JxatDrs6ckh#ht8=oVoc#zPb-TQnmTL1`gi1U7|3WuKhTvFh!uJf zs&pB75^o9y4bq?>;I_WdxjCDINRL1|c*lu-)gg!q2{Nt_Fbf>k6q&(kx~>QJ<`oDZ zU4Fde{n4OqAQ5eEPk(vt=cRP-4T!4J3of)+5NIJ5)IL)`} z6jyVuR5PkHIk}Q z2p_*4uxZ<%OLQp&k1jFfh#j3m#0j>10SWJHQMhwz8)r%}Q!?pZ61CE4xJUMDWmGY> zB!RnGV>u;b4>f9@MDPxYvr0FGf?|aY?cpp^C0#2^@8zKyx0zW=NxU=ExAG^bbQD>F z>TBnL;tG;P2b(5S21p-XCFWe1g&$(n zqGd2>IXB4Q|`|S6yO9R9{`Ew@l!fPh)1GF9~W7~&+GmX-VRhxBVEI?O0%o>H@QKE7LkrGlcX2-v+mg3EV;3&?*+ zWF#S@6Ud8Gl$o>+e{9QmPjj`x*J5TCl;j!L<-P|&wo%PJG0D+U*qK@{LXSFkzT!3u z81^aTrc4&GKe+?T*8A+1Fx10sNXG>0YPunHq!=W2fW9ohrQJ8;D32Owx`jS-<|ZyP z_e>APfbB=C*5ZTQX&_V36clzocetO*q=3-HT16`umqIT+!%e-bJp;6;joFhR17%{Q zKvrw?XzrkwOck`91(hy~ao}>vD5GT6lnnQ8Qws{_iPkn4Rcv<}8ODUVx? zb!dJp&UVRKGGKa%*W$?nXSzK%ocYG}k-S_;VKhQcdQ|n2-(Oz}3*c_hpySb~Mr?J< z%3j*8`8`g{?nYg>#LLaRv>+jN6g%WP_=@+ERBwp{c&DrN+bgPdf*ni0?F+)`g!-|Z zqrL|-wXQ%rM;@>yzYM*p*KLTH&H2lh3XH>`i1|&~tOTp0F|rjNN(=B!URy`m{6X2(b>D@|Ae{I))V z8g+=FT=A+XiaF@eUvTh-pd2&b%bTfZ2e@0tLNz-rsYJCz)scq7vB9`tyUp?GG1>_g z46nSdRbdPWQts%QpRdNyL0GJNFIESQ9LOqH;q|xq^E)S<^u+PzjC|7O$&AT4q_>mJ zFnsRi##R-V)G88k_LCW*CpIQVEA@9-7l3t~=t8S5$=kE_0k0ylrb zI3f?_*NxNaFL5MM`!^tB0?36pJk`7r`%cOT5?5j6VQ_h+_i{XNVHWJV*|$KJA*~Fu ztp^k2GG825VMwU%Efx{oSOAPibVvDY1(u)`;YFPNs;VU+e(!EF24o{8#nE^P*gR?R zDQP+2S)2Z&Uef`b$ANna%CMXTaCbUh9(*Y$NG}KO>cH@pQ!?m)7@vgGt{LeLM!fr1 zzOSe11z$6%2^=cFfajT1ofbC4ak2s82}Gom5PT$4FY-&j=Xn(I#DR1Rv2}D66|Kpv zcn(4GO0C_6Bb{*yB7D>%-uiIao;Gf{+vkgoWZEOox3yZIUMDxAaJ?kd1*Ar2<-#*y z)$F|X0}fhjWhZkK7t4bk@! z{5wnNpq_^T4xn0)76;bW?8L20vRPuWnz*%ckGUzMQPPUpORbDfa?>xHVc$)wtY$7djm?wT{RviXX(Q4zCOEHi+|o zLh1-wxccF~n<+*4i0I=#*D59|14c<=26LK&)1yF>`IL2EBjhc7>PEhc% z68XN5s(9r_=RNU_)siWK#K22D%__y5rlFyYI5QRD0lW|jj0+MwRAinaac8G;F!1_2 z(n7F>w7z5VAp)KC*+-f#t;gLFs!6s)y?%3^l#H1Uka7(Y&f^LP%D1Xqu;b!tQJGDM zIS$Z-_OxPz;*cTU_|fd$IloZ$q)=i;IR)SuFG1y?Gg+2fpiTA$$29wrKwdxY(lOZS z)Wg?SDTp6wjyuU?;PNL8J&2llF!4U2z)6oW0)g_CY7#J`NT=l*v<& zja$S|NkM|)UUc5YJ}JV+reLi3c75}YgImL=9QV4!c&<$;d;iMuUYV8Bm7ArD(DSjo z2p%11_p}}JKu&z|BAmYgMPj+t78iNa3l6YEeUiNx@!@_k@Kf{jvhu-;$1%9aST!-; ze2ZvA{Xv6kFn8P(G4bHQV%WWU?8JOg0eoS8(cHI;j$!>(X#7#A8mZQgEQIB(P;xyp z5m8Ofkap7e2yPiz(lMDrAhA=L|C@OGa|6Z7O8(}aDLjjTVFeu)HONL_2RwZH$y*;> zUnwkefz@SO>R_UM)AJC2LribKy3XD4hNvBi7t8ktu(}r<2-4LZXJevobA?Pss#4xo z_x;WxUz;^k%vp=R3Tym`+s_`G&3?WClHVfbxLYF{_fw}JM%*EHI6%usjVEp&Fu_8W z#_g!8#W@3*d0^ynel>g-1u6KO(H-c)z5j|PK^_8vSK>r z9jtUR+t0WGC$?!(Nm_1AtkykSoK0Z5kmKD2s->xd{@MtsnZyl#@m3liGucVd#*Yp$ z7$VkYvYZOj`?SSo{3kGI;LCwc-uUN8(E4-ver}Fn7#L@dZKm;0{zN_9r#$$8K9Q8c zl%sA5Gis#avq@0HQwLPSVOX+mED>$~5cM~B;IeN8d++aToVZ($cz5LQpIL_qF0EowMU`9p3+ZXJ&t zuo8tQIf;1gk?efGc33IOWt?L?tUWW zK61DyqLtuN{8N=17V+ViCL2>C!kf$Ym$N5R7D>L^-r*Wk(K=^@7%)0NMaaD*SQw^} zZh=l{vMEr)5YXTi8H7%k>%{rP^GKQi*Zvai@OpIT)ae$JUdm$Yyo5F^DohVOPtp;Y zR!<*h=*EFxwFU@%AxUe-m-%z~5RDo!T9_}`(4ns_gdn<-U&w{-t!3=yP!3;5n7lq$ z4rO+QzUV&Ek8I!@KybbDrlYMzbY9{6HEaN#4)*rFvGHrP17yr8ajAQ7o%WS^UZ7G4 zQr2X33d;hzpr_4O6SZq)_Og}_FJJFODoujr1Lhn*tuX}pFz3Dj1DCJht{J3pa^FEC zZCkJBu_a1w%*xd_5LVR#!j{0B1&TB^XiWQ|M+d1Wk{_jFTBtrF4nZf*p= zJ`Yil=J7&^JIQ6C0QyYi(p)NY_8H2okw_^QRi(HVbgZ0DqagQMgmkj{W|jxGYfV=+ zuA09t^8`(`wyrg+7~gaXY4)Y*n1)rvknxEhDB4CFOffHYNvb(bQ?olQU>`UuSc+Wa zlwvAEPP>zR*Q;n%>D_bMR_F&OW_9_I=LEL-fYlV-i)slmfBbhv@Rg%md|JNL>&q-IAJwR{;1fg_Y7VNpv<1^*>&xduMfQ|MYpk=hCwO;MBlb-QsQQK z5IeVb4cI9T&ATmj7Q2`WzO2Gj`(xU7SEI~{$)p(soXxGN7>%>*HmVmt@Vh0bhBh(v zC|`y27(0p2nss#R_Qjys}$wHBE>qZd=@Kv(*qu6 zTRF(mum6U|&x8aiX@oU%O+q|wvl7UJp34U`0CCagMEE^}r40rCoS3W=W>~r`k4ln6 z1nkTxc)9BH=XaoJnVqrEM^<~{bWR~A?;;fTZQiKS=x= z4433oVJ~;eHhDReF#xS+B+OxHdXW1WvtmH>kQ_37teQV;j%DD_}BKjqRN>B9p1L|xcNVFNnsxXJL- zMs?f+u}7!+l!=VjV;IzZeDCJp-M_(&BwMlXhIBilY@+D5b%$M;qQg|hsC<%uA0H%| zeVg8{%Th!c_9VRE5a!w=zbyFV_aY=|bdNH*X?>u*^PGc~t$p56aQ29Hs0kTrIlITQ zo=*+*%{j2Lb9l$oa<*3$6mH@naML4XZ;DpkJ63-0Zeis+yOKtvc?XP*?IY*Kyvy2% zR@cQot<%kV?eqz81we1;VeZ^f3ALE|~CMK*6ltlPMmd zNOG=x1HjZ$Hcw{3ZUv%=FD6ZzWFHNKQp}-Mjt9H#M(KEH8fI}B#c^` zQ+ldQrnur$5>XvtGWGT+8U+;x$G{*E1OIo7HE>7#gpr<~R1v7T3yS6fWq`N7hk14I zxjWDtq!vxF=_`*0&6Y@iC|QNh$iTg}c<@;AALA5r-=hUOHY&68ccO>`of8e;C6kQK zmqzs?mB_VmJ^FU65uZbaP!PYFWASzdQmzJsxbDR`FSswR*K% zJzwXHYJ5(Kike>BiBgMFDd8remHJKwP|m5hVlbf!`qQH)Gyw)RqX`zuQRb3hqXl^( ztV1!T!qlBf=)SED3PUz;_S zrhP{Jia*eBqBpZ;jpQ|RP8U=xFw1SNLh(Vx>egdbg)bibE|RyuCu2xDFR^O0+#%R1 zerFMAu^`8e`V4c~e1o{aforP6u4zhT&YJcCi0N~<5+O~ zTYVoJW_CoMb%lq!rVhS(-2p3=t8-7!dC;J(GXa7!H9KP{5WUXITc)&qTt?ulz<+FG z78N*2hxSJQys%wRqmd*S`QD>kT?tk8vXcMPdd2l5etL{iWGK{O##>x$JOM}f`INn~ zL_2@uOEU(3iMAPzCI#g4qf#Dbjm}dg?}%KSs8~l}s%BFCkS5qUftPqz1DCYZ4`>vd z8rQM%Hf68vhU&@emlk*>ykh=W7rhQimMW6FGzm^+@-_iLkh+eX zIi0EKD}^JYe_66G2)vsp>FP6}b}7Z_yo|gRQgzl4c!N@JlR#mDTs{eh-1Ce=%&9qd z#Ckdi3wAIpztRY>|4#Uv1;LugS#eV7i8;6q8d_ISC>Tk(Bu;0x5A$%KlDbWUq$bnm zEA7o+8EN}dj?|4STp_t^+OW;h3&VB6_Nov7X%rg**iAzZku)i3u* zHU2EiK=tBhPt9ga0L*x#9we|7H6RL0=wrur6^{iEFTt-5uC({G^g8VR4Jk}3c$~-1 z@|r?GwsXAq5J^CnF-G1C8t*)8cbAN)(-}#2`ba+gk{8k~iRWi+LNFa8hG<4c`1s4^ zJgorHqyNw0VSCEh$4}wFi%03n7o;3JKZ{mL(846O9M5lHycjRsR9xTJ?yR83g)F}* z2QK!7Od6rXa!R)s&{w&pI1p_uI`3{yfBxWZL?bUGKZeMW`ni&`(e9Y`(tSfu$FsNb)0|@2E8*37+Ef zD^J0L0rD*&aaa!HkR?9USKpaN7eB>@f7(MPjaQxO8dUc+Lqbi{@tp@2`hyhxECSMmjJ@Y&L79E||@!P4s; zuc`fHQzps0OSG?9HZaP#S*$GSXIS={g2rV|!_`jZ@-}QbkvhfT-UG z&#}Ehi!DmCsJ~W`z1~j0ei$f!Q83BnNXDy?*QwZr(Ewu}*Lu>SgSx++Z4Z8hHpI4> ziO0y{4G~&U?0FXizw9Y*0cV4DPXXw!p9jD6Cy4eEIC)uabVBT}Yv3iboZ5Mvnxtll zk~R0UDDKk)=$n}V*K>JIrbEQgD>5|OKi2T9^EmBxXD_e*L{H4MY(UvrWbxPrtWnr+ zlr-{CB8d1QsT@+kgE(`2x1it=w6}V~gCulU!qO{;`ck?`VbSS&8wQ^JXJi? z_zSR|3}nA&;&EiH#+93FP-De+2fg1%4|_LlYwh+kXt~wfjP+qo-$JZt!c>%9ifm zBQgI5X=krv?_j5^^S{N}TUnV~>sT6?|A+Q|+g1K`OMm13b8CP1`>buPjBE|;{tw&v zckTTe;_UFB+xt6|p}Ccgy}|!BC)QTh4%WXL{0}+7`9>M?OTY$mD5)U01m@WBei)mK(*Fa@3y6aS= zjn2q8MVb84mwnda3lCk?tZ#svQ6wj z87j%xpJYe7Jm7PNt+SV8*Fx(w%60@b;>Y;#L_kT5`rG?qw@Qf*Fecu}u=V7e?F?ym z%=+bi)4rsNoLt%nhArIF-0G-4SNGd=PcU{p*K>849k|*giq}s6a{m3ejl<>R;GK5z z17oME-ci7uXClw&Ir^af8c#vE>bHHW{=s+#?3drk@4xL+f0sVgU+I$+l;@=pl@g-+ z?>zpp$5q5hn)cBn1UzsCOgAc<)=?5lp#@~(b9z%oVEZs3JwuJ0QDJe|Q23zN#(mqp z=wJzNe5tGZ0j2u|m*ZM$Qv`&(_N5vKokdQP0Wcc2c6(zQ~+S?r{VSKXv%}#I9DEb~OVYtB!$=A-?I54()&CG)M z5==*arGu#naz)wL%&mP5_E6UXOMuJKfBnt@3z(c}#T{x25z+UnEmOZ#@gXZnYq*qL zFupuHuzv4?at!VbpxEZT_#ibJZckw?o(^s1rY72MJ?+2`NB_$Ha9erp6SN-k*i8)h z=|wO)nX5LxN5W{4u*Ead5SS>|{T5n*FTb`bY=U_2Xp7{gvHUa8_R1Z5gw5D{$K(31 zeG~#xs(!-$%dezUgZ}oc0Rf``{{4IezcT-q_+xg0KTv;k)?Y_%{ho2)&yfGM_?P(y z{uTIF)BJA-+@C@Ei|5Z_UjK^wtCRBg!S!eSMEqxi{l6mrYS{bjwEQz5eif8olP~91Pxf6F8DH#~pUj(^YdyDtA3A^(QwziRuxXZh#+bo~v>KWodsXZq*udHNfsKegun zmW7V={Stealth[round,sep]}, rounded corners, semithick] + +\graph [layered layout, level distance=1.5cm, sibling sep=.5em, sibling distance=1.5cm, sweep crossing minimization] { + + "Write a char at position" -> { "Move marker on board", "Lift Marker" }; + {"Lift Marker", "Move marker on board"} -> "SCARA"; +}; + + % \graph [layered layout] { + % 1 -> 2 -> 3 -> 4; + % }; + + + +\end{tikzpicture} +\end{document} diff --git a/features/graphics/reach.tex b/features/graphics/reach.tex new file mode 100644 index 0000000..d9c037a --- /dev/null +++ b/features/graphics/reach.tex @@ -0,0 +1,16 @@ +\documentclass{standalone} +\usepackage{tikz} +\usetikzlibrary {arrows.meta,graphs,graphdrawing} \usegdlibrary {layered} + +\begin{document} + +\begin{tikzpicture}[nodes={text height=.7em, text width=2.5cm, align=center, +draw=black!20, thick, fill=white, font=\footnotesize}, +>={Stealth[round,sep]}, rounded corners, semithick] + +\graph [layered layout, level distance=1.5cm, sibling sep=.5em, sibling distance=1.5cm, sweep crossing minimization] { + "Move to position" -> "Move carriage" -> "Carriage"; +}; + +\end{tikzpicture} +\end{document} diff --git a/features/graphics/robmosys.tex b/features/graphics/robmosys.tex new file mode 100644 index 0000000..e44f30e --- /dev/null +++ b/features/graphics/robmosys.tex @@ -0,0 +1,38 @@ +\documentclass{standalone} +\usepackage{tikz} +\usetikzlibrary {arrows.meta,graphs,graphdrawing} \usegdlibrary {layered} + +\begin{document} + +\begin{tikzpicture}[nodes={text height=.7em, text width=1.8cm, align=center, +draw=black!20, thick, fill=white, font=\footnotesize}, +>={Stealth[round,sep]}, rounded corners, semithick] + +\graph [layered layout, level distance=1.5cm, sibling sep=.5em, sibling distance=1.5cm, sweep crossing minimization] { + "Mission" -> "Task" -> "Skill" -> "Function" -> "Subsystem"; + + "Draw a tweet on a board" -> "Writing"; + "Writing" -> { "Write a char at position", "Hold Marker", "Move to position" }; + "Write a char at position" -> { "Move marker on board", "Lift Marker" }; + "Hold Marker" -> "Switch Tools"; + "Move marker on board" -> "SCARA"; + "Lift Marker" -> "End-effector"; + + "Draw a tweet on a board" -> "Wiping"; + "Wiping" -> { "Wipe Area", "Hold Wiper", "Move to position" }; + "Hold Wiper" -> "Switch Tools"; + "Move Wiper on Board" -> SCARA; + "Wipe Area" -> "Move Wiper on Board"; + + "Move to position" -> "Move carriage" -> "Carriage"; + "Switch Tools" -> {"End-effector", "SCARA"}; +}; + + % \graph [layered layout] { + % 1 -> 2 -> 3 -> 4; + % }; + + + +\end{tikzpicture} +\end{document} diff --git a/features/robmosys.dia b/features/robmosys.dia new file mode 100644 index 0000000000000000000000000000000000000000..e149a24293e54d09ac36c1c9dfd194ac1c02c420 GIT binary patch literal 3722 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 literal 0 HcmV?d00001 From a60bf1c05ce1b8e7be4a8870ac008fb98144d36e Mon Sep 17 00:00:00 2001 From: Wouter Horlings Date: Mon, 25 May 2020 15:04:38 +0200 Subject: [PATCH 2/3] Add build files to .gitignore --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 947e055..2c53efe 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ specifications/system/document.pdf specifications/system/preamble.tex +features/feature_definition.pdf +features/graphics/*.pdf +*.rro From cf588979cfca66e410c553b7b9ef118b4d396dc6 Mon Sep 17 00:00:00 2001 From: Wouter Horlings Date: Wed, 27 May 2020 11:56:14 +0200 Subject: [PATCH 3/3] Add report content --- .gitlab-ci.yml | 23 +++++++ features/Makefile | 38 +++++++++++ features/common | 1 + features/content/definition.tex | 1 + features/content/introduction.tex | 108 ++++++++++++++++++++++++++++++ features/content/separation.tex | 1 - features/feature_definition.tex | 6 +- 7 files changed, 174 insertions(+), 4 deletions(-) create mode 100644 features/Makefile create mode 160000 features/common create mode 100644 features/content/introduction.tex diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a4220cd..1740626 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,6 +3,10 @@ stages: - typeset +variables: + GIT_SUBMODULE_STRATEGY: recursive + + design_specifications: stage: typeset image: registry.gitlab.com/silkeh/latex:latest @@ -41,3 +45,22 @@ initial_design: - tags changes: - initial_design/* + +feature_definition: + stage: typeset + image: registry.gitlab.com/silkeh/latex:latest + script: + - apk update; apk add make + - cd features/ + - make + - mv feature_definition.pdf ../feature_definition.pdf + artifacts: + paths: + - feature_definition.pdf + only: + refs: + - web + - branches + - tags + changes: + - features/* diff --git a/features/Makefile b/features/Makefile new file mode 100644 index 0000000..83b34a5 --- /dev/null +++ b/features/Makefile @@ -0,0 +1,38 @@ +SOURCE ?= feature_definition.tex +TARGET ?= $(subst .tex,.pdf,$(SOURCE)) +GRPH_DIR ?= graphics +GRPH_SOURCE ?= $(wildcard $(GRPH_DIR)/*.tex) +GRPH_TARGET ?= $(subst .tex,.pdf,$(GRPH_SOURCE)) + +JOBNAME = $(subst .pdf,,$(TARGET)) + +# build configuration + +LATEXMK ?= latexmk +# for pdflatex: LATEXMK_TARGET = -pdf +# for latex -> dvi -> pdf: LATEXMK_TARGET = -pdfdvi +LATEXMK_TARGET += -xelatex +LATEXMK_OPTS += -recorder -use-make -latexoption="-interaction=nonstopmode -synctex=1" +LATEXMK_ARTIFACTS += *.bbl +LATEXMK_ARTIFACTS += *.synctex.gz +LATEXMK_ARTIFACTS += *-converted-to.pdf +LATEXMK_ARTIFACTS += *.synctex.gz\(busy\) +LATEXMK_ARTIFACTS += *.rro +LATEXMK_ARTIFACTS += *.aux +LATEXMK_ARTIFACTS += *.run.xml + +$(TARGET): $(SOURCE) $(GRPH_TARGET) + $(LATEXMK) $(LATEXMK_OPTS) $(LATEXMK_TARGET) $< + +$(GRPH_DIR)/%.pdf: $(GRPH_DIR)/%.tex + $(LATEXMK) -lualatex -outdir=$(GRPH_DIR) $(LATEXMK_OPTS) $< + +.PHONY: clean Clean +clean: + $(LATEXMK) $(SOURCE) -c + +Clean: + $(LATEXMK) $(SOURCE) -C + $(LATEXMK) -outdir=$(GRPH_DIR) $(GRPH_SOURCE) -C + rm -f $(LATEXMK_ARTIFACTS) + diff --git a/features/common b/features/common new file mode 160000 index 0000000..9824d62 --- /dev/null +++ b/features/common @@ -0,0 +1 @@ +Subproject commit 9824d626fd1bf2cdc4d03c4109500629ffe16a20 diff --git a/features/content/definition.tex b/features/content/definition.tex index a25f71d..26e1159 100644 --- a/features/content/definition.tex +++ b/features/content/definition.tex @@ -1,5 +1,6 @@ \chapter{Definition} + In the initial design step we decided on combining two motion systems. One is the suspended cable system, this can easily cover the large board. However it lacks precision and this is where a small SCARA comes in to action. diff --git a/features/content/introduction.tex b/features/content/introduction.tex new file mode 100644 index 0000000..cb82eb5 --- /dev/null +++ b/features/content/introduction.tex @@ -0,0 +1,108 @@ +\chapter{Introduction} +This document will describe the feature and test specification step. +The original plan was to specify features and give these features there own specifications. +Together these feature specifications have to ensure that the system specifications are met. +And eventually for each feature a set of tests is designed so that the feature specifications can be monitored. + +However, during this step it became clear that this method was not feasible in the limited amount of time. +Spending more time on this step would not result in a better test of the method. +It might even have a negative effect as other steps would be overshadowed by this step. +Eventhough the step has not been finished we still managed to learn some valuable lessons. + +One of the lessons was to use RobMoSys for the feature specifications. +This will be explained in \autoref{chap:robmosys}. +The feature specifications were very difficult as it turned out that a lot of this depended on the level of detail in the system specifications. +We will explain this part in \autoref{chap:specifications}. + +\chapter{RobMoSys} +\label{chap:robmosys} +The original method was to just look at the features of the system and describe them. +This turned out to be impossible as there are a lot of features at different levels with different dependencies. +For example \textcite{broenink_variable_2018} defines three features on his segway. +However, the hardware already exist. +Therefore, features like wheels, motors, sensors, powerpack, etc. do not have to be considered. +We underestimated the amount of features if you do not have pre-existing hardware. +A problem was that, for example, a motor did not fit in our original idea of feature. +However, taking a high-level feature defeated the purpose of this method with multiple steps of implementation. +As this high-level feature would then include motors, control, sensors etc. + +Eventually we used RobMoSys to separate the features in a way that made sense. +We started with a mission, which is in this case the 'tweet on a whiteboard' and broke it up in to tasks. +So what tasks are required to fulfill the mission. +These tasks required certain skills, which required then functions. +\autoref{fig:robmosys} shows the resulting graph of the separation into different levels. +The figure also shows our fifth layer as subsystem. +A full Robmosys would even separate this in to 4 additional layers but we decided on keeping it simpler. +The simplification was done as this was mainly in middle- and software which was not the focus of this thesis. +Furthermore, because we did not see any additional value but it would cost a lot of extra time. + +\begin{figure*} + \centering + \includegraphics[width=0.8\paperwidth]{graphics/robmosys.pdf} + \caption{Separation of the mission into tasks, skills, functions and subsystems based on a simplification of RobMoSys.} + \label{fig:robmosys} +\end{figure*} + +In the end the graph gives us a lot of sub-features. +We will not implement every single node as a feature because 15 small features would only create loads of overhead. +But what we can do is group sub-features. +This also brings another advantage because we include a higher-level feature that can be used as test. +For example, the SCARA can be tested by successfully moving the marker on the board. + +In the later step where we will select one of the features we will use this graph as a basis. +We can group features from this graph such that they can be implemented in about a week. +This way we reduce the overhead of implementation and keep an eye on the progress. + +\chapter{Specifications} +\label{chap:specifications} +The following step was to distribute the system specifications between the features. +The problem we ran in to is that neither the system specification nor the RobMoSys was implemented with enough detail that they could work together. +Parts of the specifications lacked in detail, even with the use the EARS-method \autocite{mavin_easy_2009}. +This resulted that some specification where valid for all sub-features as the specifications where to broad. +However, improving the specifications would sometimes result in that it did not fit on one of the sub-features. +This is because the RobMoSys misses sub-features which would specifically implement the control system. + +While we were working on this step we updated the system specifications. +This was done because we found that some of the specification did not make any sense in for this research. +While others were really easy to expand. +Therefore, these following list represents the updated specifications: +\begin{itemize} +\item The Writer shall be able to write at least 50 characters per line. +\item The Writer shall be able to write at least 5 lines of text. +\item The Writer shall plot characters with a size that is readable from 4 meters for a person with good eyesight. +\item The Writer shall plot in a regular used font with corresponding character spacing. +\item When a new tweet is send to the Writer, the Writer, shall wipe the existing tweet and write down a new tweet. +\item If the Writer is not wiping or writing then the Writer shall not obstruct the view of the whiteboard. +\item While writing, the Writer shall have a writing speed of at least 1 character per second. +\item If the Writer is tasked to wipe the tweet, the Writer shall wipe the tweet within 60 seconds +\item When a reset-signal is send to the Writer, the Writer shall re-calibrate its position on the board. +\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 3 characters at that position. +\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 1 second. +\end{itemize} + +\chapter{Decision} +In the end we decided that a it was better to stop the current step. +We have some specific points that require improvement in a follow up. +The steps system specifications, initial design, feature separation and feature specifications have to be merged in to a kind of spiral model. +Where the process would start with a global description of the system and some initial designs. +This initial design can then be expanded with some course system specifications. +This would be followed by a RobMoSys-type of analysis. +The RobMoSys gives a brief interpretation of the different subsystems required. +For each subsystems we have to assign specifications, if it seems that this is difficult we can choose to review the specifications. +We can add more detail to the specifications for example, or split them in to multiple separate specifications. + +For now, we have enough information to test the next steps. +At the beginning of each feature-implementation we will write the test specifications. +And during the selection we have to keep the list of specifications in mind. +We think that this is possible as the list of specifications and the set of systems is manageable. + + + + + + + diff --git a/features/content/separation.tex b/features/content/separation.tex index 1a670f7..4cd9e08 100644 --- a/features/content/separation.tex +++ b/features/content/separation.tex @@ -89,4 +89,3 @@ So we will split this into the following sub-specifications: For the system to be able to switch from writing to wiping, there must be some toolchanging. The general idea is that the end-effector can hold a tool and for a marker it shall be able to press it on the board. - diff --git a/features/feature_definition.tex b/features/feature_definition.tex index 1ddb3ea..dba0333 100644 --- a/features/feature_definition.tex +++ b/features/feature_definition.tex @@ -21,9 +21,9 @@ \include{common/texfiles/acronyms} -%\include{introduction} -\include{separation} -\include{definition} +\include{introduction} +%\include{separation} +%\include{definition} \printbibliography \end{document}