á¡ááºáá»ááºáá®áá¬ááá¬áá±ážáá±á¬áááœáẠáá°ážáá»áœááºáá±á¬áááºáááºážáá»á¬ážá áœá¬ááŸááá±á¬áºáááºáž áááŒá¬ááááá¯áááᯠáááºážááá¯á·áááºáááºážáá»ááºááœáẠáááºáá±á¬ááºáá¬ážáá±á¬ áááºááá¯ážááœáŸááºážáááºážáá»á¬ážááẠááŒá®ážáá±ážáá±á¬áá»áá¯á·ááœááºážáá»ááºáá áºáá¯ááŒá áºááá·áº á¡ááŒá±á¬ááºážá¡áá¬á¡áá»áá¯ážáá»áá¯ážááŒá¬ážááœáẠáá±á¬ááºážááœááºáá®ááœááºááŸá¯áááŸáááŒááºážáá áºáá¯ááŒá áºáááºá ááá·áºááœááºááá¯ááºáááº- áá«á áááºááá¯ááŒá áºááá¯ááºááá²á
áááºáááºážá¡á á®á¡á ááºáá áºáá¯ááœá²á·á ááºážááá·áºá¡áá«á áááºáááºážáá áºáá¯á á®á¡ááœáẠáááºááŒá¬ážáááá·áº á ááºážáááºážáá»á¬ážááᯠááŸááºážáááºážá áœá¬áá±á¬áºááŒáá¬ážáá±á¬ á ááºážáááºážáááºááŸááºáá»ááºáá»á¬ážááŸáá·áº ááŒáá¯áááºááá¯á¡ááºáá»ááºáá»á¬ážááŸáá·áº áááá»áá±á¬á¡áááá·áºá á¬áá»á¬ážááᯠááœáŸááºááŒáá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá ááŸá±ážáŠážááá¯ááá¯ááºážá ááºáá¯ááºáá áºáá¯ááºááᯠáááºáá±á¬ááºááŒá®áž áááá¯ááááºááŒá¯áá¯ááºáááºá¡ááœáẠáááºážááá¯ááºááá¯ááºážááá¯ááºáá¬ááœá²á·á ááºážáá¯á¶ááᯠáááºáá®ážáááºá¡ááœáẠá ááºááŒááºá¡áááºážáááºááᯠáááºáááááºááá¯á¡ááºáá«áááºá Ohm/Kirchhoff ááááá¬áá¡ááá·áºááœáẠáá»áŸááºá á áºá¡ááŒá±áá¶áá»á¬ážá áá áºáá»á áºáááºááŸáá·áº analog á¡áá»ááºááŒááŸá¯áá»á¬ážááᯠááá¯ááºá á¬ážááŒá¯ááŒááºážá á¡á¬áá¬áá¡ááœááºáž á ááºáá¯ááºáá»á¬ážá ááŒááááááºá áá áºáá»á¬ážááŸáá·áº ááœá±á·áá»á¬ážááŸá¯áá»á¬ážááᯠáá±á¬áºááŒáááºá¡ááœáẠvectors ááŸáá·áº matrices áá»á¬ážááŸáá·áºá¡áá° áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážá áá±áá¬áááºáááºááŸá¯á¡ááá·áºá ááá¯ážááŸááºážáá±á¬ á¡ááºáááá¯áá®áááºáá»á¬ážááŸáá·áº ááááºážáá»á¯ááºááŸá¯ááœáŸá²ááŒá±á¬ááºážááœá²á·á ááºážáá¯á¶áá»á¬áž á áááºááá¯á·ááœáẠáááá¯ááááºáá±ážááœá²ááŒááºážá á¡ááŒá±áá¶áá»á¬ážá á¡ááŒá¯á¡áá°áá±á¬áºááŒáááºá
á€á¡áá¬á¡á¬ážáá¯á¶ážááᯠááá¹áááá¯ááºáááºáááºážáá»á¬ážááœáẠá¡áá»á¯á¶ážáááºáá«ááá¬ážá áá¯ááºáá«áááºá ááá¯á·áá±á¬áºá Ohm/Kirchhoff ááááá¬ááá»á¬ážááŒáá·áº áá»áœááºá¯ááºááá¯á·ááẠáá¬ááá¯ááá¯ááºážááá áºááŸáá·áº áááºáááºáá®á¡áá¯áá®ááᯠáááŸááááºá matrices ááŸáá·áº vectors áá»á¬ážááŸáá·áºá¡áá° áááºáááºááŸá¯áá»á¬ážá¡ááŒááºá Jordan forms ááŸáá·áºáááºáž ááá¯ááºááœááºááááºááŒá áºáá«áááºá áááá¯ááááºážáááºážááœááºá ááá¯ážááŸááºážáá±á¬áááºááœá±á·ááŒá¿áá¬ááá¯ááŒá±ááŸááºážááẠá¡ááŒá²áááºážáááá¯á¡ááºáá±á¬á¡ááŒá±á¬ááºážá¡áá¬áá»á¬áž polymorphism ááá¯áá±á·áá¬áá«á
ááá¹áááá¯ááºááá¬áá±ážááẠáá»ááºááŒá±á¬ááŸáááº- áá»á±á¬ááºážáá¬ážááẠáá»ááºááŒáá·áºáá±á¬ ááŸá±á·áááºážááœáẠáá»áŸá±á¬ááºááœá¬ážááŒá®áž áá°áááŸááá±á¬ á¡ááááá¬á á¡áááá¹áá«ááºááŸáá·áº áááºááœá±á·áá»áá±á¬ á¡áá±ážáá«ááŸá¯ááᯠáááŒá¬áá áááŒááºááá±á STEM (áááá¹áá¶á áááºážááá¬á á¡ááºáá»ááºáá®áá¬á áááºá¹áá»á¬ áá°áá±á¬ á
áá¬ážáá¯á¶ážáá»á¬ážááŸ) ááá¹áááá¯ááºááá¬áá±ážá áá«áá¬ááá¯ááºážááᯠááŒá±á¬ááºážáá²áᬠá¡ááááá¬á áá±á«ááºážá
ááºááŸá¯ááᯠá¡ááŒá±áá¶á á¡áá¬áááºááœáẠááŒá®ážááŒáá·áºá
á¯á¶ááŸá¯ ááá¯ážááŒáá·áºáá¬á
á±ááá·áº áááá¯ááááºáá
áºáá¯ááᯠáááºáá®ážááẠáá¯á¶ážááŒááºáá²á·áááºá á¡ááŒááºážá¡ááẠáá»áœááºážáá»ááºáá±á¬ áá¬áá¬áááºáá»á¬ážááᯠááá¯ááá¯áááºá
áá¬áá¬áááºá¡áá
áºáá
áºáá¯ááᯠáááºáá°ááŒááºážááẠáá±ááá
áºáá¯á¡á¬áž ááŸá¬ááœá±ááŒááºážááŸáá·áº ááŸáá¯ááºážááŸááºááá¯ááºáááºá á€áá±áá¬ááœáẠááœá±ážáá»ááºá
áá¬ááŸá
áºáá¯ááŸááááº- áá±á·áá¬ááẠááá¯á¡ááºáá±á¬á¡áá±ážá
áááºá¡áá»ááºá¡áááºáá»á¬ážá
áœá¬ááŸáááá·áº á¡ááœááºá¡áá±ážá
áááºááŒá±áá¯á¶áá
áºáá¯ááŸáááẠ(áááºážááẠá¡áááá¡áááºáááá±áá¬áá»á¬ážááŒá
áºááŒá®áž áááºážááá¯á·ááẠáá
áºáá¯ááŸáá·áºáá
áºáᯠáááºááá¯á·áááºá
ááºáááºááᯠáá¬ážáááºááẠá¡áá»áááºáá»á¬ážá
áœá¬áá°ááá«áááº)á ; ááá¯á·ááá¯áẠá¡áááá¡áá»ááºáá»á¬ážááŸáá·áº áááºážááá¯á·á ááœá±áá»áá¯ážá¡áá±á¡áá¬ážáá»á¬ážááá¯áᬠááœáŸááºááŒáá¬ážááá·áº ááá¬áá¡á
á®á¡á
á¥áºááᯠáááºáá¯á¶ážááá¯ááºááẠ- ááá¯ááŒá±áá¯á¶ááẠáááºááœá¬ážá
ááºááœáẠá¡áá±ážá
áááºá¡áá»ááºá¡áááºáá»á¬ážááᯠááŸááºážáááºážá
á±ááŒá®áž áááºážááŒá±á¬ááºážááŸááºááá¯á· áá»ááºáá»ááºážá
áááºááẠáá¯á¶áá±á¬ááºáá«áááºá
áá»áœááºá¯ááºááá¯á·ááẠMIT áá»á±á¬ááºážáá¬ážáá»á¬ážááŸáá·áº á¡áá°áá»ááºážáááá·áº áá±á¬ááºážáá¬áá®áá»á±á¬ááºážááœáẠááŒááºážáááºáá±á¬ STEM áááºáá°ááŸá¯áá»ááºážáááºáááºážááᯠá
ááºážáááºáá²á·ááŒá®ážá
áá á¹á ááºážááŒááºáááºááŒááºážá
áá»á±á¬ááºážáááá¯ááááºááááááá¯ááºážááẠá¡áá¹ááá¬áááºá¹áá»á¬á áá»áŸááºá
á
áºáááºáááºážáá»á¬ážá ááœááºááŒá°áá¬áááá¯áá¬ááá¬á Python áááá¯ááááºážáááºážááŸáá·áº ROS (á
ááºáá¯ááºáááºáááºáá±ážá
áá
áº) ááá¯á·ááᯠááááºáááºááŒááºáž á¡áá«á¡ááẠá¡ááááááºáááºáá»á¬ážááœáẠáá
áºáááºá
á¬áááºáááºážáá»á¬ážááŒá
áºáááºá
áááºážááœáŸááºáá»ááºáá»á¬ážááᯠááá±á¬áºááááœá±ážáá»ááºáá²á·ááŒááºážááá¯ááºáá«- á¡áá»ááºážáá»ááºáž ááŒáá·áºá ááºážáá±ážááŒááºážááŒáá·áº ááááá áºáá»ááºááœáẠááœá²ááŒá¬ážáá¯á¶ááá±á¬ á¡áá¬áá»á¬áž- áááºá¹áá»á¬á á¡á®áááºáááœááºážáá áºááŸáá·áº áááá¯ááááºážáááºážááá¯á·ááŒá¬áž áá»áááºáááºááŸá¯ááᯠáá»á±á¬ááºážáá¬ážáá»á¬ážá¡á¬áž ááŒááºááá¯ááºááẠáá°áá®áá±ážááá·áºáááºá
áá¯ááºáá«áááºá á¡ááá áááºááœááºáá»ááºá áá±á¬ááŒá±á¬ááœá²ááœá± á¡áá»á¬ážááŒá®ážáá¯ááºááá¯á· ááá¯ááºáá² áá»á±á¬ááºážáá¬ážááœá±ááᯠá¡áá áºááá¬áá²á· á¡ááááá¬ááᯠáááºááœá±á·ááŸá¬ áááºááœá±á·á¡áá¯á¶ážáá»ááá¯á· á¡ááœáá·áºá¡áá±ážáá±ážááá¯á·áá«á
á¡áá¹ááá¬áááºá¹áá»á¬á¡ááá¯ááºážááœááºá áá»á±á¬ááºážáá¬ážáá»á¬ážááẠáá»áŸááºá á áºáááºáááºážáá»á¬ážááᯠáá±á·áá¬áá¬ááœáẠá¡áá¯á¶ážáááºááá·áº áá®áá»áŸááŒááºážáá»á¬ážá ááŒá±ááŸááºážááŒááºážá áá áºáá»á¬ážááᯠáááºááá áºáá»á¬ážááᯠáá±á·áá»áá·áºááá¯ááºáááºá ááááºá á á¹á áá¬áá áºáá¯á ááœá²á·á ááºážáá¯á¶ááŸáá·áº áááºážáá¡ááŒá±áá¶áá±á«áºááœáẠáááºáá±á¬ááºáá¬ážáá±á¬ áá¯áá¹áááá±áááá¯ááºáᬠááŒááºá ááºáá»á¬ážá¡ááŒá±á¬ááºáž áá±á·áá¬ááŒá®ážáá±á¬áẠáá»á±á¬ááºážáá¬ážáá»á¬ážááẠáááá¯áááºáá¬áááááá¬áá áºáá¯ááœáẠáááºážááá¯á·áá¡áá¯á¶ážááŒá¯ááŸá¯ááᯠááŒááºááá¯ááºááŒá®áž Python áá¬áá¬á áá¬ážá á¡ááŒá±áá¶áá»á¬ážááᯠáá±á·áá¬ááŒá®ážáá±á¬áẠáááºážááœáẠáááá·áºá ááºáá¯ááºáá áºáá¯ááºá¡ááœáẠáááá¯ááááºáá áºáá¯áá±ážáá«á
Duckietown
áá»á±á¬ááºážá áááºááŸááºážáá»ááºáá»á¬ážáá²á០áá
áºáá¯ááẠáááºááá¯ááºááá»áŸ Simulator áá»á¬ážááŒáá·áº á¡áá¯ááºáá¯ááºááŒááºážááᯠáá»áŸá±á¬á·áá»áááºááŒá
áºáááºá ááá¯á·ááŒá±á¬áá·áºá áá»á±á¬ááºážáá¬ážáá»á¬ážááẠá
á
áºááŸááºáá±á¬á¡á
áááºá¡ááá¯ááºážáá»á¬ážá០áá±á«ááºáá¯áá·áºááŒá¬ážáá
áºáá¯áá±á«áºááœáẠá
á¯áá±ážáᬠáááºááœá±á·á
ááºážáááºááẠááá¯á¡ááºáá±á¬ á¡á®áááºáááœááºážáá
áºáá¬ážáá
áºáá»á¬áž á¡áá»á¬ážá¡ááŒá¬ážááᯠááŒááºáááºáá²á·ááŒá®áž Duckietown á¡á¬áž ááá±á¬áá»ááºáá»á¬ážá¡ááœáẠá¡ááŒá±áá¶á¡ááŒá
Ạááœá±ážáá»ááºáá²á·áááºá
Duckietown ááẠDuckiebots áá¯áá±á«áºáá±á¬ ááá¯ááºááá¯ááºá¡á¯ááºáá»á¯ááºááœáá·áºáá ááºáá¯ááºáááºáá»á¬ážááŸáá·áº áááºážááá¯á·ááŒááºáááºážááœá¬ážáá¬áá±áá±á¬ áááºážáá»á¬ážááœááºáááºáá»á¬ážáá«áááºááá·áº open-source ááá±á¬áá»ááºáá áºáá¯ááŒá áºáááºá Duckiebot ááẠRaspberry Pi ááá¯ááºáááá¯ááœááºáá»á°áá¬ááŸáá·áº áááºááá¬áá áºáá¯á¶ážáá«ááŸááá±á¬ áá®ážáááºááááºáá±á¬ááºážáá áºáá¯ááŒá áºáááºá
áááºážááá¯á¡ááŒá±áá¶á áá»áœááºá¯ááºááá¯á·ááẠáááºážááŒááŒá±áá¯á¶áá áºáá¯áááºáá±á¬ááºááŒááºážá á¡áá¬ááá¹áá¯áá»á¬ážááŸá¬ááœá±ááŒááºážááŸáá·áº áááºážááá¯á·áá±ážááœááºáááºááŒááºážá ááá·áº ááŒá áºááá¯ááºááŒá±ááŸááá±á¬á¡áá¯ááºáá»á¬ážááᯠááŒááºáááºáá¬ážááŒá®ážááŒá áºáááºá áá»á±á¬ááºážáá¬ážáá»á¬ážááẠáááºážááá¯á·áááá¯ááºááá¯ááºááŒá¿áá¬ááᯠááŒá±ááŸááºážááẠáááá¯ááááºáá áºáá¯áá±ážáá¯á¶áá¬áá áááá·áºá ááºáá¯ááºáá±á«áºááœááºáááºáž áá»ááºáá»ááºážáá¯ááºáá±á¬ááºááá¯ááºáááºá
áá¯á¶ážáá©áá«ááá±ážááŒááºáž
áá±á¬ááŒá±á¬ááœá²á¡ááœááºáž ááá¬á ááá¬ááá»á¬ážá ááŒáá¯áááºááŒááºáááºáá¬ážáá±á¬ áááºááŒáá»ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠáááºááŒááŒáááºá á¡áá»áá¯á·áá±á¬ á¡áááºážáá»á¬ážááᯠáá®áá®ááá¯ááŒáá·áº ááŸááºáááºážáááºáá¬ážáá±á¬ááŒá±á¬áá·áº áá»á±á¬ááºážáá¬ážáá»á¬ážááẠá¡áááºááœáẠááŒáá·áºááŸá¯ááá¯ááºááŒáááºá áá±á¬ááŒá±á¬ááœá²á¡ááœááºáž áá»á±á¬ááºážáá¬ážáá»á¬ážááẠáááºážááá¯á·áááœááºááŒá°áá¬áá±á«áºááŸá áá
á¹á
ááºážáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áᬠáá±ážááœááºážáá»á¬ážáá±ážáᬠááŒá¿áá¬áá»á¬ážááᯠá¡áá°áááœááŒá±ááŸááºážáᬠáá
áºáá«áá
áºáá¶ááœáẠáá»á±á¬ááºáááºáá¯ááºážááœáẠááœááºáááºá
áœá¬ááŒá±ááŸááºážáá²á·áááºá á¡áá¯ááºáááááºáá»á¬ážá¡áá±á«áºá¡ááŒá±áá¶á áá»á±á¬ááºážáá¬ážáá
áºáŠážá
á®áá¡ááá·áºáááºááŸááºáá»ááºááᯠááá°áá®áá±á¬áá¬áá¬áááºáá»á¬ážááœáẠáá®ážááŒá¬ážá
á®ááœááºáá»ááºáá²á·áááºá
áá¬áá¬áááºáá
áºáá¯á
á®ááŸá á¡áááºážáá»á¬ážá á¡ááŒá¯á¡áá°ááᯠááá¯ááá¯á¡áá±ážá
ááẠáá¯á¶ážáááºááŒáá·áºááŒáá«á
áá¯á·á ááááá¬áá¬áááºááŸá¬ linear algebra ááŒá
áºáááºá áá»á±á¬ááºážáá¬ážáá»á¬ážááẠvectors ááŸáá·áº matricesá linear equations á
áá
áºáá»á¬áž á
áááºááá¯á·ááᯠáá±á·áá¬áá±áá²á·áááºá áááºááœá±á·áá¯ááºáááºážáá±á¬ááºáá¬áá»á¬ážááᯠá¡ááŒááºá¡ááŸááºá¡áá»áá¯ážáááºáá±á¬ááºááŸá¯ááŒáá·áº ááœá²á·á
ááºážáááºáá±á¬ááºáá¬ážáááº- á¡ááá¯ááŒá¯áá¬ážáá±á¬ááŒá¿áá¬áá»á¬ážááᯠáá
áºáŠážáá»ááºážááŒá±ááŸááºážáá²á·ááŒá®ážá ááá¬ááŸáá·áº á¡ááŒá¬ážáá»á±á¬ááºážáá¬ážáá»á¬ážá ááŸááºáá»ááºáá»á¬ážááŸáá·áº á¡ááŒá¶ááŒá¯áá»ááºáá»á¬ážááᯠáá±ážááŒáááºá
áá¯ááááá¬áá¬áááºááŸá¬ áá»áŸááºá
á
áºááŸáá·áº ááá¯ážááá¯ážáááºáááºážáá»á¬ážááŒá
áºáááºá áá»á±á¬ááºážáá¬ážáá»á¬ážááẠáá»áŸááºá
á
áºááá¯ááºážááá
áºá á¡ááŒá±áá¶áá»á¬áž- ááá¯á·á¡á¬ážá áááºááŸáá áá¯áá¶ááŸá¯á Ohm á á¥ááá±ááŸáá·áº Kirchhoff á á¥ááá±áá»á¬ážááᯠáá±á·áá¬áá²á·áááºá áááºááœá±á·áá¯ááºáá±á¬ááºááŸá¯áá»á¬ážááᯠSimulator ááœáẠáá
áºá
áááºáá
áºááá¯ááºážáá¯ááºáá±á¬ááºááŒááºáž ááá¯á·ááá¯áẠáá¯ááºáá±á«áºááœáẠááŒá®ážááŒá±á¬ááºáá²á·áá±á¬áºáááºážá logic circuitsá oscillating circuits á
áááºááá¯á·áá²á·ááá¯á·áá±á¬ á
á
áºááŸááºáá±á¬áá¬ážáá
áºáá»á¬ážááᯠáááºáá±á¬ááºááẠá¡áá»áááºááá¯ááŒá¬áá²á·áááºá
áá±á¬ááºá¡ááŒá±á¬ááºážá¡áá¬ááŸá¬ ááœááºááŒá°áá¬áááá¯áá¬ááá¬- áá
áºáááºážá¡á¬ážááŒáá·áº áá°ááá±áááŸáá·áº áááá¯ááááºážáááºážááᯠáá»áááºáááºáá±ážááá·áº áá¶áá¬ážááŒá
áºáááºá áá»á±á¬ááºážáá¬ážáá»á¬ážááẠáá®á¡áá¯áá®ááẠáááºááœá±á·ááẠááá¯ááá¯á¡áá±ážááŒá®ážáá±á¬ á¡ááŒá±áá¶á¡ááŒá±áá¶ááᯠáá±á·áá¬áá²á·ááŒáááºá áááºááœá±á·ááœáẠáá»á±á¬ááºážáá¬ážáá»á¬ážááẠááááºážáááºá¹áá»á¬ááŸáá·áº áá¯áá¹áááá±ááá¬ážáá
áºáá»á¬ážááᯠá¡ááŸá®á¡ááá¯áááºážá
áœá¬ áá®ááá¯ááºážááœá²áᬠááŒá®ážááŒá±á¬ááºááá·áºá¡áá¯ááºáá»á¬ážá¡ááœáẠá¡ááŸááºáá»á¬ážáááŸááá²á·áááºá
á áá¯áá¹ááá±á·ááẠáááá¯ááááºáá±ážááœá²ááŒááºážá ááááá±á·ááŒá áºáááºá Python 2 ááẠROS áááá¯ááááºážáááºážááœáẠá¡áá¯á¶ážááŒá¯ááá·áº áá¬áá¬á áá¬ážááŒá áºáá±á¬ááŒá±á¬áá·áº áááá¯ááááºážáááºážáá¬áá¬á áá¬ážá¡ááŒá Ạááœá±ážáá»ááºáá²á·áááºá á€áá±á·ááᯠá¡á±á¬ááºáá«á¡ááá¯ááºáž ááœá²á·á ááºážáá¬ážáá«áááº- ááá¬áá»á¬ážááẠá¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠáááºááŒááŒááŒá®áž ááŒá¿áá¬áá»á¬ážááᯠááŒá±ááŸááºážáá¯á¶ááá°áá¬áá»á¬áž áá±ážáá²á·ááŒááŒá®ážá áá»á±á¬ááºážáá¬ážáá»á¬ážá áááºážááá¯á·ááŒá±á¬áááºááᯠáá¬ážáá±á¬ááºáá±á ááºá ááœááºáá»á°áá¬ááœáẠááá¯ááºáᬠááá¬á áá¯áẠááá¯á·ááá¯áẠáááá¯ááºáá±á«áºááœáẠááá¬áá±ážáá¬ážáááºáá»á¬ážááᯠáááºáá«ááá²áá² ááŒá±á¬ááá¯ááŒáááºá ááá¯á·áá±á¬áẠáá»á±á¬ááºážáá¬ážáá»á¬ážááẠá¡áá¬ážáá°ááŒá¿áá¬áá»á¬ážááᯠáááºážááá¯á·ááá¯ááºááá¯áẠááŒá±ááŸááºážáá²á·ááŒááŒá®áž ááŒá±ááŸááºážáá»ááºáá»á¬ážááᯠááá¬áá»á¬ážá á¡áá²ááŒááºáá²á·ááŒáááºá
ááá¹á ááá±á·ááẠROS á¡ááœáẠáááºá á°ážáááº- áá±á¬ááºá»á¬ážáá±ážáá»á¬ážááẠá ááºáá¯ááºáááá¯ááááºá¡ááŒá±á¬ááºáž áá±á·áá¬áá²á·ááŒáááºá áá»á±á¬ááºážáá áºáááºáá¯á¶áž áá»á±á¬ááºážáá¬ážáá»á¬ážááẠááá¬ááŒá±á¬áá±á¬ áááá¯ááááºáá¯ááºááᯠááœááºááŒá°áá¬ááœáẠááá¯ááºáᬠááŒá±ážááŒáááºá áááºážááá¯á·ááẠá¡ááŒá±áᶠROS áá°áá áºáá»á¬ážááᯠáááºážááá¯á·ááá¯ááºááá¯áẠáá¯ááºáá±á¬ááºááá¯ááºáá²á·ááŒá®áž Duckietown ááá±á¬áá»ááºááá¯á·áááºáž ááááºáááºáá±ážáá²á·áááºá á€áá±á·áá¡áá¯á¶ážááœááºá áá»á±á¬ááºážáá¬ážáá»á¬ážááẠáá»á±á¬ááºážá ááá±á¬áá»ááºá¡ááá¯ááºážááᯠá áááºááẠá¡áááºááá·áºááŒá áºáá±ááŒááŒá®áž áááºááœá±á·ááŒá¿ áá¬áá»á¬ážááᯠááŒá±ááŸááºážááŒáááºá
ááœá±ážáá»ááºáá¬ážáá±á¬ ááá±á¬áá»ááºáá»á¬ážá áá±á¬áºááŒáá»ááº
áá»á±á¬ááºážáá¬ážáá»á¬ážááᯠá¡ááœá²á·áá¯á¶ážááœá²á·ááœá²á·áᬠááá±á¬áá»ááºáá±á«ááºážá ááºáá áºáᯠááœá±ážáá»ááºááá¯ááºážáááºá ááááºá¡áá±ááŒáá·áº á¡á±á¬ááºáá«ááá±á¬áá»ááºáá»á¬ážááᯠáá»ááŸááºáá²á·áá«áááºá
1. á¡áá±á¬ááºááŸáááŒááºáž Duckiebot ááẠá¡áááºážáá±á¬ááºá¡ááŒá±á¡áá±áá»á¬áž ááŒá±á¬ááºážáá²áá±á¬á¡áá«ááœáẠáááºááá¬ááᯠáá»áááºááŸáááẠááá¯á¡ááºáááºá ááá¯á·ááŒá±á¬áá·áº á¡ááá¯á¡áá»á±á¬áẠáá»áááºááŸáááŒááºáž áá¯ááºáá±á¬ááºá áᬠááŸááá«áááºá ááŒá¿áá¬ááŸá¬ á¡áá±á¬ááºá¡ááá¯ááºážá¡ááŒá¬ážáá»á¬ážááẠá¡áááºážááᯠá¡ááœááºááááá¯ááºááá¯ááºáá±á¬ááŒá±á¬áá·áºááŒá áºáááºá áá«áááºáá°áá»á¬ážááẠáá±á¬ááºáá áºáᯠ(á¡áá®á á¡ááŒá°ááŸáá·áº á¡áá«) ááŸáá·áº HSV áá±á¬áºáááºááŸá á¡áá±á¬ááºáá áºáá¯á á®á¡ááœáẠááá¯á¡ááºáá±á¬á¡áá±á¬ááºáá»á¬ážááᯠáá®ážáá±á¬ááºážááá¯ážááŒááá·áº á¡áá¯á¶ážáááºááŸá¯áá áºáá¯ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá²á·áááºá
2. Duck Taxi á á€ááá±á¬áá»ááºá á áááºáá°ážááŸá¬ Duckiebot ááẠá¡áá¬ááá¹áá¯áá áºáá¯á¡áá®ážááœáẠáááºáᬠáááºážááᯠáá±á¬ááºáá°ááŒá®áž áááºááŸááºáá¬ážáá±á¬áááºážááŒá±á¬ááºážá¡ááá¯ááºáž ááá¯ááºáááºááŒá áºáááºá áá±á¬ááºááá±á¬ á¡áá«áá±á¬áẠáá²áá áºáá±á¬ááºááᯠá¡áá¬ááá¹áá¯á¡ááŒá Ạááœá±ážáá»ááºáá²á·áááºá
3. áááºážááááºáá
áºáá¯áááºáá±á¬ááºááŒááºážá áááºážáá»á¬ážááŸáá·áº áááºážáá¯á¶áá»á¬ážááᯠááááºáá
áºáá¯áááºáá±á¬ááºááẠáá¬áááºááŸááááºá á€ááá±á¬áá»ááºááááºááœááºáá»ááºááŸá¬ Duckiebot á¡á¬áž áŠážá
á¬ážáá±ážáááºáááºážáá»ááºááá¯ááºáá¬áá±áá¬ááá¯ááá±ážáá² áááºážááááºáá
áºáá¯áááºáá±á¬ááºáááºááŒá
áºááŒá®áž áááºááá¬áá±áá¬áá±á«áºááœááºáá¬ááŸá®ááá¯áá±ááŒááºážááŒá
áºáááºá
4. ááŸáá·áºáááºážáá¬ážá áá®ááá±á¬áá»ááºááᯠáá»á±á¬ááºážáá¬ážááœá±ááá¯ááºááá¯áẠáá®ááœááºáá²á·áá¬áá«á áá°ááá¯á·ááẠDuckiebot áá áºáá±á¬ááºááᯠ"áááºážááŸáá·áº" áááºáá±ážáᬠáá±á¬ááºáá áºáá±á¬áẠ"áá»áá¯ážáá±á¬ááºáá°" ááá¯ááá¯ááºááẠá¡ááá¯ááŒá¯áá²á·áááºá á€áááºááœááºáá»ááºá¡ááœááºá ArUco á¡ááŸááºá¡áá¬ážááᯠá¡áá¯á¶ážááŒá¯á áá áºááŸááºá¡ááá¡ááŸááºááŒá¯ááŸá¯ááá¹ááá¬ážááᯠá¡áá¯á¶ážááŒá¯áá²á·áááºá á¡ááá¡ááŸááºááŒá¯ááŒááºážááŒá®ážáááºááŸáá·áº á¡áá¯ááºááŒá®ážááŒá±á¬ááºááẠ"áá»á°ážáá»á±á¬áºáá°" ááá¯á· á¡áá»ááºááŒááŸá¯áá áºáᯠáá±ážááá¯á·áááºá
á¡áá±á¬ááºááá¯ááºááŸá
Color Calibration ááá±á¬áá»ááºá áááºááœááºáá»ááºááŸá¬ á¡áááºážá¡ááŸá±á¬ááºá¡ááŒá±á¡áá±á¡áá áºáá»á¬ážááá¯á· ááŸááºááááá¯ááºáá±á¬ á¡ááŸááºá¡áá¬ážá¡áá±á¬ááºáá»á¬ážá á¡ááœá¬á¡áá±ážááᯠáá»áááºááŸááááºááŒá áºáááºá ááá¯ááá¯á·áá±á¬ ááŒá¯ááŒááºááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážáááŸááá²á ááŸááºááá¯ááºááá¯ááºážáá»á¬ážá áááºážááá¯ááºážááŒá¬ážááŒááºážááŸáá·áº áááºážáááºááááááºáá»á¬ážááᯠá¡ááá¡ááŸááºááŒá¯ááŒááºážááŸá¬ ááŸá¬ážááœááºážáá±áá«áááºá áá«áááºáá°áá»á¬ážááẠá¡áá®áá±á¬ááºá á¡áá«ááŸáá·áº á¡ááŒá° áá±á¬ááºá á¯á¶áá»á¬áž ááŒáá¯áááºáá¯ááºáá±á¬ááºááŒááºážá¡áá±á«áº á¡ááŒá±áá¶á á¡ááŒá±áá áºáá¯ááᯠá¡ááá¯ááŒá¯áá²á·áááºá
á€á¡áá±á¬ááºáá áºáá¯á á®ááœáẠHSV ááá¯á·ááá¯áẠRGB áááºááá¯ážáá»á¬áž ááŒáá¯áááºáááºááŸááºáá¬ážáá±á¬ á¡ááœá¬á¡áá±ážááŸááááºá á€á¡ááœá¬á¡áá±ážááᯠá¡áá¯á¶ážááŒá¯á ááá·áºáá»á±á¬áºáá±á¬á¡áá±á¬ááºáá»á¬ážáá«ááŸááá±á¬ áááááºá á§áááá¬á¡á¬ážáá¯á¶ážááᯠááœá±á·ááŸáááŒá®áž á¡ááŒá®ážáá¯á¶ážááᯠááœá±ážáá»ááºáá¬ážáááºá á€áá±áá¬ááᯠááŸááºáá¬ážáá¬ážááẠááá¯á¡ááºáá±á¬ á¡áá±á¬ááºá¡ááŒá Ạáá°áá«áááºá ááá¯á·áá±á¬áẠá¡áá±á¬ááºá¡ááá¯ááºážá¡ááŒá¬ážá¡áá áºááᯠááá·áºááŸááºážááẠáá»ááºážáá»áŸááŸáá·áº á á¶ááœá±áááºááŸá¯ááᯠááœááºáá»ááºááŒááºážáá²á·ááá¯á·áá±á¬ ááááºážááááºážááá¯ááºáᬠáá±á¬áºááŒá°áá¬áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá«áááºá
á€á¡ááœá¬á¡áá±ážááᯠDuckiebot ááááºááá¬ááœá²á·á ááºážááŸá¯áá¯á¶á á¶ááá¯ááºáá»á¬ážááœáẠááŸááºáááºážáááºáá¬ážááŒá®áž áá±á¬ááºááá¯ááºážááœááºá¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá áá±á¬áºááŒáá¬ážáá±á¬ áá»ááºážáááºáááºážááᯠá¡áá±á¬ááºáá¯á¶ážáá±á¬ááºá áá¯á¶ážááœáẠá¡áá¯á¶ážáá»áá²á·ááŒá®áž áá±á¬ááºáá¯á¶ážááœáẠá¡ááŸááºá¡áá¬ážá¡áá±á¬ááºáá áºáá¯á á®á¡ááœáẠá¡ááá¯ááºážá¡ááŒá¬ážáá»á¬áž ááœá²á·á ááºážáá²á·áááºá
á ááºážáááºááŸá¯áá»á¬ážááœáẠá¡ááŸááºá¡áá¬ážááŒá¯áá¯ááºááá·áºáá á¹á ááºážáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá¬ážááá·áº áá±á¬ááºááá±á¬ááááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá¬ážááá·áº ááá á¹á áá»á¬ážááœáẠá¡ááŸááºá¡áá¬ážááŒá¯áá¯ááºáá¬ážááá·áº áá»ááºážááŒá±á¬ááºážáá»á¬ážááᯠááŒááºážáááºá áœá¬áááºáááºá á±ááá·áº á¡áááºážáááºážááŒá áºáá»á¬ážááᯠáááºááá¬áááŒáá·áºááŸá¯áá±á¬áá·áºááŸáá±á á¡ááŸááºá¡áá¬ážáá»á¬ážááẠáááºážááá°áá¡áá±á¬ááºáááœá²ááŒá¬ážáá² á¡ááŒá°áá±á¬ááºáá±á«áºááœááºá á±áááºá
Duck Taxi
Duck Taxi ááá±á¬áá»ááºááœáẠááŒáá¯á·áá±á¬áºááœáẠáá²ááá®ážáááºáá áºáŠážááᯠááŸá¬ááœá±ááẠá¡ááºáááá¯áá®áááºáá áºáᯠáááºáá±á¬ááºáᬠááá¯á¡ááºááá·áºáá±áá¬ááá¯á· ááá¯á·áá±á¬ááºáá±ážáááºá áá«áááºáá°áá»á¬ážááẠá€ááŒá¿áá¬ááᯠááŸá áºááá¯ááºážááœá²áá¬ážáááº- ááááºáá áºáá»áŸá±á¬áẠáá±á¬ááºááŸááºážááŸá¯ááŸáá·áº ááŸá¯ááºááŸá¬ážááŸá¯á
áá»á±á¬ááºážáá¬ážáá»á¬ážááẠáá²áá áºáá±á¬ááºááẠá¡áá«áá±á¬ááºá¡ááŒá Ạá¡ááá¡ááŸááºááŒá¯ááá¯ááºáá±á¬ áá±á¬ááºá¡ááœááºážááŸá áááºááá·áºáá±áá¬ááá¯áááᯠáá²áá áºáá±á¬ááºááᯠááŸá¬ááœá±ááœá±á·ááŸáááŒá®áž áááºážáá±á«áºááœáẠá¡áá®áá±á¬ááºááŒááᶠ(ááŸá¯ááºáá®áž) áá«áááºáááºá ááá¯áá±áá¬ááᯠáá±á¬ááºáá±á¬ááºááœáẠááœá±á·ááŸááááºááŸáá·áºáááŒáá¯ááºááẠá ááºáá¯ááºááẠáááºážá¡áá®ážááá¯á· á áá¹ááá·áºá¡áááºážáááºááŒá¬ áááºááœá¬ážáᬠááá®ážáááºáá áºáŠážá áááºážáááºááŸá¯ááᯠáá¯á¶áá±á¬áºáá±ážáááºááŒá áºáááºá
ááá¯á·áá±á¬ááºá duckietown áá áºáá¯áá¯á¶ážá áááºážááááºááŸáá·áº bot á áááºáá±áá¬ááᯠmemory ááœáẠááŒáá¯áááºááááºážáááºážáá¬ážááŒá®ážá input á¡ááŒá ẠáŠážáááºáá¬ááᯠáááºáá¶áááŸááᬠáá«áááºáá°áá»á¬ážááẠááááºá¡ááœááºážááŸá áááºážááŒá±á¬ááºážáá»á¬ážááᯠááŸá¬ááœá±ááẠDijkstra á á¡ááºáááá¯áá®áááºááᯠá¡áá¯á¶ážááŒá¯á ááœááºááœá¬ááá·áºá¡ááŸááºá០ááá¯ááºáá±á¬ááºááá·áºáá±áá¬ááá¯á· áááºážááŒá±á¬ááºážáá áºáᯠáááºáá±á¬ááºáááºá . output ááᯠcommand á¡á á¯áá áºáá¯á¡áá±ááŒáá·áºáááºááŒááẠ- á¡á±á¬ááºáá«áááºážáá¯á¶áá áºáá¯á á®ááœááºááŸáá·áºáááºá
áááºážáá»á¬ážáááááºáá áº
á€ááá±á¬áá»ááºááááºááœááºáá»ááºááŸá¬ Duckietown ááŸá áááºážáá»á¬ážááœááºáááºáá áºáá¯ááŒá áºááá·áº ááááºááºáá áºáá¯áááºáá±á¬ááºáááºááŒá áºáááºá ááááºááááºáá»á¬ážááá¯á¶ááŸááºáá»á¬ážááẠáááºážáá¯á¶áá»á¬ážááŒá áºááŒá®áž arcs áá»á¬ážááẠáááºážáá»á¬ážááŒá áºáááºá áá«ááá¯áá¯ááºááá¯á· Duckiebot áᬠááŒáá¯á·ááá¯á á°ážá ááºážááŒá®áž áá°á·áá²á·áááºážááŒá±á¬ááºážááᯠááœá²ááŒááºážá áááºááŒá¬ááá«áááºá
ááá±á¬áá»ááºááá¯áá¯ááºáá±á¬ááºáá±á ááºá¡ááœááºážá á¡áá±ážáá»áááºááŸááá±á¬ááááºááá¯áááºáá®ážáááºá áááºáá°ážááá¯ááá·áºááœááºážá ááºážá á¬ážáá²á·áá±á¬áºáááºážá áááºážááœáẠá¡á áœááºážáá áºáá¯ááá¯ááºáá»á ááááºááẠáááºážáá¯á¶áá»á¬ážááŒá¬ážá¡ááœá¬á¡áá±áž (ááá®ážááœá¬ážáááºá¡áá»áááº) ááŒáá·áºáá¯á¶ážááŒááºáááºá á€á¡ááŒá¶á¡á ááºááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááŒááºážááẠáá¯ááºáá¬ážá¡áá¯á¶ážáá»á¬ážááœááºážáááŒáá·áº áá»á±á¬ááºážá¡ááœááºážá á¡áá»áááºááá¯á¶áá±á¬ááºáá²á·áá«á
Duckiebot ááẠáá±á¬ááºáááºážáá¯á¶ááá¯á· áá±á¬ááºáá±á¬á¡áá«á áááºážááẠááá°ááá±ážáá±á¬ áááºážáá¯á¶á០ááœááºáá±á¬áááºážááᯠááœá±ážáá»ááºáááºá áááºážáá¯á¶á¡á¬ážáá¯á¶ážááŸá áááºážá¡á¬ážáá¯á¶ážááᯠááŒááºáá»á±á¬áºááŒá®ážáá±á¬á¡áá«á áá¯ááºáá¯ááºááá¯ááºáá±á¬ áááºážáá¯á¶á¡áááºá¡á ááºáá»á¬ážá á¬áááºážááẠGraphviz á á¬ááŒáá·áºááá¯ááºááᯠá¡áá¯á¶ážááŒá¯á áá¯á¶áá áºáá¯á¶á¡ááŒá áºááá¯á· ááŒá±á¬ááºážáá²áá¬ážááá·áº bot áááŸááºáá¬ááºááœáẠáá»ááºááŸááá±áá«áááºá
áá«áááºáá°áá»á¬áž á¡ááá¯ááŒá¯áá¬ážáá±á¬ á¡ááºáááá¯áá®áááºááẠáá»áááºáž Duckietown á¡ááœáẠáááá·áºáá»á±á¬áºáá±á¬áºáááºáž áá»á±á¬ááºážá¡ááœááºážá¡áá¯á¶ážááŒá¯áá±á¬ áááºážáá¯á¶áá±ážáá¯ááŸáááá·áº ááŒáá¯á·áááºáá±ážá¡ááœáẠáá±á¬ááºážá
áœá¬á¡áá¯ááºáá¯ááºáááºá áááºážáá¯á¶áá»á¬ážááᯠáá±á¬ááºážááŸááºáá²á·ááá·áº á¡á
á®á¡á
á¥áºááᯠááŒá±áá¬áá¶ááẠáááºážáá¯á¶á¡ááŸááºá¡áá¬ážáá«ááŸááá±á¬ áááºážáá¯á¶áá
áºáá¯á
á®ááœáẠArUco á¡ááŸááºá¡áá¬ážáá
áºáá¯ááᯠááá·áºááẠá
áááºáá°ážááŒá
áºáááºá
áá«áááºáá°áá»á¬ážá០áááºáá®ážáá¬ážáá±á¬ algorithm á áá¯á¶ááœáẠááŒáá¬ážáááºá
áááºážááŸáá·áºáá¬áž
á€ááá±á¬áá»ááºááááºááœááºáá»ááºááŸá¬ Duckietown ááŒáá¯á·ááœáẠáá»áá¯ážáá±á¬ááºááá·áº bot áá áºáá¯ááᯠááŸá¬ááœá±áááºá ááá¯ááºááŸá¬áááºááŸáá·áº ááááºážááááºážáááºááŒá áºáááºá áááºážááŸáá·áºáááºá¹áá±á¬ááẠááŒáá¯á·ááœááºážáááºážá á¡ááŒááºáááºá¡ááá¯ááºážááœáẠáá°áááá»á¬ážáá±á¬ áá»á°ážáá»á±á¬áºáá°á¡á¬áž ááŸá¬ááœá±áá±ááá«áááºá áá»á°ážáá»á±á¬áºáá°á¡á¬áž ááŸá¬ááœá±ááœá±á·ááŸáááŒá®ážáá±á¬áẠáááºážááŸáá·áºá¡ááœá²á·ááẠáá»á°ážáá»á±á¬áºáá°áá±á¬ááºááá¯á· ááá¯ááºáᬠáááºááá·áºááẠááœááºážá¡á¬ážáá±ážááááºááŒá áºáááºá
á¡áá¯ááºááẠframe áá áºáá¯á¡ááœááºáž bot áá áºáá¯ááᯠááŸá¬ááœá±ááŒááºážááŸáá·áº áááºážááœáẠáá»á°ážáá»á±á¬áºáá°á¡á¬áž á¡ááá¡ááŸááºááŒá¯ááŒááºážá¡ááœáẠá áááºáá°ážáá áºáá¯ááŸá¬ááœá±ááŒááºážá០á áááºáá²á·áááºá á¡ááœá²á·ááẠááŒáá¯á·ááœááºážááŸá áá±á¬á·ááºáá áºáá¯á á®ááᯠáá»á±á¬áááºááœáẠáá®ážááá·áºá¡ááŸááºá¡áá¬ážááŒáá·áº áááºáááºááẠá¡ááá¯ááŒá¯áá²á·ááẠ- áááá·áºáá¬ážáá»á¬ážááẠááá¯ááºáá¶áá±á¬áºááŸááºáá¯á¶áááºáá¶áá«ááºáá»á¬ážáá²á·ááá¯á·áááºá á€áááºááœááºáá»ááºá¡ááœáẠArUco á¡ááŸááºá¡áá¬ážáá»á¬ážááᯠááœá±ážáá»ááºáá²á·áááºá áááºážááá¯á·ááᯠduckietown ááœáẠááááºá á¡áá¯á¶ážááŒá¯áá²á·ááŒá®áž áááºážááá¯á·ááŸáá·áº á¡áá¯ááºáá¯ááºááẠááœááºáá°ááŒá®áž á¡á¬áá¬áá¡ááœááºáž á¡ááŸááºá¡áá¬ážá ááááºážááœáŸááºááŸá¯ááŸáá·áº áááºážááŸáá·áº áááºážáá¡ááœá¬á¡áá±ážááᯠáá¯á¶ážááŒááºááá¯ááºá á±áá±á¬ááŒá±á¬áá·áº áááºážááá¯á·ááᯠááááºá á¡áá¯á¶ážááŒá¯áá²á·áááºá
ááá¯á·áá±á¬áẠáááºážáá¯á¶áá»á¬ážááœáẠááááºáá² á¡ááŒááºáááºá¡ááá¯ááºážá¡ááœááºáž áááºážááŸáá·áºá¡ááœá²á·á¡á¬áž áááºážááŒááºá áœá¬ ááœá±á·áá»á¬ážá á±ááŒá±á¬ááºáž áá±áá»á¬á á±ááẠááá¯á¡ááºáá«áááºá áá¯á¶ááŸááºá¡á¬ážááŒáá·áºá Duckiebot ááẠáááºážááŒá±á¬áá áºáá¯ááœáẠááœá±á·áá»á¬ážááŒá®áž ááŸááºááá¯ááºááœáẠáááºáááºá ááá¯á·áá±á¬áẠáááºážááá¯ááºážáá¯ááºáá»á¬ážáá¡áá°á¡áá®ááŒáá·áº áááºážáá¯á¶áááœá²á·á ááºážáá¯á¶ááᯠáá¯á¶ážááŒááºááŒá®áž áááºážáá¯á¶ááááºážááŒá±á¬ááºážááá¯ááœá±ážáá»ááºáááºá áá±á¬áºááŒáá¬ážáá±á¬ á¡ááá·áºáá áºáá¯á á®á¡ááœááºá á ááºáá¯ááºá ááá·áºáááºááŒááºáááºá ááºá ááŒááºáááºáá áºáá¯á á®ááœáẠáá¬áááºááŸááááºá áááºážáá¯á¶ááœáẠááŸááºááá¯ááºáá»á¬ážááᯠáááºááŸá¬ážáááºá¡ááœááºá á¡ááœá²á·ááẠáááºááá·áºáá±ážááá¯ááºážááá¯á· áá»ááºážáááºáá±á¬á¡áá«á bot ááẠáááºážáá¯á¶áá áºáá»áŸá±á¬áẠááá·áºááá·áºáá±á¬ááºážááŸááºááá·áº á¡ááŒá±á¡áá±ááá¯á· áá»ááºáá»ááºážááŒá±á¬ááºážááœá¬ážáá²á·áááºá
áá±á¬ááºáá áºááá·áºááŸá¬ áá»á°ážáá»á±á¬áºáá° bot ááᯠáááºááá·áºááẠááŒá¿áá¬ááᯠááŒá±ááŸááºážáááºááŒá áºáááºá á¡ááœá²á·ááẠáááºážááŸáá·áºáá±á¬á·ááºááẠááŒáá¯á·áá±á¬áºááŸá áá±á¬á·ááºáá áºáá¯á á®ááá¯á· SSH áááºáá±á¬ááºááá¯ááºáááºáᯠáá°ááá¬á ááá¯ááá¯áááºááŸá¬ áááºááá·áºááœáá·áºááŒá¯áá»ááºáá±áá¬ááŸáá·áº bot áá áºáá¯á á®ááœáẠid ááŸááááºáá°áá±á¬ á¡áá»ááºá¡áááºá¡áá»áá¯á·ááŸááááºá ááá¯á·ááŒá±á¬áá·áºá áá»á°ážáá»á±á¬áºáá°á¡á¬áž ááŸá¬ááœá±ááœá±á·ááŸáááŒá®ážáá±á¬ááºá áááºážááŸáá·áºáá±á¬á·ááºááẠSSH ááŸáá áºááá·áº áá»á°ážáá»á±á¬áºáá° bot ááá¯á· á áááºáá»áááºáááºáᬠáááºážáá áá áºá¡á¬áž ááááºáá áºáá²á·áááºá
ááááºááŒááºážá¡áááá·áºááᯠááŒá®ážááŒá±á¬ááºááŒá±á¬ááºáž á¡áááºááŒá¯ááŒá®ážáá±á¬áẠáááºážááŸáá·áºáá±á¬á·ááºáááºáááºáž áááºááá·áºááœá¬ážáá²á·áááºá
áááºážááŸáá·áºá
ááºáá¯ááºá áááºáááºááŸá¯ á¡ááºáááá¯áá®áááºááᯠá¡á±á¬ááºáá«áá¯á¶ááŒááºážá¡ááŒá
Ạááá¯ááºá
á¬ážááŒá¯ááá¯ááºáááº-
ááá±á¬áá»ááºáá»á¬ážááœáẠáá¯ááºáá±á¬ááºáá±áááºá
á¡áá¯ááºá¡á¬áž Scrum ááŸáá·áº áááºáá°áá±á¬ áá¯á¶á á¶ááŒáá·áº á á®á ááºáá²á·áááº- áá»á±á¬ááºážáá¬ážáá»á¬ážááẠáá¶áááºááá¯ááºáž áááºááŸááá±á·á¡ááœáẠá¡áá¯ááºáá»á¬ážááᯠá á®á ááºááŒááŒá®áž ááá±ááá¯ááºážááœáẠááŒá®ážáá²á·áá±á¬ á¡áá¯ááºáá»á¬ážááᯠá¡á á®áááºáá¶ááŒáááºá
ááááá±á·ááŸáá·áº áá±á¬ááºáá¯á¶ážáááºáá»á¬ážááœáẠáá»á±á¬ááºážáá¬ážáá»á¬ážááẠáá¯ááºáááºážáá¬áááºááŸáá·áº ááŒá±ááŸááºážáá¯á¶ááá¯á·ááᯠáá±á¬áºááŒááá·áº áááºááŒáá»ááºáá»á¬ážááᯠááŒááºáááºááŒáááºá áá»á±á¬ááºážáá¬ážáá»á¬ážááẠáááºážááá¯á·á ááœá±ážáá»ááºáá¬ážáá±á¬ á¡á á®á¡á ááºáá»á¬ážááᯠááá¯ááºáá¬ááẠáá°áá®áááºá áá¯ááŸá¬ážááŸáá·áº á¡áá±áááá០ááá¬áá»á¬ážááẠááá±á¬áá»ááºáá»á¬áž áá¯ááºáá±á¬ááºááá·áº á¡áááºážáá»á¬ážááœáẠá¡áááºáááŒáẠááŸááá±ááŒááŒá®áž áá±ážááœááºážáá»á¬ážááᯠááŒá±ááŒá¬ážáá±ážááŒáááºá áááºááœááºáá±ážááẠá¡áááá¡á¬ážááŒáá·áº á¡ááºá¹áááááºáá¬áá¬ááŒáá·áº ááŒá áºááœá¬ážáá²á·áááºá
ááááºáá»á¬ážááŸáá·áºáááºážááá¯á·áááá¯ááº
ááá±á¬áá»ááºáá»á¬ážááᯠáá áºáááºááŒá¬áá¯ááºáá±á¬ááºááŒá®ážáá±á¬áẠáá»á±á¬ááºážáá¬ážáá»á¬ážá áááºážááá¯á·áááááºáá»á¬ážááᯠáááºááŒááŒáááºá áá°ááá¯ááºážááẠá€áá»á±á¬ááºážááœáẠáááºáá°áá²á·áá¬áá»á¬ážá á¡áá±ážááŒá®ážáá¯á¶ážáááºáááºážá á¬áá»á¬ážá ááŒáá¯ááºááẠáááŒáá¯ááºáááºáá»á¬ážá¡ááŒá±á¬ááºáž ááœá±ážááœá±ážáááºááŒááŸá¯áá»á¬ážááᯠááŒááºáááºááŒáááºá ááá¯á·áá±á¬áẠá¡ááœá²á·áá áºááœá²á·á á®á áááºážá ááá±á¬áá»ááºááᯠáááºááŒááŒáááºá á¡ááœá²á·á¡á¬ážáá¯á¶ážááẠáááºážááá¯á·á áá¬áááºáá»á¬ážááᯠááŒá®ážááŒá±á¬ááºá á±áá²á·áááºá
á¡áá±á¬ááºáá»áááºááŸáááŒááºážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááá·áºá¡ááœá²á·ááẠááá±á¬áá»ááºááᯠá¡ááŒá¬ážáá°áá»á¬ážááẠááá¯ááá¯ááŒááºáááºá áœá¬ ááŒá®ážááŒá±á¬ááºá á±áá±á¬ááŒá±á¬áá·áº áááºážááá¯á·ááááá¯ááááºá¡ááœáẠá á¬ááœááºá á¬áááºážáá»á¬ážááᯠááŒááºáááºáá»áááºáááºáž ááŸááááºá ááá±á¬áá»ááºáááá¯ááºááŒáá® áá±á¬ááºáá¯á¶ážáá±á·ááœááºááẠáááºážááááºáá±á«áºááœáẠáá¯ááºáá±á¬ááºáá±áá±á¬ á¡ááœá²á·ááẠáááºážááá¯á·á á¡ááºáááá¯áá®áááºáá»á¬ážááᯠááŒá¯ááŒááºáááºááŸáá·áº ááŒá¯ááŒááºááẠááŒáá¯ážá á¬ážáá²á·áááºá
áá±á¬ááºáá»ááº
áá»á±á¬ááºážááŒá®ážáá¬áá²á·á áá»á±á¬ááºážáá¬ážááœá±ááᯠá¡ááááºá ááŸá¯ááºááŸá¬ážááŸá¯ááœá±ááᯠá¡áá²ááŒááºááá¯ááºážááŒá®áž áá»á±á¬ááºážá áá°ááá¯á·áá²á· áá»áŸá±á¬áºááŸááºážáá»ááºááœá±ááᯠáááºáá±á¬ááºáá±á¬ááºážáá±á¬ááºáž ááŒáá·áºáááºážáá±ážááá¯ááºááá²á áááºááᯠá¡áááºá¡áá»ááºážááœá± ááŸááá² á áááŒáá·áº áá±ážááœááºážááœá±ááᯠááŒá±ááá¯ááºážáá«áááºá áá»á±á¬ááºážáá¬ážá¡á¬ážáá¯á¶ážááẠá¡ááœá²á·ááá¯ááºáá¯ááºáá±á¬ááºáááºá á¡áá¯ááºáá»á¬ážááᯠááŒáá·áºáá±áááºááŸáá·áº áááºážááá¯á·áá¡áá»áááºáá»á¬ážááᯠá¡á á®á¡á ááºááœá²áááºááŒá±á¬ááºáž ááŸááºáá¬ážáá²á·áááºá
áá»á±á¬ááºážáá¬ážáá»á¬ážá¡á¬áž áááºážááá¯á·áááºáá±á¬ááºáá²á·áá±á¬ áááºáááºážáá»á¬ážá á¡áá¯á¶ážáááºááŸá¯ááŸáá·áº á¡áááºá¡áá²áá»á¬ážááᯠá¡ááá·áºáááºááŸááºáá±ážáááºáááºáž áá±á¬ááºážááá¯áá²á·áááºá á€áá±áá¬ááœáẠá¡áá²ááŒááºááŸá¯á¡á¯ááºá á¯ááŸá áºá á¯ááᯠááœá²á·á ááºážáá²á·áá«áááºá á¡áá»áá¯á·áá±á¬áááºáááºážáá»á¬ážááœáẠá¡áááºá¡áá²áá»á¬ážá áœá¬áááŸáááá·áºá¡ááœáẠá¡áá»áá¯á·á áááºážááá¯á·á¡á¬áž á¡ááœááºáááºáá²áááºáᯠáááºááŸááºááŒáááºá
ááá¯ááá¯áááºááŸá¬ áá»á±á¬ááºážááẠáááºááá¯ááºáá¬áááºáááºáá áºáá¯ááœáẠá áááºáá°áá»á¬ážá¡ááœáẠáááºááŸááºážáá®ááẠáá»ááºááŸááá±áááŒáá·áº ááŸááºáááºáá±á¬á¡áá±á¡áá¬ážááᯠáááŸááá¬ážááŒá®áž á¡ááœá±á·á¡ááŒá¯á¶ááŸá áá»á±á¬ááºážáá¬ážáá»á¬ážá áááºáá«ááá²áá²ááŸáá·áº á á¯á ááºážááŸá¯á¡ááœáẠáá á¹á ááºážáá»á¬ážáááºáž áá¶á·ááá¯ážáá±ážáá¬ážáá«áááºá áááá¯ááááºážáááºážáááºáááºáž (Python) ááẠááŸá¯ááºááœá±ážááŸá¯áááŸááá±á¬áºáááºáž á¡áá¯á¶ážáááºáááºáᯠáá°ááá¯ááºážáá®ážáá«ážá ááŸááºáá¬ážáá¬ážááá·áºáááºá áá»á±á¬ááºážáá¬ážáá»á¬ážá á¡ááá¯á¡á á¡áááºáá²áá¯á¶áž áá¬áá¬áááºááŸá¬ âááœááºááŒá°áᬠáááá¯áá¬â ááŒá áºáááºá
áá»á±á¬ááºážáá²á· á¡á¬ážáá¬áá»áẠá¡á¬ážáááºážáá»ááºááœá±ááᯠáá»á±á¬ááºážáá¬ážááœá±ááᯠáá±ážááŒááºážáá²á·á¡áá« áá±á¬áºáá±á¬áºáá»á¬ážáá»á¬ážá ááá¬ááœá±á ááœá±ážáá»ááºáá¬ážáá²á· áááºááŒá¬ážááŸá¯áá¯á¶á á¶ááᯠááá±á¬áá»ááŒá±á¬ááºáž ááŒá±ááŒá¬ážáá²á·ááŒá®áž ááá¬áááá¬áááœá±á áá»ááºááŒááºážá¡áá°á¡áá®áá±ážáᬠááŒá±ááŒá¬ážáá±ážáá²á·áá«áááºá
áá»á±á¬ááºážáá¬ážáá»á¬ážááẠáááºážááá¯á·á áá¯ááºáááºážáá¬áááºáá»á¬ážááᯠáá±á·á á¥áºá á®á ááºááŒááºážááŸáá·áº áááºážááá¯á·áááá¯ááºááá¯áẠáááºááŸááºáááºáá»á¬áž áááºááŸááºááŒááºážáá¯á¶á á¶ááœáẠá¡áá¯ááºáá¯ááºááŒááºážááᯠááŸá áºáááºááŒá±á¬ááºážáááºáž ááŸááºáá¬ážáá²á·áááºá á¡á¬ážáááºážáá»ááºáá»á¬ážá¡áá±ááŒáá·áº bot ááŸáá·áºá¡áá¯ááºáá¯ááºáá¬ááœáẠááá¯á¡ááºááá·áº á¡ááááá¬áááºážáá«ážááŸá¯ááᯠáá»á±á¬ááºážáá¬ážáá»á¬ážá áááááŒá¯áááááº- áá»áááºáááºááá·áºá¡áá«á áááºážááá¯ááºáááºážáá±á¬ááºáá¬á á¡ááŒá±áá¶áá»á¬ážááŸáá·áº á¡ááŒá±áá¶ááá±á¬ááá¬ážáá»á¬ážááᯠáá¬ážáááºááá±á¬áá±á«ááºáá«áááºá
áá»á±á¬ááºážáá¬ážá¡á¬ážáá¯á¶ážáá®ážáá«ážááẠáá»á±á¬ááºážááẠáááºážááá¯á·ááá»áŸá±á¬áºááá·áºáá»ááºáá»á¬ážááᯠáá»á±á¬áºááœááºááœá¬ážááŒá±á¬ááºáž áááááŒá¯ááááŒááŒá®ážá áááºážá áá»á±á¬ááºážááᯠá ááºážáá¯á¶ážáá±ážáááºážááŒá±á¬ááºážááŸááºááᯠááœáŸááºááŒáá±áááºá ááá¯á·ááŒá±á¬áá·áº áá±á¬ááºáá»á±á¬ááºážááᯠá ááºážáá¯á¶ážáá¬ááœáẠáá±áá°áá»á¡ááŒá±áá¶áá°áá»á¬ážááᯠááá·áºááœááºážá ááºážá á¬ážááŒá®áž ááŒá áºááá¯ááºáá«á áá»á±á¬ááºážáá¬ážáá»á¬ážááŸáá·áº ááá¬áá»á¬ážá០ááŸááºáá¬ážáá¬ážáá±á¬ áá»áá¯á·ááœááºážáá»ááºáá»á¬ážááᯠáááºááŸá¬ážáᬠáááºáááºážá á¬áááºáž ááá¯á·ááá¯áẠáááºážááá¯á·á áááºááŒá¬ážááá·áºá¡áá»áááºááᯠááŒá±á¬ááºážáá²ááŒááºáž ááŒá áºááá¯ááºáááºá
áá±á¬ááºážáá«ážáá±ážáá¬ážáá°áá»á¬áž: á¡ááœá²á·
PS áá»áœááºá¯ááºááá¯á·ááá±á¬áºááá¯ááááºááá±á¬á·ááºááœáẠáá¬áááºá¡áá
áºáá
áºáá¯ááŸááááºá ááᯠáááºážááᯠJetBrains á ááá¬áá±ážááá¯ááºáᬠááá±á¬áá»ááºáá»á¬ážá¡ááœáẠáááºá
á°ážáá¬ážáá«áááºá
source: www.habr.com