Как сбалансировать летающий квадрокоптер?

9

Я использую свой собственный код для создания робота-квадрокоптера. Аппаратная часть выполнена, но мне нужно сбалансировать вертолет.

Оригинальное видео, демонстрирующее проблему, было передано через Dropbox и больше не доступно.

Я пытался играть со скоростью каждого мотора, чтобы сбалансировать его. Это не пошло. У меня на самом деле есть гироскоп и акселерометр на борту. Но как мне отрегулировать скорость двигателя на основе этих значений? Какие правила я должен остерегаться?

Есть ли лучшее решение, которое пытается и ошибка? С чего мне начать? Какие-нибудь советы?

Greenonline
источник
Ссылка на видео, кажется, умерла
Greenonline
1
Вот почему я не люблю ссылки на частные видео, размещенные на dropbox @Greenonline. По крайней мере, если он был загружен на YouTube, он, скорее всего, все еще будет доступен.
Марк Бут

Ответы:

5

Я верю немного в Google, и вы обнаружите, что некоторые из существующих плат контроллеров имеют открытый исходный код. Например, на прошлой неделе я внес небольшое изменение в правление KK KK , скомпилировал его, и все было в порядке (ищите прошивку 1.5 на вкладке «Файлы»). Я думаю, что openAero также легко доступен.

Я уверен, что не пытался бы начать с нуля, но если вы это сделаете, это несколько петель ПИД на каждой оси, смешанные с сигналами управления от приемника. Крен и шаг варьируются, изменяя скорость двигателя, как вы уже догадались. Тяга изменяется путем замены противоположно вращающихся пар двигателей. высота регулируется путем одновременного изменения всех двигателей. Код, который я просмотрел, наводит меня на мысль, что вам, вероятно, будет удобно работать с углами Эйлера , чтобы объединить данные датчиков от гироскопов и ускорения (которые могут быть или не быть I2C, поэтому учитесь, если вы не знакомы с ним).

Spiked3
источник
Просто продолжение; наткнулся на несколько хороших блок-схем, которые могут вас заинтересовать;
Spiked3