BradWii - очередной multiwii fork или новая жизнь AVR контроллеров :)

mahowik

А пробовал ли кто нить проект BradWii? Я как то упоминал он нем тут
Из фишек (github.com/bradquick/bradwii):

- Extensive use of fixed point math means the code is faster and more accurate. Each value has 32 bit precision and the loop times are frequently under 2 milliseconds. All integration and filtering is time based, which means that constant loop times aren’t critical. The result is stable flight.

  • Level, Acro, and Semi-Acro flight modes.

  • Multi-Wii Config compatible (including bluetooth apps, etc). Works on any (and multiple) serial ports.

  • Simplified settings means there are fewer things (especially PID) that need to be adjusted.

- Auto PID tuning!

  • Position Hold

  • Mag Hold

  • Altitude Hold

  • Return to Home

  • Standard or DSM2 Satellite receivers

  • Throttle Helper - Automatically applies extra throttle when tilted in attempt to maintain attitude.

- Uncrashability Mode - Takes over when you get below critical attitude or get too far away. Practice those Acro maneuvers without being able to dumb-thumb it!

  • The project doesn’t rely on any Arduino libraries which means that it can be easily developed on other development systems. BradWii was originally developed on a Mac using Xcode. The Xcode project can be cloned from the links below. You will also need to clone the libraries. My avr tools are in a unique location, so some tweaking will be involved in getting the xcode version working (experienced programmers only).

Я еще не во всем разобрался и сходу из интересностей:

  • авто пид тюнинг
  • “неубиваемый” режим (Uncrashability Mode)
  • чувак просто монстр реализовал свою fixedpointnum математику на asm-е. т.е. это упрощенный “скоростной” вариант математики с дробной частью. Благодаря этому точность расчетов практически как c числами с плавающей точкой, НО основной цикл примерно 2мс всего, т.е. 500гц!

// a fixedpointnum is a real number that's stored in a long that's shifted left FIXEDPOINTSHIFT bits
// FIXEDPOINTSHIFT is currently 16, so 16 bits are used for the integer part of the number and
// the other 16 bits are used for the fractional part of the number.  I've tried using different
// values, but the compliler likes shifting things by 16 bits (words at a time) so things run
// faster with a FIXEDPOINTSHIFT of 16.

// Therefore, the range of a fixedpointnum is -32768.0 to 32786.0 with an accuracy of 0.000015
// There is no overflow or underflow protection, so it's up to the programmer to watch out.
  • прошива, даже с гпс частью, по идее влезет в 328-ю мегу.

Летает так:

Обсуждение на RCGroups:
www.rcgroups.com/forums/showthread.php?t=1922403
www.rcgroups.com/forums/showthread.php?t=1922423

п.с. Я даже умудрился залить его в свой AIOP на скорую руку и совсем чутка подлетнуть в комнате. Из наблюдений:

  • пиды по умолчанию маловаты (для квадры в районе 1кг), потому либо накрутить, либо изучить и опробовать авто тюнинг…
  • основной цикл и вправду 2мс, т.е. 500гц!
  • не смотря на то что проект совместим с вишным протоколоми и соот-но конфигурится вийным GUI, внутри там вийного ничего нет практически, т.е. окончание wii в название проекта можно было и не писать 😃

В атаче последние на данный момент сорсы master ветки из github с настроенным конфигом на AIOP + приемник CPPM + GPS: NMEA, SERIAL_PORT 2, 115200

Пользовать все на свой стах и риск конечноЖ! 😃

bradwii.zip

RTemka

А какие наборы датчиков поддерживает ?
Есть шансы на вторую жизнь старых мультивишек ?

omegapraim

А вот это уже интересно если чувак мастер ASMa это круто, интересно опробовать именно авто пид тюнинг. займусь в выходные.

Беглым взглядом это мультивий, но вычищенный и приведенный в порядок каким он и должен быть, все понятно и прозрачно, но например гпс часть абсолютно такая же как на версии 2.1, но я думаю если виисты не постараются качественно изменить, то это будет очередная фанфлайная бомба, а автопид тюнинг вообще супер вещ.

mahowik
RTemka:

А какие наборы датчиков поддерживает ?
Есть шансы на вторую жизнь старых мультивишек ?

вторая жизнь - это не про мультивии проект… он всегда поддерживал и поддерживает весь набор датчиков начиная от wii motion plus + nunchak, заканчивая модерновыми mpu6050 и ms5611…
У bradwii немного скромнее набор, но вполне достаточно:
гиры: ITG3200, mpu6050
аксели: BMA180, MPU6050
маг: HMC5843, HMC5883, MAG3110

omegapraim:

если чувак мастер ASMa это круто, интересно опробовать именно авто пид тюнинг

на асме только функция умножения его “псевдо” float типа, но вся математика проекта этот тип и использует… как мин проект будет интересен акро-летунам, т.к. 500гц цикл это вам почти stm32 😉

omegapraim
mahowik:

вторая жизнь - это не про мультивии проект… он всегда поддерживал и поддерживает весь набор датчиков начиная от wii motion plus + nunchak, заканчивая модерновыми mpu6050 и ms5611…
У bradwii немного скромнее набор, но вполне достаточно:
гиры: ITG3200, mpu6050
аксели: BMA180, MPU6050
маг: HMC5843, HMC5883, MAG3110

на асме только функция умножения его “псевдо” float типа, но вся математика проекта этот тип и использует… как мин проект будет интересен акро-летунам, т.к. 500гц цикл это вам почти stm32 😉

даешь автотюниг пид в RC 4)))))

mahowik
omegapraim:

даешь автотюниг пид в RC 4)))))

я ушел в спячку зимнюю! 😃 да и зачем? на стоке все летит в 90% 😃

если по делу, то не до того пока… на разработку и тестирование все сводобное время уходило раньше… вот теперь дела разгребаю до пор сих…

vatanuki

клевенько, караз тренеруюсь в акро, учюсь:) тоже папробую в выходные:) спасибо:)

SergDoc
mahowik:

это вам почти stm32

У ARM есть одна особенность, которой также, к сожалению, никто не пользуется - есть возможность ускорения работы раза в 4 по отношению к x86, но надо правильно поставить задачу 😦
и 32 и большая частота ещё далеко ничего не значит, FPU (при наличии) им тоже ещё надо научиться правильно пользоваться (вкл-выкл тут не панацея), а уменьшение цыкла за счёт правильных алгоритмов (естественно к железу на котором они работают) это огромный плюс, я когда-то запускал на 168 меге одноосевой фильтр Калмана и она справлялась впараллель с альфа-бета(ну или комплиментарным) фильтром, так что ничего удивительного - хороший программер респект!!!

soliada
SergDoc:

так что ничего удивительного - хороший программер

Вот вот, а то все датчики да супер процы))) Главное мозги и знание машинного языка))) АСМ есть всё)))

mahowik
omegapraim:

Беглым взглядом это мультивий, но вычищенный и приведенный в порядок каким он и должен быть, все понятно и прозрачно, но например гпс часть абсолютно такая же как на версии 2.1

ты о чем?! если бы в названии не было упоминания “wii” самим автором и соот-но поддержки вии-протокола для периферии, то мало кто подумал бы откуда ноги растут…
и вот что сам автор пишет: BradWii is open source multi-copter software. The name BradWii comes from the fact that many concepts and some code were borrowed from Multi-Wii. It’s also a play on the original developer’s name, Bradley (Call me Brad). Though based on Multi-Wii, BradWii is pretty much a complete re-write. BradWii is intended to be a platform on which other projects can be built.

omegapraim

Я не говорю что что автор код передрал, я к тому что мультивий должен выглядеть именно так как выглядит сейчас BradWii. а по поводу GPS ты просто сравни версию 2.1 и код BradWii, хотя может просто реализация похожа. Спорить не буду смотрел бегло.

Sir_Alex

ИМХО, чувак конечно молодец и все такое. Но в век мощных процессоров, глупо пытаться писать на ASMe и пытаться все сделать на FixedPoint. Гораздо проще, быстрее, продуктивнее, тупо поменять проц на более производительный.

Covax

Буран летал и садился в авторежиме на синклере zx)
А нынешнему поколению программистов всё тупо процессор побыстрее подавай)))

Sir_Alex
Covax:

А нынешнему поколению программистов всё тупо процессор побыстрее подавай)))

А что тут такого? У меня то же проги на синклере работали, но никто же не пишет на нем сейчас ))) Потому что это идиотизм писать на нем, когда рядом стоит Intel Core i5 (подставить нужный)

То что делает Bradley - круто, но не оправдано.

Я понимаю, когда делают оптимизацию, если уперлись в производильность процессоров текущих. Например при обработки террабайтных объемов данных. Там и современный процы “ползают”. Вот тут действительно, одну функцию соптимизируешь - сразу результат виден.

mahowik

Ну причин может быть несколько “почему AVR”: большой опыт, любовь к привычному семейству микроконтроллеров, либо любофЬ к оптимайзингу. Всегда были и будут любители старого железа так сказать. Я вот питаю теплые чувства при упоминании словей Z80, ZX спектрум и т.д. 😃

Sir_Alex:

То что делает Bradley - круто, но не оправдано.

Это вопрос цели. Т.е. для фана или “с перспективой”. У чувака уверен, что первое 😃

Sir_Alex:

Вот тут действительно, одну функцию соптимизируешь - сразу результат виден.

Так в том и дело. Как писал выше, он просто ввел свой fixedpointnum тип и написал одну фунцию умножения на ASM, на которую и завязал всю математику…

О ток посмотрел и мультивисты туда же 😃
строка 166
code.google.com/p/multiwii/source/…/IMU.cpp
т.е. это уже будет в 2.4 релизе если не уберут… но если не ошибаюсь, то это умножение целых чисел без дробной части… т.е. точность не та…

GrafSher
Sir_Alex:

А что тут такого? У меня то же проги на синклере работали, но никто же не пишет на нем сейчас ))) Потому что это идиотизм писать на нем, когда рядом стоит Intel Core i5 (подставить нужный)

То что делает Bradley - круто, но не оправдано.

очень даже оправданно. Тупое увеличение производительности процов уже подошло к пределу. Закон Мура с каждым разом все труднее и труднее подтверждать. Размеры транзисторов с процессорах уже приблизились к тому пределу, когда начинают сказываться квантовые эффекты. Еще немного и все… упремся. И вот тут придется искать уже другие решения.

Сейчас из-за всяких дот-нетов и горе программистов, которые кроме бэйсика ничего не знают, эти Core i5 99% своей мощности тратят на исполнение неоптимизированного кода. Да вон, в соседней ветке человек написал прогу, которая делает 3 арифметичесикх действия и весить при этом 500кб. Куда это годится?

Так что Брэду - честь и хвала. Значит остались еще настоящие программисты.