From 613515b5584c5070a93a5b84a8156f91b9afea27 Mon Sep 17 00:00:00 2001 From: Jim Molkenthin <jim.molkenthin@web.de> Date: Sat, 6 Feb 2021 16:26:51 +0100 Subject: [PATCH] Erweiterung von Node und PLanningScene --- bibliography.bib | 8 ++++++++ images/Hinderniss_Taxonomie.png | Bin 0 -> 47168 bytes sections/einleitung.tex | 4 ++-- sections/grundlagen.tex | 18 +++++++++--------- sections/implementierung.tex | 6 +++--- sections/tax_einordnung.tex | 15 +++++++++++---- 6 files changed, 33 insertions(+), 18 deletions(-) create mode 100644 images/Hinderniss_Taxonomie.png diff --git a/bibliography.bib b/bibliography.bib index 07e5e47..ab312f4 100644 --- a/bibliography.bib +++ b/bibliography.bib @@ -502,3 +502,11 @@ pages = {41--75}, } +@book{koubaa_anis_2016, + title={Robot Operating System (ROS)}, + editor={Anis Koubaa}, + year={2016}, + pages={5--7}, + isbn={978-3-319-26052-5}, +} + diff --git a/images/Hinderniss_Taxonomie.png b/images/Hinderniss_Taxonomie.png new file mode 100644 index 0000000000000000000000000000000000000000..9c530de66f843d1f4f538f630853e44aae1c0ddb GIT binary patch literal 47168 zcmeAS@N?(olHy`uVBq!ia0y~yU_Qvez{JVH#=yYP+G3x}z`*vq#5JNMw<0YwCzV0f z*crl7H8RM^FD_9vc2PAla?MFiE-A{-Q#CSDH8RM}PsvQnOih8v85tNE>KYj78kmL{ zny4B(8k&I!b3FqCgD8ml#PrlWs6nQB2C7B|8sV9FDf#8aszwHWA*x0Oh6Z{Ds>V*L zMh4-Td1fXMW`&uFrmB&FV?jYqYItgrcV>yIk(;Tpxt_5Z$Ovzb5MLivBWG13gPhFl zR8=Db_tfO<e2|uuqQr8&%zRZNH$!7Rb3IE{BLnA*qWs)cRU<bGQ#}Jc6GIDQJwqcy zRU-q0&)f_R^bGZkRgDaS6VnolGLdWpdAcmMs5mn}58`K-xgd$ulEid~Xob5^aY%Bd zUy?_TftzPpl5<gbHY5Z}DhpB}YEn|mGLut5qQ<VO#?C33iRnd&xvEA6nb6=&PjPf~ zb<a!-%ZqeR4=&9wGmkHWC^ru)@<}eqFLw(tNX*F%4s=P5O3f*%i1c&ukIGN+H3}{_ zQZ;fiaxW;(jB?9~$gxawPcANta?3aKN=^@{boNd!G)c`#HZuz_FNnxDN=vISEy&A? zO3QLi^UN?aEOtq=^sn^D%MHzNvCOOVH1{h`HYqkw@$hmf_slJG&k1*TPsw%iO*aem z3l3E^a`N&ta!)UE^UQXS2=RAM4K2?pH%Rizs4B@dF$y<#&Q~>ZN(szy$#$%&@{cqz zC^S$ta?5nKbS?=jD2njQ%?tGOE>Cswsx0#<&#lM~%PNWT%&u@TO)@m7GK#cNHF8ol zaxyik^inl)b1StdjZDsWG*dNlbMykmqj8FNuu+~<x`%hRc|oLiPC=%-QH5WbOHOD` zc#tnR^1TWwa|}IGiz^JA!`+>dGn^~3+zi6f+;d92JqrR{Bb<HQ!h-zWLVew{y@P@( z3&Km%11&-Viqf)Df(w#T604H^+_RF(%aS~co!ufTlFUp4!;DppoC*xXl2R-SQ!|Yt z-GcKo6P=4A&CMN?+(P{_oxH;>in1$RqC$NlgG?O*Q*s=GD!ju~joe(bJe)ETUDCWO zipw)SoYM;{6U&VPaw0=LqKY!ToYHb!ElNE6GL5S;3QR2mjVerX6RXk-JPLyf4AL`v zos%=YRE?bc^1RKm1Hd8U<`|iineXTpn3e48T@+ZAo)VhwTICgGQf8TGnB$wC>#J(y zWSCzR>F8q=5bR%;8s(Ah=9uE+R}$`0Xb@^>>=%|AW?bM_S>WoOSW%Eu6=0I4YUJkR zo|Nk3<djjFWt19_ZJ=u86y)LLU1sT*?UA3J=UR~C8D!|{nv$2~<m3@#5m4c8UhY#- zRubSEkZ0)~n(gXbmFZt)Qks}$>R)c|QS9&R=kDZf=2huyUhbNa>+4runHyx{;pClN zX5#8tl<OT4TIf>XY~kUO8<A{~=UN<Wkm(!gpO@-am|qxLm{k_$X=a+0Txg!0;^SYL zlAi2k5oVBB=u?$l9O{)Do(oD22BzsQp{}|9rd7Uyrfx>QCP9u)hQ(=t`M%*r5w5C6 zPQmWQfd(1Qra{H2Mk&cD?tv!$scFf@X<6p3mA=K9-l|4!L8+Fhkx|(mg{C>iuKvy` zm5!Na5x$<D{)PGG=@lLYszy#({ubVT20<38Ms5}!MUkNu27#H*ZWZAHj&6QV9!|cl zl@&%Ffff-N<^CZi!9Kwj1}=WC$-bHHASal4<P`=ac?5drl$dx#rsi2VMwtc_7I~Kz z75S(dxt05sd3hI>nw4dFW(Jv6=7g7+W|)?$8o8yUCWWdRxs_DqWCmmx8&*2HmzgG3 z_~#oJSmYb$mqnyU8i%>1gcOw)g$DW-c)IuoN0b_+8CzzX8kqP5Wtp0KnH8xTIi+Ui zSsGSUT9)SLmii`I`ju7Yl;#$es~Wla8il4;xSLvpMrNg^TbKqIM+Nu?xn>5K`lOZl zM3#qUSfn^Psv0?!7Nmr_8k7WpifboJ6Z5F#^o%^ihycS}i_H82UysaCBM;9YRU@a+ zjC@P;P?yx?%<PoX%qY`}px}@U?}`vm>dgs>NOej!FitggD~iZ5iVROOPRq)QNcJl$ z^DxUw4J#^jHTLv3G4VE4HF7h^Gzm|3GE4L^PR%I_Pjk&HGfeR}3ad<XG*8d;cgt`w zH8qJSGImb!b<c}TOU=p8%d`wHt19yf$t*221{D!WSxM!fLf6<u)z}#nn9#BoT=1$I zxk2kWV^^7vbypb}6c{{R978JN-pu9S5O%ck|8$eWh9lg(DjP2`eDzn@GOa~|i}BEr zjg68UmtAs5Ye-we!8*lB<djRm&*ZiS(Y6k@D}_NDgnbtHE|T?>SuUb8E#Ot}+NnNC zEiA`Xq8OELsO*1ee%|nR+WUK-_dTEUea`necWvjFw_U7$fAem-{rP#e&wsz$eEyqd z`MW!oN7<PK8W>piC=`5o5xBMZx!>0#!u~6s&#U&EYgc=Vd-v;%l<@HBQl?o`c6~af zef7=F%~v}Fm0xu<+Bq|Tb<R<~z%KY^j=up1lR$%mPNS;#v=!}gRUT(&oBR9DHuLS3 zvyI}Fu@H#r6SAoMwB*&hcVYc@zgFDZSG#-HyIrrZJUcsEcB|NC1qMbA2L`6EiVYm= z`q#hIWKnpa**HC}%F}ngU2JUG&D5;JZM+=u{C_o?Dt>-?`s!x-{LtOy@5997Di*fy zJ&*#@EYRQ}!6I-l@yEnC2L>iaVF~-XJ-c45T7BizRBh&WskXbe<=wUVdLy}iWivbf zwZ(_O2!VZ|@IZmlWka*yK^2f8vl?0)=35r4aV>u;%*M!>{{H@c`-K-1cT5JEDbUc+ z&LVJ7&Wd-kB12=9zyy_u<l}vz$NOZJS*#SMduM#vka+mYLg#jmX`&P2Uvja4y!FGG zLGVrg`VAsX0xKjNLsy5bG{0XHoO@@-#xz_0{ku<3(+#fu{Vg>6`a0hIo4*J^-6X;2 zvLTu8pbW%KZ&>5@*X^BUQ)v{yq`V>jzTMWOqg>zE*q?>(Vg?6Xoqz+&?}zGZS{PWe zJQ5BxFt#|czbcm%s(p23r9-vHc926H7?|D(Ik4=0Ev?hcz>?*+z<<8ot2;Z3O_vMg zegBxhW8czrP+CxUV8-aO;r73SRvZosj<E=MCR)q?Z+jbG#SXR!#R!IpBHtJe>`(kX z{hlKzJv8iQ5jgnn7u#tChQ?XK4l1p-3?K4u{99TMF<6h$Wy9`$2aPx!7CZwP%+K&g zdRzTVS#UV*@MaKvvo3!F50k(OOGcNV8_W#kS*zi#viH}k)mhipL}p!G6`FOZh0}J$ zeB0_U-Pm0rzOzg;cRhP?adFniM@O?xPt(mh(jk~zneq14)<Db5^}+LvZk@=kj{J8v zTm7jbBvCFDbYN+J7Wj*qk%Pr~fzHG!t}Nn=*V!ART<j;m(m1`}v+P4TD4GNs9PV-` zG`)US_=}s7qXML~g=1Zs$CRh{v#Q)zgM)y9v7A$(>F!tFX^sp`rs@IHJWeS!oh^8A zu$kRm@e;R~PQdrO<@0atF3*3majtc_+y3kFkw5po-FADC{PXkk*YDc3>&nmP^Y3%C zUsJq(ds}Yzx|v3)T~$9GwqIS~*gWM%+2daGRsJ=Pgaadg-k!eii)!g*U-PXw*W+@h z{YpDO@9u_^+ctJB44YQJ`h|3^6DY<QSYp%~ILdBX-(X|pxH8KjQb}_?hnRZi#a~x~ z{a3nni>-{^UFKTd_Vl}T*_(_%vE3I<v#+@*MQpcCKR2hX!0fcgU8NQ6{POF}a&Im9 z_4W02jmxWIgIT(LKW*N&v7`2^E6<rtf1+E~USR~M9s!O{1|<uX{7d2-4hkAfshuji zE?>R!WL)+ZNo^O(;fe?j=$EnF6n;o|?<?z+6B9gGx*bF(u3=rbC0Fh7EUVJ25ce4A zv$v)`iCf08t#yZX^Aer^yDr7QX<&e)AtwgGH(lx*n3)6`8eBnfRjzvDj8^V7)rXe~ zXD-QY%xcq|&EZm!EqG@Q@7%Mu-ZkHB)BP07(K@Ye+SB+v9Y{1Xuv7^-uox?WGL41T z0-cE=OF6_gRy{h>DW`pKnf0R_@6Wr_Bv+i>dr+xOfB&B%)8c17SMT1HHP!yzcQ*8; zA7AgLKetcX1(<`~<Z!^9sUtytZ`)ac1_xb^DXNpKRGTihIIFj6Ef?HlBoVci<v6cc zX8Herf0uIJvyeXZDPK2F%!(5dUMCzF1m`e{O$SAm#$<;`rIo=-5l&Mts~ww^t@<R= zZqxgSu=MSDcUL`XDUnLNljXl*=kpt9l46(TFI~IoPjuP-41Q>dV#VmP;kDc$I}V2h z+gMHsdCnC%_{heX#qwRpk{w54*!g4vlzJ|6#APaHs@||!=DF_r&6TTVVp4x@KV^5x z4C)hCrj7*hy-mKLv>c(yQ^%vw)Ld>T+X4=KcTR;S*;1Y~P)PvF`fT*i`XFn`EO8pG zx>YQrEB^ocn{|1a@2dFyb$i_oU0m#b_0iGptJ8F&uXG41?~&0g{kDEO-{A~!Lg8p* zP_mE+za+@vpkTt(vE-SYD@(iCt(W|e&{|-_)bZd`#AP8C1%^f+7J-8u4}6&0x}l|t zfQKuC;2bVtaZqq+%y+n`^yAIV%~>xmEzP>L#1m9__43(%y%L=D_SRM}rwQ!5QcIpZ z?-W)y`?s(7`MG0XH!)Qomn~nhG5Pqa^R@4av;O`0nRT#<HS6c6r&+(gyu5h+(@djO zuaNtDzu#M(xBKn37v<U4)&#B&Tl?x_-sZA51sR#;&(6$TwR^X<*8bevW?QSjzjL$L zazkH!bKU3iUHc4^kA2w`_)BO060<HjM%UllGk&jtrX&F^MwfyW^OnX7G&Fo?u~MAm z!t?IN#>I*itdn%b&hFp;>(%Os4D*cB{l3KOinxBrI=HglJnznq4F2^sE;-!+wgnFw zW*H<pExvPYZS>;#xz=yWd<1KrotY_T_98pJ?q}-O?Ca|?{0pQ6ZK}WJEM?vM&ne-= z1jRu6H{TxL(x`GMJ+$BTwnr@}2`Vr&3UDekIe*crZDL?)Qn<i5ammrS9QJ~XpPk?2 zrS&M3W&I!D`ZH4>g~wH@Moqk$6t?c7(v3fJ_fDF<b?$Nb`aKgRvd_=6-8(6z)3;kp z_moOg?#KLFGnVx(Vh>gS6TPMP3Z%{x;F!puWZ|;@k~)Wj0teGvA<t*4R%#Zo&RX;B z-QC^W#qDM9=_uVecS>gZl2ubV<SdI)lB}0;?0da#w^H?)fb`vGO|%b|ZOgoT%p_OD zc7@f``-|Q#u>&We28Rq5frASxr~GqZU^*!9Vv2`R>-sl0_r6%vUDaYWTYHz;8H<Cn zLs|IcY<67F+H}`1tg(xOFYU%<L8$iQoC;0WeKXiVWz`n<1;I)Y?P~GWZ@1b`^1k^y z>G2vpCzjV!6ZW3BST}dg!c*HgwtfF|Y_9d3t-as&+}IPc{7>|jxo}VRGALP?^k0(a za8Qt7nk(X|#Go2DC8c;;O4#3DU%Pjld~cq2=f;g}?ft@ym5+{ezS#Bnc>i<0_G_IR zqqZi$yXZSv;`FxY^c~kES59^*m}S-_7cuus{>5!U@{s(Xpu*JgV8R~Hcm;;W1so+o zDlb#QPEXT)T^KV-?2yugug67BxvpV(y(BuS<M`IgIsO~(t<RC4xa8=rN}0*)!oLZr zcP9K4YEYikw5#?755&j?nv5<6&EV30F^iRElkD3~!D%mzC%)hLeBO&cPZrt#*q*Tn z=06X22EjRf!r|ZyH<v+arOlIXJCA;w_sB1zsovUgsueV6o@5a?c(P{)6R1I}$|B(T zG->+Y^Hy`BqOSe!v`%IH_f{nGRV%o}<Jh9sz>(JCz`!I>Foi+sWZ-d;6tRE094c2q zLJbToMnVoO=`6>df)eW~r3MeJ?h@0t5AJ8}xU2>70E6He2~gejK!ed`(&9eN6FPsQ z1w2+YLX1yQY2Y}=(Q_K)uqmz#6GOyaX5Bit|7yYVP)PJMD9tbgHBt@)GBLC91RU>^ z4Q6KNE4kuyCTseElatl2g4&}igO}f0+f)Q{12~m<G6>#Lv*-c^!wZwfkB^V9{`&g* z>XVbz%XewM(w})?U+wQJU834o4mPuU=goWu(gX621B)>@m05TtTwN9V>a6+w5NY!~ zs9l><Plw#!S36ba^btspLV=;Nh*P2I^i$t#ki|j57FAzXNLiQZC|+FI`Ll2#U#nfo ziwRPONiFhj$*PdRP*7m%c+fD%GhBh8@dJlW<R+K7mc?$l_xIWEId^r7`{!q8ga7{i z9zNSVf1M`dE?!6lxndfF(vGNqTlg3`926!tyy4yV3ew~kUjLM7JLj6{?S8i3ZX~~9 zExYX-0m;sd!VWC#?-F*gGjja!f3S3VT+rp^{^8SO%Vyr%kjQ*<k!{J!76<+KeKEGb z-)zqM{_gIpL)`jbHi*yQfmq4W%%Eh!V}FU8!(jm%i;Bswh3#@dLVnh{w@gf{zGSd$ zJX|OK@b=xiYvpRcT-2EJch~E6$}G1M>l3BG{=Cx8ptQqo-?HTb4Gs(}Dv{UD&9%NN z>~FJhUiCZ6(qCU*GE|ACiG!MYD*_i^nHnCqGVT04U!gSycYW4_BjbQGQ%3^-+_saT zkd0CM@c-Za|H1Y@4)V|XxBJN??<qguU-H)Pt^3z(|AV>o&yT{di{<}%?EUemd+)#B zx3br}Ugwdwv-!3D@BjC8-*?9zYsv+g12WkH)O_ktHUMWRf0kRKyOhfAf7`Zw>(#5~ z_bQabWU?>Tyt}hA?$8a9Q<Emngw}HmOaid9;h-?hLDb2-Upub$>(ymSku9GNG%_cL zPuLoe7e43t#+jR7Hcjzo5R9=ajsmqD9`G>UZ^@G@Q1_dYA(f@8bdzWEHs`e`pUr8v zNd={R2L`4*K?j!IPx;q?@<o6}qZQ}fvWJ|DchsJ+x?+`Qze#h-&Hg)jm8U>Sx`Bb^ zlzIb)-h4}4aGPlkgVXkcCAL~QTje8LHq|_uRQmF2>Nn-`YxY+_Nrr(*;Di%{;G9;m z>mcPTCNMZ{clyEUJNx&<$D5)-q*2Uf`J1u#lO(~B*W%6~C^OIhr67yK14G7^b;r+T zCstjmdlKeuzfs=ujG-eWiWXQgbv$@=<FXNpLO?JR$K6?0`#iVb>_1b{0Lj@?ycq;z z^zx%X9Wf_{h0((9(=YfI+ZV;G*g8XCyL{w&z0LAFS=2AGfGw?XWe|Kbb+>^SlR!Zy zgVS}@{43YRZuZNl_mysYegE&>`)>>XOs*9PnQvG7io1UvxNGj9%c;<m{j$u8myu(M zYQqIz@2=M|suN1>H|?~a`S--SD$(7bD0ficXLKo$tD4dZsz4hq@E+<dS;Wh<_M7tQ zSD#K!R*#nZd*tVdT!-ZxV3&mWF$l)&<ThYn63}R7aN5puYKx#0<IVm%T34ceovwRw zVUJ%u$k-Nt20@v9{Vx?+vYZ(fMoWiZ4s_?(Ab(TPJ%J5uP>NCm$GMj7ZbgR1Rh$YX ztG_Y4byl!#O#40Y>#L$WTATdt9IbouWzJ4WAAOUc155hjqgMqQ95`77cBwin<KzhO zIdG?6M!e{5jy*(mm#oKUQ2Me_YvA~HqjClx<9tqqlG<-_+ng7CW|{O&`SeA<XNCUX z{ukR7J+F1)2C1!4ZQ%HJwfF`vBR_{iiEV+9n$v+`rnBFaUx%hz%HOnkck*BTIrnc@ zKF$CYHwze;Ivy}71hKNb@?lsQo&NrEImZrfhxhJz)9%jtd*a<MzSAJjm&{^N+HtvM zr92a(fWr&62QIr97&%NhPRzOX>c#Tl<$havwx-z|HFJVGDfd|f4%YqVf2|lG!Pt_Q zsIiiRN#MgAhs}RaL|JUV)vu#{=I^hspXV?<14SywYz8HZod1`sIld?~Tu5~Q70W05 z58Ug|S+BKO-qJof3zWPrcrtZ7@Vm4$k0Zo^VPQ05$t+MVOAz>R(!Xv|T+PR$HzvGJ zKHj&LXX~??lr|wy>-3zk155clLtTdj1xy@w4^0eG1c?T5nB4AP6Fxcmt^2fq?8ww- zkg<lJ912aJKQ1<5v2tTrc-wGG2&h;*5XtndF2(vv)HmhrR=+y`o;bHl?63j@V>^dJ zlWY;&vMc=#VGFBIs!m_wt-m+qWId=@xymnL+s4465KzoiWnZ-U&9yh~>wYpU{4LPn zpvBbjAY{f44yL!l4llNy@0$dQEQJZZ4tMHObZ6Y`pVO-v?##gSP{@I${dIIzm=a@4 zUgw5PE^uGxmePbY`=ZqW+2546x6XAEXlQ6=5je<a#X9+pO2dWH%lZ+l;DY?9z=huv zXSYUemftCH?g|qlM+m4?+RMM;fFct|Z2O!>O|Y#GL>j~6Dwn>z=&v;A{@-`y?w-46 ztySyp00+kbR#2B{PXq5#A%_>!x@I2(B>;y7YM}Hs`%%S@4-aiwjGrrCPnmGRmjhP5 zE{<U0xSLcNBn{3Ape$Hzze%=8_qp<Bc}xDpQ%(#_ksJz5n=d?yTF#+RGPj8R7$~Y6 z7+7wpedvz=vnX}NRvGRaT32R$o_O2M-;v|WBnG7&)AHW?ET66yyUHy0R!GKEj=N5U zL6Abr;ea<&;qQrOuRd{XX48~S%59J8u6XyP?ul;nwiQRa#j8(>E>;W(XX<#ct7_kY zI&Y54cXk$E-M;UuZt3T<=BusW?=cR3ySC*WfBg^V(vL^QS9|O2TylKBxBgy}Uy=JH z!2tmpOmNuCIpg=lw*lFf@;gIUe0~4--utb*`PbG&zRHgOJu7NUM&Ltk#$0JvM^IJG zpkyH^D85DMLvMbK^WB2Oysy5zy!`6_zxV&Aa6DSKZe5(Kz^)!;Xgh~xmBNDW%Ex8@ zs_dU!J|k@5wYBHm>pmV8zj|V#@>T15ANf>I?tQoaf8E!Q{q=jg@-C^dC`@Q%P_kgw z(R=He0O}VV@00a9CpzW){C_X!uhOr5>HUh`{)c0K{ia#k`;%R#3$lQdgg`?>Hp`=L z%Cnm+GwnY;IXU@i`TpN`S44wG=*;g`EWWj)aB=qCBXS%L2NW7O(kxQcK3rX27rHiP zXVBjt$L+)R|9Psv_!Fp=l74<(ujnqJZ8{H6x9Fw2`9h6nV9`=bc<0_1?fY-;{hxDR z)V{dB|6gg!OY8eT{Y*<<1bl7PuW_t>6+C~{jjCDg3@nd06q>9J^!ns%SCzfHvvOX= zBhIgPiqE?yn$_G<QCN6;v0HBtD0R-Vt=<M|P0emg5{0I!0H!_WKOaZjoBijb=(KHW z4IFwEEucn~?UxJAS@-r-X5HG7nf2wx#jFPh8d<kHmAVSz8lml8HLnVst{IpFG8`Me ztL<-NfA3rOlRJC1umg*@iB(+HOI6d_UnQkCQ>U-wl{QnT;eHgAW@@w%xfK=I#BB%8 zPz;P5BK{5Empz&}EmrxxZ>sR}y-J)4P27tt>;6=fUJVU*txo;<!#CmXuF_W<kIMzK z^UHnNtsKD*3BrOY4DWsWtd{X^uE@_~mU7hs)%FKig-#VeJ2O*b&NP1s7L_@%lWGN} zWZUdtvVsF+hjYVswep(4DXM$SMO`OVodVT9o>7x5dt|M{PCCAM^Y<+0<%N%g9vSD{ zFerU-L2**5<r8rqP;-NUaX;sWdr!9ipA~t&I(SAM@6Pa!2XpSlZq1rn_4%y1CBL4! zyLh*L^fn!<_xW#cZPlCA4jvv+U|@XD@!{T+xu=7q&r}Czg~YsIV00<)Q$I0p+Sk|D zwJkN~`bV&QdwY9%*qVrg_a1Dx<CPB%;{{Gkd(1;Q_8<2BeD6x)fsl9&khVF@Y&;4g zR_e~--LEgq3tsNGGfSxq+TPitbf9{2_`6dnI`4gF78Dj9Wf3@NDSKhLzkKPtJ3HrW z4Y(7^^y7Ny`2=xrVEpiCc)qGX&O6`upYQoD?bWIc9Oq8XpKYt|aJ>6*{BhZqN^mSa z5M`XVI&P=-=8Zqhjg7cMTo?rB2-}!f`!)25AK%|+&G8xR+ymN7HsO1V!qbvJ=BK5I ztmt4+vQV$c`!<I`R==-awp`#D*p&_8EEVgjo~}D{?9u%*Co}>CL7w_>=Zz(!Rh-O! zt9J@#n!zoj^&B5!zMhJm*?V;V%!z>ul$bgm%z3c$W-(LA9*cjacN}Lxn(%Rg4|cwq zy4y&)yWUuNv4bnf#|MiyKWBMSQTXTej%EYMSj8Tt1I1Uh%Tvw7{-?RQHFj|*G!-|! ze{#0&+ndO(B`<@v=HA{Gp}pK^<|4Ve9}i#TZ%#WKv^s2Ukg%Fh#%}k*w`b?u$LHSK z;`#OUb^VR^!sBbV>RK=1|NZ@a{ubr0C-(E#JYWu-opc>EOw?}oWuc37*S-al|LNWe zdj;_g#}2;*9nV+Q-Jby(4!I}zePVfcueAB9*xh9-1(n@Yk~ZFV72;NjQTTdxp6%|! zt1m7t4!*6_dTm{-^wg>4ySK<!hDYtG*m!GGs`r)WJH9VZpI52&D|*)VU0dGHx-R<g ze%Y<1JS>|)olMoV*!w4E$97-xoUCR#_et@r`x^J&G%8L05bSR&+WFS8nQd#%x>&)S zu&nEWYRx;&m0sHK`m+y~tM>_LJleVHz9<`?%!<5SFPFt}Gbpj;@Bdr&^;Y(JQ<g-b z`AV)E_E^ugC|q=0scDb5?;MLjS&IUNt4*%fN;lpl-}xOpu{P(}W{&@AKfCrjFW>-0 zn}~Jg=INRYsYTN`uZ!)DY{{LLJv-5z<+;oRk#=xgb6EH+==iSocU{5Tt=Ct9dKg`^ zjO{<^Deu3(x4QhL(vGXU1H=+%KfPs9uG}QMkJI2RC&=79jU=P|G^Z%R9RD3vkET@R z?|!>&#jhnB(gY87i|Klau3EhR?3J?hk(<@Ht{cjGeZN<|{?)s8eR_ubzfNJF{O8}7 zmzM))d_OnWdU3XjOw_9#|9-u`dT(#_;`=Ah+yB0KUh3fk&)O3&Pu+Ml_e;L|o27n` zDyZQ!OIO9ZSKoVQ=kJTGeQtff^PX(UiOqlBUW?8T71GjuuWn@$G2_O2{ZD+04zK*G zl^Gr$F5;HE-}>aMPqO8A79Q)9U2XS$=XulG^<KiO*8W|*{_1<%s@bz$?w#Cy=k@yi z_bTEi8U3pD{%3z~9xJ!lil?WiujZ9DTk-qd?)AriU!MQx<op%;f34o%HS3(zthuQ+ zq7U!uye-saxux2`kvIKL{;ASWY3G%jT>oT!oSEjd?K|^q;kBJ7_?{cSo@Z5>)!*Lf z^Jv?SYt<<^iEF;I%(pCFc6{HXEj&fLHfDbG`?WpTELb00I5->#WpcF%Kdb*gzUJf6 z6|1ApoT@%P+23wu+L;*_lk3;)sef~0<6^;&Y5S#Leizp5`TG0#1V!gX`cGX;&dsq5 z_MLBMTR4B+PWc-m+m`v4{GN2$_5E+t!z<qJdc7_~aq-RFF>`F6&3mxWx!q0s$+Kxz zhZe@})!wk03ly(cx@Vl3J#)eo32*-^h1v(d#ZB3gX!>pYlBC%`eKS{AJvy>2clKX_ zNx#l|N(#;?b_kLIH}(`B7&I!~n|-Fd`(QKsYIgaWfVFXZt-QXeyw?nmDQul||FueB zl)$N18)iCOxx@AC$K(F*0w=%yKKb$Sab>|hrLV7rR9C$XjazxXCnI|sukUWXy!eej z`IfnE$mCbL@vyN!^PHdq%kvUX!O4}AIQ+bNuIk9#I-@ZojAiz=8A>txI%SO0eAefS zKHhiLWOK;z&IDs&6D5o13`;Da!KuvTy2pIxd$CV>N}d~3RH9new>aIed_MQp)bO~> zj)b3k*ND8{kSshsZl$Q;omYQdTsF+CwA3!zYqduC?WC~O$M<gM2<F^w<~a9CblrMm zP^tM|+;HY}%_ecZm>Z8BFX;HV-%e>`zFTx!cWQUS?-Pv0Q>~V3CwG@$+CO*0bl8}d zp0LKFol@UfcYmq;@!?^h#umQ#Yf6FtrfunxR`)u4|7d4|;8LsaU0Wtj`FXRaty}o+ zvinxLO<zxKJ9j@Q<la=JKd(RiIJ&I>RDS;2G}*lR*53`4;Z1LA_05EemHdSH&UzJ` zb960)WEF=6EL|1(o9<Vqu!cA-dRlze^t#K#Q_ohdh~xCL3g6K&^}&wZ_*+xcIKF&7 zZ!cf1)xK}rWu+O#P0V`_z6i@=>UeNv#Up(ka3+sbinw*Xy7BGQ(BBWf?$EhZwdmUF zGnFnIZX~G}WvEZFULGxd)cWQ9MLA34Aa*zCgR<!@rHKDJJYNF)zy0q16Sv9k{jII5 zCwktxQ@%U>{5+>a3%BZS(%PGOd0EE%O*L=IckQszTIMk=*zC#Wob1_m?RQ@LH}~(q zDO>n=b{K}V)OT-awo;e?s{ULw9=@Nu=jLRg<d-7fe@Xl4+D+bPn{#dH4i&z_hnGCv zRh|kS{IubM;(05R=O-pAUu693x$w4StYq|_$^YKA?7ae=(<zwgAb37_*9~FVT7auN zHdnkYpKmcSBY&llbHi=U_PnDv`KC_Gep~QziSndRT?v2pExSK|iQQgvE6tMKcR{YY zojbb-I&=|sX6v1Ss7Rluo#(vp@zIa#h3tuP;N)K6+VFf;_`6d%I{(i0^e~BnvJT7n zv-5-(JU;qy{bRmEHsDzL(8X{*bp4&FHzWScmXu`G0=33C=TWr<^1~?q+m7a|xt|~N zHT%DM^nL&TTGNaR3tq(E*;(cJ^zt9ucW)k<JYBVKna}^QyWzK>6;jD8hneR?@6EP) zd-mSf=`Zhps&?;I1bO01+D!A^^UknC>PI!x#6vA|*SZ__{{43QYWDiQ%eLj*T;$dx zG4Y1ArAI8ws*ZFQgUOYT8Xhu%{oCNc$F#?MY4h<%j#hp#tc_)y3Qf0Fzt1iT^?7zZ zu6k|N<6iSCmzH{0N9a3+)$OnTp662FxBu0n)L+{bCa+|JmUB9dM)Ox!eQfx?>{FZb z%zwJ;!?%bifeM86(<(Q=KKbX_?EJ9%KhKq4`FcJ6e#G0U`|no0UYm7pj%C)_S*Erw z8`gaDn`5!@;^n#4<*On$r)mEF&dw(j(9F&s)-A3d1{wnW{QP|XsUA7osJFMau0DQh zQ;l=w?cD84f9<|<`RdiB=j{L2Y|Xm5YQ>qGo70sA_vhZ;_Tsr_@G_II#ijP*IuQ%r z?S5~!wfz0P7gD+9e$!L6;+EALOCCE4ZcQ>U@^eo48S`}S%eCM48ri4*+J2_)Vps*J z-Bug*?Cd)AV!=uJ`+g*)?3{PU<$~SMCzG>|^+-<axcczICaXQk$NS=#f{$zxJ5*-z z<;+aut2+uGUs>imJ7j;|-$k2t_5J(%+dOQ++5P!<c5GCf^49F>^P8K~-5<r|^xs~b zJk9X;(!*Pp)_05PzEV9_yi0#$#ms-cCT-l{_A3L^JYkK`J5N;$zxSPYUvI{JM^If< zuzJ>+)T7@Hvdf384qxBbvWnxT_PQO5Hcrx3s(5i>;lu>dgW2!o&Av0*|NrxO?>Cli zj(fXGvlsWw)bTEusT5szZS}6nYQ90i%l&$fZ0(4>yX@a@P&Ikq`?u1ntsQw`?P9M! zm49|jd*6EQ<)LXuPk+f*|Lu4e8dBmMQ+~#n-j}V&*E;??_1E?}au>Z;fI`YP`q|k$ zzh}wEdO9a1czSH{c_YMC`+RQsDo_tlG3e=cC67{zjW<JO>txiMawleYC9J$3V|lIg zRM%T>{XG}5Ripmj_4%+MyzTJ??-RvyCb+RYmstUCj5#!XU$%YDf$GW3&4R*Nz6^qM zF8>YneYQzTOL#?18^63<tJ7(%)qAtD*T1@T*LSk4RWHXirR#jh`-Be`z3miMuUf-0 zyX+`uoJ+yEMlWbp(7?=6kzaM1bC0>DfrR10Yan0TjenY=_b3EjGaO%*a8>(YT0~)- zpw83JZO*r=+j3_M9JFLtJqjKE?Gt*iSM#@-(Y@I+vS(&IH3cR5@1d46vo~tQW|W;< z|L2}h)YAR6SF|@C@0WkCnB^<D_PnH7{qpaU-nNy($(<S3Z!TKOyEn_W=*fw=-(8WM z=PUy>p`*VA4Giyn^HpVX)fZ~K_vPbB@BvTjF4tZ?=gigxQ~%FOx)ir^>-PtzCb~u) znB^{dvhL1l{r!8cd*#nD@Uv1nnPdE}Lq#|1?B7#GE|YyetYLXBGX)-`UJc)u{aCDC znO{_LASrAE$oH|)&r;@H4(ZzN$nbv~W3Lh<&KuQOD%Q2xntaH=@sD?9IjD#EWDu9G zRPNug^GGb{leJ#P#wRmlvs%|~w+By7PR_cqA@S9fmBH&~w%I}giBTWa6JL5eNb+oT zu$E8E6An;9aPN_~k6RnRKhAfajb*y8NO>>v3|6c$Z#6WZ#|b^yd(wORQlnYlmxavO zaY7K3(fcBx9r>%rdZml6xfEXK(23sW^Y!iR@U^kKubE!n0G-czpvrh}_MVbxt;Lo3 zUag(oGKvix=U#R!cJE)cG5NTV(A>$3vyYZ~oL}hN4q7S@W6Y0cud3A9>R=@$y@DPF zr5z0Ipph8p^w!>nTPqH+G9k@xl^vAH0S)CcfR-FJd|#FjbMpnqd*6pYO}@w}HgSL2 z@TPDlbefBM)x@k-N*nSZOWQVz@6ckupa-suSwLef1u<u;gDv*03HBE_$XfXubFvFO zP$P6|bIs49uWvS=Uv+nP`D$+cJsZwE%jAYsJOR?6fu#3Y_h$e3o;bI<fkW@cZ=pw@ zFF5mSa&pf!%bg`<TV>L;BjK29n7VL9dHMFLFBjbx7kqoYZg-!+3nj*2aj<h77O*nj zoBc;hZjbrTr}}Gh{TKxAG+tEnlt&)dT6uZ7fB6E@RXR-$XzLC=n?hMaUO@vTMd3ho zFk6IZ{Hf~TqkIc~9^z1F;&zrSbN&4MeE9#5^8Xh;k&gBh`#Q0|#wGXmHr+RVm#rZ+ zF$0Ujgh>bP?XA9gec!jOFXq3g{MWtz2e)bJDG}BE|9@TIFZWdH=a=R7vVSMv|J=yH zvP!vuV_n}~aoz3@qKrA+ak^cu9H;O9fDXqhFf{HG6iC!w6z=kFf}*pO()Yjb>+AJJ z?Eii2msa|Dq*HjJhnS;I6KJX|K#$R-VCSB_S-#&+blnhLs9inht^cL_dtd1s1I;{v zeby+#^6&Tl|JFi#mFmvVwZ1N}ul`4S{ftFlqNjVvR$blUKi@7;R;g?Am5I9y^;#HM zsstTaj5U%tm&Crz-4?_X2KS=?7h~kntB1n>#kZS^Z|qtfKG{{|G}k7vBZaF^F8r`W zUSI`ijv|ZS;#%GAMP_R=%GT_j!3-H+YhYkW;`B%g-WwHttuC%Qexum!NfWyGSrh_f z7+neqb@r~;%&#cE_vs$<5@u+=<f!m>;Ew;fUToo~`<v|7-3Tn(pUKaZD&W8}-SK9# zSy$A_+;Y{M%q}xHpjJ36V0jdlklO#QfstA3{l}HT%cU0HNL}j@elL@!!J!?rrh(_i z*H_l6QQbmU*L^+=T`a-C@<%1%{n4v8XT{#@UTy4i`rng9-_?G<bY0WtP|YH6@NFUY zqLAf>r(4I?3-~P%hPiHvn?ri4nBdL4wC9(4d^1j*Gg#|tBe^X0qd?gX9|plUo64;+ zq9e7p&W*}^ry#WoG$jF=R98@7ntSHW8!j~?pWTl*-+X9gP`V-RFPf4bx@e2e#aIC~ z*fhPvfn=uAd+x74{Y&d_7g@&c#vmv&!#TQi`Ku34R^47darH|rXbzaha$?1u%Wprd zc$(|5JXpYiWqE_hA=Pzjj)ZL$l5OID$qZ4)z_gdMU|Zg&6)PT{d7QF(2NTm(K?j!b z<NKyeixr)_uH#eC90z5X??k*BY&X1pyymdn%Wp3OHtDel9AvD%_4PyY^|#y=85c|; zX`-Q=<xI|rq(95;|Gs=7e{;g^a#f$(>F%EUITf1zev1!&T^pHMTDsKgLZTyVv1pv& zgP1#??mT_G^W@Wu3zuHtP-tTQykh;LOX3&hZWJuEhC1Lmheukv=L?nepIru*wf6-t z^C>)cEr55^_sG}A9qc?30$I~vhMxs#F52<_;n97!<u3#*(uQbm4C0()U9Kmz*J}1g zv3;N7?XC)SoHo#11WM>vrQBW%oN#0ioWnfN+toSJ^J}T<?WG$VbRk+9<2feWyeaOl z>DrcAU(>o2vT9?_KBbV05?w3Gt3D*iKmv0C6I0>Lxv59Lf3N@lU3){D+HJ)Tljr|g zvN22l_qMO6{{Hy*`1Z;^BLR)M3`#pno*XrmsQOXx;;(j|N`NrLgaf%uWnzycjngzZ zSE_E_e7nv&dG3!er<?MXPbR)7+EliD;W5)tVF#A*w~c1E*Pr&vT%mn8ch}q`s6+EX z4wViUP1BHE#_jCsDy!DO@y_7EqSfnHYpm&hp<lHp0J=hEfe%wkncn1Ww{s^Z-pc)d z<*t>>26yEJ?;aj3eZSw`Su_~j9$MhWqOy6j-6fBI-f7RJEbUXn-|}4kbwbt1XF1D> z)K<`leBTyh(M>|X#IEmJ*HWGq5~vOF$bwp?l(M|}v9aEh5_heeSHAv!N5c1-ONW(Q z;`cQF2s-ewu^Te>E1<$?WX=BanwOPp+e@zvmtW+Art##sTK;b<<ExR8+cSd=oRbd< z7#Lf7|5(LWE@zq*Vo<w8`KnOGyPeOa-1R&wY$cbi{^~9p<<4ULDmBdNvSr)UPbG79 zK<4NaCbTx3d!tirnR>LZIAQaJ$G2=)&SWrKT1WNo{l5SI-^x`>by%td99XQ)6a-4& zTDIu(-g@k&2~Esu4r%GfnzC6=7`&b3erO}R;F}5hobS&*=lSvUv3n+1(F%D+BkSwu zpYQuNgXi+Ts&l@(1rPT9Xq|c{N#>wem7&Z^R&echNbSRq$Nj6<*Z+Ne(eBL0$H&c` z{C4l!b?BYN-p}(KV%jn-i!xtbS$Xe!FW(e*2EiD)*EgmK<jyT*h}SA<)7}a$xf}Mg zoOttQ{re3z^B5$TNlLyIa$wo+y{@6C<-HigMpw}fZ*}6cAU(|QoD*)|td&npG-Nqp z5X*CX*OexYbtf*b37N(`Z|b)qi_4HT<2#%WoO@%Fe5^;~PUW2)h3_OfRRvxsG%lZC zXT|lk{>eml5y@rN9Jd~?5<IAC%^w(M^x?kA@#%c<g+Uta3^V7Re(0n9Pf+3TmU=tw z!$~d$l2ht0vpw9YdZ;gx>)+K+%S*xGq%n<Q=G^Y5p1BW&6%LpDu=Bg^>{1XFWVt?B z)kyt7Q`cspc-VrZ##0;<ZtgVtVj{!AXyn8G=!DE&2bSjz)0b&1(&k<IY5ha*&QCKh zD}mG67XJtL|Gm90<u0}N|KIodGMOsBWq&#_FufH9WpH=B+BeDa+53aMto#`S?>LHk z{&*Yz|7-ke{raD$L32~GIi0I+D>l^MTIePTab`EjM@qid0u|j1lFMEj3ke*Q{bZ`$ zE6WsJuyxH9ah@r!6u_mnIHQsE^F!{593pNFJeOM+mTXdTDL9xX7^u2>-}Lypowv5- zMjzZ79J`$3#B{NCe)+IXR(~e;*DMJ>8vq>wT_Dal_h#gzZzsC9%cQFum#Y0Vd47u+ zi^2nj#{Bx<w=WiY7xkYCOfKp_wV#oh%_2coZHqI5;2plLYN;ISbp_H`Lm%$vT5wqf zG>1M*NMUoaudM&}z3L8aneSsIN*M%WCdj9%egq8={fiG1;%<s^G~F~w|M!mLJ(7pL z>RA6|f)+hEykI%;MrK$0%lKH135mDz{gs=FfAxQOK8Hb8*RNvB;=Y4Apn#DRQrNt? z-S2P;M~Z?&+e@AeGCM^C=NuMnIsdHTxntm;*Nu}61VIZ87PI_&z5n0p!X<(8?P{f} zIox}to~}4LgO!m(#8E--@D`b!U)<}zxVwh<%d!eOux#fHniT){dHp~2hv#!YeO@|) zum9hNc6%AsvyY(dgbcR>XWrC2I?~zpVXBK&jRHgCFTo3v%Tnb(f?7hwO>@4UT^_~M z@u25V>5tFu_P;KAFnnIg&UjP(&)xTR)8AbDT425xv@l`9EQXnLgBL$?;<z%4L2}vM zB6}r^X8R{67PE4TxjYIFYx;SmyMeEN-}`;Pr@Vp9HGfrcNPAxOYi^wL0u82=8G2nQ zzrQLp1#eRRW2w60fWESgRRQ~DTTlS$a!j~6^C2T6hlpnb&t=z3XTrplEE>fhp1;W! z61z^#W|!W)W%EHx_c<rr-1$zq;h*yY8IXzXoAX!&?=)@atDpA&Ucq7Br&Vp&=BO9^ z|NGrN@nVa+^?NNIu<JV+X3jN!_$Z0PVL<{&pG1aF=~nTB@jniUUzuT;eC5i@VCjmK z_5B^vo9xT$7=GPrl9bbppLW7f;+Jw_v3s9P;Qar8p4Yxt`vzX&G4H^~$H%4Jr6%6A ztSG<i$Wh@8i5!!X7XkUd9xPh8RqUWp`~P?4`=ig!wcbAQ<<Acf4^L!J`@OmQ@YUGa zB^6sZ9-h|UZ(|fv_x%7f|BC;A@Ba^tjg5UL)t?HgkFvZP&YUwXwYl5YupCqb&3T-q z+Z4VgV&T7c@BjJv&M<KNdwTz$ZlymvcQl3`pY`TLhGcj<pKOr%{hG~D`|E0DCtgSg z1?y5_3Bx3p60zsIN?#}4zBY5Ns`cyZ`~Q7CwsUS!8+c(@JjV>lWvQtV&kTO1yQ$8q zjoewZbdr&KzuecQ-LhLZZ&Qj0YrOw?-uD&p|2|F6y0F0U)vfIHy@%$za(Gvm$a8FQ zb~rR&b<%^w^8Ys6+MM2B_4R7_)yn5{m)HIKJb$y)9ln55phox!hXm02g4y@~EW5R< zboH;(`~RGlQ$6`+4x<Wa&HOz9kJ*X8-v9sie(~Zs`>!kgSGLR7-I)Ea^wfo0T?vt_ z_qJpPt2F)o`g*zE?l(qXK?>(S^4V*uY>;=y;_Ke`wf=K$tIdQCdQaC&HQkYx-0;qc zf$6Ex4$#&m`+tw^-FmwO{{1*^zwX4Fn05Rayi5Wsra7$Ux%~gv`v0r`y*d9+$LPcP z|9{S3b>_DXS-Vkmdz`mm&N`;-fA4FaTZi7?S9^6;=;|x?|D3%a@<wdd_o)X!E6rz_ zW-EQHes*T2n|TE9x2ub9@G^4za7X}6*<W85>oxB^Xnnz_&2Q#T-ryjsWRZ16Lw;9N zFDQ1o6cf^C{ClEqFX_7Hl=Z47t7cjjFT1s`wpuawXN0G&>xP|NYv!scJ(Yc5;cjA( zBLCdo?vtSW-_En5LKA#0CLizXRpPGux;ox9knP!zB-0&E&o7v;C<y2@&d%HAS^HEw zK5+g1e^po9e+K<dmj4~`rFDtR(+{9o@_=%tNr}I<-OlS?lzgw^aWBX5pU>yZ=SuH< zKCe2fb9tFk#6H!151P0a<+s=WeI36VG;=z!U}Dd{`aj3(W&TcfJjl-UR$#((1J34Y z^`J#Ii|g<I|M&gs?fd`AR8L04)%{HU#<rb#ni0sCNgO9Wwh28_k58B_FL)^a&m-}x zi(I=OfSM!=zOktI9|F}pW-J@nl(@||mAVwEU3n|4-K3g*1GdmIMKiWVS>Bw}!=kyR zBDV7B)U0oBZhCD>`t>jI&(FsP1&+_R|FThp=_Jbx|H+a&i&#Ie)Sh>MkK>4Ng5B5j zlqEC$t2-a4dQWqaUYcruc1z~vD=#iCzIvdM`R~ipvpTkjZEhJN*Y!Ic&GPTP(Pce0 zKYkr|?w_Bo^4W?PW;xt_7Tme5610M4WAgDu|Gl==S+4T?w)f|UM7ysCy>CQ>GufSA zK1u)K%H{LA{Ps)Q)$EWm%Zd1MKh0gU^}%D4&za6F`@dZB1}*guoc08~<ib{l@zDp+ zv|;-E+OW6x_D086JZ!!9rRn4I-qo|DUVZ-YdA^-(!-0HGgZaPgrDpj5{jO-s(ai99 z<^Q@Iv-xH&AAWp%d^I#YcIgv^RJ%Iii0yfEtKMup4q6Ai_a(>U^U~p}Qm-EW@O~pA z?r=bv>CAFDOYMUp&n_3#c>4cQIZ*Rz`Ta+0wmrY>!E#z?zs&QX=O#BF?)b5Go`=P5 z8R3V{877bQw_JRF{Relyo$V@P#%Gs5?0J9rvyIKKFDuTm%<w<_d7tI{Z<YUkK0ohS zmU7ei@V)y5b9BA`3w_o<Zo6}ij`t)UgMWu4%Xg{o>)HR|#O1|S!U=Y~mw%sGp7?8O z+)m$ypI37KZ^@o(IsaSa&Z4I~VY}?^{?d4^(U^LA+RA;kzgKO|zHXJZ5Io7>W1oI^ z@@WJ4WAW?wf+U#w1QYB^&nU9aI$RT_;Ipd9fs5(Pa!rNGs?K@-zk8(3-`)B3_4U;! zCnwv!<w`SG-T>W&xBNTX={W9V@iUTdw0{&=tE>tQXF9X|Vb#2!CNcLf8Jlw&%-{8L zy3(3UpEKvLTeq&b#Yw#J%3iB4lm4#^UVg{;ow*pVgh4|<P5R!+=Rt1SCl@5elm~Ll zX?fSE!!=PVzOR}bj2NF?PI228xA6I8J1@<Xy-&04H&{0|%wc@CsXlglKjXB1hJR;| z_g@k?;neV3ms|J$x}*F5{p9KXt9sz?v-R&UMd<x=Wm&HH^rPvz`$yK@e!lVbTm#wv zRu9>FR&X-D+rB}zxBl=q{k_HA4Bux*|I@f7<x+6bMRv{kud{EI{+20O8Lsv)e*K-+ zjq`*b)P26w$ocH?{SAM;-``O>@b}p?`>t(lf-xq6?5~Ues+HZfV~>3`)$_-7?efGm z&slcdw<%XpvdCe-WWAolU_N*Wh*FcW^5^vpugy2U{`T{E;dY&4`}2M>XCG2K@VBl0 zu$serg#bCmXO}-kgkKa=+QIcob^FU-zHfHbs_xd_@$5r>f!<PQKH&#-#WyTjXSCIG zH+YB&cz8Da)>YN;*LP;Aezij<ZFimU?!0)hYcaQHGyF>paadr(bSMAm#&wHS|3tHv z-ddv#^0jUJ4vsody|N~9^A%7*+`=hbb-}v&+nT6dB`ar{WCoS^F1O3RzOHwbnDivO zq|2~{9xpEGq()!;`{6ME>c79gulAj7wzBT;FV&eBFYe!6C;WWl`<2V*1qrMB^*r64 zc6Qb=i5E-k-x$tM=eb!bn!3H`<I!&M)u5$!g34|sC3|j8ef}|jW!ohQ7AA!Y@BS`( zK5uXJ_iqafs=j1^w!$2G*1PE0mPN5wU)^20Vw=ygXP-5_|GxcY?kyd|&B(FGRpIsD zWu@n~<=(DRv?+MtpdTAz_T1+E^0zl;ncPpGTR!>K>8#`lN*1~;eqEmy$xhwoUwA!r zZ|CPNSN(3<eCy<xHan_<U&>^~#Xb8rK07m0xb|VtGW$<HMv>|*TlNSZ%=9djW%;9a z;a$zGoOcs<7C%1L+sc(F&RL%I&h&TGk>VAx|972`nXT}^s&UQtXye$0;yJ6t4prXs zzx^>(usH5w@rp=!r5(=NmtC#*%{{pMbPC*RQ{jV2?Jt{ctG`XzW;8#2(#tE|5=uMf zPV|)I_~E|b?$0eZ?_6GKdD3)K>KEhln-5NZzB9Y-s2s-=#R;W$xoS<;J6}v&TJL(s zG4hsn6t`$>{8OcfxO3^}=B(Vcd$;nsw2pu~&YF5(zQn$-nm$QD@2C3xO*TKDOb(0{ z;>&GUdvReMXbr-`n^q}_|Ni_8eDNu^{O;6<u=dGjtE2y|lf8QNs%UMup8VZ5NjY8S zPoRqJUtGzJnfm-^*G%rIWKI)3c=nHCokigzm;Mi>pVKCro&A{fOG{HG>UYKSb8|1Q zDv9CP{x3SnV#^Ja>Thq@m}33@FS>buE5|&$+A0&i*}dESdXC%tJ8N{aNS8%nf^Chz z@oA-|=(CAI^Z$NdvQ~5LGufZB|MpB@8&)R$EM~>?cZSKwOrGu53|{u7Lt@k6{qOhv ze)mFFDNlQPTFR}=^9u{(O<vv4y|KaZZu$M%-tWCO=c}FtzboRH;;!)e?=)AI+rN%q zb69KQc4v-=`T7~f)Asy6Y5f7TleA>_io44!^IusOA8ca1ShH;Vxf|~nE-Rn3CE!l+ z@~LM%zoyDcPVGvl?9h$cvO+Lz=|g@=BbB0nD8W6|-`~kCjCy7+`)#{i;h|%97SGwb zhT;0}x~1=At;<~aZylGfw-M5=D!5U*x&E3ypIZN#b2(+T*JkfnQFi&-<m3C&lp_4~ zPEXU#ZgJlJ$$j(2702CH7nXqbf&G5))=;JNb-~*m;;P1X3O+nIX#2|O`0I(v?o};y zw@Ys(cF#I^ZEf__E86j9z0&4-WqZE8zi%(}^VdD?BAaI)^KTg*DHUiq5Y2LH@BOG& z=lvfJaraJNw#3pW$KW&nmS0K!>wIUGr`T<s|MA)8ux$sA<kp}3^v5**&#YGMTiOD< zdg|CM>i$%$-@|RTS}82?)>r-S>?{fs<~m&ay*AWh%M0eU;*Xw1Tc=p{)@6P@mv(+~ z)x;%{c1*dGYfi2x*6QT_B^&nQWsTpjx!3B-w{gBUo1M9E$MfcEfkxYJo2g%&e)X`d z@WHYo-pdBO&JW^BF1p%IV(~jD23re|GLxS-TEIiLaCP1{u6c46+wT;4uV-JA>3%1{ zH`+{d&lS0vOY43LOl5xtT2=IJ=ks}T)sfv59=DnmUi;1|6?nSWuD^DzQ1VS}=4ZXB zzn!@w_qN~ovc6BsKwWzC`Lkh7TPIwZ>}u?{_ShcTOS#`2ug?_8O6E$MyWw0;_^X#! zD$YE<zbCo-lfVk;#<KU@(>gb{#K(wCK6!PHcU<MusdDjo$M=f7Trx3pUUS)$zIm@x z)|pMtpB3M6YWjt>&#HfOyKXeh>+_Ma{$_mF&#r^RPwB*c#Rq1MYd&YLJ`z!8(sj4^ zb8OI}h&TEiZ!Nc9wZ46*mAhJ1voE^F_;pWoh*7STWl>7V@;d*%%PEDQYiE_`3*OyT zXDoGmo26%Ts;|o(L%}&yWPjbtUjJ4wF01LX_peOX4O2{w9cMdT67eis;h-(3^L4A% zZ7rVbViC7AzpaX!wdR<s4}WC-Bc)qsg52ePPx`aqZO3i*g#YJiZf^Q6uw9C~P${B) zhk147mUxTVy_J{Ubgw*i3Yhe5^H#2_lY1_HdUR{$#~H`>M;;Rd?GQP-o+Z0bBU<y! z^PJ6=XYOUCthY+3<+~Nnvt8)*FV$d|4YgLye_I#*{l3I9q+j=Ucew5G%|d7HvNwL< zNU5#Q+@`Sb`Sgc}+rQr^6IY*AYT`ACE%WO+v*cqvH-sIdbhjMctKRMYwdv`VmBH1V zua{IBzr1_9XNkyJ@$#<D%;KQhdmRb9m;bmeyt-ZKm-PK5f2ZF{+-6|LK5MW3j!26w z+tk;s>0m4L*&Mo0#l7=H*0xpQUrZ)_Rnyz`cge3$H^P^2Tyy#eT0j2l)Aao^)l<Un zL~Pi<=Hf$TCB3I@X2*BzWOrE~vOJd4EI&_HNGWIOyd5V`{=2r}s@Bnmhuf{q<Uao} z&wTTtoWo&(Iw*03=^KCRT7K@apn3aD_YE`k3!`|J_vT&PyD9$Gr8PH}RsKs8Jy><l zbiYr!>Wtm|Oo_rLtmbd)I%Rx6ymi)^Ri_rU&6A#e_F&=rxt{NH&Mpew+?BA|zT<&N z^4_b>S6WtvH_dLH;T2q1dXxWvMf<j*qB*>tN;kv~7yW%YJ^tROJ6D&qZ)iy_P5Pfd zr+d@ABbs+&UZ_^S(GFsHy-_hyV-x$@t21}4Rb%@dt^K)T;*P?^cPlfts$0C1){DI_ zzV8F;*PrL>_q~+7lNr`zZ7TQq$My@2Zm9w*7(pJ}qGX|Wx$e?F1M84T?h7X852k4! zT)WS~|MQ=%`;X+QuA9C0#;l9Zh1v(rrYmi;-un8!6i@9gj>bcrDSPi<>U!{ee*M1d zPEnV{Ytrs+T6E{tT-`i7eJz<=JzsQ-R4sBXN>*#g=Z7_&)!CV*#ASRhTK)CJz_sR+ zU$05r<)bYqvt8XHv)^yE?Lp7qE@$_j-fps1MzwZQMg8XdvZDS)@1CtOFARLUY^{2K zt!r1p#_;;v`E7>BePz~$<)1aoRQKPg%<yH2dhYvMTeZCsRKK^)ONm-L>&E1@d&3X? zslGGatnl$p;m3yk^_Tk;*EKV++*7*n?(elXscM>qown^q-*V=OotyT|QsR5h^quGI zcJH`aCT6?+b^4~f@OsYqQzW$CNha89mqg6>(^`Dm=I@uwy+`JDB)kja_~EMXy5^P- z%kBN!_bV80uk6^@d0TkS*STlw)UOnW-8&L7SLmQox!TP+Us#uiD@Ek7R@eJpGGzPz z#s9y^(r4HFJfb-JZri7H<=x$v_x)b=``&i}#@1VBJ~^$Eef*O-_vEhI!aDoAZ*yPJ zx>~V2*!|k<9e2xa=}tesZ;|VUx`me`mzK_t>Rr4<ptjn7?ms2>SJMoYZ_a*NzG+ip z`|Klcqp$t$U0QReZubu5DU-sQR9iL%gTmmpZ19w3hgi-n)%&;J%Fa&r$un&~Ilbap z8SlsDpGz0nE>}HkeYPcenpuvZ%=bUOR!S$IDc4S_z4U3#1bu^4KGW^HPu$s8^)*ZN zy@=H+4#Ak~yC>EC_ELCVBV|7S<vw-U%%5-b>#e(-w)mg$T<y4IZdk5JsY{T$>xM4} zYxdnRv(|5_m3^Ujd+t{?z1gka-&9lo>dp4$c)Rn-eSwNg>>OK^4*V7S_5*Uj#!lCU z-)pPtUmS_~Rk2J-SIfq_Wa6>Fa6^`u{hhI!{P(3Aoj;;;jQQ)jqpJU}-4_0`kB?=? z{X^f3{_)=4|K*%6sQLR-InO&IXkX`^Yl=;ug}yA<^V)nP_qUg`{qNk=dAyx{UD+iU z@jtIsBzl@0*f|RJmolt!4t*34+6Z${_(7fa^`p<G31!~2yR|JNTi~FpaOnoS>-kC7 z-xgn38aK10es7WZu`0iY-)D>2)n@e9lhU8)c(6g%<NY3`12vFE-5lq7&g^G`bXDdb zzq?7||E{O}YdB{!e3$;mJDXu|vqL4z4FA)~v98`7542WHzq1V7mzery-Gf<&_aEFj zh0oHb;rH3Z=OPJG|8yCYLLC%T8Q*Q6vcP8Vni4^o>3>hBsdsjo<=weqQLWE=`+fcY z-=Gnwi~Id#i-V6y)@S|-`U2`Hh2C6#zQgSN2AxT@7auQu@vG}i_Uc`$KIKRLT`bG7 z!)1Z+_vqD|^-J%+H9q}#-s|7r--pjO%MCi-FCX45uAet&{%axo>$xvm>SNy<e{)=* z#dP-F_8p(ItWy_X^L_SnPg-<juHktb|5@9uuP#sfIx9*qd;hJCTa5%k?Re119V<D7 z)xK<qW_j~=`~7us)o-_6;r9?URuU))i+3qFzwp5?=gnHbQ_jd(6gd3-vfMs2dVAhm zQ?c7S7oIWN*L7{r-)*PEpWa{e+p$*QL!*P__t}5XoISNP`234CWj`uvCI5Y$$Zh7l zK$xXQ;9%tM*tQ*KvL?sO|Gx8*-|VTK53<+q4cq(im^A1_0^2uY&riHBe}Au+Bk%ZP z!_=7ijIhM{|J2?*o1Ncx?A8QD=P5O(!=A7U{t-K?^(T6X{7P;nJ3)=db*F!CYU0SN zcbWR|{<pP@Rag!w2`u6$`+C>peeu${6T@e6h<*Gx_kE3fZ2jM_po3T@zE$$c+xs=l zH2s{6s`r=ZZ8@2LeB0N(@_Tn@XYkosrrN)rB|JLP*}L!bse2C&HZKlX{qpj1ZO+oE z{&ymSjRf*`zugv6KfMaHcNWyR74R<WxG_aDSZejfs1)6Z4Gy5zan}2LdjqX+y(^n@ zHBa)o{H)L$>has&+}No6>H6b-`+Gm?IhRlGuk(!FQIIGy^TOS`vVY@_P4A1_aNc<G z{@Dvvzqwq_+VkS0esWa*)ZOp*S^uh+WtzOy?pXZpa_*-J56l~lo?TAU*FHP%veT8A z+6{*nrsh@u{d)cC%gf8JZp*zbb^g?8{rxd#=U5ugs(+haA$UIiv+RNC={1u7zW(Mr zP{kqQuCSIP&s6?sr{C{xhu^iAYNnqN;#>Rt+K%$;hRMfVxcjU6OrKv_vNQTwf~|db z-^Bi$e8E_i+u>h-uiuir@A$IX^uEhQprv$I+Hw}YyuLpEiktS`WtOK)qi(C_map+) zIo-XtB*2cz$ByaYN%i?5#%X6>Y>Yo4qN5b_ruJyz!wa7t$e8EFFwcv0|Nrl=wDtw5 zb$j`5<^|Wyv#l<3esbh(uG#4se=jB8N_xJ?wcF@zsotZovcC%>x7Ai{y0m(Kp>WT< z3A1_?-^LgBx9#iv>YMLZvx`^oLe<g8e|o7YH7^WT<{GJA3Hy3d+zm9|CR(^XfSu)! zTEMXyDfOnw^DcWTMZ`sYi4mW^-tpOKVRb*3^Iwe9&$)b#oA>klb(C=G<?x%;Kd=7Z z&$##hp4C)5IWbYL-v4u7*0&4uqN88RUkuo$vHfd*-T&BaIguvkv;HP?Mg6tjyJ7k1 zn1X|>y+;r1D8Cf;{>-=Hqi?2v33ul+znmMTkZpbW$%0iOET_BPHuKx92wNW~yRzox z0nzZ7ixDTMP6e-Amz~}|cW3>L7FFgm_k?wt58Qd4S@&AW;O!EbstdleOgw$(TA3E@ zd8tz!;Prdcq>MUe!SME<6a0ReE#Gl_Te|N$dy~`K^z}r}*BqR*aYg=%v}6x={TWMg z|IZTkz2m*Oa__%3@A^a~``czWz8e0sDm@;c&+<n#;8;!8`Sf2mufMX?6*NC9lzj7Z z{+-R2>N3w5|L>KtymT8JH058CEm^u$C%Cb6cjTJNpZw;3(QuKzOZ1E=$GT}h-!JOc z%hJhs@!fuHu#5K1St_0^+pEe=@2loUm+XC316mv%cX86U=^ce%Ra(t&f3DFMl$q{h z*thuKqAM|$)9g%dzl&JOF>Prjr|HxQ8HJmWSF(q^t&vsAvWjb$Ki-)T{bbf5_gChw zn_qqbozQjNYs<ggmIYt7D->>@U1KbyzC`fg$H~Dr`M>U1!thP2c1}Rw@7S1YS9VOj zoz}_m<%xRAn+^S8i)MWcf79G|OF@9E(db$5@6@Ab%(9BFoPVhzn6qz%N@qf)=HwG= z%I5E{Iz46QQ?Gi#m2V45`*aWQUwDW63o}zC=Muq#o}VYi`S$)63ef-ZQXutmob0+e zp)A`k*>7qP7GIi?K5yFhyVmb^INvQkZ+mf?<L|#$>X!RzH%0F?-Y#_TldH4#UA1q= zTj#33tzQ?ya{AP|hAHPiJUqNOAme2RWF2I)m2cS#6Qzj5n+|V$?6TqS*{!+3cbsJe zWA<|7echyXZRSGRwQ542PfPACSN7a;YjTHWW{T*+p8b3J%}zNh_%Nk*EJ=%=5S4n< zpR4_xQWI#Kgj>dzf5+~BNxSsfyqBX4?4iVal3%!(ZbCh@B`a&f;dXxQ$O7TLlhsnp zJ*~IQihjH8a#uoepS}}Iw`|q=g3aa6%3L;R7VQ-|Xk?(G5@mNirr1~HQx2b)uGyIl zkM<}<oO;gNzRj6Y;NVSl@z_OY+N)OA-h3t(Yb@p1Zl_*5agxZsocivm>N2xFUjJ9I zScSz2ltXXjsP4F0yvsvSMtt6MSC-|R?GOhl-k1Nv%M{503Gpq<#ciL|Uh=8P%HP_v zdF^B+P@DJO)CB9K@b2Q`iJLnLGCrRU`C0!wylHFk(TKhBm-wu=n&-amdwC<@I?P6M zN@%;h2Wa8u%+5X^L6Pqhe5FoA=AF^GzU$uwoy+^e%v)yO(8^nSK<r@JB;(@Noo9|j z^z7FuXS(jBP{WjZX8Bp6WY1|AVt1FB`jr}l2S0V)cy(UF=clTgGEwS_P8$DT>f1AQ zd9Pp3HlshcId`uVX0j9VP;Q$1OnL5kkNwHB)K78<Td!Po&G{FL@K4Lr^B(9tys%5R z_+6iOPiPB=UsZbF<+@$58;yOFbl$rZ%n9lj-uUgGjPcv8lF51x*A%UBx}<R7?Ka5L z&>t;3E<{;t&y-B>=jfZybh>KAan;>Mx<>mac5`?3?{+*}n|c4=x9!z)EOWTuE$a73 z`t$RL$Il4%Z-pEEbNsIQ%O*>xR@H%E!!=lSQ<wB$ZMm5gtzx3+d#Da-Uv0OIVs zw|4|PeYyWex#>|~%+~L3Uu~*9v~c#;e7WaR(=RWZYkTn9=Yw_W+qTZRaqXO-XPS`C z^RTABlD{5Cy!z#Qx%BrcDNdtA(4<XZQPYl`E1@^1ZjJpjd#c2B=LNM)ck<tE?mm6# zR$cB~&CYu3!&9Ra1>75c>%J)rtV&w5p>WqtYj7J-`|#?*>Zy~3Hcv?m7tDQdUr8f~ zo#m3?gF5eLBGY@8h3@NkB6WH<)BkD5XH8Q8wQ40CSlZv-Ur`Qj<b_`o$Q1R8n8rId zgZ+P5lUAvd!aRoW(Yq!t+<v^Iyxg7jOQFg-_qz}7m;8IG#UbL@@Ov#s*Sl+t9A($d zTO*%=2ZviN7cCQgcz>4Fyu5IyhTm(2-Yhlks`qyGbrvY76XX<ss@%YF?)drcOY7`S zVz-~?R=3Vk`B!?wa)y`;<Gbw-Vs0&V{$UQ<T)&;8VE@ji{fpK*vWWX$Irt0IzTSS` zae7s%(7&&zVkKT%GQKlEFFPZ_4$-vE`?;7<n^>voaGAp1&s_|kSAup(<ft_5-nHwT ztaX_WuZ)F3F{?<yY~&+b=9rcoXkhI6_<T)uk>s<(KTcnD<Z?b>$aH3TpXCyV;u-$j zEuNtQ9*zw^O;}a@^)G(ToL~6(*xYEyIf0v&#~yr>#sb}5x{y!K=7r9ZkB^UQADh4V z-O1D${Ezj+*)@3>k8>Ezw|X{#>1?8%u7FyoqXH}Av&$kAZ1%dGUtSxwE~fGw^qiM3 zTeN4~?KuED=VgxN>sRSlSA}+ce7>su)6J)cf1JMV?B#qwm+8#%yq}9bvS;{rFY$~O z@K8HYGwaNW>)KyxZax3`e7?PT*_#NbpxUn~!n?l){a@(ZKIL?}{He;`p8W^d<_Ddc z{!v`6vMMB<>CE!Ps`)=neD+_`-VT~Vc{{&st?~2AcF)hvwceg`QmFLV8Og1+zrU5e zUNR?{<=NTU%YS`;zaBKzHY0WK*~CAV?-!k6`(^UasJxF!pkM~W=aq-gWnMOUcG>J; zAP<uzr@{PZEH4rYi|u+{Hr&wI_&z+gbZXSjqNUAh$w6XFudl5Q?zjCm<8pQ5+kXcC zHdWksn_VkYpC^3OiX%n&K+UY)>8Hbu=kIzWo3omk@!92qJvrx>^9ugC<gLH*<>lq8 zPwVaW$-S|mG3TP(ub62+rt8PAn^*fSa%=VXywZoQ;#HTqkIgq<mzA~R{NwZWzrHXq z?N>ce^Xh*_g5B5q?Ozmln9eN!_j}{bnp*+~cXe<2@*lL;Hd1dMY_08$#Q)vNyLa!t zy13s?s&#XG`Q6gE76)_ZQ$LC;HXNNHcI(IIZo6wv3rrcG1@Cv`_`EXy-=SMof(dqC zPv6gcb~#QdVwcA3gXQlK`^iD;Zhv3>EEReC>eZ!gy;4ip?fK+oTKz3&`Q(J9rQDD8 zbyvPx&t3Q@)L)bvv=H>!<wp@^yVRat_7h%K$MFOdB>nL-mtH=ze52A1ALUGLrc$K~ z%l+lQ&d&W&`pT>pbY9Yg*$2Y+{|fyIT9zRH_l0}byE{8y&B|UE_-S|byPfX7bFD&k zqqcbX&M;6cw+;cV<zZlYDD1$}{yw?tg#e?=2Iq4JL^vD{R5IEB|9M{dVfFvN-&c3* z?a~n1KmX^M^r{<wPsjfY%DubG^jG=IrPEina*MB8y?)=VpZgLOz-y91Knu8JtE1K_ zGP)G-&h?wF$k2F(<w;Mq;68r49|<ZoPv_6kod4zLsqlS5oryEEU3u!iZJzI|b?821 z-CY}tz(LaztJrmY3`#q!zHQ-Q<k;bVfUi>Q<L`Oj_o#1vc>mY6?MjA!4$J>D;F>Jv zSaYxPdFr}$@H#UE0X0UKf*Ey7!~29BSgc=3oM~cU(Na!mx4B<%m^bU$nVGFOK3@s; zcTK8ze{b(ZiD~uktMC8jS~=SbysGIyJX1$PeQo<wIUxs@>K7(HZ44|{P7Cf%cwW}? zbN>II^N;OI)NKQu0kkbxG!?8xfq|*x0mB>*@jr?U9N&(IM{qH6l(abnDxQBE@%{4r ze<nhQQ>Ns#%Yjw5I5P;!^y$CsWCxvZYQZV2$k2F*v&87hPTAy>8h80j!HX?8+8LBA zWa2Lg^K&RP*@6yBVPI+%)G&UsGj{Pwjk|i5;1hU0OlMHK5r02%C(>D|XINJ8RG!Ou zlg~9Fa93>6lx7ANg$MGCE*t9Y4kz_<Dm2-a$t`ncVAAE>A@=Fcy4@!brnNID-H?w@ z%wzy9Y_*uE=fJ>Z%ke|t)1AK4C*Uso(9EE8gWo<eRe?p|V57yPJO>7*Q^zMfFT1nM z*vmWYrDpIlmvmnL83qgIuF`-kVCn-cE_}psW(7N=OM&elAALmuEk@%fKOc4LhZR3R z7iye-j%Vv`+h3_^Q}#WX<gH{_^Yv=@^+oSXz^k)h$F^DcG6=reQf<J;B#_~xaAm^t zGFd;jmt`jd`9O=Vq*(+G=KWyQ&T?W9j1hLf?90L8v_Mbs{M%jKJ(u22S`1pE+L*<u z(6sug|7%mwQuCRIU+S^gs02Kp@VxA<E8HXpQx<`PR|}S3oh9VJa{bE35@{wm0fi@) z`zN2!m^)w56tomZqnSZz2hXW3jE(m}2QrB$Ffd-{@Hp}L@Av!bLC3ymT)fI_erEw2 zzucQyGvjVLyJdoAbOjn5ctIxxy(rlgBg^PgQ2HiQl1bo)E~C@D(~`U?Q}o)6*Mdwx z;l&_02h=D~0EHJ{g-9y{OOdd`6HD_$+q4xHm)w4#0b1R?pn$340r&u!S;7u1##Rap zjanQ6pJG_Q{xCbK@wQKY0}GSD3VlYGg4$aD^V$jx9P1dYe4Q37W8tVQyZtd`O4)7u z2zEw}7GDNInQiqi=O(iV9PG1XDOM0rV04=Iw@6EJ>EBP{*PIxb5(OMs+8?@CJ>+C` z*`VHc$cLlCqhUfi|J<}0K5m)&|F(Y>XlRIM5ja@)lRMj1y@BJ~oyHmbjK?_yKE0XY z%w^!7K4stcd(~HuipQ@J(~VlPZr`t0Oj*mgK+Bs1F0cq3>|y1Y;=v#oqm(nN$>9JC zM<w5loo?4pXvFf{U-ss3SWp8x-*M*Uq+U??y{Xy7*T}>%L-D-%or30B*5&J@Y$^&E zO@mucvz*X)yQzEwFO$HBi400N+}9^=-p(R$@ZK)I!-@ftj85~ko!`eCE^~VcDzUir zb{w#@HUu4~-0+%3;NZGyj^9m64IF%@=9aKA$*MY>D0cr?6>BNEbZ?pbF=qxQK2SP- zz~Zw4bdXbRjjzAr1wBTmdAC)=_ZOv1SvUXuOG6fg03Jq{0`Q{Ol^hC9!HJKQIIi?D zD4yS1T)9wIZE?v$i<O{rcNswi;~XFHyNV4QWyi%Mm>9)Dq17aQXp>|5lxcA%KYGpo z`zHPHD}}w_RX+@jE(MGNE18%wITe~NPkLm<(c;@M;rWKYubtkX(0JP<zJZZRpkOM4 z(v8sb3E>l11P(gxn(F7MAj;@8FF5hhq9)D>fx8kGgs?MmusAXZ%CtzoY|&>CIJmEZ z%UUr&hS6zWce1DNTVaL8CBNTja58ehj^CPim_^_qpEdhsg#ZIar+M6LUZt%93X4k= zC04S44p3rHx>3xYv=0{hiW8<XD4vh(EUXP>IiV3NT6wFLfh9(vfurmo_l*E)rj7@< zcFgL#*2AE9-n6(P;jZf9k_5h`)&dO<pbeHvN_q_rg)9OGk8WI|#<9bpVM4n2o(5i5 zK?7qi{g@pFR!J}Sd_JeWs_GReP#*9wx@<6BcVL2*fCJ0*gQve3mM{r@ssUA2>~a+j zu{9r$f@(fck-xBf_P?tg43bN;pXBV~YJ}zO-BL^)55Q*xb}2wBh*yi{|7Hk=2D7uw zQE_m~RKMF4DA3@*$Rco%)nN%2#}d^B4nOa%*9s5#7@g+b{m42k#JQp8(pB(5feVUR z1P;zk_C71{!j(br%z}mnc@~b!Z-@OOBJ~(gYSg~p`+e2g=<RONj49_oTn&$pT_?B& zyp{@7fq+lDx+LVlvRw6OslbXh2F3FrQ~z^#xMd0+d46tg_mL0j_P-<lTQwdPXmH2{ zWrf#OR&lJ1E(M}jGKHB=vT#)Tr5zC!=ulo@?DhWvyM4zI1IeY5>H-Z7{44?o?J78> zn-v>4_>N62QDI<ev0;DUvg-j4qmh^OV=kUX29_Z3Hi;vu0vcTmN;@<rU14tg#wqaW zj-9oalR_th<kHC;AImu$;0G~n1)U+@yZYsdW>ArGL34(P4x^D5`|BtxwnhaGg{I~L z<+;$k9Es@~pj>@)@|VNmOes^q2Z1$i;8bV=k6rgLDBUn@Pw?9SQgdx<$(dx38qmRF zjR!#68HzRT7S3i+x{>=oVeWrWh=Q7KHB2c}`0gM7BEYmx*nwsDJH<ELT?|SV8s(Q} zPU6_}<&yWSL)`i~x1<!$t6Datfl{yW;xC6<xfeg4s<-1o(~Yow-}k;>$;iyMBJpsW zXb$UDM+T-+l?IM=i?6>dPGu1|ICbIjM1RhldwU}97M<38b)-}HRqgxg`2IM7Pj6NR z8%i^YF<LL)!tp3@vD?=jtMc#f%X)OA^Hrz%yasvDdgMDS0ta^r1~IZ+5_Vu&o_=(y zz>Ur6{j*H7r-4qhxw^CXxs(G(Wm=Adf)CSLBd`7c|Gp1b_n+4j)_r|_yu2Di6)Pjh z6gLLJ7^y6&riP%71UE*OOM(_PKQ>6&*X{ZBb$$KX6xJ6%K0bc+@Avy~ewz;syM8?C zz6v@|>dZ{z%b~|Y1sWQ{SsodA=|^sI+56!T_p8|VRpBP$HP4Lae_Z7+!Oh6A19aTo zH2V!|pt|IMtj~8Y#Sfe3|MdZ#CBOI2r_+J8&*zrU`*n4Fohavh>AW3|wO<y?>n@Si zYGh!!qrSk{OWv|b<yVl8-TR8;)>CrYe_Uv{ds4@~L4Zl1U=oAU4bSZfA)x)V3#+Ep ziFzj7*-;2O2A8XOTK^iB`bWa^1OERx|34<h_zEi{M}>n!SiSw<m;TzGJxg6T%%}w& zVU|9>)@+tMcoP^#wYZj*G4g5cvzh5td){~*Pc{9~EdOW0uV?1_SGMuVMsbUk2r-qa zZ^*o?wzcS~SLw4eGvhSw{rk3kHRxD0+wXUZW3#22U~2(NkGuR=WN0+wP-wc{;3mki z#hXF!j-F-xX<6H<khgbs8lTG0($8M*KmXfy<A^xT#&zq~X(Ydco*22-tw$norL9Sv zE#tH4uWAFPvYufNow)pN0Ea@8^GB7xADS4HZg886rY%t^s(i7q{mP!o&sVl&US3qY zj+vcLXHA{fDsje>J=%$nkPqyiBBOY8`8<{x@vmN%-_3s3T=jeYz31u;9OuqYkW!d1 zi$Tf4RBOF{&C8|JuY7rV`D*I)*kxupHyS>Cy)`>eN?-rL>FN6Y-(227S10C4b%nMH zC)8=mto$x&Bwz8~$tnO;2eDqr+_aBH;NaH}du84hgHMFI`NLtsWR`1dqnFE7zcDQR z@Zg}Ine$yf!GyZP6Ow&157j)F;cRd`lc^(N`Q7G1$eHaI@BN)9;OhBE>EWsxg#b22 z&h3!n{8JCC+rj&6dY9}2$IoZj<t#Xb=Yr~jL%b4!;!GV6HrVQVW`WLY>65i~<0!eY zu54Ag5SL}njSVmEgiK1cd^*diH?dArBz?nFLwT0hQC49Fj4lNS9ai!&t>sW?IxHu@ zI&5v%xovlM6ei!0U0QxlFk)LyWJ%nsTU)c|Zsu+7Qatb{i08P~l|wZF?E06F?_m)* zSjibA$0W(2&}4kz(}$p&tGCzvtun3rl)}IEc*=avH@CO@uZ`H)wD+K$wc)`s@n_RF zr=MT7)O-3WMdvmR!Ka1um(Q#6f}YCb0O~;{^zXQB`i!}}wmJ2kfCJ0!$J{zAK_Pp? zPtG8LVc~_u-8XLDdns@tc)6ctwsPB3<p+oUEOOn@vwijYeNks;nXYzU9#{J{wDk4b z?W>m0uZzmPyGvAX&iSXg)6?uSq-9yNT^Iyol+!O?eFbX0es@&YJ+Oc767Rd7EE4se zEr0&)=Kgn8DdO9_|BuA?2W-Dn)cxxE`grCwYnV>o`?9zCyPNjWH7w!g&tfF>uYR33 zO>u$`gW#Mq9oh;35{z<Q;7uEUUN4ExN)~ynpA)|OLA-90y6>zdaTO0)OOJ|%o3yO^ z^Y+{A{BY2)<`(n2A_pg3$%Y<hU36)dX|~kEE1$N5mf5v(i@QDjYMN%Tb&bL4Rhv7q zf8MG6es^z6*=n;l6Bm9zH(T-Utv=o8Z7!V8KHZA>no*LtC**9yH^mEG3`#RTGByfv zehAPKEMxV3c%N&*<&<WI$NFy$K4_}<6||}OQSkN2WdCmho58)ujOXX(-WE8x$!br= zMJ3R}J&%}Mzq_{HkTK7jb8Aax@Rm(~K<foTi=+NeeZ2on?TKA~Kodg0`zGJo;NDid z_fPDtTl?$lQx1a`I=#uhrW6yl&DBEvrcK6$1*g~-b3a~M#38}ZD8?dikcXdRibq3x zQ0E5i46grS40F{451L9c>z&bG#sNC+XUqTZ=d9m{DE)GAIptobzj|AhYD8G9{;n5` z<bJoG4Gq^+UVY@5T+-+F>-T)}+OkRKYj)vE*A;q`ue8;c%(%(F@#;UzyrmH>o3}aV zWTkHAcAvV_ATFyY`;xCesH;{gllI%Qp?%W)I`3@Lf1ra!tsEOZUguo(?#j!i`o~8W zwYc<48mn=o?)&%a_0<Olo28W^>hxFd*p!uB@76CTyO!^?dsu&|#HK$vT@Mbo^P7id zeEpZa*GSvR+E==8(Uq8=wsn6h4!40;=$Uz+*go@z_pLo2k4ayZEx$7{!&vFY+}~{8 z3Kx19lxA!M#n6rqLcvMp+1Ew>t(|*%?kj`G=QYbk@_M-cZFSwSrq9dcOOK@SloqG; zaeJfYS{5%;Y;y0Dk^K9Aj%9IG>ZEH8Z}#qpbS;==_GnHbcka!{I*V?-OP({=^N_4y z%#RPtoj625XP#OFX|*^MGwJO)@?ics!2|n2?WvP267?s0YW5vs{eO!oP`*=T(fhsc zYx7k~9*1Q{&()rz(lq(d!mnNhtIZz$$xGX{ZFA&u&i1^mRlOYFe)=8$whPogJbL-d zWloT>7K};($~B+X&z+-oPIc2M<HAQr+&;~8xGUzfy+*43po9KKWxXHUZ^lJgibtsL zGjiRaGO25}`<Wx*N=4C}Ub6GnxaMs>67el2b=yUqz^U7EPfgLZ{U&qU?6~SNCzk0J zKQg(PWEC1X-Z6x%YH=_I+4x}YIl&Jn_y2PJ^yK8^SFcvDe<!+XMR>)Nr`LQUE?ZVz znKQk?|FM34{OgE&tpAU-a?P&JPCdU)x9MnjR7lqTnTw1wRU^VeFUw54vZ^=j@lmnu z&q_1<JhHa+&z$<e>fXXHH_e$k67Jiy?Tr&Ic&K_TyP;3|{p9+y0S7=U_Fqkl&g<+` zyC`3|(5B=?!1~P=vgM9z&wkGQbM;nWZkgQwe`0fHE;+?|@a8ga>!_ZOmjd^M$bq^W z41P<v{|P);_@saRt&LaI|IgC4nk3+6w8!hkqM9f9lU{zEmA$UBkL9BK+!OaNt?AQ= z*<qk{|L$GctK|<4G`ii*3@eG+n)q8a@BO^Jo2FcUR(8xuG_^*mKJ>%Ky=Qm*GJoe2 zzw^ES9E*z<;Wx_fmmT`It8cpBh9&0=K&`?r+Ix$pFz~Co%LY$~wEKBo<ly0U{(hr9 zT{o^eg&XZXHE;XQ;^$^A8~z$)z1O~$RD5SgVej<d;`q4#|Nbss>^|w+H_$4|jr$EU z-xuBC-XuA%5;SM|d)DJ`-%eJ}Kbw=cZTf}<ioqGCcD?(Ztm7u1di5rL=koOP^X`85 z^5^Gg!2_I+_nmvZR4th4?io)8!8yVTM-?ZuGVm|e+45)iHTD0qlqz0bS@{ZdB3b#p z%H={A)%E9mnt0!PTliifoz?o{u_b~1e-A%fwR(!6W9B<Wv;Xs^JPi$7H2KyBXZhKx zuP&z7EIaw>)~U4lPP(;H_5bePy&Bz9zxsQlznDQ>%_p&KVU7%fF`(7cx{PvOiM#Kq z|G)Jp5R~0d7b**#s`>l%`s#zt?B*^T?AlUpZ_C{~$D-=Xi;SmXc5986$=TIJyuH7F z|8XwAJB3<nZ*>SSeRk^o$H&K|&0eh86eW;-`0U>nPc!AF!~4=}U(NOZ-0dIZymjhF zp;hTG!vk3a4!TZUBFC{r;efLyt4hEA$CLZFaZKBg#MwE|Fu83~z>BM^!&e)ppEGg! zaAKnJ;{WrF)BV=_T)LI&85uX(1(dtn+HbDgqF6mA^{bWM<h4__hp&&df2HzP_u=Iq z-nZ4){nlmtb2{UMQ^Utetzy@&O=M8o(HFP;{8YgQ3qvG-1xbB7xqq9(6?dhRr=C~e z|9#Kn#j&-QUj5zUnG~{qK^kZKwbf_W-s;G{ex_t^`TKivoqH~|I4d`K@3hTOQD>b0 zZ2Fwor4@`U68fwTOS%?tDl|2h>CY|hW#Cu6ZWFY|*6t@XXFJV4yV>&Vyo6f5<ul*j z^r=y;t^?=pIa4IEA06qmHS(IBYvLWUG}rjNyy*K|klZa^Eguk_&XF=V{)=s1p8kgS z{pTWn-Hv*^uO(~y**&E<pNprj)PMKpvCiL)?n#x;W~MKyyk;{?&wH-t^)y+1L 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 literal 0 HcmV?d00001 diff --git a/sections/einleitung.tex b/sections/einleitung.tex index 7a5a7ea..ce9eacf 100644 --- a/sections/einleitung.tex +++ b/sections/einleitung.tex @@ -1,7 +1,7 @@ \chapter{Einleitung}\label{ch:introduction} -Die Adaption von Robotern in der Industrie nimmt von Jahr zu Jahr zu. Die International Federation of Robotics meldet für 2018 einen Investitionsrekord von 16,5 Milliarden US Dollar in industrielle Robotik und erwartet bis 2022 ein durchschnittliches Wachstum von 12 Prozent pro Jahr\footnote{\url{https://ifr.org/ifr-press-releases/news/robot-investment-reaches-record-16.5-billion-usd}}. Noch sind jedoch nicht alle Probleme besser von Robotern als von Menschen lösbar. Insbesondere die sensorischen Fähigkeiten des Roboters und die Entscheidungsfindung in unsicheren oder unbekannten Situationen sind den Fähigkeiten des Menschen noch unterlegen. Eine aktive Zusammenarbeit von Mensch und Roboter verspricht daher eine höhere Effizienz. Das spiegelt sich auch in der zunehmenden Entwicklung von kollaborativen Robotern (Cobots) wider. Diese sind in der Regel kleiner, schwächer und günstiger als herkömmliche industrielle Roboter und sind in der Lage in Echtzeit auf ihre Umgebung zu reagieren und so - ohne die Notwendigkeit eines Sicherheitskäfigs - eine direkte Zusammenarbeit mit Menschen zu ermöglichen \cite{fitzek_li_speidel_strufe_simsek_reisslein}. +Die Adaption von Robotern in der Industrie nimmt von Jahr zu Jahr zu. Die International Federation of Robotics meldet für 2018 einen Investitionsrekord von 16,5 Milliarden US Dollar in industrielle Robotik und erwartet bis 2022 ein durchschnittliches Wachstum von 12 Prozent pro Jahr\footnote{\url{https://ifr.org/ifr-press-releases/news/robot-investment-reaches-record-16.5-billion-usd}}. Noch sind jedoch nicht alle Probleme besser von Robotern als von Menschen lösbar. Insbesondere die sensorischen Fähigkeiten des Roboters und die Entscheidungsfindung in unsicheren oder unbekannten Situationen sind den Fähigkeiten des Menschen noch unterlegen. Statt der Ersetzung des Menschen, scheint eine aktive Zusammenarbeit von Mensch und Roboter eine höhere Effizienz zu bieten. Das spiegelt sich auch in der zunehmenden Entwicklung von kollaborativen Robotern (Cobots) wider. Diese sind in der Regel kleiner, schwächer und günstiger als herkömmliche industrielle Roboter und sind in der Lage in Echtzeit auf ihre Umgebung zu reagieren und so - ohne die Notwendigkeit eines Sicherheitskäfigs - eine direkte Zusammenarbeit mit Menschen zu ermöglichen \cite{fitzek_li_speidel_strufe_simsek_reisslein}. -Gerade in flexiblen Umgebungen ist es nicht praktikabel alle Bewegungen und Handlungen für alle Eventualitäten vorzudefinieren. Stattdessen soll ein Roboter in der Lage sein, selbstständig sein Verhalten und seine Bewegungen anzupassen. Um Sicherheitsanforderungen umzusetzen und die erwartete Ausführung von Aufgaben zu gewährleisten, können dem Roboter Einschränkungen (Constraints) auferlegt werden. Dadurch bleibt situationsabhängige, lokale Planung Aufgabe des Planungsalgorithmus des Roboters. Die Menge an gültigen Lösungen wird durch die Constraints jedoch soweit eingeschränkt, dass der Roboter ein erwartungsgemäßes Verhalten zeigt. +Gerade in flexiblen Umgebungen ist es nicht praktikabel alle Bewegungen und Handlungen für alle Eventualitäten vorzudefinieren. Stattdessen soll ein Roboter in der Lage sein, selbstständig sein Verhalten und seine Bewegungen anzupassen. Um Sicherheitsanforderungen umzusetzen und die erwartete Ausführung von Aufgaben zu gewährleisten, können dem Roboter Einschränkungen (Constraints) auferlegt werden, wodurch die situationsabhängige und lokale Planung Aufgabe des Planungsalgorithmus des Roboters bleibt. Die Menge an gültigen Lösungen wird durch die Constraints jedoch soweit eingeschränkt, dass der Roboter ein erwartungsgemäßes Verhalten zeigt. \paragraph{}Das Ziel dieser Arbeit besteht darin mögliche Arten von anwendbaren Constraints für Arbeitsbereiche, Bewegungen und Handlungen zu identifizieren, analysieren und nachfolgend taxonomisch zu erfassen. Einschränkungen dieser Arten sind dabei von Zeit, Arbeitskontext diff --git a/sections/grundlagen.tex b/sections/grundlagen.tex index 0f222b6..63278c9 100644 --- a/sections/grundlagen.tex +++ b/sections/grundlagen.tex @@ -9,11 +9,11 @@ Diese Arbeit bezieht sich in erster Linie auf industrielle Roboter oder auch ind \section{Cobots} -Roboter sind dem Menschen in vielen Bereichen deutlich überlegen. Sie sind durchgängig einsetzbar und arbeiten weitaus genauer. Die Überwachung und Entscheidungsfindung obliegt jedoch weiterhin dem Menschen. Gerade in Bereichen, die ein hohes Maß an individualisierten Arbeitsschritten enthalten, ist heute noch nicht praktikabel menschliche Arbeiter vollständig zu ersetzen. Um trotzdem auch die Vorteile des Einsatzes von Robotern auszunutzen, ist es wichtig eine Umgebung zu schaffen, in der Roboter und Menschen sich einen gemeinsamen Arbeitsbereich teilen~\cite{siciliano_springer_2008}. -In solchen kollaborativen Zellen ist es notwendig, dass der Roboter eine Reihe von Sicherheitsbestimmungen gerecht wird [\_\_\_ISO 15066] und in der Lage ist auf unerwartetes Verhalten des Menschen zu reagieren und sein eigenes Verhalten automatisch anzupassen~\cite{fitzek_li_speidel_strufe_simsek_reisslein}, um Verletzungen zu verhindern und stets eine sichere Arbeitsumgebung zu gewährleisten. Erfüllt ein Roboter diese Vorgaben und kann für kollaborative Arbeiten mit Menschen eingesetzt werden, spricht man von einem Cobot. +Roboter sind dem Menschen in vielen Bereichen deutlich überlegen. So sind sie durchgängig einsetzbar und arbeiten weitaus genauer, als es einem Menschen möglich wäre. Die Überwachung und Entscheidungsfindung obliegt jedoch weiterhin dem Menschen. Gerade in Bereichen, die ein hohes Maß an individualisierten Arbeitsschritten enthalten, ist heute noch nicht praktikabel menschliche Arbeiter vollständig zu ersetzen. Um trotzdem auch die Vorteile des Einsatzes von Robotern auszunutzen, ist es wichtig eine Umgebung zu schaffen, in der Roboter und Menschen sich einen gemeinsamen Arbeitsbereich teilen~\cite{siciliano_springer_2008}. +In solchen kollaborativen Zellen ist es notwendig, dass der Roboter eine Reihe von Sicherheitsbestimmungen gerecht wird \textcolor{blue}{[ISO 15066]} und in der Lage ist, auf unerwartetes Verhalten des Menschen zu reagieren und sein eigenes Verhalten automatisch anzupassen, um Verletzungen zu verhindern und stets eine sichere Arbeitsumgebung zu gewährleisten~\cite{fitzek_li_speidel_strufe_simsek_reisslein}. Erfüllt ein Roboter diese Vorgaben und kann für kollaborative Arbeiten mit Menschen eingesetzt werden, spricht man von einem Cobot. \section{Pose} -Die Pose eines Roboters beschreibt seine Position und Orientierung im Raum~\cite{siciliano_springer_2008}. Die Pose eines Manipulators kann durch die Rotation der einzelnen Gelenke eindeutig definiert werden. +Die Pose eines Roboters beschreibt seine Position und Orientierung im Raum~\cite{siciliano_springer_2008}. Die Pose eines Manipulators kann durch die Rotationswerte der einzelnen Gelenke eindeutig definiert werden. \section{Pfad und Trajektorie} Der Pfad und die Trajektorie beschreiben eine Folge von Posen im Raum, die vom Roboter eingenommen werden sollen. Die Trajektorie enthält darüber hinaus auch Zeitabhängigkeiten und damit auch Informationen über Geschwindigkeit und Beschleunigung. Die Pfadplanung geht der Trajektorienplanung daher stets voraus, auch wenn beide Schritte nicht zwangsläufig separat erfolgen müssen~\cite{carbone_path_2015}. @@ -21,18 +21,18 @@ Der Pfad und die Trajektorie beschreiben eine Folge von Posen im Raum, die vom R \section{Motion Planning} Motion Planning beschreibt die Aufgabe eine kontinuierliche und kollisionsfreie Trajektorie von einem gegebenen Startzustand zu einem Zielzustand zu finden~\cite{siciliano_springer_2008} \cite{sucan_open_2012}. -Zum Lösen dieser Aufgabe, muss der Roboter in der Lage sein die Position und die Orientierung seiner Elemente anhand der vorangegangenen Gelenkwerte zu berechnen. Diese Berechnung wird Vorwärtstransformation oder auch Vorwärtskinematik genannt und häufig dazu verwendet die Position und Orientierung des Endeffektors relativ zu Sockel des Manipulators zu bestimmen~\cite{siciliano_springer_2008}. +Zum Lösen dieser Aufgabe, muss der Roboter in der Lage sein die Position und die Orientierung seiner Elemente anhand der vorangegangenen Gelenkwerte zu berechnen. Diese Berechnung wird Vorwärtstransformation oder auch Vorwärtskinematik genannt~\cite{siciliano_springer_2008}. Ist der Zielzustand als Pose des Endeffektors definiert, muss eine Konfiguration der Gelenkwerte gefunden werden, die in dieser Pose des Endeffektors resultiert. Die Berechnung der Konfiguration wird Rückwärtstransformation oder Inverskinematik genannt. Damit eine Lösung gefunden werden kann, muss der Zielzustand innerhalb des Arbeitsbereichs des Roboters liegen. Aber auch dann kann es sowohl keine als auch mehrere Lösungen geben~\cite{siciliano_springer_2008}. -Im Raum definiert werden kann eine Pose im \glqq Joint Space\grqq{} und im \glqq Cartesian Space \grqq{}. Eine Definition im \glqq Joint Space\grqq{} ist vollständig, da in ihr der Wert jedes Gelenks definiert ist. Eine Beschreibung im \glqq Cartesian Space \grqq{} hingegen ist nicht vollständig, da hier lediglich die Pose des Endeffektors, in Form von kartesischen Koordinaten, definiert ist. Für eine vollständige Beschreibung muss daher noch eine Rückwärtstransformation berechnet werden. +Im Raum definiert werden kann eine Pose im \glqq Joint Space\grqq{} und im \glqq Cartesian Space\grqq{}. Eine Definition im \glqq Joint Space\grqq{} ist vollständig, da in ihr der Wert jedes Gelenks definiert ist. Eine Beschreibung im \glqq Cartesian Space\grqq{} hingegen ist nicht vollständig, da hier lediglich die Pose des Endeffektors, in Form von kartesischen Koordinaten, definiert ist. Für eine vollständige Beschreibung einer gültigen Pose muss daher noch eine Rückwärtstransformation berechnet werden. Da eine Rückwärtstransformation mehrere Lösungen haben kann, is es möglich, dass im \glqq Joint Space\grqq{} auch mehrere Posen existieren, die der Definition im \glqq Cartesian Space\grqq{} genügen. -Das Finden einer optimalen Trajektorie ist PSPACE-vollständig und daher schwer zu implementieren und rechnerisch zu lösen. In der Praxis hat sich daher für die meisten Anwendungsfälle ein alternativer Ansatz des Sampling-Based Planning durchgesetzt~\cite{siciliano_springer_2008}. Dieser ist einfacher zu implementieren, bietet aber keinen \glqq vollständigen\grqq{} Algorithmus. Existiert eine Lösung, wird diese in unbestimmter Zeit auch gefunden, jedoch kann die Nicht-Existenz einer Lösung nicht festgestellt werden~\cite{sucan_open_2012}. +Das Finden einer optimalen Trajektorie ist PSPACE-vollständig und daher schwer zu implementieren und rechnerisch zu lösen. In der Praxis hat sich daher, für die meisten Anwendungsfälle, der alternativer Ansatz des Sampling-Based Planning durchgesetzt~\cite{siciliano_springer_2008}. Dieser ist einfacher zu implementieren, bietet aber keinen \glqq vollständigen\grqq{} Algorithmus. Das bedeutet, falls eine Lösung existiert, wird diese in unbestimmter Zeit auch gefunden, jedoch kann die Nicht-Existenz einer Lösung nicht festgestellt werden, wodurch eine Abbruchbedingung notwendig wird, die nach einer bestimmten Zeit die Suche nach einer Trajektorie beendet, um eine Blockierung zu verhindern~\cite{sucan_open_2012}.\textcolor{blue}{Sampling-Based Planning erklären} \section{Constraints} -Die physischen Eigenschaften des Roboters, resultieren in der realen Welt automatisch in Einschränkungen (Constraints) für seine Bewegung. Diese lassen sich in globale und lokale Constraint unterteilen. Während globale Constraints sich aus den Hindernissen in der Welt und möglichen Gelenklimits der Roboters ergeben, limitieren lokale Constraints die Geschwindigkeit und Beschleunigung, aufgrund der kinematischen Eigenschaften und der dynamischen Eigenschaften, wie die Erhaltung von Drehimpulsen~\cite{siciliano_springer_2008}. +Die physischen Eigenschaften des Roboters, resultieren in der realen Welt immer in Einschränkungen (Constraints) für seine Bewegung. Diese lassen sich in globale und lokale Constraint unterteilen. Während globale Constraints sich aus den Hindernissen in der Welt und möglichen Gelenklimits der Roboters ergeben, limitieren lokale Constraints die Geschwindigkeit und Beschleunigung, aufgrund der kinematischen und dynamischen Eigenschaften, wie die Erhaltung von Drehimpulsen~\cite{siciliano_springer_2008}. -Neben den natürlich gegebenen Constraints, können dem Planer noch weitere Beschränkungen auferlegt werden. Dadurch ist es möglich das Verhalten und die Bewegung des Roboters an die aufgabenspezifischen Anforderungen anzupassen, die Aufgabe des Motion Plannings aber weiterhin einem Algorithmus zu überlassen. -Häufig wird bei Constraints zwischen \glqq holonomic\grqq{} und \glqq nonholonomic\grqq{} Constraints unterschieden. Erstere können mathematisch alleine durch Gleichungen beschrieben werden, die lediglich von der Position abhängig sind. Für letztere ist mindestens eine Variable neben der Position auch von der zeitlichen Ableitung abhängig~\cite{siciliano_springer_2008}. Das Constraint der Kollisionsfreiheit beispielsweise ist nach dieser Definition \glqq nonholonomic\grqq{}~\cite{berenson_constrained_nodate}. +Neben den natürlich gegebenen Constraints, können dem Planer noch weitere Beschränkungen auferlegt werden. Dadurch ist es möglich das Verhalten und die Bewegung des Roboters an die aufgabenspezifischen Anforderungen anzupassen, die Aufgabe des Motion Planning aber weiterhin einem Algorithmus zu überlassen. +Häufig wird bei Constraints auch zwischen holonomen und nicht-holonomen Constraints unterschieden. Erstere können mathematisch alleine durch Gleichungen beschrieben werden, die lediglich von Positionen im Raum und optional auch der Zeit abhängig sind. Für nicht-holonomen Constraints ist mindestens eine Variable neben der Position auch von dessen zeitlicher Ableitung abhängig~\cite{berenson_constrained_nodate}. diff --git a/sections/implementierung.tex b/sections/implementierung.tex index ad46132..dba3d81 100644 --- a/sections/implementierung.tex +++ b/sections/implementierung.tex @@ -41,7 +41,7 @@ Implementiert wird die Fallstudie unter Verwendung des Robot Operating System (R Das Robot Operating System (ROS) ist ein mehrsprachiges open-source Framework zur flexiblen Realisierung komplexer Robotikanwendungen~\cite{quigley_ros_nodate}. Die Grundlage einer ROS Anwendung bilden sogenannte Nodes, die in einer Peer-to-Peer Architektur miteinander kommunizieren können. Im folgenden werden die grundlegenden Begriffe kurz erklärt. \paragraph{Node} -Ein Node ist ein eigenständiges Softwaremodul. Eine ROS-basiertes System sollte in der Regel möglichst feingranular aufgebaut und Funktionalitäten in einzelne Nodes gekapselt sein. Ein vollständiges System besteht daher aus einer Menge an Nodes, die über Messages miteinander kommunizieren. +Ein Node ist ein eigenständiges Softwaremodul und ein eigenständiger Prozess, der parallel zu anderen Nodes ausgeführt werden kann. Ein ROS-basiertes System sollte in der Regel möglichst feingranular aufgebaut und Funktionalitäten in einzelne Nodes gekapselt sein. Ein vollständiges System besteht dementsprechend aus einer Menge an Nodes, die über Messages und Services miteinander kommunizieren. Dies erlaubt eine klare Trennung von Verantwortlichkeiten innerhalb des Systems und reduziert die Code-Komplexität, da zur Ansteuerung anderer Nodes keine Implementierungsdetails bekannt sein müssen. \paragraph{Message} @@ -67,7 +67,7 @@ Um in einem größeren System nicht alle Nodes manuell starten zu müssen, könn \subsection{MoveIt!} MoveIt!\footnote{\url{https://moveit.ros.org/}} ist das primäre Motion-Planning Framework in ROS und bietet eine relativ niedrige Einstiegshürde. \cite{coleman_reducing_2014}. Die Kernfunktionalitäten sind aus austauschbaren Komponenten aufgebaut. Als Standard Motion Planning Plugin wird die Open Motion Planning Library (OMPL), zur Kollisionserkennung die Fast Collision Library (FCL) und für die kinematischen Berechnungen die OROCOS Kinematics and Dynamics Library (KDL) verwendet \cite{chitta_moveitros_2012}. -Die Grundbausteine der MoveIt! Architektur sind in Abbildung~\ref{fig:moveit_concepts}\footnote{\url{https://moveit.ros.org/documentation/concepts/}} dargestellt und werden nachfolgend kurz erklärt. +Die Grundbausteine der MoveIt! Architektur sind in Abbildung~\ref{fig:moveit_concepts}\footnote{\url{https://moveit.ros.org/documentation/concepts/}} dargestellt und werden nachfolgend, auf Grundlage des Referenzbuchs von Anis Koubaa~\cite{koubaa_anis_2016} und der MoveIt! Dokumentation\footnote{\url{https://moveit.ros.org/documentation/concepts/}} kurz erklärt. \begin{figure} \centering @@ -80,7 +80,7 @@ Die Grundbausteine der MoveIt! Architektur sind in Abbildung~\ref{fig:moveit_con Die Move Group ist der zentrale Knoten der MoveIt! Architektur. In ihm werden die anderen Komponenten zusammengeführt, um sie dem Nutzer gebündelt zur Verfügung stellen zu können. Zum Ausführen und Planen von Bewegungen, wird eine maschinenlesbare Beschreibung des Roboters benötigt. Diese kann von der Move Group als ROS Node vom ROS Parameter Server abgerufen werden. \paragraph{Planning Scene} -Die Planning Scene repräsentiert den aktuellen Zustand des Roboters und dessen Umgebung. Durch Überwachung der Gelenkwerte, kann die exakte Pose des Roboters festgestellt werden. Objekte, die aufgenommen worden sind, werden fest mit dem virtuellen Modell des Roboters verbunden. Die Umgebung kann sowohl mit Hilfe von externen Sensoren modelliert, als auch durch vom Nutzer erstellte Kollisionsobjekten beeinflusst werden. Das resultierende Bild der Umgebung kann anschließend auf zwei Arten repräsentiert werden: \cite{chitta_moveitros_2012}: +Die Planning Scene repräsentiert den aktuellen Zustand des Roboters und dessen Umgebung und wird innerhalb der Move Group von einem Planning Scene Monitor gepflegt. Dieser überwacht drei Topics und sammelt darüber Informationen zum aktuellen Zustand des Roboters, zu Sensordaten und zu weiteren Geometrien beziehungsweise Objekten in der Welt. Durch die im Zustand des Roboters gespeicherten Gelenkwerte, kann die exakte Pose des Roboters festgestellt werden. Ein Objekt, das aufgenommen worden ist, wird fest mit dem virtuellen Modell des Roboters verbunden, sodass es in der weiteren Pfadplanung mit berücksichtigt werden kann. Die Umgebung kann sowohl mit Hilfe von externen Sensoren modelliert, als auch durch vom Nutzer erstellte Kollisionsobjekten beeinflusst werden. Das resultierende Modell der Umgebung kann anschließend auf zwei Arten repräsentiert werden~\cite{chitta_moveitros_2012}: \begin{enumerate} \item Voxel: Die Welt wird in dreidimensionale Zellen aufgeteilt und der Zustand jeder Zelle kann entweder markiert, frei oder unbekannt sein\footnote{\url{http://wiki.ros.org/voxel\_grid}} diff --git a/sections/tax_einordnung.tex b/sections/tax_einordnung.tex index f50d47d..fd594a5 100644 --- a/sections/tax_einordnung.tex +++ b/sections/tax_einordnung.tex @@ -67,8 +67,15 @@ Die einfachste aber auch ineffizienteste Strategie ist ein permanenter sicherer \subsubsection{Hindernisse} Da das Ziel des Motion Planning das Erstellen einer kollisionsfreie Trajektorie ist, beschränken Hindernisse innerhalb des Arbeitsbereich maßgeblich die gültigen Pfade. -Das Springer Handbook of Robotics~\cite{siciliano_springer_2008-Obstacles} definiert im Kapitel 35.9 eine Taxonomie der verschiedenen Darstellungsmöglichkeiten von Hindernissen und Algorithmen, diese zu vermeiden. Eine Visualisierung der Taxonomie ist in Abbildung \textcolor{blue}{Referenz} dargestellt. -Im folgenden Abschnitt werden diese Möglichkeiten kurz erläutert und teilweise erweiter. +Das Springer Handbook of Robotics~\cite{siciliano_springer_2008-Obstacles} definiert im Kapitel 35.9 eine Taxonomie der verschiedenen Darstellungsmöglichkeiten von Hindernissen und Algorithmen, diese zu vermeiden. Eine Visualisierung der Taxonomie ist in Abbildung~\ref{fig:obstacle_tax} dargestellt. +Im folgenden Abschnitt werden diese Möglichkeiten kurz erläutert. + +\begin{figure} + \centering + \includegraphics[height=\textheight, width=\textwidth, keepaspectratio]{images/Hinderniss_Taxonomie.png} + \caption{Taxonomie der Vorgehensweisen zur Hindernisvermeidung} + \label{fig:obstacle_tax} +\end{figure} \paragraph{Ein-Schritt-Methoden} @@ -110,14 +117,14 @@ Die Handlungen, die ein Roboter ausführen kann sind maßgeblich durch seine mec Die dritte Untergruppe der Constraints sind Beschränkungen in der Bewegung des Roboters. In Abgrenzung zu den Pfad-Constraints, die den Pfad schon während des Planungsschrittes beschränken, schränken Bewegungs-Constraints die physische Bewegung beziehungsweise die Ausführung der Trajektorie ein. Dazu gehören die Beschränkung der Beschleunigung, der Geschwindigkeit, der Orientierung und der Kraft. Diese werden in den folgenden Abschnitten näher erläutert. \subsection{Geschwindigkeit} -Die Begrenzung der Geschwindigkeit ist elementar für einen sicheren Betrieb im kollaborativen Umfeld. Die maximal zulässige Geschwindigkeit ist laut ISO 15066 \textcolor{blue}{[Referenz]} abhängig von der Trägheit beziehungsweise der Masse des Roboters und der sich im Arbeitsbereich befindenden Körperregion des Menschen. Die oberen Grenzwerte sind in Abbildung~\ref{fig:v_max} dargestellt. Bei Kollisionen unterhalb dieser Grenzen soll es zwar zu leichten Verletzungen wie einem Bluterguss kommen können, schwerere Verletzungen, wie die Penetration der Haut oder Brüche, können dadurch aber verhindert werden. +Die Begrenzung der Geschwindigkeit ist elementar für einen sicheren Betrieb im kollaborativen Umfeld. Die maximal zulässige Geschwindigkeit ist laut ISO 15066 \textcolor{blue}{[ISO Referenz]} abhängig von der Trägheit beziehungsweise der Masse des Roboters und der sich im Arbeitsbereich befindenden Körperregion des Menschen. Die oberen Grenzwerte sind in Abbildung~\ref{fig:v_max} dargestellt. Bei Kollisionen unterhalb dieser Grenzen soll es zwar zu leichten Verletzungen wie einem Bluterguss kommen können, schwerere Verletzungen, wie die Penetration der Haut oder Brüche, können dadurch aber verhindert werden. Neben der Begrenzung der Geschwindigkeit aus Sicherheitsgründen können auch aufgabenspezifische Anforderungen eine weitere Einschränkung erfordern. \begin{figure} \centering \includegraphics[height=\textheight, width=\textwidth, keepaspectratio]{images/v_max.png} - \caption{Maximale Geschwindigkeiten des Roboters in Abhängigkeit seiner effektiven Masse} + \caption{Maximale Geschwindigkeiten des Roboters in Abhängigkeit seiner effektiven Masse \textcolor{blue}{[ISO Referenz]}} \label{fig:v_max} \end{figure} -- GitLab