From 9600299d1815cb14a3f49c72c4266adc1f471bcb Mon Sep 17 00:00:00 2001 From: Erik Andresen Date: Thu, 31 Mar 2016 20:40:03 +0200 Subject: [PATCH 1/1] motor_ctrl: pid tuning --- avr/motor_ctrl/main.c | 30 +- avr/motor_ctrl/main.hex | 820 ++++++++++++++++----------------- data/motor_ctrl_pid_values.ods | Bin 0 -> 21591 bytes scripts/get_velocity.py | 16 + 4 files changed, 438 insertions(+), 428 deletions(-) create mode 100644 data/motor_ctrl_pid_values.ods create mode 100755 scripts/get_velocity.py diff --git a/avr/motor_ctrl/main.c b/avr/motor_ctrl/main.c index 28d254e..048fab0 100644 --- a/avr/motor_ctrl/main.c +++ b/avr/motor_ctrl/main.c @@ -101,9 +101,9 @@ #define TWI_RESET TWCR &= ~((1 << TWSTO) | (1 << TWEN)); TWI_ACK #define TWI_NAK TWCR = (1<>3 | (PINB & 0x07)) & 0xf; // if error and running: stop - if (bit_is_set(error_state, 0) && m1_old != 0) motor1 = 0; - if (bit_is_set(error_state, 1) && m2_old != 0) motor2 = 0; - if (bit_is_set(error_state, 2) && m3_old != 0) motor3 = 0; - if (bit_is_set(error_state, 3) && m4_old != 0) motor4 = 0; + if (motor1_mode == MOTOR_PID && bit_is_set(error_state, 0) && m1_old != 0) motor1 = 0; + if (motor2_mode == MOTOR_PID && bit_is_set(error_state, 1) && m2_old != 0) motor2 = 0; + if (motor3_mode == MOTOR_PID && bit_is_set(error_state, 2) && m3_old != 0) motor3 = 0; + if (motor4_mode == MOTOR_PID && bit_is_set(error_state, 3) && m4_old != 0) motor4 = 0; // if we start motor in error state: start with full power - if (bit_is_set(error_state, 0) && m1_old == 0 && motor1 != 0) motor1 = 255; - if (bit_is_set(error_state, 1) && m2_old == 0 && motor2 != 0) motor2 = 255; - if (bit_is_set(error_state, 2) && m3_old == 0 && motor3 != 0) motor3 = 255; - if (bit_is_set(error_state, 3) && m4_old == 0 && motor4 != 0) motor4 = 255; + if (motor1_mode == MOTOR_PID && bit_is_set(error_state, 0) && m1_old == 0 && motor1 != 0) motor1 = 255; + if (motor2_mode == MOTOR_PID && bit_is_set(error_state, 1) && m2_old == 0 && motor2 != 0) motor2 = 255; + if (motor3_mode == MOTOR_PID && bit_is_set(error_state, 2) && m3_old == 0 && motor3 != 0) motor3 = 255; + if (motor4_mode == MOTOR_PID && bit_is_set(error_state, 3) && m4_old == 0 && motor4 != 0) motor4 = 255; if (m1_old != motor1) { // update only when changed if (motor1 == 0) { @@ -844,7 +844,7 @@ static void update_pid(void) { } else { int16_t e = speed1_wish - speed1; esum1+=e; - motor1 += KP*e + KI*PID_T*esum1 + KD/PID_T*(e - eold1); + motor1 = KP*e + KI*PID_T*esum1 + KD/PID_T*(e - eold1); eold1 = e; if (motor1 > 255) motor1 = 255; @@ -859,7 +859,7 @@ static void update_pid(void) { } else { int16_t e = speed2_wish - speed2; esum2+=e; - motor2 += KP*e + KI*PID_T*esum2 + KD/PID_T*(e - eold2); + motor2 = KP*e + KI*PID_T*esum2 + KD/PID_T*(e - eold2); eold2 = e; if (motor2 > 255) motor2 = 255; @@ -874,7 +874,7 @@ static void update_pid(void) { } else { int16_t e = speed3_wish - speed3; esum3+=e; - motor3 += KP*e + KI*PID_T*esum3 + KD/PID_T*(e - eold3); + motor3 = KP*e + KI*PID_T*esum3 + KD/PID_T*(e - eold3); eold3 = e; if (motor3 > 255) motor3 = 255; @@ -889,7 +889,7 @@ static void update_pid(void) { } else { int16_t e = speed4_wish - speed4; esum4+=e; - motor4 += KP*e + KI*PID_T*esum4 + KD/PID_T*(e - eold4); + motor4 = KP*e + KI*PID_T*esum4 + KD/PID_T*(e - eold4); eold4 = e; if (motor4 > 255) motor4 = 255; diff --git a/avr/motor_ctrl/main.hex b/avr/motor_ctrl/main.hex index 804c0a9..72a9ae8 100644 --- a/avr/motor_ctrl/main.hex +++ b/avr/motor_ctrl/main.hex @@ -7,10 +7,10 @@ :100060000C50B9918688083CA6AAAA2ABE000000B6 :10007000803F45464765666700202B2D2E30313284 :100080003334353637383968000011241FBECFE5C8 -:10009000D8E0DEBFCDBF10E0A0E6B0E0E4EBF8E2D0 +:10009000D8E0DEBFCDBF10E0A0E6B0E0E4E5F8E2D6 :1000A00002C005900D92A837B107D9F721E0A8E763 :1000B000B0E001C01D92A836B207E1F70E94290600 -:1000C0000C9458140C9400001F920F920FB60F92CC +:1000C0000C9428140C9400001F920F920FB60F92FC :1000D00011242F933F934F935F936F937F938F934D :1000E0009F93AF93BF93EF93FF9381B1887F803845 :1000F00081F040F4803609F0B5C385EC86BF1092DC @@ -54,7 +54,7 @@ :10035000A2009091A300A091A400B091A500BA2F93 :10036000A92F982F8827BC01CD01622B6093A20092 :100370007093A3008093A4009093A50023E33BE532 -:1003800042E855E40E94B6100E948A0F7093CF0095 +:1003800042E855E40E9486100E945A0F7093CF00F5 :100390006093CE007093CD006093CC0081E0809399 :1003A000D7008093D6004EC283B190E0A0E0B0E0C9 :1003B0000EC023B18091A2009091A300A091A4004F @@ -172,7 +172,7 @@ :100AB0000F900FBE0F901F9018959C018AB188610E :100AC0008AB9579A80B5866080BDC901A0E0B0E0C0 :100AD0009C01AD0184E0220F331F441F551F8A95EE -:100AE000D1F760E079E08DE390E00E947411DA01C3 +:100AE000D1F760E079E08DE390E00E944411DA01F3 :100AF000C9010197A109B109892F9A2FAB2FBB27F3 :100B0000A7FDBA9580BD215029B987EF90E0909359 :100B1000F4008093F3009093F6008093F50008951D @@ -182,7 +182,7 @@ :100B5000EC01CE012196FC012081222319F00E9494 :100B60009005F7CFDF91CF9108955F9BFECF8CB1B9 :100B700090E008950C94B5056AEB75E086E995E080 -:100B80000C94F711CF93DF93FC01E253FF4FA08148 +:100B80000C94C711CF93DF93FC01E253FF4FA08178 :100B9000B181EC01C453DF4F28813981A217B3071B :100BA000A1F05D9B12C02C912CB920813181AC0148 :100BB00045535F4F2417350718F42F5F3F4F03C08D @@ -201,40 +201,40 @@ :100C800095E20E945D050E94BC0580E582B986B7A9 :100C90008B7E86BF85EC86BF81EF8FBD89E08EBDE0 :100CA0001BBC1ABC19BC18BC89E785BD13BC83BF2B -:100CB0001CBE8EE690E00E947A1285B78F7885BFC1 +:100CB0001CBE8EE690E00E944A1285B78F7885BFF1 :100CC00084E089BF789422242A94312C8091E90011 :100CD0008F3F41F48091E800853A21F4F894E0E0F8 :100CE000F8E109958091F200882309F4E7C0F894AF :100CF0008090EA009090EB00A090EC00B090ED00A6 :100D00006091EE007091EF008091F0009091F10001 :100D10001092F20078942BED3FE049E450E40E94F9 -:100D2000B61027EB3BE04DEB5EE30E94B61020E0EF -:100D300030E040E05FE30E94B610A50194010E94FC -:100D4000A20E6B017C01A5019401C501B4010E94B2 -:100D5000A20EA70196010E94A10E23E33BE542E803 -:100D600055E40E94B6104B015C0123E33BE542E8E9 -:100D700055E4C701B6010E94B6106B017C01809159 +:100D2000861027EB3BE04DEB5EE30E94861020E04F +:100D300030E040E05FE30E948610A50194010E942C +:100D4000720E6B017C01A5019401C501B4010E94E2 +:100D5000720EA70196010E94710E23E33BE542E863 +:100D600055E40E9486104B015C0123E33BE542E819 +:100D700055E4C701B6010E9486106B017C01809189 :100D8000A8008823B9F18091A80064E670E0681B90 -:100D90007109072E000C880B990B0E94C20F9B0152 -:100DA000AC01C501B4010E94B61020E030E048EC6F -:100DB00052E40E94180F0E948A0F7093CF00609334 +:100D90007109072E000C880B990B0E94920F9B0182 +:100DA000AC01C501B4010E94861020E030E048EC9F +:100DB00052E40E94E80E0E945A0F7093CF00609395 :100DC000CE008091A80064E670E0681B7109072ED0 -:100DD000000C880B990B0E94C20F9B01AC01C7014C -:100DE000B6010E94B61020E030E048EC52E40E94C8 -:100DF000180F0AC0C501B4010E948A0F7093CF007A -:100E00006093CE00C701B6010E948A0F7093C9009B +:100DD000000C880B990B0E94920F9B01AC01C7017C +:100DE000B6010E94861020E030E048EC52E40E94F8 +:100DF000E80E0AC0C501B4010E945A0F7093CF00DB +:100E00006093CE00C701B6010E945A0F7093C900CB :100E10006093C8008091A9008823B9F18091A9004E :100E200064E670E0681B7109072E000C880B990BB3 -:100E30000E94C20F9B01AC01C501B4010E94B61013 -:100E400020E030E048EC52E40E94180F0E948A0F24 +:100E30000E94920F9B01AC01C501B4010E94861073 +:100E400020E030E048EC52E40E94E80E0E945A0F85 :100E50007093CD006093CC008091A90064E670E0AF -:100E6000681B7109072E000C880B990B0E94C20F9A -:100E70009B01AC01C701B6010E94B61020E030E032 -:100E800048EC52E40E94180F0AC0C501B4010E9448 -:100E90008A0F7093CD006093CC00C701B6010E9409 -:100EA0008A0F7093CB006093CA00F1E0F093D700F3 +:100E6000681B7109072E000C880B990B0E94920FCA +:100E70009B01AC01C701B6010E94861020E030E062 +:100E800048EC52E40E94E80E0AC0C501B4010E9479 +:100E90005A0F7093CD006093CC00C701B6010E9439 +:100EA0005A0F7093CB006093CA00F1E0F093D70023 :100EB000F093D600F093D500F093D4008091C70052 -:100EC0008C3908F410C61092C700F8942091DE0007 +:100EC0008C3908F4E0C51092C700F8942091DE0038 :100ED0003091DF003A8329834091DC005091DD009E :100EE0005C834B838091DA009091DB009E838D833D :100EF000E091D800F091D900F887EF837894809141 @@ -242,43 +242,43 @@ :100F1000909195008A01081B190B80919200909185 :100F20009300ED80FE80E81AF90A8091900090917C :100F300091006F01C81AD90AB5010B2C000C880B5F -:100F4000990B0E94C20F2AE037ED43E25CE30E9456 -:100F5000180F0E948A0F69877A878B879C87B80150 -:100F6000012E000C880B990B0E94C20F2AE037ED6E -:100F700043E25CE30E94180F0E948A0F6D877E8710 +:100F4000990B0E94920F2AE037ED43E25CE30E9486 +:100F5000E80E0E945A0F69877A878B879C87B801B1 +:100F6000012E000C880B990B0E94920F2AE037ED9E +:100F700043E25CE30E94E80E0E945A0F6D877E8771 :100F80008F87988BB7010F2C000C880B990B0E9450 -:100F9000C20F2AE037ED43E25CE30E94180F0E9483 -:100FA0008A0F698B7A8B8B8B9C8BB6010D2C000C76 -:100FB000880B990B0E94C20F2AE037ED43E25CE3F5 -:100FC0000E94180F0E948A0F6D8B7E8B8F8B988FDB +:100F9000920F2AE037ED43E25CE30E94E80E0E94E4 +:100FA0005A0F698B7A8B8B8B9C8BB6010D2C000CA6 +:100FB000880B990B0E94920F2AE037ED43E25CE325 +:100FC0000E94E80E0E945A0F6D8B7E8B8F8B988F3C :100FD000B501600F711F072E000C880B990B0E9442 -:100FE000C20F23E33BE542E056E40E94180F4B0199 +:100FE000920F23E33BE542E056E40E94E80E4B01FA :100FF0005C01B7016C0D7D1D072E000C880B990B51 -:101000000E94C20F23E33BE542E056E40E94180F22 +:101000000E94920F23E33BE542E056E40E94E80E83 :101010002B013C01C090B300D090B400E090B5002B -:10102000F090B600A50194010E94A10E27EB3BE0D1 -:101030004DEB5EE30E94180F9B01AC01C701B601A6 -:101040000E94A20E6B017C012BED3FE049EC50E4C5 -:101050000E94B11018164CF42BED3FE049EC50E41F -:10106000C701B6010E94A10E12C02BED3FE049EC72 -:1010700050ECC701B6010E940E0F87FF0AC02BED8E -:101080003FE049EC50E4C701B6010E94A20E6B019B -:101090007C01A3019201C501B4010E94A20E20E0CF -:1010A00030E040E05FE30E94B6104B015C014090ED +:10102000F090B600A50194010E94710E27EB3BE001 +:101030004DEB5EE30E94E80E9B01AC01C701B601D7 +:101040000E94720E6B017C012BED3FE049EC50E4F5 +:101050000E94811018164CF42BED3FE049EC50E44F +:10106000C701B6010E94710E12C02BED3FE049ECA2 +:1010700050ECC701B6010E94DE0E87FF0AC02BEDBF +:101080003FE049EC50E4C701B6010E94720E6B01CB +:101090007C01A3019201C501B4010E94720E20E0FF +:1010A00030E040E05FE30E9486104B015C0140901D :1010B000BB005090BC006090BD007090BE00C701A6 -:1010C000B6010E94130FA50194010E94B6109B0166 -:1010D000AC01C301B2010E94A20E698F7A8F8B8F7F +:1010C000B6010E94E30EA50194010E9486109B01C7 +:1010D000AC01C301B2010E94720E698F7A8F8B8FAF :1010E0009C8F4090B7005090B8006090B90070900D -:1010F000BA00C701B6010E942311A50194010E9404 -:10110000B6109B01AC01C301B2010E94A20E2B01DB +:1010F000BA00C701B6010E94F310A50194010E9435 +:1011000086109B01AC01C301B2010E94720E2B013B :101110003C010D851E8529853A85020F131F17FF97 :1011200002C00F5F1F4F159507954D895E8989890C :101130009A89480F591F57FF02C04F5F5F4FFA014E :10114000F595E795FE8FED8FBF01600F711F072E9C -:10115000000C880B990B0E94C20F23E33BE542E091 -:1011600056E40E94180F4B015C016D8D7E8D601B53 -:10117000710B072E000C880B990B0E94C20F29E9F6 -:1011800035E347E955E40E94180FF894C092B30084 +:10115000000C880B990B0E94920F23E33BE542E0C1 +:1011600056E40E94E80E4B015C016D8D7E8D601B84 +:10117000710B072E000C880B990B0E94920F29E926 +:1011800035E347E955E40E94E80EF894C092B300B5 :10119000D092B400E092B500F092B600298D3A8D5D :1011A0004B8D5C8D2093BB003093BC004093BD0001 :1011B0005093BE004092B7005092B8006092B900C0 @@ -290,366 +290,360 @@ :101210009093AE00789489819A81909397008093FF :101220009600EB81FC81F0939500E09394002D8172 :101230003E8130939300209392004F8158855093C4 -:101240009100409390008091D700813009F0A8C0B0 +:101240009100409390008091D700813009F094C0C4 :101250008091CE009091CF00892B89F41092E70005 :101260001092E60010928F0010928E0010928A0069 -:1012700010928B0010928C0010928D0091C02091E2 +:1012700010928B0010928C0010928D007DC02091F6 :10128000CE003091CF008091C5009091C6008901B9 -:10129000081B190B2801012E000C66087708C09066 -:1012A0008A00D0908B00E0908C00F0908D00C40CF0 -:1012B000D51CE61CF71CC0928A00D0928B00E092ED -:1012C0008C00F0928D006091E6007091E700072E8F -:1012D000000C880B990B0E94C20F4B015C01C301EB -:1012E000B2010E94C20F2CEB34E743E15CE30E94A1 -:1012F000B6102B013C01C701B6010E94C20F2BE6BC -:1013000031ED46E05AE30E94B6109B01AC01C301E7 -:10131000B2010E94A20E6B017C0180918E0090911F -:101320008F00B801681B790B072E000C880B990BF6 -:101330000E94C20F2CE234ED4AE15DE30E94B61038 -:101340009B01AC01C701B6010E94A20E9B01AC013A -:10135000C501B4010E94A20E0E948A0F7093E7009B -:101360006093E60010938F0000938E008091E6005A -:101370009091E7008F3F910531F02CF03092E7001B -:101380002092E6000DC08091E6009091E700813048 -:101390009F4F34F481E09FEF9093E7008093E60045 -:1013A0008091D600813009F0A8C08091CC00909146 -:1013B000CD00892B89F41092E5001092E400109280 -:1013C000890010928800109284001092850010927B -:1013D00086001092870091C02091CC003091CD0002 -:1013E0008091C3009091C4008901081B190B28014A -:1013F000012E000C66087708C0908400D09085000C -:10140000E0908600F0908700C40CD51CE61CF71C09 -:10141000C0928400D0928500E0928600F09287000E -:101420006091E4007091E500072E000C880B990B89 -:101430000E94C20F4B015C01C301B2010E94C20FA6 -:101440002CEB34E743E15CE30E94B6102B013C0136 -:10145000C701B6010E94C20F2BE631ED46E05AE308 -:101460000E94B6109B01AC01C301B2010E94A20E02 -:101470006B017C018091880090918900B801681B04 -:10148000790B072E000C880B990B0E94C20F2CE2DF -:1014900034ED4AE15DE30E94B6109B01AC01C70147 -:1014A000B6010E94A20E9B01AC01C501B4010E94CD -:1014B000A20E0E948A0F7093E5006093E4001093DF -:1014C0008900009388008091E4009091E5008F3FAF -:1014D000910531F02CF03092E5002092E4000DC02F -:1014E0008091E4009091E50081309F4F34F421E039 -:1014F0003FEF3093E5002093E4008091D5008130E8 -:1015000009F0A8C08091CA009091CB00892B89F482 -:101510001092E3001092E200109283001092820079 -:1015200010927E0010927F00109280001092810035 -:1015300091C02091CA003091CB008091C100909160 -:10154000C2008901081B190B2801012E000C660836 -:101550007708C0907E00D0907F00E0908000F090EF -:101560008100C40CD51CE61CF71CC0927E00D092F2 -:101570007F00E0928000F09281006091E200709123 -:10158000E300072E000C880B990B0E94C20F4B0141 -:101590005C01C301B2010E94C20F2CEB34E743E1AE -:1015A0005CE30E94B6102B013C01C701B6010E940A -:1015B000C20F2BE631ED46E05AE30E94B6109B01C4 -:1015C000AC01C301B2010E94A20E6B017C018091AB -:1015D000820090918300B801681B790B072E000CE4 -:1015E000880B990B0E94C20F2CE234ED4AE15DE3B7 -:1015F0000E94B6109B01AC01C701B6010E94A20E69 -:101600009B01AC01C501B4010E94A20E0E948A0F89 -:101610007093E3006093E2001093830000938200D4 -:101620008091E2009091E3008F3F910531F02CF022 -:101630003092E3002092E2000DC08091E200909190 -:10164000E30081309F4F34F441E05FEF5093E300BB -:101650004093E2008091D400813009F0A8C08091CD -:10166000C8009091C900892B89F41092E100109272 -:10167000E00010927D0010927C0010927800109291 -:10168000790010927A0010927B0091C02091C800DE -:101690003091C9008091BF009091C0008901081B62 -:1016A000190B2801012E000C66087708C0907800FD -:1016B000D0907900E0907A00F0907B00C40CD51CAB -:1016C000E61CF71CC0927800D0927900E0927A0074 -:1016D000F0927B006091E0007091E100072E000C19 -:1016E000880B990B0E94C20F4B015C01C301B20130 -:1016F0000E94C20F2CEB34E743E15CE30E94B6107A -:101700002B013C01C701B6010E94C20F2BE631ED4F -:1017100046E05AE30E94B6109B01AC01C301B2013E -:101720000E94A20E6B017C0180917C0090917D0053 -:10173000B801681B790B072E000C880B990B0E94CF -:10174000C20F2CE234ED4AE15DE30E94B6109B012A -:10175000AC01C701B6010E94A20E9B01AC01C501FC -:10176000B4010E94A20E0E948A0F7093E100609360 -:10177000E00010937D0000937C008091E000909148 -:10178000E1008F3F910531F02CF03092E100209282 -:10179000E0000DC08091E0009091E10081309F4F0A -:1017A00034F481E09FEF9093E1008093E00090B3E8 -:1017B00026B39074892F90E033E0959587953A95FC -:1017C000E1F7922F9770892B80958F708093A700F7 -:1017D0002091A700809166009091670020FF06C0CD -:1017E000009721F01092E7001092E6002091A700E8 -:1017F00021FF0AC02091640030916500232B21F065 -:101800001092E5001092E4002091A70022FF0AC088 -:101810002091620030916300232B21F01092E300AD -:101820001092E2002091A70023FF0AC020916000DF -:1018300030916100232B21F01092E1001092E00022 -:101840002091A70020FF0CC0009751F42091E600E2 -:101850003091E700232B21F03092E7002092E60040 -:101860002091A70021FF10C02091640030916500F5 -:10187000232B51F42091E4003091E500232B21F03B -:101880003092E5002092E4002091A70022FF10C0D2 -:101890002091620030916300232B51F42091E200EB -:1018A0003091E300232B21F03092E3002092E200FC -:1018B0002091A70023FF10C02091600030916100AB -:1018C000232B51F42091E0003091E100232B21F0F3 -:1018D0003092E1002092E0002091E6003091E70094 -:1018E00082179307B9F18091E6009091E700892B68 -:1018F00019F485B38C6017C08091D300811107C0A3 -:101900008091E6009091E7001816190654F0809136 -:10191000D300882351F08091E6009091E70097FF73 -:1019200004C085B3837F85BB02C0AA98AB9A80911F -:10193000E6009091E70090936700809366008091A5 -:10194000E6009091E70097FF03C09195819591097A -:101950009BBD8ABD8091E4009091E50020916400D8 -:101960003091650028173907B9F18091E400909112 -:10197000E500892B19F485B3806317C08091D200EC -:10198000811107C08091E4009091E50018161906B6 -:1019900054F08091D200882351F08091E40090911E -:1019A000E50097FF04C085B38F7C85BB02C0AC986F -:1019B000AD9A8091E4009091E5009093650080934A -:1019C00064008091E4009091E50097FF03C0919539 -:1019D0008195910999BD88BD8091E2009091E300C5 -:1019E000209162003091630028173907B1F180918E -:1019F000E2009091E300892B19F485B3806C17C045 -:101A00008091D100811107C08091E2009091E300A4 -:101A10001816190654F08091D100882351F0809156 -:101A2000E2009091E30097FF04C085B38F7385BBFC -:101A300002C0AE98AF9A8091E2009091E30090933B -:101A40006300809362008091E2009091E30097FF31 -:101A500003C091958195910983BD8091E00090919B -:101A6000E100209160003091610028173907B1F141 -:101A70008091E0009091E100892B19F482B38C6091 -:101A800017C08091D000811107C08091E000909133 -:101A9000E1001816190654F08091D000882351F007 -:101AA0008091E0009091E10097FF04C082B3837FB2 -:101AB00082BB02C09298939A8091E0009091E100DD -:101AC00090936100809360008091E0009091E1002C -:101AD00097FF03C09195819591098CBF8091AA00D1 -:101AE0008F5F8093AA0085B7806885BF889585B78A -:101AF0008F7785BFEBC8ACE0B0E0E1E8FDE00C9487 -:101B000097116C015B017A01FC01178216828381B7 -:101B100081FF0EC1CE0101964C01F6010381F50152 -:101B200003FD159103FF11915F01112309F4FCC01E -:101B3000153249F403FD159103FF11915F01153230 -:101B400011F020E01BC0B601812F90E00E944212EC -:101B500037017301E2CF112309F4E6C0612F70E071 -:101B600089E790E02C870E94EC112C85892B49F0A5 -:101B7000F50103FD159103FF11915F0127FFEBCFE5 -:101B800009C0133229F01C3609F0D5C02068F0CF07 -:101B900020E1EECF022F112309F4C6C0612F70E0BF -:101BA00082E790E02C870E94EC112C85892B41F074 -:101BB0003701F4E06F0E711CB6018FE390E011C0A5 -:101BC000133639F0133781F0133519F5022F016000 -:101BD0000BC0370182E0680E711CB601F7018081ED -:101BE00091810E944212B5CF3701F2E06F0E711C55 -:101BF000F701E080F180F70100FD859100FF819100 -:101C00007F01882309F4A5CFB60190E00E9442121B -:101C1000F2CF143611F0193629F5370127FF09C024 -:101C2000F4E06F0E711CF7016081718182819381F4 -:101C30000AC0F2E06F0E711CF70160817181072EFE -:101C4000000C880B990B022F0F7E97FF08C0909510 -:101C50008095709561957F4F8F4F9F4F00642AE06C -:101C600030E033C0103799F040F41835B1F01F362A -:101C700009F05AC028E030E014C0153719F01837C1 -:101C800041F052C0022F0F7E2AE030E00AC0022F3E -:101C90000061046220E130E004C0022F046020E112 -:101CA00032E0370107FF09C0F4E06F0E711CF70145 -:101CB000608171818281938108C0F2E06F0E711C96 -:101CC000F7016081718180E090E0A4010E94AA1276 -:101CD000182F181906FF05C0B6018DE290E00E948A -:101CE000421204FF15C0FE01E10FF11D8081803317 -:101CF00079F0B60180E390E00E94421202FF08C032 -:101D00000072802F90E0B601885A9F4F0E944212C5 -:101D10001150F401E10FF11D8081B60190E00E94A5 -:101D200042121111F5CF15CFF6018681978105C0BA -:101D30008FEF9FEF02C0022F31CF2C96EEE00C9474 -:101D4000B3115058BB27AA270E94B90E0C946310F8 -:101D50000E942A1038F00E94311020F039F49F3F81 -:101D600019F426F40C9427100EF4E095E7FB0C947C -:101D70002110E92F0E94881058F3BA1762077307E1 -:101D80008407950720F079F4A6F50C94AA100EF4B8 -:101D9000E0950B2EBA2FA02D0B01B90190010C017B -:101DA000CA01A0011124FF27591B99F0593F50F493 -:101DB000503E68F11A16F040A22F232F342F4427EB -:101DC000585FF3CF469537952795A795F0405395E3 -:101DD000C9F77EF41F16BA0B620B730B840BBAF0B3 -:101DE0009150A1F0FF0FBB1F661F771F881FC2F71E -:101DF0000EC0BA0F621F731F841F48F48795779532 -:101E00006795B795F7959E3F08F0B0CF9395880FEB -:101E100008F09927EE0F9795879508950E94FD0F7A -:101E200008F481E008950E943A10E3950C94741030 -:101E30000E942C0F0C9463100E94311058F00E94E5 -:101E40002A1040F029F45F3F29F00C942110511121 -:101E50000C94AB100C9427100E94881068F39923FF -:101E6000B1F3552391F3951B550BBB27AA27621796 -:101E70007307840738F09F5F5F4F220F331F441FA3 -:101E8000AA1FA9F335D00E2E3AF0E0E832D09150D7 -:101E90005040E695001CCAF72BD0FE2F29D0660FC4 -:101EA000771F881FBB1F261737074807AB07B0E807 -:101EB00009F0BB0B802DBF01FF2793585F4F3AF00D -:101EC0009E3F510578F00C9421100C94AB105F3FAD -:101ED000E4F3983ED4F3869577956795B795F79593 -:101EE0009F5FC9F7880F911D9695879597F908957B -:101EF000E1E0660F771F881FBB1F62177307840717 -:101F0000BA0720F0621B730B840BBA0BEE1F88F725 -:101F1000E09508950E94910F6894B1110C94AB1054 -:101F200008950E94901088F09F5798F0B92F992734 -:101F3000B751B0F0E1F0660F771F881F991F1AF0B4 -:101F4000BA95C9F714C0B13091F00E94AA10B1E05F -:101F500008950C94AA10672F782F8827B85F39F05E -:101F6000B93FCCF3869577956795B395D9F73EF44D -:101F700090958095709561957F4F8F4F9F4F0895F5 -:101F8000E89409C097FB3EF4909580957095619513 -:101F90007F4F8F4F9F4F9923A9F0F92F96E9BB27C9 -:101FA0009395F695879577956795B795F111F8CF45 -:101FB000FAF4BB0F11F460FF1BC06F5F7F4F8F4FB0 -:101FC0009F4F16C0882311F096E911C0772321F0A6 -:101FD0009EE8872F762F05C0662371F096E8862F3E -:101FE00070E060E02AF09A95660F771F881FDAF795 -:101FF000880F9695879597F90895990F0008550FC2 -:10200000AA0BE0E8FEEF16161706E807F907C0F07E -:1020100012161306E407F50798F0621B730B840B86 -:10202000950B39F40A2661F0232B242B252B21F460 -:1020300008950A2609F4A140A6958FEF811D811D00 -:10204000089597F99F6780E870E060E008959FEF3A -:1020500080EC089500240A9416161706180609063F -:10206000089500240A94121613061406050608950E -:102070000C9427100E949010D8F3E894E0E0BB275E -:102080009F57F0F02AED3FE049EC06C0EE0FBB0F82 -:10209000661F771F881F28F0B23A6207730784070C -:1020A00028F0B25A620B730B840BE3959A9572F782 -:1020B000803830F49A95BB0F661F771F881FD2F7C0 -:1020C00090480C942D11092E0394000C11F48823D0 -:1020D00052F0BB0F40F4BF2B11F460FF04C06F5FE0 -:1020E0007F4F8F4F9F4F0895EF93E0FF07C0A2EA05 -:1020F0002AED3FE049EC5FEB0E94B90E0E946310AD -:102100000F90039401FC9058E4E5F0E00C94391131 -:1021100057FD9058440F551F59F05F3F71F0479598 -:10212000880F97FB991F61F09F3F79F0879508957D -:10213000121613061406551FF2CF4695F1DF08C09C -:10214000161617061806991FF1CF869571056105B9 -:1021500008940895E894BB2766277727CB0197F961 -:1021600008950E94FD0F08F48FEF08950E94C91092 -:102170000C9463100E942A1038F00E94311020F055 -:10218000952311F00C9421100C94271011240C9419 -:10219000AB100E94881070F3959FC1F3950F50E02B -:1021A000551F629FF001729FBB27F00DB11D639F09 -:1021B000AA27F00DB11DAA1F649F6627B00DA11DAF -:1021C000661F829F2227B00DA11D621F739FB00D55 -:1021D000A11D621F839FA00D611D221F749F3327C5 -:1021E000A00D611D231F849F600D211D822F762F5E -:1021F0006A2F11249F5750409AF0F1F088234AF03B -:10220000EE0FFF1FBB1F661F771F881F91505040A6 -:10221000A9F79E3F510580F00C9421100C94AB104F -:102220005F3FE4F3983ED4F3869577956795B7952D -:10223000F795E7959F5FC1F7FE2B880F911D969547 -:10224000879597F908959F930E943A100F9007FC85 -:10225000EE5F0C9474109F3F31F0915020F48795FD -:1022600077956795B795880F911D9695879597F9FE -:1022700008959F938F937F936F93FF93EF939B01A9 -:10228000AC010E94B610EF91FF910E944D112F9169 -:102290003F914F915F910C94B610DF93CF931F93B2 -:1022A0000F93FF92EF92DF927B018C01689406C03E -:1022B000DA2EEF010E94C910FE01E894A591259144 -:1022C000359145915591A6F3EF010E94B90EFE019B -:1022D0009701A801DA9469F7DF90EF90FF900F91D2 -:1022E0001F91CF91DF910895052E97FB1EF4009466 -:1022F0000E948B1157FD07D00E94CA1107FC03D022 -:102300004EF40C948B1150954095309521953F4F8C -:102310004F4F5F4F089590958095709561957F4FD1 -:102320008F4F9F4F08952F923F924F925F926F92DF -:102330007F928F929F92AF92BF92CF92DF92EF9255 -:10234000FF920F931F93CF93DF93CDB7DEB7CA1BD6 -:10235000DB0B0FB6F894DEBF0FBECDBF09942A8801 -:10236000398848885F846E847D848C849B84AA84A9 -:10237000B984C884DF80EE80FD800C811B81AA8136 -:10238000B981CE0FD11D0FB6F894DEBF0FBECDBF01 -:10239000ED010895A1E21A2EAA1BBB1BFD010DC081 -:1023A000AA1FBB1FEE1FFF1FA217B307E407F50705 -:1023B00020F0A21BB30BE40BF50B661F771F881FE1 -:1023C000991F1A9469F760957095809590959B0177 -:1023D000AC01BD01CF010895FC010590061621F066 -:1023E0000020D9F7C00108953197CF0108950F93C8 -:1023F0001F93CF93DF93009731F46115710519F4A2 -:1024000080E090E03AC08B01EC016EE070E081E08A -:1024100090E00E940813FC01892B91F380E88383EC -:102420000115110571F01387028781E8838380917C -:102430005E0190915F01892B21F4F0935F01E0939D -:102440005E012097C9F0D187C08783818260838332 -:102450008091600190916101892B71F4F093610189 -:10246000E09360018091620190916301892B21F4D6 -:10247000F0936301E0936201CF01DF91CF911F914F -:102480000F9108950F931F93CF93DF93FB01238147 -:1024900021FD03C08FEF9FEF28C022FF16C04681A9 -:1024A0005781248135814217530744F4A081B181BB -:1024B0009D012F5F3F4F318320838C93268137818D -:1024C0002F5F3F4F3783268310C0EB01092F182F52 -:1024D0000084F185E02D0995892BE1F68E819F819D -:1024E00001969F838E83812F902FDF91CF911F9133 -:1024F0000F9108950F931F93CF93DF93E0916001A5 -:10250000F0916101238121FF1BC08C01D0E0C0E06C -:10251000F80181918F016091600170916101DB018F -:102520001896ED91FC911997882331F00995892B24 -:1025300079F3DFEFCFEFECCF8AE00995892B19F023 -:102540008FEF9FEF02C08D2F9C2FDF91CF911F91B6 -:102550000F910895FA01AA27283051F1203181F115 -:10256000E8946F936E7F6E5F7F4F8F4F9F4FAF4F9B -:10257000B1E03ED0B4E03CD0670F781F891F9A1FAE -:10258000A11D680F791F8A1F911DA11D6A0F711D62 -:10259000811D911DA11D20D009F468943F912AE06E -:1025A000269F11243019305D3193DEF6CF01089556 -:1025B000462F4770405D4193B3E00FD0C9F7F6CF87 -:1025C000462F4F70405D4A3318F0495D31FD40524F -:1025D000419302D0A9F7EACFB4E0A69597958795E5 -:1025E00077956795BA95C9F70097610571050895C4 -:1025F0009B01AC010A2E0694579547953795279570 -:10260000BA95C9F7620F731F841F951FA01D089507 -:102610000F931F93CF93DF93869F8001879F100DA9 -:10262000969F100D1124C8010E942413EC010097FD -:1026300029F0A80160E070E00E945114CE01DF9102 -:10264000CF911F910F910895CF93DF938230910521 -:1026500010F482E090E0E0916601F091670120E0E3 -:1026600030E0C0E0D0E0309711F14081518148174F -:102670005907C0F04817590761F482819381209768 -:1026800019F09B838A832BC0909367018093660126 -:1026900026C02115310519F04217530718F49A0185 -:1026A000BE01DF01EF010280F381E02DDCCF2115B7 -:1026B000310509F1281B390B2430310590F41296AD -:1026C0008D919C9113976115710521F0FB01938306 -:1026D000828304C09093670180936601FD01329666 -:1026E00044C0FD01E20FF31F819391932250310901 -:1026F0002D933C933AC02091640130916501232BC6 -:1027000041F420916A0030916B0030936501209371 -:10271000640120916800309169002115310541F470 -:102720002DB73EB740916C0050916D00241B350BC6 -:10273000E0916401F0916501E217F307A0F42E1B0C -:102740003F0B2817390778F0AC014E5F5F4F241715 -:10275000350748F04E0F5F1F5093650140936401A9 -:102760008193919302C0E0E0F0E0CF01DF91CF913F -:1027700008950F931F93CF93DF93009709F48CC0B4 -:10278000FC01329713821282009166011091670159 -:102790000115110581F420813181820F931F209151 -:1027A0006401309165012817390779F5F0936501C7 -:1027B000E093640171C0D80140E050E0AE17BF075C -:1027C00050F412962D913C911397AD0121153105CE -:1027D00009F1D901F3CF9D01DA01338322836081AE -:1027E0007181860F971F8217930769F4EC01288186 -:1027F0003981260F371F2E5F3F4F318320838A8117 -:102800009B8193838283452B29F4F0936701E093A6 -:10281000660142C01396FC93EE931297ED01499125 -:1028200059919E01240F351FE217F30771F480813F -:102830009181840F951F029611969C938E938281AD -:10284000938113969C938E931297E0E0F0E0D80169 -:1028500012968D919C911397009719F0F8018C01B5 -:10286000F6CF8D919C9198012E5F3F4F820F931F61 -:1028700020916401309165012817390769F4309778 -:1028800029F4109267011092660102C0138212822D -:102890001093650100936401DF91CF911F910F9117 -:1028A0000895DC0101C06D9341505040E0F7089558 -:0428B000F894FFCFCA -:1028B40000800080008000800000680120000D0A74 -:0828C40053746172740D0000F1 +:10129000081B190BB801012E000C880B990BC0908C +:1012A0008A00D0908B00E0908C00F0908D00C60EEC +:1012B000D71EE81EF91EC0928A00D0928B00E092E1 +:1012C0008C00F0928D000E94920F2CEE31E548E3E5 +:1012D0005DE30E9486104B015C01C701B6010E94CC +:1012E000920F2EE830E44CEB5CE30E9486109B01E9 +:1012F000AC01C501B4010E94720E6B017C018091AA +:101300008E0090918F00B801681B790B072E000C9E +:10131000880B990B0E94920F2AE037ED43E25DE3C0 +:101320000E9486109B01AC01C701B6010E94720E9B +:101330000E945A0F7093E7006093E60010938F00AD +:1013400000938E008091E6009091E7008F3F910519 +:1013500031F02CF03092E7002092E6000DC0809131 +:10136000E6009091E70081309F4F34F481E09FEFD9 +:101370009093E7008093E6008091D600813009F0D9 +:1013800094C08091CC009091CD00892B89F410926B +:10139000E5001092E40010928900109288001092EB +:1013A00084001092850010928600109287007DC004 +:1013B0002091CC003091CD008091C3009091C40069 +:1013C0008901081B190BB801012E000C880B990B21 +:1013D000C0908400D0908500E0908600F090870057 +:1013E000C60ED71EE81EF91EC0928400D09285005A +:1013F000E0928600F09287000E94920F2CEE31E579 +:1014000048E35DE30E9486104B015C01C701B60111 +:101410000E94920F2EE830E44CEB5CE30E948610B1 +:101420009B01AC01C501B4010E94720E6B017C01ED +:101430008091880090918900B801681B790B072E74 +:10144000000C880B990B0E94920F2AE037ED43E2C3 +:101450005DE30E9486109B01AC01C701B6010E94AA +:10146000720E0E945A0F7093E5006093E40010938F +:101470008900009388008091E4009091E5008F3FFF +:10148000910531F02CF03092E5002092E4000DC07F +:101490008091E4009091E50081309F4F34F421E089 +:1014A0003FEF3093E5002093E4008091D500813038 +:1014B00009F094C08091CA009091CB00892B89F4E7 +:1014C0001092E3001092E2001092830010928200CA +:1014D00010927E0010927F00109280001092810086 +:1014E0007DC02091CA003091CB008091C1009091C5 +:1014F000C2008901081B190BB801012E000C880BD2 +:10150000990BC0907E00D0907F00E0908000F0901A +:101510008100C60ED71EE81EF91EC0927E00D09232 +:101520007F00E0928000F09281000E94920F2CEEEA +:1015300031E548E35DE30E9486104B015C01C70181 +:10154000B6010E94920F2EE830E44CEB5CE30E945F +:1015500086109B01AC01C501B4010E94720E6B01A3 +:101560007C018091820090918300B801681B790B07 +:10157000072E000C880B990B0E94920F2AE037ED82 +:1015800043E25DE30E9486109B01AC01C701B601F6 +:101590000E94720E0E945A0F7093E3006093E20063 +:1015A00010938300009382008091E2009091E30009 +:1015B0008F3F910531F02CF03092E3002092E20051 +:1015C0000DC08091E2009091E30081309F4F34F490 +:1015D00041E05FEF5093E3004093E2008091D4003C +:1015E000813009F094C08091C8009091C900892B86 +:1015F00089F41092E1001092E00010927D001092A8 +:101600007C00109278001092790010927A0010926B +:101610007B007DC02091C8003091C9008091BF003F +:101620009091C0008901081B190BB801012E000C14 +:10163000880B990BC0907800D0907900E0907A00E8 +:10164000F0907B00C60ED71EE81EF91EC0927800EF +:10165000D0927900E0927A00F0927B000E94920F83 +:101660002CEE31E548E35DE30E9486104B015C01FE +:10167000C701B6010E94920F2EE830E44CEB5CE308 +:101680000E9486109B01AC01C501B4010E94720E3C +:101690006B017C0180917C0090917D00B801681BFA +:1016A000790B072E000C880B990B0E94920F2AE0F1 +:1016B00037ED43E25DE30E9486109B01AC01C70158 +:1016C000B6010E94720E0E945A0F7093E10060935F +:1016D000E00010937D0000937C008091E0009091E9 +:1016E000E1008F3F910531F02CF03092E100209223 +:1016F000E0000DC08091E0009091E10081309F4FAB +:1017000034F481E09FEF9093E1008093E00090B388 +:1017100026B39074892F90E033E0959587953A959C +:10172000E1F7922F9770892B80958F708093A70097 +:101730002091D7008091660090916700213051F48C +:101740002091A70020FF06C0009721F01092E7002B +:101750001092E6002091D600213071F42091A7006C +:1017600021FF0AC02091640030916500232B21F0F5 +:101770001092E5001092E4002091D500213071F420 +:101780002091A70022FF0AC02091620030916300DF +:10179000232B21F01092E3001092E2002091D4005C +:1017A000213071F42091A70023FF0AC0209160002E +:1017B00030916100232B21F01092E1001092E000A3 +:1017C0002091D700213081F42091A70020FF0CC088 +:1017D000009751F42091E6003091E700232B21F08F +:1017E0003092E7002092E6002091D6002130A1F44B +:1017F0002091A70021FF10C0209164003091650066 +:10180000232B51F42091E4003091E500232B21F0AB +:101810003092E5002092E4002091D5002130A1F41F +:101820002091A70022FF10C0209162003091630038 +:10183000232B51F42091E2003091E300232B21F07F +:101840003092E3002092E2002091D4002130A1F4F4 +:101850002091A70023FF10C020916000309161000B +:10186000232B51F42091E0003091E100232B21F053 +:101870003092E1002092E0002091E6003091E700F4 +:1018800082179307B9F18091E6009091E700892BC8 +:1018900019F485B38C6017C08091D300811107C003 +:1018A0008091E6009091E7001816190654F0809197 +:1018B000D300882351F08091E6009091E70097FFD4 +:1018C00004C085B3837F85BB02C0AA98AB9A809180 +:1018D000E6009091E7009093670080936600809106 +:1018E000E6009091E70097FF03C0919581959109DB +:1018F0009BBD8ABD8091E4009091E5002091640039 +:101900003091650028173907B9F18091E400909172 +:10191000E500892B19F485B3806317C08091D2004C +:10192000811107C08091E4009091E5001816190616 +:1019300054F08091D200882351F08091E40090917E +:10194000E50097FF04C085B38F7C85BB02C0AC98CF +:10195000AD9A8091E4009091E500909365008093AA +:1019600064008091E4009091E50097FF03C0919599 +:101970008195910999BD88BD8091E2009091E30025 +:10198000209162003091630028173907B1F18091EE +:10199000E2009091E300892B19F485B3806C17C0A5 +:1019A0008091D100811107C08091E2009091E30005 +:1019B0001816190654F08091D100882351F08091B7 +:1019C000E2009091E30097FF04C085B38F7385BB5D +:1019D00002C0AE98AF9A8091E2009091E30090939C +:1019E0006300809362008091E2009091E30097FF92 +:1019F00003C091958195910983BD8091E0009091FC +:101A0000E100209160003091610028173907B1F1A1 +:101A10008091E0009091E100892B19F482B38C60F1 +:101A200017C08091D000811107C08091E000909193 +:101A3000E1001816190654F08091D000882351F067 +:101A40008091E0009091E10097FF04C082B3837F12 +:101A500082BB02C09298939A8091E0009091E1003D +:101A600090936100809360008091E0009091E1008C +:101A700097FF03C09195819591098CBF8091AA0031 +:101A80008F5F8093AA0085B7806885BF889585B7EA +:101A90008F7785BF1BC9ACE0B0E0E1E5FDE00C94B9 +:101AA00067116C015B017A01FC0117821682838148 +:101AB00081FF0EC1CE0101964C01F6010381F501B3 +:101AC00003FD159103FF11915F01112309F4FCC07F +:101AD000153249F403FD159103FF11915F01153291 +:101AE00011F020E01BC0B601812F90E00E9412127D +:101AF00037017301E2CF112309F4E6C0612F70E0D2 +:101B000089E790E02C870E94BC112C85892B49F035 +:101B1000F50103FD159103FF11915F0127FFEBCF45 +:101B200009C0133229F01C3609F0D5C02068F0CF67 +:101B300020E1EECF022F112309F4C6C0612F70E01F +:101B400082E790E02C870E94BC112C85892B41F004 +:101B50003701F4E06F0E711CB6018FE390E011C005 +:101B6000133639F0133781F0133519F5022F016060 +:101B70000BC0370182E0680E711CB601F70180814D +:101B800091810E941212B5CF3701F2E06F0E711CE5 +:101B9000F701E080F180F70100FD859100FF819160 +:101BA0007F01882309F4A5CFB60190E00E941212AC +:101BB000F2CF143611F0193629F5370127FF09C085 +:101BC000F4E06F0E711CF701608171818281938155 +:101BD0000AC0F2E06F0E711CF70160817181072E5F +:101BE000000C880B990B022F0F7E97FF08C0909571 +:101BF0008095709561957F4F8F4F9F4F00642AE0CD +:101C000030E033C0103799F040F41835B1F01F368A +:101C100009F05AC028E030E014C0153719F0183721 +:101C200041F052C0022F0F7E2AE030E00AC0022F9E +:101C30000061046220E130E004C0022F046020E172 +:101C400032E0370107FF09C0F4E06F0E711CF701A5 +:101C5000608171818281938108C0F2E06F0E711CF6 +:101C6000F7016081718180E090E0A4010E947A1206 +:101C7000182F181906FF05C0B6018DE290E00E94EA +:101C8000121204FF15C0FE01E10FF11D80818033A7 +:101C900079F0B60180E390E00E94121202FF08C0C2 +:101CA0000072802F90E0B601885A9F4F0E94121256 +:101CB0001150F401E10FF11D8081B60190E00E9406 +:101CC00012121111F5CF15CFF6018681978105C04B +:101CD0008FEF9FEF02C0022F31CF2C96EEE00C94D5 +:101CE00083115058BB27AA270E94890E0C943310E9 +:101CF0000E94FA0F38F00E94011020F039F49F3F43 +:101D000019F426F40C94F70F0EF4E095E7FB0C940D +:101D1000F10FE92F0E94581058F3BA1762077307A2 +:101D20008407950720F079F4A6F50C947A100EF448 +:101D3000E0950B2EBA2FA02D0B01B90190010C01DB +:101D4000CA01A0011124FF27591B99F0593F50F4F3 +:101D5000503E68F11A16F040A22F232F342F44274B +:101D6000585FF3CF469537952795A795F040539543 +:101D7000C9F77EF41F16BA0B620B730B840BBAF013 +:101D80009150A1F0FF0FBB1F661F771F881FC2F77E +:101D90000EC0BA0F621F731F841F48F48795779592 +:101DA0006795B795F7959E3F08F0B0CF9395880F4C +:101DB00008F09927EE0F9795879508950E94CD0F0B +:101DC00008F481E008950E940A10E3950C944410F1 +:101DD0000E94FC0E0C9433100E94011058F00E94D7 +:101DE000FA0F40F029F45F3F29F00C94F10F5111E4 +:101DF0000C947B100C94F70F0E94581068F39923F1 +:101E0000B1F3552391F3951B550BBB27AA276217F6 +:101E10007307840738F09F5F5F4F220F331F441F03 +:101E2000AA1FA9F335D00E2E3AF0E0E832D0915037 +:101E30005040E695001CCAF72BD0FE2F29D0660F24 +:101E4000771F881FBB1F261737074807AB07B0E867 +:101E500009F0BB0B802DBF01FF2793585F4F3AF06D +:101E60009E3F510578F00C94F10F0C947B105F3F6E +:101E7000E4F3983ED4F3869577956795B795F795F3 +:101E80009F5FC9F7880F911D9695879597F90895DB +:101E9000E1E0660F771F881FBB1F62177307840777 +:101EA000BA0720F0621B730B840BBA0BEE1F88F786 +:101EB000E09508950E94610F6894B1110C947B1015 +:101EC00008950E94601088F09F5798F0B92F9927C5 +:101ED000B751B0F0E1F0660F771F881F991F1AF015 +:101EE000BA95C9F714C0B13091F00E947A10B1E0F0 +:101EF00008950C947A10672F782F8827B85F39F0EF +:101F0000B93FCCF3869577956795B395D9F73EF4AD +:101F100090958095709561957F4F8F4F9F4F089555 +:101F2000E89409C097FB3EF4909580957095619573 +:101F30007F4F8F4F9F4F9923A9F0F92F96E9BB2729 +:101F40009395F695879577956795B795F111F8CFA5 +:101F5000FAF4BB0F11F460FF1BC06F5F7F4F8F4F10 +:101F60009F4F16C0882311F096E911C0772321F006 +:101F70009EE8872F762F05C0662371F096E8862F9E +:101F800070E060E02AF09A95660F771F881FDAF7F5 +:101F9000880F9695879597F90895990F0008550F22 +:101FA000AA0BE0E8FEEF16161706E807F907C0F0DF +:101FB00012161306E407F50798F0621B730B840BE7 +:101FC000950B39F40A2661F0232B242B252B21F4C1 +:101FD00008950A2609F4A140A6958FEF811D811D61 +:101FE000089597F99F6780E870E060E008959FEF9B +:101FF00080EC089500240A941616170618060906A0 +:10200000089500240A94121613061406050608956E +:102010000C94F70F0E946010D8F3E894E0E0BB271F +:102020009F57F0F02AED3FE049EC06C0EE0FBB0FE2 +:10203000661F771F881F28F0B23A6207730784076C +:1020400028F0B25A620B730B840BE3959A9572F7E2 +:10205000803830F49A95BB0F661F771F881FD2F720 +:1020600090480C94FD10092E0394000C11F4882361 +:1020700052F0BB0F40F4BF2B11F460FF04C06F5F40 +:102080007F4F8F4F9F4F0895EF93E0FF07C0A2EA65 +:102090002AED3FE049EC5FEB0E94890E0E9433106D +:1020A0000F90039401FC9058E4E5F0E00C940911C2 +:1020B00057FD9058440F551F59F05F3F71F04795F9 +:1020C000880F97FB991F61F09F3F79F087950895DE +:1020D000121613061406551FF2CF4695F1DF08C0FD +:1020E000161617061806991FF1CF8695710561051A +:1020F00008940895E894BB2766277727CB0197F9C2 +:1021000008950E94CD0F08F48FEF08950E94991052 +:102110000C9433100E94FA0F38F00E94011020F046 +:10212000952311F00C94F10F0C94F70F11240C94DB +:102130007B100E94581070F3959FC1F3950F50E0EB +:10214000551F629FF001729FBB27F00DB11D639F69 +:10215000AA27F00DB11DAA1F649F6627B00DA11D0F +:10216000661F829F2227B00DA11D621F739FB00DB5 +:10217000A11D621F839FA00D611D221F749F332725 +:10218000A00D611D231F849F600D211D822F762FBE +:102190006A2F11249F5750409AF0F1F088234AF09B +:1021A000EE0FFF1FBB1F661F771F881F9150504007 +:1021B000A9F79E3F510580F00C94F10F0C947B1011 +:1021C0005F3FE4F3983ED4F3869577956795B7958E +:1021D000F795E7959F5FC1F7FE2B880F911D9695A8 +:1021E000879597F908959F930E940A100F9007FC16 +:1021F000EE5F0C9444109F3F31F0915020F487958E +:1022000077956795B795880F911D9695879597F95E +:1022100008959F938F937F936F93FF93EF939B0109 +:10222000AC010E948610EF91FF910E941D112F9129 +:102230003F914F915F910C948610DF93CF931F9342 +:102240000F93FF92EF92DF927B018C01689406C09E +:10225000DA2EEF010E949910FE01E894A5912591D4 +:10226000359145915591A6F3EF010E94890EFE012B +:102270009701A801DA9469F7DF90EF90FF900F9132 +:102280001F91CF91DF910895052E97FB1EF40094C6 +:102290000E945B1157FD07D00E949A1107FC03D0E2 +:1022A0004EF40C945B1150954095309521953F4F1D +:1022B0004F4F5F4F089590958095709561957F4F32 +:1022C0008F4F9F4F08952F923F924F925F926F9240 +:1022D0007F928F929F92AF92BF92CF92DF92EF92B6 +:1022E000FF920F931F93CF93DF93CDB7DEB7CA1B37 +:1022F000DB0B0FB6F894DEBF0FBECDBF09942A8862 +:10230000398848885F846E847D848C849B84AA8409 +:10231000B984C884DF80EE80FD800C811B81AA8196 +:10232000B981CE0FD11D0FB6F894DEBF0FBECDBF61 +:10233000ED010895A1E21A2EAA1BBB1BFD010DC0E1 +:10234000AA1FBB1FEE1FFF1FA217B307E407F50765 +:1023500020F0A21BB30BE40BF50B661F771F881F41 +:10236000991F1A9469F760957095809590959B01D7 +:10237000AC01BD01CF010895FC010590061621F0C6 +:102380000020D9F7C00108953197CF0108950F9328 +:102390001F93CF93DF93009731F46115710519F402 +:1023A00080E090E03AC08B01EC016EE070E081E0EB +:1023B00090E00E94D812FC01892B91F380E883837E +:1023C0000115110571F01387028781E883838091DD +:1023D0005E0190915F01892B21F4F0935F01E093FE +:1023E0005E012097C9F0D187C08783818260838393 +:1023F0008091600190916101892B71F4F0936101EA +:10240000E09360018091620190916301892B21F436 +:10241000F0936301E0936201CF01DF91CF911F91AF +:102420000F9108950F931F93CF93DF93FB012381A7 +:1024300021FD03C08FEF9FEF28C022FF16C0468109 +:102440005781248135814217530744F4A081B1811B +:102450009D012F5F3F4F318320838C9326813781ED +:102460002F5F3F4F3783268310C0EB01092F182FB2 +:102470000084F185E02D0995892BE1F68E819F81FD +:1024800001969F838E83812F902FDF91CF911F9193 +:102490000F9108950F931F93CF93DF93E091600105 +:1024A000F0916101238121FF1BC08C01D0E0C0E0CD +:1024B000F80181918F016091600170916101DB01F0 +:1024C0001896ED91FC911997882331F00995892B85 +:1024D00079F3DFEFCFEFECCF8AE00995892B19F084 +:1024E0008FEF9FEF02C08D2F9C2FDF91CF911F9117 +:1024F0000F910895FA01AA27283051F1203181F176 +:10250000E8946F936E7F6E5F7F4F8F4F9F4FAF4FFB +:10251000B1E03ED0B4E03CD0670F781F891F9A1F0E +:10252000A11D680F791F8A1F911DA11D6A0F711DC2 +:10253000811D911DA11D20D009F468943F912AE0CE +:10254000269F11243019305D3193DEF6CF010895B6 +:10255000462F4770405D4193B3E00FD0C9F7F6CFE7 +:10256000462F4F70405D4A3318F0495D31FD4052AF +:10257000419302D0A9F7EACFB4E0A6959795879545 +:1025800077956795BA95C9F7009761057105089524 +:102590009B01AC010A2E06945795479537952795D0 +:1025A000BA95C9F7620F731F841F951FA01D089568 +:1025B0000F931F93CF93DF93869F8001879F100D0A +:1025C000969F100D1124C8010E94F412EC0100978F +:1025D00029F0A80160E070E00E942114CE01DF9193 +:1025E000CF911F910F910895CF93DF938230910582 +:1025F00010F482E090E0E0916601F091670120E044 +:1026000030E0C0E0D0E0309711F1408151814817AF +:102610005907C0F04817590761F4828193812097C8 +:1026200019F09B838A832BC0909367018093660186 +:1026300026C02115310519F04217530718F49A01E5 +:10264000BE01DF01EF010280F381E02DDCCF211517 +:10265000310509F1281B390B2430310590F412960D +:102660008D919C9113976115710521F0FB01938366 +:10267000828304C09093670180936601FD013296C6 +:1026800044C0FD01E20FF31F819391932250310961 +:102690002D933C933AC02091640130916501232B26 +:1026A00041F420916A0030916B00309365012093D2 +:1026B000640120916800309169002115310541F4D1 +:1026C0002DB73EB740916C0050916D00241B350B27 +:1026D000E0916401F0916501E217F307A0F42E1B6D +:1026E0003F0B2817390778F0AC014E5F5F4F241776 +:1026F000350748F04E0F5F1F50936501409364010A +:102700008193919302C0E0E0F0E0CF01DF91CF919F +:1027100008950F931F93CF93DF93009709F48CC014 +:10272000FC013297138212820091660110916701B9 +:102730000115110581F420813181820F931F2091B1 +:102740006401309165012817390779F5F093650127 +:10275000E093640171C0D80140E050E0AE17BF07BC +:1027600050F412962D913C911397AD01211531052E +:1027700009F1D901F3CF9D01DA013383228360810E +:102780007181860F971F8217930769F4EC012881E6 +:102790003981260F371F2E5F3F4F318320838A8177 +:1027A0009B8193838283452B29F4F0936701E09307 +:1027B000660142C01396FC93EE931297ED01499186 +:1027C00059919E01240F351FE217F30771F48081A0 +:1027D0009181840F951F029611969C938E9382810E +:1027E000938113969C938E931297E0E0F0E0D801CA +:1027F00012968D919C911397009719F0F8018C0116 +:10280000F6CF8D919C9198012E5F3F4F820F931FC1 +:1028100020916401309165012817390769F43097D8 +:1028200029F4109267011092660102C0138212828D +:102830001093650100936401DF91CF911F910F9177 +:102840000895DC0101C06D9341505040E0F70895B8 +:04285000F894FFCF2A +:1028540000800080008000800000680120000D0AD4 +:0828640053746172740D000051 :00000001FF diff --git a/data/motor_ctrl_pid_values.ods b/data/motor_ctrl_pid_values.ods new file mode 100644 index 0000000000000000000000000000000000000000..a02ecc922fc060b8ab465648938819873c192237 GIT binary patch literal 21591 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 literal 0 HcmV?d00001 diff --git a/scripts/get_velocity.py b/scripts/get_velocity.py new file mode 100755 index 0000000..4f8a77e --- /dev/null +++ b/scripts/get_velocity.py @@ -0,0 +1,16 @@ +#!/usr/bin/env python +# -*- coding: iso-8859-15 -*- +# +# rostopic echo /odom/twist/twist/linear/x > /tmp/velocity.txt + +import sys +import numpy as np + +f = open(sys.argv[1]) +l = [] +for line in f: + if "---" in line: + continue + l.append(float(line)) + +print "avg=%.2f, var=%f" % (sum(l)/len(l), np.var(l)) -- 2.39.2