Страница 1 из 3

Какой джиттер достаточно при аппаратных stepgen`ах?

Добавлено: 12 апр 2018, 12:01
DmitryJ
Всем привет!

Сейчас имею ситуацию:
Джиттер BP 30000 и SP 28000, 7i92+7i76, три шаговика
Вылезает ошибка Unexpected realtime delay

Куда копать - дальше пытаться снижать джиттер или проблема может быть где-то еще?

Спасибо!

Re: Какой джиттер достаточно при аппаратных stepgen`ах?

Добавлено: 12 апр 2018, 12:14
Сергей Саныч
Имеет смысл радикально увеличить BASE_PERIOD. Сейчас, кстати, какой?

Re: Какой джиттер достаточно при аппаратных stepgen`ах?

Добавлено: 12 апр 2018, 12:23
DmitryJ
Пробовал BASE_PERIOD в диапазоне 40000 - 120000
Никаких изменений :(

Re: Какой джиттер достаточно при аппаратных stepgen`ах?

Добавлено: 12 апр 2018, 14:17
Serg
Сергей Саныч писал(а):Имеет смысл радикально увеличить BASE_PERIOD.
А зачем он там вообще нужен?..

Re: Какой джиттер достаточно при аппаратных stepgen`ах?

Добавлено: 12 апр 2018, 14:53
Сергей Саныч
UAVpilot писал(а):А зачем он там вообще нужен?..
Мало ли какая логика может быть наворочена с базовым тактированием.

Re: Какой джиттер достаточно при аппаратных stepgen`ах?

Добавлено: 12 апр 2018, 17:15
Serg
Сергей Саныч писал(а):Мало ли какая логика может быть наворочена с базовым тактированием.
Для обработки какого сигнала? :)
Намёк: откуда он приходит и куда уходит?

Re: Какой джиттер достаточно при аппаратных stepgen`ах?

Добавлено: 13 апр 2018, 10:35
Сергей Саныч
UAVpilot писал(а):Для обработки какого сигнала?
1. Каждый такт может создавать в цепочке лог. элементов задержку (может и не создавать, смотря как организована последовательность выполнения). При тактировании сервопоследовательностью задержка может достигать нескольких миллисекунд, что может быть критично, скажем, при обработке датчиков.
2. У меня, к примеру, для обработки штурвала (MPG 100 ppr) используется компонент encoder. Если его тактировать частотой 1 кГц, то крутить штурвал без сбоев можно будет не быстрее примерно 1 оборота в секунду.
3. При использовании таких компонентов, как debounce, использование сервопоследовательности в качестве тактовой тоже может создавать серьезные задержки.

Re: Какой джиттер достаточно при аппаратных stepgen`ах?

Добавлено: 13 апр 2018, 12:44
DmitryJ
Надеюсь, в битве титанов никто не пострадает :)

Что делать-то все-таки?
Влияет все-таки джиттер или нет при аппаратных stepgen`ах?
Ошибка Unexpected realtime delay вылезает :(

Что проверить/покрутить?

Возможно, как-то влияет кинематика - genserkins, манипулятор-рука.
При этом хомится нормально, без сбоев.
Ручное управление также работает.

Re: Какой джиттер достаточно при аппаратных stepgen`ах?

Добавлено: 13 апр 2018, 12:52
Сергей Саныч
Все-таки есть смысл побороться с задержками. Подольше погонять тест не пробовали? С повышенной загрузкой компьютера ("шестеренки", видео, перекачка файлов...)?

Re: Какой джиттер достаточно при аппаратных stepgen`ах?

Добавлено: 13 апр 2018, 13:16
DmitryJ
А до каких значений надо снизить джиттер?

Гонял браузер + шестеренки (5шт) + видео
Джиттер стоит колом.

Проц Pentium Core Duo, мать на чипсете H110, видео встроенное.
Пробовал видеокарту GeForce 710, джиттер - без изменений.
В Grub прописано nomodeset, isolcpus=1

Re: Какой джиттер достаточно при аппаратных stepgen`ах?

Добавлено: 13 апр 2018, 17:25
Serg
Сергей Саныч писал(а):2. У меня, к примеру, для обработки штурвала (MPG 100 ppr) используется компонент encoder. Если его тактировать частотой 1 кГц, то крутить штурвал без сбоев можно будет не быстрее примерно 1 оборота в секунду.
Для штурвала в данном случае надо использовать либо энкодерный вход на 7i77 и соотв. аппаратный счётчик в 7i92, либо LPT и программный счётчик. base-thread имеет смысл только во втором варианте, правда сам второй вариант не очень-то имеет смысл в данном случае. :)
Сергей Саныч писал(а):3. При использовании таких компонентов, как debounce, использование сервопоследовательности в качестве тактовой тоже может создавать серьезные задержки.
А такие компоненты как debounce откуда возьмут сигнал, меняющийся чаще, чем раз в сервоперод? :)
DmitryJ писал(а):Влияет все-таки джиттер или нет при аппаратных stepgen`ах?
Нет.
Просто уберите все упоминания о BASE_PERIOD и base-thread.

Re: Какой джиттер достаточно при аппаратных stepgen`ах?

Добавлено: 14 апр 2018, 04:36
Сергей Саныч
UAVpilot писал(а):А такие компоненты как debounce откуда возьмут сигнал, меняющийся чаще, чем раз в сервоперод?
Из реального мира, вестимо. Полученные не из месы, которая опрашивается раз в сервопериод, а, скажем, из того же LPT.
я не спорю, что построение систем без использования base-thread возможно и даже желательно. Но иногда получение и обработка "сырых данных" с более высокой частотой. чем servo-thread, может позволить уменьшить задержки реакции системы на внешние воздействия.

Re: Какой джиттер достаточно при аппаратных stepgen`ах?

Добавлено: 14 апр 2018, 15:15
Serg
Сергей Саныч писал(а):Из реального мира, вестимо. Полученные не из месы, которая опрашивается раз в сервопериод, а, скажем, из того же LPT.
Ну я ж написал:
UAVpilot писал(а):base-thread имеет смысл только во втором варианте, правда сам второй вариант не очень-то имеет смысл в данном случае. :)
И ТС не говорит, что использует LPT. :)
Сергей Саныч писал(а):Но иногда получение и обработка "сырых данных" с более высокой частотой. чем servo-thread, может позволить уменьшить задержки реакции системы на внешние воздействия.
Если вся периферия работает с частотой servo-thread, то физически неоткуда получить сигнал и некуда его передать с дискретизацией меньше, чем servo-thread. :)

Было-бы интересно увидеть пример обратного. :)

Re: Какой джиттер достаточно при аппаратных stepgen`ах?

Добавлено: 16 апр 2018, 12:12
DmitryJ
UAVpilot писал(а): Просто уберите все упоминания о BASE_PERIOD и base-thread.
Сделал
Ошибка осталась
Все равно вылезает Unexpected realtime delay на первой же команде G-кода

Куда копать?

Re: Какой джиттер достаточно при аппаратных stepgen`ах?

Добавлено: 16 апр 2018, 12:40
Сергей Саныч
DmitryJ писал(а):вылезает Unexpected realtime delay на первой же команде G-кода
Похоже, у вас слишком сложные получились расчеты в кинематике. Которые не успевают завершиться за сервопериод.

Re: Какой джиттер достаточно при аппаратных stepgen`ах?

Добавлено: 16 апр 2018, 14:31
DmitryJ
Команда не самая сложная - G0
Ошибка вылезает, но команда выполняется.

Если путь побольше, то в конце пути вываливается уже под joint following error
Но это понятно, отклонение накапливается.

На linuxcnc.org у коллег с такой кинематикой все работает, так что грешить на кинематику я бы не стал.
Возможно, ошибка наведенная, но где что еще проверить-подергать - не знаю.

Re: Какой джиттер достаточно при аппаратных stepgen`ах?

Добавлено: 16 апр 2018, 16:54
Serg
HAL свой покажи чтоль...
Джиттер как мерял? Как долго? Что заускал при этом?

Re: Какой джиттер достаточно при аппаратных stepgen`ах?

Добавлено: 16 апр 2018, 21:22
DmitryJ
Hal и ini выкладываю

Джитттер мерял так - запускал браузер, видео, 5-6 шестеренок
Но недолго - 10-20 минут

Re: Какой джиттер достаточно при аппаратных stepgen`ах?

Добавлено: 16 апр 2018, 23:10
Serg
вот это тоже выкидывайте:
traj_period_nsec=[EMCMOT]TRAJ_PERIOD

Re: Какой джиттер достаточно при аппаратных stepgen`ах?

Добавлено: 18 апр 2018, 12:05
DmitryJ
выкинул traj_period_nsec=[EMCMOT]TRAJ_PERIOD

Стало как-то не лучше, а иначе (:

Работает при servo period 3500000, если ставить ниже - сразу realtime error при исполнении G0
Подозреваю, что 3 500 000 как-то многовато

При относительно длинном пути по G0 вываливается по joint following error
Заглушил обратную связь со степегена, поставил axis.position-com => axis.position-fb

Тогда уже отваливается SSerial - communication error (13)
Скриншот прилагаю

Может быть дело не в ini-hal?
Криво встал rt-preemt, поэтому и realtime error?
или проблемы с питанием или помехи какие могут влиять?