From: Erik Andresen Date: Sun, 14 Aug 2016 17:44:41 +0000 (+0200) Subject: use esum to stop motor when stalling to avoid damage X-Git-Url: https://defiant.homedns.org/gitweb/?a=commitdiff_plain;h=8786ef14dfb5b65efa0a260d91e569aa819aac14;p=ros_wild_thumper.git use esum to stop motor when stalling to avoid damage --- diff --git a/avr/motor_ctrl/main.c b/avr/motor_ctrl/main.c index 576d57c..3dca8cc 100644 --- a/avr/motor_ctrl/main.c +++ b/avr/motor_ctrl/main.c @@ -687,7 +687,8 @@ static void update_motor(void) { static int16_t m3_old=SHRT_MIN; static int16_t m4_old=SHRT_MIN; - error_state = ~((PIND & 0x40)>>3 | (PINB & 0x07)) & 0xf; + error_state &= 0xf0; // clear lower bits + error_state |= ~((PIND & 0x40)>>3 | (PINB & 0x07)) & 0xf; if (m1_old != motor1) { // update only when changed if (motor1 == 0) { @@ -857,11 +858,39 @@ static void update_pid(void) { static int32_t esum3=0; static int32_t esum4=0; + // protect motors from damage if stalling + if (labs(esum1) > 120000 && speed1 == 0) { + motor1 = 0; + motor1_mode = MOTOR_MANUAL; + error_state |= (1<<4); + esum1 = 0; + } + if (labs(esum2) > 120000 && speed2 == 0) { + motor2 = 0; + motor2_mode = MOTOR_MANUAL; + error_state |= (1<<5); + esum2 = 0; + } + if (labs(esum3) > 120000 && speed3 == 0) { + motor3 = 0; + motor3_mode = MOTOR_MANUAL; + error_state |= (1<<6); + esum3 = 0; + } + // protect motors from damage if stalling + if (labs(esum4) > 120000 && speed4 == 0) { + motor4 = 0; + motor4_mode = MOTOR_MANUAL; + error_state |= (1<<7); + esum4 = 0; + } + if (motor1_mode == MOTOR_PID) { if (speed1_wish == 0) { motor1 = 0; eold1 = 0; esum1 = 0; + error_state &= ~(1<<4); } else { int16_t e = speed1_wish - speed1; esum1+=e; @@ -879,6 +908,7 @@ static void update_pid(void) { motor2 = 0; eold2 = 0; esum2 = 0; + error_state &= ~(1<<5); } else { int16_t e = speed2_wish - speed2; esum2+=e; @@ -896,6 +926,7 @@ static void update_pid(void) { motor3 = 0; eold3 = 0; esum3 = 0; + error_state &= ~(1<<6); } else { int16_t e = speed3_wish - speed3; esum3+=e; @@ -913,6 +944,7 @@ static void update_pid(void) { motor4 = 0; eold4 = 0; esum4 = 0; + error_state &= ~(1<<7); } else { int16_t e = speed4_wish - speed4; esum4+=e; @@ -1013,17 +1045,17 @@ int main(void) { if (aft_handicap > 0) { speed1_wish = speed_wish_left * (100-aft_handicap)/100.0; - speed4_wish = speed_wish_right * (100-aft_handicap)/100.0; + speed3_wish = speed_wish_right * (100-aft_handicap)/100.0; } else { speed1_wish = speed_wish_left; - speed4_wish = speed_wish_right; + speed3_wish = speed_wish_right; } if (front_handicap > 0) { speed2_wish = speed_wish_left * (100-front_handicap)/100.0; - speed3_wish = speed_wish_right * (100-front_handicap)/100.0; + speed4_wish = speed_wish_right * (100-front_handicap)/100.0; } else { speed2_wish = speed_wish_left; - speed3_wish = speed_wish_right; + speed4_wish = speed_wish_right; } motor1_mode = MOTOR_PID; motor2_mode = MOTOR_PID; diff --git a/avr/motor_ctrl/main.hex b/avr/motor_ctrl/main.hex index b6df9bd..edffdd9 100644 --- a/avr/motor_ctrl/main.hex +++ b/avr/motor_ctrl/main.hex @@ -27,10 +27,10 @@ :1001A000A9020C50B9918688083CA6AAAA2ABE00CA :1001B0000000803F45464765666700202B2D2E30A6 :1001C00031323334353637383968000011241FBED8 -:1001D000CFE5D8E0DEBFCDBF10E0A0E6B0E0E8E0BC -:1001E000F7E202C005900D92AA37B107D9F721E0D6 +:1001D000CFE5D8E0DEBFCDBF10E0A0E6B0E0E8EBB1 +:1001E000F8E202C005900D92AA37B107D9F721E0D5 :1001F000AAE7B0E001C01D92A836B207E1F70E945D -:1002000020060C9482130C9400001F920F920FB6DC +:1002000020060C945A140C9400001F920F920FB603 :100210000F9211242F933F934F935F936F937F938C :100220008F939F93AF93BF93EF93FF9381B1887F99 :10023000803881F040F4803609F01CC385EC86BF1D @@ -74,7 +74,7 @@ :100490008091A4009091A500A091A600B091A70022 :1004A0006627782F892F9A2F622B6093A400709370 :1004B000A5008093A6009093A70023E33BE542E8C4 -:1004C00055E40E9431100E94110F7093D100609387 +:1004C00055E40E9409110E94E90F7093D1006093D6 :1004D000D0007093CF006093CE0081E08093D7006E :1004E0008093D600B7C183B190E0A0E0B0E00EC029 :1004F00023B18091A4009091A500A091A600B09195 @@ -91,7 +91,7 @@ :1005A000D30058C183B18093AB0003C083B1809363 :1005B000AA0081E08093F2004DC18091E90090E0B3 :1005C000FC013297E13AF10508F04BC1E65DFF4FBF -:1005D0000C94FD108AB59BB53CC188B599B539C15D +:1005D0000C94D5118AB59BB53CC188B599B539C184 :1005E00083B537C18CB735C113B834C18091DE00F3 :1005F0009091DF000EC08091DC009091DD0009C079 :100600008091DA009091DB0004C08091D800909135 @@ -171,7 +171,7 @@ :100AA0000F900FBE0F901F9018959C018AB188611E :100AB0008AB9579A80B5866080BD40E050E084E0F6 :100AC000220F331F441F551F8A95D1F760E079E04C -:100AD0008DE390E00E94DE10DA01C9010197A109BF +:100AD0008DE390E00E94B611DA01C9010197A109E6 :100AE000B109892F9A2FAB2FBB27A7FDBA9580BDDF :100AF000215029B987EF90E09093F4008093F300A0 :100B00009093F6008093F50008955D9BFECFFC0165 @@ -180,7 +180,7 @@ :100B3000DF91CF910895CF93DF93EC01CE01219601 :100B4000FC012081222319F00E948505F7CFDF9157 :100B5000CF9108955F9BFECF8CB190E008950C94E7 -:100B6000AA056FEA75E08BE895E00C943011CF93FD +:100B6000AA056FEA75E08BE895E00C940812CF9324 :100B7000DF93FC01E253FF4FA081B181EC01C4532C :100B8000DF4F28813981A217B307A1F05D9B12C006 :100B90002C912CB920813181AC0145535F4F241732 @@ -200,40 +200,40 @@ :100C70000E9455050E94B10580E582B986B78B7E3A :100C800086BF85EC86BF81EA8FBD89E08EBD1BBC27 :100C90001ABC19BC18BC89E685BD13BC83BF1CBE39 -:100CA00080E790E00E94AD1185B78F7885BF84E022 +:100CA00080E790E00E94851285B78F7885BF84E049 :100CB00089BF78942224239433243A940FEF10E0D0 :100CC0008091E9008F3F41F48091E800853A21F45A :100CD000F894E0E0F8E109958091F200882309F4A6 :100CE000E4C0F8948090EA009090EB00A090EC00B3 :100CF000B090ED006091EE007091EF008091F000F7 :100D00009091F1001092F200789427EB3BE04DEBCC -:100D10005EE30E94311020E030E040E05FE30E949B -:100D20003110A50194010E943E0E6B017C01A501CA -:100D30009401C501B4010E943E0EA70196010E94D4 -:100D40003D0E23E33BE542E855E40E9431104B01A0 +:100D10005EE30E94091120E030E040E05FE30E94C2 +:100D20000911A50194010E94160F6B017C01A50118 +:100D30009401C501B4010E94160FA70196010E94FB +:100D4000150F23E33BE542E855E40E9409114B01EE :100D50005C0123E33BE542E855E4C701B6010E948C -:100D600031106B017C018091AA008823C9F1809128 +:100D600009116B017C018091AA008823C9F180914F :100D7000AA0024E630E0281B3109B901882777FD55 -:100D80008095982F0E94440F9B01AC01C501B401CE -:100D90000E94311020E030E048EC52E40E94A90E9D -:100DA0000E94110F7093D1006093D0008091AA002F +:100D80008095982F0E941C109B01AC01C501B401F5 +:100D90000E94091120E030E048EC52E40E94810FEB +:100DA0000E94E90F7093D1006093D0008091AA0057 :100DB00044E650E0481B5109BA01882777FD809529 -:100DC000982F0E94440F9B01AC01C701B6010E94FD -:100DD000311020E030E048EC52E40E94A90E0AC035 -:100DE000C501B4010E94110F7093D1006093D0002F -:100DF000C701B6010E94110F7093CB006093CA0027 +:100DC000982F0E941C109B01AC01C701B6010E9424 +:100DD000091120E030E048EC52E40E94810F0AC083 +:100DE000C501B4010E94E90F7093D1006093D00057 +:100DF000C701B6010E94E90F7093CD006093CC004B :100E00008091AB008823C1F18091AB00E4E6F0E073 :100E1000E81BF109BF01882777FD8095982F0E9474 -:100E2000440F9B01AC01C501B4010E94311020E0C8 -:100E300030E048EC52E40E94A90E0E94110F70931A +:100E20001C109B01AC01C501B4010E94091120E016 +:100E300030E048EC52E40E94810F0E94E90F709369 :100E4000CF006093CE008091AB0064E670E0681B39 -:100E50007109882777FD8095982F0E94440F9B0188 -:100E6000AC01C701B6010E94311020E030E048EC2F -:100E700052E40E94A90E0AC0C501B4010E94110FDC -:100E80007093CF006093CE00C701B6010E94110F8E -:100E90007093CD006093CC00F1E0F093D700F09315 +:100E50007109882777FD8095982F0E941C109B01AF +:100E6000AC01C701B6010E94091120E030E048EC56 +:100E700052E40E94810F0AC0C501B4010E94E90F2B +:100E80007093CF006093CE00C701B6010E94E90FB6 +:100E90007093CB006093CA00F1E0F093D700F09319 :100EA000D600F093D500F093D4008091C9008C391E -:100EB00008F48EC51092C900F8942091DE0030919C +:100EB00008F466C61092C900F8942091DE003091C3 :100EC000DF003A8329834091DC005091DD005C8390 :100ED0004B838091DA009091DB009E838D83E091BB :100EE000D800F091D900F887EF837894809198002A @@ -241,38 +241,38 @@ :100F000097006A01C81AD90A8091940090919500BF :100F10006D807E80681A790A80919200909193008A :100F20002F01481A590AB701882777FD8095982F15 -:100F30000E94440F2AE037ED43E25CE30E94A90ED1 -:100F40000E94110F6D877E878F87988BB601882747 -:100F500077FD8095982F0E94440F2AE037ED43E2F9 -:100F60005CE30E94A90E0E94110F698B7A8B8B8B18 -:100F70009C8BB301882777FD8095982F0E94440FA2 -:100F80002AE037ED43E25CE30E94A90E0E94110FB4 +:100F30000E941C102AE037ED43E25CE30E94810F1F +:100F40000E94E90F6D877E878F87988BB60188276F +:100F500077FD8095982F0E941C102AE037ED43E220 +:100F60005CE30E94810F0E94E90F698B7A8B8B8B67 +:100F70009C8BB301882777FD8095982F0E941C10C9 +:100F80002AE037ED43E25CE30E94810F0E94E90F03 :100F90006D8B7E8B8F8B988FB201882777FD809524 -:100FA000982F0E94440F2AE037ED43E25CE30E9451 -:100FB000A90E0E94110F698F7A8F8B8F9C8FB701BA -:100FC0006C0D7D1D882777FD8095982F0E94440F1A -:100FD00023E33BE542E056E40E94A90E4B015C018D +:100FA000982F0E941C102AE037ED43E25CE30E9478 +:100FB000810F0E94E90F698F7A8F8B8F9C8FB70109 +:100FC0006C0D7D1D882777FD8095982F0E941C1041 +:100FD00023E33BE542E056E40E94810F4B015C01B4 :100FE000B301640D751D882777FD8095982F0E94A9 -:100FF000440F23E33BE542E056E40E94A90E2B0197 -:101000003C01A50194010E943D0E27EB3BE04DEB16 -:101010005EE30E94A90E69877A878B879C8760911F +:100FF0001C1023E33BE542E056E40E94810F2B01E5 +:101000003C01A50194010E94150F27EB3BE04DEB3D +:101010005EE30E94810F69877A878B879C87609146 :10102000B5007091B6008091B7009091B800298505 -:101030003A854B855C850E943E0E6B017C012BED51 -:101040003FE049EC50E40E942D1018164CF42BEDB3 -:101050003FE049EC50E4C701B6010E943D0E12C0CA -:101060002BED3FE049EC50ECC701B6010E94A20E07 +:101030003A854B855C850E94160F6B017C012BED78 +:101040003FE049EC50E40E94051118164CF42BEDDA +:101050003FE049EC50E4C701B6010E94150F12C0F1 +:101060002BED3FE049EC50ECC701B6010E947A0F2E :1010700087FF0AC02BED3FE049EC50E4C701B60101 -:101080000E943E0E6B017C01A3019201C501B401D7 -:101090000E943E0E20E030E040E05FE30E9431100D +:101080000E94160F6B017C01A3019201C501B401FE +:101090000E94160F20E030E040E05FE30E9409115B :1010A0004B015C014090BD005090BE006090BF00BD -:1010B0007090C000C701B6010E94A60EA501940160 -:1010C0000E9431109B01AC01C301B2010E943E0E8F +:1010B0007090C000C701B6010E947E0FA501940187 +:1010C0000E9409119B01AC01C301B2010E94160FDD :1010D0006D8F7E8F8F8F98A34090B9005090BA008B -:1010E0006090BB007090BC00C701B6010E949410D4 -:1010F000A50194010E9431109B01AC01C301B20112 -:101100000E943E0E2B013C012AE037ED43E25CE3F6 -:10111000C501B4010E94A90E4B015C012AE037ED24 -:1011200043E25CE369857A858B859C850E94A90EE4 +:1010E0006090BB007090BC00C701B6010E946C11FB +:1010F000A50194010E9409119B01AC01C301B20139 +:101100000E94160F2B013C012AE037ED43E25CE31D +:10111000C501B4010E94810F4B015C012AE037ED4B +:1011200043E25CE369857A858B859C850E94810F0B :10113000F894C092B500D092B600E092B700F09259 :10114000B8002D8D3E8D4F8D58A12093BD0030935A :10115000BE004093BF005093C0004092B90050922F @@ -284,345 +284,372 @@ :1011B000AE008093AF009093B000789489819A81BB :1011C0009093990080939800EB81FC81F0939700B5 :1011D000E09396002D813E813093950020939400FA -:1011E0004F81588550939300409392008091D7008F -:1011F000813009F0AFC08091D0009091D100892B4F -:1012000089F41092E7001092E6001092910010927B -:10121000900010928C0010928D0010928E0010920F -:101220008F0098C0A090D000B090D1008091C700EE -:101230009091C800A81AB90AB501882777FD809552 -:10124000982FC0908C00D0908D00E0908E00F09090 -:101250008F00C60ED71EE81EF91EC0928C00D092D9 -:101260008D00E0928E00F0928F000E94440F27E7DD -:101270003EEB4FE15DE30E9431102B013C01C701C1 -:10128000B6010E94440F27E137EB41E55AE30E9483 -:1012900031109B01AC01C301B2010E943E0E6B01F3 -:1012A0007C018091900090919100B501681B790BB1 -:1012B000882777FD8095982F0E94440F20E030E02A -:1012C000A9010E9431109B01AC01C701B6010E9427 -:1012D0003E0E0E94110F7093E7006093E600B092FB -:1012E0009100A09290008091E6009091E70018167E -:1012F000190634F48091D0009091D10097FD0DC073 -:101300008091E6009091E70097FF0CC08091D0009B -:101310009091D100181619062CF41092E700109243 -:10132000E60018C08091E6009091E7008F3F91059C -:1013300031F02CF01093E7000093E6000BC0809191 -:10134000E6009091E70081309F4F24F43092E7004F -:101350002092E6008091D600813009F0AFC08091E4 -:10136000CE009091CF00892B89F41092E500109265 -:10137000E40010928B0010928A0010928600109266 -:101380008700109288001092890098C0A090CE002B -:10139000B090CF008091C5009091C600A81AB90AFC -:1013A000B501882777FD8095982FC0908600D09052 -:1013B0008700E0908800F0908900C60ED71EE81ED6 -:1013C000F91EC0928600D0928700E0928800F092C9 -:1013D00089000E94440F27E73EEB4FE15DE30E9446 -:1013E00031102B013C01C701B6010E94440F27E1D7 -:1013F00037EB41E55AE30E9431109B01AC01C30178 -:10140000B2010E943E0E6B017C0180918A00909196 -:101410008B00B501681B790B882777FD8095982F85 -:101420000E94440F20E030E0A9010E9431109B018E -:10143000AC01C701B6010E943E0E0E94110F7093CD -:10144000E5006093E400B0928B00A0928A00809146 -:10145000E4009091E5001816190634F48091CE004E -:101460009091CF0097FD0DC08091E4009091E50030 -:1014700097FF0CC08091CE009091CF0018161906EE -:101480002CF41092E5001092E40018C08091E40062 -:101490009091E5008F3F910531F02CF01093E5001D -:1014A0000093E4000BC08091E4009091E50081304E -:1014B0009F4F24F43092E5002092E4008091D50003 -:1014C000813009F0AFC08091CC009091CD00892B84 -:1014D00089F41092E3001092E200109285001092BD -:1014E000840010928000109281001092820010926D -:1014F000830098C0A090CC00B090CD008091C30034 -:101500009091C400A81AB90AB501882777FD809583 -:10151000982FC0908000D0908100E0908200F090E1 -:101520008300C60ED71EE81EF91EC0928000D0921E -:101530008100E0928200F09283000E94440F27E72E -:101540003EEB4FE15DE30E9431102B013C01C701EE -:10155000B6010E94440F27E137EB41E55AE30E94B0 -:1015600031109B01AC01C301B2010E943E0E6B0120 -:101570007C018091840090918500B501681B790BF6 -:10158000882777FD8095982F0E94440F20E030E057 -:10159000A9010E9431109B01AC01C701B6010E9454 -:1015A0003E0E0E94110F7093E3006093E200B09230 -:1015B0008500A09284008091E2009091E3001816CB -:1015C000190634F48091CC009091CD0097FD0DC0A8 -:1015D0008091E2009091E30097FF0CC08091CC00D5 -:1015E0009091CD00181619062CF41092E300109279 -:1015F000E20018C08091E2009091E3008F3F9105D6 -:1016000031F02CF01093E3000093E2000BC08091C6 -:10161000E2009091E30081309F4F24F43092E30088 -:101620002092E2008091D400813009F0AFC0809117 -:10163000CA009091CB00892B89F41092E10010929E -:10164000E00010927F0010927E0010927A001092BB -:101650007B0010927C0010927D0098C0A090CA0080 -:10166000B090CB008091C1009091C200A81AB90A35 -:10167000B501882777FD8095982FC0907A00D0908B -:101680007B00E0907C00F0907D00C60ED71EE81E27 -:10169000F91EC0927A00D0927B00E0927C00F0921A -:1016A0007D000E94440F27E73EEB4FE15DE30E947F -:1016B00031102B013C01C701B6010E94440F27E104 -:1016C00037EB41E55AE30E9431109B01AC01C301A5 -:1016D000B2010E943E0E6B017C0180917E009091D0 -:1016E0007F00B501681B790B882777FD8095982FBF -:1016F0000E94440F20E030E0A9010E9431109B01BC -:10170000AC01C701B6010E943E0E0E94110F7093FA -:10171000E1006093E000B0927F00A0927E00809193 -:10172000E0009091E1001816190634F48091CA0087 -:101730009091CB0097FD0DC08091E0009091E10069 -:1017400097FF0CC08091CA009091CB001816190623 -:101750002CF41092E1001092E00018C08091E0009B -:101760009091E1008F3F910531F02CF01093E10052 -:101770000093E0000BC08091E0009091E100813087 -:101780009F4F24F43092E1002092E00080B326B312 -:10179000807490E0A3E095958795AA95E1F727706E -:1017A000282B20952F702093A9008091E60090911E -:1017B000E700209166003091670028173907C9F1CA -:1017C0008091E6009091E700892B19F485B3837F1F -:1017D0001CC080916900811107C08091E600909142 -:1017E000E7001816190654F080916900882351F01B -:1017F0008091E6009091E70097FF04C085B3877F52 -:10180000846003C085B38B7F886085BB8091E600D0 -:101810009091E70090936700809366008091E600C6 -:101820009091E70097FF03C09195819591099BBD29 -:101830008ABD8091E4009091E50020916400309190 -:10184000650028173907C9F18091E4009091E500FF -:10185000892B19F485B38F7C1CC08091680081119D -:1018600007C08091E4009091E5001816190654F025 -:1018700080916800882351F08091E4009091E50008 -:1018800097FF04C085B38F7D806103C085B38F7ED1 -:10189000806285BB8091E4009091E50090936500A3 -:1018A000809364008091E4009091E50097FF03C06D -:1018B00091958195910999BD88BD8091E2009091A3 -:1018C000E300209162003091630028173907C1F1CD -:1018D0008091E2009091E300892B19F485B38F7316 -:1018E0001CC08091D300811107C08091E2009091CB -:1018F000E3001816190654F08091D300882351F0A4 -:101900008091E2009091E30097FF04C085B38F7748 -:10191000806403C085B38F7B806885BB8091E200C3 -:101920009091E30090936300809362008091E200C5 -:101930009091E30097FF03C091958195910983BD34 -:101940008091E0009091E100209160003091610071 -:1019500028173907C1F18091E0009091E100892BAF -:1019600019F482B3837F1CC08091D200811107C01B -:101970008091E0009091E1001816190654F08091D2 -:10198000D200882351F08091E0009091E10097FF10 -:1019900004C082B3877F846003C082B38B7F88607A -:1019A00082BB8091E0009091E10090936100809370 -:1019B00060008091E0009091E10097FF03C0919555 -:1019C000819591098CBF8091AC008F5F8093AC00B2 -:1019D00085B7806885BF889585B78F7785BF70C9C3 -:1019E0006F927F929F92AF92BF92CF92DF92EF92CF -:1019F000FF920F931F93CF93DF93CDB7DEB72C9752 -:101A00000FB6F894DEBF0FBECDBF8C017B013A014B -:101A1000FC0117821682838181FF19C1CE010196D4 -:101A20005C01F801D380F701D3FC2591D3FE21910D -:101A30007F01222309F407C1253249F4D3FC259103 -:101A4000D3FE21917F01253211F0912C1BC0B801EA -:101A5000822F90E00E947B1163013601E2CF2223A6 -:101A600009F4F1C0622F70E08BEB91E02C870E94AB -:101A700025112C85892B49F0F701D3FC2591D3FE44 -:101A800021917F0197FEEBCF0CC0233221F4F92D79 -:101A9000F0619F2EF1CF2C3639F4292D2068922E3B -:101AA000EBCF222309F4CFC0622F70E084EB91E0EA -:101AB0002C870E9425112C85892B41F06301F4E0CD -:101AC000CF0ED11CB8018FE390E012C0233641F055 -:101AD000233789F0233521F5F92DF1609F2E0BC0B6 -:101AE000630122E0C20ED11CB801F3018081918113 -:101AF0000E947B11B2CF630122E0C20ED11CF30120 -:101B000060807180F30190FC859190FE81913F018E -:101B1000882309F4A2CFB80190E00E947B11F2CF94 -:101B2000243611F0293639F5630197FE09C0F4E037 -:101B3000CF0ED11CF30160817181828193810AC033 -:101B4000F2E0CF0ED11CF30160817181882777FD0F -:101B50008095982FF92DFF7E9F2E97FF09C09095B5 -:101B60008095709561957F4F8F4F9F4FF0649F2EAA -:101B70002AE030E038C02037A1F040F42835D1F019 -:101B80002F3609F060C028E030E019C0253719F081 -:101B9000283751F058C0292D2F7E922E2AE030E0B0 -:101BA0000EC0892D8061982E992D9462992E20E186 -:101BB00030E005C0E92DE4609E2E20E132E06301B3 -:101BC00097FE09C0F4E0CF0ED11CF3016081718152 -:101BD0008281938108C0F2E0CF0ED11CF3016081B5 -:101BE000718180E090E0A5010E94DA11782E7A18C8 -:101BF00096FE05C0B8018DE290E00E947B1194FE34 -:101C000016C0FE01E70DF11D8081803381F0B8011F -:101C100080E390E00E947B1192FE09C0292D207282 -:101C2000822F90E0B801885A9F4F0E947B117A94CE -:101C3000F501E70DF11D8081B80190E00E947B1154 -:101C40007110F5CF0ACFF8018681978102C08FEF1E -:101C50009FEF2C960FB6F894DEBF0FBECDBFDF917D -:101C6000CF911F910F91FF90EF90DF90CF90BF9099 -:101C7000AF909F907F906F9008955058BB27AA27F0 -:101C80000ED0A0C169D130F06ED120F031F49F3F69 -:101C900011F41EF45EC10EF4E095E7FB54C1E92F88 -:101CA000B3D180F3BA17620773078407950718F05A -:101CB00071F49EF5CBC10EF4E0950B2EBA2FA02D3A -:101CC0000B01B90190010C01CA01A0011124FF27E9 -:101CD000591B99F0593F50F4503E68F11A16F040E4 -:101CE000A22F232F342F4427585FF3CF46953795E3 -:101CF0002795A795F0405395C9F77EF41F16BA0BA8 -:101D0000620B730B840BBAF09150A1F0FF0FBB1F55 -:101D1000661F771F881FC2F70EC0BA0F621F731F9E -:101D2000841F48F4879577956795B795F7959E3FFB -:101D300008F0B3CF9395880F08F09927EE0F979589 -:101D400087950895DCD008F481E0089514D1E395D7 -:101D50004AC10CD037C107D140F0FED030F021F499 -:101D60005F3F19F0F0C0511172C1F3C04DD198F32B -:101D70009923C9F35523B1F3951B550BBB27AA270C -:101D800062177307840738F09F5F5F4F220F331F7E -:101D9000441FAA1FA9F333D00E2E3AF0E0E830D04A -:101DA00091505040E695001CCAF729D0FE2F27D04D -:101DB000660F771F881FBB1F261737074807AB071B -:101DC000B0E809F0BB0B802DBF01FF2793585F4F90 -:101DD0002AF09E3F510568F0B6C039C15F3FECF371 -:101DE000983EDCF3869577956795B795F7959F5F55 -:101DF000C9F7880F911D9695879597F90895E1E0A9 -:101E0000660F771F881FBB1F621773078407BA0707 -:101E100020F0621B730B840BBA0BEE1F88F7E09562 -:101E2000089504D06894B11112C10895F5D088F0D6 -:101E30009F5790F0B92F9927B751A0F0D1F0660FB6 -:101E4000771F881F991F1AF0BA95C9F712C0B130D1 -:101E500081F0FCD0B1E00895F9C0672F782F882772 -:101E6000B85F39F0B93FCCF3869577956795B39510 -:101E7000D9F73EF490958095709561957F4F8F4F7F -:101E80009F4F0895E89409C097FB3EF49095809584 -:101E9000709561957F4F8F4F9F4F9923A9F0F92F30 -:101EA00096E9BB279395F695879577956795B795AE -:101EB000F111F8CFFAF4BB0F11F460FF1BC06F5F94 -:101EC0007F4F8F4F9F4F16C0882311F096E911C0A6 -:101ED000772321F09EE8872F762F05C0662371F0C7 -:101EE00096E8862F70E060E02AF09A95660F771FDB -:101EF000881FDAF7880F9695879597F90895990FB7 -:101F00000008550FAA0BE0E8FEEF16161706E807C3 -:101F1000F907C0F012161306E407F50798F0621BE4 -:101F2000730B840B950B39F40A2661F0232B242BB9 -:101F3000252B21F408950A2609F4A140A6958FEFD8 -:101F4000811D811D089597F99F6780E870E060E02A -:101F500008959FEF80EC089500240A941616170642 -:101F600018060906089500240A941216130614068A -:101F700005060895EECF50D0E8F3E894E0E0BB27E3 -:101F80009F57F0F02AED3FE049EC06C0EE0FBB0F83 -:101F9000661F771F881F28F0B23A6207730784070D -:101FA00028F0B25A620B730B840BE3959A9572F783 -:101FB000803830F49A95BB0F661F771F881FD2F7C1 -:101FC0009048BAC0092E0394000C11F4882352F0F3 -:101FD000BB0F40F4BF2B11F460FF04C06F5F7F4F55 -:101FE0008F4F9F4F0895EF93E0FF06C0A2EA2AEDBE -:101FF0003FE049EC5FEB53DEE5DF0F90039401FC1B -:102000009058E6E9F1E0A4C057FD9058440F551FE1 -:1020100059F05F3F71F04795880F97FB991F61F06A -:102020009F3F79F087950895121613061406551FE1 -:10203000F2CF4695F1DF08C0161617061806991F4D -:10204000F1CF86957105610508940895E894BB2742 -:1020500066277727CB0197F9089551DF08F48FEFB2 -:1020600008950BD0AFCF78DF28F07DDF18F09523EF -:1020700009F069CF6ECF1124EACFC6DFA0F3959F98 -:10208000D1F3950F50E0551F629FF001729FBB275F -:10209000F00DB11D639FAA27F00DB11DAA1F649F0B -:1020A0006627B00DA11D661F829F2227B00DA11DBE -:1020B000621F739FB00DA11D621F839FA00D611D44 -:1020C000221F749F3327A00D611D231F849F600D65 -:1020D000211D822F762F6A2F11249F5750408AF09E -:1020E000E1F088234AF0EE0FFF1FBB1F661F771F2A -:1020F000881F91505040A9F79E3F510570F023CFA3 -:10210000A6CF5F3FECF3983EDCF386957795679515 -:10211000B795F795E7959F5FC1F7FE2B880F911D47 -:102120009695879597F908959F9325DF0F9007FC63 -:10213000EE5F59CF9F3F31F0915020F4879577950E -:102140006795B795880F911D9695879597F908958E -:102150009F938F937F936F93FF93EF939B01AC01BA -:1021600080DFEF91FF9105D02F913F914F915F91CB -:1021700078CFDF93CF931F930F93FF92EF92DF926D -:102180007B018C01689405C0DA2EEF0176DFFE0139 -:10219000E894A5912591359145915591AEF3EF01C4 -:1021A0007EDDFE019701A801DA9479F7DF90EF90C8 -:1021B000FF900F911F91CF91DF910895052E97FB0E -:1021C0001EF400940E94F51057FD07D00E940311E1 -:1021D00007FC03D04EF40C94F510509540953095C3 -:1021E00021953F4F4F4F5F4F089590958095709583 -:1021F00061957F4F8F4F9F4F0895EE0FFF1F059002 -:10220000F491E02D0994A1E21A2EAA1BBB1BFD013B -:102210000DC0AA1FBB1FEE1FFF1FA217B307E407C5 -:10222000F50720F0A21BB30BE40BF50B661F771F1D -:10223000881F991F1A9469F76095709580959095FD -:102240009B01AC01BD01CF010895FC01059006166C -:1022500021F00020D9F7C00108953197CF010895EA -:102260000F931F93CF93DF93EC018B01009731F411 -:102270006115710519F480E090E038C06EE070E0FF -:1022800081E090E00E943812FC010097A1F380E801 -:1022900083830115110571F01387028781E8838319 -:1022A00080915E0190915F01892B21F4F0935F0191 -:1022B000E0935E012097C9F0D187C0878381826057 -:1022C00083838091600190916101892B71F4F09377 -:1022D0006101E09360018091620190916301892B1B -:1022E00021F4F0936301E0936201CF01DF91CF917C -:1022F0001F910F9108950F931F93CF93DF93182F82 -:10230000092FEB018B8181FD03C08FEF9FEF20C070 -:1023100082FF10C04E815F812C813D81421753079F -:102320007CF4E881F9819F012F5F3F4F3983288337 -:10233000108306C0E885F985812F0995892B29F737 -:102340002E813F812F5F3F4F3F832E83812F902F20 -:10235000DF91CF911F910F9108950F931F93CF930A -:10236000DF93E0916001F0916101238121FF1BC0A7 -:10237000EC0100E010E089916091600170916101D1 -:10238000DB011896ED91FC911997882331F009959E -:10239000892B89F30FEF1FEFEECF8AE00995892B88 -:1023A00011F4C80102C08FEF9FEFDF91CF911F9111 -:1023B0000F910895FA01AA27283051F1203181F1B7 -:1023C000E8946F936E7F6E5F7F4F8F4F9F4FAF4F3D -:1023D000B1E03ED0B4E03CD0670F781F891F9A1F50 -:1023E000A11D680F791F8A1F911DA11D6A0F711D04 -:1023F000811D911DA11D20D009F468943F912AE010 -:10240000269F11243019305D3193DEF6CF010895F7 -:10241000462F4770405D4193B3E00FD0C9F7F6CF28 -:10242000462F4F70405D4A3318F0495D31FD4052F0 -:10243000419302D0A9F7EACFB4E0A6959795879586 -:1024400077956795BA95C9F7009761057105089565 -:102450009B01AC010A2E0694579547953795279511 -:10246000BA95C9F7620F731F841F951FA01D0895A9 -:102470000F931F93CF93DF93869F8001879F100D4B -:10248000969F100D1124C8010E945412EC01009770 -:1024900029F0A80160E070E00E947B13CE01DF917B -:1024A000CF911F910F910895CF93DF9382309105C3 -:1024B00010F482E090E0E0916601F091670120E085 -:1024C00030E0A0E0B0E0309739F140815181481709 -:1024D0005907B8F04817590771F482819381109712 -:1024E00029F013969C938E9312972CC090936701BA -:1024F0008093660127C02115310531F0421753073B -:1025000018F0A901DB0101C0EF019A01BD01DF0153 -:102510000280F381E02DD7CF21153105F9F0281B7A -:10252000390B2430310580F48A819B816115710556 -:1025300021F0FB019383828304C090936701809311 -:102540006601FE01329644C0FE01E20FF31F819343 -:10255000919322503109398328833AC02091640134 -:1025600030916501232B41F420916C0030916D0076 -:10257000309365012093640120916A0030916B00D3 -:102580002115310541F42DB73EB740916E005091B1 -:102590006F00241B350BE0916401F0916501E21797 -:1025A000F307A0F42E1B3F0B2817390778F0AC0176 -:1025B0004E5F5F4F2417350748F04E0F5F1F509353 -:1025C0006501409364018193919302C0E0E0F0E0E3 -:1025D000CF01DF91CF910895CF93DF93009709F456 -:1025E00087C0FC01329713821282C0916601D0919C -:1025F0006701209781F420813181280F391F809154 -:102600006401909165018217930779F5F093650154 -:10261000E09364016DC0DE0120E030E0AE17BF073B -:1026200050F412964D915C9113979D0141155105FF -:1026300009F1DA01F3CFB383A28340815181840F82 -:10264000951F8A179B0771F48D919C911197840FA8 -:10265000951F02969183808312968D919C9113977A -:10266000938382832115310529F4F0936701E09368 -:1026700066013EC0D9011396FC93EE9312974D91DB -:102680005D91A40FB51FEA17FB0779F48081918152 -:10269000840F951F0296D90111969C938E93828187 -:1026A000938113969C938E931297E0E0F0E08A81D9 -:1026B0009B81009719F0FE01EC01F9CFCE01029643 -:1026C00028813981820F931F209164013091650127 -:1026D0002817390769F4309729F41092670110928E -:1026E000660102C013821282D0936501C093640117 -:1026F000DF91CF910895DC0101C06D9341505040AE -:08270000E0F70895F894FFCF03 -:102708000080008000800080010100006801200036 -:0A2718000D0A53746172740D000085 +:1011E0004F815885509393004093920080918E00D8 +:1011F00090918F00A0919000B0919100B7FF07C02F +:10120000B095A095909581959F4FAF4FBF4F813C72 +:10121000944DA140B105CCF08091C7009091C800D9 +:10122000892B99F41092E7001092E6001092D700F3 +:101230008091A90080618093A90010928E00109285 +:101240008F00109290001092910080918A009091EE +:101250008B00A0918C00B0918D00B7FF07C0B095B6 +:10126000A095909581959F4FAF4FBF4F813C944D76 +:10127000A140B105CCF08091C5009091C600892BAA +:1012800099F41092E5001092E4001092D60080913B +:10129000A90080628093A90010928A0010928B00AE +:1012A00010928C0010928D008091860090918700A2 +:1012B000A0918800B0918900B7FF07C0B095A095B4 +:1012C000909581959F4FAF4FBF4F813C944DA1406A +:1012D000B105CCF08091C3009091C400892B99F4A2 +:1012E0001092E3001092E2001092D5008091A900C4 +:1012F00080648093A900109286001092870010925B +:101300008800109289008091820090918300A091C2 +:101310008400B0918500B7FF07C0B095A095909567 +:1013200081959F4FAF4FBF4F813C944DA140B10578 +:10133000CCF08091C1009091C200892B99F4109259 +:10134000E1001092E0001092D4008091A900806822 +:101350008093A90010928200109283001092840062 +:10136000109285008091D700813009F0B4C080913F +:10137000D0009091D100892BB1F41092E700109227 +:10138000E600109281001092800010928E00109260 +:101390008F0010929000109291008091A9008F7E92 +:1013A0008093A90098C0A090D000B090D100809107 +:1013B000C7009091C800A81AB90AB501882777FD1F +:1013C0008095982FC0908E00D0908F00E090900074 +:1013D000F0909100C60ED71EE81EF91EC0928E0036 +:1013E000D0928F00E0929000F09291000E941C1029 +:1013F00027E73EEB4FE15DE30E9409112B013C0121 +:10140000C701B6010E941C1027E137EB41E55AE302 +:101410000E9409119B01AC01C301B2010E94160F89 +:101420006B017C018091800090918100B501681B67 +:10143000790B882777FD8095982F0E941C1020E05B +:1014400030E0A9010E9409119B01AC01C701B6015E +:101450000E94160F0E94E90F7093E7006093E60068 +:10146000B0928100A09280008091E6009091E70008 +:101470001816190634F48091D0009091D10097FD90 +:101480000DC08091E6009091E70097FF0CC080911D +:10149000D0009091D100181619062CF41092E70094 +:1014A0001092E60018C08091E6009091E7008F3F0F +:1014B000910531F02CF01093E7000093E6000BC08B +:1014C0008091E6009091E70081309F4F24F43092A4 +:1014D000E7002092E6008091D600813009F0B4C088 +:1014E0008091CE009091CF00892BB1F41092E5004D +:1014F0001092E40010927F0010927E0010928A00F9 +:1015000010928B0010928C0010928D008091A90097 +:101510008F7D8093A90098C0A090CE00B090CF009E +:101520008091C5009091C600A81AB90AB501882714 +:1015300077FD8095982FC0908A00D0908B00E09026 +:101540008C00F0908D00C60ED71EE81EF91EC092CA +:101550008A00D0928B00E0928C00F0928D000E9465 +:101560001C1027E73EEB4FE15DE30E9409112B01C0 +:101570003C01C701B6010E941C1027E137EB41E591 +:101580005AE30E9409119B01AC01C301B2010E9400 +:10159000160F6B017C0180917E0090917F00B50158 +:1015A000681B790B882777FD8095982F0E941C1067 +:1015B00020E030E0A9010E9409119B01AC01C701A4 +:1015C000B6010E94160F0E94E90F7093E500609328 +:1015D000E400B0927F00A0927E008091E4009091A0 +:1015E000E5001816190634F48091CE009091CF00D2 +:1015F00097FD0DC08091E4009091E50097FF0CC02D +:101600008091CE009091CF00181619062CF41092FC +:10161000E5001092E40018C08091E4009091E5008C +:101620008F3F910531F02CF01093E5000093E4001A +:101630000BC08091E4009091E50081309F4F24F42D +:101640003092E5002092E4008091D500813009F0CD +:10165000B4C08091CC009091CD00892BB1F4109250 +:10166000E3001092E20010927D0010927C00109234 +:101670008600109287001092880010928900809155 +:10168000A9008F7B8093A90098C0A090CC00B09057 +:10169000CD008091C3009091C400A81AB90AB50189 +:1016A000882777FD8095982FC0908600D09087007E +:1016B000E0908800F0908900C60ED71EE81EF91E43 +:1016C000C0928600D0928700E0928800F092890054 +:1016D0000E941C1027E73EEB4FE15DE30E940911D9 +:1016E0002B013C01C701B6010E941C1027E137EB1A +:1016F00041E55AE30E9409119B01AC01C301B2010B +:101700000E94160F6B017C0180917C0090917D00FE +:10171000B501681B790B882777FD8095982F0E946B +:101720001C1020E030E0A9010E9409119B01AC01CE +:10173000C701B6010E94160F0E94E90F7093E300E3 +:101740006093E200B0927D00A0927C008091E20064 +:101750009091E3001816190634F48091CC00909112 +:10176000CD0097FD0DC08091E2009091E30097FFBE +:101770000CC08091CC009091CD00181619062CF465 +:101780001092E3001092E20018C08091E200909164 +:10179000E3008F3F910531F02CF01093E3000093AC +:1017A000E2000BC08091E2009091E30081309F4FF6 +:1017B00024F43092E3002092E2008091D400813042 +:1017C00009F0B4C08091CA009091CB00892BB1F48C +:1017D0001092E1001092E00010927B0010927A00CB +:1017E0001092820010928300109284001092850063 +:1017F0008091A9008F778093A90098C0A090CA001B +:10180000B090CB008091C1009091C200A81AB90A93 +:10181000B501882777FD8095982FC0908200D090E1 +:101820008300E0908400F0908500C60ED71EE81E6D +:10183000F91EC0928200D0928300E0928400F09260 +:1018400085000E941C1027E73EEB4FE15DE30E94FC +:1018500009112B013C01C701B6010E941C1027E1B0 +:1018600037EB41E55AE30E9409119B01AC01C3012A +:10187000B2010E94160F6B017C0180917A00909159 +:101880007B00B501681B790B882777FD8095982F21 +:101890000E941C1020E030E0A9010E9409119B0168 +:1018A000AC01C701B6010E94160F0E94E90F7093A8 +:1018B000E1006093E000B0927B00A0927A008091FA +:1018C000E0009091E1001816190634F48091CA00E6 +:1018D0009091CB0097FD0DC08091E0009091E100C8 +:1018E00097FF0CC08091CA009091CB001816190682 +:1018F0002CF41092E1001092E00018C08091E000FA +:101900009091E1008F3F910531F02CF01093E100B0 +:101910000093E0000BC08091E0009091E1008130E5 +:101920009F4F24F43092E1002092E0008091A900C2 +:10193000807F8093A9003091A90080B326B3807482 +:1019400090E0A3E095958795AA95E1F72770282B5D +:1019500020952F70232B2093A9008091E600909171 +:10196000E700209166003091670028173907C9F118 +:101970008091E6009091E700892B19F485B3837F6D +:101980001CC080916900811107C08091E600909190 +:10199000E7001816190654F080916900882351F069 +:1019A0008091E6009091E70097FF04C085B3877FA0 +:1019B000846003C085B38B7F886085BB8091E6001F +:1019C0009091E70090936700809366008091E60015 +:1019D0009091E70097FF03C09195819591099BBD78 +:1019E0008ABD8091E4009091E500209164003091DF +:1019F000650028173907C9F18091E4009091E5004E +:101A0000892B19F485B38F7C1CC0809168008111EB +:101A100007C08091E4009091E5001816190654F073 +:101A200080916800882351F08091E4009091E50056 +:101A300097FF04C085B38F7D806103C085B38F7E1F +:101A4000806285BB8091E4009091E50090936500F1 +:101A5000809364008091E4009091E50097FF03C0BB +:101A600091958195910999BD88BD8091E2009091F1 +:101A7000E300209162003091630028173907C1F11B +:101A80008091E2009091E300892B19F485B38F7364 +:101A90001CC08091D300811107C08091E200909119 +:101AA000E3001816190654F08091D300882351F0F2 +:101AB0008091E2009091E30097FF04C085B38F7797 +:101AC000806403C085B38F7B806885BB8091E20012 +:101AD0009091E30090936300809362008091E20014 +:101AE0009091E30097FF03C091958195910983BD83 +:101AF0008091E0009091E1002091600030916100C0 +:101B000028173907C1F18091E0009091E100892BFD +:101B100019F482B3837F1CC08091D200811107C069 +:101B20008091E0009091E1001816190654F0809120 +:101B3000D200882351F08091E0009091E10097FF5E +:101B400004C082B3877F846003C082B38B7F8860C8 +:101B500082BB8091E0009091E100909361008093BE +:101B600060008091E0009091E10097FF03C09195A3 +:101B7000819591098CBF8091AC008F5F8093AC0000 +:101B800085B7806885BF889585B78F7785BF98C8EA +:101B90006F927F929F92AF92BF92CF92DF92EF921D +:101BA000FF920F931F93CF93DF93CDB7DEB72C97A0 +:101BB0000FB6F894DEBF0FBECDBF8C017B013A019A +:101BC000FC0117821682838181FF19C1CE01019623 +:101BD0005C01F801D380F701D3FC2591D3FE21915C +:101BE0007F01222309F407C1253249F4D3FC259152 +:101BF000D3FE21917F01253211F0912C1BC0B80139 +:101C0000822F90E00E94531263013601E2CF22231B +:101C100009F4F1C0622F70E08BEB91E02C870E94F9 +:101C2000FD112C85892B49F0F701D3FC2591D3FEBA +:101C300021917F0197FEEBCF0CC0233221F4F92DC7 +:101C4000F0619F2EF1CF2C3639F4292D2068922E89 +:101C5000EBCF222309F4CFC0622F70E084EB91E038 +:101C60002C870E94FD112C85892B41F06301F4E043 +:101C7000CF0ED11CB8018FE390E012C0233641F0A3 +:101C8000233789F0233521F5F92DF1609F2E0BC004 +:101C9000630122E0C20ED11CB801F3018081918161 +:101CA0000E945312B2CF630122E0C20ED11CF30195 +:101CB00060807180F30190FC859190FE81913F01DD +:101CC000882309F4A2CFB80190E00E945312F2CF0A +:101CD000243611F0293639F5630197FE09C0F4E086 +:101CE000CF0ED11CF30160817181828193810AC082 +:101CF000F2E0CF0ED11CF30160817181882777FD5E +:101D00008095982FF92DFF7E9F2E97FF09C0909503 +:101D10008095709561957F4F8F4F9F4FF0649F2EF8 +:101D20002AE030E038C02037A1F040F42835D1F067 +:101D30002F3609F060C028E030E019C0253719F0CF +:101D4000283751F058C0292D2F7E922E2AE030E0FE +:101D50000EC0892D8061982E992D9462992E20E1D4 +:101D600030E005C0E92DE4609E2E20E132E0630101 +:101D700097FE09C0F4E0CF0ED11CF30160817181A0 +:101D80008281938108C0F2E0CF0ED11CF301608103 +:101D9000718180E090E0A5010E94B212782E7A183D +:101DA00096FE05C0B8018DE290E00E94531294FEA9 +:101DB00016C0FE01E70DF11D8081803381F0B8016E +:101DC00080E390E00E94531292FE09C0292D2072F8 +:101DD000822F90E0B801885A9F4F0E9453127A9444 +:101DE000F501E70DF11D8081B80190E00E945312CA +:101DF0007110F5CF0ACFF8018681978102C08FEF6D +:101E00009FEF2C960FB6F894DEBF0FBECDBFDF91CB +:101E1000CF911F910F91FF90EF90DF90CF90BF90E7 +:101E2000AF909F907F906F9008955058BB27AA273E +:101E30000ED0A0C169D130F06ED120F031F49F3FB7 +:101E400011F41EF45EC10EF4E095E7FB54C1E92FD6 +:101E5000B3D180F3BA17620773078407950718F0A8 +:101E600071F49EF5CBC10EF4E0950B2EBA2FA02D88 +:101E70000B01B90190010C01CA01A0011124FF2737 +:101E8000591B99F0593F50F4503E68F11A16F04032 +:101E9000A22F232F342F4427585FF3CF4695379531 +:101EA0002795A795F0405395C9F77EF41F16BA0BF6 +:101EB000620B730B840BBAF09150A1F0FF0FBB1FA4 +:101EC000661F771F881FC2F70EC0BA0F621F731FED +:101ED000841F48F4879577956795B795F7959E3F4A +:101EE00008F0B3CF9395880F08F09927EE0F9795D8 +:101EF00087950895DCD008F481E0089514D1E39526 +:101F00004AC10CD037C107D140F0FED030F021F4E7 +:101F10005F3F19F0F0C0511172C1F3C04DD198F379 +:101F20009923C9F35523B1F3951B550BBB27AA275A +:101F300062177307840738F09F5F5F4F220F331FCC +:101F4000441FAA1FA9F333D00E2E3AF0E0E830D098 +:101F500091505040E695001CCAF729D0FE2F27D09B +:101F6000660F771F881FBB1F261737074807AB0769 +:101F7000B0E809F0BB0B802DBF01FF2793585F4FDE +:101F80002AF09E3F510568F0B6C039C15F3FECF3BF +:101F9000983EDCF3869577956795B795F7959F5FA3 +:101FA000C9F7880F911D9695879597F90895E1E0F7 +:101FB000660F771F881FBB1F621773078407BA0756 +:101FC00020F0621B730B840BBA0BEE1F88F7E095B1 +:101FD000089504D06894B11112C10895F5D088F025 +:101FE0009F5790F0B92F9927B751A0F0D1F0660F05 +:101FF000771F881F991F1AF0BA95C9F712C0B13020 +:1020000081F0FCD0B1E00895F9C0672F782F8827C0 +:10201000B85F39F0B93FCCF3869577956795B3955E +:10202000D9F73EF490958095709561957F4F8F4FCD +:102030009F4F0895E89409C097FB3EF490958095D2 +:10204000709561957F4F8F4F9F4F9923A9F0F92F7E +:1020500096E9BB279395F695879577956795B795FC +:10206000F111F8CFFAF4BB0F11F460FF1BC06F5FE2 +:102070007F4F8F4F9F4F16C0882311F096E911C0F4 +:10208000772321F09EE8872F762F05C0662371F015 +:1020900096E8862F70E060E02AF09A95660F771F29 +:1020A000881FDAF7880F9695879597F90895990F05 +:1020B0000008550FAA0BE0E8FEEF16161706E80712 +:1020C000F907C0F012161306E407F50798F0621B33 +:1020D000730B840B950B39F40A2661F0232B242B08 +:1020E000252B21F408950A2609F4A140A6958FEF27 +:1020F000811D811D089597F99F6780E870E060E079 +:1021000008959FEF80EC089500240A941616170690 +:1021100018060906089500240A94121613061406D8 +:1021200005060895EECF50D0E8F3E894E0E0BB2731 +:102130009F57F0F02AED3FE049EC06C0EE0FBB0FD1 +:10214000661F771F881F28F0B23A6207730784075B +:1021500028F0B25A620B730B840BE3959A9572F7D1 +:10216000803830F49A95BB0F661F771F881FD2F70F +:102170009048BAC0092E0394000C11F4882352F041 +:10218000BB0F40F4BF2B11F460FF04C06F5F7F4FA3 +:102190008F4F9F4F0895EF93E0FF06C0A2EA2AED0C +:1021A0003FE049EC5FEB53DEE5DF0F90039401FC69 +:1021B0009058E6E9F1E0A4C057FD9058440F551F30 +:1021C00059F05F3F71F04795880F97FB991F61F0B9 +:1021D0009F3F79F087950895121613061406551F30 +:1021E000F2CF4695F1DF08C0161617061806991F9C +:1021F000F1CF86957105610508940895E894BB2791 +:1022000066277727CB0197F9089551DF08F48FEF00 +:1022100008950BD0AFCF78DF28F07DDF18F095233D +:1022200009F069CF6ECF1124EACFC6DFA0F3959FE6 +:10223000D1F3950F50E0551F629FF001729FBB27AD +:10224000F00DB11D639FAA27F00DB11DAA1F649F59 +:102250006627B00DA11D661F829F2227B00DA11D0C +:10226000621F739FB00DA11D621F839FA00D611D92 +:10227000221F749F3327A00D611D231F849F600DB3 +:10228000211D822F762F6A2F11249F5750408AF0EC +:10229000E1F088234AF0EE0FFF1FBB1F661F771F78 +:1022A000881F91505040A9F79E3F510570F023CFF1 +:1022B000A6CF5F3FECF3983EDCF386957795679564 +:1022C000B795F795E7959F5FC1F7FE2B880F911D96 +:1022D0009695879597F908959F9325DF0F9007FCB2 +:1022E000EE5F59CF9F3F31F0915020F4879577955D +:1022F0006795B795880F911D9695879597F90895DD +:102300009F938F937F936F93FF93EF939B01AC0108 +:1023100080DFEF91FF9105D02F913F914F915F9119 +:1023200078CFDF93CF931F930F93FF92EF92DF92BB +:102330007B018C01689405C0DA2EEF0176DFFE0187 +:10234000E894A5912591359145915591AEF3EF0112 +:102350007EDDFE019701A801DA9479F7DF90EF9016 +:10236000FF900F911F91CF91DF910895052E97FB5C +:102370001EF400940E94CD1157FD07D00E94DB117E +:1023800007FC03D04EF40C94CD1150954095309538 +:1023900021953F4F4F4F5F4F0895909580957095D1 +:1023A00061957F4F8F4F9F4F0895EE0FFF1F059050 +:1023B000F491E02D0994A1E21A2EAA1BBB1BFD018A +:1023C0000DC0AA1FBB1FEE1FFF1FA217B307E40714 +:1023D000F50720F0A21BB30BE40BF50B661F771F6C +:1023E000881F991F1A9469F760957095809590954C +:1023F0009B01AC01BD01CF010895FC0105900616BB +:1024000021F00020D9F7C00108953197CF01089538 +:102410000F931F93CF93DF93EC018B01009731F45F +:102420006115710519F480E090E038C06EE070E04D +:1024300081E090E00E941013FC010097A1F380E876 +:1024400083830115110571F01387028781E8838367 +:1024500080915E0190915F01892B21F4F0935F01DF +:10246000E0935E012097C9F0D187C08783818260A5 +:1024700083838091600190916101892B71F4F093C5 +:102480006101E09360018091620190916301892B69 +:1024900021F4F0936301E0936201CF01DF91CF91CA +:1024A0001F910F9108950F931F93CF93DF93182FD0 +:1024B000092FEB018B8181FD03C08FEF9FEF20C0BF +:1024C00082FF10C04E815F812C813D8142175307EE +:1024D0007CF4E881F9819F012F5F3F4F3983288386 +:1024E000108306C0E885F985812F0995892B29F786 +:1024F0002E813F812F5F3F4F3F832E83812F902F6F +:10250000DF91CF911F910F9108950F931F93CF9358 +:10251000DF93E0916001F0916101238121FF1BC0F5 +:10252000EC0100E010E0899160916001709161011F +:10253000DB011896ED91FC911997882331F00995EC +:10254000892B89F30FEF1FEFEECF8AE00995892BD6 +:1025500011F4C80102C08FEF9FEFDF91CF911F915F +:102560000F910895FA01AA27283051F1203181F105 +:10257000E8946F936E7F6E5F7F4F8F4F9F4FAF4F8B +:10258000B1E03ED0B4E03CD0670F781F891F9A1F9E +:10259000A11D680F791F8A1F911DA11D6A0F711D52 +:1025A000811D911DA11D20D009F468943F912AE05E +:1025B000269F11243019305D3193DEF6CF01089546 +:1025C000462F4770405D4193B3E00FD0C9F7F6CF77 +:1025D000462F4F70405D4A3318F0495D31FD40523F +:1025E000419302D0A9F7EACFB4E0A69597958795D5 +:1025F00077956795BA95C9F70097610571050895B4 +:102600009B01AC010A2E069457954795379527955F +:10261000BA95C9F7620F731F841F951FA01D0895F7 +:102620000F931F93CF93DF93869F8001879F100D99 +:10263000969F100D1124C8010E942C13EC010097E5 +:1026400029F0A80160E070E00E945314CE01DF91F0 +:10265000CF911F910F910895CF93DF938230910511 +:1026600010F482E090E0E0916601F091670120E0D3 +:1026700030E0A0E0B0E0309739F140815181481757 +:102680005907B8F04817590771F482819381109760 +:1026900029F013969C938E9312972CC09093670108 +:1026A0008093660127C02115310531F04217530789 +:1026B00018F0A901DB0101C0EF019A01BD01DF01A2 +:1026C0000280F381E02DD7CF21153105F9F0281BC9 +:1026D000390B2430310580F48A819B8161157105A5 +:1026E00021F0FB019383828304C090936701809360 +:1026F0006601FE01329644C0FE01E20FF31F819392 +:10270000919322503109398328833AC02091640182 +:1027100030916501232B41F420916C0030916D00C4 +:10272000309365012093640120916A0030916B0021 +:102730002115310541F42DB73EB740916E005091FF +:102740006F00241B350BE0916401F0916501E217E5 +:10275000F307A0F42E1B3F0B2817390778F0AC01C4 +:102760004E5F5F4F2417350748F04E0F5F1F5093A1 +:102770006501409364018193919302C0E0E0F0E031 +:10278000CF01DF91CF910895CF93DF93009709F4A4 +:1027900087C0FC01329713821282C0916601D091EA +:1027A0006701209781F420813181280F391F8091A2 +:1027B0006401909165018217930779F5F0936501A3 +:1027C000E09364016DC0DE0120E030E0AE17BF078A +:1027D00050F412964D915C9113979D01411551054E +:1027E00009F1DA01F3CFB383A28340815181840FD1 +:1027F000951F8A179B0771F48D919C911197840FF7 +:10280000951F02969183808312968D919C911397C8 +:10281000938382832115310529F4F0936701E093B6 +:1028200066013EC0D9011396FC93EE9312974D9129 +:102830005D91A40FB51FEA17FB0779F480819181A0 +:10284000840F951F0296D90111969C938E938281D5 +:10285000938113969C938E931297E0E0F0E08A8127 +:102860009B81009719F0FE01EC01F9CFCE01029691 +:1028700028813981820F931F209164013091650175 +:102880002817390769F4309729F4109267011092DC +:10289000660102C013821282D0936501C093640165 +:1028A000DF91CF910895DC0101C06D9341505040FC +:0828B000E0F70895F894FFCF52 +:1028B8000080008000800080010100006801200085 +:0A28C8000D0A53746172740D0000D4 :00000001FF diff --git a/scripts/wt_node.py b/scripts/wt_node.py index a5978b0..3d1c972 100755 --- a/scripts/wt_node.py +++ b/scripts/wt_node.py @@ -68,7 +68,7 @@ class MoveBase: self.handicap_last = (-1, -1) self.pStripe = LPD8806(1, 0, 12) rospy.Subscriber("cmd_vel_out", Twist, self.cmdVelReceived) - rospy.Subscriber("imu", Imu, self.imuReceived) + #rospy.Subscriber("imu", Imu, self.imuReceived) rospy.Subscriber("led_stripe", LedStripe, self.led_stripe_received) self.run() @@ -80,7 +80,7 @@ class MoveBase: i = 0 while not rospy.is_shutdown(): #print struct.unpack(">B", i2c_read_reg(0x50, 0xA2, 1))[0] # count test - self.get_tle_err() + self.get_motor_err() self.get_odom() self.get_voltage() if i % 2: @@ -141,7 +141,7 @@ class MoveBase: return reset - def get_tle_err(self): + def get_motor_err(self): err = struct.unpack(">B", i2c_read_reg(0x50, 0xA1, 1))[0] msg = DiagnosticArray() @@ -151,10 +151,16 @@ class MoveBase: stat.level = DiagnosticStatus.ERROR if err else DiagnosticStatus.OK stat.message = "0x%02x" % err - stat.values.append(KeyValue("aft left", str(bool(err & (1 << 0))))) - stat.values.append(KeyValue("front left", str(bool(err & (1 << 1))))) - stat.values.append(KeyValue("front right", str(bool(err & (1 << 2))))) - stat.values.append(KeyValue("aft right", str(bool(err & (1 << 3))))) + # Diag + stat.values.append(KeyValue("aft left diag", str(bool(err & (1 << 0))))) + stat.values.append(KeyValue("front left diag", str(bool(err & (1 << 1))))) + stat.values.append(KeyValue("aft right diag", str(bool(err & (1 << 2))))) + stat.values.append(KeyValue("front right diag", str(bool(err & (1 << 3))))) + # Stall + stat.values.append(KeyValue("aft left stall", str(bool(err & (1 << 4))))) + stat.values.append(KeyValue("front left stall", str(bool(err & (1 << 5))))) + stat.values.append(KeyValue("aft right stall", str(bool(err & (1 << 6))))) + stat.values.append(KeyValue("front right stall", str(bool(err & (1 << 7))))) msg.status.append(stat) self.pub_diag.publish(msg)