рд░реЛрдмреЛрдЯ рд▓реЛрдбрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛: рдЕрдкрдирд╛ рд╕реНрдерд╛рди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛

рдореЗрд░реЗ рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рдмреНрд░рд┐рдЯрд┐рд╢ рд╕рд╛рдереА (рдпрд╣ рдЙрдирдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ " рджреЛ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдореЗрд▓реЛрдВ рдХреЛ рдкрд╣рдЪрд╛рдирдирд╛" ) рд╡реНрдпрд╡рд╕рд╛рдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рд╡рд┐рдЪрд╛рд░ рдерд╛: рд░реЛрдмреЛрдЯ рдХреЛ рдЧреЛрджрд╛рдо рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдмрдХреНрд╕реЗ рд▓реЗ рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдореВрд╡рд░реНрд╕ рдХреЛ рдХреЗрд╡рд▓ рд░реЛрдмреЛрдЯ рд╕реЗ рд╢реЗрд▓реНрдл рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рд╕рд╛рдорд╛рди рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдмрд┐рдВрджреБ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХ рд▓реЛрдбрд░ рд╣рд░ рд░реЛрдмреЛрдЯ рдХреЗ рдкреАрдЫреЗ рдЖрддрд╛ рд╣реИ рдФрд░ рд░реЛрдмреЛрдЯ рдХреЗ рд░реБрдХрддреЗ рд╣реА рд▓реЛрдбрд┐рдВрдЧ рдФрд░ рдЕрдирд▓реЛрдбрд┐рдВрдЧ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд┐ рд▓реЛрдбрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд░реЛрдмреЛрдЯ рд╣реИрдВ рдФрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рд░реЛрдмреЛрдЯ рдЕрдкрдиреЗ рдЕрдВрддрд┐рдо рдмрд┐рдВрджреБ рдкрд░ рд╣реЛрддреЗ рд╣реИрдВ рдорд╛рд░реНрдЧ, рд▓реЛрдбрд┐рдВрдЧ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ рдлрд┐рд░ рд▓реЛрдбрд░ рдХреЗрд╡рд▓ рдПрдХ рд░реЛрдмреЛрдЯ рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рдЬрд╛рдПрдЧрд╛, рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдорд╛рд▓ рдкрд░рд┐рд╡рд╣рди рдХреЗ рдХрд╛рдо рдХреЗ рд╕рдордп рдХреЛ рдмрд░реНрдмрд╛рдж рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдкреНрд░рд╛рдЧрд┐рддрд┐рд╣рд╛рд╕


рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓, рд╣рдордиреЗ рд░реВрдВрдмрд╛ рд╕реНрд╡-рдЪрд╛рд▓рд┐рдд рд╡реИрдХреНрдпреВрдо рдХреНрд▓реАрдирд░ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ред рдПрдХ рдмреНрд░рд╛рдВрдб-рдиреНрдпреВ рд╡реИрдХреНрдпреВрдо рдХреНрд▓реАрдирд░ рдХреА рдХреАрдордд рд╣рдореЗрдВ ┬г 300 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ (рдПрдХ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ┬г 100 рдпрд╛ рд╕рд╕реНрддрд╛ рдХреЗ рд▓рд┐рдП рднреА рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ), рдФрд░ рдЗрд╕рдореЗрдВ рдкрд╣рд┐рдпреЛрдВ рдкрд░ рджреЛ рдЗрд▓реЗрдХреНрдЯреНрд░рд┐рдХ рдбреНрд░рд╛рдЗрд╡, рдлреНрд░рдВрдЯ рдкрд░ рджреЛ рдЯрдЪ рд╕реЗрдВрд╕рд░, рддрд▓ рдкрд░ рдПрдХ рдЕрд╡рд░рдХреНрдд рд╕реЗрдВрд╕рд░ (рдЪрд░рдгреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП) рдФрд░ рд╢реАрд░реНрд╖ рдкрд░ (рдмрдо рд╕реНрдЯреЗрд╢рди рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП) рд╢рд╛рдорд┐рд▓ рд╣реИрдВред ред рд╕реЗрдВрд╕рд░ рдХреА рд╕рдЯреАрдХ рд╕реВрдЪреА рдореЙрдбрд▓ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ: рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдиреАрдЪреЗ рд╕реЗ рдЪрд╛рд░ рдЕрд╡рд░рдХреНрдд рд╕реЗрдВрд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рдмрд┐рдЯ ("рджреГрд╢реНрдпрдорд╛рди / рджреГрд╢реНрдпрдорд╛рди рдирд╣реАрдВ") рджреЗрддрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреЛрдИ рд░реЗрдВрдЬрдлрд╛рдЗрдВрдбрд░ рдирд╣реАрдВ: рд╕рднреА рдЙрдкрд▓рдмреНрдз рд╕реЗрдВрд╕рд░ рдПрдХрд▓-рдмрд┐рдЯ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд░реЛрдореНрдмрд╛ рдореЗрдВ рдХреЛрдИ "рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдмрд▓ рдЕрд░рдбреНрдпреВрдиреНрд╕" рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдЗрд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рд▓реИрдкрдЯреЙрдк (рдпрд╛ рдЕрд░реБрдбрд┐рдиреЛ) рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЖрд░рдПрд╕ -232 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░реЛрдмреЛрдЯ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╡реИрдХреНрдпреВрдо рдХреНрд▓реАрдирд░ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рдЙрд╕реЗ рдЧреЛрджрд╛рдо рдореЗрдВ рд╕реЗ рдПрдХ рдЕрд▓рдорд╛рд░рд┐рдпреЛрдВ рдкрд░ рдзреВрд▓ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред

рдЗрд╕ рд╡рд░реНрд╖ рд╣рдордиреЗ Microsoft рд░реЛрдмреЛрдЯрд┐рдХреНрд╕ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рд╕реНрдЯреВрдбрд┐рдпреЛ (MRDS) рдХреЛ рдЖрдЬрдорд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдХреЗ рдкреНрд░рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП Microsoft рдиреЗ "MRDS рд░реЗрдлрд░реЗрдВрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо" - рдЙрдкрдХрд░рдг рдХрд╛ рдПрдХ рд╕реЗрдЯ рдФрд░ "рдорд╛рдирдХ" рд░реЛрдмреЛрдЯ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ред рдпрд╣ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рд░реЛрдмреЛрдЯ рдкреНрд░реЗрдорд┐рдпреЛрдВ рдХреЛ рд╕рдВрдЧрдд рд░реЛрдмреЛрдЯ рдмрдирд╛рдиреЗ рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рд╡реИрдХреНрдпреВрдо рдХреНрд▓реАрдирд░ рдХреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рд╕рдВрджрд░реНрдн рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдФрд░ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реИ: рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ Kinect, рддреАрди рдЕрд╡рд░рдХреНрдд рд░реЗрдВрдЬрдлрд╛рдЗрдВрдбрд░ рдФрд░ рджреЛ рдЕрд▓реНрдЯреНрд░рд╛рд╕реЛрдирд┐рдХ рд╡рд╛рд▓реЗ, рд╕рд╛рде рд╣реА рд╡реНрд╣реАрд▓ рд░реЛрдЯреЗрд╢рди рд╕реЗрдВрд╕рд░ (рдПрдирдХреЛрдбрд░) рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдПрдордЖрд░рдбреАрдПрд╕ рдЖрд░рдкреА рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЕрдм рддрдХ рдХреЗрд╡рд▓ рдПрдбреА рджреНрд╡рд╛рд░рд╛ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдПрдбреА (рд▓рдЧрднрдЧ ┬г 1000, рдЬреЛ рдХрд┐рдиреЗрдХреНрдЯ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдордЖрд░рдбреАрдПрд╕ рдЖрд░рдкреА рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдореЗрдВ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд░реЛрдмреЛрдЯ рдХреА рддрд╕реНрд╡реАрд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдбреА рдХреА рдЕрд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдирддрд╛ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рд▓рдВрдмрди рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдкреИрд░рд▓реИрдХреНрд╕ рдПрдХ рд╕рдВрджрд░реНрдн рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдХреЛ рдЕрдкрдиреЗ рдордВрдЪ рдкрд░ рд▓реЗ рдЬрд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред

рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕реЗрдВрд╕рд░реЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдбреА рдореЗрдВ рдПрдХ рдпрдВрддреНрд░рд╡рддреН рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо (20 рдХрд┐рд▓реЛрдЧреНрд░рд╛рдо рдХреА рднрд╛рд░ рдХреНрд╖рдорддрд╛ рдШреЛрд╖рд┐рдд рд╣реИ, рдФрд░ рдореЛрдЯрд░ рд╢рдХреНрддрд┐ рдПрдХ рдЧреЛрджрд╛рдо рд▓реЛрдбрд░ рдХреЛ рдЕрдкрдиреЗ рд╕рд╛рдордиреЗ рдзрдХреЗрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ) рдФрд░ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдмрд▓ рдХрдВрдЯреНрд░реЛрд▓рд░ рдкреИрд▓реЗрдХреНрд╕ рдкреНрд░реЛрдкреЗрд▓рд░, рдпрд╛рдиреАред рдХреЛрдб рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рд╕реАрдзреЗ рд░реЛрдмреЛрдЯ рдореЗрдВ рд╕реАрд╡рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рди рдХреЗрд╡рд▓ рдЗрд╕реЗ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдХрдорд╛рдВрдб рдХрд░реЗрдВред

рдмреНрд░рд┐рдЯрд┐рд╢ рдЪреИрдирд▓ 4 рдиреЗ рдЧреИрдЬреЗрдЯ рдореИрди рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд░рд┐рд▓реАрдЬ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛, рдЬреЛ рджреЛ рдорд┐рдирдЯ рдХрд╛ рдЯреБрдХрдбрд╝рд╛ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рд╢реЙрдкрд┐рдВрдЧ рдХрд╛рд░реНрдЯ рдореЗрдВ рдПрдХреАрдХреГрдд рдПрдбреА рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдерд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдХреЗрд╡рд▓ рдмреНрд░рд┐рдЯрд┐рд╢ рдЖрдИрдкреА рдкрддреЗ рдХреЗ рдорд╛рд▓рд┐рдХ рдЪреИрдирд▓ 4 рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рд╣рдерд┐рдпрд╛рдиреЗ рдФрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдерд╛ (рд╢рд╛рдпрдж рдХреБрдЫ рдкрд╛рдардХ рд╕рдлрд▓ рд╣реЛрдВрдЧреЗ?) - рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╡рд╣рд╛рдВ рд╕реЗ рдХреЗрд╡рд▓ рдЕрднреА рднреА рддрд╕реНрд╡реАрд░реЗрдВ рд▓рд╛рддрд╛ рд╣реВрдВред



рдХрд╛рд░реНрдп


рдмрд╕ рд░реЛрдмреЛрдЯ рдХреЛ "рдЖрдЧреЗ-рдкреАрдЫреЗ-рджрд╛рдПрдВ-рдмрд╛рдПрдВ" рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рдХреБрдЫ рднреА рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ "рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓" рдХрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕реАрдзреЗ рдПрдбреА рдХреА рдбрд┐рд▓реАрд╡рд░реА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИред рд▓реЗрдХрд┐рди рд░реЛрдмреЛрдЯ рд▓реЛрдбрд░ рдХреЗ рдПрдХ рдкреИрдХреЗрдЯ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдирд╣реАрдВ рд╣реИ: рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рд╕реНрд╡рдпрдВ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╡рд╣ рдХрд┐рд╕ рдЧреЛрджрд╛рдо рдореЗрдВ рд╣реИ рдФрд░ рдЕрдЧрд▓реЗ рдмрд┐рдВрджреБ рдкрд░ рдЕрдкрдирд╛ рд░рд╛рд╕реНрддрд╛ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рдерд╛ рдХрд┐ рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдЙрддреНрдкрдиреНрди рд╣реБрдИред рдЬреАрдкреАрдПрд╕ рдЬреИрд╕реА рддрдХрдиреАрдХреЗрдВ рдмрд╣ рд░рд╣реА рд╣реИрдВ: рдЙрдкрдЧреНрд░рд╣реЛрдВ рдХрд╛ рдХреЛрдИ рд╕рдВрдХреЗрдд рдЧреЛрджрд╛рдо рдХреА рдЫрдд рд╕реЗ рдирд╣реАрдВ рдЧреБрдЬрд░рддрд╛ред Kinect рдЗрд╢рд╛рд░рд╛ рдкрд╣рдЪрд╛рди рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рднрдВрдбрд╛рд░рдг рдЕрд▓рдорд╛рд░рд┐рдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рдкрд╣рдЪрд╛рдирддреЗ рд╣реИрдВ? рд╕реНрд╡рдпрдВ рдЕрд▓рдорд╛рд░рд┐рдпреЛрдВ рдкрд░, рдкреНрд░рддреНрдпреЗрдХ рдореАрдЯрд░ рдкрд░ рдЕрджреНрд╡рд┐рддреАрдп рдмрд╛рд░рдХреЛрдб рдЪрд┐рдкрдХрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╡реЗ рдЪрд▓рддреЗ-рдЪрд▓рддреЗ рдФрд░ рдЕрд▓рдорд╛рд░рд┐рдпреЛрдВ рд╕реЗ 20 рд╕реЗрдореА рдХреА рджреВрд░реА рдкрд░ рдмрд╣реБрдд рдордЬрд╝рдмреВрддреА рд╕реЗ рдирд╣реАрдВ рдкрдврд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВ (рдЖрдк рдХрд░реАрдм рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ - рд╕рдорд░реНрдерди рдореЗрдВ рдпрд╛ рд╢реЗрд▓реНрдл рд╕реЗ рдлреИрд▓рд╛ рд╣реБрдЖ рдПрдХ рдмреЙрдХреНрд╕ рдореЗрдВ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛрдиреЗ рдХрд╛ рдЦрддрд░рд╛ рд╣реИ)ред рджреВрд╕рд░реЗ, 20 рд╕реЗрдореА рдХреА рджреВрд░реА рдкрд░ рд╢реЗрд▓реНрдл рдореЗрдВ рдбреНрд░рд╛рдЗрд╡ рдХрд░рдиреЗ рдФрд░ рдмрд╛рд░рдХреЛрдб рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рд▓рдЧрднрдЧ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдЕрдиреНрдпрдерд╛ рд░реЛрдмреЛрдЯ, рдЕрд▓рдорд╛рд░рд┐рдпреЛрдВ рд╕реЗ рджреВрд░ рдХреА рдУрд░ рдмрдврд╝рддреЗ рд╣реБрдП, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдФрд░ рдЕрдкреВрд░рдгреАрдп рд░реВрдк рд╕реЗ рдЕрдкрдиреА рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдЦреЛ рджреЗрддрд╛ рд╣реИред

рдкрд╣рд▓рд╛ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдкреНрд░рдпрд╛рд╕ рд░реЗрдВрдЬрдлрд╛рдЗрдВрдбрд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдерд╛: рд╢реЗрд▓реНрдл рдХреЗ рд▓рд┐рдП рд░реЛрдмреЛрдЯ "рдЧреНрд░реЛрдк" рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдпрд╛рддреНрд░рд╛ рдХрд░рддрд╛ рд╣реИ, рдкреВрд░реНрд╡ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рджреВрд░реА рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИ, рдмрд╕ рдПрдХ рдЪреМрдВрдХрд╛ рджреЗрдиреЗ рд╡рд╛рд▓рд╛ рд╢рд░рд╛рдмреА рдЪрд▓рддрд╛ рд╣реИ, рдПрдХ рдХрджрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рджреАрд╡рд╛рд░ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЭреБрдХрд╛рд╡ред рд╕рдорд╛рдирддрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдмрдбрд╝реА рдереА: рд░реЗрдВрдЬрдлрд╛рдЗрдВрдбрд░ рд╕реЗ рд╕рдВрдХреЗрдд рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рджреЗрд░реА, рдЙрдиреНрд╣реЗрдВ рдПрдордЖрд░рдбреАрдПрд╕ рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛, рдореЛрдЯрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреАрдо рдХрд╛ рдЧрдарди рдХрд░рдирд╛, рдФрд░ рдЙрдирдХреА рдЬрдбрд╝рддрд╛ рдкрд░ рдХрд╛рдмреВ рдкрд╛рдирд╛ - рдПрдХ рд╕реЗрдХрдВрдб рдХреЗ рджрд╕рд╡реЗрдВ рд╣рд┐рд╕реНрд╕реЗ рддрдХред рдЗрд╕ рд╕рдордп рдХреЗ рджреМрд░рд╛рди, рд░реЛрдмреЛрдЯ рдиреЗ рд╢рд╛рдВрдд рд░реВрдк рд╕реЗ "рджреВрд░ рдХреА рдУрд░" рд▓реЗ рдЬрд╛рдпрд╛, рддрд╛рдХрд┐ "рдкрд╛рдареНрдпрдХреНрд░рдо рд╕реБрдзрд╛рд░" рд╣рд░ рдмрд╛рд░ рджрд╕рд┐рдпреЛрдВ рдбрд┐рдЧреНрд░реА рддрдХ рдкрд╣реБрдВрдЪреЗ, рдФрд░ рдкреНрд░рдХреНрд╖реЗрдкрд╡рдХреНрд░ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЬрд╝рд┐рдЧрдЬрд╝реИрдЧ рдмрди рдЧрдпрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдбреА рд░реЗрдВрдЬрдлрд╛рдЗрдВрдбрд░ рдмрд╣реБрдд рд╕рдЯреАрдХ рдирд╣реАрдВ рдереЗ - рддреНрд░реБрдЯрд┐ cm 5 рд╕реЗрдореА рддрдХ рд╣реИ - рдФрд░ рдХрд╛рдлреА рд╕рдВрдХреАрд░реНрдг рд░реВрдк рд╕реЗ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ, рдЕрд░реНрдерд╛рддред рдЕрд▓рдорд╛рд░рд┐рдпреЛрдВ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдкрд░, рдлрд░реНрд╢ рд╕реЗ рдкреВрд░реНрд╡ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдКрдВрдЪрд╛рдИ рд╕реЗ рдкрд╣рдЪрд╛рдирд╛ рдЧрдпрд╛ рдерд╛ред

рдЕрдзрд┐рдХ рдЖрд╢рд╛рдЬрдирдХ рдерд╛ рд╡реНрд╣реАрд▓ рд╕реЗрдВрд╕рд░ рдкрд░ рдиреЗрд╡рд┐рдЧреЗрд╢рди, рдкреНрд░рддреНрдпреЗрдХ рд╡реНрд╣реАрд▓ рдХрд╛ рдорд╛рдЗрд▓реЗрдЬ рд▓рдЧрднрдЧ mm 7 рдорд┐рдореА рдХреА рд╕рдЯреАрдХрддрд╛ рдХреЗ рд╕рд╛рде рджреЗрддрд╛ рд╣реИред рдПрдбреА рдлрд░реНрдорд╡реЗрдпрд░ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА "рд░реЛрдмреЛрдЯ рдорд╛рдЗрд▓реЗрдЬ" (рджреЛрдиреЛрдВ рдкрд╣рд┐рдпреЛрдВ рдХреЗ рд░рди рдХрд╛ рдЖрдзрд╛-рдпреЛрдЧ) рдФрд░ "рд░реЛрдмреЛрдЯ рдХреА рджрд┐рд╢рд╛" (рдкрд╣рд┐рдпреЛрдВ рдХреЗ рдорд╛рдЗрд▓реЗрдЬ рдХрд╛ рдЕрдВрддрд░, рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЧреБрдгрд╛рдВрдХ рдХреЗ рд╕рд╛рде) рдХреА рдЧрдгрдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ (x, y) рдХреА рдЧрдгрдирд╛ рдХреЗрд╡рд▓ рджреЛ рдХрд╛рдЙрдВрдЯрд░реЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рд╕реЗ рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рд░реЛрдмреЛрдЯ рдХреЗ рдкреНрд░рдХреНрд╖реЗрдкрд╡рдХреНрд░ рдХреЛ рдЫреЛрдЯреЗ рд╕рд░рд▓ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рддреЛрдбрд╝рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЖрдВрджреЛрд▓рди рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдореИрдВ рдЯреВрдЯреА рд╣реБрдИ рд▓рд╛рдЗрди рд░реЛрдмреЛрдЯ рдХреЗ рд░рд╛рд╕реНрддреЗ рдХреЛ рдХрд░реАрдм рд▓рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ; рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, "рдЖрд░рд╛рдо рдкрд░" - рдореЛрдЯрд░реНрд╕ рдХреА рдПрдХ рдирд┐рд░рдВрддрд░ рдЧрддрд┐ рдкрд░ - рд░реЛрдмреЛрдЯ рдПрдХ рд╕рд░реНрдХрд▓ рдХреЗ рдПрдХ рдЖрд░реНрдХ рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝реЗрдЧрд╛: рдЬрд┐рддрдирд╛ рдмрдбрд╝рд╛ рддреНрд░рд┐рдЬреНрдпрд╛, рдЙрддрдирд╛ рдЫреЛрдЯрд╛ рдореЛрдЯрд░реЛрдВ рдХреА рдЧрддрд┐ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ред рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдмреНрд░реЗрдХ рдкреЙрдЗрдВрдЯ, рдЬрдм рд░реЛрдмреЛрдЯ рдореМрдХреЗ рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рджрд┐рд╢рд╛ рдмрджрд▓рддрд╛ рд╣реИ, рддреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рди рд╣реА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЖрд░реНрдХреНрд╕ рдХреЗ рдЕрдиреБрдХреНрд░рдо рджреНрд╡рд╛рд░рд╛ рд░реЛрдмреЛрдЯ рдХреЗ рдкреНрд░рдХреНрд╖реЗрдкрд╡рдХреНрд░ рдХреЛ рдЕрдиреБрдорд╛рдирд┐рдд рдХрд░реЗрдВрдЧреЗред

рдЧрдгрдирд╛


рдпрд╣ рд╕рдм рджреЗрд░ рд░рд╛рдд рдПрдХ рдиреИрдкрдХрд┐рди рдкрд░ рдПрдХ рдбреНрд░рд╛рдЗрдВрдЧ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реБрдЖ, рдЬрдм рдЗрд╕рдиреЗ рдореБрдЭ рдкрд░ рд╡рд╛рд░ рдХрд┐рдпрд╛:



рдЪрд╛рдк рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рд░реЛрдмреЛрдЯ рдмрд┐рдВрджреБ рдП (рдЬреНрдЮрд╛рдд) рдкрд░ рдерд╛, рдЕрдВрдд рдореЗрдВ рдпрд╣ рдмрд┐рдВрджреБ рдмреА (рдЕрдЬреНрдЮрд╛рдд) рдкрд░ рдирд┐рдХрд▓рд╛, рдЬрдмрдХрд┐ рдмрд╛рдПрдВ рдкрд╣рд┐рдпрд╛ рдиреЗ рдЬреНрдЮрд╛рдд рдкрде рдПрд╕ 1 = 1r 1 , рдФрд░ рджрд╛рдПрдВ рдкрд╣рд┐рдпрд╛ - рдЬреНрдЮрд╛рдд рдПрд╕ 2 = ╧Жr 2 рдХрд╛ рд╕рдлрд░ рдХрд┐рдпрд╛ ред рдкрдЯрд░рд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдХреА рджреВрд░реА рдбрдмреНрд▓реНрдпреВ рд╕реНрдерд┐рд░ рд╣реИ, рдФрд░ рд░реЛрдмреЛрдЯ рдХреЗ рдбрд┐рдЬрд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред рд╣рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ:
рдЖрд░ 2 / рдЖрд░ 1 = рдПрд╕ 2 / рдПрд╕ 1 рдФрд░ рдЖрд░ 2 = рдЖрд░ 1 + рдбрдмреНрд▓реНрдпреВ , рдЬрд╣рд╛рдВ
( рдЖрд░ 1 + рдбрдмреНрд▓реНрдпреВ ) / рдЖрд░ 1 = рдПрд╕ 2 / рдПрд╕ 1
рдЖрд░ 1 рдПрд╕ 1 + рдбрдмреНрд▓реНрдпреВрдПрд╕ 1 = рдЖрд░ 1 рдПрд╕ 2
рдЖрд░ 1 = рдбрдмреНрд▓реНрдпреВрдПрд╕ 1 / ( рдПрд╕ 2 - рдПрд╕ 1 )

рдЗрд╕рд▓рд┐рдП, рд░реЛрдмреЛрдЯ рдиреЗ рдЬреЛ рдХреЛрдг рджрд┐рдпрд╛ рд╡рд╣ the = S 1 / r 1 = ( S 2 - S 1 ) / w , рдФрд░ рджреВрд░реА рд╣реИред рдПрдмреА | = 2 | рдПрдПрдо | = 2 ( r 1 + w / 2) рдкрд╛рдк ( 2/2 ) = (2 wS 1 / ( S 2 - S 1 ) + w ) рдкрд╛рдк ( ╧Ж / 2) = w sin ( ╧Ж / 2) ( S 2 ) + рдПрд╕ 1 ) / ( рдПрд╕ 2 - рдПрд╕ 1 )

рдпрд╣рд╛рдВ, рд╕реНрдерд┐рддрд┐ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдмрдбрд╝реЗ рдФрд░ рд╕рднреА рдЧрдгрд┐рдд рджреНрд╡рд╛рд░рд╛: рд╣рд░ рдмрд╛рд░ рдЬрдм рд╣рдо рдЧрдгрдирд╛ рдХреА рдЧрдИ ╧Ж рдХреЛ рд░реЛрдмреЛрдЯ рдХреА рджрд┐рд╢рд╛ рдХреЗ рдХреЛрдг рдкрд░ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рджреВрд░реА рд╕реЗ рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ | рдПрдмреА | рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рд╡рд╛рд▓ рд░рд╣рддрд╛ рд╣реИ: рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдЕрдкрдбреЗрдЯ рдХреЛ рдХрд┐рддрдиреА рдмрд╛рд░ рдХрд░рдирд╛ рд╣реИ? рдпрджрд┐ рдмрд╣реБрдд рдмрд╛рд░, рд╣рдо рдЕрд╕рддрдд "рдЯрд┐рдХреНрд╕" рдХреЗ рд╕рд╛рде рдорд╛рдЗрд▓реЗрдЬ рдХреЛ рдорд╛рдкрдиреЗ рд╡рд╛рд▓реЗ рд╡реНрд╣реАрд▓ рд╕реЗрдВрд╕рд░ рдХреА рдЕрд╢реБрджреНрдзрд┐ рдореЗрдВ рдЪрд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред рдпрджрд┐ рдмрд╣реБрдд рджреБрд░реНрд▓рдн рд╣реИ, рддреЛ рдПрдХ рд╕рд░реНрдХрд▓ рдХреЗ рдЖрд░реНрдХ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдкрде рдЦрдВрдб рдХрд╛ рдЕрдиреБрдорд╛рди рдХрд╛рдлреА рд╕рдЯреАрдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдореИрдВрдиреЗ рддрдп рдХрд┐рдпрд╛ рдХрд┐ "рдЯрд┐рдХ" рдХреЗ рд╕рдордп рд╡реНрд╣реАрд▓ рд╕реЗрдВрд╕рд░ рд░реАрдбрд┐рдВрдЧ рд╕реАрдзреЗ рд╕рдмрд╕реЗ рд╕рдЯреАрдХ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХрд┐рд╕реА рднреА рд╡реНрд╣реАрд▓ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЯрд┐рдХ рдХреЗ рд▓рд┐рдП рд░реЛрдмреЛрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рдХрд░рддрд╛ рд╣реВрдВ - рд▓реЗрдХрд┐рди рд░реЛрдмреЛрдЯ рдХреЗ рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдХреЗ рд╕рдордп рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ, 80ms рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╣реАрдВ рднреА рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдпрд╛ рдЧрдпрд╛; рдФрд░ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд╛рд░ рджреВрд╕рд░рд╛ рддрд╛рдХрд┐ рдПрдХ рд░реВрдХрд╛ рд╣реБрдЖ рдкрд╣рд┐рдпрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдореЛрдбрд╝) рднреА рджрд░реНрдЬ рд╣реЛред рд╕рднреА рдкрдВрдЬреАрдХреГрдд "рдЯрд┐рдХреНрд╕" рд╕реВрдЪреА рдореЗрдВ рд╕рд╣реЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдкреБрдирд░реНрдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдЙрд╕реА рд╕рдордп рдХреЗ рд▓рд┐рдП рджреЛрдиреЛрдВ рдкрд╣рд┐рдпреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рджреЛрдиреЛрдВ рдкрд╣рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкрд┐рдЫрд▓реЗ "рдЯрд┐рдХреНрд╕" рдХреЗ рдкрд╣рд▓реЗ рд╕реЗ рдЕрдВрддрд░рд╛рд▓ рд▓реЗрддреЗ рд╣реИрдВ, рдФрд░ "рдЯрд┐рдХреНрд╕ рдХреА рд╕реВрдЪреА" рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЙрд╕реА рдХреНрд╖рдг рджреВрд╕рд░реЗ рдкрд╣рд┐рдпрд╛ рдХреЗ рдорд╛рдЗрд▓реЗрдЬ рдХреЛ рд░реИрдЦрд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░рдХреНрд╖реЗрдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЕрдВрддрд░рд╛рд▓ рдХреЗ рдЕрдВрдд рдХреЗ рд▓рд┐рдП - рдЙрд╕реА рддрд░рд╣, рдЯрд┐рдХ рд╡рд╛рд▓реЗ рдкрд╣рд┐рдпреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдВрд╕рд░ рджреНрд╡рд╛рд░рд╛ рдкрдврд╝рд╛ рдЧрдпрд╛ рдорд╛рдЗрд▓реЗрдЬ рд▓реЗрдВ рдФрд░ рджреВрд╕рд░реЗ рдХреЗ рдорд╛рдЗрд▓реЗрдЬ рдХреЛ рд░реИрдЦрд┐рдХ рд░реВрдк рд╕реЗ рдПрдХреНрд╕рдЯреНрд░рдкрд▓реЗрдЯ рдХрд░реЗрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рдЯреАрдХрддрд╛ рдпрдерд╛рд╕рдВрднрд╡ рд╕рдВрднрд╡ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рд╣рд░ рдмрд╛рд░ рдЬрдм рд░реЛрдмреЛрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдкреБрдирд░реНрдЧрдгрдирд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдЕрдкрдиреЗ рдкреВрд░реНрд╡ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд▓рдХреНрд╖реНрдп рдХреЗ рд▓рд┐рдП рд░реЛрдмреЛрдЯ рдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд┐рдпрд╛ рдЧрддрд┐ рдХреЛ рдПрдХ рдирдП рддрд░реАрдХреЗ рд╕реЗ рд╕реЗрдЯ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рд░реЛрдмреЛрдЯ рдХреЛ рд╡рд╛рдВрдЫрд┐рдд "рдЕрдЬрд┐рдореБрде" рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реИ, рдЬрдЧрд╣ рдореЗрдВ рдШреВрдорддрд╛ рд╣реИ: mentioned 7 рдорд┐рдореА рдХрд╛ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдкрд╣рд┐рдпрд╛ рдорд╛рдЗрд▓реЗрдЬ рддреНрд░реБрдЯрд┐ рд░реЛрдмреЛрдЯ рдХреЛ рдШреБрдорд╛рдП рдЬрд╛рдиреЗ рдкрд░ рдХрдИ рдбрд┐рдЧреНрд░реА рдХреА рддреНрд░реБрдЯрд┐ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ, рдЕрд░реНрдерд╛рддреНред рд░реЛрдмреЛрдЯ рдЬрд╛рдирдмреВрдЭрдХрд░ "рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ" рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕реЗ рд╕рдбрд╝рдХ рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рдЪрд╛рд▓реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рд▓рдХреНрд╖реНрдп рдХреА рджрд┐рд╢рд╛ рд╡рд░реНрддрдорд╛рди рдПрдХ рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИ, рддреЛ рдореИрдВрдиреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ "рдЕрд╕рд░ рдкрд░ рд▓рдХреНрд╖реНрдп" рдХреЗ рдмрд┐рдирд╛, рдЖрд░реНрдХ рдХреЗ рд╕рд╛рде рд▓рдХреНрд╖реНрдп рдХреА рдУрд░ рд░реЛрдмреЛрдЯ рдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред (рдпрджрд┐ рд╡рд░реНрддрдорд╛рди рджрд┐рд╢рд╛ more / 2 рд╕реЗ рд╡рд╛рдВрдЫрд┐рдд рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рдРрд╕рд╛ рдЪрд╛рдк рдЕрд░реНрдзрд╡реГрддреНрдд рд╕реЗ рдмрдбрд╝рд╛ рд╣реЛрдЧрд╛, рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд░реЛрдмреЛрдЯ рдХреЗ рдкрд╛рд╕ рд╕рд╣реА рджрд┐рд╢рд╛ рдореЗрдВ рдШреВрдордиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред

рдЪрд╛рдк рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдКрдкрд░ рджрд┐рдП рдЧрдП рдбреНрд░рд╛рдЗрдВрдЧ рдкрд░ рд▓реМрдЯрддреЗ рд╣реИрдВред рдЕрдм рд╣рдо рдП рдФрд░ рдмреА рдЕрдВрдХ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдХреЛрдг A ; рдЖрдкрдХреЛ рдЕрдиреБрдкрд╛рдд 2 рдПрд╕ / рдПрд╕ 1 = рдЖрд░ 2 / рдЖрд░ 1 рдЦреЛрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдпрд╣ рд╣рдорд╛рд░реЗ рдЪрд╛рдк рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкрд╣рд┐рдпрд╛ рдЧрддрд┐ рдХреЗ рдЕрдиреБрдкрд╛рдд рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдЧрд╛ред рд╣рдо рд╡рд┐рдкрд░реАрдд рджрд┐рд╢рд╛ рдореЗрдВ рдЙрдкрд░реЛрдХреНрдд рдЧрдгрдирд╛ рджреЛрд╣рд░рд╛рддреЗ рд╣реИрдВ:
| рдПрдмреА | = 2 | рдПрдПрдо | = 2 ( рдЖрд░ 1 + рдбрдмреНрд▓реНрдпреВ / 2) рдкрд╛рдк (+ / 2)
рдЖрд░ 1 = | рдПрдмреА | / (2sin ( ╧Ж / 2)) - w / 2
рдЖрд░ 2 = | рдПрдмреА | / (2sin ( ╧Ж / 2)) + w / 2
r 2 / r 1 = 1 + w / (| AB | / (2sin (r / 2)) - w / 2) = 1 + 2 / ((! AB) | ( w ┬╖ sin ( ╧Ж / 2)) - 1 )

рдЗрд╕ рддрд░рд╣ рдХрд╛ рдПрдХ рдЖрд░реНрдХ рд╣рдореЗрдВ рд▓рд╛рдЗрди рдПрдмреА рд╕реЗ рдХрд┐рддрдирд╛ рджреВрд░ рд▓реЗ рдЬрд╛рдПрдЧрд╛? рдпрджрд┐ рдПрдХ рд░реЛрдмреЛрдЯ рдХреЛ рдЪрд╛рдк рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрдХреНрд╖реЛрдВ рдкрд░ рджреЛ рдореАрдЯрд░ рдЦрд╛рд▓реА рдЬрдЧрд╣ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рд╣рдорд╛рд░реЗ рдЧреЛрджрд╛рдо рдореЗрдВ рдмрд╕ рдРрд╕рд╛ рдЕрд╡рд╕рд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ: рдЕрд▓рдорд╛рд░рд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдЧрд▓рд┐рдпрд╛рд░реЗ рдХреА рдЪреМрдбрд╝рд╛рдИ рдХреЗрд╡рд▓ рдбреЗрдврд╝ рдореАрдЯрд░ рд╣реИред



рджреВрд░реА рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВ | рдореНрд╣ | рдЪрд╛рдк рдФрд░ рд░реЗрдЦрд╛ рдХреЗ рдмреАрдЪ: | рдУрд╣ | - | рдУрдо | = r - r cos ( ╧Ж / 2) = ( r 1 + w / 2) (1 - cos ( ╧Ж / 2))

рдпрджрд┐ рдЗрд╕ "рдХреВрдмрдбрд╝" рдХреА рдкрд░рд┐рдорд╛рдг рдПрдХ рдкреВрд░реНрд╡ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕реАрдорд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рд╣рдо рдПрдХ рдЪрд╛рдк рдореЗрдВ рдЬрд╛рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░, рдЬрдЧрд╣ рдореЗрдВ рдШреВрдорддреЗ рд╣реБрдП, рд▓рдХреНрд╖реНрдп рдХреА рдУрд░ рдХрд░реАрдм рдЖрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред

рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореЛрдЯрд░реЛрдВ рдкрд░ рддрдирд╛рд╡ рдХрд╛ рдЕрдиреБрдкрд╛рдд рдЕрднреА рддрдХ рдкрд╣рд┐рдпрд╛ рдЧрддрд┐ рдХреЗ рдЕрдиреБрдкрд╛рдд рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЙрдирдХреЗ рдмреАрдЪ рд╕рд╣реА рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ "рдЬрд╛рдирд╡рд░ рдмрд▓" рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛: рдореИрдВрдиреЗ рдЕрдиреБрдкрд╛рдд 9 рдбрд┐рдЧреНрд░реА рддрдХ рдмрдврд╝рд╛ рджрд┐рдпрд╛, рдЕрд░реНрдерд╛рддред рдПрдХ рддрд░рдл рдереЛрдбрд╝рд╛ рд╡рд┐рдЪрд▓рди рддреБрд░рдВрдд рд░реЛрдмреЛрдЯ рдХреЛ рд╡рд┐рдкрд░реАрдд рджрд┐рд╢рд╛ рдореЗрдВ рдЬреЛрд░ рд╕реЗ рдзрдХреНрдХрд╛ рджреЗрддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдЗрд╕ рдкреНрд░рддрд┐рдкрд╛рджрдХ рдХреЗ рд╕рд╛рде рдерд╛ рдХрд┐ рд░реЛрдмреЛрдЯ рдХреА рдЧрддрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд┐рдХрдиреА рд╣реЛ рдЧрдИ рдереА: рдХрдо рдбрд┐рдЧреНрд░реА рдХреЗ рд╕рд╛рде, рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдмрдЧрд╝рд▓ рдореЗрдВ рд╡рд┐рдЪрд▓рд┐рдд рд╣реЛ рдЧрдпрд╛, рдФрд░ рдХреЗрд╡рд▓ рд▓рдХреНрд╖реНрдп рдкрд░ рд╣реА рд╕рд╣реА рдорд╛рд░реНрдЧ рдкрд░ рд▓реМрдЯ рдЖрдпрд╛; рдмрдбрд╝реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде, рд╕реБрдзрд╛рд░ рдмрд╣реБрдд рдордЬрдмреВрдд рдирд┐рдХрд▓рд╛, рдФрд░ рд░реЛрдмреЛрдЯ рдПрдХ рд╕рдВрдХреАрд░реНрдг рдЭрд┐рдЭрдХ рдХреЗ рд╕рд╛рде-рд╕рд╛рде "рд╣рд┐рд▓рд╛" рд╣реБрдЖред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди


рдореИрдВ ReferencePlatform2011 рдбрд┐рд▓реАрд╡рд░реА рд╕реЗ MarkRobot рд╕реЗрд╡рд╛ рдореЗрдВ рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рдерд╛ PositionOperations : PortSet<GetPosition, SetPosition, SetDestination> рдХреА рднрд╛рд╡рдирд╛ рдореЗрдВ рдПрдХ рдирдпрд╛ рдкреЛрд░реНрдЯрд▓реЗрдЯ рд▓рд╛рдЧреВ рдХрд░реЗрдВ PositionOperations : PortSet<GetPosition, SetPosition, SetDestination> , рдФрд░ рддрд╛рдХрд┐ рд╕реЗрд╡рд╛ рд╕реНрд╡рдпрдВ, рдкрд╛рд░рджрд░реНрд╢реА рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП, рдкреЛрд▓ рд╕реЗрдВрд╕рд░ рдФрд░ рдореЛрдЯрд░реНрд╕ рдкрд░ рд╡реЛрд▓реНрдЯреЗрдЬ рд╕реЗрдЯ рдХрд░реЗрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдЖрдпрд╛ рдерд╛ - рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдмреАрдЪ рдЬрд┐рдореНрдореЗрджрд╛рд░рд┐рдпреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдХреЗрд╡рд▓ рдПрдХ рдореИрд▓рд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рддреИрдпрд╛рд░ рдерд╛ред рдореИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдореИрдВрдиреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛ред

рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЪрд╛рд╣рд┐рдП: рдЙрдиреНрд╣реЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП System.Drawing.PointF рдореЗрдВ рдирд╣реАрдВред
 public struct Position { public readonly double x, y, heading; public Position(double x, double y, double heading) { this.x = x; this.y = y; this.heading = heading; } private static double Sqr(double d) { return d * d; } public double DistanceTo(double x, double y) { return Math.Sqrt(Sqr(this.y - y) + Sqr(this.x - x)); } public static double NormalizeHeading(double heading) { while (heading < -Math.PI) heading += 2 * Math.PI; while (heading > Math.PI) heading -= 2 * Math.PI; return heading; } // turn angle/2, go ahead distance, turn angle/2 again public Position advance(double distance, double angle) { double newHeading = heading + angle / 2, newX = x + distance * Math.Cos(newHeading), newY = y + distance * Math.Sin(newHeading); return new Position(newX, newY, NormalizeHeading(heading + angle)); } } 

advance рд╡рд┐рдзрд┐ рд░реЛрдЯреЗрд╢рди рдХреЗ рджрд┐рдП рдЧрдП рдХреЛрдг рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рдкреБрдирд░реНрдЧрдгрдирд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИ ments рдФрд░ рджреВрд░реА рдХреА рдпрд╛рддреНрд░рд╛ | рдПрдмреА |, рдЬреИрд╕рд╛ рдХрд┐ рд▓реЗрдЦ рдХреЗ рдмреАрдЪ рдореЗрдВ рдбреНрд░рд╛рдЗрдВрдЧ рдореЗрдВ рд╣реИред

(рдЕрднреА-рдЕрднреА, рдпрд╣рд╛рдВ рдХреЛрдб рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ "рдбрдмрд▓ рдХреЛрдг рд╕реВрддреНрд░" рдорд┐рд▓рд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ред AB | рдХреЛрдг, / 2 рдкрд░, рдХреЛрдг 1 1 рдкрд░ r 1 + w / 2 рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛ред рдУрд╣ рдЕрдЪреНрдЫрд╛ред)

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реЗрд╡рд╛ рдореЗрдВ EncoderLog рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЕрдВрджрд░ EncoderLog рджреЛ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ - рдПрдХ " EncoderLog рд╕реВрдЪреА", рдкреНрд░рддреНрдпреЗрдХ рдкрд╣рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдЙрджрд╛рд╣рд░рдгред рд╕реВрдЪреА рдХреЛ SortedList рдореЗрдВ SortedList рдХрд┐рдпрд╛ SortedList рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ (рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ) рд╕реЗрдВрд╕рд░ рдбреЗрдЯрд╛ рдХрд╛рд▓рд╛рдиреБрдХреНрд░рдорд┐рдХ рдХреНрд░рдо рдореЗрдВ рдирд╣реАрдВ рдЖ рд╕рдХрддрд╛ рд╣реИред EncoderLog рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рдЧреИрд░-рддреБрдЪреНрдЫ рд╡рд┐рдзрд┐ "рдЯрд┐рдХ" рдХреЗ рдмреАрдЪ рдпрд╛ рдЕрдВрддрд┐рдо "рдЯрд┐рдХ" рдХреЗ рдмрд╛рдж рдХрд┐рд╕реА рднреА рд╕рдордп рдЕрдкрдирд╛ рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрде рдХрд╛ рдПрдХ рд░реИрдЦрд┐рдХ рд╕рдиреНрдирд┐рдХрдЯрди рд╣реИред
 private class PositionKeeping { private static readonly DateTime initialized = DateTime.Now; public class EncoderLog { private SortedList<DateTime, double> log = new SortedList<DateTime, double> { { initialized, 0 } }; public void Register(DateTime at, double reading) { log[at] = reading; } public void Reset(DateTime at, double reading) { log.Clear(); log.Add(at, reading); } public DateTime LastTick { get { return log.Last().Key; } } public double LastReading { get { return log.Last().Value; }} public double ReadingAt(DateTime at) { int index = log.Count - 1; while(index>=0 && log.Keys[index] > at) index--; if(index<0) return double.NaN; // before first reading; impossible // now, log.Keys[index] <= at, and log.Keys[index+1] > at DateTime preceding = log.Keys[index], following = index<log.Count-1 ? log.Keys[index+1] : DateTime.MaxValue; if(following == DateTime.MaxValue) { // last reading precedes at; extrapolate if(index==0) // there's only one reading return log[preceding]; else { DateTime nextPreceding = log.Keys[index-1]; return log[nextPreceding] + (at-nextPreceding).TotalSeconds * (log[preceding]-log[nextPreceding]) / (preceding-nextPreceding).TotalSeconds; } } else // both readings are available; interpolate return log[preceding] + (at-preceding).TotalSeconds * (log[following]-log[preceding]) / (following - preceding).TotalSeconds; } } public EncoderLog leftEnc = new EncoderLog(), rightEnc = new EncoderLog(); 

"рдЯрд┐рдХ рд╕реВрдЪрд┐рдпреЛрдВ" рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рддреНрдпреЗрдХ "рдЯрд┐рдХ" рдХреЗ рд╕рдордп рдкрджреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдХреЛ рдкреЛрдЬрд╝рд┐рд╢рдирдХрд┐рдкрд┐рдВрдЧ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП - рдЗрд╕ рд╕рд╣реЗрдЬреЗ рдЧрдП рд╕реНрдерд╛рди рд╕реЗ рд╣рдо рдПрдХ рдирдИ рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛рддреНрд░рд╛ рдХреА рджреВрд░реА рдХреЛ рдорд╛рдкреЗрдВрдЧреЗред
  private SortedList<DateTime, Position> position = new SortedList<DateTime, Position> { { initialized, new Position(0, 0, Math.PI / 2) } }; public void Register(DateTime at, Position pos) { position.Add(at, pos); } public void Reset(DateTime at, Position pos) { // the position has changed => old ticks logs become obsolete leftEnc.Reset(at, leftEnc.ReadingAt(at)); rightEnc.Reset(at, rightEnc.ReadingAt(at)); position.Clear(); position.Add(at, pos); } public Position Current { get { return position.Last().Value; } } 

рдпрд╣ рджреЛрдиреЛрдВ рдкрд╣рд┐рдпрд╛ рд╕реЗрдВрд╕рд░реЛрдВ рдХреЗ рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдирдИ рд╕реНрдерд┐рддрд┐ рдХреА рдЧрдгрдирд╛ рдХрд░рдХреЗ PositionKeeping рдХреНрд▓рд╛рд╕ рдХреЛ рдкреВрд░рдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ - рд╡реНрдпреБрддреНрдкрдиреНрди рд╕реВрддреНрд░реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ред Update рдХреЛ рд╕реЗрдВрд╕рд░ рдЪреЗрдХ рдЪрдХреНрд░ ( ServiceHandlerBehavior.Concurrent ) рд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╕рд░реНрд╡рд┐рд╕ рдкреЛрд░реНрдЯ рдХреЛ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдпрд╣ рдПрдХ рдЯрд┐рдХ рдкрдВрдЬреАрдХреГрдд рд╣реЛрдиреЗ рдкрд░ рдирдП рдирд┐рд░реНрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИред рдпрд╣ рд╕рдВрджреЗрд╢ рд╕реЗрд╡рд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ ServiceHandlerBehavior.Exclusive рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
  private static readonly TimeSpan RegisterDelay = TimeSpan.FromSeconds(1); // register null-tick if no actual ticks for this long public void Update(DateTime at, double left, double right, PositionOperations mainPort) { DateTime prevRef = Min(leftEnc.LastTick, rightEnc.LastTick); SetPosition set = new SetPosition { Timestamp = at, LeftEncUpdated = left != leftEnc.LastReading || at > leftEnc.LastTick + RegisterDelay, LeftEncReading = left, RightEncUpdated = right != rightEnc.LastReading || at > rightEnc.LastTick + RegisterDelay, RightEncReading = right }; if(set.LeftEncUpdated || set.RightEncUpdated) { set.Position = Recalculate(prevRef, left, right); mainPort.Post(set); } } private Position Recalculate(DateTime prevRef, double left, double right) { double sLeft = left - leftEnc.ReadingAt(prevRef), sRight = right - rightEnc.ReadingAt(prevRef); Position refPos = position[prevRef]; // has to exist if the encoder reference exists if (Math.Abs(sRight - sLeft) < .5) // less then half-tick difference: go straight return refPos.advance(Constants.CmPerTick * (sRight + sLeft) / 2, 0); else { double angle = Constants.CmPerTick * (sRight - sLeft) / Constants.WheelsDist, distance = Constants.WheelsDist * Math.Sin(angle / 2) * (sRight + sLeft) / (sRight - sLeft); return refPos.advance(distance, angle); } } } 

рд╡рд╣ рд╕рдм рдЬреЛ рдмреНрдпрд╛рдЬ рдХреА рдХреЛрдб рдореЗрдВ рд░рд╣рддрд╛ рд╣реИ рд╡рд╣ SetPosition рд╣реИрдВрдбрд▓рд░ рд╣реИ, рдЬреЛ рдореЛрдЯрд░реЛрдВ рдкрд░ рд╡реЛрд▓реНрдЯреЗрдЬ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд░реЛрдмреЛрдЯ рд▓рдХреНрд╖реНрдп рдХреА рдУрд░ SetPosition ред
 [ServiceHandler(ServiceHandlerBehavior.Exclusive)] public void SetPositionHandler(SetPosition set) { if (!set.LeftEncUpdated && !set.RightEncUpdated) { // position updated by an absolute reference. positionKeeping.Reset(set.Timestamp, set.Position); } else { if (set.LeftEncUpdated) positionKeeping.leftEnc.Register(set.Timestamp, set.LeftEncReading); if (set.RightEncUpdated) positionKeeping.rightEnc.Register(set.Timestamp, set.RightEncReading); positionKeeping.Register(set.Timestamp, set.Position); } // the navigator Destination dest = state.dest; double distance = set.Position.DistanceTo(dest.x, dest.y); if (distance < 5) // reached { drivePort.SetDrivePower(0, 0); SendNotification(submgrPort, new DriveDistance()); return; } double heading = Position.NormalizeHeading(Math.Atan2(dest.y - set.Position.y, dest.x - set.Position.x)), power = (distance < 50) ? .2 : .4; // a few magic numbers if (Math.Abs(heading) < .05) { // straight ahead drivePort.SetDrivePower(power, power); return; } double r = distance / (2 * Math.Sin(heading / 2)), hump = r * (1 - Math.Cos(heading / 2)); if (Math.Abs(heading) > Math.PI / 2 || Math.Abs(hump) > Constants.MaxHump) { // not reachable by an arc; rotate if (heading > 0) // rotate left drivePort.SetDrivePower(-.3, .3); else // rotate right drivePort.SetDrivePower(.3, -.3); } else { // go in arc double rLeft = Math.Abs(r - Constants.WheelsDist / 2), rRight = Math.Abs(r + Constants.WheelsDist / 2), rMax = Math.Max(rLeft, rRight); // <Patrician|Away> what does your robot do, sam // <bovril> it collects data about the surrounding environment, then discards it and drives into walls drivePort.SetDrivePower(power * Math.Pow(rLeft / rMax, 9), power * Math.Pow(rRight / rMax, 9)); } } 


рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ?


рдЗрд╕ рд░реЛрдмреЛрдЯ рдиреЗ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЪрд▓рд╛рдИ, рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рд╕рдВрдЪрд┐рдд рддреНрд░реБрдЯрд┐ рдХреЗ рдХрд╛рд░рдг рдЙрддреНрдкрдиреНрди рд╣реБрдИред рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ рд╕рд╣реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдо рд╕реЗ рдХрдо 20% рдмрд╛рд░рдХреЛрдб рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдерд╛, рдФрд░ LeftEncUpdated = RightEncUpdated = false рд╕рд╛рде LeftEncUpdated = RightEncUpdated = false PositionKeeping рдХреЙрд▓ PositionKeeping "рдкреБрдирдГ рдЖрд░рдВрдн" PositionKeeping рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ред рдкрдврд╝реЗ рдЧрдП рдмрд╛рд░рдХреЛрдб рдХреЗ рдмреАрдЪ рдХреБрдЫ рдореАрдЯрд░ рдХреЗ рд▓рд┐рдП, рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рддреНрд░реБрдЯрд┐ 20 рд╕реЗрдореА рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рдереА - рд╣рдордиреЗ рдмрд╕ рд░реЛрдмреЛрдЯ рдФрд░ рдЕрд▓рдорд╛рд░рд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдЗрддрдирд╛ рдХреБрдЫ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред

рд╣реЗрдбрд┐рдВрдЧ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рддрд┐ рдмрд╣реБрдд рдЦрд░рд╛рдм рдереА, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рджрд┐рд╢рд╛ рдХреЛ рд╕рд╣реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ: рдмрд╛рд░рдХреЛрдб рдХреЛ рдХрд┐рд╕реА рднреА рдХреЛрдг рд╕реЗ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдФрд░ рднрдЧрд╡рд╛рди рдХрд╛ рд╢реБрдХреНрд░ рд╣реИ)ред рд░реЛрдмреЛрдЯ рдХреЗ рд▓рд┐рдП рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рд╕рд╡рд╛рд░реА рдХрд░рдиреЗ рдФрд░ рдЕрдкрдиреА рдкреВрд░реА рддрд╛рдХрдд рдХреЗ рд╕рд╛рде рд░реЗрдЬрд┐рдореЗрдВрдЯ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдбрд┐рдЧреНрд░реА рдХреА рд╕рдВрдЪрдпреА рддреНрд░реБрдЯрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдПрдХ рд▓рд▓рд╛рдЯ рд╕рдорд╛рдзрд╛рди рдПрдХ рдЬрд╛рдЗрд░реЛрд╕реНрдХреЛрдк рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрдЧрд╛; рд▓реЗрдХрд┐рди рдПрдбреА рдХреЗ рд▓рд┐рдП рдХреЛрдИ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЧрд╛рдпрд░реЛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдореИрдВ рдПрдХ рдЯрд╛рдВрдХрд╛ рд▓рдЧрд╛рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрд╣реЗ рдФрд░ рд▓реЗрдЦрди рдлрд░реНрдорд╡реЗрдпрд░ рдХреЗ рд╕рд╛рде рд░рд╣рд╕реНрдпреЛрдВ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

рдЬрд╛рдЗрд░реЛрд╕реНрдХреЛрдк рдФрд░ рдЕрдиреНрдп рд╡рд┐рджреЗрд╢реА рд╕реЗрдВрд╕рд░ рдХреЗ рдмрд┐рдирд╛ рджрд┐рд╢рд╛ рдХрд╛ рд╕реБрдзрд╛рд░, рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЦ рдХреЛ рд╕рдорд░реНрдкрд┐рдд рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред

Source: https://habr.com/ru/post/In161803/


All Articles