Страница 6 из 9

LinuxCNC - Альтернативная кинематика.

Добавлено: 10 май 2012, 13:54
Serg
Эта тема предлагается для обсуждения моих решений некоторых вопросов кинематики в LinuxCNC и других, связанных с ними.

На сегодня стоит задача получить рабочее решение для вот этого монстрика: Многосевой станок лазерной резки листа и профиля #1 - нужно управлять количеством моторов (joints), которое пока не под силу штатным средствам LinuxCNC. Ну и скорее всего и для других проектов, которым окажутся тесными возможности штатной кинематики LinuxCNC.

Если появятся желающие присоединиться к работам по этой тематике, то добро пожаловать в тему.
Оставляю за собой узурпаторское право "отселять" обсуждения, выходящие за рамки этой темы. :tongue:

ВНИМАНИЕ!
Все опубликованные ниже разработки предлагаются "AS IS" (как есть), без каких-либо гарантий, в том числе и по сопровождению
Имеющиеся описания ориентированы на тех, кто более-менее разбирается в LinuxCNC и в его HAL в частности, или хотя-бы прочитал и понял документацию.
Считайте это своеобразным порогом вхождения. Если сделать подробное описание "для чайников", то оные не преминут этим воспользоваться и в случае любых непоняток будут задавать вопросы, которые как правило так или иначе освещены в документации. Отвечать на них я не желаю, не из вредности, а из-за отсутствия у меня на это времени....

Extended Gantry Axis Component for LinuxCNC HAL (egantry)

Описание: https://cncdevice.com/devel/eaxis/egantry.txt
Архив: https://cncdevice.com/devel/eaxis/egant ... re3.tar.gz предыдущая версия: https://cncdevice.com/devel/eaxis/egant ... re2.tar.gz
Устанавливается командой

Код: Выделить всё

sudo halcompile --install egantry.c
Совместим с LinuxCNC версий 2.6.x и выше. Для уточнения проверяйте у компонента axis.N наличие пинов home-state и homed.

BlackBox userspace component for LinuxCNC HAL

Описание: Re: LinuxCNC - Альтернативная кинематика. #76
Компонент: https://cncdevice.com/devel/misc/BlackBox.py

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Начало темы было такое: :)
PKM писал(а):А что за кинематика? Для твоего мега-станка?
gantry кинематика, которая которая использует только одну axis.N для любого количества приводов оси, ну и решает можество других проблем, сопутствующих штатной gantrykins.

Re: LinuxCNC - Альтернативная кинематика.

Добавлено: 04 июл 2018, 19:33
Serg
Nikomas писал(а):- egantry видит что показания энкодера расходятся на 4мм рвет joint.01 со всех сил в позицию 0. Грохот стоит тот еще.
Значит для egantry не все параметры заданы и/или не все подключения сделаны.
Nikomas писал(а):HOME_OFFSET в ini конечно же не работает.
HOME_OFFSET из ini ипользует axis.N и никто у него это не отбирает.

ИМХО надо подключать egantry.0.joint.01.offset, но я не понял как.
Никак - это "информационный" пин.

Re: LinuxCNC - Альтернативная кинематика.

Добавлено: 04 июл 2018, 19:57
Nikomas
UAVpilot писал(а):Значит для egantry не все параметры заданы и/или не все подключения сделаны.
обновил пред. сообщение с show pin.

Re: LinuxCNC - Альтернативная кинематика.

Добавлено: 05 июл 2018, 02:24
Serg
Поставь поменьше align-vel и align-acc - это скорость и ускорение для выравнивания, а у тебя там указаны твои максимальные значения. Поставь раз в 10 меньше.
Nikomas писал(а):- Перезапускаю программу.
- egantry видит что показания энкодера расходятся на 4мм рвет joint.01 со всех сил в позицию 0. Грохот стоит тот еще.
вот этого чёто не понял... - После включения пока HOMING не выполнено оно никуда рваться не должно.

Re: LinuxCNC - Альтернативная кинематика.

Добавлено: 05 июл 2018, 13:20
Nikomas
UAVpilot писал(а):вот этого чёто не понял...
https://www.youtube.com/watch?v=HYi8Pbyxjk0

Re: LinuxCNC - Альтернативная кинематика.

Добавлено: 05 июл 2018, 13:41
Serg
Пришли ini/hal про это - через неск. дней постараюсь на стенде повторить.

Re: LinuxCNC - Альтернативная кинематика.

Добавлено: 05 июл 2018, 22:25
Nikomas
UAVpilot писал(а):Пришли ini/hal
Уже.
UAVpilot писал(а):Кстати при HOME_USE_INDEX = YES есть ещё один глюк, связанный с работой этого самого индекса: При уточнении по индексу одновременно происходит обнуление показаний энкодера, axis.N видит это обнуление и, как и положено, обнуляет своё задание. Но "видит" оно в одном сервоцикле, а обнуление задания до pid.N доходит только в следующем - если система PID+привод быстрая, то она успевает заметить эту милисекундную разницу и отреагировать на это ощутимым "ударом". :(
Как это победить пока не понятно...
Кстати, на моем видео эти стуки отчетливо слышно. Может уже есть решение?

Re: LinuxCNC - Альтернативная кинематика.

Добавлено: 06 июл 2018, 01:12
Serg
Nikomas писал(а):Кстати, на моем видео эти стуки отчетливо слышно. Может уже есть решение?
Для Mesa это не глюк, а моя невнимательность. Изображение
Для to_pci решения пока нет.

Re: LinuxCNC - Альтернативная кинематика.

Добавлено: 06 июл 2018, 11:51
Nikomas
UAVpilot писал(а):Для to_pci решения пока нет
Загрубить энкодер не вариант?

Re: LinuxCNC - Альтернативная кинематика.

Добавлено: 06 июл 2018, 13:15
Serg
Не поможет. Надо HAL-драйвер для to_pci делать по аналогии с драйверами Mesa.

Так после уменьшения align-vel и align-acc "спецэффекты" при включении остались?

Re: LinuxCNC - Альтернативная кинематика.

Добавлено: 06 июл 2018, 13:43
Nikomas
UAVpilot писал(а):Так после уменьшения align-vel и align-acc "спецэффекты" при включении остались?
Да. Они и изначально не влияли. За основу брал конфиг от MGG, а у него было:
setp egantry.0.align-vel 0.5
setp egantry.0.align-acc 1
но при таких параметрах очень долго выставлялось. Потому и решил немного ускорить.

Re: LinuxCNC - Альтернативная кинематика.

Добавлено: 06 июл 2018, 14:17
Serg
Тогда придётся ждать пока я свой стенд модернизирую и соберу в кучку...

Пока гипотеза в том, что to_pci как-то иначе работает, чем Mesa. Ибо я во время отладки многократно действовал так:
1. делал хоминг и смотрел как работает
2. что-то исправлял
3. руками крутил одну из осей, чтоб оси были в разных позициях
4. перезапускал LinuxCNC
Goto 1.
и никаких рывков при включении небыло.

А для устранения "ударов" в конце хоминга на to_pci могу предложить такой костыль, только если оно где-то ещё проглючит, то я не виноват. :)

Код: Выделить всё

--- pid.c.orig	2017-11-25 04:26:15.000000000 +0300
+++ pid.c	2017-12-09 01:36:06.645777032 +0300
@@ -325,6 +325,8 @@
     } else {
         tmp1 = command - feedback;
     }
+    if(pid->prev_ie && !*(pid->index_enable))
+	  tmp1 = 0;
     /* store error to error pin */
     *(pid->error) = tmp1;
     /* apply error limits */

Re: LinuxCNC - Альтернативная кинематика.

Добавлено: 06 июл 2018, 14:32
Nikomas
UAVpilot писал(а):Пока гипотеза в том, что to_pci как-то иначе работает, чем Mesa.
Спросим у MGG.

Re: LinuxCNC - Альтернативная кинематика.

Добавлено: 06 июл 2018, 14:36
Serg
Хорошая мысль. Мне он на подобное не жаловался...
Или я не допонял... :)

Да и плазма с eganty в эксплуатации уже не один год, а там коррекция почти полтора сантиметра. И управляет ей не какой-нибудь профи, а "любая кухарка".

Re: LinuxCNC - Альтернативная кинематика.

Добавлено: 06 июл 2018, 18:14
Nikomas
UAVpilot писал(а):Хорошая мысль. Мне он на подобное не жаловался...
Ответ MGG:
Была или даже есть такая проблема, но расхождения сейчас сотка, и по этому я забил. Точнее у меня не бывает чтобы я отрубил енейбл, врубил и продолжил работать

Re: LinuxCNC - Альтернативная кинематика.

Добавлено: 06 июл 2018, 19:14
Serg
Nikomas писал(а):у меня не бывает чтобы я отрубил енейбл, врубил и продолжил работать
Это ведь не твой случай?..

Re: LinuxCNC - Альтернативная кинематика.

Добавлено: 06 июл 2018, 19:20
Nikomas
UAVpilot писал(а):Это ведь не твой случай?..
У меня только при перезапуске программы. Может MGG не разобрался в видео.

Вот бы как-то обнулять энкодер при запуске LinuxCNC. Даже выключение усилков не помогает сбросить показания. Похоже что сама Linux или to_pci помнит их показания при закрытии программы. Спасает только полный перезапуск усилков и системы.

Re: LinuxCNC - Альтернативная кинематика.

Добавлено: 06 июл 2018, 19:29
MGG
Да, с перезапуском программы я не пробовал

Re: LinuxCNC - Альтернативная кинематика.

Добавлено: 08 июл 2018, 13:14
T00T
UAVpilot писал(а):Для Mesa это не глюк, а моя невнимательность.
Для to_pci решения пока нет.
Немного не в теме...
Что-то не так работает? В чём отличие работы Mesa и to_pci?

Re: LinuxCNC - Альтернативная кинематика.

Добавлено: 08 июл 2018, 16:36
Serg
T00T писал(а):Что-то не так работает? В чём отличие работы Mesa и to_pci?
Mesa:

Код: Выделить всё

...
addf hm2_hm2_7i92.0.read servo-thread
addf motion-command-handler  servo-thread
addf motion-controller servo-thread
addf pid.x.do-pid-calcs servo-thread
addf ...
...
addf ...
addf hm2_hm2_7i92.0.write servo-thread
...
to_pci:

Код: Выделить всё

...
addf to_pci.1.update servo-thread
addf motion-command-handler  servo-thread
addf motion-controller servo-thread
addf pid.x.do-pid-calcs servo-thread
addf ...
..

Re: LinuxCNC - Альтернативная кинематика.

Добавлено: 19 июл 2018, 00:24
Nikomas
UAVpilot писал(а):Вот бы как-то обнулять энкодер при запуске LinuxCNC.
А может вот решение моей проблемы?

Код: Выделить всё

VOLATILE_HOME = 0 Когда включено (равно 1) эта ось станет unhomed (не выставленной) если выключится питание станка или включится E-stop. Это полезно если у вашего станка есть датчики home и нет обратной связи по положению, таких как станки управляемые сигналами шаг/направление.