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

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение 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.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

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

ИМХО надо подключать egantry.0.joint.01.offset, но я не понял как.
Никак - это "информационный" пин.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Nikomas
Мастер
Сообщения: 721
Зарегистрирован: 07 янв 2012, 14:31
Репутация: 64
Откуда: Беларусь
Контактная информация:

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

Сообщение Nikomas »

UAVpilot писал(а):Значит для egantry не все параметры заданы и/или не все подключения сделаны.
обновил пред. сообщение с show pin.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

Поставь поменьше align-vel и align-acc - это скорость и ускорение для выравнивания, а у тебя там указаны твои максимальные значения. Поставь раз в 10 меньше.
Nikomas писал(а):- Перезапускаю программу.
- egantry видит что показания энкодера расходятся на 4мм рвет joint.01 со всех сил в позицию 0. Грохот стоит тот еще.
вот этого чёто не понял... - После включения пока HOMING не выполнено оно никуда рваться не должно.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Nikomas
Мастер
Сообщения: 721
Зарегистрирован: 07 янв 2012, 14:31
Репутация: 64
Откуда: Беларусь
Контактная информация:

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

Сообщение Nikomas »

UAVpilot писал(а):вот этого чёто не понял...
https://www.youtube.com/watch?v=HYi8Pbyxjk0
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

Пришли ini/hal про это - через неск. дней постараюсь на стенде повторить.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Nikomas
Мастер
Сообщения: 721
Зарегистрирован: 07 янв 2012, 14:31
Репутация: 64
Откуда: Беларусь
Контактная информация:

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

Сообщение Nikomas »

UAVpilot писал(а):Пришли ini/hal
Уже.
UAVpilot писал(а):Кстати при HOME_USE_INDEX = YES есть ещё один глюк, связанный с работой этого самого индекса: При уточнении по индексу одновременно происходит обнуление показаний энкодера, axis.N видит это обнуление и, как и положено, обнуляет своё задание. Но "видит" оно в одном сервоцикле, а обнуление задания до pid.N доходит только в следующем - если система PID+привод быстрая, то она успевает заметить эту милисекундную разницу и отреагировать на это ощутимым "ударом". :(
Как это победить пока не понятно...
Кстати, на моем видео эти стуки отчетливо слышно. Может уже есть решение?
Вложения
egantry_test.hal
(9.38 КБ) 740 скачиваний
egantry_test.ini
(3.96 КБ) 1089 скачиваний
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

Nikomas писал(а):Кстати, на моем видео эти стуки отчетливо слышно. Может уже есть решение?
Для Mesa это не глюк, а моя невнимательность. Изображение
Для to_pci решения пока нет.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Nikomas
Мастер
Сообщения: 721
Зарегистрирован: 07 янв 2012, 14:31
Репутация: 64
Откуда: Беларусь
Контактная информация:

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

Сообщение Nikomas »

UAVpilot писал(а):Для to_pci решения пока нет
Загрубить энкодер не вариант?
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

Не поможет. Надо HAL-драйвер для to_pci делать по аналогии с драйверами Mesa.

Так после уменьшения align-vel и align-acc "спецэффекты" при включении остались?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Nikomas
Мастер
Сообщения: 721
Зарегистрирован: 07 янв 2012, 14:31
Репутация: 64
Откуда: Беларусь
Контактная информация:

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

Сообщение Nikomas »

UAVpilot писал(а):Так после уменьшения align-vel и align-acc "спецэффекты" при включении остались?
Да. Они и изначально не влияли. За основу брал конфиг от MGG, а у него было:
setp egantry.0.align-vel 0.5
setp egantry.0.align-acc 1
но при таких параметрах очень долго выставлялось. Потому и решил немного ускорить.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение 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 */
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Nikomas
Мастер
Сообщения: 721
Зарегистрирован: 07 янв 2012, 14:31
Репутация: 64
Откуда: Беларусь
Контактная информация:

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

Сообщение Nikomas »

UAVpilot писал(а):Пока гипотеза в том, что to_pci как-то иначе работает, чем Mesa.
Спросим у MGG.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

Хорошая мысль. Мне он на подобное не жаловался...
Или я не допонял... :)

Да и плазма с eganty в эксплуатации уже не один год, а там коррекция почти полтора сантиметра. И управляет ей не какой-нибудь профи, а "любая кухарка".
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Nikomas
Мастер
Сообщения: 721
Зарегистрирован: 07 янв 2012, 14:31
Репутация: 64
Откуда: Беларусь
Контактная информация:

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

Сообщение Nikomas »

UAVpilot писал(а):Хорошая мысль. Мне он на подобное не жаловался...
Ответ MGG:
Была или даже есть такая проблема, но расхождения сейчас сотка, и по этому я забил. Точнее у меня не бывает чтобы я отрубил енейбл, врубил и продолжил работать
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

Nikomas писал(а):у меня не бывает чтобы я отрубил енейбл, врубил и продолжил работать
Это ведь не твой случай?..
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Nikomas
Мастер
Сообщения: 721
Зарегистрирован: 07 янв 2012, 14:31
Репутация: 64
Откуда: Беларусь
Контактная информация:

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

Сообщение Nikomas »

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

Вот бы как-то обнулять энкодер при запуске LinuxCNC. Даже выключение усилков не помогает сбросить показания. Похоже что сама Linux или to_pci помнит их показания при закрытии программы. Спасает только полный перезапуск усилков и системы.
MGG
Мастер
Сообщения: 3673
Зарегистрирован: 08 фев 2016, 16:33
Репутация: 1010
Настоящее имя: Манн Геннадий Геннадьевич
Откуда: Москва
Контактная информация:

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

Сообщение MGG »

Да, с перезапуском программы я не пробовал
http://www.cnc-club.ru/forum/viewtopic. ... 76#p304076 Поставки оборудования для ваших станков
https://www.instagram.com/dtw.moscow/
dtw.moscow@gmail.com
T00T
Мастер
Сообщения: 742
Зарегистрирован: 16 дек 2011, 12:07
Репутация: 100
Контактная информация:

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

Сообщение T00T »

UAVpilot писал(а):Для Mesa это не глюк, а моя невнимательность.
Для to_pci решения пока нет.
Немного не в теме...
Что-то не так работает? В чём отличие работы Mesa и to_pci?
Я не волшебник я пока учусь......
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение 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 ...
..
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Nikomas
Мастер
Сообщения: 721
Зарегистрирован: 07 янв 2012, 14:31
Репутация: 64
Откуда: Беларусь
Контактная информация:

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

Сообщение Nikomas »

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

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

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

Вернуться в «LinuxCNC»