{"id":240221,"date":"2014-10-15T15:14:03","date_gmt":"2014-10-15T11:14:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=240221"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=240221","title":{"rendered":"<span class=\"post_title\">\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0443\u0433\u043b\u043e\u0432\u043e\u0439 \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u0432\u0430\u0434\u0440\u043e\u043a\u043e\u043f\u0442\u0435\u0440\u0430<\/span>"},"content":{"rendered":"<div class=\"content html_format\">     \t\u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u0441\u043a\u043e\u0440\u0435\u0435 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u043c\u043e\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043e \u0431\u0430\u043b\u0430\u043d\u0441\u0435\u0440\u0435: <a href=\"http:\/\/habrahabr.ru\/post\/220989\/\">\u00ab\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0440\u043e\u0431\u043e\u0442\u0430 \u0431\u0430\u043b\u0430\u043d\u0441\u0435\u0440\u0430 \u043d\u0430 arduino\u00bb<\/a>.<br \/>  \u0412 \u043d\u0435\u0439 \u0431\u0443\u0434\u0443\u0442 \u043e\u0447\u0435\u043d\u044c \u043a\u0440\u0430\u0442\u043a\u043e \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u044b: \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0443\u0433\u043b\u043e\u0432\u043e\u0439 \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u0432\u0430\u0434\u0440\u043e\u043a\u043e\u043f\u0442\u0435\u0440\u0430 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d\u043e\u0432, \u043b\u0438\u043d\u0435\u0430\u0440\u0438\u0437\u0430\u0446\u0438\u044f, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0435\u0433\u043e \u0432 Matlab, \u0430 \u0442\u0430\u043a \u0436\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0435. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u043e\u0434\u043e\u043f\u044b\u0442\u043d\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0442\u044c Crazyflie 1.0.<\/p>\n<p>  \u0421\u0435\u0439\u0447\u0430\u0441 \u043e\u043d\u043e \u043b\u0435\u0442\u0430\u0435\u0442 \u0442\u0430\u043a (\u043d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u0441\u044a\u0435\u043c\u043e\u043a \u044f \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u043b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435): <\/p>\n<p>  <iframe loading=\"lazy\" width=\"560\" height=\"349\" src=\"\/\/www.youtube.com\/embed\/dxMF-TdUFwE?wmode=opaque\" frameborder=\"0\" allowfullscreen><\/iframe><br \/>  <a name=\"habracut\"><\/a>  <\/p>\n<h4>\u041f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b<\/h4>\n<p>  \u0412\u0432\u0435\u0434\u0435\u043c 2 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442: \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0443\u044e, \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u0443\u044e \u043a \u0437\u0435\u043c\u043b\u0435, \u0438 \u0432\u0442\u043e\u0440\u0443\u044e, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u0443\u044e \u0441 \u043a\u043e\u043f\u0442\u0435\u0440\u043e\u043c.<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/f9c\/9b4\/0a8\/f9c9b40a8582475bbc4c2afce5d2a662.png\" width=\"200\"\/><\/p>\n<p>  \u0412\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0442\u0435\u043b\u0430 \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d\u044b, \u0432 \u0441\u0432\u044f\u0437\u0438 \u0441 \u043c\u0435\u043d\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439. \u041e \u043d\u0438\u0445 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0441\u0442\u0430\u0442\u0435\u0439, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 \u043d\u0430 \u0445\u0430\u0431\u0440\u0435. \u042f \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u043a \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044e \u043a\u043d\u0438\u0433\u0443 \u00ab\u0411\u0440\u0430\u043d\u0435\u0446 \u0412.\u041d., \u0428\u043c\u044b\u0433\u043b\u0435\u0432\u0441\u043a\u0438\u0439 \u0418.\u041f. \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d\u043e\u0432 \u0432 \u0437\u0430\u0434\u0430\u0447\u0430\u0445 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438\u00bb, \u0441\u043f\u0430\u0441\u0438\u0431\u043e <a href=\"http:\/\/habrahabr.ru\/users\/slovak\/\" class=\"user_link\">Slovak<\/a> \u0438\u0437 \u0446\u0435\u043d\u0442\u0440\u0430 \u043a\u043e\u043c\u043f\u0435\u0442\u0435\u043d\u0446\u0438\u0439 Matlab \u0437\u0430 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0443.<\/p>\n<p>  \u0412\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c \u0437\u0430\u043a\u043e\u043d\u043e\u043c \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u0438 \u0432\u0440\u0430\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f:<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/3a2\/7ec\/d8c\/3a27ecd8ca1b401b8f03b8ac8b2503bd.gif\"\/>, \u0433\u0434\u0435 <br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/539\/8af\/f58\/5398aff58f76454aa0360c6ce7877e36.gif\"\/> \u2014 \u043c\u043e\u043c\u0435\u043d\u0442\u044b, \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043d\u0430 \u0442\u0435\u043b\u043e, <br \/>  I \u2014 \u0442\u0435\u043d\u0437\u043e\u0440 \u0438\u043d\u0435\u0440\u0446\u0438\u0438, \u0430 <br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/4d8\/d8d\/a53\/4d8d8da53df44aefba2787b6dd1bf9ec.gif\"\/> \u2014 \u0443\u0433\u043b\u043e\u0432\u044b\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043f\u043e \u0433\u043b\u0430\u0432\u043d\u044b\u043c \u043e\u0441\u044f\u043c(\u0432 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442). <br \/>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/2ad\/27a\/1e4\/2ad27a1e46fa42759d5dd9e9d08fd7af.gif\"\/>.<\/p>\n<p>  \u0412 \u0441\u0438\u043b\u0443 \u0442\u0435\u043e\u0440\u0435\u043c\u044b \u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u0442\u0435\u043d\u0437\u043e\u0440\u0430 \u0438\u043d\u0435\u0440\u0446\u0438\u0438 \u043a \u0433\u043b\u0430\u0432\u043d\u044b\u043c \u043e\u0441\u044f\u043c, \u0442\u0435\u043d\u0437\u043e\u0440 \u0438\u043d\u0435\u0440\u0446\u0438\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c \u0432 \u0432\u0438\u0434\u0435: <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/6d0\/9c8\/000\/6d09c80004cd4a3b98561248607b2b3a.gif\"\/>.<\/p>\n<p>  \u0412\u043d\u0435\u0448\u043d\u0438\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c \u0447\u0435\u0440\u0435\u0437 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f: <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/34f\/30e\/c76\/34f30ec7653c434b8ad37ed003d74d84.gif\"\/>, \u0433\u0434\u0435<br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/74e\/ecf\/1e9\/74eecf1e9dbb48648eacd1619b7b2f3b.gif\"\/><\/p>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0443\u0433\u043b\u043e\u0432\u044b\u0445 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0435\u0439 \u0432 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442:<br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/4a0\/3c4\/a8d\/4a03c4a8d46349e4ad18cd56f814242b.gif\"\/><\/p>\n<p>  \u0417\u0430\u043c\u0435\u0447\u0443, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0431\u044b \u043c\u044b \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u043b\u0438 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043a\u043e\u043f\u0442\u0435\u0440\u0430, \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043d\u0435 \u0432\u0432\u043e\u0434\u0438\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439, \u0430 \u0441\u0440\u0430\u0437\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043d\u0438\u0445 \u0441\u0438\u043b\u044b \u0442\u044f\u0433\u0438, \u0447\u0442\u043e \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u0438 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u043f\u0440\u0438 \u0440\u0430\u0441\u0447\u0435\u0442\u0430\u0445. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0439 \u0441\u0443\u043c\u043c\u0435 \u0441\u0438\u043b \u0442\u044f\u0433\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a\u0438\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u2026<\/p>\n<p>  \u0421\u0438\u043b\u0430 \u0442\u044f\u0433\u0438 \u043f\u0440\u043e\u043f\u0435\u043b\u043b\u0435\u0440\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0430 \u043a\u0430\u043a <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/961\/4e3\/8cc\/9614e38cc57e4491bc6466e3641ddaeb.gif\"\/>. \u0422\u043e\u0433\u0434\u0430 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0443\u0433\u043b\u043e\u0432\u044b\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u043f\u0440\u043e\u043f\u0435\u043b\u043b\u0435\u0440\u043e\u0432, \u0435\u0441\u043b\u0438 \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 \u043c\u043e\u0442\u043e\u0440\u043e\u0432 \u0438 \u0437\u043d\u0430\u0435\u0442\u0435 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0435 b:<br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/448\/085\/bca\/448085bca08c41eea3d5fb142d6c5c57.gif\"\/> \u0433\u0434\u0435<br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/2df\/e7c\/b83\/2dfe7cb83c9749ebb3cd8d01f57e4f8e.gif\"\/> \u2014 \u0443\u0433\u043b\u044b \u044d\u0439\u043b\u0435\u0440\u0430 <br \/>  \u0417\u0430\u043c\u0435\u0447\u0443, \u0447\u0442\u043e \u043f\u043e\u0434\u0431\u043e\u0440 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430 b \u0443 \u043c\u0435\u043d\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d \u0432\u0440\u0443\u0447\u043d\u0443\u044e, \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u043f\u043e\u0434\u0431\u043e\u0440\u043e\u043c.<\/p>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u0438\u0441\u0430\u0442\u044c \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d\u0430 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f. \u0418\u0437 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d\u043e\u0432 \u0441\u043b\u0435\u0434\u0443\u0435\u0442, \u0447\u0442\u043e<br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/469\/652\/b9a\/469652b9a6ac43dbb19e7cb0b93a9f0a.gif\"\/>, \u0433\u0434\u0435 <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/4d8\/d8d\/a53\/4d8d8da53df44aefba2787b6dd1bf9ec.gif\"\/> \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0443\u0433\u043b\u043e\u0432\u044b\u043c\u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044f\u043c\u0438 \u0432 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0439 \u0441 \u041b\u0410 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442, \u0432 \u043d\u0435\u0439 \u0433\u0438\u0440\u043e\u0441\u043a\u043e\u043f\u044b \u0438\u0437\u043c\u0435\u0440\u044f\u044e\u0442 \u0443\u0433\u043b\u043e\u0432\u0443\u044e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c [1].<\/p>\n<p>  \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u0433\u043b\u044b \u0438 \u0443\u0433\u043b\u043e\u0432\u044b\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438:<br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/ab5\/81e\/ebb\/ab581eebb7e34a2a8b068262caa29ed9.gif\"\/><\/p>\n<p>  \u0418\u043b\u0438 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/d17\/22e\/b20\/d1722eb20b274c7281f9e163cde0a139.gif\"\/><\/p>\n<p>  \u0412\u0432\u0435\u0434\u0435\u043c \u0432\u0435\u043a\u0442\u043e\u0440 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439:<br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/ab2\/a2c\/76e\/ab2a2c76ecfe43ab9e5a13a57cfcb658.gif\"\/>.<br \/>  \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0432 \u0432\u0435\u043a\u0442\u043e\u0440 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0432\u0445\u043e\u0434\u0438\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/55b\/ae3\/b30\/55bae3b30204482ebd02503c828c46f5.gif\"\/> \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0439. \u041e\u0434\u043d\u0430\u043a\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c, \u0447\u0442\u043e <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/05d\/c5a\/c28\/05dc5ac282614dd691a47aa087a32f64.gif\"\/> \u0438 \u0443\u0431\u0440\u0430\u0442\u044c \u0435\u0435 \u0438\u0437 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439, \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0432 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 [2].<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/88f\/fc7\/9c0\/88ffc79c06104a8d950e6fe62623ec6c.gif\"\/><\/p>\n<p>  \u0412\u0435\u043a\u0442\u043e\u0440 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439:<br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/743\/799\/3a8\/7437993a8803444897237b00da70fa10.gif\"\/>,<\/p>\n<p>  \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c\u0430 \u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u043c \u0432\u0438\u0434\u0435<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/e63\/284\/808\/e6328480820d49bc966c9793af394f41.gif\"\/>.<\/p>\n<p>  \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/729\/2b9\/5e2\/7292b95e27b64e49ad348fd35a01991d.gif\"\/>, \u0430<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/fe9\/68d\/de8\/fe968dde8c824d3f8d0297fb0ff42350.gif\"\/><\/p>\n<h4>\u041b\u0438\u043d\u0435\u0430\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f<\/h4>\n<p>  \u041b\u0438\u043d\u0435\u0430\u0440\u0438\u0437\u0438\u0440\u0443\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0432\u0431\u043b\u0438\u0437\u0438 \u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b A \u0438 B:<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/f30\/f38\/53b\/f30f3853bb364e638e53f66f6c50aa74.gif\"\/>,<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/fe9\/68d\/de8\/fe968dde8c824d3f8d0297fb0ff42350.gif\"\/><\/p>\n<p>  \u041a\u0430\u043a \u0438 \u0432 \u043f\u0440\u043e\u0448\u043b\u044b\u0439 \u0440\u0430\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043b\u0438\u043d\u0435\u0439\u043d\u043e-\u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0438\u0447\u043d\u044b\u0439 \u0440\u0435\u0433\u0443\u043b\u044f\u0442\u043e\u0440. \u041d\u0430\u043f\u043e\u043c\u043d\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443 Matlab \u0434\u043b\u044f \u0435\u0433\u043e \u0440\u0430\u0441\u0447\u0435\u0442\u0430:  <\/p>\n<pre><code class=\"matlab\">[K,S,e]=lqr(A,B,Q,R) <\/code><\/pre>\n<p>  \u041c\u0430\u0442\u0440\u0438\u0446\u044b Q \u0438 R \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432\u0435\u0441\u043e\u0432\u044b\u043c\u0438 \u043c\u0430\u0442\u0440\u0438\u0446\u0430\u043c\u0438. Q \u0448\u0442\u0440\u0430\u0444\u0443\u0435\u0442 \u0437\u0430 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0435 \u043e\u0442 \u043d\u0443\u043b\u044f, \u0430 R \u0437\u0430 \u0440\u0430\u0441\u0445\u043e\u0434 \u044d\u043d\u0435\u0440\u0433\u0438\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c.<br \/>  \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 K. \u0412 \u043c\u043e\u0435\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0435 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u0432 \u0432\u0441\u0435 \u043d\u0435\u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0431\u044b\u043b\u0438 \u043e\u0447\u0435\u043d\u044c \u043c\u0430\u043b\u044b (\u043f\u043e\u0440\u044f\u0434\u043a\u0430 10^-4) \u0438 \u044f \u043d\u0435 \u0441\u0442\u0430\u043b \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0438\u0445.<br \/>  \u041d\u0430\u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u043c\u0430\u0442\u0440\u0438\u0446\u0443 K \u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440 X. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0432 \u043a\u043e\u0434\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u0432\u0432\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u043d\u044f\u0442\u0438\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u043a\u0430\u0436\u0434\u0443\u044e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0443 \u043d\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f.<\/p>\n<h4>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043c\u043e\u0434\u0435\u043b\u0438<\/h4>\n<p>  \u0414\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0431\u044b\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u043c\u043e\u0434\u0435\u043b\u044c \u0432 Matlab. \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0435\u0435 \u0441 \u043d\u0435\u043d\u0443\u043b\u0435\u0432\u044b\u043c\u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u043c\u0438.<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/fbe\/438\/6c4\/fbe4386c476c40eba29027ead1774628.png\"\/><\/p>\n<p>  \u041f\u0435\u0440\u0432\u044b\u0439 \u0433\u0440\u0430\u0444\u0438\u043a \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043a\u0430\u043a \u0432\u0435\u0434\u0443\u0442 \u0441\u0435\u0431\u044f \u0443\u0433\u043b\u043e\u0432\u044b\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438, \u0432\u0442\u043e\u0440\u043e\u0439 \u2014 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d\u0430. \u0417\u0430\u043c\u0435\u0442\u044c\u0442\u0435, \u0447\u0442\u043e \u0441\u043a\u0430\u043b\u044f\u0440\u043d\u0430\u044f \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0430 \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0432 \u0435\u0434\u0438\u043d\u0438\u0446\u0443, \u043d\u0435 \u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043e\u043d\u0430 \u043d\u0435 \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u043b\u0438\u043d\u0435\u0430\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u0438\u0437 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 \u2014 \u043c\u043e\u0434\u0435\u043b\u044c \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f.<\/p>\n<h4>\u041a\u043e\u0434<\/h4>\n<p>  Crazyflie \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 Free RTOS, \u0433\u0434\u0435 \u0432\u0435\u0441\u044c \u043a\u043e\u0434 \u0440\u0430\u0437\u0431\u0438\u0442 \u043d\u0430 \u043c\u043e\u0434\u0443\u043b\u0438, \u043d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u043a\u043e\u0434 sensfusion6.c \u0438 stabilizer.c. <br \/>  \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u0439 \u0430\u043a\u0441\u0435\u043b\u0435\u0440\u043e\u043c\u0435\u0442\u0440\u0430 \u0438 \u0433\u0438\u0440\u043e\u0441\u043a\u043e\u043f\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d\u0430\u0445, \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0441\u0435\u043d\u0441\u043e\u0440\u044b \u043d\u0430 \u043a\u043e\u043f\u0442\u0435\u0440\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u0434\u043b\u044f + \u0441\u0445\u0435\u043c\u044b. \u041c\u043e\u0434\u0435\u043b\u044c \u0436\u0435 \u044f \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043b \u0434\u043b\u044f X \u0441\u0445\u0435\u043c\u044b. \u041e\u0442\u043b\u0438\u0447\u0438\u0435 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0432\u044b\u0431\u043e\u0440\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439 U1 \u0438 U2.<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/cc5\/35f\/f76\/cc535ff766214f408cfdf96153f627bd.gif\"\/><\/p>\n<p>  \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u0434 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d\u0430 \u0432 sensfusion6.c:<\/p>\n<pre><code class=\"cpp\">void sensfusion6GetQuaternion(float* rq0,float* rq1,float* rq2,float* rq3){   *rq0=q0;   *rq1=q1;   *rq2=q2;   *rq3=q3; } <\/code><\/pre>\n<p>  \u042f \u043d\u0435 \u0441\u0442\u0430\u043b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u0434\u043b\u044f LQR \u0440\u0435\u0433\u0443\u043b\u044f\u0442\u043e\u0440\u0430, \u0432\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u044f \u0438\u0437\u043c\u0435\u043d\u0438\u043b stabilizer.c. \u0414\u0430, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u044d\u0442\u043e \u0438 \u043d\u0435 \u0441\u0430\u043c\u044b\u0439 \u0438\u043d\u0442\u0435\u043b\u043b\u0438\u0433\u0435\u043d\u0442\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431, \u043e\u0434\u043d\u0430\u043a\u043e \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043c\u043e\u0434\u0435\u043b\u0438 \u043e\u043d \u043f\u043e\u0434\u043e\u0439\u0434\u0435\u0442.<\/p>\n<p>  \u041d\u0430\u0447\u0430\u0442\u044c \u0441\u0442\u043e\u0438\u0442 \u0441 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0438 \u0436\u0435\u043b\u0430\u0435\u043c\u043e\u0433\u043e \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u0430, \u0430 \u0442\u0430\u043a \u0436\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439:<\/p>\n<pre><code class=\"cpp\">static float q0Actual; static float q1Actual; static float q2Actual; static float q3Actual;  static float q1Desired; static float q2Desired; static float q3Desired;  int16_t  actuatorU1; int16_t  actuatorU2; int16_t  actuatorU3; <\/code><\/pre>\n<p>  \u0416\u0435\u043b\u0430\u0435\u043c\u043e\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e q0 \u043d\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0432 \u0441\u0438\u043b\u0443 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043d\u0430\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0435\u0433\u043e \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p>  \u041f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u0434 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434. \u041a\u043e\u043f\u0442\u0435\u0440 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0443\u0433\u043e\u043b \u0432 \u0433\u0440\u0430\u0434\u0443\u0441\u0430\u0445, \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0435\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a:<\/p>\n<pre><code class=\"cpp\">\u0441ommanderGetRPY(&q1Desired, &q2Desired, &q3Desired);       q1Desired=cos((-q1Desired\/2+90)*0.01745);\/\/*3.14\/180\/2;       q2Desired=cos((q2Desired\/2+90)*0.01745);       q3Desired=cos((q3Desired\/2+90)*0.01745); <\/code><\/pre>\n<p>  \u0418\u0437\u043c\u0435\u043d\u0438\u043c \u00ab\u0431\u044b\u0441\u0442\u0440\u044b\u0439\u00bb \u0446\u0438\u043a\u043b (250\u0413\u0446) \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430:<\/p>\n<pre><code class=\"cpp\">sensfusion6UpdateQ(gyro.x, gyro.y, gyro.z, acc.x, acc.y, acc.z, FUSION_UPDATE_DT); sensfusion6GetEulerRPY(&eulerRollActual, &eulerPitchActual, &eulerYawActual); sensfusion6GetQuaternion(&q0Actual, &q1Actual,&q2Actual,&q3Actual); sensfusion6UpdateP(FUSION_UPDATE_DT); sensfusion6UpdateV(acc.x, acc.y, acc.z, FUSION_UPDATE_DT);  actuatorU1=50*(1*(-gyro.x)+245*(q1Actual-q1Desired)); actuatorU2=50*(1*(gyro.y)-200*(q2Actual-q2Desired)); actuatorU3=50*(1.5*(gyro.z)+0*(q3Actual-q3Desired)); <\/code><\/pre>\n<p>  \u041f\u043e\u0434\u0431\u043e\u0440 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d \u043e\u043f\u044b\u0442\u043d\u044b\u043c \u043f\u0443\u0442\u0435\u043c, \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0435 \u0431\u044b\u043b\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0443\u0437\u043d\u0430\u0442\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c \u043c\u0435\u0436\u0434\u0443 \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u043c\u043e\u0439 \u043d\u0430 \u043c\u043e\u0442\u043e\u0440\u044b \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 \u0438 \u0441\u0438\u043b\u043e\u0439, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0432\u044b\u0434\u0430\u0435\u0442 \u043c\u043e\u0442\u043e\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430.<\/p>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u044f \u0438\u0437\u043c\u0435\u043d\u0438\u043b \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u043c\u043e\u0442\u043e\u0440\u043e\u0432:  <\/p>\n<pre><code class=\"cpp\">static void distributePower(const uint16_t thrust, const int16_t u2, const int16_t u3, const int16_t u4) {   motorPowerM1=limitThrust((thrust\/4+u3\/2+u4\/4)*5);   motorPowerM2=limitThrust((thrust\/4-u2\/2-u4\/4)*5);   motorPowerM3=limitThrust((thrust\/4-u3\/2+u4\/4)*5);   motorPowerM4=limitThrust((thrust\/4+u2\/2-u4\/4)*5);    motorsSetRatio(MOTOR_M1, motorPowerM1);   motorsSetRatio(MOTOR_M2, motorPowerM2);   motorsSetRatio(MOTOR_M3, motorPowerM3);   motorsSetRatio(MOTOR_M4, motorPowerM4); } <\/code><\/pre>\n<h4>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h4>\n<p>  \u0418\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043a\u043e\u043f\u0442\u0435\u0440 \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0441\u0432\u043e\u0438 \u0443\u0433\u043b\u044b, \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043a\u043b\u044e\u0447\u0438\u0442\u044c, \u0447\u0442\u043e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u0430 \u0432\u0435\u0440\u043d\u043e. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043f\u043e\u043a\u0430 \u043d\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0441\u0432\u043e\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 (\u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0430\u043a\u0441\u0435\u043b\u0435\u0440\u043e\u043c\u0435\u0442\u0440\u0430 \u0434\u0430\u0435\u0442 \u043e\u0433\u0440\u043e\u043c\u043d\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443), \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043a\u043e\u043f\u0442\u0435\u0440 \u043d\u0435 \u0433\u0430\u0441\u0438\u0442 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0438 \u043d\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u043e\u0437\u0438\u0446\u0438\u044e. <br \/>  \u0414\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 MIT, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043a\u0430\u043c\u0435\u0440\u044b \u0438 \u043c\u0435\u0442\u043a\u0438 \u043d\u0430 \u0441\u0432\u043e\u0438\u0445 \u043a\u043e\u043f\u0442\u0435\u0440\u0430\u0445.<\/p>\n<h4>\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0438 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438<\/h4>\n<p>  <\/p>\n<ol>\n<li>\u0411\u0440\u0430\u043d\u0435\u0446 \u0412.\u041d., \u0428\u043c\u044b\u0433\u043b\u0435\u0432\u0441\u043a\u0438\u0439 \u0418.\u041f. \u00ab\u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d\u043e\u0432 \u0432 \u0437\u0430\u0434\u0430\u0447\u0430\u0445 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438\u00bb<\/li>\n<li>Yaguang Yang \u00abAnalytic LQR Design for Spacecraft Control System Based on Quaternion Model\u00bb<\/li>\n<li><a href=\"https:\/\/github.com\/spin7ion\/crazyflie-firmware-lqr\">\u0412\u0435\u0442\u043a\u0430 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u043d\u0430 github<\/a><\/li>\n<\/ol>\n<p>  P.S. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043d\u0435 \u043c\u043e\u0433\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043c\u043e\u0434\u0435\u043b\u044c\u044e, \u0430 \u0442\u0430\u043a \u0436\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0441 \u0430\u0432\u0442\u043e\u043f\u0438\u043b\u043e\u0442\u043e\u043c \u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043d\u043e\u0439 \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0432 \u0441\u0438\u043b\u0443 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u044d\u0442\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044c\u044e \u043c\u043e\u0435\u0433\u043e \u0431\u0443\u0434\u0443\u0449\u0435\u0433\u043e \u0434\u0438\u043f\u043b\u043e\u043c\u0430, \u0430 \u0432\u0441\u0435 \u0434\u0438\u043f\u043b\u043e\u043c\u044b \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u043d\u0430 \u043d\u043e\u0432\u0438\u0437\u043d\u0443 \u0438 \u0430\u043d\u0442\u0438\u043f\u043b\u0430\u0433\u0438\u0430\u0442.<br \/>  P.P.S. \u042f \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u044e \u0434\u0430\u043d\u043d\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e \u043d\u0430 \u0445\u0430\u0431\u0440\u0435, \u0430 \u043d\u0435 \u043d\u0430 \u043d\u043e\u0432\u043e\u043c GT \u0432 \u0441\u0432\u044f\u0437\u0438 \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u043e\u0438 \u0441\u0442\u0430\u0442\u044c\u0438 \u0441\u0445\u043e\u0436\u0435\u0439 \u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438 \u043e\u0441\u0442\u0430\u043b\u0438\u0441\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0430 \u0445\u0430\u0431\u0440\u0435.      \t<\/p>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/240221\/\"> http:\/\/habrahabr.ru\/post\/240221\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">     \t\u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u0441\u043a\u043e\u0440\u0435\u0435 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u043c\u043e\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043e \u0431\u0430\u043b\u0430\u043d\u0441\u0435\u0440\u0435: <a href=\"http:\/\/habrahabr.ru\/post\/220989\/\">\u00ab\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0440\u043e\u0431\u043e\u0442\u0430 \u0431\u0430\u043b\u0430\u043d\u0441\u0435\u0440\u0430 \u043d\u0430 arduino\u00bb<\/a>.<br \/>  \u0412 \u043d\u0435\u0439 \u0431\u0443\u0434\u0443\u0442 \u043e\u0447\u0435\u043d\u044c \u043a\u0440\u0430\u0442\u043a\u043e \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u044b: \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0443\u0433\u043b\u043e\u0432\u043e\u0439 \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u0432\u0430\u0434\u0440\u043e\u043a\u043e\u043f\u0442\u0435\u0440\u0430 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d\u043e\u0432, \u043b\u0438\u043d\u0435\u0430\u0440\u0438\u0437\u0430\u0446\u0438\u044f, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0435\u0433\u043e \u0432 Matlab, \u0430 \u0442\u0430\u043a \u0436\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0435. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u043e\u0434\u043e\u043f\u044b\u0442\u043d\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0442\u044c Crazyflie 1.0.<\/p>\n<p>  \u0421\u0435\u0439\u0447\u0430\u0441 \u043e\u043d\u043e \u043b\u0435\u0442\u0430\u0435\u0442 \u0442\u0430\u043a (\u043d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u0441\u044a\u0435\u043c\u043e\u043a \u044f \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u043b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435): <\/p>\n<p>  <iframe loading=\"lazy\" width=\"560\" height=\"349\" src=\"\/\/www.youtube.com\/embed\/dxMF-TdUFwE?wmode=opaque\" frameborder=\"0\" allowfullscreen><\/iframe>  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-240221","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/240221","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=240221"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/240221\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=240221"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=240221"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=240221"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}