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

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.

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

Сообщение UAVpilot » 10 май 2012, 13:54

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

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

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

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


Extended Gantry Axis Component for LinuxCNC HAL (egantry)


Описание: http://cncdevice.pro/devel/eaxis/egantry.txt
Архив: http://cncdevice.pro/devel/eaxis/egantry-1.0pre3.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
Компонент: http://cncdevice.pro/devel/misc/BlackBox.py

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Начало темы было такое: :)

PKM писал(а):А что за кинематика? Для твоего мега-станка?

gantry кинематика, которая которая использует только одну axis.N для любого количества приводов оси, ну и решает можество других проблем, сопутствующих штатной gantrykins.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 16703
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4110
Медальки:
Настоящее имя: Сергей

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

Сообщение UAVpilot » 11 мар 2016, 01:00

VitalikD писал(а):Такое сложно добавить, если понадобится?

Такого не будет. Этот компонент только для объединения нескольких приводов в одну ось. Шаговики, энкодеры, сервы - всё это за пределами его компетенции.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 16703
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4110
Медальки:
Настоящее имя: Сергей

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

Сообщение MGG » 09 ноя 2016, 14:59

Подскажите, есть 2 сервы по Х, только с одной стороны есть датчик HOME, реально ли реализовать, чтоб оба мотора ехали пока первый не наскочит на датчик, после этого оба выставляются по Z индексу, далее один двигатель съезжает на определенный оборот, чтобы они между собой выравнились?
http://www.cnc-club.ru/forum/viewtopic.php?f=164&t=13246&p=304076#p304076 Поставки оборудования для ваших станков
MGG
Мастер
 
Сообщения: 1978
Зарегистрирован: 08 фев 2016, 16:33
Откуда: Москва
Репутация: 357
Настоящее имя: Манн Геннадий Геннадьевич

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

Сообщение UAVpilot » 09 ноя 2016, 17:06

Теоретически именно так и будет работать, если датчик HOME подключить к обоим joint.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 16703
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4110
Медальки:
Настоящее имя: Сергей

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

Сообщение Nikomas » 14 янв 2017, 00:26

MGG писал(а):Подскажите, есть 2 сервы по Х, только с одной стороны есть датчик HOME, реально ли реализовать, чтоб оба мотора ехали пока первый не наскочит на датчик, после этого оба выставляются по Z индексу, далее один двигатель съезжает на определенный оборот, чтобы они между собой выравнились?

Подскажите как вы реализовали свою задумку. Получилось?
Nikomas
Мастер
 
Сообщения: 442
Зарегистрирован: 07 янв 2012, 14:31
Откуда: Беларусь
Репутация: 29

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

Сообщение MGG » 21 янв 2017, 18:43

Nikomas писал(а):Подскажите как вы реализовали свою задумку. Получилось?

Пока нет, валюсь с джоин еррор, стараюсь :)
http://www.cnc-club.ru/forum/viewtopic.php?f=164&t=13246&p=304076#p304076 Поставки оборудования для ваших станков
MGG
Мастер
 
Сообщения: 1978
Зарегистрирован: 08 фев 2016, 16:33
Откуда: Москва
Репутация: 357
Настоящее имя: Манн Геннадий Геннадьевич

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

Сообщение a321 » 24 июл 2017, 00:15

А можно попросить топикстартера в первом сообщении дать более развернутое описание темы, а также инструкцию по установке, реализации, активации? Например лишь среди прочего между строк читается, я могу ошибаться, что в реализации выравниавания портала вторым двигателем нужен второй драйвер двигателя и нужно задействовать на контроллере еще одну "ось"? Хорошей новостью читается, что датчик (условно) Хоме второй половины портала может быть (условно) где угодно, поскольку его положение явно прописывается в настройках против http://www.cnc-club.ru/forum/viewtopic. ... 7&start=80, требующего одинакового положения датчиков.
a321
Кандидат
 
Сообщения: 88
Зарегистрирован: 03 дек 2016, 00:30
Репутация: 15

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

Сообщение UAVpilot » 24 июл 2017, 01:51

Попросить можно, но он, увы, откажет.
Имеющееся описание ориентировано на тех, кто более-менее разбирается в LinuxCNC и в его HAL в частности, или хотя-бы прочитал и понял документацию.
Считайте это своеобразным порогом вхождения. Если сделать подробное описание "для чайников", то оные не преминут этим воспользоваться и в случае любых непоняток будут задавать вопросы, которые как правило так или иначе освещены в документации. Отвечать на них я не желаю, не из вредности, а из-за отсутствия у меня на это времени...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 16703
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4110
Медальки:
Настоящее имя: Сергей

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

Сообщение MGG » 02 ноя 2017, 19:48

Вопрос такой:
Ситуация отхумился, корректировка отработала, далее если я выключаю енейбл на сервах и снова включаю, то оси встают на место с максимальной скоростью, и надо или прехомячиваться, а по большому счету, чтобы лишней нагрузки на портал не было, перегружать линуху. Это фича, баг, или косяк в моем конфиге?
All_hys, acc и все что с этим связано со значением 10
http://www.cnc-club.ru/forum/viewtopic.php?f=164&t=13246&p=304076#p304076 Поставки оборудования для ваших станков
MGG
Мастер
 
Сообщения: 1978
Зарегистрирован: 08 фев 2016, 16:33
Откуда: Москва
Репутация: 357
Настоящее имя: Манн Геннадий Геннадьевич

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

Сообщение UAVpilot » 03 ноя 2017, 00:35

Скорее всего не все пины компонента подключены.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 16703
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4110
Медальки:
Настоящее имя: Сергей

Re: spindle-index-enable ?

Сообщение nkp » 16 янв 2018, 15:55

UAVpilot,
вот такое заметил в твоей теме:
Все опубликованные ниже разработки предлагаются "AS IS" (как есть), без каких-либо гарантий, в том числе и по сопровождению.

а разве с форумного решения может быть какой то спрос?))
или были прецеденты? :)
nkp
Мастер
 
Сообщения: 7418
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1254
Медальки:

Re: spindle-index-enable ?

Сообщение UAVpilot » 16 янв 2018, 16:00

nkp писал(а):а разве с форумного решения может быть какой то спрос?))
или были прецеденты? :)

Ну люди разные попадаются... Несколько раз пользователи моих бесплатных "продуктов" пытались потребовать реальную компенсацию за реальные и мнимые глюки... :)
А по сопровождению - не факт, что какой-то конкретный момент времени у меня будет возможность оказывать помощь.
Я по основной работе уже давно заметил, что обычно чем меньше клиент платит за услуги, тем большего внимания и ништяков он требует... :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 16703
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4110
Медальки:
Настоящее имя: Сергей

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

Сообщение aftaev » 16 янв 2018, 17:29

UAVpilot писал(а):Несколько раз пользователи моих бесплатных "продуктов" пытались потребовать реальную компенсацию за реальные и мнимые глюки...

Да бывают странные :) Некоторым бесплатно советы даешь где, что купить, они потом на тебя еще бочку катят что не то посоветовал, а нужно было за них все расчеты сделать и посоветовать :idiot:

UAVpilot писал(а):Я по основной работе уже давно заметил, что обычно чем меньше клиент платит за услуги, тем большего внимания и ништяков он требует...

У нас так же.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
aftaev
Зачётный участник
Зачётный участник
 
Сообщения: 28770
Зарегистрирован: 04 апр 2010, 19:22
Откуда: Казахстан. Шымкент
Репутация: 4917
Медальки:

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

Сообщение Nikomas » 21 май 2018, 14:16

UAVpilot, по такому алгоритму egantry сможет отхоумиться?
LinuxCNC - Альтернативная кинематика. 2018-05-21_142323.jpg

Код: Выделить всёРазвернуть
   loadrt egantry count=1 personality=2
   addf  egantry.0                         servo-thread

   setp egantry.0.align-vel 0.5
   setp egantry.0.align-acc 1
   setp egantry.0.align-hyst 0.01
   setp egantry.0.joint.00.correct 2,35
   setp egantry.0.joint.01.correct 1,16


   setp egantry.0.joint.00.max_acceleration   [AXIS_0]MAX_ACCELERATION
   setp egantry.0.joint.00.max_velocity       [AXIS_0]MAX_VELOCITY
   setp egantry.0.joint.01.max_acceleration   [AXIS_0]MAX_ACCELERATION
   setp egantry.0.joint.01.max_velocity       [AXIS_0]MAX_VELOCITY

   # position & feedback
   net x-pos-cmd   egantry.0.axis.motor-pos-cmd  => axis.0.motor-pos-cmd
   net x-pos-fb    egantry.0.axis.motor-pos-fb   => axis.0.motor-pos-fb
   net x1-pos-cmd  egantry.0.joint.00.pos-cmd    => pid.x.command
   net x1-pos-fb   egantry.0.joint.00.pos-fb     <= pid.x.feedback
   net x2-pos-cmd  egantry.0.joint.01.pos-cmd    => pid.a.command
   net x2-pos-fb   egantry.0.joint.01.pos-fb     <= pid.a.feedback

   # enables
   net x-enable   egantry.0.axis.amp-enable   <= axis.0.amp-enable-out
   net x1-enable  egantry.0.joint.00.enable   => pid.x.enable
   net x2-enable  egantry.0.joint.01.enable   => pid.a.enable

   # index_ENCODER 
   net x-index-enable    egantry.0.axis.index-enable       <= axis.0.index-enable
   net x1-index-enable   egantry.0.joint.00.index-enable   => pid.x.index-enable
   net x2-index-enable   egantry.0.joint.01.index-enable   => pid.a.index-enable

   # home switches & others
   net x-home-sw          egantry.0.axis.home-sw      => axis.0.home-sw-in
   net x-joint-home-sw    egantry.0.joint.00.home-sw     egantry.0.joint.01.home-sw <= to_pci.1.pins.pin-24-in
   
   net x-home-state     axis.0.home-state      => egantry.0.axis.home-state
   net x-homed          axis.0.homed           => egantry.0.axis.homed
Nikomas
Мастер
 
Сообщения: 442
Зарегистрирован: 07 янв 2012, 14:31
Откуда: Беларусь
Репутация: 29

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

Сообщение UAVpilot » 21 май 2018, 16:50

Если я правильно понял картинку, то да. У MGG было аналогично сделано.

P.S. В *.correct на значения ругнётся. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 16703
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4110
Медальки:
Настоящее имя: Сергей

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

Сообщение Nikomas » 21 май 2018, 16:53

UAVpilot писал(а): В *.correct на значения ругнётся.

Понял)))
Nikomas
Мастер
 
Сообщения: 442
Зарегистрирован: 07 янв 2012, 14:31
Откуда: Беларусь
Репутация: 29

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

Сообщение Nikomas » 22 май 2018, 13:47

UAVpilot писал(а):Если я правильно понял картинку, то да.

А чем хуже?
Код: Выделить всёРазвернуть
{AXIS=0}
HOME = 2.35
HOME_OFFSET = 0.0
...
{AXIS=3}
HOME = 1.16
HOME_OFFSET = x.x - величина смещения индексной метки относительно ведущей оси.
Nikomas
Мастер
 
Сообщения: 442
Зарегистрирован: 07 янв 2012, 14:31
Откуда: Беларусь
Репутация: 29

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

Сообщение UAVpilot » 22 май 2018, 14:24

попробуй - расскажешь... :)
Ещё можно вот тут почитать:
Re: Плазморез со смарт-вентиляцией #35
Re: Плазморез со смарт-вентиляцией #40
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 16703
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4110
Медальки:
Настоящее имя: Сергей

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

Сообщение Nikomas » 10 июн 2018, 20:22

Включаем станок:
LinuxCNC - Альтернативная кинематика. 1.png

Выключаем ENABLE станка в программе (но усилки работают и честно читают энкодеры) и видим как напряжения в портале тянут одну сторону:
LinuxCNC - Альтернативная кинематика. 2.png


Теперь оператор, проходя мимо, случайно задел одну из сторон портала и сместил на 1мм:
LinuxCNC - Альтернативная кинематика. 3.png


И при следующем включении получаем
В результате получим резкий скачёк половины портала с феерическим грохотом и прочими спецэффектами.


Как этого избежать?
Nikomas
Мастер
 
Сообщения: 442
Зарегистрирован: 07 янв 2012, 14:31
Откуда: Беларусь
Репутация: 29

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

Сообщение UAVpilot » 11 июн 2018, 00:10

Мало информации.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 16703
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4110
Медальки:
Настоящее имя: Сергей

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

Сообщение Nikomas » 04 июл 2018, 18:29

UAVpilot писал(а):Мало информации.

Еще раз понаблюдал за работой. Вывод: надо как-то подключать offset.

- Включаю станок.
- Энкодеры по нулям.
Код: Выделить всёРазвернуть
egantry.0.joint.00.pos-fb 0.000
egantry.0.joint.01.pos-fb 0.000

- Ищу начала оси по индексным меткам и одному датчику.
- После поиска начальных точек опытным путем пришел к тому, что ось joint.01 надо "вернуть" на 4мм. Соотв. ввожу egantry.0.joint.01.correct -4 и ось становится там, где мне и необходимо.
Код: Выделить всёРазвернуть
egantry.0.joint.00.pos-fb 0.000
egantry.0.joint.01.pos-fb -4.000

- Перезапускаю программу.
- egantry видит что показания энкодера расходятся на 4мм рвет joint.01 со всех сил в позицию 0. Грохот стоит тот еще.

Что-то не подключено?
(для просмотра содержимого нажмите на ссылку)
Код: Выделить всёРазвернуть
    14  float IN            300  egantry.0.align-acc
    14  float IN           0.01  egantry.0.align-hyst
    14  float IN            200  egantry.0.align-vel
    14  bit   IN          FALSE  egantry.0.axis.amp-enable <== x-enable
    14  bit   OUT         FALSE  egantry.0.axis.amp-fault-out
    14  s32   OUT             0  egantry.0.axis.fb-joint
    14  s32   IN              0  egantry.0.axis.home-state <== x-home-state
    14  bit   OUT         FALSE  egantry.0.axis.home-sw ==> x-home-sw
    14  bit   IN          FALSE  egantry.0.axis.homed <== x-homed
    14  bit   I/O         FALSE  egantry.0.axis.index-enable <=> x-index-enable
    14  float IN              0  egantry.0.axis.motor-pos-cmd <== x-pos-cmd
    14  float OUT             0  egantry.0.axis.motor-pos-fb ==> x-pos-fb
    14  bit   OUT         FALSE  egantry.0.axis.neg-lim-sw
    14  bit   OUT         FALSE  egantry.0.axis.pos-lim-sw
    14  bit   IN          FALSE  egantry.0.joint.00.amp-fault-in
    14  float IN              0  egantry.0.joint.00.correct
    14  bit   OUT         FALSE  egantry.0.joint.00.enable ==> x1-enable
    14  float OUT             0  egantry.0.joint.00.f-error
    14  bit   IN          FALSE  egantry.0.joint.00.home-sw <== x-joint-home-sw
    14  bit   I/O         FALSE  egantry.0.joint.00.index-enable <=> x1-index-enable
    14  float IN            300  egantry.0.joint.00.max_acceleration
    14  float IN            200  egantry.0.joint.00.max_velocity
    14  bit   IN          FALSE  egantry.0.joint.00.neg-lim-sw
    14  float OUT             0  egantry.0.joint.00.offset
    14  float OUT             0  egantry.0.joint.00.pos-cmd ==> x1-pos-cmd
    14  float IN             -0  egantry.0.joint.00.pos-fb <== x1-pos-fb
    14  bit   IN          FALSE  egantry.0.joint.00.pos-lim-sw
    14  bit   IN          FALSE  egantry.0.joint.01.amp-fault-in
    14  float IN              0  egantry.0.joint.01.correct
    14  bit   OUT         FALSE  egantry.0.joint.01.enable ==> x2-enable
    14  float OUT             0  egantry.0.joint.01.f-error
    14  bit   IN          FALSE  egantry.0.joint.01.home-sw <== x-joint-home-sw
    14  bit   I/O         FALSE  egantry.0.joint.01.index-enable <=> x2-index-enable
    14  float IN            300  egantry.0.joint.01.max_acceleration
    14  float IN            200  egantry.0.joint.01.max_velocity
    14  bit   IN          FALSE  egantry.0.joint.01.neg-lim-sw
    14  float OUT             0  egantry.0.joint.01.offset
    14  float OUT             0  egantry.0.joint.01.pos-cmd ==> x2-pos-cmd
    14  float IN         0.0004  egantry.0.joint.01.pos-fb <== x2-pos-fb
    14  bit   IN          FALSE  egantry.0.joint.01.pos-lim-sw
    14  s32   OUT          1170  egantry.0.time
Nikomas
Мастер
 
Сообщения: 442
Зарегистрирован: 07 янв 2012, 14:31
Откуда: Беларусь
Репутация: 29

Пред.След.

Вернуться в LinuxCNC

Кто сейчас на конференции

Зарегистрированные пользователи: Бармалей, AndyBig, Argon-11, Bing [Bot], d-troy-it, Darxton, Dmaster, Enot_1, error101, Евжений, FL@gMan, frezeryga, Google [Bot], konkop, Mamont, menny1112, michael-yurov, mikro3v, MoppoH, nickoass, nik1, niksooon, NKS, partizann, passer-by, rage, Raptirius, sergey27rus, Shah, shdn777, skedram, Smith2007, Stich, svb, TheDreamer, Tytanham0n, Yandex [bot]

Поделиться

Reputation System ©'