From c3db2ea74a51a2623b04d4bc5796c39be2e28453 Mon Sep 17 00:00:00 2001 From: Erik Andresen Date: Tue, 6 Sep 2016 21:46:02 +0200 Subject: [PATCH] motor_ctrl: break when going to fast --- avr/motor_ctrl/main.c | 41 +- avr/motor_ctrl/main.hex | 952 ++++++++++++++++++++-------------------- config/razor.yaml | 4 +- scripts/pid_manual.py | 25 +- scripts/wt_node.py | 3 + 5 files changed, 528 insertions(+), 497 deletions(-) diff --git a/avr/motor_ctrl/main.c b/avr/motor_ctrl/main.c index 6d9f620..abbf538 100644 --- a/avr/motor_ctrl/main.c +++ b/avr/motor_ctrl/main.c @@ -110,6 +110,7 @@ #define STEP_PER_M_LEFT (STEP_PER_M_AVG) #define STEP_PER_M_RIGHT (STEP_PER_M_AVG) #define WHEEL_DIST 0.36923 // Real: 0.252 +#define PWM_BREAK INT16_MIN enum mode { MOTOR_MANUAL, @@ -698,6 +699,8 @@ static void update_motor(void) { if (motor1 == 0) { // stop PORTC &= ~(1 << 3) & ~(1 << 2); + } else if (motor1 == PWM_BREAK) { + PORTC |= (1 << 3) | (1 << 2); } else if ((!motor1_switch && motor1 > 0) || (motor1_switch && motor1 < 0)) { // forward uint8_t tmp=PORTC; @@ -720,6 +723,8 @@ static void update_motor(void) { if (motor2 == 0) { // stop PORTC &= ~(1 << 5) & ~(1 << 4); + } else if (motor2 == PWM_BREAK) { + PORTC |= (1 << 5) | (1 << 4); } else if ((!motor2_switch && motor2 > 0) || (motor2_switch && motor2 < 0)) { // forward uint8_t tmp=PORTC; @@ -742,6 +747,8 @@ static void update_motor(void) { if (motor3 == 0) { // stop PORTC &= ~(1 << 7) & ~(1 << 6); + } else if (motor3 == PWM_BREAK) { + PORTC |= (1 << 7) | (1 << 6); } else if ((!motor3_switch && motor3 > 0) || (motor3_switch && motor3 < 0)) { // forward uint8_t tmp=PORTC; @@ -764,6 +771,8 @@ static void update_motor(void) { if (motor4 == 0) { // stop PORTD &= ~(1 << 3) & ~(1 << 2); + } else if (motor4 == PWM_BREAK) { + PORTD |= (1 << 3) | (1 << 2); } else if ((!motor4_switch && motor4 > 0) || (motor4_switch && motor4 < 0)) { // forward uint8_t tmp=PORTD; @@ -863,26 +872,26 @@ static void update_pid(void) { static int32_t esum4=0; // protect motors from damage if stalling - if (labs(esum1) > 120000 && speed1 == 0) { + if (labs(esum1) > 140000 && speed1 == 0) { motor1 = 0; motor1_mode = MOTOR_MANUAL; error_state |= (1<<4); esum1 = 0; } - if (labs(esum2) > 120000 && speed2 == 0) { + if (labs(esum2) > 140000 && speed2 == 0) { motor2 = 0; motor2_mode = MOTOR_MANUAL; error_state |= (1<<5); esum2 = 0; } - if (labs(esum3) > 120000 && speed3 == 0) { + if (labs(esum3) > 140000 && 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) { + if (labs(esum4) > 140000 && speed4 == 0) { motor4 = 0; motor4_mode = MOTOR_MANUAL; error_state |= (1<<7); @@ -891,7 +900,7 @@ static void update_pid(void) { if (motor1_mode == MOTOR_PID) { if (speed1_wish != speed1_wish_old) { - esum1 = 0; + if (abs(speed1_wish - speed1_wish_old) > 500) esum1 = 0; speed1_wish_old = speed1_wish; } @@ -905,15 +914,15 @@ static void update_pid(void) { motor1 = KP*e + KI*PID_T*esum1 + KD/PID_T*(e - eold1); eold1 = e; - if (motor1 > 0 && speed1_wish < 0) motor1=0; - else if (motor1 < 0 && speed1_wish > 0) motor1=0; + if (motor1 > 0 && speed1_wish < 0) motor1=PWM_BREAK; + else if (motor1 < 0 && speed1_wish > 0) motor1=PWM_BREAK; else if (motor1 > 255) motor1 = 255; else if (motor1 < -255) motor1 = -255; } } if (motor2_mode == MOTOR_PID) { if (speed2_wish != speed2_wish_old) { - esum2 = 0; + if (abs(speed2_wish - speed2_wish_old) > 500) esum2 = 0; speed2_wish_old = speed2_wish; } @@ -927,15 +936,15 @@ static void update_pid(void) { motor2 = KP*e + KI*PID_T*esum2 + KD/PID_T*(e - eold2); eold2 = e; - if (motor2 > 0 && speed2_wish < 0) motor2=0; - else if (motor2 < 0 && speed2_wish > 0) motor2=0; + if (motor2 > 0 && speed2_wish < 0) motor2=PWM_BREAK; + else if (motor2 < 0 && speed2_wish > 0) motor2=PWM_BREAK; else if (motor2 > 255) motor2 = 255; else if (motor2 < -255) motor2 = -255; } } if (motor3_mode == MOTOR_PID) { if (speed3_wish != speed3_wish_old) { - esum3 = 0; + if (abs(speed3_wish - speed3_wish_old) > 500) esum3 = 0; speed3_wish_old = speed3_wish; } @@ -949,15 +958,15 @@ static void update_pid(void) { motor3 = KP*e + KI*PID_T*esum3 + KD/PID_T*(e - eold3); eold3 = e; - if (motor3 > 0 && speed3_wish < 0) motor3=0; - else if (motor3 < 0 && speed3_wish > 0) motor3=0; + if (motor3 > 0 && speed3_wish < 0) motor3=PWM_BREAK; + else if (motor3 < 0 && speed3_wish > 0) motor3=PWM_BREAK; else if (motor3 > 255) motor3 = 255; else if (motor3 < -255) motor3 = -255; } } if (motor4_mode == MOTOR_PID) { if (speed4_wish != speed4_wish_old) { - esum4 = 0; + if (abs(speed4_wish - speed4_wish_old) > 500) esum4 = 0; speed4_wish_old = speed4_wish; } @@ -971,8 +980,8 @@ static void update_pid(void) { motor4 = KP*e + KI*PID_T*esum4 + KD/PID_T*(e - eold4); eold4 = e; - if (motor4 > 0 && speed4_wish < 0) motor4=0; - else if (motor4 < 0 && speed4_wish > 0) motor4=0; + if (motor4 > 0 && speed4_wish < 0) motor4=PWM_BREAK; + else if (motor4 < 0 && speed4_wish > 0) motor4=PWM_BREAK; else if (motor4 > 255) motor4 = 255; else if (motor4 < -255) motor4 = -255; } diff --git a/avr/motor_ctrl/main.hex b/avr/motor_ctrl/main.hex index 3a80dc0..c405f68 100644 --- a/avr/motor_ctrl/main.hex +++ b/avr/motor_ctrl/main.hex @@ -27,10 +27,10 @@ :1001A000A9020C50B9918688083CA6AAAA2ABE00CA :1001B0000000803F45464765666700202B2D2E30A6 :1001C00031323334353637383968000011241FBED8 -:1001D000CFE5D8E0DEBFCDBF10E0A0E6B0E0E0E5BF -:1001E000F9E202C005900D92AA37B107D9F721E0D4 +:1001D000CFE5D8E0DEBFCDBF10E0A0E6B0E0E8E4B8 +:1001E000FAE202C005900D92AA37B107D9F721E0D3 :1001F000AAE7B0E001C01D92A037B207E1F70E9464 -:1002000020060C94A6140C9400001F920F920FB6B7 +:1002000020060C9422150C9400001F920F920FB63A :100210000F9211242F933F934F935F936F937F938C :100220008F939F93AF93BF93EF93FF9381B1887F99 :10023000803881F040F4803609F01CC385EC86BF1D @@ -74,7 +74,7 @@ :100490008091A4009091A500A091A600B091A70022 :1004A0006627782F892F9A2F622B6093A400709370 :1004B000A5008093A6009093A7002DEC30E344EBB9 -:1004C00055E40E9455110E9435107093D900609335 +:1004C00055E40E94D1110E94B1107093D90060933D :1004D000D8007093D7006093D60081E08093DF004E :1004E0008093DE00B7C183B190E0A0E0B0E00EC021 :1004F00023B18091A4009091A500A091A600B09195 @@ -91,7 +91,7 @@ :1005A000DB0058C183B18093AB0003C083B180935B :1005B000AA0081E08093FA004DC18091F10090E0A3 :1005C000FC013297E13AF10508F04BC1E65DFF4FBF -:1005D0000C9421128AB59BB53CC188B599B539C137 +:1005D0000C949D128AB59BB53CC188B599B539C1BB :1005E00083B537C18CB735C113B834C18091E600EB :1005F0009091E7000EC08091E4009091E50009C061 :100600008091E2009091E30004C08091E00090911D @@ -171,7 +171,7 @@ :100AA0000F900FBE0F901F9018959C018AB188611E :100AB0008AB9579A80B5866080BD40E050E084E0F6 :100AC000220F331F441F551F8A95D1F760E079E04C -:100AD0008DE390E00E940212DA01C9010197A10999 +:100AD0008DE390E00E947E12DA01C9010197A1091D :100AE000B109892F9A2FAB2FBB27A7FDBA9580BDDF :100AF000215029B98FEF90E09093FC008093FB0088 :100B00009093FE008093FD0008955D9BFECFFC0155 @@ -180,7 +180,7 @@ :100B3000DF91CF910895CF93DF93EC01CE01219601 :100B4000FC012081222319F00E948505F7CFDF9157 :100B5000CF9108955F9BFECF8CB190E008950C94E7 -:100B6000AA056FEA75E08BE895E00C945412CF93D8 +:100B6000AA056FEA75E08BE895E00C94D012CF935C :100B7000DF93FC01E253FF4FA081B181EC01C4532C :100B8000DF4F28813981A217B307A1F05D9B12C006 :100B90002C912CB920813181AC0145535F4F241732 @@ -200,465 +200,481 @@ :100C70000E9455050E94B10580E582B986B78B7E3A :100C800086BF85EC86BF81EA8FBD89E08EBD1BBC27 :100C90001ABC19BC18BC89E685BD13BC83BF1CBE39 -:100CA00080E790E00E94D11285B78F7885BF84E0FD -:100CB00089BF78942224239433243A940FEF10E0D0 -:100CC0008091F1008F3F41F48091F000853A21F44A -:100CD000F894E0E0F8E109958091FA00882309F49E -:100CE000E4C0F8948090F2009090F300A090F4009B -:100CF000B090F5006091F6007091F7008091F800D7 -:100D00009091F9001092FA00789427EB3BE04DEBBC -:100D10005EE30E94551120E030E040E05FE30E9476 -:100D20005511A50194010E94620F6B017C01A50180 -:100D30009401C501B4010E94620FA70196010E94AF -:100D4000610F2DEC30E344EB55E40E9455114B014B -:100D50005C012DEC30E344EB55E4C701B6010E9481 -:100D600055116B017C018091AA008823C9F1809103 -:100D7000AA0024E630E0281B3109B901882777FD55 -:100D80008095982F0E9468109B01AC01C501B401A9 -:100D90000E94551120E030E048EC52E40E94CD0F53 -:100DA0000E9435107093D9006093D8008091AA00FA -:100DB00044E650E0481B5109BA01882777FD809529 -:100DC000982F0E9468109B01AC01C701B6010E94D8 -:100DD000551120E030E048EC52E40E94CD0F0AC0EB -:100DE000C501B4010E9435107093D9006093D800FA -:100DF000C701B6010E9435107093D5006093D400EE -:100E00008091AB008823C1F18091AB00E4E6F0E073 -:100E1000E81BF109BF01882777FD8095982F0E9474 -:100E200068109B01AC01C501B4010E94551120E07E -:100E300030E048EC52E40E94CD0F0E9435107093D0 -:100E4000D7006093D6008091AB0064E670E0681B29 -:100E50007109882777FD8095982F0E9468109B0163 -:100E6000AC01C701B6010E94551120E030E048EC0A -:100E700052E40E94CD0F0AC0C501B4010E94351092 -:100E80007093D7006093D600C701B6010E94351059 -:100E90007093D3006093D200F1E0F093DF00F09301 -:100EA000DE00F093DD00F093DC008091C9008C3906 -:100EB00008F4B2C61092C900F8942091E60030916F -:100EC000E7003A8329834091E4005091E5005C8378 -:100ED0004B838091E2009091E3009E838D83E091AB -:100EE000E000F091E100F887EF837894809198001A -:100EF000909199007901E81AF90A809196009091F1 -:100F000097006A01C81AD90A8091940090919500BF -:100F10006D807E80681A790A80919200909193008A -:100F20002F01481A590AB701882777FD8095982F15 -:100F30000E9468102AE037ED43E25CE30E94CD0F87 -:100F40000E9435106D877E878F87988BB601882722 -:100F500077FD8095982F0E9468102AE037ED43E2D4 -:100F60005CE30E94CD0F0E943510698B7A8B8B8BCE -:100F70009C8BB301882777FD8095982F0E9468107D -:100F80002AE037ED43E25CE30E94CD0F0E9435106A -:100F90006D8B7E8B8F8B988FB201882777FD809524 -:100FA000982F0E9468102AE037ED43E25CE30E942C -:100FB000CD0F0E943510698F7A8F8B8F9C8FB70170 -:100FC0006C0D7D1D882777FD8095982F0E946810F5 -:100FD0002DEC30E344E356E40E94CD0F4B015C015D -:100FE000B301640D751D882777FD8095982F0E94A9 -:100FF00068102DEC30E344E356E40E94CD0F2B0142 -:101000003C01A50194010E94610F27EB3BE04DEBF1 -:101010005EE30E94CD0F69877A878B879C876091FA -:10102000B5007091B6008091B7009091B800298505 -:101030003A854B855C850E94620F6B017C012BED2C -:101040003FE049EC50E40E94511118164CF42BED8E -:101050003FE049EC50E4C701B6010E94610F12C0A5 -:101060002BED3FE049EC50ECC701B6010E94C60FE2 -:1010700087FF0AC02BED3FE049EC50E4C701B60101 -:101080000E94620F6B017C01A3019201C501B401B2 -:101090000E94620F20E030E040E05FE30E945511C3 -:1010A0004B015C014090BD005090BE006090BF00BD -:1010B0007090C000C701B6010E94CA0FA50194013B -:1010C0000E9455119B01AC01C301B2010E94620F45 -:1010D0006D8F7E8F8F8F98A34090B9005090BA008B -:1010E0006090BB007090BC00C701B6010E94B811AF -:1010F000A50194010E9455119B01AC01C301B201ED -:101100000E94620F2B013C012AE037ED43E25CE3D1 -:10111000C501B4010E94CD0F4B015C012AE037EDFF -:1011200043E25CE369857A858B859C850E94CD0FBF -:10113000F894C092B500D092B600E092B700F09259 -:10114000B8002D8D3E8D4F8D58A12093BD0030935A -:10115000BE004093BF005093C0004092B90050922F -:10116000BA006092BB007092BC004D855E855093C2 -:10117000C8004093C700E989FA89F093C600E0935C -:10118000C5002D893E893093C4002093C300498D4A -:101190005A8D5093C2004093C1008092B10090924A -:1011A000B200A092B300B092B4006093AD0070930F -:1011B000AE008093AF009093B000789489819A81BB -:1011C0009093990080939800EB81FC81F0939700B5 -:1011D000E09396002D813E813093950020939400FA -:1011E0004F815885509393004093920080918E00D8 -:1011F00090918F00A0919000B0919100B7FF07C02F -:10120000B095A095909581959F4FAF4FBF4F813C72 -:10121000944DA140B105CCF08091C7009091C800D9 -:10122000892B99F41092EF001092EE001092DF00DB -:101230008091A90080618093A90010928E00109285 -:101240008F00109290001092910080918A009091EE -:101250008B00A0918C00B0918D00B7FF07C0B095B6 -:10126000A095909581959F4FAF4FBF4F813C944D76 -:10127000A140B105CCF08091C5009091C600892BAA -:1012800099F41092ED001092EC001092DE00809123 -:10129000A90080628093A90010928A0010928B00AE -:1012A00010928C0010928D008091860090918700A2 -:1012B000A0918800B0918900B7FF07C0B095A095B4 -:1012C000909581959F4FAF4FBF4F813C944DA1406A -:1012D000B105CCF08091C3009091C400892B99F4A2 -:1012E0001092EB001092EA001092DD008091A900AC -:1012F00080648093A900109286001092870010925B -:101300008800109289008091820090918300A091C2 -:101310008400B0918500B7FF07C0B095A095909567 -:1013200081959F4FAF4FBF4F813C944DA140B10578 -:10133000CCF08091C1009091C200892B99F4109259 -:10134000E9001092E8001092DC008091A90080680A -:101350008093A90010928200109283001092840062 -:10136000109285008091DF00813009F0C7C0209184 -:10137000D8003091D9008091D0009091D1002817E9 -:10138000390781F010928E0010928F001092900019 -:10139000109291008091D8009091D9009093D10043 -:1013A0008093D0008091D8009091D900892B71F45E -:1013B0001092EF001092EE001092810010928000C7 -:1013C0008091A9008F7E8093A90098C0A090D8003A -:1013D000B090D9008091C7009091C800A81AB90AAE -:1013E000B501882777FD8095982FC0908E00D0900A -:1013F0008F00E0909000F0909100C60ED71EE81E7E -:10140000F91EC0928E00D0928F00E0929000F09270 -:1014100091000E9468102FE832EC45E75DE30E94DE -:1014200055112B013C01C701B6010E9468102FE63F -:1014300032E143E85AE30E9455119B01AC01C3011C -:10144000B2010E94620F6B017C018091800090913B -:101450008100B501681B790B882777FD8095982F4F -:101460000E94681020E030E0A9010E9455119B0104 -:10147000AC01C701B6010E94620F0E943510709343 -:10148000EF006093EE00B0928100A0928000809106 -:10149000EE009091EF001816190634F48091D800F0 -:1014A0009091D90097FD0DC08091EE009091EF00D2 -:1014B00097FF0CC08091D8009091D900181619069A -:1014C0002CF41092EF001092EE0018C08091EE0004 -:1014D0009091EF008F3F910531F02CF01093EF00C9 -:1014E0000093EE000BC08091EE009091EF008130F0 -:1014F0009F4F24F43092EF002092EE008091DE00A6 -:10150000813009F0C7C02091D6003091D70080917A -:10151000CE009091CF002817390781F010928A00F1 -:1015200010928B0010928C0010928D008091D6004A -:101530009091D7009093CF008093CE008091D600F9 -:101540009091D700892B71F41092ED001092EC006D -:1015500010927F0010927E008091A9008F7D809371 -:10156000A90098C0A090D600B090D7008091C50087 -:101570009091C600A81AB90AB501882777FD809511 -:10158000982FC0908A00D0908B00E0908C00F09053 -:101590008D00C60ED71EE81EF91EC0928A00D0929A -:1015A0008B00E0928C00F0928D000E9468102FE872 -:1015B00032EC45E75DE30E9455112B013C01C70168 -:1015C000B6010E9468102FE632E143E85AE30E9418 -:1015D00055119B01AC01C301B2010E94620F6B0166 -:1015E0007C0180917E0090917F00B501681B790B92 -:1015F000882777FD8095982F0E94681020E030E0C2 -:10160000A9010E9455119B01AC01C701B6010E94BE -:10161000620F0E9435107093ED006093EC00B09261 -:101620007F00A0927E008091EC009091ED00181652 -:10163000190634F48091D6009091D70097FD0DC023 -:101640008091EC009091ED0097FF0CC08091D60046 -:101650009091D700181619062CF41092ED001092F4 -:10166000EC0018C08091EC009091ED008F3F910547 -:1016700031F02CF01093ED000093EC000BC0809142 -:10168000EC009091ED0081309F4F24F43092ED00FA -:101690002092EC008091DD00813009F0C7C02091DC -:1016A000D4003091D5008091CC009091CD002817C6 -:1016B000390781F0109286001092870010928800FE -:1016C000109289008091D4009091D5009093CD0024 -:1016D0008093CC008091D4009091D500892B71F437 -:1016E0001092EB001092EA0010927D0010927C00A4 -:1016F0008091A9008F7B8093A90098C0A090D4000E -:10170000B090D5008091C3009091C400A81AB90A86 -:10171000B501882777FD8095982FC0908600D090DE -:101720008700E0908800F0908900C60ED71EE81E62 -:10173000F91EC0928600D0928700E0928800F09255 -:1017400089000E9468102FE832EC45E75DE30E94B3 -:1017500055112B013C01C701B6010E9468102FE60C -:1017600032E143E85AE30E9455119B01AC01C301E9 -:10177000B2010E94620F6B017C0180917C0090910C -:101780007D00B501681B790B882777FD8095982F20 -:101790000E94681020E030E0A9010E9455119B01D1 -:1017A000AC01C701B6010E94620F0E943510709310 -:1017B000EB006093EA00B0927D00A0927C008091E3 -:1017C000EA009091EB001816190634F48091D400C9 -:1017D0009091D50097FD0DC08091EA009091EB00AB -:1017E00097FF0CC08091D4009091D500181619066F -:1017F0002CF41092EB001092EA0018C08091EA00DD -:101800009091EB008F3F910531F02CF01093EB009D -:101810000093EA000BC08091EA009091EB008130C8 -:101820009F4F24F43092EB002092EA008091DC007C -:10183000813009F0C7C02091D2003091D30080914F -:10184000CA009091CB002817390781F010928200CE -:101850001092830010928400109285008091D20033 -:101860009091D3009093CB008093CA008091D200D6 -:101870009091D300892B71F41092E9001092E80046 -:1018800010927B0010927A008091A9008F7780934C -:10189000A90098C0A090D200B090D3008091C10060 -:1018A0009091C200A81AB90AB501882777FD8095E2 -:1018B000982FC0908200D0908300E0908400F09038 -:1018C0008500C60ED71EE81EF91EC0928200D09277 -:1018D0008300E0928400F09285000E9468102FE857 -:1018E00032EC45E75DE30E9455112B013C01C70135 -:1018F000B6010E9468102FE632E143E85AE30E94E5 -:1019000055119B01AC01C301B2010E94620F6B0132 -:101910007C0180917A0090917B00B501681B790B66 -:10192000882777FD8095982F0E94681020E030E08E -:10193000A9010E9455119B01AC01C701B6010E948B -:10194000620F0E9435107093E9006093E800B09236 -:101950007B00A0927A008091E8009091E90018162F -:10196000190634F48091D2009091D30097FD0DC0F8 -:101970008091E8009091E90097FF0CC08091D2001F -:101980009091D300181619062CF41092E9001092C9 -:10199000E80018C08091E8009091E9008F3F910520 -:1019A00031F02CF01093E9000093E8000BC0809117 -:1019B000E8009091E90081309F4F24F43092E900D3 -:1019C0002092E8008091A900807F8093A900309147 -:1019D000A90080B326B3807490E0A3E09595879525 -:1019E000AA95E1F72770282B20952F70232B2093A1 -:1019F000A9008091EE009091EF0020916600309157 -:101A0000670028173907C9F18091EE009091EF0027 -:101A1000892B19F485B3837F1CC0809169008111E3 -:101A200007C08091EE009091EF001816190654F04F -:101A300080916900882351F08091EE009091EF0031 -:101A400097FF04C085B3877F846003C085B38B7F15 -:101A5000886085BB8091EE009091EF0090936700C5 -:101A6000809366008091EE009091EF0097FF03C095 -:101A70009195819591099BBD8ABD8091EC009091D3 -:101A8000ED00209164003091650028173907C9F1F5 -:101A90008091EC009091ED00892B19F485B38F7C37 -:101AA0001CC080916800811107C08091EC0090916A -:101AB000ED001816190654F080916800882351F043 -:101AC0008091EC009091ED0097FF04C085B38F7D6D -:101AD000806103C085B38F7E806285BB8091EC00FE -:101AE0009091ED0090936500809364008091EC00EC -:101AF0009091ED0097FF03C091958195910999BD53 -:101B000088BD8091EA009091EB00209162003091B5 -:101B1000630028173907C1F18091EA009091EB002A -:101B2000892B19F485B38F731CC08091DB00811160 -:101B300007C08091EA009091EB001816190654F046 -:101B40008091DB00882351F08091EA009091EB00B6 -:101B500097FF04C085B38F77806403C085B38F7B04 -:101B6000806885BB8091EA009091EB0090936300C0 -:101B7000809362008091EA009091EB0097FF03C090 -:101B800091958195910983BD8091E8009091E9003C -:101B9000209160003091610028173907C1F18091D0 -:101BA000E8009091E900892B19F482B3837F1CC06F -:101BB0008091DA00811107C08091E8009091E900DE -:101BC0001816190654F08091DA00882351F080919C -:101BD000E8009091E90097FF04C082B3877F84609A -:101BE00003C082B38B7F886082BB8091E8009091B4 -:101BF000E90090936100809360008091E8009091EB -:101C0000E90097FF03C09195819591098CBF809160 -:101C1000AC008F5F8093AC0085B7806885BF8895E6 -:101C200085B78F7785BF4CC86F927F929F92AF9296 -:101C3000BF92CF92DF92EF92FF920F931F93CF93B9 -:101C4000DF93CDB7DEB72C970FB6F894DEBF0FBE8B -:101C5000CDBF8C017B013A01FC0117821682838182 -:101C600081FF19C1CE0101965C01F801D380F70113 -:101C7000D3FC2591D3FE21917F01222309F407C1D2 -:101C8000253249F4D3FC2591D3FE21917F012532E1 -:101C900011F0912C1BC0B801822F90E00E949F127E -:101CA00063013601E2CF222309F4F1C0622F70E014 -:101CB0008BEB91E02C870E9449122C85892B49F0EF -:101CC000F701D3FC2591D3FE21917F0197FEEBCF45 -:101CD0000CC0233221F4F92DF0619F2EF1CF2C3668 -:101CE00039F4292D2068922EEBCF222309F4CFC09E -:101CF000622F70E084EB91E02C870E9449122C85C2 -:101D0000892B41F06301F4E0CF0ED11CB8018FE3C1 -:101D100090E012C0233641F0233789F0233521F5B6 -:101D2000F92DF1609F2E0BC0630122E0C20ED11C81 -:101D3000B801F301808191810E949F12B2CF6301AB -:101D400022E0C20ED11CF30160807180F30190FC8F -:101D5000859190FE81913F01882309F4A2CFB801BB -:101D600090E00E949F12F2CF243611F0293639F507 -:101D7000630197FE09C0F4E0CF0ED11CF30160812E -:101D80007181828193810AC0F2E0CF0ED11CF301F0 -:101D900060817181882777FD8095982FF92DFF7ECE -:101DA0009F2E97FF09C090958095709561957F4F04 -:101DB0008F4F9F4FF0649F2E2AE030E038C02037CD -:101DC000A1F040F42835D1F02F3609F060C028E0AA -:101DD00030E019C0253719F0283751F058C0292DA7 -:101DE0002F7E922E2AE030E00EC0892D8061982E41 -:101DF000992D9462992E20E130E005C0E92DE46030 -:101E00009E2E20E132E0630197FE09C0F4E0CF0E80 -:101E1000D11CF301608171818281938108C0F2E05D -:101E2000CF0ED11CF3016081718180E090E0A501AB -:101E30000E94FE12782E7A1896FE05C0B8018DE237 -:101E400090E00E949F1294FE16C0FE01E70DF11D66 -:101E50008081803381F0B80180E390E00E949F127E -:101E600092FE09C0292D2072822F90E0B801885A75 -:101E70009F4F0E949F127A94F501E70DF11D80811A -:101E8000B80190E00E949F127110F5CF0ACFF801BF -:101E90008681978102C08FEF9FEF2C960FB6F89442 -:101EA000DEBF0FBECDBFDF91CF911F910F91FF908D -:101EB000EF90DF90CF90BF90AF909F907F906F900A -:101EC00008955058BB27AA270ED0A0C169D130F081 -:101ED0006ED120F031F49F3F11F41EF45EC10EF478 -:101EE000E095E7FB54C1E92FB3D180F3BA1762073D -:101EF00073078407950718F071F49EF5CBC10EF4B3 -:101F0000E0950B2EBA2FA02D0B01B90190010C0109 -:101F1000CA01A0011124FF27591B99F0593F50F421 -:101F2000503E68F11A16F040A22F232F342F442779 -:101F3000585FF3CF469537952795A795F040539571 -:101F4000C9F77EF41F16BA0B620B730B840BBAF041 -:101F50009150A1F0FF0FBB1F661F771F881FC2F7AC -:101F60000EC0BA0F621F731F841F48F487957795C0 -:101F70006795B795F7959E3F08F0B3CF9395880F77 -:101F800008F09927EE0F979587950895DCD008F40F -:101F900081E0089514D1E3954AC10CD037C107D12F -:101FA00040F0FED030F021F45F3F19F0F0C0511145 -:101FB00072C1F3C04DD198F39923C9F35523B1F3FE -:101FC000951B550BBB27AA2762177307840738F0A8 -:101FD0009F5F5F4F220F331F441FAA1FA9F333D007 -:101FE0000E2E3AF0E0E830D091505040E695001CBB -:101FF000CAF729D0FE2F27D0660F771F881FBB1F77 -:10200000261737074807AB07B0E809F0BB0B802D50 -:10201000BF01FF2793585F4F2AF09E3F510568F09C -:10202000B6C039C15F3FECF3983EDCF386957795F7 -:102030006795B795F7959F5FC9F7880F911D96959E -:10204000879597F90895E1E0660F771F881FBB1FFA -:10205000621773078407BA0720F0621B730B840BA7 -:10206000BA0BEE1F88F7E095089504D06894B1117B -:1020700012C10895F5D088F09F5790F0B92F992795 -:10208000B751A0F0D1F0660F771F881F991F1AF083 -:10209000BA95C9F712C0B13081F0FCD0B1E0089513 -:1020A000F9C0672F782F8827B85F39F0B93FCCF394 -:1020B000869577956795B395D9F73EF49095809579 -:1020C000709561957F4F8F4F9F4F0895E89409C099 -:1020D00097FB3EF490958095709561957F4F8F4F5B -:1020E0009F4F9923A9F0F92F96E9BB279395F69571 -:1020F000879577956795B795F111F8CFFAF4BB0FEF -:1021000011F460FF1BC06F5F7F4F8F4F9F4F16C052 -:10211000882311F096E911C0772321F09EE8872FDC -:10212000762F05C0662371F096E8862F70E060E098 -:102130002AF09A95660F771F881FDAF7880F969511 -:10214000879597F90895990F0008550FAA0BE0E8B5 -:10215000FEEF16161706E807F907C0F01216130669 -:10216000E407F50798F0621B730B840B950B39F4A9 -:102170000A2661F0232B242B252B21F408950A260F -:1021800009F4A140A6958FEF811D811D089597F94F -:102190009F6780E870E060E008959FEF80EC08950D -:1021A00000240A9416161706180609060895002436 -:1021B0000A9412161306140605060895EECF50D0A1 -:1021C000E8F3E894E0E0BB279F57F0F02AED3FE00A -:1021D00049EC06C0EE0FBB0F661F771F881F28F063 -:1021E000B23A62077307840728F0B25A620B730B86 -:1021F000840BE3959A9572F7803830F49A95BB0F6B -:10220000661F771F881FD2F79048BAC0092E039423 -:10221000000C11F4882352F0BB0F40F4BF2B11F4D3 -:1022200060FF04C06F5F7F4F8F4F9F4F0895EF9304 -:10223000E0FF06C0A2EA2AED3FE049EC5FEB53DE87 -:10224000E5DF0F90039401FC9058E6E9F1E0A4C0AB -:1022500057FD9058440F551F59F05F3F71F0479557 -:10226000880F97FB991F61F09F3F79F0879508953C -:10227000121613061406551FF2CF4695F1DF08C05B -:10228000161617061806991FF1CF86957105610578 -:1022900008940895E894BB2766277727CB0197F920 -:1022A000089551DF08F48FEF08950BD0AFCF78DF9A -:1022B00028F07DDF18F0952309F069CF6ECF112447 -:1022C000EACFC6DFA0F3959FD1F3950F50E0551FDD -:1022D000629FF001729FBB27F00DB11D639FAA277B -:1022E000F00DB11DAA1F649F6627B00DA11D661FCA -:1022F000829F2227B00DA11D621F739FB00DA11DEB -:10230000621F839FA00D611D221F749F3327A00DA4 -:10231000611D231F849F600D211D822F762F6A2F40 -:1023200011249F5750408AF0E1F088234AF0EE0FC5 -:10233000FF1FBB1F661F771F881F91505040A9F7D2 -:102340009E3F510570F023CFA6CF5F3FECF3983E40 -:10235000DCF3869577956795B795F795E7959F5F39 -:10236000C1F7FE2B880F911D9695879597F90895D3 -:102370009F9325DF0F9007FCEE5F59CF9F3F31F011 -:10238000915020F4879577956795B795880F911DA3 -:102390009695879597F908959F938F937F936F9361 -:1023A000FF93EF939B01AC0180DFEF91FF9105D08C -:1023B0002F913F914F915F9178CFDF93CF931F93F0 -:1023C0000F93FF92EF92DF927B018C01689405C01E -:1023D000DA2EEF0176DFFE01E894A5912591359183 -:1023E00045915591AEF3EF017EDDFE019701A80105 -:1023F000DA9479F7DF90EF90FF900F911F91CF91D2 -:10240000DF910895052E97FB1EF400940E94191287 -:1024100057FD07D00E94271207FC03D04EF40C94FE -:10242000191250954095309521953F4F4F4F5F4F72 -:10243000089590958095709561957F4F8F4F9F4F30 -:102440000895EE0FFF1F0590F491E02D0994A1E28D -:102450001A2EAA1BBB1BFD010DC0AA1FBB1FEE1F1E -:10246000FF1FA217B307E407F50720F0A21BB30B69 -:10247000E40BF50B661F771F881F991F1A9469F7E5 -:1024800060957095809590959B01AC01BD01CF0141 -:102490000895FC010590061621F00020D9F7C0012F -:1024A00008953197CF0108950F931F93CF93DF9332 -:1024B000EC018B01009731F46115710519F480E08E -:1024C00090E038C06EE070E081E090E00E945C1324 -:1024D000FC010097A1F380E883830115110571F0D9 -:1024E0001387028781E88383809166019091670159 -:1024F000892B21F4F0936701E09366012097C9F0DE -:10250000D187C087838182608383809168019091A5 -:102510006901892B71F4F0936901E093680180915E -:102520006A0190916B01892B21F4F0936B01E09388 -:102530006A01CF01DF91CF911F910F9108950F9301 -:102540001F93CF93DF93182F092FEB018B8181FD10 -:1025500003C08FEF9FEF20C082FF10C04E815F81CC -:102560002C813D81421753077CF4E881F9819F015A -:102570002F5F3F4F39832883108306C0E885F98594 -:10258000812F0995892B29F72E813F812F5F3F4F9E -:102590003F832E83812F902FDF91CF911F910F9139 -:1025A00008950F931F93CF93DF93E0916801F0910B -:1025B0006901238121FF1BC0EC0100E010E089913B -:1025C0006091680170916901DB011896ED91FC91B1 -:1025D0001997882331F00995892B89F30FEF1FEFA5 -:1025E000EECF8AE00995892B11F4C80102C08FEF64 -:1025F0009FEFDF91CF911F910F910895FA01AA27C4 -:10260000283051F1203181F1E8946F936E7F6E5F35 -:102610007F4F8F4F9F4FAF4FB1E03ED0B4E03CD0E3 -:10262000670F781F891F9A1FA11D680F791F8A1FC6 -:10263000911DA11D6A0F711D811D911DA11D20D02D -:1026400009F468943F912AE0269F11243019305DE7 -:102650003193DEF6CF010895462F4770405D4193D8 -:10266000B3E00FD0C9F7F6CF462F4F70405D4A3325 -:1026700018F0495D31FD4052419302D0A9F7EACFED -:10268000B4E0A6959795879577956795BA95C9F71C -:1026900000976105710508959B01AC010A2E06940F -:1026A0005795479537952795BA95C9F7620F731FC8 -:1026B000841F951FA01D08950F931F93CF93DF9341 -:1026C000869F8001879F100D969F100D1124C801D1 -:1026D0000E947813EC01009729F0A80160E070E0F7 -:1026E0000E949F14CE01DF91CF911F910F91089509 -:1026F000CF93DF938230910510F482E090E0E09177 -:102700006E01F0916F0120E030E0A0E0B0E0309782 -:1027100039F14081518148175907B8F048175907D6 -:1027200071F482819381109729F013969C938E9374 -:1027300012972CC090936F0180936E0127C02115D2 -:10274000310531F04217530718F0A901DB0101C030 -:10275000EF019A01BD01DF010280F381E02DD7CFA7 -:1027600021153105F9F0281B390B2430310580F48F -:102770008A819B816115710521F0FB01938382831E -:1027800004C090936F0180936E01FE01329644C0A5 -:10279000FE01E20FF31F8193919322503109398397 -:1027A00028833AC020916C0130916D01232B41F4B4 -:1027B00020916C0030916D0030936D0120936C017D -:1027C00020916A0030916B002115310541F42DB73D -:1027D0003EB740916E0050916F00241B350BE09185 -:1027E0006C01F0916D01E217F307A0F42E1B3F0B73 -:1027F0002817390778F0AC014E5F5F4F2417350773 -:1028000048F04E0F5F1F50936D0140936C01819310 -:10281000919302C0E0E0F0E0CF01DF91CF91089505 -:10282000CF93DF93009709F487C0FC01329713829E -:102830001282C0916E01D0916F01209781F42081A6 -:102840003181280F391F80916C0190916D018217A1 -:10285000930779F5F0936D01E0936C016DC0DE0193 -:1028600020E030E0AE17BF0750F412964D915C9116 -:1028700013979D014115510509F1DA01F3CFB38397 -:10288000A28340815181840F951F8A179B0771F4A1 -:102890008D919C911197840F951F0296918380834F -:1028A00012968D919C911397938382832115310504 -:1028B00029F4F0936F01E0936E013EC0D9011396A5 -:1028C000FC93EE9312974D915D91A40FB51FEA17FB -:1028D000FB0779F480819181840F951F0296D901BD -:1028E00011969C938E938281938113969C938E93E1 -:1028F0001297E0E0F0E08A819B81009719F0FE01D9 -:10290000EC01F9CFCE01029628813981820F931F05 -:1029100020916C0130916D012817390769F43097C7 -:1029200029F410926F0110926E0102C0138212827C -:10293000D0936D01C0936C01DF91CF910895DC01BC -:1029400001C06D9341505040E0F70895F894FFCFD7 -:1029500000800080008000800101000070012000E4 -:0A2960000D0A53746172740D00003B +:100CA00080E790E00E944D1385B78F7885BF84E080 +:100CB00089BF789422242A94312C00E010E8809196 +:100CC000F1008F3F41F48091F000853A21F4F894CF +:100CD000E0E0F8E109958091FA00882309F4E4C086 +:100CE000F8948090F2009090F300A090F400B090FF +:100CF000F5006091F6007091F7008091F8009091F6 +:100D0000F9001092FA00789427EB3BE04DEB5EE39C +:100D10000E94D11120E030E040E05FE30E94D11159 +:100D2000A50194010E94DE0F6B017C01A5019401D5 +:100D3000C501B4010E94DE0FA70196010E94DD0FDC +:100D40002DEC30E344EB55E40E94D1114B015C01E2 +:100D50002DEC30E344EB55E4C701B6010E94D111FC +:100D60006B017C018091AA008823C9F18091AA00BF +:100D700024E630E0281B3109B901882777FD8095EA +:100D8000982F0E94E4109B01AC01C501B4010E94A0 +:100D9000D11120E030E048EC52E40E9449100E945A +:100DA000B1107093D9006093D8008091AA0044E6F6 +:100DB00050E0481B5109BA01882777FD8095982F8C +:100DC0000E94E4109B01AC01C701B6010E94D11141 +:100DD00020E030E048EC52E40E9449100AC0C5010E +:100DE000B4010E94B1107093D9006093D800C7017C +:100DF000B6010E94B1107093D5006093D400809129 +:100E0000AB008823C1F18091AB00E4E6F0E0E81B81 +:100E1000F109BF01882777FD8095982F0E94E41083 +:100E20009B01AC01C501B4010E94D11120E030E06A +:100E300048EC52E40E9449100E94B1107093D70010 +:100E40006093D6008091AB0064E670E0681B710986 +:100E5000882777FD8095982F0E94E4109B01AC01B4 +:100E6000C701B6010E94D11120E030E048EC52E405 +:100E70000E9449100AC0C501B4010E94B1107093CC +:100E8000D7006093D600C701B6010E94B1107093DD +:100E9000D3006093D200F1E0F093DF00F093DE0026 +:100EA000F093DD00F093DC008091C9008C3908F4E8 +:100EB0002EC71092C900F8942091E6003091E70007 +:100EC0003A8329834091E4005091E5005C834B8391 +:100ED0008091E2009091E3009E838D83E091E00099 +:100EE000F091E100F887EF837894809198009091D9 +:100EF00099007901E81AF90A80919600909197007B +:100F00006A01C81AD90A80919400909195006D8069 +:100F10007E80681A790A80919200909193002F0147 +:100F2000481A590AB701882777FD8095982F0E94A3 +:100F3000E4102AE037ED43E25CE30E9449100E948E +:100F4000B1106D877E878F87988BB601882777FDD4 +:100F50008095982F0E94E4102AE037ED43E25CE38D +:100F60000E9449100E94B110698B7A8B8B8B9C8BED +:100F7000B301882777FD8095982F0E94E4102AE01E +:100F800037ED43E25CE30E9449100E94B1106D8B83 +:100F90007E8B8F8B988FB201882777FD8095982F55 +:100FA0000E94E4102AE037ED43E25CE30E9449101E +:100FB0000E94B110698F7A8F8B8F9C8FB7016C0D57 +:100FC0007D1D882777FD8095982F0E94E4102DECD9 +:100FD00030E344E356E40E9449104B015C01B30145 +:100FE000640D751D882777FD8095982F0E94E41069 +:100FF0002DEC30E344E356E40E9449102B013C0100 +:10100000A50194010E94DD0F27EB3BE04DEB5EE371 +:101010000E94491069877A878B879C876091B50009 +:101020007091B6008091B7009091B80029853A85FB +:101030004B855C850E94DE0F6B017C012BED3FE050 +:1010400049EC50E40E94CD1118164CF42BED3FE012 +:1010500049EC50E4C701B6010E94DD0F12C02BED30 +:101060003FE049EC50ECC701B6010E94421087FFF7 +:101070000AC02BED3FE049EC50E4C701B6010E94E5 +:10108000DE0F6B017C01A3019201C501B4010E9436 +:10109000DE0F20E030E040E05FE30E94D1114B0121 +:1010A0005C014090BD005090BE006090BF00709009 +:1010B000C000C701B6010E944610A50194010E941C +:1010C000D1119B01AC01C301B2010E94DE0F6D8FF3 +:1010D0007E8F8F8F98A34090B9005090BA00609097 +:1010E000BB007090BC00C701B6010E943412A5017C +:1010F00094010E94D1119B01AC01C301B2010E9475 +:10110000DE0F2B013C012AE037ED43E25CE3C50131 +:10111000B4010E9449104B015C012AE037ED43E223 +:101120005CE369857A858B859C850E944910F894DB +:10113000C092B500D092B600E092B700F092B8002D +:101140002D8D3E8D4F8D58A12093BD003093BE0054 +:101150004093BF005093C0004092B9005092BA0033 +:101160006092BB007092BC004D855E855093C800B4 +:101170004093C700E989FA89F093C600E093C5005F +:101180002D893E893093C4002093C300498D5A8D28 +:101190005093C2004093C1008092B1009092B2007F +:1011A000A092B300B092B4006093AD007093AE0013 +:1011B0008093AF009093B000789489819A81909346 +:1011C000990080939800EB81FC81F0939700E09365 +:1011D00096002D813E8130939500209394004F819D +:1011E0005885509393004093920080918E00909187 +:1011F0008F00A0919000B0919100B7FF07C0B0950B +:10120000A095909581959F4FAF4FBF4F813E9242E1 +:10121000A240B105CCF08091C7009091C800892B05 +:1012200099F41092EF001092EE001092DF0080917E +:10123000A90080618093A90010928E0010928F0007 +:10124000109290001092910080918A0090918B00F2 +:10125000A0918C00B0918D00B7FF07C0B095A0950C +:10126000909581959F4FAF4FBF4F813E9242A240D4 +:10127000B105CCF08091C5009091C600892B99F4FE +:101280001092ED001092EC001092DE008091A90007 +:1012900080628093A90010928A0010928B001092B5 +:1012A0008C0010928D008091860090918700A09113 +:1012B0008800B0918900B7FF07C0B095A0959095C0 +:1012C00081959F4FAF4FBF4F813E9242A240B105E3 +:1012D000CCF08091C3009091C400892B99F41092B6 +:1012E000EB001092EA001092DD008091A90080646A +:1012F0008093A900109286001092870010928800B7 +:10130000109289008091820090918300A0918400C6 +:10131000B0918500B7FF07C0B095A09590958195D5 +:101320009F4FAF4FBF4F813E9242A240B105CCF0DC +:101330008091C1009091C200892B99F41092E9002C +:101340001092E8001092DC008091A90080688093E0 +:10135000A9001092820010928300109284001092D3 +:1013600085008091DF00813009F0DBC02091D8003A +:101370003091D9008091D0009091D1002817390781 +:1013800011F18091D8009091D9002091D000309136 +:10139000D100821B930B97FF03C091958195910912 +:1013A000853F914044F010928E0010928F00109271 +:1013B0009000109291008091D8009091D900909364 +:1013C000D1008093D0008091D8009091D900892BD2 +:1013D00071F41092EF001092EE00109281001092C2 +:1013E00080008091A9008F7E8093A9009AC0A09070 +:1013F000D800B090D9008091C7009091C800A81A79 +:10140000B90AB501882777FD8095982FC0908E0086 +:10141000D0908F00E0909000F0909100C60ED71E03 +:10142000E81EF91EC0928E00D0928F00E0929000CC +:10143000F09291000E94E4102FE832EC45E75DE362 +:101440000E94D1112B013C01C701B6010E94E4109A +:101450002FE632E143E85AE30E94D1119B01AC012F +:10146000C301B2010E94DE0F6B017C0180918000FC +:1014700090918100B501681B790B882777FD8095D5 +:10148000982F0E94E41020E030E0A9010E94D111C1 +:101490009B01AC01C701B6010E94DE0F0E94B11092 +:1014A0007093EF006093EE00B0928100A0928000F4 +:1014B0008091EE009091EF001816190634F4809197 +:1014C000D8009091D90097FD0DC08091EE009091C9 +:1014D000EF0097FF0CC08091D8009091D9001816AA +:1014E00019062CF41093EF000093EE001AC08091BF +:1014F000EE009091EF008F3F910531F02CF030928B +:10150000EF002092EE000DC08091EE009091EF0070 +:1015100081309F4F34F481E09FEF9093EF008093F0 +:10152000EE008091DE00813009F0DBC02091D60012 +:101530003091D7008091CE009091CF0028173907C5 +:1015400011F18091D6009091D7002091CE0030917A +:10155000CF00821B930B97FF03C091958195910952 +:10156000853F914044F010928A0010928B001092B7 +:101570008C0010928D008091D6009091D7009093AE +:10158000CF008093CE008091D6009091D700892B18 +:1015900071F41092ED001092EC0010927F00109206 +:1015A0007E008091A9008F7D8093A9009AC0A090B1 +:1015B000D600B090D7008091C5009091C600A81ABF +:1015C000B90AB501882777FD8095982FC0908A00C9 +:1015D000D0908B00E0908C00F0908D00C60ED71E4E +:1015E000E81EF91EC0928A00D0928B00E0928C0017 +:1015F000F0928D000E94E4102FE832EC45E75DE3A5 +:101600000E94D1112B013C01C701B6010E94E410D8 +:101610002FE632E143E85AE30E94D1119B01AC016D +:10162000C301B2010E94DE0F6B017C0180917E003C +:1016300090917F00B501681B790B882777FD809515 +:10164000982F0E94E41020E030E0A9010E94D111FF +:101650009B01AC01C701B6010E94DE0F0E94B110D0 +:101660007093ED006093EC00B0927F00A0927E003A +:101670008091EC009091ED001816190634F48091D9 +:10168000D6009091D70097FD0DC08091EC0090910D +:10169000ED0097FF0CC08091D6009091D7001816EE +:1016A00019062CF41093ED000093EC001AC0809101 +:1016B000EC009091ED008F3F910531F02CF03092CD +:1016C000ED002092EC000DC08091EC009091ED00B7 +:1016D00081309F4F34F421E03FEF3093ED002093B1 +:1016E000EC008091DD00813009F0DBC02091D40056 +:1016F0003091D5008091CC009091CD00281739070A +:1017000011F18091D4009091D5002091CC003091BE +:10171000CD00821B930B97FF03C091958195910992 +:10172000853F914044F010928600109287001092FD +:101730008800109289008091D4009091D5009093F8 +:10174000CD008093CC008091D4009091D500892B5E +:1017500071F41092EB001092EA0010927D0010924A +:101760007C008091A9008F7B8093A9009AC0A090F3 +:10177000D400B090D5008091C3009091C400A81A05 +:10178000B90AB501882777FD8095982FC09086000B +:10179000D0908700E0908800F0908900C60ED71E98 +:1017A000E81EF91EC0928600D0928700E092880061 +:1017B000F09289000E94E4102FE832EC45E75DE3E7 +:1017C0000E94D1112B013C01C701B6010E94E41017 +:1017D0002FE632E143E85AE30E94D1119B01AC01AC +:1017E000C301B2010E94DE0F6B017C0180917C007D +:1017F00090917D00B501681B790B882777FD809556 +:10180000982F0E94E41020E030E0A9010E94D1113D +:101810009B01AC01C701B6010E94DE0F0E94B1100E +:101820007093EB006093EA00B0927D00A0927C0080 +:101830008091EA009091EB001816190634F480911B +:10184000D4009091D50097FD0DC08091EA00909151 +:10185000EB0097FF0CC08091D4009091D500181632 +:1018600019062CF41093EB000093EA001AC0809143 +:10187000EA009091EB008F3F910531F02CF030920F +:10188000EB002092EA000DC08091EA009091EB00FD +:1018900081309F4F34F481E09FEF9093EB00809371 +:1018A000EA008091DC00813009F0DBC02091D20099 +:1018B0003091D3008091CA009091CB00281739074E +:1018C00011F18091D2009091D3002091CA00309103 +:1018D000CB00821B930B97FF03C0919581959109D3 +:1018E000853F914044F01092820010928300109244 +:1018F0008400109285008091D2009091D300909343 +:10190000CB008093CA008091D2009091D300892BA4 +:1019100071F41092E9001092E80010927B0010928E +:101920007A008091A9008F778093A9009AC0A09037 +:10193000D200B090D3008091C1009091C200A81A4B +:10194000B90AB501882777FD8095982FC09082004D +:10195000D0908300E0908400F0908500C60ED71EE2 +:10196000E81EF91EC0928200D0928300E0928400AB +:10197000F09285000E94E4102FE832EC45E75DE329 +:101980000E94D1112B013C01C701B6010E94E41055 +:101990002FE632E143E85AE30E94D1119B01AC01EA +:1019A000C301B2010E94DE0F6B017C0180917A00BD +:1019B00090917B00B501681B790B882777FD809596 +:1019C000982F0E94E41020E030E0A9010E94D1117C +:1019D0009B01AC01C701B6010E94DE0F0E94B1104D +:1019E0007093E9006093E800B0927B00A0927A00C7 +:1019F0008091E8009091E9001816190634F480915E +:101A0000D2009091D30097FD0DC08091E800909195 +:101A1000E90097FF0CC08091D2009091D300181676 +:101A200019062CF41093E9000093E8001AC0809185 +:101A3000E8009091E9008F3F910531F02CF0309251 +:101A4000E9002092E8000DC08091E8009091E90043 +:101A500081309F4F34F421E03FEF3093E900209331 +:101A6000E8008091A900807F8093A9003091A900AF +:101A700080B326B3807490E0A3E095958795AA95EE +:101A8000E1F72770282B20952F70232B2093A90096 +:101A90008091EE009091EF002091660030916700F8 +:101AA0002817390709F443C08091EE009091EF00A8 +:101AB000892B19F485B3837F26C08091EE00909125 +:101AC000EF008115904819F485B38C601CC080919B +:101AD0006900811107C08091EE009091EF00181607 +:101AE000190654F080916900882351F08091EE002E +:101AF0009091EF0097FF04C085B3877F846003C097 +:101B000085B38B7F886085BB8091EE009091EF005C +:101B100090936700809366008091EE009091EF00B3 +:101B200097FF03C09195819591099BBD8ABD8091D6 +:101B3000EC009091ED002091640030916500281731 +:101B4000390709F443C08091EC009091ED00892B96 +:101B500019F485B38F7C26C08091EC009091ED0044 +:101B60008115904819F485B380631CC0809168008A +:101B7000811107C08091EC009091ED0018161906B4 +:101B800054F080916800882351F08091EC0090918E +:101B9000ED0097FF04C085B38F7D806103C085B3DE +:101BA0008F7E806285BB8091EC009091ED009093D8 +:101BB0006500809364008091EC009091ED0097FFA8 +:101BC00003C091958195910999BD88BD8091EA00E6 +:101BD0009091EB0020916200309163002817390743 +:101BE00009F442C08091EA009091EB00892B19F42E +:101BF00085B38F7326C08091EA009091EB00811528 +:101C0000904819F485B3806C1CC08091DB00811171 +:101C100007C08091EA009091EB001816190654F065 +:101C20008091DB00882351F08091EA009091EB00D5 +:101C300097FF04C085B38F77806403C085B38F7B23 +:101C4000806885BB8091EA009091EB0090936300DF +:101C5000809362008091EA009091EB0097FF03C0AF +:101C600091958195910983BD8091E8009091E9005B +:101C700020916000309161002817390709F442C0B3 +:101C80008091E8009091E900892B19F482B3837F59 +:101C900026C08091E8009091E9008115904819F4E0 +:101CA00082B38C601CC08091DA00811107C08091E2 +:101CB000E8009091E9001816190654F08091DA00B6 +:101CC000882351F08091E8009091E90097FF04C0CB +:101CD00082B3877F846003C082B38B7F886082BBBE +:101CE0008091E8009091E9009093610080936000FA +:101CF0008091E8009091E90097FF03C0919581954C +:101D000091098CBF8091AC008F5F8093AC0085B748 +:101D1000806885BF889585B78F7785BF0C945F06EF +:101D20006F927F929F92AF92BF92CF92DF92EF928B +:101D3000FF920F931F93CF93DF93CDB7DEB72C970E +:101D40000FB6F894DEBF0FBECDBF8C017B013A0108 +:101D5000FC0117821682838181FF19C1CE01019691 +:101D60005C01F801D380F701D3FC2591D3FE2191CA +:101D70007F01222309F407C1253249F4D3FC2591C0 +:101D8000D3FE21917F01253211F0912C1BC0B801A7 +:101D9000822F90E00E941B1363013601E2CF2223C1 +:101DA00009F4F1C0622F70E08BEB91E02C870E9468 +:101DB000C5122C85892B49F0F701D3FC2591D3FE60 +:101DC00021917F0197FEEBCF0CC0233221F4F92D36 +:101DD000F0619F2EF1CF2C3639F4292D2068922EF8 +:101DE000EBCF222309F4CFC0622F70E084EB91E0A7 +:101DF0002C870E94C5122C85892B41F06301F4E0E9 +:101E0000CF0ED11CB8018FE390E012C0233641F011 +:101E1000233789F0233521F5F92DF1609F2E0BC072 +:101E2000630122E0C20ED11CB801F30180819181CF +:101E30000E941B13B2CF630122E0C20ED11CF3013A +:101E400060807180F30190FC859190FE81913F014B +:101E5000882309F4A2CFB80190E00E941B13F2CFAF +:101E6000243611F0293639F5630197FE09C0F4E0F4 +:101E7000CF0ED11CF30160817181828193810AC0F0 +:101E8000F2E0CF0ED11CF30160817181882777FDCC +:101E90008095982FF92DFF7E9F2E97FF09C0909572 +:101EA0008095709561957F4F8F4F9F4FF0649F2E67 +:101EB0002AE030E038C02037A1F040F42835D1F0D6 +:101EC0002F3609F060C028E030E019C0253719F03E +:101ED000283751F058C0292D2F7E922E2AE030E06D +:101EE0000EC0892D8061982E992D9462992E20E143 +:101EF00030E005C0E92DE4609E2E20E132E0630170 +:101F000097FE09C0F4E0CF0ED11CF301608171810E +:101F10008281938108C0F2E0CF0ED11CF301608171 +:101F2000718180E090E0A5010E947A13782E7A18E2 +:101F300096FE05C0B8018DE290E00E941B1394FE4E +:101F400016C0FE01E70DF11D8081803381F0B801DC +:101F500080E390E00E941B1392FE09C0292D20729D +:101F6000822F90E0B801885A9F4F0E941B137A94E9 +:101F7000F501E70DF11D8081B80190E00E941B136F +:101F80007110F5CF0ACFF8018681978102C08FEFDB +:101F90009FEF2C960FB6F894DEBF0FBECDBFDF913A +:101FA000CF911F910F91FF90EF90DF90CF90BF9056 +:101FB000AF909F907F906F9008955058BB27AA27AD +:101FC0000ED0A0C169D130F06ED120F031F49F3F26 +:101FD00011F41EF45EC10EF4E095E7FB54C1E92F45 +:101FE000B3D180F3BA17620773078407950718F017 +:101FF00071F49EF5CBC10EF4E0950B2EBA2FA02DF7 +:102000000B01B90190010C01CA01A0011124FF27A5 +:10201000591B99F0593F50F4503E68F11A16F040A0 +:10202000A22F232F342F4427585FF3CF469537959F +:102030002795A795F0405395C9F77EF41F16BA0B64 +:10204000620B730B840BBAF09150A1F0FF0FBB1F12 +:10205000661F771F881FC2F70EC0BA0F621F731F5B +:10206000841F48F4879577956795B795F7959E3FB8 +:1020700008F0B3CF9395880F08F09927EE0F979546 +:1020800087950895DCD008F481E0089514D1E39594 +:102090004AC10CD037C107D140F0FED030F021F456 +:1020A0005F3F19F0F0C0511172C1F3C04DD198F3E8 +:1020B0009923C9F35523B1F3951B550BBB27AA27C9 +:1020C00062177307840738F09F5F5F4F220F331F3B +:1020D000441FAA1FA9F333D00E2E3AF0E0E830D007 +:1020E00091505040E695001CCAF729D0FE2F27D00A +:1020F000660F771F881FBB1F261737074807AB07D8 +:10210000B0E809F0BB0B802DBF01FF2793585F4F4C +:102110002AF09E3F510568F0B6C039C15F3FECF32D +:10212000983EDCF3869577956795B795F7959F5F11 +:10213000C9F7880F911D9695879597F90895E1E065 +:10214000660F771F881FBB1F621773078407BA07C4 +:1021500020F0621B730B840BBA0BEE1F88F7E0951F +:10216000089504D06894B11112C10895F5D088F093 +:102170009F5790F0B92F9927B751A0F0D1F0660F73 +:10218000771F881F991F1AF0BA95C9F712C0B1308E +:1021900081F0FCD0B1E00895F9C0672F782F88272F +:1021A000B85F39F0B93FCCF3869577956795B395CD +:1021B000D9F73EF490958095709561957F4F8F4F3C +:1021C0009F4F0895E89409C097FB3EF49095809541 +:1021D000709561957F4F8F4F9F4F9923A9F0F92FED +:1021E00096E9BB279395F695879577956795B7956B +:1021F000F111F8CFFAF4BB0F11F460FF1BC06F5F51 +:102200007F4F8F4F9F4F16C0882311F096E911C062 +:10221000772321F09EE8872F762F05C0662371F083 +:1022200096E8862F70E060E02AF09A95660F771F97 +:10223000881FDAF7880F9695879597F90895990F73 +:102240000008550FAA0BE0E8FEEF16161706E80780 +:10225000F907C0F012161306E407F50798F0621BA1 +:10226000730B840B950B39F40A2661F0232B242B76 +:10227000252B21F408950A2609F4A140A6958FEF95 +:10228000811D811D089597F99F6780E870E060E0E7 +:1022900008959FEF80EC089500240A9416161706FF +:1022A00018060906089500240A9412161306140647 +:1022B00005060895EECF50D0E8F3E894E0E0BB27A0 +:1022C0009F57F0F02AED3FE049EC06C0EE0FBB0F40 +:1022D000661F771F881F28F0B23A620773078407CA +:1022E00028F0B25A620B730B840BE3959A9572F740 +:1022F000803830F49A95BB0F661F771F881FD2F77E +:102300009048BAC0092E0394000C11F4882352F0AF +:10231000BB0F40F4BF2B11F460FF04C06F5F7F4F11 +:102320008F4F9F4F0895EF93E0FF06C0A2EA2AED7A +:102330003FE049EC5FEB53DEE5DF0F90039401FCD7 +:102340009058E6E9F1E0A4C057FD9058440F551F9E +:1023500059F05F3F71F04795880F97FB991F61F027 +:102360009F3F79F087950895121613061406551F9E +:10237000F2CF4695F1DF08C0161617061806991F0A +:10238000F1CF86957105610508940895E894BB27FF +:1023900066277727CB0197F9089551DF08F48FEF6F +:1023A00008950BD0AFCF78DF28F07DDF18F09523AC +:1023B00009F069CF6ECF1124EACFC6DFA0F3959F55 +:1023C000D1F3950F50E0551F629FF001729FBB271C +:1023D000F00DB11D639FAA27F00DB11DAA1F649FC8 +:1023E0006627B00DA11D661F829F2227B00DA11D7B +:1023F000621F739FB00DA11D621F839FA00D611D01 +:10240000221F749F3327A00D611D231F849F600D21 +:10241000211D822F762F6A2F11249F5750408AF05A +:10242000E1F088234AF0EE0FFF1FBB1F661F771FE6 +:10243000881F91505040A9F79E3F510570F023CF5F +:10244000A6CF5F3FECF3983EDCF3869577956795D2 +:10245000B795F795E7959F5FC1F7FE2B880F911D04 +:102460009695879597F908959F9325DF0F9007FC20 +:10247000EE5F59CF9F3F31F0915020F487957795CB +:102480006795B795880F911D9695879597F908954B +:102490009F938F937F936F93FF93EF939B01AC0177 +:1024A00080DFEF91FF9105D02F913F914F915F9188 +:1024B00078CFDF93CF931F930F93FF92EF92DF922A +:1024C0007B018C01689405C0DA2EEF0176DFFE01F6 +:1024D000E894A5912591359145915591AEF3EF0181 +:1024E0007EDDFE019701A801DA9479F7DF90EF9085 +:1024F000FF900F911F91CF91DF910895052E97FBCB +:102500001EF400940E94951257FD07D00E94A3125A +:1025100007FC03D04EF40C949512509540953095DD +:1025200021953F4F4F4F5F4F08959095809570953F +:1025300061957F4F8F4F9F4F0895EE0FFF1F0590BE +:10254000F491E02D0994A1E21A2EAA1BBB1BFD01F8 +:102550000DC0AA1FBB1FEE1FFF1FA217B307E40782 +:10256000F50720F0A21BB30BE40BF50B661F771FDA +:10257000881F991F1A9469F76095709580959095BA +:102580009B01AC01BD01CF010895FC010590061629 +:1025900021F00020D9F7C00108953197CF010895A7 +:1025A0000F931F93CF93DF93EC018B01009731F4CE +:1025B0006115710519F480E090E038C06EE070E0BC +:1025C00081E090E00E94D813FC010097A1F380E81D +:1025D00083830115110571F01387028781E88383D6 +:1025E0008091660190916701892B21F4F093670136 +:1025F000E09366012097C9F0D187C087838182600C +:1026000083838091680190916901892B71F4F09323 +:102610006901E093680180916A0190916B01892BB7 +:1026200021F4F0936B01E0936A01CF01DF91CF9128 +:102630001F910F9108950F931F93CF93DF93182F3E +:10264000092FEB018B8181FD03C08FEF9FEF20C02D +:1026500082FF10C04E815F812C813D81421753075C +:102660007CF4E881F9819F012F5F3F4F39832883F4 +:10267000108306C0E885F985812F0995892B29F7F4 +:102680002E813F812F5F3F4F3F832E83812F902FDD +:10269000DF91CF911F910F9108950F931F93CF93C7 +:1026A000DF93E0916801F0916901238121FF1BC054 +:1026B000EC0100E010E0899160916801709169017E +:1026C000DB011896ED91FC911997882331F009955B +:1026D000892B89F30FEF1FEFEECF8AE00995892B45 +:1026E00011F4C80102C08FEF9FEFDF91CF911F91CE +:1026F0000F910895FA01AA27283051F1203181F174 +:10270000E8946F936E7F6E5F7F4F8F4F9F4FAF4FF9 +:10271000B1E03ED0B4E03CD0670F781F891F9A1F0C +:10272000A11D680F791F8A1F911DA11D6A0F711DC0 +:10273000811D911DA11D20D009F468943F912AE0CC +:10274000269F11243019305D3193DEF6CF010895B4 +:10275000462F4770405D4193B3E00FD0C9F7F6CFE5 +:10276000462F4F70405D4A3318F0495D31FD4052AD +:10277000419302D0A9F7EACFB4E0A6959795879543 +:1027800077956795BA95C9F7009761057105089522 +:102790009B01AC010A2E06945795479537952795CE +:1027A000BA95C9F7620F731F841F951FA01D089566 +:1027B0000F931F93CF93DF93869F8001879F100D08 +:1027C000969F100D1124C8010E94F413EC0100978C +:1027D00029F0A80160E070E00E941B15CE01DF9196 +:1027E000CF911F910F910895CF93DF938230910580 +:1027F00010F482E090E0E0916E01F0916F0120E032 +:1028000030E0A0E0B0E0309739F1408151814817C5 +:102810005907B8F04817590771F4828193811097CE +:1028200029F013969C938E9312972CC090936F016E +:1028300080936E0127C02115310531F042175307EF +:1028400018F0A901DB0101C0EF019A01BD01DF0110 +:102850000280F381E02DD7CF21153105F9F0281B37 +:10286000390B2430310580F48A819B816115710513 +:1028700021F0FB019383828304C090936F018093C6 +:102880006E01FE01329644C0FE01E20FF31F8193F8 +:10289000919322503109398328833AC020916C01E9 +:1028A00030916D01232B41F420916C0030916D002B +:1028B00030936D0120936C0120916A0030916B0080 +:1028C0002115310541F42DB73EB740916E0050916E +:1028D0006F00241B350BE0916C01F0916D01E21744 +:1028E000F307A0F42E1B3F0B2817390778F0AC0133 +:1028F0004E5F5F4F2417350748F04E0F5F1F509310 +:102900006D0140936C018193919302C0E0E0F0E08F +:10291000CF01DF91CF910895CF93DF93009709F412 +:1029200087C0FC01329713821282C0916E01D09150 +:102930006F01209781F420813181280F391F809108 +:102940006C0190916D018217930779F5F0936D01F9 +:10295000E0936C016DC0DE0120E030E0AE17BF07F0 +:1029600050F412964D915C9113979D0141155105BC +:1029700009F1DA01F3CFB383A28340815181840F3F +:10298000951F8A179B0771F48D919C911197840F65 +:10299000951F02969183808312968D919C91139737 +:1029A000938382832115310529F4F0936F01E0931D +:1029B0006E013EC0D9011396FC93EE9312974D9190 +:1029C0005D91A40FB51FEA17FB0779F4808191810F +:1029D000840F951F0296D90111969C938E93828144 +:1029E000938113969C938E931297E0E0F0E08A8196 +:1029F0009B81009719F0FE01EC01F9CFCE01029600 +:102A000028813981820F931F20916C0130916D01D3 +:102A10002817390769F4309729F410926F01109242 +:102A20006E0102C013821282D0936D01C0936C01BB +:102A3000DF91CF910895DC0101C06D93415050406A +:082A4000E0F70895F894FFCFC0 +:102A480000800080008000800101000070012000EB +:0A2A58000D0A53746172740D000042 :00000001FF diff --git a/config/razor.yaml b/config/razor.yaml index d6413ad..e4a3c12 100644 --- a/config/razor.yaml +++ b/config/razor.yaml @@ -23,8 +23,8 @@ magn_z_max: 596 # extended calibration calibration_magn_use_extended: true -magn_ellipsoid_center: [344.256, 18.1668, -330.980] -magn_ellipsoid_transform: [[0.838154, 0.00504547, 0.0313606], [0.00504547, 0.989158, 0.0278265], [0.0313606, 0.0278265, 0.916270]] +magn_ellipsoid_center: [302.374, 39.5765, -397.215] +magn_ellipsoid_transform: [[0.924637, -0.0539937, 0.0408358], [-0.0539937, 0.958933, 0.0208039], [0.0408358, 0.0208039, 0.947891]] # AHRS to robot calibration imu_yaw_calibration: 0.0 diff --git a/scripts/pid_manual.py b/scripts/pid_manual.py index 9b6b60a..6806f62 100755 --- a/scripts/pid_manual.py +++ b/scripts/pid_manual.py @@ -6,8 +6,8 @@ import struct from time import sleep from i2c import i2c_write_reg, i2c_read_reg -KP=0.05 -KI=0.0 +KP=0.06 +KI=0.10 KD=0.0 PID_T=0.01 STEP_PER_M_AVG=5766.1 @@ -19,6 +19,7 @@ esum1 = 0.0 esum2 = 0.0 esum3 = 0.0 esum4 = 0.0 +PWM_BREAK = -32768 speed1_wish=float(sys.argv[1])*STEP_PER_M_AVG speed2_wish=float(sys.argv[1])*STEP_PER_M_AVG speed3_wish=float(sys.argv[2])*STEP_PER_M_AVG @@ -45,11 +46,13 @@ if __name__ == "__main__": motor1 = KP*e + KI*PID_T*esum1 + KD/PID_T*(e - eold1) eold1 = e - if (motor1 < 0 and speed1_wish > 0): motor1 = 0 - elif (motor1 > 0 and speed1_wish < 0): motor1 = 0 + if (motor1 < 0 and speed1_wish > 0): motor1 = PWM_BREAK + elif (motor1 > 0 and speed1_wish < 0): motor1 = PWM_BREAK elif (motor1 > 255): motor1 = 255 elif (motor1 < -255): motor1 = -255 + print "Wish=", speed1_wish, "Speed=", speed1, "e=", e, "esum=", esum1, "pwm=", motor1, "error=", error + if speed2_wish == 0: motor2 = 0.0 eold2 = 0.0 @@ -60,8 +63,8 @@ if __name__ == "__main__": motor2 = KP*e + KI*PID_T*esum2 + KD/PID_T*(e - eold2) eold2 = e - if (motor2 < 0 and speed2_wish > 0): motor2 = 0 - elif (motor2 > 0 and speed2_wish < 0): motor2 = 0 + if (motor2 < 0 and speed2_wish > 0): motor2 = PWM_BREAK + elif (motor2 > 0 and speed2_wish < 0): motor2 = PWM_BREAK elif (motor2 > 255): motor2 = 255 elif (motor2 < -255): motor2 = -255 @@ -75,8 +78,8 @@ if __name__ == "__main__": motor3 = KP*e + KI*PID_T*esum3 + KD/PID_T*(e - eold3) eold3 = e - if (motor3 < 0 and speed3_wish > 0): motor3 = 0 - elif (motor3 > 0 and speed3_wish < 0): motor3 = 0 + if (motor3 < 0 and speed3_wish > 0): motor3 = PWM_BREAK + elif (motor3 > 0 and speed3_wish < 0): motor3 = PWM_BREAK elif (motor3 > 255): motor3 = 255 elif (motor3 < -255): motor3 = -255 @@ -90,12 +93,12 @@ if __name__ == "__main__": motor4 = KP*e + KI*PID_T*esum4 + KD/PID_T*(e - eold4) eold4 = e - if (motor4 < 0 and speed4_wish > 0): motor4 = 0 - elif (motor4 > 0 and speed4_wish < 0): motor4 = 0 + if (motor4 < 0 and speed4_wish > 0): motor4 = PWM_BREAK + elif (motor4 > 0 and speed4_wish < 0): motor4 = PWM_BREAK elif (motor4 > 255): motor4 = 255 elif (motor4 < -255): motor4 = -255 - print "Wish=", speed4_wish, "Speed=", speed4, "e=", e, "esum=", esum4, "pwm=", motor4, "error=", error + #print "Wish=", speed4_wish, "Speed=", speed4, "e=", e, "esum=", esum4, "pwm=", motor4, "error=", error set_pwm(motor1, motor2, motor3, motor4) diff --git a/scripts/wt_node.py b/scripts/wt_node.py index 3d1c972..2de2f59 100755 --- a/scripts/wt_node.py +++ b/scripts/wt_node.py @@ -79,6 +79,7 @@ class MoveBase: rospy.loginfo("Reset Status: 0x%x" % reset_val) i = 0 while not rospy.is_shutdown(): + rospy.logdebug("Loop alive") #print struct.unpack(">B", i2c_read_reg(0x50, 0xA2, 1))[0] # count test self.get_motor_err() self.get_odom() @@ -230,7 +231,9 @@ class MoveBase: i2c_write_reg(0x50, 0x50, struct.pack(">ff", trans, rot)) def cmdVelReceived(self, msg): + rospy.logdebug("Set new cmd_vel:", msg.linear.x, msg.angular.z) self.cmd_vel = (msg.linear.x, msg.angular.z) # commit speed on next update cycle + rospy.logdebug("Set new cmd_vel done") # http://rn-wissen.de/wiki/index.php/Sensorarten#Sharp_GP2D12 def get_dist_ir(self, num): -- 2.39.5