Ардупилот на платах OpenPilot Revolution / RevoMini (записей: 1756)

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 6 г., 10 мес. назад

    Новая версия из аонса выше готова к тестированию.

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 6 г., 10 мес. назад

    удалось победить компас - лоитер работает

     

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 6 г., 10 мес. назад

    Да, чуть не забыл. Пока припиливал к ХАЛу Clock Security System, малость помучал камень оверклоком. Итог: до 240МГц работает стабильно, на 250 начинает врать при обработке FLOAT. Обычный Ф405. Так что на частоте Ф7 я полагаю работать будет вполне надежно.

  • Аватар профиля m--s s s6 пунктов в 6 г., 10 мес. назад

    Симлинки в архиве, скаченном с гитхаба, битые-ссылаются куда-то в /mnt/disk_d/...

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 6 г., 10 мес. назад
    [2017-06-09 10:24:35] m-s писал(а): Симлинки в архиве, скаченном с гитхаба, битые-ссылаются куда-то в /mnt/disk_d/...

    Ах да, они ж по умолчанию абсолютные. Но вобщем-то там и latest.zip есть, он без симликов. 

    PS. а пример привести? Или предлагается бросить все дела и самому выискивать поломатые ссылки?

  • Аватар профиля An_private An_private в 6 г., 10 мес. назад

    https://github.com/night-ghost/ardupilot/blob/RevoMini/libraries/AP_HAL_REVOMINI/sbus.cpp

    https://github.com/night-ghost/ardupilot/blob/RevoMini/libraries/AP_HAL_REVOMINI/1_Revo-Mini_read_ME.md

  • Аватар профиля m--s s s6 пунктов в 6 г., 10 мес. назад

    Да, readme и sbus.h/.cpp.

    И ещё, возвращаясь к O0 O2 в исходниках. Не удалось ещё победить проблему из-за которой они нужны?

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 6 г., 10 мес. назад
    [2017-06-09 11:25:23] m-s писал(а): Да, readme и sbus.h/.cpp.

    ридми из папки платы, СБУС из хал_линух. 

    [2017-06-09 11:25:23] m-s писал(а): возвращаясь к O0 O2 в исходниках. Не удалось ещё победить проблему из-за которой они нужны?

    чтоб победить -О0 надо минимум на неделю зависнуть в отладке, бросив все остальное. А что в итоге? Размер станет на 300 байт меньше - это разве достойная цель такого транжирства времени? Разве что найдется спонсор :)

    А вот -О2 эт вовсе не проблема а наоборот, решение проблемы. Ибо стандартная оптимизация -Os дает далеко не самый быстрый код.

    А почему вы спрашиваете? 

  • Аватар профиля m--s s s6 пунктов в 6 г., 10 мес. назад
    [2017-06-09 17:12:55] night_ghost писал(а): чтоб победить -О0 надо минимум на неделю зависнуть в отладке, бросив все остальное. А что в итоге? Размер станет на 300 байт меньше - это разве достойная цель такого транжирства времени? Разве что найдется спонсор :) А вот -О2 эт вовсе не проблема а наоборот, решение проблемы. Ибо стандартная оптимизация -Os дает далеко не самый быстрый код. А почему вы спрашиваете?

    Просто хотелось убедиться, что эхо этой проблемы не проявится в самое неподходящее время-например, в полёте. Пока из всего hal, на первый взгляд, вызывают вопросы два момента-этот O0 и магия с кастами и longjump-ами в scheduler.cpp

     

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 6 г., 10 мес. назад

    [2017-06-09 19:54:50] m-s писал(а): Просто хотелось убедиться, что эхо этой проблемы не проявится в самое неподходящее время-например, в полёте. 

    Нет, это гораздо меньшая проблема чем шумные девайсы на новомодных платах. Не проявится.

    [2017-06-09 19:54:50] m-s писал(а): магия с кастами и longjump-ами в scheduler.cpp

    А вот тут кто не спрятался - я не виноват. Ежли начал писать под контроллеры на ассемблере то все искусственнкые ограничения ЯВУ кажутся просто смешными :) 

    Я еще все обработчики прерываний переделаю под вызов универсального хендлера. Оно - работает!

    UPD. коммент доводилось читать?

    UPD2. Также стоило бы посмотреть, что вытворяет планировщик любой ОС с процом при переключении контекста. И ничего, многопоточными ОС пользуются все. А та же функциональность в шедулере почему-то вдруг "магия с кастами и longjump-ами"

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 6 г., 10 мес. назад

    И еще о реальных проблемах. Вот только что.

    Кой-че меняю, перешиваю - не работает компас. Ну, думаю - поломал. Возвращаю как было, прошиваю - компас все равно не работает. Лезу отладчиком на чтение из компаса, а там... Канал Y читается нормально, а каналы X и Z в зашкале на -4096 независимо от. Получается что компас тихо-мирно помер при очередной перезагрузке, причем питание в этот момент не дергалось!

    Вот кто может поручиться что то же самое не может случиться в воздухе?

  • Аватар профиля m--s s s6 пунктов в 6 г., 10 мес. назад

    Коммент я читал )

    Ну в os эта часть на asm-ме и написана, а не на c++  с хаками. Это вообщем-то не претензия, а так мысли вслух. А кооперативной многозадачности, а ля bf/inav не хватает ardupilot-у?

     

    А какая версия gcc используется? Хочу сделать свою сборку по мотивам ...

     

    Ну а компас... 5883l уже не делают - появилось много клонов сомнительного качества. Хорошо, что для самолёта он не нужен )  Меньше датчиков-меньше проблем.

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 6 г., 10 мес. назад
    [2017-06-10 11:23:11] m-s писал(а): Ну в os эта часть на asm-ме и написана, а не на c++  с хаками.

    Да разве? Обычно такие же асм вставки как и у меня.

    [2017-06-10 11:23:11] m-s писал(а): А кооперативной многозадачности, а ля bf/inav не хватает ardupilot-у?

    Нет в бетафлае и клонах многозадачности, вообще нет. Есть вызов функций по списку, которые должны отработать за определенное время. И сложные алгоритмы в таком случае приходится реализовывать в виде кучерявых автоматов состояния. Проектировать их нудно, отлаживать задолбаешься, и нет гарантии что нигде не напортачил. В Арду процедуры уровня драйверов тоже так сделаны, но при этом ОБЯЗАНЫ быть еще 2 потока - основной и фоновый. В которых программе не надо заботиться о состоянии, просто можно работать, иногда вызывая функции ХАЛа. Кои и сделают всю черную магию :) Собственно это и есть настоящая кооперативная многозадачность в стиле Windows 3.1, когда контекст переключается по явному вызову планировщика yield() либо по любому системному вызову. Я могу сделать и настоящую преемптивную многозадачность по таймеру (смотреть на обработку исключений с принудительным возвратом в нужное место), но для полетного контроллера это вредно а не полезно. Потому что. Как я уже говорил, для правильного полетного контроллера нужен простой, короткий и быстрый цикл стабилизации угла а-ля Бетафлай, и все остальное на другом проце. Самое забавное что такая вохможность была у PixHawk но реализовано было иначе.

    [2017-06-10 11:23:11] m-s писал(а): 5883l уже не делают

    смотря кто :) китайцы делают, похоже. Сдох0ший компас был на доп платке с Бангуда, а не на контроллере.

    [2017-06-10 11:23:11] m-s писал(а): Меньше датчиков-меньше проблем.

    Совсем наоборот - при правильной математике чем больше датчиков тем точнее известно состояние системы и тем лучше отсекаются сдохшие/проглючившие датчики. Смотреть в сторону алгоритма наименьших квадратов :)

     

  • Аватар профиля justason justason в 6 г., 10 мес. назад

    По ссылке в первом посте внешний барометр уже не доступен.

    Заработает-ли модуль для ардуино?

    https://www.aliexpress.com/item/10DOF-9-Axis-MPU9250-BMP180-Gyro-Acceleration-Barometer-Sensor-Module/32615129925.html?spm=2114.01010208.3.1.3RuxBG&ws_ab_test=searchweb0_0,searchweb201602_2_10152_10065_10151_10068_5030012_10171_10084_10083_10080_10082_10081_10110_10136_10137_519_10111_10060_10112_10113_10155_10062_10114_437_10154_10056_10055_10054_10182_10059_303_100031_10099_10078_10079_10103_10073_10102_10096_10123_10189_10052_10053_10142_10107_142_10050_10051,searchweb201603_16,ppcSwitch_5&btsid=b0604f52-f4e2-45d5-9632-a4fbc24f1bec&algo_expid=7a9bcd03-ecf2-49d9-bd5d-b597f335d1b2-0&algo_pvid=7a9bcd03-ecf2-49d9-bd5d-b597f335d1b2

    или такой?

    https://www.aliexpress.com/item/1Set-I2C-SPI-GY-89-10DOF-L3GD20-LSM303D-BMP180-Gyro-Accelerometer-Magnetometer-Barometer-Sensor-Board-Module/32804506374.html?spm=2114.01010208.3.9.nvu9TK&ws_ab_test=searchweb0_0,searchweb201602_2_10152_10065_10151_10068_5030012_10171_10084_10083_10080_10082_10081_10110_10136_10137_519_10111_10060_10112_10113_10155_10062_10114_437_10154_10056_10055_10054_10182_10059_303_100031_10099_10078_10079_10103_10073_10102_10096_10123_10189_10052_10053_10142_10107_142_10050_10051,searchweb201603_16,ppcSwitch_5&btsid=5f41fcad-db64-4f67-88f5-126d5754719c&algo_expid=1ae9dfd9-2549-4e86-a231-20e8f5057de2-1&algo_pvid=1ae9dfd9-2549-4e86-a231-20e8f5057de2

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 6 г., 10 мес. назад

    оба набора датчиков избыточны, ибо на них еще и ненужные акселерометр с гирой стоят.  Хотя барометр заработать должен.  Однако лучше брать GY-652 

← Форум группы   Все форумы К последней записи
Постов на странице:

Вы автоматически вступите в эту группу, когда ответите в теме.

Добавить ответ:

-
Рейтинг@Mail.ru