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

  • Аватар профиля m--s s s6 пунктов в 7 г., 1 мес. назад
    [2017-10-05 09:54:48] night_ghost писал(а): Ага, и они усиленно пилят порт под ЧибиОС.

    Ага, видел. Есть шанс что допилят?

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

    Ну наверное есть, взялись серезно, и вроде как первый полет уже был

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

    Этот порт все равно лучше )

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

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

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

    Выложены бинарники с последними плюшками:

    • преемптивная многозадачность
    • независимые стеки для процессов и прерываний
    • отстроенные приоритеты процессов

    на настоящий момент аптайм составляет около 16 часов, так что похоже что баг со случайными зависами был побежден

     

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

    Малость оптимизировал мультитаск: поделил планировщик и переключаель контекста, и не переключаю если запланированной оказывается та же самая задача. Статистика

    sched time: by timer  3.02 (49.22%) sw  1.89% in yield  3.08 (50.47%) sw  4.21% in tails  3.47 ( 0.30%) sw  6.12%

    то есть добровольное переключение встречается в 50% случаев и задача меняется в ~4% из них, а для таймерного переключения вообще смена задачи в ~2% случаев.

    А вот попытка уменьшить джиттер времени задержки, сокращая квант если задачу надо будет скоро запускать, переключает задачу с вероятностью ~6%.

    Время работы планировщика без собственно переключения - около 3uS, само переключение стандартное и занимает еще ~2.5uS.

     

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 7 г., 1 мес. назад
    • исправлена ошибка с логами на AirbotV2
    • исправлена проблема со спорадическими зависаниями на семафоре
    • оптимизирована многозадачность - нет переключения контекста если следующая задача совпадает с текущей. Реальное переключение контекста происходит ~ 4% вызовов планировщика
    • все работа с списком задач перенесена на уровень ISR, поэтому больше нет гонки между yield() и таймером


    бинарные файлы готовы

  • Аватар профиля m--s s s6 пунктов в 7 г., 1 мес. назад
    [2017-10-12 15:32:29] night_ghost писал(а): бинарные файлы готовы

    Отлично, спасибо! Будем пробовать)

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

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

    UPD. добавил контроль за длиной вектора гравитации с акселерометра (дабы не по температуре корректность данных проверять, а то повторное чтение расстраивает МПУшку ибо на этот момент данные могут быть еще не готовы), так в пределах секунды от загрузки в проскакивает один неверный отсчет (4.6 вместо 9.8). Интересно, что бы это могло бы быть?

  • Аватар профиля m--s s s6 пунктов в 7 г., 1 мес. назад
    [2017-10-13 06:18:14] night_ghost писал(а): так в пределах секунды от загрузки в проскакивает один неверный отсчет (4.6 вместо 9.8)

    Ровно один? И потом не повторяется? Странно...

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 7 г., 1 мес. назад
    [2017-10-13 11:30:01] m-s писал(а): Ровно один? И потом не повторяется? Странно...

    Именно! Вот и я про то что странно. точная строка из лога:

    Init Gyro*MPU: accel len reset: mean 9.439304 got 4.717114

    А потом тишина, хоть как его крути. Я б понял если б был битым первый отсчет, но это где-то из первой сотни, уже среднее накопилось. Очень похоже  на очередной баг самой МПУшки

    PS. Вынес всю работу с семафорами на уровень планировщика через SVC. Это просто праздник какой-то! Не нужно никаких запретов прерываний, ибо прерывания одного уровня сериализуются аппаратно, и гарантированно до возврата не будет ни других семафоров, ни переключения задач, ни тем более самих задач. В итоге код семафоров стал вдвое меньше :)

    Пересобирается. UPD. готово

  • Аватар профиля m--s s s6 пунктов в 7 г., 1 мес. назад
    [2017-10-13 12:21:41] night_ghost писал(а): UPD. готово

    В этой версии qgroundcontrol не может скачать параметры по usb. 

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

    Плата, тип? У меня коптер работает и подключается на всех платах, я даже скринкаст могу положить

    В любом случае уже новые бинарники собираются, там убрана проверка MPU и добавлен еще один параметр, теперь файлсейф силами HAL надо включать явно

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

    Airbot V2, arduplane. Подозреваю, что как минимум частично это баг qgc - походу он не умеет нормально догружать параметры. Если хоть один пакет потерялся, то опа, приплыли. MP в этом смысле интеллектуальней, но ах - не работает на телефоне.

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

    может лучше тогда Tower?

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

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

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

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