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

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

    Кстати, обновил qgc - компасс откалибровался

    А вот логи на sd карту не пишутся

    С usb какие-то проблемы, только через uart1 работает.

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

    Я давно не цеплял на отладку плату с SD-картой, как подцеплю гляну. Когда-то раньше писались. Проблемы с USB как выглядят - нет устройства или молчание?

    UPD. Посмотрел логи, сенсоры стоят на месте как вкопанные, а горизонт дуркует почему-то. Это не я :) И что самое удивительное EKF весь зелененький, то есть думает что все хорошо

    UPD 2. У меня USB работает

    UPD 3. Я тестю коптер, а в данном случае идет речь про самолет, судя по логам? Вечером прицеплю плату V2 и посмотрю что там

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

    Вообще ничего не происходит, когда подключаешь - нет устройства... Может быть кабель поломан ) ...

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

    Да, это под самолёт, точнее под tailsitter делается.

    Попробовал переключить на ekf3 - тоже самое все.

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 8 г., 2 мес. назад
    [2017-09-27 10:32:26] m-s писал(а): Вообще ничего не происходит, когда подключаешь - нет устройства...

    Ну я не знаю, USB ведь в самом камне, так что от платы не зависит и должно работать раз на РевоМини работает.

    [2017-09-27 10:55:19] m-s писал(а): Попробовал переключить на ekf3 - тоже самое все.

    Может официалам отписаться с логами?

  • Аватар профиля m--s s s6 пунктов в 8 г., 2 мес. назад
    [2017-09-27 11:00:01] night_ghost писал(а): Ну я не знаю, USB ведь в самом камне, так что от платы не зависит и должно работать раз на РевоМини работает.

    Проверю ещё, может реально кабель.

    Может официалам отписаться с логами?

    В tlog мало информации. Будут полные логи с карты-попробую. Глюк очень похож на то , что у basti с rcgroups...

     Upd. Реально кабель. Пробовал им прошить - не прошилось. 

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 8 г., 2 мес. назад
    [2017-09-27 11:16:09] m-s писал(а): Глюк очень похож на то , что у basti с rcgroups..

    Помнится когда я давным-давно самолет отлаживал по проблемам UART там тоже были скачки горизонта, но я не стал с ними разбираться, ибо сенсоры также давали верные данные, а мне самому самолет не интересен был. Особо странно что на коптере такого нету.

    Логи - контроллер армился? Маска арминга какая?

  • Аватар профиля m--s s s6 пунктов в 8 г., 2 мес. назад
    [2017-09-27 11:56:23] night_ghost писал(а): Логи - контроллер армился? Маска арминга какая?

    Маску поставил 0. После арма флаги ошибк gps, reciever(это понятно) и logging(это странно).

    После этого если посмотреть карту в ридере- форматирование слетело.

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 8 г., 2 мес. назад
    [2017-09-27 12:51:44] m-s писал(а): форматирование слетело.

    Один раз или каждый раз?

  • Аватар профиля m--s s s6 пунктов в 8 г., 2 мес. назад
    [2017-09-27 13:30:16] night_ghost писал(а): Один раз или каждый раз?

    Два раза пробовал. Оба раз получил неотформатированную карту после арминга.

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

    Упс. Вся обработка флешки это любимая всеми FatFS от CHaN, так что эт не я :)

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

    Ясно, вполне может быть. Починить-то получится?

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 8 г., 2 мес. назад
    [2017-09-28 06:14:46] m-s писал(а): Починить-то получится?

    Чтобы починить надо сначала у себя это поймать. А пока я занят был - ловил кто это нам время цикла портит. Поймал:

    Sched stats:
    % of full time: 1.46 Efficiency 0.738 max loop time 86
    delay times: in main 64.67 including in semaphore 0.08 in timer 0.00
    max delay() error= 220 wfe time = 0
    MPU overflows: 0 restarts 0
    PPM max buffer size: 0

    Task times:
    shed task 0x80470B520007540 tim 13885.1 int 56.873% tot 0.8295% mean time 82.9 max time 85 (baro)
    shed task 0x804A0E120007D60 tim 10529.0 int 43.127% tot 0.6290% mean time 84.0 max time 84 (compass)

    sleep time 48.20502% (time in WFE)
    task 0 (0x80AAF1D) times: full 301808.6ms ( 17.92%) mean 5.3uS max 1082uS at 80A876F error 0 (main task)
    task 1 (0x80AAF3120004A94) times: full 0.3ms ( 0.00%) mean 1.9uS max 2uS at 80ABED9 error 10 (analog read)
    task 2 (0x80AC64B20004B08) times: full 8357.7ms ( 0.49%) mean 3.4uS max 90uS at 80ABDAD error 597
    task 3 (0x804A21D20007D60) times: full 3598.8ms ( 0.21%) mean 1.8uS max 87uS at 80ABED9 error 699
    task 4 (0x80ABDF5) times: full 43292.6ms ( 2.57%) mean 2.3uS max 90uS at 80ABE3D error 0 (all IO tasks)
    task 5 (0x8054BB920007F50) times: full 403008.1ms ( 23.93%) mean 5.3uS max 99uS at 80AAE91 error 955 (MPU data parser)

    I2C stats
    bus 0 addr 77 errors 0 last error=0
    bus 0 addr 1e errors 0 last error=0

    Memory used: 56k:
    Free stack: 31k:
    Main stack use: 1k at 8036d18

    новые бинарники готовы

    UPD. Кстати про флешки. Попадались такие которые ни в какую не соглашались заводиться, так что замена на другую (и желательно поменьше, у меня например 128МБ) вполне может помочь.

  • Аватар профиля m--s s s6 пунктов в 8 г., 2 мес. назад
    [2017-09-28 08:34:56] night_ghost писал(а): Поймал

    Драйвер MPU ? Или Eeprom эмуляция. Кстати кешировать содержимое eeprom - здравая идея. Только непонятно когда кеш сохранять обратно во флеш.

    [2017-09-28 08:34:56] night_ghost писал(а): Кстати про флешки.

    Попробую другую флешку.

     

    А ekf глюки из-за оптимизаций были? Или не ясно ещё?

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 8 г., 2 мес. назад
    [2017-09-28 09:40:53] m-s писал(а): Драйвер MPU ? Или Eeprom эмуляция.

    Эмуляция. Чтобы считать 1 байт надо просканировать содержимое 16Кб страницы, на чтение одного параметра читается с десяток байт - вот и набегает неприлично много. Сейчас все вычитывается в память при загрузке и при записи обновляется и там и там. Можно не обновлять во флеше в заармленном состоянии дабы паузы стирания страницы избежать в воздухе, но тогда при аварийном отключении питания данные пропадут. Насколько это критично - не знаю. UPD. Сделаю параметром

    [2017-09-28 09:40:53] m-s писал(а): А ekf глюки из-за оптимизаций были? Или не ясно ещё?

    Непонятно почему, похоже где-то происходит конфликт доступа из разных потоков. Сохраняю корректные данные от того же MPU, специально проверив чтобы длина вектора не отличалась от средней больше чем надо - вс ОК, а в МП цифирь иногда в 0 превращается. Где это портится - АЧЕЗ.

    Откатил  обратно на стандартные драйверы в прерывании таймера - все прошло, но 20% времени это delay() в прерывании плюс ожидание обмена, что нехорошо, и приводит к макс. ошибке в ~2500uS, то есть опять цикл плохой

  • Аватар профиля m--s s s6 пунктов в 8 г., 2 мес. назад
    [2017-09-28 11:09:30] night_ghost писал(а): Насколько это критично - не знаю.

    Мне кажется - не критично. Если в воздухе пропадает питание, то сохранность eeprom не самая большая проблема ..

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 8 г., 2 мес. назад
    [2017-09-28 11:27:35] m-s писал(а): Если в воздухе пропадает питание, то сохранность eeprom не самая большая проблема ..

    А если питание пропадает из-за краша? А мы какой-нибудь Autotune делали... Лучче пусть будет выбор

    Сделал скринкаст, где видно что данные с акселя обнуляются на время. И пока не понимаю как это ловить :(

    UPD. Пересобрал с теми же стандартными драйверами, но не по таймеру а в рамках мультитаска - снова все покривилось.. Может приравнять семафор к критической секции и если задача владеет семафором то пусть дорабатывает пока не отдаст...

  • Аватар профиля m--s s s6 пунктов в 8 г., 2 мес. назад
    [2017-09-28 11:33:04] night_ghost писал(а): Может приравнять семафор к критической секции и если задача владеет семафором то пусть дорабатывает пока не отдаст...

    Идеально, конечно, причину найти )

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 8 г., 2 мес. назад
    [2017-09-28 11:33:04] night_ghost писал(а): Может приравнять семафор к критической секции

    сделал. НЕ ПОМОГЛО :-/ "Я опечален" (С)

    [2017-09-28 15:10:14] m-s писал(а): Идеально, конечно, причину найти )

    дык не ищется.

  • Аватар профиля m--s s s6 пунктов в 8 г., 2 мес. назад
    [2017-09-29 04:38:52] night_ghost писал(а): НЕ ПОМОГЛО

    Мистика какая-то. 

    P.S. На rcgroups хотят отдельный тагет для omnibus f4 pro v3. Это тоже самое что и airbot v2 , за исключением косметических изменений в layout. Например, вместо 0om резисторов пады для пайки. Зоопарк этих омнибасов знатный.

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 8 г., 2 мес. назад
    [2017-09-29 06:52:19] m-s писал(а): P.S. На rcgroups хотят

    Я видел, но нет там софтверных различий

    [2017-09-29 06:52:19] m-s писал(а): Мистика какая-то.

    Именно что. Прерывание происходит в случайные моменты, но все работает. Контекст переключается на другую задачу только по системным вызовам, а после захвата задачей первого семафора вообще перестает переключаться, то есть драйверы, которые исполняются с захваченным семафором шины, вообще работают "одним куском" - и при этом глюки.

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

    Хотите прерываний - будет вам прерываний :) Сделал новое API шедулеру для однократного запуска коллбэка в контексте таймера с проверкой семафора без захвата, теперь можно вернуть все драйверы обратно в таймерное прерывание, запланировав выполнение обработчика из прерывания IO_Complete.

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

    Даже без этого починилось. По факту захвата семафора нужен не флаг а счетчик, тогда все ОК. Интересно, а как оно работает в случае преемптивного мультитаска в той же Наттикс?

    Но я таки вернул обработку данных с МПУ в таймерное прерывание, дабы уменьшить выделяемую под FIFO память

  • Аватар профиля m--s s s6 пунктов в 8 г., 2 мес. назад
    [2017-09-29 10:10:17] night_ghost писал(а): Даже без этого починилось. По факту захвата семафора нужен не флаг а счетчик, тогда все ОК. Интересно, а как оно работает в случае преемптивного мультитаска в той же Наттикс?

    Возможно, там как раз рекурсивный семафор используется.

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

    я про то что факт захвата семафора там не мешает переключению контекста, а если его переключить невовремя то у меня все портится. Но на самом деле все драйверы для PX4 совсем не похожи на обычные, обработкой железа драйверы ОСи занимаются, так что вопрос риторический скорее

    UPD. пустил сборку, через час будут бинарники. Наконец-то вмешательство во время цикла не превышает 500uS

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

    Последняя сборка.

    Плата revo. Завис контроллер при калибровке акселерометра. 

    Плата airbot v2. Откуда-то определился датчик воздушной скорости на i2c шине. Ошибки компаса в qgc. При попытке откалибровать компасс тоже зависает контроллер. Ну и логи..

    Upd. Прочитал rcgroups - про зависания уже известно похоже.

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 8 г., 2 мес. назад
    [2017-09-30 15:53:42] m-s писал(а): Завис контроллер при калибровке акселерометра.

    тут все плохо, известно про сам факт но не про то что его вызывает. Я ловил только Panic() на стадии калибровки барометра (и не понял почему, после перезагрузки все было ОК), но не зависания. Предположив что это может быть вызвано неатомарным доступом к счетчику семафоров задачи, оградил его изменение запретом прерываний - не помогло, RCG рапортует о продолжении зависаний. Моя же плата работает как часы, так что я не могу поймать проблему

     

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

    Словил. HardFault из-за битых значений в регистрах. Причем совершенно спорадически - то сразу же, то вот уже час работает, подключенное к МП. И я без понятия что это и как это отлаживать :-/

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

    Жаль у процессора ног нет для трассировки. ETM помог бы наверное.

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

    Да, помог бы, вот только я даже отдаленно не представляю что для этого надо. Хотя глюк вроде прошел после увеличения стека задачи, то есть похоже что имело место быть периодическое переполнение стека в прерывании. Эт не ардуина, тут могут все 16 уровней прерывания вложиться, отожрав только на прерывания 32*16=512 байт памяти...                                    

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

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

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

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