From 8bbe0274d6012eb7c4d0dc24af9538412a836f92 Mon Sep 17 00:00:00 2001 From: Felix Mauch Date: Tue, 2 Jul 2019 07:41:56 +0200 Subject: [PATCH 1/8] piped device_name and tcp_port for tool communication correctly through all launch files --- ur_rtde_driver/launch/ur10e_bringup.launch | 2 ++ ur_rtde_driver/launch/ur3e_bringup.launch | 2 ++ ur_rtde_driver/launch/ur5e_bringup.launch | 2 ++ ur_rtde_driver/launch/ur_common.launch | 2 ++ ur_rtde_driver/launch/ur_control.launch | 2 +- 5 files changed, 9 insertions(+), 1 deletion(-) diff --git a/ur_rtde_driver/launch/ur10e_bringup.launch b/ur_rtde_driver/launch/ur10e_bringup.launch index 317b44c..4659e25 100644 --- a/ur_rtde_driver/launch/ur10e_bringup.launch +++ b/ur_rtde_driver/launch/ur10e_bringup.launch @@ -38,6 +38,8 @@ + + diff --git a/ur_rtde_driver/launch/ur3e_bringup.launch b/ur_rtde_driver/launch/ur3e_bringup.launch index 02ff890..a2cab94 100644 --- a/ur_rtde_driver/launch/ur3e_bringup.launch +++ b/ur_rtde_driver/launch/ur3e_bringup.launch @@ -38,6 +38,8 @@ + + diff --git a/ur_rtde_driver/launch/ur5e_bringup.launch b/ur_rtde_driver/launch/ur5e_bringup.launch index ad46d76..3f1aa13 100644 --- a/ur_rtde_driver/launch/ur5e_bringup.launch +++ b/ur_rtde_driver/launch/ur5e_bringup.launch @@ -38,6 +38,8 @@ + + diff --git a/ur_rtde_driver/launch/ur_common.launch b/ur_rtde_driver/launch/ur_common.launch index 646d378..9dfbfe8 100644 --- a/ur_rtde_driver/launch/ur_common.launch +++ b/ur_rtde_driver/launch/ur_common.launch @@ -42,5 +42,7 @@ + + diff --git a/ur_rtde_driver/launch/ur_control.launch b/ur_rtde_driver/launch/ur_control.launch index e2a6d40..02ad059 100644 --- a/ur_rtde_driver/launch/ur_control.launch +++ b/ur_rtde_driver/launch/ur_control.launch @@ -45,7 +45,7 @@ - + From a6338abad67ac982a314b3a2d7b5b001f01fe0c8 Mon Sep 17 00:00:00 2001 From: Felix Mauch Date: Tue, 2 Jul 2019 07:45:43 +0200 Subject: [PATCH 2/8] by default, deactivate tool_comm and set tool voltage to 0 --- ur_rtde_driver/launch/ur10e_bringup.launch | 4 ++-- ur_rtde_driver/launch/ur3e_bringup.launch | 4 ++-- ur_rtde_driver/launch/ur5e_bringup.launch | 4 ++-- ur_rtde_driver/launch/ur_common.launch | 2 +- ur_rtde_driver/launch/ur_control.launch | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ur_rtde_driver/launch/ur10e_bringup.launch b/ur_rtde_driver/launch/ur10e_bringup.launch index 4659e25..3a2494b 100644 --- a/ur_rtde_driver/launch/ur10e_bringup.launch +++ b/ur_rtde_driver/launch/ur10e_bringup.launch @@ -4,7 +4,7 @@ - + @@ -13,7 +13,7 @@ - + diff --git a/ur_rtde_driver/launch/ur3e_bringup.launch b/ur_rtde_driver/launch/ur3e_bringup.launch index a2cab94..d69604a 100644 --- a/ur_rtde_driver/launch/ur3e_bringup.launch +++ b/ur_rtde_driver/launch/ur3e_bringup.launch @@ -4,7 +4,7 @@ - + @@ -13,7 +13,7 @@ - + diff --git a/ur_rtde_driver/launch/ur5e_bringup.launch b/ur_rtde_driver/launch/ur5e_bringup.launch index 3f1aa13..8e25bb3 100644 --- a/ur_rtde_driver/launch/ur5e_bringup.launch +++ b/ur_rtde_driver/launch/ur5e_bringup.launch @@ -4,7 +4,7 @@ - + @@ -13,7 +13,7 @@ - + diff --git a/ur_rtde_driver/launch/ur_common.launch b/ur_rtde_driver/launch/ur_common.launch index 9dfbfe8..e165cb0 100644 --- a/ur_rtde_driver/launch/ur_common.launch +++ b/ur_rtde_driver/launch/ur_common.launch @@ -10,7 +10,7 @@ - + diff --git a/ur_rtde_driver/launch/ur_control.launch b/ur_rtde_driver/launch/ur_control.launch index 02ad059..aad3ff6 100644 --- a/ur_rtde_driver/launch/ur_control.launch +++ b/ur_rtde_driver/launch/ur_control.launch @@ -15,7 +15,7 @@ - + From 2afb937bb860d1fa969b61f2716d16bc99cd8a18 Mon Sep 17 00:00:00 2001 From: Felix Mauch Date: Wed, 3 Jul 2019 09:58:50 +0200 Subject: [PATCH 3/8] Pass stopped_controllers to underlying launch files --- ur_rtde_driver/launch/ur10_bringup.launch | 1 + ur_rtde_driver/launch/ur10e_bringup.launch | 1 + ur_rtde_driver/launch/ur3_bringup.launch | 1 + ur_rtde_driver/launch/ur3e_bringup.launch | 1 + ur_rtde_driver/launch/ur5_bringup.launch | 1 + ur_rtde_driver/launch/ur5e_bringup.launch | 1 + ur_rtde_driver/launch/ur_common.launch | 1 + 7 files changed, 7 insertions(+) diff --git a/ur_rtde_driver/launch/ur10_bringup.launch b/ur_rtde_driver/launch/ur10_bringup.launch index ef2d990..a450465 100644 --- a/ur_rtde_driver/launch/ur10_bringup.launch +++ b/ur_rtde_driver/launch/ur10_bringup.launch @@ -23,6 +23,7 @@ + diff --git a/ur_rtde_driver/launch/ur10e_bringup.launch b/ur_rtde_driver/launch/ur10e_bringup.launch index 3a2494b..bd8da33 100644 --- a/ur_rtde_driver/launch/ur10e_bringup.launch +++ b/ur_rtde_driver/launch/ur10e_bringup.launch @@ -32,6 +32,7 @@ + diff --git a/ur_rtde_driver/launch/ur3_bringup.launch b/ur_rtde_driver/launch/ur3_bringup.launch index 3ecd9eb..e31ddf3 100644 --- a/ur_rtde_driver/launch/ur3_bringup.launch +++ b/ur_rtde_driver/launch/ur3_bringup.launch @@ -23,6 +23,7 @@ + diff --git a/ur_rtde_driver/launch/ur3e_bringup.launch b/ur_rtde_driver/launch/ur3e_bringup.launch index d69604a..3588a20 100644 --- a/ur_rtde_driver/launch/ur3e_bringup.launch +++ b/ur_rtde_driver/launch/ur3e_bringup.launch @@ -32,6 +32,7 @@ + diff --git a/ur_rtde_driver/launch/ur5_bringup.launch b/ur_rtde_driver/launch/ur5_bringup.launch index 60a2363..dd71af6 100644 --- a/ur_rtde_driver/launch/ur5_bringup.launch +++ b/ur_rtde_driver/launch/ur5_bringup.launch @@ -23,6 +23,7 @@ + diff --git a/ur_rtde_driver/launch/ur5e_bringup.launch b/ur_rtde_driver/launch/ur5e_bringup.launch index 8e25bb3..f324d0e 100644 --- a/ur_rtde_driver/launch/ur5e_bringup.launch +++ b/ur_rtde_driver/launch/ur5e_bringup.launch @@ -32,6 +32,7 @@ + diff --git a/ur_rtde_driver/launch/ur_common.launch b/ur_rtde_driver/launch/ur_common.launch index e165cb0..f54d992 100644 --- a/ur_rtde_driver/launch/ur_common.launch +++ b/ur_rtde_driver/launch/ur_common.launch @@ -36,6 +36,7 @@ + From 2c91fb23f3bc7c06dff3a9e7c876fad6edd33995 Mon Sep 17 00:00:00 2001 From: Felix Mauch Date: Wed, 3 Jul 2019 13:58:11 +0200 Subject: [PATCH 4/8] Revert "use gitlab-ci pipeline from https://gitlab.com/VictorLamoine/ros_gitlab_ci" This reverts commit 766fb8aaa53c8ca327115fc6e8d7cd5f5d5aae9e. --- .gitlab-ci.yml | 44 +++++++------------------------------------- 1 file changed, 7 insertions(+), 37 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b88217a..15537df 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,38 +1,8 @@ -image: ros:kinetic-robot - -cache: - paths: - - ccache/ - -before_script: - - git clone https://gitlab.com/VictorLamoine/ros_gitlab_ci.git - - source ros_gitlab_ci/gitlab-ci.bash >/dev/null - -# catkin_lint -catkin lint: - tags: - - docker - stage: build - image: ros:kinetic-ros-core - before_script: - - apt update >/dev/null 2>&1 - - apt install -y python-catkin-lint >/dev/null 2>&1 - script: - - catkin_lint -W3 . - -# catkin_make -catkin_make: - tags: - - docker - stage: build - script: - - catkin_make - -catkin_make tests: - tags: - - docker - stage: test - script: - - catkin_make run_tests - - catkin_test_results # Check if one of the tests failed! +include: + - project: 'continuous_integration/ci_scripts' + ref: master + file: '/gitlab-ci-yml/catkin_pipeline.yml' +variables: + BUILD_INDIGO: "false" + BUILD_MELODIC: "false" From 6aa2670eba4a9d7b9f218ab906de391ec29f81a7 Mon Sep 17 00:00:00 2001 From: Felix Mauch Date: Wed, 3 Jul 2019 10:10:17 +0200 Subject: [PATCH 5/8] print an error message in calibration and exit when connection cannot be established --- ur_calibration/src/calibration_correction.cpp | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/ur_calibration/src/calibration_correction.cpp b/ur_calibration/src/calibration_correction.cpp index f460b48..a804e53 100644 --- a/ur_calibration/src/calibration_correction.cpp +++ b/ur_calibration/src/calibration_correction.cpp @@ -183,13 +183,20 @@ int main(int argc, char* argv[]) ros::init(argc, argv, "ur_calibration"); ros::NodeHandle nh("~"); - CalibrationCorrection my_calibration_correction(nh); - my_calibration_correction.run(); - if (!my_calibration_correction.writeCalibrationData()) + try { - ROS_ERROR_STREAM("Failed writing calibration data. See errors above for details."); - return -1; + CalibrationCorrection my_calibration_correction(nh); + my_calibration_correction.run(); + if (!my_calibration_correction.writeCalibrationData()) + { + ROS_ERROR_STREAM("Failed writing calibration data. See errors above for details."); + return -1; + } + ROS_INFO("Calibration correction done"); + } + catch (const UrException& e) + { + ROS_ERROR_STREAM(e.what()); } - ROS_INFO("Calibration correction done"); return 0; } From 6979ec35e051c60e0c50ff6e4eedd6c9008da182 Mon Sep 17 00:00:00 2001 From: Felix Mauch Date: Wed, 3 Jul 2019 18:15:45 +0200 Subject: [PATCH 6/8] send keepalive signals only if the program is running when no program is running, we do not want to fill the buffer anyway. --- ur_rtde_driver/src/ros/hardware_interface.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/ur_rtde_driver/src/ros/hardware_interface.cpp b/ur_rtde_driver/src/ros/hardware_interface.cpp index e65edf6..ac33cdb 100644 --- a/ur_rtde_driver/src/ros/hardware_interface.cpp +++ b/ur_rtde_driver/src/ros/hardware_interface.cpp @@ -287,15 +287,17 @@ void HardwareInterface ::read(const ros::Time& time, const ros::Duration& period void HardwareInterface ::write(const ros::Time& time, const ros::Duration& period) { - if (position_controller_running_ && - (runtime_state_ == static_cast(rtde_interface::RUNTIME_STATE::PLAYING) || - runtime_state_ == static_cast(rtde_interface::RUNTIME_STATE::PAUSING))) + if (runtime_state_ == static_cast(rtde_interface::RUNTIME_STATE::PLAYING) || + runtime_state_ == static_cast(rtde_interface::RUNTIME_STATE::PAUSING)) { - ur_driver_->writeJointCommand(joint_position_command_); - } - else - { - ur_driver_->writeKeepalive(); + if (position_controller_running_) + { + ur_driver_->writeJointCommand(joint_position_command_); + } + else + { + ur_driver_->writeKeepalive(); + } } } From 412b6ba54ea5162faf87141798218e06d298e702 Mon Sep 17 00:00:00 2001 From: Felix Mauch Date: Thu, 4 Jul 2019 09:32:51 +0200 Subject: [PATCH 7/8] updated externalcontrol urcap --- .../resources/externalcontrol-1.0.1.urcap | Bin 0 -> 32062 bytes .../resources/externalcontrol-1.0.urcap | Bin 32267 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 ur_rtde_driver/resources/externalcontrol-1.0.1.urcap delete mode 100644 ur_rtde_driver/resources/externalcontrol-1.0.urcap diff --git a/ur_rtde_driver/resources/externalcontrol-1.0.1.urcap b/ur_rtde_driver/resources/externalcontrol-1.0.1.urcap new file mode 100644 index 0000000000000000000000000000000000000000..f7c4091c523c4c16815e39bdb102923ab04d07ba GIT binary patch literal 32062 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⁣=}64P^@TR^SI&}8 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 KXwT~L+y4QSi$&@H literal 0 HcmV?d00001 diff --git a/ur_rtde_driver/resources/externalcontrol-1.0.urcap b/ur_rtde_driver/resources/externalcontrol-1.0.urcap deleted file mode 100644 index 55b150294ad2f30525c2b9ec8d718587267f4431..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32267 zcmce+bC6}wBEpJFG}0npV*mhI zO4_#bbV%Mc3*UB4q$JEL2`<>cx3$P{fzBCEj{rYUmb#^-5jpF#Tn?vi3||b{q*I*v zmIIK4!@Z~5j<*~y=_%NW&jUCaR4kJD2KsD{mBM$hsxU3_OA>-~c`!nT`|a$UHe$he za+A`*c_Q3F+(!Fq?2(o$XxOxg!=nNauMPmSSRm}O8ctnDPqyOa)9kA*vTbXD*_PM$m6ELGn#Oi zp7=UlNT{w{WCiHAPuSD-?Jc z4!n`i>CMNm_5+X>Ztc>O%N{Pd$DypX?83cb%n2KqzHYgV)x?^Y$VrWpUmo+P?v8dO z2i~YI29@jk196tON=^NwD9-7|?Z703chjHr^6be*Q!hDIGEF};pTI>=UD={ zovb2C%Mm$5+bUo%+t1xdW_CeG7%xLBV#j#hm+{6eh{R96OJkB#qAH7*xA8lqzX_i` zAhQ)}*{et}qF2TqVNl(4G4Eb3)0M_Z*1#FKtrd!`DOMLWMJ26|WJf}}UT$*N+h#c= zbKA2GRkBEZH6Q!=xuEmeVhVg(?xEx)!N7m(03Ip=0szc{007ASx4?w>1JZv3CeWV; z!NC85?Vq^6UH=~FiZk(_5DoX|_kRnN5*HMfQ54?P&~#iMLiTyCS#c;HSk{j>XZi zr3Pbbtjoh6>bmCIM-!QWYn+pM%X;pC#ixX$C|~qBNlfF(-YGIGC{}sgY{hIBV|Yy7O+)&69S5hrpL%S zz9OHsF=4g%LpXwAC>YUYavZTZgoYpbjymm750DOj6_zawD0ZbeBz_enE`~yT&-_k{ zp=xjaTw~Q~C((EA%DMiqgIj-_n<>@lY-}?t9Q|nd>~60pBdxKBsQsRR?wvw|YBRvI z`V9g_9_N=UJ}99Cgv{`9C(>6qm7XvqXPfc~*T!=6;S{Ax*r&|wZSQ+y4bf_w@e@V? zM4^`1Owh)@OS`CeQ+01fS3Pk=_si4cHLW=((2;&W82|nbXf4MZz=lyW6axQ&h_hah zLLepS93yw)xG&4Tlva<%M{1V#kxuCM49U-S4EYpfcQ3aeXYh@Su*g5UG%vA0xCYTl zf3zJEEiBb)LXd->F5-x4*eX|51|L3HN~3%SX*L$m*)fT$BV$!|)T56g#RcUv2AVll z*t^~oFh14}-#9elvlRiJhi(w^>p=6$1%1>!x->p;wid~wdu>>Kf#lhhw_m`1V7D4t zk?~qsYP{5KjKVg;LIBFovU@3n_~qMTeAl5U)Vhml(R1gf+B->!{n9ZMKv$T;b%crs zF!ie;1)G|Ml6mVnxs-!FwyB_?9<)2TH}qwCnuj2}*p-}1vjZojF7mtTqc;GoJ^iTD zQ2!CfCAK*tjd;h~Uj#Ud1XP>ElVmgy>}R6~>c-ZGsR@a*WTe6lt)@95z^_TW2MC*s zW4zu!RSTDk-Is~Fml)ZtT6<4Oq-gk*Itr;eb_Q0v7l>d6$I2N4u(96>^Ksfm)XXpE zMTpH&Q=n97_cO{T3}=X9BVr@Ct#P^F;6JV&O$sxQ<}PZCIsk?z*tL{4&h*#U6s@XB+BEzAY6D=cuXkcEe}O# z8PL*&_)V-EG3_=SoRkjDhf{9m=0{?K+{&2BhV_C@)djiw z$mD1aADRg-Lgj>T^dZrb!H~hk4FK3Glz{aeQ z1`y>$gvDSbj^7K3oX%R{_ey%LC4ruf9HN6*C3!*fYmWD7#47C8TW(+c)x#f01{a6V zR!vAG8?cg*mBi!G#qfgsrUv%HPyyJ36ao9s7XeZrcEM(rl{}-h3K%yf?>Yk!_lHw^ zJT6c$Ngd-R?cCHgL2{VjI=~bO;&PN6x4(Bo^40^8;|#fnZXxD~*{+9SDnTd(a-X7u z_+q#HrnD@uz4ya~w^|OFcn#>|4->JclN|d{TxM_?!8Rp;H@|_dwR#v9f2QfpI6(Uo z_y@#b=1b1rt218z&<4}ze9a9z1PLyUWpR$?`WfM80pRoM`$Ikodxahzj7$EhGER>q z6I!~52eMdrD7yieWU%Zft?05`n5RiT7c?EUpG?8t2=C(m>HF%Q^O$zfH?~?#* z9Hb!!hw+T23cn5UmlWPH=5wS{EkR53P+O`I9hZo?$bsw!Iv1@l;j_&G5Kfc4CJmro zU9Q(2uxRNER*$^2-e8t(Q(`6q`!QS$^2aQKA_%?IU~xPenWCA9cX5yi;b9uByT7u% za}Sd6b+B4I4O}y1H*_y*71Ugw||U0FQ!cny38F~}+v@+SvtjFa%zZm zcDLd(l8*~!i^Ksc55H|cW)>S3CqM5lAE6Vj?eRPf*Iv2f98BL2R+IUA(xuqzs9q@% zku_u?c#@DG)5uR2)EfxM#53juk`jdwg& zlg6JxO)HgfjUnN|PXJcc@n%$LZ{tEwe!(6)&d?Fo$suISykooShv}A>Onpcn_-mfB z9R%VKFxQO86`#Fq5DaigncUY|jgi%=+&1-giF3Jww>SeykV+48N zbo-b?tn6)2&|ze{lDvD;yT8FXUeS(11!q8`1q%yV7R$FqE^T9Lb2)DyQk)#fk$mR& z9+@nFR6w`n`+js$8qE7At|h)&jTG;&>cUJV0W>e<9PdeRT4deKHKXAA`vz#k(nI8z z{{mvIU2r#yOxE-36q}UH2tXdy=Xusvcm#AF%lovnSKy1Q)ye~IY$mVnAzZ1xewxj$)h4JYbRJXcpTQACYPX#sU(i(QRuU; z?BwFQSK)JW#__u6RCX^|l0o6?rj3&jn(0(EcaWJJ8$50`P_Mkx0pl3bnD5~LZ7R(UoLRg3XEzdj9_&4jkk?BM>!xC4c+FnPe!wB7?QZzT z!Jt7y>6j>^Rjdf9nY`@9qy+O1v=0OR zbb~uK9?);E#9`7-So(T|83C{jx^W0ZokqXe)S{B8gfI*C>ukLzKt7`)=ede&mz{rn zslQo0Z|)Ho&!Xo7DH11IBWkZfW;74(M`nkR`iBadO9V|SwUnb|Li#hL0GNWG!O z^x3vXYJ7RT<=F`GEK$pO>+~EfAQC~R8`efr@KH!f79C7?#3VTZs$UoYXF3K+|)LiY_7LM_35%+F?qSBCkSR&1v z3*;_>)(;6_@&uKM#B;oAR1`Y^LIM+U27ZCsk|PTpU8L%o!oQd?>{e{z10&{@U%%DM zc+k*POFf6abn~SY@V{KsfH(Pa8NFtv(6XX{s` zZF#+=>dHxjb75cacOCY1Sz=8W;)gaK!rE4{qsHk;l3ibaPZfI*wW8z`{Po*LK@6#B&IT<_H=vx`u+BiAbTK!XL zng741wfnPbI|o}kV+SX5V@H^gUPwTEIDnZBUHl8}#sD*YTYf7zrxP#}XQo~gqq&v0 zx2Gq!eh>%{4A3qwW=RIQUfx+DDtBhd61m!xY=*Mkp~9N1Mox?Kp-=q{J6_(0srJOT z+)l>%gD7S3)@637Y+aJCdO&mb09(!7H97DIQ;R;~&%ga|r}K8QZhsc;|L61X5=#Z> zQlTh!z?_ZOp)AePAQZ<%-kE)=Z8xwAW)T!5B9y=*SB&^7b}o$i|&S}d%!TvFvE9Ci4o-8spI_4g5l=$a}*+DA@%QL^{6Nn6GOTYg1~|4 zTEkL6$$kLyfO!wthX^n8Rk-OJVfdw=DFVfl2qKB{rJNE3kL|G-rULs+Skwxa{N`-= z61d;_1Ze(f@dbAN+b`bC=3t|-sl5k{whly z4){Qp%tw$-CS z0bV?wx(sxNJ|(^ZE11l&N-_lA!Mo~ys*Jp;*(I3ZHEeXEjS;mr(0%==Cx}VoHTJ?RAgFk z_vIib#f0&iJJkY}p-dY=5lBQ-KutgzSvF=39l-KwrLz$9qlpLDe&bq5KI& z2#8KRTNkDWwZP=MkDPhK8V-#l4Ajk!gVH~qA-ps1D}zCgEB zufp|BM)%T)Bbt8`moYrD%+!pP5x~jZ^B~-Z}Fxya_ zTdfH)0u-e~#z9A#;d4je@>$dmUdSzFx=KA;YeqMdY zs1wB~VyR3(4b7f$R`E*a8^7{gk0<~dFs)r_- z9ueCkGnv4@U_e&FpkF}PM#hSu&RmrnO^QJKvZwsKi?w9#s z9V7nDMwB_feW*08iJgx;qTMy!3;s9Sqt9i)Loijp zR+bo8@okBX7X169^-*e693tY|!!Sy#9CH?XiVkajOiA>qBL*)SV=c>7C(8?VCr9m* zU|op}HsqP&TVa)GksSxJx2Aa5oK8*!{jwBMczUxvwC?{6MzfT#>FrJMZEw2l&`EQj zr%F_;N80y0UmTRHP%=TB^=SDcJHIe-dX#cLkl1|2I&#yYVD>G5MCs(-#Rp^R=V#d3 z@mp)s{?BL{N!sV-(tt^No~sJE*AGLA#1vm$<+B?0B7--fBd{`R<)bDde$U#QU^94b z1SqNr&_lP&6gE>e1QKw&Ypsik8#-lu7fr7=n*7b_lfnAYx2u`+sN|)mr3Em{TSbj3 z8^l}X#w{$-E{>JTqx`ifi-{J6&2_YRW$V6-nceHAM|tntQGMdsC9Fk?%)m-ukhnS?k~tnF^2AO;{4*VJPMYFTKSrb8;tJbCO~ZQL8{cyA0f zw9jWt?1SmunlIy6)MOg$Yol|Mhrj0mSepGz5aS%mY%x4I`DJPC6lzb3yyfk|7{q#a z>68ONBy^`fB$f+^VVppGQ*T5Y!8gU$?k>5SJ$QF*RuNJd{0z3W<9G;EuVub|mHFWn4~W zwQ)LLvAbSf#^!8y1E~!NLTN+0Yc9Vofejw&;6;;aX?pt4(x^U$jN`8RufhAXpddh_ zHV?+^RNr8I)i+aL_6X1l%3y|CZp(X(hqZ4k9&!85J+Nr6@=VUWi@8&%nVir_+0qe> zc_@<1Mk`^UyrG3qj3rh~dPrxe<{wFfNC~g^ZNiBJpRc5YZ;|KZ$-S~J5r^RL!jb5u zQ7KIws2BGGD?z3ct3Fw+f+szBL8YRF#4@-1elSE*rPAVwk3Z|i9r3_Wr5B-aPBe&7 z%Ac0FXD;Z>#XuuJE8@{IP4n)ui4;-sD3o-Uc@h(4K}leqlLr<%&b%eEA+X$Cg8!B1 zXC6g3tj8>ndM>{rP!y;FClJR3g$PaC*U1d?NydQ+Gg#nOz69-Te<~TBBNrz&TERjLs)6MUdRb6oF!bR)4&ygwc>zkk2lm0Nt>?(d_Br=p{s<3LBWf=t)M4a5Ts|#h)NdBb$KlwzyV0IZ!KS$DBefJae35T@DFlxG4V83mcKi~AuJ zUc*8KyO)V#*>C`KY<5bRXUSA-! zq2>Ub5P?P4syEbi1kyZkt}7*PT4=A~`psfP>lW*h=KT(uXA4LLXhPACG)>rNj3u2z zF(ttef0G?nz^f|3FV2AZg3`}Te;o~-=}?O>{vQcgV>^vE{=Y$mim|Q zC8*^=i?qJZ1-5(w+4lQjX6Yd*Y+){vlFn74Y3N8+_AV5OAdy;04k|8vIYHiTBed~t zJpK&brP)xXe!J190h{%zupRCiHhJ7n3fD2N+Cz4T;yziI$UL?7#~HbMMI9zIjSDe^ zGBrazb!5y&In87vE~U;qQrLmxX0zbXQMK8w=IfTgayL^+n1an4$vI?`QE}QyC&-XS z!48~NQw^9^U%t8`cVoofKGFg!_^j1RZLJnU9I2th8aEAC`>~Zr?|A4gR z(GjboiAOuHulGCb4t=&7nx5Ld^R)M;PWzrUmB1j7ZUx(dKc(kqkM?L(G@_xTF#S(J z9LXvcXVF5FQ(_TXS~W5{CKy_X(m-l+Hp>rqcb$ZQ{GgDRVcYxL%xr-=|PUUkvJE9vf zt!M3=2l?$vozdo6b$03c%r%9uCUm26Q9_;N1+7ii4qA?O*sN$Gt=ExcS(l+)C3Z9m z*+{l1)*F4+Pz})2Q{xVH!%li1!oT|sXVZ}8KGH;t zc7F(-Hg-tYXfE~=Cys2*IvofpW~7>Z@xHN`mNJ!NuPSrN2tfL-P94M1W^L{;Sle3( zzxv0BZNlAlU$LbP1NKX)euP_{-Q=WHDVMV^3cY5fC=gfyb43URsax#fdBdrf8Nt$s zi!{&)JQ0Y?()025R4?+*-+@et&Vka2oYTDm)X3#8iW_6@r_nJnCP&p~!IN0#=q<<6 z8)xg#+Rr!7!r^r%z$_J1EP&7_GfBHLHs zqfS0^OXI=Sr)iSuFZu>j}XsW=9Qc z1zA$bXm6j9&$x=_-_kVY(t{moeZpXuhIwVnzieRal9 z3hQvS^%Ae`ozz1LU?;ZIOk~@*r}YDcoHoB;sxQmy&M!$EMwRD7b}APMDM7hoMWQh- z4DowV*9-LO=q6Mi=>=W5C*bJ&b^B?S`Q#l^cFGpQ=p`-b-~HIi=c`B^p_wwAn7hzY z=u?qMEA670+5h>=WJX%8k)ehcEVDS2>^m{u+4 zwLbDxvIG;k}8Ie4eN@utN)69xaJTVVxD|EJ`LGGc)b`U8N5|0Q9?d> zU1589Rr!$FQo0dJgDDB)>_mp_Yr@al%vr1<$0M+b*bK($DvDflNFj4rW#^V>_tfLA z>#oo3@6UH$0FGO4Xn6nL0Obj-t}4^U7VSwEfBg|VD?4onUO^#*3C|fq$ak6q*fF5t5zKY%Y%!yx?9HMJu`z6 zqt&ZcbErz%^#Tx0+BU*wX5$KBe<9uPp4)pt1z9ZeA4U6Ork=xj)lY$;Yn&@tzf#=n ztq@9i(ZdAdUmB{Z~H3oKbdWT2~v@7xXGEI%7v zEc+BLM}IW!XgpE-Cyrw%xG)Vxm13CJlwE-G4d^Tv{A%}<+VKfzBOk5|5WYzDodZto~ zu4#0R3^Hv%$vPfqV_`Zr2r-GHND3{jf>e=<;l8+J%!^j(SaTZFQ^rheWel^gBQaOj zCIo*{G3bL3rb#?G;W=2Cr>7Q!(&$_w+aaM!+Ew{GQx7~1uf#6Hu~0v5Q9flp8u}w4 zAftzFYRJw+p8WY3DQbsky!7e;Rgxy%63cn9@1a%$5^$NRD7|oO@ner7PP?0eV=E!* z_gz30W7XE zN4t~IQYhE5z&!n_^#DG^bQ=mC{Zd=i3H;8tP*pv+$XLjmjg&alP!d&nw&Tfx{K2tX<-ZdY3yCd$q0xe(k$aLozUOQG-?6)v~GWx{JT>AKN zpEj#^646C^-wom_|C~wQ`UVi4f5*u^?gsOXy57u2zeL)WWNZ-24}`1_x*UM&EN$Ka z@EJum*ZrY0Xy0R*#Yek1p29@E*Hl=?0PL+pS7>hSbwE*<>yX82w-TuQF$$0Z*0T>1 z8v+TtV}!RdU6W}k!#l7e2)!vt^#*iy=5wId2zZrd|T>kTm*m|5ZHyxUZfv~9fhe(>gDa};gFa>h z|HeY@c}$<=-GN~2N^HEX{QkjDX6&0Dt3^_Z_}J(q+jNr!x$B|Z${zE3&({AY61k6i zvClf&Zou>Fs_Wa|SK!YUu77@QYk%MS{>3U)UVWqP|Fl|mq<_RJ#s7!xR?*nO#oW;N z@11s0L3dVNe5#G zpjx6+N*dmf?t)WJ0mTo40s?j>c)SIdXOO_i`Yt|r`~<}28x!!nyj^Aiw&_Ispg1vt z2(-K^JS)dGg)O>GW$%6iA<Zr$uwG~o_DIeM19SCCHqOQ9?rf! zxn0OFusZh~xk;mANrx5S(C-lJ4VFnR+9&jmsb&g6_1-NBvOo~MDM}w z8h0_-Kj8C=)ee#l!8cNR2%eOS6sQ2rE+ku!g#Dx_<<&5)T5%d{uWgdvoNr>cNl{zi z5WPxZNa9hIoH6V_ld`BSWpDclQG+RrIt&1Mm~xk9cauXbWP`HF|H~vWnPVB;)D37; zar{O3(*{0ce9oqi-JWM#P+*}{1rA?T_7gsum8R`6$Kl&;QyaS5sc4WNO?Hn52ae}! zlVvMcPF#{C@nq1NM>_&mF#}2oMn# z>h~RS;%URC9(a(8a+x>2*F}F!iEU}8H>CLu$uc?7 z<3gniH1BiKR?TrHbiIfyhC#cZpAq2|8>SxPK4W;qG4!?BIHOp*^3>`w@zP3zGNTA+ zeYF{~c)^Vd$vbRDD|)ZYWAU&p)Ai-_y2?YUiy0EJUc$P?q+Vg9O=Du@h72K3du2bd zA3mcC=R(t3;rg$WEJ|*r9;bc(Ce39*{c^=j;=)~IX5k7VYav*KfcKJ zFXWM;FcK{tXd4_Er>D3$8J{oTQ)>Wh_VfY0p(C4Z?ow@$Qa$}2w02k4V7M;r7OmL5 z$||U^$tbIF!H41f=dLnrMx=>3(**$OLvB?KRPAOVS~rqydMw*7$Ad%6-~j}=R#bdU zvYRVJHfu)Wwvc5=9uyy&Ux#WDAX=P&BX9O&lPUs+p=}#x`!BWi+N49&!W#qi*vxl< z_e3Pr#q{vPeKPCm!r()`D(R(_lPQEe6X`WgmGCLuRSbl{Qp3$t-K?yZK9v ziLoO}Gbe-7oBtejo!!eXauZ|?c3>AiB2R5bX!hUZymQuus_9kj2_av}0}Zl9v`h!=zsE_^rXli)eaAkuxlPW2MuItBrqU8k(T`H2h_}>U;rxx* zgb-XBS15R}2X~hytyj!xoiA^@3wl&)^=ZASU)$h2-k{q1OT}P;bpN~5$YMCFU@G(y zscr-l(Nuc#+t=-RO^bjlA2tJi1)JL5DNHb#> zFBWW0&;Ztk+`aZWO7;K~f7wrgz;GWf@6*O~Ek2Kd3F?A8PdM>69-%oP4a^QD9}`>^ z9~a#I*I2RNP%yIdj4~lT3{x}nkcUW921#4c$9CONhKOPQ=@Y+)Z@{7!O~h+?cK3SU z&P)&9ZlRpmm~@KV%G3C$fpd5OP69B)4YPN^#1wOJOT+I~!t5|zPp}DNJCJz$wA4-l zasTRCrtr(p<$s1m+duBre=qj^uhhrCY9Pwzf0;U8pcYWZMaZ^fsPYvyPz-9 z;3xtFyQm^1>+mAYoRe26`Lw$YX<;q6Jbpioxf+my-NHv%R>#vDj=da@I8#5LKF3u7 zgf}GfLiML+VZQF7_Z&!*x=FP}J@aa`t1+Zgr(Kf{xeo(SgZi9>OB-7%&mE*kU8>Ur z0`w1(S5UMX1!-D}Q16I0ArGvynIQb|(QV4{SOwRW_pek9Mr@#1QD4h6#=Q*HqJlMf z{Dfad-^UbpfkIkbKI}SB)qJAyl0(PA{%0t(|9P!vui3s8rt9t^|smRX9^%kK^x zD&!Nt%1hf4^h?XJcdH?E)15`r>B{uoklqX12;@zfrM6VP(1Gix=xkKKl~C_R3hxW; zQ3}YT=(w&>BvFRwrsz8H`$1|}At~2%XMI{FT9JvhBgzbp3mTfe+OcL2^2^+`S%dD_ z29GFXSrB7>>}%dROGEvh%5ee?MBGi8OX~?nnquUN8qW-l9HD=J7{=dn5Ds~yLDJ#L z_X!2FKD53W%z;jVK2N3A@|U)jo8fj%wC05B3xw`uw&yq_l#JNtH@ zws+=Bq8hbRT&CU_!j71`EdnnZeaPI>cSEUJfR!y3499b0gh%0$eKS^_5dtqYHRGDS zE+PHJd=E7On|^A{Keam??EyOr#1}Xp%I_i zE1sFp+HVf+s)q$gPiGkXjP~KjD5*%KmSbmQ>wU_2*YyIzfrido;-;gAL;#qx0(9c{ zr#?b<-o+fFeF{jX&f)uDHVRz>xNPJgv_Q_4{Z*9Eg6~|lX1VJ-r1YAclHdpQ!j!*2zU!T*szJRU4IY>_QQb?H*Uw6r6 z_tLS;R{a!g&8m)6o0Uq`pYpZo53GvK=jbWMZpDVvoWj|RuOWX7qc3K|%^B)`np3D( zW}O=(EaNof_H*VpN;Kuo(u{T`o1=39f19hh;tos_2-CraEaVVF9CtQrhl;c@x=d-P z$Y1^|7jsjt5Fv8+dP8OI(4xaq>kmWd?SzEvA=yM_O0&`X7)n@%Z1F7CJi0Xp?$)Ct znwk1^mq^f*rVCQH>?;?yW5wfi$vjp)Bf`YGtW|ps5xrp-APMwVHpH;Tgl&{V;qjS} zA@dkhJ5+g zva%e><%W*yP)yBMkaYSmsWqrIv|7ZX|(h!4Y0)J zE9rOV-Qk1HZ*S?5iHWn&vilH08lV}oB;rDtj?msDHh$rY3JtTP^Q|Ka?T!b8KzHLc z!-bfa$hijkz`JuKD8?0~*ssLUdnpbQq=1-M=<(uKTNy*0Sq0AC7KJEt6|wVya33#d zXR~O>uIJOxUY6T*%OICsv&X@4w{g;rFxJL$2p)>6?*av1{O3oed02oH53BcaBp`@lM2sM&hEiwThja1-Afk~G z!2~pp!4F3!&7gky?d0NqD27ZX;~U`Vn@lDg(hu4jWa3;&Ef-ke zTW3$W0{$6j+yOHH11C&jh&^KfgGTBwVul1lR2A?63V$~VylnWeW8eS{TIZ2xF#gm| z69Z49Zh>{ODwiC~9xtHtDkz@O@eTw`iwy9*i0hs=((tP$K5eGl4vgr*ZvhJ^8_Qn0 zvPh=K=lqyQzAK4_A+pq}qk;}0mbHke=7<3op^;zGuTR`MqmN)8WRaDTL*3ts52?O? zJJkyzoNg-m$CB@Y`A6JF@}GQl%Q@JZI_O*fcOGV!@}HSp9_|a4+KL>k^pK=9Oe0U5 zW_%D6Ww0=po?I;8E;rn*ox7*crR54_7VJCpcaJGz#YrG<53X@$LshTkTr9=3Vtl$DSID_HtCJldM$*zHA_`)RrD=_A_^VSzW7>_(8knFEdC!3~2`m?P@$wbgo*VN}tEensxI zhMX_xc0;3))K9WFJe%N61TxE8H)=V|7YW@}7qKKxZd!Q}*pVCia>UZyZ zMAQ|M@(X@Q`@%W>+4=$s6r@1(NfbCd(mfbgk7Zb_FXh|k1x=w$CBcjq?;&B{Z2ldU z0RBdw##^LgR@lvtAi8dbD@-GzWJ`d%>Y&!gu)xs}!!)*-zp+oe) zRUrS${}tD5{&=9=zk=ALr3?}jY=Tkfh*3{cI`aq$DS(y8sgohSPu7QY5LBmZj5zTD zeIUal#({8qMDa~FbMFEcLe-wGF5I3nSJNAQ`+UDZnXS%`w zoEWAf8`Xvewy{hIPsStP9aC8Is>vY4o0NrbolGytgAQ8PAw2qs61T}Bs81oligWf1 zeUWyP141E|&3LhdDqy$4W-#JB(ghq60RshMs9jeVWB{+eV3kxm5m)tVMuJw(!I$A| z{3M#4O|Yqi8y+W|jPAUR(R8fm#sZ$b-I_vBeX5XE{0pT$OtaNmKRK@f02I@;R-_0e zn{`=aeIf z2ImL|$44ZYd&=^h`JM`^yE7NOCEY7FHD6Ewh7m4BGP_hw{Jyj}-wW%{cN@9m-^{7qB} zDf;J-sc+KlMEz{x3twZ$uT@6V>DMV&ng(7UpHEOdoaY2Iz0x(CVUI5f4Fg`d?7f)F z@*YQQNtgB*<>=&O!NZW_X6`L@M@@pc5fd~q)kBm7F}ejNrIT61`|81tIg2)Inq=g+ zzQl;Q)~d-W?c4fOhZMbyrNZ?kYWat!hoWu73 zH8VOQibCnY-Jo!MXiT&LaYXSbI_RUOUNdcqIuw_TzV$t6Q97gZ>d7q7=fbVwu^^e0 zU47oLLlm;rpo*okFvHh3*zNuQ)7w`@)s-ggh9H3e!47W0;UK}?-QC^Y-4lWZceh|6 zXmEFTcbDK22<{iUdnP2`bkF^!=icJaKCD&sYJFe z(EQG-kp%7Rv$#2KHLVUH**=yM*?8lPnOP1`4<<4fuAwJUVJpi-xuS`67QJZhNo&w|*uuD~B1 zK?qN$I{d*AbpOA+rs@BcBSZu_^A*kpm40xBesBc9$V);Z4_dsjePxJBx&h6@?|b*u zGWYKSGLBj<_QGgWRWL-FUt}yS^rzaLC4Y0@OisAH+?{iJR#u(HkJ}cRKR0+hHHz?t zZ-xAzM%B0R3~T1Vc~Evrd6B8;x_15eEYC7<8Xr@Jw4!%_C_?))+UM?^u61mGr>wDY z3#u3-@Yc8oPcWNL!9L1MuUWEBwSVx0fL7Y`dI%>cG>A4z^sj~=)GJ=>Z9rM`0MV&v z*?Z5yN~Dd1qk9q|+MqB&(aMLzq8KC5bhm~u{a5njbs0>Ve41J?Q?jdhMiv09K>o$HalL-jp$( z?M!2Z=WiyWZV-PDhlV+2lc+O8~w7;AeV9q$W6r7xyz zS7dcdILn^ph-OM9jjpT;gG7$JeAbLt_F9GM>@(Udv(jv5v`fHc!E6#ilXZEeK%S+u zNKNW1VGm#{FF5EhMIJJ0wzv zRB>r$_TB}~AlfB4RqUDd`ZFui!Q0T{MLjHB-T9K+X{w@#@1*c^{?X~v1JYZz;;3R= z+~G`ca{4sUHX_Xd+353uOJ&vAY9zVCZZ;qkp&xgd9(}-1YvoJOgAd65r4RgXvul5{ zm;c=Z8k7Ux0+g`t8yA|1lc1oytg|a9ZG8xfeKNWE%&J7*HE$RrKF=Cuo=NfX8W?0{ zgOaYOpp2#_>S^I3JlNdQx*djrh9uZdJb0G;MR6ljEy-tHl2UjwsKI_^j9j!*~#!ixGFU= zzQTA=f>09!d{V^E%tc{4CFQB;fetWOOp%gc(BPF~M+A)bB&X)$Ly09>VKj^(++MxT zc2@Nbx!E;Mbc@JVyIjMzK0yJPthFM^=%xTt0=>ZzI>|4oI5dGWz+z^ne%9O^!Bg>3 zVFL#syfO;>^n59aC-n%y>#J7#7u^#mT=QvLTL*XoV_p}Fu?M;oD5SWPQrU&cQ4>)l zCwK%T)?I|HHYT?XN9`@Kx)jKyrqlHX3R5Cr4F~pHC&qT<0>%M2 zXdQpAk!?lqSB&u}KiWc12ymXAPT2>FIQ$P~eujOS=}-fyHfvwz`%#ROd#bt7!Q!C| z;LZe!m9)FC1dNS4JiXTW85K;R$`_y4C*;dR5T>tC6~tyb!d9(m*pBC}yqfR9kc>yq z^w4*1E_OTdD#yF7jTs+nsI};=sZ#!mMK@!vwxMcxck4r>CF<6RlmX?Z;Z?_2V}~yS9JnSJ!EH9+w(jSf#A0R+#;}36n~MXWvGX%<%aV5wsto; zOI92mPGV6a>mbV~irA+)LLX^Yup-&#n1R+_0_hh&f4t?3A&wPS$kDfGRBi}S=)?KC zs_2vs{4hMJ70MWzC*=b{-9h6nq5^c{ESX1U-XEA6Q#vYyhm*T zmBAfrs7%{}z+@)(lU_9WP|;kD)ILgyjqu<-xffzCQjrojbr_8#`^v=1_j|;_4{g#jZ2JKt%=0;YZcvrL#j)J6rj_I!NA=a8ht5rO=olg5A z)ey+uHfZpve8dvhx3RC)_CWG&Mt|B`I^8h^I8^b&gC5SNFEsD9kUtw&3ECh}>5ts` z8CA9d3JYd{S}pt86A$!pV3pO#NCdWP3Sdod!bRpXszc58&RuCuzS^2OJBi=lp9xj1 z-3hb>m1c(N8N(O9{5n5#FHKwI9@Lz`3rxGVq8hObDh}cJwAbTMCRZy`tITaSaCnk0 zX)737#dr{VL%~g^i1%JMRP31#{JJ`yif7}8W80xsm1@$o7&=iqnR^op4nb!GV%(4MueiSIA923zHLJAZeI{J z*HoinOEB!FBRtc4iwMXP+0AE4Xc2+K&hLt9Qx#t@Fp_Uu+VUbQbeNpF* z;G7@eWOQlnan?!Nxfbg=uoGE;qtm%!v;^B^eXCEiA=|sw;TQ>;L zCpDZxPUetR)2ce6<)rm9x^Z3*=4kJycTbRs=~DHT`YaxoDFrOBJs}I#Cq7hP$(^LGW?!--M<7!qaCq9Id_$%P1&i=_Y+3wj#1MR&cnY(sw7z3FqiMqfTs~ zB-p0s%o40Es_)@R)pvb~T)zXgt>Yc>T5()atJAEgYzQ|Z$_h+<|C1lzm7MZmvr}%Q zbiGS6`DZQ0PvPt#ZWs{A=8gHB{sN_kfmADOn=(LuomW~)CU+krE8i`J(fLThA4T;C z(T$&s(6pVP@iNOh;b~8g z1$WZz`3_x;E4b}sCl1w=o0Pb zjMz9%p(q(=pGDU-!dR;oYIbSB=d70h+W+-z97$#&X(#Rx3EaNxn{0v#hts&DP3<+d z^l84p?JpNeUFDOzD$x2x5DcB}6mPq@K51`5mYU-jt!$?4Tx(r0rR8t;mRaAYoTn-^ zY&x7D{q}h-qM>+z`9N3cg!xy|RsR1xy82V8(}3ddQKP6V2|Kbl*@JU6;iy<&*&;Fv zzL$uy)xtb6+^a1PvBljbF*@(8#axQZK>pz-j6j@kHf7Xn2KtiW(B^3^)4s zEF0ag522drEpsAX_s?jmvAbpaxT6a%Rbb88fiBtkn0{eibu3qgM#a6-?5mnRZ}?;` z{8nRzHUywE1#Px~7`k5B?!AsW`f3!7c%1$?aR_%#6=5;5jnzBTw)WgqfsKXWKaj>TC{*wn-JkmUqQ*~1F% zTRuz2U;}A|%)b%_ua)=J{Y*Z`(mF1ycqQr)$@a~EoCLqHMh6RY#G}~PFTBFT1l(4n z2lo9n`F4fM>59gIx5Gpgf&4@wl^LlbQVH)?9<1D_E=+?~Ms5Ny>HPfgW z1k}WGD9^_pvM-Qd?wxuZq88BD1vzym2L|iW$yGVC=2)?KaT~5)ND9yC+(Ie6FvrR` zsy;AfF=Mff_{@G@L`ZA}X8aPe^BNOBl$O5)5H!v}l}u}iU{ z2I80Os)NZp6+*}AI!m^5cB{R{i-2``_NMT)7?d$2T$$7k)Tgh?8V0+WAIhduThzfQ z`5DltVwQ9~)nMM{8`k?KCZINfK7MX>k`8_~dnlVS`^&N^zW?00f3BGNJ?7>&sW=M` zL=k}J&sFU;069{nGW7+cmXeMiw7b^p0oTX&_IPX&|ab|ty}*rd=8 zH>SS!lc=s-V9K~WK*#Tna&eh>=}2M(KGdoxua-nJ+Bw7=9p6*HHCIHpw~9N)fEr_7 zazcF~oG641sd+-)3fRV~1_NCPmYg^`leYsTt!_OA z(>T^yO{ zD>Iq~W-Zn0TA1zxVX0Iu|5~h9W4+F0{Sw^L;<)r9v^qXhsDP}j0u^@Ds$({v{rpSa zS(I;qfptX34syfWufod`-{@%r^k6{S3j=Rgz(YQM@W2Z6w`vsGtL`-_Zd>H=566^!$`iBdGkQYw@3z5IWGorY(>l&2sJZ z3v`vn2vwB;Zvue=Jj^pFS3}KM#-^vrMazxMiX^yqJ=|Vwt&PKY4p|^mJ-uXUA4gPZ zW3h#*S(3(r52^Xb$oaKCN#mz?VT5l@@=+?AWQ`;-UUlgV*Sw0{Fv0!Akbu6xXJlv& z7tnu!Q%k26aRW$hlpKOgfe_uw&OzuFndinWl*g-{Y0pC_+Zfd6Bq#|3@xw*CdtaBY zm$h}L#!?z~1b;_u4-soXDBS|7-%M}+Zc=}A6to{+>HQhp(FY1XXRO!kEpn=D&VDKs z;ebpzisBZlN8j@P2syv|5X#8=%Zie}>s$ZGwkXWWK2#%e@Zm@3dwt-M0mx(!uau%4 zVNjWZLBqrYNf$|yXkg48Ws@YTFF+bE=oAA`IF&iCWnwwRhCgt}_~hy5dm{gxNm*C&=os+c_; zoWlo6d-CO&mFe=6QDCh#yPeEL-l|K4Qg>YXf?CwX1vAaM>c?JcGzZHr@}j)HjLww9 z6;rBP3QZapfke(!igET_EV{Y!9;SN8Y`IKlKua>fF(UmUthJsuCv)zd&$0NvN;18>xwN}FxiOYLXf)vQ5? z<{DtNm^)t2vfj8ls)AyvQApP>19nd+BX2-ULuR1F+TKpdl>%F$Aw5r-_yzNQqX{m3 zX09xR9}Ta7sJx2h+=Dk_>8cs~4j8dM8|0_JP24KDs4Wz8(!J0A=rDU8j--R64#X6h74(Zt+#07lT^V1>kEW1 zQ3v0W1AGuX#RARXa1Fd9AE0&}6TF9nDcvPBNj&3G)yrMcu+J8BM34wM$RIfdF9~Zr zHE^wrVvrWX<$%=+U3pnFD%#;?23zow#_T|T2Pwm?dhigNFU`iy#s|RhmORQ04R#rh zFYa4S2&rRuJ6oEGHEv-`R`zxL>mt&9++{o$h{J9n=U|d@h$BE$JRX_2V*h!|n@8U& znB`h}^sS`-r@r+^t|(hx!Lup=XDA`-u+&-P4s4m-pgeG% z|H3wuH`l5FF$!}z-RBfTpxUY=sS+S4ASil)uP>ZWiH>X-&@?LWTnxrA$j#Rftz2JX zjjG+64Nrs0inX3B1x-rPDH_H-XS_tk>a76jw*P3{4vlwdUGFBvUQ`lHE+XE^J3O=2 zW)}+$>Je{o2oadXtqyp;(aH3gz>|(y$xLAD=EGN%pO@&etyPr2?6>49LDWhC~5{1D}rp}hvF0MjgLf;x(3HG5eIt|5O6{8dFYM0mHbr*81n++&9 z=o*aO{hLn#N!0?(VExqkQi`Ft14N*VeA~ep_Ogc5UKs&o;!%PT(o$xW2Xz^hgJkh1 zRa#q?GvDf!O6G=)Gx zi>=+N3vjEJLJ|k!NbHHii0)v@_SW9Z?N%thOu)F zUtXZuZM?FXOP;L_LDzNYmc)w~LhLk8-p9UTGFxIlSOrl*57a$ky7-NT2LGAnMaaYI zum4LP3ZB2WYx_MoKA;@r2ADv;hjlS8g&_ok0t5K#8uWNmM!X}&L&S#)0;$x1fi3i# zSxC~?b~H>#kbso8n7ArZv@qMvRLG|+3^OIK(^fUxpQ}7uxMR9?9ZVT8WU6acYRwsl zOL03NY-l>J-gG*sxo&y8=z_{ka);fF2+je;hK$2y;L{-@#T;u%Y~E*QPG_DqYUnKG zY2Az)%zEaNne%E|ghuzn_Om=>dYrMGlj2-8q!sTYJ^U4L>3nU}Hbbl{sjcneRK`}s zsSif%ZI!JixTJfMnB`QRL*Ub31tdB4C@fPl5S{V0x? zJFsT+IFoCw^41F56fB~0inXbhL=IhDcA2#bI;B|aJw&aW#7x;IQEipG0;laZ9=z3h z{t(CoWCG0mp;+`j353xGNVPg0K6D1SQF3N(uziPD0DC{bHwUjBdEV0VN+!@owrYj>W$S$=E&yy5 z{h<*LMaJ6f^XQ_+bL)>=VgXLOdYwMmZs`8v9^Xar&NYk50$W_KT%FVANP$FCCnj&$ zzoPZ%cytar^OR?JGr2%t5(Cnk1_*fEU#5VVXQxn9@pZsX3!c@s9wPt>j`w4_@1{K$ zGM+hQE$>6?5N5vLY6ZT^Op+fbKzr8Z24WC?@}*4@oB?px=?uS6oe(oGKsX2;MMfZ~ zsEWkVII1ySsQauc94`xtFZ?V1gmYF`m8EnC{23zniM}k4*+>=$TTCTo3mrLZq@YP! zzr!{!z_Kp+Bi?Mxs6H`=P|O&v-e>C!B+a)f2L-RNkC2*k6u_iW`C+QSt%Y0i0$CI~ zAYUP>L6H-Si|)R^!4f`HJ0KG>)@enkB{_@R;0K3Or_t0TEsK32eF^Jeh1 zVfTK223z+fvT{3};@anzDMr-(%Fn}yRN8tdnt7;+#sW4ld-P-<5wNyu3jk77U=f|rUHv-=|14e0kA$a>KBL48Lz-*FUI$bmR*Yj-vrRi++W_(9BP$n5E> zBJ2Vr*I+5%FF)gyr$iddz^n0p2H23S2FQD{7Mx5exPwZKaUvWCY5|9PKPZ*P$Aqn@ z0aIJb+Hqt#cRtvxFyo`sNsjc)VgVyPgCY=P`&L@>QV@OJ$-SV`{8ZQ6dVx+$2W^0&gqY0)KsP4`4sRudr3s>bcY4O9tj}7D_kqqi zChXl5z!~=zp*g`-f;ffZ4gc4Wd_&PVx9ZU}T6tGoGey5uNW8EE5A5=1-{veT6gJ6kj#1`-y+r!rP;f; z8#33E(8w3X+qaa&pfds@8CAi;Wah$U=9ka1$}cz!;Wk^XmqQ;m$%1d-#+yWVZoVDD z=5brJF>@k#KD&N>IiIr~I*f>}o4lSthcQ#IUBqaa^oe8N(X2k6%MD5-h`+Al^`Ko5 zdste&GhEY0wxU!?=%B&=P*G&j8RjF|M@L$g{D7=87yXsNl-slthsD*N`q zo->kL%@#-70CHuauyA$CbTw6V<603vY2GwidlU8cjHD(L+iBxeoF!R*E@67dyl>i* z_fkO4_Oxx)<(WpqXgJ>Wt21i^$LQzpJXj2~a``2N6}pra0wd!kR>&b>LqkGP;Vvj) zik4^a@$RHZ<8)iI-*VR2RzWf7%6vkjc9=q@VuWYN+miEErC4zT5cY>Hkn`kA_ds?R01DHN6|bIeYM^Yy8yYup&zsv&Y`8X-|Wv&`6Z zd_UuLI=;kBFu)1J=@s&BPs3j-5*~a?52*oK#AiTuYb?taxq@xhaD-J=PD3e<&kaQf zafTtWEwrq<I)8bC&I?IW{$Wo`C${tI9ue^vsVh<=c?u-N7q%JD!u#{y%$&cPNP^DJP}p7$0{9DS>Te02SA)b8QPW$s6r6P5yg$0rh+1;V z>brUH$aB0}D+4R@*}x*3zGH#9=Cn|G_x4gxO)byv!rjS2O^kAGVnjBoLs>`xC)k^W>zA>6vQ)wV;|y^cg`YgYYs&t!nuSbERy>0PFr~Ho$&|B7P}>Da{R~ zrbzV6JZpW>aTV;;6w(a|tF*kbTO!4UiPFpM($S?+Lk_ik7p%vzn<{LtH(Wzbe=0?P zN(0wRV~km)*i3Nt6sOQIYl|g$Rtf|I)8b0^)p@c&^csG6N5gz-+pP+FZ^L9IMPp*e zlztkgiaTA<=IreOwEx`Dioi^xO7WFzAnGzsq}>~u9nNy;iaLaI0&#(TN%jvs?EE^H z)-uvU(33*h1JR{DiAskJksm`v^W(kby-^CT8q0x+IUd$1MuKW{wihe)oE5gGYXTA2 z6y4Ap>jPp?C|UKPY(VKv)9+o=ygTed<1Tm4$6dTD16Dlc5iC83s!<^iI>eeAR3fIW z5K7*b!XFsCcUymMts-I$&XU~M#t{h@PQ_)Af@_gDuws<8Q77^3cuncVcyrL|;)u=D zojZ);F1|x+L*TmPtzYC>KH(WdZ|WDhN_X$oJDAD{x(%nM{Ew2Tcfi86#ih?xK8yDn z_;&G>(#I?bJ#!~M0o-$9Gd136A6e-O5R#7FMy2VKk@$jYPd}yB z22sm!jj0>{CUyHUTmtwC#$+#=4fY&z85L;X$XdJ(`YJQu+wV3rU1YiVe9UHXE--j| zvL&E(=)67hHZMpKkrC`W;kz`!7hp8tChTID$>$YDyfytkXV&46VDL#{R^=v_pJlxS zm+|9pXH|0SCMxHE?b8Kcp2k@bijm=>ubSv1}Nm~{bUfcpAk=iozLbZswPHzhUKEY0HLs5 zU;twPMye-@BO})j7Jp$FNUk926G2u<)}NM;R8`IzkJN|uwoPs>?>~Z7`A~^JN~zQ6 z6vecy1e{-A2QP}N$zO(1$O+Mm!frDW@3MYbHrj*5cg{y55zu@$Gf=K7O0$h=sI3DA zj=X7|%2V?xi8C#q{e8^_SXG-k%(1hatEX8~dit5h$ArnOWdUTXHS9#o1)FNHv*EYT z&jge8X#2!~_7rkaxz7z)-ov;>&9y5iwt%YWFy+b=NR!f-bV=K&;B(;b7l?4j1M_Sx z_<^6k6^aHHwnC8-jh$8RHDZIO??mdcHAd~RRrOZL+KI!=jrtTqWmMOjLKh7f1#Bi6 z43zp-_A_8u%|iNB_4c)?E`211(Xq9t|I+cUkG!#~&w~t{^YnBKjmrFdtt_)w|JUI%0_FdP9=A>JpQ zv@^OpK%_qGUnHaoB-MSL&sT>A=&iMBJpA1kS{hkX)3Ebamg6pJy-x5oUhF!X&?iH} zwZlzWXZe*t5EI_=W6NbmKuA(DTD#I9jBlx<(;6EU$0!N^%wD(;@6aQ|8en4$F-Xoj!S(L;o@p;DKcb%%b-E zW5KyKC8-%?)2gfVq@{ZhrZRyjS7Wn8y-;DoJOA?|5ade=iH8{h9|)&JR`uL@H*@rj zz#^^zJ{j-G(4ahD0J4z9Ndd65Z_{@<$$W7R*Oh#_kBvY8mbbqp91^31VtXD6eTN2`o&%o!7~J@Da^B0Q{BmBkBJSssEqK4;)UvjR5#7 zBP2g8JRE@{{f{&Fhml{2pnf&_lrR60@c)OX{@)w@ng0JN#3S+kQ%c=O;{6}O@IbKf z&&T!qo%^%%euQ|S;eTrT*QfIHa&o}>oek@+G#*yy6UqHU5{0M5T{pyg$V8-+zAr$5C0^}jjE|4DoLtMQ)*`+it{IN~MvH^%=L>}CHTaQGGdCmyw*&T_0$^Lujzwao2#ePbjA@b9eyHNiH|xZ?a$f_|Jg< Date: Thu, 4 Jul 2019 12:07:41 +0200 Subject: [PATCH 8/8] Updated version and added CHANGELOG --- ur_calibration/CHANGELOG.rst | 7 +++++++ ur_calibration/package.xml | 2 +- ur_controllers/CHANGELOG.rst | 7 +++++++ ur_controllers/package.xml | 2 +- ur_rtde_driver/CHANGELOG.rst | 15 +++++++++++++++ ur_rtde_driver/package.xml | 2 +- 6 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 ur_calibration/CHANGELOG.rst create mode 100644 ur_controllers/CHANGELOG.rst create mode 100644 ur_rtde_driver/CHANGELOG.rst diff --git a/ur_calibration/CHANGELOG.rst b/ur_calibration/CHANGELOG.rst new file mode 100644 index 0000000..2042ce0 --- /dev/null +++ b/ur_calibration/CHANGELOG.rst @@ -0,0 +1,7 @@ +0.0.2 (2019-07-03) +------------------ +* Catch exception and log error when no connection can be established + +0.0.1 (2019-06-28) +------------------ +Initial release diff --git a/ur_calibration/package.xml b/ur_calibration/package.xml index 05a74ee..a10529f 100644 --- a/ur_calibration/package.xml +++ b/ur_calibration/package.xml @@ -1,7 +1,7 @@ ur_calibration - 0.0.1 + 0.0.2 Package for extracting the factory calibration from a UR robot and change it such that it can be used by ur_description to gain a correct URDF diff --git a/ur_controllers/CHANGELOG.rst b/ur_controllers/CHANGELOG.rst new file mode 100644 index 0000000..9696074 --- /dev/null +++ b/ur_controllers/CHANGELOG.rst @@ -0,0 +1,7 @@ +0.0.2 (2019-07-03) +------------------ +Releasing alongside other packages. No updates. + +0.0.1 (2019-06-28) +------------------ +Initial release diff --git a/ur_controllers/package.xml b/ur_controllers/package.xml index 35e505e..5f13530 100644 --- a/ur_controllers/package.xml +++ b/ur_controllers/package.xml @@ -1,7 +1,7 @@ ur_controllers - 0.0.1 + 0.0.2 Provides controllers that use the speed scaling interface of Universal Robots. diff --git a/ur_rtde_driver/CHANGELOG.rst b/ur_rtde_driver/CHANGELOG.rst new file mode 100644 index 0000000..e3781a9 --- /dev/null +++ b/ur_rtde_driver/CHANGELOG.rst @@ -0,0 +1,15 @@ +0.0.2 (2019-07-03) +------------------ +* Fixed dependencies and installation +* Updated README +* Fixed passing parameters through launch files +* Added support for correctly switching controllers during runtime and using the standard + joint_trajectory_controller +* Updated externalcontrol URCap to version 1.0.2 + + Fixed Script timeout when running the URCap inside of a looping tree + + Fixed a couple of typos +* Increased minimal required UR software version to 3.7/5.1 + +0.0.1 (2019-06-28) +------------------ +Initial release diff --git a/ur_rtde_driver/package.xml b/ur_rtde_driver/package.xml index f9ae0b2..bd5f7ce 100644 --- a/ur_rtde_driver/package.xml +++ b/ur_rtde_driver/package.xml @@ -2,7 +2,7 @@ ur_rtde_driver - 0.0.1 + 0.0.2 The new driver for Universal Robots UR3, UR5 and UR10 robots with CB3 controllers and the e-series. Thomas Timm Andersen Simon Rasmussen